5 Entwurfsmethoden für Algorithmen
5 Entwurfsmethoden für Algorithmen
5 Entwurfsmethoden für Algorithmen
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
D.h. der Spielzug v → w führt zu einer Bewertung, die höchstens so gut wie die der bereits<br />
gefundenen besten Zugmöglichkeit ist. Der Knoten w und dessen Teilbaum kann daher vernachlässigt<br />
werden. Eine entsprechende Argumentation rechtfertigt den β-Cut.<br />
Folgende Folie zeigt ein Beispiel <strong>für</strong> das Cutting. Wir nehmen an, dass die Söhne der Wurzel<br />
in der Reihenfolge “von links nach rechts” generiert werden. Nach der Analyse des linken<br />
Teilbaums ist der α-Wert der Wurzel gleich 2. Wird nun der erste (linkeste) Sohn des mittleren<br />
Teilbaums der Wurzel generiert und liefert die Payoff-Funktion die Bewertung −1, so erhält der<br />
mittlere Sohn der Wurzel den β-Wert −1. Da dieser schlechter ist als der α-Wert der Wurzel<br />
wird die Analyse des mittleren Teilbaums abgebrochen. Analoges gilt <strong>für</strong> den rechten Teilbaum,<br />
<strong>für</strong> den wir annehmen, dass zuerst der mittlere (mit 1 bewertete) Sohn erzeugt wird.<br />
Der folgende Satz zeigt die Korrektheit des α-β-Prunings, das wir durch zwei sich gegenseitig<br />
aufrufende <strong>Algorithmen</strong> MaxValue(v,ℓ,β) und MinValue(w,ℓ,α) formuliert haben. Siehe<br />
Algorithmus 56 auf Seite 208. Im Aufruf MaxValue(v,ℓ,β) steht der Wert β <strong>für</strong> den aktuellen<br />
β-Wert β(w,ℓ+1) des “Vaters” von w. Entsprechende Bedeutung hat der Wert α bei Aufruf von<br />
MinValue(w,ℓ,α).<br />
In dem Algorithmus nicht eingebaut ist der Fall, dass eine Gewinnstrategie gefunden wurde.<br />
Ist z.B. in MaxValue(v,ℓ,β) der aktuelle Wert <strong>für</strong> α gleich ∞, so wurde ein Gewinn bringender<br />
Spielzug gefunden und die Betrachtung weiterer Folgekonfigurationen von v ist überflüssig.<br />
Satz 5.3.1 (Korrektheit von Algorithmus 56). Die Bewertung c(v0,d) eines Maxknotens v0<br />
bzgl. der Suchtiefe d wird durch den Funktionsaufruf MaxValue(v0,d,+∞) berechnet.<br />
Beweis. Der Beweis von Satz 5.3.1 beruht auf folgenden beiden allgemeineren Aussagen:<br />
(i) Ist v eine Endkonfiguration oder ℓ = 0, so gilt <strong>für</strong> alle α und β:<br />
MaxValue(v,ℓ,β) = MinValue(v,ℓ,α) = Payoff(v).<br />
207