Introduzione alla logica: il mondo Wumpus, la differenza tra sintassi e semantica, l’entailment e l’inferenza

Trattiamo ora il problema della conoscenza. Una knowledge base è una lista di frasi espressa in un qualche linguaggio di rappresentazione (ad esempio il prolog).

Deve essere presente un modo per aggiungere/togliere nuove frasi, oltre alla possibilità di interrogare la knowledge base tramite delle operazioni di \texttt{TELL}(x) e \texttt{ASK}(x).

Ogni volta che un programma agente viene chiamato esso fa 3 cose:

  1. TELLs [dice] alla knowledge base ciò che percepisce
  2. ASKs [chiede] alla knowledge base quale azione conviene fare
  3. TELLs [dice] alla knowledge base l’azione scelta e l’agente la esegue

La realtà viene dunque conosciuta a due livelli, il primo è quello della conoscenza, dove si trattano le effettive informazioni che l’agente è in grado di utilizzare nella propria analisi, mentre il secondo riguarda il modo in cui funziona la knowledge base stessa. In questo secondo caso si parla dunque di livello di implementazione.

Si avranno dunque:

  • Inference engine: algoritmi generali sull’inferenza (li tratteremo più avanti)
  • Knowledge base: contenuti del dominio specifico appartenente al problema trattato

Per capire come ottenere una rappresentazione del mondo utilizzeremo la logica.

Tramite l’utilizzo della logica saremo in grado di rappresentare stati e azioni, nonché aggiungere nuovi dati alla knowledge base e aggiornare le rappresentazioni del mondo già presenti in essa tramite l’osservazione di nuove proprietà del mondo.

Il playground della logica: il mondo del Wumpus

Come playground per gli agenti che utilizzano la logica per dedurre proprietà del mondo utilizziamo l’esempio del mondo del Wumpus.

Il mondo del Wumpus è rappresentato da una caverna con 16 stanze (una griglia 4\times 4 di stanze). Ogni stanza è connessa alle altre tramite dei passaggi—nessuna stanza è connessa in diagonale.

L’agente viene inizialmente posto nella cella [1,\,1], da cui deve raggiungere il tesoro senza cadere nelle buche o entrare nella stanza che contiene il Wumpus.

Nelle caselle adiacenti quelle contenenti le buche l’agente e in grado di sentire una brezza di vento (dunque sa che attorno alla posizione in cui e c’è sicuramente almeno una buca), mentre nel caso in cui l’agente si trovi vicino al Wumpus sente puzza. Se l’agente e in grado di individuare con certezza la casella in cui c’è il mostro può utilizzare l’unica freccia che gli viene data per ucciderlo e liberare quella casella.

Il mondo appena descritto avrà dunque le seguenti caratteristiche (si veda la pagina contenente le diverse caratteristiche di mondi):

  • Osservabile: No
  • Deterministico: Sì (per usare la logica il mondo deve essere deterministico)
  • Episodico: No
  • Statico: Sì
  • Discreto: Sì
  • A singolo agente: Sì

Sintassi vs. Semantica

Sintassi: la sintassi riguarda le regole e le strutture che definiscono la forma corretta delle espressioni nel linguaggio. La sintassi stabilisce dunque quali sono simboli che possono essere utilizzati nella costruzione di una frase, come devono essere combinati e quali sono le regole da seguire, quindi la grammatica o le regole sintattiche del linguaggio logico.

Semantica: la semantica riguarda il significato delle espressioni nel linguaggio. Essa fornisce una interpretazione o un modello che assegna un significato alle espressioni ben formate secondo la sintassi del linguaggio.

Entailment

Quando utilizziamo la forma qualcosa entails qualcos’altro utilizziamo la notazione

\text{KB} \models \alpha\quad\text{ovvero: }\alpha\text{ {\bf segue} da KB}

Spesso è utile ragionare per modelli, ovvero tramite dei mondi rispetto ai quali può essere giudicata la veridicità (o meno) di una certa informazione.

Diciamo che m è un modello di una frase \alpha se \alpha è vera in m. Indichiamo inoltre con la notazione M(\alpha) l’insieme di tutti i modelli in cui \alpha è vera. Vale dunque

\text{KB} \models \alpha \iff M(\text{KB})\subseteq M(\alpha)

Inferenza

Diciamo che una frase \alpha può essere derivata da una Knowledge base tramite una certa procedura messa in atto da un algoritmo d’inferenza i.

Indichiamo tale operazione di derivare informazioni da KB tramite un algoritmo di inferenza come

\text{KB} \vdash_i \alpha

In poche parole

‎‏‏‎✅ Una knowledge base è una lista di frasi che rappresentano informazioni nel contesto di un problema. Il processo di aggiunta e rimozione di frasi dalla knowledge base, nonché la sua interrogazione avviene tramite operazioni di “TELL” (dire) e “ASK” (chiedere).

‎‏‏‎✅ L’inferenza è un modo per derivare nuove informazioni dalla knowledge base utilizzando degli specifici algoritmi di inferenza.

‎‏‏‎✅ La sintassi rappresenta le regole e le strutture che definiscono la corretta forma di un’espressione, mentre la semantica definisce significato e l’interpretazioni di espressioni ben formate—ovvero sintatticamente corrette.

‎‏‏‎✅ L’entailment rappresenta invece l’implicazione di qualcosa tramite le informazioni disponibili all’interno della knowledge base. La veridicità di una frase viene dunque giudicata rispetto alle informazioni contenute nella knowledge base, che determinano quindi le caratteristiche specifiche del mondo preso in considerazione.

Se hai trovato errori o informazioni mancanti scrivi a:
giacomo.dandria@esercizistem.com

Se hai trovato errori o informazioni mancanti scrivi a:
giacomo.dandria@esercizistem.com

Questa pagina è stata utile?
No
Torna in alto