Una lamentela abbastanza frequente nei videogiochi è che l'intelligenza artificiale degli avversari prende decisioni sbagliate. Per questo motivo, in alcuni casi imbroglia apertamente, ma a volte accade anche il contrario, e presentano strategie molto efficaci in giochi che possiamo considerare «semplici». Una delle ragioni è l'applicazione del teorema Minimax, un algoritmo che ha l'obiettivo di minimizzare la perdita massima attesa nei giochi a due partecipanti, e con informazioni perfette per entrambe le parti.

Molti giochi nascondono informazioni ai partecipanti come parte della loro meccanica. Senza andare troppo lontano, pensa alla «nebbia di guerra» dei giochi classici (StarCraft e Civilization vengono in mente). Questa risorsa permette all'intelligenza artificiale di evocare 20 o 30 unità per magia senza che tu te ne accorga (tra le altre cose), e la sua eliminazione è un passo essenziale, sia inviando unità a esplorare, sia sviluppando tecnologie che annullano il suo effetto (come i Satelliti in Civ).

Ma cosa succede quando l'informazione è perfetta? Come si comporta un'intelligenza artificiale quando non c'è nulla da nascondere, e tutti gli elementi della partita sono conosciuti dall'inizio? Una delle tante possibilità per lo sviluppatore di turno è l'implementazione del teorema Minimax. La descrizione ufficiale ci parla di un «metodo di decisione per minimizzare la perdita massima attesa», e questo può sembrare semplice in superficie, ma merita un'esplorazione più profonda:

Teorema Minimax, soluzioni ottimali per giochi a somma zero

Il canale BitBoss fa un ottimo lavoro riassumendo l'algoritmo Minimax, e la parte migliore è che impiega meno di quattro minuti. Fondamentalmente, Minimax funziona in giochi a somma zero, cioè la nostra vincita o vantaggio diventa una perdita per l'avversario. Gli scacchi sono un esempio classico di gioco a somma zero con informazioni perfette, ma il video ci porta per una via più semplice, usando come riferimento il tris.

Ogni fase della partita può essere definita con un numero, positivo per un giocatore e negativo per l'altro. La strategia dell'algoritmo Minimax cerca di selezionare la mossa migliore disponibile, assumendo completamente che l'avversario selezioni anch'esso la mossa migliore contro di te. Se un'intelligenza artificiale Minimax raggiunge la vittoria con un numero positivo, le sue decisioni cercheranno di seguire il percorso che favorisce quel numero.

Teorema Minimax: perdita minima, massimo risultato
Usando Minimax, l'IA ottiene la vittoria con una croce al centro (terzo percorso dall'alto)

Il grafico mostra le ultime sei mosse possibili di un'intelligenza artificiale in una partita di tris. Quattro di esse esprimono una vittoria per l'IA (giallo) con una condizione di 1, e le altre due per il giocatore umano (blu), con -1. Le mosse vengono analizzate dal basso verso l'alto, o da dietro in avanti: poiché all'intelligenza artificiale rimane solo una mossa, i valori per ciascuna si spostano al passo precedente. Seguendo la stessa logica, il giocatore umano possiede due mosse che gli garantiscono un -1, e una terza che lo obbliga a scegliere 1. Pertanto, l'IA si assicura la vittoria mettendo pressione su quella via, che inizia con una croce al centro.

Ovviamente, questo è un esempio troppo semplice, e possibile solo grazie ai limiti naturali del tris. Se trasferiamo il metodo Minimax a giochi di alta complessità come gli scacchi o il go, il numero di stati da verificare cresce in modo esponenziale, e l'applicazione di Minimax diventa impraticabile. Una possibile soluzione è limitare la profondità di esplorazione, e in termini generali, è più che sufficiente per dare una lezione ai novellini.