La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

JESS: Esercizi Ettore Colombo 13-14 Dicembre 2006 Ingegneria della Conoscenza e Sistemi Esperti.

Presentazioni simili


Presentazione sul tema: "JESS: Esercizi Ettore Colombo 13-14 Dicembre 2006 Ingegneria della Conoscenza e Sistemi Esperti."— Transcript della presentazione:

1 JESS: Esercizi Ettore Colombo 13-14 Dicembre 2006 Ingegneria della Conoscenza e Sistemi Esperti

2 Jess 7.0 in lab 721 Per far partire la console: C:\Programmi\Jess70\bin\jess.bat oppure: java -classpath %CLASSPATH%,C:\Programmi\Jess70\lib\jess.jar jess.Console Per caricare un file (ad esempio prova.clp) contenente il codice del programma, eseguire il comando: (batch prova.clp) NB: fare attenzione al path che si sta usando. Basta il solo nome se prova.clp è nella stessa folder di jess; altrimenti si deve usare il path completo

3 Esercitazioni in lab... 14/12/2006 1.Fare il merge di due liste date due liste di interi ordinate (ordine crescente) costruirne una terza che sia il merge delle due date inizialmente 2.Trovare il massimo in una lista data una lista di interi, trovare il valore massimo 3.Trovare il massimo e il minimo in una lista

4 1. Merge di due liste (defrule put-in-A (merge ?la ?lb ?lc) ?tmp <- (lista ?la ?x $?Ra) (lista ?lb ?y $?Rb) ?l <- (lista ?lc $?Cc) (test (< ?x ?y)) => (retract ?tmp) (assert (lista ?la ?Ra)) (retract ?l) (assert (lista ?lc ?Cc ?x)) ) (defrule put-in-B (merge ?la ?lb ?lc) (lista ?la ?x $?Ra) ?tmp <- (lista ?lb ?y $?Rb) ?l <- (lista ?lc $?Cc) (test (>= ?x ?y)) => (retract ?tmp) (assert (lista ?lb ?Rb)) (retract ?l) (assert (lista ?lc ?Cc ?y)) ) (defrule last-A (merge ?la ?lb ?lc) ?tmp <- (lista ?la ?x $?Ra) (lista ?lb) ?l <- (lista ?lc $?Cc) => (retract ?tmp) (assert (lista ?la ?Ra)) (retract ?l) (assert (lista ?lc ?Cc ?x)) ) (defrule last-B (merge ?la ?lb ?lc) ?tmp <- (lista ?lb ?x $?Rb) (lista ?la) ?l <- (lista ?lc $?Cc) => (retract ?tmp) (assert (lista ?lb ?Rb)) (retract ?l) (assert (lista ?lc ?Cc ?x)) )

5 1. Merge di due liste: Risultato (deffacts initial-facts (lista a 1 3 4 6) (lista b 2 5 7) (lista c) (merge a b c) ) (reset) (run) (facts) Dalla Console: f-0 (initial-fact) f-4 (merge a b c) f-15 (lista a) f-17 (lista b) f-18 (lista c 1 2 3 4 5 6 7) For a total of 5 facts. Jess> Dalla Console: f-0 (initial-fact) f-4 (merge a b c) f-15 (lista a) f-17 (lista b) f-18 (lista c 1 2 3 4 5 6 7) For a total of 5 facts. Jess>

6 2. Massimo in un lista (defrule first-max ?tmp <- (max ?lname) (lista ?lname $?A ?x $?R) => (assert (max ?lname ?x)) (printout t "Primo massimo:" ?x crlf) (retract ?tmp) ) (defrule new-max ?tmp <- (max ?lname ?cmax) (lista ?lname $?A ?x $?R) (test (> ?x ?cmax)) => (retract ?tmp) (assert (max ?lname ?x)) (printout t "Nuovo massimo:" ?x crlf) ) (deffacts initial-facts (lista a 6 3 1 4 7) (max a) ) (reset) (run) (facts) Dalla Console: Primo massimo:7 f-0 (initial-fact) f-1 (lista a 6 3 1 4 7) f-3 (max a 7) For a total of 3 facts. Jess> Dalla Console: Primo massimo:7 f-0 (initial-fact) f-1 (lista a 6 3 1 4 7) f-3 (max a 7) For a total of 3 facts. Jess>

7 3. Il problema del Massimo e del Minimo (1) PROBLEMA: Determinazione del massimo e del minimo in un insieme di numeri, dove la base dei dati contiene i numeri A(1)...A(10) e NUMA è il numero di elementi da prendere in considerazione. Stato del sistema: Soluzione: Max e Min sono costanti e ordinano i numeri Prova contiene il valore attuale del numero sottoposto a verifica Linsieme dei numeri da testare A(1)...A(10)

8 3. Il problema del Massimo e del Minimo (2) Fatti: A(1) 5, A(2) 7....A(10) 21 NUMA 10, MAX 0, MIN 100000 Prova 1 Regole 1.Se((Prova MAX)) allora MAX:=A(Prova) 2.Se((Prova<=NUMA)and(A(Prova)<MIN)) allora MIN:=A(Prova) 3.Se((Prova>NUMA) allora writeln(MAX,MIN).STOP 4.Se((Prova =MIN))allora Prova:=Prova+1 [Le regole 1 e 2 aggiornano la base di dati con i nuovi valori MIN e MAX [La regola 4 aggiorna incondizionatamente Prova quando le altre regole non possono essere attivate]

9 Esercizio da provare in laboratorio Scrivere i programmi presentati nelle slide precedenti: 1.merge di due liste 2.massimo in una lista 3.massimo e minimo in una lista Scrivere un nuovo sistema di regole per la soluzione del problema del massimo e del minimo senza forzare la scansione di tutto gli elementi attraverso lincremento della quantità Prova [NB considerate quanto già fatto nellesempio 2]


Scaricare ppt "JESS: Esercizi Ettore Colombo 13-14 Dicembre 2006 Ingegneria della Conoscenza e Sistemi Esperti."

Presentazioni simili


Annunci Google