Prima che l'IA giochi, deve trovare la sua mossa all'interno di un mucchio di paglia di centocinquantamila parole, e poi smettere di cercare.
Dai a una persona un portapiece di WordChess e l'istruzione "gioca una buona parola", e ridurrà il problema senza accorgersi di averlo fatto. Il computer non gode di alcuna intuizione simile. Su una 25×25 scacchiera, avendo accesso al pool completo di centotile, potrebbe tentare quasi tutte le 148,941 parole del dizionario, e ciascuna parola può essere posizionata in migliaia di coordinate e orientamenti legali. Peggio ancora, una disposizione è legale solo se ogni nuova lettera che introduce completa anche una parola reale dove incrocia ciò che è già sulla scacchiera. Moltiplica le parole per le disposizioni per quel vincolo di incrocio e ottieni uno spazio di ricerca che nessun giocatore, di silicio o altro, può enumerare e classificare completamente.
Questa è la ragione per cui i motori seri di giochi di parole, Quackle, tra cui l'implementazione di riferimento open-source, non forzano mai il dizionario con la forza bruta.4 La struttura GADDAG di Steven Gordon del 1994, e la DAWG prima di essa, si lasci che un programma faccia crescere le parole in modo esteso a partire dalle tessere già presenti sulla scacchiera e verifichi le intersezioni man mano che procede, in modo che i rami illegali vengano eliminati precocemente anziché essere valutati e scartati.1 L'obiettivo non è "elenicare ogni parola". È "generare solo le mosse che potrebbero potenzialmente essere legali, e farlo in modo rapido".
Anche un generatore snello restituisce più mosse candidate di quante possano essere valutate in profondità, quindi il secondo problema è il tempo. Il programma di Scrabble più forte mai costruito, di Brian Sheppard, Maven, si è scontrato esattamente con questo e ci ha risposto in due fasi: un'euristica rapida ordina le mosse grezze in un ordine approssimativo di qualità, e solo una breve lista delle più promettenti viene studiata attentamente simulando il gioco in avanti molte volte per vedere quale candidata si comporta effettivamente meglio.2 Sheppard ha preso in prestito il nome dell'idea da altri giochi, ciò che il backgammon chiama rollout e il Go chiama playout, lui lo ha chiamato simulazione.
WordChess opera nello stesso spirito, ma sotto un vincolo più rigido: un budget di tempo di ricerca fisso per ogni mossa. Quando il budget si esaurisce, l'IA si impegna con la migliore parola trovata finora. Non si tratta di un compromesso di cui gli ingegneri si pentono; è l'intero progetto. Un giocatore che pensa all'infinito non è un avversario migliore, solo più lento. L'orologio costringe la macchina a fare ciò che gli umani fanno istintivamente, accontentarsi di una mossa chiaramente buona anziché di una dimostrabilmente migliore.
Il dizionario non è la mente dell'avversario. L'orologio sì.
Il modo pigro per rendere un'IA di gioco più facile è renderla stupida a caso, facendole sbagliare una mossa che aveva chiaramente visto. I giocatori se ne accorgono e lo detestano. Il designer Sid Meier è spesso citato per aver tagliato Civilization funzionalità che permettevano al computer di contrattare meglio dei giocatori, perché l'effetto, come una descrizione del design degli avversari IA lo mette, avrebbe "lasciato i giocatori con la sensazione di non poter vincere perché il computer stava barando".3 Una difficoltà che appare come disonestà avvelena il gioco, ed è per questo che la letteratura di ricerca sull'adattamento dinamico della difficoltà si occupa di calibrare ciò che l'IA è capace di fare, anziché ciò che le è permesso di vedere.5
WordChess calibra i suoi quattro livelli lungo assi che un umano riconoscerebbe, mai fornendo all'IA informazioni nascoste. Ogni livello differisce per quanto tempo può cercare, quanto in profondità nel dizionario raro raggiunge il suo vocabolario e quali fasce di lunghezza delle parole favorisce. Un facile l'avversario gioca parole plausibilmente deboli, reali, sensate, brevi, non spazzatura. A grandmaster ha a disposizione l'intero lessico oscuro e il tempo per esplorarlo. Il giocatore perde contro qualcosa che sembra un vocabolario migliore e una lettura più acuta, perché è esattamente ciò che è.
| Tier | Vocabulary reach | Search budget | Word-length lean |
|---|---|---|---|
| Easy | Common only | Shortest | Short |
| Normal | Common + mid | Short | Mixed |
| Hard | Broad | Lunga | Più lunga |
| Grande maestro | Rara completa | La più lunga | Illimitata |
Una calcolatrice restituisce sempre la stessa risposta; un avversario ti sorprende. WordChess aggiunge un passo deliberato di randomizzazione anti-imitazione alla selezione, in modo che le mosse quasi equivalenti non vengano sempre risolte allo stesso modo e l'IA non si limiti a specchiare la tua ultima mossa. Combinato con i limiti di vocabolario per livello, l'effetto è la varietà, la sensazione che qualcuno sia seduto dall'altra parte della scacchiera a fare scelte, alcune delle quali avresti potuto fare anche tu.
Questa è la sua arte silenziosa. Un avversario credibile ha bisogno di moderazione quanto di forza: la disponibilità a giocare una parola semplicemente buona, a lasciare punti sul tavolo, a essere battibile in un modo che si senta meritato. Il problema ingegneristico più difficile della macchina era cercare nell'insalata. Il più sottile era imparare quando smettere di cercare, cosa sapere e quanto trattenere.