• Non ci sono risultati.

Kriegspiel e razionalità procedurale

3.2 Il giocatore artificiale

La routine che suggerisce di volta in volta le mosse da giocare rappresenta sicuramente il nocciolo del programma o se vogliamo dirlo in termini suggestivi, la parte "pensante" di esso.

Volendo effettuare un confronto con i programmi affini che giocano a scacchi, l'approccio utilizzato per affrontare questi problemi si avvicina di

più a quello "Knowledge based", piuttosto che a quello "brute force" che come abbiamo visto nel capitolo 1 è stato un paradigma dominante nella ricerca degli ultimi anni.

Non risulta che fino ad oggi siano stati costruiti programmi in grado di giocare a kriegspiel, il territorio in cui si procede appare dunque inesplorato. In ogni caso appare chiaramente improduttiva un'espansione dell'albero di gioco ad una prefissata profondità, poichè gli sforzi computazionali compiuti, sarebbero resi vani dalla componente incertezza che è presente in modo notevole.

Nella formulazione della strategia, il giocatore artificiale, non cerca di sviluppare alberi di gioco, ma sulle basi della propria conoscenza, cerca di far corrispondere le caratteristiche della posizione in esame con quelle di situazioni a lui note.

Ad ogni situazione è associata una particolare mossa oppure una lista di mosse in ordine di preferibilità, e il giocatore la propone all' arbitro il quale pronuncerà la sua sentenza di legalità o di illegalità. La fig 5.3 descrive sotto forma di diagramma di flusso la routine di formulazione della strategia. L'implementazione risulta piuttosto agevole in linguaggio PROLOG, poichè la scelta di una mossa dipende dalla sua attitudine a soddisfare una sequenza di goals.

Il set informativo rilevante per il giocatore è costituito da 4 variabili : RB PB [Onda] e [Tabù]. Basandosi su queste informazioni il programma procede alla esecuzione dei test che permettono classificare la posizione in esame tra quelle incluse nella base di conoscenza del sistema.

informativo onda fuori quadrato distanza RN-P < RB-P distanza RB-P < RN-P Re vicino Everett avvicinati col re spingi

fai strada col re

avanza col re mantieni pos si può spingere? spingi si può spingere? si può avanzare col re ? si può mantenere Pos set puoi avvicinarti spingendo ? spingi S = random 0<S<1 S > 0.5 spingi avvicinati col re no no no no no no no no no fig 5.3 procedura "Blotto"

I tipi di posizione riconosciuti dal sistema sono 5 e coprono esaustivamente ogni possibile situazione che può verificarsi sulla scacchiera; esaminiamoli uno alla volta :

Onda fuori quadrato:

E' il primo test che viene eseguito dal programma e verifica se la posizione esaminata è tale da permettere al pedone di andare a promozione senza essere ostacolato dal re nemico. Il test è basato sulla nota regola scacchistica del quadrato (Fig 6.3), che nel contesto viene estesa con alcune modifiche al kriegspiel.

° ° 8

° ° 7

° ° P ° ° 6 Il simbolo ° traccia i confini del quadrato: se il re nemico o 5 l'insieme di case in cui può essere (Onda) sono fuori dal

4 quadrato, il pedone può proseguire senza essere disturbato R 3 la "rotta" verso l'ottava traversa.

2 1 a b c d e f g h fig 6.3

Il test onda fuori quadrato, verifica dunque che ogni casella appartenente all'insieme [Onda], sia all esterno del quadrato.

Everett:

Il test Everett viene eseguito se il test Onda fuori quadrato da esito negativo. Una posizione che soddisfa il test Everett, è analoga a quella risolta come

X X X 8 X X X 7 P 6

R 5 La posizione soddisfa il test Everett in quanto 4 1. Il pedone bianco è collocato sulla sesta traversa

3 2. Il re bianco è adiacente e dietro al pedone 2 3. Una parte di Onda è inclusa nel quadrato

1 a b c d e f g h fig 7.3

La soluzione ottenuta con l'ausilio della teoria dei giochi49, ci suggerisce la strategia migliore che conduce alla vittoria. Questo prezioso consiglio viene inserito nella base di conoscenze del giocatore artificiale, e sarà utilizzato quando le condizioni della posizione lo permetteranno50.

E' importante, a mio avviso, sottolineare il modo in cui dei risultati ottenuti con razionalità sostanziale vengano utilizzati da un agente proceduralmente razionale (il giocatore artificiale), al fine di rendere più efficiente il proprio operato.

Se il test Everett ha successo viene chiamata la procedura Blotto, che suggerisce la strategia ottimale individuata nello studio del capitolo precedente.

Il grafo di fig 8.3 indica, con riferimento alla posizione di fig 7.3, quale sia la strategia sostanzialmente razionale da seguire. Ricordiamo che l'arco indica la mossa da giocare al primo tentativo, l'arco tratteggiato indica la mossa da giocare se il primo tentativo è stato dichiarato illegale dall'arbitro.

49 Vedi cap. 2 par..5

Se dallo stesso nodo partono due archi della stessa categoria, ad essi viene associata una distribuzione di probabilità.

La procedura Blotto viene generalizzata nel diagramma di flusso di fig 9.3, in modo da essere adattata a qualunque posizione che soddisfi il test Everett.

Rc5 Rb5 Rd5 Rb6 Rd6 Rb7 Rd7 spingi 1−ε ε .5 .5 1−ε ε vince vince Fig 8.3

dietro dietro dx dietro sin fianco dx fianco sin rnd>0.5 fianco dxpuoi puoi fianco sin puoi puoi fianco dx fianco sin puoi avanzare ? avanti re rnd< spingi no no no no no no no Fig 9.3 ε

Le situazioni fianco dx, fianco sin ecc. esprimono la collocazione del re bianco rispetto al pedone bianco.(Fig 10.3 ).

8 avanti re avanti re 7 finco sin P fianco dx 6

dietro sin dietro dietro dx 5 fig 10.3

Ad esempio il test del tipo Puoi fianco dx verifica se è possibile raggiungere con il re la casa collocata a destra del pedone.

Re vicino:

Se falliscono i primi due test, re_vicino verifica se il re nero si trova in una casella adiacente al pedone bianco, in caso affermativo, il programma cerca di eseguire uno dei tre seguenti obiettivi : Spingi, Avanza_col_re, Mantieni_Pos.

Gli obiettivi sono posti gerarchicamente, nel senso che prima si cercherà di soddisfare Spingi, se questo non sarà possibile si procederà con Avanza_col_re, e se nemmeno questo fosse possibile si eseguirà Mantieni_Pos che è sempre possibile. Per stabilire se gli obiettivi sono possibili o no il programma ricorre al proprio set di informazioni, ed in particolare alla lista Tabù, che si modifica nel corso del gioco e indica le case che non possono essere occupate dai pezzi bianchi in seguito a informazioni dell'arbitro.

Oltre al vincolo di non potere occupare una casella Tabù , la mossa che verrà decisa dovrà anche rispettare l'obiettivo minimo di non lasciare sguarnito il pedone.

Pedo_difendibile:

Il test in questione verifica se nella posizione esaminata la distanza tra il nostro re e il pedone risulta essere minore alla distanza tra il pedone e il re avversario.

Poichè non sappiamo dove sia il re avversario, ma disponiamo solo di una lista di caselle in cui è potenzialmente collocato ( [Onda]), l'unico modo per garantire con probabilità 1 che il pedone sia difendibile è che

Dist ( Rb, Pb) min Dist ( X, Pb) X Onda

<

L'obiettivo immediato del programma è di avvicinarsi con il re al pedone in modo da portarsi nella condizione re_vicino.

Not Pedo_difendibile:

Se anche il test Pedo_difendibile fallisce, la posizione in esame rientra sicuramente in questa categoria di posizioni: il test in questione, quindi, è sempre positivo.

Mentre in tutte le altre posizioni il programma garantisce la vittoria con probabilità che tende a 1, in questa situazione è possibile che il re nero catturi il pedone e il gioco termini con risultato di parità. (Fig 11.3).

X X X 8 Se il re nero fosse in e7 o f7, e conoscesse la collocazione del X X 7 pedone, il bianco non potrebbe ostacolare in alcun modo la 6 cattura del pedone da parte del re nero.

P 5 Il re nero però potrebbe anche essere nelle case b8,c8 o d8 in X X 4 tal caso il pedone sarebbe difendibile dal re bianco.

R 3 Nell' ipotesi invece che il re nero sia in e4 o f4, l'unica mossa 2 che garantirebbe la salvezza del pedone sarebbe la spinta.

1

a b c d e f g h fig 11.3

Come viene illustrato nella fig 11.3, la situazione in cui il giocatore artificiale deve decidere la mossa da eseguire è di completa incertezza.

Se ci fossero delle ragioni per sostenere che il re sia collocato con maggiore probabilità nelle case e4 o f4, sarebbe opportuno giocare la strategia che prevede la spinta di pedone.

Poichè non esiste alcuna ipotesi probabilisica sulla collocazione del re nemico, il giocatore artificiale sceglie con p = 0.5 la strategia di spinta del pedone oppure la strategia di avvicinamento col re.