Fuzzy Logic och dess implementering i ett företagsspel

Storlek: px
Starta visningen från sidan:

Download "Fuzzy Logic och dess implementering i ett företagsspel"

Transkript

1 Fuzzy Logic och dess implementering i ett företagsspel Phian632 Philip Anzén Linköpings Universitet Artificiell Intelligens II, 729g

2 Innehåll 1. Inledning Översikt av Fuzzy Logic Fuzzy sets Vs Crisp sets Lingvistiska inverkan i Fuzzy Logic Medlemskaps funktioner Operationer Modifierare Fuzzy Logic implementering i ett företagsspel Fuzzy decision making system Spelets grunder och utförande av FDMS/FDMSB Slutsats Referenser

3 Inledning I den här uppsatsen kommer grunderna av Fuzzy Logic att tas upp samt hur detta kan användas för att skapa ett företagsspel. Detta företagsspel är uppbyggt med hjälp av Fuzzy Logic och hur detta är gjort kommer att introduceras. Uppsatsen bygger helt på tidigare skrivna artiklar och ingenting nytt kommer att läggas till. 3

4 Översikt av Fuzzy Logic Fuzzy Logic är ett användbart verktyg för att hantera oskarpa definitioner. Med detta menas att man kan hantera värden som inte bara är sanna eller falska. Detta är därmed ett alternativ till predikat logiken då den endast hanterar sanna eller falska värden. Fuzzy Logic togs fram av en man vid namn Zadeh under 1960 talet och detta gjordes just för att få fram ett sätt att hantera saker som inte är svart eller vitt. Varför detta behövs är för att vi i vårt naturliga språk använder många uttryck så som medellång eller ljummet osv och dessa grå zoner i språket kan med hjälp utav Fuzzy Logic hanteras maskinellt. Fuzzy Logic gör detta möjligt då det istället för att jobba med fasta värden för något som true=1 och false =0 så jobbar den med mängder och hur mycket något är med i ett set eller inte, en typ av medlemskaps grad. Dessa sets som kallas Fuzzy sets skapas genom att man definierar vad som är tex kallt, ljummet och varmt och sedan räknar man ut hur stor del av varje ett särskilt värde gäller för. Dessa värden måste alltid adderas till 1 då de ger en procent av hur mycket något tillhör ett visst set. Detta gör det sen möjligt för maskiner och annat att kunna fatta logiska beslut utefter en regelbas trots att värdena inte bara är sanna eller falska som i predikat logiken och därmed behöver den inte jobba efter matematiska formler då den har regelbasen att gå efter. 4

5 Fuzzy sets vs Crisp sets Det finns två olika typer av sets som måste förklaras inom Fuzzy Logic. Dessa är det sk Fuzzy sets som ger hur mycket något är en del av en definition och Crisp sets är de sets som innehåller statiska predikat som då alltså arbetar som i predikat logiken som antingen sanna eller falska. Till skillnad från Crisp sets så arbetar alltså Fuzzy sets med att skapa medlemskap i kategorier och utifrån det kan man beräkna hur mycket ett objekt är med i den luddiga kategorin. Ett exempel på detta är om en person är svag eller stark. Genom att definiera tex att om en person klarar 10 armhävningar så är den stark då skulle detta i ett crisp set betyda att någon som klarar 9 armhävningar skulle vara svag även fast skillnaden är så pass liten. Det är här Fuzzy sets kommer till användning då man istället kan visa att personen som klarat 9 armhävningar är 0.9 stark och 0.1 svag. På det här sättet kan man alltså bearbeta saker som lingvistiskt sätt är ganska luddiga och man får då ett bättre människolikt rationaliserande av luddiga lingvistiska variabler jämfört med det hårddragna crisp set där detta inte är möjligt. Figur 1. Illustrerar ett crisp set och ett fuzzy set av medelålder och gammal ålder. Taget från Yasuhiko Dote, Introduction to Fuzzy Logic (se referenslista). Lingvistiska inverkan i Fuzzy Logic Tidigare nämnt så används ord som värden inom Fuzzy Logic. Detta är en stor skillnad om man jämför med tidigare nämnda logiska beräkningsätt som tar tal som värden. Dessa ord kallas för lingvistiska variabler och är dem man kopplar till det olika lingvistiska värdena. Dessa värden är sen det som kallas för term sets och dessa är det Fuzzy sets som ovan förklarats. För att gå tillbaka till exemplet ovan så skulle då den lingvistiska variabeln kunna vara S som står för styrka. Den har sen i sin tur det så kallade term setet som vi kan döpa till A, detta A innehåller då det två Fuzzy seten i detta fall svag och stark. Dessa Fuzzy setsen 5

6 måste då finnas representerade i det Universum man använder som i det här fallet är antal armhävningar låt säga mellan Allt detta blir då en formel som ser ut på detta sätt: A(styrka) = {svag, stark} Universumet är alltså något som man skapar själv för sitt specifika fall och i detta universum måste alla objekt som man kan tänka sig att ha med som Fuzzy sets finnas med. Detta krävs för att Fuzzy Logic ska kunna fungera och med det menas att om inte alla objekt finns med så kommer den inte heller att räkna ut en korrekt delmängd av hur mycket något tillhör en kategori. Dessa objekt måste även kunna avgöras om dom är med i ett set eller inte. Detta görs genom att se till så att objekt x är medlem i setet X. Detta skriver man ut på följande sätt: Detta måste sedan vara sant för att man skall kunna utgöra hur stort medlemskap något har. Detta görs med följande medlemskaps funktion: I den här medlemskaps funktionen så introduceras ytterligare tecken. Det stora U står för universumet och i universumet så existerar x och µ x står för den mängd av medlemskap som x får och det kommer alltid att vara mellan värdena 0-1 oavsett om flera objekt introduceras. Med dessa nu introducerade så kan man sedan skriva ut hela sitt Fuzzy set. Detta görs på följande sätt: X = {(x,µ x )} Det här visar alltså att X är ett Fuzzy set där x är ett objekt i setet och µ x är den mängd/grad som x är medlem i setet. För att kunna utgöra denna grad av hur mycket ett objekt är en mängd av ett set så måste det här introduceras värden. Dessa värden är oftast en intervall mellan 0-1 som visats ovan, desto närmare 0 ett objekt hamnar i medlemsgraden desto mindre medlem i setet är det och ju närmare 1 desto högre medlems grad har det. Detta fungerar bra om man har två olika värden så som tex stark och svag för då kan man få en medlemskaps grad för objektet i dessa två olika variabler. Men då är frågan hur detta kan 6

7 hanteras när det bara finns ett värde, detta kallar man för Fuzzy singelton. Detta hanteras med en medlemsfunktion som endast kan vara sann eller falsk. Det man gör här är att man bestämmer för vilket värde som medlemsfunktionen är sann (tex medlemsgrad = 1) och då är resterande värden falskt. Medlemskaps funktioner Dessa medlemskapfunktioner är en essentiell del för att systemet skall fungera korrekt och det finns många olika varianter av dem. Det funktioner som oftast dyker upp är trapezodialfunktioner, triangelfunktioner och Gaussianfunktionen. Dessa görs oftast med hjälp av experter inom det område som funktionen skall användas i. Så om det skall användas i det tidigare exemplet med stark och svag så görs det av en expert inom området styrka. Detta krävs då värdena måste definieras för vad som i det här fallet faktiskt är stark och svag för att systemet skall kunna rationalisera så bra som möjligt. En trapezodial funktion ser ut på följande vis: Figur 2. Taget ur Jantzen samt wiki sida (Se referenslista). I grafen som visar en trapezodial funktion så kan vi säga att ix1= a, ix2=b, ix3=c och ix4=d. Därmed står alltså x i funktionen för objektets värde i Fuzzy setet. Det andra a, b, c, och d är dem fyra brytpunkterna i funktionen, där a står för den lägsta punkten i funktionen, b den första högsta punkten, c det sista högsta samt d den sista punkten i setet. Sen har vi den vanliga triangulära medlemskaps funktionen. Denna funktion är exakt samma som den för trapezodial förutom att istället för att ha två högsta brytpunkter så är det bara en, dvs b=c. 7

8 Detta eftersom det bara finns en topp i en triangulär form: Figur 3. Taget ur Jantzen, Tutorial on Fuzzy Logic (se referenslista). Denna trapezodial funktion är en så kallad "continous function" alltså en pågående funktion. Men en annan typ av funktion är den tidigare nämnda Gaussian funktionen. Denna är till skillnad från den trapezodiala funktionen diskret och inte pågående. Skillnaden på att använda den klassiska trapezodial funktionen och den Gaussianska funktionen är att med den trapezodiala så får man en skarp graf medans med den Gaussianska så får man en slät graf. Denna funktion ser ut på följande vis: Figur 4. Taget ur mathworks, (se referenslista). I den här ekvationen så står x för medlemsfunktionen, medan x 0 står för funktionens topp i relation till universumet samt att σ står för standard deviationen. Lägger man då in dessa värden så får man alltså ut en slät kurva istället för en skarp som i trapezodial funktionen. Det finns även praktiska skillnader mellan dessa funktioner då den pågående funktionen ("continous function") är mer krävande än den diskreta men dock mindre minnes krävande. Detta eftersom den pågående funktionen kan kräva längre tid för uträkningen medans för den diskreta så måste den veta alla värden som är med och om det är många värden så krävs alltså mera minne än i den pågående. 8

9 Något som även är viktigt att påpeka när det gäller medlemsfunktioner är reglerna som finns när det existerar ett objekt som är medlem i flera set. Det viktiga med det här är att oftast så vill man att ett objekt ska vara medlem i flera set av den anledningen att man vill undvika luckor mellan två set. För om man har objekt som är medlem i flera set så integreras linjerna bättre och man slipper oftast dessa luckor. Dessa luckor vill man alltså undvika för att risken att information missas och blir inkorrekt ökar. Det här kan i sin tur leda till att det system som använder detta jobbar vidare med felaktig information vilket leder till att systemet blir mindre användbart och korrekt. Därmed vill man försöka undvika luckor mellan seten så att man med säkerhet vet att systemet har alla värden representerad så att det blir så användbart och precist som möjligt. Operationer I vanlig set teori så finns det olika uttryck så som, "union", "intersect" och "complement". Dessa uttryck används för att jämföra olika set och vad dem innehåller. Union används för att förklara vilka objekt som finns i antingen setet X eller Y eller i båda. Detta betyder att om vi har ett två set som ser ut på följande sätt: X(1, 2, 3), Y(1, 3, 4) Då skulle unionen av dessa vara (1, 2, 3, 4). Nästa uttryck "intersect" innefattar det objekt som finns i både X och Y. Vilket i det här fallet skulle bli (1, 3). Till sist har vi "complement" och det innefattar ett set som innehåller det objekt som finns i universum men inte i set X tex. Så om vi har U(1, 2, 3, 4, 5) så skulle komplementet för set X vara (4, 5). Dessa regler skapar vissa problem inom Fuzzy Logic, detta pga det gradvisa medlemskapet av ett set. Detta blir ett problem eftersom att objektet 1 kan vara med i både set X och set Y men i Fuzzy Logic så kan det vara 0.3 medlem i X och 0.7 medlem i Y och detta gör att det blir svårt att göra detta med det vanliga unionsreglerna. Det man gör i detta fallet är att man använder sig utav operationer som ser ut på följande vis för union och intersect: Union: X U Y = max(x, Y) Intersect: X Y = min(x, Y) 9

10 Det dessa operationer gör är att för unionen av två set så unifierar den först alla objekten i X och Y som visats som tidigare exempel (1, 2, 3, 4). Det den sen gör är att gå igenom alla objekten och se vilket som har högst medlemsvärde och det objekt väljs då. För intersect operationen så gör den då först intersectionen av X och Y vilket i det tidigare exemplet blev (1, 3). Dessa ses sen över av operationen och det objekt med minst medlemsvärde väljs. På detta sätt kringgår man alltså problemet med det olika medlemsvärdena genom att för dem olika fallen välja det som antingen har störst eller minst medlemsvärde. Modifierare Nästa viktiga instans i Fuzzy Logic världen är modifierare. Modifierare behövs för att slippa skapa nya Fuzzy sets varje gång man önskar att ändra innebörden av ett set. Så om man har tex stark och svag så kanske man vill ändra till ganska stark eller extremt stark etc. Istället för att då skapa nya sets varje gång så använder man sig av modifierare framför setet. Dessa modifierar är just det ord man vill använda så som ganska, hyfsat, väldigt, extremt etc. Det som då händer med modifierare är att det uppdaterar medlemskapet i setet. Så om vi har ett Fuzzy set som är Stark, då kan man sätta modifieraren extremt framför detta så att det blir Extremt Stark. Detta gör då att setet uppdateras och representerar nu istället för stark den lingvistiska variabeln Extremt Stark. Detta är något som görs som tur är av operatorer som man redan skapat. Dessa operatorer gör om medlemsvärdena i setet automatiskt med hjälp av fasta uträkningsmetoder. Så om man då tex lägger till Väldigt till Stark så gör man upphöjt till 2 på medlemsvärdena. Så om du har ett set där universumet består av olika grader av stark U(3, 5, 8, 10) och medlemsvärdena av dessa är {0,3, 0,5, 0,8, 1} så blir dessa medlemsvärden efter modifieraren Väldigt lagts till {0,09, 0,25, 0,64, 1}. Denna ekvation ser ut på följande vis: Det man då gör här är som sagt att för ett exempel som skall bli större så som Väldigt så gör man alltså upphöjt till en lämplig siffra beroende på hur mycket större den lingvistiska modifieraren betyder. Men om man skall göra något mindre som tex ganska stark så kör man istället roten ur på värdet. detta ser ut på följande sätt: 10

11 "morl" står i det här fallet för "more or less", alltså mer eller mindre. Dessa ekvationer kan alltså generaliseras och användas på olika typer av modifierar och det enda som krävs är att man har en tydlig grad på hur stor skillnaden skall vara mellan de olika modifierarna som tex att väldigt skalla vara upphöjt till 2 i exemplet ovan. Det generella ekvationerna ser ut på följande sätt: Förstora A = {<x, µa(x)> µa(x) = µ k A(x), x X} Förminska A = {<x, µa(x)> µa(x) = µ 1/k A(x), x X} I ekvationerna står k för ett heltal, x är objektet med medlemsvärdet µ A (x) och X är universumet. 11

12 Fuzzy Logic implementering i ett företagsspel Efter att ha beskrivigt stora delar av hur Fuzzy Logic fungerar så är då nästa steg hur man kan använda detta som ett verktyg inom olika områden. Fuzzy Logic har ett relativt stort användningsområde i olika kontrollsystem så som värmesystem etc. Men det kan även användas till att hjälpa en agent att ta olika beslut inom spelande. Två personer vid namn Festus Oluseyi Oderanti och Philippe De Wilde (2010) har skapat ett datasimulerat företagsspel med hjälp av Fuzzy Logic och sedan skrivigt en artikel om detta. Artikelns rubrik lyder "Dynamics of business games with management of fuzzy rules for decision making". Det dem har byggt spelet på är grunderna av spel teori samt Fuzzy Logic. I den här delen av uppsatsen kommer inte grunderna av spel teori att tas upp utan fokus kommer att ligga på att förklara hur dem använt Fuzzy Logic i det hela. Men för att kunna göra det så krävs dock en förklaring om vad spelet går ut på i grund och botten. Spelet går ut på att två företag som inriktar sig på samma marknad skall kunna mötas i detta spel för att slåss mot varandra om marknadsandel samt vinster. Detta görs genom att företagen agerar som spelare i spelet sedan har man ett begränsat antal handlingar man kan göra varje runda. Dessa handlingar i det här fallet är beslut som företaget skall ta baserat på osäker information. Den här osäkra informationen är den information som spelaren har om motståndaren nuvarande eller förutsatta efterfrågan, kostnad av produktion, marknadsföring, konsolideringsansträngning samt några andra företags variabler. Det är den här osäkra informationen som modelleras med hjälp av Fuzzy Logic. Det som sedan är tanken är att ena företaget spelas av den så kallade "Fuzzy agenten" medans den andra spelas av "människa agenten" för att slåss om vilka resurser som skall användas och när baserat på den osäkra informationen man har, för att ta över så stor marknadsandel samt vinst som möjligt. Grunden byggs upp med hjälp av Fuzzy rules som skall symbolisera olika regler och srategier som en firma tar med i beräkningarna när dem fattar beslut angående användning av olika resurser. Modellen som dessa herrar har skapat innefattar även en inlärningsprocedur som gör att agenten kan optimera dem Fuzzy rules som ges samt sina beslut, mycket av beräkningarna görs i Matlab. Denna inlärningsprocedur samt beräkningarna inom Matlab kommer inte att täckas grundligt i denna uppsats utan som nämnt tidigare så kommer fokusen att vara på Fuzzy Logic användandet men för att kunna göra detta så kommer vissa saker att tas upp och förklaras. Grunderna för agenten blir alltså att med osäker information kunna ta beslut för att göra det svårt för sin motståndare men samtidigt ta beslut med så stor vinst möjlighet för den själv. Fuzzy decision making system (FDMS) Det spelet har som grund är ett så kallat "Fuzzy decision making system" detta förkortas FDMS men det har sedan utvecklats till något som dem kallar för "Fuzzy decision making system for business games" FDMBS. Ett FDMS system bygger på några av grund stenarna 12

13 inom Fuzzy Logic dvs, fuzzification steget, Fuzzy regel bas, Fuzzy decision logic och defuzzyfication steget. Fuzzification steget: Det här är det första steget i spelprocessen där det värden som skall användas görs om från crisp värden till Fuzzy värden. Detta görs genom att inse att det värden som man till vardags antar är crisp i själva verket är Fuzzy. Detta gör att värden nu kan presenteras med hjälp av medlemsfunktioner som förklarats ovan. Hur detta går till generellt är att systemet tar ett crisp värde och gör om det till ett Fuzzy värde. Detta görs genom att göra om inputvärdet till en medlemsgrad. Det här gör den genom att matcha inputvärdet mot det medlemskaps funktioner som finns. Så om man tex har ett värde på hur många armhävningar någon kan göra låt oss säga x = 10 armhävningar. Då matchas detta mot medlemsfunktionerna µa = svag och µb = stark. Om vi då har en range på mellan 0-20 armhävningar där svag har ett högsta medlemsgradvärde på 5 armhävningar och stark har ett högsta på 15 armhävningar så skulle x teoretiskt sätt kunna ha ett medlemsvärde på µa(x) = 0.5 och ett µb(x)=0.5 eftersom det är i mitten mellan svag och stark. Fuzzy regel bas: Denna regel bas är uppbyggd på ett sk "conventional antecedent-consequent form" vilket i det svenska språket kan översättas till den konventionella föregångaren-därav formen. Med detta så menas att basen för reglerna är att "detta skedde därav skall du göra detta". Detta är alltså baserat på den vanliga logikens om x så y, där x och y är Fuzzy setsen. Genom att sätta upp alla dessa om detta-gör detta regler så skapas här kunskaps basen för sin Fuzzy agent och det är utifrån dessa som den skall fatta sina beslut. Men eftersom detta är ett Fuzzy system så är som tidigare känt inte allt bara sant eller falskt och därav tillkommer vissa delar. I ett Fuzzy system som detta så är regeln att om en "föregångare" är sant till en viss grad så betyder det även att "därav" är sant till samma grad. Så om det tex är sant till 0.8 att motståndaren lagt hälften av sina pengar på marknadsföring så är det också sant till 0.8 att man ska möta detta med att spendera 3/4 delar av sin budget på marknadsföring till exempel. Sedan används för små nummer av inputs en kompakt form av representering av det Fuzzy rule baserade systemet i en tabell där olika delar representerar olika inputs, detta har namnet "Fuzzy associative memory tabel" FAM. Dessa tabeller ser ut på följande sätt: Figur 5. Taget ur Spelartikeln, (se referenslista). 13

14 Utifrån dessa tabeller kan man alltså utläsa den outputen som skall ges givet två variabler, tex som i detta fallet där D står för efterfrågan (demand) och C p är kostnad för produktion (cost of production) där D är raden och C p är kolumnerna hur mycket den förväntade konsoliderings ansträngningen skall vara (till hur stor sträckning man skall slå ihop de mindre företagen i sin koncern). Så om man har hög efterfrågan och hög kostnad för produktion så skall man alltså sätta ihop sina små företag till en medium nivå och det är i dessa very low, low, medium och high som Fuzzy logic krävs för att systemet skall förstå vad som menas. Detta görs som bekant på det viset som förklarats i den tidigare sektionen vid namn lingvistiska inverkan i Fuzzy logic. Det man har gjort här är att om en regel inte har ett värde vid 0 så ska den "fire", alltså användas. Detta beslut samt värde kommer ifrån inference motorn som tas upp nedan. Matematiken bakom det hela utgörs i Matlab och går att läsa mera om i original artikeln men som sagt tidigare så kommer detta inte att tas upp här. Beslutsfattnings logiken: Beslutsfattnings logiken utgörs av den som påminner om den klassiska logiken samt att den påminner om simulerat mänskligt beslutsfattande i slutna fuzzy kontroll baserade handlingar på reglerna av inference i fuzzy logic. Detta betyder alltså att den liknar den klassiska "om p så q" regeln vilket gör att beslutet fattas med hjälp av denna typen av härledningar. Den specifika inference teknik som använts i spelet är Mamdani system. Detta förklaras inte i artikeln då allt detta är implementerat i Matlab som utför detta automatiskt genom det val man väljer i programmet. Inference motorn: Inference motorn är direkt länkad till regel basen för att med hjälp av reglerna kunna matcha inputen som den får ifrån fuzzifikations steget med det regler som finns i basen för att sedan kunna ge den handling som skall utföras. Detta görs genom "aggregation", "activation" och "accumulation". Aggregation operationen används för att räkna ut graden av lycka eller som Oderanti och De Wilde uttrycker det som "fire". Med detta menas alltså att här räknar man på om något skall göras eller inte. Denna operator räknar alltså denna grad, α k, för villkoret av regeln k, så om regeln är att öka produktion vid hög efterfrågan och dessa har en lycka grad på över 0 så skall ökad produktion göras. Det denna operation gör är att generera ett fuzzy medlemskaps värde för detta villkor. Sen om regeln k innehåller två villkor så sätts dessa ihop och genereras ett värde för båda villkoren. Det värde som kommer ut ur aggregation operationen går sedan vidare till activation operationen. Aktiveringen kan ses som konsekvensen av regeln. Denna konsekvens blir reducerat av detta grad av lycka värde/fire värde. I denna operation så används oftast min max beroende på hur man utformat reglerna. Vid dem tillfällen som reglerna innehåller flera villkor så använder man sig av min operatorn medan om det är antingen den ena eller andra villkoret så använder man max operatorn (om x eller om y så...). Det min operatorn i praktiken gör är att kapa av konsekvensens fuzzy set så att det endast representerar en output. Den här outputen gäller för det minsta medlemskapsvärdet för försatsen. Detta gör man eftersom att det inte är troligare att konsekvensen gäller än att förutsättningarna gäller. Om man använder max operatorn så görs inte samma sak utan då kapas konsekvenssetet så att det har en output som gäller för det 14

15 högsta medlemskapsvärdet. Det här görs eftersom att om en förutsättning gäller så måste ju även konsekvensen gälla. Det sista steget är sedan accumulation som innebär att den sluter samman alla aktiva slutsatser och det görs genom unifiering. När detta är gjort så skapas en graf som innehåller alla slutsatser utifrån det regler som använts. Denna graf kommer sedan till användning i defuzzifikation processen för uträkningen av det slutgiltiga crisp värdet. Defuzzifikations processen: För att systemet skall fungera så går det inte att ha olika vaga värden som slutvärden utan man behöver få ett tydligt värde för att det skall fungera. Därav krävs det ett slutsteg som kallas för defuzzifikations processen. Här finns det olika typer inom fuzzy logic som används, några utav dom är, center of gravity (COG), mean of maxima (MOM), leftmost maxima (LOM). Den vanligaste av dessa är COG och det är även den man har använt sig av i detta spel. Det detta i grund och botten gör är att det konverterar fuzzy kontroll handlingarna (fuzzy outputen) till en crisp handling/output. Resultatet kan alltså bli att man reducerar fuzzy setet till ett crisp "en värdigt" output eller ett crisp set; tar ett fuzzy matrix gör det till ett crisp matrix; tar ett fuzzy tal till ett crisp tal. Det gör helt enkelt allt som är fuzzy till crisp. Man kan undra varför man då över huvud taget använder fuzzy värden från början men det är oundvikligt behövande då det hjälper till att utvärdera reglerna medan den slutliga outputen av ett fuzzy system måste vara ett crisp värde och inputen för defuzzifikations processen är den sammansatta outputen fuzzy sets samt att outputen är ett nummer och inte flera. Detta är oundvikligt för att systemet skall kunna fatta beslut och för att det överhuvudtaget skall fungera. Det COG rent teoretiskt gör är att den hittar punkten där en vertikal linje skulle skära ett sammansatt set i två lika stora delar. Rent teoretiskt så räknas detta ut över en rad kontinuerliga punkter i den sammansatta outputen medlemskaps funktioner men i praktiken så kan en hygglig estimering göras med prövnings punkter. Det COG rent matematiskt gör är en ganska komplex uträkning. Grunderna till detta är dock att den räknar ut arean under grafen från det fuzzy set som skickats vidare från inference motorn. Ekvationen för detta ser ut på följande vis: X i här är en flytpunkt i det diskreta universum och µ(x i ) är punktens medlemskaps värde i medlemskaps funktionen. Det innebär att summan av alla objekt X i multiplicerade med sina medlemskaps funktioner µ(x i ) och delas sen med summan av alla existerande medlemskaps funktioner. Detta värde är då det värde som kan användas för att ta beslut om handlingen men ibland kan det även krävas att detta värde processas och görs om till ett "engeneering" värde för att kunna användas som tex volt, meter, eller pengar. Detta borde användas i spelet då man använder valuta som det agenten skall handla med, men detta är inte skrivet i artikeln och är därmed endast en spekulation ifrån min sida. 15

16 Spelets grunder och utförande av FDMS/FDMSB I spelet så används alltså allt detta för att agenten skall kunna göra följande. Båda spelarna börjar med en viss summa pengar i deras exempel används 5 millioner. Dem är sedan givna initiala resurser som dem kan använda, tex, "consolidation efforts" (C), "reserved or generated wealth" (W) och "aggressiv marketing efforts" (M). Med dessa kan då alltså agenten för varje runda som går använda den summan pengar dem har på dessa olika resurser. Det är här reglerna som skapats används för att se hur pengarna skall spenderas för att ha så stor chans som möjligt att öka sin vinst samtidigt som man dödar det andra företaget/agentens marknadsandel och vinster. Valen av hur pengarna spenderas görs samtidigt vilket innebär att man inte vet hur den andra spelaren kommer att spela vid första rundan. Men vid andra rundan så får man information om hur den andra spelaren valde att dela ut sina resurser vid den tidigare rundan. Därav kan man med inlärningsmetoden lära sig vad som funkar när den andra spelaren har gjort ett specifikt val. Dessa strategier är uppbyggda i spelet enligt vectorer så i det här fallet alltså [C, W, M]. I detta fall så används "consilidation efforts" (C) inte som sammanslagning av mindre företag utan istället som en variabel för hur mycket man skall lägga ner på att behålla kunder (kundservice). Denna vector är alltså den samma för båda lagen och sedan när dem väljer hur mycket dem skall lägga och var så kommer denna historik sen att se ut på följande sätt om låt säga man väljer att spendera allt på marknadsföring i första rundan, [0, 0, 5]. Det första valet fuzzy agenten görs bygger på färdiga strategier utifrån hur man skall börja på en ny marknad. Hela denna process ser ut på följande sätt: 16

17 Figur 6, taget ur Spelartikeln (se referenslista), Figur a, en bild på hur FDSM fungerar, Figur b, en bild på hur deras spel är uppbyggt med det dem kallar för FDSMB. Här kan vi alltså se hur dem börjar med tomma vectorer och sedan gör sina val. När valen sen är gjorda så går det igenom och räknas ut hur mycket man vann eller förlorade på det och vad som sen blir inlagt i inlärningen. Det r visar är hur många runder som har gått. I deras exempel så använder dem 5 rundor, så länge det finns en runda kvar att spela så skall alltså spelet fortsätta. Den biten som är intressant här är dock FDMS biten. Det är där i mitten allt som har förklarats ovan används för att från fuzzification steget ända till defuzzifcation steget räkna ut med hjälp av regel basen vad nästa drag i spelet skall vara. Så med hjälp utav Fuzzy Logic så kan alltså denna agent slå ut en annan spelare ifrån marknaden och vinna detta företagsspel. 17

18 Slutsats Fuzzy logic är något som jag anser är ett bra verktyg för att göra användarvänliga modelleringar både i spel men kanske framförallt inom regleringssystem. Genom att kunna använda vaga lingvistiska variabler och implementera dessa så att en maskin kan förstå gör att maskinens bearbetning utav handlingar och utförningen utav dessa handlingar blir mera människoliknande. Det är detta som gör att Fuzzy Logic enligt mig har en viktig del inom AI och dess framtida forskning och utvecklings framsteg. 18

19 Referenser Jantzen, J. Tutorial on Fuzzy Logic. Besökt Jantzen, J. Design of Fuzzy Controllers. Besökt Spel artikeln. Besökt "Dynamics of business games with management of fuzzy rules for decision making", Festus Oluseyi Oderanti, Philippe De Wilde, 2010, Int. J. Production Economics. Dote, Y. Introduction To Fuzzy Logic. Besökt Fuzzification förklaring. Besökt Wikipedia övergripande info om Fuzzy Logic. Besökt Bild på trapezoid. Besökt Bild på Gaussian. Besökt

20 20

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

729G11 ARTIFICIELL INTELLIGENS 2, LINKÖPINGS UNIVERSITET. Fuzzy Logic. Caroline Allmér, caral 729G11 ARTIFICIELL INTELLIGENS 2, LINKÖPINGS UNIVERSITET Fuzzy Logic Caroline Allmér, caral281 2011-09-19 Innehåll Innehåll... 2 1. Inledning... 3 2. Hur det fungerar... 4 2.1 Crisp-set och fuzzy set...

Läs mer

Fuzzy Logic: Den oskarpa skarpheten

Fuzzy Logic: Den oskarpa skarpheten Fuzzy Logic: Den oskarpa skarpheten Av: 1 Innehåll Inledning... 3 Vad är Fuzzy Logic?... 4 Fuzzy sets... 4 Medlemsskapsfunktion... 5 Operatorer... 7 Union... 7 Snitt... 8 Komplement... 8 Exempel med de

Läs mer

Fuzzy control systems

Fuzzy control systems Institutionen för datavetenskap Artificiell intelligens II, 729g11 Projekt HT-12 LINKÖPING UNIVERSITET Fuzzy control systems Användning av fuzzy logic I tvättmaskiner Karolin Nissa 9/17/2012 Abstract Den

Läs mer

729G11 Artificiell Intelligens Marcus Johansson Marjo581. Fuzzy logic. Marcus Johansson Marjo581

729G11 Artificiell Intelligens Marcus Johansson Marjo581. Fuzzy logic. Marcus Johansson Marjo581 Fuzzy logic 880328-2535 Innehåll Fuzzy logic... 1 1. Inledning... 4 2. Jämförelse mellan fuzzy logic och tvåvärdeslogik.... 4 3. Fuzzy sets.... 4 4. Linvistiska variabler... 5 5. Operatorer... 5 6. If-

Läs mer

Fuzzy Logic Linköpings Universitet

Fuzzy Logic Linköpings Universitet 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

Läs mer

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

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 Innehållsförtekning Sida Inledning 3 Vad är fuzzy logic? 3 Mängder 3 Medlemsfunktioner 5 Operationer 6 Fuzzification 8 Litteraturförteckning 9 2 Inledning Med detta fördjupningsarbete vill

Läs mer

Fuzzy Logic. När oskarpa definitioner blir kristallklara. Åsa Svensson. Linköpings Universitet. Linköping

Fuzzy Logic. När oskarpa definitioner blir kristallklara. Åsa Svensson. Linköpings Universitet. Linköping Fuzzy Logic När oskarpa definitioner blir kristallklara Linköpings Universitet Linköping Sammanfattning I denna fördjupningsuppgift har jag fokuserat på Fuzzy Logic och försökt att beskriva det på ett

Läs mer

FUZZY LOGIC. Christopher Palm chrpa087

FUZZY LOGIC. Christopher Palm chrpa087 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

Läs mer

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

LINKÖPINGS UNIVERSITET. Fuzzy Logic. Johan Brage 9/16/2012 LINKÖPINGS UNIVERSITET Fuzzy Logic Johan Brage 9/16/2012 Innehållsförteckning 1. Inledning... 1 2. Fuzzy Logic... 2 3. Crisp Sets... 3 4. Fuzzy Sets... 4 4.1 Operatorer... 5 4.2 IF-THEN... 7 4.3 Hedges...

Läs mer

Fuzzy logic. Julia Birgersson, julbi

Fuzzy logic. Julia Birgersson, julbi Fuzzy logic, Innehållsförteckning Inledning 3 Vad är Fuzzy Logic, varför finns det? 3 Fuzzy sets och crisp sets 4 Medlemsfunktioner 4 Operationer 7 Lingvistiska termer och lingvistiska variabler 9 Artificiell

Läs mer

Beräkning med ord. -hur en dator hanterar perception. Linköpings universitet Artificiell intelligens 2 2010-10-03 Erik Claesson 880816-1692

Beräkning med ord. -hur en dator hanterar perception. Linköpings universitet Artificiell intelligens 2 2010-10-03 Erik Claesson 880816-1692 Beräkning med ord -hur en dator hanterar perception 2010-10-03 Erik Claesson 880816-1692 Innehåll Inledning... 3 Syfte... 3 Kan datorer hantera perception?... 4 Naturligt språk... 4 Fuzzy Granulation...

Läs mer

William Hernebrink

William Hernebrink 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

Läs mer

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

Artificiell Intelligens II, 729g11 Linköpings universitet Fuzzy logic Fuzzy logic Sammanfattning Inom klassiska logiska system är ett påstående antingen sant eller falskt. Fuzzy logic använder sig istället av grader av medlemskap som är värden mellan 0(inte alls sant) och

Läs mer

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

Molly Lundberg 729G43 Kognitionsvetenskap mollu341 Artificiell Intelligens Linköpings Universitet. Fuzzy Logic. Vad är det och hur fungerar det? Fuzzy Logic Vad är det och hur fungerar det? Molly Lundberg Sammanfattning Den här rapporten har ämnat att skapa förståelse i vad Fuzzy Logic är för något, hur det fungerar och hur det används. Traditionell

Läs mer

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

FUZZY LOGIC. - Var går gränsen? Lovisa Rönmark lovro FUZZY LOGIC - Var går gränsen? Sammanfattning Det här fördjupningsarbetet är gjort I kursen Artificiell Intelligens 2 på Linköpings Universitet. Syftet med arbetet är att ta upp och förklara ämnet Fuzzy

Läs mer

Fuzzy logic och fuzzy kontrollsystem

Fuzzy logic och fuzzy kontrollsystem Fuzzy logic och fuzzy kontrollsystem - med neurala nätverk Sofie Nyström - sofny263 Artificiell Intelligens II 729G11 2012-09-16 Sammanfattning Detta arbete är gjort som ett fördjupningsarbete i kursen

Läs mer

Fördjupningsarbete HT 2012 FUZZY LOGIC

Fördjupningsarbete HT 2012 FUZZY LOGIC 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

Läs mer

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

2017% Fuzzy%Logic% %%%%%% LISA%NILSSON% %LISNI222% 2017% Fuzzy%Logic% %%%%%% LISA%NILSSON% %LISNI222% Innehållsförteckning0 1.#Inledning# 3% 1.1% Syfte( 3% 1.#Fuzzy#Logic# 4% 1.1(Bakgrund( 4% 2.#Fuzzy#Set# 5% 2.1(Fuzzy(set(vs(crisp(set( 5% 2.2(Medlemskap(

Läs mer

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

Fussy sets och Fuzzy logik Luddigt eller självklart? Kognitionsvetenskap, 729G11 Sandra Svanberg, sansv418 19/09/2011 Linköpings universitet Luddigt eller självklart? Kognitionsvetenskap, 729G11 Sandra Svanberg, sansv418 19/09/2011 Linköpings universitet 2 2 3 Innehållsförteckning 1 Figur och tabellförteckning... 4 Sammanfattning... 6 2 Inledning...

Läs mer

När det oskarpa ger skärpa

När det oskarpa ger skärpa En litteraturstudie om oskarp logik av för kursen Artificiell intelligens 729G43 Innehållsförteckning Inledning... 2 Syfte... 2 Upplägg och litteratur... 2 Varför använda oskarp logik?... 2 Oskarp mängdteori...

Läs mer

Fuzzy Logic. Ellinor Ihs Håkansson, ellih

Fuzzy Logic. Ellinor Ihs Håkansson, ellih Fuzzy Logic, 2016-01-09 Innehållsförteckning Introduktion... 3 Vad är Fuzzy Logic?... 3 Fuzzy eller crisp?... 4 Fuzzy set... 5 Medlemskapsfunktioner... 6 Operationer... 8 Fuzzy expert systems och Fuzzy

Läs mer

Övningshäfte 2: Induktion och rekursion

Övningshäfte 2: Induktion och rekursion GÖTEBORGS UNIVERSITET MATEMATIK 1, MMG200, HT2017 INLEDANDE ALGEBRA Övningshäfte 2: Induktion och rekursion Övning D Syftet är att öva förmågan att utgående från enkla samband, aritmetiska och geometriska,

Läs mer

JavaScript del 3 If, Operatorer och Confirm

JavaScript del 3 If, Operatorer och Confirm JavaScript del 3 If, Operatorer och Confirm Under förra uppgiften så kollade vi på hur användaren kan ge oss information via promt(), vi använde den informationen både för att skriva ut den och för att

Läs mer

Laboration Fuzzy Logic

Laboration Fuzzy Logic BILAGA B Laboration Fuzzy Logic Lär dig simulera ett program! ABB INDUSTRIGYMNASIUM Fuzzy Logic Wikingsons Wåghalsiga Wargar Projekt ABB VT 2006 Västerås Innehåll 1 Introduktion... 3 2 Uppgiften... 3 2.1

Läs mer

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

Talmängder. Målet med första föreläsningen: Moment 1..1, 1.., 1..4, 1..5, 1.. 1..5, 1..6 Viktiga exempel 1.7, 1.8, 1.8,1.19,1. Handräkning 1.7, 1.9, 1.19, 1.4, 1.9 b,e 1.0 a,b Datorräkning 1.6-1.1 Målet med första föreläsningen: 1 En första kontakt

Läs mer

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

TANA17 Matematiska beräkningar med MATLAB för M, DPU. Fredrik Berntsson, Linköpings Universitet. 9 november 2015 Sida 1 / 28 TANA17 Matematiska beräkningar med MATLAB för M, DPU Fredrik Berntsson, Linköpings Universitet 9 november 2015 Sida 1 / 28 Föreläsning 3 Linjära ekvationssystem. Invers. Rotationsmatriser. Tillämpning:

Läs mer

Objektorienterad programmering Föreläsning 8. Copyright Mahmud Al Hakim Agenda (halvdag)

Objektorienterad programmering Föreläsning 8. Copyright Mahmud Al Hakim  Agenda (halvdag) Objektorienterad programmering Föreläsning 8 Copyright Mahmud Al Hakim mahmud@webacademy.se www.webacademy.se Agenda (halvdag) Objektorienterad programutveckling Algoritmer Algoritmkonstruktionerna Relationer

Läs mer

Uppsala Universitet Matematiska Institutionen Thomas Erlandsson

Uppsala Universitet Matematiska Institutionen Thomas Erlandsson Uppsala Universitet Matematiska Institutionen Thomas Erlandsson LÄSANVISNINGAR VECKA 36 VERSION 1. ARITMETIK FÖR RATIONELLA OCH REELLA TAL, OLIKHETER, ABSOLUTBELOPP ADAMS P.1 Real Numbers and the Real

Läs mer

Regression med Genetiska Algoritmer

Regression med Genetiska Algoritmer Regression med Genetiska Algoritmer Projektarbete, Artificiell intelligens, 729G43 Jimmy Eriksson, jimer336 770529-5991 2014 Inledning Hur många kramar finns det i världen givet? Att kunna estimera givet

Läs mer

Lutande torn och kluriga konster!

Lutande torn och kluriga konster! Lutande torn och kluriga konster! Aktiviteter för barn under Vetenskapsfestivalens skolprogram 2001 Innehåll 1 Bygga lutande torn som inte faller 2 2 Om konsten att vinna betingat godis i spel 5 3 Den

Läs mer

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

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Felsökning. Datatyper. Referenstyper. Metoder / funktioner 732G11 Linköpings universitet 2011-01-21 1 2 3 4 5 6 Skapa program Kompilera: Källkod Kompilator bytekod Köra: Bytekod Virtuell maskin Ett riktigt program Hej.java class Hej { public static void main (

Läs mer

Logik och kontrollstrukturer

Logik och kontrollstrukturer Logik och kontrollstrukturer Flödet av instruktioner i ett programmeringsspråk bygger vi upp med hjälp av dess kontrollstrukturer. I C har vi exemplen if, if else, while, do while. Dessutom finns switch

Läs mer

Föreläsning 3.1: Datastrukturer, en översikt

Föreläsning 3.1: Datastrukturer, en översikt Föreläsning.: Datastrukturer, en översikt Hittills har vi i kursen lagt mycket fokus på algoritmiskt tänkande. Vi har inte egentligen ägna så mycket uppmärksamhet åt det andra som datorprogram också består,

Läs mer

Objektorienterad Programmering (TDDC77)

Objektorienterad Programmering (TDDC77) Objektorienterad Programmering (TDDC77) Föreläsning II: utmatning, variabler, typer Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2016 Kompilera och köra programmet under terminal 2: I Skapa Hej.java

Läs mer

ANDREAS REJBRAND NV3ANV Matematik Matematiskt språk

ANDREAS REJBRAND NV3ANV Matematik   Matematiskt språk ANDREAS REJBRAND NV3ANV 2006-02-14 Matematik http://www.rejbrand.se Matematiskt språk Innehållsförteckning MATEMATISKT SPRÅK... 1 INNEHÅLLSFÖRTECKNING... 2 INLEDNING... 3 MÄNGDER... 4 Att uttrycka en mängd...

Läs mer

Sidor i boken f(x) = a x 2 +b x+c

Sidor i boken f(x) = a x 2 +b x+c Sidor i boken 18-151 Andragradsfunktioner Här ska vi studera andragradsfunktionen som skrivs f(x) = ax +bx+c där a, b, c är konstanter (reella tal) och där a 0. Grafen (kurvan) till f(x), y = ax + bx +

Läs mer

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

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 Kompilera och köra programmet Objektorienterad Programmering (TDDC77) Föreläsning II: utmatning, variabler, typer Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2016 under terminal 2: I Skapa Hej.java

Läs mer

Föreläsning 5. Deduktion

Föreläsning 5. Deduktion Föreläsning 5 Deduktion Hur ett deduktivt system fungerar Komponenter - Vokabulär Ett deduktivt system använder ett visst slags språk som kan kallas för systemets vokabulär. I mindre formella fall är kanske

Läs mer

Faktorisering med hjälp av kvantberäkningar. Lars Engebretsen

Faktorisering med hjälp av kvantberäkningar. Lars Engebretsen Faktorisering med hjälp av kvantberäkningar Lars Engebretsen 003-11-18 Bakgrund Vanliga datorer styrs av klassiska fysikens lagar. Vanliga datorer kan simuleras av turingmaskiner i polynomisk tid. Kanske

Läs mer

PRÖVNINGSANVISNINGAR

PRÖVNINGSANVISNINGAR PRÖVNINGSANVISNINGAR Prövning i Matematik D Kurskod Ma 104 Gymnasiepoäng 100 Läromedel Prov Muntligt prov Inlämningsuppgift Kontakt med examinator Övrigt Valfri aktuell lärobok för kurs Matematik D t.ex.

Läs mer

Linjära ekvationer med tillämpningar

Linjära ekvationer med tillämpningar UMEÅ UNIVERSITET Institutionen för matematik och matematisk statistik Olof Johansson, Nina Rudälv 2006-10-17 SÄL 1-10p Linjära ekvationer med tillämpningar Avsnitt 2.1 Linjära ekvationer i en variabel

Läs mer

Matematik 5 Kap 2 Diskret matematik II

Matematik 5 Kap 2 Diskret matematik II Matematik 5 Kap 2 Diskret matematik II Inledning Konkretisering av ämnesplan (länk) http://www.ioprog.se/public_html/ämnesplan_matematik/struktur_äm nesplan_matematik/struktur_ämnesplan_matematik.html

Läs mer

Resurscentrums matematikleksaker

Resurscentrums matematikleksaker Resurscentrums matematikleksaker Aktiviteter för barn och vuxna Innehåll 1 Bygga lutande torn som inte faller 2 2 Om konsten att vinna betingat godis i spel 5 3 Den snåle grosshandlarens våg 6 4 Tornen

Läs mer

Formell logik Kapitel 1 och 2. Robin Stenwall Lunds universitet

Formell logik Kapitel 1 och 2. Robin Stenwall Lunds universitet Formell logik Kapitel 1 och 2 Robin Stenwall Lunds universitet Kapitel 1: Atomära satser Drömmen om ett perfekt språk fritt från vardagsspråkets mångtydighet och vaghet (jmf Leibniz, Russell, Wittgenstein,

Läs mer

Filosofisk logik Kapitel 15. Robin Stenwall Lunds universitet

Filosofisk logik Kapitel 15. Robin Stenwall Lunds universitet Filosofisk logik Kapitel 15 Robin Stenwall Lunds universitet Dagens upplägg Första ordningens mängdlära Naiv mängdlära Abstraktionsaxiomet (eg. comprehension) Extensionalitetsaxiomet Små mängder Ordnade

Läs mer

Beräkningsvetenskap föreläsning 2

Beräkningsvetenskap föreläsning 2 Beräkningsvetenskap föreläsning 2 19/01 2010 - Per Wahlund if-satser if x > 0 y = 2 + log(x); else y = -1 If-satsen skall alltid ha ett villkor, samt en då det som skall hända är skrivet. Mellan dessa

Läs mer

Statistik över heltal

Statistik över heltal Övningsuppgift Statistik över heltal Steg 2 Författare: Mats Loock Kurs: Inledande programmering med C# Kurskod:1DV402 Upphovsrätt för detta verk Detta verk är framtaget i anslutning till kursen Inledande

Läs mer

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

Sanningsvärdet av ett sammansatt påstående (sats, utsaga) beror av bindeord och sanningsvärden för ingående påståenden. MATEMATISK LOGIK Matematisk logik formaliserar korrekta resonemang och definierar formellt bindeord (konnektiv) mellan påståenden (utsagor, satser) I matematisk logik betraktar vi påståenden som antingen

Läs mer

Likhetstecknets innebörd

Likhetstecknets innebörd Modul: Algebra Del 5: Algebra som språk Likhetstecknets innebörd Följande av Görel Sterner (2012) översatta och bearbetade text bygger på boken: Carpenter, T. P., Franke, M. L. & Levi, L. (2003). Thinking

Läs mer

Faktorisering med hjälp av kvantberäkningar. Lars Engebretsen

Faktorisering med hjälp av kvantberäkningar. Lars Engebretsen Faktorisering med hjälp av kvantberäkningar Lars Engebretsen 00-1-03 Lars Engebretsen 00-1-03 Bakgrund Vanliga datorer styrs av klassiska fysikens lagar. Vanliga datorer kan simuleras av turingmaskiner

Läs mer

Kort sammanfattning av de funktioner som används för att Skapa en smart Dashboard!

Kort sammanfattning av de funktioner som används för att Skapa en smart Dashboard! Funktioner Kort sammanfattning av de funktioner som används för att Skapa en smart Dashboard! Infoga kalkylbladsfunktioner genom att; Markera cellen där du vill att resultatet ska hamna Aktivera funktionsguiden

Läs mer

a), c), e) och g) är olikheter. Av dem har c) och g) sanningsvärdet 1.

a), c), e) och g) är olikheter. Av dem har c) och g) sanningsvärdet 1. PASS 9. OLIKHETER 9. Grundbegrepp om olikheter Vi får olikheter av ekvationer om vi byter ut likhetstecknet mot något av tecknen > (större än), (större än eller lika med), < (mindre än) eller (mindre än

Läs mer

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

Oskarp logik - en flervärdeslogik för framtiden? Karl Bruno Linköpings universitet 2006-10-15 - en flervärdeslogik för framtiden? Karl Bruno Linköpings universitet 2006-10-15 Sammanfattning Oskarp logik är en utvidgning av den klassiska logiken. Den baseras på oskarpa mängder, mängder till vilka

Läs mer

a = a a a a a a ± ± ± ±500

a = a a a a a a ± ± ± ±500 4.1 Felanalys Vill man hårddra det hela, kan man påstå att det inte finns några tal i den tillämpade matematiken, bara intervall. Man anger till exempel inte ett uppmätt värde till 134.78 meter utan att

Läs mer

Låt eleverna lösa uppgifterna med huvudräkning och sedan jämföra med resultatet av ett program, t.ex. print(6 + 4 * 3)

Låt eleverna lösa uppgifterna med huvudräkning och sedan jämföra med resultatet av ett program, t.ex. print(6 + 4 * 3) 1 Print 1 Tal, Prioriteringsregler 3 Procent, Procentuella förändringar 2 Variabler Teckna och tolka uttryck Ekvationslösningens grunder 1236 Beräkna utan räknare. a) 6 + 4 3 b) 9 4 12 3 c) 7 (3 + 12)

Läs mer

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

Övningshäfte 1: Logik och matematikens språk GÖTEBORGS UNIVERSITET MATEMATIK 1, MMG200, HT2014 INLEDANDE ALGEBRA Övningshäfte 1: Logik och matematikens språk Övning A Målet är att genom att lösa och diskutera några inledande uppgifter få erfarenheter

Läs mer

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

1 Föreläsning Implikationer, om och endast om 1 Föreläsning 1 Temat för dagen, och för dessa anteckningar, är att introducera lite matematisk terminologi och notation, vissa grundkoncept som kommer att vara genomgående i kursen. I grundskolan presenteras

Läs mer

Data, typ, selektion, iteration

Data, typ, selektion, iteration Data, typ, selektion, iteration En programmeringkurs på halvfart IDT, MDH ttp://www.negative-g.com/nolimits/no%20limits%20defunct%20coasters.htm 1 Dagens agenda Talrepresentation Typkonvertering Sekvens

Läs mer

Probabilistisk logik 1

Probabilistisk logik 1 729G43 Artificiell intelligens / 2016 Probabilistisk logik 1 Marco Kuhlmann Institutionen för datavetenskap Osäkerhet 1.01 Osäkerhet Agenter måste kunna hantera osäkerhet. Agentens miljö är ofta endast

Läs mer

i LabVIEW. Några programmeringstekniska grundbegrepp

i LabVIEW. Några programmeringstekniska grundbegrepp Institutionen för elektroteknik Några programmeringstekniska grundbegrepp 1999-02-16 Inledning Inom datorprogrammering förekommer ett antal grundbegrepp som är i stort sett likadana oberoende om vi talar

Läs mer

JavaScript Block Editor:

JavaScript Block Editor: Micro:bit Tärningen Att räkna med slumpen genom t.ex. tärningsslag och föra statistik över antal slag kan vara tidskrävande. Speciellt om man ska gör 100 st eller 1000 st kast. Genom att använda programmering

Läs mer

MA2047 Algebra och diskret matematik

MA2047 Algebra och diskret matematik MA2047 Algebra och diskret matematik Något om logik och mängdlära Mikael Hindgren 5 september 2018 Utsagor Utsaga = Påstående som har sanningsvärde Utsagan kan vara sann (S) eller falsk (F) öppen eller

Läs mer

LAB 1. FELANALYS. 1 Inledning. 2 Flyttal. 1.1 Innehåll. 2.1 Avrundningsenheten, µ, och maskinepsilon, ε M

LAB 1. FELANALYS. 1 Inledning. 2 Flyttal. 1.1 Innehåll. 2.1 Avrundningsenheten, µ, och maskinepsilon, ε M TANA21+22/ 5 juli 2016 LAB 1. FELANALYS 1 Inledning I laborationerna används matrishanteringsprogrammet MATLAB. som genomgående använder dubbel precision vid beräkningarna. 1.1 Innehåll Du ska 1. bestämma

Läs mer

Vardagssituationer och algebraiska formler

Vardagssituationer och algebraiska formler Modul: Algebra Del 7: Kommunikation i algebraklassrummet Vardagssituationer och algebraiska formler Cecilia Kilhamn, Göteborgs Universitet och Jörgen Fors, Linnéuniversitetet En viktig del av algebran

Läs mer

TDIU01 - Programmering i C++, grundkurs

TDIU01 - Programmering i C++, grundkurs TDIU01 - Programmering i C++, grundkurs Grundläggande satser och uttryck Eric Elfving Institutionen för datavetenskap 5 augusti 2014 Översikt Uttryck Litteraler Operatorer Satser Villkor Upprepning Teckenhantering

Läs mer

Lektionsanteckningar 11-12: Normalfördelningen

Lektionsanteckningar 11-12: Normalfördelningen Lektionsanteckningar 11-12: Normalfördelningen När utfallsrummet för en slumpvariabel kan anta vilket värde som helst i ett givet intervall är variabeln kontinuerlig. Det är väsentligt att utfallsrummet

Läs mer

Block 2 Algebra och Diskret Matematik A. Följder, strängar och tal. Referenser. Inledning. 1. Följder

Block 2 Algebra och Diskret Matematik A. Följder, strängar och tal. Referenser. Inledning. 1. Följder Block 2 Algebra och Diskret Matematik A BLOCK INNEHÅLL Referenser Inledning 1. Följder 2. Rekursiva definitioner 3. Sigmanotation för summor 4. Strängar 5. Tal 6. Övningsuppgifter Referenser Följder, strängar

Läs mer

LMA033/LMA515. Fredrik Lindgren. 4 september 2013

LMA033/LMA515. Fredrik Lindgren. 4 september 2013 LMA033/LMA515 Fredrik Lindgren Matematiska vetenskaper Chalmers tekniska högskola och Göteborgs universitet 4 september 2013 F. Lindgren (Chalmers&GU) Matematik 4 september 2013 1 / 25 Outline 1 Föreläsning

Läs mer

Kompletterande lösningsförslag och ledningar, Matematik 3000 kurs A, kapitel 4. b) = 3 1 = 2

Kompletterande lösningsförslag och ledningar, Matematik 3000 kurs A, kapitel 4. b) = 3 1 = 2 Kapitel.1 101, 102 Exempel som löses i boken 10 a) x= 1 11+ x= 11+ 1 = 2 c) x= 11 7 x= 7 11 = 77 b) x= 5 x 29 = 5 29 = 6 d) x= 2 26 x= 26 2= 1 10 a) x= 6 5+ 9 x= 5+ 9 6= 5+ 5= 59 b) a = 8a 6= 8 6= 2 6=

Läs mer

MATLAB. Python. Det finns flera andra program som liknar MATLAB. Sage, Octave, Maple och...

MATLAB. Python. Det finns flera andra program som liknar MATLAB. Sage, Octave, Maple och... Allt du behöver veta om MATLAB: Industristandard för numeriska beräkningar och simulationer. Används som ett steg i utvecklingen (rapid prototyping) Har ett syntax Ett teleskopord för «matrix laboratory»

Läs mer

SF1901: Sannolikhetslära och statistik. Mer om Approximationer

SF1901: Sannolikhetslära och statistik. Mer om Approximationer SF1901: Sannolikhetslära och statistik Föreläsning 7.A Mer om Approximationer Jan Grandell & Timo Koski 10.02.2012 Jan Grandell & Timo Koski () Matematisk statistik 10.02.2012 1 / 21 Repetition CGS Ofta

Läs mer

Introduktion till algoritmer - Lektion 4 Matematikgymnasiet, Läsåret 2014-2015. Lektion 4

Introduktion till algoritmer - Lektion 4 Matematikgymnasiet, Läsåret 2014-2015. Lektion 4 Introduktion till algoritmer - Lektion 4 Matematikgymnasiet, Läsåret 014-015 Denna lektion ska vi studera rekursion. Lektion 4 Principen om induktion Principen om induktion är ett vanligt sätt att bevisa

Läs mer

Artificial Intelligence

Artificial Intelligence Omtentamen Artificial Intelligence Datum: 2013-01-08 Tid: 09.00 13.00 Ansvarig: Resultat: Hjälpmedel: Gränser: Cecilia Sönströd Redovisas inom tre veckor Inga G 10p, VG 16p, Max 20p Notera: Skriv läsbart!

Läs mer

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

Induktion, mängder och bevis för Introduktionskursen på I Induktion, mängder och bevis för Introduktionskursen på I J A S, ht 04 1 Induktion Detta avsnitt handlar om en speciell teknik för att försöka bevisa riktigheten av påståenden eller formler, för alla heltalsvärden

Läs mer

Talsystem Teori. Vad är talsystem? Av Johan Johansson

Talsystem Teori. Vad är talsystem? Av Johan Johansson Talsystem Teori Av Johan Johansson Vad är talsystem? Talsystem är det sätt som vi använder oss av när vi läser, räknar och skriver ner tal. Exempelvis hade romarna ett talsystem som var baserat på de romerska

Läs mer

Probabilistisk logik 2

Probabilistisk logik 2 729G43 Artificiell intelligens / 2016 Probabilistisk logik 2 Marco Kuhlmann Institutionen för datavetenskap Översikt Probabilistiska modeller Probabilistisk inferens 1: Betingad sannolikhet Probabilistisk

Läs mer

Mängdlära. Kapitel Mängder

Mängdlära. Kapitel Mängder Kapitel 2 Mängdlära 2.1 Mängder Vi har redan stött på begreppet mängd. Med en mängd menar vi en väldefinierad samling av objekt eller element. Ordet väldefinierad syftar på att man för varje tänkbart objekt

Läs mer

Begreppen "mängd" och "element" är grundläggande begrepp i matematiken.

Begreppen mängd och element är grundläggande begrepp i matematiken. MÄNGDER Grundläggande begrepp och beteckningar egreppen "mängd" och "element" är grundläggande begrepp i matematiken. Vi kan beskriva (ange, definiera) en mängd som innehåller ändligt många element genom

Läs mer

Talmängder N = {0,1,2,3,...} C = {a+bi : a,b R}

Talmängder N = {0,1,2,3,...} C = {a+bi : a,b R} Moment 1..1, 1.., 1..4, 1..5 Viktiga exempel 1., 1.4, 1.8 Övningsuppgifter I 1.7, 1.8, 1.9 Extrauppgifter 1,,, 4 Den teori och de exempel, som kommer att presenteras här, är normalt vad jag kommer att

Läs mer

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

Ett Oskarpt Beslut. Om Oskarp Logik i Speldesign. Mikael Hedenström Ett Oskarpt Beslut Om Oskarp Logik i Speldesign Mikael Hedenström Examensarbete i speldesign, 15 högskolepoäng Speldesign och grafik/speldesign och programmering, vt 2013 Handledare: Kim Solin, Tommi Lipponen

Läs mer

Likhetstecknets innebörd

Likhetstecknets innebörd Likhetstecknets innebörd Följande av Görel Sterner översatta och bearbetade text bygger på boken: arithmetic & algebra in elementary school. Portsmouth: Heinemann Elever i åk 1 6 fick följande uppgift:

Läs mer

Np MaB vt Låt k = 0 och rita upp de båda linjerna. Bestäm skärningspunkten mellan linjerna.

Np MaB vt Låt k = 0 och rita upp de båda linjerna. Bestäm skärningspunkten mellan linjerna. Vid bedömning av ditt arbete med uppgift nummer 17 kommer läraren att ta hänsyn till: Hur väl du beräknar och jämför trianglarnas areor Hur väl du motiverar dina slutsatser Hur väl du beskriver hur arean

Läs mer

Föreläsning 9: Turingmaskiner och oavgörbarhet. Turingmaskinen. Den maximalt förenklade modell för beräkning vi kommer använda är turingmaskinen.

Föreläsning 9: Turingmaskiner och oavgörbarhet. Turingmaskinen. Den maximalt förenklade modell för beräkning vi kommer använda är turingmaskinen. Föreläsning 9: Turingmaskiner och oavgörbarhet Turingmaskinen Den maximalt förenklade modell för beräkning vi kommer använda är turingmaskinen. Data är ett oändligt långt band där nollor och ettor står

Läs mer

Hypotestestning och repetition

Hypotestestning och repetition Hypotestestning och repetition Statistisk inferens Vid inferens använder man urvalet för att uttala sig om populationen Centralmått Medelvärde: x= Σx i / n Median Typvärde Spridningsmått Används för att

Läs mer

TAMS79: Föreläsning 4 Flerdimensionella stokastiska variabler

TAMS79: Föreläsning 4 Flerdimensionella stokastiska variabler TAMS79: Föreläsning 4 Flerdimensionella stokastiska variabler Johan Thim (johan.thim@liu.se) 1 november 18 Vi fokuserar på två-dimensionella variabler. Det är steget från en dimension till två som är det

Läs mer

TATM79: Föreläsning 1 Notation, ekvationer, polynom och summor

TATM79: Föreläsning 1 Notation, ekvationer, polynom och summor TATM79: Föreläsning 1 Notation, ekvationer, polynom och summor Johan Thim 22 augusti 2018 1 Vanliga symboler Lite logik Implikation: P Q. Detta betyder att om P är sant så är Q sant. Utläses P medför Q

Läs mer

Begreppen "mängd" och "element" är grundläggande begrepp i matematiken.

Begreppen mängd och element är grundläggande begrepp i matematiken. MÄNGDER Grundläggande begrepp och beteckningar Begreppen "mängd" och "element" är grundläggande begrepp i matematiken. Vi kan beskriva (ange, definiera) en mängd som innehåller ändligt många element genom

Läs mer

Föreläsningsanteckningar, Introduktion till datavetenskap HT S4 Datastrukturer. Tobias Wrigstad

Föreläsningsanteckningar, Introduktion till datavetenskap HT S4 Datastrukturer. Tobias Wrigstad 1 Datatyper Tobias Wrigstad Det finns flera olika typer av (slags) data Olika datatyper har olika egenskaper. T.ex. är ett personnummer inte ett tal. (Den sista siffran skall stämma enligt den s.k. Luhnalgoritmen

Läs mer

Linjär Algebra M/TD Läsvecka 2

Linjär Algebra M/TD Läsvecka 2 Linjär Algebra M/TD Läsvecka 2 Omfattning och Innehåll 2.1 Matrisoperationer: addition av matriser, multiplikation av matris med skalär, multiplikation av matriser. 2.2-2.3 Matrisinvers, karakterisering

Läs mer

Programmering i C++ En manual för kursen Datavetenskaplig introduktionskurs 5p

Programmering i C++ En manual för kursen Datavetenskaplig introduktionskurs 5p Programmering i C++ En manual för kursen Datavetenskaplig introduktionskurs 5p Skriven av Michael Andersson Introduktion Programmering I högnivåspråk fokuserar på själv problemet (algoritmen) istället

Läs mer

Introduktion till programmering D0009E. Föreläsning 5: Fruktbara funktioner

Introduktion till programmering D0009E. Föreläsning 5: Fruktbara funktioner Introduktion till programmering D0009E Föreläsning 5: Fruktbara funktioner 1 Retur-värden Funktioner kan både orsaka en effekt och returnera ett resultat. Hittills har vi ej definierat några egna funktioner

Läs mer

Bakgrund. Bakgrund. Bakgrund. Håkan Jonsson Institutionen för systemteknik Luleå tekniska universitet Luleå, Sverige

Bakgrund. Bakgrund. Bakgrund. Håkan Jonsson Institutionen för systemteknik Luleå tekniska universitet Luleå, Sverige Är varje påstående som kan formuleras matematiskt*) alltid antingen sant eller falskt? *) Inom Institutionen för systemteknik Luleå tekniska universitet Luleå, Sverige Exempel: 12 = 13 nej, falskt n! >

Läs mer

JavaScript del 5 Funktioner

JavaScript del 5 Funktioner JavaScript del 5 Funktioner När man skriver JavaScriptkod eller program i andra programmeringsspråk för den delen så kan det finnas anledningar till att man vill dela upp sitt stora program i flera mindre

Läs mer

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

Bygga intelligenta system med luddig logik. Josefin Carlbring (josca824) Linköpings universitet 729G43 Artificiell Intelligens Bygga intelligenta system med luddig logik () Linköpings universitet 729G43 Artificiell Intelligens 2016-01-24 Sammanfattning Denna rapport täcker in hur man bygger intelligenta system med hjälp av luddig

Läs mer

sanningsvärde, kallas utsagor. Exempel på utsagor från pass 1 är

sanningsvärde, kallas utsagor. Exempel på utsagor från pass 1 är PASS 7. EKVATIONSLÖSNING 7. Grundbegrepp om ekvationer En ekvation säger att två matematiska uttryck är lika stora. Ekvationen har alltså ett likhetstecken och två deluttryck på var sin sida om likhetstecknet.

Läs mer

MMA132: Laboration 2 Matriser i MATLAB

MMA132: Laboration 2 Matriser i MATLAB MMA132: Laboration 2 Matriser i MATLAB Introduktion I den här labben skall vi lära oss hur man använder matriser och vektorer i MATLAB. Det är rekommerad att du ser till att ha laborationshandledningen

Läs mer

Grundläggande logik och modellteori

Grundläggande logik och modellteori Grundläggande logik och modellteori Kapitel 6: Binära beslutsdiagram (BDD) Henrik Björklund Umeå universitet 22. september, 2014 Binära beslutsdiagram Binära beslutsdiagram (Binary decision diagrams, BDDs)

Läs mer

Alla datorprogram har en sak gemensam; alla processerar indata för att producera något slags resultat, utdata.

Alla datorprogram har en sak gemensam; alla processerar indata för att producera något slags resultat, utdata. Att förstå variabler Alla datorprogram har en sak gemensam; alla processerar indata för att producera något slags resultat, utdata. Vad är en variabel? En variabel är en plats att lagra information. Precis

Läs mer

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

Introduktion till programmering SMD180. Föreläsning 4: Villkor och rekursion Introduktion till programmering Föreläsning 4: Villkor och rekursion 1 1 Några inbyggda funktioner (med resultat!) Konverterar mellan de grundläggande typerna: >>> int("32") 32 >>> int(3.999) 3 >>> float(32)

Läs mer

Algebra I, 1MA004. Lektionsplanering

Algebra I, 1MA004. Lektionsplanering UPPSALA UNIVERSITET Matematiska Institutionen Dan Strängberg HT2016 Fristående, IT, KandDv, KandMa, Lärare 2016-11-02 Algebra I, 1MA004 Lektionsplanering Här anges rekommenderade uppgifter ur boken till

Läs mer