【極小化極大的應用】如何求解象棋遊戲最快贏法

寫在前面

本文爲個人手記,是對設計各種【極小化極大算法類型博弈遊戲】的設計思路的一個白話總結。

開始自言自語

由於象棋的步數比較多,走法也比較多,所以無法把所有走法都枚舉。

只能在給定的棋局裏面,遍歷可能的走法,遍歷的深度會受限於計算力,所以通常都會固定爲7層或者14層(根據算力決定)。

然後利用極小化極大算法,再7步裏面找出評分最高的那一步。(評分規則決定了算法的智慧程度,這種評分一般都由象棋高手給出指標來計算評分。)

然後我們不停的利用這個算法引擎來決定象棋的整個對弈過程,直到某一次算計。

說回來,評分規則決定了算法的智慧程度,這種評分一般都由象棋高手給出指標來計算評分。

這個象棋高中的指標如果能夠準確預測到敵人的下法,那麼就無敵了,如果無法準確預測到敵人的下法,那麼用於指導下棋的極小化極大算法將顯得很雞肋了。(至少要求評分指標都是可靠的,如果指標不可靠,那麼評分將很難對下棋起到指導作用。)

蒙特卡洛搜索樹,也是一顆極小化極大樹,只不過他通過減少廣度搜索範圍,提高搜索深度,從而提高智慧程度,很像人的思維。如果再給他一套AI寫的評分規則,將會出現很恐怖的事情。

假定在國際象棋中,你知道對手是個業餘愛好者(數學家會說,你的對手使用的是混合策略)。哈哈哈哈混合策略。混合策略是一種假定對手很差,並使用激進評分的策略。

而真正的極小化極大是保守策略,他假定對方是高手。

阿法狗就有點類似混合策略。

蒙特卡洛搜索樹: 利用一個正太分佈算法隨機指導深度遍歷模擬遊戲進行,然後將模擬的數據用於統計分析,以此來決定怎麼剪枝。這是一種利用統計學和隨機數的剪枝方法,利用大大提高搜索深度。深度越深,越接近答案,雖然會增加變數,顯得很激進。但是很適合應對混合策略的人類。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章