Post on 01-Jun-2018
8/9/2019 AI game playing
1/46
Game Playing
CIS 479/579
Bruce R. MaximUM-Dearbrn
8/9/2019 AI game playing
2/46
8/9/2019 AI game playing
3/46
Im)r'ing Searc&-Ba$e"
Prblem Sl'ing#( )!in$
. Im)r'e genera!r ! nly genera!e
g" m'e$ r )a!&$
0. Im)r'e !e$!er $ !&a! g" m'e$
recgni1e" early an" ex)lre" *ir$!
8/9/2019 AI game playing
4/46
U$ing Genera!e an" #e$!
% Can be u$e" ! $l'e i"en!i*ica!in
)rblem$ in $mall $earc& $)ace$
% Can be !&ug&! * a$ being a "e)!&-*ir$!$earc& )rce$$ (i!& bac+!rac+ing
all(e"
% Den"ral 2 ex)er! $y$!em *r i"en!i*yingc&emical cm)un"$ *rm 3MR $)ec!ra
8/9/2019 AI game playing
5/46
Danger$
% Cn$i"er a $a*e crac+er !rying ! u$e
genera!e a !e$! ! crac+ a $a*e (i!& a
number cmbina!in 66-66-66% #&ere are 664 )$$ible cmbina!in$
% ,! a!!em)!$/minu!e i! (ul" !a+e 8
(ee+$ * 04/7 (r+ ! !ry eac&cmbina!in in a $y$!ema!ic manner
8/9/2019 AI game playing
6/46
8/9/2019 AI game playing
7/46
Dealing (i!& ,"'er$arie$
% Game$ &a'e *a$cina!e" cm)u!er $cien!i$!$*r many year$
% Babbage 2 )laying c&e$$ n ,naly!ic :ngine
2 "e$igne" #ic-#ac-#e mac&ine
% S&ann 956 an" #uring 95
2 "e$cribe" c&e$$ )laying algri!&m$% Samuel$ 986
2 Buil! *ir$! $igni*ican! game )laying )rgramc&ec+er$
8/9/2019 AI game playing
8/46
;&y game$ a!!rac!e" in!ere$! *
cm)u!er $cien!i$!$<% Seeme" ! be a g" "main *r (r+
n mac&ine in!elligence= becau$e !&ey
(ere !&ug&! !> 2 )r'i"e a $urce * a g" $!ruc!ure" !a$+
in (&ic& $ucce$$ r *ailure i$ ea$y !
mea$ure 2 n! re?uire muc& +n(le"ge !&i$ (a$ la!er
*un" ! be un!rue
8/9/2019 AI game playing
9/46
C&e$$
% ,'erage branc&ing *ac!r *r eac&)$i!in i$ 5
% :ac& )layer ma+e$ 56 m'e$ in ana'erage game
% , cm)le!e game &a$ 5-66 )!en!ial
)$i!in$ ! cn$i"er % S!raig&! *r(ar" $earc& * !&i$ $)ace
(ul" n! !ermina!e "uring ei!&er)layer$ li*e!ime
8/9/2019 AI game playing
10/46
Game$
% Can! $im)ly u$e $earc& li+e in )u11le
$l'ing $ince yu &a'e an ))nen!
% 3ee" ! &a'e b!& a g" genera!r
an" an e**ec!i'e !e$!er
% @euri$!ic +n(le"ge (ill al$ be &el)*ul
! b!& !&e genera!r an" !e$!er
8/9/2019 AI game playing
11/46
Ply
% Sme (ri!er$ u$e !&e !erm )ly !mean a $ingle m'e by ei!&er )layer
% Sme in$i$!$ )ly i$ ma"e u) * a m'ean" a re$)n$e
% I (ill u$e !&e *ir$! "e*ini!in= $ )ly i$
!&e $ame a$ !&e "e)!& - * !&e"eci$in !ree r!e" a! !&e curren! game$!a!e
8/9/2019 AI game playing
12/46
S!a!ic :'alua!in Aunc!in
% U$e" by !&e !e$!er
% Similar ! cl$er) *rm ur &euri$!ic
$earc& (r+ in , !y)e algri!&m$
% In general i! (ill nly be a))lie" ! !&e
lea* n"e * !&e game !ree
8/9/2019 AI game playing
13/46
S!a!ic :'alua!in Aunc!in$
% #uring C&e$$$um * (&i!e 'alue$ / $um * blac+ 'alue$
% Samuel$ C&ec+er$linear cmbina!in (i!& in!erac!in !erm$
% )iece a"'an!age
% ca)abili!y *r a"'ancemen!
% cn!rl * cen!er % !&rea! * *r+
% mbili!y
8/9/2019 AI game playing
14/46
8/9/2019 AI game playing
15/46
#ic #ac #e
8/9/2019 AI game playing
16/46
#ic #ac #e
66, E 6B E C 2 66D E 6: E A
, F number * line$ (i!& $
B F number * line$ (i!& 0$
C F number * line$ (i!& $ingle
D F number * line$ (i!& H$: F number * line$ (i!& 0 H$
A F number * line$ (i!& a $ingle H
8/9/2019 AI game playing
17/46
:xam)le
H
H H
, F 6 B F 6 C F
D F 6 : F A F
66 6 E 66 E 2
66 6 E 6 E F
2 F-6
8/9/2019 AI game playing
18/46
;ea+ne$$
% ,ll $!a!ic e'alua!in *unc!in$ $u**er
*rm !( (ea+ne$$e$
2 in*rma!in l$$ a$ cm)le!e $!a!ein*rma!in ma))e" ! a $ingle number
2 Min$+y$ Cre"i! ,$$ignmen! )rblem
% i! i$ ex!remely "i**icul! ! "e!ermine (&ic& m'ein a )ar!icular $e?uence * m'e$ cau$e" a
)layer ! (in r l$$ a game r &( muc&
cre"i! ! a$$ign ! eac& *r en" re$ul!
8/9/2019 AI game playing
19/46
;&a! " (e nee" *r game$<
% Plau$ible m'e genera!r
% G" $!a!ic e'alua!in *unc!in$
% Sme !y)e * $earc& !&a! !a+e$
))nen! be&a'ir in! accun! *r
nn!ri'ial game$
8/9/2019 AI game playing
20/46
-)ly Minimax
% I* !&e $!a!ic e'alua!in i$ a))lie" ! !&e lea*n"e$ (e ge!
B F C F D F -0
% S be$! m'e a))ear$ ! be B
A
CB D
8/9/2019 AI game playing
21/46
0-)ly Minimax
% ,))lying !&e $!a!ic e'alua!in *unc!in
: F 9 A F -8 G F 6 @ F 6 I F -0 J F -4 K F -
A
B C D
E F G IH J K
8/9/2019 AI game playing
22/46
Pr)aga!ing !&e Lalue$
% ;ill "e)en" n !&e le'el
% ,$$uming !&a! !&e minimi1er c&$e$ *rm
!&e lea* n"e$= be (ul" ge!B F min9= -8= 6 F -8
C F min6= -0 F -0
D F min-4= - F -4
% #&e !&e maximi1er ge!$ ! c&$e *rm !&eminimi1er$ 'alue$ an" $elec!$ m'e C
, F max-8= -0= -4
8/9/2019 AI game playing
23/46
Minimax ,lgri!&m
I* limi! * $earc& reac&e" !&en
cm)u!e $!a!ic 'alue * curren! )$i!in
re!urn !&e re$ul!:l$e I* le'el i$ minimi1ing le'el !&en
u$e Minimax n c&il"ren * curren! )$i!in
re)r! minimum * c&il"ren$ re$ul!$
:l$eu$e Minimax n c&il"ren * curren! )$i!in
re)r! maximum * c&il"ren$ re$ul!$
8/9/2019 AI game playing
24/46
Searc& imi!
% @a$ $mene (n !&e game<
% 3umber * )ly ex)lre" $ *ar
% @( )rmi$ing i$ !&i$ )a!&<
% @( muc& !ime i$ le*!<
% @( $!able i$ !&i$ cn*igura!in<
8/9/2019 AI game playing
25/46
Cri!ici$m * Minimax
% G"ne$$ * curren! )$i!in !ran$la!e"
! a $ingle number (i!&u! +n(ing &(
!&e number (a$ *rce" n u$% Su**er$ *rm &ri1n e**ec!
2 a (in r l$$ mig&! be in !&e nex! )ly an"
(e (ul" n! +n( i!
8/9/2019 AI game playing
26/46
8/9/2019 AI game playing
27/46
,l)&a-Be!a ,$$um)!in$
% ,l)&a 'alue ini!ially $e! ! -
an" ne'er
"ecrea$e$
% Be!a 'alue ini!ially $e! ! E an" ne'erincrea$e$
% ,l)&a 'alue i$ al(ay$ curren! large$! bac+e"
u) 'alue *un" by any n"e $ucce$$r
% Be!a 'alue i$ al(ay$ curren! $malle$! bac+e"
u) 'alue *un" by any n"e $ucce$$r
8/9/2019 AI game playing
28/46
,l)&a-Be!a Pruning
8/9/2019 AI game playing
29/46
,l)&a-Be!a Pruning
8/9/2019 AI game playing
30/46
,l)&a-Be!a
% ;i!& )er*ec! r"ering mre $!a!ic e'alua!in$are $+i))e"
% :'en (i!&u! )er*ec! r"ering many e'alua!in$can be $+i))e"
% I* (r$! )a!&$ are ex)lre" *ir$! n cu!**$ (illccur
% ;i!& )er*ec! r"ering al)&a-be!a le!$ yu exam!(ice !&e number * )ly !&a! minimax (i!&u!al)&a-be!a can examine in !&e $ame amun! *!ime
8/9/2019 AI game playing
31/46
,l)&a-Be!a ,lgri!&m
Function Value (P, ∝, β)
// P is the position in the data structure
{
// determine successors of P and call them // P(1), P(2), P(d)
if d!" then
return f(p) // call static evaluation function
// return as value to parent
8/9/2019 AI game playing
32/46
,l)&a-Be!a ,lgri!&m
else
{
m ! ∝
for i !1 to d do {
t ! # value (Pi # β, # m)
if t $ m then
m ! t
if !$ β then
e%it loop
&
&
return m
&
8/9/2019 AI game playing
33/46
,l)&a-Be!a CEE
'include iostreamh$
'include timeh$
'include stdlih$
'include valuesh$
// his proram is a implementation of the lpha-eta
// alorithm found in .reuter 0 ac.enie p 2
const rue ! 13
const False ! "3
const a%4um ! 23 //node deree
const 4umPl5 ! 63 //search pl5
const 7oot ! 13 //start search at this location
const 8nde% ! 913
8/9/2019 AI game playing
34/46
,l)&a-Be!a CEE
t5pedef float ree:8nde%;3 //simulated ame tree
t5pedef int
8/9/2019 AI game playing
35/46
,l)&a-Be!a CEE
void 8nit(ree 0)
// -uild dumm5 ame tree
{ int 83
for (8 ! 1>3 8 ! 13 8++)
//lan? out 6#pl5 leaf nodes :8; ! ""3 &
float @val(
8/9/2019 AI game playing
36/46
,l)&a-Be!a CEE
int erminal(
8/9/2019 AI game playing
37/46
8/9/2019 AI game playing
38/46
,l)&a-Be!a CEE
int achineove(Pl5 4)
// Ahec?s to see if it is computerDs
move
// in this pl5 {
return E(4 2)3
//odd moves are computers
&
8/9/2019 AI game playing
39/46
,l)&a-Be!a CEE
float lpha-eta
(
8/9/2019 AI game playing
40/46
,l)&a-Be!a CEE
if ((4 !! ") GG erminal(
8/9/2019 AI game playing
41/46
8/9/2019 AI game playing
42/46
,l)&a-Be!a CEE
if (achineove(4)) //proramDs move
{
-est
8/9/2019 AI game playing
43/46
,l)&a-Be!a CEE
else
{
-est
8/9/2019 AI game playing
44/46
,l)&a-Be!a CEE
void main( )
{
randomie()3
8nit()3
cout IValue ! J
lpha-eta(Ahild(7oot, 1), 4umPl5 # 1, #B84, B84)
IKnI3
cout IValue ! J
lpha-eta(Ahild(7oot, 2), 4umPl5 # 1, #B84, B84)
IKnI3
&
8/9/2019 AI game playing
45/46
@ri1n @euri$!ic$
% Prgre$$i'e "ee)ening 2 )ly $earc& *ll(e" by 4 )ly= *ll(e" by 5 )ly=
e!c. un!il !ime run$ u!
% @euri$!ic )runing 2 r"er m'e$ ba$e" n )lau$ibili!y an" elimina!e
unli+ely )$$ibili!ie$
2 "e$ n! cme (i!& minimax guaran!ee
% @euri$!ic cn!inua!in 2 ex!en" )rmi$ing r 'la!ile )a!&$ r 0 mre
$!e)$ be*re cmmi!!ing ! c&ice
8/9/2019 AI game playing
46/46
@ri1n @euri$!ic$
% Au!ili!y cu!-**
2 $!) ex)lring (&en im)r'emen!$ are marginal
2 "e$ n! cme (i!& minimax guaran!ee% Secn"ary $earc&
2 nce yu )ic+ a )a!& u$ing a 8 )ly $earc& cn!inue
*rm lea* n"e (i!& a )ly $earc& ! cn*irm )ic+
% B+ m'e$ 2 elimina!e$ $earc& in $)eciali1e" $i!ua!in$
2 "e$ n! cme (i!& minimax guaran!ee