n個の頂点を持つ重み付け無向グラフを考えると、 の各頂点を結ぶ最小ウェイトのパスを見つける問題に直面するライン。 最初は、これが最小スパニングツリーを見つける問題だと思った しかし、これは当てはまりません。スパニングツリーの場合には、頂点に枝番号 があるか、次数が2より大きくなることがあります。私が見つけ出す必要があるのは、 線形パスです。つまり、終点の頂点を除くすべての頂点は、度数がちょうど2です。 開始点と終了点はn個の頂点のいずれかになります。すべての頂点を一度正確に結ぶグラフの最小重みの直線パスを求めるアルゴリズム
鉱山は、私が出発点として、すべての頂点のためにこれを行う必要があります
first chose any vertex, maintain a sum
check all its neighbors such that the cost of reaching it is
least among all the neighbors
mark this neighbor as visited
add the cost to sum
repeat the procedure above until all the points have been visited.
すなわち貪欲なアプローチでした。 このアルゴリズムが正解で、複雑さが高いかどうかはわかりません。 この問題を解決するにはどうすればよいでしょうか?
パスの重みは必ずしも1である必要はありません。最小ウェイトの線形パスを見つける必要があります。探索する必要のあるポイントの数が多くない場合は、100を超えないことがあります。 – praveen
@ praveen-この削減が機能するには、ハミルトニアンパスのインスタンスをこの問題のインスタンスとしてエンコードできることを示す必要があります。ここでは、問題の完全な表現力を使用する必要はなく、問題のはるかに弱いバージョンを使用してエンコードすることができます。 – templatetypedef