1. Intuition Stan początkowy - rozwinięcie drzewa z punktu widzenia gracza A (nazwijmy go PA) MAX + / \ MIN + ... / \ MAX + ... / \ MIN + + /| |\ Oceniam stan w pierwszym liściu MAX + / \ MIN + ... / \ MAX + ... / \ MIN + + /| |\ 7 Wartość oceny "idzie" do węzła nadrzędnego (węzła minimalizujacego) MAX + / \ MIN + ... / \ MAX + ... / \ MIN (7)+ + /| |\ 7 Oceniam stan w drugim liściu MAX + / \ MIN + ... / \ MAX + ... / \ MIN (7)+ + /| |\ 7 2 Wartość oceny "idzie" do węzła nadrzędnego (węzła minimalizujacego) MAX + / \ MIN + ... / \ MAX + ... / \ MIN (2)+ + /| |\ 7 2 Ponieważ rozważany węzeł minimalizujacy nie ma więcej dzieci, więc wartość oceny "idzie" do węzła nadrzędnego (węzła maksymalizującego) MAX + / \ MIN + ... / \ MAX (2)+ ... / \ MIN (2)+ + /| |\ 7 2 W tym momencie gracz (dla którego drzewo jest budowane) wie, że jak by niekorzystanie dla niego grał przeciwnik to zdobędzie 2 punkty (dokładnie: jego sytuacja w grze będzie oceniona na 2). Próbujemy badać kolejne dziecko węzła. MAX + / \ MIN + ... / \ MAX (2)+ ... / \ MIN (2)+ + /| |\ 7 2 Oceniamy stan w liściu. MAX + / \ MIN + ... / \ MAX (2)+ ... / \ MIN (2)+ + /| |\ 7 2 1 Wartość oceny "idzie" do węzła nadrzędnego (węzła minimalizujacego) MAX + / \ MIN + ... / \ MAX (2)+ ... / \ MIN (2)+(1)+ <------ węzeł rodzicielski (nazwijmy go PN) /| |\ 7 2 1 ? Teraz nie ma potrzeby sprawdzania węzła ze znakiem zapytania. Jeśli jest tam wartość większa niż 1 to i tak w węźle PN pozostanie 1 (jest to wszak węzeł minimalizujący). Jeśli wartość mniejsza niż 1 to tym gorzej dla gracza PA. Tak więc nie ma sensu dalsze badanie dzieci rozważanego węzła rodzicielskiego, gdyż PA ma już zagwarantowane uzyskanie 2 punktów a wybierając ruch prowadzący do tego węzła będzie miał co najwyżej 1. 2. Efectiveness Zauważmy, że obcięcie było możliwe dla sytuacji typu:1 ? ? ?..., np. 1 3 3 4, ale dla 4 3 3 1 już obcięcie nie nastąpi. 3. The same example but with alpha and beta parameters. Stan początkowy - rozwinięcie drzewa z punktu widzenia gracza A (nazwijmy go PA) MAX + / \ MIN + ... v A B / \ MAX (?,-I,+I) + ... -I = -infty / \ +I = +infty MIN (?,-I,+I) + + /| |\ Oceniam stan w pierwszym liściu MAX + / \ MIN + ... / \ MAX (?,-I,+I) + ... / \ MIN (?,-I,+I) + + /| |\ 7 v = 7 Wartość oceny "idzie" do węzła nadrzędnego (węzła minimalizujacego) MAX + / \ MIN + ... / \ MAX (?,-I,+I) + ... / \ MIN (7,-I, 7) + + /| |\ 7 is A >= B ? => no Oceniam stan w drugim liściu MAX + / \ MIN + ... / \ MAX (?,-I,+I) + ... / \ MIN (7,-I, 7) + + /| |\ 7 2 v = 2 Wartość oceny "idzie" do węzła nadrzędnego (węzła minimalizujacego) MAX + / \ MIN + ... / \ MAX (?,-I,+I) + ... / \ MIN (2,-I, 2) + + /| |\ 7 2 is A >= B ? => no Ponieważ rozważany węzeł minimalizujacy nie ma więcej dzieci, więc wartość oceny "idzie" do węzła nadrzędnego (węzła maksymalizującego) MAX + / \ MIN + ... / \ MAX (?,-I,+I) + ... / \ MIN (2,-I, 2) + + /| |\ 7 2 v = 2 W tym momencie gracz (dla którego drzewo jest budowane) wie, że jak by niekorzystanie dla niego grał przeciwnik to zdobędzie 2 punkty (dokładnie: jego sytuacja w grze będzie oceniona na 2). MAX + / \ MIN + ... / \ MAX (2, 2,+I) + ... / \ MIN (2,-I, 2) + + /| |\ 7 2 is A >= B ? => no Próbujemy badać kolejne dziecko węzła. MAX + / \ MIN + ... / \ MAX (2, 2,+I) + ... / \ MIN (2,-I, 2) + + (?, 2, +I) /| |\ 7 2 Oceniamy stan w liściu. MAX + / \ MIN + ... / \ MAX (2, 2,+I) + ... / \ MIN (2,-I, 2) + + (?, 2, +I) /| |\ 7 2 1 v = 1 Wartość oceny "idzie" do węzła nadrzędnego (węzła minimalizujacego) MAX + / \ MIN + ... / \ MAX (2, 2,+I) + ... / \ MIN (2,-I, 2) +(1)+ (1, 2, 1) /| |\ 7 2 1 ? is A >= B ? => yes, so we don't have to test other actions