(代po)
各位軟工版的大神們安安,跟大家分享我的鐵人賽系列文。
小弟選了一個非常冷門的主題,覺得電腦對局這麼有趣的領域居然沒有人寫過真的是太可
惜了,希望可以推更多的人入坑。
https://ithelp.ithome.com.tw/users/20169302/ironman/7684
這次的電腦對局系列文可以分成五個部分,每篇都是有連貫性的(除了幾篇意外的小插曲)
,建議按照順序閱讀。
第一部分:簡介
Day2、3、4:介紹了電腦對局的類型、複雜度與小故事。
Day8:介紹了電腦對局競賽。
第二部分:搜尋演算法
Day5、6:使用Minimax Algorithm搭配審局函數使用做出簡單的對局AI。
Day7、9:利用Alpha-Beta Pruning、Scout Algorithm等方式進行剪枝,來優化程式效能
。
Day10、11、12:著手分析通過優先展開較佳的走步來提昇剪枝效果,進階一點的Threat
Space Search,還有不能不注意的Horizon Effect。
Day16:用Bouzy's 5/21 Algorithm實作圍棋的形勢判斷,也算是一種審局函數。
Day13、14:最後利用實作圍棋征子邏輯來複習前面所學的演算法。
第三部分:Monte Carlo Tree Search
這邊介紹MCTS花了比較多的篇幅,所以我把它切出來。
Day15、17、18:介紹了MCTS的原理與優化方式。
Day19、20:介紹AlphaGo與開源框架AlphaZero General。
第四部分:進階優化方式
這部分屬於網路上能找到的資料比較少,一般人很難接觸到的部分,還有像是Bitboard等
實作細節,感覺都是透過比賽或是實驗室前輩的傳承,幾乎沒有看到網路上有相關學習資
源。
Day21:棋盤的資料結構。
Day22:利用Transposition Table增加程式效能。
Day23、24:介紹開局庫與殘局庫。
Day25、26:實作蜜月橋牌殘局庫。
Day27:通過位元運算來增加程式效能。
第五部分:生活中的應用?!
Day28、29:這邊純屬娛樂,幫大家增加一些無用的知識,但是祭品文的部分是真的有在
準備XDD。
這是去年底C_Chat版熱烈討論的[新聞] 陸「民間棋王」賽後浴缸排泄!遭質疑塞肛
我對其進行了深度的學術探討,寫成以下兩篇。
Day28 從象棋比賽作弊事件探討資料傳輸與資料結構
https://ithelp.ithome.com.tw/articles/10367074
Day29 什麼?肛門也能下棋!
https://ithelp.ithome.com.tw/articles/10367432
拜託各位多多支持,讓祭品文早日達標。