A.1 Consideriamo la seguente regola di una data base di conoscenza: (P1 o P2) e P3 -------> R1(0.5)  dove P1, P2 e P3 sono le premesse della regola e R1 la conclusione avente 0.5 come fattore di certezza. Noti i fattori di certezza delle premesse:

P1 con CF = 0.6

P2 con CF = 0.4

P3 con CF = 0.2

Determinare il CF di R1.

 

Risposta:

CF(P1(0.6) o P2(0.4) = MAX (0.6, 0.4) = 0.6

CF((0.4) e P3(0.2)) = MIN (0.6, 0.2) = 0.2

Nella regola:    CF di R1 = 0.5

allora R1 viene aggiunto all'insieme dei fatti veri con associato un valore CF

R1:                   CF = 0.5 * 0.2 = 0.10

 

 

A.2 Il modulo detto " EXPLAINER" di un Sistema Esperto risponde ad alcune domande tipiche, quali: WHY?, HOW?, WHY-NOT?, WHAT IF? Descrivere il significato di "WHY" e fornirne un esempio.

Risposta:

La domanda "WHY" si usa quando viene richiesto all'utente di inserire qualche informazione e l'utente vuole sapere perchè il sistema esperto gli pone tale domanda.

Il Sistema Esperto risponde indicando la regola che sta cercando di attivare.

ES:  Consideriamo questa semplice base di conoscenza.

L'automobile non parte.

Regola 1: SE al motore arriva la benzina, E il motore gira ALLORA il problema riguarda le candele

Regola 2: SE il motore non gira, E le luci non si accendono ALLORA il problema riguarda la batteria

Regola 3: SE il motore non gira, E le luci si accendono ALLORA il problema riguarda il motorino di avviamento

Regola 4: SE c'è benzina nel serbatoio, E c'è benzina nel carburatore ALLORA al motore arriva benzina

 

Il dialogo Utente-Sistema Esperto potrebbe essere:

SE: c'è benzina nel serbatoio?

U: SI

SE: cè benzina nel carburatore?

U: SI

SE: Il motore gira?

U: WHY?

L'utente ha fatto una domanda al Sistema Esperto, chiedendo "WHY?", ovvero perchè vuoi sapere cio'?

Il Sistema Esperto aveva stabilito che:

Al motore arriva benzina,

quindi se e' vero che

Il motore gira

allora

Il problema riguarda le candele

Poichè l'utente aveva risposto SI alle prime due domande, la regola 4 era stata attivata, verificando così la prima premessa della regola 1.

 

 

A.3  I termini  Sistema Esperto e Sistema Basato su Conoscenza sono sinonimi? Quale distinzione può essere fatta tra essi?

Risposta

I Programmi di Intelligenza Artificiale che raggiungono competenze a livello di esperto nella soluzione di problemi sono definito  Sistemi Esperti o Sistemi Basati su Conoscenza.  Talvolta il termine Sistema Esperto è riservato a programmi la cui Base di Conoscenza contiene  la conoscenza utilizzata da un esperto umano,  a differenza dalla conoscenza proveniente da libri di testo o altre fonti. Spesso i due termini sono usati come sinonimi."


B.1 Elencare e descrivere le caratteristiche generali di un ambiente di sviluppo per Sistemi Esperti

Caratteristiche generali di un ambiente di sviluppo per Sistemi Esperti

1. Modello(i) teorico soggiacente

2. Ambiente di sviluppo

3. Implementazione

4. Comunication

5. Caratteristiche SW

6. Caratteristiche Hw

 

Più in dettaglio:

1. Modello

1.1 Rappresentazione della Conoscenza

-Metodi di rappresentazione della Conoscenza:

  • Frames (slots, facet, demoni)
  • Logica
  • Regole di produzione
  • Metodo ibrido

- Classi e istanze

- Rappresentazione della conoscenza dinamica (che consente di creare frames e relazioni runtime)

- Metaconoscenza

- Object Oriented Programming

1.2 Reasoning

- Motore di Inferenza

- Ragionamento ipotetico

- Blackboard

(agenda mechanism)

- Truth Maintenance system (TMS)

- Ragionamento monotono e nono monotono

- Ragionamento temporale

2. Ambiente di sviluppo

2.1 Tool per l'ingegnere della conoscenza

2.2 Tools per realizzare l'interfaccia utente finale

3. Implementazione

4. Comunication

4.1 Integrazione e/o connettività con

4.2 Modalità di accesso a:

4.3 Connettività con:

5. Caratteristiche SW

 

6. Caratteristiche HW

 

In particolare è importante la disponibilità di una versione   RUNTIME

 

B.2 Che cosa significa "integrazione funzionale" di un Sistema Esperto?

Risposta:

Le "funzioni" implementate nel Sistema Esperto devono integrarsi con le funzioni (magari preesistenti al Sistema Esperto) realizzate da altri moduli: interfaccia utente, gestione dati e flusso informazioni, visualizzazione dei dati, gestione archivi, etc.

Vanno considerate le problematiche ergonomiche: come distribuire le funzioni e come separarle, dove far risiedere la (o le) interfaccia utente, etc

punto di vista utente (cliente)

B.3 In che cosa consiste la "integrazione sistemistica di unSistema Esperto?

Risposta

Il Sistema Esperto deve integrarsi con altro Sw, di diversa natura:

Vanno considerate le problematiche relative all'implementazione ed alle prestazioni:

punto di vista sviluppatore


C.1 Elencare e descrivere brevemente almeno quattro tecniche per estrarre conoscenza da un esperto del dominio

Risposta

Osservazione sul campo    Come l'esperto risolve i problemi reali nel suo lavoro

Discussione di problemi     Esplorazione di dati, conoscenza e procedure necessarie per risolvere un problema specifico

Descrizione di problemi      l'esperto fornisce un problema tipo per ogni categoria del dominio

Analisi di problemi             presentazione all'esperto di una serie di problemi realistici esplorand il ragionamento che sta dietro                                               le soluzioni

Raffinamento del sistema    l'esperto fornisce una serie di problemi che devono essere risolti utilizzando la conoscenza                                              acquisita durante le interviste

Esame del sistema               esame e critica da parte dell' esperto delle regole del prototipo e della struttura di controllo

Validazione del sistema      presentare i casi risolti dall'esperto e dal prototipo di Sistema Esperto ad altri esperti

 

C.2 Quali sono i principali problemi da affrontare nel realizzare un accoppiamento fra Sistema Esperto e DBMS?

Risposta

 

C.3 Che cosa si intende con il termine "elicitazione"?

Risposta

L'esperto del dominio spesso non sa spiegare esplicitamente il suo ragionamento, il processo decisionale o di problem solving che applica. Per questo motivo l'Ingegnere della conoscenza deve "catturare" la conoscenza empirica o "expertise", mediante un processo chiamato "elicitazione" al fine di poterla poi modellare, mediante uno o più formalismi di rappresentazione della conoscenza e codificare in un programma.