Sistemi a regole [di produzione]

Slides:



Advertisements
Presentazioni simili
…da von Neumann al computer quantistico
Advertisements

…da von Neumann al computer quantistico architettura dellelaboratore.
Intelligenza artificiale
Universita di Camerino
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
Intelligenza Artificiale
Metodologie di Programmazione = decomposizione basata su astrazioni
Problemi di soddisfacimento di vincoli Maria Simi a.a. 2005/2006.
La Rappresentazione della Conoscenza
1 Il punto di vista Un sistema è una parte del mondo che una persona o un gruppo di persone, durante un certo intervallo di tempo, sceglie di considerare.
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
Maria Teresa PAZIENZA a.a
Intelligenza Artificiale 1 Gestione della conoscenza lezione 8
Sistemi basati su conoscenza Conoscenza e ragionamento Prof. M.T. PAZIENZA a.a
Corso di Laurea in Biotecnologie Informatica (Programmazione)
Corso di Informatica (Programmazione)
Introduzione alla programmazione ll
Corso di Informatica Applicata - Lezione 3 - © 2005 Saverio De Vito Corso di Informatica Applicata Lezione 3 Università degli studi di Cassino Corso di.
DAL PROBLEMA ALL'ALGORITMO Problemi e Programmi Paolo Amico
Semantica di Tarski.
Semantica per formule di un linguaggio proposizionale p.9 della dispensa.
Intelligenza Artificiale
Espressioni condizionali
Intelligenza Artificiale
Obiettivi Conoscere strumento Analisi di un progetto
A.Natali DL Maggio1999 Oggetti Concetti fondamentali.
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
Sistemi a Regole Ettore Colombo 13 Dicembre 2006 Ingegneria della Conoscenza e Sistemi Esperti.
1 Astrazioni sui dati : Ragionare sui Tipi di Dato Astratti dispense prof. G. Levi.
Implementazione di un linguaggio ad alto livello (con riferimento a Java)
Pierdaniele Giaretta Linguaggio della logica predicativa
Pierdaniele Giaretta Primi elementi di logica
ECDL Patente europea del computer
Pierdaniele Giaretta Linguaggio della logica predicativa
Intelligenza Artificiale 2 Metodologie di ragionamento Prof. M.T. PAZIENZA a.a
Sistemi di produzione/a regole Maria Simi a.a. 2006/2007.
Progettazione Logica Il prodotto della progettazione logica è uno schema logico che rappresenta le informazioni contenute nello schema E-R in modo corretto.
Introduzione a Javascript
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
Cosa sono i Fogli Elettronici? Software applicativo nato dall’esigenza di –organizzare insiemi di dati tramite tabelle, schemi, grafici, ecc. –effettuare.
Problemi di soddisfacimento di vincoli Maria Simi a.a. 2008/2009.
1 Interpretazione astratta: un approccio sistematico all’analisi statica.
L’esecuzione dei programmi
public class volume { public static void main (String[] args) { final double bott_vol =2.0; final double latt_vol = 0.355; int bott_num = 4; int latt_num.
Sistemi basati su conoscenza (agenti intelligenti) Prof. M.T. PAZIENZA a.a
Intelligenza Artificiale Metodologie di ragionamento Prof. M.T. PAZIENZA a.a
AOT Lab Dipartimento di Ingegneria dell’Informazione Università degli Studi di Parma Intelligenza Artificiale Rappresentazione della Conoscenza e Ragionamento.
1 Macchine astratte, linguaggi, interpretazione, compilazione.
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
Automi temporizzati.
FI - Algoritmi e Programmazione 1 Variabili Consentono di aumentare notevolmente la potenza espressiva. Una variabile è caratterizzata da:  Un nome 
INTELLIGENZA ARTIFICIALE
Informatica e Informatica di Base
Scratch.
Strutture di controllo
…da von Neumann al computer quantistico L’archittettura dell’elaboratore.
Algoritmo per il calcolo del maggiore tra tre numeri qualsiasi Francesco PUCILLO matr
Parsing ricorsivo discendente Il parsing ricorsivo discendente (recursive descent parsing) è un metodo di tipo top-down che può essere facilmente codificato.
Logica Lezione 11, Annuncio Non si terrà la lezione di Lunedì 16 Marzo.
INSIEMI E LOGICA PARTE QUARTA.
Transcript della presentazione:

Sistemi a regole [di produzione] Maria Simi a.a. 2008/2009

Sistemi a regole Fin qui: sistemi a regole come 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"

Sistemi a regole in avanti/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.

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). Per Newell & Simon le regole sono la conoscenza di background o memoria a lungo termine; la conoscenza temporanea e in evoluzione sta in una memoria di lavoro/ o memoria a breve termine.

Pattern matching e unificazione Unificazione: le variabili possono essere in entrambe le espressioni da unificare lo abbiamo visto con i linguaggi logici Pattern matching: si tratta di identificare una sostituzione che rende un pattern e un eunciato identici. le variabili sono solo nei pattern, non negli enunciati (componenti dello stato) è 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

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.) 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.) 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 C1  A1 C2  A2 … Cn  An

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.) Ciclo Memoria di lavoro Insieme dei conflitti Regola selezionata 1 2 3 4 5 6 cbaca cabca acbca acbac acabc aacbc aabcc 1, 2, 3 2, 3 1, 3 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: (<atom> <atomic-object>*) Esempi: (lista-spesa latte pane biscotti) (altezza 1,80) (luce accesa) WM: lista di fatti (senza variabili)

Le regole (defrule <rule-name> <condition>*  <action>*) 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 <fact>) Rimozione di un fatto: (retract <fact>) Per stampare; (print <string>) Per terminare: (return) Una qualunque altra azione prevista ...

Esempio: agenzia matrimoniale (persona nome sesso libero status avvenenza) nome: nome della persona sesso: M, F libero: T, NIL (vero, falso) status: 1, 2, 3, 4 a seconda di quanti soldi ha avvenenza: scarsa media buona ottima (person <nome> <sesso> <libero> <status> <avvenenza>) <libero> T o F

Esempi di regole: agenzia matrimoniale (defrule marry-money (persona ?nome_a F T ?status_a ottima) (persona ?nome_o M T ?status_o scarsa) (< ?status_a 2) (> ?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)

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.

Il gioco dell’8 a regole 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8

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)  (assert (B 0 ?x2 ?x3 ?x1 ?x4 ?x5 ?x6 ?x7 ?x8)) (retract (B ?x1 ?x2 ?x3 0 ?x4 ?x5 ?x6 ?x7 ?x8)) (B ?x1 ?x2 ?x3 ?x4 0 ?x5 ?x6 ?x7 ?x8)  (assert (B ?x1 0 ?x3 ?x4 ?x2 ?x5 ?x6 ?x7 ?x8)) (retract (B ?x1 ?x2 ?x3 ?x4 0 ?x5 ?x6 ?x7 ?x8)) (B ?x1 ?x2 ?x3 ?x4 ?x5 0 ?x6 ?x7 ?x8)  (assert (B ?x1 ?x2 0 ?x4 ?x5 ?x3 ?x6 ?x7 ?x8)) (retract (B ?x1 ?x2 ?x3 ?x4 ?x5 0 ?x6 ?x7 ?x8)) (B ?x1 ?x2 ?x3 ?x4 ?x5 ?x6 0 ?x7 ?x8)  (assert (B ?x1 ?x2 ?x3 0 ?x5 ?x6 ?x4 ?x7 ?x8))… (B ?x1 ?x2 ?x3 ?x4 ?x5 ?x6 ?x7 0 ?x8)  (assert (B ?x1 ?x2 ?x3 ?x4 0 ?x6 ?x7 ?x5 ?x8))… (B ?x1 ?x2 ?x3 ?x4 ?x5 ?x6 ?x7 ?x8 0)  (assert (B ?x1 ?x2 ?x3 ?x4 ?x5 0 ?x7 ?x8 ?x6))… … + 6 regole per  + 6 regole per  + 6 regole per  = 24 1 2 3 4 5 6 7 8

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: considerazioni 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 del problema più generale: più espressivo il linguaggio di rappresentazione, più compatta la rappresentazione e più complesso il meccanismo inferenziale.

Strategie di risoluzione dei conflitti 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 Basate sugli oggetti: su una graduatoria di importanza degli oggetti che compaiono nei pattern. Esempio 1 (da Eliza): “I know everybody laughs at me” everybody > I Esempio 2: (Stanza in-fiamme)(Bambino in-pericolo)  (Salva-bambino) (Esci) (Stanza in-fiamme)(Luce accesa)  (Spengi-luce)(Esci) Bambino  Luce

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

Strategie di risoluzione dei conflitti 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. La strategia di controllo può essere molto articolata e difficile da “cablare” nel sistema; lo scopo delle meta-regole è di decidere quale regola applicare basandosi sulla forma delle regole.

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 A macchie R1 Felino A strisce R2 Carnivoro Miagola Mammifero Muggisce Erbivoro Nitrisce

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) D A=D add E A B A(2) B(2) C A=B add D D(2) I nodi rotondi rappresentano “recuperi” dalla memoria degli elementi identificati dal pattern; i nodi quadrati rappresentano “unificazioni”; i nodi rettangolari le azioni. Vantaggi: - elimina duplicazione tra le regole, fattorizzando le condizioni comuni e precalcolando i match; - elimina duplicazione tra i cicli: dopo ogni iterazione la rete viene riaggiustata ma spesso le modifiche sono locali (es. l'aggiunta di D(2); non così la cancellazione di A(2)). C(5) A(1),A(2) B(2),B(3),B(4) E delete A

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