На веб-сайті http://www.dharwadker.org/tevet/isomorphism/ представлено алгоритм визначення того, чи є два графіки ізоморфними. Враховуючи низку, скажемо, "цікавих" тверджень А Дхарвадкера, я не схильний вірити в це.
В ході мого дослідження я вважаю, що алгоритм, безумовно, дасть правильну відповідь і скаже вам, що два графіки не є ізоморфними, якщо насправді це правильно. Однак не ясно, що алгоритм послідовно скаже вам, чи є два графіки ізоморфними, коли вони є насправді. "Доказ" їх результату залишає бажати кращого.
Однак мені не відомий контрприклад. Перш ніж почати писати програмне забезпечення для тестування алгоритму, я подумав, що побачу, чи хтось уже знає про зустрічний приклад.
Хтось просив резюме алгоритму. Я зроблю все, що тут можу, але щоб справді зрозуміти це, вам слід відвідати http://www.dharwadker.org/tevet/isomorphism/ .
У алгоритму є дві фази: фаза "підпису" та фаза сортування. Перша фаза "підпису" (це мій термін для їх процесу; вони називають його генеруванням "матриці знаків") ефективно сортує вершини за різними класами еквівалентності. Друга фаза спочатку упорядковує вершини відповідно до класу їх еквівалентності, а потім застосовує процедуру сортування в межах класів еквівалентності для встановлення ізоморфізму між двома графами. Цікаво, що вони не претендують на встановлення канонічної форми для графіків - натомість один графік використовується як своєрідний шаблон для другого.
Фаза підпису насправді є досить цікавою, і я б не робив це справедливо, намагаючись перефразовувати це. Якщо ви хочете отримати детальнішу інформацію, рекомендую перейти за посиланням, щоб вивчити його підпис. Створена "матриця знаків", безумовно, зберігає всю інформацію про початковий графік, а потім встановлює трохи більше інформації. Після збору підписів вони ігнорують оригінальну матрицю, оскільки підписи містять всю інформацію про вихідну матрицю. Досить сказати, що підпис виконує деяку операцію, яка стосується кожного ребра, що відноситься до вершини, і тоді вони збирають множину елементів для вершини, щоб встановити клас еквівалентності для вершини.
Друга фаза - фаза сортування - це сумнівна частина. Зокрема, я б очікував, що якби їхній процес спрацював, тоді алгоритм, розроблений Анною Любів для забезпечення "подвійного лексичного впорядкування матриць" (Див .: http://dl.acm.org/citation.cfm?id=22189 ) також буде працювати для визначення канонічної форми для графа.
Чесно кажучи, я не зовсім розумію процес їх сортування, хоча думаю, що вони роблять розумну роботу з його описом. (Я просто не переробив усі деталі). Іншими словами, мені може щось не вистачати. Однак незрозуміло, як цей процес може зробити набагато більше, ніж випадково знайти ізоморфізм. Звичайно, вони, можливо, знайдуть це з великою часткою ймовірності, але не з гарантією. Якщо два графіки не є ізоморфними, процес сортування ніколи його не знайде, і процес правильно відхиляє графіки.