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