DEPARTMENT OF INFORMATION ENGINEERING UNIVERSITY OF PADOVACorso Principio di A.A. Intelligenza di 2005-2006 Risoluzione Artificiale ing. Marco Falda marco.falda@unipd.it atomi letterali) Una A1 A2 L An B1 L Bm clausola negati priva Le o èuna di non clausole quantificatori negati disgiunzione (cioèdi di 2 con Una e clausola rappresenta senza letterali la contraddizione si indica 4 Sistema generalizzazione Introduzione efficienza Logica di deduzione efficiente per la formule unificazione a di clausole risoluzione Horn) algoritmo SLD (su di Trasformazione in clausole X (p(y) Y Z ( p(y) ( Y ( p(y) ( Y ( Y q(x,z)) (q(x,z) (q(x,y) (q(x,y) ( q(x,y) p(y))) ( p(y) p(z))) p(y)))) p(y)))) p(z))) A B A B X A X X Y p(x,y) X p(x, g(x)) 3 {( p(y) q(x,g(x,y))), ( p(y) p(g(x,y)))} A 1
Sia partire T una da una trasformazione Proprietà T insoddisfacibile teoria del primo in clausole ordine a T. Sostituzione: Istanza: varianteunificazione σ= {X1/T1, LXn/Tn} 5 6 [E]σ T insoddisfacibile Unificabilità: [A1]σ= L= [An]σ Composizione: σ= σ1σ2 Caso 1.C1= 2.C2= Principio di Risoluzione i,j: Si deduce Ai= di clausole A1 L An B1 L Bm Bj C3= (C1\{Ai}) prive di variabili (C2\{Bj}) Una Esiste σse Unificazione generale sostituzione λ: una σ= di sostituzione tutte ϑèpiùgenerale (MGU) che ed èunica èla piùdi a ϑλ 7 meno di ridenominazioni 8 2
Teorema di unificazione S1(A1) C1{X1/C2} C1=C2 NO se{x2/s1(a1)} {X2/C1} {X1/X2} ses1=s2 {X1/S2(A2)} e{a1/a2} NO* La dimostrazione Dimostrazione contraddizione HC ( F)C avviene H per refutazione: per 9 Ci+1= termina Ci {risolventi di Ci} finché o 12 Unificazione generali per clausole Si Caso 1.C1= 2.C2= i,j,ϑ: deduce di [Ai]ϑ= clausole B1 L Bm A1 L An C3= Di= [(C1\{Ai}) con p(t1, variabili L, tk) Sotto Correttezza e completezza [ Bj]ϑ (C2\{Bj})]ϑ corretta: {HC opportune ipotesi ( F)C} la risoluzione insoddisf. è 10 11 completa: {HC ( F)C} insoddisf. 3
1.Semplificazioni 2.Strategie sussunteb e strategie incompletezza) (possono = [A]σ, (tautologie, introdurre...) formule La Programmazione Logica 13 14 DEPARTMENT OF INFORMATION ENGINEERING UNIVERSITY OF PADOVA Confronta Strategia linear-input Èincompleta con originale una clausola per sempre nel le clausole caso presa l ultimo generale, dall insieme di risolvente Horn Clausole positivoclausole di Horn A1 A2 L An B1 L Bm con al piùun (B1 L Bm) letterale A1, A2, L, An B1, L, Bm 16 4
Clausole di Horn Clausola Tipi goal: definita: di clausole A B1, solo un letterali L, ( ) L, letterale Bm Bmnegativi positivogoal sum(0,x,x) sum(s(x),y,s(z)) fatto [sum(s(0),0,w)]ϑ= Esempio di risoluzione regola Intelligenza Artificiale, testa {X1/0,Y1/0,W/s(Z1)} sum(x,y,z) A.A. 2005-2006 ( M. Falda) corpo 17 [sum(s(x1),y1,s(z1))]ϑ sum(0, 0, Z1) 20 Interessa Interrogazioni: Opera quantificate Risoluzione SLD Y la sostituzione di risposta sum(s(0),s(s(0)),y), Z per assurdo esistenzialmente congiunzioni sum(y,s(0),z) con variabili Una dall insieme varianti Tipi di derivazione 1.successo derivazione Cie (Gn= dei delle ) goal SLD MGU Gi, èdata ϑi delle 18 19 2.fallimento 3.fallimento infinito(gn ) 5
La Non Correttezza e completezza 1.regola 2.strategia completa risoluzione determinismo di calcolo di (per ricerca SLD (selezione clausole ècorretta degli delle di atomi) Horn) clausole) e sui un etichettato Alberi SLD nessun ramo nodi ramo i per goal con per ogni la (G0alla regola atomo e con radice) unificabile 21 22 ϑ La cammini sostituzione e proiettando di risposta su G0 componendo i 24 Influenza Di goalnédalla Regola calcolo l insieme solito èstatica di solo successo profondità) l efficienza, (non dipende non dal sum(w,0,0), Esempio sum(w,0,k) di albero SLD sum(0,x,x) sum(s(x),y,s(z)) sum(x,y,z) sum(w,0,0), sum(w,0,k) sum(0,0,0) CL1, ϑ 1 = {W/0, K/0} CL1, ϑ2 = {} Successo 23 6
sum(s(w1),0,0), sum(w,0,0), Esempio sum(w,0,k) di sum(w1,0,k1) albero SLD Definisce Dipende dell albero Strategie di ricerca Fallimento finito lista dei nodi da la SLD come modalitàdi visitare viene visita gestita (DFS, BFS) la 25 28 sum(s(w1),0,0) CL2, ϑ 3 = {W/s(W1),K/s(K1)} CL1, ϑ 4 = {W1/0,k1/0} sum(s(w1),0,0), sum(s(s(w2),0,k), Esempio di sum(w1,0,k1) sum(w2,0,k2) albero SLD CL2, ϑ 5 = {W1/s(W2),K1/s(K2)} CL2, ϑ 6 = {W2/s(W3),K2/s(K3)} Seleziona Usa backtrackingcronologico Caso del Prolog... all ordine la ricerca di le apparizione clausole profonditàcon base Fallimento infinito 26 27 risoluzione non completa 7
Una può Interpretazione essere clausola p(t1, vista come L, del tipo tn) B1, una procedura procedurale L, Bm Per invocarla p(1, L, n) 30 Non Le Reversibilitàe di esistono distinzioni assegnamento liberano solo ingresso variabili sono e nel uscita backtracking sola scrittura parametri e si 29 8