Intervista a Fabio Cavicchio, autore di Delfi

23/03/2002


Abbiamo con noi Fabio Cavicchio, autore del motore scacchistico Delfi. Inanzitutto grazie per la partecipazione.
Iniziamo con una domanda di rito: come le è venuto in mente di scrivere un programma di scacchi? Si è ispirato ad un motore in particolare? E' stato più semplice o più difficile di quanto si aspettava?

L'idea era latente da almeno 15 anni; da ragazzino giocavo a scacchi contro i primi microcomputer ed ho sempre desiderato creare un programma.
Mi sono ispirato con l'ottimo libro "I giocatori artificiali" di P.Ciancarini, e con decine di documenti Postscript che si trovano in rete. Creavo regolarmente decine di posizioni di test che davo in pasto ai più forti programmi commerciali per intuire quali erano i loro metodi di valutazione ed esplorazione. Credo che le difficoltà inizino alla soglia dei 2300 ELO.
Dopo le prime versioni ho scaricato tutti i sorgenti di tutti i programmi freeware esistenti su internet, seguendo il motto scacchistico che dice: "bisogna sapere tutto di qualcosa e qualcosa di tutto" ma non mi sono ispirato a un motore in particolare.
In particolare sono stato tentato da l'implementazione su bitboard, ma dopo aver letto su CCC che diversi programmi commerciali non lo sono, ho conservato le matrici di bytes. Credo che il punto sia che sulle attuali CPU a 32 bit i vantaggi delle bitboard si perdano completamente, a causa della gestione spezzata dei numeri a 64 bit, che tra l'altro non possono essere conservati sui registri dai compilatori, generando così parecchi load/store. Naturalmente tra 2-3 anni cambia tutto, con l'arrivo delle nuove CPU.

Come ha conosciuto il G6? Cosa ne pensa e soprattutto quali sono le
modifiche o le migliorie che gli apporterebbe?

Navigado sul web. Il G6 è grande! Non saprei dire cosa c'è di migliorabile.

Il suo motore ha alcune caratteristiche particolari, come ad esempio una funzione di valutazione complessa e la selezione della forza di gioco da parte dell'utente. In particolare quest'ultima caratteristica ha contribuito molto alla diffusione di Delfi. Può dirci qualcosa di più di questi due aspetti e, riguardo alla regolazione della forza di gioco, perché secondo lei una caratteristica del genere non ha avuto diffusione nel mondo winboard?


Logo di Delfi

Possedendo vari motori commerciali, desideravo spesso confrontarmi con loro in partite lampo a livelli facile, ma in questo caso tutti i programmi muovevano istantaneamente "rovinando" il feeling delle partite. Inoltre questi simulavano i livelli facili con un gioco non realistico, così ho deciso di "fare da me". Si può dire che inizialmente ho sviluppato Delfi come mio allenatore.

Delfi è un motore relativamente giovane, ma il cui rafforzamento è stato, ed è tuttora, molto rapido. Può spiegarci perché finora è stato assente dalle manifestazioni ufficiali, a partire da quelle organizzate dal G6 per arrivare ai CCT? Parteciperà al secondo Campionato Italiano? E al CCT5?

I tornei on-line non mi attirano, considero più importanti quelli ad esempio di Dijksman o di Lyapko, ma quasi sicuramente parteciperò di persona al secondo CIPS.
Per il rafforzamento di Delfi mi sono dato una regola: mantenere sempre, a qualsiasi costo, una velocità migliore di 2/3 dei nodi al secondo dei migliori programmi commerciali. Questa fase è l'ottimizzazione. Dopodichè complico, e quindi rallento, la valutazione a dismisura fino ad scendere sotto la soglia, e così via.


Fabio Cavicchio

Con il tasso di crescita attuale, è presumibile che Delfi sia destinato a diventare in breve uno dei motori freeware più forti in circolazione. Pensa di tentare la via commerciale a quel punto?

E' possibile, ma non dipenderà solo da forza di gioco. La trasformazione in un programma commerciale richiede investimenti in termini di tempo che non so se vorrò affrontare.

Cosa ne pensa degli incontri uomo-macchina? Secondo lei si può ancora dire che i computer non hanno raggiunto gli umani?

No, molti umani si ostinano a sottovalutare i programmi e giocare secondo il loro stile... perdendo. Secondo me l'uomo può ancora prevalere se rispetta l'avversario e gioca con stile "anti-pc". Questo stile (strategico, conservativo) forse non si adatta però ad alcuni giocatori, come l'irascibile Kasparov. Recentemente ho però notato due GM non di primo piano che pare abbiano trovato la strada (Hubner, Dzindzicashvili).

Cosa consiglierebbe a chi, guardando a primo acchitto una funzione alpha-beta, la reputasse interessante?

Io ho cominciato con il min-max (!), seguendo la storia della computerchess, in ordine di .. pagina, secondo il libro già citato.

Per finire qualche domanda su Fabio Cavicchio giocatore. Partecipa a tornei? E' classificato a livello nazionale/internazionale?

Sono stato iscritto in due circoli arrivando alla 1°S, ma poi, forse per pigrizia, non ho mai trovato le motivazioni per tentare le categorie nazionali.

Scrivere un programma di scacchi la ha aiutata a migliorare la sua visione di gioco? Se sì, in che modo?

Sì, si puo dire che in parte l'ho scritto per migliorare. Attualmente, in certe situazioni che non so che piano seguire, muovo come... muoverebbe il mio programma. Scrivendo il libro delle aperture e gli schemi dei finali ho migliorato notevolemente queste due fasi della partita.

Cosa ne pensa degli scacchi in Italia?

Dobbiamo accontentarci. Per fortuna molti circoli si danno davvero un gran da fare.

Grazie le risposte e in bocca al lupo per Delfi.

Grazie a lei.


torna all'inizio
Interviste