Download as pdf or txt
Download as pdf or txt
You are on page 1of 19

Bi tp ln

NHP MN TR TU NHN TO

TRNG I HC BCH KHOA H NI


VIN CNG NGH THNG TIN V TRUYN THNG

BI TP LN
NHP MN TR TU NHN TO
TI : TR CHI DODGEM
NG DNG THUT TON MINIMAX V ALPHA BETA PRUNNING

GV hng dn: TS. NGUYN NHT QUANG


Sinh vin thc hin:
1.
2.
3.
4.

Nguyn Vn Ha
L B Huy
Thn Vn Quang
Nguyn Hong Vit

MSSV: 20081020
MSSV: 20081131
MSSV: 20082082
MSSV: 20083139

Lp: TTM- K53

H Ni, 11-2011

Tr chi Dodgem

Page 1

Bi tp ln

NHP MN TR TU NHN TO

LI NI U

y l ti liu dng biu din c bn thit k v xy dng Tr chi Dodgem s


dng thut ton MiniMax v Alpha beta pruning do nhm em thit k v lp trnh. Ti
liu ny gip ta c ci nhn ton vn v cc chc nng ca phn mm cng nh ng dng
thut ton MiniMax v Alpha beta prunning gii quyt bi ton ny. Do thi gian c
hn nn n khng th ti u c ton b cc trng thi bi ton. Tuy nhin, nhm s
nghin cu hon thin trong thi gian sm nht.
Nhm thc hin ti nhm mc ch xy dng mt tr chi ng dng gii tr v c tnh
nhn to kh cao. Trong qu trnh thc hin ti khng trnh khi nhng sai st,
nhm em mong s nhn c s gp v nh gi ca thy.

Sinh vin thc hin


Nguyn Vn Ha
L B Huy
Thn Vn Quang
Nguyn Hong Vit

Tr chi Dodgem

Page 2

Bi tp ln

NHP MN TR TU NHN TO

Mc lc
Phn 1: Gii thiu tr chi Dodgem...................................................................................... 4
Phn 2 : Thut ton MiniMax v Alpha beta pruning ..........................................................5
2.1 Thut ton MiniMax ..................................................................................................... 5
2.2 Thut ton Alpha beta pruning...................................................................................... 7
3.1 Hm nh gi 1........................................................................................................... 11
3.2 Hm nh gi 2........................................................................................................... 12
Phn 4 : Ci t chng trnh............................................................................................. 13
4.1 Cell ............................................................................................................................. 13
4.2 Grid ............................................................................................................................ 13
4.3 Computer .................................................................................................................... 15
4.4 GameManager ............................................................................................................ 16
Phn 5: Giao din chng trnh .......................................................................................... 17
Phn 6: Kt lun ................................................................................................................. 18
Phn 7: Ti liu tham kho ................................................................................................. 19

Tr chi Dodgem

Page 3

Bi tp ln

NHP MN TR TU NHN TO

Phn 1: Gii thiu tr chi Dodgem


Dodgem game l mt chess game, ging nh c Caro hay c tng Mi game u
c 2 ngi chi. Mt ngi l Min, ngi cn li s l Max. Hai ngi chi s thay phin
nhau a ra cc nc i ca mnh theo mt quy lut no .
Tr chi Dodgem game c to ra gm c hai qun en v hai qun c xp
vo bn c 3*3 (hnh v).

Lut chi:
Qun en: c php i ln trn, sang phi hoc xung di.Qun en c
th c a ra ngoi khi ct ngoi cng bn phi.

Qun : c php i ln trn, sang tri hoc sang phi.Qun c th


a c ra ngoi khi hng trn cng ca bn c.
Tr chi kt thc khi 1 trong 2 ngi chi a c ht cc qun c ca mnh ra
ngoi hoc chn khng cho qun i phng di chuyn (th c coi l chin thng).

Tr chi Dodgem

Page 4

Bi tp ln

NHP MN TR TU NHN TO

Phn 2 : Thut ton MiniMax v Alpha beta pruning


2.1 Thut ton MiniMax
Nguyn l:
Mt chin lc ti u l mt chui cc nc i gip a n trng thi
ch mong mun.
Chin lc ca MAX b nh hng ( ph thuc ) vo cc nc i ca
MIN v ngc li
MAX cn chn mt chin lc gip cc i ha gi tr ca hm mc
tiu vi gi s l MIN i cc nc i ti u
Chin lc ny c xc nh bng vic xt cc gi tr MINIMAX i
vi mi nt trong cy biu din tr chi
MAX chn cc nc i tng ng vi gi tr MINIMAX cc i ( MIN
chn c nc i ng vi gi tr MINIMAX cc tiu

p dng vo tr chi DODGEM


Vi Qun en, ta chn Max(cc children), Qun , ta tm Min(cc children). T hnh v
trn, ta xy dng cc th tc quy, gm 2 hm, MaxVal() i din cho Qun en, nhm
tm nc i ti u cho mnh ( Max(children) ), ngc li, MinVal() i din cho Qun
, tm Min(Children) cho mnh.

Tr chi Dodgem

Page 5

Bi tp ln

NHP MN TR TU NHN TO

int MinVal( dept, beta)


{
int p;
if( GameOver() or dept > maxdept)
return;
int min = v cung lon
for moi vi tri cua quan den
{
1. Di chuyen sang o lan can
2. IF (dept = maxdept ) p=getpoint() ;
3. Else p=MaxVal ( dept +1, beta)
4. If ( beta >= p ) beta =p;
5. Cho quan den ve vi tri cu
}
return beta;
}
int MaxVal( dept, alpha)
{
int p;
if( GameOver() or dept > maxdept)
return;
int max = v cung b
for moi vi tri cua quan do
{
1. Di chuyen sang o lan can
2. IF (dept = maxdept ) p=getpoint() ;
3. Else p=MinVal ( dept +1, beta)
4. If ( alpha <= p ) alpha =p;
5. Cho quan do ve vi tri cu
}
return alpha;
}

Tr chi Dodgem

Page 6

Bi tp ln

NHP MN TR TU NHN TO

Vi maxdept l su ti a s duyt n.Maxdept cng ln ( duyt cng su ) th cng


tin gn n thng li. Bin dept c khi to gi tr l 0. Nh vy Computer ng vai
tr l qun ( Min ) n s gi n hm MinVal.
2.2 Thut ton Alpha beta pruning
Trong chin lc tm kim Minimax, tm kim nc i tt cho Trng ti trng thi u,
cho d ta hn ch khng gian tm kim trong phm vi cy tr chi gc u vi cao h, th
s nh ca cy tr chi ny cng rt ln vi h >= 3.
Chng hn, trong c vua, nhn t nhnh trong cy tr chi trung bnh khong 35, thi
gian i hi phi a ra nc i l 150 giy, vi thi gian ny trn my tnh thng thng
chng trnh ca bn ch c th xem xt cc nh trong su 3 hoc 4.
Mt ngi chi c tr.nh trung bnh cng c th tnh trc c 5, 6 nc hoc hn
na, v do chng trnh ca bn mi t trnh ngi mi tp chi!
Khi nh gi nh u ti su h, mt thut ton Minimax i hi ta phi nh gi tt c
cc nh ca cy gc u ti su h. Song ta c th gim bt s nh cn phi dnh gi m
vn khng nh hng g n s nh gi nh u. Phng php ct ct alpha-beta cho php
ta ct b cc nhnh khng cn thit cho s nh gi nh u.

T tng ca k thut ct ct alpha-beta l nh sau:


Nh li rng, chin lc tm kim Minimax l chin lc tm kim theo su.
Gi s trong qu trnh tm kim ta i xung nh a l nh Trng, nh a c ngi anh em
v c nh gi.

Tr chi Dodgem

Page 7

Bi tp ln

NHP MN TR TU NHN TO

Gi s cha ca nh a l b v b c ngi anh em u d. c nh gi, v gi s cha ca b l


c(Xem hnh trn).
Khi ta c gi tr nh c (nh Trng) t nht l gi tr ca u, gi tr ca nh b (nh
en) nhiu nht l gi tr v. Do , nu eval(u) > eval(v), ta khng cn i xung nh
gi nh a na m vn khng nh hng g dn nh gi nh c. Hay ni cch khc ta c
th ct b cy con gc a. Lp lun tng t cho trng hp a l nh en, trong trng
hp ny nu eval(u) < eval(v) ta cng c th ct b cy con gc a.
C th hn, ta c hnh bn di

Trong khi, ta ang c tm gi tr cho A, Chng ta i xung B, v tm c gi tr l 6 l


Min(6,9). Sau , ta i qua C. T , chng ta tnh c E l 4 l Max(4,-2). Do , C l
nh hn,Ngay ti lc ny ta bit c gi tr ca C l <=4, Do , C s khng c chn
bi A l gi tr Maximum, v A c B cha gi tr 6, l gi tr chc chn ln hn bt k
gi tr no ca C (nu ta tnh tip). Do vic tm gi tri Max cho F v G l khng cn
thit na. V lc , ta s dng vic s l trn Node C, V ta tip tc tm trn Node D
Nh vy, cho n by gi ta c th b sung k thut va ni trn vo thut ton Minimax,
ta c c chng trnh hon thin nh sau:
ci t k thut ct ct alpha-beta, i vi cc nh nm trn ng i t gc ti nh
hin thi, ta s dng tham s a ghi li gi tr ln nht trong cc gi tr ca cc nh con
nh gi ca mt nh Trng, cn tham s b ghi li gi tr nh nht trong cc nh con

Tr chi Dodgem

Page 8

Bi tp ln

NHP MN TR TU NHN TO

nh gi ca mt nh en. Gi tr ca a v b s c cp nht trong qu trnh tm


kim. a v b c s dng nh cc bin a phng trong cc hm MaxVal(u, a, b) (hm
xc nh gi tr ca nh Trng u) v Minval(u, a, b) (hm xc nh gi tr ca nh en
u).
int BlueValue(Board b, int depth, int alpha, int beta)
{
if ((GameOver(b) or depth>MaxDepth)
return Analysis(b)
int max = -infinity
for each legal move m in board b
{
copy b to c
make move m in board c
int x = RedValue(c, depth+1, alpha, beta)
if (x>max) max = x
if (x>alpha) alpha = x
if (alpha>=beta) return alpha
}
return max
}

//////////////////////////////////////////////////////////////////////////////////////////////////////////

int RedValue(Board b, int depth, int alpha, int beta)


{
if ((GameOver(b) or depth>MaxDepth)
return Analysis(b)

Tr chi Dodgem

Page 9

Bi tp ln

NHP MN TR TU NHN TO

int min = infinity


for each legal move m in board b
{
copy b to c
make move m in board c
int x = BlueValue(c, depth+1, alpha, beta)
if (x<min) min = x
if (x<beta) beta = x
if (alpha>=beta) return beta
}
return min
}

Tr chi Dodgem

Page 10

Bi tp ln

NHP MN TR TU NHN TO

Phn 3: Hm nh gi
Vn c t ra l: lm sao c th la chn c nc i ti u nht dnh cho mi ln
i?
lm c iu ny cu tr li l cn phi xy dng 1 hm nh gi ph hp v ti u.
3.1 Hm nh gi 1
Cho im cc trong bn c i vi cc qun c en v nh sau:

Ngoi ra, nu qun trng cn trc tip qun en, cng thm 40 im cho qun trng, nu
cn gin tip th c cng 30 im, Tng t cho qun en, nu qun en cn trc tip
qun n c thm -40 im, cn gin tip n c thm -30 im.

V d, tnh gi tr bn c cho 2 hnh v bn di. Trong bn c u, ta c cc gi tr sau:


Qun en: -10 + 0 = -10, Qun : 5 + 10 = 15, xt cc trng thi khc, ta thy qun en

Tr chi Dodgem

Page 11

Bi tp ln

NHP MN TR TU NHN TO

va b cn trc tip, va b cn gin tip, Qun c thm 70 im, Vy KQ cui cng


l: -10 + 15+70 = 75, tng t, cho hnh s 2.

3.2 Hm nh gi 2
Hm nh gi 2 c ci thin t hm nh gi 1:
Do tiu ch ca bi ton l a c ht qun c ra ngoi bn c v vy m mi qun khi
c a ra ngoi s c cng ( hoc tr) vi mt gi tr nht nh.
Ngoi phn cho im nh hm nh gi 1 th vi mi qun en (qun ) c a ra
ngoi ta s cng thm -85 im ( 85 im ), v vy ta s cho im cc bn ngoi nh
sau:

Tr chi Dodgem

Page 12

Bi tp ln

NHP MN TR TU NHN TO

Phn 4 : Ci t chng trnh


Chng trnh c ci t bng ngn ng C# gm cc Class nh sau:
4.1 Cell
L 1 l 1 dn xut ca lp PictureBox. Biu din trng thi ca 1 trn bn c.

Bin :
Int

x ,y ;

// Ta ca 1

Char State ;

// Trng thi ca 1

Bool selected;

// Xem 1 c chn hay cha

Hm:
Public Cell ( char type, int x, int y ) // Phng thc khi dng
Void state (char type )

// Xc nh trng thi ca 1

4.2 Grid

Tr chi Dodgem

Page 13

Bi tp ln

NHP MN TR TU NHN TO

Bin :
Int x, y

// Ta ca 1

Int n

// Kch thc ca bn c

Char[,] State

// Trng thi ca 1 tnh theo ta x,y

Int [,] redpoint // im ca qun trn bn c theo ta x,y


Int [,] blackpoint // im ca qun en trn bn c theo ta x,y
Cell [,] Matrix
Int [] dx, dy

// Ma trn cc
// Xc nh cc ln cn c th di chuyn theo lut

Int[] SelectedCell // lu li ta ca 1 c chn


Hm:
Void PanelClick(object sender, MouseEventArgs e) // X l s kin a 1 qun c ra
ngoi
Void CellClick( int x, int y) // X l s kin khi click vo 1 trn bn c
Void DisableOthers() // Chuyn trng thi ca 1 sau 1 nc i
Void UpdateCell()

// Cp nht bn c

Public Grid(int N) // phng thc khi to dung khi to bn c, cho im cc


Void DrawCell() // V

Tr chi Dodgem

Page 14

Bi tp ln

NHP MN TR TU NHN TO

Public GetState() // Ly trng thi ca bn c


Public SetState () // Thit lp trng thi ca bn c
4.3 Computer

Bin :
Int [] dx, dy // Tm n ta cc ln cn c th di chuyn
Int n

// Kch thc bn c

Int [,] S

// Trng thi ca 1 theo ta x, y

Int maxdept = 10 // su tm kim ti a


Int INT_MAX = 2147483647
Hm:
Int MinVal ( int dept, int alpha, int beta) // Hm tnh im cho MIN theo thut ton
Alpha beta pruning
Int MaxVal (int dept, itn alpha , int beta )// Hm tnh im cho MAX theo thut ton
Alpha beta pruning

Tr chi Dodgem

Page 15

Bi tp ln

NHP MN TR TU NHN TO

Void Getstate () // Ly trng thi ca bn c


Void Setstate () // Thit lp trng thi ca bn c
Byte [] Solve ( byte[] state) // hm my tnh dng tnh ton nc i tip theo
Int Getpoint() // Tnh im ti 1 trng thi ca bn c

4.4 GameManager

Bin:
Int [,] dx, dy // Tm n ta cc ln cn c th di chuyn
Bool lockTimer //
Bool GameOver // Tr chi kt thc hay cha
Bool Player

// Bin xc nh lt chi l ngi hay my

Hm:
Void newGame()

// Chn tr chi mi

Void SwitchPlayer() // i lt chi


Void Check()

// Kim tra xem tr chi kt thc cha, xem ai l


// ngi thng

Tr chi Dodgem

Page 16

Bi tp ln

NHP MN TR TU NHN TO

Phn 5: Giao din chng trnh

y l giao din u tin m bn thy khi vo Game

bt u chi bn vo Game - chn New Game.


xem hng dn Cch chi bn vo Help chn Cch chi
Sau khi vo New Game, 1 Form mi s hin ra. Form ny bn c th chn
cc chc nng ca tr chi nh: kch thc ca bn c (ti a l 15*15) , lt
chi v Cp kh d (Level).

Sau khi chn xong tt c cc Ty chn, bt u vo chi bn Click vo Button


Xc nhn. Giao din chnh ca tr chi s hin ln:

Tr chi Dodgem

Page 17

Bi tp ln

NHP MN TR TU NHN TO

Phn 6: Kt lun
Qua mn hc v trong qu trnh tm hiu thc hin ti ny, nhm em c ci nhn
ton din hn trong vic ng dng tr tu nhn to vo gii quyt vn trong thc t.
Dodgem l mt tr chi ng dng tt 2 thut ton MINIMAX v Alpha beta Prunning.
Tuy nhin trong qu trnh thc hin th chng trnh khng th trnh khi nhng sai st
v cha thc s ti u. Chng em mong c s gp ca thy c th tip tc hon
thin hn trong tng lai.
Em xin chn thnh cm n.

1. Nhng g t c:
Bit cch ci t c 2 thut ton MiniMax v Alpha beta pruning
Lp trnh Window form vi C#
2. Nhng g cha t c:
Cha thc s ti u c hm lng gi

Tr chi Dodgem

Page 18

Bi tp ln

NHP MN TR TU NHN TO

Phn 7: Ti liu tham kho


1.
2.
3.
4.
5.

Bi ging tr tu nhn to Nguyn Nht Quang


http://msdn.microsoft.com/en-us/library/52f3sw5c.aspx MSDN library
http://en.wikipedia.org/wiki/Alpha-beta_pruning
http://en.wikipedia.org/wiki/Minimax
http://www.ocf.berkeley.edu/~yosenl/extras/alphabeta/alphabeta.html

Tr chi Dodgem

Page 19

You might also like