1
Fork 0
mirror of https://github.com/Steffo99/turtle007.git synced 2024-11-21 20:44:20 +00:00

Integra README nel file NetLogo

This commit is contained in:
Steffo 2020-06-08 17:20:01 +02:00
parent d4b1ab7410
commit 35eed557aa
Signed by: steffo
GPG key ID: 896A80F55F7C97F0

View file

@ -1140,41 +1140,124 @@ partner-radius
Number
@#$#@#$#@
## WHAT IS IT?
# `2-evoluzione`
(a general understanding of what the model is trying to show or explain)
Questo progetto estende il progetto [`2-metabolismo`](https://github.com/Steffo99/turtle007/tree/2-metabolismo). In questa versione vengono aggiunti i parametri riproduttivi e i meccanismi di scelta del partner, che portano ad unevoluzione del formicaio nel suo complesso.
## HOW IT WORKS
## Ambiente
(what rules the agents use to create the overall behavior of the model)
### Variabili globali
## HOW TO USE IT
Sono state aggiunte al modello le seguenti variabili globali:
(how to use the model, including a description of each of the items in the Interface tab)
- `reproduction-hunger`, la quantità di `hunger` al di sopra della quale una formica può tentare di riprodursi;
- `reproduction-cost`, la quantità di `hunger` che sarà sottratta alle formiche dopo essersi riprodotte;
- `partner-radius`, la distanza massima a cui una formica può scegliere il suo partner.
## THINGS TO NOTICE
### Comportamento delle formiche
(suggested things for the user to notice while running the model)
Il comportamento delle formiche è stato cambiato nei seguenti modi:
## THINGS TO TRY
#### Modificato: `t-die`
(suggested things for the user to try to do (move sliders, switches, etc.) with the model)
```
to t-die
set ant-deaths ant-deaths + 1
set ants-to-respawn ants-to-respawn + 1
; Die interrompe la funzione!
die
end
```
## EXTENDING THE MODEL
Dopo che sono morte, le formiche non respawnano più.
(suggested things to add or change in the Code tab to make the model more complicated, detailed, accurate, etc.)
#### Modificato: `t-consume-food`
## NETLOGO FEATURES
```
to t-consume-food
set hunger hunger - metabolism
if hunger <= 0 [
t-die
]
if hunger >= reproduction-hunger [
t-hatch
]
end
```
(interesting or unusual features of NetLogo that the model uses, particularly in the Code tab; or where workarounds were needed for missing features)
Se le formiche hanno abbastanza cibo per riprodursi, chiameranno la procedura `t-hatch` descritta in seguito.
## RELATED MODELS
#### Aggiunto: `t-partners`
(models in the NetLogo Models Library and elsewhere which are of related interest)
```
to-report t-partners
report other turtles in-radius partner-radius with [hunger >= reproduction-hunger]
end
```
## CREDITS AND REFERENCES
Nella scelta dei partner, le formiche considerano solo le altre formiche entro `partner-radius` patch di distanza aventi abbastanza `hunger` per riprodursi.
(a reference to the model's URL on the web if it has one, as well as any other necessary credits, citations, and links)
> Nota: La funzione `in-radius` rallenta significativamente il modello all'aumentare delle formiche presenti dall'interno di esso.
>
> È possibile realizzare una versione più efficiente utilizzando:
> ```
> to-report t-partners
> report other turtles-here with [hunger >= reproduction-hunger]
> end
> ```
>
> Ciò però sacrifica la possibilità di decidere il raggio a cui le formiche si possono riprodurre, limitandolo al valore "0" (ovvero, la patch stessa in cui si trova attualmente la formica).
#### Aggiunto: `t-hatch`
```
to t-hatch
let partners t-partners
if any? partners [
let partner item 0 sort-on [hunger] partners
let parents (turtle-set self partner)
ask parents [
set hunger hunger - reproduction-cost
]
hatch-ants 1 [
t-setup-ant
t-inherit parents
]
set ant-hatches ant-hatches + 1
]
end
```
Se le formiche trovano almeno un partner con cui riprodursi, scelgono il partner con il valore di `hunger` più alto e creano una nuova formica, che eredita i valori di `speed` e `metabolism` dei genitori con `t-inherit` (descritta sotto).
### Aggiunto: `t-inherit`
```
to t-inherit [parents]
let top-speed max [speed] of parents
let bottom-speed min [speed] of parents
set speed (bottom-speed + random (top-speed - bottom-speed + 1))
let top-metabolism max [metabolism] of parents
let bottom-metabolism min [metabolism] of parents
set metabolism (bottom-metabolism + random (top-metabolism - bottom-metabolism + 1))
end
```
Le nuove formiche nate prendono come `speed` e `metabolism` un valore casuale tra i valori dei rispettivi parametri posseduti dai genitori.
## Feedback del sistema
In aggiunta ai feedback precedenti, in questo progetto abbiamo nuovi feedback:
- <span style="background-color: lightgreen; color: darkgreen;">**Positivo**: Le formiche con più `hunger` (praticamente la funzione *fitness* del modello), hanno più possibilità di riprodursi e passare i loro parametri ai figli.</span>
- <span style="background-color: lightcoral; color: darkred;">**Negativo**: Il `reproduction-cost` fa diminuire l'`hunger` dei genitori, rendendo più probabile la loro morte (e quindi sostituzione).</spaw>
## Dinamica del sistema
Le formiche con i parametri migliori si riprodurranno più spesso, e passeranno i loro parametri ai loro figli.
*Il sistema tende allottimo*: dopo un certo numero di ticks (~2100 con la configurazione predefinita), le uniche formiche restanti nel sistema saranno quelle con valori ideali per le variabili `speed` e `metabolism`; tutte le altre si saranno **estinte**.
@#$#@#$#@
default
true