FUZZY LOGIC 900223-1554
Innehållsförteckning INLEDNING...2 HUR DET FUNGERAR...3 Crisp Sets och Fuzzy Sets...3 Operatorer...5 IF THEN regler...7 FUZZY INFERENCE...7 Fuzzification...8 Regelsättning...8 Sammanslagning...9 Defuzzification... 10 DISKUSSION... 10 REFERENSLISTA... 12 1
Inledning Vad är fuzzy logic eller oskarp logik? I vanlig predikatlogik så utgår man från att ett predikat antingen är sant, eller om det finns en negation framför, är falskt. Vanlig logik består därför oftast av två värden, sant eller falskt, true eller false. Det finns ingenting emellan dessa två bestämda värdena. Ett exempel är ifall du tänker dig ett föremål som skrivbordsstolen du sitter på när du studerar, antingen finns den, eller så finns den inte. Det sanna (värdet 1) i det här fallet att den existerar, eftersom du sitter på den, och det falska (värdet 0) att den inte finns, vilket då leder till att du inte kan sitta på stolen, eftersom att den inte existerar. Fuzzy Logic, eller oskarp logik är det som visar att det kan finnas värden som är mellan sant och falskt, det vill säga i grader av sanning. Se då även hur oskarp logik skiljer sig från probabalistisk logik, där man räknar ut hur stor sannolikheten är för någonting att vara sant. Fuzzy Logic behandlar grader av sanning. Ta som exempel, ett glas med vatten, i vanlig logik så är glaset antingen fyllt med vatten som ger det värdet 1, eller tomt som ger värdet 0. Inom fuzzy logic så kan glaset vara helt fyllt, nästan fyllt, halvfyllt, och så vidare. Anledningen till att man använder sig av de binära talen 1 och 0 är för att underlätta uträkningen av grader av sanning, då talet 1 är helt sant, och talet 0 är helt falskt, true = 1, false = 0. För att återgå till exemplet med glaset, så kan man säga att glaset nästan är helt fyllt eller att glaset nästan är tomt. Vad man då gör är att man beräknar hur stor grad av sanning det ena uttrycket har och beräknar hur stor grad sanning det andra uttrycket har, vilket leder till att man kommer att se vilket av uttrycken det är som har en högre grad av sanning. 2
Hur det fungerar Crisp Sets och Fuzzy Sets För att på ett enkelt sätt visa hur det fungerar (vilket också är det sättet man vanligtvis gör det på) så använder man sig av så kallade crisp sets och fuzzy sets. Crisp sets kan förklaras i ett exempel då man kan ta längd på människor. För att i en graf visa vad som menas så kan man börja med att först förklara själva grafen, i X-axeln (x) på en graf har man värden, i det här fallet längd på människor. På Y-axeln (µ) däremot har man grader av sanning. Då kan man sätta in en så kallad crisp set, som också är en medlemfunktion. Crisp setets intervall ligger mellan 130-150, kort = [130,150]. (se graf 1.) (Graf 1, exempel på ett crisp set) Detta är ett exempel på ett crisp set. Det vill säga att man sätter ett intervall mellan två värden. Är man sedan inom det värdet så är graden av sannolikhet = 1, dvs, är din längd mellan 130 och 150, så kan man säga att crisp setet står för längder som anses vara korta, alltså, så är du kort. Variabeln kort är en lingvistisk variabel som används inom Fuzzy logic för de mer luddiga variablerna då variabeln kort inte definierar vad som är kort. Problemet är att med crisp set blir ett problem då man använder sig av fler crisp sets i en graf. Om vi säger att man har tre stycken sets; 3
kort = [130,150] medel = [150,170] lång = [170,190] (Graf 2, tre crisp sets) Problemet här är att även om man är att övergången från medel till lång påvisar att man är medel vid 170cm, men om någon plötsligt växer 0,1 cm till att vara 170,1cm. Är man då klassad som lång vid en tiondels centimeters skillnad, eller kan man fortfarande kallas medel? Enligt crisp set så är graden av sanning sådan att ligger man vid 170,1 cm så är graden av sanning att du är medel = 0. År 1965 introducerade Zadeh, fuzzy sets. Detta är en av orsakerna till varför fuzzy logic är en så pass oskarp logik, då det inte är konkret. Den har nämligen oskarpa gränser. Ändrar man setens intervall; kort = [120,150] medel = [155,165] lång = [170,200] Men även gör om dem till fuzzy sets så kommer grafen att se ut så här. (se graf 3.) 4
(Graf 3, tre fuzzy sets) Som man nu ser så blir fuzzy sets parallelltrapetser som gör de bestämda intervallen oskarpa, då de är 170,1 cm inte endast inom setet lång, utan även medel, fast med olika grader av sanning. Operatorer I fuzzy sets, precis som i crisp sets, finns det grundläggande operatorer man kan använda sig av för att kunna göra en skärningspunkt, unifiering och negering av fuzzy sets. Dessa visas både i formel och grafiskt, för att på ett simpelt sätt förklara hur de ser ut då de feta linjerna i graferna är de man räknar på senare. 5
Snitt, Fuzzy or. Ex, mellan seten medel och lång skulle se ut så här: M L = µ M L (x) = max(µ M (x), µ L (x)) (Graf 4, Union) Unionen, Fuzzy AND. M L = µ M L (x) = min(µ M (x), µ L (x)) (Graf 5, Snitt) Negering, Fuzzy NEGATION. M = µ M (x) = 1 - µ M (x) 6
(Graf 6, För att enkelt visa hur en negation ser ut så använder vi endast en fuzzy set, medel.) Den visar egentligen den uppochnervända versionen av setet.) IF-THEN-regler En annan viktig aspekt av Fuzzy Logic är de så kallade IF-THEN -regler. En enda regel är uppdelad i två delar, antecedenten och konsekvensen, där antecedenten är den input man ska ha, medan konsekvensen ger outputen. Så om man tänker sig: if antecedenten then konsekvensen Där man kan byta ut antecedenten till x är A och konsekvensen till y är B : if x är A then y är B Men det går även att göra två delar av antecedenten, vad man däremot måste finnas mellan de två delarna är antingen union-operatorn eller snitt-operatorn. Så det kan se ut så här if x är A and/or z är C then y är B Fuzzy Inference Det som återstår av grundläggande Fuzzy Logic är Fuzzy Inference. Fuzzy Inference består av en sammanslagning av fuzzy sets, fuzzy operatorer och if-then-reglerna. 7
Fuzzification Består av att man ska ha inputs som man ska fuzzifiera genom att skapa fuzzy sets genom medlemskapsfunktioner. Så om man tänker sig att man sitter på en restaurang, har precis ätit klart, ska just betala notan och ska försöka bestämma hur mycket dricks man ska ge servitören. För att bestämma så kan man utgå från två påverkande faktorer, hur maten smakade och hur bra service det var på restaurangen. Graderar man allting från skala 1 till 10, så om man ger maten en 8, då anser man att maten var utmärkt, vilket är en lingvistisk variabel, detta ger µ = 0,7. Se bild nedan. Regelsättning Där man i det här fallet kommer använda sig av snitt-regeln (operatorn där man tar maxgraden): Om servicen är perfekt eller maten är utmärkt då ska man ge generöst med dricks. [Om/if (servicen är perfekt) eller (maten är utmärkt)] = Antecedenten, [Då/then(ska man ge generöst med dricks)] = Konsekvensen. Där man ger servicen en 3 i betyg. Vilket i det här fallet betyder att servicen inte är god alls, och att grader i sanning av att servicen skulle vara perfekt är lika med 0,0. 8
Fuzzy OR: P U = max(µ P (0,0), µ L (0,7)) = µ P U (0,7) Resultatet av operatorn blir 0,7, detta ska i egentligen nästa steg implementeras genom att man använder sig av implikationen DÅ/THEN för att kunna bestämma hur pass generöst med dricks man ska ge. Meningen är att resultatet för Fuzzy OR ska klippa av toppen av setet Generöst för att det ska matcha det tillåtna från fuzzy OR-operatorn. Sammanslagning Här är det meningen att man ska slå ihop eller kombinera alla möjliga regler som finns för att kunna sätta in det i ett set, som består av alla typer av dricks man kan ge, så att man ska kunna ta ett beslut. Om man kan ge dåligt med dricks, medel med dricks eller generöst med dricks, så måste man ha regler som tar med alla dessa tre. 9
Regel 1: Om servicen är dålig och maten är äcklig då ska man ge dåligt med dricks Regel 2: Om Servicen är bra då ska man ge medel med dricks Regel 3: Om servicen är perfekt eller maten är utmärkt då ska man ge generöst med dricks. Defuzzification Defuzzifiering är i princip motsatsen till fuzzifieringen, man ska helt enkelt göra det oskarpa skarpt igen. Detta gör man genom att använda sig en av flertalet metoder, i det här fallet blir det metoden Centroid (Mathworks.) som också kallas COA (Centre Of Area), där man räknar ut areans mittpunkt på hela setet. Areans mittpunkt. Diskussion Fuzzy Logic används i flertalet områden. Fuzzy Expertsystem kan idag stå för linjär och ickelinjär kontroll, mönsterigenkänning, finansiella system, operationsforskning, dataanalys. Sony s gamla PalmTop använde sig av en fuzzy beslutträdsinlärningsalgoritm, för att kunna känna igen skrift på dess touchskärm. Nuförtiden börjar även fuzzy logic användas med en sammanslagning av bland annat genetiska algoritmer och neuroberäkning/kalkyl, någonting som man idag kallar för soft computing, som till skillnad från hard computing tar hand om precisionen, så tar soft computing upp det ej preciserade i världen. Man tror även att 10
soft computing kommer spela en stor roll inom att designen av MIQ, eller Machine IQ, så mycket bättre än vad den är idag. Personligen tycker jag att Fuzzy Logic är en väldigt intressant typ av logic, där det känns som att man har kanske på något sätt lyckats få fram ett sätt som gör att en maskin kan tänka mer (men definitivt inte exakt) som en människa. Fuzzy Logic känns samtidigt som att det är ett sätt för oss människor att använda ett mer ickekonkret sätt att använda logik, om man endast bara ser på de lingvistiska variablerna som att vi tycker att längden på en specifik människa är medel. På ett sätt känns det som att människan har skapat denna logik, endast för att förenkla det för sig själv samtidigt som att det egentligen nästan aldrig finns någonting konkret med denna logik. Men å andra sidan så är det en logik som just tolkar dessa lingvistiska variabler för att kunna räkna på dessa luddiga sätt människan ser saker på. 11
Referenslista Ross, T, J., 2004. Fuzzy Logic With Engineering Applications. University of New Mexico, USA. Wiley M. Hellman. Fuzzy Logic Introduction. http://epsilon.nought.de/tutorials/fuzzy/fuzzy.pdf http://www.fortunecity.com/emachines/e11/86/fuzzylog.html, 03/10-10, 12.00 http://www.cs.cmu.edu/groups/ai/html/faqs/ai/fuzzy/part1/faq-doc-5.html, 03/10-10, 12.00 http://www.mathworks.com/help/toolbox/fuzzy/fp351dup8.html, 03/10-10, 12.00 http://www.cs.cmu.edu/groups/ai/html/faqs/ai/fuzzy/part1/faq-doc-3.html, 03/10-10, 12.00 12