La fuzzy logic o logica sfumata

Quando ho letto il primo articolo sulla fuzzy logic sono rimasto letteralmente folgorato dalle potenzialità applicative nel mondo della programmazione.

Fin dai primi anni di studio nel settore informatica, mi avevano abituato al ragionamento booleano, zero o uno. Una variabile può essere vera o falsa, acceso o spento, ecc.

Nel 1991 ricordo che modificai un programma per scherzo. Probabilmente era il primo giorno di aprile in un noioso giorno lavorativo in centro elaborazione dati... Nell'interfaccia utente si chiedeva all'utilizzatore di cliccare su una conferma SI/NO prima di continuare un'operazione.

Beh... quel giorno aggiunsi per poche ore il pulsante "FORSE", gettando nel panico molti utenti collegati al sistema. Era solo uno scherzo tra colleghi per farsi quattro risate davanti alla macchinetta del caffé. Del resto gli informatici sono fatti così...

la logica fuzzy spiegata semplicemente

All'epoca era completamente illogico inserire una via di mezzo tra SI e NO. Eppure... dietro quel "forse" si nascondeva un intero mondo che avrebbe rivoluzionato la logica informatica.

Proprio in quegli anni si stava sviluppando nel mondo accademico una teoria logica basata proprio sulla sfumatura... era la fuzzy logic.

Cos'è la logica fuzzy?

Nella fuzzy logic 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...

Che senso ha dare a una variabile un valore intermedio? Apparentemente folle, questa logica consente ai computer di rappresentare meglio la realtà che ci circonda e anche il linguaggio naturale degli uomini.

Ad esempio, se affermo che un computer è un "po' nuvoloso" cosa sto dicendo? Non sto dicendo che il cielo è nuvoloso, né che è sereno... Nella logica booleana questa informazione non potrebbe mai essere trasformata in un dato.

Viceversa, nella fuzzy logic potrei assegnarli il valore 0.3 in una scala compresa tra 1 ( sereno ) e zero ( nuvoloso ).

Inoltre, alcune espressioni umane sono completamente soggettive. 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. Ad esempio, in una classe di 20 studenti, li ordino dal più alto al più basso. All'altezza della persona più alta associo il valore uno (1) e a quella della persona più bassa il valore zero (0).

Questa scala mi consente di assegnare alle altezze intermedie dei valori percentuali. Ad esempio, la decima persona si trova esattamente in mezzo alla scala, quindi la sua altezza avrà un valore pari a 0.5. E così via.

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 sei campi di studio più interessanti, quello che secondo me potrà dare un notevole contributo nello sviluppo degli agenti A.I.


Per scrivere un commento

knowledge base