La fuzzy logic
La logica fuzzy ( o fuzzy logic ) è una logica sfumata con infiniti stati intermedi tra zero e uno. E' anche detta logica sfocata.
Esempio. Nella logica fuzzy una variabile può assumere il valore 0 e 1 ma anche 0.2, 0.55, 0.8, ecc. La variabile fuzzy è una variabile continua e può assumere infiniti valori compresi tra zero e uno.
La fuzzy logic è l'evoluzione della logica booleana ed è particolarmente utile nello studio dell'intelligenza artificiale.
Come funziona la logica fuzzy
Nell'informatica siamo abituati a utilizzare la logica booleana che ammette soltanto due valori: zero e uno.
Tutti i linguaggi di programmazione sono basati sulla logica binaria di George Boole. Una condizione può essere vera o falsa, senza vie di mezzo.
Nessun programmatore svilupperebbe mai un'interfaccia utente con i pulsanti SI, NO e FORSE.
E' completamente illogico inserire una via di mezzo tra Si e No quando si tratta di cancellare un file.
Tuttavia, nell'intelligenza artificiale diventa molto utile.
Perché?
La logica fuzzy consente ai computer di rappresentare meglio la complessità della realtà e il linguaggio naturale degli uomini.
Un esempio pratico
In questa foto il cielo è nuvoloso o sereno?
Nella logica booleana posso scegliere tra 0 ( sereno ) e 1 ( nuvoloso ).
Potrei dire che è sereno... ma non è completamente vero perché il cielo è anche un po' nuvoloso.
Nota. La logica booleana ha un campo di applicazione limitato perché la realtà è molto più complessa. Nella logica booleana l'informazione precedente ( "un po' nuvoloso" ) non può essere trasformata in un dato.
Nella fuzzy logic, invece, lo zero e l'uno sono solo gli estremi di una variabile continua. La variabile può assumere anche valori intermedi come 0.9, 0.5, 0.1, ecc...
Grazie alla logica fuzzy posso assegnare alla variabile il valore 0.3 in una scala compresa tra 0 ( sereno ) e uno ( nuvoloso ).
In pratica affermo che il cielo è tendenzialmente sereno ma anche un po' nuvoloso.
Così facendo rappresento meglio la situazione reale.
Un altro esempio pratico
Nel linguaggio naturale molte espressioni umane sono soggettive e relative.
Una macchina booleana non potrebbe capirle senza cadere in contraddizioni logiche.
Ad esempio, se dico di essere "alto" cosa sto dicendo? Non esiste una misura oggettiva e assoluta per definire l'altezza di qualcosa, è un concetto soggettivo e relativo.
Nella fuzzy logic posso trasformare l'informazione soggettiva in un dato oggettivo.
Esempio
Una squadra di basket è composta da 7 studenti con altezze diverse.
Non posso affermare se ciascuno di loro è alto o basso. Quindi utilizzo la logica fuzzy.
- Li ordino dal più alto al più basso.
- Poi associo il valore uno (1) al più alto e il valore zero (0) al più basso.
Questa scala mi consente di assegnare alle altezze intermedie dei valori percentuali.
Ad esempio, la quarta persona si trova esattamente in mezzo alla scala, quindi la variabile fuzzy ha valore 0.5 ( ossia il 50% ). E così via.
Nota. Grazie alla logica fuzzy posso affermare che il grado di verità dell'affermazione "è alto" è vera al 0.5 per la quarta persona. Allo stesso modo posso affermare che anche l'affermazione "è basso" ha un grado di verità pari a 0.5. Nel suo gruppo il ragazzo è allo stesso tempo un po' alto e un po' basso.
La fuzzy logic e l'intelligenza artificiale
La logica fuzzy è molto utile nell'intelligenza artificiale perché consente all'agente razionale di affrontare le scelte in condizioni di incertezza, affidandosi a una rappresentazione sfumata e probabilistica della realtà.
Apparentemente il sistema potrebbe sembrare più debole, poiché è privo di certezza, ma in realtà è notevolmente più potente perché riesce ad affrontare il ragionamento logico evitando le incoerenze logiche, tipiche del ragionamento umano.
In molti casi è impossibile affrontare un problema nella sua completezza con la logica booleana classica, sia per motivi computazionali ( tempo di elaborazione, quantità di memoria, ecc. ) e sia per mancanza di informazioni ( informazione imperfetta) . Con la fuzzy logic, invece, tutto questo diventa possibile.
L'applicazione della logica fuzzy alle reti neurali artificiali è uno dei campi di studio più interessanti, quello che secondo me potrà dare un notevole contributo nello sviluppo degli agenti A.I.