Sistemi a Regole Ettore Colombo 13 Dicembre 2006 Ingegneria della Conoscenza e Sistemi Esperti
Esercitazioni a.a. 2006/2007 Mercoledì 13 dicembre 2006 dalle alle in aula U2-02 KBS e Sistemi a Regole JESS Esercizi da fare in lab Giovedì 14 dicembre 2006 dalle alle in U7-Lab 721 Esercitazioni Mercoledì 10 gennaio 2007 dalle alle in alula U2-02 Esempio Mezzi di Trasporto Collegamento JESS-Java e uso delle user-defined function Esercizi da fare in lab Giovedì 11 gennaio 2007 dalle alle in U7-Lab 721 Esercitazioni Mercoledì 17 gennaio 2007 dalle alle in U7-Lab 721 Esercitazioni Giovedì 18 gennaio 2007 dalle alle in U7-Lab 721 Esercitazioni
KBS e Sistemi a Regole Knowledge-based System (KBS): Sistemi Rule-based (a regole) Sistemi Model-based Sistemi CBR-based Sistemi ibridi Sistemi a Regole: applicazione ciclica di regole che operano su una memoria di lavoro contenente i fatti al fine di derivare fatti nuovi da fatti noti Un sistema a regole contiene un insieme di regole che specificano delle condizioni di attivazione e degli effetti In particolare, ciascuna regola ha la forma => talvolta anche descritte come => Esempi di regole: madre(x) = madre(y)madre(x) = madre(y) padre(x) = padre(y)padre(x) = padre(y) Maschio(x) Femmina(x) => => Fratello(x, y)Sorella(x, y)
Architettura generale Inference Engine Agenda Working Memory [facts] Knowledge Base [rules and initial facts] User Interface
Inference Engine Architettura generale Agenda Working Memory [facts] Knowledge Base [rules and initial facts] User Interface I Fatti sono asserzioni su proprietà, relazioni, proposizioni etc. nella forma di stringhe Servono a descrivere gli stati della computazione, compreso lo stato iniziale Sono statici e inattivi rispetto al valore pragmatico e allutilizzazione dinamica della conoscenza che contengono Memoria di lavoro Femmina(Amelia) Femmina(Alba) (madre(Amelia) = Paola) (madre(Alba) = Paola) (padre(Amelia) = Mario) (padre(Alba) = Mario) Memoria di lavoro Femmina(Amelia) Femmina(Alba) (madre(Amelia) = Paola) (madre(Alba) = Paola) (padre(Amelia) = Mario) (padre(Alba) = Mario) La Working Memory (Memoria di Lavoro) è un dispositivo utilizzato per trattenere asserzioni temporanee (informazioni sullo stato del problema da risolvere)
Knowledge Base [rules and initial facts] Architettura generale Le Regole corrispondono a dati strutturati in forma IF-THEN impiegati dal motore inferenziale per inferire una soluzione al problema proposto. Si possono vedere come le unità base dellinferenza che porta dalla descrizione dello stato iniziale alla soluzione del problema. Sono costrutti condizionali composti da due parti: LHS e RHS Inference Engine Agenda Working Memory [facts] User Interface Regola madre(x) = madre(y) padre(x) = padre(y) Femmina(x) => Sorella(x, y)
Architettura generale L Agenda è un dispositivo utilizzato per trattenere lelenco delle regole attivate dai fatti presenti attualmente nella memoria di lavoro. Il suo contenuto varia dinamicamente durante lesecuzione (Firing) delle regole stesse. Una regole si dice Attivata se la condizione da essa espressa è verificata. Una regola si dire Fired se le operazioni in essa indicate sono state eseguite Un sistema termina la computazione quando non si hanno più regole attive in agenda Inference Engine Agenda Working Memory [facts] Knowledge Base [rules and initial facts] User Interface Memoria di lavoro Femmina(Amelia) Femmina(Alba) (madre(Amelia) = Paola) (madre(Alba) = Paola) (padre(Amelia) = Mario) (padre(Alba) = Mario) Memoria di lavoro Femmina(Amelia) Femmina(Alba) (madre(Amelia) = Paola) (madre(Alba) = Paola) (padre(Amelia) = Mario) (padre(Alba) = Mario) Regola madre(x) = madre(y) padre(x) = padre(y) Femmina(x) => Sorella(x, y)
Interprete delle regole Pattern MatchingRisoluzione dei conflittiEsecuzione Stop Pattern Matching [costruzione dellAgenda]: 1) linterprete considera ciascuna regola rispetto alla situazione corrente 2) compara i valori che compaiono nella LHS con gli elementi di memoria corrispondenti per identificare quelle per le quali sono soddisfatte le LHS Algoritmo RETE: complessità nella costruzione del conflict set da esponenziale a polinomiale "Rete: A Fast Algorithm for the Many Pattern/ Many Object Pattern Match Problem", Charles L. Forgy, Artificial Intelligence 19 (1982), Risoluzione dei conflitti: se vengono individuate più corrispondenze, linterprete le immette nel CONFLICT SET e le tiene in considerazione come possibili candidati per lesecuzione. Il processo di RISOLUZIONE DEI CONFLITTI seleziona lESEMPLARE DOMINANTE di regola basandosi su una STRATEGIA DI RISOLUZIONE DEI CONFLITTI, ad esempio dando precedenza a: - Regole più specifiche (con più pattern nella LHS) o più generiche (meno fatti nella LHS) - Regole attivate da fatti asseriti più di recente Esecuzione [Firing delle regole]: esegue le azioni descritte dal membro di destra dellESEMPLARE DOMINANTE selezionato dal CONFRONTO (o eventualmente dal RISOLUTORE DEI CONFLITTI)
Esecuzione delle regole Memoria di lavoro Femmina(Amelia) Femmina(Alba) (madre(Amelia) = Paola) (madre(Alba) = Paola) (padre(Amelia) = Mario) (padre(Alba) = Mario) Memoria di lavoro Femmina(Amelia) Femmina(Alba) (madre(Amelia) = Paola) (madre(Alba) = Paola) (padre(Amelia) = Mario) (padre(Alba) = Mario) Memoria di lavoro Femmina(Amelia) Femmina(Alba) (madre(Amelia) = Paola) (madre(Alba) = Paola) (padre(Amelia) = Mario) (padre(Alba) = Mario) Sorella(Alba, Amelia) Memoria di lavoro Femmina(Amelia) Femmina(Alba) (madre(Amelia) = Paola) (madre(Alba) = Paola) (padre(Amelia) = Mario) (padre(Alba) = Mario) Sorella(Alba, Amelia) Regola madre(x) = madre(y) padre(x) = padre(y) Femmina(x) => Sorella(x, y)
if x is a dog then x is an animal if stain is grapos then organism is strep if temp > 300° then stop boiler Regole IF-THEN: alcuni esempi SituazioneAzione PremessaConclusione AntecedenteConseguente LHSRHS Ogni Left-Hand Side (LHS) contiene Elementi condizione: condizioni che devono essere verificate affinchè la regola sia appilcata Ogni LHS è una Clausola logica e condizione sufficiente per eseguire lazione indicata nella RHS Queste condizioni vengono assegnate descrivendo delle configurazioni (di solito di parti) della memoria globale: vengono specificati gli identificatori degli elementi di memoria insieme agli attributi ad essi associati e ai valori richiesti nella condizione Ogni Right-Hand Side (RHS) contiene la descrizione di Azioni: azioni che bisogna condurre a effetto quando la regola viene eseguita Le azioni possibili includono attività come: - inserire nuove descrizioni di stato nella memoria globale - modificare descrizioni di stato già esistenti - eseguire azioni definite dallutente per una produzione particolare