Sistemi di produzione/a regole Maria Simi a.a. 2006/2007.

Slides:



Advertisements
Presentazioni simili
…da von Neumann al computer quantistico architettura dellelaboratore.
Advertisements

U.V.P. la base del Marketing
Intelligenza artificiale
Sviluppo di programmi strutturati
Costruzione delle tabelle di parsing LR canoniche
Linguaggi di programmazione
Capitolo 8 Sistemi lineari.
MATLAB. Scopo della lezione Programmare in Matlab Funzioni Cicli Operatori relazionali Esercizi vari.
Algoritmi e Programmazione
Informatica Generale Marzia Buscemi
Problemi di soddisfacimento di vincoli Maria Simi a.a. 2005/2006.
La Rappresentazione della Conoscenza
Hash Tables Indirizzamento diretto Tabelle Hash Risoluzioni di collisioni Indirizzamento aperto.
Alberi binari di ricerca
1 Istruzioni, algoritmi, linguaggi. 2 Algoritmo per il calcolo delle radici reali di unequazione di 2 o grado Data lequazione ax 2 +bx+c=0, quali sono.
Gestione dei dati e della conoscenza (agenti intelligenti) M.T. PAZIENZA a.a
Sistemi basati su conoscenza (agenti intelligenti) Prof. M.T. PAZIENZA a.a
Intelligenza Artificiale 1 Gestione della conoscenza lezione 8
Sistemi basati su conoscenza Conoscenza e ragionamento Prof. M.T. PAZIENZA a.a
Computational Learning Theory and PAC learning
Informatica di base A.A. 2003/2004 Algoritmi e programmi
1 Esempi di consistenza sui limiti Non consistente sui limiti, considera Z=2, poi X-3Y=10 Ma il dominio qui sotto e consistente sui limiti: Confrontare.
1 Programmazione ad oggetti in Java E.Mumolo, DEEI
Modelli e Algoritmi per la Logistica Branch & Bound Prof. Carlo Mannino Prof. Antonio Sassano Dipartimento di Informatica e Sistemistica Università di.
DAL PROBLEMA ALL'ALGORITMO Problemi e Programmi Paolo Amico
scuola dell'infanzia: f.lli grimm
Procedure e funzioni nei linguaggi di alto livello Lab Programmazione - turno /2006.
“Ricordare” da un punto di vista psicologico
Intelligenza Artificiale
Programmazione logica
Fondamenti di Informatica Algoritmi
Intelligenza Artificiale
INSIEMI NUMERABILI L’analisi matematica introduce il concetto di insieme numerabile come insieme i cui elementi possono essere “contati” ossia che possiede.
LINGUAGGI DI PROGRAMMAZIONE
AN FI Un denominatoe comune Lo stile funzionale Concetti fondamentali.
Sistemi a Regole Ettore Colombo 13 Dicembre 2006 Ingegneria della Conoscenza e Sistemi Esperti.
Jean Piaget.
INFORMATICA MATTEO CRISTANI.
Ho bisogno d’incontrarti nel mio cuore, di trovare te di stare insieme a te
Casa, Famiglia e Routine Giornaliera
Algoritmi e Strutture Dati
Algoritmi e Strutture Dati
POTENZE cosa sono proprietà curiosità visualizzazione.
Chi trova un amico.
Corso JAVA Lezione n° 11 Istituto Statale di Istruzione Superiore “F. Enriques”
Istruzione, Tirocinio e Lavoro
RE - START SPUNTI PER UNA RIPARTENZA TRAVOLGENTE.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Algoritmi e basi del C Marco D. Santambrogio – Ver. aggiornata al 13 Marzo 2014.
IO E LA MATEMATICA PROCEDURALE
-doti necessarie -fattori di rischio Giancarlo Abate Daga
Intelligenza Artificiale 2 Metodologie di ragionamento Prof. M.T. PAZIENZA a.a
Implementazione di dizionari Problema del dizionario dinamico Scegliere una struttura dati in cui memorizzare dei record con un campo key e alcuni altri.
1 Tipi di Dato §descrittori, tipi, controllo e inferenza dei tipi §specifica (semantica) e implementazione di tipi di dato l implementazioni “sequenziali”
Intelligenza Artificiale Metodologie di ragionamento Prof. M.T. PAZIENZA a.a
Problemi di soddisfacimento di vincoli Maria Simi a.a. 2008/2009.
Sistemi a regole [di produzione]
Sistemi basati su conoscenza (agenti intelligenti) Prof. M.T. PAZIENZA a.a
Intelligenza Artificiale Metodologie di ragionamento Prof. M.T. PAZIENZA a.a
Intelligenza Artificiale Risoluzione di Problemi
AOT Lab Dipartimento di Ingegneria dell’Informazione Università degli Studi di Parma Intelligenza Artificiale Rappresentazione della Conoscenza e Ragionamento.
1 Linguaggi: guardando la semantica §esistono un insieme di concetti semantici e di strutture di implementazione in termini dei quali si descrivono in.
Agenti logici: sistemi a regole Regole all'indietro e programmazione logica Regole in avanti e basi di dati deduttive Maria Simi a.a
INTELLIGENZA ARTIFICIALE
Informatica e Informatica di Base
Intervista al genio della porta accanto. ? ? ? ? ? ?
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Algoritmi e basi del C Marco D. Santambrogio – Ver. aggiornata al 24 Agosto 2015.
Algoritmo per il calcolo del maggiore tra tre numeri qualsiasi Francesco PUCILLO matr
Algoritmi e Strutture Dati Luciano Gualà
Guadagnare Online: Come Iniziare a Guadagnare Da Casa By LavoroDeiSogni.com.
Transcript della presentazione:

Sistemi di produzione/a regole Maria Simi a.a. 2006/2007

Sistemi di produzione/a regole  Uno dei primi paradigmi di rappresentazione della conoscenza (di sapore “procedurale”) in I.A.  un modello di computazione aderente alla visione della risoluzione di problemi come ricerca  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.

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).  Post (1943): sistemi di calcolo basati su regole per la riscrittura di stringhe  Newell & Simon (General Problem Solver - anni 60) lo propongono in IA come modello di computazione cognitivamente plausibile

Sistemi a regole in AIMA  Un caso particolare di inferenza logica  Qui parliamo dei sistemi a regole in senso più ampio.  Uno dei meccanismi di rappresentazione della conoscenza e ragionamento più utilizzati nella costruzione di sistemi esperti  OPS5, CLIPS sono sistemi a regole "in avanti"

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

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.

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).

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

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

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

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

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

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)

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

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...

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)

Esempi di regole  Relazione (defrule r1 (serbatoio vuoto) => (assert (auto ferma)))  Raccomandazioni o direttive (defrule r2 (auto ferma) (serbatoio vuoto) => (compra benzina))  Strategie o euristiche: (defrule r3 (auto ferma) => (controlla benzina))

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.

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

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

Pattern matching Function match(p, s,  ) returns a substitution  or fail if  =fail then return  else if p=s then return  else if variable?(p) then return match_var(p, s,  ) else if list?(p) and list?(s) return match (first(p), first(s), match(rest(p), rest(s),  )) else return fail Function match_var(x, y,  ) if (x v)   then return match(v, y,  ) else add(x, v,  ) 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

Il gioco dell’8 a regole Un secondo esempio per illustrare l’espressività del pattern a confronto con la complessità del matching Diverse rappresentazioni dello stato a seconda del linguaggio dei pattern

Il gioco dell’8: rappresentazione immediata Rappresentazione: (B ) 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  =

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

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

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.

Complessità del pattern matching Il problema è quello di fare un pattern-matching molti a molti tra: - una serie di r regole (in OR) - una serie di n antecedenti delle regole (in AND) - una serie di w componenti dello stato (in OR) (OR... (AND... (OR... ))) sulle regole sulle precondizioni sulle comp. di stato Il tutto ripetuto per c cicli: r  n  w  c operazioni di pattern matching!

Ottimizzazioni: rete di discriminazione Assunzione 1: regole diverse possono condividere molte delle precondizioni. Esempio: R1: (Mammifero ?x) (Felino ?x) (Carnivoro ?x) (A-Macchie ?x)  (assert (Leopardo ?x)) R2: (Mammifero ?x) (Felino ?x) (Carnivoro ?x) (A-Strisce ?x)  (assert (Tigre ?x)) Idea : codificare gli antecedenti delle regole sotto forma di rete di discriminazione

Esempio di rete di discriminazione Mammifero Carnivoro Felino Erbivoro Muggisce Nitrisce A macchie A strisce Miagola R1 R2

Ottimizzazioni: calcolo incrementale Assunzione 2: l'applicazione di una regola influenza solo pochi elementi dello stato e quindi l'insieme delle regole applicabili, tipicamente, varia di poco da un ciclo all'altro Idea: restringersi alle regole la cui applicabilità è influenzata dall’ultima modifica allo stato.

Algoritmo RETE [Forgy 1982] Esempio: WM = {A(1), A(2), B(2), B(3), B(4), C(5)} A(x) B(y) D(x)  add E(x) A(x) B(x) C(y)  add D(x) A(x) B(x) E(z)  delete A(x) AB D E C A=B A=D add E add D delete A A(1),A(2) B(2),B(3),B(4) C(5) A(2) B(2) D(2)

Tipi di matching  Matching che richiede inferenze: necessario quando le condizioni non possono essere unificate direttamente con elementi della WM, ma con elementi deducibili dalla WM (deduzione guidata da pattern-matching)  Matching approssimato: ad esempio nel riconoscimento del parlato si opera un match tra  forme d’onda reali (con rumore, diversità dovute al parlatore …)  forme d’onda ideali a cui è associato un fonema  Matching approssimato anche in ELIZA …

Eliza (Weizenbaum 1966 – CACM)  Un programma per la simulazione di uno psicoterapista - DOCTOR.  ELIZA è un’ “illusione di intelligenza”  ELIZA usa un meccanismo di matching basato su parole chiave e cerca in base a queste di “indovinare” la domanda più appropriata.

Esempio di dialogo P. Gli uomini sono tutti uguali. E. In che senso? P. Ci tormentano sempre per una cosa o l’altra. E. Puoi essere più specifica? P. Il mio ragazzo mi ha fatto venire qua. E. Il tuo ragazzo ti ha fatto venire qua. P. Dice che il più della volte sono depressa. E. Mi dispiace sentire che sei depressa. P. È vero, sono infelice. E. Credi che venire qui ti aiuti ad essere meno infelice? P. Di sicuro ho bisogno di aiuto. E. Che cosa significherebbe per te avere qualche aiuto? P. Forse potrei imparare ad andare d’accordo con la mia famiglia. E. Parlami ancora della tua famiglia.

Il meccanismo svelato (I need ?x)  (Why do you want ?x) (Suppose you got ?x) (What would it mean to you if you got ?x) (?x {family} ?y)  (Tell me more about your family) (?x no ?y)  (You are being a bit negative) ( )  (Tell me more about that) (I do not understand you fully) (Please continue) (Very interesting)

Dialogo tra Eliza e Parry Parry: un programma che esibisce un comportamento paranoico P. Non capisco i tuoi motivi. E. Perchè non capisci i miei motivi? P. Non dovrei? E. Perchè dici questo adesso? P. È solo che è cosí. (That’s just the way it is) E. Supponi che non sia cosí (Suppose that’s just the way it were not) P. Allora? E. Non sono sicura di capirti del tutto. P. Insisti troppo sulla stessa domanda. E. Che cosa ti suggerisce questa somiglianza? P. Non ti capisco (I do not get you) E. Do you wish that you did get I?

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)

Strategie di risoluzione dei conflitti 2 Basate sugli oggetti: su una graduatoria di importanza degli oggetti che compaiono nei pattern. Esempio in ELIZA: “I know everybody laughs at me” (everybody > I) Altro esempio: (Stanza in-fiamme)(Bambino in-pericolo)  (Salva-bambino) (Esci) (Stanza in-fiamme)(Luce accesa)  (Spengi-luce)(Esci) Bambino  Luce

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.

Strategie di risoluzione dei conflitti 3. 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.

Direzione della ricerca  In avanti, guidata dai dati (sistemi forward, OPS5, CLIPS …)  All’indietro, guidata dal goal (es. PROLOG)  Mista: un po’ avanti e un po’ indietro (bidirezionale; analisi mezzi-fini come in GPS)

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

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).