CAGE Cellular Automata General Environment Alghero, Marzo 2003.
-
Upload
celia-stefani -
Category
Documents
-
view
217 -
download
0
Transcript of CAGE Cellular Automata General Environment Alghero, Marzo 2003.
CAGECellular Automata General Environment
Alghero, Marzo 2003
Sommario
Automi Cellulari (AC)
Ambienti di simulazione e CAGE
Il modello di AC in CAGE
Caratteristiche dell’ambiente
Programmazione di AC in CAGE
Esempi di implementazione
Automi cellulari
Un Automa Cellulare è un sistema discretosistema discreto dinamico dinamico
composto da un grande numero di celle in una griglia nello
spazio (1-D, 2-D, o 3-D).
Ogni cella interagisce solo con le sue vicine ed esiste una
regola di evoluzioneregola di evoluzione dell’automa cellulare che cambia lo
stato di tutte le celle simultaneamente ( in paralleloin parallelo ) a passi
discreti del tempo.
Automi Cellulari
Il comportamento globalecomportamento globale del sistema è determinato
dall’evoluzione degli stati di tutte le celle come risultato di interazioni
multiple tra le stesse.
Automi Cellulari
C C C C
Griglie bidimensionali e vicinati classiciGriglie bidimensionali e vicinati classici
Automi Cellulari
Gli automi cellulari (AC) sono sistemi dinamici discretisistemi dinamici discreti ma
risultano spesso efficace alternativa alternativa ai sistemi di
equazioni differenziali per la simulazione di sistemi dinamici sistemi dinamici
continuicontinui
In generale gli AC offrono un modello per studiare sistemi
composti da un gran numero di diverse parti (celle) in cui non
si ha un controllo centrale ma solo semplici interazioni locali
L’idea di base è di simulare il comportamento disimulare il comportamento di un un
sistema complesso dall’interazione di un grande sistema complesso dall’interazione di un grande
numero di celle che che seguono semplici regole,numero di celle che che seguono semplici regole, e non
di descrivere il comportamento globale mediante complesse
equazioni
Automi Cellulari e calcolo parallelo
L’uso di computer parallelicomputer paralleli risulta spesso inevitabile quale
supporto per la modellazione mediante AC di problemi reali
Gli AC rappresentano un modello di calcolo pararallelomodello di calcolo pararallelo che
può essere efficacemente implementato in architetture parallele
in virtù delle caratteristiche di parallelismo implicitoparallelismo implicito e localitàlocalità
L’approccio naturale prevede la suddivisione delle celle tra i
diversi elementi di calcolo del computer parallelo (data data
parallelismparallelism)
In pratica nelle architetture a memoria distribuita (MIMD
computer) il parallelismo degli AC può essere implementato
mediante l’approccio SPMDSPMD (Single Program Multiple Data)
Ambienti di simulazione basati su AC
Esistono molti ambienti di modellazione e simulazione basati su AC implementati sia in computer sequenzialisequenziali (PCs, workstations) che paralleliparalleli:
CAPE PECANS CAMEL
P-CAM StarLogo NEMO
DEVS CELLULAR CAM-8 (hardware)
.... CAGE: Cellular Automata General Environment
Le potenziali aree di applicazionepotenziali aree di applicazione sono diverse: fisica, biologia, genetica, chimica, pianificazione urbanistica, gestione ambientale, image processing, economia.Gli ambienti disponibili presentano diversi limiti (con particolare riferimento alle applicazioni nel campo dell’urbanistica)
Stazionarietà spaziale e temporale degli intorniIn CAGE l’intorno può variare nel tempo ed è definito sulla base di relazioni, non necessariamente geometriche, che intercorrono tra gli oggetti della realtà.
Regolarità della discretizzazioneIn CAGE l’oggetto geometrico associato alle celle è considerato un attributo la cui particolare occorrenza non è soggetta a vincoli di regolarità spaziale o temporale.
Stazionarietà ed omogeneità della funzione di
transizioneIn CAGE la funzione di transizione della cella è dipendente anche da parametri variabili nel tempo, locali alla cella o globali.
Limitazione del numero di stati delle celle
In CAGE non esiste una limitazione a priori del numero degli stati e sono disponibili diversi tipi di sottostati (intero, reale, carattere)
Alcuni limiti della formulazione classica e/o di molti ambienti ad AC
Alcuni limiti della formulazione classica e/o di molti ambienti ad AC
Chiusura rispetto ad eventi esterni
In CAGE è prevista la possibilità che fenomeni esterni influiscano, anche a livello locale, sulla evoluzione della simulazione.
Località del controllo dell’evoluzione
In CAGE per consentire simulazioni realistiche esiste anche un meccanismo di controllo globale (steering) dell’evoluzione del sistema
Difficoltà nell’importazione degli scenari da GIS
In CAGE è prevista l’implementazione di specifiche funzioni di importazione di dati spaziali e alfanumerici da GIS esistenti
Ambienti utilizzabili solo da esperti programmatori
In CAGE il ciclo di modellazione-simulazione-analisi dei dati è semplificato da una specifica interfaccia grafica comprensiva di funzionalità di modellazione semi-visuale delle regole di evoluzione
GUIGUI amichevole per la modellazione dell automa cellulare in modo
visuale
Applicazione cross-platformcross-platform basata sulle librerie QTQT (Windows-Linux)
Rimozione di molte delle restrizioniRimozione di molte delle restrizioni tipiche degli ambienti ad AC
Strutturazione in layers dello scenarioStrutturazione in layers dello scenario (nei diversi layers si
svolgono, parallelamente e secondo le regole assegnate, le simulazioni
dei vari fenomeni di interesse)
Funzioni di libreriaFunzioni di libreria predefinite e facilitazioni per la scrittura delle
regole di evoluzione
Funzioni di importazione/esportazioneimportazione/esportazione di dati grafici o tabellari
Esecuzione su elaboratore remotoEsecuzione su elaboratore remoto mediante protocollo TCPTCP
Caratteristiche essenziali di CAGE
La GUI di CAGE
Modellazione della struttura
Finestre grafiche
LPAC GG ,,fL’automa cellulareL’automa cellulare AC è definito dalla tripla:
)()2()1( gGGGG PPPP
è l’insieme finito dei valori che assume il vettore g-
dimensionale dei parametri globali:
è un vettore di funzioni di aggiornamento
dei parametri globali.
è un insieme di n layer di celle.
)()2()1( ,,, gGGGG fff f
nlllL ,,, 21
GP
Il modello di AC
Il layer
Un layer di cellelayer di celle è definito dalla tripla: LiLiii PCl f,,
è un insieme di celle
è l’insieme finito dei valori che assume il vettore r-
dimensionale dei parametri di layer.
un vettore di funzioni di aggiornamento
dei parametri di layer
iC
LiP
)()2()1( ,,, rLiLiLiLi fff f
La cella
iiCiiCiii OPSc ,,,,, fσ
La cellacella è definita dalla sestupla:
è l’insieme finito dei valori che assume il vettore q-
dimensionale che definisce lo stato della cella
è l’insieme finito dei valori che assume il vettore r-
dimensionale dei parametri locali della cella
Oi è un insieme finito di oggetti geometrici, eventualmente
georeferenziati e caratterizzati da opportuna descrizione
vettoriale.
iS
CiP
è un vettore di n funzioni di vicinato
definite come:
)()2()1( ,,, niiii σ
nkCPPCC kGLiC
kiki
k ..1),(:)(
)(ii Vicinato
orizzontale
)( ji ijcon Vicinato verticale
La cella iiCiiCiii OPSc ,,,,, fσ
• è un vettore di funzioni di
aggiornamento dei parametri locali con:
• è la funzione di transizione della generica cella del layer,
che consente di aggiornare lo stato della cella ed è definita
dalla:
)()2()1( ,,, mCiCiCiCi fff f
CiCiLiG
n
ikk
kCi PPPPSki
1
)(
: f
i
iCiLiGii SPPPSii
)(
:
La cella iiCiiCiii OPSc ,,,,, fσ
Le funzioni di aggiornamento dei parametri di layer sono
definite dalla:
I parametri di layer possono assumere valori dipendenti dalla
configurazione attuale dell’intero layer, offrendo quindi un
meccanismo di controllo globale dell’evoluzione del
layer.
LiLiC
iLi PPS i :f
Aggiornamento dei parametri di layer LiLiii PCl f,,
Il valore del parametro globale k-esimo può essere calcolato sulla
base dei valori assunti dagli altri parametri globali e da tutti i
parametri di layer:
Il parametro globale può essere aggiornato, anche sulla base di
variabili esterne, da un generico modello di calcolo che si evolve
parallelamente all’automa cellulare
)(
1
)( : kGG
n
kLk
kG PPP
f
Aggiornamento dei parametri globali LPAC GG ,,f
Architettura (futura) di CAGE
TCP
CAGEserver
CAGEclient
CAGEclient
CAGEclient
C++ compiler
CA kernelCA kernelCA kernel
PIPE
Caratteristiche di CAGE: modellazione della struttura
nuovo layer
nuovo sottostato
Generazione funzione
nuovo parametro
Nuovo vicinato verticaleRappresentazione ad albero della strutturaModifica attributi dell’elemento selezionato
Testo della funzione
Rappresentazione del flow-chart della funzione
Attributi dei layers
Per ogni layer è possibile specificare: il nome; il tipo di discretizzazione dello spazio:
regolare: una delle classiche discretizzazioni del piano in celle esagonali, rettangolari, triangolari. La scelta della discretizzazione regolare consente di scegliere anche tra uno dei vicinati classici (Moore, Von Neumann, ecc);non regolare: le celle sono costituite da oggetti grafici da inserire con gli strumenti di editing disponibili in CAGE;
il tipo di contorno tra: toroidale, limitato, inattivo (le celle di bordo vengono impiegate nel vicinato delle celle interne ma i sottostati non vengono aggiornati)
Parametri e sottostati
Per ogni parametro è possibile specificare:
il nome;il tipo: tra intero, reale, carattereil tipo di aggiornamento tra: costante o basato su una funzione
Per ogni sottostato è possibile specificare le seguenti proprietà:
il nomeil tipo: tra intero, reale, carattere
Vicinati
Per ogni vicinato orizzontale è possibile specificare se è:
del tipo classico (Moore, Von Neumann ecc. ), solo nel caso di discretizzazione regolare per il layer basato su una funzione (query) da fornire
Per ogni vicinato verticale si devono specificare:
il layer a cui lo stesso si riferisce la funzione di aggiornamento del vicinato
Funzioni
Per ogni funzione (aggiornamento dei parametri, sottostati e vicinati) è necessario specificare:
il nomela frequenza di esecuzionela probabilità di esecuzioneuna condizione cui subordinare l’esecuzione
Generazione di funzioni
Creazione del diagramma di flusso
Proprietà del componente selezionato
Inserimento facilitato del codice (variabili e funzioni di libreria)
Componenti del diagramma della funzione
Flow-chart components
Blocco di istruzioni in formato libero: è necessario rispettare la sintassi del linguaggio
C Salto condizionale
Salto condizionale secondo un valore di probabilità
Singolo statement
Uscita dalla funzione (corrisponde
all’istruzione return del C)
Condizioni logiche
Rappresentazione ad albero
Esempio: (a=1 AND b=2) OR (c=0)
AND
OR
a=1
b=2
c=0
Proposizioni logiche
Creazione di una proposizione logica composta
Funzioni di libreria
Funzioni geometriche
dist(obj1, obj2) Restituisce la distanza tra i baricentri degli oggetti obj1 ed obj2
centroidX(obj) Restituisce la coordinata X del baricentro dell’oggetto obj
centroidY(obj) Restituisce la coordinata Y del baricentro dell’oggetto obj
area(obj) Restituisce l’area dell’oggetto obj
perimeter(obj) Restituisce il perimetro dell’oggetto obj
length(obj) Restituisce la lunghezza dell’oggetto obj
Funzioni di libreria
Funzioni matematiche
abs(num) Restituisce il valore assoluto di num
max(num1, num2) Restituisce il massimo tra num1 e num2
min(num1, num2) Restituisce il minimo tra num1 e num2
odd(num) Restituisce true se num è dispari
even(num) Restituisce true se num è pari
prob(num, over) Restituisce true con una probabilità di num su overEsempio: prob(10,100) restituisce true nel 10% dei casi
div(n1, n2) Restituisce true se n1 è divisibile per n2
Funzioni di libreria
Funzioni di aggregazione su layer
Sum(var) Restituisce la somma dei valori della variabile var sulle celle
Min(var) Restituisce il minimo dei valori della variabile var sulle celle
Max(var) Restituisce il massimo dei valori della variabile var sulle celle
Average(var) Restituisce la media aritmetica dei valori della variabile var sulle
NEqVal(var, val) Restituisce il numero di celle per le quali la variabile var assume il valore val
Funzioni di libreria
Funzioni di aggregazione su vicinato
NeighCell[lay].Sum(var) Restituisce la somma dei valori della variabile var sulle celle appartenenti al vicinato della cella corrente sul layer lay
NeighCell[lay].Min(var) Restituisce il minimo dei valori della variabile var sulle celle appartenenti al vicinato della cella corrente sul layer lay
NeighCell[lay].Max(var) Restituisce il massimo dei valori della variabile var sulle celle appartenenti al vicinato della cella corrente sul layer lay
NeighCell[lay].Average(var) Restituisce la media aritmetica dei valori della variabile var sulle celle appartenenti al vicinato della cella corrente sul layer lay
NeighCell[lay].NEqVal(var, val) Restituisce il numero di celle appartenenti al vicinato della cella corrente sul layer lay per le quali la variabile var assume il valore val.
if ( Attiva )
{ if ( ( NeighCell[Mondo].NEqVal(Attiva,1)!=2 ) && ( NeighCell[Mondo].NEqVal(Attiva,1)!=3 ) )
NewAttiva=0;
}
else if ( NeighCell[Mondo].NEqVal(Attiva, 1)==3 )
NewAttiva=1;
Aggiornamento di una variabile
Per ogni variabile (parametro o sottostato) rappresentata dall’identificatore [Name] è definita la variabile [NewName]
La funzione di aggiornamento della variabile deve contenere almeno una istruzione di assegnazione del tipo:
[NewName] = espressione
Esempio (life):
Risultato:
Aggiornamento di vicinato basato su funzione
Attributi della query
Vicinato orizzontaleQuery di aggiornamento
FrequenzaProbabilitàCondizioneCondizione di inclusione della cella target
(dist(Obj,Cell[Layer].Obj)<100) && (area(Cell[Layer].Obj) > 5000)
(dist(Obj,Cell[Layer].Obj)<100) && (area(Cell[Layer].Obj) > 5000)
Cella Vicinato generato al primo passo
dist(Obj, Cell[Layer].Obj)<100
Creazione di una discretizzazione non regolare
Strumenti di editing
Controllo visualizzazione oggetti
Alcune altre funzioni utili
Controllo visualizzazione layersEditing dei valori delle variabili
Creazione colormap
Colormap
Alcune delle cose da fare (si accettano suggerimenti):
Potenziamento del linguaggio di programmazione delle regole (costrutti per l’iterazione su insiemi di celle, ampliamento della libreria di funzioni)
Gestione degli errori (messaggi di errore e di avvertimento)
Potenziamento funzioni di editing/input/output
Help in linea Versione parallela e architettura client-
server Porting in ambiente linux …………………………..
GRAZIE !