Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Logica Fuzzy in Linux

Link copiato negli appunti

Nonostante la sua natura di sistema operativo "nato in Rete" che lo ha fatto diffondere tanto sui server, non bisogna perdere di vista l'importanza che ricopre il sistema operativo del pinguino in ambito accademico. Quello di cui vi vorremo parlare oggi è un progetto open source tutto italiano nato in ambito accademico ad opera di due ragazzi, Francesco Magno e Rodolfo Pellizzoni che hanno deciso di sviluppare dei tools per il calcolo con la logica fuzzy.

Prima di continuare mi sembra opportuno fare una breve introduzione per cercare di comprendere quelli che sono concetti prettamente matematici (si tratta di un progetto accademico, e anche molto tecnico). La logica fuzzy è nata per l'esigeza di rappresentare matematicamente concetti prettamente umani, più precisamente insiemi la cui funzione di appartenenza, se trattata in maniera tradizionale, non è adeguata a rappresentare le cose.

Prendiamo il concetto di bassezza: con l'insiemistica tradizionale, qualora definissimo le persone basse come tutte quelle che misurano in altezza meno di 160 cm, una persona alta 161 cm risulterebbe non bassa, il che per il modo di ragionare di un essere umano è abbastanza sconveniente. Nell'insiemistica fuzzy la funzione di appartenenza è un numero reale compreso tra 0 e 1, dove lo zero indica la non appartenenza, l'1 l'appartenenza piena, e i valori intermedi tutte le sfumature del caso. La applicazione della logica fuzzy è il cosiddetto Sistema di Inferenza Fuzzy (FIS), che prevede la definizione di variabili linguistiche (ad esempio temperatura, profondità, altezza) divise in termini linguistici (come caldo, normale, freddo) eventualmente modificati da modificatori linguistici, o linguistical hedges, quali negazioni, o rafforzativi, o combinazioni delle due cose (es. non molto freddo) e dalla definizione di una o più regole (ad esempio se la temperatura è molto alta regola la ventola al massimo).

A questo punto è possibile interrogare il sistema fuzzy fornendogli uno o più reali in ingresso, e ottenendo un reale in uscita. Questo sistema ha trovato grandissima applicazione nei controlli automatici (frigoriferi, lavatrici) in quanto l'inferenza fuzzy consente di ottenere risultati soddisfacenti con minor sforzo progettuale da parte dell'uomo e minore quantità di calcoli da effettuare.

Nell'ambito della programmazione fuzzy Francesco Magno e Rodolfo Pellizzoni, studenti dell'università di Pisa, hanno sviluppato due algoritmi tradizionali della logica fuzzy, il clustering e il c-means, presenti entrambi nel fuzzy toolbox di Matlab, lo standard de facto per le applicazioni scientifiche in ambito matematico. Il primo prevede l'inserimento di una matrice, letta da file di testo o importata da file Matlab, l'inserimento di un valore per il procedimento di alpha-cut (una sorta di normalizzazione) e un numero di suddivisioni.

Il programma provvede all'elaborazione di quel numero di cluster, cioè di sottoinsiemi, basandosi sui valori della matrice che indicano il rapporto che c'è tra i punti inseriti, raggruppando "in maniera fuzzy" i più simili tra loro. Il secondo, il fuzzy "c-means", invece prevede l'inserimento di una matrice di coordinate, e il programma provvede a calcolare, con tre algoritmi diversi, selezionabili dall'utente, i prototipi, cioè una versione fuzzy dei centri di massa.

Il terzo progetto, il più corposo, e consiste in una libreria completa per la gestione dei sistemi di inferenza fuzzy; è possibile usare la libreria in svariati livelli, definendo con le apposite classi le variabili linguistiche e facendo i calcoli manualmente, oppure definendo il sistema di regole per far fare i calcoli in maniera automatica, o a livello ancora più astratto semplicemente definendo variabili e regole in 2 file di testo, che il sistema provvede a esaminare, creando il FIS (Fuzzy Inference System) pronto per essere interrogato. Nella libreria è accluso un supporto ancora non troppo stabile agli algoritmi genetici, che consentono di modellare la forma delle variabili linguistiche in maniera automatica, a partire dai risultati che vorremmo che il sistema fuzzy producesse, con il minimo errore (quadratico) medio.

Potete trovare maggiore documentazione, assieme al codice (completamente scritto sotto licenza GPL) del progetto all'indirizzo: http://develop.gilgalaad.wox.org.

Ti consigliamo anche