In questa sezione potete trovare alcuni esempi per comprendere meglio quali possano essere le appllicazioni di
quanto avete fino ad ora appreso. Sono stati presi in considerazione due problemi apparentemente banali per
la mente umana, la cui interpretazione è alquanto complessa in logica binaria. Questa difficoltà nasce dalla
necessità di considerare contemporaneamente diverse variabili il cui stato non si limita ai due valori convenzionali
della logica binaria (vero o falso), ma possono acquisire infiniti stati intermedi.
Per ovviare al problema si sono implementati algoritmi fuzzy che, come spiegato in precedenza, sono
quelli che riescono ad approssimare nel modo migliore la mente umana.
Consideriamo il primo esempio: il problema del parcheggio
L'obiettivo è quello di far parcheggiare al calcolatore un autovettura in retromarcia; le variabili di
input (o variabili di stato) del problema, che vengono assegnate dall'utente, sono la posizione (x,y) e
l'orientazione dell'auto. Nel simulatore
SmartParking® la possibile posizione dell'autovettura varia da (0,0) a (360,294).
Una volta inseriti i valori, ci basta premere il pulsante "Simula" per far partire la simulazione
che provvederà , basandosi su regole fuzzy, a parcheggiare l'auto in retromarcia nel parcheggio. Il tasto "
Step" consente il controllo della simulazione passo-passo, mentre "Soluzione" consente di
configurare in modo ottimale la matrice delle regole per portare a termine il problema. E' doveroso
ricordare che se l'auto non ha spazio di manovra, e tenta di uscire dal parcheggio, la simulazione viene interrotta;
questo può succedere non perchè la logica utilizzata è in un qualche modo errata, ma perchè l'auto è vincolata
al potersi muovere solo in retromarcia con angoli di sterzata limitati come in un caso reale. E' possibile,
inoltre, modificare la tabella delle regole su cui si basa il movimento della macchina. A questo proposito è
necessario soffermarsi brevemente sul come è stata realizzata la suddetta matrice, e come viene utilizzata dal
simulatore. Nello sviluppo delle regole Fuzzy, viene valutata la posizone x dell'auto (la y viene trascurata) e
il suo orientamento; le regole sono quindi del tipo:
"Se x è molto a sinistra del parcheggio e l'angolo è sud ovest
allora sterza di un piccolo angolo positivo" ovvero: IF x is S AND a is SO THEN a is a+PP
Dove "a" è l'orientamento della macchina.
Qui di seguito riportiamo la matrice delle regole e i fuzzy sets delle variabili di stato:
Il controllore fuzzy si basa su tre stadi:
- Fuzzificazione
- Controllo
- Defuzzificazione
Fuzzificazione
La fuzzificazione consiste nella conversione dei valori di input (che nel nostro caso sono posizione
ed orientamento) in valori linguistici con un grado di membership che può essere dato come nel nostro caso
da funzioni triangolari; per la variabile "posizione" abbiamo definito cinque sets (vedi figura),
per "angolo" sette.
Controllo
Per ogni regola "if then" definita viene computato il grado di applicabilità della stessa dato
dal minimo tra i due valori di membership delle variabili.
Defuzzificazione
La defuzzificazione consiste nella riconversione di valori linguistici di output in valori crisp; quetso
viene effettuato tramite la regola del controide che, nel nostro caso, è facilmente schematizzabile nel
seguente modo:
Dove zi è il grado di applicabilità della regola e fi è il valore centrale della funzione di mebership.
|