2017% Fuzzy%Logic% %%%%%% LISA%NILSSON% %LISNI222%
Innehållsförteckning0 1.#Inledning# 3% 1.1% Syfte( 3% 1.#Fuzzy#Logic# 4% 1.1(Bakgrund( 4% 2.#Fuzzy#Set# 5% 2.1(Fuzzy(set(vs(crisp(set( 5% 2.2(Medlemskap( 6% 2.3(Räkna(med(fuzzy(set( 8% 3.Fuzzy#regler# 9% 3.1(Lingvistiska(variabler( 9% 3.2(IfG(Then(regler( 10% 4.#Fuzzy#kontrollsystem# 10% 4.1(Fuzzification( 11% 4.2(Defuzzification( 12% 4.3(Var(används(dessa?( 13% 5.#Diskussion# 14% 6.#Litteraturförteckning# 15% 2
1.0Inledning00 Denna rapport kommer avhandla Fuzzy Logic, vad det innebär samt hur det fungerar. Bakgrunden och uppkomsten till Fuzzy Logic kommer även tas upp men främst grunderna och de centrala delarna kommer redogöras. Hur man räknar med Fuzzy Logic kommer också behandlas samt hur det kan appliceras på Fuzzy kontrollsystem. Jag har använt de engelska uttrycken i stor utsträckning men översatt till svenska där jag ansedde att det passade bättre. Detta arbete tillför inte något nytt till området utan är helt baserat på redan existerande material inom Fuzzy Logic. 1.1!Syfte0 Syftet med detta arbete är att visa hur Fuzzy Logic fungerar samt vad det är. Även att på ett kort vist redovisa hur Fuzzy Logic kan appliceras till system som verkar i verkligheten 3
1.0Fuzzy0Logic00 1.10Bakgrund0 Datavetaren Lotfi A. Zadeh publicerade en idé, en teori om fuzzy logic i Fuzzy Sets 1965. Han utvecklade ett matematiskt sätt för datorer att förstå lingvistiska variabler uppsatta i påståenden, i så kallade fuzzy sets. Det kunde vara variabler så som relativt snabbt eller ganska långsamt. Detta så att programmeringen av en dator eller system skulle kunna tänka lite mer likt en människa. (Hellmann, 2001) Zadeh såg behovet av fuzzy logic då den mer traditionella logiken, till exempel första ordningens predikat logik, endast handlade i absoluta sanningar. Att den traditionella logiken delade in världen i antingen absolut sant eller absolut falskt, en etta eller en nolla. Ett mellanting eller att det kan vara olika grader av sant eller falsk var något Zadeh tog upp som en möjlighet. Eftersom i människors värld är inte den reella världen bara antingen svart eller vitt, det kan vara ganska svart eller relativt vitt. Vi människor kan naturligt uppskatta dessa eftersom vi har tillgång till kontext i den reella världen. Men med hjälp av fuzzy sets och fuzzy logic kan man räkna ut om något är ganska svart eller relativt vitt med hjälp av medlemskap. (Zadeh, 1965) Både Zadeh och fuzzy logic blev extremt kritiserade när Zadeh kom på fuzzy logic. Det sades både att det var onödigt och att Zadeh hade gett upp då han tidigare forskat inom strikt modern kontroll teori och bytt sida till en logik som tillät tvetydigheter. Däremot började andra forskare studera ämnet och sakta med säkert spreds det särskilt i Europa, Kina och Japan. (Mukaidono, 2001) 4
2.0Fuzzy0Set0 2.10Fuzzy0set0vs0crisp0set0 Ett set består av ett eller flera element som tillsammans skapar en mängd som tillsammans blir ett set. Ett crisp set, som kan översättas till skarp uppsättning på svenska, kan även kallas för det klassiska setet. Ett skarpt set kan endast vara noll eller ett, falskt eller sant medan ett fuzzy set kan ta ändlöst med värden och istället för vara statiskt så får elementen medlemsgrader. Ett skarpt set kan rent matematiskt uttrycka att alla långa människor är över 180 centimeter, att i ett skarpt set är A = lång människa och x = höjd. Däremot om man använder detta sätt att se på världen räknas en människa endast som lång om denne är exakt eller över 180 centimeter lång fastän någon som är 179,9 centimeter också är lång. Det är här fuzzy set kan användas för att bättre tolka och applicera vaga, abstrakta och oprecisa mänskliga koncept. I fuzzy set tillhör elementen då mer eller mindre till setet, det övergår i en karaktärmässig mjuk kurva från absolut inte tillhör till absolut tillhör setet. Hur denna kurva ser ut beror på medlemskapsfunktionen i universumet. Den mjuka övergången gör ett fuzzy set smidigt och kan därmed använda lingvistiska uttryck så som ganska lång eller ganska kort Figur(1.(Hämtad(från( http://ops.fhwa.dot.gov/publications/viirpt/sec9.htm( Om man antar att figuren ovan visar när det är varmt utomhus och den röda linjen är ett skarpt set och den gröna linjen ett fuzzy set. Man kan då enkelt se att den röda linjen visar att det blir 5
varmt exakt när det är 80 grader Fahrenheit medan den gröna linjen är mer krökt och visar att det absolut är varmt ute vid 100 grader Fahrenheit. (Bai & Wang, 2006) 2.20Medlemskap0 I fuzzy set så är då gränserna inte lika tydliga som i crisp sets utan är mjukare. Så hur mycket en variabel tillhör en mängd kallas för medlemsgrad. Detta kan man räkna ut med hjälp av medlemskapsfunktioner. En medlemsfunkton kan se ut så här; µ A : U! [0, 1] µ A får graden av medlemskap som ligger någonstans mellan noll och ett. U står för det universum som A ligger i. µ A ligger vanligtvis mellan noll och ett, om graden av medlemskap är noll är den absolut inte med i fuzzy setet medan om graden är ett är den absolut med i setet. Om µ A till exempel skulle ligga på 0,5 skulle man kunna säga att medlemskapet ligger lika mycket i som utanför setet. Det finns däremot olika medlemskapsfunktioner som används inom fuzzy logic däribland är de vanligaste triangelfunktioner och Gaussian-funktionen. Exempel av triangelfunktioner är triangular som tre parametrar, till exempel a, b, c. Dessa parametrar fungerar som de punkter som triangeln utgår ifrån. Figur(2(Källa:((Jang,(Sun,(&(Mizutani,(1997) 6
Funktionen till en tringular, som syns ovan, är väldigt enkel att räkna ut och är en av orsakerna till varför den används i så stor utsträckning. Den nedre gränsen, a, som är 20 och den övre gränsen, 80, är de mängder som x kan ha i detta universum. Om x till exempel skulle vara 40 skulle medlemsgraden ungefär vara 0,5. Ett annat exempel på en medlemskapsfunktion som också är en triangelfunktion, men det är inte bara ett värde som har graden medlemskap 1, och det är trapetzodialfunktion. Ekvationen för uträkningen av graden medlemskap ser ungefär likadan ut som för en triangular förutom att ytterligare en punkt den utgår ifrån. Figur(3(Källa:((Jang,(Sun,(&(Mizutani,(1997) Som figur 3 visar ovan har alla värden mellan 20 och 60 medlemskapsgraden 1, alltså mellan punkt b och c. Båda medlemskapsfunktionerna är endimensionella och har då endast en indata. De universumen ovan har varit kontinuerliga, kurvorna har ej haft något hopp i sig men ett universum skulle även kunna vara diskret, alltså ha hopp i sig. Ett exempel på ett fuzzy set med ett diskret ordnat universum skulle kunna se ut som i figur 4. Figur(4(Källa:((Jang,(Sun,(&(Mizutani,(1997) 7
Om X beskriver antalet barn som en familj valt att skaffa blir uppsättningen av variabler i detta fall X = {0,1,2,3,4,5,6}. Då kan fuzzy setet vara A = förnuftigt antal barn i en familj och visas på detta sätt: A = {(0, 0,1), (1, 0,3), (2, 0,7), (3, 1), (4, 0,7), (5, 0,3), (6, 0,1)} Hur fuzzy set ska vara uppbyggda beror helt på två olika saker, att identifiera vilket typ av universum som är mest lämpligt samt hur man specificerar en passande medlemskapsfunktion. Detta är en subjektiv process så det varierar mycket från person till person. Så som i exemplet ovan, förnuftigt antal barn, vad som är en förnuftig mängd barn är väldigt varierande från person till person och tre barn inte alls är den bästa mängden för många. (Jang, Sun, & Mizutani, 1997) 2.30Räkna0med0fuzzy0set0 I vanlig boolesk logik som används inom den första ordningens logik finns operatorerna AND, OR och NOT. Dessa används även inom fuzzy logic även om visar dem på ett lite annorlunda sätt. Precis som i boolesk logik står AND för konjunktion inom fuzzy logic. Alltså att exempelvis fuzzy set A och fuzzy set B blir fuzzy set C, kan skrivas C = A AND B eller C = A B. Medlemskapsfunktionen för denna beror på var de minsta graden av de två olika fuzzy setet startar respektive slutar. Detta då allt i fuzzy set A och B finns i fuzzy set C och den skrivs på detta sätt: µ C (x) = min(µ A (x), µ B (x)) = µ A (x) µ B (x) Denna kallas för snitt i fuzzy logic och kan kallas det största fuzzy setet. Den logiska operatorn OR är en disjunktion och kan ses som där både A och B är sant. Inom fuzzy logic kallas detta för union och om A och B är fuzzy sets och unionen av dessa är fuzzy set C kan det skrivas: C = A OR B eller C = A! B. Dennes medlemskapsfunktion är då beroende på det högsta graden medlemskap i A och B samt de nedre och övre punkterna. Den skrivs på följande sätt: µ C (x) = max(µ A (x), µ B (x)) = µ A (x) µ B (x) Union kan man kalla den minsta fuzzy setet. 8
Vid NOT så negeras uttrycket eller variabeln och kallas komplement inom fuzzy logic. Uttrycket för komplementet av fuzzy setet A skrivs som ett negerat A; A eller NOT A. Denna kan ses som allt som finns i universumet förutom det som finns i fuzzy set A och denne medlemskapsfunktion visar då allt som inte finns med i medlemskapsgraden för A: µ!(x) = 1 - µ A (x) (Jang, Sun, & Mizutani, 1997) 3.Fuzzy0regler 3.10Lingvistiska0variabler00 I system och processer är det vanligt att ha kvantitativa variabler som beskriver processerna. Idén bakom lingvistiska variabler är att många essentiella delar av dessa processer baseras på kvalitativa variabler, så som instruktioner och karaktärmässiga drag som ofta är vaga och ungefärliga. Att konvertera dessa till traditionella matematiska kvantitativa modeller kan göras med hjälp av fuzzy variabler. (Bandmer & Gottwald, 1995) En lingvistisk variabel omfattar olika lingvistiskt värden, dessa värden kallas för term sets. Alla term sets är ett fuzzy set som sedan definieras i ett universum. En lingvistisk variabel kan till exempel heta ålder och denna variabel består av flera term sets så som ung, väldigt ung och gammal och så vidare. Figur(5(Hämtad(från(www.mql5.com/en/articles/1991 I figur 5 kan man se att den lingvistiska variabeln age har tre term sets som är young, middle aged och old. (Jantzen, 2006) Term sets kan innehålla adjektiv och adverb som väldigt eller mer eller mindre, alltså ord som modifierar huvudtermen som kunde i detta fall vara ung. Dessa ord kallas för en hedge 9
och dem används för att få ytterligare värden inom term setet och fuzzy setet kan därmed bli mer exakt. (Jantzen, 2006) 3.20IfF0Then0regler0 If Then regler kan liknas vid om-så regler och består av en premiss och en konsekvens av denna premiss. If Then regeln antar formen; if x is A then y is B Här är A och B lingvistiska värden och är definierade genom fuzzy sets i universum för X respektive Y. Istället för att skriva hela uttrycket ovan så kan man förkorta det till A! B. Exempel på fuzzy If Then regler är uttryck som människor använder dagligen, det kan vara meningar som Om en tomat är röd så är den mogen eller Om vägen är hal så är det farlig att köra. (Jang, Sun, & Mizutani, 1997) Man kan använda dessa regler för att sedan få en effekt inom det system där man applicerat dessa regler. Exempelvis om man har en fläkt som ska kyla ned ett rum där man vill ha värdet kallt. Så om ett uttryck löd if rummets temperatur är varmt så sätt fläktens effekt på snabbt. Då kommer fläkten kyla ned rummet tills temperaturen i rummet är kallt och fläktens effekt istället blir långsamt. (Simoes) Användningen av Fuzzy If Then regler är oftast inom kontrollsystem som använder sig av fuzzy logic. Det förekommer i kommersiella produkter som allt från videokameror och automatisk överföring. (Russel & Norvig, 2009) 4.0Fuzzy0kontrollsystem0 Ett applikationsområde av fuzzy logic är i fuzzy kontrollsystem där man använder sig av fuzzy kontroller. I figur 6 visas vilken del av kontrollsystemet som använder fuzzy logic. Först blir den data som kommer in i system fuzzification för sedan fara vidare till Interference mechanism som kan beskrivas som beslutsfattardelen i processen. Här appliceras de regler som redan finns uppsatta, till exempel så används if then regler flitigt. När beslut om vad systemet ska göra skickas det vidare för att bli defuzzificationerad. Defuzzification används för maskinen som mottager vad som beslutats inte kan förstå fuzzy logic. (Passino & Yurkovich, 1998) 10
Figur(6(Hämtad((Passino(&(Yurkovich,(1998)( 4.10Fuzzification0 Fuzzy sets används för att kvantifiera den kvalitativa informationen som används vid användningen av if then regler. I fuzzy system så är inmatningen i systemen en kvantitativ numerisk siffra eller mängd som görs om till fuzzy set och denna metod kallas för fuzzification. Det fuzzification gör är att jämföra inmatningen med redan existerande medlemskapsfunktioner och matchar sedan inmatningsvärdet med rätt grad av medlemskap. (Simoes) Figur(7.(Källa((Simoes) Som figur 7 åskådliggör, om ett fuzzy kontrollsystem ska se till så att ett rum håller en viss temperatur som bestämt tidigare och fuzzy setet indelats i olika term sets som kallt, bra 11
och varmt och så vidare. Inmatningen till det fuzzy kontrollsystemet från detta rum kommer då vara en numerisk siffra på vilken temperatur Celsius det är i rummet och fuzzification gör om det till en term set. Om temperaturen i rummet skulle vara 25 grader Celsius skulle den då få värdet varmt och graden av medlemskap skulle vara 1.0. Utmatningen från fuzzificationprocessen skulle då kunna vara det är varmt i rummet. Detta skulle skickas vidare till den beslutsfattande delen i systemet, slutsatsmekanismen, och här hanteras den nya informationen huruvida något ska ske, så som exempelvis göra det kallare i rummet. Men hur medlemskapsfunktioner ska se ut i kontrollsystem är väldigt subjektivt och individuellt. Det beror mycket på vad det fuzzy kontrollsystemet är till för att övervaka. Det ultimata sättet att bestämma hur medlemskapsfunktionen ska se ut är att granska en mänsklig expert hur den agerat i ett rum som ska ha en viss temperatur. (Simoes) 4.20Defuzzification00 När ett beslut har fattats i ett fuzzy kontrollsystem måste den lingvistiska utmatningsvariabeln omvandlas till en kvantitativ eller numeriskt värde igen. Detta för att en fläkt inte kan öka effekten ganska mycket som en lingvistisk utmatning exempels skulle sett ut. Värdet måste vara skarpt och precist så maskinen kan tolka vad utmatningen är. Det finns många metoder inom defuzzification men det finns särskilt två olika metoder för att defuzza en lingvistisk variabel. (Simoes) Mean of Maxium (MOM) - metoden är den första av dessa tre. Denna räknar ut det högsta värdet i det fuzzy set som utmatas och skickar ut det värde som har den högsta graden av medlemskap. Det kan finnas flera värden som har hög grad av medlemskap och då räknas genomsnittet ut av dessa. Den ekvation som används ser ut på detta vis: # = % & µ & = max%(µ & )}%, & µ & = max%(µ & )}%är summan av alla de värden med högst medlemskasgrad och nämnaren m är antalet värden. Center of Gravity (CoG) metoden är den vanligaste defuzzificationsmetoden. Dennas ekvation ser lite ut som ekvationen för att räkna ut centrumet för gravitation inom fysik. Aren 12
under grafen från utmatningen från beslutfattningsstadiet som skickats till defuzzificationsteget räknas ut med hjälp av denna funktion: # = %.µ(&. )&.. µ(&. ) x i finns i ett universum som är diskret och µ(x i ) är x i grad av medlemskap i medlemskapsfunktionen. Så denna räknar då ut summan av x i och gångar detta med dennes medlemskapsfunktioner för att sedan divideras med alla medlemskapsfunktioners summor. Det man får ut då är mittpunkten i grafen som syns i figur 8. Där syns även skillnaden mellan outputen av MOM-metoden och CoG- metoden. Figur(8(Källa:((Bai(&(Wang,(2006) 4.30Var0används0dessa?0 Som nämnts tidigare kan detta användas i kommersiella apparater så som rakapparater men det kan även applicera i mycket större system som i Japan där ett tågsystem använder fuzzy kontrollsystem för att kontrollera accelerering, bromsning och stop. Det kan även appliceras på kameror ska autofokusera vilket Canon har gjort på deras. Där de först mäter avståndet till det objekt som fuzzy logic baserat på inbyggda medlemskapsfunktioner den ska fokusera på och sedan fokuserar på denna punkt. (Wilamowski & Irwin, 2011) Det forskas även om fuzzy system även kan hantera så stora system som autopilot system på flygplan. I en artikel av Kadam och Patki 2016 skriver dem att eftersom på det sätt flygplan flygs på vilket är väldigt dynamiskt i deras mening, behövs en dynamisk autopilot också. Dem anser då att ett fuzzy logic kontroll som är en icke-linjär kontrollteknik passar bättre än dagens linjära och statiska kontrollteknik (Kadam & Patki, 2016) 13
5.0Diskussion0 Innan jag började med detta arbete hade jag lite koll på området och tyckte mest att det lät intressant på grund av namnet Fuzzy Logic. Jag hade svårt att förstå hur orden fuzzy och logic kunde gå ihop. Nu efter och under arbetet har jag insett att fuzzy logic är intressant utöver namnet. Att uttrycka huruvida något kan vara någorlunda sant och att logik kan ha en någorlunda mer gråskala tycker jag var en helomvändning från vad jag tidigare lärt mig inom logik. Fuzzy logic passar bättre i den verkliga världen än traditionell logik så något inte är endast sant eller falskt samt att den använder sig av variabler i naturligt språk. Däremot ska man inte glömma bort att fuzzy logic behöver traditionell logik i vissa aspekter, så som inom fuzzy kontrollsystem. Men det faktum att fuzzy logic använder sig av lingvistiska variabler och inte numeriska variabler leder till att en människa ej behöver vara expert inom domänen för att förstå sig på kontrollsystemet. Denne kan då tolka variablerna med sitt naturliga språk och därefter justera efter dennes individuella behov. Däremot kan detta även vara till fuzzy logics nackdel. Eftersom i ett fuzzy set sätts medlemskapsfunktionerna efter subjektivitet och hur de själva anser vad som har medlemskapet 1. Då måste den som skriver eller utformar medlemskapsfunktionerna vara expert inom de specifika domänerna annars kommer fuzzy setet inte medla någon slags sanning alls. De kommer endast medla den subjektiva och individuella sanningen för skaparen. Att fuzzy kontrollsystem används i den utsträckning den gör idag var också en överraskning. När både kommersiella produkter och något så stort och för mig komplicerat system som ett tågsystem. Som Kadam och Patki visade med deras artikel så är det verkligen inte slut forskat inom vilka användningsområden fuzzy kontrollsystem kan ha. När jag tänker själv vad jag anser om fuzzy logic är jag positivt inställd, ett nytt sätt för mig att se på logik och vara kapabel till att säga något är mittemellan bra utan att verka ologisk är positivt. Däremot det ständiga behovet att ha kontext i en logik och inte har några fasta ståndpunkter kan kännas vanskligt. Men med att artificiell intelligens alltjämt försöker efterlikna mänskligt tänkande, att utgå från fuzzy logic vars utgångspunkt är den naturliga världen tror jag är rätt väg att fortsätta utvecklingen på. 14
6.0Litteraturförteckning0 Bai, Y., & Wang, D. (2006). Advanced Fuzzy Logic Technologies in Industrial Applications. London: Springer. Bandmer, H., & Gottwald, S. (1995). Fuzzy Sets, Fuzzy Logic, Fuzzy Methods with applications. Leipzig: John Wiley & Sons. Hellmann, M. (2001). Fuzzy Logic Introduction. Rennes Cedex: Laboratoire Antennes Radar Telecom. Jang, J.-S. R., Sun, C.-T., & Mizutani, E. (1997). Nero-fuzzy and Soft Computing: a computational approach to learning and machine inteligence. Upper Saddle River, NJ: Prentice-Hall Inc. Kadam, P., & Patki, A. M. (den 1 Juni 2016). Fuzzy Logic Controller: An Overview and Applications. Imperial Journal of Interdisciplinary Research, ss. 795-797. Passino, K. M., & Yurkovich, S. (1998). Fuzzy Control. Menlo Park, Californien : Addison Wesley Longman, Inc. Russel, S., & Norvig, P. (2009). Artificial Intelligence - A Modern Approach, 3rd edition. Upper Sadle River, New Jersey: Pearson. Simoes, M. G. (u.d.). Introduction to Fuzzy Control. Colorado School of Mines, Engineering Division. Colorado: Golden. Wilamowski, B. M., & Irwin, D. (2011). The Industrial Electronics Handbook. Alabama: CRC Press. Zadeh, L. (1965). Fuzzy Sets. Information and Control, 338-353. 15