LINKÖPINGS UNIVERSITET. Fuzzy Logic. Johan Brage 9/16/2012

Relevanta dokument
Fuzzy Logic. När oskarpa definitioner blir kristallklara. Åsa Svensson. Linköpings Universitet. Linköping

729G11 Artificiell Intelligens Marcus Johansson Marjo581. Fuzzy logic. Marcus Johansson Marjo581

Fuzzy Logic Linköpings Universitet

FUZZY LOGIC. Christopher Palm chrpa087

Fuzzy control systems

William Hernebrink

729G11 ARTIFICIELL INTELLIGENS 2, LINKÖPINGS UNIVERSITET. Fuzzy Logic. Caroline Allmér, caral

Fuzzy Logic: Den oskarpa skarpheten

Fördjupningsarbete HT 2012 FUZZY LOGIC

Innehållsförtekning Sida. Inledning 3 Vad är fuzzy logic? 3 Mängder 3 Medlemsfunktioner 5 Operationer 6 Fuzzification 8 Litteraturförteckning 9

2017% Fuzzy%Logic% %%%%%% LISA%NILSSON% %LISNI222%

FUZZY LOGIC. - Var går gränsen? Lovisa Rönmark lovro

Fuzzy logic. Julia Birgersson, julbi

Molly Lundberg 729G43 Kognitionsvetenskap mollu341 Artificiell Intelligens Linköpings Universitet. Fuzzy Logic. Vad är det och hur fungerar det?

Beräkning med ord. -hur en dator hanterar perception. Linköpings universitet Artificiell intelligens Erik Claesson

Artificiell Intelligens II, 729g11 Linköpings universitet Fuzzy logic

Fuzzy logic och fuzzy kontrollsystem

Fuzzy Logic. Ellinor Ihs Håkansson, ellih

När det oskarpa ger skärpa

Fussy sets och Fuzzy logik Luddigt eller självklart? Kognitionsvetenskap, 729G11 Sandra Svanberg, sansv418 19/09/2011 Linköpings universitet

Fuzzy Logic och dess implementering i ett företagsspel

1 Suddig logik och gitter

Bygga intelligenta system med luddig logik. Josefin Carlbring (josca824) Linköpings universitet 729G43 Artificiell Intelligens

Oskarp logik - en flervärdeslogik för framtiden? Karl Bruno Linköpings universitet

Tommy Färnqvist, IDA, Linköpings universitet. 2 Strukturer Domäner Tolkningar... 3

MATEMATIKENS SPRÅK. Avsnitt 1

Grundläggande logik och modellteori

(N) och mängden av heltal (Z); objekten i en mängd behöver dock inte vara tal. De objekt som ingår i en mängd kallas för mängdens element.

MA2047 Algebra och diskret matematik

p /\ q r DD1350 Logik för dataloger Kort repetition Fö 3 Satslogikens semantik

Övningshäfte 1: Logik och matematikens språk

Logisk semantik I. 1 Lite om satslogik. 1.1 Konjunktioner i grammatisk bemärkelse. 1.2 Sant och falskt. 1.3 Satssymboler. 1.

Semantik och pragmatik (Serie 3)

Logik. Dr. Johan Hagelbäck.

Ett Oskarpt Beslut. Om Oskarp Logik i Speldesign. Mikael Hedenström

ANDREAS REJBRAND NV3ANV Matematik Matematiskt språk

Filosofisk Logik (FTEA21:4) föreläsningsanteckningar/kompendium. v. 2.0, den 29/ III. Metalogik 17-19

Laboration Fuzzy Logic

Resonemang under osäkerhet. Bayes Certainty factors Dempster-Schafer Fuzzy logic

Utsagor (Propositioner) sammansatta utsagor sanningstabeller logisk ekvivalens predikat (öppna utsagor) kvantifierare Section

Övningshäfte 2: Induktion och rekursion

Hur implementera algoritmerna på maskinnivå - datorns byggstenar

Formell logik Kapitel 5 och 6. Robin Stenwall Lunds universitet

1 Föreläsning Implikationer, om och endast om

Fuzzy%Logic% Linköpings&Universitet&

Funktionsstudier med derivata

Tentamen i. TDDC67 Funktionell programmering och Lisp

Labb i Datorsystemteknik och programvaruteknik Programmering av kalkylator i Visual Basic

PARALLELL OCH SEKVENTIELL DATABEHANDLING. Innehåll

Visual Basic, en snabbgenomgång

Sanningsvärdet av ett sammansatt påstående (sats, utsaga) beror av bindeord och sanningsvärden för ingående påståenden.

Formell logik Kapitel 3 och 4. Robin Stenwall Lunds universitet

Komponentvisa operationer,.-notation Multiplikation (*), division (/) och upphöj till (ˆ) av vektorer följer vanliga vektoralgebraiska

Viktiga frågor att ställa när ett argument ska analyseras och sedan värderas:

Logik och modaliteter

Varför är logik viktig för datavetare?

Geometrimattan Uppdrag 2. Geometrimattan Uppdrag 1. Geometrimattan Uppdrag 4. Geometrimattan Uppdrag Aima din Sphero. 1. Aima din Sphero.

Logik: sanning, konsekvens, bevis

7, Diskreta strukturer

i LabVIEW. Några programmeringstekniska grundbegrepp

Lite om bevis i matematiken

Semantik och pragmatik

JavaScript del 3 If, Operatorer och Confirm

Grundläggande logik och modellteori (5DV102)

Datorlingvistisk grammatik I Institutionen för lingvistik och filologi Oktober 2007 Mats Dahllöf

Föreläsning 15. Logik med tillämpningar

februari en viss typ av text. net för en serie e och skrivträning. Träna läsförståelse aövning Månadens tänka vidare uttryck.

sanningsvärde, kallas utsagor. Exempel på utsagor från pass 1 är

Logik och kontrollstrukturer

Filosofisk logik Kapitel 15. Robin Stenwall Lunds universitet

Kap. 7 Logik och boolesk algebra

kl Tentaupplägg

Satslogik grundläggande definitioner 3. Satslogik. Uppgift 1. Satslogikens syntax (välformade formler) Satslogikens semantik (tolkningar)

Skapa modeller i Vikingen

Introduktion till programmering SMD180. Föreläsning 4: Villkor och rekursion

AVR 5. Styrning av trafikljus. Digitala system 15 p

Målet för D1 är att studenterna ska kunna följande: Använda några av de vanligaste PROC:arna. Sammanställa och presentera data i tabeller och grafiskt

DIGITALA TAL OCH BOOLESK ALGEBRA

Andragradsekvationer möter elever under sitt första år på gymnasiet.

Digitalt lärande och programmering i klassrummet

Sats. Om t är en rätvinklig triangel så är summan av kvadraterna på kateterna i t lika med kvadraten på hypotenusan.

Föreläsningsanteckningar och övningar till logik mängdlära

Kort introduktion till POV-Ray, del 1

Programmerbar logik. Kapitel 4

OOP Objekt-orienterad programmering

Tema: Pythagoras sats. Linnéa Utterström & Malin Öberg

Lösningar Datastrukturer TDA

Sanning och lögnare. Rasmus Blanck VT2017. FT1200, LC1510 och LGFI52

A B A B A B S S S S S F F S F S F S F F F F

Digital- och datorteknik

7, Diskreta strukturer

Mängdlära. Kapitel Mängder

Följddiagram för händelsestyrda rörelser

LAB 1. FELANALYS. 1 Inledning. 2 Flyttal. 1.1 Innehåll. 2.1 Avrundningsenheten, µ, och maskinepsilon, ε M

Exempeluppgift i Logikstyrning. 1 Inledning. 2 Insignaler och utsignaler

729G04 Programmering och diskret matematik. Python 2: Villkorssatser, sanningsvärden och logiska operatorer

Formell logik Kapitel 7 och 8. Robin Stenwall Lunds universitet

Logik för datavetare DVK:Log Tisdagen 28 oktober Institutionen för dataoch systemvetenskap David Sundgren

Tommy Färnqvist, IDA, Linköpings universitet. 1 Kursadministration 1. 2 Introduktion Varför logik? Satslogik... 2

Filosofisk logik Kapitel 19. Robin Stenwall Lunds universitet

Transkript:

LINKÖPINGS UNIVERSITET Fuzzy Logic Johan Brage 9/16/2012

Innehållsförteckning 1. Inledning... 1 2. Fuzzy Logic... 2 3. Crisp Sets... 3 4. Fuzzy Sets... 4 4.1 Operatorer... 5 4.2 IF-THEN... 7 4.3 Hedges... 7 5. Fuzzy Control... 8 5.1 Preprocessing... 9 5.2 Fuzzification... 9 5.3 Rule Base... 9 5.4 Inference Engine... 10 5.5 Defuzzification... 10 5.6 Postprocessing... 10 6. Diskussion... 11 Litteraturförteckning... 12

1. INLEDNING Denna rapport kommer att behandla grunderna vad gäller begreppen Fuzzy Logic och Fuzzy Sets, vad de är, hur de används och hur de skiljer sig från mer traditionell, tvåvärdig, sant-falskt-logik. Vidare kommer den att titta på hur ett Fuzzy Kontrollsystem kan vara uppbyggt. 1

2. FUZZY LOGIC Fuzzy Logic (FL) myntades som begrepp i och med Lotfi A. Zadehs artikel Fuzzy Sets från 1965. Tidigare hade man bara använt sig av tvåvärdig logik, där en sak antingen kan vara sann, som brukar tilldelas siffran 1, eller falsk, som brukar tilldelas siffran 0, och det inte fanns ett tredje alternativ. I kontrast mot detta söker fuzzy logic att representera just det som tidigare inte gick, nämligen grader av sanningar. Detta behövs för att kunna formalisera människans naturliga språk, eftersom detta är fyllt av definitioner som inte är absoluta. Ett exempel på detta är hur vi som människor definierar längd på oss själva och de runt omkring oss. Vi kan visserligen säga att en människa är lång eller kort baserat på våra ramar om vilka längder som faller inom respektive definition. Men vi är inte låsta vid att en människa antingen är lång eller kort, utan vi kan acceptera att någon är mer lång eller något kort. I den traditionella tvåvärdeslogiken skulle vi bara kunna säga att någon är lång eller kort, det finns ingen grad av längd. Hur man skulle definiera detta i en sådan logik blir alltså ganska olikt människans synsätt på längd. Om gränsen vid att vara lång skulle gå vid 185 cm och allt där under därmed skulle klassas som kort skulle alltså en person som är 184,9 cm klassas som kort medan en person som är 185,1 cm skulle kategoriseras som lång. På grund av vårat synsätt på saker som denna introducerade Zadeh FL (Zadeh, 1965), han ansåg att det inom logiken behövdes något sätt att beskriva grader av sanningar på. Zadeh definierade en logik där ett värde kan ha en viss sanningsmängd i fler än en variabel. Sanningsvärden kan då ligga mellan 0 och 1, vilket ger en möjlighet att bestämma hur stor del ett värde skulle finnas i respektive variabel. En person som är 183 cm lång skulle därför delvis befinna sig i kategorin kort, men samtidigt också ha medlemskap i kategorin lång. För att illustrera detta på ett tydligare sätt använder vi oss av fuzzy sets och crisp sets. 2

3. CRISP SETS Som tidigare nämnts hade man tidigare bara använt sig av en tvåvärdig logik. Denna har som sagt uppenbara komplikationer när det kommer till att försöka formalisera ett naturligt språk. Vi fortsätter med exemplet med personers längd för att tydligare visa detta. Ett så kallat crisp set är ett set där samtliga element med full säkerhet, alltså en sannolikhet på 1, ingår. För att koppla det till längdexemplet skulle alltså alla personer som är under 185 cm vara korta, medan alla som är över 185 cm skulle vara långa. Figuren nedan visar detta samband. Figur 1. Crisp set med två variabler På y-axeln i denna graf ser vi graden av sannolikhet och på x-axeln värdet. Det vill säga, alla värden som faller mellan 0 och 185 cm är korta, alla värden över 185 är långa. Skulle vi som ett tillägg till detta lägga in en ny variabel, vi kallar den för enkelhetens skull medellång, skulle vi behöva definiera vilka värden som skulle falla inom denna variabels räckvidd. Vi definierar om våra variabler så att kort ligger mellan 0 och 170, medellång får alla värden mellan 170 och 185, medan lång får behålla sina värden på 185 och uppåt. En figur för detta skulle därför se ut på följande vis. 3

Figur 2. Crisp set med tre variabler Y-axel samt x-axel visar fortfarande sannolikhet respektive värde. Vi ser nu att vi har tre olika variabler med väldigt bestämda värden. Vi skulle kunna fortsätta med detta för att lägga in ytterligare variabler om vi vill kunna definiera väldigt lång, extremt lång, väldigt kort och så vidare. Men istället för att göra detta så använder vi oss av FL. 4. FUZZY SETS Om vi stannar kvar vid exemplet med längder, men byter från ett crisp set till ett fuzzy set så kommer vi se skillnaderna mellan de olika typerna av set på ett tydligare sätt. Figur 3. Fuzzy Set 4

Vi kan nu tydligt se att ett fuzzy set inte har absoluta gränser, samt att det i de områden som är färgade röd samt ljusblå innebär att värden kan höra till fler variabler. Hur vi använder oss av detta visas mer noggrant i nästa stycke. 4.1 Operatorer För att kunna använda oss av FL behöver vi vissa operatorer för att kunna räkna ut värden på variabler. Standardmodellen för att räkna ut sanningsvärdet på ett fuzzy set är (Norvig & Russell, 2010); T(A B) = min(t(a),t(b)) T(A B) =max(t(a),t(b)) T( A) = 1 T(A) Detta innebär att man får ett sanningsvärde för unionen (A B) som är det minsta värdet på T(A) och T(B). Sanningsvärdet för disjunktionen (A B) är det högsta värdet på T(A) och T(B). Vi ser även att A är 1 T(A), då sanningsvärdet högst kan vara 1. Snittet mellan U och V, alltså A = U V, har medemsfunktionen µ A (x) = min(µ U (x), µ V (x)), vilket vi kan jämställa med operatorn AND, alltså de värden som ingår i båda seten. De feta linjerna i grafen visar snittet. Figur 4. Snitt 5

Unionen för U och V ger ett fuzzy set B = U V. Medlemsfunktionen för unionen blir således µ B (x) = max(µ U (x), µ V (x)), vilket innebär att resultatet är det samma som operatorn OR, alla värden som ingår i något av seten. Den feta linjen i grafen visar unionen. Figur 5. Union Komplementet för U och V ger oss medlemsfunktionen µ U (x) = 1 - µ U (x), alltså det inverterade setet, vilket innebär operatorn NOT, det vill säga alla värden som inte ingår i vårat set. Figur 6. Komplement 6

4.2 IF-THEN En annan stor del i användandet av FL är IF-THEN-regeln, som även kallas fuzzy implication. Denna regel används för att kunna representera kunskap genom att man ställer upp en premiss och en konsekvens. Premissen i denna regel är en input som när den är uppfylld leder till en output, alltså konsekvensen. Denna ser då ut på följande vis. IF premiss THEN konsekvens I detta kan man sedan byta ut premiss och konsekvens mot värden. Vi kan börja med att som premiss ha x är A och som konsekvens y är B. Detta leder då till att vi får IF x är A then y är B vilket vi i sin tur kan förtydliga ytterligare med hjälp av lingvistiska variabler. Om vi tänker oss en biltur som ett fuzzy system och vi ser ett rödljus kan vi använda oss av regeln för att fatta ett lämpligt beslut, i detta fall IF trafikljuset är rött THEN stanna bilen Detta exempel skulle fungera bra om vi såg att ljuset var rött, eftersom man då måste stanna. På samma sätt kan vi köra om ljuset visar grönt. Men om vi tar exemplet ur det verkliga livet så har inte ett trafikljus bara två värden, rött och grönt, utan det finns ett tredje värde, nämligen gult. Tittar vi på trafiken vid ett trafikljus ser vi att människor inte bara stannar vid rött och kör vid grönt, utan om ljuset är gult och det nyss var grönt så vet de att det snart kommer att bli rött och det är bäst att stanna bilen innan det slagit över. Det är här operatorerna AND och OR kommer in i bilden. Genom att använda oss av dessa operatorer kan vi specificera lite problemet lite noggrannare. Med hjälp av detta kan man sätta upp en regel även för värdet gult i trafikljuset. IF trafikljuset är gult AND trafikljuset var nyss rött THEN kör På samma sätt kan vi sätta in operatorn OR i premissen i de situationer det räcker att den ena av flera premisser är uppfylld. 4.3 Hedges Med hjälp av så kallade hedges, det vill säga lingvistiska variabler som kan liknas vid adjektiv, kan man ändra formen på medlemsfunktioner. För att förtydliga kan vi titta på en hedge som kallas very. Zadeh definierade denna hedge som kvadratroten av medlemsfunktionen (Zadeh, 1972). Den nya medlemsfunktionen ser alltså ut på följande vis; µ verya (x)=(µ A (x)) 2. På samma sätt definierade han en hedge somwhat som kvadratroten av medlemsskapsfunktionen, alltså; µ somewhata (x)= (µ A (x)). Genom att titta på dessa ekvationer kan vi snabbt se att detta inte gäller för värden som innebär inget medlemsskap och fullt medlemsskap, då rot och kvadrat av 1 och 0 7

förblir 1 och 0. Man brukar säga att very intensifierar funktionen och somewhat försvagar den. Detta innebär alltså att man får ett lite smalare set av very och ett lite bredare sådant av somewhat. Skillnaderna mellan dessa hedges blir tydligare om ritar upp en graf. Figur 7. Hedges very och somewhat Den blå linjen i grafen representerar vårat set omodifierat, medan den röda linjen visar µ verya och den gröna visar µ somewhata. Genom att använda sig av hedges kan man begränsa eller öppna upp sina sets efter eget tycke. Vi skulle till exempel kunna lägga in en hedge extremt och säga att den representeras av µ extremta (x)=(µ A (x)) 3 för att på så vis få en ännu smalare del av µ, och så vidare. 5. FUZZY CONTROL Nu när vi har grunderna i hur FL fungerar kan vi gå in på hur de kan användas. Ett exempel på detta är så kallade Fuzzy Kontrollsystem. Bilden nedan visar ett sådant system kan vara uppbyggt och vi kommer sedan gå in lite mer på djupet i de olika stegen och vad de har för uppgift. (Jantzen, 1998) 8

Figur 8. Fuzzy controller. (Jantzen, 1998) 5.1 Preprocessing Det första steget i systemet är preprocessing, där det oftast kommer in ett crisp inputvärde från något mätinstrument. Dessa värden är inte nödvändigtvis användbara i en fuzzy controller och behöver därför korrigeras innan de kan användas. Detta sker i en preprocessor och kan bland annat innefatta att man rundar av inputvärden som inte finns definierade i dess universum. Exempelvis om U = (-3, -2,..., 2, 3) och systemet får en input på 2,4, så måste detta rundas av till det närmsta lämpliga värdet i dess universum. Den kan även leta efter medelvärden, filtrera värden för att bli av med störningar, och så vidare. Syftet med en preprocessor är alltså att den ska göra datan användbar för systemet. (Jantzen, 1998) 5.2 Fuzzification Detta stadie innebär att systemet gör om de crisp-värden som gått igenom en preprocessor till användbara fuzzy-värden. Dessa crisp-värden konverteras till fuzzy genom att använda de olika medlemsskapsfunktioner som finns definierade i systemet. Värden matchas alltså till de olika lingvistiska variablerna som finns, detta för att controllern ska kunna använda dessa värden då ett beslut ska fattas. (Jantzen, 1998) 5.3 Rule Base Nästa stadie är att köra de fuzzy sets som systemet nu har genom något man kan likna vid en databas av regler. Det är här vi får användning av det vi tidigare gått igenom. Reglerna är 9

uppbyggda på samma sätt som förklarades i 4.2, alltså IF-THEN, med logiska konnektiv som AND och OR, samt användandet av hedges. (Jantzen, 1998) 5.4 Inference Engine I detta steg bekräftar systemet den input det har med de regler som finns. Om det finns en regel som säger att IF trafikljuset är rött THEN måste jag stå still och vi vet att våran input är trafikljuset är rött, så kan vi dra slutsatsen att Jag måste stå still. Vidare räknas graden till vilken en regels villkor är uppfyllt ut, ibland kallat regelns firing strength. En regel vi kallar för A skulle få ett fuzzy medlemsvärde µ xa där x är en godtycklig input och värdet µ ya där y är en annan godtycklig input. Aggregering av dessa inputs skulle alltså leda till en kombination av de två, µ xa AND µ ya. Aggregering är likställt med fuzzification om det bara finns en input till en fuzzy controller. Efter att graden med vilken samtliga regler i systemet är uppfyllda räknats ut samlar vi ihop dessa och skapar ett nytt fuzzy set. Detta skickas i sin tur vidare. (Jantzen, 1998) 5.5 Defuzzification Det fuzzy set vi fått av att utföra de tidigare stegen behöver nu konverteras till ett crisp värde som i sin tur kan skickas vidare till processen. Detta steg kallas defuzzification och är raka motsatsten av fuzzification, nämligen att man tar det fuzzy set som finns och gör om det till en crisp signal. Det finns ett flertal olika metoder att använda sig av för att defuzzifiera ett set, där Centre of gravity är en av de mest populära. Denna metod innebär att man räknar ut den punkt där en rak linje skulle dra ett streck mitt i det aggregerade fuzzy setet. (Jantzen, 1998) 5.6 Postprocessing Vi har nu nått den sista av de moduler som bygger upp ett Fuzzy kontrollsystem. På samma sätt som preprocessing som första steg i kedjan finjusterade värden så att man kunde applicera FL på de så kan postprocessen justera värden så att de kan användas som output. Det är inte nödvändigtvis sant att det crisp värde som togs fram av defuzzifiern kan appliceras direkt på 10

systemet, utan det kan behöva omvandlas till exempelvis andra enheter som finns i systemets universum. (Jantzen, 1998) 6. DISKUSSION Efter att ha gått igenom de olika stegen i ett fuzzy kontrollsystem så verkar inte logiken speciellt luddig längre. Ett regelverk där man kan använda sig av input som inte bara består av booleska värden tycks onekligen ha en ljus framtid eftersom vi med hjälp av detta kan uttrycka ett mänskligt språk och resonerande på en mer precis nivå. Däremot står klart att FL inte är någon sorts mirakelupptäckt då det dels till stor del ignorerades i västvärlden efter dess introduktion, samt att vi fortfarande har lång väg att gå innan vi kan bygga ett generellt system som efterliknar människan. Dock ska sägas att fuzzy kontrollsystem har stort värde inom vissa uppgifter. Efter att tågtrafiken i Sendai i Japan börjat styras av ett fuzzy system så förbättrades effektiviteten märkbart. Det finns som väntat en stor mängd skeptiker som anser att FL är överflödigt och att man kan utföra samma uppgifter med en tvåvärdig logik och vi kommer nog inte få veta om det hade fungerat lika bra om de som utvecklade Sendai-systemet istället använt sig av en sådan. Det finns även andra exempel på produkter där FL används med stor framgång, exempelvis luftkonditionerings-apparater, där termostaterna är fuzzy, som verkar spara in energi genom att effektivisera systemet. Hur man än vänder och vrider på saken så kommer det nog alltid finnas utrymme för olika sorters logiker, det enda som spelar roll är ändamålet och vem som designar systemet. Liksom all annan utveckling finns det alltid en lösning som är bättre än de andra, och tittar man på exemplen med Sendai och AC-enheter så tyder detta på att det finns saker som FL utför bättre än någonting annat. 11

LITTERATURFÖRTECKNING Jantzen, J. (1998). Design of Fuzzy Controllers. Jantzen, J. (1998). Tutorial on Fuzzy Logic. Klingenberg, B. (u.d.). Getting started with Fuzzy Logic. Hämtat från http://www.calvin.edu/~pribeiro/othrlnks/fuzzy/home.htm den 16 September 2012 Norvig, P., & Russell, S. (2010). Artificial Intelligence: A Modern Approach. Upper Saddle River, New Jersey, USA: Pearson. Zadeh, L. A. (1965). Fuzzy Sets. Information and Control, 338-353. Zadeh, L. A. (1972). A fuzzy-set-theoretic interpretation of linguistic hedges. Journal of Cybernetics, 4-34. 12