Skip to content

xiovlad/CppPatterns

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Быстрый поиск изоморфных подграфов

В данном репозитории размещен алгоритм быстрого поиска подграфов изоморфных заданному паттерну.

Интерфейс метода, реализующий алгоритм быстрого поиска следующий:

std::vector<CombinatoricsData> 
fastGetAllPatterns(int **source, int sourceSize, int **pattern, int patternSize, bool hardCheck);

Этот метод возвращает список объектов класса CombinatoricsData. Этот класс представляет собой обёртку над целочисленным массивом. Для реализации быстрого поиска она не обязательна, однако с её помощью проще реализовывать логику.

Метод возвращается список обёрнутых массивов, каждый из которых хранит последовательность индексов. Если по этой последовательности построить подматрицу (будем называть её переставленной подматрицей), тогда граф построенный из предположения, что полученная матрица является матрицей связности, будет изоморфным графу, построенному по матрице связности графа-паттерна.

В качестве аргументов метод принимает матрицу связности исходного графа source, матрицу связности искомого паттерна pattern и флаг жёсткой сверки hardCheck. Если hardCheck равен false, то нулевому элементу паттерна может соответствовать произвольное значение в переставленной подматрице, а если true, то все элементы паттерна и переставленной подматрицы должны совпадать с точностью до перестановки.

Тесты

Чтобы запустить тесты в CLion, нужно

Выбрать пункт Edit Configuraions...

После этого нажать на +

И выбрать CTest Application

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 97.7%
  • CMake 2.3%