猴子也能懂的電腦對局,如果看完你還不懂,別擔心,那只能說明你不是猴子。
開玩笑的,如果看完你還不懂那只能說明是我寫得實在是太爛了。
我會盡量用最簡單的方式分享理論和實作,不過這邊指的猴子是程序猿,如果沒有任何程式基礎或資訊相關領域的基礎知識,可能還是會看不懂。
在這個大AI時代下,什麼東西冠上AI都會立刻變得火爆起來。
歷屆鐵人賽中也有無數的文章在介紹這塊,甚至今年鐵人賽都特別幫「生成式AI」獨立成一組了,所以我決定也來蹭一波AI熱。
AI的領域非常廣泛,但現在主流大多都是在談LLM,總感覺了無新意(其實是我根本寫不贏那些大佬),拜讀了歷屆AI組前輩們的優質文章後,我發現沒有一篇是專門介紹電腦對局的,頂多就是介紹AlphaGo時順便提到了一點點,在AI領域中比起LLM歷史更為悠久的電腦對局,居然沒有人寫過真是太可惜了,我覺得這麼有趣的領域應該要讓更多人知道,於是決定以這次的主題參賽。
目前的規劃是先介紹一些基礎的對局演算法,像是 Minimax、Scout 等搜索樹演算法,接著會探討 Monte Carlo Tree Search (MCTS) 以及一些進階的改進方法,例如 Exact win、Quick win 和 Big win 等方法。
Talk is cheap,所以中間我會搭配實作環節,讓大家能夠實際動手寫code。預計也會教大家透過 AlphaZero General 打造屬於你自己的 AlphaGo 或其他對局 AI。
最後會介紹一些優化技巧,包含開局庫與殘局庫的設計、資料結構的優化,以及利用位元運算提升效能的coding技巧。
想寫的東西有點多,也不知道30天能不能介紹得完,更不知道能不能堅持下去,但還是希望透過這次鐵人賽,讓更多人了解電腦對局,並能夠打造屬於你自己的對局 AI,甚至參加各類電腦對局競賽,讓電腦對局再次偉大XDD。
標題 | |
---|---|
day1 | 前言 |
day2 | 淺談電腦對局 |
day3 | 自動下棋機器人 |
day4 | 讓電腦下棋 |
day5 | Minimax Algorithm |
day6 | Evaluation Function |
day7 | Alpha-Beta Pruning |
day8 | 電腦對局競賽 |
day9 | Scout Algorithm |
day10 | 著手分析與優化 |
day11 | Threat Space Search |
day12 | Horizon Effect |
day13 | 圍棋征子邏輯 |
day14 | 圍棋征子邏輯2 |
day15 | Monte Carlo Method |
day16 | Bouzy's 5/21 Algorithm |
day17 | Monte Carlo Tree Search |
day18 | MCTS優化 |
day19 | AlphaGo |
day20 | AlphaZero General |
day21 | Board Representation |
day22 | Transposition Table |
day23 | Opening Book |
day24 | Endgame Database |
day25 | 蜜月橋牌殘局庫 |
day26 | 蜜月橋牌殘局庫2 |
day27 | Bitwise Operation |
day28 | 從象棋比賽作弊事件探討資料傳輸與資料結構 |
day29 | 什麼?肛門也能下棋! |
day30 | 終局 |
這邊也大力推薦一本好書「電腦對局導論」,這是世界上第一本專門介紹電腦對局的書,還是全中文的,害怕英文的人也不用擔心,作者群都是電腦對局領域中很有名的教授跟前輩們,如果看完此系列文章有激起你對電腦對局的興趣,歡迎去買一本來讀。