回答:
私の知る限りでは、最新技術とは
Hans L. Bodlaender、Fedor V. Fomin、Arie MCA Koster、Dieter Kratsch、およびDimitrios M. Thilikos(2012)、「ツリー幅の正確なアルゴリズム」、ACM Transactions on Algorithms 9(1):A12、doi:10.1145 / 2390176.2390188。
そこで説明されている方法には、実際に高速化するためのヒューリスティックな最適化を実装したアルゴリズムが実装されています。
私はICTAI 2011で、ツリー幅の高速並列分岐およびバインドアルゴリズムという論文を書きました。マルチコアでツリー幅を計算できます。私は多くのヒューリスティックを使用し、プログラムの改良に多くの時間を費やしました。
私は中国のランダムな学部生でしたが、良い会議には参加しませんでした。しかし、私の実験結果に基づいて、私のプログラムは非常に高速だと思います。Treewidth libで未解決の多くのベンチマークを解決しました。私のプログラムは、IJCAI 09でZhouとHansenが提案したアルゴリズムよりも40倍高速でした。
私はもうこのトピックに取り組んでいません。しかし、私の以前の仕事が役立つ場合は、http://www.callowbird.com/undergraduate-stuff.htmlから私のプログラム(srcおよびexe)をダウンロードして、試してみることができます。(それでも、少し大きいインスタンスでは非常に遅いです)
役に立つかもしれない木幅を計算するためのアルゴリズムに関する2つの調査はここにあります。最初のものには経験的な比較があり、Javaライブラリーとして実装されたその他のアルゴリズムがあります。
グラフの上限、下限、または正確なツリー幅を計算するアルゴリズムは多数あります。多くの上限および下限のヒューリスティックと2つの厳密なアルゴリズム(動的プログラミングと分岐とバインドのアルゴリズム)を実装しました。このレポートでは、異なる種類のアルゴリズムを比較し、一部のアルゴリズムが優先されることを示しています。
ツリー幅は、いくつかの興味深い理論的および実用的なアプリケーションのグラフパラメーターです。この調査では、特定のグラフのツリー幅を決定し、小さな幅のツリー分解を見つけるアルゴリズムの結果を確認します。問題の漸近的な計算の複雑さを確立する両方の理論的結果、ヒューリスティックス(実験の上限と下限の両方)、前処理、正確なアルゴリズム、および後処理の作業について説明します。
Sageはツリー幅を正確に計算する方法を知りませんが、小さなグラフのパス幅を与えることができます。
http://www.sagemath.org/doc/reference/graphs/sage/graphs/graph_decompositions/vertex_separation.html
私は、ツリー分解を計算するために実装され、公開されているものがあることを知ってうれしいです :-)
ナタン