Алгоритми швидкої ширини


18

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

Чи є якісь швидкі алгоритми для обчислення ширини в подібній жилці?


1
fyi нещодавно treewidth була підключена до жорсткості SAT Гасперсом / Szeider у FOCS, сподіваюся почути від інших в чаті / дискусії
vzn

Відповіді:


19

Наскільки мені відомо, про те, про що йдеться, йдеться про сучасний стан

Ганс Л. Бодлендер, Федір В. Фомін, Ар'є МКА Костер, Дітер Кратч і Дімітріос М. Тілікос (2012), "Про точні алгоритми для широкої ширини", транзакції ACM за алгоритмами 9 (1): A12, doi: 10.1145 / 2390176.2390188 .

Описані там методи включають реалізований алгоритм з деякими евристичними оптимізаціями, щоб зробити його швидше на практиці.О(2н)


2
Дякую. Посилання 2, 8 та 15, які дають евристику верхньої та нижньої меж, на практиці можуть бути найбільш корисними з цього документу.
felix

10

Я написав документ під назвою Швидка паралельна розгалуження та зв'язаний алгоритм Treewidth в ICTAI 2011. Він може обчислити ширину широти в багатоядерних . Я використав багато евристики і витратив багато часу на вдосконалення програми.

Я був випадковим студентом магістратури в Китаї і не потрапив на хорошу конференцію. Але, грунтуючись на результатах експерименту, я думаю, що моя програма дуже швидка. Я вирішив багато невирішених орієнтирів у Treewidth lib, і моя програма була в 40 разів швидшою, ніж алгоритм, запропонований Чжоу та Хансеном в IJCAI 09 ..

Я вже не працюю над цією темою. Але якщо моя попередня робота корисна, ви можете завантажити мою програму (src та exe) з http://www.callowbird.com/undergraduate-stuff.html і спробувати. (все-таки це дуже повільно на трохи більший екземпляр)


5

Тут http://arxiv.org/abs/1304.6321 (прийнято на FOCS цього року) Bodlaender та ін. дайте алгоритм , який дає декомпозицію дерева шириною не більше 5k + 4, якщо графіка має ширину дерева не більше k. Можливо, це може вас зацікавити.О(2к)


1
2О(к)О(cкн)c

5

Ось два опитування алгоритмів для обчислення широти ширини, які можуть бути корисними. Перший має емпіричні порівняння, і він має різні алгоритми, реалізовані як бібліотека Java.

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

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


3

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

http://www.sagemath.org/doc/reference/graphs/sage/graphs/graph_decompositions/vertex_separation.html

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

Натанн


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