Landstede Groep

Les 5 Modelleren in Netlogo 2

Je kunt nu
  • een modelwereld maken, de oorsprong van het coördinatenstelsel verleggen en de randen open/gesloten maken
  • Patches maken met verschillende eigenschappen (bv kleur) op basis van hun locatie
  • Turtles aanmaken, startlocaties bepalen, eigenschappen veranderen (bv vorm), laten bewegen volgens vaste regels.
  • Je kunt turtles iets laten veranderen aan een patch (bv kleur)

je hebt geleerd dat de manier waarop je de code noteert heel nauw luistert. Je hebt een bookmark gemaakt  naar de modelbibliotheek, zodat je van alle functies de juiste syntax (schrijfwijze) kunt terugvinden.
1 / 25
next
Slide 1: Slide
InformatievaardighedenMiddelbare schoolvwoLeerjaar 5

This lesson contains 25 slides, with interactive quizzes and text slides.

time-iconLesson duration is: 60 min

Items in this lesson

Je kunt nu
  • een modelwereld maken, de oorsprong van het coördinatenstelsel verleggen en de randen open/gesloten maken
  • Patches maken met verschillende eigenschappen (bv kleur) op basis van hun locatie
  • Turtles aanmaken, startlocaties bepalen, eigenschappen veranderen (bv vorm), laten bewegen volgens vaste regels.
  • Je kunt turtles iets laten veranderen aan een patch (bv kleur)

je hebt geleerd dat de manier waarop je de code noteert heel nauw luistert. Je hebt een bookmark gemaakt  naar de modelbibliotheek, zodat je van alle functies de juiste syntax (schrijfwijze) kunt terugvinden.

Slide 1 - Slide

Doel
Je kunt een slider maken, zodat je parameters of initiële condities van een model kunt aanpassen zonder de code te wijzigen.

Je kunt een 'global' instellen: Een parameter die in alle procedures van het model bruikbaar is.

Slide 2 - Slide

Opdracht
Maak  voor je nederlandse vlag model met bewegende turtles een slider.

Je kunt de minimale, maximale en standaardwaarde (value) invullen. 

Increment is de stapgrootte waarmee straks de waarde groter en kleiner gemaakt kan worden door de gebruiker.

vervolg op volgende dia

Slide 3 - Slide

Opdracht
Vul in de code op de plek waar je nu een getal hebt staan voor een instelling nu de naam van de global variabele in die je met je slider hebt aangemaakt.

bv : 
snelheid van de turtle
draaihoek per tijdstap
grootte van de turtle 

Slide 4 - Slide

Maak screenshots (3) van je model met slider met het resultaat van een paar verschillende instellingen

Slide 5 - Open question

Doel
Je kunt in je model verschillende groepen turtles maken die eigenschappen krijgen die in netlogo niet standaard bestaan.

Slide 6 - Slide

Opdracht: 
Maak twee verschillende groep(en) turtles die je nodig hebt met behulp van "breeds", 
geef ze in ieder geval tijdelijk een nieuwe eigenschap, waarvan je de waarde invoert. 
Controleer door een turtle te inspecteren of het gelukt is. (maak daarvan een screenshot)
Zorg dat ze in het model van elkaar te onderscheiden zijn door bv vorm of kleur.
 
Extra uitdaging: Misschien moeten niet alle turtles dezelfde waarde krijgen, je kunt met de if functie bepaalde turtles selecteren. Er zijn meer van dit soort handige logische functies, die allemaal net wat anders doen. Deze zijn te vinden in de functiebibliotheek.

Je vindt een voorbeeld met uitleg in de volgende dia's

Slide 7 - Slide

We kijken naar de volgende code:


breed [cats cat ]
breed [dogs dog]
breed [hamsters hamster]
turtles-own [eyes legs] ;; applies to all breeds
cats-own [fur kittens]
hamsters-own [fur cage]
dogs-own [hair puppies]

Breeds, Turtles-own en Patches-own
Je hebt in de vorige les gezien hoe je een turtle kunt inspecteren en zo al zijn eigenschappen te zien kunt krijgen

Soms wil je een eigenschap toevoegen die niet standaard bestaat. Daarvan wordt dan bij elke tijdstap (tick), voor elke turtle de waarde opgeslagen en onthouden. Deze waardes zijn ook in alle procedures toegankelijk. Deze eigenschappen zijn dus een speciaal soort globals.
Soms wil je ook verschillende groepen turtles maken, met elk hun eigen eigenschappen.

Slide 8 - Slide

We kijken naar de volgende code:


breed [cats cat ]
breed [dogs dog]
breed [hamsters hamster]
turtles-own [eyes legs] ;; applies to all breeds
cats-own [fur kittens]
hamsters-own [fur cage]
dogs-own [hair puppies]

locatie in de code: 

Om de code leesbaar (en werkzaam) te houden is er een specifieke plek voor deze code. Alle globals en vergelijkbare variabelen worden bovenaan je code ‘gedeclareerd’. 
Dus nog vóór de setup-procedures. Hiermee vertel je het model dat deze variabelen bestaan. 

Ze moeten in de setup procedure nog wel ‘gevuld’ worden.

Slide 9 - Slide

We kijken naar de volgende code:


breed [cats cat ]
breed [dogs dog]
breed [hamsters hamster]
turtles-own [eyes legs] ; applies to all breeds
cats-own [fur kittens]
hamsters-own [fur cage]
dogs-own [hair puppies]

breed [cats cat]
Deze code laat het model weten dat er een groep turtles (breed) gemaakt kan worden die cats heet. Individuele turtles binnen deze groep heten cat.

turtles-own [eyes legs]
Alle turtles in het model (cats, hamsters en dogs) krijgen de eigenschappen eyes en legs

cats-own [fur kittens]
Alleen de katten in het model krijgen de eigenschappen vacht en kittens.

Slide 10 - Slide

In de setup procedure

create-cats 50 ; maak 50 katten aan
ask cats [ set fur “long” ] ; alle katten krijgen een lange vacht
ask cats [set kittens 5] ; alle katten hebben 5 kittens


Als je goed oplet zie je dat tekstwaarden steeds tussen dubbele aanhalingstekens geschreven worden. 

Als je dit niet doet interpreteert netlogo het woord als een commando (en krijg je dus een foutmelding, omdat hij het commando niet snapt)

Slide 11 - Slide

Opdracht: 
Maak twee verschillende groep(en) turtles die je nodig hebt met behulp van "breeds", 
geef ze in ieder geval tijdelijk een nieuwe eigenschap, waarvan je de waarde invoert. 
Controleer door een turtle te inspecteren of het gelukt is. (maak daarvan een screenshot)
Zorg dat ze in het model van elkaar te onderscheiden zijn door bv vorm of kleur.
 
Extra uitdaging: Misschien moeten niet alle turtles dezelfde waarde krijgen, je kunt met de if functie bepaalde turtles selecteren. Er zijn meer van dit soort handige logische functies, die allemaal net wat anders doen. Deze zijn te vinden in de functiebibliotheek.

Slide 12 - Slide


Slide 13 - Open question

Doel
Je kunt in je interface een diagram maken die 'live' de resultaten volgt.

Gebruik hiervoor in eerste instantie het HIV model (sla wel eerst je eigen model op)

Locatie Model: Models Library>Sample Models>Biology>HIV



Slide 14 - Slide

Een diagram maken
Er zijn twee basiscommando’s voor het maken van een diagram (plotten). 

plot: Als je het aantal ticks (tijd dus) op de X-as wil en een andere variabele op de y-as

plotxy: Wanneer je zowel de x als de y-variabele wil kiezen,. 

Voor nu behandelen we alleen plot

Slide 15 - Slide

Druk op de rechter muisknop op een figuur en druk "Edit" om dit venster te krijgen.

Slide 16 - Slide

Opdrachten
Draai het model met het vinkje "autoscale?" aan en uit. Wat is het verschil? 

Verander de waarden van X min / X max / Y min en Y max. Maak een schreenshot van het resultaat.


Slide 17 - Slide

screenshot van vorige opdracht + antwoord op de 1e vraag.

Slide 18 - Open question

Plotten
Bij de plot setup commands kun je het uiterlijk van de grafiek verder beïnvloeden. Deze commando’s overrulen de instellingen die je eerder hebt gegeven.

Bij de plot update commands geef je aan welke lijnen er in je figuur getekend moeten worden. Bij elke ‘tick’ worden de lijnen ge-update. Dit is aan te passen.

Opdracht: Inspecteer in het HIV-model poppetjes met verschillende kleuren. Wat zijn de verschillende waarden bij de eigenschappen infected? en known?
Noteer deze. naast tekswaarden en getallen is dit ook een heel handig type variabele (boolean). Geen aanhalingstekens gebruiken bij dit datatype.



Slide 19 - Slide

Plotten
plot: maak een diagram met tijd op de X-as

count: tel bij elkaar op

turtles with ['not infected?] de turtles bij wie in de eigenschap 'not infected?' TRUE staat.

opdracht:
maak een diagram in je nederlandse vlagmodel dat het aantal verkleurde "patches" telt.





Slide 20 - Slide

screenshot van de vorige opdracht

Slide 21 - Open question

Doel
Je kunt stochasticiteit (toevalseffecten) inbouwen in een netlogo model

Slide 22 - Slide

random-float
random-float 4: kies een willekeurig getal tussen 0 en 4

alle getallen tussen 0 en 4 hebben een even grote kans  om gekozen te worden.

Slide 23 - Slide

random-normal
Bij een normaalverdeling vallen de gekozen waarde meer ronde het gemiddelde. De standaarddeviatie (sigma) bepaalt hoe veel andere waarden afwijken van dat gemiddelde .

 bv: ask zaden [set grootte random-normal 4 1]
4 is het gemiddelde, en 1 is de standaarddeviatie
opdracht:
Maak 1 van de waarden in je vlagmodel stochastisch. 

Slide 24 - Slide

MAak een screenshot van het effect van een stochastische waarde.

Slide 25 - Open question