Come configurare smartphone e PC. Portale informativo
  • casa
  • Consiglio
  • Logica fuzzy per esempi fittizi. Progettazione di sistemi di tipo Mamdani

Logica fuzzy per esempi fittizi. Progettazione di sistemi di tipo Mamdani

meccanismi di pensiero, ho notato che in realtà non esiste una sola logica (ad esempio booleana), ma tante quante ne vogliamo, perché tutto è determinato dalla scelta del sistema di assiomi appropriato. Naturalmente, una volta scelti gli assiomi, tutte le affermazioni costruite sulla loro base devono essere strettamente, senza contraddizioni, collegate tra loro secondo le regole stabilite in questo sistema di assiomi.

Il pensiero umano è una combinazione di intuizione e rigore, che, da un lato, considera il mondo nel suo insieme o per analogia, e dall'altro, in modo logico e coerente e, quindi, rappresenta un meccanismo confuso. Le leggi del pensiero che vorremmo includere nei programmi informatici devono necessariamente essere formali; le leggi del pensiero manifestate nel dialogo uomo-uomo non sono chiare. Possiamo quindi dire che la logica fuzzy può ben adattarsi al dialogo umano? Si se Software , sviluppato tenendo conto della logica fuzzy, diventerà operativo e potrà essere implementato tecnicamente, quindi la comunicazione uomo-macchina diventerà molto più conveniente, più veloce e più adatta alla risoluzione dei problemi.

Il termine " logica confusa" è solitamente usato in due significati diversi. In senso stretto, la logica fuzzy è il calcolo logico, che è un'estensione della logica multivalore. Nel suo senso ampio, che è quello predominante oggi, la logica fuzzy è equivalente al teoria insiemi fuzzy. Da questo punto di vista, la logica fuzzy in senso stretto è una branca della logica fuzzy in senso lato.

Definizione. Qualunque variabile sfocata caratterizzato da tre

Dov'è il nome della variabile, - insieme universale, è un sottoinsieme fuzzy dell'insieme, che rappresenta un vincolo fuzzy sul valore della variabile, condizionato da .

Usando l'analogia di una borsa da viaggio, variabile sfocata può essere paragonato a una borsa da viaggio con un'etichetta che ha pareti "morbide". Quindi - l'iscrizione sull'etichetta (il nome della borsa), - un elenco degli articoli che, in linea di principio, possono essere collocati nella borsa, e - parte di questo elenco, dove per ciascun articolo è indicato un numero che caratterizza la borsa grado di facilità con cui l'oggetto può essere riposto nella borsa.

Consideriamo ora i vari approcci per definire le operazioni di base su variabili fuzzy, cioè congiunzione, disgiunzione e negazione. Queste operazioni sono fondamentali per la logica fuzzy, nel senso che tutte le sue strutture si basano su queste operazioni. Attualmente in logica fuzzy come operazioni di congiunzione e le disgiunzioni utilizzano ampiamente -norme e -conormi, che sono arrivati ​​alla logica fuzzy dalla teoria degli spazi metrici probabilistici. Sono abbastanza ben studiati e costituiscono la base di molte costruzioni formali della logica fuzzy. Allo stesso tempo, l’espansione dell’ambito di applicazione della logica fuzzy e delle capacità di modellazione fuzzy richiede la generalizzazione di queste operazioni. Una direzione è associata all’indebolimento della loro assiomatica per espandere gli strumenti della modellazione fuzzy. Un'altra direzione di generalizzazione operazioni di congiunzione e la disgiunzione della logica fuzzy è associata alla sostituzione dell'insieme di valori di appartenenza con un insieme linearmente o parzialmente ordinato di valutazioni di credibilità linguistica. Queste generalizzazioni delle operazioni fondamentali della logica fuzzy, da un lato, sono causate dalla necessità di sviluppo sistemi esperti, in cui i valori di verità di fatti e regole sono descritti da un esperto o da un utente direttamente su scala linguistica e sono di natura qualitativa. D’altro canto, tali generalizzazioni sono causate da uno spostamento di direzione sviluppo attivo logica fuzzy dalla modellazione di processi quantitativi e misurabili alla modellazione dei processi di pensiero umano, dove la percezione del mondo e il processo decisionale avvengono sulla base della granulazione delle informazioni e del calcolo in parole.

Una generalizzazione naturale delle operazioni di negazione involutiva della logica fuzzy sono negazioni non involutive. Sono di interesse indipendente e sono considerati in logiche fuzzy e altre non classiche. La necessità di studiare tali operazioni di negazione è causata anche dall'introduzione in considerazione delle generalizzate operazioni di congiunzione e disgiunzioni collegate tra loro utilizzando operazioni di negazione.

Un articolo standard sulla logica fuzzy di solito soffre di due cose:

  1. Nel 99% dei casi l'articolo tratta esclusivamente l'applicazione della logica fuzzy nell'ambito degli insiemi fuzzy, o meglio dell'inferenza fuzzy, e ancor più precisamente dell'algoritmo Mamdani. Sembra che questo sia l’unico modo in cui è possibile applicare la logica fuzzy, ma non è così.
  2. Quasi sempre l'articolo è scritto in linguaggio matematico. Ottimo, ma i programmatori usano un linguaggio diverso con notazioni diverse. Pertanto, si scopre che l'articolo è semplicemente incomprensibile per coloro che, a quanto pare, dovrebbero essere utili.
Tutto questo è triste, perché la logica fuzzy è una delle più grandi conquiste della matematica del XX secolo, se si prende come criterio l'uso pratico. In questo articolo cercherò di mostrare quanto sia semplice e strumento potente programmazione - altrettanto semplice, ma molto più potente del sistema delle normali operazioni logiche.

Più fatto notevole riguardo alla logica fuzzy è che lo è principalmente logiche. Fin dagli inizi della logica matematica è noto che qualsiasi funzione logica può essere rappresentato da una forma normale disgiuntiva o congiuntiva, da cui consegue che per attuare il calcolo proposizionale sono sufficienti solo tre operazioni: congiunzione (&&), disgiunzione (||) e negazione (!). Nella logica classica, ciascuna di queste operazioni è specificata da una tabella di verità:

A b || un essere e un! -------- -------- ---- 0 0 0 0 0 0 0 1 0 1 1 0 1 0 1 0 1 0 1 1 0 0 1 1 1 1 1 1
Nella logica fuzzy, a differenza della logica classica, invece delle quantità VERO E menzogna valore utilizzato grado di verità, prendendo qualsiasi valore da un insieme infinito compreso tra 0 e 1 compreso. Quindi operazioni logiche non possono più essere presentati in una tabella. Nella logica fuzzy sono specificati da funzioni.

Esistono due modi per implementare la disgiunzione e la congiunzione:

Approccio #Maximin: a || b => max(a, b) a && b => min(a, b) #Approccio colorimetrico: a || b => a + b - a * b a && b => a * b
È data la negazione l'unico modo(non difficile da indovinare):

A => 1 - a
È facile verificare che per casi estremi - quando i valori delle variabili sono esclusivamente 1 o 0 - le funzioni di cui sopra forniscono tabelle di verità per le operazioni della logica classica. Pronto! Ora disponiamo di una logica avanzata che è incredibilmente potente, semplice e tuttavia pienamente compatibile con la logica classica in casi estremi. Ciò significa ovunque utilizziamo noi [programmatori]. espressioni logiche, possiamo usare espressioni di logica fuzzy? Non proprio.

Il fatto è che tutti gli operatori dei linguaggi di programmazione richiedono condizioni chiare, quindi ad un certo punto bisogna sempre ottenere un criterio di attivazione chiaro da un grado di verità confuso. Questo è simile a quanto accade in mondo quantistico: Finché il sistema evolve secondo l'equazione di Schrödinger, il suo stato quantistico cambia in modo deterministico e continuo, ma non appena tocchiamo il sistema, si verifica un salto quantico e il sistema collassa in uno degli stati discreti. Nella logica fuzzy questo si chiama defuzzificazione. La natura trasforma semplicemente uno stato quantistico in una probabilità e lancia i dadi, ma in generale esistono diversi metodi di defuzzificazione. Non approfondirò questo argomento, perché il suo volume richiede un articolo separato. Vorrei solo menzionare che il metodo di defuzzificazione dovrebbe essere scelto tenendo conto della semantica del problema.

Ad esempio, immagina un sistema di controllo di un razzo che utilizza la logica fuzzy per evitare ostacoli. Immaginiamo che il razzo voli dritto su per la montagna e il sistema di controllo calcola la soluzione: vola a destra - 0,5, vola a sinistra - 0,5. Se si utilizza la defuzzificazione utilizzando il metodo del centro di massa, il sistema di controllo darà il comando di volare dritto. Boom! Ovviamente, in questo caso soluzione corretta- lancia il dado e ricevi il comando "sinistra" o "destra" con una probabilità del 50%.

Nel caso più semplice, quando è necessario prendere una decisione in base al grado di verità, è possibile dividere l'insieme in intervalli e utilizzare if-else-if.

Se si utilizza la logica fuzzy per eseguire la ricerca utilizzando un criterio fuzzy, la defuzzificazione potrebbe non essere affatto necessaria. Facendo confronti, otterremo un certo grado di valore di uguaglianza per ciascun elemento dello spazio di ricerca. Possiamo definire un grado minimo di uguaglianza, al di sotto del quale non siamo interessati; per i restanti elementi la rilevanza sarà il grado di uguaglianza, in ordine decrescente ordineremo i risultati e lasceremo decidere all'utente quale risultato è corretto.

Ad esempio, ti farò uso della logica fuzzy per risolvere un problema con cui mi divertivo al college: il problema di trovare un carattere cinese da un'immagine.

Ho scartato subito l'idea di riconoscere qualsiasi scarabocchio disegnato dall'utente sullo schermo (allora era lo schermo di un PDA). Invece, il programma offriva di selezionare un tipo di tratto tra circa 23, definito dalle regole Calligrafia giapponese. Dopo aver scelto il tipo di elemento, l'utente ha disegnato un rettangolo in cui inserire l'elemento. Infatti, il geroglifico – sia inserito che memorizzato nel dizionario – veniva rappresentato come un insieme di rettangoli per i quali veniva definita una tipologia.

Come determinare l'uguaglianza dei geroglifici in una tale rappresentazione? Per cominciare, formuliamo il criterio in una dichiarazione chiara:

I geroglifici A e B sono uguali se e solo se per ogni tratto in A c'è un tratto uguale in B e per ogni tratto in B c'è un tratto uguale in A.

Si presume implicitamente che i geroglifici non contengano tratti duplicati, cioè se un certo tratto coincide con un tratto in un altro geroglifico, allora non può coincidere con nessun altro tratto nello stesso geroglifico.

L’uguaglianza dei tratti può essere definita come segue:

I tratti sono uguali se e solo se sono dello stesso tipo e i loro rettangoli occupano la stessa area.

Queste due definizioni ci forniscono un sistema di affermazioni sufficiente per implementare l'algoritmo di ricerca.

Innanzitutto, costruiamo la matrice E come segue:

For i in 1..n for j in 1..n E = A[i] == B[j] end end #A e B sono geroglifici; A[i] e B[j] sono le loro caratteristiche e l'operatore "==" calcola la loro uguaglianza fuzzy. #Si presuppone che entrambi i geroglifici abbiano lo stesso numero di caratteristiche - n.
Quindi chiudiamo questa matrice nel vettore M[n]:

For i in 1..n M[i] = E.max_in_row(i) end #Il metodo max_in_row calcola il valore massimo in una riga della matrice.
Utilizzo l'approccio maximin perché, in pratica, l'approccio colorimetrico produce valori troppo piccoli per le congiunzioni. Se ricordiamo che max è una disgiunzione, risulta che stiamo calcolando l'affermazione che i-esima caratteristica A è uguale al primo tratto di B oppure al secondo o terzo, ecc. Pertanto, M è un vettore di corrispondenze tra le caratteristiche A e le caratteristiche B.

#Solo una congiunzione confusa. e = M.min #Oppure così: e = M.sum / M.length #(rapporto tra la somma degli elementi e la lunghezza del vettore).
Entrambi i metodi funzionano, ma in modi diversi, e il secondo metodo funziona anche se si confrontano chiaramente le caratteristiche. Quale sia più corretto è una questione filosofica.

Qualche parola in più andrebbe detta sul confronto dei tratti. Secondo la definizione, l'uguaglianza dei tratti è la congiunzione di due condizioni: l'uguaglianza dei tipi e l'uguaglianza dei rettangoli. I tratti di alcuni tipi sono molto simili. Quando si accede, l'utente può facilmente confonderli, quindi vale la pena avere una tabella di somiglianza, i cui valori rifletteranno quanto la caratteristica i è simile alla caratteristica j (ce ne saranno naturalmente sulla diagonale principale). Come grado di uguaglianza dei rettangoli, possiamo prendere il rapporto tra l'area della loro intersezione e l'area del rettangolo più grande.

In generale, l’ambito della logica fuzzy è molto ampio. In qualsiasi algoritmo, in qualsiasi sistema di regole, prova a sostituire la verità e la menzogna con il grado di verità e, forse, questo sistema di regole o algoritmo rifletterà più accuratamente la realtà. Dopotutto, viviamo in un mondo fondamentalmente confuso.

Epimenide di Cnosso dell'isola di Creta è un poeta e filosofo semi-mitico vissuto nel VI secolo. a.C., una volta dichiarò: “Tutti i cretesi sono bugiardi!” Poiché lui stesso era cretese, è ricordato come l'inventore del cosiddetto paradosso cretese.


Nei termini della logica aristotelica, in cui un'affermazione non può essere allo stesso tempo vera e falsa, e tali autonegazioni non hanno senso. Se sono vere allora sono false, ma se sono false allora sono vere.


E qui entra in gioco la logica fuzzy, in cui le variabili possono essere membri parziali di insiemi. La verità o la falsità non sono più assolute: le affermazioni possono essere in parte vere e in parte false. L'utilizzo di questo approccio ci consente di dimostrare rigorosamente matematicamente che il paradosso di Epimenide è esattamente al 50% vero e al 50% falso.

Pertanto, la logica fuzzy è fondamentalmente incompatibile con la logica aristotelica, soprattutto per quanto riguarda la legge Tertium non datur ("Nessun terzo è dato" - latino), chiamata anche legge di esclusione della media1. Per dirla in breve, funziona così: se un’affermazione non è vera, allora è falsa. Questi postulati sono così basilari che spesso vengono semplicemente dati per scontati.


Un esempio più banale dell'utilità della logica fuzzy può essere fornito nel contesto del concetto di freddo. La maggior parte delle persone è in grado di rispondere alla domanda: “Hai freddo adesso?” Nella maggior parte dei casi (a meno che non si parli con uno studente laureato in fisica), le persone capiscono che non stiamo parlando temperatura assoluta sulla scala Kelvin. Sebbene una temperatura di 0 K possa senza dubbio essere definita fredda, molti non considereranno fredda una temperatura di +15 C.


Ma le macchine non sono in grado di eseguire gradazioni così precise. Se la definizione standard di freddo è “temperatura inferiore a +15 C”, allora +14,99 C sarà considerato freddo, ma +15 C no.

Teoria degli insiemi fuzzy

Diamo un'occhiata alla Fig. 1. Mostra un grafico che ti aiuta a capire come una persona percepisce la temperatura. Una persona percepisce una temperatura di +60 F (+12 C) come fredda e una temperatura di +80 F (+27 C) come calda. Le temperature di +65 F (+15 C) sembrano fredde per alcuni, ma abbastanza confortevoli per altri. Chiamiamo questo gruppo di definizioni la funzione di appartenenza a insiemi che descrivono la percezione soggettiva della temperatura da parte di una persona.

È altrettanto semplice creare set aggiuntivi che descrivono la percezione umana della temperatura. Ad esempio, puoi aggiungere set come “molto freddo” e “molto caldo”. Può essere descritto funzioni simili per altri concetti, come stati aperti e chiusi, temperatura del refrigeratore o temperatura della torre del refrigeratore.


Cioè, i sistemi fuzzy possono essere utilizzati come approssimatore universale (media) per una classe molto ampia di sistemi lineari e non lineari. Ciò non solo rende le strategie di controllo più affidabili nei casi non lineari, ma consente anche l’uso di valutazioni di esperti per costruire circuiti logici del computer.

Operatori fuzzy

Per applicare l'algebra ai valori fuzzy, è necessario determinare gli operatori da utilizzare. Di solito dentro Logica booleana Viene utilizzato solo un insieme limitato di operatori, con l'aiuto dei quali vengono eseguite altre operazioni: NOT (operatore NOT), AND (operatore AND) e OR (operatore OR).

Per questi tre si possono dare molte definizioni operatori di base, tre dei quali sono riportati in tabella. A proposito, tutte le definizioni sono ugualmente valide per la logica booleana (per verificare, basta sostituire 0 e 1 in esse). Nella logica booleana FALSO equivale a 0 e VERO equivale a 1. Allo stesso modo nella logica fuzzy, il grado di verità può variare da 0 a 1, quindi il valore “Cold” è vero elevato alla potenza di 0,1 e l'operazione NOT(“Cold”) darà il valore 0,9.


Puoi tornare al paradosso di Epimenide e provare a risolverlo (matematicamente si esprime come A = NOT(A), dove A è il grado di verità dell'affermazione corrispondente). Se vuoi di più compito difficile, quindi prova a risolvere il problema del suono di un battito di mani fatto con una mano...

Risoluzione di problemi utilizzando metodi di logica fuzzy

Solo poche valvole sono in grado di aprirsi “solo un po’”. Quando si utilizzano apparecchiature, vengono solitamente utilizzati valori chiari (ad esempio, nel caso di un segnale bimodale 0-10 V), che possono essere ottenuti utilizzando la cosiddetta "risoluzione dei problemi di logica fuzzy". Questo approccio consente di trasformare la conoscenza semantica contenuta nel sistema fuzzy in una strategia di controllo implementabile2.


Questo può essere fatto utilizzando varie tecniche, ma per illustrare il processo nel suo insieme, consideriamo solo un esempio.


Nel metodo di defuzzificazione dell'altezza, il risultato è la somma dei picchi fuzzy impostati, calcolata utilizzando i pesi. Questo metodo presenta diversi svantaggi tra cui brutto lavoro con funzioni di appartenenza a insiemi asimmetrici, ma presenta un vantaggio: questo metodo è il più semplice da comprendere.

Supponiamo che l'insieme delle regole che regolano l'apertura della valvola dia il seguente risultato:


"Valvola parzialmente chiusa": 0,2

"Valvola parzialmente aperta": 0,7

"Valvola aperta": 0,3

Se utilizziamo il metodo di defuzzificazione dell'altezza per determinare il grado di apertura della valvola, otterremo il risultato:

"Valvola chiusa": 0,1

(0,1*0% + 0,2*25% + 0,7*75% + 0,3*100%)/ /(0,1 + 0,2 + 0,7 + 0,3) =

= (0% + 5% + 52,5% + 30%)/(1,3) = = 87,5/1,3 = = 67,3%,

quelli. la valvola deve essere aperta al 67,3%.

Applicazione pratica della logica fuzzy

Quando apparve per la prima volta la teoria della logica fuzzy, nelle riviste scientifiche si potevano trovare articoli sui suoi possibili campi di applicazione. Man mano che gli sviluppi in questo settore progrediscono, di più applicazioni pratiche poiché la logica fuzzy cominciò a svilupparsi rapidamente. Questo elenco sarebbe troppo lungo in questo momento, ma ecco alcuni esempi per aiutarvi a capire quanto sia diffusa la logica fuzzy nei sistemi di controllo e nei sistemi esperti3.


– Dispositivi per il mantenimento automatico della velocità del veicolo e per l'aumento dell'efficienza/stabilità dei motori automobilistici (società Nissan, Subaru).

Fondamenti della teoria degli insiemi fuzzy e della logica fuzzy

Uno dei metodi per studiare gli insiemi senza specificarne i confini è la teoria degli insiemi fuzzy, proposta nel 1965 dal professore dell'Università della California Lotfi Zadeh. È stato originariamente sviluppato come mezzo per modellare l'incertezza nel linguaggio naturale. Tuttavia, successivamente la gamma di problemi risolti utilizzando l'apparato fuzzy set si è ampliata in modo significativo e ora comprende aree come l'analisi dei dati, il riconoscimento, la ricerca operativa, la modellazione di sistemi complessi, il supporto alle decisioni, ecc.

Spesso, nel determinare e descrivere le caratteristiche degli oggetti, operano non solo con valori quantitativi, ma anche qualitativi. In particolare, l'altezza di una persona può essere misurata quantitativamente in centimetri, oppure può essere descritta utilizzando valori qualitativi: nana, bassa, media, alta o gigante. L'interpretazione dei valori qualitativi è soggettiva, vale a dire possono essere interpretati in modo diverso da persone (soggetti) diverse. A causa della vaghezza dei valori qualitativi, quando è necessario passare da essi a valori quantitativi, sorgono alcune difficoltà.

Nei sistemi costruiti sulla base di insiemi fuzzy, vengono utilizzate regole della forma “SE A ALLORA B” (A ® B), in cui sia A (condizione, premessa) che B (risultato, ipotesi) possono includere valori qualitativi. Ad esempio, “SE Altezza = “alto” THEN Tipo_sport = “basket”.”

Una variabile il cui valore è determinato da un insieme di valori qualitativi di alcune proprietà è chiamata teoria degli insiemi fuzzy linguistico. La regola di esempio utilizza due variabili linguistiche: Height e Sport_type.

Ogni valore di una variabile linguistica è determinato attraverso un cosiddetto insieme fuzzy. Insieme sfocato determinato attraverso una scala di base X e funzione di appartenenza (funzione caratteristica) m( X), Dove X Î X. Inoltre, se in un insieme di Cantor classico un elemento appartiene all'insieme (m( X) = 1), o non appartiene a (m( X) = 0), allora nella teoria degli insiemi fuzzy m( X) può assumere qualsiasi valore nell'intervallo . Sui set fuzzy puoi esibirti operazioni standard: addizione (negazione), unione, intersezione, differenza, ecc. (Fig. 33).

Per gli insiemi fuzzy esistono anche una serie di operazioni speciali: addizione, moltiplicazione, concentrazione, espansione, ecc.

Quando si specifica una variabile linguistica, i suoi valori, cioè gli insiemi fuzzy, devono soddisfare determinati requisiti (Fig. 34).

1. Ordine. Gli insiemi fuzzy devono essere ordinati (organizzati su una scala di base) secondo l'ordine in cui sono specificati i valori qualitativi per una variabile linguistica.

2. Limitato. L’ambito di definizione di una variabile linguistica deve essere chiaramente definito (minimo e valori massimi variabile linguistica sulla scala base). Ai confini dell'insieme universale in cui è definita una variabile linguistica, i valori delle funzioni di appartenenza dei suoi insiemi fuzzy minimo e massimo devono essere unitari. Nella figura T 1 ha funzione sbagliata accessori e T 6 è corretto.

3. Coerenza. Una distinzione naturale tra concetti (i valori di una variabile linguistica) deve essere osservata quando lo stesso punto dell'insieme universale non può appartenere contemporaneamente a m( X) = da 1 a due o più insiemi fuzzy (il requisito è violato dalla coppia T 2 – T 3).

4. Completezza. Ogni valore del dominio di definizione di una variabile linguistica deve essere descritto da almeno un insieme fuzzy (il requisito è violato tra la coppia T 3 - T 4).

5. Normalità. Ogni concetto in una variabile linguistica deve avere almeno un riferimento o oggetto tipico, cioè ad un certo punto la funzione di appartenenza di un insieme fuzzy deve essere unitaria (il requisito è violato da T5).

X

Insieme fuzzy “altezza corta” m n ( X)

0 20 40 60 80 100 110 120 140 160 X

Insieme fuzzy “ad alta crescita” m in ( X)

0 20 40 60 80 100 110 120 140 160 X

D = N: Complemento dell'insieme fuzzy “altezza corta”

md ( X) = 1 – m n ( X)

0 20 40 60 80 100 110 120 140 160 X

N È V: Combinazione degli insiemi fuzzy “bassa crescita” e “alta crescita”

m nv ( X) = massimo(mn ( X), m dentro ( X))

0 20 40 60 80 100 110 120 140 160 X

NÇV: Intersezione degli insiemi fuzzy “bassa crescita” e “alta crescita”

m nv ( X) = min(mn ( X), m dentro ( X))

Riso. 33. Operazioni sugli insiemi fuzzy

M( X) T1 T2 T3 T4 T5 T6

Riso. 34. Un esempio di specifica di insiemi fuzzy per una variabile linguistica con violazione dei requisiti

I requisiti 2-4 possono essere sostituiti da uno universale: la somma delle funzioni di appartenenza m( X) per tutti gli insiemi fuzzy in ogni punto del dominio di definizione della variabile deve essere uguale a 1.

Quando si elaborano regole con variabili linguistiche (regole fuzzy), le regole della logica fuzzy vengono utilizzate per calcolare la verità di un'ipotesi. Logica confusa- un tipo di logica continua in cui premesse, ipotesi e formule logiche stesse possono assumere valori di verità con un certo grado di probabilità.

Principi di base della logica fuzzy:

· la verità di una premessa, ipotesi o formula sta nell'intervallo;

· se due premesse (E 1 ed E 2) sono collegate da Ù (AND logico), allora la verità dell'ipotesi H si calcola con la formula t(H) = MIN(t(E 1), t(E 2)) ;

· se due premesse (E 1 ed E 2) sono collegate da Ú (OR logico), allora la verità dell'ipotesi H si calcola con la formula t(H) = MAX(t(E 1), t(E 2) );

· se la regola (P) ha una propria stima di verità, allora la verità finale dell'ipotesi N totale viene corretta tenendo conto della verità della regola t(N totale) = MIN(t(N), t(P)) .

Introduzione alla logica fuzzy

La logica fuzzy è logica o sistema di controllo n-cifre sistema logico, che utilizza i gradi di stato (“gradi di verità”) degli input e genera output che dipendono dagli stati degli input e dal tasso di cambiamento di questi stati. Questa non è la solita logica booleana (binaria) "vero o falso" (1 o 0). computer moderni. Fornisce principalmente la base per ragionamenti approssimativi utilizzando soluzioni imprecise e consente l'uso di variabili linguistiche.



La logica fuzzy è stata sviluppata nel 1965 dal professor Lotfi Zadeh presso l'Università della California, Berkeley. La prima applicazione consisteva nell'elaborazione di dati informatici basati su valori naturali.


Per dirla semplicemente, gli stati della logica fuzzy possono essere non solo 1 o 0, ma anche valori compresi tra loro, ovvero 0,15, 0,8, ecc. Ad esempio, nella logica binaria, possiamo dire che abbiamo un bicchiere acqua calda(cioè 1 o alto livello logico) o un bicchiere di acqua fredda, cioè (0 o livello logico basso), ma in logica fuzzy possiamo dire che abbiamo un bicchiere di acqua calda (né calda né fredda, cioè a metà tra questi due stati estremi) . Logica chiara: sì o no (1, 0). Logica confusa: certo che sì; probabilmente no; Difficile da dire; forse sì, ecc.

Architettura di base di un sistema a logica fuzzy

Il sistema a logica fuzzy è composto dai seguenti moduli:



Fuzzifier (o operatore di sfocatura). Prende le variabili misurate come input e le trasforma valori numerici in variabili linguistiche. Trasforma i valori fisici e i segnali di errore in un sottoinsieme fuzzy normalizzato, che consiste in un intervallo per un intervallo di valori di input e funzioni di appartenenza che descrivono la probabilità dello stato delle variabili di input. Il segnale di ingresso è principalmente diviso in cinque stati, quali: grande positivo, medio positivo, piccolo, medio negativo e grande negativo.


Controllore. È costituito da una base di conoscenza e da un motore di inferenza. La base di conoscenza memorizza le funzioni di appartenenza e le regole fuzzy ottenute conoscendo il funzionamento del sistema nell'ambiente. Il motore di inferenza elabora le funzioni di appartenenza e le regole fuzzy risultanti. In altre parole, il motore di inferenza produce output in base alle informazioni linguistiche.


Operatore defuzzificatore o ripristino della limpidezza. Esegue il processo inverso del fuoco di fase. In altre parole, converte i valori fuzzy in valori numerici normali o segnali fisici e li invia a sistema fisico per controllare il funzionamento del sistema.

Principio di funzionamento di un sistema a logica fuzzy

L'operazione fuzzy implica l'uso di insiemi fuzzy e funzioni di appartenenza. Ogni insieme fuzzy è una rappresentazione di una variabile linguistica che definisce un possibile stato di output. La funzione di appartenenza è una funzione del valore generale dell'insieme fuzzy, in modo che sia il valore generale che l'insieme fuzzy appartengano all'insieme universale.


I gradi di appartenenza a questo valore generale nell'insieme fuzzy determinano l'output in base al principio IF-THEN. L'appartenenza viene assegnata in base al presupposto dell'output dagli input e del tasso di variazione degli input. La funzione di appartenenza è fondamentalmente rappresentazione grafica insieme sfocato.


Consideriamo un valore "x" tale che x ∈ X per l'intero intervallo e un insieme fuzzy A, che è un sottoinsieme di X. La funzione di appartenenza di "x" al sottoinsieme A è data da: fA(x), Si noti che "x" indica il valore dell'iscrizione. Di seguito è riportata una rappresentazione grafica degli insiemi fuzzy.



Mentre l’asse x indica l’insieme universale, l’asse y indica i gradi di appartenenza. Queste funzioni di appartenenza possono essere di forma triangolare, trapezoidale, a punto singolo o gaussiana.

Esempio pratico di sistema a logica fuzzy

Sviluppiamo sistema semplice controllo fuzzy per controllare il funzionamento della lavatrice, in modo che il sistema fuzzy controlli il processo di lavaggio, l'assunzione di acqua, il tempo di lavaggio e la velocità di centrifuga. I parametri di input qui sono il volume degli indumenti, il grado di sporco e il tipo di sporco. Mentre il volume degli indumenti determinerebbe l’assunzione di acqua, il grado di contaminazione sarebbe a sua volta determinato dalla limpidezza dell’acqua, e il tipo di sporco sarebbe determinato dal tempo in cui il colore dell’acqua rimane costante.


Il primo passo è definire variabili e termini linguistici. Per i dati di input, le variabili linguistiche sono riportate di seguito:

  • Tipo di fango: (Grasso, Medio, Non Grasso)
  • Qualità dello sporco: (Grande, Medio, Piccolo)

Per l'output, le variabili linguistiche sono riportate di seguito:

  • Tempo di lavaggio: (Breve, Brevissimo, Lungo, Medio, Molto Lungo) (breve, brevissimo, lungo, medio, lunghissimo).

Il secondo passo prevede la costruzione di funzioni di appartenenza. Di seguito sono riportati i grafici che definiscono le funzioni di appartenenza per i due input. Funzioni accessorie per la qualità del fango:



Funzioni accessorie per tipo fango:



Il terzo passo prevede lo sviluppo di una serie di regole per la base di conoscenza. Di seguito è riportato un insieme di regole che utilizzano la logica IF-THEN:

SE la qualità dello sporco è piccola E il tipo di sporco è grasso, ALLORA il tempo di lavaggio è lungo.
SE qualità sporco Medio E tipo sporco Grasso, ALLORA Tempo di lavaggio Lungo.
SE qualità dello sporco Grosso e tipo di sporco Grasso, ALLORA Tempo di lavaggio Molto Lungo.
SE qualità dello sporco Piccolo E Tipo di sporco Medio, ALLORA Tempo di lavaggio Medio.
SE qualità dello sporco Media E Tipo di sporco Medio, ALLORA Tempo di lavaggio Medio.
SE qualità dello sporco Grosso e tipo di sporco Medio, ALLORA Tempo di lavaggio Medio.
SE qualità dello sporco Piccolo e tipo di sporco Non grasso, ALLORA Tempo di lavaggio Molto breve.
SE qualità dello sporco Media E Tipo di sporco Non grasso, ALLORA Tempo di lavaggio Medio.
SE qualità dello sporco Grosso e tipo di sporco Grasso, ALLORA Tempo di lavaggio Molto Breve.

Fazifire, che inizialmente convertiva gli input del sensore in queste variabili linguistiche, ora applica le regole di cui sopra per eseguire operazioni sugli insiemi fuzzy (ad esempio MIN e MAX) per determinare le funzioni fuzzy di output. Una funzione di appartenenza viene sviluppata in base agli insiemi fuzzy di output. L'ultimo passoè la fase di defasificazione, in cui il defasificatore utilizza le funzioni di appartenenza dell'uscita per determinare il tempo di lavaggio.

Aree applicative della logica fuzzy

I sistemi a logica fuzzy possono essere utilizzati in sistemi automobilistici come le trasmissioni automatiche. Applicazioni sul territorio elettrodomestici includere microonde, condizionatori, lavatrici, televisori, frigoriferi, aspirapolvere, ecc.

Vantaggi della logica fuzzy

  • I sistemi a logica fuzzy sono flessibili e consentono di modificare le regole.
  • Tali sistemi accettano anche informazioni imprecise, distorte ed errate.
  • I sistemi a logica fuzzy possono essere facilmente progettati.
  • Poiché questi sistemi sono associati al ragionamento umano e al processo decisionale, sono utili nel modellare le decisioni situazioni difficili V vari tipi applicazioni.

sito web


Tag:



   Grazie per il tuo interesse progetto informativo sito web.
   Se vuoi interessante e materiali utili uscivano più spesso e c'era meno pubblicità,
   Puoi sostenere il nostro progetto donando qualsiasi importo per il suo sviluppo.

I migliori articoli sull'argomento