Contenuti

L’intelligenza del giocatore e il mondo sono descritti in Prolog, noto linguaggio logico dei primi anni 70′, utilizzato per lo più nel campo dell’Intelligenza Artificiale per lo sviluppo di applicazioni in contesti come il processamento del linguaggio naturale, il theorem proving, compilatori e interpreti, sistemi esperti, interfaccie grafiche evolute, motori logici per videogames, sviluppo di agenti e molto altro.
La forza della programmazione logica è la vicinanza con la logica matematica del primo ordine, principale strumento teorico per lo studio dei processi di ragionamento formale, semplificando così il passaggio tra la teoria e la pratica e trascurando totalmente gli aspetti dell’architettura sottostante: il programmatore ragiona e lavora con un linguaggio simile al linguaggio umano.
Più nel dettaglio, un programma Prolog è un insieme finito di Clausole di Horn in disgiunzione tra loro e l’esecuzione del programma inizia con la somministrazione di una query. L’interprete Prolog, tramite le tecniche di Selective Linear Definite clause resolution e di backtracking, cerca di trovare un assegnamento che renda la query soddisfatta ovvero una soluzione al problema.

Nel caso del Mondo del Wumpus si chiede all’interprete Prolog se esiste una strategia che porti il cavaliere a trovare e rendere innocuo il Wumpus senza cadere nella sua cella: tale richiesta è la query mentre la strategia che da vita ai singoli movimenti del cavaliere è il processo deduttivo dell’interprete verso la ricerca di una soluzione al problema posto.
Il cavaliere è un agente basato sulla conoscenza ed è programmato utilizzando il calcolo delle situazioni.
L’evoluzione di una partita è vista come una sequenza di situazioni ovvero una suddivisione discreta del tempo. Nella generica situazione S l’agente acquisisce informazioni dall’ambiente (c’è fuoco dove mi trovo?), memorizza tale informazione, sceglie la migliore mossa da fare basandosi sulla sua conoscenza accumulata nelle situazioni passate, esegue l’azione e si sposta nella nuova situazione S+1 .
Per concludere, si noti la presenza di predicati che cambiano da una situazione all’altra, anche detti fluenti (es. posizione del cavaliere) e predicati che rimangono costanti, anche detti predicati atemporali (es. la posizione del Wumpus).