1. 人機博弈的要點
人機對弈的程式,至少應具備一下幾個部分:
a 某種在機器上表示棋局的方法,讓程式知道博弈的狀態;
b 產生合法的走法規則,是得博弈雙方公正,並可以判斷人類對手是否亂走;
c 從所有合法的走法中選擇最佳的走法的技術
d 一種評估局面優劣的方法,同上面技術配合作出智慧型選擇;
e 乙個實現遊戲的介面。
2.棋盤表示
棋盤表示就是用一種資料結構來描述棋盤和棋盤上的棋子,通常是用2維陣列。乙個典型的中國象棋棋盤是用乙個9x10的二維陣列表示。
3. 走法產生
博弈的規則哪些走法是合法的,例如對於中國象棋來說的馬走日,象走田等一些規則。
4. 搜尋技術
對於計算機來說,直接通過棋盤資訊來判別走法的好壞並不精確。除了輸贏這種局面可以可靠地判別外,
其他的判斷只能大致估計。判別兩種走法誰優誰劣的乙個好方法就是察看棋局走下去的結果。也就是向
下搜尋若干步,然後比較發展的結果。為了避免差錯,也要假設對手的思考也和我們一樣,也就是,我
們想到的內容,他也想到了。這是極大值和極小值演算法的基本原則。此演算法的複雜度是指數級別。所以
隨著搜尋深度的加大,時間開銷會急劇增大。搜尋技術的非常關鍵。
5. 估值
由於,現有的計算機的運算能力不可能一直搜尋到分出勝負的那步,在有限搜尋深度的末端,用一些靜
態的方法,來估計局面的好壞。所以這裡要設計乙個好的估值函式。
人機博弈,吃子棋遊戲(一)基本介紹
吃子棋,是小孩子學圍棋的入門棋,其規則部分取自於圍棋,但比圍棋簡單很多。1.吃子棋,在行棋時,若一方棋子沒有被打吃,則其必須落子在能夠緊對方棋子氣的位置。2.吃子棋,當一方棋子處於被打吃的狀態,則可以逃命,而不用緊對方棋子的氣。3.吃子棋,當一方棋子被吃提,則輸贏即分,吃子方勝。4.吃子棋,一般有兩...
人機博弈之(二) 棋盤表示
棋盤表示主要 的是使用什麼資料結構來表示棋盤上的資訊。一般來說與具體的棋類相關。通常,用來描述棋盤及其上棋子資訊的是乙個二維陣列。中國象棋可以用9x10個位元組的二維陣列來表示中國象棋的棋盤,陣列中每乙個位元組代表棋盤上的乙個交點,其值表明這個交點上放置的是乙個什麼棋子或是沒有棋子。但在中國象棋中,...
人機博弈之(四) 搜尋技術
諸如下棋 打牌 競技 戰爭等一類競爭性智慧型活動稱為博弈。博弈有很多種,我們討論最簡單的 二人零和 全資訊 非偶然 博弈,其特徵如下 1 對壘的max min雙方輪流採取行動,博弈的結果只有三種情況 max方勝,min方敗 min方勝,max方敗 和局。2 在對壘過程中,任何一方都了解當前的格局及過...