36
Đề tài Giới thiệu về lý thuyết trò chơi Thuật toán Min-Max&Alpha-Beta và ứng dụng trong trò chơi cờ Caro.

Thuat Toan MiniMax Va Cat Tia AlpaBetan Ung Dung Co Caro

Embed Size (px)

Citation preview

ti Gii thiu v l thuyt tr chi

Thut ton Min-Max&Alpha-Beta v ng dng

trong tr chi c Caro.Mc lc

Li m u3I.Gii thiu v l thuyt tr chi v ng dng4II.Gii thiu tr chi i khng v lch s cc chng trnh c52.1.Tr chi i khng52.2. Lch s cc chng trnh c62.3.Gii thiu v tr chi C caro (Gomoku)8III.Phn tch bi ton123.1. Biu din bi ton di dng cy tr chi (Game Tree)123.2.Chin lc tm kim133.2.1 Thut ton vt cn liu c c s dng?133.2.2.Khng gian tm kim nc i & chin lc tm kim trong c Caro14IV. Thut ton144.1.Thut ton Min-Max14 4.2.Thut ton ct ta Alpha-Beta19Gii thiu sn phm22Kt Lun25Ti Liu Tham Kho25

Li m u

L thuyt tr chi l mt nhnh ca ton hc, n s dng cc m hnh nghin cu cc tnh hung chin thut, trong cc i th c gng lm ti a kt qu thu c ca mnh.Trong thi i cng ngh thng tin pht trin mnh nh hin nay th L thuyt tr chi thu ht c rt nhiu s ch ca cc nh khoa hc my tnh do ng dng ca n trong Tr tu nhn to v iu khin hc

Trong bo co ny, em s trnh by mt trong nhng ng dng ca L thuyt tr chi, l gii thut tm kim Min-Max, Alpha-Beta v ng dng trong vic xy dng 1 chng trnh tr chi i khng, c th l tr chi c caro .

I. Gii thiu v l thuyt tr chi v ng dngTheo mt s ti liu th ln u tin l thuyt tr chi xut hin trong mt l th vit bi James Waldegrave nm 1713, trong l th th tc gi a ra li gii chin thut hn hp Minimax cho mt tr nh bi 2 ngi Leher.Tuy nhin th L thuyt tr chi ch thc s tn ti l mt ngnh khi John von Neumann xut bn mt lot cc bi bo nm 1828.John von Neumann cng l ngi u tin hnh thc ha L thuyt tr chi trong thi k trc v trong chin tranh lnh, ch yu do p dng ca n trong chin lc qun s, ni ting l khi nim m bo ph hy ln nhau (mutual assured destruction).

Sau nhiu nm pht trin th hin nay L thuyt tr chi c s dng rng ri trong nhiu ngnh khc nhau nh : Kinh t v kinh doanh, sinh hc, chnh tr hc, trit hc, khoa hc my tnh v logic, vin thng, mt s show game trn truyn hnh

Trong thi i Cng ngh thng tin pht trin nh hin nay th L thuyt tr chi ng mt vai tr ht sc quan trng, c bit trong logic v khoa hc my tnh.Mt s l thuyt logic c c s trong ng ngha tr chi.Thm vo nhng khoa hc gia my tnh s dng tr chi m phng nhng tnh ton tng tc vi nhau.

Mt s thut ton trong L thuyt tr chi gip xy dng, pht trin nhng tr chi hay, nh : thit k tr chi Nim; thit k kiu tr chi c nhn, c tnh i xng; thut ton lin quan n chin lc tm kim,Bi bo co cp n thut ton tm kim MinMax v thut ton ct ta Alpha-Beta trong vic xy dng chng trnh tr chi c caro (Gomoku).

II. Gii thiu tr chi i khng v lch s cc chng trnh c2.1.Tr chi i khng

Tr chi i khng din ra gia 2 i th.Nhn chung th tr chi thng c c im :

Mi tr chi u c 1 lut chi m cc u th u phi c gng ginh phn thng v mnh.Trn u phi c kt thc ha hoc phn nh thng thua ch khng ko di v tn.

Mi u th c i mt nc i khi ti lt ca mnh.

Cc u th u bit thng tin v tnh trng ca trn u. Mt s tr chi i khng nh : Tictactoe, C caro (Gomoku), c vua, c tng,nh hnh di ---- C vua ---- ----C tng---- ----Tictactoe---- ----Gomoku----2.2. Lch s cc chng trnh cVo nm 1950, Alan Turing - mt nh nghin cu ngi Anh i tin phong trong lnh vc my tnh s, vit chng trnh chi c u tin. Vo lc , Turing phi vit v chy chng trnh ca ng bng bt ch v giy. Chng trnh , cng nh ch nhn ca n, chi c rt ti, nhng t c mc ch: cho thy my tnh c th chi c c. Cng vo nm , Claude Shannon vch ra mt chin lc cho my tnh chi c tt. Nhng vo nhng nm 1950 tc my tnh rt chm nn khng ai dm tin on liu my tnh c th thng con ngi c khng, d trong cc tr chi n gin nh tr Checker.

Nm 1958, mt chng trnh chi c ln u tin h c i phng l con ngi. Ngi thua l mt c th k ca chnh i lp trnh ra n, c cha bao gi chi c trc v c dy chi c ch mt gi trc cuc u. i vi ngy nay chin cng ny tht nh nhoi, nhng n cho thy tri thc c th c a vo trong mt chng trnh chi c. Lng tri thc ny c o chnh xc bng mt gi hc chi.

Sau chin thng , mt s ngi trong nhm lp trnh c u tin tin on rng vo nhng nm 60 s c chng trnh chi c c lit vo hng ng kin tng th gii. Vo nhng nm cui ca thp k 60, Spassky tr thnh kin tng c th gii v cc chng trnh chi c chim c nhng th hng cao trong hng ng nhng ngi chi cao cp. Nhng nhiu ngi cho rng my tnh s khng bao gi c th gii quyt c nhng nhim v thng minh, khng th t c chc V ch c th gii.

Li tin on ny c nhc li mt ln na vo nhng nm 70, lin quan n mt cuc nh cc gia David Levy, mt kin tng quc t ngi Anh (theo phn loi ca Lin on c quc t cc ng cp cao bao gm: Kin tng quc t, i kin tng v V ch th gii) v John McCarthy, mt nh nghin cu trong lnh vc tr tu nhn to. Li thch u c a ra vo nm 1978. Trn u c din ra v chng trnh c tt nht thi , CHESS 4.7 b Levy h trong trn u c nm vn ti Toronto vi thnh tch ba vn ngi thng, mt ho v mt my thng. Levy khng ch chin thng m cn t ti s tin nh cc 1000 bng.

Nu nh mc ch ca cuc nh cc l lm cho nhng nh nghin cu phi ngh k trc khi tin on n ngy thng li, th ln nh cc ny cho thy: mc d tin on sai trong nhng nm 1958-1968 v 1968-1978, cc chuyn gia chng trnh c li tip tc tin on tip rng my tnh s t n v ch c th gii trong thp k tip theo. Nhng mt ln na, vo nm 1988, V ch c th gii vn l con ngi.

Trong nm tip theo, Deep Thought, mt chng trnh c mnh nht t xa n nay chin thng mt cch d dng Kin tng Quc t Levy. B no ca Deep Thought c 250 chip v hai b x l trong mt bng mch n, n c kh nng xt 750.000 th c trong mt giy v tm trc c n 10 nc. Cng trong nm , n l my tnh u tin h c mt i kin tng (Bent Larsen). Deep Thought tr thnh mt trong mt trm ngi chi c mnh nht th gii. Nhng trong trn u din ra vo nm 1989 gia nh V ch th gii Garry Kasparov v Deep Thought th n b nh v ch bp.

Cc li tin on li n nh cc ln trc. ba ln cc nh nghin cu tin on: 'trong thp k ti'. Nhng ln ny h li sa li l: 'trong 3 nm ti'...

Trong nm 1993, Deep Thought h Judit Polgar - lc l i kin tng tr nht trong lch s v l ngi ph n chi hay nht th gii, trong trn u 2 vn.

Trong nm 1996, Deep Blue (tn mi ca Deep Thought v lc ny n thuc hng IBM) l mt my tnh song song c 32 b x l vi 256 mch tch hp c ln, kh nng xt t 2 n 400 triu nc i mi giy) thng Gary Kasparov trong vn u tin ca trn u 6 vn, nhng li thua trong ton trn (vi t s my thng 1, ho 2 v thua 3).

Cui cng ch m mi ngi ch i ti, nhng sau 9 nm t li tin on cui v 39 nm t lc c chng trnh chi c u tin, Deep Blue chin thng nh ng kim V ch th gii Garry Kasparov vo thng 5/1997 trong mt cuc chin di y kh khn, vi t s st nt 2 thng, 1 thua v 3 ho.

2.3.Gii thiu v tr chi C caro (Gomoku)

C caro chnh l mn c logic lu i v c xa nht trn Tri t. C caro c sng to t nhiu nn vn minh khc nhau mt cch c lp. N bt u xut hin t nm 2000 trc CN sng Hong H, Trung Quc. Mt s nh khoa hc tm thy bng chng chng minh Caro c pht minh Hy lp c i v Chu M trc thi Colombo. Mn c c ca Trung Quc l Wutzu. C Caro du nhp t Trung Quc vo Nht Bn t khong nm 270 trc CN. N thng c gi l Gomoku nhng cng c cc tn gi khc tu theo thi gian v a phng nh Kakugo, gomoku-narabe, Itsutsu-ishi... Ngi ta tm thy mt tr chi c t mt di tch Nht nm 100 sau CN v thy n l mt bin th ca Caro. N lan truyn nhanh chng vi ci tn Kakugo (tr 5 qun). Cc nh s hc ni rng vo cc th k 17 v 18, mi ngi u chi tr ny-ngi gi cng nh ngi tr. Nm 1858, khi quyn sch u tin v tr chi ny c xut bn, n c gi l Kakugo. N tip tc c chi, c gi vi nhiu tn khc nhau nh Goren, Goseki, ri Gomokunarabe, Gomoku v pht trin cho n ngy nay thnh th loi phc tp nht trong h hng ng c ca n, l Renju (chui ngc trai).

Lut chi ca Gomoku c nh sau:

Bn c 15 x 15, qun en i trc.

Ai to c 5 qun lin nhau trc th thngKhi trnh cc k th Gomoku c nng cao, h nhn ra rng nu ch chi n gin nh trong Gomoku th s l mt li th qu ln cho bn tin tc bn en (thc t chnh l u th thng). Sau mt s nh ton hc chng minh c rng nu chi vi lut Gomoku trn bn c bng hoc rng hn 15x15 th en chc chn thng (sure win), v sau cch i c th cng c tm ra, h thng v phn loi.V chnh v vy, t Gomoku lm vo mt giai on khng hong. Kh nng nh thng 100 phn trm ca en lm tr chi ny mt i ngha ca n. C nhiu ci tin c xut, mt s b b qua nhanh chng, s khc lm xut hin cc bin th mi ca Gomoku. tng chung ca cc ci tin l ra mt s hn ch cho en, nhm cn bng u th i tin. Di y l mt s bin th ph bin: Gomoku. Hin nay c chi chnh thc vi bn 13x13. Khng c ho. Nu ht t th Trng thng. Cha tm c chng minh no cho thy en chc chn thng. Tuy nhin en vn c u th rt ln. ProGomoku. Chi trn bn 15x15. Nc u ca en t sn trung tm. Nc th ba (nc th hai ca en) phi t ngoi hnh vung cm. Hnh vung cm l hnh vung trung tm kch thc 5x5. Khng c hn ch cho Trng. c chng minh en chc chn thng trong bin th ny. Pente. Bin th ny khng cn ging Gomoku. Lut b sung l c th n qun i phng. Nc n qun c thc hin bng cch chn hai u mt nc hai qun i phng v n hai qun . Ai to c nc nm hoc n c 5 cp qun trc th thng. Rt ph bin M. Chi trn bn 19x19.III. Phn tch bi ton

3.1.Biu din bi ton di dng cy tr chi (Game Tree) Tr chi c th c biu din nh mt cy gm gc, nhng nt, nhng l v nhng nhnh

Gc l trng thi ban u ca tr chi.Vi mi tr chi c th th trng thi ( mi thi im) li c c trng bi nhng thng s ring

Cc nt (Node) ca cy th hin tnh trng hin ti ca tr chi, gm nt cha (Parent Node) v nt con (Children Node)

Cc nhnh ni gia cc nt th hin nc i, tc l cho bit t mt tnh hung ca tr chi chuyn sang tnh hung khc thng qua ch mt nc i no .

Cc l (leave) hay cn gi l nt l (leave node), th hin thi im kt thc khi m kt qu ca tr chi r rng.

Ngoi ra th cn mt thng s ca cy na l su (Fly) hay cn gi l mc ca cy, s tng ca cy.

Thng th mi v tr kt thc ca tr chi (nt l) s gn mt trng s, chng hn gn 1 cho chin thng, 0 cho ha v -1 cho thua trn.Ti mi nt cng c mt trng s tng ng c xc nh bng mt cch no .Da vo cy tr chi ny, ngi ta c th tm ra nc i tt ginh phn thng cho mnh (nu c th), bng cch tm kim trn cy tm ra nc i tt nht.Di y l v d v cy tr chi qua tr chi bc si Gi thit c 3 hp bi, s lng bi trong mi hp l (1,2,2). Mi lt chi ngi chi ch c bc trong 1 hp bi, vi s lng ty .Ngi chi no bc bi cui cng s l ngi thua cuc.

Da vo nh gi cy tr chi di, ta thy c nhng nt l m c trng s l 1, tc l i theo nhng nhnh no m cui cng n c nhng l y th ngi chi Max s ginh thng li.

3.2. Chin lc tm kimNh vy vi mt tr chi i khng, khi m ta biu din c tr chi di dng mt cy tr chi, th vn t ra l phi tm c chin thut i trn cy tr chi chim li th.Tc l phi c chin lc tm kim tt m bo ng i ca mnh l tt

3.2.1Thut ton vt cn liu c c s dng?Nu nh thut ton vt cn thc s dng c tm kim trn cy tr chi th ta ch cn chn nhnh cy dn ti nt chin thng i, v nh vy cc tr chi khng cn s hp dn thng c.V thc t l, trong cc tr chi i khng th sau mt vi lt i th li sinh ra rt nhiu kh nng nh tip theo (bng n t hp), ch c mt s t cc trng hp l c th tm kim theo kiu vt cn ht cc kh nng ny.Do khng dng thut ton vt cn cho chin lc tm kim c.

3.2.2. Khng gian tm kim nc i & chin lc tm kim trong c CaroNh chng ta bit, trong c caro th c sau mi nc i s trng s gim.V vy vic tm kim nc i tip theo l vic tm kim trong khng gian cc trng cn li, sau mi lt i th khng gian tm kim s gim dn

Chin lc thng c c ngi ln my dng l phn tch th c ch sau mt nc i no ca c 2 bn.Tc l trn cy tr chi, vic tm kim nc i l chn 1 nt trn cy sao cho nc i l tt .V nh gi c nt th thng phi nhn xa, lin quan n su ca cy (tng ng vi vic ngi chi phi nhn xa xem bn c c nhng kh nng bin i no sau mt s nc, t nh gi c tt xu ca th c hin ti) Vi my tnh th th c ny c nh gi tt hn th c kia nh so snh im ca th c do b lng gi tr li.V khng gian tm kim l qu ln nn chng ta gii hn cho my tnh ch tm kim mt su nht nh, v tt nhin su cng ln th chng trnh cng thng minh nhng tr gi v mt thi gian

IV.Thut ton

4.1.Thut ton Min-Max

Trong 2 ngi chi th mt ngi gi l ngi chi cc i (Max) v i th ca h l ngi chi cc tiu (Min).C 2 u th u c gng i nhng nc th no im tuyt i ca mnh ln hn hay cao nht c th.Tc l ngi chi Max s tm cch lm im ca mnh cao hn v lm im ca i th bt m hn (gim v tr s) .Trong khi ngi chi Min th ngc li, s c gng lm cho im ca mnh m hn v lm cho im ca i th gim.

Gii thut tm kim Min-Max c s dng xc nh tt c nhng din bin tip theo ca tr chi cho n tng c yu cu.im s ban u c gn cho l, sau bng cch lng gi cc nc i, im s c gn cho cc tng trn qua gii thut Min Max, thut gii thc hin mt lt ct cho trc v tnh im trn .

tng c bn ca thut gii Min-Max theo quy

Nu mc ang xt l ngi chi cc tiu th p dng thut ton Min-Max cho cc con ca n.Lu kt qu l gi tr nh nht.

Nu mc ang xt l ngi chi cc i th p dng thut ton Min-Max cho cc con ca n.Lu kt qu l gi tr ln nht.

Nu mc ang xt l l (tng cui cng ca cy tm kim), tnh gi tr tnh ca th c hin ti ng vi ngi chi .Ghi nh kt qu.M 1MinMax(x){ // x l nt mun tnh im

If x is a leaf

// x l nt l

Return score of x;

Else

If x in a minNode

// ngi chi min

For allChildren of x : v1,,vnReturn min {MinMax(v1),,Min-Max(vn)}

Else

For allChildren of x : v1,,vnReturn max {Min-Max(v1),,Min-Max(vn)}

}Tuy nhin trn mt cy c kch thc ln th ta khng th tm ht tt c cc nt m ta ch gii hn trong mt s tng ca cy v xem nh y l m phng gn ng ca mt cy Min-Max (cha bit) bng cch gn trng s cho cc l ca n.Trng s y l trng s khng cn chnh xc tuyt i m l c lng.Trng s nhn c theo cch ny gi l c tnh ton vi s gip ca hm lng gi, hm ny c xy dng vi ngi dng da trn s hiu bit v kinh nghim.M 2function MinMax (pos, depth): integer;

{

if depth = 0 then //t n gii hn

MinMax = Eval (pos) //Tnh gi tr th c pos

else

{

Gen (pos); // Sinh ra mi nc i t th c pos

while cn ly c mt nc i m do

{

pos = Tnh th c mi nh i m;

value = MinMax (pos, depth-1); // Tnh im ca pos

}

}

}Tham s depth su tm kim gip ta bit phi tm n u, tham s pos cho bit th c hin ti t bit cch tnh tip. Gi tr tr v ca hm chnh l im ca th c pos. Hm lng gi Eval s nh gi c cht lng ca th c pos hin ti. Cc th c con pos' l cc th c c to ra t pos bng cch i mt nc i hp l x no . Do ta phi c cc lnh thc hin i qun n cc th c mi. bit t th c pos c th i c nhng nc no, ta dng mt th tc Gen c tham s l th c cha pos. Th tc ny s ct cc th c con pos' vo b nh (dng danh sch). Vic tip theo l ta ly tng th c ra v p dng tip th tc MinMax cho n tnh im value ca n.M 3function MinMax (pos, depth): integer;

{ if depth = 0 then MinMax = Eval (pos) // Tnh gi tr th c pos

else

{best = -INFINITY; // m v cng

Gen (pos); // Sinh ra mi nc i t th c pos

while cn ly c mt nc i m

do

{

pos = Tnh th c mi nh i m;

value = -Minimax (pos, depth - 1);

if value > best then best = value;

}

MinMax = best; //Tr v gi tr tt nht

}

}Thng thng, bn c c biu din bng cc bin ton cc. Do thay cho truyn tham s l mt bn c mi pos vo th thc MinMax th ngi ta bin i lun bin ton cc ny nh thc hin nc i "th" (nc i dn n bn c mi pos). Sau khi MinMax thc hin vic tnh ton da vo bn c lu bin ton cc th thut ton s dng mt s th tc loi b nc i ny. Nh vy MinMax b cc tham s pos nh sau:

M 4function MinMax (depth): integer;

{

if depth = 0 then MinMax = Eval // Tnh th c pos trong bin ton cc

else

{

best = -INFINITY;

Gen; // Sinh ra mi nc i t th c pos

while cn ly c mt nc i m do

{

thc hin nc i m;

value = -MinMax (depth - 1);

b thc hin nc i m;

if value > best then best = value;

}

MinMax = best;

}

} nh gi thut ton :Gi s h s nhnh trung bnh ca cy l a , xt su b th s nt y phi lng gi l ab .Thc t s nhnh kh ln nn ch cn xt su nh (c nh hn 10) th s nt cn xt cng rt ln.

Hnh v v d vi s nhnh l 5

DepthNode Count

01

15

8390625

n5n

4.2.Thut ton ct ta Alpha-Beta

Thut ton ct ta Alpha Beta l ci tin ca thut ton Min Max vi t tng Nu thy mt vic lm l t th khng nn mt thi gian xem n t n mc no .

Thut ton lm gim s nt cn thit ca vic tm kim khng lng ph thi gian tm kim nhng nc i bt li r cho ngi chi.Gii thut Alpha Beta ci tin so vi Min Max bng cch thm vo 2 tham s l alpha v beta.Chng cho bit cc gi tr nm ngoi khng [alpha, beta] l cc im khng cn xem xt na.Th tc Alpha Beta c bt u ti nt gc vi gi tr ca alpha l - infinity v beta l + infinity .Th tc s t gi quy chnh n vi khong cch gia cc gi tr alpha v beta ngy cng hp dn.M 1

evalutemin(x, B) // x l nt Min{ Alpha=+infinity; if x = leaf return the score; else for all children v of u { Val = evalutemax(v, B); alpha= Min{alpha, Val}; if Alpha= Beta then exit loop; } return Alpha; }

M 2function AlphaBeta(alpha, beta, depth): integer;

{

if depth = 0 then

AlphaBeta = Eval // Tnh gi tr th c pos

else

{

best = -INFINITY;

Gen; //Sinh ra mi nc i t v tr pos

while (cn ly c mt nc i m) and (best < beta) do

{

if best > alpha then

alpha = best;

thc hin nc i m;

value = -AlphaBeta(-beta, -alpha, depth-1);

b thc hin nc i m;

if value > best then best = value;

}

AlphaBeta = best;

}

} nh gi thut ton :Ngi ta tnh ton c l, trong iu kin l tng th thut ton Alpha Beta ch phi xt s nt theo cng thc

+ 2.ab/2 - 1 nu b chn

+a(b+1)/2 + ab/2 - 1 nu b l

Trong a l s nhnh trung bnh ca cy, b l su ca cy

Qua cng thc trn th ta thy c thut ton Alpha Beta phi xt s nt t hn thut ton Min Max kh nhiu. Chng hn ly a = 30, b=6 th s nt phi xt vi thut ton Alpha Beta l 53999 trong khi s nt cn xt vi thut ton MinMax l xp x 2.2 x 1023

Gii thiu sn phm

Chng trnh c lp trnh bng ngn ng C#, code v chng trnh c ghi trong CD i km.

Di y l mt s hnh nh ca chng trnh khi chy thc t

Khi bn chin thng

Khi my chin thng

Kt Lun

Nh vy qua bo co ta thy c tm quan trng ca L thuyt tr chi, mt trong rt nhiu l thuyt ca n l gii thut tm kim Min Max, gii thut ct ta Alpha Beta v ng dng vo trong tr chi i khng.

Ti Liu Tham Kho

1. http://vi.wikipedia.org/wiki/L_thuyt_tr_chi 2. http://www.ocf.berkeley.edu/~yosenl/extras/alphabeta/alphabeta.html3. Tr tu nhn to

4. Mt s chng trnh Gomoku m ngun m

[email protected]

[email protected] 25