Wa-Tor

Un oceano a ciambella

Implementazione del modello semplice “preda predatore”

Dopo aver parlato di Voters ora mi va di spendere un po’ di tempo per parlare di Wa-tor che è un programma quasi analogo ma che implementa un modello biologico diverso: il modello Lotka-Volterra.

Nel 1984 A.K. Dewdney pubblicò “Sharks and fish wage an ecological war on the toroidal planet Wa-Tor”  (Scientific American / Dicembre 1984) che è stato uno dei primi automi cellulari formalizzati.

In questo caso si tratta di automi cellulari bi-dimensionali, in quanto si muovono ed interagiscono fra loro su una superficie bidimensionale, ma ne esistono anche mono dimensionali ( che si muovono su di una linea ), tridimensionali ( che si muovono in un cubo ) ma anche 4-dimensionali e superiori. Anche Wator può essere realizzato in 3,4,5 o più dimensioni, computazionalmente è abbastanza semplice, ma per rendere comprensibile l’argomento anche ai profani ci limitiamo a 2 dimensioni.

Come Voters anche questo modello si basa su un “mondo” quadrato piegato a ciambella (toro), in modo da eliminare gli effetti dei bordi. Solo che questa volta immaginiamo che questo mondo sia un oceano illimitato ( ovvero privo di limiti ) ma non infinito ( in quanto diviso in un numero ben preciso di caselle).

In inglese questo modello è stato chiamato “Water Torus”  e da qui il nome “Wa-Tor” o “Wator

immagine dell'oceano a ciambella

Le regole che sono alla base di questa simulazione sono le seguenti:

  • Ogni casella contiene una quantità inesauribile di placton e  può contenere ( ma non è detto ) un “pesce” oppure uno “squalo”.
  • Il pesce si nutre del placton e di sposta a caso da una casella all’altra con un movimento di una sola casella per volta.
  • Lo squalo si nutre dei pesci e si sposta nelle caselle adiacenti a dove si trova il pesce.
  • Anche lo squalo si sposta di una sola casella per volta, scegliendola a caso.
  • Un pesce non può occupare una casella dove sta un altro pesce,
  • uno squalo mangia il pesce  che si trova nella casella dove si sposta.
  • Il pesce quando si riproduce si sposta in una casella libera ma lascia la casella dove si trovava, occupata dalla prole.
  • le condizioni iniziali delle posizioni di squali e pesci sono scelte a caso.

I parametri che regolano la simuazione sono:

  • dimensioni della griglia
  • numero dei pesci inizialmente presenti
  • numero degli squali inizialmente presenti
  • tempo di riproduzione dei pesci
  • tempo di riproduzione degli squali
  • tempo di morte degli squali se non mangiano

Un parametro aggiuntivo può essere quello in cui lo squalo “fiuti” il pesce che non si trova nelle sue adiacenze e lo va a cercare.

Per adiacenze si può intendere in insieme di celle messe come segue:

Intorno 3*3 di Moore

Intorno 3*3 di Moore

ma nessuno vieta di usare intorni diversi tipo questo:

intorno di Von Neuman 3*3 ( in rosso ) 5*5 (rosa e rosso assieme )

Ognuno di questi ha dei vantaggi e degli svantaggi, ma ne parleremo altrove. Per ora basti sapere che nella maggior parte delle simulazioni viene usato l’intorno di Moore ( anche se non sempre in 3*3 ma anche in 9*9 )

Formalmente questo è molto semplice  sia da realizzare che da analizzare: se ne possono trovare svariate realizzazioni in rete. Una che è “giocabile” senza scaricare in nulla è quella realizzata da Klaus Wernicke che trovate a questa Url:

http://www.kanitrino.de/en/Page/Wator1.html

L’interfaccia del programma è divisa in 3 parti:

  • la colonna di destra contiente i parametri impostabili per la simulazione
  • la colonna di sinistra è divisa in 2 parti
    • la parte superiore da una rappresentazione grafica della griglia, dove sono visualizzate le posizioni dei pesci (blu) e degli squali (verdi)
    • la parte inferiore contiene il grafico delle quantità dei pesci e degli squali momento per momento

In questa implementazione del programma non possiamo intervenire sul numero dei pesci e degli squali inizialmente presenti. Proviamo ad eseguire qualche simulazione. Andiamo nella pagina che ho indicato sopra, impostiamo i parametri seguenti

  • tempo di riproduzione dei pesci = 10 giorni
  • tempo di riproduzione degli squali = 10 giorni
  • tempo di morte degli squali se non mangiano = 5 giorni

Nota bene: l’unità di tempo sebbene chiamata “giorno” è puramente fittizia!

e premiamo “start” per avviare la simulazione.

Cosa accade ?

All’inizio gli squali descrescono rapidamente ( perchè muoiono di fame – le condizioni iniziali delle posizioni di squali e pesci sono scelte a caso ) ed altrettanto rapidamente i pesci aumentano di numero fino a riempire quasi completamente ogni area disponibile, a causa del numero ridotto di predatori.

Finita questa fase di “transitorio” o “transiente” si entra nella fase a “regime“. In questa fase si vede che, poiché i pesci abbondano anche gli squali aumentano. La decrescita del numero dei pesci non avviene in modo lineare, ma presentando delle oscillazioni dovute al fatto che “ogni tanto” nascono dei nuovi pesci. Facendo scorrere ancora il tempo si vede che la decrescita del numero dei pesci ( e il conseguente aumento del numero degli squali ) si assesta – sempre con delle oscillazioni di breve periodo – attorno ad un valore di equilibrio.

Si nota che lentamente le oscillazioni di breve periodo tendono a sparire. Si potrebbe pensare che il sistema pesci/squali raggiunga a breve un equilibrio. Ma non è così.

Compaiono delle oscillazioni a lungo periodo.

Se miglioriamo il metodo di caccia dello squalo, dicendo al programma che lo squalo può “fiutare” il pesce, e così lo squalo non perde tempo a girare a vuoto, ma si dirige immediatamente sullo branco di pesci più vicino, si vede che il comportamento del sistema cambia.

Il transitorio, in questo caso è caratterizzato da una salita caratterizzata da oscillazioni di breve periodo fino ad un massimo che e’ inferiore  a quello del caso precedente per poi scendere – sempre oscillando – fino a quasi zero.

In una decina di cicli di questo genere le oscillazioni di breve periodo spariscono completamente mentre quelle di lungo periodo rimangono. Più passa il tempo e meno ampie sono le oscillazioni

Una prima conclusione che possiamo trarre da queste 2 simulazioni è la seguente:

Il sistema “preda/predatore” in queste condizioni iniziali presenta sempre un equilibrio “dinamico”, oscillante attorno ad un valore medio.

In una prima istanza parrebbe che il sistema oscilli attorno ad cui il sistema tende “in modo asintotico” ( ovvero avvicinandosi sempre più ma senza raggiungere il valore L ), come mostrato dalla figura seguente.

ma è così veramente  ? Lo vedremo in seguito.

Ricordiamo che con voters all’inizio, pensavamo che il comportamento sul lungo periodo fosse in certo modo, ma questo era dovuto a vari motivi, fra i quali l’errata generazione dei numeri casuali e la poca potenza dei computer usati in quel periodo per compiere le simulazioni.

Annunci

6 pensieri su “Wa-Tor

  1. Pingback: Wa-Tor 2 | Num3ri v 2.0

  2. Pingback: Wa2-tor ( a volte ritornano ) | Num3ri v 2.0

  3. Pingback: Pochi ma Buoni ? | Num3ri v 2.0

  4. Pingback: A che gioco giochiamo ? | Num3ri v 2.0

  5. Pingback: Le Regole del Gioco | Num3ri v 2.0

  6. Pingback: Turing e le Zebre | Num3ri v 2.0

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...