Soft Computing Fuzzy Logic Alessandro Mazzetti Definizione • Soft Computing – elaborazione “graduale” dell’informazione • Fuzzy Logic • Reti Neurali • Algoritmi Genetici Fuzzy Logic • Logica in cui sono presi in considerazione i valori intermedi fra il Vero ed il Falso – Lofti Zadeh 1965 - Univ Calif. Berkeley SE età_paziente < 25_anni ALLORA … SE età_paziente = giovane ALLORA … Fuzzy = sfumato, vago, sfocato, nebuloso Insiemi Crisp e Fuzzy Esempi • • • • • Velocità = alta/bassa Posizione = lontano/prossimo/vicino Temperatura = freddo/fresco/tiepido/caldo Stagione= primavera/estate/autunno/inverno … Funzione di appartenenza • Associa un valore al grado di appartenenza o al grado di verità 25 anni = giovane al 60% 35 anni = giovane al 10% adulto all’ 80% anziano allo 0% Funzioni di appartenenza Terminologia • Evidenza = grado di verità • Descrittore/etichetta = “alto” / “basso” / … • Ragionamento Fuzzy = ragionamento che considera l’evidenza delle asserzioni • Fuzzificazione = passare da un valore numerico alla sua evidenza • Defuzzificazione = passare da un’evidenza ad un valore numerico Esempio SE il paziente ha poca febbre (evid=0.4) E starnutisce frequentemente (evid=0.9) E NON siamo in autunno (evid=0) O inverno (evid=0) ALLORA il paziente ha il raffreddore da fieno (evid=?) SE la temperatura della stanza e' tiepida E la temperatura esterna e' fresca ALLORA il ventilatore deve andare veloce Ragionamento Fuzzy evidenza di x E y = MINIMO fra l'evidenza di x e l'evidenza di y evidenza di x O y = MASSIMO fra l'evidenza di x e l'evidenza di y evidenza di NOT x = 1 - (evidenza di x) data la regola SE y ALLORA x, evidenza di x = evidenza di y date piu' regole con lo stesso conseguente: SE y1 ALLORA x ... SE yN ALLORA x evidenza di x = MASSIMO fra l'evidenze di y1,...,yN Logica classica • È un caso particolare della Logica Fuzzy (il caso estremo) falso falso vero vero E E E E falso vero falso vero = = = = MIN(0,0) MIN(0,1) MIN(1,0) MIN(1,1) = = = = 0 0 0 1 = = = = falso falso falso vero Motore Inferenziale Fuzzy Strutture dati Esercizio • Lanciare FUZZY.COM • Provare a cambiare alcuni valori • Ispezionare le regole e le funzioni Caratteristiche • Può coesistere il vero ed il falso – il contrario del vero non è il falso – “tanto” al 70% non implica “poco” al 30% – la somma delle evidenze non deve dare 100% • L’appartenenza dipende dal dominio – – – – – gravidanza a 35 anni = vecchia artrite a 35 anni = giovane 35 anni = tennista vecchio, dirigente giovane 100 Km/h in città = veloce 100 Km/h in autostrada = lento ATTENZIONE ! • Fuzzy diverso da Probabilità • Fuzzy = informazione certa elaborata in modo impreciso • Probabilità = informazione mancante – la probabilità che Paolo sia alto è 0.8 (non conosco Paolo) – l’evidenza che Paolo sia alto è 0.8 (lo conosco, l’ho misurato, so che è alto ma non tanto) Propagazione • Propagazione delle probabilità: – moltiplicazione • Propagazione delle evidenze: – minimo • Probabilità del tutto – 1 (o 100%) • Evidenza del tutto – dipende dall’appartenenza ATTENZIONE ! • • • • Fuzzy non vuole dire incerto Fuzzy non vuole dire aleatorio Fuzzy = deterministico ciò che è sfumato è la terminologia: – grossolana per gli uomini – ben precisa per il computer Controllo Fuzzy Controllo guidato da ragionamento anziché da funzioni matematiche Esempio: prendere al volo una pallina (come fa un tennista) Descrizione “logica” della conoscenza Quando la pallina e' in salita, il tennista deve portarsi senza fretta nella zona dove potra' cadere, quindi dovra' stare lontano se la pallina va veloce e a media distanza se va lenta. Quando la pallina e' nella cresta della sua traiettoria, il tennista deve muoversi piu' celermente, sempre nell'intento di portarsi in zona. Quando la pallina e' in discesa, il tennista deve soltanto inseguirla, cioe' deve avvicinarsi, o star fermo se e' gia' vicino. In ogni caso, se la pallina sorpassa il tennista, questo deve inseguirla a gambe levate. Regole per controllo fuzzy se fase=salita e va=lenta e è=lontana_davanti allora movimento=avvicinati_lento se fase=salita e va=lenta e è=vicina_davanti allora movimento=allontanati_lento se fase=salita e va=veloce e è=lontana_davanti allora movimento=fermo se fase=salita e va=veloce e è=vicina_davanti allora movimento=allontanati_veloce se fase=cresta e va=lenta e è=lontana_davanti allora movimento=avvicinati_veloce se fase=cresta e va=lenta e è=vicina_davanti allora movimento=fermo ... se fase=discesa e va=lenta e è=lontana_davanti allora movimento=avvicinati_veloce ... se è=dietro allora movimento=avvicinati_veloce Defuzzificazione Aggregazione delle evidenze Il sistema all’opera regola 1: se ... allora movimento=fermo (evid=0.10) regola 2: se ... allora movimento=fermo (evid=0.18) regola 3: se ... allora movimento=allontanati (evid=0.68) regola 4: se ... allora movimento=allontanati (evid=0.20) (0.18 * 0.0) + (0.68 * 2.365) movimento = ----------------------------- = 1.87 0.18 + 0.68 Esercizio • Lanciare il programma PALLINA.COM • Ispezionare i dati Campi d’applicazione • presenza di dati a spettro continuo di difficile categorizzazione • problema ben padroneggiato ma mal formalizzato • difficolta' nell'individuazione di un modello matematico • esigenza di una soluzione deterministica ma elastica • esistenza di esperti aventi una conoscenza appropriata ma soggettiva Applicazioni di successo • messa a fuoco automatica per videocamera (Canon e Sanyo) • compensazione di instabilita' di immagine in videocamere (Panasonic) • scelta del tipo di lavaggio per lavatrici domestiche (Matsushita) • pilotaggio di condizionatori d'aria e scaldabagni (Mitsubishi) • selezione del rapporto in cambi automatici automobilistici (Subaru) • regolazione luminosita' in televisori (Sony) • modulazione di potenza di motori di aspirapolveri (Matsushita) • interpretazione caratteri manoscritti (Sony) • controllo di fornace di cementifici • pilotaggio dei freni nella metropolitana di Sendai • controllo di ascensori • supporto alle decisioni in campo medico