DatalogiForAlle / AgentsPy

Agent-based simulation for education in Python
GNU General Public License v3.0
5 stars 0 forks source link

Udvid epidemi-model, så agenter forsøger at holde afstand #11

Closed dybber closed 4 years ago

dybber commented 4 years ago

De skal ikke garantere afstand, men bare forsøge at gå i en retning, hvor de regner med mindst sandsynligt at støde på andre agenter.

JensKanstrupLarsen commented 4 years ago

Alle agenter i epidemi-modellen undviger nu syge agenter (syge agenter undviger også andre syge agenter). Det er dog ikke helt fejlfrit, da afstandsberegningen ikke kan ske helt korrekt med den torodiale simulations-flade (så de registrerer f.eks. ikke en syg agent, der står tæt på den anden side af simulations-fladen).

dybber commented 4 years ago

Det er lidt kringlet skrevet, så jeg genåbner lige med nogle kommentarer til hvordan vi kan gøre det lettere at forstå.

Jeg prøver først lige at forklare hvordan jeg forstår koden til at holde afstand, her i epidemic.py: https://github.com/DatalogiForAlle/pyagents/blob/master/epidemic.py#L32

For at holde afstand gør en agent følgende:

Feedback:

dybber commented 4 years ago

Måske skal hele beregningen af "average_angle" egentlig være sin selvstændige funktion på den måde kan du skrive det sådan:

JensKanstrupLarsen commented 4 years ago

Jeg er enig i at der burde være en direction_to eller angle_to, jeg overvejede det faktisk, da jeg sad og arbejdede på det, men det endte så med at blive en smule "hacket" alligevel.

infection fungerer ganske rigtigt som en tæller, der bestemmer i hvor mange ticks endnu at en agent er syg. Man kunne selvfølgelig have både en boolean og en counter, men jeg føler godt, at man kan lave det på denne her måde, uden, at det bliver for kringlet.

JensKanstrupLarsen commented 4 years ago

Har skubbet nogle ændringer til epidemic.py baseret på feedback.