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