Dalla Logica alla Programmazione logica Questa presentazione richiede i simboli dal ttf logic da me creato CITARE: Nilsson PARTI ANCORA DA FARE: Pag 7-8 connettivi minimi per stabilire una logica Pag. 9 (alla fine) uniform substitution PARTI DA MIGLIORARE: Dopo QUINE tutta la parte su aspetti algoritmici della logica proposizionale CNF dimostrare il teorema
Sommario Introduzione Logica Proposizionale (LP): AI e programmazione logica: obiettivi Logica Proposizionale (LP): Introduzione alla logica proposizionale: Sintassi Semantica aspetti algoritmici della LP Logica del primo ordine vantaggi e svantaggi della LP Interpretazioni e modelli 17/01/2019 Armando Stellato stellato@info.uniroma2.it ai-nlp.info.uniroma2.it/stellato
Sommario Introduzione Logica Proposizionale (LP): AI e programmazione logica: obiettivi Logica Proposizionale (LP): Introduzione alla logica proposizionale: Sintassi Semantica aspetti algoritmici della LP Logica del primo ordine vantaggi e svantaggi della LP Interpretazioni e modelli 17/01/2019 Armando Stellato stellato@info.uniroma2.it ai-nlp.info.uniroma2.it/stellato
Introduzione Obiettivo principale della Intelligenza Artificiale: Costruzione di sistemi di ragionamento automatico Intuizione della programmazione logica: usare una macchina per inferire conclusioni da una descrizione formale del mondo. Queste descrizioni possono essere inserite in forma di programmi logici, ovvero di insiemi finiti di (particolari) formule logiche. Thus, the idea has its roots in the research on automatic theorem proving. Automatic theory proving and artificial intelligent – 70s 17/01/2019 Armando Stellato stellato@info.uniroma2.it ai-nlp.info.uniroma2.it/stellato
Sommario Introduzione Logica Proposizionale (LP): AI e programmazione logica: obiettivi Logica Proposizionale (LP): Introduzione alla logica proposizionale: Sintassi Semantica aspetti algoritmici della LP Logica del primo ordine vantaggi e svantaggi della LP Interpretazioni e modelli 17/01/2019 Armando Stellato stellato@info.uniroma2.it ai-nlp.info.uniroma2.it/stellato
Logica proposizionale: sintassi Alfabeto della logica proposizionale: Simboli proposizionali (o costanti proposizionali) Rappresentati con lettere minuscole, talvolta indicizzate: p1, p2, q, r … Connettivi logici: (congiunzione), (negazione), (equivalenza logica), () e () (implicazione) e (disgiunzione) Simboli ausiliari: Parentesi e virgole Connettivi logici nome simbolo arità simboli alternativi negazione monadica – , ~, not congiunzione diadica & , , and disgiunzione | , or implicazione , equivalenza = , , ~ 17/01/2019 Armando Stellato stellato@info.uniroma2.it ai-nlp.info.uniroma2.it/stellato
Logica proposizionale: linguaggio Formule: Proposizioni e connettivi, opportunamente collegati attraverso delle regole di costruzione, danno origine a delle combinazioni, dette formule, che costituiscono il linguaggio del calcolo proposizionale. Regole di costruzione: Base: ogni proposizione è una formula Induzione: se X e Y sono formule, allora X, (X Y), (X Y), (X Y) (X Y) Chiusura: tutte le formule sono ottenibili dall’applicazione delle regole base e di induzione un numero finito di volte Metasimboli di formula: simboli come X e Y, usati in questo contesto per rappresentare le formule, sono dei metasimboli, dei simboli cioè esterni al linguaggio e utili per introdurre nozioni e proprietà del linguaggio stesso. Sottoformule: Se una formula Y è utilizzata come argomento della regola di induzione per ottenere una regola X, allora Y è una sottoformula di X. Es: data la formula (p (q r)) {p, q, r, (q r) } è l’insieme delle sue sottoformula Decidibilità della ben formatezza di una formula: L’insieme delle formule è un sottoinsieme dell’insieme delle possibili combinazioni di simboli, che è una infinità numerabile. L’insieme delle formule è pertanto una infinità numerabile. Tale insieme è recursive, è cioè sempre possibile in un tempo finito decidere se una data combinazione è una formula o meno 17/01/2019 Armando Stellato stellato@info.uniroma2.it ai-nlp.info.uniroma2.it/stellato
Rappresentazione ad albero di una formula Data la formula: ( p ( q r ) ) la sua rappresentazione ad albero è la seguente: p q r La radice dell’albero corrispondente ad una formula è un connettivo, chiamato connettivo principale della formula 17/01/2019 Armando Stellato stellato@info.uniroma2.it ai-nlp.info.uniroma2.it/stellato
Logica proposizionale: linguaggio Letterale proposizioni (letterale positivo) e proposizioni negate dal simbolo (letterale negativo). I letterali positivo e negativo della stessa proposizione sono detti letterali opposti. Condizionale, Antecedente e Conseguente Una formula il cui connettivo principale sia una implicazione (equivalenza) è talvolta chiamato condizionale (bicondizionale). In p q, p è detto l’antecendente dell’implicazione q è invece detto il conseguente dell’implicazione 17/01/2019 Armando Stellato stellato@info.uniroma2.it ai-nlp.info.uniroma2.it/stellato
Logica proposizionale: semantica Scopo della semantica è l’assegnare un significato a delle formule. Il dominio semantico del calcolo proposizionale è costituito dai valori vero/falso { T, F }. L’interpretazione di una formula consiste nell’assegnazione di un valore di verità (un valore cioè appartenente all’insieme { T, F } ) ad essa. La semantica, ovvero l’insieme di leggi di interpretazione di una formula, è, nella LP, composizionale (denotazionale): il significato di una formula deve essere funzione dei significati dei suoi componenti. In altre parole, il valore di verità assegnato ad una formula deve dipendere esclusivamente dalla struttura della formula stessa e dalle singole interpretazioni delle proposizioni in essa contenute. I connettivi della LP sono quindi detti vero-funzionali. Dato un connettivo, non appena so i valori di verità dei suoi argomenti, sono anche in grado di fornire il valore della formula da esso determinata. 17/01/2019 Armando Stellato stellato@info.uniroma2.it ai-nlp.info.uniroma2.it/stellato
Elenco delle variabili Tabelle di verità Se una formula contiene n proposizioni distinte, allora ammette 2n possibili interpretazioni Assegnati valori di verità alle n proposizioni, è possibile determinare il significato della formula tramite le tabelle di verità Lettura delle tabelle di verità: Qui vi sono tante colonne quante sono le 2n combinazioni di valori: T e F sulle n variabili considerate Elenco delle variabili Qui sono espressi i valori di verità per le formule considerate in corrispondenza dei valori di verità delle proposizioni riportati nella colonna di sinistra Formule considerate 17/01/2019 Armando Stellato stellato@info.uniroma2.it ai-nlp.info.uniroma2.it/stellato
Logica proposizionale: semantica Tabella di verità di : F T X X 17/01/2019 Armando Stellato stellato@info.uniroma2.it ai-nlp.info.uniroma2.it/stellato
Logica proposizionale: semantica Tabella di verità di : Y X Y X T F 17/01/2019 Armando Stellato stellato@info.uniroma2.it ai-nlp.info.uniroma2.it/stellato
Logica proposizionale: semantica Tabella di verità di : La disgiunzione è non esclusiva, la formula è cioè vera se X o Y o entrambe le proposizioni sono vere. Y X Y X T F 17/01/2019 Armando Stellato stellato@info.uniroma2.it ai-nlp.info.uniroma2.it/stellato
Logica proposizionale: semantica Tabella di verità di : Se l’antecendente è T, il condizionale prende il valore di verità del conseguente è talvolta indicato come implicazione materiale (per distinguerlo dalla naturale), ed è alla base del ragionamento matematico che connette una ipotesi ed una conclusione di un teorema Y X Y X T F 17/01/2019 Armando Stellato stellato@info.uniroma2.it ai-nlp.info.uniroma2.it/stellato
Logica proposizionale: semantica Tabella di verità di : La formula è vera quando i valori di verità dei due operandi sono eguali Y X Y X T F 17/01/2019 Armando Stellato stellato@info.uniroma2.it ai-nlp.info.uniroma2.it/stellato
Logica proposizionale: semantica Riassumendo: Y X Y X T F X Y X Y X Y 17/01/2019 Armando Stellato stellato@info.uniroma2.it ai-nlp.info.uniroma2.it/stellato
Esercizio: la fiera dell’est Abbiamo una serie di eventi nel mondo reale, e vogliamo rappresentarli in logica proposizionale. Possiamo associare ad ogni evento una proposizione e stabilire delle relazioni tra gli eventi applicando i connettivi logici alle proposizioni. Esempio: la fiera dell’est “Alla fiera dell'est, per due soldi, un topolino mio padre comprò E venne il gatto, che si mangiò il topo, che al mercato mio padre comprò” p: mio padre compra un topolino q: viene il gatto r: il gatto “si” mangia il topo Possiamo esprimere l’idea che la presenza del gatto e del topo generi l’evento associato alla proposizione r con una delle due seguenti espressioni: p ( q r) ( p q ) r Sono esse equivalenti? Come possiamo dimostrarlo? 17/01/2019 Armando Stellato stellato@info.uniroma2.it ai-nlp.info.uniroma2.it/stellato
Logica proposizionale: semantica Metodo delle tabelle di verità per osservare la veridicità di una formula: Verificare la validità della seguente formula F : p ( q r) ( p q ) r q p F T p q r ( p q ) r q r p ( q r) Questa la splitterei più volentieri in due slide, una teorica e una con l’esercizio 17/01/2019 Armando Stellato stellato@info.uniroma2.it ai-nlp.info.uniroma2.it/stellato
Soundness Consistenza di una formula: Modello di una formula: Una formula è consistente, sound o soddisfacibile, se ha un modello, ovvero se può essere interpretata con il valore T Tutti i letterali sono consistenti Modello di una formula: Una interpretazione che soddisfa una formula Formula inconsistente (o insoddisfacibile) Tale che non esiste una interpretazione che la soddisfi Esempi: F p p F ( p p ) 17/01/2019 Armando Stellato stellato@info.uniroma2.it ai-nlp.info.uniroma2.it/stellato
Validità Una formula è detta valida (è una tautologia) se per tutte le possibili interpretazioni delle proposizioni in essa contenute, la formula è vera e.g. p p T ( p p ) q T [(p q) p] p p (q p) Una formula è detta contingente se è consistente ma non valida Nota: tutti i letterali sono contingenti Note: La negazione di una formula valida è una formula inconsistente La negazione di una formula contingente è ancora una formula contingente 17/01/2019 Armando Stellato stellato@info.uniroma2.it ai-nlp.info.uniroma2.it/stellato
Equivalenza Due formule sono dette equivalenti sse i loro valori di verità coincidono per ogni interpretazione. E.g. le leggi di De Morgan: (p q) p q (p q) p q Legge della contro-implicazione: (p q) (q p) Se p e q sono equivalenti, allora vale: (p q) (q p) 17/01/2019 Armando Stellato stellato@info.uniroma2.it ai-nlp.info.uniroma2.it/stellato
Set di formule Soddisfacibilità di un set di formule: Un set di formule S è (semanticamente) consistente, sound o soddisfacibile, se tutti i suoi elementi ammettono un modello comune, in caso contrario S è detto inconsistente o insoddisfacibile. Un set di formule è quindi considerato, semanticamente, come la congiunzione dei suoi elementi. 17/01/2019 Armando Stellato stellato@info.uniroma2.it ai-nlp.info.uniroma2.it/stellato
Conseguenza Logica Se una formula F è vera per ognuna delle interpretazioni per le quali un determinato set di formule S è vero, diciamo che: F è una conseguenza logica (entailment) di S e lo scriviamo con: S A. In particolare, una tautologia è una conseguenza logica dell’insieme vuoto Una formula F è una conseguenza logica di un insieme di formule S sse la implicazione materiale (sintattica): (S A ) è una tautologia, ovvero: S A ( S A ) Qualche esempio: {P} P {P, P Q} Q P Q P Nota: usiamo qui il simbolo al di fuori del formalismo della logica, per indicare il comune “se e solo se” o “sse” che useremmo nella nostra spiegazione, allo stesso con modo cui scriviamo al posto di “se allora” 17/01/2019 Armando Stellato stellato@info.uniroma2.it ai-nlp.info.uniroma2.it/stellato
Il problema della deduzione Capire se C è una conseguenza logica di un set di formule è un problema fondamentale della logica, conosciuto come problema della deduzione. {H1,…,Hn} C In questo esempio, le formule Hi sono dette le ipotesi, e la formula C conclusione. Possiamo applicare quanto visto precedentemente al problema della deduzione ed ottenere la seguente formula: {H1,…,Hn} C (H1 … Hn) C 17/01/2019 Armando Stellato stellato@info.uniroma2.it ai-nlp.info.uniroma2.it/stellato
Principio di deduzione Un metodo più efficiente per dimostrare la conseguenza logica di una formula C da un insieme di ipotesi H consiste nel dimostrare che S {C} è inconsistente Formalmente: {H1,…,Hn} C (H1 … Hn, C) F Tale metodo è noto come principio di deduzione. 17/01/2019 Armando Stellato stellato@info.uniroma2.it ai-nlp.info.uniroma2.it/stellato
Regole di inferenza Basandoci sulle tabelle di verità precedentemente riportate, possiamo affermare le seguenti regole di inferenza, ovvero delle regole che permettono di ricavare delle formule a partire da altre note. Tali regole sono quindi valide. Regole di inferenza: modus ponens: date le due formule: p e p q possiamo derivare la formula: q introduzione di : p q può essere inferita da p e q commutatività di : q p possono essere derivati da p q eliminazione degli : p può essere inferito da p q introduzione degli : p q può essere inferita o da p o da q. eliminazione dei : p può essere inferita da ( p ). 17/01/2019 Armando Stellato stellato@info.uniroma2.it ai-nlp.info.uniroma2.it/stellato
Soundness e Completezza di un set di regole di inferenza Dati un set di regole di inferenza R, e per ogni set di formule H e ogni formula C: Soundness del set di regole di inferenza R: (H R C) (H C) Se, quando possiamo provare C a partire dalle formule in H e dal set di regole R, C è una conseguenza logica di H. Completezza del set di regole R: (H C) (H R C) Se, qualora C sia una conseguenza logica del set H, allora è sempre possibile dimostrare C tramite le regole R Dimostrazione di una formula: Computabilità: Se un set di regole è sia sound che completo, allora possiamo utilizzare quel set di regole per verificare che una formula C sia una conseguenza logica di una serie di ipotesi H. Complessità computazionale: Determinare se una formula C è conseguenza logica di un set di formule H è, in generale, un problema NP-HARD. 17/01/2019 Armando Stellato stellato@info.uniroma2.it ai-nlp.info.uniroma2.it/stellato
Aspetti algoritmici della logica proposizionale
Dimostrazione della validità di una formula Decidibilità della consistenza e validità di una formula: L’uso di tabelle di verità per determinare la validità o la consistenza di una formula F richiede un tempo esponenziale nel numero di proposizioni presenti in F. Diversi algoritmi forniscono metodi decisionali più efficienti del verificare tutte le possibili interpretazioni. Molti di essi sono basati sul concetto di albero semantico Albero semantico: Dato un set di proposizioni P = {p1, p2, …pn} un albero semantico per P è un albero binario che soddisfa i seguenti vincoli: Ogni arco è etichettato con un letterale (pos o neg) relativo ad un elemento di P Due archi originati dallo stesso nodo sono etichettati con letterali opposti Nessun ramo contiene più di una occorrenza di ogni letterale Nessun ramo contiene contemporaneamente un letterale e il suo opposto Es di albero semantico: P = { p, q } p p q q 17/01/2019 Armando Stellato stellato@info.uniroma2.it ai-nlp.info.uniroma2.it/stellato
Alberi semantici Proprietà degli alberi semantici Alberi finiti e infiniti Se P è un insieme finito, allora ogni albero per p è finito Se P è un insieme infinito, allora esistono per p sia alberi finiti che alberi infiniti Interpretazione: Ad ogni nodo N corrisponde una interpretazione parziale di P Es: il nodo completamente a sinistra dell’albero nella slide precedente fornisce l’interpretazione T per p e F per q Alberi semantici completi e incompleti: Completi: se l’interpretazione su ogni nodo foglia è totale un albero semantico completo di un set P infinito è necessariamente infinito 17/01/2019 Armando Stellato stellato@info.uniroma2.it ai-nlp.info.uniroma2.it/stellato
Consistenza e Validità di formule Algoritmo triviale: È possibile dimostrare la consistenza di una formula in modo triviale, esplorando tutto l’albero semantico completo relativo ad un set di formule P finché non si trova almeno una foglia con una interpretazione di P pari a T. Allo stesso modo, per dimostrarne la validità, occorre esplorare necessariamente tutto l’albero e verificare che l’interpretazione associata ad ogni ramo sia T. Alternative Evitare la costruzione di alberi semantici completi Giudicare in anticipo la veridicità di una formula sulla base di interpretazioni incomplete 17/01/2019 Armando Stellato stellato@info.uniroma2.it ai-nlp.info.uniroma2.it/stellato
Algoritmo di Quine Principio: Es: validità della formula Se una formula è vera sia per p che perp allora elimino i due letterali e non considero il loro relativo sottoalbero. Es: validità della formula ( ( p q ) r ) ( p q ) ) ( p r ) studio di p = T ( ( q r ) q ) r studio di q = T r r quindi la formula è T studio di q = F F r quindi la formula è ancora T studio di p = F in questo caso, trovo sempre F su tutte le implicazioni, quindi la formula si riduce alla tautologia T La formula è quindi sempre vera, è cioè una tautologia. A ben guardare, l’interpretazione parziale corrispondente a p = T, è già una tautologia, perché corrisponde al modus ponens, non vi sarebbe quindi stato bisogno dell’ulteriore delle interpretazioni di q. 17/01/2019 Armando Stellato stellato@info.uniroma2.it ai-nlp.info.uniroma2.it/stellato
Reductio ad absurdum Caratteristiche: Es: validità della formula Utile quando sono presenti molti connettivi di implicazione Principio: l’unico caso in cui un condizionale è falso si verifica quando l’antecedente è T e il conseguente è F. Se è possibile dimostrare che tale situazione è assurda, allora il condizionale è una tautologia Es: validità della formula ( ( p q ) r ) ( p ( q r ) ) Per essere falsa la formula, devono quindi verificarsi le seguente condizioni: a) I( ( p q ) r ) = T b) I( p ( q r ) ) = F per verificare l’ipotesi in b, devo quindi avere necessariamente la seguente interpretazione per le tre proposizioni: I(p) = T ; I(q) = T ; I(r) = F ma tale interpretazione rende la formula in a) falsa; non possono quindi mai verificarsi contemporaneamente le due condizioni a) e b). Per tal motivo, la formula è una tautologia. 17/01/2019 Armando Stellato stellato@info.uniroma2.it ai-nlp.info.uniroma2.it/stellato
Forma normale congiuntiva Gli algoritmi visti precedentemente sono ancora inefficienti per decidere la validità di una formula. In particolare,è stato dimostrato che il problema della decidibilità della validità di una formula proposizionale è NP-completo. Esistono però degli algoritmi che hanno buone proprietà computazionali su casi specifici del problema. Vediamo quindi una particolare classe di formule che offre buone caratteristiche di trattabilità 17/01/2019 Armando Stellato stellato@info.uniroma2.it ai-nlp.info.uniroma2.it/stellato
Forma normale congiuntiva (2) Clausole Una clausola è una disgiunzione di un numero finito di letterali Es: ( l1 l2 … ln ) rappresentata alternativamente come {l1 , l2 , l3 , … ln} Nota: La clausola vuota è l’unica clausola inconsistente. Forma normale congiuntiva (CNF) La Conjunctive Normal Form (CNF) è la congiunzione di un numero finito di clausole Teorema: Ogni formula ammette una forma normale congiuntiva equivalente È sempre possibile giungere ad una forma normale congiuntiva attraverso le seguenti regole di riscrittura: X Y ( X Y ) ( Y X ) Eliminazione dell’equivalenza ( X Y ) X Y Eliminazione dell’implicazione ( X Y ) (X Y ) De Morgan ( X Y ) (X Y ) De Morgan X X Eliminazione della doppia negazione X ( Y Z ) ( X Y ) ( X Z ) Distribuzione 17/01/2019 Armando Stellato stellato@info.uniroma2.it ai-nlp.info.uniroma2.it/stellato
Forma normale congiuntiva (3) Esempio di normalizzazione: [ p ( q r ) ] [ ( p s ) r ] (eliminazione implicazioni) [ p (q r ) ] [ ( p s ) r ] (ancora eliminazione implicazioni) ( p q r ) [ ( p s ) r ] (De Morgan) ( p q r ) ( p s r ) (distribuzione) ( p p s r ) ( q p s r ) (r p s r ) (Eliminazione delle Tautologie) ( q p s r ) una sola clausola!!! T T È quindi banale verificare la validità di una CNF. È sufficiente che tutte le sue clausole siano una tautologia 17/01/2019 Armando Stellato stellato@info.uniroma2.it ai-nlp.info.uniroma2.it/stellato
Algoritmo di Quine per CNF (1) Si basa sulla seguente considerazione: Definiti: una CNF S una proposizionep S Una partizione di S in tre insiemi: Sp ovvero il set di clausole contenenti p Sp ovvero il set di clausole contenenti p S’’ = S \ ( Sp Sp ) S’p costituito dalle clausole di Sp dopo la rimozione del letterale p S’p costituito dalle clausole di Sp dopo la rimozione del letterale p Abbiamo il seguente Lemma: Se p è T, S è equivalente a ( S’p S’’); se p è F, S è equivalente a ( S’p S’’ ) 17/01/2019 Armando Stellato stellato@info.uniroma2.it ai-nlp.info.uniroma2.it/stellato
Algoritmo di Quine per CNF (2) Per verificare quindi la consistenza di una formula, posso applicare il seguente algoritmo: Algoritimo: If S = 0 then S è consistente If S = { F }, then S è inconsistente Else, Seleziona una proposizione p occorrente in S; Computa S’p , S’p e S’’ S è inconsistente sse sia ( S’ p S’’) che ( S’p S’’) sono inconsistenti Tale algoritmo è ricorsivo, infatti la inconsistenza dei due set ottenuti può essere ottenuta riapplicando l’algoritmo stesso. 17/01/2019 Armando Stellato stellato@info.uniroma2.it ai-nlp.info.uniroma2.it/stellato
Algoritmo di Quine per CNF (3) Esempio di applicazione dell’algoritmo di Quine, in cui proviamo la inconsistenza del seguente set di formule: S = { p q , p r , q r , p } Seleziono la proposizione p : Sp = { p q , p r } , Sp = {p} , S’’ = { q r } S’p = {q , r } , S’p = {F} ( S’p S’’ ) = {q , r , q r } , (S’p S’’) = {F , q r } Il set ( S’p S’’ ) è ovviamente inconsistente, dobbiamo quindi dimostrare l’inconsistenza di U = ( S’p S’’ ) 17/01/2019 Armando Stellato stellato@info.uniroma2.it ai-nlp.info.uniroma2.it/stellato
Algoritmo di Quine per CNF (4) Seleziono la proposizione q: Uq = { q } , Uq = {q r } , U’’ = { r } U’q = 0 , U’q = { r } ( U’q U’’ ) = { F , r } , (U’q U’’) = { r , r } Gli insiemi { F , r } e { r , r } sono entrambi inconsistenti, dimostrando così la tesi di inconsistenza della formula originale. 17/01/2019 Armando Stellato stellato@info.uniroma2.it ai-nlp.info.uniroma2.it/stellato
Algoritmo di Davis e Putnam (1) Caratteristiche: È una versione modificata dell’algoritmo di Quine per le CNF Si basa su una analisi della struttura normale della formula considerata. Opera quindi una migliore scelta degli elementi basandosi su tale struttura. In particolare, una proposizione p ha precedenza nel processo di scelta delle proposizioni se: Una delle clausole di S consiste del singolo letterale p o p Es: se S contiene solo p, allora ( S’p S’’ ) conterrà la clausola vuota e sarà quindi inconsistente. Dovrò quindi ragionare sul solo set (S’p S’’) Solo uno dei letterali p e p occorre in S Es: se p occorre in S ma non p, allora S’p è un insieme vuoto; anche in questo caso dovrò quindi ragionare sul solo insieme (S’p S’’) 17/01/2019 Armando Stellato stellato@info.uniroma2.it ai-nlp.info.uniroma2.it/stellato
Algoritmo di Davis e Putnam (2) Esempio; vogliamo dimostrare la validità di una classica tecnica di deduzione, chiamata proving by cases. L’ipotesi è rappresentata da h, i possibili casi da p e q e la conclusione da c. Dobbiamo quindi provare che: { h , h ( p q ) , p c , q c } c che equivale a provare l’inconsistenza dell’insieme: { h , h ( p q ) , p c , q c , c} Utilizzando le regole di riscrittura, convertiamo la formula nella seguente CNF: { h , h p q , p c , q c , c} 17/01/2019 Armando Stellato stellato@info.uniroma2.it ai-nlp.info.uniroma2.it/stellato
Algoritmo di Davis e Putnam (3) Possiamo quindi, mediante una opportuna selezione dei candidati, seguire la seguente dimostrazione: 1. { h , h p q , p c , q c , c} 2. { p q , p c , q c , c} 3. { p q , p , q } 4. { q , q } 5. { F } 17/01/2019 Armando Stellato stellato@info.uniroma2.it ai-nlp.info.uniroma2.it/stellato
Principio di Risoluzione (1) Sappiamo che un set di clausole è inconsistente sse la clausola vuota è una conseguenza logica di tale insieme Possiamo quindi dimostrare l’inconsistenza di un set S di formule generando da esso conseguenza logiche sino a giungere ad F. Per generare nuove formule, utilizziamo quindi la seguente regola di risoluzione: { A X , B X} A B Il seguente lemma sancisce quindi la validità della precedente regola di risoluzione: Siano s1 e s2 due clausole appartenenti alla CNF S e sia l un letterale. Se l s1 e l s2, allora la clausola r = (s1\{l}) (s1\{ l}) è una conseguenza logica di S. 17/01/2019 Armando Stellato stellato@info.uniroma2.it ai-nlp.info.uniroma2.it/stellato
Principio di Risoluzione (2) Prova di inconsistenza basata su regola di risoluzione: While FS, seleziona l, s1, s2 tali che ls1 e ls2; calcola il risolvente r; sostituisci S con S {r} 17/01/2019 Armando Stellato stellato@info.uniroma2.it ai-nlp.info.uniroma2.it/stellato
Principio di Risoluzione (3) Esempio: Dimostrare l’inconsistenza della formula: S = { p q , p r , q r , p } Numeriamo le clausole, ottenendo la lista seguente: 1. p q 2. p r 3. q r 4. p 17/01/2019 Armando Stellato stellato@info.uniroma2.it ai-nlp.info.uniroma2.it/stellato
Principio di Risoluzione (4) generiamo quindi, a partire dalle clausole di S, nuovi risolventi ed aggiungiamoli ad S (i numeri tra parentesi indicano quali formule sono state usate per produrre la risoluzione) 5. p r (1, 3) 6. q (1, 4) 7. p q (2, 3) 8. r (2, 4) 9. p (2, 5) 10. r (3, 6) 11. q (3, 8) 12. r (4, 5) 13. q (4, 7) 14. F (4, 9) 17/01/2019 Armando Stellato stellato@info.uniroma2.it ai-nlp.info.uniroma2.it/stellato
Principio di Risoluzione (5) Considerazioni Nell’esempio precedente sono state prodotte delle risoluzioni considerando le clausole in rigido ordine lessicografico Una strategia ottimale nella scelta dei risolventi produce lo stesso risultato in un numero minore di passi: Esempio: 6. q (1, 4) 8. r (2, 4) 9. q (3, 6) 10. F (5, 7) 17/01/2019 Armando Stellato stellato@info.uniroma2.it ai-nlp.info.uniroma2.it/stellato
Principio di Risoluzione (6) Soundness e completezza dell’algoritmo di risoluzione Il lemma precedente ci assicura la soundness dell’algoritmo: la clausola vuota non può essere dedotta da un set consistente di clausole Il seguente lemma* [Chang e Lee 73] ci assicura invece la completezza dell’algoritmo Se un set di clausole S è inconsistente e contiene i risolventi dei suoi elementi, allora necessariamente contiene la clausola vuota. * Omettiamo per semplicità la dimostrazione del lemma 17/01/2019 Armando Stellato stellato@info.uniroma2.it ai-nlp.info.uniroma2.it/stellato
Clausole di Horn (1) L’algoritmo di risoluzione risulta efficiente quando viene applicato ad una classe particolare di clausole: le clausole di Horn. Una clausola di Horn è una clausola contenente al più un letterale positivo. Es: una clausola di Horn: { p , q , r , s } Sua forma equivalente: ( p q r ) s Una clausola di Horn è definita se contiene esattamente un letterale positivo, altrimenti è una clausola di Horn negativa. Modellazione di regole Una clausola definita fornisce un modello di una regola I letterali negativi rappresentano delle ipotesi e il letterale positivo è considerato la conclusione Una clausola unitaria positiva consiste di un singolo letterale positivo e rappresenta quindi un fatto, cioè una conclusione assoluta, che non necessita di ipotesi. 17/01/2019 Armando Stellato stellato@info.uniroma2.it ai-nlp.info.uniroma2.it/stellato
Clausole di Horn (2) Dimostrazione automatica di teoremi Una classe importante di problemi consiste nel dimostrare se una determinata formula, chiamata goal, sia una conseguenza logica di un insieme di fatti e regole. Risoluzione su clausole di Horn Una versione dell’algoritmo visto precedentemente, applicato alle clausole di Horn, è la seguente: While FS, seleziona p e c tali che: p è una clausola unitaria positiva di S c è una clausola di S contenente p calcola il risolvente r; sostituisci S con (S \ {c}) {r} 17/01/2019 Armando Stellato stellato@info.uniroma2.it ai-nlp.info.uniroma2.it/stellato
Conclusioni Le tecniche viste precedentemente mostrano come la realizzazione di strumenti di ragionamento automatico basati su logica debba necessariamente tenere conto di problemi come la trattabilità delle formule considerate e l’efficienza nel poterle verificare Nelle prossime slide, vedremo un altro modello logico, la logica dei predicati, più complesso del calcolo proposizionale, ma necessario per poter modellare aspetti della realtà altrimenti impossibili da rappresentare con delle semplici proposizioni Le considerazioni effettuate precedentemente valgono tuttavia anche per la logica dei predicati, per la quale sarà necessario studiare delle opportune restrizioni che ne garantiscano l’applicabilità a strumenti di supporto al ragionamento automatico. 17/01/2019 Armando Stellato stellato@info.uniroma2.it ai-nlp.info.uniroma2.it/stellato
Sommario Introduzione Logica Proposizionale (LP): AI e programmazione logica: obiettivi Logica Proposizionale (LP): Introduzione alla logica proposizionale: Sintassi Semantica aspetti algoritmici della LP Logica del primo ordine vantaggi e svantaggi della LP Interpretazioni e modelli 17/01/2019 Armando Stellato stellato@info.uniroma2.it ai-nlp.info.uniroma2.it/stellato
Importante A differenza delle precedenti, le seguenti slide non costituiscono materiale didattico completo, ma sono ad esclusivo supporto di: Libro di testo Primi due capitoli (fino a 2.2 compreso) del Nilsson (scaricabile online dal link riportato nel syllabus) 17/01/2019 Armando Stellato stellato@info.uniroma2.it ai-nlp.info.uniroma2.it/stellato
Logica proposizionale: vantaggi e svantaggi La logica proposizionale (LP) è dichiarativa La LP è composizionale: Il significato di: A B è ascrivibile ai significati di A e B Il significato nella logica proposizionale è indipendente dal contesto (a differenza che nel linguaggio naturale) CONTRO La logica proposizionale ha un potere espressivo molto limitato Non possiamo fare affermazioni di carattere generale sugli oggetti del mondo Do qui per scontato che MT abbia parlato di logica proposizionale. Propositional logic allows partial/disjunctive/negated information (unlike most data structures and databases) 17/01/2019 Armando Stellato stellato@info.uniroma2.it ai-nlp.info.uniroma2.it/stellato
Logica proposizionale: limitazione Es: Possiamo assegnare alle proposizioni p,r,s, rispettivamente, i significati: “Paola è una donna” “Rosella è una donna” “Sara è una donna” ma se volessimo successivamente affermare che “tutte le donne vestono di rosa” con la proposizione d, ed affermare di conseguenza che Paola, Rosella e Sara vestono di rosa, dovremmo creare delle nuove proposizioni: q: Paola veste di rosa t : Rosella veste di rosa u: Sara veste di rosa ed inserire le seguenti regole: p d q r d t s d u per ogni donna rappresentata con una proposizione all’interno della descrizione del mondo, sarà quindi necessario provvedere ad aggiungere ulteriori proposizioni per far sì che essa goda delle stesse proprietà che caratterizzano le altre nel sistema 17/01/2019 Armando Stellato stellato@info.uniroma2.it ai-nlp.info.uniroma2.it/stellato
Logica del primo ordine La logica proposizionale assume dei fatti sul mondo La logica del primo ordine (o logica dei predicati) prevede l’esistenza di: Oggetti: persone, case, numeri, colori. Qualunque cosa si voglia rappresentare, sia essa astratta o concreta. Relazioni: primo, fratello_di, più_grande_di, situato_in. Anche le proprietà intrinseche di un oggetto fanno parte di questo insieme Funzioni: Hanno per dominio e codominio l’insieme degli oggetti del mondo. 17/01/2019 Armando Stellato stellato@info.uniroma2.it ai-nlp.info.uniroma2.it/stellato
Logica del primo ordine Sintassi Alfabeto della logica del primo ordine: variabili Le rappresenteremo con simboli alfanumerici con lettera maiuscola iniziale, come: X;XS;Y;X7;… costanti, identificatori numerici o alfanumerici come: x; mario ; 4;… funtori Identificatori alfanumerici che iniziano con un carattere minuscolo e con arità > 0. l’arità n di un funtore f è talvolta espressa nella forma f / n Simboli di predicato Tipicamente identificati con dei simboli alfanumerici con prima lettera minuscola e con arità > 0. La notazione p / n è utilizzata anche per i simboli di predicati. Connettivi logici (congiunzione), (negazione), (equivalenza logica), () e () (implicazione) e (disgiunzione) quantificatori (universale) e (esistenziale); simboli ausiliari, come parentesi e virgole. $ 17/01/2019 Armando Stellato stellato@info.uniroma2.it ai-nlp.info.uniroma2.it/stellato
Logica del primo ordine Sintassi Ingredienti: Regole di inferenza Eliminazione del quantificatore universale Eliminazione del quantificatore esistenziale Introduzione del quantificatore esistenziale x.F(…x…) SUBST({x/a},F(…x…)} x.F(…x…) SUBST({x/a},F(…x…)} Dove a non appartiene a costanti già introdotte F(…a…) x.F(…x…) 17/01/2019 Armando Stellato stellato@info.uniroma2.it ai-nlp.info.uniroma2.it/stellato
Logica del primo ordine Semantica Interpretazione Insieme D I(ai)=di per ciascuna costante individuale Insieme di funzioni I(fi)=fi fi: Dn D per ciascuna lettera funzionale fi Insieme di relazioni I(Pi)=Pi Pi Dn per ciascuna lettera predicativa Pi 17/01/2019 Armando Stellato stellato@info.uniroma2.it ai-nlp.info.uniroma2.it/stellato
Logica del primo ordine Semantica Interpretazione Interpretazione delle formule atomiche I (Pi(a1,…,an)) = T se (I(a1),…,I(an))I(Pi) = F altrimenti I (x.Pi(a1,…,x,…,an)) = T se per tutti gli x D accade che (I(a1),…,x,…,I(an))I(Pi) = F altrimenti 17/01/2019 Armando Stellato stellato@info.uniroma2.it ai-nlp.info.uniroma2.it/stellato
Logica del primo ordine Semantica Interpretazione Interpretazione delle formule quantificate I(x.Pi(a1,…,x,…,an)) = T se per tutti gli x D accade che (I(a1),…,x,…,I(an))I(Pi) = F altrimenti I(x.Pi(a1,…,x,…,an)) = T se esiste x D tale che (I(a1),…,x,…,I(an))I(Pi) 17/01/2019 Armando Stellato stellato@info.uniroma2.it ai-nlp.info.uniroma2.it/stellato
Logica proposizionale vs. Logica del primo ordine “Aggiunte”: Strutturazione dei letterali Introduzione delle variabili Introduzione dei quantificatori 17/01/2019 Armando Stellato stellato@info.uniroma2.it ai-nlp.info.uniroma2.it/stellato
Logica del primo ordine Socrate è un uomo. Gli uomini sono mortali. Allora Socrate è mortale. Costanti individuali {Socrate, Pino, Gino, Rino} Lettere predicative {Uomo,Mortale} 17/01/2019 Armando Stellato stellato@info.uniroma2.it ai-nlp.info.uniroma2.it/stellato
Logica del primo ordine Socrate è un uomo. Gli uomini sono mortali. Allora Socrate è mortale. Traduzione affermazioni Uomo(Socrate) x.(Uomo(x) Mortale(x)) Traduzione goal Mortale(Socrate) 17/01/2019 Armando Stellato stellato@info.uniroma2.it ai-nlp.info.uniroma2.it/stellato
Logica del primo ordine x.(Uomo(x) Mortale(x)) Universal Elimination (SUBST({x/Socrate},Uomo(x) Mortale(x)) Uomo(Socrate) Mortale(Socrate) , Uomo(Socrate) MP Mortale(Socrate) 17/01/2019 Armando Stellato stellato@info.uniroma2.it ai-nlp.info.uniroma2.it/stellato