Wyliczanie płaskich wykresów ograniczonej szerokości poprzecznej

9

Szukam odniesień do następującego problemu: biorąc pod uwagę liczby całkowite i , wyliczyć wszystkie nieizomorficzne wykresy płaskie na wierzchołkach i szerokości linii . Interesują mnie zarówno wyniki teoretyczne, jak i praktyczne, ale przede wszystkim praktyczne algorytmy, które można kodować i uruchamiać dla możliwie dużych wartości i (pomyśl i ). Jeśli masz już odpowiedź, zignoruj ​​poniższe bzdury.nknknkk5n15

Poniższe podejście działa całkiem dobrze w przypadku wyliczania wszystkich grafów nieizomorficznych na wierzchołkach i treewidth (tj. Po usunięciu ograniczenia płaskości ):nk

(a) Zliczyć wszystkie wykresy nieizomorficzne na wierzchołkach i krzyżyku .n1k

(b) Dla każdego wierzchołka na wierzchołków i szerokości wierzchołka , każdej kliki na wierzchołków w i każdego podzbioru krawędzi w , utwórz z , dodając nowy wierzchołek sąsiedztwie . Dodaj do listy grahów na wierzchołkach i treewidth .Gn1kdoksolS.dosolsol-S.vdosolL.nk

(c) Przytnij , usuwając kopie tego samego wykresu.L.

Kuszącym sposobem na rozszerzenie tego zakresu na wyliczanie płaskich wykresów treewidth jest po prostu filtrowanie wykresów niepłaskich przy każdej iteracji. Niestety nie generuje to wszystkich płaskich wykresów treewidth (na przykład, ponieważ wylicza tylko wykresy zdegenerowane).kk4

Oczywiście moglibyśmy wyliczyć wszystkie wykresy na wierzchołkach i krzywe a dopiero potem odfiltrować te niepłaskie, ale to nie wykorzystuje tego, że większość wykresów jest niepłaskich i wydaje się bardzo nieoptymalna.nk

Daniello
źródło
Czy na pewno chcesz go wdrożyć i przetestować wynik? Liczba drzew nieizomorficznych jest już wykładnicza.
Saeed,
@ Uwaga: pewnie - dla 20 węzłów liczba drzew jest mniejsza niż milion, więc spodziewam się, że będzie to wykonalne przynajmniej dla . n15
daniello
1
co powiesz na rozpoczęcie od odwrotnych wykresów akordowych o maksymalnym rozmiarze kliki i usuń krawędzie, aby były płaskie? nk+1
Yixin Cao,
@ Yixin Cao wygląda to podobnie do wyliczania wykresów + ich rozkładu na drzewach (tj. Ten sam wykres jest widziany raz na dec. Drzewa). Do tej pory było to dość powolne (ale pewna optymalizacja może sprawić, że to podejście będzie opłacalne)
daniello
2
@daniello, rozumiem twój punkt widzenia, ale czy widziałeś tę aplikację: cs.anu.edu.au/~bdm/plantri , twierdzą oni, że mogą wygenerować 1M wykresy płaskie w ciągu sekundy (w odniesieniu do izomorfizmu). (nie jest to jednak dokładnie to, czego chcesz, dla 1-2-3 połączonych wykresów płaskich wydaje się być idealne, chociaż nie ma wielu 4-5 połączonych wykresów płaskich na 15 wierzchołkach).
Saeed,

Odpowiedzi:

2

Istnieje ładne oprogramowanie, które generuje małe płaskie wykresy w odniesieniu do izomorfizmu, które mogą pomóc. Jak widzę, jednym z problemów było wygenerowanie nieizomorficznych wykresów płaskich, a większość tych płaskich wykresów (na mniej niż 15 wierzchołkach) ma małą szerokość.

Do sprawdzania, czy ich szerokość jest mniejsza niż podana wartość k, jednym ze sposobów jest użycie algorytmów heurystycznych w celu przyspieszenia tego obliczenia, na wypadek, gdyby dokładne algorytmy nie były praktyczne. np. na wykresie planarnymsol najpierw możemy znaleźć średnicę sol i odpowiednią ścieżkę P. długości re(która jest średnicą). Następnie znajdź wierzchołekvP. który ma najkrótszą najdłuższą odległość (l) do dowolnego innego wierzchołka usolP. wśród wszystkich wierzchołków wP.. Szerokośćsol jest co najwyżej re+l, jeśli jest mniejszy niż k skończymy w przeciwnym razie albo zastosujemy inne algorytmy heurystyczne, albo uruchomimy dokładny algorytm.

W przypadku mniej niż 3 połączonych wykresów można również zastosować heurystykę, znajdując wycięte wierzchołki, a następnie naprawiając te wierzchołki i znajdując szerokość drzewa pozostałego wykresu. Ale ponieważ liczba węzłów jest niewielka (15), jeśli wykres to 4- połączona wtedy średnica nie jest duża i myślę, że pierwsza heurystyka powinna tam działać. (Nie wiem, czy istnieje jakikolwiek 5 połączony wykres płaski na co najwyżej 15 wierzchołkach, ale jak wiemy, nie matpołączony wykres planarny dla t>5)

Jako wielkość największej przeszkody dla szerokości drzewa k nie jest znane, nie możemy po prostu odgadnąć górnej granicy wartości szerokości danego wykresu sol. Wydaje się jednak, że przynajmniej dla grafów płaskich nie powinno być tak duże (należy to udowodnić).

Saeed
źródło
1

Można wyliczyć wszystkie pary G,B gdzie G to wykres płaski z co najwyżej szerokością k, B to torba wielkości k tak, że istnieje rozkład drzewa G z b jako torba.

Teraz dla każdej pary sol,b gdzie sol ma n-1 wierzchołki budujemy nowy wykres sol dla każdego podzbioru S. z b przez dodanie wierzchołka v z S. jako sąsiedzi i niech b być wielkością k podzbiór bv. Dodajsol,b gdyby sol jest płaski i nie jest izomorficzny w stosunku do żadnej już znalezionej pary.

Łatwa górna granica liczby wpisów, które należy przechowywać (nk)razy liczba wyliczonych wykresów, ale jest to pesymistyczne ograniczenie. W przypadku większości wykresów szerokości k większość podzbiorów rozmiaru k nie może wykonać torby, np. Ak×n siatka ma tylko n3)k-1 możliwe torby.

Wierzę, że zadziała to tak samo jak algorytm dla wykresów niepłaskich, ponieważ dla każdej pary G, B otrzymujemy wykres, czyniąc B kliką, większość tych wykresów będzie nieizomorficzna.

Jest kilka sztuczek, które można zastosować, aby to przyspieszyć, sugeruję zajrzeć do: http://www.siam.org/meetings/alenex04/abstacts/HBodlaender.pdf

Martin Vatshelle
źródło
Czy wszystkie wyliczone wykresy nie ograniczają szerokości ścieżki, a szerokości ?
daniello
Myślę, że masz rację. wybór B 'jest zbyt ograniczony.
Martin Vatshelle,