iT邦幫忙

2017 iT 邦幫忙鐵人賽
DAY 25
0
自我挑戰組

Julia語言—從入門到專案系列 第 25

[Day 25] Simulated annealing -- 分析

明確來說我不是只要把程式寫出來就好,我會比較希望可以把他發展成一個框架。
前面寫了一部份的原型,我後來補上了一些部份讓他可以動起來,不過我就不放上來了。
這篇我的主題會放在我怎麼構思跟分析整個框架。
我只有大致看過OOAD的書,也沒有真的認真分析過,所以整個架構上應該比較生疏,大家有發現什麼盲點請跟我說。

架構

之前其實有參考了一些PokemonGo-TSP這個專案的程式。

我大概抓出來了一些元素:

  1. 狀態:可以是hyperparameter或是一些變動的值,可以被energy function計算。
  2. Energy function或是loss function:energy function就是以狀態跟溫度為參數計算出相對應能量值,或是可以以兩個狀態跟溫度為參數直接計算出能量差的loss function。
  3. Thermo-scheduler:關係到溫度下降的曲線跟控制。
  4. Metropolis-Hastings algorithm:模擬退火法的MCMC方法之一,可謂核心。
  5. Stability Counter:偵測及紀錄目前穩定的狀態,等到穩定了就停止。

以上會把各部份拆開來實作。


上一篇
[Day 24] Simulated annealing -- thermo-scheduler
下一篇
[Day 26] Simulated annealing -- 重新實作 (i)
系列文
Julia語言—從入門到專案31

尚未有邦友留言

立即登入留言