Professional Documents
Culture Documents
Luanvan - Nguyen Thi Le
Luanvan - Nguyen Thi Le
----------------
NGUYN TH L
H Ni - 2009
Mc lc
LI NI U..........................................................................................................3
CHNG 1: TNG QUAN V CC VN TM KIM...............................5
1.1 Bi ton tm kim v khng gian trng thi.................................................................5
1.1.1 Bi ton tm kim...................................................................................................5
1.1.2 Khng gian tm kim.............................................................................................7
1.2 Cc k thut tm kim c bn.....................................................................................10
1.2.1 Tm kim khng c thng tin...............................................................................11
1.2.2 Tm kim c thng tin..........................................................................................14
1.2.3 Tm kim i khng.............................................................................................15
CHNG 3: NG DNG....................................................................................50
3.1 Phn tch bi ton........................................................................................................50
3.1.1 Tr chi................................................................................................................50
3.1.2 C s l thuyt.....................................................................................................52
3.2 Ci t chng trnh...................................................................................................52
3.2.1 Cu trc chng trnh v mi quan h gia cc lp chnh..................................52
3.2.2 Lp Form1...........................................................................................................54
3.2.3 Lp CBoard..........................................................................................................54
3.2.4 Lp gameAI.........................................................................................................55
3.3 Mt s giao din v kt qu chy chng trnh.........................................................66
KT LUN.......................................................................................................................70
Ti liu tham kho............................................................................................................71
LI NI U
L thuyt tr chi (game theory) thng c coi l mt nhnh ca ton hc
ng dng v kinh t hc ng dng nhm nghin cu v cc tnh hung trong cc
bn tham gia tr chi p dng nhng chin lc ra quyt nh nhm ti u ha kt
qu mnh nhn c. Ban u L thuyt tr chi c pht trin nh mt cng c
nghin cu hnh vi kinh t hc, ngy nay L thuyt ny c s dng trong
nhiu ngnh khoa hc nh Sinh hc, Trit hc, Chnh tr hc c bit L thuyt
tr chi thu ht c s ch ca cc nh Khoa hc my tnh do ng dng ca
n trong Tr tu nhn to v iu khin hc.
Tr tu nhn to vn dng L thuyt tr chi nghin cu v cc tr chi
i khng v thit k chng trnh chi c gia Ngi v My tnh. Do bng n t
hp qu ln ca cy tr chi m c ngi v my khng th (v khng bao gi) c
th tm kim vt cn (ht mi kh nng). Do phng php tm kim duy nht l
ch tm kim n mt su gii hn no v chn nc i dn n mt th c c
li nht cho mnh. Do phi tnh c kh nng chng tr ca i phng nn ta khng
dng c cc thut ton tm kim thng thng m phi dng mt thut ton tm
kim ring cho cy tr chi, l thut ton theo chin lc Minimax. y cng l
chin lc hiu qu p dng trong cc tr chi c tng bng khng. Chng ta u
bit, nhiu tnh hung trong thc t c bit l trong lnh vc Kinh t, Chnh tr c
th nhn nhn nh mt tr chi c tng bng khng. Do vic nghin cu chin
lc tm kim nc i cho dng tr chi ny c th mang li nhng ngha thc
tin nht nh.
Ni dung ca lun vn tm hiu v nghin cu v thut ton tm kim i
khng Minimax, cc ci tin ca n v ng dng trong tr chi c tng bng khng.
Ni dung bn lun vn c chia lm 3 chng:
Chng 1 trnh by mt cch tng quan v cc vn tm kim : bi ton tm
kim, biu din vn bng khng gian trng thi v cc k thut tm kim c bn.
Chng 2 trnh by gii thut tm kim Minimax v gii thut ci tin Alphabeta p dng cho cc tr chi vi tng bng khng. Mi gii thut c trnh by
gm cc ni dung: tng, th tc thc hin gii thut v nh gi.
Chng 3 trnh by mt ng dng ca thut ton tm kim Minimax p dng
cho tr chi xp cc qun hu ln bn c c chng ngi vt.
Trong thi gian hc tp v nghin cu hon thnh lun vn ny, tc gi
nhn c s quan tm, hng dn, ng gp ca cc thy c, cc bn b v ngi
thn.
Trc ht, tc gi xin c dnh li cm n chn thnh v lng bit n su
sc nht ti gio vin hng dn ca mnh l Tin s Nguyn Th Hng Minh, ngi
nh hng, gi m nhng tng su sc v hiu qu, tn tnh ch bo gip
tc gi v mi mt c th hon thnh nhim v nghin cu.
Lun vn c thc hin bng nhng kin thc m tc gi c trang b
trong sut 2 nm hc ti Khoa Ton - C - Tin, Trng i Hc Khoa hc t nhin
vi s ging dy nhit tnh ca cc ging vin v s hng say hc tp ca cc hc
vin. Li cm n chn thnh xin c gi ti cc thy, c trong khoa Ton-C-Tin
hc, c bit cc thy c trong b mn Tin hc, cc anh, ch v bn b trong cng
lp cao hc chuyn ngnh Bo m ton hc cho my tnh v h thng tnh ton
kha 2007-2009.
Li cm n cui cng xin c dnh cho gia nh v nhng bn b thn
thit, nhng ngi dnh s quan tm v ng vin ht mc tc gi hon thnh
tt bn lun vn ny.
H ni, thng 10 nm 2009
1 Pcost(Ti 1 , Ti )
n
Trong , Ti thuc tp hp S (gi l khng gian trng thi state space) bao
gm tt c cc trng thi c th c ca bi ton v Pcost(Ti-1,Ti) l chi ph bin
i t trng thi Ti-1 sang trng thi Ti. Tuy nhin, t mt trng thi Ti-1 ta c nhiu
cch bin i sang trng thi Ti. Khi ni n mt bin i c th t Ti-1 sang Ti ta
s dng thut ng hng i (vi ng ni v s la chn).
TG
T0
Hnh 1.1: M hnh chung ca cc vn -bi ton phi gii quyt bng phng
php tm kim li gii. Khng gian tm kim l mt tp hp trng thi - tp cc nt
ca th. Chi ph cn thit chuyn t trng thi ny sang trng thi khc c
biu din di dng cc con s nm trn cung ni gia hai nt tng trng cho hai
trng thi.
1.1.2.2 Biu din vn trong khng gian trng thi
Ta s xt vic biu din mt vn trong khng gian trng thi sao cho vic
gii quyt vn c quy v vic tm kim trong khng gian trng thi. Mt phm
vi rng ln cc vn , c bit cc cu , cc tr chi, c th m t bng cch s
dng khi nim trng thi v php chuyn trng thi hay l php chuyn (php bin
i trng thi).
V d: Trong tr chi c vua, mi cch b tr cc qun trn bn c l mt
trng thi. Trng thi ban u l s sp xp cc qun lc u cuc chi. Mi nc i
12384765
), left (y
qun sang tri ), right (y qun sang phi ). R rng l, cc php chuyn ny
ch l cc php chuyn b phn; chng hn, t trng thi ban u (hnh bn tri), ta
ch c th p dng cc php chuyn down, left, right.
Trong v d trn vic tm ra mt biu din thch hp m t cc trng thi
ca vn l kh d dng v t nhin. Song trong nhiu vn vic tm hiu c
biu din thch hp trong cc trng thi ca vn l hon ton khng n gin.
Vic tm ra dng biu din tt cho cc trng thi ng vai tr ht sc quan trng
trong qu trnh gii quyt mt vn . C th ni rng, nu ta tm c dng biu
din tt cho cc trng thi ca vn , th vn hu nh c gii quyt.
10
11
phng php tm kim khc da trn cc cu trc d liu chuyn bit s dng cy
tm kim nh phn cn bng (self-balancing binary search tree) v i hi thi gian
chy O(log n). Cc gii thut loi ny c th coi l m rng ca t tng chnh v
tm kim nh phn cho php chn v xa nhanh.
12
thut ton Dijkstra, thut ton Kruskal, gii thut lng ging gn nht v gii
thut Prim [3]. Cc thut ton ny c th c coi l cc m rng ca cc thut
ton tm kim trn cy: tm kim theo chiu su, tm kim theo chiu rng.
Thut ton Dijkstra l mt thut ton gii quyt bi ton ng i ngn nht
ngun n trong mt th c hng khng c cnh mang trng s m. Thut ton
ny c th tnh ton tt c cc ng i ngn nht t mt nh xut pht cho trc s
ti mi nh khc m khng lm tng thi gian chy.
Thut ton Kruskal l thut ton xy dng cy bao trm ngn nht bng cch chn
thm dn cc cung vo cy.
13
Thut ton Prim: l thut ton nhm xy dng cy bao trm ngn nht. T tng
ca thut gii Prim l chn a dn vo cy T cc nh k tt nht trong s cc
nh cn li. Thi gian thc hin gii thut Prim l O(n2).
Xy dng hm nh gi
14
Hai chin lc tm kim c thng tin quan trng l tm kim tt nht - u tin
(best-first-search) v tm kim leo i (hill-climbing search).
Tm kim tt nht u tin: l tm kim theo chiu rng c hng dn
bi hm nh gi. Nhng n khc tm kim theo chiu rng ch, trong tm kim
theo chiu rng ta ln lt pht trin tt c cc nh mc hin ti sinh cc nh
mc tip theo, cn trong tm kim tt nht - u tin ta chn nh pht trin l
nh tt nht c xc nh bi hm nh gi (tc l nh c gi tr hm nh gi l
nh nht), nh ny c th mc hin ti hoc cc mc trn.
Thut ton tm kim leo i: thc cht l thut ton tm kim theo chiu
su c hng dn bi hm nh gi. Song khc vi tm kim theo chiu su, khi
ta pht trin mt nh u th bc tip theo, ta chn trong s cc nh con ca u nh
c nhiu ha hn nht pht trin, nh ny cng c xc nh bi hm nh gi.
15
1.2.3.2 Cy tr chi
Cc trng thi bn c khc nhau (hay cn gi l mt th c, tnh hung c)
trong qu trnh chi c th biu din thnh mt cy tm kim (c gi l cy tr
chi - hnh 1.3) v ta s tin hnh tm kim trn cy tm c nc i tt nht.
Cy tr chi c cc nt l cc tnh hung khc nhau ca bn c, cc nhnh ni gia
cc nt s cho bit t mt tnh hung bn c chuyn sang tnh hung khc thng
qua ch mt nc i n no . Tuy nhin, cc nc i ny din ra theo cp do hai
u th ln lt tin hnh. su ca cy tr chi l s tng ca cy. Thut ng
nc i c thng nht l mt ln i ca mt u th hoc mt ln i phn ng
li ca i th bn kia. Ch iu ny khc vi thi quen dng trong thc t mt
nc i bao gm ln i ca ta v mt ln i ca i th. Ni cch khc, nc i
y thc cht ch l "na nc" theo cch hiu ca lng c.
Trng thi bn c gc (ply=0)
Lt ta i
Trng thi bn c mi (ply=1)
Lt i phng i
Trng thi bn c mi (ply=2)
16
1.2.3.3. Vt cn
Dng mt thut ton vt cn tm kim trn cy tr chi dng nh l mt
tng n gin. Ta ch cn chn nhnh cy s dn ti nc thng i qun l
m bo thng li. Nu ng vy, cc loi c s tr thnh cc tr chi bun t, v
khng cn u nhng b quyt huyn o thn k v bn c s chng khc g bn
tnh. Rt tic rng, cch lm ny li khng th thc hin c do c hin tng
bng n t hp. V d, nu t mt th c, trung bnh c kh nng i c 16 nc
i khc nhau (ta gi l h s nhnh con ti mi nt l b = 16). Nh vy, sau mt
tng ta s c 16 nt con, mi nt ny li c th c 16 con na. Tng s nt con
su th hai l 16x16 = b2. C nh vy su d s c bd nt. Nu gi s su ca
cy l 100 (h s nhnh 16 v su 100 u l nhng con s cn nh hn con s
thng gp trong tr chi c), th s nhnh phi duyt ln n 16 100 hay xp x 10120
- mt con s qu ln.
V s cc kh nng tng qu nhanh, ch c mt s t nhng vn n gin
l thch hp vi kiu tm kim vt ht mi kh nng ny (kiu tm kim vt cn i
hi phi kim tra tt c cc nh). Do , cc phng php tm kim khc ra i
v pht trin. Ngc li, nu c mt phng php lun lun chnh xc nhm nh
gi mt th c ny l tt hay km so vi th kia, th tr chi tr thnh n gin bng
cch chn nc i dn ti th c tt nht. Do s khng cn phi tm kim g na.
Rt tic, cc th tc nh vy khng h c. Ta cn c chin lc tm kim trong tr
chi.
17
1
b
d
b*b=b2
Th
i
gi
an
bd
18
19
20
21
m
n
i1 pi 1, j 1 q j 1.
M ( p , q ) pi M ( ai , b j ) q j
i 1 j 1
M (ai , q ) M (ai , b j )q j .
j 1
22
S m bo cc i (Maximum Security)
3. Ta dng P v Q k hiu ln lt l tp tt c cc chin lc hn hp sn c
ca ngi chi 1 v ngi chi 2.
4. Mc ch ca ngi chi 1 l chn mt chin lc ngu nhin p t P sao cho
cc i M(p,q). Cng thi im , mc ch ca ngi chi 2 l chn mt chin
lc ngu nhin q t Q sao cho cc i li ch ca n, ngha l lm cc tiu M(p, q).
Cc lut chi yu cu mi ngi chi chn chin lc ca mnh mt cch hon ho
b qua s la chn ca i th.
5. Mi chin lc hn hp p thuc P, mc m bo ca ngi chi 1 c nh
ngha l:
M ( p, q ) .
v1(p)= min
q
n
23
(1)
(2)
24
v2 M(p,q*) p P.
(4)
Chin lc q* c gi l chin lc Minimax.
Mi quan h gia gi tr cc i v gi tr cc tiu
- Nu ngi chi 1 dng chin lc Maximin, n m bo li ch ti thiu l v1 .
v1(p) v1 M(p*,q) q Q
Tng t, nu ngi chi 2 dng chin lc Minimax, n m bo tn tht khng
ln hn v2, ngha l tng ng vi vic m bo ngi chi 1 c th nhn c
li nhun khng ln hn v2.
M(p, q*) v2 v2(p*) p P
V vy:
M(p, q*) v2 p P
M(p*,q*) v2
v 1 M(p*,q) q Q
v1 M(p*,q*)
v1 v2
(5)
25
(b)
j M (ai , b j ) q j v
26
vi j= 1, 2,, n
vi i= 1, 2,, m
iu kin (3a) ni rng tn tht trung bnh cho ngi chi 2 dng chin lc thun
ty bt k no khng nh hn v. Tng t iu kin (3b) ni tn tht trung bnh ca
ngi chi 1 dng chin thut thun ty bt k th khng ln hn v.
Trong nh l Minimax, von Neumann (1928) chng minh s tn ti tng qut ca
cc nghim Minimax trong cc chin lc ngu nhin ha cho cc tr chi hu hn
bc, hai ngi chi v tng bng khng. Vi cc tr chi ny, nh l Minimax
tng ng v mt l-gc vi s tn ti ca cn bng Nash.
nh l Minimax cn c pht biu nh sau:
Vi mi tr chi c tng bng khng vi hai ngi chi th lun tn ti mt chin
lc cn bng.
Phn chng minh nh l ny c th xem trong ti liu tham kho s [10].
T c im ca tr chi c tng bng khng vi hai ngi chi (Zero-sum-game)
v t nh l Minimax nn thut ton Minimax thch hp vi loi tr chi ny. V
m bo khi thut ton ng dng cho cc tr chi ny s chc chn c li gii.
2.2.1 tng
Hai i th trong mt tr chi c gi l MIN v MAX. MAX i din cho
i th quyt ginh thng li hay c gng ti a ha u th ca mnh. Ngc li
27
28
1
X
MAX i X
X
X
-1
1
MIN i O
X
O
X
X
X
X
O
X
X
O
X
X
O
O
X
X
0
MIN i O
-1
0
MAX i X
X
X
O
X
O
O
O
X
X
X
O
O
X
O
O
X
X
X
X
O
O
29
MIN
6-1
5-2
4-3
MAX
5-1-1
4-2-1
3-2-2
3-3-1
MIN
MAX
MIN
MAX
4-1-1-1
3-2-1-1
3-1-1-1-1
2-1-1-1-1-1
2-2-1-1-1
2-2-2-1
30
31
MAX
3
3
MIN
MAX
MIN
Nc i ca MAX
-1
X
-2
XO
XO
XO
XO
XO
OX
5 - 4= 1
4-5= -1
OX
6-6= 0
OX
XO
5-6= -1 6-6= 0
32
XO
4-6= -2
OX
6 - 4= 2
33
Nc chn i
Cc bn c trung gian, phi bin
i qua chng trong qu trnh
t n cc bn c ch, khng
cn so snh chng.
su
xem xt
ng tm kim- chui nc i dn
n th c tt nht c th t c
34
35
36
37
Minimax := best;
end;
end;
2.2.4 nh gi
Thut ton Minimax thm ton b cy tr chi bng vic dng chin lc
tm kim theo chiu su. Nn phc tp ca thut ton ny tng ng trc tip vi
kch thc khng gian tm kim bd, trong b l h s phn nhnh ca cy hay
chnh l nc i hp php ti mi im, d l su ti a ca cy. Thut ton s
thm tt c cc nt khng ch l cc nt l v vy s lng cc nt c thm s l
b(bd-1)/(b-1). Nhng hm lng gi s l phng thc chi phi hu ht thi gian v
ch lm vic trn cc nt l, v vy vic thm cc nt khng phi cc nt l c th b
qua [8]. Do phc tp thi gian l O(bd). Bn cht ca thut ton l tm kim
theo chiu su, v vy vic i hi khng gian b nh ca n ch tuyn tnh vi d v
b. V th phc tp khng gian l O(bd) [8][13].
Nu h s nhnh trung bnh ca cy l b = 40, v tm kim n su d = 4
(cc con s thng gp trong tr chi c) th s nt phi lng gi l 40 4 = 2560000
(trn 2 triu ri nt). Cn vi b = 40, d = 5 th s nt phi lng gi s tng 40 ln
na thnh 405 = 102400000 (trn 102 triu nt), y l con s tng i ln.
C th tit kim c nhiu thi gian bng vic dng cc thut ton tm kim
thng minh hn nh thut ton Alpha-beta, thut ton ny khng thm tt c cc nt
l m vn cho kt qu ng vi thut ton Minimax [9]. Trong phn tip theo ta s
xt thut ton ci tin ny.
38
Mc cc i
Mc cc tiu
=2
Mc cc i
2
=2
2
=2
Mc cc i
1
Mc cc tiu
Mc cc i
39
2.3.1 tng
tng ca tm kim Alpha-beta rt n gin: Thay v nu nh tm kim
ton b khng gian n mt su lp c nh, tm kim Alpha-beta thc hin theo
kiu tm kim su. C hai gi tr, gi l alpha v beta c to ra trong qu trnh
tm kim:
- Gi tr alpha lin quan vi cc nt MAX v c khuynh hng khng bao gi
gim.
- Ngc li gi tr beta lin quan n cc nt MIN v c khuynh hng khng bao
gi tng.
Gi s c gi tr alpha ca mt nt MAX l 6, MAX khng cn phi xem xt
gi tr truyn ngc no nh hn hoc bng 6 c lin quan vi mt nt MIN no
bn di. Gi tr alpha l gi tr thp nht m MAX c th nhn c sau khi cho
rng MIN cng s nhn gi tr tt nht ca n. Tng t nu MIN c gi tr beta l
6 n cng khng cn xem xt cc nt nm di n c gi tr ln hn hoc bng 6.
bt u thut ton tm kim Alpha-beta, ta i xung ht su lp theo
kiu tm kim su, ng thi p dng nh gi heuristic cho mt trng thi v tt c
cc trng thi anh em ca n. Gi thuyt tt c u l nt MIN. Gi tr ti a ca cc
nt MIN ny s c truyn ngc ln cho nt cha m (l mt nt MAX). Sau
gi tr ny c gn cho ng b ca cc nt MIN nh l mt gi tr beta kt thc tt
nht. Tip theo thut ton ny s i xung cc nt chu khc v kt thc vic tm
kim i vi nt cha m ca chng nu gp bt k mt gi tr no ln hn hoc
40
41
42
MAX
MIN
MAX
MIN
2
43
AlphaBeta := best;
end;
end;
min ti t
(ct b)
Min xem xt
alpha
a
beta
Hnh 2.8: alpha, beta ging nh hai li dao dng ct b lp v dy. Hai li
dao ny s c thu hp dn dn. Lng ct b ph thuc vo tc thu hp, thu
hp cng nhanh ct b cng nhiu.
44
2.3.3 nh gi
Hiu qu ca vic ct nhnh Alpha-beta ph thuc nhiu vo th t cc nc
i k tip c thc hin. Nu cc nc i k tip c thc hin c th t ngu
nhin th tng s nt c thc hin s khong O(b 3d/4) [8]. Trong b l rng
ca cy (h s phn nhnh trung bnh ca cc con), d l su ca cy.
Trong iu kin l tng, thut ton Alpha-beta ch phi xt s nt theo cng
thc:
2-1
vi d chn
+-1 vi d l
Nh vy, trong trng hp tt nht thut ton Alpha-beta ch cn thc hin
khong O(bd/2) nt chn ra nc i tt nht, thay v O(bd). H s phn nhnh hiu
qu tr thnh
Thut ton Alpha-beta ni chung gip chng ta tit kim nhiu thi gian so
vi Minimax m vn m bo kt qu tm kim chnh xc. Tuy nhin lng tit
kim ny khng n nh - ph thuc vo s nt m n ct b. Trong trng hp xu
nht thut ton khng ct c mt nhnh no v phi xt s nt ng bng thut
ton Minimax. Ta cn y mnh vic ct b nh y nhanh s thu hp ca ca s
tm kim Alpha-beta. Ca s ny c thu hp mt bc khi gp mt gi tr mi tt
hn gi tr c. Khi gp gi tr tt nht th ca s ny thu hp nht. Do nu cng
sm gp gi tr tt nht th ca s cng chng thu hp. Nh vy phi lm sao cho
cc nt l c sp xp theo trt t t cao xung thp. Trt t ny cng tt bao
nhiu th thut ton chy cng nhanh by nhiu (cc cng thc v s nt phi lng
gi trong iu kin l tng trn tnh c vi trt t l tt nht).
V d: Ta s xt xem thut ton Alpha-beta hot ng nh th no i vi cy tr
chi sau:
45
4 16
5 31
= 5 39
8 6
= 4 15
=8
2
5
5 23
= 5 30
1 18
2 10
20
4 12 3
= 4 14 = 522
Kt qu tm kim nc i
3 25
9 27
1 33
2 35
3 38
29 =3 37
8 7 2 9 1 6 2 4 1 1 3 5 3 9 2 6 5 2 1 2 3 9 7 2 16 6 4
1 3 4 7
9 11 13 17 19 21 24 26
28
32 34 36
46
47
su
1
2
3
4
5
6
7
8
Minimax
AlphaBeta
S nt
S ln tng
S nt
40
1600
64000
2560000
102400000
4096000000
163840000000
6553600000000
40
40
40
40
40
40
40
40
79
1852
3199
74118
127999
2964770
5120000
T l s nt
S ln tng
1
1.9
23.2
1.7
23.2
1.7
23.2
1.7
Minimax/Alpha-beta
20
34
800
1381
32000
55262
1280000
48
su tm kim bng Minimax. Hnh sau y l th so snh gia hai thut ton
ny [5].
49
CHNG 3: NG DNG
3.1 Phn tch bi ton
3.1.1 Tr chi
Tr chi N qun hu bt ngun t bi ton rt ni ting l Bi ton 8 con hu:
t ln lt 8 con hu ln bn c quc t (kch thc 8x8) sao cho khng c 2 con
hu no khng ch ln nhau. Do vy, ngi ta c kh nhiu cch nh ngha v tr
chi N qun hu, in hnh l 3 cch sau:
1) Cho bn c quc t c kch thc N x N, 2 ngi chi ln lt t tng qun
hu ln bn c sao cho khng c 2 qun hu no khng ch nhau. Ngi
chi no khng t c qun hu ln bn c na l ngi thua cuc.
2) Cho bn c quc t c kch thc N x N, 2 ngi chi ln lt t tng qun
hu ln bn c sao cho khng c 2 qun hu no khng ch nhau cho n khi
khng t c na. Mi qun hu t ln bn c s khng ch cc nm
trong 8 hng i ca n nu cn cha b khng ch. Ai khng ch c
nhiu hn l ngi thng cuc.
3) Cho bn c quc t kch thc N x N. Ngi i u tin s t a qun hu
ln bn c. Ngi chi th 2 tip tc t b con hu ln bn c (a > b v a + b
N) sao cho khng c 2 qun hu no khng ch ln nhau. Sau ngi
chi th nht s di chuyn cc con hu ca mnh n cc con hu ca i
phng, ngi chi th 2 c nhim v phng th, di chuyn cc con hu ca
mnh i phng khng bt c. Sau k nc i nu ngi chi th nht
n c ht b con hu ca i phng th ngi chi th nht thng, ngc
li ngi chi th 2 thng.
Sau khi cn nhc, cch pht biu tr chi th 2 c chn tin hnh vit
ng dng cho lun vn. Tuy nhin, cho tr chi hp dn hn v cng bng hn
chng ta b sung thm mt s lut chi.
3.1.2 C s l thuyt
Theo nh pht biu tr chi trn, ta c th thy tr chi N qun hu thuc
lp cc tr chi i khng gia hai ngi chi. C th tr chi ny thuc dng tr
chi c tng bng khng vi hai ngi chi (Two players, Zero-sum-game). V th
ta c th p dng thut ton tm kim Minimax v thut ton Alpha-beta trong tr
chi ny.
Mt khc nu vit chng trnh ngi chi vi ngi th ch cn xy dng
cc tp lut chi ngi chi khng phm quy v kt thc khi c ngi thng.
Tuy nhin nh vy li khng ng dng v kim tra c thut ton trong lun vn
ny. V vy chng ta s vit chng trnh cho Ngi chi vi My, trong trng
hp ny ta phi tnh ton nh th no kh nng my tnh thng cao hn ngi.
My tnh c li th l kh nng tnh ton nhanh, kh nng nh tt gp nhiu
ln so vi con ngi, vy my tnh thng th tht d, vn l lm sao my c
th ngh c nh ngi? V c th tnh trc c t nht l 4 n 5 nc.
Vy phi c thut ton my c th qut qua cc phng n i, v chn phng
n cui cng l tt nht sao cho my tnh c th thng. Trong ng dng ny ta chn
thut ton Minimax v thut ton ci tin Alpha-beta (chng 2) ci t cho my
tnh chi.
Nhn thng tin khi to mt vn chi t ngi s dng nh: kch thc bn
c, trnh ca my, s (hay vt cn) s dng, ai l ngi i trc
cung cp thng tin cho lp CBoard khi to mt vn chi mi.
Ghi nhn thng tin v nc i ca ngi chi mi khi ngi chi nhp chut
ln mt trng ri truyn cho lp CBoard x l.
Ghi nhn mt nc i.
Yu cu my thc hin nc i.
3.2.4 Lp gameAI
C th ni lp gameAI l lp trung tm ca cc chng trnh tr chi i
khng. Lp ny cha cc phng thc phc v cho vic quyt nh i mt nc ca
my. Sau y chng ta s xem xt chi tit cc thuc tnh v phng thc ca lp
ny.
begin
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
begin
best := value;
if (y l nc i u tin ca my) then
cp nht nc i resX, resY;
end;
end;
return best;
End;
M ngun lp gameAI:
using System;
using System.Collections.Generic;
using System.Text;
using System.Drawing;
using System.Collections;
namespace n_queens
{
// xay dung lop diem moi dua vao lop point da co
class myPoint
{
public Point pt;
int val;
public myPoint(int x, int y, int startVal)
{
pt = new Point(x, y);
val = startVal;
}
//Tnh khoang cch gia im a v im trung tm
static double distance(myPoint a, double mid)
{
return Math.Sqrt(Math.Pow(a.pt.X - mid, 2)+Math.Pow(a.pt.Y mid, 2));
}
// Phng thc tnh so snh khoang cach giua hai diem voi o trung tam
public static int compare(myPoint a, myPoint b, float mid)
{
if (a.val > b.val) return -1;
else if (a.val < b.val) return 1;
else
{
double d1 = distance(a, mid);
double d2 = distance(b, mid);
if (d1 < d2) return -1;
else if (d1 > d2) return 1;
else return 0;
}
}
}
class CompareInv : IComparer// lop Icomparer co 1 phuong thuc compare
de so sanh 2 doi tuong
{
int middlePoint;
public CompareInv(int middle) //ham tao
{
middlePoint = middle;
}
public int Compare(object obj1, object obj2)//so sanh 2 oi tuong
{
myPoint a, b;
a = (myPoint)obj1;
b = (myPoint)obj2;
return myPoint.compare(a, b, middlePoint);
}
}
class gameAI
{// khai bao oi tuong thuoc lop CBoard
CBoard ownBoard;
/// <summary>
/// mang cha trng thi ca ban co
/// </summary>
int[,] board = new int[17, 17];
//dinh nghia 8 huong
/// <summary>
/// th hin 8 hng i ca qun hu
/// </summary>
int[] dx = { -1, -1, -1, 0, 0, 1, 1, 1 };
/// <summary>
/// </summary>
int[] dy = { -1, 0, 1, -1, 1, -1, 0, 1 };
/// <summary>
/// Thi gian bt u
/// </summary>
long startTime;
/// <summary>
/// Gi tr thut ton tr v
/// </summary>
int resX, resY, bestValue;
/// <summary>
/// S chim
/// </summary>
int ownedCell, totalCell;// so o bi chiem va so o trong ban dau
CompareInv compInv; //doi tuong thuoc lop CompareInv
/// <summary>
/// danh sch cc c th b chim
/// </summary>
Point[] listCell = new Point[17 * 17];
/// <summary>
/// hm to ca lp
/// </summary>
public gameAI(CBoard mb) // ham tao
{
ownBoard = mb;
totalCell = mb.boardSize * mb.boardSize - mb.nStone;
}
/// <summary>
/// Phuong thuc Sinh nc i
/// </summary>
void heuristicGenerateMove(ArrayList pMove)
{
int i, j, k, c;
ArrayList al = new ArrayList();
for (i = 1; i <= ownBoard.boardSize; i++)
for (j = 1; j <= ownBoard.boardSize; j++)
if (board[i, j] == 0)
{
//Dem o trong gan ke voi o [i,j]
c = 0;
for (k = 0; k < 8; k++)
if (board[i + dx[k], j + dy[k]] == 0) c++;
al.Add(new myPoint(i, j, c));
}
al.Sort(compInv);// sap xep cac doi tuong trong danh sch al
foreach (myPoint p in al)
{
pMove.Add(p.pt);
}
}
/// <summary>
/// Thuc hien di chuyen ban co
/// </summary>
/// <param name="start"></param>
/// <param name="ord"></param>
void doMove(Point start, int ord)
{
j--;
i++;
}
/// <summary>
/// Tro lai buoc di chuyen
/// </summary>
/// <param name="pt"></param>
/// <param name="ord"></param>
void remove(Point pt, int ord)
{
for (int i = 1; i <= ownBoard.boardSize; i++)
for (int j = 1; j <= ownBoard.boardSize; j++)
if (Math.Abs(board[i, j]) == ord)
{
board[i, j] = 0;
ownedCell--;
}
}
///
///
///
///
///
int
{
<summary>
Phuong thuc Uoc luong gia tri cua nuoc di
</summary>
<param name="ord"></param>
<returns></returns>
eval(int ord)
<summary>
thu tuc Alpha-beta
</summary>
<param name="Alpha"></param>
///
///
///
int
{
<param name="beta"></param>
<param name="depth"></param>
<returns></returns>
AlphaBeta(int Alpha, int beta, int depth)
// het thoi gian suy nghi
if (DateTime.Now.Ticks - startTime >= ownBoard.limitTime *
10000000)
return -10000;
if ((depth == 0) || (totalCell == ownedCell))
return eval(depth);
else
{
ArrayList pMove = new ArrayList();
Point pt;
int best, value;
best = -10000; //best = -Infinitive
heuristicGenerateMove(pMove);
IEnumerator myEnumerator = pMove.GetEnumerator();
while (myEnumerator.MoveNext() && (best < beta))
{
if (best > Alpha) Alpha = best;
pt = (Point)myEnumerator.Current;
doMove(pt, ownBoard.nMove + ownBoard.machineLevel -
depth + 1);
depth + 1);
}
return best;
}
///
///
///
int
{
10000000)
<summary>
Thu tuc Minimax
</summary>
Minimax(int depth)
if (DateTime.Now.Ticks - startTime >= ownBoard.limitTime *
return -10000;
if ((depth == 0) || (totalCell == ownedCell))
return eval(depth);
else
{
ArrayList pMove = new ArrayList();
Point pt;
depth + 1);
/// <summary>
/// Yu cu nc i
/// </summary>
public Point requestMove(int[,] mb)
{
board = mb;
compInv = new CompareInv((ownBoard.boardSize + 1) / 2);
ownedCell = ownBoard.playerScore + ownBoard.machineScore;
startTime = DateTime.Now.Ticks;
bestValue = Minimax(ownBoard.machineLevel);//AlphaBeta(10000, 10000, ownBoard.machineLevel);
return new Point(resX, resY);
}
}
}
KT LUN
Vi mc tiu ra ca lun vn l tm hiu v nghin cu v thut ton tm
kim i khng Minimax, cc ci tin ca n v ng dng trong tr chi c tng
bng khng, cc kt lun chnh t c ca lun vn c th tm tt nh sau:
nhc li mt cch tng quan v vn tm kim trong c pht
biu bi ton tm kim v gii thiu cc k thut tm kim c bn nh tm kim
khng c thng tin, tm kim c thng tin v tm kim i khng.
Tm hiu v c im ca tr chi c tng bng khng trong lnh vc
L thuyt tr chi. ng thi a ra m hnh ton hc ca tr chi c tng bng
khng v pht biu nh l minimax p dng cho cc tr chi c tng bng khng.
nghin cu gii thut tm kim Minimax v gii thut ci tin ca
n l gii thut Alpha-beta cho cc tr chi c tng bng khng.
Ci t c gii thut cho tr chi c tng bng khng vi hai ngi
chi trong bi ton xp cc qun Hu ln bn c. Kt qu ca vic ci t l chng
trnh tr chi xp cc qun Hu gia ngi v my tnh. Trong thut ton c
ci t cho vic suy ngh ca My tnh.
Mc d c nhiu c gng nhng chc chn rng cc kt qu ci t c
khng trnh khi nhng thiu st v hn ch, hy vng rng trong tng lai vn
ny s c nghin cu su hn v pht trin vi thut ton c ci tin tt hn,
chng hn chng ta c th i vo nghin cu vn song song ha thut ton trn.
Trn c s cc kt qu t c, chng ta c th pht trin nhng nghin
cu tip v thut ton Alpha- Beta song song [16]. Hn na, chng ta c th ngh
n vic trin khai nhng nghin cu v ng dng ca nhng kt qu ny trong cc
lnh vc khc ca x hi, c bit l kinh t.
Faculteitder
Natuurwetenschappen,
Wiskundeen
Informatica