!"#$%&%'"#$%()#"#*+%,%
#-"%.-/*)'#01)-%
23*%!#4."-%5"40.-%
%
6.0"-0"%789:;:%
<=>?@<=>A%%
%
:/"B3-%C#+/3B++)-%
D#"4E#"+%F4FG"-/+%'"%0)-/"$/"%
H4#+."#*+%2).-/+%'"%I#"%+#*%4"%("#%
/JF)*."%'"+%("#$%K0BL%F0)-)G."M%
G#41@3N"-/+%"-%"-I.*)--"G"-/%0)G2F11B%
O-%89P%+)#I"-/%,%
'F/"*G.-.+/"%
/)/34"G"-/%)Q+"*I3Q4"%
'"#$%3N"-/+%E#.%()#"-/%0J30#-%4"#*%/)#*%
'"#$%I34"#*+%R%'S#14./F%T%0)--#"+%&%43%U-P%+VGF/*.E#"+%"/%
)22)+F"+%K)-%23*4"%'"%R%+./#31)-+%3'I"*+"+%TM%
H)#*E#).%4"+%("#$%W%
X-%"-+"GQ4"%Q."-%'FU-.%"/%+)#I"-/%2"1/%'"%*YN4"+%
X-"%0)--3.++3-0"%322*)B)-'."%'"+%("#$%F/#'.F+%K"$L%
4"+%F0J"0+%)#%4"%N)M%
O+230"+%'"%*"0J"*0J"%/*Y+%I3+/"+%
Z"G2)*/"*%#-"%I.0/).*"%0)-/*"%#-%[/*"%J#G3.-%'3-+%
#-%')G3.-"%'"%4S.-/"44.N"-0"%
6"+%("#$%0)GG"%'"+%2*)Q4YG"+%'"%*"0J"*0J"%
\J3E#"%2)+.1)-%"+/%#-%F/3/%
\J3E#"%G)#I"G"-/%"+/%#-"%)2F*31)-%E#.%
2"*G"/%'"%23++"*%'S#-%F/3/%&%#-%3#/*"%
6S"+230"%'SF/3/%"+/%I*3.G"-/%/*Y+%N*3-'%
B30/"#*%'"%Q*3-0J"G"-/%'"+%F0J"0+%]^_%
3*Q*"%'"%*"0J"*0J"%2*)B)-'%K]_=%2)#*%4"+%F0J"0+M%
`"+).-%'SJ"#*.+1E#"+%a%
6S)22)+3-/%-S"+/%23+%B30.4"G"-/%2*F'.01Q4"%
63%+)4#1)-%"+/%#-%+/*3/FN."%
E#"4%G)#I"G"-/%"-%B)-01)-%'"%43%*F2)-+"%'"%
4S3'I"*+3.*"%W%
2*FI).*%(#+E#S&%#-%0"*/3.-%J)*.b)-%
6.G./"+%'"%/"G2+%
.4%B3#/%'"+%J"#*.+1E#"+%2)#*%*F'#.*"%4"%/"G2+%"/%
3#NG"-/"*%4SJ)*.b)-%
4"+%3N"-/+%').I"-/%322*)$.G"*%
O$"G24"+%'"%("#$%
`30cN3GG)-%d%ef@C3GG)-%K>gg<M%
f3G"+%d%\J.-))c%K>gghM%
\J"++%d%f""2%`4#"%K>ggAM%
i/J"44)%d%6)N.+/"44)%K>ggAM%
Q"N.--.-NP%G.''4"P%3-'%"-'.-N%+/*3/"NV%
N"-"*344V%300"2/"'%/J3/%J#G3-+%3*"%-)%G3/0J%B)*%
0)G2#/"*+%3/%i/J"44)%
`*.'N"%K`*.'N"%`3**)-%>ggAP%!30c%<==?M%
.G2"*B"0/%.-B)*G31)-%
G#41243V"*%j./J%/j)%/"3G+%)B%/j)%
C)% 942J3C)%K<=>?M%
Arbre de jeu (2 joueurs,
déterministe, chacun son tour)
Minimax
Décision « parfaite » dans des jeux déterministes
Idée: choisir un pas vers une position avec la valeur
minimax la plus élevée
= meilleurs rendements atteignables contre le meilleur jeu (en supposant
que l’adversaire essaie de faire la même chose)
Par ex., jeu à 2 plis
Algorithme Minimax
Propriétés de minimax
Complète? Oui (si l’arbre est fini)
Optimal? Oui (contre un joueur optimal qui utilise la même
stratégie)
Temps? O(bm)
Espace? O(bm) (exploration en profondeur d’abord)
Pour les échecs, b 35, m 50 pour un jeu « raisonnable »
à solution exacte infaisable
Limiter la profondeur
Nombre de plis à développer
pli (ply) = une couche de jeu, par Max ou par Min
Changement à faire dans l’algorithme
if TERMINAL-TEST(state) then return UTILITY(state)
If DEPTH-LIMIT(state) then return EVAL(state)
k)-01)-%'S#14./F%
O-%4.G./3-/%43%2*)B)-'"#*P%.4%B3#/%*F#++.*%&%
FI34#"*%#-"%+./#3./)-%
H3*%"$"G24"%3#$%F0J"0+%,%
#-"%B)-01)-%"+/%/V2.E#"G"-/%#-"%0)GQ.-3.+)-%4.-F3.*"%'"%
I3*.3Q4"+%KfeaturesM%
"valK+M = w1f1K+M + w2f2KsM + … + wnfnKsM%
"$"G24"%'"%I3*.3Q4"+%,%
j>%l%g%
B>K+M%l%-Q%'"%*".-"+%'#%03+%>%%-Q%'"%*".-"+%'#%03G2+%<%
O43N3N"%942J3@`"/3%
942J3%l%I34"#*%'#%G".44"#*%0J).$%/*)#IF%(#+E#S&%
2*F+"-/%2)#*%#-%-)"#'%79m%K24#+%grande%I34"#*M%
`"/3%l%I34"#*%'#%G".44"#*%0J).$%/*)#IF%(#+E#S&%
2*F+"-/%2)#*%#-%-)"#'%78n%K24#+%pe(te%I34"#*M%
D#3-'%)-%23*0)#*/%4S3*Q*"%,%
+.%)-%')./%G3$.G.+"*P%)-%0)#2"%4"+%I34"#*+%o%342J3%
+.%)-%')./%G.-.G.+"*P%)-%0)#2"%4"+%I34"#*%p%Q"/3%
Algorithme α-β – pour ne pas
explorer des nœuds inutiles
Sur un chemin, on a des limites connues pour
la valeur à trouver [α,β] (initialisées à [-,+])
Max a déjà trouvé une solution α, et Min ne
va pas permettre de choisir une solution plus
grande que β sur cette branche
Pour un nœud Max A, on tente de maximiser.
Si un enfant B génère une valeur > β, alors le
nœud parent (Min) ne va jamais choisir ce nœud A.
à On coupe le reste de la branche.
Pour un nœud Min, on tente de minimiser. Si un
enfant génère une valeur < α, alors son parent
(Max) ne va jamais choisir le nœud.
à On coupe le reste de la branche
A [α,β] MAX
`%pq%%%%%%%%%%%78n%
78n%
Algorithme α-β
Algorithme α-β
Exemple
(a) (b)
(c) (d)
(e) (f)
3312
3 12 8 3 12 8 2
3 12 8 2 14 3 12 8 2 14 5 2
A
B
A
B
A
BCD
A
BCD
A
B
A
BC
[, +][, +]
[3, +][3, +]
[3, 3][3, 14]
[, 2]
[, 2] [2, 2]
[3, 3]
[3, 3][3, 3]
[3, 3]
[, 3][, 3]
[, 2][, 14]
Propriété de α-β
L’élagage n’affecte pas le résultat final
élaguer seulement les nœuds qui ne sont pas compétitifs
La quantité de nœuds élagués dépend de l’ordre de
nœuds
Avec un ordre parfait, complexité en temps = O(bm/2)
à on peut donc doubler la profondeur de recherche
ZFBF*"-0"+%
:/#3*/%Z#++"44%3-'%H"/"*%n)*I.NL%9*1U0.34%8-/"44.N"-0",%9%
7)'"*-%922*)30J%KeJ.*'%O'.1)-ML%H*"-10"@;344P%O-N4"j))'%
\4.r+P%n!P%<=>=L%
n)GQ*"#$%/*3-+23*"-/+%*"2*.+%'3-+%'"+%0)#*+%'S8-/"44.N"-0"%
9*1U0."44"%K23*%"$L%7L%:0J"*N"*P%s"-/%:/3/"%X-.I"*+./VP%<==?P%
)#%!L%;)rG3--P%:33*43-'%X-.I"*+./VP%<=>hM%
1 / 5 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !