area pubblica
home page
chi siamo
come lavoriamo
collabora con noi
progetti
community projects
contatti
feedback
link
wallpapers
area riservata
progetti riservati
message board
gestione sito
webmail
 

Scuola di fumetto e illustrazione
 



Periodo: 1999
Stato di realizzazione: Concluso

Programma di simulazione di vita artificiale scritto in Java.



Team
Coordinatore: Simone Re
Supporto ideologico: Letizia Beriozza, Fabio Bertinelli


Documentazione

13/07/1999

Index

Scopo di questo documento

Con questo documento spero di fornire una panoramica completa anche se sintetica di quello che circonda lo sviluppo del programma.
Qui sono descritte le motivazioni che mi hanno spinto a progettare "World", i concetti che stanno alla base del programma e cosi' via.

Cos'Ŕ la vita artificiale?

La Vita Artificilae e' un campo di studi nato ufficialmente nel 1987 quando si e' svolta la I Conferenza sulla Vita Artificiale.
Tale scienza coinvolge molti aspetti della cultura umana quali la biologia, l'etica e soprattutto per quanto mi riguarda, l'informatica.
Di fatto si cerca di riprodurre con qualche mezzo artificiale (ormai il computer ha sostituito i modelli matematici dai quali e' nato) aspetti e comportamenti di un organismo vivente.
Diversi sono gli scopi della ricerca nella Vita Artificiale, piu' frequentemente si vuole dare una risposta a domande come:
  1. Cos'e' la vita?
  2. Esistono altre forme di vita di natura profondamente diversa da quella che conosciamo?
  3. Cos'e' la realta'?
  4. Esiste un'unica realta' oggettiva?
e fondamentalmente esistono due posizioni di pensiero distinte: la prima e' una tesi "debole", l'altra e' una tesi "forte".

Tesi "debole"

Per quanti sforzi si faccia e' impossibile creare e plasmare una nuova vita (artificiale) in quanto si otterrebbe sempre una simulazione non integrata con la realta' (oggettiva).
Lo scopo di questa corrente di pensiero e' quello di simulare la vita per meglio comprenderne i meccanismi e l'evoluzione.

Tesi "forte"

Cio' che viene creato e' a tutti gli effetti una forma di vita governata da leggi e comportamenti.
Gli "esseri" riprodotti su di un calcolatore sono costituiti infatti da materia ed energia (per quanto non possa sembrare) e devono obbedire a regole che qualcuno (il creatore) ha deciso e che costituiscono il loro stesso istinto e la fisica del loro mondo.


La seconda tesi e' sicuramente la piu' affascinante ed e' quella che mi ha maggiormente colpito spingendomi a sperimentare io stesso una forma di Vita Artificiale.


World versione Beta 2

"World" e' una griglia su cui cresce vegetazione (elettronica) e sulla quale si possono trovare delle rocce.
Tale griglia e' popolata da diverse specie di "esseri" che ho chiamato "E-Ant" (in onore di un grande scrittore di fantascienza) dotate di un DNA (diverso per ogni specie e per ogni individuo) che ne determina le caratteristiche.
Le E-Ant obbediscono a semplici regole:
  • Nascono;
  • Si muovono;
  • Devono mangiare e riprodursi;
  • Muoiono.
Durante la loro vita seguono il loro istinto e obbediscono alla fisica di "World" cioe' le procedure e le funzioni che ho programmato.
Attualmente sto ancora sperimentando e testando il programma cercando di trovare equilibri che possano garantire l'evolversi del mondo (spesso infatti le formiche finivano per morire tutte lasciando il mondo completamente spopolato).


Il programma in dettaglio

Cambiamenti dalla versione precedente
La versione Beta 2 differisce da quella Alfa solamente nella mutazione (vedi piu' avanti): ogni nuova E-Ant (comprese quelle create all'inizio) hanno solamente il 20% di probabilita' di subire una mutazione (un bit complementato nel DNA) contro il 100% della versione Alfa.

La versione Beta 2 differisce da quella Beta solamente per l'eliminazione di alcuni bugs conosciuti.

Il programma si lancia dalla linea di comando attraverso l'interprete Java (java World).
Senza ulteriori parametri viene creato una griglia di dimensioni pari a 34x27 caselle popolata da 5 razze differenti (il numero di individui per razza e' calcolato in base alle dimensioni della griglia); si possono specificare sulla linea di comando le dimensioni della griglia e il numero di razze diverse (max 10).

Es. java World 25 12 7 (25x12 con 7 razze).

Ogni casella della griglia e' divisa in quattro aree dove vengono mostrati gli "oggetti" presenti: in alto a sx viene mostrata la presenza o meno di vegetazione; in basso a sx viene mostrata l'eventuale presenza di una larva(una formica appena nata); nella zona di destra sono mostrati gli occupanti della casella (max 2 nello stesso tempo) che possono essere E-Ant, rocce o carogne (formiche morte).

I dettagli della casella possono essere visualizzati semplicemente cliccando sopra di essa (in una parte libera da occupanti - i.e. sulla vegetazione). Cliccando su di un "oggetto" ne vengono mostrati i dettagli.
Ogni razza e' abbinata ad un colore specifico.

Sulla parte destra della finestra e' presente il pannello di controllo dove si trovano:
  • il conteggio dei giorni e degli anni passati;
  • i tasti di start e stop;
  • il tasto step by step per visualizzare un passaggio per volta;
  • le caselle per settare la dimensione di uno step (giorno per giorno o mossa per mossa di ogni singola E-Ant);
  • i tasti e i campi di testo per il salvtaggio e il caricamento di mondi.
Col passare del tempo le E-Ant seguono il corso della loro vita comandate dalle loro esigenze e caratteristiche (alimentari,di riproduzione,ecc.). Lo scopo del programma e' quello di vedere l'evolversi di una razza (le caratteristiche di ogni larva vengono determinate "incrociando" quelle dei genitori) e non di un individuo.
La grafica non e' particolarmente curata in quanto volevo terminare in fretta questa prima versione e probabilmente incontrerete diversi bugs che anch'io devo ancora scoprire.


Informazioni tecniche

Questa sezione contiene una descrizione accurata del funzionamento di alcune procedure di "World" conoscendo le quali e' possibile seguire le varie evoluzioni del programma.
  1. Creazione e popolazione del mondo
    Il primo "passo" compiuto dal programma e' la creazione e l'animazione del mondo; viene cioe' generata la matrice (37x24 e' la dimensione standard) riempiendola di erba e roccia. In seguito vengono create le razze (5) contraddistinte da un colore specifico. Il DNA del primogenito di ogni razza e' generato casualmente, mentre per i successivi esponenti viene duplicato esattamente tranne in due casi:

    • se il modo di riproduzione e' per accoppiamento, la nuova E-Ant sara' di sesso opposto alla precedente;
    • c'e' sempre il 20% di probabilita' che si verifichi una mutazione. In questo caso un bit tra il 8 e il 20 del DNA della nuova E-Ant viene complementato (se e' 1 diviene 0 e viceversa).

    I primi 7 bit del DNA identificano univocamente una razza.
    Il numero degli esponenti di ogni razza e la loro posizione di partenza vengono generati casualmente.

  2. Animazione
    Il tempo di "World" e' digitale e diviso in giorni.
    Ogni giorno e' a sua volta diviso in cicli di mosse durante i quali ogni E-Ant a turno muove di una casella fino all'esaurimento delle proprie mosse.
    Quando tutte le E-Ant hanno terminato le mosse termina un giorno.
    L'ordine di movimento segue la numerazione sequenziale delle E-Ant.
    Alla fine di ogni giorno viene eseguito un controllo sulla matrice per determinare chi e' morto, quale vegetazione cresce, ecc.

    Regole di comportamento
    • Vegetazione - Ogni casella puo' avere una vegetazione di dimensione compresa tra 0 e 9;
      se nella casella c'e' vegetazione, questa cresce di 1 unita' (max 9);
      se nella casella non c'e' vegetazione, ma e' adiacente ad almeno una casella dove e' presente, allora la vegetazione cresce a 1;
      se nella casella non c'e' vegetazione e tutte le caselle adiacenti ne sono prive, la vegetazione rimane a 0.
    • Rocce - Le rocce sono statiche, impediscono il passaggio e non subiscono cambiamenti di nessun tipo.
    • Carogne - Si creano dal corpo morto di una E-Ant e hanno dimensione pari alla sua forza da viva.
      Ogni giorno le dimensioni diminuiscono di 1 finche' a 0 la corogna scompare.
    • E-Ant - Le E-Ant hanno due direttive principali: mangiare e riprodursi.
      Ogni E-Ant ha diversi tempi per soddisfare le sue direttive (cibo rimanente e tempo alla riproduzione); quando uno di qeusti 2 parametri e' a 0 o meno significa che l'E-Ant ha la necessita' di mangiare o riprodursi.
      Se il cibo rimanente raggiunge in negativo il valore della forza, l'E-Ant muore.
      Quando un'E-Ant non e' soggetta a nessuno di questi due stimoli si muove in maniera casuale.
      In caso contrario si avvicina al piu' vicino cibo o al piu' vicino partner entro la sua vista (in numero di caselle).
      Se un'E-Ant e' affamata non puo' riprodursi.


    Nascita di una nuova E-Ant
    Se l'E-Ant nasce da una scissione, il DNA e' copiato esattamente dal genitore (rimane comunque il 20% di mutazione).
    Se l'E-Ant nasce da un accoppiamento, il DNA e' la fusione dei DNA dei genitori (20% mutazione).
    Le nuove E-Ant sono subito adulte.


Intelligenza e vita artificiale

Intelligenza e Vita artificiale, anche se sono strettamente legate tra loro, non sono comunque la stessa cosa. In particolare la Vita Artificiale non presuppone a priori l'I.A. (esistono forme di vita completamente prive di intelligenza).
Per trattare l'Intelligenza Artificiale occorre prima dare una definizione completa di intelligenza quale per esempio (una tra tante):

Capacita' di risolvere nuove situazioni sulla base delle esperienze passate.

Considerando questa definizione le E-Ant sono prive di intelligenza, infatti non imparano e l'unico algoritmo che simula lontanamente un comportamento intelligente e' quello che determina qual e' il cibo o il compagno piu' vicino per mangiare o riprodursi.
Tale comportamento non e' propriamente intelligente, ma rientra maggiormente nei confini dell'istinto.

Conclusioni

"World" non ha un vero e proprio scopo. E' stato progettato e programmato solamente per toccare con mano cio' che ho letto (tutto quello che so sulla Vita Artificiale) sul libro edito da Apogeo - Vita Artificiale.
In futuro aggiungero' sempre piu' complessita' al mondo e alle formiche, ma per adesso spero almeno di suscitare qualche riflessione e un po' di entusiasmo.


Ai confini della simulazione (suggerimento ai visionari)

Questa parte contiene i concetti e le idee meno scientifiche di tutto questo documento.

Nel momento in cui si avvia il programma si vedono immagini disegnate sullo schermo che si muovono e agiscono per raggiungere uno scopo rispondendo a stimoli ambientali.
Qual e' la differenza comportamentale tra le E-Ant e qualche forma di vita "semplice" come ad esempio dei batteri?
Entrambi seguono delle regole e inseguono uno scopo secondo cio' che si puo' chiamare da una parte istinto o naturale evoluzione e dall'altra procedure o funzioni.
E se oltre ad essere paragonabili a batteri queste formiche fossero in grado di pensare, non si potrebbero porre delle domande sull'universo (il loro), sull'esistenza e cosi' via?
Quali sarebbero le loro risposte?
E infine quale sarebbe la differenza tra cio' che chiamiamo reale e cio' che dichiariamo simulato?

A questo punto si dovrebbe aprire una parentesi (piuttosto lunga) sull'oggettivita' della realta', ma mi accontento di citare una frase tratta dal racconto "The Electric Ant" (1969 - P.K.Dick):

"La realta' oggettiva e' soltanto una astrazione sintetica derivante da una ipotetica universalizzazione di una massa di realta' soggettive."

Forse anche noi siamo immagini sullo schermo di qualcuno...


Articoli correlati

17/09/1999
Settembre 1999

Dalla frase di P.K.Dick salta fuori un quesito: "Una ipotetica universalizzazione di una massa di realta' soggettive" pu˛ essere una produzione sociale di "realtÓ oggettiva"?

Se l'astrazione sintetica Ŕ dell'ordine della produzione sociale, ha bisogno di una collocazione spaziale, temporale e tecnica in cui possano convergere le costruzioni soggettive. L'universalizzazione, la generalizzazione delle singolaritÓ che conduce alla creazione del simulacro di realtÓ oggettiva, al modello di simulazione sembra una gigantesca operazione di "ingegneria sociale", le cui risorse principali sono la tecnica e il linguaggio. A questo punto, la realtÓ soggettiva, dentro uno spazio comunicativo strutturato tecnicamente, Ŕ essa stessa un prodotto della simulazione sociale?

Al contrario, se la simulazione non fosse dell'ordine della "produzione sociale", ma fosse giÓ presente nella sfera individuale, psichica, della produzione di realtÓ, non potrebbe darsi che "forse anche noi siamo immagini sullo schermo di noi stessi"?

Qualcuno ipotizza che l'esperienza del presente non sia scindibile dal "ricordo del presente"; non potendo costituirsi in altro modo se non attraverso simboli, segni e linguaggio, la realtÓ dell'esperienza sarebbe giÓ un'immanente processo di simulazione.

In questo senso, forse, pi¨ che attraverso la coppia oggettivo/soggettivo, la realtÓ non potrebbe essere interrogata ricorrendo ad altre dicotomie? Magari "virtuale/attuale"?
area informativa
news
note legali

cerca in ninibeLabs con

Google



Powered by:
Laboratori Ninibe
BorderZone s.r.l.

Web master:Letizia Beriozza