Algoritmos rápidos de ancho de árbol

18

Me gustaría calcular el ancho de árbol de un gráfico. Hay muy buenas heurísticas para otros problemas de gráficos NP-hard, como VF2 para isomorfismo de subgrafo, con código disponible en igraph, por ejemplo. Los probé en mis gráficos y encuentro que se ejecutan muy rápido para mis datos.

¿Hay algún algoritmo rápido para el cálculo del ancho de árbol en una línea similar?

felix
fuente
1
Para su información, recientemente, Treepers / Szeider conectó el ancho de árbol a la dureza del SAT en FOCS, espero escuchar de otros en ese chat / discusión
vzn

Respuestas:

19

Hasta donde yo sé, el estado del arte es lo que se informa en

Hans L. Bodlaender, Fedor V. Fomin, Arie MCA Koster, Dieter Kratsch y Dimitrios M. Thilikos (2012), "Sobre algoritmos exactos para el ancho de árbol", Transacciones ACM en Algoritmos 9 (1): A12, doi: 10.1145 / 2390176.2390188 .

Los métodos descritos allí incluyen un algoritmo implementado con algunas optimizaciones heurísticas para que sea más rápido en la práctica.O(2norte)

David Eppstein
fuente
2
Gracias. Las referencias 2, 8 y 15 que dan heurísticas de límite superior e inferior podrían ser en la práctica las más útiles de ese documento.
felix
10

Escribí un artículo llamado A Fast Parallel Branch and Bound Algorithm for Treewidth, en ICTAI 2011. Puede calcular el ancho de árbol en varios núcleos . Utilicé muchas heurísticas y pasé mucho tiempo refinando el programa.

Fui un estudiante universitario aleatorio en China y no pude asistir a una buena conferencia. Pero según los resultados de mi experimento, creo que mi programa es muy rápido. Resolví muchos puntos de referencia sin resolver en Treewidth lib, y mi programa fue 40 veces más rápido que un algoritmo propuesto por Zhou y Hansen en IJCAI 09 ..

Ya no estoy trabajando en este tema. Pero si mi trabajo anterior es útil, puede descargar mi programa (src y exe) desde http://www.callowbird.com/undergraduate-stuff.html y probarlo. (Aún así, es muy muy lento en una instancia un poco más grande)

Yang Yuan
fuente
5

O(2k)

M. kanté
fuente
1
2O(k)O(Cknorte)C
5

Aquí hay dos encuestas sobre algoritmos para calcular el ancho de árbol que pueden ser útiles. El primero tiene comparaciones empíricas, y tiene varios algoritmos implementados como una biblioteca Java.

Hay muchos algoritmos para calcular un ancho de árbol superior, inferior o exacto de un gráfico. Hemos implementado una gran cantidad de heurísticas superiores e inferiores y dos algoritmos exactos (una programación dinámica y un algoritmo de ramificación y enlace). Este informe compara los diferentes tipos de algoritmos y muestra que se prefieren algunos algoritmos.

Treewidth es un parámetro gráfico con varias aplicaciones teóricas y prácticas interesantes. Esta encuesta revisa los resultados algorítmicos para determinar el ancho del árbol de un gráfico dado y para encontrar una descomposición del árbol de ancho pequeño. Se discuten tanto los resultados teóricos, que establecen la complejidad computacional asintótica del problema, como el trabajo experimental en heurística (tanto para límites superiores como para límites inferiores), preprocesamiento, algoritmos exactos y posprocesamiento.

vzn
fuente