+ All Categories
Home > Documents > AI game playing

AI game playing

Date post: 01-Jun-2018
Category:
Upload: kaushi123
View: 244 times
Download: 0 times
Share this document with a friend

of 46

Transcript
  • 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


Recommended