Giochi
Il più noto algoritmo utilizzato per progettare "giocatori artificiali" è chiamato min-max. L'algoritmo si basa sull'idea di sviluppare tutto l'albero, valutarne le foglie (stati finali di una partita) come vincenti o perdenti e riportare all'indietro (verso la radice) la valutazione delle mosse.
In teoria, quindi,
sarebbe possibile scrivere programmi che applicano sempre la strategia
migliore. Tuttavia, a causa della complessità dei giochi trattati,
sarebbe impensabile, anche per un potentissimo computer,
sviluppare completamente tutto l'albero per decidere la mossa
"migliore". Ecco quindi la necessità di applicare opportune euristiche
per tagliare alcuni rami dell'albero. Si pensi al gioco degli scacchi
in cui la dimensione del problema è enorme. Solo all'inizio partita le
mosse possibili sono 400, diventano più di 144.000 alla seconda mossa.
Sviluppando l'albero di gioco avremmo circa 35100 nodi.
Tramite la riduzione dello spazio di ricerca si sono prodotti comunque sistemi
in grado di giocare a scacchi meglio dell'uomo. È infatti noto che nel maggio
1997, a New York, una macchina (Deep Blue) ha battuto in un match
di sei partite il campione del mondo Kasparov. Interessante è sottolineare che
tale macchina, appositamente progettata a livello hardware per riuscire a
sviluppare ed esaminare spazi di ricerca in parallelo in tempi rapidissimi (si
pensi che Deep Blue arriva ad esplorare 1011 posizioni
in circa 3 minuti) utilizza la "forza bruta" piuttosto che tecniche euristiche
raffinate per giungere rapidamente alla soluzione migliore. Fig. 3: Una riproduzione di una fase di gioco durante una partita di Deep Blue. |