3/9/2010
Cerca

 
Xiangqi
14/07/2008

Lo scopo di questa serie di interventi sarà quello di illustrare e analizzare la forza di gioco dei programmi per computer in una serie di popolari giochi.

Nei programmi basati sull’algoritmo alpha-beta, l’ordine con cui vengono analizzate le mosse è molto importante per aumentare la velocità del software. Nei software per gli scacchi cinesi la priorità è determinata dalla forza dei pezzi. La sequenza potrebbe essere questa: Torre, Cavallo, Cannone, pedone, Elefante, Consigliere, Re. Se la mossa è una cattura la sua priorità è maggiore, e tra più mosse che catturano viene data la priorità a quelle che catturano i pezzi più importanti.
Per il resto, data la loro struttura di fondo abbastanza simile le tecniche di ricerca sono analoghe a quelle usate negli scacchi.


Speciale attenzione deve essere data alle situazioni di scacco perpetuto e a quelle di ripetizioni della posizione, possibilità entrambe vietate e proprio per questo regolate da regole che in alcuni casi (rari) possono essere molto complesse.

Come per gli scacchi particolarmente importante è la funzione di valutazione: tendenzialmente vengono considerati 5 elementi: 1) la forza dei pezzi ancora in gioco, 2) la loro posizione, 3) la flessibilità dei pezzi 4) le minacce tra i vari pezzi 5) la situazione dinamica.

Una possibile valutazione quantitativa dei vari pezzi potrebbe essere questa:
Re (6.000), Consigliere ed Elefante (120), Torre (600), Cavallo (270), Cannone (285), pedone (30).

Ogni incrocio della scacchiera genera poi dei bonus, che sono diversi per ogni pezzo. Per la Torre si può andare dai (-2) della posizione di partenza ai (26) per l’occupazione del punto centrale della penultima riga. Per il Cavallo si va da (-4) a (28) per i due punti in penultima riga per la terza e settima colonna.

Il cannone riceve molti “malus” se si trova nella fortezza avversaria (diminusicono le possibilità di attaccare perché mancano i pezzi d’appoggio), ed i suoi bonus sono meno significativi.

Per il pedone alcuni punti arrivano ad assegnare un bonus di 120 punti, cioè 4 volte il valore originario del pezzo!

Per flessibilità si intende il potere dei pezzi di muoversi liberamente, ma in generale tradurre questo concetto in valutatori numerici è troppo costoso in termini informatici ed alcuni dei programmi principali lo fanno soltanto per il Cavallo (ricordiamo che negli Xiangqi il Cavallo non salta).

Per determinare la sicurezza di un pezzo si tiene conto delle minacce che gli portano in una data posizione i pezzi nemici e degli appoggi che riceve. Si possono usare matrici di relazione tra i pezzi, ma si è scoperto che questo metodo porta spesso a delle decisioni errate. Alcuni dei programmi principali effettuano una ricerca supplementare (come negli scacchi) nei nodi terminali dell’albero delle varianti fino a che non si raggiunge una posizione statica. Questa tecnica è molto costosa in termini di richieste impiegate ma da’ltro canto riduce notevolmente gli errori.

Analizzando la situazione dinamica, i software riescono a modificare i punteggi delle tabelle per la posizione dei pezzi.

Per ragioni leggermente diverse, anche per lo Xiangqi il finale di partita rappresenta il punto debole di molti programmi. Con meno pedoni sulla scchiera la libertà di movimento di molti pezzi aumenta e diventa più difficile estendere adeguatamente l’albero delle varianti.

Arriviamo alla domanda clou: è più forte l’uomo o la macchina? Anche qui, la situazione è abbastanza simile a quella degli scacchi. Si sta iniziando a notare una supremazia della macchina che però non sembra ancora schiacciante. Va notato però che per ragioni economiche-sociali-culturali mancano sfide ai più alti livelli tra i software e i giocatori più forti.

Chi volesse approfondire può leggere un documento del 2004 di alcuni ricercatori dell’università di Taiwan a cui ci siamo largamente ispirati.

http://www.csie.ndhu.edu.tw/~sjyen/Papers/2004CCC.pdf


Nicola Vozza