棋類遊戲的AI
,一般使用
決策樹
模型。
透過一輪輪的迭代,計算得分,來確定每一步的走法。
在國際象棋AI中:
1,馬是3分,象是3分,這兩個都是
輕子
。
2,車是5分,後是10分,這兩個都是
重子
。
3,兵是1分。
4,王在攻擊對方時大概4分,但
王自己不能被攻擊。
王被攻擊時叫“
將軍
”,必須應對,沒有解招時就輸了。
所以,
王
一般在殘局才參加戰鬥,在
後
被兌掉之後。
後因為跟王一樣都能控制
鄰近的3x3格
,對王的壓制能力巨大。
除了“將軍”這種特殊情況外,AI都是可以透過計算
得子丟子的得分
,來評估這步
走法
好不好的。
國際象棋的棋子比較平衡,只要
分值相等
就可以兌子。
精講國際象棋入門
黃維成
生活
免費閱讀
車
兌
馬象
,或者
後
兌
車馬象
,或
後
兌
雙車
,對棋局造成的戰略影響不如中國象棋的
車
兌
馬炮
大。
單純從分值的角度來看,大子(
後、車
)的價值沒有中國象棋的
車
重要。
中國象棋的車兌掉之後,那半邊的棋盤都覺得空了很多(汗)。
它的棋子得分計算起來比較簡單,更適合AI處理。
AI處理的辦法就是,一輪輪的迭代,然後打分。得分了就是好棋,丟分了就是差棋。
只要
迭代的步數夠多
,AI就能發現
幾乎所有的陷阱
,給出正確的走法。
人工智慧會取代人類嗎?
託比·沃爾什
科技
免費閱讀
AI的運算量是非常大的,它需要把那些(人類一眼就可以看出來的)無效走法也算進去,迭代好幾步之後才會發現無效。
這些都會佔據很大的運算量,因為
大多數的走法
都屬於
無效走法
。
人會一下子就關注到棋盤的左側3列(從左往右依次是
A線、B線、C線
)。
人只要稍微熟悉國際象棋的
“知識”
,就可以得出
左側3列的4個棋子
是棋局的關鍵。
右側的7個棋子都會被人暫時
忽略
,因為它們沒法對關鍵的4個棋子造成影響。
這裡實際上是一種
降維
演算法,把分析的範圍從整個棋盤的8x8格,降低到了左側3列的3x8格。
人腦會根據“
知識
”在一瞬間完成這個降維,讓思維聚焦到這麼小的範圍內。
然後得出結論:
1,白車砍掉黑馬,
2,之後B線黑兵吃車,到了C線,
3,B線白兵比C線黑兵更靠近底線升變格(3格 vs 4格,且該白棋先走),
4,白兵變後,必勝。
所以只要車砍馬,白棋就贏了。
人類得出這個結論,只要4步。
電腦AI在窮舉完所有走法,並且迭代幾輪之後,也可以得出這個結論
。
但
它的辦法與人是不一樣的
,它要計算幾十個分支,羅列出非常多的無效走法:例如把車往前走1格,或往左移動1格,等等。
人類可以在更抽象、更高階的層面理解這類遊戲的資訊,快速得出解法,而AI沒法做到這一點。
人看到的東西,是多個層次的,從戰略到戰術,從大概到細節。
人會在適當的時候選擇粗略的估計,或者精細的推理。
人會首先確定,右邊7個棋子都不是
長距離移動
的棋子,都無法對左邊4個棋子產生干擾,然後就會重點關注左邊4個棋子。
人觀察右側7個棋子時,也是重點觀察兩個
王
的位置,其次才是剩餘的兵的位置,因為兵的威力比王小。
人可以透過學習知識,對事物產生
多個層次的理解
,並且
組合運用
。
人處理東西的時候,單純就步驟上來說,比電腦AI是快得多的。
只不過電腦的
主頻太高
了,所以就算用笨辦法窮舉,依然可以戰勝人類象棋大師。
但是對於需要深入思考的東西,電腦AI就沒法處理了。AI在處理複雜問題上是完全沒法和人相提並論的。
AI沒法恰到好處的把資訊分成多個層次,然後恰到好處的去組合應用,但人經過訓練是可以做到的。
並且,人可以把自己的理解寫成文字,作為新的知識,讓其他人也可以看懂。
想了解更多精彩內容,快來關注閒聊程式碼