Emergenta system, HT-05 |
|
IntroduktionPå slutet av 80-talet utvecklade Craig Reynolds en modell för hur artificiella individer, kallade boids, rör sig i flock. Varje boid följer några enkla regler vilket resulterar i ett flockbeteende. Reynolds modell bygger på följande regler:
Reynolds utökar också modellen till att inkludera mål som flocken strävar mot samt undvikande av hinder i omgivningen. När det gäller hinder presenterar Reynolds två modeller. Den första är baserad på kraftfält runt hinder; när en boid befinner sig nära ett hinder är kraftfältet starkt och benägenheten att svänga därifrån blir hög. I den andra, steer-to-avoid, tar en boid bara hänsyn till hinder som ligger rakt framåt och beräknar en ny kurs för att undvika hindret. ( se Reynolds, 1987) Laborationen ska lösas självständigt i grupper om två personer. SyfteDet övergripande syftet är att öka förståelsen för emergenta system. Laborationen har följande delsyften:
UppgiftAllmäntI NetLogos modellbibliotek finns en enkel boids-modell kallad Flocking. Varje agent i modellen följer följande enkla regler:
Dessa regler resulterar i att agenterna istället för att röra sig slumpmässigt i världen rör sig i en eller flera flockar. För att göra den befintliga modellen lite mer realistisk och intressant ska hinder som boids undviker och gemensamma mål läggas in. I laborationen är följande uppgifter obligatoriska: HinderModellen ska utvidgas till att inkludera hinder som flockarna undviker med hjälp av någon av Reynolds metoder eller er egen. Hur hinder undviks är upp till er men era boids ska undvika hinder på ett sätt som ser naturligt ut. Ni behöver bara inkludera punkformade hinder men om ni vill får ni självklart lägga in större hinder eller lägga flera punkformade hinder nära varandra. I en bra lösning kan flocken flyga mot ett hinder, delas upp i två delflockar och när hindret är passerat fortsätta flyga i en flock med bibehållen kurs. Frågor att fundera kring är: Vad krävs för att en flock ska kunna splittras upp när de undviker ett hinder och gå ihop till en samlad flock när hindret är passerat? Vilken metod valde ni och varför? Hur skulle er metod fungera med andra hinder än punktformade? Finns det någon gräns för hur stora hindren kan vara? MålModellen ska utvidgas till att inkludera ett gemensamt mål, alltså en punkt eller yta i världen som alla boids strävar efter att nå. Minimikravet är att man ska kunna ställa in målet genom att med muspekaren välja en punkt i världen (se NetLogos dokumentation). Frågor att fundera kring: Hur bibehålls flockbeteendet när ett mål finns? Hur stor vikt bör man lägga på mål, hinder och flockbeteende för att få ett beteende som ser naturligt ut? Vilken sorts beteende anser ni är naturligt eller önskvärt? Följande uppgifter är frivilliga: Sagan om ringenI ett segment av Frodo Baggins och ringens brödraskaps färd till landet Mordor måste de ta sig igenom ett stycke snårig terräng bestående av träd och berg. Använd modellen med flockar, hinderhantering och mål för att simulera gruppens resa från en startposition till ett mål. Detta är ett exempel på scripted flocking. Använd gärna NetLogos färdiga former för hinder och individer. Bland annat finns former för människor, träd och bergliknande terräng. Det går också att skapa egna former med NetLogos Shapes Editor. Kreativitet uppmuntras! Rörliga hinderHinder som rör på sig blir svårare att undvika då boids måste ta hänsyn inte bara till position utan också till hindrens rörelse. En utökning med rörliga hinder kan kombineras med Sagan om ringen-scenariot för att introducera nya element som måste undvikas. Kanske en grupp orcher som jagar brödraskapet? ViktningPå sidorna 272-275 i Flake beskrivs hur boids olika mål (separation, centering osv.) kan viktas. I NetLogos Flockingmodell kan visserligen parametrar regleras för att uppnå olika beteenden men en mer generell viktning liknande den som beskrivs av Flake skulle vara mer intressant. Implementera viktning av boids olika beteenden där er hinderhantering och gemensamma mål ingår. RedovisningDenna laboration ska inte redovisas med någon större rapport. Innehåll i rapportI er rapport ska följande punkter tas med:
DatumRapporten ska vara inlämnad senast 18 november 10.00. Lycka till! |