729G11 Artificiell Intelligens Fördjupningsarbete Ht 09 Tommy Hudin tomhu339 2009-­‐09-­‐30 Luddig logik Vad är det? Hur fungerar det? Var används det? 729G11 Artificiell Intelligens Fördjupningsarbete Ht 09 Tommy Hudin tomhu339 2009-­‐09-­‐30 Sammanfattning Syftet med arbetet är att förklara vad fuzzy logic är, hur det fungerar och skiljer sig från annan logik samt att beskriva ett praktiskt exempel på hur fuzzy logic kan tillämpas inom ett ai-­‐ system. Fuzzy logic är en logik som kan anta värdena sant(1) och falskt(2), samt alla värden i intervallet[0,1]. En flervärdig logik. Ett påstående A, behöver inte vara helt sant i fuzzy logic utan kan tilldelas ett sanningsvärde mellan 0 och 1. Med fuzzy logic kan man beräkningsmässigt hantera perceptioner. Med andra ord: det möjliggör att räkna på relativa begrepp som starkare, snabbare eller längre. Något som klassisk tvåvärdeslogik inte klarar av. På grund av att fuzzy logic lämpar sig så bra att representera naturligt språk så lämpar det sig också bra att användas i ai-­‐system. Exempelvis i expertsystem som används inom områden där man måste hantera en viss grad av osäkerhet. Detta arbete tittar närmare på hur fuzzy logic används i ett expertsystem, SIGMAR, för att utvärdera och korrigera väderprognoser. Användarna av SIGMAR beskrev programmet som mer och mer användbart ju mer de använde sig av det. 1 729G11 Artificiell Intelligens Fördjupningsarbete Ht 09 Tommy Hudin tomhu339 2009-­‐09-­‐30 Innehållsförteckning 1.1 Inledning ............................................................................................................................................ 3 1.2 Syfte ............................................................................................................................................... 3 1.3 Källor .............................................................................................................................................. 3 2.1 Varför fuzzy logic? ............................................................................................................................. 4 2.2 Vad är fuzzy logic? ......................................................................................................................... 4 2.3 Hur fungerar det? .......................................................................................................................... 5 2.4 Att räkna med fuzzy sets ............................................................................................................... 6 2.5 Medlemskapssfunktion ................................................................................................................. 8 2.6 Hedges ........................................................................................................................................... 9 2.7 If-­‐then-­‐uppbyggnad ..................................................................................................................... 10 3.1 SIGMAR ............................................................................................................................................ 11 3.2 Problemet innan SIGMAR ............................................................................................................ 12 3.3 Fördelar med SIGMAR ................................................................................................................. 12 3.4 Så fungerar SIGMAR .................................................................................................................... 13 3.5 SIGMARS resultat ........................................................................................................................ 16 4.1 Avslutande diskussion ..................................................................................................................... 16 5.1 Litteraturförteckning ....................................................................................................................... 18 2 729G11 Artificiell Intelligens Fördjupningsarbete Ht 09 Tommy Hudin tomhu339 2009-­‐09-­‐30 1.1 Inledning Det här arbetet handlar om fuzzy logic. Jag söker förklara vad fuzzy logic (FL) är, vad som skiljer det från vanlig logik, varför det finns ett behov av FL och hur man kan göra beräkningar med fuzzy logic. Ingen energi har lagts på att diskutera fuzzy logics förtjänster. Avslutningsvis så har jag också beskrivit ett expertsystem som använder sig av fuzzy logic. Ett expertsystem som har till uppgift att utvärdera väderprognoser och alarmera meteorologen när de uppmätta vindarna avviker från prognosen. 1.2 Syfte Syftet med denna rapport är att förklara vad fuzzy logic är och hur det fungerar. Men också att beskriva hur det kan användas genom att titta på ett expertsystem som gör just det. FL används inom en mängd områden särskilt i kommersiellt syfte, men den aspekten kommer alltså inte tas upp i denna rapport. 1.3 Källor Som underlag för mitt arbete har jag använt mig av Magnus Emilssons rapport Precisiated Natural Language som bl.a. förklarar begreppet ͟oskarp mängd͟på ett föredömligt sätt. Erik Prytz rapport Fuzzy Logic and Fish Extinction Vulnerability har också varit en ovärderlig tillgång för mig. Bjarne Hansens rapport SIGMAR: a Fuzzy Expert System for Critiquing Marine Forecasts har jag tillgått då jag fördjupat mig i ett expertsystem. Förutom dessa tre rapporter så har jag använt flertalet böcker och som källor till mitt arbete. Lotfi A Zadehs artikel A new direction in AI ʹ Toward a computational theory of perceptions var utgångspunkten då jag började intressera mig för fuzzy logic. 3 729G11 Artificiell Intelligens Fördjupningsarbete Ht 09 Tommy Hudin tomhu339 2009-­‐09-­‐30 2.1 Varför fuzzy logic? Det som människor är bra på är sådant som är naturligt för oss. Det som vi är dåliga på är aktiviteter som är onaturliga för oss. Vi kan lyckligtvis låta maskiner och datorer göra sådant som vi är dåliga på. Människa och maskin kompletterar således varandra utomordentligt. Däremot så lyckas vi inte särskilt väl när vi vill skapa maskiner som utför saker som är naturligt och enkelt för människan. (Norman, 1993) Varför är det så? Vi tar en straffsituation i fotboll som exempel. Tänk dig att du ska sparka till bollen så att den passerar målvakten och hamnar i mål. Detta kan vara svårt för såväl ett proffs som amatör. Vad är det då som är så svårt? För den professionella fotbollsspelaren ligger svårigheten i att bemästra sina nerver, vetskapen om att just denna spark kan vara helt avgörande för matchens utgång. För amatören kan det vara att göra precis rätt rörelse så att bollen sparkas till med maximal hårdhet och i önskad riktning. Att hantera nervositeten och att sparka till bollen på ett korrekt sätt kan man träna upp. Det finns också en rad saker som är väldigt lätta med straffsparkssituationen. För lätta för att ens räkna upp. Som att se målet exempelvis, eller bollen och målvakten för den delen. Men också att hålla balansen när man sparkar till bollen. Detta behöver man inte träna på. För en dator skulle det vara tvärtom, det är lätt att klappa till bollen med rätt hårdhet och i önskad riktning. Själva sparken, uträkningen som behandlar avstånd, riktning och fart på bollen är för datorn inga problem. Det är svårare att hålla balansen och se målvakten. Datorn kan göra precisa uträkningar baserat på exakt information. Det är också det som är datorns problem, människan däremot kan utföra de mest precisa handlingarna utan att genomföra några som helst beräkningar. Anledningen till detta är att vid mänskliga aktiviteter så förlitar sig människan allt som oftast på perceptioner, uppskattningar och antaganden, vi behöver inte mäta upp exakta avstånd för att sparka till en boll. Vi tittar helt enkelt på bollen, sen på målets placering, och så höftar vi till med hur hårt vi behöver sparka för att få den att hamna i mål. (Zadeh, 2001) Lotfi A. Zadeh hade troligtvis sådana här tankar som utgångspunkt när han introducerade Fuzzy Logic på 60-­‐talet. Som tidigare nämnts så kompletteras människans sätt att tänka, med det datoriserade logiska tankesättet. Det är ju i själva verket därför som logiken finns, för att hjälpa människan i sitt kognitiva arbete, för att ge ytterligare ett vapen i mängden av tankesätt. (Norman, 1993) Zadeh ville utöka denna arsenal än mer genom att hitta ett sätt att kunna beräkna perceptioner. (Zadeh, 2001) Då lämpar sig klassisk tvåvärdeslogik mycket illa. Hur ska man inom predikatlogiken exempelvis skriva Ăƚƚ͟:ĂŐćƌƐƚĂƌŬŵĞŶĚƵćƌännu starkare ćŶŵŝŐ͘͟ĞůůĞƌ͟Ibland vinner du, men oftast ǀŝŶŶĞƌũĂŐ͍͟ 2.2 Vad är fuzzy logic? I vanlig tvåvärdeslogik som exempelvis fopl (första ordningens predikatlogik) så är variabler antingen sanna eller falska, svarta eller vita om man så vill. Det finns också något som kallas flervärdeslogik där kan variablerna ha fler än ett exakt värde, härunder sorteras fuzzy logic. I fuzzy logic definieras variablerna med osäkra termer. Eller för att fortsätta färgmetaforen, vi inför en gråskala mellan svart och vitt. Fuzzy logic kan närmast översättas till luddig logik. Det låter väldigt motsägelsefullt, därför låter vi i fortsättningen bli att översätta fuzzy logic. Vad menas då med att variablerna definieras i osäkra termer? Jo inom fuzzy logic tilldelar man ett objekt ett värde mellan 0 чX ч1. Värdet anger till vilken grad X tillhör mängden A. Noll representerar då falskt (vitt), och ett representerar sant (svart). Alla möjliga värden däremellan tillhör en gråskala, en skala som alltså anger i hur hög utsträckning X 4 729G11 Artificiell Intelligens Tommy Hudin Fördjupningsarbete Ht 09 tomhu339 2009-­‐09-­‐30 tillhör mängden A͘&ƵnjnjLJůŽŐŝĐćƌůŽŐŝŬĞŶƐŽŵǀŝůůĨĊƵƚĞƚƚĞdžĂŬƚŽƵƚƉƵƚ;͟ƵƚǀćƌĚĞ͟ͿĨƌĊŶĞƚƚĞůůĞƌĨůĞƌĂ
ĨƵnjnjLJ;͟ůƵĚĚŝŐĂ͟ͿŝŶƉƵƚ;͟ŝŶǀćƌden͟). (Kartalopoulos, 1996) 2.3 Hur fungerar det? Exempel 1: Jag är stark men du är ännu starkare än jag. Först är det viktigt att poängtera att fuzzy logic handlar om att variablerna definieras i osäkra termer, det är alltså inte osäkra resonemang vi har att göra med. (Russel & Norvig, 2003) Exemplet ovan är i sanning ett säkert resonemang, vi vet att jag är stark och att du är ännu starkare, men variablerna är luddiga, de har inga tydliga gränser och det är osäkert var de egentligen börjar och slutar. Hur mycket är egentligen ännu starkare? I naturligt språk så representeras perceptioner med hjälp av uttryck. Dessa uttryck vill man tilldela ett värde för att kunna räkna på det. Meningen hos en utsaga representeras som begränsningen av en variabel. I exempel 1 begränsas alltså variabeln styrka, den begränsas på så sätt att den kan anta ett värde mellan 0 och 1. Frågan är inte om perceptionerna stark och ännu starkare tillhör mängden styrka. Utan frågan är i hur hög utsträckning de tillhör mängden styrka. Vi pratar alltså om oskarpa mängder eller fuzzy sets, mängder där gränserna inte är helt tydliga. I hur hög utsträckning en variabel tillhör en mängd kallas för medlemskapsgrad och betecknas matematiskt ʅF(x) : X ĺ ΀Ϭ͕ɲ΁. Det handlar om i hur hög utsträckning x har attributet F. Man låter x vara ett värde i universumet X, medlemskapsgraden blir då ett värde mellan noll och ɲ(alpha). Alpha är en normaliseringskonstant när ɲ = 1 säger man att man har normal fuzzy logic. Ju närmare medlemskapsgraden hamnar 1 i desto högre utsträckning tillhör x F. För att normalisera ɲtill 1 så tar man de värden man har och delar dem med det högsta värdet, supremum. (Kartalopoulos, 1996) Med matematiska termer så uttrycker man normaliseringen av sitt fuzzy set på följande vis: ^ƵƉʅS(x) = 1 x X
För att normalisera värdena för exempelvis armstyrka så tar man alltså de värden man har i sin mängd och delar dem med supremum, se exempel 2. Exempel 2: armstyrka = {1, 2, 4, 5, 6, 7, 9} normaliseras till armstyrka = {0.111, 0.222, 0.444, 0.556, 0.667, 0.778, 1.0} Låt oss säga att alla uppmätta värden ƐŽŵćƌшϲƚŝůůŚƂƌŵćŶŐĚĞŶũćƚƚĞƐƚĂƌŬ͘sĊƌƚƵŶŝǀĞƌƐƵŵćƌĂůůĂ
möjliga värden i intervallet [0, 10]. Säg att jag får ett uppmätt värde av armstyrka till 4, alltså x = 4. Är jag då jättestark? Absolut inte. Eftersom 4 < 6. Men vänta lite nu, allting är ju inte absolut i fuzzy logic, vi kan räkna ut i hur hög utsträckning jag är jättestark! När vi vet hur man betecknar medlemskapsgraden så kan vi också räkna ut den med uttrycket som återfinns i exempel 3 nedan (Cai, 1996). 5 729G11 Artificiell Intelligens Fördjupningsarbete Ht 09 Exempel 3: X = { x | x är ett möjligt värde i vårt universum} A = ͟ŵćŶŐĚĞŶũćƚƚĞƐƚĂƌŬĂ´ ^ x | x  X} Tommy Hudin tomhu339 2009-­‐09-­‐30 Det som står i uttrycket är följande: alla värden i intervallet 6 ʹ 10(minimigräns och maxgräns för vår mängd) tillhör mängden A (jättestarka). Därför får de sanningsvärdet 1. Med ((((x-­‐10)/5)²)+1)-­‐1 räknar man ut medlemskapsgraden x i A. Så vi sätter helt sonika in det uppmätta värdet och gör -­‐1
uträkningen ((((4-­‐10)/5)²)+1) = 0,410. Därav kan vi dra slutsatsen att jag tillhör mängden jättestarka till 41 %. Andra uttryck att räkna ut medlemskapsgraden för en given mängd är naturligtvis möjliga. Nu när vi har våra uppmätta värden på armstyrka och vi vet hur man räknar ut medlemskapsgraden för varje uppmätt värde så kan vi beteckna den oskarpa mängden genom ordnade par, sådana att det första elementet x är ett element i X (armstyrka)och det andra elementet anger medlemskapsgraden för x i A(jättestarka).
Exempel 4: с͟ũćƚƚĞƐƚĂƌŬĂ͟ A = {(1, 0,236), (2, 0,281), (4, 0,410), (5, 0,862), (6, 1), (7,1), (9,1)} Med en snabb blick på den oskarpa mängden här ovan kan man konstatera att ett uppmätt värde på armstyrka av 2 innebär att man tillhör mängden A(jättestarka) till 23,6%. Ett uppmätt värde inom intervallet 6-­‐10 ger en medlemskapsgrad i A som är lika med 1. 2.4 Att räkna med fuzzy sets Oskarpa mängder har inga tydliga gränser. Trots detta går det att göra i princip alla typer av uträkningar på oskarpa mängder som det går att göra på vanliga skarpa mängder. Men uträkningarna ser lite annorlunda ut, man använder sig återigen av medlemskapsgraden. I uträkningarna måste man också ha de olika oskarpa mängdernas minimum och maxvärde i åtanke. Nedan förklaras kort operatorerna snitt, union, och komplement Snittet av två oskarpa mängder är ekvivalent med den logiska operatorn och. För att ta reda på sannolikheten för att ett värde återfinns i snittet av två oskarpa mängder, A och B, så behöver vi veta medlemskapsgraden för det minsta värdet i A och medlemskapsgraden för det minsta värdet i B. Vi låter A vara mängden {1,2} och B vara mängden {3,4}. Medlemskapsgraden för x1 i A räknas ut till 0,7. På samma sätt räknas medlemskapsgraden för x1 i B ut till 0,9. Då är snittet av A och B det minsta 6 729G11 Artificiell Intelligens Tommy Hudin Fördjupningsarbete Ht 09 tomhu339 2009-­‐09-­‐30 värdet i mängden {0,7, 0,9}. Det vill säga C = min(0,7, 0,9) = 0,7. Formelmässigt kan man uttrycka medlemskapsgraden för att ett värde tillhör snittet av A och B så här: C = ʅ$ŀ%
ʅC(x) = min{ʅA(x), ʅB(x)}, xX
Likadant är det med unionen, fast tvärtom. Unionen av två oskarpa mängder är ekvivalent med den logiska operatorn eller. Vi behöver återigen medlemskapsgraden, men den här gången behöver vi veta medlemskapsgraden för de högsta värdena i två mängder A och B för att räkna ut unionen C av dem. Medlemskapsgraden för att ett värde tillhör unionen C är nämligen lika med det högsta värdet av A och B. Så här: C = ʅA‫ڂ‬B
ʅC(x) = max{ʅA(x), ʅB(x)}, xX
Komplementet till en oskarp mängd A, är ekvivalent med den logiska operatorn inte. Komplementet räknas enkelt ut genom att man tar 1 minus medlemskapsgraden för x i A, på detta sätt: ʅિ(x) = 1 - ʅA(x), xX Om medlemskapsgraden för x i A räknas ut till 0,25 så blir komplementet till medlemskapsgraden i A 1 -­‐ 0,25 = 0,75. (Cai, 1996) (Kartalopoulos, 1996) (Emilsson, 2006) 1
0,8
0,6
0,4
0,2
0
Figur 1 ʹ Området inom de svarta linjerna är snittet av två oskarpa mängder 1
0,8
0,6
0,4
0,2
0
Figur 2 ʹ Området inom de svarta linjerna utgör unionen av två oskarpa mängder 7 729G11 Artificiell Intelligens Fördjupningsarbete Ht 09 Tommy Hudin tomhu339 2009-­‐09-­‐30 1
0,8
0,6
0,4
0,2
0
Figur 3 ʹ <ŽŵƉůĞŵĞŶƚĞƚƚŝůůĞŶŵćŶŐĚďĞƐŬƌŝǀƐŐƌĂĨŝƐŬƚŐĞŶŽŵĂƚƚŵĂŶǀćŶĚĞƌ͟ƵƉƉ-­‐och-­‐ŶĞĚ͟ƉĊŵćŶŐĚĞŶ͘
(Prytz, 2006) (Fullér, 2000) 2.5 Medlemskapssfunktion Hur medlemskapsgraden sprider sig går att representera med en graf över medlemskapsfunktionen. Ofta är det en rät linje som går från falsk till sant, men det behöver inte alltid vara så. Egentligen kan spridningen av sanningsvärdet(medlemskapsgraden) se ut lite hur som helst. Vanliga funktioner är den triangulära funktionen, trapeziodala funktionen och den så kallade S-­‐funktionen. S-­‐funktionen är central inom det expertsystem vars uppbyggnad redogörs för i detta arbete. Nedan visas de vanligaste fördelningarna av medlemskapsgrad grafiskt såsom de är beskrivna av Cai, Fuller och Prytz. (Cai, 1996) (Fullér, 2000) (Prytz, 2006) S-­‐funktion
1
0,8
0,6
0,4
0,2
0
Figur 4 Trapozedial funktion
1
0,8
0,6
0,4
0,2
0
a
b
Figur 5 ʹ området mellan [a, b] utgör mängdens kärna 8 729G11 Artificiell Intelligens Fördjupningsarbete Ht 09 Tommy Hudin tomhu339 2009-­‐09-­‐30 Triangulär funktion
1
0,8
0,6
0,4
0,2
0
a -­‐ ɲ
a
a + ȕ
Figur 6 ʹ /ĞŶǀĂŶůŝŐƚƌŝĂŶŐƵůćƌĨƵŶŬƚŝŽŶćƌ͟ x ĂƉƉƌŽdžŝŵĂƚĞůLJĞƋƵĂůƚŽĂ͘͟ĞŶƚŝůůĊƚŶĂƐƉƌŝĚŶŝŶŐĞŶĂǀ x ligger i intervallet [a-­‐ɲ͕Ăнȕ] 2.6 Hedges Fuzzy logics syfte är som tidigare nämnts att logiskt beskriva vår reella värld. Detta är problematiskt eftersom vi beskriver vår omvärld genom naturligt språk. När vi säger något så kan vi uttrycka det på en mängd olika sätt. Jag kan exempelvis säga att: Jag är väldigt stark eller att: Jag är faktiskt oerhört jättestark! För att fånga så mycket som möjligt av meningen i det naturliga talet så använder sig fuzzy logic av något som kallas för hedges. Hedges är en lingvistisk beståndsdel som modifierar uträkningen av de variabler vi har. Exempel 4. Jag är oerhört stark och du är väldigt svag. Meningen i exempel 4 går att dela in i tre olika beståndsdelar. (1) Primära termer,(2) hedges och (3) ŶĞŐĂƚŝŽŶĞƌŽĐŚŬŽŶũƵŶŬƚŝŽŶĞƌ͘/ŶŽŵ;ϭͿŚĂŵŶĂƌ͟ƐƚĂƌŬ͟ŽĐŚ͟ƐǀĂŐ͘͟hŶĚĞƌ;ϯͿƐŽƌƚĞƌĂƐ͟ŽĐŚ͘͟;ϮͿ Innehåller ĂůůƚƐĊŚĞĚŐĞƐ͕ŝĚĞƚŚćƌĨĂůůĞƚ͟ŽĞƌŚƂƌƚ͟ƐĂŵƚ͟ǀćůĚŝŐƚ͘͟ĞƚćƌŽƌĚƐŽŵŵŽĚŝĨŝĞƌĂƌǀĊƌĂ
redan luddiga variabler ;͟ƐƚĂƌŬ͟ŽĐŚ͟ƐǀĂŐ͟Ϳ͘,ĞĚŐĞƐŬĂŶŚĂůŝƚĞŽůŝŬĂŬĂƌĂŬƚćƌŽĐŚƉĊǀĞƌŬĂr uträkningen av variablerna på olika sätt men gemensamt för alla hedges är att de modifierar medlemskapsgraden. En översikt på hur de påverkar uträkningen av variablerna ges i tabell 1. Tabell 1. Exempel på Hedges Väldigt, extremt Ganska Definitivt, nästan Mer eller mindre Inte Över, under Funktion Koncentrerar Sprider Intensifierar Relaxerar Negerar Begränsar Exakt hur man ska ändra i uträkningen rent matematiskt finns det inga bestämda regler för, men olika matematiska ingrepp har givetvis olika effekt på sanningsvärdet. Viktigt är att man konsekvent 9 729G11 Artificiell Intelligens Tommy Hudin Fördjupningsarbete Ht 09 tomhu339 2009-­‐09-­‐30 gör samma förändring vid samma typ av hedges. Så att man inte upphöjer sanningsvärdet med 2 ena ŐĊŶŐĞŶŵĂŶƐƚƂƚĞƌƉĊŽƌĚĞƚ͟ĞdžƚƌĞŵƚ͟ŽĐŚĂĚĚĞƌĂƌĚĞƚŵĞĚƐŝŐƐũćůǀŶćƐƚĂŐĊŶŐ͘ Att man koncentrerar uträkningen innebär att man minskar dess potentiella spridning. Att man sprider uträkningen är alltså motsatsen till koncentration, spridning uppnås ofta genom att man tar kvadratroten ur medlemskapsgraden. Genom intensifiering ökar sannolikheten för värden som är högre än 0,5 samtidigt som sannolikheten minskar för värden som är lägre än 0,5. Denna effekt uppnås lättast genom att man tar 2(ʅ(x))2 för värden som är mindre än 0,5 och 1 ʹ 2(1 ʹ ʅ(x))2 för värden som är större än 0,5. Relaxering är motsatsen till intensifiering eftersom intensifiering ökar säkerheten för ett värde så minskar relaxering säkerheten för ett värde. Negering tydliggör vilka värden medlemskapsgraden inte kan anta genom att ta 1-­‐ ʅ͘Begränsning är egentligen detsamma som att till hälften negera något. Man kan säga exempelvis större än, mindre än, över eller under. Hedges går också givetvis att kombinera. EdžĞŵƉĞůǀŝƐŬĂŶŵĂŶƐćŐĂĂƚƚ͗͟ĞƚćƌĚĞĨŝŶŝƚŝǀƚǀćůĚŝŐƚ
varmt͟. Här har vi alltså en hedge som koncentrerar (väldigt) medlemskapsgraden för varmt och en hedge (definitivt) som intensifierar medlemskapsgraden för en redan modifierad medlemskapsgrad (väldigt varmt). Detta leder oss in på matematiska operationer som inte är nödvändiga för förståelsen av den här texten. Den intresserade läsaren hänvisas istället till att läsa kapitlet som ŚĞƚĞƌ͟ůŝŶŐƵŝƐƚŝĐhedges͟ i Fuzzy Systems Design Principles. (Berkan & Trubatch, 1997) 2.7 If-­then-­uppbyggnad Kunskapen om fuzzy logic i expertsystem och kontrollsystem implementeras som en mängd if -­‐ then-­‐
regler. Regler som säger vilka handlingar som ska vidtas vid olika förutsättningar. Reglerna kan se ut som i exempel 5. Exempel 5. If A1 and/or B1 then H11, else. If A2 and/or B1 then H21, else. If A1 and/or B2 then H12, else. If A2 and/or B2 then H22, else. Detta visar den vanligaste formen som implementation av fuzzy logic-­‐ regler har i expertsystem. Formen kallas för ͟Composite rule͟ och kännetecknas av att det är flera påståenden på ena eller andra sidan av operatorn then. En annan vanlig form som if-­‐ then-­‐ reglerna kan anta är kanonisk form. Då utgörs regeln av endast ett påstående på bägge sidor om operatorn then (Berkan & Trubatch, 1997). Så här: If A then B If B then C And/or är som ovan förklarats detsamma som union eller snitt. A, B och H representerar input ʹ output-­‐ förhållandet i systemet. A och B är luddiga variabler och H representerar den handling som 10 729G11 Artificiell Intelligens Tommy Hudin Fördjupningsarbete Ht 09 tomhu339 2009-­‐09-­‐30 ska vidtas för de input som A och B representerar. Exempel: om 15.00 (A) och hungrig (B) så ät middag (H). Hur input-­‐output förhållandet fungerar åskådliggörs enklast i tabell 2 och 3. Tabell 2 A1 A2 H11 H21 B1 H12 H22 B2 Tabell 3 C1 C2 H111 H112 H11 H121 H122 H12 H211 H212 H21 H221 H222 H22 Tabell 2 visar reglerna för input-­‐output-­‐ förhållandena så som de är beskrivna i exempel 5. Outputs är fetmarkerade. Tabell 3 visar liknande förhållande fast nu med ännu en variabel, nämligen if A and B and C, then H. Eftersom exempelvis H12 är detsamma som if A1 and B2. Genom att använda sig av ett regelsystem som det som står beskrivet nedan kan man täcka en stor mängd variabler: If Ai and Bj then Hij. If Hij and Ck then Hijk. If Hijk and Dl then Hijkl. Hij och Hijk fungerar då som mellanvariabler som leder oss till rätt output nämligen Hijkl förutsatt att även Ck och Dl gäller. (Kartalopoulos, 1996) 3.1 SIGMAR ĞƚĞdžƉĞƌƚƐLJƐƚĞŵƐŽŵũĂŐƚŝƚƚĂƚŶćƌŵĂƌĞƉĊŚĞƚĞƌ^/'DZ͘<ŽƌƚĨƂƌ͟^ŝŐŶŝĨŝĐĂŶƚ/ŶĨŽƌŵĂƚŝŽŶ
'ĞŶĞƌĂƚĞĚĨƌŽŵDĂƌŝŶĞƌĞĂZĞƉŽƌƚƐ͘͟ Det har använts av Maritimes Weather Centre i Kanada (MWC). Med en väderprognos som input så övervakar SIGMAR kontinuerligt och fortlöpande vindar ute till havs utanför Kanadas sydöstra kustlandskap. Så fort som vindarna signifikant avviker från prognosen så varnar SIGMAR. SIGMAR gör också analyser över hur vindar förändras över tid och presenterar övriga intressanta karaktäristika för vindar till havs. I MWC:s ansvarsområde ingår över 200 miles (1 mile = 1 609344 meter) farvatten i Atlanten samt St.Lawrence bukten. MWC:s område är uppdelade i 19 mindre regioner. Allt som allt finns det 70 olika väderstationer som hela tiden mäter vindstyrka och förser meteorologerna på MWC med väderdata. Ett övervakningssystem likt SIGMAR behövs eftersom väder och vind är en dynamisk kontinuerlig och icke-­‐linjär process med ett ständigt flöde av information. Det är helt omöjligt att precis identifiera vad som triggar eller orsakar en storm, för det finns allt för mycket information att ta hänsyn till. Det räcker inte att periodvis eller då och då övervaka vädret och jämföra med sin prognos, eftersom det leder till allt för hög felprocent och till att människors förtroende för meteorologers utsagor minskar. Med ett system som hela tiden övervakar och utvärderar prognosen minskar felprocenten och människors förtroende för meteorologer ökar. 11 729G11 Artificiell Intelligens Fördjupningsarbete Ht 09 Tommy Hudin tomhu339 2009-­‐09-­‐30 (www.weatheroffice.gc.ca, 2009) Figur 7 ʹ Karta över MWC:s ansvarsområde. Grön = väderstation på land. Röd = Väderstation till sjöss. 3.2 Problemet innan SIGMAR Att lista ut hur väderleken kommer att slå är alltid problematiskt och att sen presentera sin prognos på ett begripligt sätt är minst lika knepigt. Ett stort problem är att min uppfattning av vad som är en vacker sommardag kanske skiljer sig från din. Ett annat exempel är att man kanske inte har samma uppfattning om vad en kraftig snöstorm innebär i Nikkaluokta som i Malmö. En kvalificerad gissning säger mig att Nikkaluokta-­‐borna kräver mer för att kalla nederbörd för en kraftig snöstorm än vad Malmö-­‐borna gör. Problemet innan SIGMAR rörde hur man skulle kategorisera vindar. Traditionen säger att vindar som är ш 34 ƐũƂŵŝů;ϭƐũƂŵŝůу0,51m/sek, i fortsättningen används enheten sjömil) anses vara stormvindar. Alla vindar under 34 sjömil är en sorts vind och alla över 34 sjömil är en annan sorts vind. Ett tankesätt som är ganska absurt. Eftersom den drar en så pass stark gräns mellan vanliga vindar och stormvindar. Det är i realiteten en väsentlig skillnad på vindar på 5 sjömil och vindar som uppnår 33 sjömil. Och samtidigt så är det en ganska liten skillnad på vindar som uppnår 34 sjömil jämfört med vindar på 33 sjömil. Vid MWC så gjorde man ännu en uppdelning, man skiljde på vanliga vindar, nära stormvindar och stormvindar. De vindar som hamnade inom spannet för nära stormvindar var de som fått en uppmätt vindstyrka på mellan 28-­‐33 sjömil. Detta är en förståelig uppdelning, vindarna klumpas in i kategorier för att kunna varna alla sjöfarare så tidigt som möjligt. Det man egentligen gör är att man resonerar som så att ju mer vindstyrkan närmar sig 34 i desto högre utsträckning anses det vara en stormvind. Helt enkelt fuzzy logic! En tanke som grafiskt bäst representeras av en s-­‐graf (se figur 4). Och det är just därför som vinddata lämpar sig så väl att analysera med fuzzy logic. 3.3 Fördelar med SIGMAR Fördelarna med att analysera vinddata med hjälp av SIGMAR är flera. För att nämna några: Avstämbarhet/Inställningsbarhet ʹ Eftersom data kommer från flera olika källor så är den också pålitlig i olika utsträckning. Datan kan komma från båtar ute till havs, väderstationer på land eller bara någons individuella expertutlåtande. Med SIGMAR kan man beräkna pålitligheten i källan. 12 729G11 Artificiell Intelligens Tommy Hudin Fördjupningsarbete Ht 09 tomhu339 2009-­‐09-­‐30 Anpassningsbarheten ʹ Samma prognos kan betyda helt olika saker för olika personer. En stark vind kan vara helt obetydlig för ett stort hangarfartyg men mindre välkommen hos den som seglar optimistjolle. SIGMAR kan anpassa sin prognos så att den kan förstås utifrån användarens perspektiv. Effektiviteten ʹ SIGMAR kan beräkna en oerhört stor mängd data på en väldigt kort tid och presentera slutsatsen på ett överskådligt sätt. Prognoser När meteorologerna på MWC skapar sina prognoser använder de en redigerare som kallas för COMAR. ĞƚƐƚĊƌĨƂƌ͟ĐŽĚĞĚŵĂƌŝŶĞ͘͟ŶƉƌŽŐŶŽƐŝŬŽŶĐŝƐŽĐŚŬŽĚĂĚĨŽƌŵƐƚŽƉƉĂƐŝŶŝKDZ͕
COMAR översätter sen den kodade prognosen till en marin prognos på Engelska och Franska. Den kodade prognosen innehåller information om vindstyrka och vindriktning vid prognosens början samt hur vindarna kommer att fluktuera under tidens gång. En bit prognoskod som kan matas in i COMAR kan se ut som i exempel 6. Exempel 6 ͟ϭϱ-­‐25. 15h S5-­‐ϭϬ͟ Det här innebär att initialt så beräknas vindarna vara ostliga med en styrka på mellan 15-­‐25 sjömil. Klockan tre på eftermiddagen ska vinden ha ändrat riktning till sydlig och vindstyrkan beräknas vara mellan 5-­‐10 sjömil. COMAR tar alltså koden och översätter den till fraser, exakta klockslag översätts ƚŝůůǀĂŐĂƚŝĚƐŝŶƚĞƌǀĂůůĞƌ͘/ĚĞƚŚćƌĨĂůůĞƚďůŝƌĨƌĂƐĞŶ͟ŽƐƚůŝŐĂǀŝŶĚĂƌƉĊϭϱ-­‐25 sjömil som avtar till sydliga vindar på 5-­‐10 sjömil ƵŶĚĞƌĞĨƚĞƌŵŝĚĚĂŐĞŶ͘͟KDZƐćŐĞƌŝŶŐĞŶƚŝŶŐŽŵŶćƌĞůůĞƌŚƵƌĨƂƌćŶĚƌŝŶŐĂƌŶĂ kommer ske. Med andra ord kan man klockan tre på eftermiddagen förvänta sig vindar i spannet mellan 5 sjömil till 25 sjömil utan att prognosen emotsägs. En kodsträng liknande den i exempel 6 tas som input av SIGMAR tillsammans med kontinuerligt uppdaterad information om vind. 3.4 Så fungerar SIGMAR SIGMAR är ett diagnostiskt system. Det upptäcker och identifierar symptomen på en felaktig prognos. En felaktig prognos upptäcks genom att SIGMAR identifierar vindar som avviker från prognosen. Diagnostiska system utmärks av att de analyserar och utvärderar det som är relevant för att förklara felaktigheter. (Baldwin, 1996) SIGMAR kan inte förutsäga någonting, endast jämföra vinddata med den ursprungliga prognosen för att sen varna om vindstyrka eller riktning avviker allt ĨƂƌŵLJĐŬĞƚĨƌĊŶĚĞŶƵƌƐƉƌƵŶŐůŝŐĂĚŝĂŐŶŽƐĞŶ͘ŶŬŽĚƐƚƌćŶŐ;ƉƌŽŐŶŽƐͿĨƌĊŶKDZƐŽŵůLJĚĞƌ͗͟tϮϬ-­‐
30. 15 W15-­‐ϮϬ͟ŽŵǀĂŶĚůĂƐƚŝůůŝŶĨŽƌŵĂƚŝŽŶƌĞƐƉƌĞƐĞŶƚĞƌĂĚĂǀĚĞŶŐƌĂĨƐŽm man kan se i figur 8 av SIGMAR. 13 729G11 Artificiell Intelligens Fördjupningsarbete Ht 09 Tommy Hudin tomhu339 2009-­‐09-­‐30 45
40
35
30
25
20
15
10
5
0
12:00
15:00
18:00
Figur 8 ʹ X-­‐axeln visar vindstyrkan och y ʹ axeln visar klockslag. Figur 8 representerar den prognos som SIGMAR börjar med som input och den stämmer också överrens med hur COMAR skulle översätta kodsträngen till naturligt språk. SIGMAR jobbar utifrån tre linjer, den röda är den maximala vindstyrka som vinden kan anta utan att prognosen visar sig vara felaktig. Den blå linjen representerar den minsta möjliga vindstyrka som vinden kan uppnå utan att vara felaktig. Den gröna linjen visar den genomsnittliga vindstyrka som vinden prognoserats att ha. Prognosens klockslag slätas ut till ett tidsintervall på 6 timmar med det angivna klockslaget som mittpunkt, nämligen 15:00. Som man kan se så är prognosen som mest otydlig kl 15:00, här är prognosen unionen av dess förväntade initialtillstånd och sluttillstånd. Varje timme så får SIGMAR vinddata som input i form av siffror från de 70 olika väderstationer som finns i MWC:s ansvarsområde. Siffror som talar om vindstyrka och vindriktning. De 70 väderstationerna är som tidigare nämnts utplacerade i 19 regioner. Varje sådan region har en prognos liknande den i figur 8. Vinddatan från de olika väderstationerna jämförs med den prognos som regionen har där väderstationen ligger. Observationerna jämförs inte bara med sin regions prognos utan de jämförs också med varandra. De jämförs och utvärderas utifrån följande 10 faktorer: 1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Är den nu observerade vindstyrkan stark jämfört med prognosen? Är den nu observerade vindstyrkan svag jämfört med prognosen? Skiljer sig den nu observerade vindriktningen från prognosen? Är den nu observerade vinstyrkan stark jämfört med vad prognosen säger att den ska vara om tre timmar? Är den nu observerade vinstyrkan svag jämfört med vad prognosen säger att den ska vara om tre timmar? Skiljer sig den nu observerade vindriktningen från vad prognosen säger att den ska vara om tre timmar? Har vindarna nyligen tilltagit i styrka? Har vindarna nyligen avtagit i styrka? Har vindarna nyligen ändrat riktning? Saknas det observationer från väderstationen? (Är det något som inte fungerar?) SIGMAR svarar inte på dessa frågor med ett ja eller nej utan istället svarar SIGMAR med siffror. Genom att svara med en siffra kan man prioritera vinddata och när signifikanta värden upptäcks kan 14 729G11 Artificiell Intelligens Tommy Hudin Fördjupningsarbete Ht 09 tomhu339 2009-­‐09-­‐30 SIGMAR varna meteorologen. Om siffrorna närmar sig 1 så har de en hög prioritet och då varnar SIGMAR. Om inte så låter SIGMAR bli att varna. Det är alltså skillnaden på uppmätta vindar och förväntade vindar som SIGMAR utvärderar, inte de faktiska värdena. Utvärderingen som görs utifrån ovanstående 10 faktorer är alltså det som skapar och bestämmer hur de oskarpa mängderna som SIGMAR jobbar med ser ut. Det SIGMAR gör är att undersöka medlemskapsgraden för exempelvis stark hos den uppmätta vinden jämfört med den förväntade. SIGMARS beteende (om det ska varna eller ej) är alltså helt avhängigt hur den oskarpa mängden för starka vindar ser ut. När en vindstyrka ska anses som stark jämfört med prognosen går att räkna ut med hjälp av medlemskapsgraden. Värdet på medlemskapsgraden översätts av SIGMAR till lingvistiska termer, ƐŬĂƉĂƌŶĂĂǀ^/'DZŚĂƌǀĂůƚĂƚƚϬ͕ϮƂǀĞƌƐćƚƚƐƚŝůů͟ŐĂŶƐŬĂ͟;ƐůŝŐŚƚůLJͿŽĐŚϬ͕ϴƚŝůů͟ǀćůĚŝŐƚ͟;quite). När medlemskapsgraden uppfattas som väldigt så varnar SIGMAR meteorologen att de uppmätta vindarna avviker väldigt från prognosen. Figur 9 visar att en vind tillhör den oskarpa mängden starka vindar med en sannolikhet på 0,8 om den är 4 sjömil starkare än den förväntade vinden. När vindstyrkan är 34 sjömil och prognosen säger 20 till 30 sjömil så varnar alltså SIGMAR. 1
0,8
0,6
0,4
0,2
0
min avg max 2
4
6
8
10
12
14
16
18
20
Figur 9 ʹ x-­‐axeln visar ʅstarka vindar(observerad vind), y ʹaxeln visar hur mycket vinden avviker från prognosen Precis på samma sätt kan man utvärdera huruvida den uppmätta vinden ska anses som svag jämfört med prognosen. 1
0,8
0,6
0,4
0,2
0
0
min/2
min
avg
max
Figur 10 ʹ x-­‐ axeln visar ʅsvaga vindar(observerad vind), y ʹ axeln visar hur mycket vinden avviker från prognosen 15 729G11 Artificiell Intelligens Tommy Hudin Fördjupningsarbete Ht 09 tomhu339 2009-­‐09-­‐30 Figur 10 visar att först när vindarna är hälften så svaga som minimivärdet för den prognoserade vindstyrkan så kan vinden anses tillhöra den oskarpa mängden svaga vindar med väldigt hög sannolikhet. Vid en prognos som säger 20-­‐30 sjömil skulle det alltså innebära att när vindarna får en observerad vindstyrka på 10 sjömil så varnar SIGMAR meteorologen. Även vindriktning behandlar SIGMAR på detta numeriska sätt. Se figur 11. 1
0,8
0,6
0,4
0,2
0
0
45
90
135
180
Figur 11 ʹ x ʹ axeln visar ʅfelaktig vindriktning(observerad vind), y ʹ axeln visar skillnaden på observerad vindriktning och förväntad vindriktning i grader. Från figur 11 kan man utläsa att först när vindriktningen har ändrats ett kvarts varv så är förändringen signifikant nog för att SIGMAR ska utfärda en varning. För då tillhör vindens riktning med 80 % sannolikhet den oskarpa mängden felaktig vindriktning. 3.5 SIGMARS resultat ^/'DZĂŶǀćŶĚĞƐĨƂƌĨƂƌƐƚĂŐĊŶŐĞŶϭϵϵϲƉĊDt͘ŶǀćŶĚĂƌŶĂƐĨƂƌƐƚĂƌĞƐƉŽŶƐǀĂƌ͟ĂůůƚĨƂƌŵĊŶŐĂ
ƐŝĨĨƌŽƌĂƚƚŚĊůůĂƌĞĚĂƉĊ͊͘͟DĞƚĞŽƌŽůŽŐĞƌŚade redan tidigare problemet att tolka skärmar fulla med data. SIGMAR tycktes bara vara mer av samma sak. DärföƌƵƚǀĞĐŬůĂĚĞƐĞŶǀĞƌƐŝŽŶĂǀ^/'DZ͕͟ƚŚĞ
tŝŶĚůĞƌƚƉƌŽŐƌĂŵ͘͟ĞŶŚćƌǀĞƌƐŝŽŶĞŶǀĂƌŶĂĚĞĞŶĚĂƐƚŶćƌǀŝŶĚĂƌŶĂǀĂƌƐŝŐŶŝĨŝŬĂŶƚŚƂŐƌĞćŶ
ĨƂƌǀćŶƚĂƚ͘ŶŶĂƌƐƐĂƉƌŽŐƌĂŵŵĞƚĞŶĚĂƐƚĂƚƚ͟ǀŝŶĚĂƌŶĂćƌƚŝůůƌćĐŬůŝŐƚƐǀĂŐĂ͘͟DĞƚĞŽƌŽůŽŐĞƌŶĂĂŶƐĊŐ
att denna version av SIGMAR var väldigt användbar. De är allt som oftast inte intresserade av när vindarna är för svaga utan det som kräver deras uppmärksamhet är starka vindar. Detta ledde dock till att meteorlogerna använde SIGMAR mindre under sommaren då det inte blåste så mycket. När höst och vinter tilltog användes SIGMAR allt mer. Användarna vittnar också om att SIGMAR är väldigt användbart i början av deras arbetsdagar, eftersom SIGMAR ger relevant information snabbt och enkelt. Meteorologerna kunde med SIGMAR direkt se vilka områden som de först behövde fokusera på. (Hansen, 1997) 4.1 Avslutande diskussion Innan jag satte mig in i det här arbetet var fuzzy logic något för mig helt obekant. Jag tyckte att det ůćƚƐĊůƵƐƚŝŐƚ͟ůƵĚĚŝŐůŽŐŝŬ͟. Därför ville jag lära mig mer om vad det var för något, utan att ha en aning om att fuzzy logic var så användbart och vanligt förekommande som det faktiskt är. Jag valde ut ett expertsystem bland många andra som använde sig av fuzzy logic för att kunna visa på hur det 16 729G11 Artificiell Intelligens Tommy Hudin Fördjupningsarbete Ht 09 tomhu339 2009-­‐09-­‐30 kunde tillämpas i praktiken. När jag letade i litteraturen upptäckte jag att fuzzy logic användes överallt. Man kunde med hjälp av det beräkna hur stor risk olika djurarter löpte att bli utrotade. Man kunde kalkylera med vinstplaner för företag eller beräkna risken för att människor drabbas av olika hjärt -­‐ och kärl sjukdomar eller cancerformer. Helt klart användbart inom en rad områden som jag inte ens hade tänkt på. Nu i efterhand kan jag dock förstå varför ai-­‐ system med fuzzy logic är så vanligt förekommande. Fuzzy logic svarar så oerhört bra mot människans intuitiva tankar. Ta bara ĞdžĞŵƉůĞƚŵĞĚŚƵƌŵĂŶŬĂƚĞŐŽƌŝƐĞƌĂƌŝŶǀŝŶĚĂƌŝŚƵǀƵĚĞƚ͕ŵĂŶŬůƵŵƉĂƌũƵŝŚŽƉĚĞŵƚŝůů͟ŝĐŬĞ-­‐
ƐƚŽƌŵĂƌ͕͟͟ŶćƐƚĂŶ-­‐ƐƚŽƌŵĂƌ͟ŽĐŚ͟ƐƚŽƌŵĂƌ͘͟ĞƐƐƵƚŽŵƐĊĚĞĨŝŶŝĞƌĂƌŵĂŶŝŶŐĂƚydliga gränser för dessa mängder utan det är lite flytande. Man tar det också för mer sannolikt att en vind på 32sjömil kan ha varit en stormvind än en vind på 14 sjömil. Det finns ingen annan logik som svarar upp mot människans intuition på liknande sätt. Det är faktiskt möjligt att med fuzzy logic beskriva och beräkningsmässigt hantera vår reella värld. Med lätthet kan man beundra skönheten i hur fuzzy logic kan fånga vår omvärld och samtidigt kan man sträcka sig till att inskränka andra typer av logik som underavdelningar inom fuzzy logic . Betänk dessutom nyttan med ai-­‐system som implementerat fuzzy logic. Om man tar SIGMAR som exempel, anställda på MWC berättade om att de med en snabb blick kunde se vilka områden som krävde störst uppmärksamhet. En snabb blick istället för att sätta sig in i en mängd data. Är inte det användarvänligt så säg? Användarvänlighet är nämligen något som jag som kognitionsvetare sätter stort värde på. 17 729G11 Artificiell Intelligens Fördjupningsarbete Ht 09 Tommy Hudin tomhu339 2009-­‐09-­‐30 5.1 Litteraturförteckning Baldwin, J. (1996). Fuzzy Logic. Chichester, New York, Brisbane, Toronto, Singapore: John Wiley & Sons Ltd. Berkan, R. C., & Trubatch, S. L. (1997). Fuzzy Systems Design Principles. New York: Institute of Electrical and Electronics Engineers, Inc. Cai, K. -­‐Y. (1996). Introduction to Fuzzy Reliability. Boston/Dordrecht/London: Kluwer Academic Publishers Group. Emilsson, M. (2006). Precisiated Natural Language. Linköping: Linköpings Universitet. Fullér, R. (2000). Introduction to Neuro-­‐Fuzzy Systems. Heidelberg: Physica -­‐ Verlag. Hansen, B. (1997). SIGMAR, A Fuzzy Expert System for Critiquing Marine Forecasts. AI Applications. Vol 11. No 1. , 59-­‐68. Kartalopoulos, S. V. (1996). Understanding neural networks and fuzzy logic. New York: Institute of Electrical and Electronics Engineers, Inc. Norman, D. A. (1993). Things that make us smart. Cambridge, Massachusetts: Perseus Books. Prytz, E. (2006). Fuzzy Logic and Fish Extinction Vulnerability Estimation. Linköping: Linköpings Universitet. Russel, S., & Norvig, P. (2003). Artificial Intelligence -­‐ A modern approach. Upper Saddle River, New Jersey: Pearson Education Inc. www.weatheroffice.gc.ca. (den 29 09 2009). http://www.weatheroffice.gc.ca/data/marine/base_images/Maritimes_stations_e.gif. Hämtat från www.weatheroffice.gc.ca. den 04 10 2009 Zadeh, L. (2001). A new direction in AI -­‐ Toward a computational theory of perceptions. AI Magazine , 73-­‐84. 18