Optimering av boids med genetiska algoritmer Mattias Sossna
|
|
- Karin Kristina Åström
- för 8 år sedan
- Visningar:
Transkript
1 Institutionen för kommunikation och information Examensarbete i datalogi p C-nivå Vårterminen 7 Optimering av boids med genetiska algoritmer Mattias Sossna
2 Optimering av boids med genetiska algoritmer Examensrapport inlämnad av Mattias Sossna till Högskolan i Skövde, för Kandidatexamen (B.Sc.) vid Institutionen för kommunikation och information. Arbetet har handletts av Marie Gustafsson Härmed intygas att allt material i denna rapport, vilket inte är mitt eget, har blivit tydligt identifierat och att inget material är inkluderat som tidigare använts för erhållande av annan examen. Signerat:
3 Optimering av boids med genetiska algoritmer Mattias Sossna Sammanfattning Boids handlar om att simulera flockar genom självständiga individer. Styrningen utgår från tre grundregler, undvika kollision, centrera flocken samt matcha hastighet. För att framhäva vissa beteenden kan reglerna viktas. Dessa vikter kan sättas manuellt, men de kan också optimeras, exempelvis med genetiska algoritmer. Detta examensarbete utgår från Chen, Kobayashi, Huang och Nakao (6) arbete om optimering av boids med hjälp av en genetisk algoritm. Beteende hos flockar med manuellt satta vikter och optimerade med en genetisk algoritm jämförs. Jämförelsen sker genom mätningar enligt kriterier som reflekterar hur realistiskt flocken beter sig. Försöken påvisade två olika beteenden, ett där flocken centreras och ett där kollision och leta mat får prioritering. Nyckelord: Boids, Flockar, Genetiska algoritmer
4 Innehållsförteckning Introduktion... Bakgrund.... Boids..... Undvika kollision..... Centrera flocken..... Matcha hastigheten...4. Flockar i naturen...4. Genetiska Algoritmer Selektion Fitnessfunktion Korsning Mutation...6 Problem Metod Boids Extra regler Vikter Genetisk algoritm för viktoptimering Kriterier för realism Testfall Mätning... 5 Resultat Viktanalys Jämförelse Kollisioner Boids utanför flocken Splittring av flocken Diskussion Resultat Slutsats Framtida arbete... I
5 Introduktion Introduktion En flock fåglar eller ett stim med fisk är något väldigt naturligt och enkelt, inget speciellt i sig. Detta så enkla och vardagliga fenomen är något mycket komplext och svårmodellerat. Reynolds (987) framhåller att bevisen pratar för att varje individ i en flock (eller ett stim) agerar helt individuellt. Vidare framhåller Reynolds (987) att individuellt styre möjliggörs av tre enkla regler som gör att varje boid strävar efter att undvika kollision, centrera flocken och matcha hastighet (med hastighet avses både fart och riktning, det vill säga en vektor) med resten av flocken. De tre reglerna är enkla men ger kraftfulla och korrekta resultat. Grunden i flocken ligger i att varje individ är självständig och styrs var för sig, precis som en vanlig fågel. Varje fågel är ett djur som har sina sinnesintryck och reagerar på det den uppfattar med sina sinnen. På samma sätt fungerar en boid, det är vad den som individ registrerar som har betydelse. Det är inte flocken som styrs som en individ, de har bara ett gemensamt mål. De kommer att fungera tillsammans på samma sätt oavsett om det är fem eller 5 individer. Det finns svårigheter i att avgöra hur bra Reynolds (987) arbete fungerar. Han nämner själv att det inte är helt trivialt, det som användes i hans artikel är en jämförelse mellan simuleringen och verkliga djur. Även Chen m.fl. (6) använder realism som ett mått på att avgöra hur bra deras implementation fungerar. Reglerna som bygger upp beteendet kan viktas, med hjälp av en vikt framför varje regel ges vissa beteenden större inflytande. Dessa regler kan sättas manuellt utifrån önskat beteende eller optimeras exempelvis med hjälp av en genetisk algoritm, vilket är fallet i Chen m.fl. (6) arbete. En genetisk algoritm är en imitation av hur naturen utför sin evolution. Tanken ligger i att med hjälp av korsning av två föräldrar skapa en ny lösning. En bra lösning har större chans att väljas som förälder, en parallell till naturligt urval. Detta arbete handlar om att kombinera boids med en genetisk algoritm. Syftet är att optimera boidsen, där optimeringen avser vikterna för reglerna. Detta har gjorts av Chen m.fl. (6), i det fallet är utvärderingen en visuell utvärdering av realismen i den optimerade versionen kontra originalet. Tanken ligger här i att få en mer konkret (med konkret avses mätbara resultat) utvärdering med avseende på hur flockar fungerar i verkligheten, detta genom att jämföra den optimerad version av algoritmen med en version med manuellt satta vikter. Där målet är att se på vilket sätt optimeringen förbättrar resultatet.
6 Bakgrund Bakgrund Kapitlet tar upp nödvändig bakgrundsinformation för att kunna ta till sig resten av arbetet. Inledningsvis kommer en kort förklaring av Reynolds (987) boids följt av en genomgång av flockar i naturen. Avslutningsvis tas genetiska algoritmer upp.. Boids Reynolds (987) var den som först tog fram boidmodellen. Modellen går ut på att simulera en flock med hjälp av tre enkla regler: undvika kollision, centrera flocken och matcha hastighet. De tre reglerna används för att se till att flocken rör sig naturligt och påverkar varje boids rörelse enligt koden nedan (Figur ). Grunden ligger i att de ger varsin vektor som returvärde. Boidsens hastighet uppdateras med hjälp av dessa tre vektorer och sedan justeras positionen med den nya hastigheten. Resultatet blir att flocken flyter fram: Skillnaden mellan att låta boidsen leva i två och tre dimensioner är bara skillnaden i vektormatematik. Utan en z-axel (två dimensioner) kommer det att bli ett platt rörelsemönster men likväl ett rörelsemönster och en uppvisning i boidsens beteende. I grunden är det således den underliggande vektormatematiken som avgör hur svårt (eller enkelt) det blir att skifta mellan två och tre dimensioner. : moveboid(boid boid) : vector v, w, u : 4: v = rule(boid) 5: w = rule(boid) 6: u = rule(boid) 7: 8: boid.velocity += v + w + u 9: boid.position += boid.velocity Figur Pseudokod för förflyttning av en boid. Rule- är funktioner som resulterar i varsin vektor utifrån de nedan angivna beskrivningarna. Originalarbetet innehöll 8 boids och var skapat i Symbolic Common Lisp och kördes på en maskin som under den tiden var att betraktas som en högpresterande persondator (Symbolics 6 Lisp Machine) vilket resulterade i att varje bildruta tog 95 sekunder att generera (Reynolds, 987). Att då skapa en testfilm på tio sekunder ( bildrutor) tog runt åtta timmar. Med dagens teknik bör programmet utan problem kunna köras i realtid. Trots dåtidens sämre maskiner kunde detta arbete genomföras, algoritmen är inte optimerad för hastighet och använder sig av O(N ) (Reynolds, 987) vilket resulterade i att de 8 boidsen behövde 64 individuella jämförelser. Genom att inte låta varje individ beräknas mot alla andra flockmedlemmar kan bättre prestanda fås. En enkel metod är att låta varje fågel enbart beräkna de grannar som finns inom ett vist område vilket bland annat Cui, Gao och Potok (6) gör. Detta resulterar dock i sämre värden för varje boid (vilket de också nämner) men ger högre hastighet som sagt. En ytterligare utökning är att använda vikter för att premiera vissa regler. I detta fall sätts en vikt vid varje regel för att skala den jämfört med övriga, vilket ger bättre kontroll över flocken (Reynolds, 999). Här framhålls även att varje vektor ska normaliseras innan vikterna läggs på.
7 .. Undvika kollision Bakgrund Den första regeln handlar om att undvika kollision. Om en annan boid befinner sig inom en viss radie från sin flockkamrat förflyttas han med en längd som är lika med avståndet mellan de två individerna bort från boiden. V B = k B B ( B i) ( B > i) Formel Regel ett, undvika kollision. Funktionen använder avståndet mellan boidsen ( B ) och minsta tillåtna avstånd (k) för att hålla individerna på rätt avstånd (Chen m.fl., 6). k V B Figur Utgångspunkten för regel ett (efter Chen m.fl., 6). Formel visar hur vektorn V (resultatet av regel ett) beräknas. Så länge en annan boid är inom synhåll (i) är V skild från noll. Synhållet, i, är minsta tillåtna avstånd till nästa objekt. Värdet på i väljs beroende av implementationsdetaljer, så som till exempel boidsens storlek. När en annan boid är inom synhåll, och avståndet mellan de båda individerna (B) är mindre än det minsta tillåtna avståndet (k), så flyttas de från varandra. Om avståndet är större, så flyttas de mot varandra. Detta göra att denna formel inverkar på och hjälper regel två, att hålla ihop flocken Det kan också tilläggas att med B avses längden på vektorn B... Centrera flocken Den andra regeln ser till att flocken håller ihop (Formel ) och inte far iväg från varandra. Detta görs genom att kontrollera boiden mot en vektor till centrumet för flocken (c, Figur ). Om avståndet är större än boidens synfält blir vektorn noll. I fall två blir vektorn den normaliserade (en vektor är normaliserad när dess längd är ett) versionen av vektorn c. V = C C ( C i) ( C > i) Formel Regel två, centrera flocken. Funktionen använder avståndet till flockens centrum för att låta individerna centreras (Chen m.fl., 6)
8 Bakgrund C Figur Vektorn c, vilken går från en boid (b) till centrum (stjärnan) av flocken (representerad av den stora cirkeln)... Matcha hastigheten Den sista regeln går ut på att flockens hastighet. Detta kan göras genom att kontrollera hastigheten bland de boids som är inom synhåll för aktuell boid och sedan matcha hastigheten till medelvärdet av detta (Figur 4).. Flockar i naturen Figur 4 Pseudokod för regel tre. Reynolds (987) berättar att naturliga flockar består av individer med två huvudsakliga mål, att inte krocka med de andra medlemmarna men samtidigt hålla sig nära dem. Vidare framhålls även att flockar inte kan bli fulla, det vill säga det finns alltid utrymme för en extra fågel. För att analysera flockar i naturen krävs tid och tålamod. Bekoff (995) studerade aftonstenknäckan i Colorado mellan 986 och 99. Detta skedde från en punkt parallell med djurens matplats, där han placerade ut samma fågelmat varje dag vid samma tidpunkt. Ett kriterium som användes var att en fågel som avvek mer än en halvmeter från de andra fåglarna inte ansågs tillhöra den flocken.. Genetiska Algoritmer : rule(boid boid) : vector v = : i = 4: 5: for every visible boid b do 6: v += b.velocity 7: i += 8: 9: boid.velocity = v / i En genetisk algoritm är skapad med naturens evolutionssystem som mall. En lösning består av ett antal kromosomer, där varje kromosom är en del av lösningen. I fallet med boids är det vikterna som bygger upp lösningen. Första uppsättningen lösningar slumpas fram, dessa blir föräldrar till första generationens barn. Barnen blir sedan föräldrar till nästa generation. Ett barn tas fram genom att korsa två föräldrar. För att bestämma hur bra en lösning är används en fitnessfunktion. Metoden för att ta fram en ny lösning från föräldrarna kan se ut på lite olika sätt, i Figur 5 rad 8 till används en enpunktskorsning. Genetiska algoritmer kan användas inom flera olika 4
9 Bakgrund användningsområden, dock säger Russell och Norvig () att de haft stor inverkan på framförallt optimeringsproblem. : GeneticAlgorithm(population, fitnessfunc) : repeat : newpopulation = empty set 4: 5: for i from to population.size do 6: x = randomselection(population, fitnessfunc) 7: y = randomselection(population, fitnessfunc) 8: child = Reproduce(x, y) 9: : if (small random probability) then : child = mutate(child) : : newpopulation.add(child) 4: population = newpopulation 5: until some individual is fit enough or out of time 6: 7: return population.bestindvidual 8: Reproduce(x, y) 9: n = x.length : c = random number from to n : return substr(x,, c) + substr(y, c +, n) Figur 5 Pseudokod för en genetisk algoritm, efter Russell och Norvig ()... Selektion Selektion kan ske på olika sätt, där slumpen spelar olika stor roll. Den enklaste varianten är att helt slumpa fram individerna. Detta ger dock lika stor sannolikhet att välja en svag lösning som en bra. Det finns flera metoder för att välja ut individer där de som är starkast har större chans att bli valda. En metod är rouletthjulsselektion, grunden är att varje individ blir en bit av rouletthjulet. I detta fall är dock inte alla bitar lika stora, utan är proportionerliga mot fitnessen (Figur 6). Sedan slumpas en del fram och ger på så sätt en individ, här följer att alla individer har chans att bli valda, men en högre fitness ger större sannolikhet. Figur 6 Modellen av rouletthjulsselektion (efter Buckland, ) 5
10 .. Fitnessfunktion Bakgrund Varje barn skapas utifrån två föräldrar (båda föräldrarna kan vara samma individ), för att kunna avgöra och framhäva bra lösningar används en fitnessfunktion. Denna funktion ger ett högt värde för en bra lösning och ett lägre värde för en sämre lösning (Russell & Norvig, ). Det är dock inte bara fitnessen som avgör föräldern, utan även en viss del slump spelar in. Annars skulle den bästa lösningen (eller de bästa om flera lösningar är likvärdiga) användas alltid, vilket inte skulle resultera i någon större evolution... Korsning För att kunna utveckla lösningen används korsning av två föräldrar för att få fram barn. I Figur 7 används en enpunktskorsning, vilket betyder att en punkt slumpmässigt väljs ut, sedan används de två delsträngarna för att skapa en ny sträng (lösning), vilket kan ses på rad. Korsningsprocessen gör störst framsteg i början, medan hastigheten på utvecklingen avtar allt medan lösningarna blir bättre (Russell & Norvig, ). Figur 7 En enpunktskorsning fungerar genom att en punkt väljs ut och allt efter denna byts ut. (Efter Chambers, 995) En tvåpunktskorsning fungerar på ett liknande sätt som enpunktskorsning. Dock väljs två punkter och allt mellan dessa skiftas, Figur 8. Figur 8 En tvåpunktskorsning fungerar genom att två punkter väljs ut och allt mellan dessa byts ut. (Efter Chambers, 995)..4 Mutation För att inte fastna i lösningar som är lokala optima används mutation, vilket innebär att en del av en lösning muteras Detta medför att en del i strängen ändras till ett värde vilket skiljer sig från det värdet barnet fick i korsningen. Sannolikheten för att mutation sker är oftast satt till ett lågt värde. 6
11 Problem Problem Boids är en teknik vilken först presenterades av Reynolds (987). Den har använts till mycket, till exempel använder Cui m.fl. (6) boids för att klustra dokument, och är enkel men funktionell. Grunden är tre regler vilka alla returnerar vektorer, dessa är viktade och summeras ihop, resultatet blir en förändring i hastighet. En genetisk algoritm kan användas för att förbättra resultatet (Chen m.fl., 6) genom att optimera vikterna. Målet med detta arbete är att se hur en genetisk algoritm kan förbättra flocken, likt Chen m.fl. (6). Dock handlar det här om att på ett konkret sätt visa på hur den genetiska algoritmen förändrar resultatet av Reynolds (987) arbete, med avseende på realism. Det bör tilläggas att optimeringen kräver korrekt vald fitnessfunktion eftersom det är denna som styr resultatet. Den mätmetod som används av Chen m.fl. (6) för att avgöra förbättringen till följd av den genetiska algoritmen, är svåranvänd och svårtolkad. Deras sätt att mäta förbättringen handlar om att vara mer realistisk genom att visa skillnader i två olika skärmdumpar. Realism är något som kan ses som väldigt subjektivt. Realism handlar här inte om en visuell bedömning utan mätning av kriterier vilka kan ses från flockar i den verkliga världen. På vägen fram till att se hur den genetiska algoritmen förbättrar resultatet kommer följande delmål: implementera algoritmerna, testköra dem och slutligen jämföra de båda implementationerna med avseende på realism. 7
12 4 Metod Metod Detta arbete handlar till viss mån om att replikera Chen m.fl. (6) och visa på ett bättre sätt att mäta resultatet. Fitnessfunktionen som används bygger på deras, vilken ska vara väl förankrad i hur en flock fungerar. När det handlar om att jämföra två olika algoritmer finns det två alternativ. Antingen kan testning användas eller analys. I detta fall är det dock en optimering av en algoritm där optimeringen handlar om förändringar i vikter, vilket resulterar i att de håller samma komplexitet och ingen skillnad i resultat skulle fås. Det viktiga är hur boidsen beter sig som en flock, vilket skulle vara mycket svårt att se utan en testning. I detta fall kommer en testkörning av de båda exemplen (med och utan optimering av vikterna) att ske och data kommer att insamlas och jämföras utifrån valda kriterier. 4. Boids Miljön i vilken flocken rör sig består av två matbitar och flocken. Alla delar har slumpmässigt utplacerade positioner. Beräkningarna för boidsen sker till den individ eller matbit vilken är närmast till hands. Att bara räkna på den närmsta kommer som en följd av hur Chen m.fl (6) räknar. Funge (4) visar på en annan möjlig metod där alla individer som är för nära tas med i beräkningen och ett medelvärde av dessa används. Då utgångspunkten är Chen m.fl. (6) arbete har deras betraktningssätt valts. 4.. Extra regler I originalarbetet presenterades tre regler, senare arbeten har lagt till flera olika regler (till exempel hinder, mat och fiender). I detta arbete har dessa regler utökats med Chen m.fl. (6) första extraregel, att följa mat. Två matbitar finns slumpmässigt utplacerade i miljön. Anledningen till att det är fler än en matbit är för att det ska finnas flera alternativ för boidsen och inte den enda matbiten ska bli till ett verktyg för att sammanhålla flocken. Reynolds (987) har även en egen regel för att matcha hastigheten i flocken till varje individ. I Chen m.fl. (6) finns ingen egen regel som tar hand om detta fall, varpå det även är utlämnat i detta arbete. Chen m.fl. (6) har även några regler som utelämnats i detta arbete, dessa handlar om att undvika fiender och hinder. Utelämnandet av dessa har grundats på att miljön i försöken saknar fiende boids och hinder varpå dessa regler skulle vara utan påverkan på resultatet. 4. Vikter För att skapa en viss prioritering av boidsens beteende används vikter till de olika reglernas resultat. Formel visar beräkningen av resultatvektorn utifrån godtyckligt antal regler. I detta arbete har enbart en regel om att flocken rör sig mot mat lagt till, samma regel som Chen m.fl. (6) använder. Reynolds (999) använder exemplet om ett flyende djur, vilket inte stannar för att hämta mat, men däremot krävs både undvikande av hinder och fly bort från faran för att visa på hur en prioritering där enbart en regel används åt gången har sin svaghet och hur det inte fungerar i ett verkligt scenario. Vidare anger han även två svagheter med att använda denna linjärkombination, det är inte beräkningsmässigt den mest effektiva metoden samt att 8
13 Metod risken alltid finns för att vektorerna tar ut varandra, det vill säga drar åt olika håll och ger ett nollresultat. V = wv i i i Formel Hastighetsvektorn (V) är summan av alla regler multiplicerat med dess vikt. Trots att vikter används flitigt har det varit svårt att hitta motiveringar och metoder för att bestämma vikterna. Helser (998) talar om vikterna som en metod att prioritera olika beteenden, likt Reynolds (999), och ger även exempel på lågprioriterade regler, i detta fall att matcha hastighet och centrera flocken. I implementationen utan optimering används fördefinierade vikter. För första regeln, undvika kollision, används värdet,65 på grund av att detta är det viktigaste beteendet då en kollision mellan fåglar i luften skulle vara förödande. Andra regeln, hålla ihop flocken har fått ett lågt värde, likt Funge (4) används, eftersom detta är ett mindre primärt mål. Slutligen används,5 till att leta mat, vilket är en viktig del men inte lika viktig som att inte krocka. 4. Genetisk algoritm för viktoptimering Chen m.fl. (6) använder en tvåpunkts korsning för att generera barn utifrån föräldrarna, där varje föräldrapar skapar två barn. Mutering sker i enlighet med Formel 4. Kromosomen har fem bitar (det står här klart att det inte kan syfta på bitar som i binärttal, då detta skulle ge noll eller ett) vilket i detta arbete har realiserats genom fem flyttal, en kromosom per vikt. x' = l + β ( u x) Formel 4 Ekvationen för mutering där x omvandlas med hjälp av övre och undre gränserna u och l samt β vilken är ett slumpmässigt värde i intervallet [ ], efter Chen m.fl. (6). För att beräkna fitness (Formel 8) används kostnadsberäkningar som relaterar till de olika reglerna. Tre olika kostnader beräknas för att sedan användas till att få fram fitnessen. En hög kostnad ger ett lägre fitnessvärde, eftersom kostnaderna är i nämnaren (Formel 8). Vektorn B är en vektor mellan två boids, på samma sätt är F en vektor mellan en boid och maten. I båda fallen går vektorn från boiden till närmsta mat/boid. Begreppet centrum av flocken är relativt till varje individ, det är dess synliga flockmedlemmar som används för att beräkna flockens centrum, C. Variablerna k och i är konstanter och bestämmer minsta avstånd innan en kollision inträffar samt hur stort synfältet är. Hastigheten hos flocken betecknas s, medan individens hastighet benämns v. Slutligen är variabeln l längden på boidens riktningsvektor. Dessa variabler återfinns i Tabell. 9
14 Metod B F C k i s l v En vektor aktuell boid och en annan boid En vektor från aktuell boid till mat En vektor från aktuell boid till centrum för dess synliga flockmedlemmar Minsta avstånd två boids har mellan varandra för att inte räknas som kolliderande Längden på boidsens synfält Hastigheten på flocken Längden på boidens riktningsvektor Boidens hastighet Tabell Tabell för de olika variablerna som förekommer i formlerna. C i = i ( B k) k ( B i) ( i k) B k B > k Formel 5 Kostnad ett handlar om kollision mot andra boids, efter Chen m.fl. (6). C i = i ( F i) ( i) ( F i) 5 ( i) 5 F F i < F Formel 6 Kostnad två beräknas utifrån avståndet till mat, efter Chen m.fl. (6). C = ( l,5v) i l i,5v,5v,5v < l < 5 i i l <,5v 5,5s l,5s i l v Formel 7 Kostnad fem handlar om hastigheten hos boidsen samt flocken, efter Chen m.fl. (6). Fitness = + ( C + C + C ) Formel 8 Fitnessen beror på summan av kostnaderna, efter Chen m.fl. (6). I Chen m.fl. (6) försök uppmättes resultatet efter generationer. I detta arbete används en population på 5 boids där varje ny generation tas fram efter 75 förflyttningsberäkningar (uppdatering av flockens position), detta för att miljön ska hinnas ändras innan beräkningar gör, skulle räkningen ske för ofta blir miljön nästan
15 Metod samma varje gång och det är en flock som fungerar i en varierande miljö som vill åstadkommas. Resultatet tas fram efter 5 generation. 4.4 Kriterier för realism Målet är att mäta realismen i simuleringarna. Det första kriteriet handlar om att se hur väl varje boid håller sig inom flocken. På samma sätt som i. mäts även i detta arbete de boids som är för långt borta från resten av flocken. Ytterligare ett värde används för att avläsa hur väl samlad flocken är, det är storleken på flocken. Storleken räknas som avståndet mellan de två yttersta individerna. Det sista kriteriet är hur ofta två boids kolliderar. Med kollision avses att två individer är närmare varandra än minsta avståndet, k (se 4.) vilket innebär att en fysisk kollision inte nödvändigtvis inträffar. Detta värde räknar alla kollisioner mellan alla boids, vilket betyder att antalet möjliga krockar är 5 (med 5 boids). Detta beroende på att alla flockmedlemmar kan kollidera med alla andra, det vill säga en mindre än maxantalet. Dock innehåller varje kollision två individer vilket ger att Formel 9 definierar maxantalet kollisioner. n( n ) Formel 9 Det maximala antalet kollisioner i kollisionsmätningen, där n är antalet boids. 4.5 Testfall Testningen kommer att utföras genom att låta de båda implementationerna köras under en bestämd tid ( sekunder, ett tidsintervall valt för att flocken ska kunna få chansen att uppvisa sitt beteendemönster) samtidigt som data samlas in. En mängd olika data kommer samlas in kontinuerligt för att få underlag att kunna genomföra jämförelsen mellan de båda testfallen. Mätvärdena kommer att upptas en gång per bildruta. För varje bildruta görs fem beräkningar på flockens förflyttning. Trots fler förflyttningar per bildruta syns inte detta för ögat, utan en kontinuerlig rörelse kommer ritas. 4.6 Mätning Mätningen kommer att ske kontinuerligt under hela körningen. Där de olika mätningarna kommer att ske oberoende av varandra. Det som kommer att mätas är ett antal uppsatta kriterier för hur en flock uppfattas realistisk (4.4). Mätresultatet kommer att presenteras från och med att en sekund har passerat, detta för att kunna få bort fel som kommer sig av hur boidsen placeras ut i sina startpositioner. Denna process är slumpmässig och ger således ett felaktigt (felaktiga med avseende på att boidsen inte fått chansen att skapa en flock då de startar utspritt) resultat då reglerna inte kan påverka detta.
16 5 Resultat Resultat Resultatet är framtaget genom kontinuerliga mätningar vid varje bildruta. På varje utritning sker tre beräkningar på flockens rörelse. Mätningen sker från start av simuleringen. I fallet med optimering med hjälp av genetisk algoritm definieras start som det tillfälle då flockens vikter sätts till det optimerade värdet, det vill säga när evolveringsprocessen är slutförd. Först kommer en diskussion om hur vikterna satts, följt av en summering av alla testerna för att sedan gå igenom var och av kriterierna som satts upp i avsnitt 4.4. Figur 9 Två skärmbilder (färgerna har ändrats för att göra bilderna tydligare) från körning av testet med manuellt satta vikter, där de röda fyrkanterna representerar en boid och de gröna ringarna föreställer mat. 5. Viktanalys Vikterna i det ickeoptimerade exemplet är satta för hand utifrån de värden som är viktiga. Helser (998) framhåller att centrering av flocken är av låg prioritet viket även har getts i detta fall. Ett högt värde här ger mer kollisioner då regeln som trycker ut flocken får mindre betydelse. I ett fall då vikterna närmar sig samma värde kommer kollisionensregeln få för lite utrymme och de andra reglerna kommer ta över, vilket resulterar i att individerna klumpar ihop sig.
17 Resultat,9,8,7 Viktvärde,6,5,4 Undvika kollision Centrera flocken Jaga mat,,, Testkörning nummer Figur Viktfördelningen hos de 4 optimeringarna. I Figur syns hur vikterna fördelade sig under de 4 olika körningarna. Vikten för centrering av flocken höll i majoriteten av fallen låga värden, medan vikten för att jaga mat håller sig till mittenvärden. I jämförelsefallet hade kollisionen fått ett värde på,65. Här syns att värdet håller sig runt det eller högre utom i undantagsfall. Skillnaderna i körningarna kan bland annat förklaras av att miljöns startvärde är slumpmässigt. Men också att de olika fördelningarna ger olika beteenden. En väldigt hög kostnad för centrering av flocken kan vägas upp av en väldigt låg kostnad för de andra reglerna. Försök och 4 ger den bästa bilden av hur värdena fördelar sig i majoritetsfallen, även om det blir lite för extrema värden på centrera flocken samt undvika kollision. 5. Jämförelse När alla körningarna ställs mot varandra och ett medelvärde tas fram syns tydligt hur det finns två olika resultat. Under optimering två, tre, sju, åtta och nio har antalet kollisioner varit maximalt eller nästintill. I dessa fall har även flockens storlek varit betydligt mindre än hos övriga testkörningar. De övriga testerna har mycket mer gemensamt med original versionen, vilket tydligt kan ses i Figur där fem staplar har betydligt avvikande värden.
18 Resultat Antal kolliderande boids Original GA GA GA GA 4 GA 5 GA 6 GA 7 GA 8 GA 9 GA GA GA GA GA 4 Figur Medelvärdet för antalet kollisioner hos alla testkörningarna. Antal boid utanför flocken Original GA GA GA GA 4 GA 5 GA 6 GA 7 GA 8 GA 9 GA GA GA GA GA 4 Figur Medelvärdet för antalet boids som hamnat utanför flocken hos alla testkörningarna. I Figur visas antalet boids som inte räknas till flocken. Värdet håller sig runt ett i de flesta körningarna. Det är endast när centrering av flocken får ett väldigt stort värde som flocken håller sig samman under hela testet. 4
19 Resultat 4,5 4,5 Storlek på flocken,5,5,5 Original GA GA GA GA 4 GA 5 GA 6 GA 7 GA 8 GA 9 GA GA GA GA GA 4 Figur Medelvärdet för flockens storlek hos alla testkörningarna. Figur visar hur det åter finns två grupper, de med dominerande centralisering har väldigt små storlekar. Testförsök två är dock lite annorlunda, den har en hög vikt på att centrera flocken, men även höga värden på de andra vikterna (se Figur, kapitel 5.). 5. Kollisioner Antalet kollisioner höll sig till låga värden i de fall där regel ett, undvika kollision fick stort utrymme, precis som i originalförsöket. De andra fallen maximerade, eller var nära att maximera, antalet kollisioner. Där låg antalet på mellan 9 och maximala 5, medan resterande försök låg på fem till 5 kollisioner i snitt per mätning (Figur kapitel 5.). 5.4 Boids utanför flocken Under vissa omständigheter kan en enskild boids hamna utanför flocken. Det vill säga en, individ åker iväg och får ett för långt avstånd till närmsta flockmedlem. Den viktigaste anledningen beror på att hitta mat tar över framför centreringsregeln. 5
20 Resultat Antal boids utanför flocken,4,74,7,99,6 4,5 4,87 5,49 6, 6,74 7,7 7,99 8,6 9, 9,8,4,7,,9,5 4, 4,7 5, 5,9 6,5 7, 7,8 8,4 9,4 Sekunder Figur 4 Antal boids utanför flocken under körning av icke optimerat exempel. 4 Antal boids utanför flocken 4 4,9 4,78 5, 5,69 6,7 6,45 6,8 7, 7,6 7,98 8,7 8,8 9,45,,7,4,7,5 4, 5, 6, 7 7,8 8,7 9,6,6,5,5,4 Sekunder Figur 5 Antal boids utanför flocken under körning av optimerad flock nummer 4. I den tredje optimeringen uppmättes ett resultat med väldigt hög centrering av flocken. I detta fall var heller ingen boid någonsin utanför flocken. Inget fall gav heller några större mängder individer som irrat sig från sin flock. Intressant är dock att den ickeoptimerade fick liknande resultat som optimering nummer 4 (Figur 4 och Figur 5). 5.5 Splittring av flocken Reglerna handlar bland annat om att hålla ihop flocken. För att avgöra hur väl flocken hålls ihop har antalet individer vilka hamnat för långt från flocken uppmäts. 6
21 Resultat Storlek på flocken 5 4,4,75,8,,65 4,9 4,9 5,55 6,8 6,8 7,44 8,7 8,67 9,9 9,9,5,,8,4,6 4, 4,9 5,5 6, 6,7 7, 8 8,7 9,8 Sekunder Figur 6 Storleken (avståndet mellan de två yttersta boidsen) på flocken under körning av icke optimerad flock. I Figur 6 visas hur storleken på flocken ser ut när de fasta vikterna används. Vid två tillfällen ökar storleken drastiskt, vilket beror på att flocken går åt olika håll för att skaffa mat.,5,45,4,5 Storlek på flocken,,5,,5,,5,9,69,9 4,7 4,7 5,9 6,4 6,67 7, 7,9 8,56 9,9 9,8,5,,7,4,6 4, 4,9 5,5 6, 6,8 7,4 8 8,7 9, 9,9 Sekunder Figur 7 Storleken (avståndet mellan de två yttersta boidsen) på flocken under körning av optimerad flock nummer tre. Den tredje körningen av optimeringen gav ett högt värde på centrering av flocken, detta kan ses i Figur 7 där flocken storlek hålls betydligt mindre än i exemplet med de fasta vikterna. 7
22 Resultat Storlek på flocken ,9 4,79 5, 5,7 6,9 6,48 6,86 7,6 7,64 8, 8,4 8,9 9,56,,9,5,,8,7 4,6 5,5 6,4 7, 8, 9 9,9,9,8,9,8 Sekunder Figur 8 Storleken (avståndet mellan de två yttersta boidsen) på flocken under körning av optimerad flock nummer 4. Den 4:e körningen gav resultat som liknade hur de fasta vikterna var satta. Resultatet kan ses i Figur 8, precis som i Figur 6 syns några toppar, vilka även här kommer sig av att flocken delat sig i jakten på mat. I båda fallen var också centreringen väldigt lågprioriterad, vilket tydligt visar skillnaden mot Figur 7 där den delen hade fått väldigt stor vikt. 8
23 Diskussion 6 Diskussion 6. Resultat Resultatet av optimeringen blev varierande. Dock visade det sig vid flera körningar att vikternas värden höll sig inom vissa intervall. En anledning till variationen är slumpen, den inverkar mycket. Framförallt om maten hamnade långt bort från varandra eller väldigt när varandra. Eftersom bara den närmaste matbiten användes i beräkningen gav inte detta en slitning i flocken på samma sätt. Det går dock dela in försöken i två delar, som gav två resultat. En del gav resultat som påminde om hur de manuella vikterna betedde sig, medan de andra försöken istället fick väldigt stor fokus på att centrera flocken. Det gick se att vid vissa tester blev det extrema värden, när en regel fick väldigt stort inflytande medan de andra hölls tillbaka. Resultatet blev att den funktionen blev nästan felfri medan de andra orsakade stora mängder fel. Det stora antalet fel visade sig aldrig i andra fall. Lika så fanns det inget test som kunde mäta sina positiva resultat med dessa test. Chen m.fl. (6) arbete innehåller en hel del brister. Först är resultatet väldigt svårtolkat. Förutom detta är detaljerna kring försöket väldigt diffusa vilket har gjort att en del antaganden har fått gjorts angående formler och utförande. Det handlar framför allt om variabler som inte helt uttryckligen specificeras, men även om detaljer om försöket som inte tydligt redovisas utan lämnas underförstådda. Fitnessfunktionen var inte helt felfri. Med tanke på att det framträdde två olika resultat tyder det på att det finns förbättringar att göra. Ett onaturligt bra resultat på en del kan uppväga ett dåligt resultat på andra delar, som till exempel när flockens storlek höll mått som inte rymmer alla boids utan att individerna kolliderar med varandra. Kriterierna fungerade bra och visade på ett tydligt sätt hur boidsen uppförde sig. Dock hänger de lite ihop, om storleken på flocken är liten, är antalet kollisioner högt och antalet boids som inte räknas till flocken litet. Det fanns fall som generellt presterade bättre än de manuellt satta vikterna, men också fall som gjorde arbetet sämre. Framför allt de försök som resulterade i en hög vikt för centralisering av flocken gav mycket sämre realism enligt kriterierna. Övriga försök gav resultat som låg runt de manuella vikterna, varken mycket bättre eller mycket sämre. 6. Slutsats Det är väldigt svårt att avgöra om en testkörning är bättre än en annan, om inte alla värden är bättre. Är alla värden bättre är det rätt självklart, men i andra fall handlar det om vad som är viktigast för resultatet. Det är svårt att säga om resultatet gav en mer realistisk flock. De fall som gav en väldigt centrerad flock borde dock antas inte vara det, då de kolliderade väldigt mycket och även höll individerna på en yta som ger dem väldigt lite utrymme. Helt klart är att resultatet är mer konkret än Chen m.fl. (6) resultat där två bilder jämförs. Nackdelen är dock att det framträdde två olika resultat, vilket tyder på att fitnessfunktionerna är otillräckliga. 9
24 Diskussion Sammanfattningsvis kan det sägas att optimeringen inte gjorde speciellt mycket i den ena gruppen av fall medan den klar försämrade realismen i det andra fallet. En brist låg i fitnessfunktionens förmåga att inte upptäcka orealistiskt bra resultat, så som när hela flocken har en storlek som med knapp marginal överstiger storleken på en enskild boid. 6. Framtida arbete Det mest påtagliga att fortsätta med är att utöka miljön och reglerna till att innefatta de två utelämnade reglerna från Chen m.fl. (6). Framför allt vore det intressant att se hur optimeringen fungerar på fler regler. Kommer det att ge ett mer entydigt resultat? Det vore också intressant att fortsätta och kontrollera skillnaderna mellan att ha flockens beteende i en linjärkombination samt att prioritera ett beteende i taget, likt Reynolds (999) diskuterar. Vidare skulle det finnas ett värde i att testa andra fitnessfunktioner vilka premierar andra beteenden. Beräkningarna av reglerna skulle också vara intressant att göra om. Det vore intressant att testa skillnaden mellan att räkna på bara en individ i taget (vilket är fallet i detta arbete) kontra att räkna på medelvärdet hos alla aktuella. Flertalet av de observationer som görs på verkliga fåglar har fallit bort. Att göra en intressantare och mer komplex modell skulle vara en idé. Där beteenden som att avsöka området genom att vrida på huvudet hos varje individ skulle kunna simuleras. Detta skulle kräva en mycket mer komplex modell av boidsen, men skulle kunna ge ännu bättre jämförelse mot verkliga flockar och observationer av dessa, likt Bekoff (995). Det vore också intressant att testa hur andra optimeringsfunktioner skulle klara optimeringen. Speciellt vore det intressant att använda ett neuralt nätverk. Men också hur resultatet skulle variera om andra beteenden premierades, det vill säga att kostnadsformlerna skiftades.
25 Referenser Bekoff, M. (995) Vigilance, flock size, and flock geometry: information gathering by western evening grosbeaks. Ethology,99 (s. 5--6). Buckland, M. () AI techniques for game programming. Rocklin, Premier Press. Chambers, L. (995) Practical handbook of genetic algorithms volume. Boca Raton, CRC press. Chen, Y., Kobayashi, K., Huang, X. & Nakao, Z. (6) Genetic algorithms for optimization of boids model. Knowledge-based intelligent information and engineering systems,45 (s ). Berlin/Heidelberg, Springer-Verlag. Cui, X., Gao, J. & Potok, T. E. (6) A flocking based algorithm for document clustering analysis. Journal of systems architecture, 5(8-9) (s ). Special issue on nature inspired applications and systems, augusti-september, 6. Funge, J. D. (4) Artificial intelligence for computer games. Wellesey, A K Peters, Ltd. Helser, A. (998) Flocking, boids and tag. Final project paper. University of North Carolina. [Elektronisk version]. Tillgänglig på Internet: [Hämtad 7.4.]. Reynolds, C. W. (987) Flocks, herds, and schools: a distributed behavioural model. Computer Graphics, (4) (s. 5--4). ACM SIGGRAPH 87 Conference Proceedings, juli, 987, Anaheim, California, USA. [Elektronisk version]. Tillgänglig på Internet: [Hämtad 7..7]. Reynolds, C. W. (999) Steering behaviors for autonomous characters. Proceedings of game developers conference (s ). Game Developers Conference, 999, San Francisco, California, USA. Russell, J. S. & Norvig. P. () Artificial intelligence a modern approach (andra internationella upplagan). Upper Saddle River, Prentice Hall.
Genetisk programmering i Othello
LINKÖPINGS UNIVERSITET Första versionen Fördjupningsuppgift i kursen 729G11 2009-10-09 Genetisk programmering i Othello Kerstin Johansson kerjo104@student.liu.se Innehållsförteckning 1. Inledning... 1
Grundläggande Idéer Algoritmens komponenter Numerisk optimering Genetisk Programmering. Genetiska Algoritmer
Genetiska Algoritmer 1 Grundläggande Idéer 2 3 4 Exempel Parallell optimering inspirerad av biologisk evolution Parallell optimering inspirerad av biologisk evolution Population av hypoteser Urvalprocess
Inledning. Kapitel 1. 1.1 Bakgrund. 1.2 Syfte
Sammanfattning Vi har i kursen Modelleringsprojekt TNM085 valt att simulera ett geléobjekt i form av en kub. Denna består av masspunkter som är sammankopplade med tre olika typer av fjädrar med olika parametrar.
729G Artificiell jakt och flockbeteende inom datorspel
Artificiell jakt och flockbeteende inom datorspel Abstrakt Chasing and Evading är ett begrepp som används för att beskriva hur agenter rör sig mot (jagar), eller undviker en spelare. Liksom i de flesta
Kognitionsvetenskapliga Programmet LiU. AI i spelet Magicka. Gruppbeteende/Grupprörelser. Jonathan Nilsson
Kognitionsvetenskapliga Programmet LiU AI i spelet Magicka Gruppbeteende/Grupprörelser Jonathan Nilsson jonni544@student.liu.se 2011-09-01 2 Sammanfattning Den här fördjupningsuppgiften kommer handla om
Uppgift 1 ( Betyg 3 uppgift )
2006-12-08.kl.08-13 Uppgift 1 ( Betyg 3 uppgift ) Implementera följande funktion: fun(1) = 1 fun(n) = fun(n / 2), för jämna n fun(n) = n / (fun(n - 1) + fun(n + 1)), för udda n Exempel på korrekta resultat:
UTVÄRDERING AV ALGORITMER FÖR BRED KOLLISIONSDETEKTERING MED HJÄLP AV BOIDS ALGORITM
Malskapada v Henrik UTVÄRDERING AV ALGORITMER FÖR BRED KOLLISIONSDETEKTERING MED HJÄLP AV BOIDS ALGORITM EVALUATION OF ALGORITHMS USED FOR BROAD PHASE COLLISION DETECTION USING BOIDS ALGORITHM Examensarbete
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
Genetiska Algoritmer. 10 mars 2014
Genetiska Algoritmer Johan Sandberg Jsg11008@student.mdh.se 10 mars 2014 Niklas Strömberg Nsg11001@student.mdh.se 1 SAMMANFATTNING Genetiska algoritmer är en sorts sökalgoritm som är till för att söka
genetiska algoritmer
Introduktion till genetiska algoritmer CT3620 Vetenskapsmetodik 2005-10-21 Ylva egerfeldt ydt01001@student.mdh.se SAMMANFATTNING enna rapport är tänkt som en introduktion till genetiska algoritmer. Först
Ansiktsigenkänning med MATLAB
Ansiktsigenkänning med MATLAB Avancerad bildbehandling Christoffer Dahl, Johannes Dahlgren, Semone Kallin Clarke, Michaela Ulvhammar 12/2/2012 Sammanfattning Uppgiften som gavs var att skapa ett system
P Q = ( 2, 1, 1), P R = (0, 1, 0) och QR = (2, 2, 1). arean = 1 2 P Q P R
1 Matematiska Institutionen KTH Lösningar till några övningar på geometri och vektorer inför lappskrivning nummer 2 på kursen Linjär algebra II, SF1604, vt11. 1. En triangel har hörn i punkterna (1, 2,
Totalt finns det alltså 20 individer i denna population. Hälften, dvs 50%, av dem är svarta.
EVOLUTION Tänk dig att det på en liten ö i skärgården finns 10 st honor av den trevliga insekten långvingad muslus. Fem av dessa är gula med svarta fläckar och fem är helsvarta. Det är samma art, bara
Analys av BI-system och utveckling av BIapplikationer
Computer Science Fredrik Nilsson, Jonas Wånggren Daniel Strömberg Analys av BI-system och utveckling av BIapplikationer Opposition Report, C/D-level 2005:xx 1 Sammanfattat omdöme av examensarbetet Vi tycker
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
RÖRELSE. - Mätningar och mätinstrument och hur de kan kombineras för att mäta storheter, till exempel fart, tryck och effekt.
RÖRELSE Inledning När vi går, springer, cyklar etc. förflyttar vi oss en viss sträcka på en viss tid. Ibland, speciellt när vi har bråttom, tänker vi på hur fort det går. I det här experimentet undersöker
Introduktion till algoritmer - Lektion 1 Matematikgymnasiet, Läsåret 2014-2015. Lektion 1
Kattis Lektion 1 I kursen används onlinedomaren Kattis (från http://kattis.com) för att automatiskt rätta programmeringsproblem. För att få ett konto på Kattis anmäler du dig på Programmeringsolympiadens
Hypotesprövning. Andrew Hooker. Division of Pharmacokinetics and Drug Therapy Department of Pharmaceutical Biosciences Uppsala University
Hypotesprövning Andrew Hooker Division of Pharmacokinetics and Drug Therapy Department of Pharmaceutical Biosciences Uppsala University Hypotesprövning Liksom konfidensintervall ett hjälpmedel för att
Uppdrag för LEGO projektet Hitta en vattensamling på Mars
LEGO projekt Projektets mål är att ni gruppvis skall öva på att genomföra ett projekt. Vi använder programmet LabVIEW för att ni redan nu skall bli bekant med dess grunder till hjälp i kommande kurser.
Vektorgeometri för gymnasister
Vektorgeometri för gymnasister Per-Anders Svensson http://homepage.lnu.se/staff/psvmsi/vektorgeometri/gymnasiet.html Fakulteten för teknik Linnéuniversitetet Räta linjens och planets ekvationer II Innehåll
Innehåll. Standardavvikelse... 3 Betarisk... 3 Value at Risk... 4 Risknivån i strukturerade produkter... 4
Del 22 Riskbedömning Innehåll Standardavvikelse... 3 Betarisk... 3 Value at Risk... 4 Risknivån i strukturerade produkter... 4 Vid investeringar i finansiella instrument följer vanligen en mängd olika
EVOLUTION AV STYRBETEENDEN FÖR TRUPPER I RTS-SPEL
Malskapada v Henrik EVOLUTION AV STYRBETEENDEN FÖR TRUPPER I RTS-SPEL Examensarbete inom huvudområdet Datavetenskap Grundnivå 30 högskolepoäng Vårtermin 2015 Robin Engström Handledare: Mikael Thieme Examinator:
Genetiska algoritmer. Henrik Hansson (hhn00001@student.mdh.se) Rapport, CDT212 Mälardalens Högskola
Genetiska algoritmer Henrik Hansson (hhn00001@student.mdh.se) Rapport, CDT212 Mälardalens Högskola 1 Sammanfattning Genetiska algoritmer har rötter i 60-talet och efterliknar evolutionsteorin på så sätt
PROGRAMMERING I NXC. Sammanfattning KUNGLIGA TEKNISKA HÖGSKOLAN
KUNGLIGA TEKNISKA HÖGSKOLAN PROGRAMMERING I NXC Namn: Michel Bitar 2012-08- 25 E- post: mbitar@kth.se Introduktionskurs i datateknik, II1310 Sammanfattning Intressant och lärorik laboration om att programmera
Stora talens lag eller det jämnar ut sig
Stora talens lag eller det jämnar ut sig kvensen för krona förändras när vi kastar allt fler gånger. Valda inställningar på räknaren Genom att trycka på så kan man göra ett antal inställningar på sin räknare.
SVÄRM-AI I SHOOTERS SWARM-AI IN SHOOTERS
Malskapada v Henrik SVÄRM-AI I SHOOTERS SWARM-AI IN SHOOTERS Examensarbete inom huvudområdet Datavetenskap Grundnivå 30 högskolepoäng Vårtermin 2015 Jonas Hallin Handledare: Mikael Johannesson Examinator:
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
Medelvärde, median och standardavvikelse
Medelvärde, median och standardavvikelse Detta är en enkel aktivitet där vi på ett dynamiskt sätt ska titta på hur de statistiska måtten, t.ex. median och medelvärde ändras när man ändar ett värde i en
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
Fördjupningsuppgift 729G43 Linköpings Universitet alelo408. Genetisk börshandel. Att hitta mönster i börsmarknaden med genetiska algoritmer
Genetisk börshandel Att hitta mönster i börsmarknaden med genetiska algoritmer Alexander Löfstrand HT 2017 1. Inledning 1.1. Bakgrund Börsmarknaden är full av möjligheter att tjäna pengar, men även på
Bakgrund och motivation. Definition av algoritmer Beskrivningssätt Algoritmanalys. Algoritmer. Lars Larsson VT 2007. Lars Larsson Algoritmer 1
Algoritmer Lars Larsson VT 2007 Lars Larsson Algoritmer 1 1 2 3 4 5 Lars Larsson Algoritmer 2 Ni som går denna kurs är framtidens projektledare inom mjukvaruutveckling. Som ledare måste ni göra svåra beslut
Föreläsning 12. Söndra och härska
Föreläsning 12 Söndra och härska Föreläsning 12 Söndra och härska Maximal delsekvens Skyline Closest pair Växel Uppgifter Söndra och härska (Divide and conquer) Vi stötte på dessa algoritmer när vi tittade
Veckoblad 1, Linjär algebra IT, VT2010
Veckoblad, Linjär algebra IT, VT Under den första veckan ska vi gå igenom (i alla fall stora delar av) kapitel som handlar om geometriska vektorer. De viktigaste teoretiska begreppen och resultaten i kapitlet
International Olympiad in Informatics 2011 22 29 July 2011, Pattaya City, Thailand Tävlingsuppgifter Dag 2 Svenska 1.3. Papegojor
Papegojor Yanee är fågelentusiast. Sedan hon läst om IP over Avian Carriers (IPoAC), har hon spenderat mycket tid med att träna en flock papegojor att leverera meddelanden över långa avstånd. Yanees dröm
Kundhandledning för EBIS. E-space Business Intelligence System. Version
Kundhandledning för EBIS E-space Business Intelligence System Version 1 10-10-06 E-space Communication AB 2010 Innehåll 1. Introduktion 3 2. Filerna har olika egenskaper 4 2.1. Analys i kundzonen. 4 2.2.
Mäta rakhet Scanning med M7005
Matematikföretaget jz M7005.metem.se 141121/150411/150704/SJn Mäta rakhet Scanning med M7005 Mätgivare Detalj Mäta rakhet - Scanning 1 (12) Innehåll 1 Ett exempel... 3 2 Beskrivning... 6 2.1 Scanna in
Tentamen för kursen. Linjära statistiska modeller. 16 augusti 2007 9 14
STOCKHOLMS UNIVERSITET MATEMATISK STATISTIK Tentamen för kursen Linjära statistiska modeller 16 augusti 2007 9 14 Examinator: Anders Björkström, tel. 16 45 54, bjorks@math.su.se Återlämning: Rum 312, hus
Experimentella metoder, FK3001. Datorövning: Finn ett samband
Experimentella metoder, FK3001 Datorövning: Finn ett samband 1 Inledning Den här övningen går ut på att belysa hur man kan utnyttja dimensionsanalys tillsammans med mätningar för att bestämma fysikaliska
Första sidan är ett försättsblad (laddas ned från kurshemsidan) Alla frågor som nns i uppgiftstexten är besvarade
HT 2011 Inlämningsuppgift 1 Statistisk teori med tillämpningar Instruktioner Ett av problemen A, B eller C tilldelas gruppen vid första övningstillfället. Rapporten ska lämnas in senast 29/9 kl 16.30.
Föreläsning 7. Felrättande koder
Föreläsning 7 Felrättande koder Antag att vi vill skicka ett meddelande som består av bokstäver a,b,c,d. Vi kan koda a,b,c,d. Antag att det finns en viss sannolikhet att en bit i ett meddelande som skickas
MVE051/MSG Föreläsning 7
MVE051/MSG810 2016 Föreläsning 7 Petter Mostad Chalmers November 23, 2016 Överblick Deskriptiv statistik Grafiska sammanfattningar. Numeriska sammanfattningar. Estimering (skattning) Teori Några exempel
Testplan Autonom truck
Testplan Autonom truck Version 1.1 Redaktör: Joar Manhed Datum: 20 november 2018 Status Granskad Kim Byström 2018-11-20 Godkänd Andreas Bergström 2018-10-12 Projektidentitet Grupp E-post: Hemsida: Beställare:
Objective:: Linjärt beroende och oberoende version 1.0
DEFINITIONEN AV LINJÄRT BEROENDE MED EXEMPEL Objective:: Linjärt beroende och oberoende version. Definitionen av linjärt beroende med exempel Vi börjar med ett inledande exempel för att motivera definitionen
Uppgift 1 (vadå sortering?)
2011-06-08.kl.14-19 Uppgift 1 (vadå sortering?) Du skall skriva ett program som sorterar in en sekvens av tal i en vektor (en array ) enligt en speciell metod. Inledningsvis skall vektorn innehålla endast
6-2 Medelvärde och median. Namn:
6-2 Medelvärde och median. Namn: Inledning Du har nu lärt dig en hel del om datainsamling och presentation av data i olika sorters diagram. I det här kapitlet skall du studera hur man kan karaktärisera
Föreläsning 8: Aritmetik och stora heltal
2D1458, Problemlösning och programmering under press Föreläsning 8: Aritmetik och stora heltal Datum: 2006-11-06 Skribent(er): Elias Freider och Ulf Lundström Föreläsare: Per Austrin Den här föreläsningen
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
HKGBB0, Artificiell intelligens
HKGBB0, Artificiell intelligens Kortfattade lösningsförslag till tentan 3 november 2005 Arne Jönsson 1. Vad karaktäriserar dagens AI-forskning jämfört med den AI-forskning som bedrevs perioden 1960-1985.
Slutrapport för Pacman
Slutrapport för Pacman Datum: 2011-05-30 Författare: cb222bj Christoffer Bengtsson 1 Abstrakt Jag har under våren arbetat med ett projekt i kursen Individuellt Mjukvaruutvecklingsprojekt. Målet med mitt
, s a. , s b. personer från Alingsås och n b
Skillnader i medelvärden, väntevärden, mellan två populationer I kapitel 8 testades hypoteser typ : µ=µ 0 där µ 0 var något visst intresserant värde Då användes testfunktionen där µ hämtas från, s är populationsstandardavvikelsen
Lösningsförslag till övningsuppgifter, del V
Lösningsförslag till övningsuppgifter, del V Obs! Preliminär version! Ö.1. (a) Vi kan lösa uppgiften genom att helt enkelt räkna ut avståndet mellan vart och ett av de ( 7 ) = 1 paren. Först noterar vi
TANA17 Matematiska beräkningar med Matlab
TANA17 Matematiska beräkningar med Matlab Laboration 1. Linjär Algebra och Avbildningar Namn: Personnummer: Epost: Namn: Personnummer: Epost: Godkänd den: Sign: Retur: 1 Introduktion I denna övning skall
Introduktion till programmering SMD180. Föreläsning 9: Tupler
Introduktion till programmering Föreläsning 9: Tupler 1 1 Sammansatta datatyper Strängar Sekvenser av tecken Icke muterbara Syntax: "abcde" Listor Sekvenser av vad som helst Muterbara Syntax: [1, 2, 3]
Det är fåfängt att göra med mera det som kan göras med mindre
Det är fåfängt att göra med mera det som kan göras med mindre Δ GENETICA ÄRFTLIGHETSGRAD VAD ÄR DET? Urval för att förbättra egenskaper genom avel är bara meningsfullt om de mät- eller bedömningsvärden
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
När vi läste Skolverkets rapport Svenska elevers matematikkunskaper
Florenda Gallos Cronberg & Truls Cronberg Två perspektiv på att utveckla algebraiska uttryck Svenska elever påstås ha svårt med mönstertänkande. Eller är det så att de inte får lärarledd undervisning i
Så här fungerar tidsberäkningen under huven
Så här fungerar tidsberäkningen under huven Cup- och Matchplaneringssystem för PC Efkon AB 2008-2011 Innehållsförteckning: 1. INLEDNING... 2 2. FUNKTIONSBESKRIVNING... 2 2.1. EN FLIK PER ÅLDERSKLASS...
Föreläsning 4. NDAB01 Statistik; teori och tillämpning i biologi
Föreläsning 4 Statistik; teori och tillämpning i biologi 1 Dagens föreläsning o Icke-parametriska test Mann-Whitneys test (kap 8.10 8.11) Wilcoxons test (kap 9.5) o Transformationer (kap 13) o Ev. Andelar
DYNAMISK SVÅRIGHETSGRAD MED GENETISK ALGORITM. En jämförelse mellan två tekniker för att snabba upp processen
DYNAMISK SVÅRIGHETSGRAD MED GENETISK ALGORITM En jämförelse mellan två tekniker för att snabba upp processen Examensarbete inom huvudområdet Datalogi Grundnivå 30 högskolepoäng Vårtermin 2012 Jesper Larsson
Vektorgeometri för gymnasister
Vektorgeometri för gymnasister Per-Anders Svensson http://homepage.lnu.se/staff/psvmsi/vektorgeometri/gymnasiet.html Fakulteten för teknik Linnéuniversitetet Räta linjens och planets ekvationer III Innehåll
TAMS79: Föreläsning 10 Markovkedjor
TAMS79: Föreläsning 0 Markovkedjor Johan Thim december 08 0. Markovkedjor Vi ska nu betrakta en speciell tidsdiskret diskret stokastisk process, nämligen Markovkedjan. Vi börjar med en definition Definition.
Kursombud sökes! Kursens syfte är att ge en introduktion till metoder för att förutsäga realtidsegenskaper hos betjäningssystem, i synnerhet för data- och telekommunikationssystem. Såväl enkla betjäningssystem,
Flaxande Fågel. Introduktion. Level
Level 2 Flaxande Fågel All Code Clubs must be registered. Registered clubs appear on the map at codeclub.org.uk - if your club is not on the map then visit jumpto.cc/18cplpy to find out what to do. Introduktion
Tentamen i Beräkningsvetenskap I/KF, 5.0 hp,
Uppsala universitet Institutionen för informationsteknologi Teknisk databehandling Tentamen i Beräkningsvetenskap I/KF, 5. hp, 215-3-17 Skrivtid: 14 17 (OBS! Tre timmars skrivtid!) Hjälpmedel: Bifogat
729G04 - Diskret matematik. Lektion 4
729G04 - Diskret matematik. Lektion 4 1 Lösningsförslag 1.1 Vägar, stigar och annat 1. Vi ges den oriktade grafen G=(V,E), V = {a, b, c, d, f, g, h, i, j}, E = {{a, b}, {b, c}, {a, c}, {f, g}, {c, d},
729G43 Artificiell intelligens / Maskininlärning 3. Marco Kuhlmann
729G43 Artificiell intelligens / 2015 Maskininlärning 3 Marco Kuhlmann Förra gången: Perceptroninlärning Beslutsregel predicerat y-värde Exempel: AND Välj parametrar θ 0, θ 1, θ 2 sådana att perceptronen
z = 4 + 3t P R = (5 + 2t, 4 + 2t, 4 + 3t) (1, 1, 3) = (4 + 2t, 3 + 2t, 1 + 3t)
Tentamenskrivning MATA15 Algebra: delprov 2, 6hp Fredagen den 16 maj 2014 Matematikcentrum Matematik NF LÖSNINGSFÖRSLAG 1. Låt l vara linjen genom punkten (5, 4, 4) som är vinkelrät mot planet 2x+2y +3z
Målet för D2 är att studenterna ska kunna följande: Dra slumptal från olika sannolikhetsfördelningar med hjälp av SAS
Datorövning 2 Statistisk teori med tillämpningar Simulering i SAS Syfte Att simulera data är en metod som ofta används inom forskning inom ett stort antal ämnen, exempelvis nationalekonomi, fysik, miljövetenskap
Laboration 4 Mekanik baskurs
Laboration 4 Mekanik baskurs Utförs av: Henrik Bergman Mubarak Ali Uppsala 015 03 7 Introduktion Denna laboration handlar om två specialfall av kollisioner, inelastiska och elastiska kollisioner. Vi ska
LKT325/LMA521: Faktorförsök
Föreläsning 2 Innehåll Referensfördelning Referensintervall Skatta variansen 1 Flera mätningar i varje grupp. 2 Antag att vissa eekter inte existerar 3 Normalfördelningspapper Referensfördelning Hittills
Målet för D3 är att studenterna ska kunna följande: Dra slumptal från olika sannolikhetsfördelningar med hjälp av SAS
Datorövning 3 Statistisk teori med tillämpningar Simulering i SAS Syfte Att simulera data är en metod som ofta används inom forskning inom ett stort antal ämnen, exempelvis nationalekonomi, fysik, miljövetenskap
Symboler och abstrakta system
Symboler och abstrakta system Warwick Tucker Matematiska institutionen Uppsala universitet warwick@math.uu.se Warwick Tucker, Matematiska institutionen, Uppsala universitet 1 Vad är ett komplext system?
Kontrollera att följande punkter är uppfyllda innan rapporten lämnas in: Första sidan är ett försättsblad (laddas ned från kurshemsidan)
Statistiska institutionen VT 2012 Inlämningsuppgift 1 Statistisk teori med tillämpningar Instruktioner Ett av problemen A, B eller C tilldelas gruppen vid första övningstillfället. Rapporten ska lämnas
Räta linjens ekvation.
Räta linjens ekvation joakim.magnusson@gu.se Ur centralt innehåll år 4-6 Samband och förändring Proportionalitet och procent samt deras samband. Grafer för att uttrycka olika typer av proportionella samband
ALGORITMER, OPTIMERING OCH LABYRINTER
ALGORITMER, OPTIMERING OCH LABYRINTER Text: Marie Andersson, Learncode AB Illustrationer: Li Rosén Foton: Shutterstock Har du någonsin lagat mat efter recept eller monterat ihop en möbel från IKEA? Då
TEORETISKA BERÄKNINGAR PÅ EFFEKTEN AV BORRHÅLSBOOSTER
UPPDRAG LiV Optimering bergvärmeanlägg UPPDRAGSNUMMER 0000 UPPDRAGSLEDARE Sten Bäckström UPPRÄTTAD AV Michael Hägg DATUM TEORETISKA BERÄKNINGAR PÅ EFFEKTEN AV BORRHÅLSBOOSTER BAKGRUND Energiutbytet mellan
34% 34% 13.5% 68% 13.5% 2.35% 95% 2.35% 0.15% 99.7% 0.15% -3 SD -2 SD -1 SD M +1 SD +2 SD +3 SD
6.4 Att dra slutsatser på basis av statistisk analys en kort inledning - Man har ett stickprov, men man vill med hjälp av det få veta något om hela populationen => för att kunna dra slutsatser som gäller
Finns det över huvud taget anledning att förvänta sig något speciellt? Finns det en generell fördelning som beskriver en mätning?
När vi nu lärt oss olika sätt att karaktärisera en fördelning av mätvärden, kan vi börja fundera över vad vi förväntar oss t ex för fördelningen av mätdata när vi mätte längden av en parkeringsficka. Finns
Sphero SPRK+ Appen som används är Sphero Edu. När appen öppnas kommer man till denna bild.
Sphero SPRK+ Appen som används är Sphero Edu När appen öppnas kommer man till denna bild. Klicka på 3D-modeller för att se delarna på Sphero Klicka här för att ansluta Sphero till ipad Programmet för att
Linköpings Tekniska Högskola Instutitionen för Datavetenskap (IDA) Torbjörn Jonsson, Erik Nilsson Lab 2: Underprogram
Mål Lab 2: Underprogram Följande laboration introducerar underprogram; procedurer, funktioner och operatorer. I denna laboration kommer du att lära dig: Hur man skriver underprogram och hur dessa anropas.
Öka prestanda i Shared-Cache multi-core processorer
Öka prestanda i Shared-Cache multi-core processorer 1. Abstract Många processorer har nuförtiden flera kärnor. Det är även vanligt att dessa kärnor delar på högsta nivås cachen för att förbättra prestandan.
Uppgift 1 ( Betyg 3 uppgift )
Uppgift 1 ( Betyg 3 uppgift ) Skriv ett program, Draw_Hexagones, som ritar ut en bikupa enligt körexemplen nedan. Exempel 1: Mata in storlek på bikupan: 1 + / \ + + + + \ / + Exempel 3: Mata in storlek
Föreläsning Datastrukturer (DAT037)
Föreläsning Datastrukturer (DAT037) Nils Anders Danielsson 2015-11-20 Idag Grafer: Terminologi. Datastrukturer. Topologisk sortering. Kortaste vägen. Bredden först-sökning. Dijkstras algoritm. (Vi får
Handledare: Mikael Goldmann
2012-02- 23 Jacob Rydh Robert Hedin Sudoku Solver Projektspecifikation Handledare: Mikael Goldmann Introduktion Vi ska studera och utforma olika algoritmer för att lösa Sudoku puzzel. Vi kommer testa olika
Genetiska algoritmer
GA Genetiska algoritmer Warwick Tucker Matematiska institutionen Uppsala universitet warwick@math.uu.se 1 Reseproblem Reseproblem Du önskar att resa inom Europa genom att besöka London, Paris, Rom, Stockholm
Föreläsning 1. Repetition av sannolikhetsteori. Patrik Zetterberg. 6 december 2012
Föreläsning 1 Repetition av sannolikhetsteori Patrik Zetterberg 6 december 2012 1 / 28 Viktiga statistiska begrepp För att kunna förstå mer avancerade koncept under kursens gång är det viktigt att vi förstår
DATORÖVNING 2: STATISTISK INFERENS.
DATORÖVNING 2: STATISTISK INFERENS. START Logga in och starta Minitab. Se till att du kan skriva Minitab-kommandon direkt i Session-fönstret (se föregående datorövning). CENTRALA GRÄNSVÄRDESSATSEN Enligt
Eulercykel. Kinesiska brevbärarproblemet. Kinesiska brevbärarproblemet: Metod. Kinesiska brevbärarproblemet: Modell. Definition. Definition.
Eulercykel Definition En Eulercykel är en cykel som använder varje båge exakt en gång. Definition En nods valens är antalet bågar som ansluter till noden. Kinesiska brevbärarproblemet En brevbärartur är
Programmeringsolympiaden 2010 Kvalificering
Programmeringsolympiaden 2010 Kvalificering TÄVLINGSREGLER Tävlingen äger rum på ett av skolan bestämt datum under sex timmar effektiv tid. Tävlingen består av sex uppgifter som samtliga ska lösas genom
RemoteBud. Inlämnas: Patrik Johnsson, e01pjo Viktor Karlsson, e01vk
RemoteBud Inlämnas: 2005-02-01 Patrik Johnsson, e01pjo Viktor Karlsson, e01vk Abstract Skulle du också vilja styra dina lampor och rulla ner dina persienner med hjälp av din TV-fjärrkontroll? Remotebud
3i)z 2013(1 ) och ge i det komplexa talplanet en illustration av lösningsmängden.
MÄLARDALENS HÖGSKOLA Akademin för utbildning, kultur och kommunikation Avdelningen för tillämpad matematik Examinator: Lars-Göran Larsson TENTAMEN I MATEMATIK MAA Grundläggande vektoralgebra, TEN6 alt.
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
Uppgift 1 ( Betyg 3 uppgift )
Uppgift 1 ( Betyg 3 uppgift ) Skriv ett program, Draw_Hexagones, som ritar ut en bikupa enligt körexemplen nedan. Exempel 1: Mata in storlek på bikupan: 1 Exempel 3: Mata in storlek på bikupan: 3 \ / \
Inlämningsuppgifter, EDAF30, 2015
LUNDS TEKNISKA HÖGSKOLA Institutionen för datavetenskap Programmering i C++ Inlämningsuppgifter, EDAF30, 2015 Det finns två deluppgifter som båda ska lösas: 1. skriv ett program för att hantera bankkonton
Inociell Lösningsmanual Endimensionell analys. E. Oscar A. Nilsson
Inociell Lösningsmanual Endimensionell analys E. Oscar A. Nilsson January 31, 018 Dan Brown "The path of light is laid, a secret test..." Tillägnas Mina vänner i Förord Detta är en inociell lösningsmanual
Procedurell grottgenerator och eld i GLSL. Marcus Widegren
Procedurell grottgenerator och eld i GLSL Marcus Widegren 14 januari 2012 Innehåll 2 Sammanfattning Jag har gjort en enkel procedurell grottgenerator i GLSL och C++. För belysning används en fackla, som
Dagens föreläsning (F15)
Dagens föreläsning (F15) Problemlösning med datorer Carl-Mikael Zetterling bellman@kth.se KP2+EKM http://www.ict.kth.se/courses/2b1116/ 1 Innehåll Programmering i Matlab kap 5 EKM Mer om labben bla Deluppgift
Systemkonstruktion Z3 (Kurs nr: SSY-046)
Systemkonstruktion Z3 (Kurs nr: SSY-046) Tentamen 23 oktober 2008 em 14:00-18:00 Tid: 4 timmar. Lokal: "Väg och vatten"-salar. Lärare: Nikolce Murgovski, 772 4800 Tentamenssalarna besöks efter ca 1 timme
Micro:bit och servomotorer
Micro:bit och servomotorer Servomotorer som beskrivs här är så kallade micro servos och har beteckningarna: FS90 FS90R En servomotor har tre kablar. En brun som kopplas till GND, en röd som är för strömförsörjning
Tentamen: Programutveckling ht 2015
Tentamen: Programutveckling ht 2015 Datum: 2015-11-04 Tid: 09:00-13:00 Sal: Ansvarig: Resultat: Hjälpmedel: Maxpoäng: Betygsgränser: Anslås inom 3 veckor. Inga 40 p 20 p för G, 32 p för VG. Iakttag följande: