Je voudrais calculer la largeur d' arbre d'un graphique. Il existe de très bonnes heuristiques pour d'autres problèmes de graphes NP-durs tels que VF2 pour l'isomorphisme de sous-graphe, avec du code disponible en igraph par exemple. Je les ai essayés sur mes graphiques et je trouve qu'ils fonctionnent très rapidement pour mes données.
Existe-t-il des algorithmes rapides pour le calcul de la largeur d'arbre dans la même veine?
Réponses:
Pour autant que je sache, l'état de l'art est ce qui est rapporté dans
Hans L. Bodlaender, Fedor V. Fomin, Arie MCA Koster, Dieter Kratsch et Dimitrios M. Thilikos (2012), «On exact algorithms for treewidth», ACM Transactions on Algorithms 9 (1): A12, doi: 10.1145 / 2390176.2390188 .
Les méthodes décrites ici incluent un algorithme implémenté avec quelques optimisations heuristiques pour le rendre plus rapide dans la pratique.O∗( 2n)
la source
J'ai écrit un article intitulé A Fast Parallel Branch and Bound Algorithm for Treewidth, dans ICTAI 2011. Il peut calculer la largeur d'arbre en multicœur . J'ai utilisé beaucoup d'heuristiques et passé beaucoup de temps à affiner le programme.
J'étais un étudiant de premier cycle au hasard en Chine et je n'ai pas pu assister à une bonne conférence. Mais sur la base des résultats de mon expérience, je pense que mon programme est très rapide. J'ai résolu de nombreux points de repère non résolus dans Treewidth lib, et mon programme était 40 fois plus rapide qu'un algorithme proposé par Zhou et Hansen dans IJCAI 09 ..
Je ne travaille plus sur ce sujet. Mais si mon travail précédent est utile, vous pouvez télécharger mon programme (src et exe) depuis http://www.callowbird.com/undergraduate-stuff.html et essayer. (encore, c'est très très lent sur une instance légèrement plus grande)
la source
la source
Voici deux enquêtes sur les algorithmes de calcul de la largeur d'arbre qui peuvent être utiles. Le premier a des comparaisons empiriques, et il a divers algorithmes implémentés comme une bibliothèque Java.
la source
Sage ne sait pas exactement comment calculer la largeur d'arbre, mais il peut vous donner la largeur de chemin des petits graphiques.
http://www.sagemath.org/doc/reference/graphs/sage/graphs/graph_decompositions/vertex_separation.html
Je serais verrryyyyyyyy heureux d'apprendre qu'il y a quelque chose d'implémenté et public pour calculer les décompositions d'arbres, cependant
:-)
Nathann
la source