999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

一種優化模型對五子棋人工智能算法的分析與應用

2009-04-29 00:00:00
電腦知識與技術 2009年14期

摘要:該文介紹了一種模型的建立的思想及對于五子棋的實現方法。在對五子棋的問題解決中,本算法通過對N條規則進行選擇以確定最佳下子點。在本算法中,每條規則就是對原始數據的一次篩選,即一次鏈表刪除操作,經過N條規則的N次操作,最后留下的數據(一個坐標串)就是最好的下棋位置。該方法同樣適用于其他的一些類似問題。

關鍵詞:優化;算法;模型;五子棋;規則;篩選;鏈表操作

中圖分類號:TP311文獻標識碼:A 文章編號:1009-3044(2009)14-3775-02

Analysis and Application of Algirism of Five Chess Based on a Optimism Model

HAO Wei

(Department of Comtuter of Anhui University of Science and Technology, Huaina 232001,China)

Abstract: This article introduces a method of a optimism model. Based on several Rules which are the operations of original data. Through operations including finding, selecting and deleting data in the link table, the optimism point will present.It also functions well in the same question like five chess.

Key words: optimism; model; algirism; five chess; rules; link table operations

1 引言

本算法與使用語言無關,故用經典的C語言表示,同時具有算法簡單,效率高,可擴展性強,等特點。

2 算法分析

五子棋的規則為, 每人一對一子下, 五子橫豎斜有連續五子為勝。

如何讓計算機學會下五子棋,首先要將此問題轉化為一個計算模型,事實上從計算機角度考慮,原理圖如圖1。

讓計算機下棋事實上就是一個輸入輸出的系統結構, 根據輸入數據,通過計算輸出結果的過程。

3 建立模型數據結構

首先,應該將棋盤進行了數據化,五子棋采用的一般是15*15的棋盤,故采用的一個15*15的2維數組:MATRIX來存儲數據,為了方便建立的數組就是MATRIX[17][17],直接使用從MATRIX[1][1]- MATRIX[15][15]表示每個格子。剩下的一圈為黑邊,每個數據單元為一int數據, 表示三種情況:

無子:0白子:1黑子:2

然后每次下一次, 根據下子方和下子位置,將相應的MAXTRIX單元置1或者置2。

4算法實現

為了保持MATRIX中的數據,原始數據并不是MATRIX數據, 而是根據MATRIX新建一個鏈表, 首先是節點數據結構

Struct Point

{

int state;/* 表示當前狀態 state=0表示無子,1表示白子,2表示紅子 */

int x;/* 該點的X軸坐標 */

int y: /* 該點的Y軸坐標 */

int Kb;/* 黑子該點的總權值 */

int Kw;/* 白子該點的總權值 */

Point *next;

/* 對其他規則所需要的數據在此補充 */

};

然后是鏈表結構:

設P11(x1, y1)表示 Matrix[x1][y1]

START->P11->P12->P13->…->P2020->END

通過對原始數據進行簡單處理, 問題已經轉化成對一個鏈表的操作,如果操作這個鏈表,如圖2所示。

所以本算法事實上就是N條規則, 每條規則就是對鏈表中的數據的一次篩選操作或者說鏈表刪除操作,經過N條規則的N次刪除操作,最后留下的數據(鏈表中的最后幾個節點)就是最好的下棋位置。

用程序來表示如下:

void Caculate()

{

RuleNumber1();/* 規則一 */

RuleNumber2();/* 規則二 */

RuleNumber3();/* 規則三 */

……

RuleNumberN();/* 最后一條規則N */

}

本算法采用到的規則:

規則一: 如果當前格有子, 則不考慮, 只要用個簡單一個IF就行了

設當前指針為pt, 則只需要做一個循環,循環體內,做如下操作:

While(!EOF)

{

if(pt->state) deletepoint;

pt = pt->next;

}

規則二: 如果當前格的根據當前位置的權值來刪除節點

在判斷每個點的價值的方法,本算法所采取的辦法是用權值來確實最好的下子位置的方法。 五子棋不管是橫豎斜, 只要滿五個子就可以了, 由于橫豎斜(正斜, 反斜)四個方向獨立的, 可以分別考慮, 即計算一個方向上的權值, 然后四個方向再相加。

對單一方向的權值計算方法,以橫向右邊為例對當前位置左右四子范圍進行判斷:

a) 默認權值為2

b) 無子 不靠邊權值 +0

靠邊 權值 -1

c) 有子 己方子每一子權值 +1

對方子有且只有一次加權 -1

如圖3所示。

單一方向的權值計算共有四個, 由于他們之間是獨立的, 但是該點的價值應該體現在最大權值的方向, 并且同樣對于兩個點, 同樣最大權值的情況下, 又要考慮其他方向, 所以采用如下計算公式計算總權值:

K = a0*4^0+a1*4^1+a2*4^2+a3*4^3+a4*4^4+a5*4^5

利用此公式即可計算出的權值就可以基本上反映出當前位置的價值

利用K的計算方法, 計算出每一點的Kw和Kb然后再確實下子, 假設下一步是黑棋走, 有如下規則:

a)計算權值最大的權是多少(kbmax, kwmax)

b)如果該點沒有一個達到最大權的, 刪除該節點

更多規則:為了增加計算機的水平, 還可以在算法中繼續增加規則, 如對一下步的預測, 在幾個比較合適的點中, 對對手的下一步進行, 預測對手下一步可能下的位置, 不管從精簡算法角度, 還是從實際效果考慮, 都沒有必要對所有位置考慮, 事實上只需要對對手最可能下的一兩個位置, 然后對此位置后進行預測即可, 其他位置正常算法就可以, 不需要用推測下一步去年。 對于需要預測的位置, 再次計算新的棋局的權值, 設本步為KT1, 下一步為KT2(在節點的數據結構中增加此變量即可), 以此類推, 根據需要預測計算步數, 然后再根據KT1和KT2等的權值綜合計算出最合適的點, 將會計算機下棋的水平更具有策略性。

規則N:根據所有的計算結果所留下的最后幾個節點,綜合關系,選出最合適的點。

5 輸出結果

本程序計算機使用是紅子,所以最后根據計算的最后輸出結果將結果指向的坐標矩陣MATRIX置1,然后顯示。等待下次對手下子。

6 其他一些問題

6.1判斷勝負

每下一次子都要判斷一次, 從精簡算法角度考慮, 只需要計算最后下子的位置即可. 計算最后下子的位置的橫豎斜四個方向, 有滿五子則給出相應處理, 無則繼續。

6.2 算法的智能性

對于算法中最可能會出現低級錯誤(比如說邊角問題), 可以通過追加相應規則來解決。

6.3 算法的強壯性

本算法沒有過多循環, 沒有跳轉, 不會出現嚴重錯誤。

6.4 算法效率

本算法效率非常高, 即使在移植到手機上也會瞬間給出結果。

7 總結

本文主要介紹了五子棋算法的設計,實現和編碼整個過程。對五子棋的算法進行了簡單的分析,并設計出一套數據模型。

參考文獻:

[1] (美)萊維丁.算法設計與分析基礎[M].北京:清華大學出版社,2007.

[2] 李家同.算法設計與分析導論[M].北京:機械工業出版社,2008.

[3] 王曉東.計算機算法設計與分析[M].北京:清華大學出版社,2007.

主站蜘蛛池模板: 视频一本大道香蕉久在线播放| 亚洲一区二区日韩欧美gif| 欧美69视频在线| 亚洲精品不卡午夜精品| 国产原创演绎剧情有字幕的| 好吊妞欧美视频免费| 婷婷午夜天| 亚洲国产成熟视频在线多多 | 久久天天躁夜夜躁狠狠| 久久久久无码精品| 2020国产精品视频| 视频一区视频二区中文精品| 中国美女**毛片录像在线 | 免费a级毛片视频| 色老头综合网| 一本色道久久88综合日韩精品| 日韩成人在线一区二区| 日韩福利在线观看| av无码久久精品| 操国产美女| 喷潮白浆直流在线播放| 国产综合精品一区二区| 免费一级全黄少妇性色生活片| 91视频首页| 亚洲中文精品人人永久免费| 日本91视频| 国产在线自乱拍播放| 久久精品无码一区二区日韩免费 | 国产无遮挡猛进猛出免费软件| 亚洲资源站av无码网址| 熟妇丰满人妻| 国产免费自拍视频| 天堂在线视频精品| 国产高清又黄又嫩的免费视频网站| 国产激爽大片在线播放| 亚洲视频影院| 九月婷婷亚洲综合在线| 91色国产在线| 国产福利观看| 免费jjzz在在线播放国产| 欧美精品亚洲精品日韩专区| 日韩精品免费一线在线观看| 玖玖精品在线| a毛片基地免费大全| 六月婷婷精品视频在线观看| 午夜日b视频| 亚洲无线一二三四区男男| 制服丝袜在线视频香蕉| 欧美不卡视频在线| 在线免费看黄的网站| 一区二区在线视频免费观看| 情侣午夜国产在线一区无码| 天堂va亚洲va欧美va国产| 亚洲欧美一区二区三区图片 | 97人人模人人爽人人喊小说| 四虎永久免费网站| 国产aⅴ无码专区亚洲av综合网| 国产一级二级在线观看| 亚洲男人的天堂在线| 99视频在线看| 97无码免费人妻超级碰碰碰| 久久久久青草大香线综合精品 | 欧美a在线看| 国产精品免费福利久久播放| 伊人成人在线视频| 国产精品视频免费网站| 九色综合伊人久久富二代| 成人自拍视频在线观看| 亚洲青涩在线| 久久www视频| 试看120秒男女啪啪免费| 色妞永久免费视频| 99久久人妻精品免费二区| 国产青青操| 中文字幕永久在线看| 美女视频黄频a免费高清不卡| 日韩乱码免费一区二区三区| 国产无码网站在线观看| 国产欧美又粗又猛又爽老| 婷婷激情亚洲| 国产一在线| 国产精品综合久久久|