Bao Cao AI

Embed Size (px)

Citation preview

Mc LcMc Lc...............................................................................................................................1 Thut ton Minimax.............................................................................................................1 Thut ton minimax.............................................................................................................1 Cc Alpha-beta Cutoff Th tc ..............................................................................................................................................3 Tr chi tc tc toe...............................................................................................................8 Gii thiu tr chi................................................................................................................8 Mc tiu tr chi..................................................................................................................8 Hng gii quyt ................................................................................................................8 Gii thiu chng trnh......................................................................................................15 1.Giao din chnh ca chng trnh...............................................................................15 Ti liu tham kho.............................................................................................................19

Thut ton Minimax Thut ton minimaxThut ton minimax cha ng tt c cc kh nng ca vic chuyn i cc trng thi t 1 trng thi c a ra v t bao ph ln cc khong trng . Thut ton ny c ng dng trong tr chi c kh nng chuyn i trng thi t 1 trng thi th nghim cho trc. Mt v d thng dng l ta c th bt trc thut ton minimax qua tr chi Nim game y l 1 tr chi gia 2 ngi chi.Tr chi bt u vi 1 s l cc que.thng thng l 7 hoc 9 .mi v tr trn 1 dng n c gi l 1 cc mc .Mi ngi chi s ln lt c t 1 cc mc ph v 2 mc kia ca i phng trn 1 dng.tr chi s kt thc khi ngi kia ko a ra c bc i thnh cng.Ngi no ko a ra c bc i thnh cng u tin s thua. Theo quy c tiu chun chng ti t tn cho hai ngi chi l MINIMIZER v MAXIMIZER NIM l 1 tr chi phng th v vy ngi chi m y gi l MINIMIZER Biu ca ca tr chi NIM c biu din nh hnh in fig. 4.12 (a) , phn ranh gii bc i ca MAXIMIZER v MINIMIZER

Khoa cng ngh thng tin trng i hc Cng Nghip H Ni

Page 1

thut ton Minimax, c trnh by trong thi gian ngn, theo quy c s c s dng. S thnh cng ca MAXIMIZER c k hiu l 1, trong khi s thnh cng ca MINIMIZER bi -1 v ha l 0.Nhng gi tr ny th c gn vo cc bc i ca cc ngi chi.mt cu hi thng pht sinh l ngi chi lm sao bit c bc i ca h l thnh cng hay tht bi cho ti khi tr chi kt thc.iu ny c thy r trong thut ton Minimax theo nguyn tc : ch nh 1 s t {+1,0,-1} ph thuc vo cc bc i c thnh cng hay khng ca MAXIMIZER v MINIMIZER hay l ha theo th t.by gi ta s truyn cc gi tr ph thuc vo cc bc i ca MAXIMIZER v MINIMIZER. Nu n l ca Maximizer di chuyn sau gi tr ca n c gi tr ti a s hu bi offsprings ca n. Trong trng hp n l ca mt MINIMIZER di chuyn th gi tr ca n s c ti thiu ca cc gi tr s hu bi offsprings ca n . Nu cc gi tr c truyn ln n nt gc ca nguyn tc trn, sau mi ngi chi c th chn di chuyn tt hn n lt mnh. Cc tnh ton qu trnh trong mt tr chi Minimax c minh ha di y fig. 4,12 (b).

Khoa cng ngh thng tin trng i hc Cng Nghip H Ni

Page 2

Hm Minnimax 1.m rng ton b cc khng gian trng sau cc nt 2. gn cc gi tr {+1,0,-1} ty thuc vo cc bc i ca MAXIMIZER hay ca MINIMIZER tng ng 3. i vi mi node con tng ng th lm Begin Nu l nt ca MAXIMIZER , th gi tr ca n s l gi tr cc i trong cc gi tr ; Nu l nt ca MINIMIZER ,th gi tr ca n s l gi tr cc tiu trong cc gi tr End For; End.

Cc Alpha-beta Cutoff Th tc Thut ton Minimax c ni trn yu cu m rng ti ton b khong khng gian trng . y l 1 hn ch nghim trng , c bit vi vn m rng khong trng . gii quyt kh khn ny mt cch gii quyt l dung nh gi heuristic tnh trng bc i tip theo ca ngi chi chn mt bc i hin ti cho cng 1 ngi chi.Chng ta s minh ha quKhoa cng ngh thng tin trng i hc Cng Nghip H Ni Page 3

trnh tnh ton ca cc bin php heuristic ca mt nt di y vi s ni ting tr chi TIC TAC TOE Xt 1 hm heuristic e(n) [3], [5] ti nt n nh gi s khc bit ca cc dng c th ginh chin thng ca mi ngi chi e(n) =M(O)- O(n) trong M (n) = s dng ca ti c th ginh chin thng v O (n) = s dng ginh chin thng ca i th. V d, trong fig. 4,13 M (n) = 6, O (n) = 5 v v th e (n) = 1. By gi, chng ti s tho lun v mt loi mi ca thut ton, m khng yu cu m rng ton b khng gian exhaustively. Thut ton ny c gi l alpha-beta thut ton ct. Trong thut ton ny, hai ph lp ca chuyn ng l xem xt la chn di chuyn hin ti t la chn thay th. Alpha v beta biu hai ct cc cp lin kt vi cc nt MAX v MIN. Gi tr ca alpha MAX node khng th gim, trong khi gi tr beta ca cc nt MIN c th khng tng. Nhng lm th no chng ta c th tnh ton cc gi tr alpha v beta? Chng l nhng gi tr sao lu ln n gc nh Minimax. C mt vi th v im c th c khm ph giai on ny Trc khi qu trnh tnh ton MAX / MIN ca cc gi tr sao lu ca lp con, thut ton alpha-beta ct c lng e (n) ti tt c cc nt ra n. By gi, cc gi tr c tnh sau thut ton Minimax. By gi, ct ta cc ng dn khng cn thit bn di mt nt, kim tra xemi) gi tr beta ca bt k nt MIN bn di mt nt MAX l nh hn

hoc bng vi gi tr alpha ca n. Nu c, ct ta con ng bn di nt MIN ii) gi tr beta ca bt k nt MAX bn di mt nt MIN l nh hn hoc bng vi gi tr alpha ca n. Nu c, ct ta con ng bn di nt MAX

Khoa cng ngh thng tin trng i hc Cng Nghip H Ni

Page 4

Fig.4.14: Hai lp di chuyn ca Maximizer vi e tnh (n) ti ra cc nt: C, D, E; sao lu cc gi tr ti nt B v A v thit lp ca max v min gi tr ti cc nt A v B tng ng Da trn cc cuc tho lun trn, hin nay chng ti trnh by cc bc chnh trong cc - thut ton tm kim. i) To mt nt mi, nu n l di chuyn bt u, m rng khc hin cy theo su cch u tin. thc hin mt quyt nh v la chn ca mt di chuyn su d, cy nn c m rng t nht ln n su (d + 2). ii) Tnh e (n) cho tt c li (ra) cc nt n trong cy. iii) Tnh 'Khoa cng ngh thng tin trng i hc Cng Nghip H Ni Page 5

min (cho cc nt ti a) v ' ti a cc gi tr (i vi cc nt min) ti t tin ca cc nt ra bi cc nguyn tc sau y. c tnh ti thiu ca cc gi tr (e hoc ) s hu do ca tr em ca mt nt MINIMIZER N v gn n ' ti a gi tr. Tng t nh vy, c tnh ti a ca cc gi tr (e hoc ) s hu do con ca mt nt Maximizer N v gn n gi tr min .

Fig. 4.15: Nhng cch ngh c th di chuyn thay th F v cng t sinh ra lp tip theo l G e(G)=-1, max F =-1, , max F nh hn so vi min A Nh vy ko c nhu cu tm kim di F, G c th bt khng gian tm kim

Khoa cng ngh thng tin trng i hc Cng Nghip H Ni

Page 6

Fig. 4.16: Nt G b ct ta , cc nt C, D v E c m rng e(n ) c thit lp n = H , I , J v K v gi tr ca min c c lng ti cc nt C, D, E.Bi v gi tri min C ln hn gi tr max B, gi tri min D bng gi tr max B, ko cn tm kim di nt C v D IV) Nu cc nt ca MAXIMIZER c cc gi tr min. Sau gi tr min = MAX(min). Mt mt khc nu cc nt ca MINIMIZER c gi tr max v sau max = MAX(max) V) Nu thit lp gi tr max nt MINIMIZER ti N nh hn min ca nt cha MAXIMIZER ti N th sau ko cn tm kim di nt N. Tng t Nu thit lp gi tr min nt MAXIMIZER ti N nh hn min ca nt cha MINIMIZER ti N th sau ko cn tm kim di nt N Nhng bc trn c thc hin cho n khi no tr chi kt thc

Khoa cng ngh thng tin trng i hc Cng Nghip H Ni

Page 7

Tr chi tc tc toe Gii thiu tr chiTr chi ny c chi bi 2 i th vi 9 . Mt trong 2 i th s i trc nh o hoc (X) vo 1 bt k trn bn c , i th cn li chn 1 trong 8 cn li i .Hai i th thay nhau nh vo cc trng cho n khi c 1 i th c 3 nm trn 1 ng thng trc th thng. Nu ht 9 c m khng c i th no c 3 nm trn 1 ng thng th vn c kt thc vi t s ha

Mc tiu tr chin lt chi mi ngi c gng to ra 3 qun c nm trn 1 ng thng l ngi chin thng hoc c ngn cn ngi kia to c 3 qun c trn mt ng thng

Hng gii quytS dng thut ton Minnimax c ch ct ta alpha beta tm nc i tt nht c li cho tng ngi chi Hai i th trong 1 tr chi c gi l MIN v MAX .MAX l i din cho i th quyt dnh thng li hay c gng ti u ha u th ca mnh. Ngc li MIN l i th c gng ti thiu ha im s ca MAX . Ta gi thit MIN cng dng thong tin nh MAX Khi p dng th tc Minnimax ta nh du lun phin tng mc trong khng gian tm kim ph hp vi i th c bc i mc trong v d trn MIN c quyn i trc, tng nt l c gn gi tr 0 hay 1 ty theo l thng cuc vi MIN hay MAX.Minimax s truyn cc gi tr ny ln cao dn trn th qua cc nt cha m k tip nhau theo lut sau: -Nu trng thi cha m l nt MAX , gn cho n gi tr ti a ca cc con chu ca n - Nu trng thi cha m l nt MIN , gn cho n gi tr ti thiu ca con chu ca n Gi tr c gn cho tng trng thi bng cch s ch r trng thi tt nht m i th ny c th t c . Cc gi tr ny s c dng laKhoa cng ngh thng tin trng i hc Cng Nghip H Ni Page 8

chn cc bc i c th c. Kt qu ca vic p dng Minnimax vo th khng gian trng thi i vi tr chi Nim c th hin nh hnh trn. V tt c cc nc i u tin c th sy ra cho MIN s dn n gi tr 1 nn i th MAX lun c th bt tr chi ginh thng li cho mnh bt k nc i u tin ca MIN nh no

I.

Thut tonPage 9

Khoa cng ngh thng tin trng i hc Cng Nghip H Ni

using System; using System.Collections.Generic; using System.Text; public enum GameState { InProgress, ComputerWins, HumanWins, Draw } class Board { #region Declare field and delegate public static readonly int Empty = 0; public static readonly int X = -1; public static readonly int O = 1; public GameState BoardState; the state of the game public int iBoardSize; board in one dimension //represents //Size of

public int iEmptySquares; //Count of unplayed squares used to check for draw condition public int[,] aiBoard; #endregion //The board

// //Create a new Board object from a size parameter // public Board(int iSize) { this.iBoardSize = iSize; this.iEmptySquares = iSize * iSize; this.aiBoard = new int[iSize, iSize];Khoa cng ngh thng tin trng i hc Cng Nghip H Ni Page 10

}

this.BoardState

= GameState.InProgress;

one

// //Create a new Board object by copying an existing

// public Board(Board board) { this.iEmptySquares = board.iEmptySquares; this.iBoardSize = board.iBoardSize; this.BoardState = board.BoardState; this.aiBoard = new int[iBoardSize, iBoardSize]; //Copy aiBoard int i, j; for (i = 0; i < this.iBoardSize; i++) { for (j = 0; j < this.iBoardSize; j++) { this.aiBoard[i, j] = board.aiBoard[i, j]; } } }

// // Apply a move // public void MakeMove(int CurrentPlayer, Move move) { aiBoard[move.iCol, move.iRow] = CurrentPlayer; //Check for draw condition iEmptySquares--; if (iEmptySquares == 0) this.BoardState = GameState.Draw; } //Khoa cng ngh thng tin trng i hc Cng Nghip H Ni Page 11

// Checks the board for a winner and reassigns // this.BoardState as appropriate. // public void CheckBoard() { int i, j, iTotal; //Check the rows for (i = 0; i < iBoardSize; i++) { iTotal = 0; for(j = 0; j< iBoardSize; j++) { iTotal += aiBoard[i, j]; } if (iTotal == -iBoardSize) { this.BoardState = GameState.ComputerWins; return; } if (iTotal == iBoardSize) { this.BoardState = GameState.HumanWins; return; } } //Check the columns for (j = 0; j < iBoardSize; j++) { iTotal = 0; for (i = 0; i < iBoardSize; i++) { iTotal += aiBoard[i, j]; } if (iTotal == -iBoardSize) { this.BoardState = GameState.ComputerWins; return; }Khoa cng ngh thng tin trng i hc Cng Nghip H Ni Page 12

} //Check Top-Left to Bottom-Right diagonal iTotal = 0; for (i = 0; i < iBoardSize; i++) { iTotal += aiBoard[i, i]; } if (iTotal == -iBoardSize) { this.BoardState = GameState.ComputerWins; return; } if (iTotal == iBoardSize) { this.BoardState = GameState.HumanWins; return; } //Check Top-Right to Bottom-Left diagonal iTotal = 0; for (i = iBoardSize - 1, j = 0; i >= 0 && j