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.