CAGE Cellular Automata General Environment Alghero, Marzo 2003.

39
CAGE Cellular Automata General Environment Alghero, Marzo 2003

Transcript of CAGE Cellular Automata General Environment Alghero, Marzo 2003.

Page 1: CAGE Cellular Automata General Environment Alghero, Marzo 2003.

CAGECellular Automata General Environment

Alghero, Marzo 2003

Page 2: CAGE Cellular 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

Page 3: CAGE Cellular Automata General Environment Alghero, Marzo 2003.

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.

Page 4: CAGE Cellular Automata General Environment Alghero, Marzo 2003.

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.

Page 5: CAGE Cellular Automata General Environment Alghero, Marzo 2003.

Automi Cellulari

C C C C

Griglie bidimensionali e vicinati classiciGriglie bidimensionali e vicinati classici

Page 6: CAGE Cellular Automata General Environment Alghero, Marzo 2003.

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

Page 7: CAGE Cellular Automata General Environment Alghero, Marzo 2003.

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)

Page 8: CAGE Cellular Automata General Environment Alghero, Marzo 2003.

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)

Page 9: CAGE Cellular Automata General Environment Alghero, Marzo 2003.

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

Page 10: CAGE Cellular Automata General Environment Alghero, Marzo 2003.

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

Page 11: CAGE Cellular Automata General Environment Alghero, Marzo 2003.

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

Page 12: CAGE Cellular Automata General Environment Alghero, Marzo 2003.

La GUI di CAGE

Modellazione della struttura

Finestre grafiche

Page 13: CAGE Cellular Automata General Environment Alghero, Marzo 2003.

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

Page 14: CAGE Cellular Automata General Environment Alghero, Marzo 2003.

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

Page 15: CAGE Cellular Automata General Environment Alghero, Marzo 2003.

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

Page 16: CAGE Cellular Automata General Environment Alghero, Marzo 2003.

è 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σ

Page 17: CAGE Cellular Automata General Environment Alghero, Marzo 2003.

• è 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σ

Page 18: CAGE Cellular Automata General Environment Alghero, Marzo 2003.

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,,

Page 19: CAGE Cellular Automata General Environment Alghero, Marzo 2003.

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

Page 20: CAGE Cellular Automata General Environment Alghero, Marzo 2003.

Architettura (futura) di CAGE

TCP

CAGEserver

CAGEclient

CAGEclient

CAGEclient

C++ compiler

CA kernelCA kernelCA kernel

PIPE

Page 21: CAGE Cellular Automata General Environment Alghero, Marzo 2003.

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

Page 22: CAGE Cellular Automata General Environment Alghero, Marzo 2003.

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)

Page 23: CAGE Cellular Automata General Environment Alghero, Marzo 2003.

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

Page 24: CAGE Cellular Automata General Environment Alghero, Marzo 2003.

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

Page 25: CAGE Cellular Automata General Environment Alghero, Marzo 2003.

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

Page 26: CAGE Cellular Automata General Environment Alghero, Marzo 2003.

Generazione di funzioni

Creazione del diagramma di flusso

Proprietà del componente selezionato

Inserimento facilitato del codice (variabili e funzioni di libreria)

Page 27: CAGE Cellular Automata General Environment Alghero, Marzo 2003.

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)

Page 28: CAGE Cellular Automata General Environment Alghero, Marzo 2003.

Condizioni logiche

Rappresentazione ad albero

Esempio: (a=1 AND b=2) OR (c=0)

AND

OR

a=1

b=2

c=0

Page 29: CAGE Cellular Automata General Environment Alghero, Marzo 2003.

Proposizioni logiche

Creazione di una proposizione logica composta

Page 30: CAGE Cellular Automata General Environment Alghero, Marzo 2003.

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

Page 31: CAGE Cellular Automata General Environment Alghero, Marzo 2003.

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

Page 32: CAGE Cellular Automata General Environment Alghero, Marzo 2003.

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

Page 33: CAGE Cellular Automata General Environment Alghero, Marzo 2003.

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.

Page 34: CAGE Cellular Automata General Environment Alghero, Marzo 2003.

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:

Page 35: CAGE Cellular Automata General Environment Alghero, Marzo 2003.

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

Page 36: CAGE Cellular Automata General Environment Alghero, Marzo 2003.

Creazione di una discretizzazione non regolare

Strumenti di editing

Page 37: CAGE Cellular Automata General Environment Alghero, Marzo 2003.

Controllo visualizzazione oggetti

Alcune altre funzioni utili

Controllo visualizzazione layersEditing dei valori delle variabili

Creazione colormap

Page 38: CAGE Cellular Automata General Environment Alghero, Marzo 2003.

Colormap

Page 39: CAGE Cellular Automata General Environment Alghero, Marzo 2003.

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 !