Case Based Reasoning
[email protected]
Un pò di storia
• Approccio formalizzato da Janet Kolodner
• Piuttosto recente
• Algoritmo per la risoluzione di problemi
basato sul ragionamento per analogia
Filosofia
Il principio guida dell’approccio CBR è il
seguente:
Problemi simili hanno soluzioni simili
Quindi, soluzioni adottate in passato
possono essere recuperate per risolvere
nuove situazioni critiche
CBR e Ingegneria della
Conoscenza
• Il CBR nasce come problem solving method
• Particolarmente utile quando non si riesce a
costruire un modello di conoscenza completo e
preciso
– Dominio difficile
– Conoscenza eterogenea
– Poco tempo a disposizione
• Negli ultimi anni si sta imponendo come
metodologia efficace ed efficiente per la
realizzazione di Knowledge Management
Systems
Il Ciclo CBR: le 4 R
CBR e Problemi
Il CBR permette di affrontare e risolvere due
categorie di problemi:
Retrieve
Revise
Classificazione
Costruzione
Il Caso: struttura
Rappresentazione di un caso
• Flat
• Gerarchica
• A grafo
Retrieve = Classificare ?
Problema
Problema
Sono simili ?
Sì
Stessa categoria
No
Stessa categoria
Come recuperare casi
• Utilizzo di funzioni di similarità:
SIM : CxC  [0, 1]
• Input: la descrizione del problema
• Output: un numero reale compreso fra
zero e uno (% di similarità)
• Uno dei due casi in ingresso è non risolto
e si indica con Cc
• L’altro è risolto e si indica con Cr
Algoritmi di Retrieval
Stesso valore?
Stesso valore?
Cc
Cr
K-Nearest Neighbour
Il valore di similarità è una media pesata della
funzione SIM applicata ai valori di tutti gli
attributi della descrizione del caso:
n
w
i*
SIM (Cc, Cr )
sim ( fci, fri )
i 1
n
Revise = Costruzione ?
Soluzione
Recuperata
Problema
La soluzione
va
bene?
Sì
Ho “costruito” la
soluzione
Conoscenza
Specifica
dominio
No
Uso la soluzione
come punto di
partenza
Algoritmi di Revise
Mofica valore?
Modifica valore?
Soluzioner
Soluzionec
Algoritmi di Revise
• Difficili da implementare
• Spesso si lascia all’utente/esperto il
compito di modifcare la soluzione
recuperata
• Gli algoritmi più diffusi si basano sul
concetto di substitutional adaptation
Substitutional Adaptation
•
•
•
•
Dato che il caso corrente e quello recuperato sono diversi, la basa dei casi
potrebbe contenere altre coppie di casi con le stesse (o simili) differenze
Questi casi agiscono da rappresentanti del caso corrente (Ccr) e di quello
recuperato (Rcr)
La differenza tra le soluzioni dei rappresentanti (vettore vi) dà un’indicazione
di come modificare la soluzione del caso recuperato Rc per risolvere il caso
corrente Cc (vettore v’)
v’ è un’aggregazione delle differenze v1, ..., vn,, tra le soluzione associate a
Ccr e Rcr
PROGETTO P-RACE
Un approccio basato sulla conoscenza per
supportare il processo decisionale del
Race Engineer
L.Int.Ar
Dipartimento di Informatica, Sistemistica e Comunicazione
Università di Milano - Bicocca
OBIETTIVO DEL PROGETTO
Sviluppare un sistema di supporto alle decisioni
riguardanti la progettazione e l’utilizzo della mescola
giusta per partecipare ad una gara (e vincere)
FONDO
STRADALE
DISEGNO
BATTISTRADA
ASSETTO
VETTURA
CIRCUITI
DATI
TELEMETRICI
DATI STORICI
CONDIZIONI
AMBIENTALI
CONCORRENTI
punti deboli e di
forza
RELAZIONE TRA MODIFICHE, PROPRIETÀ
CHIMICO-FISICHE E PERFORMANCE
CHIMICA DEI
MATERIALI
RUOLO,
INFLUENZE E
RELAZIONI TRA
INGREDIENTI
ASSOCIAZIONI
MESCOLA/PERFORMANCE
ACQUISIZIONE
KNOWLEDGE ENGINEERING
Race
Engineer
CONOSCENZA
EPISODICA
Compound
Designer
Riutilizzo
CASO
PASSATO
Innovazione
Creazione
NUOVO
CASO
UTILIZZO
ARCHITETTURA
Base dei casi
Modul
o fuzzy
Motore CBR
Recuper
o dei
casi
Abstract
Compoun
d Model
Nuova
soluzion
e
Motore inferenziale
UTILIZZO
INTERFACCIA del RACE ENGINEER
fc = (f1c,..., fnc): case representation
ft = (f1t,..., fnt) : target problem
Two step process
 Initial Match: selects a subset of the Case Memory
IM(CM, ft) = set of cases Ci such that
sev_index(Ci)=sev_index(ft)
 Similarity Function: computes similarity between cases

[
]/
t
c
sim(ft, fc) =
i=1..nwi
i=1..n wi * SIM(fi , fi )
with
wi = match_weight if SIM(fit, fic)<Threshold
wi = no_match_weight
if SIM(fit, fic)>Threshold
wi = no_value_weight
if fit or fic is unknown
SIM(fit, x): gaussian curve with mean value fit and given standard
deviation 
Similarity Computation