1
Fork 0
mirror of https://github.com/Steffo99/turtle007.git synced 2024-11-24 22:14:19 +00:00
Una serie di progetti NetLogo realizzati per l'esame di Apprendimento ed evoluzione in sistemi artificiali
Find a file
2020-06-17 18:17:02 +02:00
Progetto.nlogo Importa progetto dal vecchio repository 2020-05-05 17:38:47 +02:00
README.md Update README.md 2020-06-17 18:17:02 +02:00

2-ant-apocalypse

Questo progetto estende il progetto 2-base tenendo traccia del cibo accumulato dalle formiche nel loro formicaio e facendole morire lentamente nel caso che esso finisca.

Inoltre, fa ricomparire il cibo nell'ambiente a intervalli irregolari di tempo.

Aggiunte / Modifiche

Aggiunto: t-set-hunger

+ to t-set-hunger
+   if random-float 100 < hunger-increase-pct[
+   set hunger hunger + hunger-per-tick
+   ]
+ end

Questa funzione aumenta la fame della formica casualmente.

Aggiunto: t-try-eat-food

+ to t-try-eat-food
+   if carrying-food = 1[
+     set hunger 0
+     set carrying-food 0
+   ]
+   if t-is-over-nest and food-in-nest > 0[
+     set hunger 0
+     set food-in-nest food-in-nest - 1]
+ end

Questa funzione permette alla formica di provare a consumare cibo. Se si trova sul nido, riduce di 1 la scorta del magazzino, se ne sta trasportando mangia quello.

Modificato: t-work

to t-work
+   ifelse carrying-food = 1 or (hunger >= hunger-threshold and enable-hunger)[
+     t-rotate-nest
+     if carrying-food = 1[
+       t-add-pheromone]
+   ][
+     t-rotate-pheromone
+   ]
   left random random-angle
   right random random-angle
   fd 1
   t-try-pick-up-food
   t-try-drop-food
+  t-set-hunger
+  if hunger >= hunger-threshold and enable-hunger [
+    t-try-eat-food
+    if hunger >= hunger-max [
+      die]
+   ]
end

Se la formica è affamata (e la fame è attiva), la formica si dirige verso il nido per mangiare.
Se la fame supera una certa soglia prova a mangiare il cibo e se non riesce a farlo prima che superi un valore massimo, la formica muore.

Aggiunto: p-respawn-food

+to p-respawn-food
+  if random-float 100 < food-respawn-pct[
+    setup-food
+  ]
+ end

Questa funzione permette al cibo di ricomparire con una certa probabilità.

Modificato: go

to go
   tick
   ask ants [t-work]
   ask patches [p-evaporate-pheromone]
   diffuse pheromone (diffusion-pct / 100)
   ask patches [p-paint-patch]
   ask ants [t-paint-ant]
+  if enable-food-respawn and ticks mod food-ticks = 0[
+    p-respawn-food
  ]
end

Il go ora consente di rigenerare il cibo.

Attivazione / Disattivazione

Le feature di questo branch possono venire abilitate o disabilitate con gli switch enable-hunger e enable-food-respawn.

Ambiente

Le modifiche in questo ambito sono le seguenti:

  • Il nido tiene conto di quanto cibo vi venga depositato.
  • Il cibo ha la possibilità di ricomparire dopo un certo numero di tick.
    • Il numero di tick può essere modificato dall'utente interagendo con il controllo food-ticks.
    • La probabilità può essere modificata dall'utente con lo slider food-respawn-pct.

Formiche

Le modifiche in questo ambito sono le seguenti:

  • Ad ogni tick, le formiche hanno una certa probabilità di aumentare il loro valore hunger (che parte da 0) di una certa quantità.
    • La probabilità può essere alterata dall'utente interagendo con lo slider hunger-increase-pct.
    • La quantità può essere modificata dall'utente interagendo con il controllo hunger-per-tick.
  • Nel caso in cui il valore hunger della formica superi una certa soglia (hunger-threshold), la formica si mette alla ricerca del cibo per sopravvivere. Se il valore hunger supera il parametro hunger-max, la formica muore.
    • Se la formica sta trasportando cibo, mangia il cibo che sta trasportando.
    • Se la formica non sta trasportando cibo, si reca al nest sperando di trovarne lì.