AI象棋是怎麼下棋的?
本頁的答案複述的是本站開源引擎所實現的規則。該引擎遵循亞洲象棋聯合會(WXF)規則,行棋、將死與重複局面的兩條判定都已實現:用長將或長捉逼成重複局面的一方判負,不是判和。長捉的判定還沒有經過官方判例集的校驗。凡是答案提到具體局面的,該局面都在所鏈接的參考頁上,由構建過程在發布之前逐一校驗。
直接回答
象棋AI(象棋引擎)的原理可以歸結為兩件事:搜索和評估。搜索是把雙方接下來可能的走法一層層展開,評估是給展開到的每個局面打一個分,表示對誰有利、有利多少。引擎選擇的,就是在對方也走出最好應着的前提下,最終分數最高的那一步。
搜索:往後看很多步
每個局面下,雙方往往都有幾十種合法走法,往後看幾步,局面的數量就會迅速膨胀。引擎用各種剪枝方法跳過明顯沒有希望的分支,把算力集中在關鍵變化上,所以能在短時間裡看得很深。將軍、吃子這類強制性的着法,引擎通常會看得更遠,因為戰術往往就藏在這裡。
評估:給局面打分
最傳統的評估是數子力:車、馬、炮、兵各有分值,再加上位置、將的安全、子力是否活跃等因素。近些年,不少引擎改用神經網路來評估局面,讓它從大量對局中學會判斷,評估也更接近人類的“形勢感”。子力大致值多少,可以參考子力價值。
難度是怎麼降下來的
給人練習用的低難度,通常是限制搜索深度或思考時間,或者讓它有時不走最好的那步。本站的電腦對手有四檔強度,不需要帳號就能下,還可以要提示。關於它能強到什麼程度,可以看象棋AI有多強。
相關問題
AI會從和我下的棋裡學習嗎?
一般的對弈引擎在對局中不會“記住”你,它每一步都是當場計算的。
AI的走法一定是最好的嗎?
不一定。它給出的是在自己搜索範圍和評估方法下的最好着法,高水平引擎在絕大多數局面裡非常可靠,但並不等於絕對正確。