Case Based Reasoning sartori@disco.unimib.it
Un pò di storia Approccio formalizzato da Janet Kolodner Pittosto 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 Classificazione Revise Costruzione
Il Caso: struttura
Rappresentazione di un caso Flat Gerarchica A grafo
Retrieve = Classificare ? Problema Problema Sono simili ? Sì No Stessa categoria 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:
Revise = Costruzione ? Problema Soluzione Recuperata Sì No La soluzione va bene? Conoscenza Specifica dominio Sì No Ho “costruito” la soluzione 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)
CONDIZIONI AMBIENTALI FONDO STRADALE DISEGNO BATTISTRADA DATI TELEMETRICI ASSETTO VETTURA DATI STORICI CIRCUITI CONDIZIONI AMBIENTALI CONCORRENTI punti deboli e di forza
RELAZIONE TRA MODIFICHE, PROPRIETÀ CHIMICO-FISICHE E PERFORMANCE CHIMICA DEI MATERIALI RELAZIONE TRA MODIFICHE, PROPRIETÀ CHIMICO-FISICHE E PERFORMANCE RUOLO, INFLUENZE E RELAZIONI TRA INGREDIENTI ASSOCIAZIONI MESCOLA/PERFORMANCE
ACQUISIZIONE KNOWLEDGE ENGINEERING Race Engineer CONOSCENZA EPISODICA Compound Designer CASO PASSATO Riutilizzo NUOVO CASO Innovazione Creazione
UTILIZZO ARCHITETTURA Modulo fuzzy Base dei casi Recupero dei casi Nuova soluzione Motore CBR Motore inferenziale Abstract Compound Model
INTERFACCIA del RACE ENGINEER UTILIZZO INTERFACCIA del RACE ENGINEER
Similarity Computation 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 sim(ft, fc) = i=1..n[wi * SIM(fit, fic)]/i=1..nwi 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