2013-06-22 71 views
2

我想對不同情況使用模擬退火。網絡中的每個模擬退火算法都以溫度爲例給出算法。像在wiki中一樣T在模擬退火中代表什麼?

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. 

現在這個'T'代表什麼?假設我將使用模擬退火去棋。我將使用這個算法來尋找計算機的下一步。我現在的狀態(S)和價值(E)。我有下一個狀態(snew)和它們的值(enew)。那麼國際象棋將會是什麼?我需要它!這種算法是否有一般形式?我的意思是沒有這個溫度的例子,我可以得到基本的想法!我找不到任何。請幫忙。在此先感謝......

+1

國際象棋需要minimax算法。我從來沒有見過用SA來做這件事的方法(儘管如果有人找到了方法,我會感興趣)。 –

+0

@GeoffreyDeSmet其實我的問題並不在於如何使用這種算法後棋是完美的,而是如果我使用這種算法,棋將如何行動。基本上我需要實現這個比較不同的算法。找到了一些想法。我會隨機選擇任何動作,然後根據一些概率函數決定是否接受它。您可以通過以下鏈接查看想法: http://nazmialtun.blogspot.com/2011/09/solving-n-queens-puzzle-with-simulated.html 他將SA應用於N皇后 – AtanuCSE

+0

@AtanuCSE N-皇后是NP完全優化問題,在某種程度上相當於一個存在量詞的命題公式。國際象棋是一個雙人遊戲,相當於一個具有交替存在和普遍量詞的公式。這些是完全不同的問題。 – ziggystar

回答

3

網上的所有示例都使用溫度示例,因爲這是模擬退火的標準術語 - SA是一種物理啓發式技術,模擬了現實世界現象,稱爲退火。這與遺傳算法的所有例子如何談論基因和染色體非常相似。

如果您足夠深入地追溯數學,那麼在各種優化元啓發式和一些物理過程之間會存在一些令人着迷的聯繫,通常通過熵的概念彌合。

但是,在非常粗略的情況下,模擬退火中的溫度T對應於算法在搜索全局(或至少更好的局部)最小值時「跳出」局部最小值的意願或能力。高溫對應於更高的隨機性,更多地跳躍,甚至可能以更差的配置結束;低溫對應於較低的隨機性(並且最終純粹貪婪算法)並且無論多麼淺,都不能逃脫任何局部最小值。

至於如何將這個想法用於您的應用程序,那麼。它需要一些洞察力和一些創造力才能使大多數metaheuristics正確運作。你永遠不會找到關於溫度不討論SA的討論。

+0

明白了,非常感謝 – AtanuCSE