Il pensatore tirolese:
breve storia del programma TirolerThinker.
Questo programma è nato da una costola di TSCP,
l'ormai mitico programma didattico scritto da Tom Kerrigan agli inizi
degli anni '90. Inizialmente era un'accozzaglia di routine brutalmente
scopiazzate da TSCP e tenute malamente assieme da qualche linea di
codice, tanto che più che a un programma assomigliava al celebre mostro
del dottor Frankenstein! Piano piano però è cresciuto: molte procedure
sono state ampliate e migliorate, altre sono state riscritte da zero ed
altre ancora sono state ricavate da altri programmi, primo fra tutti
l'altro grande vecchio: Faile. Grande ispirazione ed incoraggiamento me
l'ha data un programma italiano ancora incompiuto, La MoSca che però è ampiamente ed ottimamente commentato: una vera e propria miniera di consigli, ispirazioni e suggerimenti.
Per molto tempo TirolerThinker
è rimasto un programma solo sulla carta e molte routine erano
incomplete o addirittura assenti, si pensi che ho introdotto i
movimenti dell'arrocco solamente nella versione 0.5 e che
l'algoritmo di valutazione delle mosse si basava esclusivamente sul
materiale e sulla mobilità. L'algoritmo di ricerca delle mosse è
rimasto per moltissimo tempo uno scarno e lentissimo alfa-beta pruning, senza nessun tipo di ottimizzazione ne adozione di tecniche euristiche.
Con la versione 0.6 TirolerThinker è diventato finalmente operativo, ma
era ancora estremamente debole, lento e soprattutto pieno di "bachi".
Sono seguite poi diverse revisioni minori dove gradualmente, oltre
all'eliminazione degli errori, si è provveduto ad arricchire il
programma con tecniche più efficienti e moderne, ispirate anche da
programmi quali Glaurung e Toga2.
Particolare cura è stata posta sul trattamento dei finali e nelle
partite di prova TirolerThinker ha giocato abbastanza bene questa fase
della partita che notoriamente è quella più difficile per i software
scacchistici.
Questa versione presenta una notevole stabilità ed il programma ha
migliorato notevolmente la sua forza di gioco, tanto che ho potuto
rilasciarla come prima versione stabile (non senza un pizzico di
orgoglio!) .
La vers.1.0 presenta diverse caratteristiche tecniche interessanti:
- Pieno supporto al protocollo Winboard (Xboard) sia tipo 1 che 2.
- Pieno supporto alle macchine multi-threading (calcolo in parallelo basato su più processori).
- Pieno supporto ai sistemi a 64 bit.
Tecniche di ricerca:
- Alfa-Beta Pruning con ricerca fino a quiescenza
- History Heustric
- Adaptive Null-Move Pruning
- Check Extension
- Recapture Extension
Euristica:
- Pawn Evaluation
- King Safety Scaling
- Killer Heustric
- Pricipal Variation Output
- Dynamic Piece Square Tables
- Full Mobility Evaluvation
Al momento TirolerThinker è disponibile solo per i sistemi Posix (Unix/Linux/BSD) ma è previsto, verso fine anno, il rilascio di una versione eseguibile per i sistemi basati su Microsoft Windows®.
TirolerThinker è, naturalmente, libero e gratuito anche se al momento
non intendo ancora rilasciare il codice sorgente, perlomeno fino a
quando non mi deciderò a fargli un completo remaquilage.
|
|