Проблема ізоморфізму графів для мічених графіків


11

Що стосується незазначених графіків, то проблема ізоморфізму графа може бути вирішена рядом алгоритмів, які дуже добре працюють на практиці. Тобто, хоча найгірший час запуску є експоненціальним, у нього зазвичай є час роботи полінома.

Я сподівався, що ситуація подібна у випадку з маркованими графіками. Однак мені дуже важко знайти будь-яку посилання, яка пропонує «практично ефективний» алгоритм.

Зауваження: Тут ми вимагаємо, щоб ізоморфізм зберігав мітки. Тобто, ізоморфізм між двома кінцевими термінами автоматики / процесної алгебри означатиме, що автомати / терміни по суті є «рівними до перейменування вузлів».

Єдине посилання, яке я знайшов, - це посилання у Вікіпедії, де зазначено, що проблема ізоморфізму мічених графіків може бути поліноміально зведена до звичайних графіків. Однак у статті лежить більше теорія складності, ніж практичні алгоритми.

Мені чогось не вистачає, чи це дійсно так, що не існує ефективних "евристичних" алгоритмів, щоб вирішити, чи є два марковані графіки ізоморфними?

Будь-яка підказка чи посилання були б чудовими.


3
Було б непогано надати посилання на статтю вікіпедії та знайдений вами папір, щоб врятувати нам неприємності.
babou

1
Що ви маєте на увазі під ізоморфізмом, який "зберігає мітки"? У контексті автомата мітки вершин є різними. Тому будь-який ізоморфізм тривіально «зберігає мітки» в тому сенсі, що дві вершини в джерелі, які мають чіткі мітки, теж повинні мати чіткі мітки на зображенні. Ця проблема є ідентичною звичайній задачі ізоморфізму графіка. Якщо ви маєте на увазі, що ізоморфізм повинен відображати вершину до однієї і тієї ж мітки, алгоритм є тривіальним, коли мітки вершин завжди відрізняються: просто перевірте, що карта ідентичності на мітках є ізоморфізмом.
Девід Річербі,

Якщо ви маєте на увазі розглянути випадок, коли кілька вершин можуть мати однакову мітку, а зображення вершини повинно мати ту саму мітку, що й вихідну, що часто називається ізоморфізмами між кольоровими графами . У такому випадку відбувається просто зменшення загального GI шляхом заміни кольорів на гаджети. Можливо, ви могли б отримати гідний практичний алгоритм, застосувавши ретельно вибрані гаджети, а потім застосувавши стандартний алгоритм GI.
Девід Річербі,

SSac,bd

4
g:a1,b2,c3,...)sg(s)Kg(s)) плюс додатковий вузол з боку стрілки краю. Отримані графіки є ізоморфними тоді і лише тоді, коли вихідні автомати є ізоморфними.
Vor

Відповіді:


5

Вас може зацікавити цей документ:

Ейдан Хоган: Сколемізація порожніх вузлів при збереженні ізоморфізму. WWW 2015: 430-440

Він має алгоритм (заснований на Науті) для тестування ізоморфізму графіків RDF, які по суті є спрямованими маркованими графами, які можуть містити нерухомі мітки. Алгоритм враховує мітки для звуження простору пошуку.

Якщо ви можете представити свій вхідний графік як графік RDF, ви можете спробувати використовувати відповідний пакет програмного забезпечення для " blabel" "тестування ізоморфізму.


4

Я з'ясував, що алгоритм належить до категорії алгоритмів k-вимірності Weisfeiler-Lehman, і він не відповідає регулярним графікам. Докладніше тут:

http://dabacon.org/pontiff/?p=4148

Оригінальна публікація наступна:

Роки тому я створив простий і гнучкий алгоритм вирішення саме цієї проблеми (графік ізоморфізму з мітками).

Я назвав його "Powerhash", і для створення алгоритму знадобилося два розуміння. Перший - алгоритм графіка ітерації потужності, який також використовується в PageRank. Друге - це можливість замінити внутрішню ступінчасту функцію ітерації потужності на все, що ми хочемо. Я замінив його функцією, яка виконує наступні дії для кожної ітерації та для кожного вузла:

  • Сортуйте хеші (з попередньої ітерації) сусідів вузла
  • Змийте зібрані сортовані хеші
  • Замініть хеш вузла на щойно обчислений хеш

На першому кроці на хеш вузла впливають його прямі сусіди. На другому кроці на хеш вузла впливає сусіднє 2-хмелеве від нього. На N-му кроці на хеш вузла впливатимуть сусідні N-хопи навколо нього. Тож вам потрібно лише продовжувати виконувати Powerhash для N = graph_radius кроків. Зрештою, на хеш вузла центрального графіка буде впливати весь графік.

Щоб створити кінцевий хеш, сортуйте хеші вузлів останнього кроку та з'єднайте їх разом. Після цього можна порівняти кінцеві хеші, щоб виявити, чи є два графіки ізоморфними. Якщо у вас є мітки, додайте їх (на першій ітерації) у внутрішні хеші, які ви обчислюєте для кожного вузла.

Більше про це ви можете подивитися на моєму посту тут:

https://plus.google.com/114866592715069940152/posts/fmBFhjhQcZF

Вищенаведений алгоритм був реалізований всередині функціональної реляційної бази даних "madIS". Вихідний код алгоритму можна знайти тут:

https://github.com/madgik/madis/blob/master/src/functions/aggregate/graph.py


Просто попередження про те, що ваш алгоритм є поліноміальним, і якщо він повний, ви просто вирішили давню відкриту проблему в CS про те, що GI знаходиться в P. :) (Є різні випадки, коли алгоритм, який ви описуєте, дасть помилкові позитиви .)
badroit

Алгоритм приблизний і, звичайно, не завершений (я так говорю і в публікації блогу). Причиною цього є те, що створені хеши величезні, тому в базі даних навіть мільйонів графіків можливість помилкових позитивних хеш-зіткнень буде нескінченною. Якщо вам вдасться знайти будь-який випадок хибнопозитивного зіткнення хешу, мені було б дуже цікаво про це знати. Причина (при використанні криптографічних хешів) полягає в тому, що вам вдалося «зламати» функцію криптографічного хешу.
естама

Детальніше про те, наскільки нескінченна мала можливість хеш-зіткнення. Я вважаю, що криптографічний хеш у 256 біт є більш ніж достатнім, щоб бути впевненим, що всі різні файли світу не мають хеш-одиничного значення (git, наприклад, використовує SHA-1, який має 160 біт, щоб гарантувати це). Хеш з Powerhash буде 128 біт * graph_node_count (використовуючи хеш MD5). Тому практично ви ніколи не зможете створити достатню кількість графіків (у цьому Всесвіті), щоб знайти хеш-зіткнення між ними.
естама

1
Я мав на увазі, що ваш алгоритм дасть помилкові позитиви, навіть припускаючи хеш-колізії. Для літератури ізоморфізму в літературі було запропоновано багато алгоритмів поліноміального часу, і всі вони дають помилкові позитиви. Тут пов'язане запитання: cs.stackexchange.com/questions/50939/… .
badroit

1
Дякую за дискусію З деякими іншими дослідженнями я виявив, що алгоритм, наведений вище, відноситься до категорії алгоритмів k-вимірності Weisfeiler-Lehman, і він не вдається з регулярними графіками. Докладніше тут: dabacon.org/pontiff/?p=4148
estama
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.