Eindopdracht#
Deze eindopdracht vormt de logische afsluiting van de zes hoofdstukken die je hebt doorlopen. Tijdens de hoofdstukken heb je stap voor stap gewerkt aan het begrijpen van agent-based modelling, het ontwerpen van modellen, het implementeren in NetLogo, het systematisch experimenteren en het valideren van je resultaten. In deze eindopdracht breng je al deze elementen samen in één compleet onderzoeksproject.
Overzicht: Van theorie naar praktijk#
De eindopdracht volgt dezelfde structuur als de zes hoofdstukken:
Hoofdstuk |
Onderwerp |
Onderdeel eindopdracht |
|---|---|---|
Modellen en emergent gedrag |
Casus kiezen en onderzoeksvraag formuleren |
|
Conceptueel model maken |
Conceptueel model ontwerpen met canvas |
|
NetLogo programmeren |
Model implementeren in NetLogo |
|
Emergent gedrag bouwen |
Verificatie tijdens implementatie |
|
Experimenteren en data |
Systematisch experimenteren met BehaviorSpace |
|
Validatie en rapportage |
Valideren en IMRAD-verslag schrijven |
Werkvorm#
Je werkt alleen of met z’n tweeën aan deze opdracht. Kies een casus uit Casussen voor de eindopdracht of bedenk zelf een onderwerp (overleg dit dan eerst met de docent).
Deel 1: Casus en onderzoeksvraag#
Zie Modellen en emergent gedrag voor de achtergrond bij modellen en emergent gedrag.
Wat ga je onderzoeken?#
Beschrijf helder wat je gaat modelleren en waarom. Beantwoord de volgende vragen:
a. Context: Wat weet je al van dit fenomeen? Voer eventueel literatuuronderzoek uit. Welke factoren spelen een rol?
b. Afbakening: Welk deel van het fenomeen wil je modelleren? Wat laat je bewust buiten beschouwing en waarom?
c. Onderzoeksvraag: Wat wil je te weten komen met je model? Formuleer een concrete, beantwoordbare onderzoeksvraag.
Voorbeeld onderzoeksvraag
“Hoe beïnvloedt het aantal uitgangen en de breedte van de uitgangen de evacuatietijd van een gebouw met 500 personen?”
Deze vraag is concreet (aantal uitgangen, breedte, evacuatietijd), meetbaar (tijd in seconden) en gericht op een specifiek scenario (gebouw, 500 personen).
Deel 2: Conceptueel model#
Zie Van fenomeen naar regels (conceptueel ABM) voor uitleg over het conceptueel canvas.
Het canvas invullen#
Ontwerp je model systematisch met behulp van het 9-velden canvas dat je in hoofdstuk 2 hebt leerd kennen:
Agents: Welke soorten agents zijn er? Wat zijn hun eigenschappen?
Omgeving: Hoe ziet de wereld eruit? Zijn er omgevingsagents (patches)?
Gedrag: Wat doen agents op elk moment (elke tick)?
Interacties: Hoe beïnvloeden agents elkaar en de omgeving?
Parameters: Welke waarden kun je aanpassen (sliders, switches)?
Initialisatie: Hoe ziet de beginsituatie eruit?
Inputs: Welke externe gegevens of instellingen heb je nodig?
Outputs: Wat meet en visualiseer je?
Tijd: Wat gebeurt er elke tick en in welke volgorde?
Belangrijk: Onderbouw je keuzes! Leg uit waarom je bepaalde eigenschappen wel of niet meeneemt.
Voorbeeld onderbouwing
“De schapen kunnen zich voortplanten. Als twee schapen elkaar tegenkomen, dan is er een kans van 20% dat er een nieuw schaap ontstaat. We hebben besloten om het geslacht van de schapen niet te modelleren omdat dat in dit geval niet relevant is voor de populatiedynamiek die we willen onderzoeken.”
PO-mijlpaal uit hoofdstuk 2#
Gebruik de checklist uit de PO-mijlpaal van Van fenomeen naar regels (conceptueel ABM) om te controleren of je conceptuele model compleet is.
Deel 3: Implementatie in NetLogo#
Zie NetLogo basis: wereld, patches, turtles en Emergent gedrag bouwen: mieren of Mexican wave voor NetLogo-programmering en verificatie.
Van ontwerp naar code#
Beschrijf eerst in detail (eventueel met pseudocode) hoe je setup- en go-procedures eruit komen te zien:
Welke agents creëer je in
setup?Welke eigenschappen stel je in?
Wat gebeurt er in
go, en in welke volgorde?
Stapsgewijs implementeren#
Bouw je model incrementeel op:
Begin met een minimale versie (bijvoorbeeld: alleen agents plaatsen)
Voeg stap voor stap gedrag toe
Test na elke toevoeging of het werkt zoals verwacht (verificatie!)
Gebruik
print-statements of monitors om gedrag te controleren
Verificatie tijdens implementeren
Ga niet te snel! Als je te veel code in één keer schrijft, is het moeilijk om fouten te vinden. Test regelmatig met kleine experimenten of je code doet wat je verwacht. Dit is verificatie: controleren of de code correct is.
PO-mijlpaal uit hoofdstukken 3 en 4#
Gebruik de checklists uit NetLogo basis: wereld, patches, turtles en Emergent gedrag bouwen: mieren of Mexican wave om te controleren of je implementatie compleet en correct is.
Deel 4: Systematisch experimenteren#
Zie Experimenteren en data verzamelen voor BehaviorSpace en data-analyse.
Experiment opzetten#
Gebruik BehaviorSpace om systematisch te experimenteren:
Bepaal je onafhankelijke variabelen: Welke parameters ga je variëren? Welke waarden neem je?
Bepaal je afhankelijke variabelen: Wat ga je meten? Hoe registreer je dit in NetLogo?
Herhalingen: Hoeveel runs doe je per parameterwaarde? (Meestal minimaal 10-20 voor betrouwbare resultaten)
Stopcriterium: Wanneer stopt een run? (Na x ticks, of bij een bepaalde conditie?)
Voorbeeld experimentopzet
Onderzoeksvraag: Hoe beïnvloedt het aantal predators de stabiliteit van de schaapspopulatie?
Onafhankelijke variabele: aantal-predators (variërend van 0 tot 10 in stappen van 2)
Afhankelijke variabele: standaarddeviatie van aantal schapen over de laatste 100 ticks
Herhalingen: 20 runs per waarde
Stopcriterium: 500 ticks
Data analyseren#
Verwerk je BehaviorSpace-resultaten:
Importeer data in een spreadsheet of Python
Maak grafieken die je resultaten helder tonen
Analyseer patronen: Wat zie je? Zijn er trends, drempelwaarden, of onverwachte effecten?
PO-mijlpaal uit hoofdstuk 5#
Gebruik de checklist uit Experimenteren en data verzamelen om te controleren of je experiment en analyse compleet zijn.
Deel 5: Validatie#
Zie Onderzoek doen: verificatie, validatie en verslag voor validatietechnieken.
Micro- en macrovalidatie#
Controleer of je model realistisch is:
a. Microvalidatie: Komt het gedrag van individuele agents overeen met de werkelijkheid?
Doen schapen realistisch wat echte schapen doen?
Als er verschillen zijn, zijn die relevant voor je onderzoeksvraag?
b. Macrovalidatie: Komt het gedrag van het systeem als geheel overeen met de werkelijkheid?
Zie je patronen die je ook in de echte wereld ziet?
Zijn de uitkomsten in de buurt van bekende waarden of observaties?
Als validatie niet perfect is
Een model hoeft niet perfect de werkelijkheid te weerspiegelen. Belangrijk is dat je:
Bewust bent van de verschillen
Kunt beredeneren of deze verschillen invloed hebben op je onderzoeksvraag
Dit expliciet benoemt in je verslag
PO-mijlpaal uit hoofdstuk 6#
Gebruik de validatiechecklist uit Onderzoek doen: verificatie, validatie en verslag om je validatie compleet te maken.
Deel 6: Conclusie en reflectie#
Onderzoeksvraag beantwoorden#
Geef een helder antwoord op je onderzoeksvraag:
Wat zijn je belangrijkste bevindingen?
Wat zeggen je data hierover?
Zijn er verassende resultaten?
Reflectie op het proces#
Reflecteer kritisch op je werk:
a. Wat ging goed? Wat kon beter?
Waar ben je tevreden over?
Waar liep je tegenaan?
b. Modelaannames heroverwegen
Welke aannames heb je gemaakt?
Zou je die nu anders doen?
Waarom wel/niet?
c. Wishlist voor volgende versie
Wat zou je willen toevoegen?
Wat zou je willen verwijderen of veranderen?
Waarom zou dat het model verbeteren?
Het verslag: IMRAD-structuur#
Je eindopdracht lever je in als een wetenschappelijk verslag volgens de IMRAD-structuur die je in Onderzoek doen: verificatie, validatie en verslag hebt geleerd:
Introduction: Casus, context, onderzoeksvraag (Deel 1)
Method: Conceptueel model, implementatie, experimentopzet (Deel 2, 3, 4)
Results: Data en grafieken uit je experimenten (Deel 4)
Analysis: Interpretatie van resultaten (Deel 4)
Discussion: Validatie, beperkingen, reflectie (Deel 5, 6)
Conclusion: Antwoord op onderzoeksvraag (Deel 6)
Gebruik de IMRAD-template en checklist uit Onderzoek doen: verificatie, validatie en verslag om je verslag te structureren.
Checklist eindopdracht#
Controleer voor inleveren of je alles hebt:
Deel 1: Casus en onderzoeksvraag#
Context en achtergrondonderzoek beschreven
Afbakening: duidelijk wat wel/niet wordt gemodelleerd
Concrete, beantwoordbare onderzoeksvraag geformuleerd
Bronnen vermeld als je literatuuronderzoek hebt gedaan
Deel 2: Conceptueel model#
9-velden canvas volledig ingevuld
Agents en hun eigenschappen beschreven
Omgeving beschreven (patches, topologie)
Gedrag per agent-type uitgewerkt
Interacties tussen agents en omgeving beschreven
Parameters en hun waarden benoemd
Initialisatie (setup) beschreven
Inputs en outputs gespecificeerd
Tijdverloop (wat gebeurt elke tick) uitgelegd
Alle keuzes onderbouwd (waarom wel/niet meenemen?)
Deel 3: Implementatie#
Pseudocode of gedetailleerde beschrijving van
setupengoNetLogo-code geschreven en werkend
Code is overzichtelijk en voorzien van commentaar
Verificatiestappen beschreven in verslag
Model doet wat het zou moeten doen (geen bugs)
Deel 4: Experimenteren#
BehaviorSpace-experiment opgezet
Onafhankelijke variabelen benoemd met bereik en stapgrootte
Afhankelijke variabelen benoemd (wat wordt gemeten?)
Voldoende herhalingen uitgevoerd (≥10-20 runs)
Stopcriterium vastgesteld
Data geëxporteerd en geanalyseerd
Grafieken gemaakt die resultaten helder tonen
Patronen in data beschreven en geïnterpreteerd
Deel 5: Validatie#
Microvalidatie: gedrag agents vergeleken met werkelijkheid
Macrovalidatie: systeemgedrag vergeleken met werkelijkheid
Verschillen benoemd en besproken
Relevantie van verschillen voor onderzoeksvraag beargumenteerd
Beperkingen van model expliciet genoemd
Deel 6: Conclusie en reflectie#
Onderzoeksvraag beantwoord met onderbouwing uit resultaten
Belangrijkste bevindingen samengevat
Reflectie op proces: wat ging goed/beter?
Modelaannames heroverwogen
Wishlist voor volgende versie gemaakt
Verslag (IMRAD)#
Introduction: context, onderzoeksvraag, relevantie
Method: conceptueel model, implementatie, experiment
Results: data en grafieken
Analysis: interpretatie van resultaten
Discussion: validatie, beperkingen, reflectie
Conclusion: antwoord op onderzoeksvraag
Bronnen vermeld (websites, literatuur, externe data)
Inhoudsopgave aanwezig
Paginanummering aanwezig
Kopteksten gebruikt voor structuur
Inleveren#
Verslag als Word- of PDF-document
NetLogo-bestand (.nlogo) van je model
Eventuele aanvullende bestanden (databestanden, grafieken)
Inleveren#
Lever de volgende bestanden in:
Verslag in Word of PDF met:
IMRAD-structuur
Inhoudsopgave
Paginanummering
Bronvermelding
NetLogo-bestand (.nlogo) van je werkende model
Eventuele aanvullende bestanden zoals:
Ruwe data uit BehaviorSpace (CSV)
Grafieken als losse bestanden
Andere relevante documenten
Beoordeling#
Deze eindopdracht wordt beoordeeld aan de hand van een rubric. Een rubric is een manier om een grotere, praktische opdracht te beoordelen aan de hand van criteria.
Je kunt maximaal 40 punten scoren, wat overeenkomt met een 10. Met een score van 20 punten heb je een 5,5.
De rubric beoordeelt onder andere:
Onderzoeksvraag en afbakening (is de vraag concreet en beantwoordbaar?)
Conceptueel model (is het canvas volledig en zijn keuzes onderbouwd?)
Implementatie (werkt de code, is deze overzichtelijk?)
Experimenteren (is het experiment systematisch opgezet?)
Data-analyse (zijn grafieken helder en is de interpretatie correct?)
Validatie (is kritisch gekeken naar realisme van het model?)
Verslag (is de structuur helder en de taal wetenschappelijk?)
Reflectie (is kritisch nagedacht over proces en model?)
Heb je vragen over de beoordeling? Vraag de docent naar het volledige beoordelingsmodel.
Tot slot#
Deze eindopdracht is het moment waarop je laat zien dat je agent-based modelling beheerst: van onderzoeksvraag tot werkend model, van experiment tot wetenschappelijk verslag. Veel succes!