29.05.2009| Optimierung in dynamischer Umgebung| 72
C o m p u te rs ch a ch G ru n d la g en I
29.05.2009| Optimierung in dynamischer Umgebung| 73
W a s m a c h t e in S c h a c h p r o g r a m m e ig e n tl ic h ?
6 66 52761404745
46 max-Knoten
min-Knoten
bester Zug 6 66 52671404
745
46
Minimax-Wert der Wurzel MAX-Strategie MIN-Strategie
(I I) V o ra u s s c h a u
29.05.2009| Optimierung in dynamischer Umgebung| 74
M in im a x -P r in z ip D e fi n it io n : Im f o lg e n d e n i s t G = ( T ,h ) e in S p ie lb a u m , w e n n T = ( V ,E ) e in B a u m is t u n d h : L (G ) {0 ,1 } e in e F u n k ti o n i s t, d ie B la tt k n o te n d e s S p ie lb a u m s G a u f Z a h le n a b b ild e t. L (G ) b e z e ic h n e t h ie r d ie M e n g e d e r B la tt k n o te n v o n G . D e fi n it io n : E s g e b e 2 S p ie le r M IN u n d M A X . M A X b e s it z t d a s Z u g re c h t a u f d e n g e ra d e n E b e n e n d e s S p ie lb a u m s , M IN a u f d e n a n d e re n . H ie rd u rc h w ir d e in e S p ie le rf u n k ti o n d e fi n ie rt : p : V {M A X , M IN } D e fi n it io n : S e i G = ( (V ,E ), h ) e in S p ie lb a u m . S e i v ∈ V e in K n o te n d e s S p ie lb a u m s G . D ie F u n k ti o n m in im a x : V {0 ,1 } is t in d u k ti v w ie f o lg t d e fi n ie rt : h (v ), fa lls v ∈ L (G ) m in im a x (v ) := m a x {m in im a x (v ‘ | (v ,v ‘) ∈ E } , fa lls p (v ) = M A X m in {m in im a x (v ‘) | ( v ,v ‘) ∈ E } , fa lls p (v ) = M IN D e r M in im a x w e rt d e s K n o te n s v i s t m in im a x (v ). D e r M in im a x w e rt d e r W u rz e l e in e s S p ie lb a u m s G w ir d m it m in im a x (G ) b e z e ic h n e t.
29.05.2009| Optimierung in dynamischer Umgebung| 75
S c h n e ll , s c h n e ll , s c h n e ll ! D e r k ri ti s c h e P u n k t is t d ie i n te ll ig e n te V o ra u s s c h a u .
top5 0 J a h re w ä h re n d e E rf a h ru n g z e ig t: D e r S p ie lb a u m v e rh ä lt s ic h w ie e in F e h le rf il te r! J e g rö ß e r d e r B a u m , d e s to b e s s e r d e r F ilt e r. D e r A lp h a b e ta -A lg o ri th m u s s p ie lt d a b e i e in e w ic h ti g e R o lle .
•Man wähle einen geeigneten Teilbaum, der die aktuelle Stellung enthält. So groß wie möglich. •Weise den künstlichen Endstellungen heuristische Werte zu! •Werte aus!
29.05.2009| Optimierung in dynamischer Umgebung| 76
[-∞,∞] [-∞,∞] [-∞,∞] [5]
[-∞,5] [-∞,5] [7]
[ 5,∞] [5][5,∞] [4]
[5,4] Cutoff
4
A lp h a b e ta -A lg o ri th m u s M in ia tu rb e is p ie l
29.05.2009| Optimierung in dynamischer Umgebung| 77
A lp h a b e ta -A lg o ri th m u s
29.05.2009| Optimierung in dynamischer Umgebung| 78
A lp h a b e ta -A lg o ri th m u s D e r A lp h a b e ta a lg o ri th m u s : •T ie fe n s u c h e • w e n n d ie S u c h e a n K n o te n v a n g e la n g t, k ö n n e n w ir u n s v o rs te lle n , d a s s • d e r d u rc h s u c h te T e il d e s S u c h b a u m s „l in k s “ v o n d e m W e g v o n d e r W u rz e l r z u v l ie g t, u n d • d e r n o c h n ic h t d u rc h s u c h te T e il „r e c h ts “ d e s W e g e s l ie g t. v
r α
0,1α
0,k 0α
2,1α
2,k 2β
1,1β
1,k 1β
t,1β
t,k t.. . .. . .. . .. . .. .
29.05.2009| Optimierung in dynamischer Umgebung| 79
A lp h a b e ta -A lg o ri th m u s E s s e ie n α
i,j(β
i,j) d ie W e rt e d e r lin k e n N a c h b a rk n o te n v o n M IN - (b z w . M A X )- K n o te n a u f d e m W e g v o n r n a c h v . S e i α (v ) := m a x
i=0,...,t; i geradem a x
j=1,...,k iα
i,ju n d β (v ) := m in
i=0,...,t; i ungeradem in
j=1,...,k iβ
i,jD a n n k a n n M A X b e re it s α (v ) e rr e ic h e n , M IN b e re it s β (v ). F (v ) is t a ls o n u r n o c h v o n I n te re s s e , w e n n α (v ) < F (v ) < β (v ). W u rd e A lp h a b e ta (r ,- ∞ ,∞ ) a u fg e ru fe n , w ir d d e r A lp h a b e ta -A lg o ri th m u s f ü r v m it A lp h a b e ta (v ,α (v ), β (v )) a u fg e ru fe n . v
r α
0,1α
0,k 0α
2,1α
2,k 2β
1,1β
1,k 1β
t,1β
t,k t.. . .. . .. . .. . .. .
29.05.2009| Optimierung in dynamischer Umgebung| 80
A lp h a b e ta -A lg o ri th m u s B e o b a c h tu n g : α (v ) u n d β (v ) s in d a b h ä n g ig v o n d e m b e re it s d u rc h s u c h te n T e il d e s S u c h b a u m s u n d d a m it v o n d e r R e ih e n fo lg e r v o n N a c h fo lg e - k n o te n . S a tz : E s s e i G = (V ,E ,f ) e in S p ie lb a u m , v e in K n o te n a u s V , α (v ) u n d β( v ) d ie S c h ra n k e n f ü r v . D e r A lp h a b e ta -A lg o ri th m u s u n te rs u c h t v g e n a u d a n n , w e n n α (v ) < β (v ). B e w e is : k la r m it Ü b e rl e g u n g v o n v o rh e r u n d C u to ff -B e d in g u n g i m A lg o ri th m u s .
29.05.2009| Optimierung in dynamischer Umgebung| 81
A lp h a b e ta -A lg o ri th m u s , N e g a m a x -V a ri a n te in t n e g a m a x (n o d e v , in t a , b ) { if (v i s t B la tt ) re tu rn f( v ); // f b e w e rt e v j e tz t a u s S ic h t d e s Z ie h e n d e n ! e rz e u g e a lle N a c h fo lg e r v
0.. . v
b-1v o n v fo r (i = 0 ; i < b ; i+ + ) { a = m a x (a , -n e g a m a x (v
i, -b , -a )) if (a ≥ b ) re tu rn a ; / / c u to ff } re tu rn a ; } L e m m a : S e i x = n e g a m a x (v ,α ,β) u n d F b e s c h re ib e d e n M in im a x -W e rt a u s S ic h t d e s S p ie le rs , d e r b e i v a m Z u g i s t. D a n n g ilt : x ≤ α fa lls F (v ) ≤ α x = F (v ) fa lls α < F (v ) < β x ≥ β fa lls F (v ) ≥ β B e w e is : In d u k ti o n ü b e r H ö h e h d e s S p ie lb a u m s Ü b u n g
29.05.2009| Optimierung in dynamischer Umgebung| 82
A lp h a b e ta -A lg o ri th m u s , A u fw a n d S e i G = ( V ,E ,f ) e in b /t -u n if o rm e r S p ie lb a u m , d .h ., a lle i n n e re n K n o te n b e s it z e n b N a c h fo lg e r u n d a lle B lä tt e r lie g e n i n T ie fe t . S e i r s e in e W u rz e l. B e o b a c h tu n g : Im s c h lim s te n F a ll b e s u c h t d e r A lp h a b e ta -A lg o ri th m u s a lle K n o te n d e s S p ie lb a u m s . D e fi n it io n ( K n o te n ty p , k ri ti s c h e r K n o te n ) a ) D ie A b b ild u n g T y p : V {0 ,1 ,2 ,3 } is t d e fi n ie rt d u rc h T y p (r ) = 1 u n d b ) e in K n o te n v h e iß t k ri ti s c h , w e n n T y p (v ) ≠ 0 .
.. . .. . .. . .. .
01231 22
2 2230000
0
29.05.2009| Optimierung in dynamischer Umgebung| 83
A lp h a b e ta -A lg o ri th m u s , A u fw a n d S a tz : E s s e i A e in b e lie b ig e r A lg o ri th m u s , d e r z u e in e m S p ie lb a u m G = ( V ,E ,f ) m it W u rz e l r d e m M in im a x w e rt F (r ) b e re c h n e t. D a n n k a n n m a n G d u rc h P e rm u ta ti o n e n d e r N a v c h fo lg e r d e r in n e re n K n o te n s o z u G ‘ v e rä n d e rn , d a s s je d e r K n o te n , d e n d e r A lp h a b e ta - A lg o ri th m u s a u f G ‘ b e s u c h t a u c h v o n A a u f G b e s u c h t w ir d . D e r A lp h a b e ta - A lg o ri th m u s b e s u c h t g e ra d e d ie k ri ti s c h e n K n o te n .
29.05.2009| Optimierung in dynamischer Umgebung| 84
A lp h a b e ta -A lg o ri th m u s , A u fw a n d B e w e is s k iz z e :
Für Knoten vom Typ 1,2,3 gelten folgende Aussagen, welche durch eine gemeinsame Induktion über die Tiefe von G bewiesen werden können: A1: Sei v ein Knoten mit Typ(v) = 1. Dann gilt: •A berechnet für v den Minimaxwert F(v). •ist v ein Blatt, so wird von A f(v) berechnet, •sonst: •muss A einen Nachfolger v ivon v gefunden haben, dessen untere Schranke den Wert F(v) besitzt. Ausserdem müssen für alle Nachfolger obere Schranken ≤F(v) nachgewiesen worden sein. Insbesondere muss der Minimaxwert von v ibestimmt worden sein. Permutiere die Nachfolger von v in G‘nun so, dass v iin G‘der erste Nachfolger ist. In G weisen wir dem Knoten v iden Typ 1 zu, allem anderen Nachfolgern von v den Typ 2. •v wird mit negamax(v,-∞,∞) untersucht •Typ(v i) = 1 in G‘Typ(v j) = 2 für j ≠i in G‘und v iwird in G‘mit negamax(v i,-∞,∞) untersucht, und alle anderen Nachfolger von v mit negamax(v j,-∞,-F(v i)). An den vjkommt es zu Cutoffs, weil der erste Nachfolger von v in G‘ den größten Wert besitzt.29.05.2009| Optimierung in dynamischer Umgebung| 85
A lp h a b e ta -A lg o ri th m u s , A u fw a n d
A2: Sei v ein Knoten mit Typ(v) = 2. Dann gilt: •A berechnet für v zumindest eine untere Schranke β> -∞. •ist v ein Blatt, so wird von A f(v) berechnet, •sonst: •muss A einen Nachfolger v ivon v gefunden haben, dessen untere Schranke β> -∞ist. Wir weisen v iden Typ 3 zu, allen anderen Nachfolgern von v den Typ 0. Permutiere die Nachfolger von v in G‘nun so, dass v iin G‘der erste Nachfolger ist. •v wird mit negamax(v,-∞,β) untersucht •Typ(v i) = 3 in G‘Typ(v j) = 0 für j ≠i in G‘und v iwird in G‘mit negamax(v i,-β,∞) untersucht. negamax(v i,-β,∞) liefert einen Wert x ≤-βund es erfolgt ein Cutoff an v. A3: Sei v ein Knoten mit Typ(v) = 3. Dann gilt: •A berechnet für v eine obere Schranke für F(v). Er muss also alle Nachfolger betrachten. Alle Nachfolger bekommen den Typ 2. •ist v ein Blatt, so wird von A f(v) berechnet, •sonst: v wird in G‘mit negamax(v,α,∞) untersucht, und Typ(v j) = 2für alle Nachfolger v jvon v. Die Nachfolger werden gesucht mit dem Aufruf negamax(v j,-∞,α).29.05.2009| Optimierung in dynamischer Umgebung| 86