code-prettify

4.09.2013

[Metaheuristics] Solve N-Queen Problem with Random-Restart Hill-Climbing (.js)

人工智慧課也上到啟發式演算法的部分,
提到用 Hill-Climbing (Iterative Improvement) 解八皇后問題
最近在練習 javascript, 就順手寫了一下


另外也寫了使用 DFS 的版本 可以用來比較

因為把 Hill-Climbing 寫得有點隨意, 在盤面較小時的表現並不突出
不過還是可以觀察到 在棋盤變大時, Hill-Climbing 的計算時間成長是遠比 DFS 低的

另外棋盤是用 html5 canvas 畫的 請不要使用過舊的瀏覽器 (如IE8之前的版本) 觀看




Input the amount of queens and select a algorithm:
queens by




用到的所有程式碼都有放在 github :

https://github.com/NawaShoLin/funAlgorithmsJS/tree/master/AI/8queens
因為是第二次寫javascript, 可能感覺有點醜 請見諒


關於演算法的內容 因為近期有打算另外寫一篇介紹簡單的啟發式演算法
就不在此詳述了

Keywords:
Metaheuristics, Hill-Climbing, Iterative Improvement, 8 queen, n queen, DFS, 八皇后問題, 啟發式演算法

No comments :

Post a Comment