Wdrożony kod do obliczania szerokości ścieżki (= numer wyszukiwania węzła, numer separacji wierzchołków, grubość przedziału)


13

Szukam implementacji algorytmu do obliczania szerokości ścieżki wykresu. Dobrze wiadomo, że obliczenie szerokości ścieżki jest równoważne z obliczeniem numeru wyszukiwania węzła, numeru separacji wierzchołków lub grubości przedziału wykresu. Algorytm nie musi być bardzo szybki; Chcę uruchomić go na wykresach o maksymalnie 20 wierzchołkach. Wymagam od algorytmu dokładnego obliczenia szerokości ścieżki, a nie przybliżenia.

Wiem, że istnieją pewne implementacje do obliczania szerokości wykresu (koncepcja pokrewna), ale nie udało się znaleźć żadnej do obliczenia szerokości ścieżki. Wszelkie wskazówki są mile widziane!

Odpowiedzi:


8

Prosta implementacja DFS + DP została dodana do SAGE 4.8 w zeszłym roku: sage.graphs.graph_decompositions.vertex_separation.path_decomposition

Jest zaimplementowany w Cython (GNU GPL) tu i tutaj . Bardzo proste i krótkie, jeśli zignorujesz wszystko, co nie jest niezbędne. czas, gdzie . Można to przyspieszyć dzięki regułom przycinania, a zwłaszcza heurystyce.O(nω2n)ω=pw(G)


Wouaaaaaaaaahhhh !! Jak dowiedziałeś się, że został dodany do Sage? Miło widzieć, jak ludzie naprawdę wyglądają, jakie są nowe funkcje Sage'a :-)
Nathann Cohen

Nawiasem mówiąc, dokumentacja modułu jest właśnie tam i wyjaśnia, jak to wszystko działa: sagemath.org/doc/reference/sage/graphs/graph_decompositions/...
Nathann Cohen

Przepraszam za rozczarowanie, ale tak naprawdę nie jestem użytkownikiem SAGE; Google odkryło, że Twoja poprawka się do niego przyczyniła. Chciałbym przyczynić się do SAGE (już używam Cython), ale wydaje mi się, że lepiej byłoby uczestniczyć w projektach upstream (NetworkX?), W których więcej osób mogłoby z niego korzystać.
Ralph Versteegen

Dobrze. NetworkX nie jest już tak naprawdę „upstream” z Sage, ponieważ tak naprawdę nie używa NetworkX, chyba że o to poprosisz. I możliwość korzystania z innych części matematyki, Cython i interfejs z programowaniem liniowym również robi różnicę :-P
Nathann Cohen

8

Nie wiem o „implementacji”, ale sprawdź

Obliczanie przepustowości szybciej niż 2 ^ n Karol Suchan i Yngve Villanger sparametryzowane i dokładne obliczenia, 4. międzynarodowe warsztaty, IWPEC 2009, Kopenhaga, Dania, Springer Verlag, Uwagi do wykładu z informatyki 5917, strony 324-335.


2

Hisao Tamaki opracował niedawno dokładny algorytm dla ukierunkowanej przepustowości (WG 2011). Tam nawiązuje do udanego praktycznego zastosowania swojego podejścia (ISCIT 2010), więc sądzę, że ma również implementację algorytmu.

Hisao Tamaki: Ukierunkowane podejście do rozkładu ścieżki do dokładnej identyfikacji atraktorów sieci boolowskich. Międzynarodowe sympozjum nt. Technologii komunikacyjnych i informacyjnych (ISCIT 2010), s. 844–849

Hisao Tamaki: algorytm wielomianu czasu dla ograniczonej ukierunkowanej ścieżki. W: 37. międzynarodowe warsztaty nt. Koncepcji teoretyczno-graficznych w informatyce (WG 2011), LNCS 6986, s. 331–342.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.