Перерахування плоских графіків обмеженої ширини


9

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

Наступний підхід працює на зразок нормально для перерахування всіх неізоморфних графіків на вершинах та широті ширини (тобто при падінні обмеження планарності):nk

(a) Перерахуйте всі неізоморфні графіки на вершинах і широті ширини .n1k

(b) Для кожної вершини на вершини та широти ширини , кожної кліки на вершинах у та кожної підмножини ребер у складають від , додаючи нову вершину примикає до . Додайте до списку гратів на вершинах та широті ширини .Gn1kCkGSCGGSvCGLnk

(c) Обрізати , видаливши копії одного графа.L

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

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


Ви впевнені, що хочете його реалізувати і перевірити результат? Кількість неізоморфних дерев вже експоненціальна.
Саїд

@Saeed: впевнений - на 20 вузлів кількість дерев становить менше мільйона, тож я думаю, що це можливо принаймні для n15.
daniello

1
як щодо початку n-верте хордальні графіки максимального розміру кліку k+1, і видалити краї, щоб зробити його плоским?
Ісін Цао

@Yixin Cao це схоже на перерахування графіків + декомпозиції дерев (тобто той самий графік можна побачити один раз на кожне дерево). Поки що це було досить повільно (але деяка оптимізація могла б зробити цей підхід життєздатним)
daniello

2
@daniello, я бачу вашу думку, але ви бачили цю програму: cs.anu.edu.au/~bdm/plantri , вони стверджують, що вони можуть генерувати 1М плоских графіків за секунду (стосовно ізоморфізму). (це не зовсім те, що ви хочете, хоча для 1-2-3 з'єднаних плоских графіків це здається ідеальним, хоча не багато 4-5 зв'язаних плоских графіків на 15 вершинах).
Саїд

Відповіді:


2

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

Для перевірки, чи менша їхня ширина, ніж задане значення k, один із способів - використовувати евристичні алгоритми для прискорення цього обчислення, лише у випадку, якщо точні алгоритми не практичні. наприклад, у площинному графікуG спочатку ми можемо знайти діаметр G і відповідний шлях P довжини d(що є діаметром). Потім знайдіть вершинуvP яка має найкоротшу найдовшу відстань (л) до будь-якої іншої вершини уГП серед усіх вершин шП. Ширина шириниГ є щонайбільше г+л, якщо це менше к тоді ми робимо інакше або застосовуємо якісь інші евристичні алгоритми, або запускаємо точний алгоритм.

Для менш ніж 3 з’єднаних графіків також можна застосувати евристику, відшукуючи вирізані вершини, а потім виправляючи ці вершини та знаходячи ширину дерева залишився графа. Але оскільки кількість вузлів невелика (15) якщо графік 4-поєднаний тоді діаметр не великий, і я думаю, що перший евристик повинен працювати там. (Я не знаю, чи є 5 зв'язаних планарних граф на щонайменше 15 вершинах, але, як ми знаємо, немаєт-поєднаний плоский графік для т>5)

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


1

Можна перерахувати всі пари Г,Б де Г являє собою плоский графік з максимальною шириною ширини к, Б - сумка розміром к такий, що існує дерево-розкладання Г з Б як сумка.

Тепер для кожної пари Г,Б де Г має н-1 вершин ми будуємо новий графік Г' для кожного підмножини S з Б додавши вершину v з S як сусіди і нехай Б' бути розміром к підмножина Bv. ДодайтеG,B якщо G планарний і не є ізоморфним для жодної пари, яка вже знайдена.

Проста верхня межа про те, скільки записів потрібно зберігати (nk)разів кількість перелічених графіків, але це песимістична межа. Для більшості графіків широкої ширини k більшість підмножин розміром k не можуть мати мішок, наприклад ak×n сітка тільки n3k1 можливі сумки.

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

Є кілька хитрощів, які можна застосувати, щоб прискорити це, я б запропонував переглянути: http://www.siam.org/meetings/alenex04/abstacts/HBodlaender.pdf


Чи не всі перелічені графіки мають обмежену ширину шляху, а не ширину ширини?
Даніелло

Я думаю, ти маєш рацію. вибір B 'занадто обмежений.
Мартін Ватшелле
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.