Pur comprendendo il concetto di potatura alfa-beta e albero MiniMax, non capisco perché in molte (ad esempio wikipedia) risorse sull'alfa-beta di potatura ci sia una condizione come α> = β. Nello specifico, l'uguaglianza è confusa. Come ho capito, la beta alfa restituisce mossa che il minmax sarebbe tornato, ma per lo più lo fa più velocemente. Ma questo esempio lo contraddice:Potatura alphabeta, alfa uguale o superiore a beta. Perché è uguale?
.
/| \
1 3* 2
/|/\ | \ \
1 1 5 3 4 3 2
Sopra è l'albero min-max originale. Come possiamo vedere che sarebbe scegliere quella mossa con punteggio di 3. Ora facciamo l'alfa-beta:
.
/| \
1 3* 3*
/|/\ | \
1 1 5 3 4 3
Interrompe il più a destra mossa, perché 3> = 3. Ma poi l'algoritmo può scegliere tra 2 mosse perché hanno lo stesso punteggio, ma come abbiamo visto in min-max la scelta giusta è leggermente peggiore. Ciò non accadrebbe se l'algoritmo specificasse semplicemente α> β, quindi avrebbe bisogno di cercare anche 2.
Quindi è stato un errore di battitura nello pseudocodice di wikipedia (e in molte altre risorse)? O ho frainteso qualcosa di veramente grande qui.
Quello che stavo facendo. Il primo livello sono stati mosse e il resto sta calcolando solo i punteggi. È solo che non l'hanno menzionato su Wikipedia e pensavo che mi mancasse qualcosa. – derjack
Il punto principale è la perdita di prestazioni non necessaria. – xXliolauXx