Fördjupningsarbete HT 2012 FUZZY LOGIC

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

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

Fuzzy Logic Linköpings Universitet

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

FUZZY LOGIC. Christopher Palm chrpa087

Fuzzy Logic: Den oskarpa skarpheten

William Hernebrink

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

Fuzzy control systems

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

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

Fuzzy logic. Julia Birgersson, julbi

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

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

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

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

Fuzzy Logic och dess implementering i ett företagsspel

Fuzzy logic och fuzzy kontrollsystem

1 Suddig logik och gitter

Introduktion till logik

Logik. Dr. Johan Hagelbäck.

Laboration Fuzzy Logic

MA2047 Algebra och diskret matematik

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

Mängdlära. Kapitel Mängder

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

(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.

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

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

Visual Basic, en snabbgenomgång

Föreläsning 2 Programmeringsteknik och C DD1316. Programmering. Programspråk

Föreläsning 2 Programmeringsteknik och C DD1316. Mikael Djurfeldt

JavaScript del 3 If, Operatorer och Confirm

Logik och kontrollstrukturer

Några inbyggda funktioner (med resultat!) Introduktion till programmering D0009E. Föreläsning 4: Villkor och rekursion. Modulus-operatorn.

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

Fuzzy%Logic% Linköpings&Universitet&

JavaScript Block Editor:

Datatyper och kontrollstrukturer. Skansholm: Kapitel 2) De åtta primitiva typerna. Typ Innehåll Defaultvärde Storlek

Föreläsning 2 Programmeringsteknik DD1310. Programmering. Programspråk

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

Formell logik Kapitel 1 och 2. Robin Stenwall Lunds universitet

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

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

Föreläsning 2 Programmeringsteknik DD1310. Programmering. Programspråk

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

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

Föreläsning 10 Datalogi 1 DA2001. Utskrift på skärmen. Syntax. print( Hej ) Hur är det? Hej. print( Hej,end= ) print( Hur är det? ) HejHur är det?

Labb i Datorsystemteknik och programvaruteknik Programmering av kalkylator i Visual Basic

Introduktion till formella metoder Programmeringsmetodik 1. Inledning

ANDREAS REJBRAND NV3ANV Matematik Matematiskt språk

Artificial Intelligence

Uppgift 1 (grundläggande konstruktioner)

MATEMATIKENS SPRÅK. Avsnitt 1

Logik och Jämförelser. Styrsatser: Villkorssatsen if och repetitonssatsen for. Scriptfiler. Kommentarer. Tillämpningar: Ett enkelt filter.

Digitalitet. Kontinuerlig. Direkt proportionerlig mot källan. Ex. sprittermometer. Elektrisk signal som representerar ljud.

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

Shakey s värld med HTNplanering

A. MENING OCH SANNINSGVÄRDE HOS IDENTITETSPÅSTÅENDE. Freges utgångspunkt: mening och meningsfullhet hos identitetspåståenden

PYTHON SNABBREPETITION MEN FÖRST LITE ALLMÄNT OM PROGRAMMERING 729G04 PYTHON 2. Dagens Python

TANA17 Matematiska beräkningar med MATLAB för M, DPU. Fredrik Berntsson, Linköpings Universitet. 9 november 2015 Sida 1 / 28

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

LEGO Robot programmering och felsökning Hur svårt ska det vara att följa den svarta linjen?

Statistisk mönsterigenkänning

Lösningar Datastrukturer TDA

Föreläsning 9: NP-fullständighet

TDIU01 - Programmering i C++, grundkurs

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

Extramaterial till Matematik Y

SPELTESTNING FUZZY LOGIC. Kandidatuppsats i Informatik. Patrik Lundqvist Michael Enhörning VT 2010

Carrer de Viladomat 89 BH-703

Kritiskt tänkande HTXF04:3 FTEB05. Utvärdering av argument

SF1901: Sannolikhetslära och statistik Föreläsning 2. Betingad sannolikhet & Oberoende

729G74 IT och programmering, grundkurs. Tema 2. Föreläsning 3 Jody Foo,

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Felsökning. Datatyper. Referenstyper. Metoder / funktioner

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

Innehållsförteckning. Figur- och tabellförteckning. Figure 1 Blockschema över hårdvaran...4 Figure 2 Blockschema över programet...

Objektorienterad Programmering (TDDC77)

Objektorienterad programmering Föreläsning 4

Fuzzy Logic. En smidig väg för att reglera ditt system! BILAGA A. Fuzzy Logic Wikingsons Wåghalsiga Wargar Projekt ABB VT 2006 Västerås

Uppgift 4A - Definition av enkla funktioner

I Skapa Hej.java och skriv programmet. I Kompilera med javac Hej.java. I Rätta fel och repetera tills du lyckas kompilera ditt program

Introduktion till Python

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

Skapa modeller i Vikingen

Föreläsning 4. Val, boolska värden, läsbarhet, osv

Structured Query Language (SQL)

Formell logik Kapitel 9. Robin Stenwall Lunds universitet

LARS. Ett e-bokningssystem för skoldatorer.

Micro:bit och servomotorer

1.2 Polynomfunktionens tecken s.16-29

I kursen i endimensionell analys är mängden av reella tal (eng. real number), R, fundamental.

Programmering A C# VT Ett kompendie över Programmering A (50p) i c# Stefan Fredriksson

Viktiga begrepp. Algoritm. Array. Binärkod. Blockprogrammering. Bugg / fel och felsökning. Dataspel. Dator

Logik. Boolesk algebra. Logik. Operationer. Boolesk algebra

Programmering, grundkurs, 8.0 hp, Elektro, KTH, hösten Programmering: att instruera en maskin att utföra en uppgift, kräver olika språk:

Transkript:

FUZZY LOGIC 1

Innehåll Bakgrund & Introduktion till fuzzy logic... 3 Syfte... 3 Fuzzy sets... 4 Hedges... 5 Fuzzy set logic... 6 IF-THEN relger... 7 Fuzzy Inference... 7 Användandet utav fuzzy logic i tvättmaskiner... 9 Diskussion... 11 Referenser:... 12 2

Bakgrund & Introduktion till fuzzy logic I svenskan brukar fuzzy logic kallas luddig/ oskarp logik, men man brukar oftast bara säga fuzzy logic. Namnet kommer från att man utgår från att påståendens sanningshalt kan vara oklara, d.v.s. hur väl ett objekt uppfyller en diffus beskrivning. Studerar man ett problem genom första ordningens predikat logik (FOPL) kommer det i många fall brista. Då det i denna typ av logik finns ett sant värde (1) och ett falsktvärde (0). Tar man problemet att beskriva hur lång Kalle är kan en dator dela in längderna i tre olika kategorier, lång, mellan eller kort. Men skulle gränsen för lång gå vid 190, skulle då inte Kalle vara lång utan medel om han var 189.5 cm och inte 190? Det måste gå att beskriva Kalles längd bättre än att dela in längderna i tre olika delar. Utifrån sådana här problem kom Lotfi Askar Zadeh att utveckla fuzzy logic, den luddiga logiken under 1960-1970 talet. För att kunna översätta vårt oformella vanliga talspråk till något mer formellt som datorer också kan behandla. Istället för att säga att det är sant eller falskt sätter fuzzy logic ett värde på hur sant/falskt påståendet är. Syfte Syfte med denna rapport är att få en djupare förståelse om Fuzzy Logic, och hur den kan användas i dagens tekniker. Där har jag valt att göra en djupare förståelse i hur fuzzy logic kan användas i tvättmaskiner. 3

Fuzzy sets Om vi ska fortsätta på exemplet hur lång Kalle är från inledningen och beskriva hur fuzzy logic använder sig utav informationen kring uppgiften. Vanlig enkel logik som FOPL skulle använda sig utav den här bilden att beskriva problemet. Här visar bilden hur de olika längderna är uppdelade i olika kategorier med en tydlig gräns, så kallade crisps. Man har satt intervaller mellan längderna som delar upp vart gränsen går till att vara lång, så i detta crisps menar man på att mellan 190 och 210cm är man lång. Vilket ger Lång=[190, 210], är man innanför detta intervall blir sannolikheten=1, alltså så är man lång. Detta skulle betyda att han som är 189cm är inte lång, utan han tillhör gruppen utav de medellånga, då sannolikheten för meddellång=1 och sannolikheten för lång = 0. Men fuzzy logic använder sig utav att ytorna kommer att korsa varandra så att det inte kommer att finnas ett precis stopp mellan de olika kategorierna (se bild nedan). Det kommer att finnas en gräns då medellång och lång blandas. De kommer alltså att räkna ut ett medlemskap, där de kommer att överlappa varandra. Beroende på vart man kommer ligga i hänsyn till överlappningen kommer man få ett högt eller lågt medlemskap, och där av kommer sanningsvärdet av att vara lång ändras. Skulle nu Kalle vara 189 cm, kommer hans längd att ligga i ett högt medlemskap för kategorin lång och ett lågt medlemskap av medellång. Fuzzy logic kommer där ta hänsyn och 4

inte bara dra slutsatsen att Kalle är lång, utan visa på hur lång han är gentemot hur medellång han är. [1] Hedges Hedges är operatorer som tillämpas på medlemskaps funktionerna för att spegla deras språkliga betydelse och att skapa en virtuell uppsättning. När vi använder oss utav talspråk för att förstärka ett påstående som t.ex. Han är väldigt lång.. Då behövs en tillämpning på medlemskapen för att förtydliga påståendet ännu mer. Här kommer Kalle som är 190cm att tillhöra både väldigt lång och lång och samt på gränsen till medlemskapet mellan medellång och lång. Detta gör man för att datorn ska uppfatta en ännu starkare bild utav vårt talspråk av våra påståenden. Olika starka ord har olika starka kurvor för att vissa ord symboliserar en starkare relation än vad andra gör. [1] 5

Fuzzy set logic För att kunna uttrycka oss mot en dator måste vi definiera ett logiskt uttryck som vi kan använda till att räkna, då kommer fuzzy set logic in. När man kollar på att börja räkna med fuzzy set har den logiken tre relevanta operatorer, OR AND och NOT. Att räkna med dessa är inte så luddigt som man kan tro från namnet, utan fungerar nästan som vanlig logik. På det här sättet räknas ett sanningsvärde ut för komplexare meningar. OR A U B = Max (A,B) AND A B = Min(A,B) NOT A = 1 A Dessa bilder representerar (a och b) vanliga venndiagram och de två under (c och d) representerar samma utfall fast i fuzzy diagram. Operatorn OR, union, representeras genom att ta det högsta medlemskapsvärdet, Max(A,B). Detta kan vi se i bild c. Skulle vi unifiera X och Y, då X={a,b,c,d} och Y={c,d,e} skulle vi få unionen U={a,b,c,d,e}, sedan skulle det element med högt medlemsvärde att återges. 6

Operatorn AND, snitt, representeras genom att ta det minsta medlemskapsvärdet, Min(A,B). Detta ser vi i bilden under bokstaven d. Skulle vi räkna ut snittet som i samma exempel som ovan skulle vi få fram {c,d} och sedan skulle det element med minst medlemskapsvärde att återges. (Jan Jantzen [2]) IF-THEN relger Tanken med fuzzy logik är att den enkelt ska kunna användas med vanliga regler, om det är så här gör då såhär. Man ska inte behöva veta alla information bakom utan enkelt kunna styra världen med [källa], {IF situation THEN action}, {IF its_early THEN Kalle_can_study}. Så här kommer en dator som använder sig utav fuzzy logic att göra. Först kommer världen att representeras exempelvis klockslagen: u = (4, 8, 10, 16, 22) Nu kommer fuzzy logic att sätta sanningsvärden på när det räknas som tidigt. tidigt = {(4, 0) (8, 1) (10, 0.9) (16, 0.5) (22, 0.1)} Där 1 representerar att Kalle studerar i perfektion vid 8 på morgonen. Men vid klockan 4 (16) studerar han bara hälften så bra. (Jan Jantzen [2]) [3] Fuzzy Inference Fuzzifier: Skulle det hända att man fick ett error input måste en kontroll analys i fuzzy logic ske. Först skulle vara att omvandla det skarpa inputet till en fuzzy variabel, vilket är att ge en sanningsgrad på variabeln. Helt enkelt att göra variabeln till en medlemskapsfunktion som tidigare nämnts. Att göra så här kallas för fuzziefiera. Fuzzy Rule Set: För att styra upp problem som har hänt måste man åtgärda problemet. Det kommer att 7

göras genom att följa förprogrammerade regler som finns. Regler som utgår från vanliga (IF situation THEN action), som nämnts tidigare. Defuzzifier: Detta tar fram kvantifierbara resultat från de oskarpa signalerna som fuzzifieren framkallade. Den gör helt enkelt till inputs signal så att den kan användas till att utföra andra åtgärder igen. Defuzzifiera är motsatsen till fuzzifiera. Ett exempel på detta problem kan vara med luftkonditioneringen i en bil. Vi säger att vi har satt en behaglig temperatur på 18 grader, och där ska den hålla sig. Så öppnar någon fönstret i bilen och det är en varm sommar dag så massor med varmluft strömmar in. Temperaturen kommer inte längre att vara 18 grader utan höjas upp emot 20 grader. Kontrollsystemet får en input som säger error. Fuzzifieraren kollar vad är det för som är fel, genom att först omvandla den mätta signalen x till en fuzzy variabel, genom att sätta ett medlemsvärde. När det satt ut alla värden skickar den vidare sin signal till fuzzy rule set som börjar åtgärda problemet genom att följa vanliga IF situation THEN action regler. Som kanske så simpel kan se ut så här (IF warmen_then_18 THEN blow_cold), och fortsätta tills man uppnår den variabeln som tidigare skickats in. För att nu allt ska gå ihop måste defuzzifier göra sitt jobb genom att återskapa den signal och göra den skarp igen, så att den kan utföra åtgärderna. [4] 8

Användandet utav fuzzy logic i tvättmaskiner Fuzzy logic används idag i många av våra tekniska maskiner, så som i tvättmaskiner, mikrovågsugn, att justera fläktarna i bilar eller i t.ex. tunnelbanesystem för att få en skön acceleration och inbromsning. Men kommer i denna rapport enbart behandla hur fuzzy logic fungerar i tvättmaskiner. De nya och moderna och mer bekväma tvättmaskiner behöver vi som använder oss utav inte ens ställa hur länge den ska tvätta, det räknar tvättmaskinen ut åt oss. Tiden är beroende på hur smutsig tvätten är och vilken typ av smuts det rör sig om, om det är fett eller t.ex. lera, eller en blandning. Fuzzy logic har stor betydande roll i att detta fungerar men det är självklart inte enbart fuzzy logic som gör arbetet, sensorer måste finnas att ge fuzzy logic en input om tvätten. Men här kommer fokus intresset ligga på fuzzy logics roll i processen. Det finns ingen standard i hur mycket eller hur avancerade saker tvättmaskin gör, men de vanligaste delarna är: Vatten intag Temperaturen Tids anpassning Spinhastighet / centrifugering För att tvättmaskinen ska kunna bestämma dessa olika enheter behöver den veta hur smutsig tvätten är, vilket görs av sensorer. I denna artikel kommer vi anta att vi bara får svaret från sensorerna och kommer inte gå in på en djupare förståelse kring dem. Sensorerna kommer att mäta smutshalten utav provvattnet som görs innan ett program startas. Det är här fuzzy logic kommer in i bilden, smutsvattnet kommer att hamna på en sannolikhets skala om hur smutsig den är, som sedan sätts in i grafen (se bild). Här är en enkel bild utav fuzzy logics steg som kommer att göras i programmet. Vi har fått en input från sensorerna om hur smutsig tvätten är och vilken typ av smuts det rör sig om. Fuzzy controller kommer att översätta dessa lingvistiska inputs, i ett steg som kallas 9

fuzzifier, till medlemskap som används till att få en uppfattning mot den riktiga världen. På vilken skala är det smutsigt. [5] Programmet kommer sedan att avgöra i vilket smutsighetsgrad det rör sig om, kommer räkna ut ett medlemskapsvärde för omgången tvätt. Efter att värdena är satta kommer maskingen utgå från vanliga IF THEN regler för att få en optimal tvätt. Stegen kommer att se ut följande:[4] Fuzzy controller kommer att använda sig utav alla förprogrammerade regler som finns, d.v.s. fuzzy rule set. Ett exempel på en sådan regel kan vara: IF dirtness_of_clothes large AND type_of_clothes is greasy THEN wash_time is very long. Defuzzier som nämndes tidigare kommer att omvandla dessa regler till en riktig signal som kommer att bli ett output. Genom detta kommer en perfekt tvättid att utlovas. Detta output kommer samt ta del av hur mycket vatten som behövs och även justera temperaturen för att få en så ren tvätt som möjligt. Fuzzy Logic underlättar och gör bland annat vår tvätt till ett nöje. För att få en optimal tvättning, tvätta med fuzzy logic. 10

Diskussion Fuzzy logic är en jättebra upptäckt, att få tekniken att göra så mycket själv är fantastiskt. Men det jag tyckte var väldigt intressant att jag läste en artikel från 1993 http://sipi.usc.edu/~kosko/scientific%20american.pdf skriver Bart och Satoru.. For that reason, fuzzy logic system may well find their way into an ever growing number of computers, home appliances and theoretical models. The next century may be fuzzier than we think. Vilket jag tyckte vad väldigt intressant nu när jag läst så många andra nya artiklar, att fuzzy logic är så pass utvecklad och finns i så stort utbud bland tekniken idag är fascinerande. Det är nästan 10 år sedan, och han har rätt idag! 11

Referenser: [1] http://blog.peltarion.com/2006/10/25/fuzzy-math-part-1-the-theory/ [2] Jantzen, J. Tutorial on Fuzzy Logic. http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.125.2096&rep=rep1&type=pdf [3] http://www.control-systems-principles.co.uk/whitepapers/fuzzy-logic-systems.pdf [4] http://softcomputing.tripod.com/sample_termpaper.pdf [5] http://mathematica.ludibunda.ch/fuzzy-logic6.html Artificial Intelligence A Modern Approach, second edition. Stuart Rusell & Peter Norvig http://sipi.usc.edu/~kosko/scientific%20american.pdf 12