L'enigmistica e il computer

Da antico informatico so bene che il computer generalmente non è una soluzione ma un mezzo: dato un qualsiasi problema, il computer può validamente servire come supporto all'attività risolutiva portata avanti da un uomo, semplificandone ed accelerandone il lavoro. Ma non bisogna prendere per oro colato i risultati ottenuti, né demandare interamente alla macchina la soluzione del problema stesso.

Ciò è vero nella tecnica e nelle scienze applicate, ma lo è ancor di più nelle discipline liberali ed umanistiche. Queste ultime, che fanno dell'ingegno e dell'inventiva umana i loro pilastri, in effetti non hanno mai visto di buon occhio l'uso del computer, forse per convinzione che la fredda macchina non potesse sostituirsi al genio creativo… o magari per la nascosta paura che invece potesse proprio farlo! Entrambe queste concezioni sono ovviamente errate: ad esempio un computer non sa e non può comporre buona musica, ma è perfettamente in grado di rendere più efficace e produttiva l'attività di un buon compositore.
La stessa cosa può dirsi della sottile arte dei giochi di parole, che è una delle colonne portanti dell'enigmistica classica. L'idea di usare un computer per creare o risolvere giochi di parole sembra tuttora eretica agli enigmisti tradizionali, che considerano ortodossa solo l'attività portata avanti con carta e matita. Essi sostengono che nessun computer potrà mai creare giochi esteticamente validi e temono che la "meccanizzazione" della loro attività porti ad un appiattimento se non ad un impoverimento di quella che per loro è una vera e propria forma d'arte.

 

Computer e ludolinguistica

Naturalmente mi trovo del tutto d'accordo con la prima parte di questa tesi: nessun computer potrà mai creare un gioco di parole bello, sottile, intelligente, se non per puro caso e senza alcuna consapevolezza.

Tuttavia non ritengo blasfemo l'uso del computer come mezzo tecnico di ausilio all'enigmista od al solutore, alla stregua di altri mezzi ugualmente "meccanici" ma largamente accettati quali ad esempio il dizionario o le tessere dello Scarabeo. Solo l'estro creativo dell'uomo può vedere al volo soluzioni brillanti e geniali ad un dato gioco; ma l'instancabile capacità indagativa del computer può sgombrare rapidamente il campo da ipotesi preliminari che richiederebbero faticose verifiche a mano, lasciando così libera la mente dell'enigmista di concentrarsi sui soli filoni di ricerca realmente promettenti.

Sulla base di queste motivazioni, e spinto da una antica passione sia per i giochi linguistici che per l'Informatica, ho sempre cercato di studiare le possibili applicazioni del computer a quelle branche dell'enigmistica apparentemente assai lontane da una possibile automazione in quanto maggiormente legate alla necessità di un "estro creativo".

In particolare, mi sono dedicato dapprima alla generazione automatica di anagrammi monoparola, attività di per sé poco interessante ma assai utile come "mattone" elementare per la realizzazione di strumenti di lavoro per gli enigmisti. Quindi sono passato alla generazione di anagrammi a frase ed infine mi sono occupato di tutti gli altri giochi dell'enigmistica classica, dalle sciarade ai lucchetti, dai doublet agli scarti, dai cambi alle zeppe e così via.

 

In tutti questi casi il computer fa… il duro lavoro di selezionare fra tutte le possibili combinazioni di lettere di una parola data quelle che effettivamente conducono ad un gioco di senso compiuto. Naturalmente la ricerca non è del tipo che gli informatici chiamano "a forza bruta", perché altrimenti anche il più potente supercomputer del mondo non riuscirebbe a venirne a capo in tempi brevi. Vengono invece utilizzati particolari algoritmi di ricerca, affinati nel corso di molti anni di sperimentazione, che consentono di effettuare elaborazioni particolarmente ottimizzate e dunque molto veloci. Inoltre tutti i giochi si avvalgono di una considerevole base di dati costituita da un insieme più o meno esteso di parole della lingua italiana, grazie alla quale si può essere certi che tutti i risultati siano costituiti da parole valide.

 

Una palestra... di carta

Nel corso degli anni, ho condiviso la maggior parte di queste sperimentazioni con un grande pubblico di appassionati di Informatica ludica e di Matematica ricreativa: si tratta della vasta schiera dei lettori della rubrica "Intelligiochi", che ho avuto il piacere di condurre ininterrottamente per oltre quindici anni sulle pagine del mensile MCmicrocomputer (oramai scomparso). Quella rubrica è stata il punto di ritrovo di una generazione di informatici creativi, in un periodo in cui il personal computer usciva dall’aura di mistero per entrare nelle case della gente ma era ancora un oggetto misterioso e complesso da usare, quando Windows ancora non c’era, quando Internet e la posta elettronica non esistevano proprio ed era ritenuta una cosa normale scriversi da sé i propri programmi.

In particolare, ho iniziato a parlare di anagrammi al computer su Intelligiochi nel lontanissimo 1986, in un’epoca in cui la ridottissima capacità di calcolo e memorizzazione dei personal computer casalinghi non permetteva di utilizzare algoritmi di generazione fondati sull’utilizzo di basi dati lessicografiche. Tuttavia ci si poteva ugualmente divertire sfruttando le caratteristiche statistiche della lingua. Nel 1989, ritornai sull’argomento con una puntata intitolata "Anagrammatica" dedicata ovviamente al tema della generazione automatica degli anagrammi. In quell’occasione, presentai il noto algoritmo "delle firme", dovuto a Nicholas Temperley ma divulgato per primo da Martin Gardner nel 1973 e poi da Jon Bentley nel 1983, con il quale è possibile costruire facilmente un "dizionario degli anagrammi" mediante il quale ottenere, per semplice ricerca, l’anagramma di una qualsiasi parola data. (Questo articolo è oggi consultabile in linea all’indirizzo http://www.nightgaunt.org/anagrams/intg_090.htm).Il problema maggiore, all’epoca, era quello di trovare una valida base dati lessicografica sulla quale operare per costituire il dizionario degli anagrammi. Risolsi il problema in modo casareccio ma efficace, scrivendomi tutta una serie di tool per elaborazioni linguistiche di varia natura ed attingendo al corpus costituito dai miei articoli scritti per la rivista nei cinque anni precedenti.

Alcuni anni dopo - per la precisione nel 1993 - introdussi il tema degli anagrammi a frase in una puntata che suscitò grande feedback da parte dei lettori. Si intitolava proprio "Anagrammatica 2: gli anagrammi multiparola" e mostrava come estendere il metodo delle firme per ottenere, mediante un algoritmo di ricerca ricorsivo, la possibilità di generare anagrammi di intere frasi e non più di singole parole. (Anche questo secondo articolo è consultabile in linea; l’indirizzo al quale reperirlo è http://www.nightgaunt.org/anagrams/intg_126.htm).

L’articolo nasceva come conseguenza di un intervento che avevo tenuto qualche tempo prima presso un’associazione culturale romana in occasione di una manifestazione sui giochi di parole, per il quale avevo appunto scelto di parlare sul tema dell’uso del computer nella generazione di anagrammi. Questo impegno mi aveva infatti finalmente spinto a realizzare un semplice "anagrammatore a frase" automatico da mostrare durante la conferenza. Naturalmente ne volli subito dopo condividere l’esperienza con i miei lettori, per stimolarli a sperimentare in proprio sul tema della manipolazione del linguaggio. Si trattava, a dire il vero, di un programma piuttosto spartano e primordiale, frettolosamente scritto in un pomeriggio e costituito da meno di duecento linee di C che giravano sotto MS-DOS in modalità "a linea di comando". Tuttavia funzionava bene e ricordo che stupì parecchio gli astanti. Buona parte del merito del programma era naturalmente da ascriversi alla base dati lessicografica utilizzata: ben 150.000 parole, faticosamente raccolte nel corso di molti anni a partire da tutte le fonti di pubblico dominio in formato elettronico sulle quali avevo potuto mettere le mani. Internet non c’era ancora ma la telematica sì e le BBS avevano già iniziato a distribuire informazioni di ogni tipo a beneficio di chi sapesse come e dove cercarle!

 

L'arrivo della rete

Il naturale sbocco del motore anagrammatico era ovviamente proprio Internet, che esattamente in quegli anni stava facendo la sua comparsa anche nel nostro Paese.

Così, complice il fatto che parte della mia attività professionale si svolgesse all’epoca presso MC-link, che era uno dei primi Internet provider italiani, in un bel giorno del 1996 decisi di tirare fuori dal cassetto il mio vecchio anagrammatore per MS-DOS, dargli una spolveratina,i portarlo sotto Unix e interfacciarlo con uno script perl, per renderlo accessibile a tutti tramite una pagina Web. Oggi tutto ciò può sembrare una cosa normale, ma all’epoca rasentava quasi la ricerca pura! Comunque, detto fatto: con poche ore di lavoro l’anagrammatore andò in linea, più per gioco che per altro, il pomeriggio del 22 marzo 1996. Era nato il Motore Anagrammatico del Gaunt, il primo motore di ricerca di anagrammo a frase di tutta Internet.

 

Lo aveva annunciato un semplice messaggio sulla BBS di MC-link, ma il tam-tam telematico fece il resto: alle venti visite del primo giorno ne seguirono cinquanta il secondo, cento il terzo e duecento il quarto. Il successo inaspettato faceva vacillare il modesto server che ospitava il motore: risolsi la maggior parte dei problemi con qualche modifica al software nei giorni seguenti, adottando algoritmi più efficienti e facendo in modo di diluire nel tempo il carico di lavoro. Il 14 maggio del 1996 entrava in linea la versione 2.4 del Motore Anagrammatico, che… è la stessa che gira ancora oggi, senza aver più subito alcuna modifica o manutenzione da allora! In effetti il 22 marzo del 2002 il Motore Anagrammatico ha compiuto felicemente i sei anni di funzionamento ininterrotto, ovvero 2.192 giorni nei quali ha ricevuto 657.181 richieste ed ha generato 43.396.564 anagrammi. Attualmente il Motore Anagrammatico viene consultato ad una media continuativa di 500 richieste al giorno provenienti da utenti di tutto il mondo. Continuando con questo ritmo, dovrebbe raggiungere i 50 milioni di anagrammi in un giorno ancora imprecisato della seconda metà di settembre del 2002.

Per giocare col Motore Anagrammatico del Gaunt basta collegarsi alla URL http://www.nightgaunt.org/anagrams/anagrams.htm ed inserire il proprio nome od una frase qualunque. In pochi secondi, verranno prodotte varie frasi (al massimo 250) che sono ciascuna un anagramma della frase data. L'avvertenza è che le frasi sono sì formate da parole italiane, ma non sono necessariamente corrette né dal punto di vista grammaticale né da quello sintattico né tantomeno da quello semantico. L'elenco proposto come risultato è dunque nulla di più che un "canovaccio", sul quale l'enigmista deve a sua volta lavorare per trovare le vere "perle" che il computer non può vedere.

 

La sfida uomo-macchina

L’ultimo passo nell’evoluzione del Motore Anagrammatico è recentissima ed ancora una volta è stato innescato da una conferenza. In questo caso si trattava di una benevola "sfida" fra il computer e la mente umana organizzata assieme ad Ennio Peres presso una libreria romana.

L’idea era quella di verificare, mediante confronto diretto e lasciando trarre le conclusioni ad un pubblico di non addetti ai lavori, se la qualità degli anagrammi producibili dal computer fosse anche lontanamente paragonabile a quella degli anagrammi prodotti da un esperto umano. Il programma che ha partecipato alla sfida non era altro che una versione solo leggermente rivista e corretta del Motore Anagrammatico del 1996, semplicemente dotata di un dizionario più ampio e riscritta per girare sotto Windows.La sfida ha avuto un buon successo, tanto da essere stata anche replicata in televisione ed il computer ne è uscito prevedibilmente sconfitto, ma non con il largo distacco che temevo. Anzi, la notevole qualità degli anagrammi prodotti, mi ha spinto a ritornare nuovamente sul programma per cercare di migliorarlo una terza volta a distanza di molti anni. In effetti è già programmata una nuova edizione della sfida per la fine di giugno, presso la manifestazione "Invito alla Lettura" dell’Estate Romana: per quell’epoca, impegni di lavoro permettendo, vorrei riuscire a mettere a punto un anagrammatore più efficace in modo da… dare filo da torcere all’anagrammatore umano!