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
volgende
Slide 1: Tekstslide
InformatievaardighedenMiddelbare schoolvwoLeerjaar 5

In deze les zitten 25 slides, met interactieve quizzen en tekstslides.

time-iconLesduur is: 60 min

Onderdelen in deze les

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 - Tekstslide

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 - Tekstslide

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 - Tekstslide

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 - Tekstslide

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

Slide 5 - Open vraag

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

Slide 6 - Tekstslide

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 - Tekstslide

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 - Tekstslide

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 - Tekstslide

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 - Tekstslide

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 - Tekstslide

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 - Tekstslide


Slide 13 - Open vraag

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 - Tekstslide

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 - Tekstslide

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

Slide 16 - Tekstslide

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 - Tekstslide

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

Slide 18 - Open vraag

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 - Tekstslide

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 - Tekstslide

screenshot van de vorige opdracht

Slide 21 - Open vraag

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

Slide 22 - Tekstslide

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 - Tekstslide

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 - Tekstslide

MAak een screenshot van het effect van een stochastische waarde.

Slide 25 - Open vraag