這篇部落格要討論乙個問題,就是如何讓計算機下棋?
有如下三種形式:
1.同人類的做法一樣,分析局勢,和將帥的安全性,這裡會有一些分析策略,還有一些戰術,這些混合在一起,最終得到下一步要走哪.不過很遺憾的是,如今的程式都不知道如何包含這類東西.
2.使用 if-then 結構
以這種結構,如果第一步走什麼,那麼後面可以走哪些步.
3.向前看並進行評估
選擇下面最好形式的乙個,要做到這點,我們需要設法評估這些形式,確定其中哪個是最好的.要評估形式的好壞需要一系列的特徵,比如:f1,f2,f3.....fn,在此基礎上我們可以對這些特徵建立一些函式,通過這個函式來計算形式的對應值,一般而言,這個函式可以用線性多項式表示:
,這就是博弈的一種方式.
4.或者是一棵包含所有肯能性的樹,然後按照人類下棋的形式,我走一步,你走一步,可以我走五十步,你走五十步.
每一層都有好幾種選擇方式,每一層選擇方式的數量,標準叫法是分支因子b,樹的深度為d,本例為2,同時還會有一定數量的葉子節點,有b^d個節點,本例中為3^2 有9個葉子結點.
假設標準的一局每個棋手要下50步,,這樣d就大約等於100,根據夏農定理,最後結果大約有10^120方個葉節點,如果用暴力搜尋的方式去評估,那所花費的時間將會是乙個天文數字.
4.極大極小化演算法
博弈基礎 極大極小搜尋
計算機博弈 也稱機器博弈 是乙個挑戰無窮 生機勃勃的研究領域,是人工智慧領域的重要研究方向,是機器智慧型 兵棋推演 智慧型決策系統等人工智慧領域的重要科研基礎。機器博弈被認為是人工智慧領域最具挑戰性的研究方向之一。機器博弈的核心技術是博弈搜尋演算法 零和博弈 zero sum game 又稱零和遊戲...
極大極小搜尋
極大極小搜尋演算法 用於圍棋,五子棋,象棋等棋類,結果有三種可能 勝利 失敗和平局。理論上可以窮舉所有的走法,這就需要生成整棵博弈樹。實際上不可行。因此搜尋時可以限 定博弈樹的深度,到達該深度則不再往下搜,相當於只往前看 n 步。如果題意是求出必勝,必敗,必和等,那麼肯定是全部搜完整一棵搜尋樹,此題...
極大極小博弈樹 轉)
2008年11月15日 星期六 11 03 這篇文章將介紹一種對於所有的gameai 遊戲智慧型 開發來說都非常重要的資料結構。對於幾乎每乙個棋類博弈遊戲程式來說,極大極小樹 the minimax tree 都是其中的核心。極大極小博弈樹 minimax game tree,簡寫為mgt,譯者注 ...