Sistemi basati su conoscenza
Prof. M.T. PAZIENZA
a.a. 2003-2004
Sistemi basati su conoscenza
• Rappresentazione della conoscenza
• Ragionamento
• Logica come linguaggio formale di
supporto per la rappresentazione ed il
ragionamento
Struttura del corso
Lezioni
Esercitazioni
Approfondimenti tematici
Test in itinere
Esame finale
Supporto ad esperienze professionalizzanti
Syllabus (1)
Presentazione argomenti e struttura del corso
• Sistemi basati su conoscenza: rappresentazione e
ragionamento
• Agenti intelligenti: autonomia,struttura, interazione con
l’ambiente
• Agenti che ragionano: ragionamento, rappresentazione e
logica
• Programmazione logica: Prolog
• XML
• I° test in itinere: esercizi di progr. Prolog+ XML
Syllabus (2)
Presentazione argomenti e struttura del corso
…….
• Basi di conoscenza: rappresentazione formale, relazioni
di dominio, ontologie, inferenze
• Sistemi di ragionamento logico
• Linguaggio naturale
• Ontologie e XML
• II° test in itinere: proget. basi di conoscenza
Syllabus (3)
• Prova finale e Prova di appello
• Libro di testo “Intelligenza Artificiale: un
approccio moderno”, Russel e Norvig; Prentice
Hall
• Dispense
• Documentazione su rete
Sistemi basati su conoscenza
Rappresentazione della conoscenza
Assumiamo di poter “descrivere” il mondo in termini di
“frasi” nel nostro linguaggio.
Una base di conoscenza è un insieme di frasi, ovvero una
descrizione parziale del mondo. Ci riferiremo ad esso
come ad un universo del discorso (o dominio del
discorso)
Tutte le frasi sono descrizioni (nel ling. nat. si può fare
molto di più: domande, ordini, dubbi,…)
Si possono usare frasi anche per “descrivere” gli stati
mentali di un agente.
Sistemi basati su conoscenza
Logica come linguaggio formale di supporto
per la rappresentazione della conoscenza ed
il ragionamento
La logica consiste di un linguaggio e di una
procedura di inferenza.
Logica come linguaggio formale
In un linguaggio logico (come per un qualsiasi
altro linguaggio) bisogna definire
formalmente la sintassi, un vocabolario, gli
operatori ed i connettivi logici, oltre alle
regole per combinarli tra loro.
Bisogna poter assegnare significato alle frasi
del linguaggio (model theory)
Logica come linguaggio formale
Procedura d’inferenza
Bisogna poter attuare inferenze valide da un
insieme di frasi del linguaggio
indipendentemente dal loro significato
(proof theory)
In logica la procedura di inferenza è di tipo
deduttivo.
L’induzione e l’abduzione sono altri due tipi di
inferenza
Rappresentazione della conoscenza
In ambienti dichiarativi, i sistemi sono come un
microcosmo cognitivo in cui è necessario stabilire
quali siano le proprietà che il sistema di
rappresentazione della conoscenza deve avere.
Requisito minimo
Ci deve essere una qualche corrispondenza tra il sistema
di rappresentazione della conoscenza e la conoscenza
che si sta rappresentando; devono essere definiti
simboli specifici per ogni oggetto che deve essere
modellato nel sistema (adeguatezza metafisica)
Rappresentazione della conoscenza
Proprietà
Il sistema di rappresentazione della conoscenza deve
essere in grado di rappresentare almeno tutta la
conoscenza che può essere necessaria per
• distinguere due qualunque stati del microcosmo
(adeguatezza epistemica)
• esprimere il ragionamento necessario alla risoluzione
di un problema (adeguatezza euristica)
Una qualunque rappresentazione deve poter essere
manipolata dal sistema (trattabilità computazionale) (il
ling. nat. non è trattabile computazionalmente-ambiguo)
Rappresentazione della conoscenza
Un qualunque sistema di rappresentazione della
conoscenza è formalmente equivalente al
microcosmo che sta modellando.
Due sistemi sono formalmente equivalenti se:
• Per ciascuno stato distinto del primo esiste uno
stato distinto del secondo
• Per ciascun possibile cambiamento di stato del
primo esiste un analogo cambiamento di stato
del secondo
Costruzione di una base di conoscenza
Ingegneria della conoscenza:
• Analisi del dominio peculiare
• Individuazione concetti importanti
• Rappresentazione formale di oggetti e
relazioni nel dominio
Agente logico basato su conoscenza
Parte con una conoscenza generale del mondo e
delle proprie azioni
Usa il ragionamento logico per :
1. Mantenere una descrizione del mondo
consistente all’arrivo di nuove percezioni
2. Dedurre una sequenza di azioni che
porteranno all’ottenimento dei propri
obiettivi
Agenti intelligenti
• Un agente è una entità in grado di percepire il
proprio ambiente attraverso sensori e di agire in
quell’ambiente attraverso degli attuatori
• Un agente software possiede stringhe di bit al
posto delle proprie percezioni e azioni
La nozione di agente è intesa come strumento
per l’analisi di sistemi
Progettazione di un agente
Agire razionalmente
Agire razionalmente significa agire:
• per raggiungere i propri obiettivi,
• date le proprie conoscenze,
• in funzione della sequenza di percezioni
ricevute,
• date le azioni che si è in grado di compiere.
Agire razionalmente (1)
• Un agente razionale fa la cosa giusta, ovvero
quell’azione che procurerà all’agente il
maggior successo
• Misura di prestazione (valutare – come e
quando – il successo atteso considerato ciò
che è stato percepito).
Descrizione/costruzione di un agente
Corrispondenza tra le sequenze di percezioni e le
azioni
Un agente può essere descritto attraverso:
• un elenco completo delle azioni che può
compiere in risposta ad ogni possibile sequenza
di percezioni
• la definizione delle corrispondenze (funzione di
corrispondenza) senza dover fornire un elenco
esaustivo
Agenti razionali
Un agente è un’entità/funzione che agisce, date
alcune percezioni
f : P* 
A
Un agente razionale ideale si descrive attraverso la specifica della
lista di azioni che può compiere in risposta a qualsiasi sequenza
possibile di percezioni. (progetto/programma di agente ideale)
Un agente è autonomo se è dotato di capacità di apprendimento
(che gli permettono di aggiornare le sue conoscenze iniziali)
Agenti razionali reali
Limiti computazionali impediscono di raggiungere la
perfetta razionalità
Negli agenti razionali reali
Autonomia e capacità di apprendimento
Valutazione delle prestazioni
Agente con la migliore prestazione
Progettazione di un agente
Progettare il programma di un agente è
implementare la funzione corrispondenza dalle
percezioni alle azioni all’interno di un ambiente e
con prestazioni predefinite
Agente = architettura + programma
L’architettura (meccanismo di calcolo) fornisce le
percezioni al programma, esegue il programma e
trasmette agli attuatori le azioni scelte dal
programma.
Progettazione di un agente
Prerequisiti:
Conoscenza dettagliata di:
• tutte le percezioni e le possibili azioni
conseguenti
• ambiente (per scegliere tra tutte le possibili
azioni quelle che saranno applicabili)
• misura delle prestazioni (definita a priori per
non alterare la valutazione)
• obiettivi (per selezionare/valutare percezioni ed
azioni)
Programma di un agente
Schema:
A fronte di una conoscenza precedente e delle
percezioni provenienti dall’ambiente (che
“aggiornano” eventualmente la conoscenza <>
incrementalità) vengono generate delle azioni
a seguito dei risultati delle “procedure di
decisione”.
L’obiettivo e la misura delle prestazioni vengono
applicate esternamente all’agente.
Schema di agente (semplice)
Mantiene memoria della sequenza di percezioni
(incrementalità)
Si possono definire sistemi ad agenti cooperanti per
applicazioni più complesse
Agente basato su tabella
Tabella totalmente e precedentemente
specificata
Agente tiene conto della sequenza delle
percezioni consultando la tabella
La tabella non viene aggiornata
Agente basato su tabella
Vantaggi:
• Progettazione semplice, completa, efficace
Svantaggi:
• Dimensioni sempre crescenti (in funzione della
complessità dell’applicazione)
• Time-consuming per il progettista
• Nessuna autonomia per l’agente
In ambiti limitati funzionano bene (ruolo dell’ambiente)
Tipologie di programmi di agente
Agente con riflessi semplici (rispondono alle
percezioni)
Agenti che tengono conto del mondo (considerano
l’evolversi del mondo circostante)
Agenti basati su obiettivi (agiscono per raggiungere i
propri obiettivi)
Agenti basati su utilità (cercano di massimizzare le
propria utilità)
Sono agenti specializzati, ovvero ottimizzati rispetto
a ciò che vogliamo misurare
Agente con riflessi semplici
regole di produzione if-then-else
Agente con riflessi semplici
Trova la prima regola di produzione in accordo con
situazione corrente (definita da percezione)
Compie azione associata
Agente che tiene conto del mondo
Agente che tiene conto del mondo
Trova regola in accordo situazione corrente
(definita da percezioni e stato interno)
Compie azione associata
Aggiorna lo stato del mondo
Agenti basati su obiettivi / Pianificatori
Agenti basati su obiettivi / Pianificatori
• Conoscere lo stato attuale dell’ambiente non
è sufficiente per decidere cosa fare
• Bisogna avere un obiettivo
• Ricerca di una soluzione al problema
• Pianificazione
Agenti basati su utilità
Teoria delle decisioni
Agenti basati su utilità
Teoria delle decisioni
L’utilità è una funzione predefinita che
associa ad uno stato (o sequenza di stati se
stiamo misurando l’utilità a lungo termine)
dell’agente un numero reale che descrive il
grado associato di felicità
Agenti ed ambienti
Indipendentemente dal tipo di agente, la
natura della sua connessione con l’ambiente
è di un unico tipo:
le azioni sono fatte dall’agente
sull’ambiente, che a sua volta fornisce
percezioni all’agente
Agenti ed ambiente
Lo stato dell’agente dipende dalle sue
percezioni
Lo stato dell’ambiente dipende dalle azioni di
ogni singolo agente
Proprietà degli ambienti
Accessibile / Inaccessibile
Deterministico / Non deterministico
Episodico / Non episodico
Statico / Dinamico
Discreto / Continuo
Agenti progettati per classi di ambienti
Tipi di ambienti
Il tipo di ambiente determina fortemente il
disegno dell’agente
Il mondo reale è:
• Inaccessibile, stocastico, sequenziale
dinamico e continuo