モデルのバージョンを簡素化巡回セールスマン問題

学んだ、私は、動的プログラミングの線形モデルを得ま​​した。

念のため、私は、巡回セールスマン問題のより良い簡易版、簡単な質問の意味を説明すると思います。

元巡回セールスマン問題は、各都市への最短ループへのアクセスは1と都市の間で唯一のラップを持って見つけることです。今制約を追加します。各都市では、すべての数字またはすべてが他のすべてのアクセス権を持っていないこの小さな町より町を訪問しました。全体のために我々はキュー抽象双方向キューへのアクセスを得ることができるように。

固定されている1,1を追加することで起動します。
図1に示すように
、次いで2,2位置もフロント1の背後にあってもよい加えました。
2 1
2 1
両方の場合には正当であり、我々はまた、キュー内ではないの前に、またはキューの中央の後ろ3,3の位置を追加することができます。
。1 2 3
1 2 3
3 2 1
2 3 1
、nが3に等しい場合には正当4つのみ。次の動作については、影響力のキュー状態の要素の端部のみを押しました。したがって、我々は(i、j)の状態を定義し、2つのキューは、iとjで表され、iは現在のキューの最小コスト、最大の要素、私はjが残っているよりも大きいです。(第二のケースと第三の場合は同等である)ので、状態遷移方程式を得ます。

dp[i+1][j]=min(dp[i+1][j],dp[i][j]+dis[i+1][i]);
dp[i+1][i]=min(dp[i+1][i],dp[i][j]+dis[i+1][j]);

サイズN N-1の問題は、実際に実現可能なソリューションでのみ有効です。

そして、最後のために解決し、我々

dp[n][i](i<n)

最小値を求めます。

おすすめ

転載: www.cnblogs.com/Schwarzkopf-Henkal/p/11752379.html