Fuzzy Logic Linköpings Universitet

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

Fuzzy control systems

FUZZY LOGIC. Christopher Palm chrpa087

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

Fuzzy Logic: Den oskarpa skarpheten

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

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 och fuzzy kontrollsystem

Fördjupningsarbete HT 2012 FUZZY LOGIC

William Hernebrink

Beräkning med ord. -hur en dator hanterar perception. Linköpings universitet Artificiell intelligens Erik Claesson

Molly Lundberg 729G43 Kognitionsvetenskap mollu341 Artificiell Intelligens Linköpings Universitet. Fuzzy Logic. Vad är det och hur fungerar det?

Fuzzy Logic och dess implementering i ett företagsspel

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

Fuzzy logic. Julia Birgersson, julbi

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

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

När det oskarpa ger skärpa

Fuzzy Logic. Ellinor Ihs Håkansson, ellih

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

Fussy sets och Fuzzy logik Luddigt eller självklart? Kognitionsvetenskap, 729G11 Sandra Svanberg, sansv418 19/09/2011 Linköpings universitet

Fuzzy%Logic% Linköpings&Universitet&

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

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

Grundläggande logik och modellteori

1 Suddig logik och gitter

Semantik och pragmatik (Serie 4)

de var svåra att implementera och var väldigt ineffektiva.

Grundläggande logik och modellteori (5DV102)

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

Lektion 8: Konstruktion av semantiska tablåer för PTL-formler

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

Viktiga frågor att ställa när ett argument ska analyseras och sedan värderas:

Föreläsning 5. Deduktion

Antag att b är förgreningsfaktorn, d sökdjupet, T (d) tidskomplexiteten och M(d) minneskomplexiteten.

MA2047 Algebra och diskret matematik

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

Datorlingvistisk grammatik I Institutionen för lingvistik och filologi Oktober 2007 Mats Dahllöf

Övningshäfte 2: Induktion och rekursion

Innehåll. Föreläsning 7. Satslogiken är för grov. Samma sak i predikatlogik: Första ordningens predikatlogik. Logik med tillämpningar

7, Diskreta strukturer

Komposanter, koordinater och vektorlängd Ja, den här teorin gick vi igenom igår. Istället koncentrerar vi oss på träning inför KS3 och tentamen.

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

JavaScript del 3 If, Operatorer och Confirm

Logik. Boolesk algebra. Logik. Operationer. Boolesk algebra

10. Mängder och språk

Talmängder. Målet med första föreläsningen:

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

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

Logik och kontrollstrukturer

Sidor i boken KB 6, 66

MATEMATIKENS SPRÅK. Avsnitt 1

Konsultarbete, Hitta maximal volym fo r en la da

TMS136. Föreläsning 1

Filosofisk logik Kapitel 15. Robin Stenwall Lunds universitet

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

Formell logik Kapitel 1 och 2. Robin Stenwall Lunds universitet

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

Probabilistisk logik 2

I en deterministisk omgivning beror nästa tillstånd bara av agentens handling och nuvarande tillstånd.

Semantik och pragmatik

Filosofisk logik Kapitel 19. Robin Stenwall Lunds universitet

Tommy Färnqvist, IDA, Linköpings universitet. 1 Kursadministration 1. 2 Introduktion Varför logik? Satslogik... 2

Attila Szabo Niclas Larson Gunilla Viklund Mikael Marklund Daniel Dufåker. GeoGebraexempel

Laboration: Att inhägna ett rektangulärt område

Uppsala Universitet Matematiska Institutionen Thomas Erlandsson

1.2 Polynomfunktionens tecken s.16-29

Objektorienterad programmering

9. Predikatlogik och mängdlära

Tommy Färnqvist, IDA, Linköpings universitet. 2 Strukturer Domäner Tolkningar... 3

Fuzzy Logic (Kompletterad)

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

Varför är logik viktig för datavetare?

Linjärprogramming. EG2205 Föreläsning 7, vårterminen 2015 Mikael Amelin

i LabVIEW. Några programmeringstekniska grundbegrepp

TMS136. Föreläsning 1

Optimering med bivillkor

Fråga 5 (1 poäng) För att definiera ett sökproblem krävs...

En introduktion till predikatlogik

ANDREAS REJBRAND NV3ANV Matematik Matematiskt språk

PROBLEMLÖSNING. ! GPS! Mål medel analys! Problemlösning i programmering. Lars-Erik Janlert 2007

vux GeoGebraexempel 3b/3c Attila Szabo Niclas Larson Gunilla Viklund Mikael Marklund Daniel Dufåker

Del A: Digitala verktyg är inte tillåtna. Endast svar krävs. Skriv dina svar direkt på provpappret.

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

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

D. x 2 + y 2 ; E. Stockholm ligger i Sverige; F. Månen är en gul ost; G. 3 2 = 6; H. x 2 + y 2 = r 2.

Logik. Dr. Johan Hagelbäck.

5 Blandade problem. b(t) = t. b t ln b(t) = e

Grundläggande logik och modellteori (5DV102)

Kristian Almgren Artificiell Intelligens Linköpings Universitet Talstyrning

Lokal pedagogisk planering i matematik för årskurs 9

Mängdlära. Kapitel Mängder

Algoritmer, datastrukturer och komplexitet

Laboration Fuzzy Logic

Antag att b är förgreningsfaktorn, d sökdjupet, T (d) tidskomplexiteten och M(d) minneskomplexiteten.

Fråga 5 (1 poäng) För att definiera ett sökproblem krävs...

Induktion, mängder och bevis för Introduktionskursen på I

ÄNDLIGT OCH OÄNDLIGT AVSNITT 4

Transkript:

Fuzzy Logic Linköpings Universitet

2

Innehållsförteckning 1. Inledning... 4 2. Bakgrund... 4 3. Fuzzy Logic... 5 3.1. Fuzzy Sets... 6 4. Operatorer... 7 4.1. Union och snitt... 7 4.2. IF, THEN, AND och OR... 8 5. Medlemskap... 8 6. Fuzzification och defuzzification... 10 7. Optimering av fuzzy logic... 10 8. Fuzzy logic som kontrollsystem... 12 8.1. Preprocessing... 13 8.2. Fuzzification... 13 8.3. Rule base... 13 8.4. Inference Engine... 13 8.5. Defuzzification... 14 8.6. Postprocessing... 14 9. När bör fuzzy logic användas?... 14 10. Diskussion... 15 11. Referenser... 16 3

1. Inledning Logik används för att översätta olika naturliga språk till ett mer formellt. Detta görs bland annat för att det ska kunna behandlas av en dator. Fuzzy Logic är en vidareutveckling av första ordningens predikatlogik, FOPL. FOPL är en tvåvärdes- logik då den endast kan hantera värden som antingen är sanna eller falska, alternativt 1 och 0. Detta fungerar bra till största del, men problem uppstår när man ska hantera värden som inte är absoluta. Ska man exempelvis beskriva längden på något, eller om vattnet är kallt, ljummet eller varmt är det svårt att göra det med endast två värden. Dessa problem är sådana som fuzzy logic behandlar genom att implementera så kallade fuzzy sets, dvs. hur hög sannolikheten är för att något tillhör en specifik mängd. 2. Bakgrund Fuzzy logic skapades av Lotfi Zadeh på 1960- talet i Los Angeles. Syftet var att kunna modellera osäkerheten, eller vagheten, som finns i alla naturliga språk. Detta eftersom han inte tyckte att det gick att göra med den existerande logiken. 4

3. Fuzzy Logic Logik används för att översätta de naturliga språken till ett mer formellt språk för att därigenom kunna överföra det till en dator. Vi människor tycker att det är väldigt lätt att begripa vagt formulerade meningar som glaset är nästan fullt. Men för en dator är det omöjligt att veta hur mycket nästan är. Därför används fuzzy logic, som är en flervärdeslogik och därför kan ge värden som inte endast är 0 eller 1, utan som kan vara ex 0.2. Om vi har ett glas, figur 1, som rymmer 100 ml som fylls med 60 ml vatten, då skulle vi kunna kalla det nästan 100 ml fullt. Problemet för FOPL är att det inte går att sätta ett fast värde på nästan, dvs. det går inte att säga att 60 ml det är en 1:a, som skulle symbolisera att glaset är helt fullt. Men det går inte heller att sätta en 0:a, då det inte är helt falskt heller. Men fuzzy logic har inga problem att hantera detta eftersom den kan hantera värden som inte är absoluta. Därför skulle glaset i det här fallet vara 0.4 tomt eller 0.6 fullt. Figur 1 Eftersom att en dator omöjligtvis kan förstå tillståndet nästan så behövs fuzzy logic för att förklara påståendet om att glaset nästan är fullt. Därför används logik för att försöka klargöra detta och liknande uttalanden. Skillnaden mellan fuzzy logic och första ordningens predikatlogik, som är en traditionell två- värdeslogik, är att fuzzy logic klarar av att hantera osäkra värden som i exemplet ovan. Fuzzy logic bygger på en teori som heter fuzzy set theory, där tanken är att man ser hur hög sannolikheten är att någon eller något tillhör en viss mängd istället för att svart på vitt tillhöra en mängd eller inte. 5

3.1. Fuzzy Sets Inom den klassiska matematiken finns det något som brukar kallas crisp set. Dessa set kan innehålla ett flertal olika objekt som antingen har värdet 1 eller 0. Det är med andra ord helt tydligt vilka element som är medlemmar i setet och vilka som inte är det. Det är helt nödvändigt att kunna avgöra om ett objekt är medlem av ett set eller inte, vidare bör man också kunna särskilja två medlemmar ur samma set från varandra. Fuzzy sets innehåller variabler, eller predikat inom språk, som inte har några skarpa gränser. Istället för att ge dessa variabler ett bestämt värde så ges de ett värde för hur mycket de tillhör en specifik medlemsgrupp. Figur 2 Skillnaden mellan ett crisp set, till vänster, och ett fuzzy set. Ett exempel på en sådan grupp kan vara motorbåtar, där vanliga motorbåtar och färjor tillhör klassen, men hur är det med segelbåtar med motor? Tillhör de klassen lite grann eller inte alls? Det är dessa saker som fuzzy sets, tillskillnad från crisp sets, klarar av att hantera. Detta kan man se i figur 2 där det vänstra setet symboliserar ett crisp set. Men kan se att kanterna är helt skarpa och alla objekt som är medlemmar av setet är med till 100 %. Däremot kan man se hur det högra setet, som symboliserar ett fuzzy set, har kanter som gradvis tonas ut. 6

4. Operatorer 4.1. Union och snitt Inom fuzzy logic använder man sig bland annat av samma operatorer som i den vanliga tvåvärdes logiken, tillexempel snitt, union och komplement. A B är unionen av A och B där man sammanför, eller unifierar, alla medlemmar i A och B. Figur 3 Området inom de svarta linjerna utgör unionen av två fuzzy set. A B är snittet av A och B. Efter operationen är det bara de variabler som finns i både A och B som finns kvar. Figur 4 Området inom de svarta linjerna utgör snittet av två fuzzy set. Union används för att ta ut den variabel som har störst medlemsvärde och snitt den som har lägst värde. 7

4.2. IF, THEN, AND och OR Men det finns fler typer av operatorer när man använder sig av fuzzy sets. Dessa är bland annat IF och THEN. De kan ha följande form: IF x is A THEN y is B där A och B är fuzzy sets och x är antecedent och y är konsekvent. Exempel på hur detta kan se ut mer vardagligt kan vara: OM (if) det regnar DÅ (then) blir man blöt. Men det finns även andra operatorer i fuzzy logic som används. Exempelvis kan man använda fler än ett villkor i samma sats; IF x is A AND z is C THEN y is B Om vi använder vårt tidigare exempel för att förklara detta kan det bli: OM (if) det regnar OCH (and) man är ute DÅ (then) blir man blöt. På detta sätt kan alltså fuzzy logic förklara vår vardag på ett sätt som första ordningens predikatlogik inte klarar av. 5. Medlemskap För att man ska kunna se om ett objekt är medlem i ett fuzzy set måste objekt x tillhöra set X. Tecknet betyder att x är en medlem i set X. Ett tomt set skrivs ut som:. Om man vill säga att ett objekt är medlem i ett visst set skriver man det genom: x X där objektet x tillhör setet X. För att kunna bestämma ett objektsmedlemskap i ett set måste denna formel vara sann. Funktionen för att avgöra graden av medlemskap för ett objekt ser ut så här: μ x : U à [0,1] 8

U är här universum som x befinner sig i och medlemskapsgraden visas av μx som x får i detta universum. Denna grad är någonstans mellan 0 och 1. För att visa hur ett fuzzy set ser ut kan man skriva det på detta sätt: X = {(x,μ x )} I denna formel är X ett fuzzy set där x är objektet och μx, som tidigare sagts, är medlemsgraden som x får. Om graden är 0 är x ej medlem av setet, men ju närmare 1 värdet, eller graden, är desto högre är medlemsgraden. Problem kan dock uppstå när man måste använda luddiga begrepp och klasser som exempelvis Alla långa män. Här går det inte att säga att alla män som är längre än 170 cm är långa. Figur 5 Hur crisp (t.v.) och fuzzy set (t.h.) hanterar värdet lång. Därför använder fuzzy logic de olika graderna av medlemskap som tidigare nämnts för att på så sätt skapa ett set som inte har en så abrupt gräns, som kan ses i figur 5. Zadeh introducerade här alltså ett medlemskap där övergången från medlem till icke- medlem skedde gradvis snarare än plötsligt. Termen "fuzzy" indikerar på en bild av en gränszon, snarare än en abrupt gräns. 9

6. Fuzzification och defuzzification Fuzzification är ett förlopp som används för att omvandla ett crisp set till ett fuzzy set. Detta sker genom att man omvänder ett inputvärde till en grad av medlemskap i det aktuella setet. Man gör med andra ord värdena oskarpa för att därefter kunna applicera de regler och operatorer som används hos fuzzy logic. Defuzzication är motsatsen till fuzzification och handlar alltså om att omvandla ett oskarpt värde till ett skarpt. Det finns ett flertal olika metoder för att utföra detta, exempelvis Centre of Gravity som räknar ut arean från den graf som för tillfället är aktuell. Andra metoder är Mean of maxima, som tar det värde med högst medlemskap, leftmost maxima och rightmost maxima. De två sista är bra om man vill hitta ytterligheter med höga medlemsvärden. 7. Optimering av fuzzy logic När man använder fuzzy logic är det viktigt att försöka hitta den optimala lösningen på problemet man har för handen. Att göra detta är däremot inte lätt då begränsningar och andra hinder måste tas med i beräkningen. Vanligen brukar man bara räkna med de största, eller viktigaste, under optimeringsprocessen i ett försök att underlätta beräknandet. Många olika optimeringsprocesser har blivit utvecklade för att försöka uppnå den bästa lösningen i sökningsprocessen. Man måste även räkna in tids- och minneskomplexiteten i de olika metoderna för att undvika att man väljer en allt för kostsam metod. Två populära tekniker för att genomföra optimeringsprocessen är linjär- och kvadratiskprogrammering. x 2 g 4(x) f(x) R g 3(x) x * g 2(x) x 2 g 4(x) g 3(x) R x * g 2(x) g 1(x) g 1(x) f(x) (a) Linear Programming. Figur 6 Exempel på linjär och kvadratiskprogrammering x 1 (b) Quadratic Programming x 1 10

Här utgår man från en funktion, f(x), som innehåller begränsningar på problemet g(x). Dessa begränsningar hos funktionen definierar en R, ett område med olika lösningar på problemet g(x). Den optimala lösningen visas här av x * för variablerna x1 och x2. Det finns även fyra begränsningar, gn(x), som definierar området R. Problemet med dagens optimeringsmetoder är hastigheten kontra korrektheten. De metoder som är snabba har ofta svårigheter med att hitta och representera begränsningar rätt, medan de som lätt hittar de korrekta begränsningarna är långsamma. Det huvudsakliga användandet av optimering inom system som använder sig av fuzzy logic är schemaläggning av underhåll, utbyggnadsplaneringar och samordning när det finns ett flertal mål som skall uppnås. 11

8. Fuzzy logic som kontrollsystem Att fuzzy logic i ett kontrollsystem är väldigt vanligt, särskilt för system som måste kunna hantera oprecisa värden. Exempelvis används fuzzy kontrollsystem för luftkonditionering, centralvärme och videokameror. I videokameror kan man till exempel använda fuzzy logic för ansiktsigenkänning. Både luftkonditionerings- och centralvärmesystem används, som bekant, för att reglera temperaturen i ett rum på ett eller annat sätt. Här är det väldigt användbart med fuzzy logic då man bör kunna reglera temperaturen utan att använda sig av några skarpa gränser. En annan anledning till att det passar bra här är då man inte kan applicera några generella villkor på systemen eftersom olika förhållanden kräver olika tillvägagångssätt. Man kan till exempel inte säga att alla hushåll vill ha en temperatur om 20 grader, utan temperaturen ska vara lagom. Märker systemet att temperaturen avviker från den bestämda kan det reglera den via sina insatta regler utan att programmeraren de facto behöva förhålla sig till den reella temperaturen. Kortfattat kan man säga att ett kontrollsystem har sex olika delar, vilka visas i Figur 7. Figur 7 En fuzzy controller 12

8.1. Preprocessing Detta är den första delen, tar emot inputen som ofta är ett crisp värde och korrigerar det vid behov. Korrigeringen kan vara att värdena rundas av eller att filtrera bort störningar, detta för att underlätta för nästa del. 8.2. Fuzzification I denna del omvandlas, vid behov, de inkommande värdena från crisp till fuzzy data. Detta görs genom att ändra värdet till medlemskapsgrader. Vidare testas de olika regler som finns för att avgöra hur väl de matchar den aktuella inputen. 8.3. Rule base Den tredje delen är regeldatabasen som innehåller de regler som appliceras av systemet. Dessa är oftast av formatet if- then. De vanligaste konnektiv som används är and och or men det är viktigt att systemet aldrig blandar dessa utan håller dem separerade. 8.4. Inference Engine Inference Engine är kopplat till regelbasen (Rule base) och använder data från fuzzifacation- fasen. Den gör tre saker med datan. Det första är aggregering, vilket är en operation som används för att räkna ut firing strength, r, eller hur stor grad som inputen som uppfyller regel r. Aggregeringen, eller sammanklumpningen, kan beskrivas som att regel r genererar ett medlemskapsvärde för A, och B, vilka kan vara μa och μb. Aggregeringen blir då kombinationen av dessa. Outputen från detta steg tas vidare till steg två, vilket är aktivering. Aktiveringen innebär i detta fall att man gör en deduktion av en regel. Här undersöks om regel har ett and eller or villkor, för att kunna avgöra om min- eller max- operator, respektive, skall utföras på konnektiven. Det sista steget i Inference Engine är att samla ihop den data som fåtts genom aktiveringen via en max- operator. Detta leder till att en unifiering genomförs. 13

8.5. Defuzzification I detta steg tar man outputen som nu skall skickas tillbaka och gör om det till ett crisp värde igen. Detta så att det kan skickas som en kontrollsignal som kan processas av mottagaren. Det finns ett antal olika sätt att göra detta på, b.la Centre of gravity. Formeln för denna operation ser ut som följer: x @ S +{, { S +{, Figur 8 Centre of gravity Här är xi ett flytvärde i ett diskret universum och µ( xi) medlemsskapsvärdet. Detta är en väldigt använd formel men problemet är att den är väl komplex vilket gör den näst intill oanvändbar vid större mängder data. 8.6. Postprocessing Det här är det sista steget och här omvandlas outputen till en fördefinierad form, vilka exempelvis kan vara volt, meter eller ton. 9. När bör fuzzy logic användas? Fuzzy logic används idag främst i expert- och kontrollsystem, men brukas även flitigt inom konsumentprodukter också, exempelvis i riskokare och videokameror. Andra användningsområden är artificiell intelligens, där det kan hjälpa en programmerare att få maskinerna att resonera mer likt en människa. Vidare är den ganska simpel att jobba med då den både är flexibel och tolerant mot oprecis data. 14

10. Diskussion När jag, efter att studerat och läst om både fuzzy och vanlig tvåvärdes- logik, ser på de två olika sätten att jobba känns det som att fuzzy logic har mer att erbjuda. Dels är den lättare och jobba med, men även mer flexibel då den inte behöver några absoluta värden att jobba med. Det blir även lättare att implementera fuzzy logic i självreglerande kontrollsystem då systemet själv kan hålla reda på när det bör öka eller minska på exempelvis en fläkt för att hålla temperaturen i ett rum på en jämn nivå. En annan fördel är att man gör det lättare för datorer att hantera naturliga språk, eftersom vi sällan, eller rent av aldrig, använder precisa värden när vi samtalar med varandra. Min uppfattning är att den kommer bli än mer användbar ju mer avancerad teknik vi får. Ju längre man kommer inom den artificiella forskningen, desto mer attraktiv tror jag fuzzy logic kommer framstå. Det är även ett bra sätt att kunna uttrycka saker som inte är absolut sanna eller falska. Därav kommer den förmodligen att implementeras mer och mer inom AI- forskningen och hjälpa den framåt. Detta då den, som jag tidigare nämnt, kan få en maskin att tänka mer likt en människa. Att de gör det är absolut nödvändigt för att kunna utveckla en perfekt AI. Ett sådant scenario är dock än så länge avlägset, även om vi närmar oss steg för steg. 15

11. Referenser Hellmann, M. Fuzzy Logic Introduction. Universite de Rennes, Rennes Cedex. Jantzen, J. (2006). Tutorial On Fuzzy Logic. Technical University of Denmark, Kongens Lyngby. http://www- bisc.cs.berkeley.edu/zadeh- 1965.pdf http://diuf.unifr.ch/ds/courses/dss2002/pdf/fuzzylogic.pdf http://site.iugaza.edu.ps/mahir/files/2010/02/design.pdf 16