Ich möchte die Baumbreite eines Graphen berechnen . Es gibt wirklich gute Heuristik für andere NP-hard Graphen Probleme wie VF2 für Subgraphen Isomorphismus, mit dem Code in IGRAPH zum Beispiel. Ich habe sie in meinen Grafiken ausprobiert und finde, dass sie für meine Daten sehr schnell laufen.
Gibt es schnelle Algorithmen für die Baumbreitenberechnung in ähnlicher Weise?
Antworten:
Soweit ich weiß, ist der Stand der Technik das, worüber berichtet wird
Hans L. Bodlaender, Fedor V. Fomin, Arie MCA Koster, Dieter Kratsch und Dimitrios M. Thilikos (2012), "Über exakte Algorithmen für die Baumbreite", ACM Transactions on Algorithms 9 (1): A12, doi: 10.1145 / 2390176.2390188 .
Die dort beschriebenen Methoden beinhalten einen implementierten -Algorithmus mit einigen heuristischen Optimierungen, um ihn in der Praxis schneller zu machen.O∗( 2n)
quelle
Ich habe in ICTAI 2011 eine Arbeit mit dem Titel Ein schneller paralleler Verzweigungs- und Bindungsalgorithmus für Treewidth geschrieben. Sie kann die Treewidth in Multi-Core- Systemen berechnen . Ich habe viele Heuristiken verwendet und viel Zeit damit verbracht, das Programm zu verfeinern.
Ich war ein zufälliger Student in China und habe es nicht zu einer guten Konferenz geschafft. Aufgrund meiner Versuchsergebnisse denke ich, dass mein Programm sehr schnell ist. Ich habe viele ungelöste Benchmarks in Treewidth lib gelöst und mein Programm war 40-mal schneller als ein von Zhou und Hansen in IJCAI 09 vorgeschlagener Algorithmus.
Ich arbeite nicht mehr an diesem Thema. Aber wenn meine vorherige Arbeit hilfreich ist, können Sie mein Programm (src und exe) von http://www.callowbird.com/undergraduate-stuff.html herunterladen und ausprobieren. (Trotzdem ist es auf einer etwas größeren Instanz sehr, sehr langsam.)
quelle
quelle
Hier sind zwei Umfragen zu Algorithmen zur Berechnung der Baumbreite, die hilfreich sein können. Der erste hat empirische Vergleiche und verschiedene Algorithmen, die als Java-Bibliothek implementiert sind.
quelle
Sage weiß nicht, wie man die Baumbreite genau berechnet, aber es kann Ihnen die Pfadbreite kleiner Diagramme geben.
http://www.sagemath.org/doc/reference/graphs/sage/graphs/graph_decompositions/vertex_separation.html
Ich würde mich sehr freuen zu erfahren, dass irgendetwas implementiert und öffentlich ist, um Baumzerlegungen zu berechnen
:-)
Nathann
quelle