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

Slides:



Advertisements
Presentazioni simili
Definitezza Vogliamo poter richiedere la “definitezza” delle funzioni
Advertisements

Seminario Swarm Seminario su Swarm Pietro Terna web.econ.unito.it/terna.
Tempo di computazione (Running Time) di programmi Misure del tempo: Misure del tempo: metodi principali 1.Benchmarking 2.Analisi.
Process synchronization
Programmazione in Java
PROGRAMMARE IN PASCAL (le basi)
Intelligenza Artificiale
Informatica Generale Marzia Buscemi
Lez. 91 Universita' di Ferrara Facolta' di Scienze Matematiche, Fisiche e Naturali Laurea Specialistica in Informatica Algoritmi Avanzati Alberi di ricerca.
Generazione di Piani attraverso Grafi di Pianificazione
Cammini minimi con sorgente singola
Sistemi basati su conoscenza Esercizi Prolog
Esercizi su alberi binari di ricerca
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – Ver. aggiornata al 20 Marzo 2013.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – Ver. aggiornata al 9 Agosto 2013.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 2 – Info B Marco D. Santambrogio – Riccardo Cattaneo –
File.
1 Corso di Informatica (Programmazione) Lezione 10 (12 novembre 2008) Programmazione in Java: espressioni booleane e controllo del flusso (selezione)
Corso di Laurea in Biotecnologie Informatica (Programmazione)
eliana minicozzi linguaggi1a.a lezione2
Algoritmi e Strutture Dati (Mod. B)
Tempo di computazione (Running Time) di programmi Misure del tempo: Misure del tempo: metodi principali 1.Benchmarking 2.Analisi Benchmarking: usato per.
Seminario Swarm Seminario su Swarm Pietro Terna web.econ.unito.it/terna.
Corso di Informatica A.A Corso di Informatica Laurea Triennale - Comunicazione&Dams Dott.ssa Adriana Pietramala Laurea.
Corso di Informatica A.A Corso di Informatica Laurea Triennale - Comunicazione&Dams Dott.ssa Adriana Pietramala Laurea.
Corso di Informatica A.A Corso di Informatica Laurea Triennale - Comunicazione&Dams Dott.ssa Adriana Pietramala Dott.ssa.
Procedure e funzioni nei linguaggi di alto livello Lab Programmazione - turno /2006.
Esempi di riuso del codice nei linguaggi di alto livello Lab Programmazione - turno /2006.
Istruzioni di selezione in Java Programmazione Corso di laurea in Informatica.
Semantica per formule di un linguaggio proposizionale p.9 della dispensa.
Massimi e minimi assoluti vincolati
Sistemi Operativi GESTIONE DEI PROCESSI.
Esercizi Puntatori, struct con campi puntatore, puntatori a struct, rapporto tra array e puntatori. FUNZIONI Passaggio di parametri per indirizzo, passaggio.
Esercizi C su array e matrici
Seminario Swarm Seminario su Swarm Pietro Terna web.econ.unito.it/terna.
Seminario Swarm Seminario su Swarm Pietro Terna web.econ.unito.it/terna.
Intelligenza Artificiale
Le funzioni.
Sistemi Operativi - Introduzione 1 Il sistema operativo UNIX Dettagli e comandi avanzati Niccolò Battezzati Politecnico di Torino Dip. Automatica e Informatica.
Lezione 17 maggio 2007 Parametri da linea di comando FILE Strutture (introduzione)
Mezzo di trasporto Automobile a Piedi Taxi Autobus Treno Metro.
Sistemi a Regole Ettore Colombo 13 Dicembre 2006 Ingegneria della Conoscenza e Sistemi Esperti.
Scelta del Mezzo di Trasporto
Foglio elettronico Excel Livello avanzato
Elementi di Informatica di base
Esercizio 10.* Un cassiere vuole dare un resto di n centesimi di euro usando il minimo numero di monete. a) Descrivere un algoritmo goloso per fare ciò.
2. Premesse all’analisi infinitesimale
Diagrammi 2D e 3D Funzioni di ordine superiore
Unità Didattica 3 Linguaggio C
1 Lucidi delle esercitazioni di Sistemi di Elaborazione in Rete Università degli Studi della Calabria Corso di Laurea in Ingegneria Gestionale A.A. 2003/2004.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 8 – Info B Marco D. Santambrogio – Riccardo Cattaneo –
Esercizi su File e Liste
Esercizi su alberi binari di ricerca
Ant Che cos’è Come si utilizza Funzionalità principali
Jess, The Rule Engine for the Java Platform
Gena - Applicata - 05/061 Java: javac e java Per compilare una classe: > javac NomeClasse.java  NomeClasse.class javac = invocazione.
Costruzione di una semplice Agenda telefonica Elettronica Esercizio sull'uso delle principali system call Unix.
Microsoft Access Query (II), filtri.
Il linguaggio Fortran 90: 3. Procedure e Funzioni
Si vuole realizzare una classe Java PhotoGallery che rappresenta una galleria di fotografie online. Ogni PhotoGallery ha una url (rappresentata da una.
Il linguaggio C Puntatori e dintorni.
Introduzione a Javascript
Esercitazione su Vector. Permette di definire collezioni di dati generiche, che sono in grado di memorizzare elementi di ogni sottotipo di Object Definito.
Fondamenti di Informatica II Ingegneria Informatica (A-I) Prof. M.T. PAZIENZA a.a – 3° ciclo.
PROGETTO… Internet Providers, registrazione del dominio Costruire una home page … e renderla visibile sul Web.
Introduzione a JESS Ettore Colombo 13 Dicembre 2006 Ingegneria della Conoscenza e Sistemi Esperti.
Java & JESS Ettore Colombo 10 Gennaio 2007 Ingegneria della Conoscenza e Sistemi Esperti.
Informatica B Allievi Elettrici - AA Fondamenti della programmazione in linguaggio C (III)
Corso integrato di Matematica, Informatica e Statistica Informatica di base Linea 1 Daniela Besozzi Dipartimento di Informatica e Comunicazione Università.
Laboratorio di Ingegneria del Software Laboratorio di Ingegneria del Software Primo Incontro Titolare Prof. Pierluigi Sanpietro.
Transcript della presentazione:

JESS: Esercizi Ettore Colombo Dicembre 2006 Ingegneria della Conoscenza e Sistemi Esperti

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

Esercitazioni in lab... 14/12/ 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

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

1. Merge di due liste: Risultato (deffacts initial-facts (lista a ) (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 ) 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 ) For a total of 5 facts. Jess>

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 ) (max a) ) (reset) (run) (facts) Dalla Console: Primo massimo:7 f-0 (initial-fact) f-1 (lista a ) 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 ) f-3 (max a 7) For a total of 3 facts. Jess>

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)

3. Il problema del Massimo e del Minimo (2) Fatti: A(1) 5, A(2) 7....A(10) 21 NUMA 10, MAX 0, MIN 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]

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]