[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Ainulindale-devel] Cellular automata
From: |
Andrea Negro |
Subject: |
[Ainulindale-devel] Cellular automata |
Date: |
Thu, 7 Aug 2003 15:13:53 +0200 |
Arieccomi, stufo del caldo e dell'inglese.
Dunque, nonostante Fede abbia sempre da dire che non penso mai ad
Ainulindale, io lavoro nell'ombra per tirare fuori sempre nuove e
inattuabili teorie.
Ora mi sono messo in testa che possiamo usare il concetto di automata
cellulari per gestire alcuni aspetti del gioco, in particolare gli aspetti
'naturalistici' e arrivare al concetto di dna.
Ora, non vorrei spendere fiumi di parole a spiegare cosa sia un automata
cellulare, perchè la teoria a cui mi rifaccio è un attimino complicata, se
volete poi ve la spiego a voce. Comunque si tratta di un modo per creare
complessità a partire da regole di base molto semplici e un certo numero
di computazioni. Faccio un esempio semplice.
Rule 1:
*-- (quando trovo questa sequenza...)
* (...la posizione centrale sottostante sara' un asterisco.)
Rule 2:
--*
*
Rule 3:
-*-
-
Rule 4:
*-*
*
Computazione:
---*--- (situazione di partenza)
--*-*-- (applicate regole 2,3,1)
-*-*-*- (applicate regole 2,3,4,3,1)
...
E cosi' via. Ora, e' facile immaginare che trovando varie regole e vari
sistemi si possa generare molti bei pattern interessanti. Il punto
cruciale e' che molte combinazioni di regole danno schemi ripetitivi,
altri (meno) danno degli schemi 'nested', ovvero frattali: ma c'e' una
percentuale di regole semplici che invece danno comportamenti del tutto
random e imprevedibili, ed è proprio questo il succo. Inoltre, si può
trovare regole di base che generano strutture che, a suon di computazioni,
vengono ad assomigliare a foglie, alberi, conchiglie, etc etc etc. Questo
ovviamente sia in 2 che in 3 dimensioni.
Faccio un paio di esempi pratici, per vedere se la cosa vi ispira.
- Crescita degli alberi: io, nella mia ignoranza informatica, vedo un
albero come una struttura dati che ne definisce in primo luogo la forma, e
poi alcune caratteristiche (non considero la posizione). I casi sono due:
o si fanno una serie di alberi diversi e si mettono a random, o si crea un
qualche sistema affinche' questi alberi crescano e si modifichino da soli.
Gli automi cellulari vorrebbero fare la seconda. In pratica, per ogni
specie di albero bisogna identificare una serie di regole base molto
semplici, come le precedenti, e ricadere in uno degli schemi che generano
un minimo di caoticita'. Quindi, ogni albero non ha definita a priori una
struttura, ma un insieme di regole. Nella struttura dati di un albero ci
saranno quindi le informazioni di stato circa la computazione di crescita
raggiunta. Ogni tanto si potrebbe far partire un agente (locale o remoto)
che, preso in input lo stato attuale dell'albero, generi una o due
iterazioni applicando le regole, e sostanzialmente facendo 'crescere'
l'albero senza alcuno schema prefissato.
- Livrea di drago: esempio scemo, ma molti automata con regole davvero
stupide generano pattern che starebbero davvero bene addosso a un drago.
Ora, come per l'abero si puo' pensare che ogni drago abbia associato un
'agente' che nel tempo calcola la nuova pelle, e quando termina di
riempire tutta la texture necessaria il drago fa la 'muta'. Ora non so se
un drago faccia la muta, ma e' tanto per chiarire il concetto. :)
Estendendo questo concetto, si potrebbe pensare a queste regole base come
a 'geni'. Se riusciamo a trovare un metodo standard, molto di base, per
codificare le caratteristiche in regole semplici, esattamente come un dna,
possiamo applicare questo concetto a praticamente tutto quello che vive
nel mondo. Oltretutto, dovendo agire solo su questi 'parametri
standardizzati', si ha automaticamente un metodo molto semplice per creare
e modificare le cose. Viste in questo modo, inoltre, viene automatico
implementarne l'ereditarieta', ed eventualmente le deviazioni, malattie
genetiche, aberrazioni, etc etc etc.
Kind Regards,
Andrea Negro
--
Linux & Grid FTSS
IBM South Region
- [Ainulindale-devel] Cellular automata,
Andrea Negro <=