私はシミュレーテッド アニーリング (SA) と TSP の解決におけるその有効性に関する多くの文献を読んできました。これにより、SA を使用してsource
todestination
パス検索だけを最適化できるかどうかを考えるようになります。
基本的な SA 疑似コード (wiki から)
s ← s0; e ← E(s) // Initial state, energy.
sbest ← s; ebest ← e // Initial "best" solution
k ← 0 // Energy evaluation count.
while k < kmax and e > emax // While time left & not good enough:
T ← temperature(k/kmax) // Temperature calculation.
snew ← neighbour(s) // Pick some neighbour.
enew ← E(snew) // Compute its energy.
if P(e, enew, T) > random() then // Should we move to it?
s ← snew; e ← enew // Yes, change state.
if enew < ebest then // Is this a new best?
sbest ← snew; ebest ← enew // Save 'new neighbour' to 'best found'.
k ← k + 1 // One more evaluation done
return sbest // Return the best solution found.
これは解決策を表していますs0
(つまり、私の場合は既にソース - 宛先パスを意味します)。私の質問は、最大フロー アルゴリズムまたはダイクストラを使用する以外に、これらの「解決策」をどのように生成するかです。