La logica fuzzy ( fuzzy logic , in inglese) è una logica multivalore in cui i valori di verità delle variabili - invece di essere veri o falsi - sono reali tra 0 e 1. In questo senso estende la tradizionale logica booleana con valori di verità parziali. Consiste nel prendere in considerazione vari fattori numerici per arrivare a una decisione che si desidera accettabile.
Per i suoi aspetti numerici, la logica fuzzy si oppone alla logica modale .
Formalizzato da Lotfi Zadeh nel 1965 , uno strumento di intelligenza artificiale , viene utilizzato in campi diversi come:
È formalizzato da una teoria matematica degli insiemi fuzzy di Lotfi Zadeh che presenta un'estensione della teoria degli insiemi classici agli insiemi imprecisamente definiti .
Partendo da un concetto di funzione di appartenenza con valore in [0, 1], Lotfi Zadeh :
La logica fuzzy ha il vantaggio di essere di facile attuazione, senza pretendere il rigore di una logica probabilistica (che ammette anche valori di verità sull'intervallo [0,1]), sebbene quest'ultima da sola sia stricto sensu coerente (vedi Cox-Jaynes teorema ). Ad esempio la curva Ev (p) può essere sostituita da tre segmenti di linea retta senza eccessiva perdita di precisione per molte applicazioni considerate sopra.
Ammorbidendo l'algebra booleana , la logica fuzzy sostituisce il valore di verità di una proposizione da scegliere in { true , false } con un grado di verità, da scegliere ad esempio in [0, 1]. Nella logica fuzzy, ci sono quindi gradi nella soddisfazione di una condizione.
Un esempio semplice e antico è la docimologia , vale a dire la valutazione degli studenti di una classe: in ogni disciplina questa viene valutata con un voto compreso tra 0 (cattivo) e 20 (eccezionale) e si stima il livello dello studente per un dato orientamento ponderando questi punteggi con vari coefficienti a seconda dell'orientamento considerato.
Prendiamo l'esempio della velocità di un veicolo su una strada dove la velocità normale è di 90 km/h . La velocità è considerata elevata sopra i 100 km/h e regolamentare sotto gli 80 km/h . Vogliamo caratterizzare la velocità del veicolo rispondendo, ad esempio, alla domanda "La velocità è alta?" ".
![]() Fico. 1 |
In questo modello di codice stradale, in logica booleana, la risposta alla domanda è la seguente (vedi fig. 1 ):
In logica fuzzy, diversi gradi di risposta alla domanda "La velocità è alta?" "(Vedi fig. 2 ):
![]() Fico. 2 |
Allo stesso modo, possiamo definire una funzione corrispondente alla domanda "La velocità è bassa?" Come segue (vedi fig. 3 ):
![]() Fico. 3 |
Possiamo anche definire una funzione corrispondente alla domanda "La velocità è media?" "(Vedi fig. 4):
![]() Fico. 4 |
La transizione non deve essere lineare. Possono essere utilizzate transizioni iperboliche (come una sigmoide o una tangente iperbolica ), esponenziale , gaussiana (nel caso di uno stato medio) o qualsiasi altro tipo di transizione (vedi fig. 5 ).
![]() ![]() ![]() Fico. 5 |
Il grado di verità di una relazione fuzzy tra due o t oggetti è il grado di appartenenza della coppia o del t-uplo all'insieme fuzzy associato alla relazione.
Sia la relazione 1 (is-a / is-a). Per dire che ogni sedia è un mobile e che il 30% dei mobili sono sedie, si concede un grado di verità da 1 a est1 (sedia, mobile) e un grado di 0,3 a est1 (pezzo di mobili, sedia) .
La conoscenza topografica che un agente possiede di un mondo chiuso può basarsi sull'attribuzione di gradi di verità ad una relazione dello stile x est_near_of y than_de z , costruita e/o affinata dall'apprendimento.
In generale, le relazioni fuzzy consentiranno di codificare conoscenze graduate, empiriche o tipiche, acquisite direttamente o per euristiche, induzioni ...
Nel caso di una combinazione di affermazioni (ad esempio: "Se il cielo è azzurro e se ho tempo "), si presentano tre casi:
Definendo gli operatori logici di base come segue:
diventa possibile rappresentare tutte le operazioni logiche di base in logica fuzzy:
Operatore | Abbreviazione | Applicazione |
---|---|---|
O | ORO | A O B [ ] |
E | A E B | |
NO | NO A | |
O esclusivo | OUEX | A OUEX B |
O | NON-O | A NI B |
NOI | NAND | A ON B |
EQV | NON-OUEX | A EQV B |
RIPETITORE | RAPPRESENTANTE | REP A |
Inoltre, la dimensione numerica delle variabili di logica fuzzy consente l'utilizzo di altre operazioni:
Per combattere certi problemi di inferenza, potremmo volere un operatore AND più duro, associando l'operazione A AND B al grado .
In tal caso, OR e NOT devono essere scelti in modo da preservare o meno determinate proprietà, ad esempio per garantire il ragionamento. Si trovano nella Teoria delle Possibilità (op. Cit.) Le relazioni tra assiomi logici desiderati ed equazioni funzionali che gli operatori corrispondenti devono rispettare.Possiamo anche cambiare lo spazio della verità, preferendo ad esempio [-1 +1] per certe proprietà bipolari.
Gli operatori fuzzy possono essere definiti in vari modi, poiché dotano, secondo Goguen, lo spazio della verità prescelto di una struttura reticolare, auspicabile per l' AND e l' OR , reticolo preferibilmente complementato per un NOT involutivo.
Le famiglie parametriche di operatori fuzzy consentiranno allo stesso motore di inferenza di incorporare logiche più o meno rigide. La stessa applicazione potrà così fare appello a diverse implementazioni scelte con giudizio in base al contesto.
L'esempio che segue mostra attraverso 3 modalità di risoluzione l'influenza della scelta degli operatori, al di là di un approccio ingenuo ad un problema.
Questo esempio mostra come combinare operatori fuzzy di vario tipo attraverso il problema "conferma l'appartenenza di una persona a un gruppo":
stati Una persona sarà più o meno membro (a un livello fzMember , compreso tra 0 e 1, inclusi) di un gruppo, diciamo amanti dei fiori , o se, per qualsiasi motivo, ne fa già più o meno parte (a un fzDejaMembre livello ), o se ha una discreta conoscenza delle orchidee ( fzConnaitOrchidees ) e quella conoscenza delle orchidee è un criterio abbastanza decisivo ( fzOrchideesAmis ) per appartenere al gruppo degli amanti dei fiori . Soluzione 1 fzMembre = Zadeh_OR(fzDejaMembre, Multiply_AND(fzConnaitOrchidees, fzOrchideesAmis))Zadeh OR
Moltiplicare AND
(paraboloide iperbolico)
Una soluzione che utilizzerebbe solo gli operatori Zadeh sarebbe:
fzMembre = Zadeh_OR(fzDejaMembre, Zadeh_AND(fzConnaitOrchidees, fzOrchideesAmis))Zadeh OR
Zadeh AND
Una soluzione che utilizzerebbe solo operatori rappresentabili da paraboloidi iperbolici sarebbe:
fzMembre = Add_OR(fzDejaMembre, Multiply_AND(fzConnaitOrchidees, fzOrchideesAmis))Aggiungi OR
(paraboloide iperbolico)
Moltiplicare AND
(paraboloide iperbolico)
I tre metodi discussi sopra convergono quando i valori di input sono booleani:
pour fzDejaMembre=0 (faux), fzConnaitOrchidees=0 (faux) et fzOrchideesAmis=1 (vrai), on trouve 0 (faux) pour fzDejaMembre=0 (faux), fzConnaitOrchidees=1 (vrai) et fzOrchideesAmis=1 (vrai), on trouve 1 (vrai) pour fzDejaMembre=1 (vrai), fzConnaitOrchidees=1 (vrai) et fzOrchideesAmis=1 (vrai), on retrouve 1 (vrai) pour fzDejaMembre=1 (vrai), fzConnaitOrchidees=0 (faux) et fzOrchideesAmis=1 (vrai), on conserve 1 (vrai)Per l'esempio dell'orchidea sopra, una situazione normale è che conoscere le orchidee implica l' appartenenza a un gruppo. Vale a dire, più precisamente, che non si possono conoscere le orchidee e , allo stesso tempo, non far parte del gruppo degli amici dei fiori .
fzImpliqueOk = NOT(AND(fzConnaitOrchidees, NOT(fzMembre)))Proprio come abbiamo visto sopra diversi modi per implementare gli operatori OR e AND, ci sono anche diversi modi per implementare la nozione di implicazione.
fzImpliqueOk = Bool_IMPLIES(fzConnaitOrchidees, fzMembre) fzImpliqueOk = Zadeh_IMPLIES(fzConnaitOrchidees, fzMembre) fzImpliqueOk = HypPar_IMPLIES(fzConnaitOrchidees, fzMembre)IMPLICAZIONI booleane
Zadeh IMPLICITA
Paraboloide iperbolico
IMPLICA
Gli operatori di cui sopra verranno implementati rispettivamente in questo modo:
fzImpliqueOk = fzConnaitOrchidees ⇐ fzMembre fzImpliqueOk = 1 - min(fzConnaitOrchidees, (1 - fzMembre)) fzImpliqueOk = 1 - fzConnaitOrchidees + (fzConnaitOrchidees*fzMembre)Un'applicazione informatica che mirerebbe ad offrire ad un operatore umano il trattamento di casi anomali partendo da quelli più sospetti utilizzerebbe i valori sopra indicati in grassetto ed ottenuti con il metodo identificato come Paraboloide Iperbolico , che risulta particolarmente discriminante.
Non è sicuro che questa applicazione sia di interesse per gli amici dei fiori . Comprensibile invece l'interesse per un servizio di medicina preventiva (o anche per un fioraio). Quando il numero degli esami di casi sospetti deve essere limitato (ad esempio per ragioni di tempo, costo, pericolosità, ecc.) , può rivelarsi utile una preclassificazione intelligente basata se non su una teoria indiscussa, almeno su una tecnologia operativa .
L'articolo commons: Fuzzy operator fornisce molte rappresentazioni grafiche di alcune possibili implementazioni di operatori fuzzy. Troveremo di seguito, a titolo esemplificativo, la rappresentazione di otto diverse implementazioni di un'operazione che mirerebbe a valutare la simultaneità di due fatti (giudicati di peso equivalente nelle sei immagini a sinistra ma di peso diverso nelle due immagini. di destra).
zadeh-AND
moltiplicare-AND
yager-AND
mm-PESO-OR-AND
zadeh-OR
add-OR
yager-OR
mm-PESO-E-OR
Sia v (x è caldo) = 0,8. Possiamo porre v (x è molto caldo) = 0.8² = 0.64 e viceversa v (x è abbastanza caldo) = rac2 (0.8) = 0.89, il che facilita la codifica della conoscenza empirica.
Una volta valutato il valore dell'ingresso (“La velocità è alta?”), è possibile determinare un valore per una funzione di uscita. Considera la regola "Se la febbre è alta, somministra l'aspirina". Tale regola è chiamata controllo fuzzy . È composto da due parti:
Queste due parti sono collegate. Possono essere rappresentati insieme come in fig. 6.
![]() Fico. 6 |
Esistono diverse tecniche per determinare il valore dell'output (nell'esempio: la quantità di aspirina da somministrare):
![]() Fico. 7 |
![]() Fico. 8 |
C'è un'opinione che dice che “La teoria degli insiemi fuzzy ha la particolarità di non avere teoremi da proporre. Vale a dire che se può rendere dei servizi tecnici, non può per tutti pretendere alcuno statuto di scienza, e ancor meno di teoria”.
Infatti, è stata formalizzata la logica fuzzy e un teorema (elementare, comunque) mostra che nel caso particolare in cui le proposizioni elaborate non sono fuzzy, la logica fuzzy si riduce alla logica classica.
Nel suo lavoro Rational Decisions in Uncertainty , Myron Tribus ricorda che il teorema di Cox-Jaynes mostra da un lato che possiamo rappresentare uno stato di conoscenza incerta con una probabilità, e dall'altro che qualsiasi mezzo utilizzato per prendere decisioni sarà isomorfo alla teoria della probabilità o inconsistente. La conoscenza sfocata non è propriamente una conoscenza incerta : possiamo per esempio sapere con precisione che un uomo è alto 1,74 m . Tuttavia, ciò che non è chiaro è se sarà considerato "grande" o "piccolo".
Viceversa , dire: "l'età di questa persona è vicina ai 30 anni" rappresenta una stima vaga dell'età effettiva della persona, che è per parte sua molto precisa. L'imprecisione riguarda la stima stessa e non l'età effettiva.
Potremmo anche dire: "l'età di questa persona è compresa tra i 27 ei 33 anni, con una probabilità di 0,8". Anche in questo caso, la probabilità misura uno stato di conoscenza dell'osservatore e non una caratteristica di ciò che si osserva.
Jim Bezdek distingue da parte sua probabilità e imprecisione: “Siamo in un deserto, dopo giorni di vagabondaggio… Quasi morti di sete, troviamo poi due bottiglie piene di un liquido. Sulla bottiglia A, un'etichetta dice " Bevibile con un grado di 0,9", e sulla bottiglia B, l'etichetta dice "Bevibile con una probabilità di 0,9". Quale di queste due bottiglie dovremmo scegliere? ". Se traduciamo le indicazioni delle etichette, togliamo che bevendo la bottiglia A, possiamo cavarcela con gli unici rischi, alcuni problemi intestinali non fatali... D'altra parte, bevendo la bottiglia B, ci sono un non- probabilità trascurabile (10% di probabilità) che il liquido possa essere molto nocivo (acido…) e assolutamente non potabile.
Una teoria delle possibilità è stata introdotta (anche da Lotfi Zadeh nel 1978) per consentire la considerazione combinata dell'imprecisione e dell'incertezza nella conoscenza.
La logica modale è stata introdotta da Aristotele , e poi continuata da Leibniz e dai ricercatori contemporanei per riflettere le menomazioni o le asserzioni dei miglioramenti presenti nei linguaggi naturali, concentrandosi ad esempio sui rapporti di vero, falso, necessario e possibile.
La teoria della complessità algoritmica (o complessità di Kolmogorov ) è anche un metodo più o meno rigoroso per considerare la difficoltà di dare la descrizione precisa di una cosa (X può apparire più complesso di Y per una macchina A e meno complesso di Y per una macchina B, ad esempio un computer quantistico, è quindi una complessità relativa ad una data macchina di riferimento .
Infine, le probabilità bayesiane utilizzate in un futuro incerto utilizzano approcci simili a quelli della logica fuzzy, ma questa volta senza alcuna arbitrarietà: le distribuzioni di probabilità a priori devono essere quella della massima entropia...