380 likes | 559 Views
Risoluzione e Programmazione Logica (Prolog). P v Q P v R Q v R. Risoluzione Abraham Robinson [1965]. Se è noto che “ P è vera o Q è vera” ed anche che “ P è falsa o R è vera”, allora deve essere il caso che “ Q è vera o è vera R ”
E N D
P v Q P v R Q v R Risoluzione Abraham Robinson [1965] Se è noto che “P è vera o Q è vera” ed anche che “P è falsa o R è vera”, allora deve essere il caso che “Q è vera o è vera R ” “L’idea che sta alla base della risoluzione è piuttosto semplice” Logical Foundations of Artificial Intelligence Michael R. Genesereth Nils J. Nilsson
Un letterale è una formula atomica o la negazione di una formula atomica. Una clausola è una disgiunzione di letterali: A1... AnB1...Bm[con Ai, Bjatomi] equivalentemente, puo essere rappresentata in forma implicativa: B1 ... BmA1 ...An Una formula in forma normale congiuntivaè una congiunzione di clausole. Qualsiasi formula proposizionale può essere convertita in una formula proposizionale in forma normale congiuntiva logicamente equivalente. Qualsiasi formula ben formata della logica dei predicatiø può essere convertita in una formula ben formata della logica dei predicati in forma normale congiuntiva ø’. Si osservi che, In generale ønon è logicamente equivalente a ø’, ma ø è insoddisfacibile sse ø’ è insoddisfacibile. Una Base della conoscenza (KB) è un insieme di clausole. Forma normale congiuntiva e clausole
Risoluzione [I] Caso proposizionale con con (-{}) ( -{ }) I simboli e indicano clausole, mentre è uno dei letterali che ne fanno parte (può naturalmente non essere l’unico). Esempio 1. {P, Q} 2. {P, R} 3. {Q, R} 1,2 Il simbolo indica le clausole presenti inizialmente della ase della conoscenza.
Premesse... KB ⊦ φsse KB⊧ φ sseKB ∪ {⌝φ} insoddisfacibile sseKB ∪ {⌝φ} incoerente Procedura per Risoluzione Prooposizionale Come dimostriamo KB ⊦ φ ? KB ⊦ φ
Esempio di Risoluzione Proposizionale (Brachman&Levesque) KB KB (clausole) Proving that Girl holds... KB ⊦ Girl ? KB ∪ {⌝Girl} unsatisfiable?
Risoluzione [II] Caso predicativo con con ((-{}) ( -{})) dove ()= (), è l’unificatore più generale per i due letterali Esempio 1. {P(x), Q(x,y)} 2. {P(a), R(b, z)} 3. {Q(a,y), R(b, z)} 1,2 Il simbolo indica le clausole presenti inizialmente della base della conoscenza. In questo caso, l’unificatore più generale è = {x / a}.
Forme Canoniche per la Risoluzione k m A1 ... AmB1 ...Bn clausola A1 ... AmB1 clausola di Horn una calusola con al più un letterale positivo k = 1 k = 1 m = 1 VF clausola vuota
TRASFORMAZIONE IN CLAUSOLE Insieme finito di istruzioni per trasformare una qualunque fbf della logicadei predicati del primo ordine in un insieme diclausole (1) Trasformazione in fbf chiusa: ad esempio,la formula, x (p(y) (y (q(x,y) p(y)))) [1] è trasformata in: xy (p(y) (y (q(x,y) p(y)))) [2] (2) Applicazione delle equivalenze per i connettivilogici: ad esempio, A B è sostituito da AB, e lasi riduce in forma and-or.La formula [2] diventa: xy (p(y) (y (q(x, y) p(y)))) [3] (3) Applicazione della negazione ai soli atomi (e non aformule composte), tenendo presente che, xA equivale a X A X A equivale a xA (A1 A2 ... An) equivale a A1A2 ...An (A1 A2 ...An) equivale a A1 A2 ...An [leggi di De Morgan] la [3] si modifica in: xy (p(y) (y (q(x, y) p(y)))) [4]
(4) Cambiamento di nomi delle variabili: nel caso diconflitti. In [4] la seconda variabile y viene rinominata z : xy (p(y) (z (q(x, z) p(z)))) [5] (5) Spostamento dei quantificatori:in testa allaformula (forma prenessa). xyz (p(y) (q(x, z) p(z))) [6] (6) Forma normale congiuntiva:cioè comecongiunzione di disgiunzioni, con quantificazione intesta. xyz ((p(y) q(x, z)) (p(y) p(z))) [7] (7) Skolemizzazione:ogni variabile quantificataesistenzialmente viene sostituita da una funzionedelle variabili quantificate universalmente che eventualmente laprecedono.Talefunzione è detta funzione di Skolem. Ad esempio, una formula del tipo:xyp(x, y), puòessere espressa in modo equivalente come: xp(x,g(x)) . In [7]z è sostituita da f (x, y), perché z si trova nel campo di azione delle quantificazioni x ey: xy ((p(y) q(x, f (x, y))) (p(y) p(f (x, y)))) [8] Nota Perdita in espressività. Non è la stessa cosa asserire, F: xp(x) oppure F’: p(f).Vale comunque la proprietà che F è inconsistente see solo se F’ è inconsistente.
(8) Eliminazione dei quantificatori universali: siottiene una formula detta universale (tutte le suevariabili sono quantificate universalmente) in forma normale congiuntiva. ((p(y) q(x, f (x, y))) (p(y) p(f (x, y))))[9] Una formula di questo tipo rappresenta un insiemedi clausole. La forma normalea clausole che si ottiene è la seguente: {p(y), q(x, f (x, y))}[10] {p(y),p(f (x, y))}[11] I letterali della seconda clausola possono essere riscrittirinominandole variabili (sostituendo cioè le formule con le loro varianti). {p(y), q(x, f (x, y))} [12] {p(z),p(f (w, z))} [13] Qualunque teoria del primo ordine T può esseretrasformata in una teoria T’ in forma a clausole.Anche se T non è logicamente equivalente a T’ (acausa dell'introduzione delle funzioni di Skolem),vale comunque la seguente proprietà: Proprietà Sia T una teoria del primo ordine e T’ una suatrasformazione in clausole, allora T èinsoddisfacibile se e solo se T’ è insoddisfacibile. Il Principio di Risoluzione è una procedura didimostrazione che opera per contraddizione e si fonda sul concetto di insoddisfacibilità.
UNIFICAZIONE L’unificazione è una nozione fondamentale, sulla quale sono basati molti metodi per la risoluzione e la deduzione automatica di teoremi. Per applicare il principio di risoluzione alle clausolenon-ground della logica del primo ordine è necessario introdurre il concetto diunificazione [J.A. Robinson, 1965], e lo stesso vale per l’applicazione della regola di Modus Ponens Generalizzato, appena visto. Per unificazione si intende il procedimento di manipolazione formaleutilizzato per stabilirequando due espressioni possonoessere identificate procedendo a opportune sostituzionidelle lorosotto-espressioni con altre espressioni. Una sostituzione è un insieme finito di legami fra simboli di variabili xi(i=1,..,n) ed espressioni (termini)ti. = {x1/t1, x2/t2,..., xn/tn}, dove x1, x2,..., xn sono distinte. L’applicazione della sostituzione a un’espressione E,[E], produce una nuova espressione ottenutasostituendo simultaneamente ciascuna variabile xidell’espressione con il corrispondente termine ti . [E]è detta in questo casoistanza di E. Perrenaming si intendono sostituzioni che cambiano semplicemente ilnome ad alcune dellevariabili di E. [E] è unavariantedi E.
Esempio L’applicazione della sostituzione = {x/c, y/a, z/w} all’espressionep(x,f(y),b,z) produce l'istanzap(c,f(a),b,w). Analogamente, [C(y,z)]{y/t, z/neri} = C(t,neri)[e1] [C(t,neri)]{y/t, z/neri} = C(t,neri) [e2] [C(y,z)]{y /bianchi,t/bianchi,z/neri}= C(bianchi,neri) [e3] [C(t,neri)]{y /bianchi,t/bianchi,z/neri}=C(bianchi,neri) [e4] [C(y,z)]{y/t, z/bianchi} = C(t,bianchi) [e5] [C(t,neri)]{y/t, z/bianchi} = C(t,neri) [e6] [T(s(a),f(s(b),s(c)))]{c/s(a), y /s(b), z/s(s(a))}=T(s(a),f(s(b),s(s(a)))[e7] [T(q,h(y,z))]{q/p,y/x,z/w}=T(p,h(x,w))[e8],variante della partenza. [c(t,neri)]e = c(t,neri)[e9] [p(x,y)]{x/a,y/x} = p(a,x) [e10]
Combinazioni di sostituzioni Date due sostituzioni 1 e 2 1 ={x1/t1, x2/t2,..., xn/tn} 2 ={y1/q1, y2/q2,..., ym/qm} La composizione1 °2di 1 e 2 è la sostituzione {x1/[t1]2,..., xn/[tn]2,y1/q1 ,y2/q1, ...,ym/qm} ottenuta cancellando le coppie xi/[ti]2 per le quali si haxn=[tn]2 e le coppie yj/qj per le quali yj appartieneall’insieme {x1, x2,..., xn}. Se consideriamo, ad esempio, le sostituzioni 1 = {x/f(z), w/r, s/c} 2 = {y/x, r/w,z/b} la loro composizione produce, 3 = 1 °2 = {x/f(b), s/c, y/x, r/w, z/b}.
Sostituzioni più generali Una sostituzione è piùgeneraledi una sostituzione se esiste una sostituzionetale che = . Ad esempio, la sostituzione = {y/t, z/neri} è più generale dellasostituzione = {y/bianchi, t/bianchi, z/neri} inquanto si può ottenere attraverso la composizione{y/t, z/neri}°{t/bianchi}, ovvero, = , e = {t/bianchi}. Come abbiamo detto, l’unificazionerende identici due o più atomi (otermini) (o meglio le loroistanze) attraverso la scelta e l’applicazione di una opportunasostituzione. Un insieme di atomi (o termini) A1, A2,..., An èunificabilese esiste una sostituzione tale che: [A1] = [A2] = .... = [An]. La sostituzione è detta sostituzione unificatrice(o, più semplicemente, unificatore) Nota Se si considerano solo due atomi (o termini), uno deiquali senza alcuna variabile, si ricade in un casoparticolare di unificazione, detto pattern-matching.
Esempio[1]Se si considerano gli atomi:A1 =C(y, z) e A2=C(t, neri) possibili sostituzioni unificatrici sono: = {y/t, z/neri} = {y/bianchi, t/bianchi, z/neri} la loro applicazione produce la stessa istanza: [C(y, z)] = [C(t, neri)] = C(t, neri) [C(y, z)] = [C(t, neri)] = C(bianchi, neri) La sostituzione: ={y/t, z/bianchi} è ununificatore ? Esempio[2]Per gli atomi:A3 = P(x,x,f(a,z)) e A4 = P(y,w,f(y,j)) possibili sostituzioni unificatrici sono: = {x/a, y/a, w/a, j/z} = {x/a, y/a, w/a, j/c, z/c} la loro applicazione ad A3 e A4 produce la stessaistanza: P(a,a, f(a,z)) nel caso della sostituzione P(a,a, f(a,c)) nel caso della sostituzione . Possono esistere più sostituzioni unificatrici, si vuoleindividuare quella piùgenerale (mgu, most generalunifier). Nota: MGU: si ottiene da componendola con: = {z/c}.
P v Q P v R Q v R Risoluzione Abraham Robinson [1965] Se è noto che “P è vera o Q è vera” ed anche che “P è falsa o R è vera”, allora deve essere il caso che “Q è vera o è vera R ” “L’idea che sta alla base della risoluzione è piuttosto semplice” Logical Foundations of Artificial Intelligence Michael R. Genesereth Nils J. Nilsson
Risoluzione [I] Caso proposizionale con con (-{}) ( -{ }) I simboli e indicano clausole, mentre è uno dei letterali che ne fanno parte (può naturalmente non essere l’unico). Esempio 1. {P, Q} 2. {P, R} 3. {Q, R} 1,2 Il simbolo indica le clausole presenti inizialmente della ase della conoscenza.
Risoluzione [II] Caso predicativo con con ((-{}) ( -{})) dove ()= (), è l’unificatore più generale per i due letterali Esempio 1. {P(x), Q(x,y)} 2. {P(a), R(b, z)} 3. {Q(a,y), R(b, z)} 1,2 Il simbolo indica le clausole presenti inizialmente della base della conoscenza. In questo caso, l’unificatore più generale è = {x / a}.
Risoluzione [III] La nozione di fattore Se un sottoinsieme di letterali in una clausola possiede un unificatore più generale , allora la clausola ’ ottenuta applicando la sostituzione alla clausola è detta fattore di . Ovviamente ogni clausola è banalmente fattore di se stessa. Nota In genere, la fattorizzazione s’intende come un’operazione di eliminazione delle ridondanze all’interno delle clausole. Caso fattorizzato con ’ con ’ ((’-{}) ( ’-{})) dove ()= (), è l’unificatore più generale per i due letterali
Risoluzione Esempio (Brachman&Levesque) KB KB ⊦ HardWorker(sue) ?
Risoluzione Esempio (Brachman&Levesque) KB KB ⊦ HardWorker(x) ? X X X X
Risoluzione SLD e Programmazione Logica
Esecuzione di un Programma [P] Una computazione corrisponde al tentativo di dimostrare, tramite laregola di risoluzione, che una formula (goal) segue logicamente da un insieme di formule (programma); cioè, che la formula e’un teorema. Si deve determinare una sostituzione per le variabili del goal (detto anche “query”) per cui il goalsegue logicamente dal programma. Dato un programma P e una query: :- S (t1,t2,…,tm). se x1,x2,…,xnsono le variabili che compaiono in t1,t2,…,tmilsignificato logico della query e’: x1x2… xnS (t1,t2,…,tm) e l’obiettivo e’ quello di trovare una sostituzione = [x1 /a1, x2 /a2 ,…, xn/an] dove aisono termini tale per cui P [S (t1,t2,…,tm)]
Risoluzione SLD Risoluzione Lineare per Clausole Definite con funzione di Selezione (completa per le clausole di Horn) Dato un programma logico P e una clausola goal G0, ad ognipasso dirisoluzione si ricava un nuovo risolvente Gi+1 , seesiste, dallaclausolagoal ottenuta al passo precedente Gie dauna rinomina di unaclausola appartenente a P Una rinomina per una clausola C e’ la clausola C’ ottenuta da Crinominando le sue variabili. Quello che segue è un esempio di rinomina: p(X):- q(X,g(Z)). p(X1):- q(X1,g(Z1)).
Risoluzione SLD Operativamente... La Risoluzione SLD seleziona un atomo Amdal goal Gisecondo undeterminato criterio, e lo unifica se possibile con la testa della clausolaCiattraverso la sostituzione più generale: MOSTGENERAL UNIFIER(MGU) Il nuovo risolvente e’ ottenuto da Gi riscrivendo l’atomo selezionato con la parte destra della clausola Ci ed applicando la sostituzione i. Più in dettaglio: :- A1,…,Am-1,Am,Am+1,…,Ak . Risolvente, A:- B1,…,Bk .clausola del programma P, e [Am]i= [A]iallora la risoluzione SLD deriva il nuovo risolvente :- [A1,…,Am-1, B1,…, Bq ,Am+1,…,Ak]i .
Risoluzione SLD • sum(0,X,X). [CL1] • sum(s(X),Y,s(Z)):- sum(X,Y,Z). [CL2] • Goal sum(s(0),0,W). • Al primo passo genero una rinomina della clausola [C2] • sum(s(X1),Y1,s(Z1)):- sum(X1,Y1,Z1). • Unificando la testa con il goal, ottengo la sostituzione MGU • 1=[X1/0,Y1/0,s(Z1)/W] • Ottengo il nuovo risolvente • [G1]:- [sum(X1,Y1,Z1)] 1 • ossia, • :-sum(0,0,Z1). • . • . • .
Derivazione SLD • Una derivazione SLD per un goal G0 dall’insieme diclausole definite Pe’ una sequenza di clausole goal • G0 ,…, Gn , una sequenza di rinomine diclausole delprogramma C1 , …, Cn , e una sequenza di sostituzioniMGU • 1,…, ntali che Gi+1 è derivato da Gi e da Ci+1 attraverso la • sostituzione n. • La sequenza può essere anche infinita. • Esistono tre tipi di derivazioni: • SUCCESSO, se per n finito Gn è uguale alla clausola vuota Gn= :-– • FALLIMENTO FINITO, se per n finito non è più possibile derivare • un nuovorisolvente da Gn e Gn non è • uguale a :-– • FALLIMENTO INFINITO, se è sempre possibile derivare nuovi • risolventitutti diversidalla clausola • vuota.
Derivazione di SUCCESSO sum(0,X,X). [CL1] sum(s(X),Y,s(Z)):- sum(X,Y,Z). [CL2] Il goal G0:-sum(s(0),0,W)ha una derivazione di successo ! [C1]rinomina di [CL2]sum(s(X1),Y1,s(Z1)):- sum(X1,Y1,Z1). 1= [X1/0,Y1/0,s(Z1)/W] [G1]:-sum(0,0,Z1). [C2]rinomina di [CL1]sum(0,X2,X2). 2=[Z1/0,X2/0] [G2]:-
Derivazione di FALLIMENTO FINITA sum(0,X,X). [CL1] sum(s(X),Y,s(Z)):- sum(X,Y,Z). [CL2] Il goal G0:-sum(s(0),0,0)ha una derivazione di fallimento finito ! ... semplicemente, perché l’unico atomo del goal non è unificabile con alcuna clausola delprogramma.
Derivazione di FALLIMENTO INFINITA sum(0,X,X). [CL1] sum(s(X),Y,s(Z)):- sum(X,Y,Z). [CL2] Il goal G0:-sum(A,B,C)ha una derivazione SLD infinita ! ... ottenutaapplicando ripetutamente varianti della seconda clausola di P [C1]rinomina di [CL2]sum(s(X1),Y1,s(Z1)):- sum(X1,Y1,Z1). 1=[A/s(X1),B/Y1,C/s(Z1)] [G1]:-sum(X1,Y1,Z1). [C2]rinomina di [CL2]sum(s(X2),Y2,s(Z2)):- sum(X2,Y2,Z2). 2=[X1/s(X2),Y1/Y2,Z1/s(Z2)] [G2]:-sum(X2,Y2,Z2). ...
Non Determinismo • Nella risoluzione SLD, così come è stata enunciata, si hanno due formedi non determinismo. • La prima forma di non determinismo è legata alla selezionedi un • atomoAm del goal da unificare con la testa di una clausola, e viene • gestita definendo una particolare regola di calcolo. • La seconda forma di non determinismo è legata alla scelta di quale • clausola del programma P utilizzare in un passo di risoluzione, e • viene gestita definendo una strategia di ricerca.
Regola di Calcolo Una regola di calcolo è una funzione che ha come dominio l'insieme dei letterali (atomi) di un goal e come codominio un insieme formato da un solo atomo dello stesso goal, ad esempio Am nel goal seguente :-A1 ,...,Am-1,Am ,Am+1 ,...,Ak sum(0,X,X). [CL1] sum(s(X),Y,s(Z)):- sum(X,Y,Z). [CL2] G0:-sum(0,s(0),s(0)),sum(s(0),0,s(0)). Se si seleziona l’atomo più a sinistra(LEFT-MOST) al primo passo, unificando l’atomo sum(0,s(0),s(0)) con la testa di [CL1], si otterrà: [G1]:- sum(s(0),0,s(0)). Se si seleziona l’atomo più a destra(RIGTH-MOST) al primo passo, unificando l’atomo sum(s(0),0,s(0)) con la testa di [CL2], si avrà: [G1]:- sum(0,s(0),s(0)),sum(0,0,0).
Strategia di Ricerca Questa forma di non determinismo implica che possano esistere più soluzioni alternative per uno stesso goal, corrispondenti alle diverse scelte delle clausole con cui tentare l’unificazione. La risoluzione SLD (completezza), deve essere in grado di generare tutte le possibili soluzioni e quindi deve considerare ad ogni passo di risoluzione tutte le possibili alternative. La strategia di ricerca deve garantire questa completezza Una forma grafica utile per rappresentare la risoluzione SLD e questa forma di non determinismo sono gli alberi SLD.
Alberi SLD • Dato un programma logico P, un goal G0 e una regola di calcolo R, un • albero SLD per P {G0} via R è definito come segue: • ciascun nodo dell'albero è un goal (eventualmente vuoto); • la radice dell'albero è il goal G0 ; • dato il nodo :-A1,...,Am-1,Am ,Am+1 ,...,Ak, se Am è l’atomoselezionatodalla regola di calcolo R, allora questo nodo genitore ha un nodo figlioper ciascuna clausola Ci = A:- B1,…, Bq di P tale che A e Amsonounificabili attraverso una sostituzione unificatrice più generale . • Il nodofiglio è etichettato con la clausola goal: • :-[A1,…,Am-1, B1,…, Bq,Am+1,…,Ak] • e il ramo, dal nodo padre alfiglio, è etichettato dalla sostituzione e dalla clausola selezionata Ci ; • Il nodo vuoto (indicato con “:-”) non ha figli.
Strategia di Ricerca La realizzazione effettiva di un dimostratore basato sulla risoluzione SLD richiede la definizione non solo di una regola di calcolo, ma anche di una strategia di ricerca che stabilisca una particolare modalità di esplorazione dell’albero SLD alla ricerca dei rami di successo. Le modalità di esplorazione dell’albero piu’ comuni sono: depth first [PRIMA IN PROFONDITA’] breadth first [PRIMA IN AMPIEZZA] Entrambe le modalità implicano l’esistenza di un meccanismo di backtracking per esplorare tutte le strade alternative che corrispondonoai diversi nodi dell’albero.