P1 con CF = 0.6
P2 con CF = 0.4
P3 con CF = 0.2
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
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.
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."
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:
-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
- Motore di Inferenza
- Ragionamento ipotetico
- Blackboard
(agenda mechanism)
- Truth Maintenance system (TMS)
- Ragionamento monotono e nono monotono
- Ragionamento temporale
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)
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
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
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.