emergenta-system-lab2
文件大小: unknow
源码售价: 5 个金币 积分规则     积分充值
资源说明:
* Emergenta system, VT-09


* Laboration 2: Boids
 

** Introduktion

På 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:

    * Collision avoidance: undvik att kollidera med dina grannar
    * Velocity matching: försök hålla samma fart och riktning som dina
      grannar
    * Flock centering: försök att hålla dig i mitten av dina grannar

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 i grupper om två personer.

** Syfte

Det övergripande syftet är att öka förståelsen för emergenta
system. Laborationen har följande delsyften:

    * Öka förståelsen för boids och självorganisation
    * Stimulera till tankar kring emergenta egenskaper i system

** Uppgift
** Allmänt

I NetLogos modellbibliotek finns en enkel boids-modell kallad
Flocking. Varje agent i modellen följer följande enkla regler:

    * Separate: undvik att flyga för nära andra boids
    * Align: flyg i samma riktning som andra boids i flocken genom att
      ta ett medelvärde av flockens riktning
    * Cohere: försök flyga så nära flockens mitt som möjligt

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:

* Hinder

Modellen ska utvidgas till att inkludera hinder som flockarna undviker
med hjälp av någon av Reynolds metoder, era boids ska undvika hinder
på ett sätt som ser naturligt ut. Ni behöver bara inkludera
punktformade hinder men om ni vill får ni självklart lägga in större
hinder eller lägga flera punktformade 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ål

Modellen 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 ringen

I 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 (under Tools-menyn). Kreativitet uppmuntras!  Rörliga
hinder

Hinder 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?  Viktning

På 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.  Redovisning

Laborationen ska dels redovisas med en rapport och dels genom
deltagande i redovisningen av laborationen (se schemat för
tidpunkt). Rapportens huvudsyfte är att redovisa era reflektioner
kring det som laborationen behandlar, dvs reflektionsdelen är
viktig. Diskutera de frågor som nämns ovan och försöka att sätta in
laborationen i ett större sammanhang. Vilka applikationsområden kan du
se för den här typen av algoritmer? Kan modellen utöka för att göras
mer intressant?

Under redovisningen av laborationen kommer vi att eventuellt titta på
någon lösning och därefter diskutera kring olika frågeställningar.
Innehåll i rapport

*** I er rapport ska följande punkter tas med:

    * Ett fullständigt försättsblad
    * Sökvägen till er NetLogo-kod (kan skrivas på försättsbladet)
    * Reflektion kring er lösning och eventuella begränsningar
    * Reflektion kring de frågor som ställs ovan samt saker som du
      själv finner relevant. Ta gärna hjälp av skärmdumpar.
    * Utskriven dokumenterad källkod

** Datum

Rapporten ska vara inlämnad senast tisdag 3 februari 16.00.

Lycka till!


[Hem][Tillbaka] http://www.cs.umu.se/kurser/5DV017/VT09/lab/lab2.html
Ansvarig för sidan: Jonny Pettersson Senast ändrad Friday, 23-Jan-2009
11:14:57 MET Copyright © 2009. All rights reserved.

本源码包内暂不包含可直接显示的源代码文件,请下载源码包。