Il miglior algoritmo che migliora l'alfa-beta?


8

Sto studiando l'IA. Il mio insegnante ci ha fornito il codice sorgente di una partita a scacchi e ci ha chiesto di migliorarlo. Il mio esercizio è migliorare l'implementazione dell'algoritmo alpha / beta in quel gioco. Il programmatore utilizza già tabelle di trasposizione, MTD (f) con memoria alpha / beta + (MTD (f) è l'algoritmo migliore che conosco di gran lunga). Quindi esiste un algoritmo migliore per migliorare la ricerca alpha-beta o un buon modo per implementare MTD (f) nella codifica di un gioco?

Risposte:


6

Risponderò generalmente quindi più specificamente. Innanzitutto, nella mia esperienza quando un professore chiede che esiste un modo migliore .. Vado immediatamente al libro e cerco cose che l'autore ha notato come carenze dell'algoritmo in questione. In secondo luogo, guardo alle ottimizzazioni che mi hanno aiutato in passato.

Per un algoritmo di ricerca di alberi come l'alfa-beta, vorrei cercare di aggiungere un'euristica che riduca il numero di ricerche o che induca prima a cercare in posizioni più probabili.

Assegnerei pesi ai percorsi che possono essere presi nell'albero in base ai risultati passati. Se un percorso ha comportato un punteggio più alto in passato, è probabilmente un buon percorso da riprendere. Per farla breve, aggiungi l'euristica ai percorsi e scegli di seguirli in modo che l'algoritmo possa terminare prima.

Nota che non ricordo molto dell'algoritmo specifico, solo che è un albero e l'approccio ingenuo ad esso non implica questa euristica.


Penso che tu stia parlando di en.wikipedia.org/wiki/Killer_heuristic
Adam

Sembra così. Ho cercato di dare una risposta meno specifica per aiutare con problemi futuri poiché l'approccio è lo stesso. Il vero problema non era che risa non conosce l'ottimizzazione alfa-beta, è che hanno bisogno di vedere l'approccio comune delle ottimizzazioni, specialmente nell'intelligenza artificiale in quanto si tratta di un campo molto legato alla ricerca.
Brandon,

4

Non hai menzionato la potatura mossa nulla o le riduzioni mosse tardive. Sono abbastanza facili da implementare e sono ancora più efficaci nel ridurre le dimensioni della ricerca rispetto alla potatura alfa-beta. Le estensioni di ricerca sono importanti anche per mitigare l'effetto orizzonte; La ricerca della quiescenza in particolare è un componente molto importante per un'intelligenza artificiale di scacchi.


1

Esamina l'ordinamento delle mosse e la ricerca delle variazioni di principio

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.