Intelligenza Artificiale 2 Metodologie di ragionamento Prof. M.T. PAZIENZA a.a
Struttura del corso Lezioni in aula Esercitazioni in laboratorio Approfondimenti tematici Test in itinere Esame finale
Syllabus Presentazione argomenti e struttura del corso Sistemi di ragionamento logico Metodi di pianificazione Conoscenza incerta: rappresentazione e reasoning Apprendimento automatico Conoscenza linguistica Sistemi di NLP
Testi di riferimento Libro di testo “Intelligenza artificiale: un approccio moderno”, Russel e Norvig; Prentice Hall Test di riferimento “Natural language processing in Prolog”, Gazdar e Mellish, Addison Wesley Dispense varie ed articoli
Agire come un umano: test di Turing Definizione operativa: 1.Elaborazione del linguaggio naturale 2.Rappresentazione della conoscenza 3.Ragionamento automatico 4.Apprendimento automatico
Sistemi di ragionamento logico tipologie Dimostratori di teoremi e linguaggi di programmazione logica Sistemi di produzioni Sistemi a frame e reti semantiche Sistemi di logica descrittiva (logiche terminologiche)
Sistemi di ragionamento logico azioni Aggiungere un nuovo fatto alla Base di conoscenza (BdC) Derivare fatti da una BdC e da un nuovo fatto Decidere se una interrogazione è implicata da una BdC Decidere se una interrogazione è immagazzinata esplicitamente in una BdC Aggiornare/Cancellare una frase in una BdC
Mantenimento / Recupero Informazioni in una BdC Definire tipi di dato per formule e termini. (Per tipo di dato intendiamo l’applicazione di un operatore OP ad una lista di argomenti P(x), Q(x)) Memorizzare un insieme di formule S STORE(KB,S) Recuperare formule S FETCH(KB,S)
Mantenimento / Recupero Informazioni in una BdC Es. Memorizza formule come lista collegata di congiunti TELL Lista di elementi Ricerca sequenziale dell’elemento della lista che combacia con la query Q fino a soddisfacimento o fine lista. Tempo di ricerca (fetch) O(n). Tempo di memorizzazione (store) O(1) se senza controllo di duplicati, O(n) con controllo
Mantenimento / Recupero Informazioni in BdC TavolaHash Tavola hash di formule di letterali ground (senza variabili) STORE equivale ad assegnare valore V/F ad yuna entry/chiave della tavola; O(1) FETCH effettua la ricerca diretta nella tavola; O(1) Problemi: non si gestiscono formule complesse non si gestiscono variabili in frasi
Tavole Hash complesse Chiave-- simbolo predicato Lista letterali positivi per il predicato Lista letterali negativi per il predicato Lista di formule con predicato in conclusione Lista di formule con predicato in premessa Indicizzazione basata su tavole ottima con molti simboli di predicato e poche clausole per simbolo
Tavole Hash complesse
Indicizzazione basata su alberi Necessaria con molte clausole per un dato simbolo di predicato Indicizzare gli argomenti oltre ai simboli di predicato. Il processo di ricerca coincide con la visita (discesa) di un albero
Indicizzazione basata su alberi
L’indicizzazione basata su alberi è una indicizzazione combinata, perché usa una chiave combinata della sequenza di simboli del predicato e di argomenti dell’interrogazione. Problemi: La ricerca esplode con variabili nella sequenza. Indicizzazione incrociata: indirizza i valori in diversi posti e per risolvere una interrogazione comincia la ricerca nel posto più promettente.
Algoritmi di unificazione L’unificazione di due affermazioni permette di effettuare inferenze Conosce (John, x)=> Odia (John,x) Conosce (John, Jane) Inferenza Odia (John, Jane) Per realizzare l’inferenza corretta è necessario chiamare l’algoritmo di unificazione molte volte.
Sistemi di programmazione logica La programmazione logica vede il programma ed i suoi input come affermazioni logiche sul mondo, ed il processo in cui si rendono esplicite le conseguenze come processo di inferenza.
Linguaggio Prolog Tutte le inferenze vengono fatte con concatenazioni all’indietro (ricerca in profondità) -> Percorsi infiniti con formule cicliche! La ricerca attraverso i congiunti di un antecedente è da sinistra a destra Le clausole nella BdC sono applicate in ordine dalla prima all’ultima