NetLogo en algoritme 0

  • Code

Dit is een voor de meesten saai, esoterisch betoog. De categorie Code zou een waarschuwing moeten zijn. Esoterisch betekent bestemd voor ingewijden. Dat is niet de bedoeling. Het is juist bestemd voor wie niet zijn ingewijd in het spelen met NetLogo. Dat is een platform waarop speelgoedwerelden kunnen worden gebouwd, in beweging gebracht en bestudeerd. Dat kan nuttig zijn. Dat kan ook fascinerend zijn. Meneer Sum heeft besloten om een deel van de tijd die vrij komt gedurende de coronacrisis om te zetten in een verslag van zijn poging die crisis te begrijpen door er speelgoedwerelden van de bouwen en hun gedrag te bestuderen. Het idee is dat wie dit leest in staat wordt gesteld zelf die spelen na te doen en te veranderen/verbeteren.

Hoe NetLogo aan de praat krijgen

NetLogo is niet beschikbaar voor Android- of iOS-telefoons of -tablets. Als je een pc hebt met Microsoft Windows als besturingssysteem of Apple OS / X of een Linux-variant kun je NetLogo hier downloaden. Installeer het en noteer waar het uitvoerbare bestand is opgeslagen. Controleer of het opstart en sluit het programma af.

Hoe het voorbeeld (algoritme 0) aan de praat krijgen

Download en bewaar dit bestand als uw persoonlijke kopie van algoritme 0 en geef het de extensie “.nlogo”. Als dit is gebeurd, dubbelklik op die filenaam. Uw NetLogo-software moet deze nu openen en uitvoeren (anders opent u NetLogo zelf en laadt u het bestand handmatig). Bij het openen ziet u de interface. Het heeft een setup-knop. Druk erop. Het heeft ook een go-knop. Druk er ook op. Je zou nu de interface moeten zien.

algorithm-0.netlogo na setup en go

Het interface

Ik vermoed dat je eerste impuls is om te proberen te begrijpen wat het algoritme probeert te vertellen. (Het is een rapport over wat een extreem simpel model van een epidemisch virus dat zich een weg baant door een populatie, ons zou vertellen.) Maar dat is nu niet belangrijk. Wat hier belangrijk is, is om een ​​idee te krijgen hoe het NetLogo-platform individuen ondersteunt bij het formuleren en uitvoeren van dergelijke modellen. Deze focus richt ons oog naar de linkerbovenhoek van de figuur.

Op de eerste regel staan ​​enkele opdrachten die aan het besturingssysteem zijn gericht (in casu: OS / X). Op de tweede regel staan ​​de naam en de locatie van het broncodebestand van het model (onder MS Windows staan ​​de eerste twee regels in omgekeerde volgorde). De derde regel heeft wat we zoeken – de tabbladen: Interface, Info, Code (Interface is momenteel actief). Deze drie vertegenwoordigen de verschillende modi waarin het NetLogo-platform zich opent voor gebruikers. Het tabblad Interface is voor het bekijken van lopende algoritmen, het tabblad Info is voor het vinden en geven van uitleg en het tabblad Code is voor het schrijven en testen van algoritmen.

De interface opent zich voor de persoon die het algoritme probeert te gebruiken voor studie en stelt de gebruiker in staat om verschillende waarden voor parameters op te geven (parameters zijn globale variabelen die vóór de run kunnen worden ingesteld). algoritme-0 heeft drie parameters: generatienummer, incubatietijd en reproductienummer.

Het tabblad Info is voor de modelleur om de gebruiker te informeren over de intenties van het model. Op het moment dat deze tekst wordt geschreven, is het tabblad Info van algoritme-0 leeg. Maar te zijner tijd zal ik het vullen met fragmenten, geoogst uit blogbijdragen uit de categorie Code.

Code

Het tabblad Code is voor de modelleur om algoritme-0-code te ontwerpen, testen en laten werken. De onderstaande afbeelding geeft de inhoud van de code van algoritme-0 als voorbeeld. Voor degenen die nieuw zijn bij NetLogo lijkt dit misschien onzin. Ik geef desondanks een paar hints:

Source snippet of algorithme 0

Er zijn drie secties. De eerste is inleidend en begint met extensions en eindigt voor to setup. Ik gebruik de matrix extensie omdat het helpt om de resultaten af te drukken zoals ik dat wil. De inleidende sectie declareert de globale variabelen. De parameters (die ook globale variabelen zijn) worden impliciet gedeclareerd door ze te benoemen als elementen van de interface en ze daar te modelleren (via de knop die het toevoegen van items ondersteunt. Op die manier heb ik de drie schuifregelaars gemaakt). De laatste sectie beval procedures. Procedures worden geopend met het trefwoord to, end sluit ze af. to setup bereidt voor, to go voert uit en to print-numbers drukt de resultatenn af. to go werkt in cycli. Dit is het hart van het NetLogo platform: het onderteunt zo het denken en modelleren in generaties. Het tellen van de verwerkte cycli gebeurt in de gereserveerde variabele: ticks.