|
Algoritmo mossa vincente
 L'algoritmo della mossa vincente è un'altra strada per imparare al computer a giocare a tris. E' una tecnica rudimentale di intelligenza artificiale che consiste nel suddividere il tris in un quadrato a 9 elementi. I segni del giocatore A viene sostituito con il numero 3, quelli del giocatore B con il numero 5, le celle vuote hanno infine un valore pari a 1. L'algoritmo è molto semplice. Prima di giocare il computer (giocatore 1) verifica tutte le righe e le diagonali moltiplicando tra loro i numeri. Quando incontra una riga o una diagonale il cui prodotto è pari a 9 individua la "mossa vincente" e il gioco finisce. Al pari, l'algoritmo controlla tutte le righe e le diagonali anche per verificare la situazione dell'avversario. In assenza di mossa vincente quando incontra una riga o una diagonale il cui prodotto è 25 (5x5x1) individua la mossa per bloccare il giocatore avversario.

L'algoritmo può essere costruito con diverse varianti. Ad esempio si può introdurre la scelta della mossa iniziale per perfezionare la strategia. La logica dell'algoritmo, in ogni caso, non cambierebbe molto rispetto a quella mostrata nel nostro esempio. A differenza di altre tecniche (es. database mosse) l'algoritmo della mossa vincente ha il vantaggio di non richiedere molto spazio in memoria in quanto non deve registrare tutte le possibili combinazioni. Ciò nonostante si classifica come una tecnica di intelligenza artificiale rudimentale. I principali handicap della tecnica sono i seguenti:
- Tempo di elaborazione. L'algoritmo necessita di un maggiore tempo di elaborazione in quanto deve calcolare prima di ogni mossa tutte le possibili combinazioni di righe, colonne e diagonali per individuare la mossa vincente o bloccante. Tale handicap può comunque essere minimizzato scegliendo una diversa rappresentazione del problema.
- Dipendente dalla programmazione. L'algoritmo è fortemente dipendente dalla programmazione. Se il programmatore non sa giocare a tris l'efficacia dell'algoritmo ne risente. Inoltre, l'algoritmo non implica di per sé che il sistema faccia esperienza ma semplicemente la ricerca "meccanica" della migliore mossa successiva.
- Poco generalizzabile. Il metodo è poco flessibile (generalizzabile) in quanto non può essere utilizzato per risolvere problemi simili (es. tris tridimensionale) ma soltanto nel caso specifico per cui è progettato (tris bidimensionale).
| |