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 2
Inledning Med detta fördjupningsarbete vill jag ta reda på vad fuzzy logic är och hur det sklijer sig från traditionell logik. Vad är fuzzy logic? I traditionell logik användes binära exakta värden som variera mellan att antingen vara sant (true) eller falskt (false). För att förtydliga med ett exempel så kan man säga att ett värde är sant om det existerar och falskt om det inte existerar. Ta exempelvis en uppsatts, om den är skriven så får den värdet 1 vilket betyder att den är sann och om den inte är skriven så får den värdet 0 vilket betyder att den är falsk. Fuzzy logic eller oskarp logik, som är en vanlig svensk översättningen, är istället en form av flervärdes logik som också använder sig sant och falskt eller 1 och noll. Fast i fallet med fuzzy logic så är det en kontinuerlig linje mellan de reela talen 1 och 0 där 1 är tveklöst sant och 0 är tveklöst falskt. Värdena mellan dessa två tal är då gradskillnader av sanningar, alltså varken helt sanna eller helt falska. För att återgå till de tidigare exemplet med uppsatsskrivandet så kan man med hjälp av fuzzy logics säga, att även om man inte är färdig med skrivandet, att man nästan är färdig med sin uppsats. Detta påstående hade varit omöjligt att ställa, eller i alla fall mer svårgörligt, om man använt sig av den traditionella logikens regler. Med hjälp av fuzzy logic kan man beskriva att ett påstående har olika grader av sanningshalter. Mängder Fuzzy logic behandlar logikens mängdlära olikt den traditionella mängdteorin. Crisp Set ( Set översätts till den matematiska termen mängd) är de som normalt set används inom matematiken. Crisp sets kan förklaras genom att använda sig av en graf med en X och en Y axel. X axeln innehåller mändger och Y axeln sanningsgraden. Värdena är diskreta så sanningsgraden mäts vanligen mellan 0 och 1 och X axeln mängder har diskreta gränser som löper mellan ett exakt minimum och ett exakt maximum. För att exemplifiera så kan man använda sig av värmenivåer i duschen. Se bild 1. Bild 1: Bilden visar ett exempel på ett Crisp Set där X variabeln är värme i grader celsius, den röda stapeln är värmemängden varm. 3
Exemplet i bild 1 visar hur ett Crisp Set kan se ut. Med dessa regler så tillhör allt över 39 grader tveklöst värmemängden varm. Setet varmt definieras så att allt innanför intervallet mellan de två variablerna, 39 grader och en infinit variabel där allt över 39 grader ingår, är sant för den ligvistiska termen varmt. Ett problem som uppstår med Crisp Sets är när man ska använda sig av fler än ett set. Säg att det ska finnas ett set för kall bredvid setet varm. se bild 2. Bild 2: Bilden illusterar två Crisp Set, värme mäts i grader celsius. Problemet här blir att de lingvistiska termerna stämmer dåligt överens med verkligheten. Ifall man duschar i 39 gradigt vatten så duschar man i kall vatten men höjer man temperaturen med två grader så att vattnet blir 40 gradigt så duschar man plötsligt i varmt vatten. Varmt och kallt är varandras motsatser så att säga att skillnaden mellan de båda skulle vara en grad skulle nog vissa ställa sig kritiskt till. Ett sätt att lösa detta är att införa ännu en värmemängd. se bild 3. Bild 3: Bilden illusterar tre Crisp Set, värme mäts i grader celsius. Nu finns inte samma problem längre kvar att det går från kallt till varmt på bara en grads skillnad. Nu går det istället från kallt till ljummet till varm vilket fler skulle kunna hålla med är riktigt. Dock 4
så återstår ett annat problem, att man med Crisp sets bara kan behandla absoluta sanningar. Att ifall vattnet i duschen är 20 grader så är det det kallt men om man höjer temperaturen en grad till 21 grader så är vattnet plötsligt ljummet. Lingvistiska termer så som kallt, varmt och ljummet är sällan definierade som ett exakt värde, exempelvis 20 grader, och passar därför dåligt in i den här sortens logik. Eftersom världen sällan är sann eller falsk så föreslog Lotfi A. Zadeh (1965) sin Fuzzy set theory en teori om att man kan använda sig av Fuzzy sets. Ett Fuzzy set har inte sånna tveklösa eller absoluta gränser som Crisp set har så istället för antingen tillhöra en mängd eller inte tillhöra en mängd så kan man tillhöra en mängd med ett visst sanningsvärde. Med dessa regler så kan alltså 20 grader både vara kallt och ljummet. Se bild 4. Bild 4: Bilden illusterar tre Fuzzy Set, värme mäts i grader celsius. OBS grafen är ej skalenlig. skillnaden från 20 till 21 är inte längre skillnaden mellan kallt och ljummet utan skillnaden mellan att vattnet är tveklöst/absolut kallt och att vattnet är tveklöst/absolut kallt är 4 grader. Detta går även att uppnå med Crisp Sets ifall man väljer att ha gradsteg (i celsius) som är 4 grader men skillnaden är att 19 grader är ljummet är 25% sant och att 19 grader är kallt är 75% sant istället för att bara vara tveklöst/absolut kallt. Medlemsfunktioner För att kunna beskriva huruvida ett objekt är medlem i en mängd eller set så måste en terminologi fastslås. Variabler för set kan skrivas som versaler och variabler som anger objekt skrivs med gemener. För att beskriva att objekt x tillhör set X så skrivs följande: x ϵ X Inom fuzzy logic beskrivs dock medlemskap i par (X, µᵪ) och för att visa ett medlemskap så skrivs följande: 5
µᵪ:x [0,1] X är den mängd som x (ᵪ) tillhör och µ är till vilken grad som x tillhör X inom intervallet 0 till 1 där 0 är absolut medlemskapslös och 1 är en absolut medlem så x blir en fuzzy member (medlem) om 0 > x > 1. Så för att beskriva, med fuzzy logic termer, att ett objekt är medlem i en mängd så skrivs: X ={(x, µᵪ)} X är ett fuzzy set (mängd) som har medlemmen x och objektet x är medlem i setet X till graden µᵪ. Exempel med värme, 45 grader är varmt, varmt = X 45 grader = x. Operationer För att räkna på fuzzy sets så använder man sig av operationer som i den traditionella logiken på crisp sets. De vanligaste operationerna man använder sig av är union, snitt och komplement. Dessa operationer används på ungefär samma sätt som man använder på crisp sets fast skillnaden är att man även räknar med medlemsgrad när man räknar med fuzzy sets istället för sanningsvärden som man räknar på när man använder crisp sets (Riza C. Berkan, Sheldon L. Trubatch, 1997). En union är när man unifierar alla medlemmar hos två mängder för att bilda en ny mängd som innehåller alla tidigare medlemmar. Se bild 5. Bild 5 Venndiagram för unifiering av mängd A och B. Taget från Jantzen, J. Tutorial on Fuzzy Logic. Den nya mängden är det skuggade fältet och kan beskrivas som A B. Ett exempel är ifall mängd A innehåller objekten {a, c, d, f} och mängd B innehåller objekten {b, c, f} så skulle den nya unifierade mängden innehålla objekten {a, b, c, d, f} En union på ett fuzzy set fungerar istället så att den tar ut maxvärdet för µ hos en variabel och räknas ut följande: MAX{μA(x) μb(x)} Om vi går tillbaka till exemplet med varmvattnet i duschen så skrivs formeln om till underföljande och illustreras även med bild 6: MAX{μK(19) μl(19)} = MAX (0.25, 0.75) = 0.75 6
Bild 6: En illustration över en unifiering. OBS grafen är ej skalenlig. I bild 6 så kan vi att det tjocka sträcket visar en unifiering på ett crisp set och en fuzzy unifiering visar att grad (celsiusgrad) 19 tillhör mängden Kall med ett sanningsvärde på 75 procent. Ett snitt är när man kollar hur mycket av två mängder som överlappar varandra. Se bild 7. Bild 7 Venndiagram för snitt av mängd A och B. Taget från Jantzen, J. Tutorial on Fuzzy Logic. Snittet är det skuggade fältet och kan beskrivas som A B. Samma exempel visar att ifall mängd A innehåller objekten {a, c, d, f} och mängd B innehåller objekten {b, c, f} så kommer snittet innehålla objekten {c, f} Ett snitt på ett fuzzy set fungerar istället så att den tar ut minimivärdet för µ hos en variabel och räknas ut följande: MIN {μa(x) μb(x)} För att använda samma exempel som för union så skrivs formeln om till understående och illustreras även i bild 8: MIN {μk(19) μl(19)} = MIN (0.25, 0.75) = 0.25 7
Bild 8: En illustration över ett snitt. OBS grafen är ej skalenlig. I bild 8 så kan vi att det tjocka sträcket visar ett snitt på ett crisp set och en fuzzy snitt visar att grad (celsiusgrad) 19 tillhör mängden Kall med ett sanningsvärde på 25 procent. Fuzzification Ifall man använder sig av dusch exemplet och tycker om när vattnet är alldeles mellan ljummet och varmt, nämligt 40 grader, så kanske man vill skapa en bestämining som man kallar för skönt. Om man då använder sig av fuzzification så säger man att 40 gradigt vatten är det skönaste men 38 gradigt vatten är också skönt men inte fullt lika skönt utan den ingår bara i skönt till en viss del. 8
Litteraturförteckning Riza C. Berkan, Sheldon L. Trubatch Fuzzy systems design principles- Building fuzzy if-then rule bases ( 1997) Shigeo Abe - Neural networks and fuzzy systems - theory and application(1995) http://blog.peltarion.com/2006/10/25/fuzzy-math-part-1-the-theory/ Jantzen, J. Tutorial on Fuzzy Logic. http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.125.2096&rep=rep1&type=pdf Jantzen, J. Design Of Fuzzy Controllers http://site.iugaza.edu.ps/mahir/files/2010/02/design.pdf 9