BSc KICursus Natuur & Berekening 2025-26

Opdracht 1: Larger than Life

Inleiding

Netlogo screenshot Larger than Life.
Fig. 1: Netlogo screenshot Larger than Life.

Larger than Life is een familie van cellulaire automaten waarbij cellen een grotere omgeving bezitten dan bij de Conways's game of life (= de standaard GoL) het geval is. Verder zijn de regels hetzelfde. Larger than Life kan, afhankelijk van parameterinstellingen, een interessante dynamiek opleveren. Larger than Life kan worden gezien als de voorloper van Real Life en Smooth Life.

Opdracht

Programmeer Larger than Life, en ontdek interessante parameter-instellingen.

Werking

Parameters

De parameters en hun bereik nog eens een keer samengevat. De volgorde is belangrijk.

MAX-PXCORMaximale x-coordinaat van patch-veld. Er wordt aangenomen dat het veld symmetrisch is, dus MIN-PXCOR = -MAX-PXCOR.
MAX-PYCORMaximale Y-coordinaat van patch-veld. Er wordt aangenomen dat het veld symmetrisch is.
MAX-AGEMaximale leeftijd.
RADIUSStraal van de omgeving.
DENSITYBezettingsgraad van levende cellen bij aanvang simulatie, in procenten (dus 0 ≤ DENSITY ≤ 100).
MIN-BIRTHZie boven.
MAX-BIRTHZie boven.
MIN-STAYZie boven.
MAX-STAYZie boven.

Randvoorwaarden

Voorbeeld van een omgeving, met cellen in straal 0 wit, cellen in straal 1 geel, cellen in straal 3 oranje, cellen in straal 4 magenta, cellen in straal 5 violet, en cellen in straal 6 blauw.
Fig. 2: Voorbeeld van een omgeving, met cellen in straal 0 wit, cellen in straal 1 geel, cellen in straal 2 oranje, cellen in straal 3 rood, cellen in straal 4 magenta, cellen in straal 5 violet, en cellen in straal 6 blauw.

Hier staat wat moet.* Bij afwijking van randvoorwaarden worden punten in mindering gebracht. Het voldoen aan de randvoorwaarden levert in ieder geval het cijfer zes op. Om een cijfer hoger dan een zes te halen dien je één of meer extra features te hebben geïmplementeerd.

  1. Kleur. Levende cellen bezitten een kleur die op één of andere manier de leeftijd weerspiegelt, jonge cellen zijn bijvoorbeeld erg licht, en oudere cellen zijn erg donker. Andere kleurcodes kunnen ook. Raadpleeg Netlogo's sectie over kleuren, en Netlogo's sectie over kleurprimitieven.
  2. Exporteren parameters. De negen parameters moeten makkelijk als een rij van negen getallen kunnen worden afgedrukt. De volgorde is daarbij essentieel. Voorbeeld: 60 60 12 6 30 31 42 38 46 betekent: max-pxcor = 60, max-pycor = 60, max-age = 12, radius = 6, density = 30, etc. Het nut hiervan is dat parameterinstellingen makkelijk aan iemand anders zijn door te geven.
  3. Importeren parameters. De parameters moeten makkelijk zijn te importeren. (Gebruik daarvoor indien nodig de aanwijzingen.)

Extra

Extra punten kunnen worden verdient door het aanbrengen van één of meer van de volgende features.

  1. Automatische herstart bij extinctie. Een maatregel die ervoor zorgt dat de simulatie blijft runnen, en bijvoorbeeld als demo kan worden gebruikt. Laat je de simulatie elke keer met dezelfde parameters herstarten? Zo nee, met welke parameters dan wel en waarom?.
  2. Bijhouden van beste parametersettings. Een systeem, in welke vorm dan ook, om de meest interessante parameter settings snel op te slaan, evt. samen met beschrijving van gedrag.
  3. Variatie op omgevingsdefinitie. Experimenteer met vierkante omgevingen, of met een gedifferentieerde weging van buren, bv. door
    sum [ age / ((distance myself) ^ 2) ] of ...
    
    Zorg wel wel voor dat dergelijke uitbreidingen met een switch ook weer makkelijk uit te zetten zijn.
  4. Andere uitbreidingen.

Aanwijzingen

  1. Importeren parameters. Het makkelijk kunnen importeren van parameters is een randvoorwaarde. Dat kan bijvoorbeeld als volgt. Creëer een inputwidget genaamd “parameters,” en een button, genaamd “import-parameters”. Gebruik verder
    to import-parameters
      run (word "set-parameters " parameters)
    end
    
    to set-parameters [ x y n r d mib mab mis mas ]
      resize-world    (0 - x) x (0 - y) y
      set-patch-size  300.0 / y
      set max-age     n
      set radius      r
      set density     d
      set min-birth   mib
      set max-birth   mab
      set min-stay    mis
      set max-stay    mas
    end
    
  2. Bewaren van interessante parameterinstellingen. Interessante parameterinstellingen kunnen worden vermeld in de documentatie. Super-interessante parameterinstellingen kun je wegstoppen onder een speciale button. Als deze button wordt ingedrukt worden meteen alle bijbehorende parameters ingesteld. Het is sympathiek om bij een interessante parameterinstelling te vermelden waarom deze parameterinstelling speciaal is en wat er gebeurt,---al is het vaak moeilijk abstract gedrag van een cellulaire automaat te omschrijven. Het geven van een feitelijke omschrijving van het zichtbare gedrag kan natuurlijk altijd.

Nakijkmodel

Het volgende nakijkmodel zal worden gebruikt.

   ------------------------------------------------------

    1. kwaliteit GUI
    2. werkt
    3. werkt correct
    4. zinvol kleurschema
    5. efficiëntie (denk aan het definiëren en uitlezen van omgevingen)
    6. code-organisatie
    7. export / import parameters
    8. documentatie (in code, in tab, *.png)

   ----- cijfer acht ------------------------------------

    9. extra feature
   10. "

   ----- cijfer tien ------------------------------------

Wijzigingen

04 maart 2019
  • De parametervolgorde in de functie to set-parameters onder het kopje “Aanwijzingen” is in overeenstemming gebracht met de parametervolgorde zoals die in de rest van het document wordt gebruikt.
  • Appendix: omgevingen

    Spelen met de Netlogo app Gauss' circle problem kan helpen te begrijpen dat niet zo maar omgevingen met elke gewenste oppervlakte kunnen worden gemaakt. [Als klikken niet resulteert in een download, probeer dan rechts-klik of <Ctrl>-klik en kies vervolgens Save of Download.] Het gegeven dat niet zo maar omgevingen met elke gewenste oppervlakte kunnen worden gemaakt heeft te maken met Gauss' cirkelprobleem. Dit probleem houdt zich bezig met de vraag hoeveel roosterpunten er binnen een cirkel met straal r liggen. De eerste geslaagde poging tot een oplossing kwam van Carl Friedrich Gauss, vandaar de naam.

    Op een iets andere manier illustreert onderstaand overzicht hoe verschillende stralen verschillende omgevingen voortbrengen. Cellen binnen straal r = 0 + ε zijn wit, cellen binnen straal r = 1 + ε zijn geel, cellen binnen straal r = 2 + ε zijn oranje, cellen in straal r = 3 + ε zijn rood, etc. De verschillen zijn het best te zien in de contouren.

    ε = 0.00 ε = 0.05 ε = 0.10 ε = 0.15 ε = 0.20
    ε = 0.25 ε = 0.30 ε = 0.35 ε = 0.40 ε = 0.45
    ε = 0.50 ε = 0.55 ε = 0.60 ε = 0.65 ε = 0.70
    ε = 0.75 ε = 0.80 ε = 0.85 ε = 0.90 ε = 0.95
    Fig. 3: Cellen binnen straal 0+ε zijn wit, cellen binnen straal 1+ε zijn geel, cellen binnen straal 2+ε zijn oranje, cellen binnen straal 3+ε zijn rood, etc.

    Appendix: twee voorbeeldanimaties


    *Naast de algemene randvoorwaarden voor de programmeeropdrachten en de algemene randvoorwaarden voor de programmeeropdrachten die specifiek in Netlogo worden uitgevoerd. Zie de pagina met clausules.


    Laatst gewijzigd op woensdag 13 november 2024, om 15:02 uur Auteur(s): Gerard Vreeswijk Translate to en, ru, or tr