Overblik over API'et -------------------- ``AgentsPy`` er et bibliotek, der tilbyder værktøjer, som kan bruges til agent-baseret modellering. Agent-baseret modellering fungerer ved først at opbygge et miljø med agenter, der har en prædefineret opførsel, og så simulere hele systemet baseret på agenternes opførsel. Modellen kan så vise, hvordan agenterne interagerer med hinanden, og systemet som helhed. I ``AgentsPy`` kaldes en agent passende for ``Agent``, et "felt" i miljøet kaldes en ``Tile``, og miljøet som helhed kaldes en ``Model``. For at give agenterne deres prædefinerede opførsel, skal man kode dem. Dette gøres typisk ved først at definere en klasse, som nedarver fra ``Agent``, for eksempel ``Person`` i epidemimodellen. Heri kan man så definere en ``step`` funktion, der beskriver, hvordan agenten opfører sig i et enkelt simulationstrin. Et eksempel kunne være:: def step(model): self.forward() hvilket rykker agenten et skridt fremad ved hver trin. Man kan så lave en ``model_step`` funktion, der simulerer alle agenterne i en model:: def model_step(model): for a in model.agents: a.step(model) Miljøet ændres oftest som en direkte konsekvens af agenternes opførsel. Man kan for eksempel vælge at farve de felter, en agent har besøgt, røde:: def step(model): self.forward() t = self.current_tile() t.color (255, 0, 0) ``AgentsPy`` tilbyder også muligheden for at justere på simulationen undervejs. Man kan for eksempel bruge en knap til at starte og stoppe simulationen:: model.add_toggle_button("Go", model_step) De funktioner, der kan bruges til at tilføje elementer til kontrolpanelet, er: * ``add_button``: Tilføjer en knap, der kan klikkes på gentagne gange. * ``add_toggle_button``: Tilføjer en knap, der kan slås til og fra. * ``add_slider``: Tilføjer en bevægelig knap, der kan bruges til at justere værdien af en numerisk variabel i modellen. * ``add_checkbox``: Tilføjer et afkrydsningsfelt, der kan bruges til at justere værdien af en sandhedsvariabel i modellen. Ud over funktioner til kontrolpanelet, er der også funktioner som tilføjer forskellige slags grafer til modellen, som løbende viser data, herunder: * ``line_chart``: Tilføjer en graf med en eller flere linjer, der beskriver modellens variable over tid. * ``bar_chart``: Tilføjer et søjlediagram, der viser værdien af modellens variable i øjeblikket. * ``histogram``: Tilføjer et histogram, der viser, hvordan en bestemt variabel for alle agenterne fordeler sig i givne intervaller. * ``agent_line_chart``: Tilføjer en graf med en linje for hver agent, der viser værdien af denne variabel over tid. * ``monitor``: Tilføjer et lille felt til kontrolpanelet, der viser værdien for en enkelt variabel i modellen.