Fuzzy Logic @student.liu.se 1
Sammanfattning Följande arbete är ett individuellt kursmoment som omfattar 3hp i kursen Artificiell Intelligens II (729G11) vid Linköpings universitet. I denna litteraturstudie har jag valt att fördjupa mig inom ämnet Fuzzy Logic. Vad Fuzzy Logic är för något, vad används det till och mer vilka olika komponenter som finns i ett Fuzzu Logic kontrollsystem. 2
Innehållsförteckning Sammanfattning... 2 1. Inledning... 4 2. Historia... 4 3. Fuzzy Logic, bakgrund... 5 4. Hur Fuzzy Logic fungerar... 6 4.1 Fuzzy set theory... 6 4.2 Fuzzy set... 7 4.2 Fuzzy set operations... 9 4.3 Hedges... 9 5. Fuzzy controllers... 10 5.1 Preprocessing... 11 5.2 Fuzzification... 11 5.3 Regelbas... 11 5.4 Slutlednings-motor... 12 5.5 Defuzzification... 12 5.6 Postprocessing... 12 6. Diskussion... 13 7. Referenser... 14 3
1. Inledning Jag kommer i denna litteraturstudie gå igenom grunderna till fuzzy logic. Efter bakgrund till fuzzy logic samt grunderna om vad fuzzy logic är, kommer jag att gå in på användning av fuzzy Logic inom kontrollsystem och vilka komponenter det finns i ett i en fuzzy controller. Till sist kommer jag att framföra mina reflektioner angående fuzzy logic och dess användning. 2. Historia Logiken har sitt ursprung från de antika grekernas filosofier. När man talar om traditionell logik syftar man oftast på two-valued logic som innebär att ett påstående kan ha två sanningsvärden, antingen så är det sant eller så är det falskt. Predikaten i den två-värderade logiken är begränsade till att vara skarpa i den utsträckningen att de inte får lov att vara oklara delmängder i universum av diskurs. Som vi kommer att se senare kan däremot de predikat som behandlas med Fuzzy Logic vara antingen av strikt karaktär, exempelvis; dödlig, exakt, fader åt, eller så kan de vara mer generella så som exempelvis; illamående, trött, stor, mycket tyngre och så vidare. 4
3. Fuzzy Logic, bakgrund Professor i datavetenskap vid Universitetet i Berkely, Lotfi A. Zadeh initierade fuzzy logic 1965. Enkelt kan man säga att fuzzy logic är multivalued logic, det vill säga, en slags logik där det finns mer än två sanningsvärden. Traditionellt inom logiken finns det två sanningsvärden, exempelvis; sant/falskt, ja/nej, lång/kort. Fuzzy logic å andra sidan tillåter värden som ligger mellan dessa skarpa sanningsvärden att bli definierade. Man kan säga att fuzzy logic är ett sätt att resonera ungefärligt istället för helt fixerat och exakt. Genom att kunna dra slutsatser baserade på oprecis information som exampelvis att; Rickard är ganska lång, eller Rickard är väldigt snabb kan man lyckas med att programmera datorer på ett sätt som mer liknar hur vi människor tänker. Genom fuzzy logic kan en dator processera ord från naturliga språk som exempelvis; stor och liten. För oss människor är det sällan att någonting är sant eller falskt utan mer en grad utav någonting, exempelvis en grad av lång; Rickard är rätt så lång. För fuzzy logic är allt, (i ett nötskal) inklusive sanningen, en fråga om till vilken grad. Fuzzy logic har trätt fram och visat sig vara ett vinstdrivande verktyg för kontroll och styrning av system och andra komplicerade industriella processer. Vi har även i våra hem, köksredskap och andra maskiner som kontrolleras med hjälp utav fuzzy logic. 5
4. Hur Fuzzy Logic fungerar Fuzzy Logic är baserad på teorin om fuzzy sets, där ett objekts tillhörighet/medlemskap är till en viss grad av mängd istället för antingen en medlem eller ej. Fuzzy Logic använder sig av intervallet 0-1 för att beskriva till vilken grad någonting är en medlem av något där 0 är ingen tillhörighet och där 1 är tillhör definitivt, för att skapa en logik som en grund för regler till en slutledning. Till skillnad från andra klassiska, logiska system, så syftar fuzzy logic till att kunna fatta rationella beslut, likt människan, detta trots att miljön kanske innehåller oklarheter och osäkerheter. Den förmåga som vi människor har, att kunna dra slutsatser, fatta beslut eller ge ungefärliga svar med den kunskapen eller informationen som finns tillgänglig, (men som även kan vara inexakt, ofullständig eller inte helt pålitlig) är något som ett vanligt Logiskt system inte kan behandla. Genom att representera innebörden av ett lexikalt, oprecist påstående som en elastisk begränsning för en variabel, tilldela variabeln ett slags medlemskapsvärde av ett fuzzy set (som jag kommer gå in på senare i texten), kan man med fuzzy logic däremot dra slutsatser utifrån denna oprecisa input av information. Fuzzy logic kan man säga fungerar som ett verktyg för att resonera och beräkna ungefärligt istället för exakt och precist. 4.1 Fuzzy set theory Denna ungefärliga beräkning/resonemang, som man med fuzzy logic utför tar variabler som är av lingvistisk karaktär, det vill säga, variabler vars värde är ord eller meningar i ett naturligt eller syntetiskt språk istället för siffror eller tal. Dessa lingvistiska variabler blir i sin tur beskrivna av fuzzy sets. Fyzzy set theory är ett medel för att specificera hur väl ett objekt uppfyller en vag beskrivning. För exempel: Rickard är 178cm lång, är Rickard lång? Här är det ingen osäkerhet om världen då vi vet att Rickards längd är 178cm, här är det en osäkerhet kring den lingvistiska termen lång som inte refererar till någon skarp avgränsning. När man talar om längd så är det en fråga om antal grader av hur lång någon kan tänkas vara. Fuzzy set theory betraktar Lång som ett fuzzy predikat och säger att sanningsvärdet av Lång(Rickard) är ett nummer mellan 0 och 1 istället för att vara sant eller falskt, det vill säga i detta exempel Lång eller icke Lång. 6
4.2 Fuzzy set Ett set är en mängd, exempelvis X. X har en samling av definitiva, urskiljbara objekt eller föremål. Objekten kan man säga är medlemar av mängden X. Det är medlemmarna som definierar ett set. För att avgöra om ett objekt tillhör/är medlem av en viss mängd (X) måste x (objekt) vara antingen sant eller falskt. Om ett objekt tillhör en viss mängd kan detta skrivas på följande sätt: x X För att återgå till föregående exempel där längd användes. Om vi ska skapa en klassisk set för lång (L), skulle den kunna se ut på följande sätt; L(x), x > 178cm, detta medför en väldigt skarp skillnad, då man är lång när man exempelvis är 178cm och längre men att man vid 177,5 cm inte skulle vara det. Eftersom längd är en elastisk egenskap blir då detta exempel problematiskt med att använda sig av ett så kallat crisp set. Om ett objekt istället har en tillhörighetsgrad av en mängd, medför detta en mjukare övergång från en tillhörighet till icke tillhörighet. Tillhörigheten blir stegvis tilltagande eller avtagande. Tillhörighetsgraden för alla medlemar definierar ett fuzzy set. Figur 1. Två definitioner av set: tall men, ett crisp (strikt) och ett fuzzy set. Figuren visar här två olika definitioner av set tall men. Det klassiska crisp set är väldefinierat, exempelvis att vid x > 176cm så är man lång (medlemskap 1). Den 7
streckade linjen är ett så kallat fuzzy set. Här kan man se hur övergången gradvis går ifrån icke medlem (inte lång, i detta exempel) till medlem. Den är inte lika abrupt som den för crisp set är. Medlemmar av ett fuzzy set tas från universum, där universum är alla objekt som man tar med i beräkning för den givna mängden. För att en medlem av ett set ska tilldelas ett tillhörighetsvärde måste objektet vara en del av eller tillhöra ett set, som tidigare visats: x X Tillhörighetsgraden för alla medlemmar definierar ett fuzzy set. Givet en samling av objekt i universum (U), ett fuzzy set A, i U, är definierad som en mängd av ordnade par. Där är kallad medlemskapsfunktionen för mängden av alla objekt x i U. Medlemskapsfunktionen tilldelar alla x, en tillhörighetsgrad intervallet [0,1]., ett nummer i Definitionen av ett fuzzy set skiljer sig från ett vanligt set genom att varje medlemskapsvärde µ är tillåtna inom intervallet 0 µ 1, och ju högre värdet är, desto högre är tillhörighetsvärdet. Figur 2: Olika sätt att representera medlemskapsfunktioner för klockslag, omkring middagstid 8
Figuren ovan visar fyra möjliga medlemsfunktioner som representerar tiden omkring middagstid. a) är en parallelltrapets, b) triangulär, c) en smooth parallelltrapets och d) en smooth triangulär. Det finns två olika sätt att representera en medlemskapsfunktion: continuous eller discrete. Jag tänker inte gå djupare in i detta mer än att säga att för exempelvis parallelltrapets-varianten, som är utav typ, continuous, så kontrolleras den av fyra parametrar {a,b,c,d}. Parametrarna a,b,c,d, definierar fyra brytpunkter; a) vänstra nedre, b) vänstra övre, c) högra övre och d) högra nedre. 4.2 Fuzzy set operations För att kunna generera nya sets från existerande sets finns det två operationer som man kan ta till, intersection och union. Låt säga att vi har två fyzzy sets Z och Q, då kan dessa två operationer skrivas ut på följande sätt: Z Q = min(z,q) Z U Q = max(z,q) Den första innebär att man tar bara de element som finns i bägge seten, exempelvis; om set Z innefattar {o,p,q,r} och set Q innefattar {o,p,k,l} så kommer det finnas kvar {o,p} och det värde som har det minsta tillhörighetsvärdet, är det som kommer att returneras. Den andra innebär att man slår ihop alla de medlemmar som Z och Q innehar. Om exempelvis Z innefattar {o,p,q,r} medan Q innefattar {q,r,s,t}, blir unionen mellan Z och Q {o,p,q,r,s,t}. Det operationen sedan gör att återge det värde bland de som finns i unionen, vars tillhörighetsvärde är det högsta. 4.3 Hedges Medan algebraiska variablar tar nummer som värden tar en lingvistisk variabel ord eller meningar som värden. Namn på en sådan lingvistisk variabel är dess etikett. Det set av värden som den kan ta kallas för dess term set. En lingvistisk variabel tar ett lingvistiskt värde, vilket är ett fuzzy set, definierad i universum. Ett exempel då x är en lingvistisk variabel med etiketten Ålder. Då kan dess term set bli definierad på följande vis: T(ålder) = {ung, väldigt ung, inte så ung, gammal} 9
En modifierare eller en så kallad hedge, är ett ord som påverkar termer och modifierar dess innebörd. Exempelvis ordet väldigt i meningen; väldigt tjock. Ordet väldigt modifierar termen tjock. Det finns mängder av olika modifierare och här följer några få exempel; lite, väldigt, definitivt, mer eller mindre. Det kan vara svårt att säga precis vilken effekt som en modifierare har, men om vi tar modifieraren väldigt, kan man åtminstone se eller höra, att den kommer ha en ökande effekt, lika så som modifieraren lite kommer ha en minskaden effekt. Man använder sig av dessa modifierare för att slippa lägga till nya fuzzy sets. Ovan visar hur en omräkning av två fuzzy sets görs då de har olika modifierare, ett som intensifierar (very) och ett som medför en avtagande av intensitet (morl, more or less) av tillhörighetsvärdet. Tillhörighetsvärdet ( ) ökas genom att kvadreras, som i exemplet med modifieraren very, men minskas genom att dra kvadratroten ur som i exemplet för modifieraren morl. En uppsjö av modifierare kan genereras genom att ta, med k som ett positivt heltal. 5. Fuzzy controllers Fuzzy controllers används bland annat för att kontrollera prudukter som vi vanliga konsumenter använder oss utav. Det kan vara allt ifrån tvättmaskiner, digitalkameror eller potatiskokare. Men fuzzy controllers finns även i industriella processer så som luftkonditioneringssystem, robotar, tunnelbanetåg, med flera. Om man kan säga att fuzzy logic beräknar med ord istället för med siffror, kan man säga att fuzzy kontroll, kontrollerar med meningar istället för med ekvationer. Bilden nedan visar strukturen för hur en fuzzy controller är uppbyggd. 10
Figur 3: Struktur över en fuzzy controller. Själv kontrollern är mellan preprocessing och postprocessing. 5.1 Preprocessing Den input som man får är oftast av strikt (crisp) karaktär från något slags mätinstrument. I preprocessing stadiet sker olika former av justeringar av input så att det ska kunna användas så bra som möjligt. Exempelvis kan ett input avrundas till närmsta nivå för vad matchas mot det som finns i universum. I detta stadie så filtreras även den input man får så att störningar tas bort. Man vil i detta stadie få ett så tydligt och bra input möjligt. 5.2 Fuzzification När man väl har passerat preprocessing stadiet kommer man till första blocket i själva kontrollern. Det blocket kallas för fuzzification. I detta block omvandlas alla den inputen av data till grader av tillhörighet genom att genomsöka många olika medlemskapsfunktioner och jämföra mot dem. Inputen har nu gått från att vara av typ crisp till typen fuzzy. Vilket tillhörighetsvärde som objekten tilldelas beror på jämförelserna i medlemskapsfunktionerna. 5.3 Regelbas I detta block av kontrollern finns de fördefinierade reglerna. Dessa är baserade på expertkunskap och ter sig oftast i form av if-then. Det vill säga, om Z så Y. De regler som finns använder sig av eller är kopplade med olika konnektiv som till exempel och, eller, om så, om och endast om. 11
5.4 Slutlednings-motor Slutledningen sker i tre steg, eller operationer. Aggregation, Activation samt Accumulation. Aggregation operationen används när beräkning av graden av friering strenght αₔ för ett tillstånd av en regel ₔ. Det som genereras kommer vara ett tillhörighetsvärde. Den output hamnar sedan i operation nummer två i slutledningsmekanismen som tidigare nämnts är activation. Här aktiveras regeln vilket innebär att det blir en slutledning för regeln. Vilken activation operator som ska användas är beroende på hur typen av regeln ser ut. De som vanligast används är min eller max. Efter dessa två operationer är genomförda, och det kan handla om flera slutledningar samtidigt, samlas dessa ihop i accumulation stadiet. Dessa tillsammans bildar en graf som senare hamnar i nästkommande process, som är defuzzification. 5.5 Defuzzification För att systemet skall kunna utföra en handling måste de resulterande fuzzy set bli konverterat till något av crisp, en signal som kan processeras av systemet. Den process som omvandlar detta fuzzy set till just en sådan crisp control signal, som kan processeras, kallas för defuzzification. Det finns olika defuzzification metoder varav en av de vanligaste är Centre of gravity. Efter att ett fuzzy set har blivit konverterat till en signal som kan processeras skickas den vidare till postprocessing. 5.6 Postprocessing Liksom i preprocessing stadiet så skalas även output i postprocessing stadiet då det värde som blivit konverterat inte alltid går att använda som det är. Det kan kanske behöva få rätt skalanpassning från exempelvis det nerskalade som var taget ur universum [-1,1] till den fysiska enheten som kanske var [-10, 10] meter. 12
6. Diskussion Jag tror att implementering av den luddiga logiken kan vara väldigt hjälpfull för väldigt komplexa processer där det kanske inte finns någon enkel matematisk lösning. Dessutom tror jag att med hjälp av fuzzy logic, kommer så nära beräkningar och rationella beslut likt en människa skulle ha fattat det. För det första är fuzzy logic baserat på ett naturligt språk och är någorlunda lätt att förstå, och för det andra så tål det dessutom data som inte är exakt, crisp-sets. Vi människor fattar ju beslut dagligen på data, input från våra sinnen som inte är exakta så om man vill sträva efter att ha en beslutfattnings metodik som är likt en människa, tror jag fuzzy logic är så nära man kan komma. För att kunna lösa problem behövs lösningar. Genom två-värdig logik, känns det inte som att man får just detta, inte i stor kvantitet åtminstone. Lösningar i kvantitet får man med fuzzy logic då ett påstående inte är enbart sant eller falsk. 13
7. Referenser Artiklar Dote, Y. Introduction To Fuzzy Logic http://ieeexplore.ieee.org.lt.ltag.bibl.liu.se/stamp/stamp.jsp?tp=&arnumber=483332 Hellermann, M. Fuzzy Logic Introduction http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.85.9757&rep=rep1&type=pdf 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 Yong-Hua Song and Allan T. Johns: Applications of fuzzy logic in power systems Part 1 General introduction to fuzzy logic. Power Engineering Journal, 11 (5). Oct 1997 pp 219-222 http://ieeexplore.ieee.org.lt.ltag.bibl.liu.se/stamp/stamp.jsp?tp=&arnumber=636809 Yong-Hua Song and Allan T. Johns: Applications of fuzzy logic in power systems Part 3 http://ieeexplore.ieee.org.lt.ltag.bibl.liu.se/stamp/stamp.jsp?tp=&arnumber=765695 Böcker Russell, S & Norvig, P. Artificial Intelligence, A Morden Approach, pp 550 14