La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Agenti logici: sistemi a regole Regole all'indietro e programmazione logica Regole in avanti e basi di dati deduttive Maria Simi a.a. 2007-2008.

Presentazioni simili


Presentazione sul tema: "Agenti logici: sistemi a regole Regole all'indietro e programmazione logica Regole in avanti e basi di dati deduttive Maria Simi a.a. 2007-2008."— Transcript della presentazione:

1

2 Agenti logici: sistemi a regole Regole all'indietro e programmazione logica Regole in avanti e basi di dati deduttive Maria Simi a.a. 2007-2008

3 Il sottoinsieme “a regole” del FOL  Il metodo di risoluzione per FOL  KB in forma a clausole  Unificazione e regola di risoluzione  Il sottoinsieme a regole (un solo letterale positivo)  P 1  …   P k  Q clausole Horn definite P 1  …  P k  Q

4 Sistemi a regole logici  KB a regole  Fatti: letterali positivi. Es. p  Regole: p 1  p 2  …  p n  q  Se la KB contiene clausole Horn definite i meccanismi inferenziali sono molto più semplici.  Nota: è restrittivo. Non coincide con FOL.

5 Uso delle regole in avanti e all’indietro  Concatenazione in avanti (Forward Chaining): un’istanza di ragionamento|ricerca guidato dai dati  Le regole sono applicate nel senso “antecedente- conseguente”  Basi di dati deduttive e sistemi di produzione  Concatenazione all’indietro (Backwards Chaining): un’istanza di ragionamento guidato dall’obiettivo  Le regole sono applicate alla rovescia  Programmazione logica (PROLOG)

6 Strategie di risoluzione  Ci interessano le tecniche per esplorare in maniera efficiente il grafo di risoluzione, possibilmente senza perdere completezza  Si distingue tra [Genesereth-Nilsson]:  Strategie di cancellazione  Strategie di restrizione  Strategie di ordinamento

7 Strategie di cancellazione  Si tratta di rimuovere dal KB certe clausole che non potranno essere utili 1. Clausole con letterali puri: quelli che non hanno il loro negato nel KB Es. {  P,  Q, R} {  P, S} {  Q, S} {P} {Q} {  R} Le clausole con letterali puri non potranno mai essere risolte con altre clausole per ottenere { }

8 Strategie di cancellazione (cont.) 2. Rimozione tautologie: clausole che contengono due letterali identici e complementari Es. {P(A),  P(A), …} {P(x), Q(y),  Q(y)} La rimozione non influenza la insoddisfacibilità.  Nota: non basta che siano unificabili e di segno opposto Es. {  P(A), P(x)} {P(A)} {  P(B)} è insoddisfacibile {P(A)} {  P(B)} non lo è  Le tautologie possono essere generate  controllo da fare ad ogni passo

9 Strategie di cancellazione (cont.) 3. Eliminazione di clausole sussunte (implicate)  Es. P(x) sussume P(A), P(A) sussume P(A)  P(B)  In generale: A sussume B sse  A   B se un’istanza di A è un sottoinsieme di B Es. {P(x), Q(y)} sussume {P(A), Q(v), R(w)} infatti {P(x), Q(y)}{x/A, y/v}={P(A), Q(v)}  B può essere ricavata da A. B può essere eliminata senza perdere soluzioni  Le clausole sussunte possono essere generate.

10 Strategie di restrizione  Ad ogni passo si sceglie tra un sottoinsieme delle possibili clausole  Tra le strategie possibili: 1. Risoluzione unitaria 2. Risoluzione da input 3. Risoluzione lineare e lineare da input 4. Risoluzione guidata dal goal 5. Risoluzione ordinata

11 Risoluzione unitaria 1. Risoluzione unitaria: almeno una delle due clausole è unitaria (contiene un solo letterale) {P, Q} {  P, R} {  Q, R} {  R} {  P} {  Q} {Q} {P} { } { } {R}{R}

12 Risoluzione unitaria (cont.)  Facile da implementare, si converge rapidamente  Problema: la strategia non è completa Es. {P, Q} {  P, Q} {P,  Q} {  P,  Q} |- RES { } ma non con risoluzione unitaria  La strategia è completa per clausole Horn. Clausole Horn: clausole con al più un letterale positivo

13 Risoluzione da input  Una delle clausole appartiene alla KB iniziale Teorema: c’è una risoluzione da input sse ce n’è una unitaria (metodi diversi ma equivalenti)  Corollario: risoluzione da input non completa, ma completa per clausole Horn. Es. {P, Q} {  P, Q} {P,  Q} {  P,  Q} non Horn la clausola vuota non può essere generata da input.

14 Risoluzione lineare  Ultima clausola generata con una clausola da input oppure una clausola antenata.  Generalizzazione della risoluzione da input, con in più il vincolo di linearità {P, Q} {  P, Q} {P,  Q} {  P,  Q} Q P  Q { }Completa per la refutazione

15 Risoluzione lineare da input  Ultima clausola generata più una da input  Completa per clausole Horn

16 Risoluzione guidata dal goal  Insieme di supporto: un sotto-insieme  ’ di  responsabile dell’insoddisfacibilità  Almeno una delle due clausole appartiene a questo insieme o ai suoi discendenti  Tipicamente, assumendo  consistente, si sceglie come insieme di supporto il negato della clausola goal  … è come procedere all’indietro dal goal

17 Risoluzione da insieme di supporto: esempio {P, Q} {  P, R} {  Q, R} {  R} goal negato {  P} {  Q} {Q}{P} {R}{ }

18 Strategie di ordinamento  Le strategie di ordinamento prevedono che i letterali all’interno delle clausole siano ordinati  L’ordinamento deve essere rispettato nel risolvente

19 Risoluzione ordinata  Ogni clausola è un insieme ordinato di letterali e si possono unificare solo i letterali di testa delle clausole {l 1, l 2, …, l k }{  m 1, m 2, …, m n } l 1  = m 1  con  MGU {l 2, …, l k, m 2, …, m n } 

20 Risoluzione ordinata (cont.)  Esempio di risoluzione ordinata: {P, Q}{  P, R}{  Q, R}{  R} goal negato {Q, R} {R} { }  La risoluzione ordinata è completa per clausole Horn

21 Clausole Horn e programmazione logica  KB costituiti di clausole Horn definite espressi come fatti e regole con una sintassi alternativa {A} diventa A {A,  B 1,  B 2, …,  B n } diventa A  B 1, B 2, …, B n riscrittura di B 1  B 2  …  B n  A  Clausole goal Se B 1  B 2  …  B n è il goal  (B 1  B 2  … B n )  False è il goal negato Viene scritto  B 1, B 2, …, B n omettendo il conseguente

22 Programmi logici  Interpretazione dichiarativa di una regola A  B 1, B 2, …, B n (A testa, B 1, B 2, … B n corpo) A è vero se sono veri B 1, B 2, … B n  Interpretazione procedurale: la testa può essere vista come una chiamata di procedura e il corpo come una serie di procedure da eseguire in sequenza  Altre convenzioni: in PL le variabili sono indicate con lettere maiuscole, le costanti con lettere minuscole

23 Esempio di KB come programma logico 1. Genitore(X, Y)  Padre(X, Y) 2. Genitore(X, Y)  Madre(X, Y) 3. Antenato(X, Y)  Genitore(X, Y) 4. Antenato(X, Y)  Genitore(X, Z), Antenato(Z, Y) 5. Padre(gio, mark) 6. Padre(gio, luc) 7. Madre(lia, gio) 8.  Antenato(lia, mark) goal negato

24 Risoluzione SLD  La risoluzione SLD (Selection Linear Definite- clauses) è una strategia ordinata, basata su un insieme di supporto (la clausola goal), lineare da input.  La risoluzione SLD è completa per clausole Horn.

25 Alberi di risoluzione SLD  Dato un programma logico P, l’albero SLD per un goal G è definito come segue:  ogni nodo dell’albero corrisponde a un goal [congiuntivo]  la radice è :-G, il nostro goal  sia  G 1, G 2, …, G k un nodo dell’albero; il nodo ha tanti discendenti quanti sono i fatti e le regole in P la cui testa è unificabile con G 1 Se A  B 1, …, B k e A è unificabile con G 1 il discendente è il goal  (B 1, …, B k, G 2, …, G k )  con  = MGU(A, G 1 )  i nodi che sono clausole vuote sono successi

26 Esempio di albero SLD: il programma 1. Genitore(X, Y)  Padre(X, Y) 2. Genitore(X, Y)  Madre(X, Y) 3. Antenato(X, Y)  Genitore(X, Y) 4. Antenato(X, Y)  Genitore(X, Z), Antenato(Z, Y) 5. Padre(gio, mark) 6. Padre(gio, luc) 7. Madre(lia, gio) 8.  Antenato(lia, mark) goal negato

27 Esempio di albero SLD per Antenato(lia, mark)  A(lia, mark) :-G(lia, mark) :-G(lia, Z 1 ), A(Z 1, mark) Z 1 nuova variabile :-P(lia, mark) :-M(lia, mark) :-P(lia, Z 2 ), A(Z 2, mark) :-M(lia, Z 2 ), A(Z 2, mark) { } con {Z 2 /gio} :- A(gio, mark) :-G(gio, mark) :-G(gio, Z 3 ), A(Z 3, mark) :-P(gio, mark) :-M(gio, mark) { } 3 4 121 2 7 3 4 12 5 3…3… 4…4… fail success fail

28 Risoluzione SLD  La strategia è completa per clausole Horn definite e quindi, se P  {  G} è insoddisfacibile, allora una delle foglie deve essere la clausola vuota (successo)  Non è restrittivo andare in ordine nel risolvere i sottogoal in and.  La sostituzione corrispondente è la risposta calcolata

29 Strategia di visita dell’albero SLD e PROLOG  A seconda di come visito l’albero potrei anche non trovare la clausola vuota. La strategia di ricerca può essere responsabile dell’incompletezza.  In PROLOG, il più famoso linguaggio di programmazione logica, la visita dell’albero di risoluzione avviene con una ricerca in profondità, con backtracking in caso di fallimento; su richiesta si trovano tutte le soluzioni.  Quindi la strategia di PROLOG non è completa  PROLOG omette l’occur check per motivi di efficienza  Le regole vengono applicate in ordine.

30 PROLOG e domande del tipo “si-no” :-G(lia, gio) 1 2 :-P(lia, gio) :-M(lia, gio) Fail 3 { } :- G(lia, gio)  SI :- G(lia, pete)  NO Assunzione di mondo chiuso I numeri corrispondono all’ordine di visita

31 PROLOG con domande del tipo “trova” :- P(X, mark) chi è il padre di Mark? X=gio :- P(X, mark) 1 { } con {X/gio} :- P(gio, X) chi sono i figli di Gio? X=mark; X=luc. P(gio, X) 12 { } con {X/mark} { } con {X/luc}

32 Altre domande...  Chi è figlio di chi? :- G(X, Y).  Quali sono i fratelli (coloro che hanno lo stesso genitore)? :- G(X, Y), G(X, Z).  Chi sono i nipoti di Lia? :- G(lia, X), G(X, Y).

33 Incompletezza 1. G(X, Y) :- P(X, Y) 2. G(X, Y) :- M(X, Y) 4. A(X, Y) :- A(Z, Y), G(X, Z) 3. A(X, Y) :- G(X, Y) 5. P(gio, mark) 6. P(gio, luc) 7. M(lia, gio) Nota. Abbiamo scambiato la regola 3 con la 4 e i due letterali nel corpo della 4 tra di loro Supponiamo di avere un programma leggermente diverso: Goal: :- A(lia, mark) :- A(Z 1, mark), G(lia, Z 1 ) :- A(Z 2, mark), G(Z 1, Z 2 ) :- A(Z 3, mark), G(Z 2, Z 3 )... Si finisce in un cammino infinito e non si trova mai la soluzione

34 Negazione come fallimento finito  Orfano(X) :- not Padre(Y, X)  Se :- Padre(Y, X) fallisce (non si trovano padri), la risposta è SI  Non coincide con la negazione logica:  KB – Padre(joe, mark) piuttosto che KB –  Padre(joe, mark)  È una forma di ragionamento non monotòno e fa uso della assunzione di mondo chiuso.

35 Semplice aritmetica  Operatori infissi predefiniti: +, -, *, /, //, **...  Vincoli di tipo numerico: A is 2*3  Operatori di confronto: >, =, <=, =:=, =\= forzano la valutazione, variabili ok purché instanziate Nota: 2+1 = 1+2 unificazione fail; 2+1 =:= 1+2 ok  Esempio: max(X, Y, Y) :- X <= Y. max(X, Y, X) :- X>Y.

36 Per provare …  SWI Prolog http://www.swi-prolog.org/

37 Sistemi a regole in avanti  Modus ponens generalizzato p 1 ’ p 2 ’ … p n ’ (p 1  p 2  …  p n  q) (q)  dove per ogni i,  =MGU(p i ’, p i )  Esempio: King(John) Greedy(y) King(x)  Greedy(y)  Evil(x) Evil(John) con  ={x/John}

38 Esempio di concatenazione in avanti È un crimine per un Americano vendere armi a una nazione ostile. Il paese Nono, un nemico dell’America, ha dei missili, e tutti i missili gli sono stati venduti dal colonnello West, un Americano. Dimostrare: che West è un criminale

39 Formalizzazione 1. Americano(x)  Arma(y)  Vende(x, y, z)  Ostile(z)  Criminale(x) 2.  x Possiede(Nono,x)  Missile(x) Possiede(Nono, M 1 )  Missile(M 1 ) 3. Missile(x)  Possiede(Nono,x)  Vende(West,x,Nono) 4. Missile(x)  Arma(x) 5. Nemico(x, America)  Ostile(x) 6. Americano(West) 7. Nemico(Nono, America)

40 Concatenazione in avanti  Un semplice processo inferenziale applica ripetutamente il Modus Ponens generalizzato per ottenere nuovi fatti fino a che  si dimostra quello che si desidera  nessun fatto nuovo può essere aggiunto  Una strategia di ricerca sistematica in ampiezza

41 Concatenazione in avanti: esempio I iterazione: 2. Possiede(Nono, M 1 )  Missile(M 1 ) 3. Missile(x)  Possiede(Nono,x)  Vende(West,x,Nono)  La regola 3 è soddisfatta con {x/M 1 } e viene aggiunto  Vende(West, M 1, Nono) 4. Missile(x)  Arma(x)  La regola 4 è soddisfatta con {x/M 1 } e viene aggiunto  Arma(M 1 ) 5. Nemico(x, America)  Ostile(x) 6. Nemico(Nono, America)  La regola 5 è soddisfatta con {x/Nono} e viene aggiunto  Ostile(Nono)

42 Concatenazione in avanti: esempio II iterazione 1. Americano(x)  Arma(y)  Vende(x, y, z)  Ostile(z)  Criminale(x)  La regola 1 è soddisfatta con {x/West, y/M 1, z/Nono)}  Criminale(West) viene aggiunto.

43 La dimostrazione in avanti

44 Analisi di FOL-FC-Ask  Corretta perché il MP generalizzato è corretto  Completa per KB di clausole definite  Completa e convergente per calcolo proposizionale e per KB di tipo DATALOG (senza funzioni) perché la chiusura deduttiva è un insieme finito  Completa anche con funzioni ma il processo potrebbe non terminare (semidecidibile)  Il metodo descritto è sistematico ma non troppo efficiente

45 FC efficiente  Ordinamento dei congiunti: conviene soddisfare prima i congiunti con meno istanze nella KB (come per i CSP) Missile(x)  Possiede(Nono,x)  Vende(West,x,Nono) Tipi di missile << cose possedute

46 FC incrementale  ogni nuovo fatto inferito al tempo t deve essere dedotto usando almeno un fatto dedotto al tempo t-1  si possono guardare solo le regole che hanno come premesse fatti aggiunti nell’ultima iterazione  indicizzare le regole sui fatti  altre ottimizzazioni presenti nell’algoritmo RETE …

47 FC efficiente: ridurre deduzioni irrilevanti  Un modo per evitare di ricavare fatti irrilevanti  Lavorando all’indietro dal goal, non c’è questo problema  Si fa una specie di pre-processing per individuare le regole che servono, procedendo all’indietro dal goal

48 FC efficiente: l’ idea del magic set  Goal: Criminal(West) KB  KB  {Magic(West)}  Riscrittura regole:  Magic(x)  Americano(x)  Arma(y)  Vende(x, y, z)  Ostile(z)  Criminale(x)  Procedendo poi in avanti saranno utilizzate solo le “regole magiche” in modo mirato.  Combina BC e FC

49 Sistemi a regole in generale  Fin qui: un caso particolare di inferenza logica  Storicamente uno dei meccanismi di rappresentazione della conoscenza e ragionamento più utilizzati nella costruzione di sistemi esperti  OPS5, CLIPS sono sistemi a regole "in avanti"

50 Sistemi a regole/di produzione  Uno dei primi paradigmi di rappresentazione della conoscenza (di sapore “procedurale”) in I.A.  modello del processo di risoluzione dei problemi da parte dell'uomo.  è naturale esprimere competenze sotto forma di regole del tipo “se... allora...”.  i sistemi esperti di prima generazione sono quasi tutti sistemi a regole.

51 Modello di computazione  Programmazione (o regime di controllo) guidata da pattern: quello che viene eseguito al passo successivo è determinato da una attività di pattern matching.  Modello di computazione del tutto generale (stessa potenza della macchina di Turing).

52 Pattern matching e unificazione  Pattern matching: le variabili sono solo nei pattern ma non nelle componenti dello stato  Unificazione: le variabili possono essere in entrambe le espressioni da unificare  lo abbiamo visto con i linguaggi logici  Pattern matching è un caso particolare di unificazione

53 Pattern matching  Se ha successo viene calcolata una “lista di legami per le variabili”  Esempio: p=(P ?x 0 ?x) s=(P 3 0 3) Risultato: {(?x 3)} p=(P ?x ?y ?x) s=(P 3 0 4) Risultato: fail Si può usare lo stesso algoritmo usato per unificazione

54 Definizione di sistema di produzione (sistema a regole con concatenazione “in avanti”) Un sistema con 4 componenti: 1. un insieme di regole di produzione (o regole, o produzioni) nella forma: condizione  azione| antecedente  conseguente dove:  l'antecedente è uno schema (o pattern) che esprime una condizione che determina l'applicabilità della regola;  il conseguente determina il passo di risoluzione del problema da effettuare: l'aggiunta di un nuovo fatto allo stato corrente, una modifica dello stato, … una qualunque azione

55 Definizione (cont.) 2. Una memoria di lavoro (WM - Working Memory) che contiene una descrizione dello stato corrente della computazione. Nei sistemi “in avanti” la WM contiene all'inizio una descrizione dello stato iniziale.

56 Definizione (cont.) 3. Un interprete che esegue un ciclo "riconosci-agisci". Ad ogni passo:  individua l’insieme delle regole applicabili (mediante pattern matching); questo è l'insieme dei conflitti;  ne sceglie una, mediante una strategia di risoluzione dei conflitti;  attiva la regola (fire), cioè esegue la parte azione (tipicamente istanziata). Questo cambia il contenuto della WM e il ciclo si ripete fino ad una condizione di terminazione (successo) o finché non ci sono più regole applicabili (fallimento).

57 Definizione (cont.) 4. Strategia di risoluzione dei conflitti per decidere quale regola applicare tra quelle applicabili:  “prendi la prima regola applicabile”  euristiche di utilità generale (le vediamo dopo)  euristica sofisticata dipendente dal dominio

58 Schema di funzionamento WM C 1  A 1 C 2  A 2 … C n  A n

59 Un esempio  Un semplice sistema di produzioni per ordinare una stringa fatta di "a", "b" e "c".  Insieme di regole: 1. ba  ab 2. ca  ac 3. cb  bc  Memoria di lavoro: la stringa in una fase intermedia del processo di ordinamento (all’inizio la stringa da ordinare).  Strategia: la prima regola applicabile

60 Esempio (cont.) CicloMemoria di lavoro Insieme dei conflitti Regola selezionata 01234560123456 cbaca cabca acbca acbac acabc aacbc aabcc 1, 2, 3 2 2, 3 1, 3 2 3 0 1 2 1 2 3 ALT

61 Tanto per fissare le idee …  Definiamo un linguaggio a regole minimale, à la CLIPS  I fatti e la memoria di lavoro (WM)  Le regole  L’interprete (il motore di inferenza)  L’agenda  Le strategie di risoluzione dei conflitti

62 I fatti e la memoria di lavoro Sintassi: ( *) Esempi: (lista-spesa latte pane biscotti) (altezza 1,80) (luce accesa) WM: lista di fatti (senza variabili)

63 Le regole (defrule *  *)  l’antecedente è una lista di condizioni, da considerare in congiunzione tra di loro. Tipicamente hanno la stessa struttura dei fatti ma contengono variabili (sono pattern con ?x).  il conseguente è una lista di azioni che possono contenere variabili

64 Le azioni  Aggiunta di un fatto alla WM: (assert )  Rimozione di un fatto: (retract )  Per stampare; (print )  Per terminare: (Return)  Una qualunque altra azione prevista...

65 Esempi di regole (person ) (defrule marry-money (persona ?nome_a f t ?status_a ottima) (persona ?nome_o m t ?status_o scarsa) ( ?status_o 2)  (retract (persona ?nome_a f t ?status_a ottima)) (retract (persona ?nome_o m t ?status_o scarsa)) (assert (persona ?nome_a f nil ?status_a ottima)) (assert (persona ?nome_o m nil ?status_o scarsa)) (print ?nome_a “ e ” ?nome_o “si sposano, … per soldi”) WM: (persona mary f t 1 ottima) (persona john m t 3 scarsa)

66 L’interprete L’interprete esegue un ciclo:  Determina regole applicabili (costruisce agenda)  Mediante pattern-matching si controlla quali condizioni sono soddisfatte da fatti nella WM  Le attivazioni vengono aggiunte all’agenda: nome della regola, fatti usati, legami  Ordina l’agenda in base ad una strategia di risoluzione dei conflitti  Esegue la prima regola dell’agenda  Valuta la lista di azioni nella parte destra, istanziate dalla lista dei legami.  Se l’azione è (return) termina.

67 Il gioco dell’8 a regole 123 456 78 123 45 678

68 Il gioco dell’8: rappresentazione immediata Rappresentazione: (B 1 2 3 4 0 5 6 7 8) Le regole per  : (B ?x1 ?x2 ?x3 0 ?x4 ?x5 ?x6 ?x7 ?x8)  (B 0 ?x2 ?x3 ?x1 ?x4 ?x5 ?x6 ?x7 ?x8) (B ?x1 ?x2 ?x3 ?x4 0 ?x5 ?x6 ?x7 ?x8)  (B ?x1 0 ?x3 ?x4 ?x2 ?x5 ?x6 ?x7 ?x8) (B ?x1 ?x2 ?x3 ?x4 ?x5 0 ?x6 ?x7 ?x8)  (B ?x1 ?x2 0 ?x4 ?x5 ?x3 ?x6 ?x7 ?x8) (B ?x1 ?x2 ?x3 ?x4 ?x5 ?x6 0 ?x7 ?x8)  (B ?x1 ?x2 ?x3 0 ?x5 ?x6 ?x4 ?x7 ?x8) (B ?x1 ?x2 ?x3 ?x4 ?x5 ?x6 ?x7 0 ?x8)  (B ?x1 ?x2 ?x3 ?x4 0 ?x6 ?x7 ?x5 ?x8) (B ?x1 ?x2 ?x3 ?x4 ?x5 ?x6 ?x7 ?x8 0)  (B ?x1 ?x2 ?x3 ?x4 ?x5 0 ?x7 ?x8 ?x6) … + 6 regole per  + 6 regole per  + 6 regole per  = 24 123 405 678

69 Il gioco dell’8: un po’ meno regole Rappresentazione: (P cifra riga colonna) Regole per  : (P 0 2 ?y) (P ?c 1 ?y)  Assert (P 0 1 ?y), Assert (P ?c 2 ?y), Retract (P 0 2 ?y), Retract (P ?c 1 ?y) (P 0 3 ?y) (P ?c 2 ?y)  Assert (P 0 2 ?y), Assert (P ?c 3 ?y), Retract (P 0 3 ?y), Retract (P ?c 2 ?y) Totale: 8 regole

70 Il gioco dell’8: ancora meno regole Rappresentazione: (P cifra riga colonna) Regola per  : (P 0 ?x ?y) (?x  1) (P ?c (?x -1) ?y)  Assert (P 0 (?x -1) ?y), Assert (P ?c ?x ?y), Retract (P 0 ?x ?y), Retract (P ?c (?x -1) ?y) Totale: 4 regole

71 Il gioco dell’8: conclusioni  La rappresentazione scelta può fare la differenza nel numero delle regole necessarie  Più espressivo il linguaggio dei pattern (e delle regole) più compatta è la rappresentazione e più complicato è il pattern- matching.  Istanza di un problema più generale: più espressivo il linguaggio di rappresentazione, più compatta la rappresentazione e più complesso il meccanismo inferenziale.

72 Strategie di risoluzione dei conflitti 1. Basate sulle regole  la prima regola applicabile  la più specifica o con condizioni più stringenti. Es. c1  c2  c3  c1  c2; (P 0 1 2)  (P 0 ?x 2)  non di nuovo la stessa sotto le stesse condizioni (rifrazione)  la più trascurata: usata meno di recente  non di nuovo lo stesso effetto  la più recentemente attivata (focus)  la più plausibile (pattern matching approssimato)

73 Strategie di risoluzione dei conflitti 2 Basate sugli oggetti: su una graduatoria di importanza degli oggetti che compaiono nei pattern. Esempio: (Stanza in-fiamme)(Bambino in-pericolo)  (Salva-bambino) (Esci) (Stanza in-fiamme)(Luce accesa)  (Spengi-luce)(Esci) Bambino  Luce

74 Strategie di risoluzione dei conflitti 3. Basate sull’effetto delle regole: si applica una funzione di valutazione agli stati risultanti e si sceglie il migliore.

75 Strategie di risoluzione dei conflitti 4. Meta-regole: la strategia di controllo è definita tramite altre regole, che essendo regole che trattano di regole vengono dette meta-regole. Esempio: Sotto le condizione A e B le regole che [non] menzionano X {del tutto | nell’antecedente | nel conseguente} sono {del tutto inutili | probabilmente utili | forse utili | molto utili} Meta-regole in SOAR e PRODIGY.

76 Vantaggi del paradigma a regole 1.È un modello plausibile del ragionamento umano e comunque … 2.C’è una certa naturalezza nel modellare, sotto forma di regole, il tipo di competenza di natura “euristica” dell’esperto umano 3.Implementazione naturale del paradigma di risoluzione dei problemi come ricerca

77 Vantaggi del paradigma a regole 4.Separazione della conoscenza (lo stato e le regole) dal controllo (l’interprete o “motore inferenziale”  possibilità di cambiare una delle due parti indipendentemente 5.Modularità della base di regole: poca interazione tra le regole (solo tramite la WM)  supporto per lo sviluppo incrementale 6.Possibilità di traccia e giustificazione 7.Il modello di computazione è generale, può essere adattato a linguaggi diversi (logici o meno).


Scaricare ppt "Agenti logici: sistemi a regole Regole all'indietro e programmazione logica Regole in avanti e basi di dati deduttive Maria Simi a.a. 2007-2008."

Presentazioni simili


Annunci Google