Intelligenza Artificiale

Slides:



Advertisements
Presentazioni simili
Definitezza Vogliamo poter richiedere la “definitezza” delle funzioni
Advertisements

© 2007 SEI-Società Editrice Internazionale, Apogeo Unità E1 Dallanalisi del problema alla definizione dellalgoritmo.
Linguaggi algoritmici
Sommario Nelle lezioni precedenti abbiamo introdotto tutti gli elementi che formano un particolare tipo di linguaggio logico, denominato linguaggio predicativo.
Linguaggi di programmazione
Specifiche Algebriche Modello Iniziale Versione 1.0 Gianna Reggio
Intelligenza Artificiale

La Rappresentazione della Conoscenza
6. Catene di Markov a tempo continuo (CMTC)
Il linguaggio della geometria
1 Istruzioni, algoritmi, linguaggi. 2 Algoritmo per il calcolo delle radici reali di unequazione di 2 o grado Data lequazione ax 2 +bx+c=0, quali sono.
Il ragionamento classico
6. Catene di Markov a tempo continuo (CMTC)
Reaching Definitions. Tino CortesiTecniche di Analisi di Programmi 2 Reaching definitions Dato un punto del programma, quali sono i comandi di assegnamento.
Interpretazione Astratta
Intelligenza Artificiale 1 Gestione della conoscenza lezione 7 Prof. M.T. PAZIENZA a.a
Intelligenza Artificiale 1 Gestione della conoscenza lezione 8
Sistemi basati su conoscenza Conoscenza e ragionamento Prof. M.T. PAZIENZA a.a
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Algoritmi e Strutture Dati Capitolo 2 Modelli di calcolo e metodologie.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Algoritmi e Strutture Dati Capitolo 2 Modelli di calcolo e metodologie.
Corso di Laurea in Biotecnologie Informatica (Programmazione)
Corso di Informatica (Programmazione)
Corso di Informatica (Programmazione)
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Problemi e algoritmi Anno Accademico 2009/2010.
Seminario su clustering dei dati – Parte II
Introduzione alla programmazione ll
LOGICA E MODELLI Logica e modelli nel ragionamento deduttivo A cura di Salvatore MENNITI.
Qualche esempio di tableaux
Unità Didattica 1 Algoritmi
Unità Didattica 2 I Linguaggi di Programmazione
Strutture di controllo in C -- Flow Chart --
Intelligenza Artificiale
Ingegneria della conoscenza e sistemi esperti Dario Bianchi, 1999 Conoscenza e ragionamento.
Fondamenti di Informatica Algoritmi
AOT Lab Dipartimento di Ingegneria dellInformazione Università degli Studi di Parma Intelligenza Artificiale Rappresentazione della Conoscenza e Ragionamento.
Intelligenza Artificiale
Algoritmi e Programmazione (in C) Stefano Cagnoni e Monica Mordonini
Intelligenza Artificiale - AA 2001/2002 Logica formale (Parte 2) - 1 Intelligenza Artificiale Breve introduzione alla logica classica (Parte 2) Marco Piastra.
Intelligenza Artificiale - AA 2002/2003 Logica formale (Parte 2) - 1 Intelligenza Artificiale Breve introduzione alla logica classica (Parte 2) Marco Piastra.
Sistemi a Regole Ettore Colombo 13 Dicembre 2006 Ingegneria della Conoscenza e Sistemi Esperti.
Prof. Marina BARTOLINI . “Liceo Maccari” Frosinone
Logica Matematica Seconda lezione.
Linguaggi e Modelli Computazionali LS - Prof E.Denti
Elementi di Informatica di base
INFORMATICA MATTEO CRISTANI. INDICE CICLO DELLE LEZIONI LEZ. 1 INTRODUZIONE AL CORSO LEZ. 2 I CALCOLATORI ELETTRONICI LEZ. 3 ELEMENTI DI TEORIA DELL INFORMAZIONE.
Pierdaniele Giaretta Primi elementi di logica
Agenti logici: calcolo proposizionale Maria Simi a.a. 2008/2009.
ARISTOTELE (logica: sillogismo)
ECDL Patente europea del computer
Corso di logica matematica
Intelligenza Artificiale 2 Metodologie di ragionamento Prof. M.T. PAZIENZA a.a
La logica è lo studio del ragionamento.
Logica Lezioni Lunedì 18 Nov. Annuncio E' possibile che dovrò rinviare delle lezioni della prossima settimana. Tenete d'occhio gli annunci.
Logica F. orilia. Lezz Lunedì 4 Novembre 2013.
Logica A.A Francesco orilia
La logica Dare un significato preciso alle affermazioni matematiche
1 Interpretazione astratta: un approccio sistematico all’analisi statica.
Esecuzione di un Programma [P] Una computazione corrisponde al tentativo di dimostrare, tramite la regola di risoluzione, che una formula (goal) segue.
Dipartimento di Ingegneria dell’Informazione Università degli Studi di Parma Intelligenza Artificiale Rappresentazione della Conoscenza e Ragionamento.
AOT Lab Dipartimento di Ingegneria dell’Informazione Università degli Studi di Parma Intelligenza Artificiale Rappresentazione della Conoscenza e Ragionamento.
Agenti logici: calcolo proposizionale Maria Simi a.a. 2006/2007.
Algoritmi e Programmazione (in C) Stefano Cagnoni e Monica Mordonini
Intelligenza Artificiale Metodologie di ragionamento Prof. M.T. PAZIENZA a.a
Introduzione alla LOGICA MATEMATICA Corso di Matematica Discreta. Corso di laurea in Informatica. Prof. Luigi Borzacchini III. La logica delle proposizioni.
Logica Lezione 8, DISTRIBUIRE COMPITO 1.
Lezione marzo nota su "a meno che" A meno che (non) = oppure Il dolce lo porto io (I) a meno che (non) lo porti Mario (M) I  M   I  M.
ALGORITMI, LINGUAGGI E PROGRAMMI Facoltà di Lingue e Letterature Straniere Corso di laurea in Relazioni Pubbliche.
Logica Lezione 11, Annuncio Non si terrà la lezione di Lunedì 16 Marzo.
INSIEMI E LOGICA PARTE QUARTA.
Transcript della presentazione:

Intelligenza Artificiale Rappresentazione della Conoscenza e Ragionamento Agostino Poggi Stefano Cagnoni

Rappresentazione della conoscenza Per risolvere qualsiasi tipo di problema di IA dobbiamo: Definire la conoscenza riguardante il problema. Definire dei metodi per manipolarla. Per definire la conoscenza bisogna: Definire i fatti che vogliamo rappresentare (livello della conoscenza). Rappresentare questi fatti attraverso i cosiddetti metodi per la rappresentazione della conoscenza (livello simbolico). I fatti possono essere rappresentati con frasi in linguaggio naturale. I metod di rappresentazione della conoscenza ottengono delle rappresentazioni più facilmente manipolabili da programmi e superano l’ambiguità del linguaggio naturale.

Rappresentazione della Conoscenza Proprietà di un metodo per la rappresentazione della conoscenza: Adeguatezza di rappresentazione, cioè la capacità di rappresentare tutti i tipi di conoscenza necessari per ragionare su un certo dominio. Adeguatezza inferenziale, cioè la capacità di manipolare la conoscenza del sistema per ottenere nuova conoscenza. Efficienza inferenziale, cioè la capacità di fornire delle informazioni per guidare il meccanismo inferenziale nelle direzioni più promettenti. Efficienza di acquisizione, cioè la capacità di acquisire facilmente nuova conoscenza. L’acquisizione è l’inserimento diretto da parte di una persona o nel caso ideale è il sistema che è in grado di controllare l’acquisizione

Rappresentazione della Conoscenza Esistono due classi principali di strumenti per la rappresentazione della conoscenza: Rappresentazione basata sulle azioni (logica e sistemi a regole) Descrizioni primitive di concetti: fatti Manipolazione dei concetti attraverso metodi di ragionamento Inferenza Ragionamento in avanti/indietro Rappresentazione basata sugli oggetti (reti semantiche e frame) Descrizioni primitive e complesse di concetti Manipolazione dei concetti attraverso ‘Navigazione’ delle relazioni tra i diversi concetti Esecuzione di procedure associate ai diversi concetti

Logica La logica è la scienza che fornisce all'uomo gli strumenti indispensabili per verificare con sicurezza la correttezza dei ragionamenti. La logica fornisce strumenti formali per: Esprimere le inferenze in termini di operazioni su espressioni simboliche. Dedurre conseguenze da certe premesse. Studiare la verità o falsità di certe proposizioni data la verità o falsità di altre proposizioni. Stabilire la consistenza e la validità di una data teoria.

Logica dei Predicati Il linguaggio standard della logica è il cosiddetto calcolo dei predicati del primo ordine indicato anche con il nome di logica dei predicati. La logica dei predicati si basa su forme atomiche dette predicati che possono avere un certo numero di argomenti: p, q(11), r(X, 25, a, s(a)). Le espressioni che possono essere argomenti sono dette termini e possono essere: costanti: 11, a; variabili: X, Var; (normalmente indicate con la lettera maiuscola) funzioni: s(a), t(11, X).

Logica dei Predicati Le formule atomiche possono essere combinate per formare delle altre formule: Congiunzione: A & B Disgiunzione: A B Implicazione: A B Negazione: A Le formule con variabili possono essere interpretate tramite i quantificatori: Universali: X p(X) Esistenziali: X p(X)

Logica dei Predicati Il modo per inferire nuova conoscenza in logica è basato sul ragionamento deduttivo. Il ragionamento deduttivo è un ragionamento che, condotto correttamente, mantiene la veridicità delle premesse. Nel ragionamento deduttivo, se le conoscenze da cui partiamo (le premesse) sono vere, allora anche le nuove conoscenze che otteniamo in base a queste (le conclusioni) sono vere. Il sillogismo è un esempio tipico di ragionamento deduttivo: «Gli uomini sono mortali, Socrate è un uomo, allora Socrate è mortale».

Logica dei Predicati In logica la conoscenza iniziale viene indicata con il nome di assiomi. Le nuove conoscenze dedotte dagli assiomi sono dette teoremi. Per dedurre nuovi teoremi si usano le regole di inferenza.Ogni regola di inferenza è composta da due parti: Un insieme di premesse separate da virgole. Le conclusioni. Queste due parti sono divise dal simbolo  che si legge: «è possibili derivare».

Logica dei Predicati Alcune tra le più note regole di inferenza sono le seguenti: Modus Ponens: A B, A  B Istanziazione universale: X p(X)  p(a) Modus Tollens: A B, B  A Introduzione congiunzione: A, B  A & B Eliminazione congiunzione: A & B  A A & B  B Introduzione disgiunzione: A  A B B  A B Eliminazione disgiunzione: A B, A  B A B, B  A

Forma a Clausole La difficoltà di ottenere nuovi teoremi sta nel scegliere, di volta in volta, la regola di inferenza da applicare. Le formule della logica dei predicati possono essere trasformate in una forma equivalente a clausole. Una clausola è una formula priva di quantificatori ed è formata da una disgiunzione di termini. Con la rappresentazione a clausole è possibile utilizzare un’unica regola di inferenza detta regola di risoluzione.

Forma a Clausole Regola di risoluzione: da AB,BC deduci AC Il metodo di risoluzione permette di dimostrare un teorema mediante il metodo della refutazione, cioè si dimostra che la negazione del teorema è falsa: Assumiamo che la negazione del teorema sia vera. Mostriamo che gli assiomi più la negazione del teorema sono fra loro inconsistenti. Dato che gli assiomi sono per definizione veri, allora la responsabile della contraddizione è la negazione del teorema. Quindi il teorema è vero. Si ottiene una contraddizione quando si arriva a dedurre la clausola vuota. La clausola vuota si ottiene quando si arriva ad un punto in cui si ottengono due clausole una la negazione dell’altra.

Forma a Clausole Abbiamo le seguenti clausole: [A1] lavora(piero) prepara(piero,esame [A2] ha(piero,tempo) ha(piero,soldi) va(piero, partita) [A3] ha(piero,tempo)  lavora(piero)compera(piero,calcolatore) ha(piero,soldi) [A5] compera(piero,calcolatore) [A6] prepara(piero esame) Vogliamo dimostrare il teorema: [T] va(piero,partita) Per risolvere il teorema aggiungiamo il teorema negato agli assiomi: [~T] va(piero,partita)

Forma a Clausole Risolviamo ~T con A2 : [~T] va(piero,partita) [A2] ha(piero,tempo) ha(piero,soldi) va(piero, partita) Otteniamo il lemma L1 che risolviamo con A3: [L1] ha(piero,tempo) ha(piero,soldi) [A3] ha(piero,tempo) Otteniamo il lemma L2 che risolviamo con A4: [L2] ha(piero,soldi)  lavora(piero)compera(piero,calcolatore) ha(piero,soldi)

Forma a Clausole Otteniamo il lemma L3 che risolviamo con A5: [L3] lavora(piero)compera(piero,calcolatore) [A5] compera(piero,calcolatore) Otteniamo il lemma L4 che risolviamo con A1: [L4] lavora(piero) [A1] lavora(piero) prepara(piero,esame Otteniamo il lemma L5 che risolviamo con A6: [L5] prepara(piero,esame [A6] prepara(piero esame) A1 (assioma!) è stato negato => contraddizione => ~T è falso

Vantaggi della Logica I vantaggi principali della logica sono: Precisione, la logica ha una semantica chiara e definita per la quale esistono metodi standardizzati per determinare il significato di una espressione. Flessibilità, la logica rappresenta la conoscenza in modo dichiarativo, quindi in modo indipendente dal suo uso. Modularità, le asserzioni della logica possono entrare in una base di conoscenza in modo indipendente le une dalle altre.

Limiti della Logica I limiti principali della logica sono: Inadeguatezza espressiva, non può rappresentare mondi dinamici, non può rappresentare conoscenze probabilistiche. Monotonicità, l’aggiunta di un teorema non provoca la cancellazione di nessun teorema precedente. Inefficienza, la dimostrazione automatica basata esclusivamente sulla logica si fonda su processi di ricerca, la ricerca è inerentemente esponenziale ed eventuali euristiche non ne cambiano la natura combinatoria.

Sistemi di Produzione I sistemi di produzione sono uno strumento ideale per la costruzione di sistemi basati sulla conoscenza. Infatti, permettono di implementare algoritmi di ricerca guidata dai dati (forward chaining) e algoritmi di ricerca guidata dagli obiettivi (backward chaining). Permettono di realizzare sistemi di ragionamento deduttivo e anche sistemi di ragionamento plausibile e incerto. OPS5 (Brownston, et al., 1985) è sicuramente il sistema di produzioni più conosciuto.

Regole di Produzione I sistemi di produzione rappresentano la conoscenza attraverso regole di produzione. Una regola di produzione è composta da una coppia condizione/azione ed ha la forma: IF <insieme condizioni> THEN <insieme azioni> Le azioni possono essere di due tipi distinti: Azioni sul mondo esterno. Azioni sulla conoscenza del sistema. Le regole di produzione modellano sia conoscenza procedurale che conoscenza dichiarativa.

Architettura dei Sistemi di Produzione Un sistema di produzione è composto da tre parti: La base delle regole. La memoria di lavoro. L’interprete delle regole. La base delle regole contiene la conoscenza del sistema espressa in regole di produzione. La memoria di lavoro contiene le informazioni sullo stato di avanzamento del processo computazionale. L’interprete controlla il sistema applicando le regole alle informazioni nella memoria di lavoro.

Funzionamento dei Sistemi di Produzione Dopo aver inserito nella memoria di lavoro le informazioni relative al problema che si vuole risolvere, il funzionamento di un sistema di produzione si basa sulla ripetizione di tre passi: Confronto. Risoluzione conflitti. Esecuzione. Nella fase di confronto vengono individuate le regole la cui parte sinistra è soddisfatta dal contenuto della memoria di lavoro.

Funzionamento dei Sistemi di Produzione Nel caso in cui più di una regola può essere eseguita, nella fase di risoluzione dei conflitti viene scelta una regola in base a una serie di criteri prestabiliti. Scelta la regola, essa viene eseguita, compiendo azioni sul mondo e aggiornando la memoria di lavoro. La terminazione dell’attività del sistema può avvenire in diversi modi. I più comuni sono: L’insieme dei conflitti è vuoto. Una regola ha come azione una istruzione di halt. Si dicono deterministici i sistemi in cui in ogni caso esiste al massimo una regola eseguibile.

Criteri per Risolvere i Conflitti Esistono vari criteri per risolvere i conflitti: Criterio di ordinamento (rule ordering o fire first): le regole sono ordinate in ordine di importanza; Criterio di refrattarietà (refractoriness): una regola può essere attivata sugli stessi dati una sola volta. Di questo criterio esistono due versioni: Il criterio ha validità su tutti i cicli precedenti. Il criterio ha validità sul ciclo precedente. Criterio di recenza (recency): gli elementi della memoria di lavoro vengono etichettati in base al ciclo in cui sono stati inseriti, le regole che utilizzano dati più recenti sono favorite rispetto a quelle che usano dati che si trovano in memoria da più tempo.

Criteri per Risolvere i Conflitti Criterio di specificità (specificity), si favoriscono le regole più specifiche, cioè quelle con la condizione più dettagliata qualora le condizioni di queste regole siano un sovra-insieme delle altre regole contenute nell’insieme di conflitti. Criterio di ordinamento in base ai dati (data ordering): si assegnano delle priorità diverse alle varie condizioni e si esegue la regola che ha le condizioni a priorità più alta. Criterio di ordinamento in base ai pesi (weight ordering): si assegnano alle regole dei pesi che tengono conto del numero di volte che una regola è stata attivata. Criterio di ordinamento in base alla grandezza, vengono favorite le regole con il maggior numero di condizioni. Criterio di ordinamento in base ai pesi: ogni volta che una regola viene attivata e più assume peso: abbiamo il fenomeno del feedback positivo.

Gestione dei Cicli In certi casi un sistema di produzioni può cadere in un ciclo di attivazioni ripetute che non ha termine. Esistono due modi per implementare dei meccanismi per eliminare dei cicli di attivazioni ripetuti: Cablare nell’interprete un meccanismo che evita l’attivazione di regole che cercano di aggiungere alla memoria di lavoro informazioni già presenti. Definire le regole di produzione in modo che inseriscano delle clausole che ne inibiscano l’attivazione successiva.

Conoscenza di Controllo Alcuni sistemi di produzione permettono la definizione di meta-regole per sfruttare della conoscenza euristica sul problema da risolvere per velocizzare e facilitare la sua soluzione. Questa conoscenza può riferirsi a: Quali regole applicare in certe situazioni. In quale ordine soddisfare i sotto-obiettivi. Quali sequenze di regole sono utili da applicare.

L’algoritmo RETE Il punto debole dei sistemi di produzione è il grande dispendio di risorse della fase di confronto. Un algoritmo di confronto molto efficiente è l’algoritmo RETE (Forgy, 1982). Esso si basa su: Una struttura dati detta rete di discriminazione che utilizza due tipi di nodi: Nodi test che corrispondono ai nodi intermedi della rete e rappresentano dei test sui dati nella memoria di lavoro. Nodi terminali che rappresentano le singole regole di produzione. Ad ogni ciclo aggiorna l’insieme dei conflitti: Se un dato viene aggiunto, cerca le regole che sono attivabili da quel dato. Se un dato viene tolto, cerca le regole che erano attivate da quel dato.

Vantaggi e Limiti dei Sistemi di Produzione I principali vantaggi dei sistemi di produzione sono: La semantica di una regola di produzione è facilmente intuibile. I meccanismi di controllo sono programmabili. I principali limiti dei sistemi di produzione sono: L’aggiunta di una regola può comportare la modifica di regole preesistenti. I meccanismi di controllo sono globali e difficili da regolare.