Piotr
2011-12-30 08:48:57 UTC
Witam!
Mam problem z algorytmem alpha-beta
http://pl.wikipedia.org/wiki/Algorytm_alfa-beta. Generalnie to on
działa, zwraca mi wartość alpha (lub beta) odpowiednią dla
najkorzystniejszego liścia.
Zupełnie się gubię gdy chodzi o rekurencję. :(
Nie potrafię zapamiętać adresu tego końcowego liścia.
Czy mógłby mi ktoś pomóc? Męczę się z tym strasznie. :(
Pseudo kod algorytmu alfa-beta
(http://pl.wikipedia.org/wiki/Algorytm_alfa-beta):
funkcja alfabeta(węzeł, głębokość, α, β)
jeżeli węzeł jest końcowy lub głębokość = 0
zwróć wartość heurystyczną węzła
jeżeli przeciwnik ma zagrać w węźle
dla każdego potomka węzła
β := min(β, alfabeta(potomek, głębokość-1, α, β))
jeżeli α≥β
zwróć α
zwróć β
w przeciwnym przypadku {my mamy zagrać w węźle}
dla każdego potomka węzła
α := max(α, alfabeta(potomek, głębokość-1, α, β))
jeżeli α≥β
zwróć β
zwróć α
Moja implementacja w C++:
http://wklej.eu/index.php?id=971666da4f
Prosę o jakąś podpowiedź. Jak zapamiętać adres tego końcowego liścia?
Może być tylko dla gracza. Bo stanąłem w miejscu. ;(
Pozdrawiam serdecznie
Piotr
Mam problem z algorytmem alpha-beta
http://pl.wikipedia.org/wiki/Algorytm_alfa-beta. Generalnie to on
działa, zwraca mi wartość alpha (lub beta) odpowiednią dla
najkorzystniejszego liścia.
Zupełnie się gubię gdy chodzi o rekurencję. :(
Nie potrafię zapamiętać adresu tego końcowego liścia.
Czy mógłby mi ktoś pomóc? Męczę się z tym strasznie. :(
Pseudo kod algorytmu alfa-beta
(http://pl.wikipedia.org/wiki/Algorytm_alfa-beta):
funkcja alfabeta(węzeł, głębokość, α, β)
jeżeli węzeł jest końcowy lub głębokość = 0
zwróć wartość heurystyczną węzła
jeżeli przeciwnik ma zagrać w węźle
dla każdego potomka węzła
β := min(β, alfabeta(potomek, głębokość-1, α, β))
jeżeli α≥β
zwróć α
zwróć β
w przeciwnym przypadku {my mamy zagrać w węźle}
dla każdego potomka węzła
α := max(α, alfabeta(potomek, głębokość-1, α, β))
jeżeli α≥β
zwróć β
zwróć α
Moja implementacja w C++:
http://wklej.eu/index.php?id=971666da4f
Prosę o jakąś podpowiedź. Jak zapamiętać adres tego końcowego liścia?
Może być tylko dla gracza. Bo stanąłem w miejscu. ;(
Pozdrawiam serdecznie
Piotr