La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

CAGE Cellular Automata General Environment Alghero, Marzo 2003.

Presentazioni simili


Presentazione sul tema: "CAGE Cellular Automata General Environment Alghero, Marzo 2003."— Transcript della presentazione:

1 CAGE Cellular Automata General Environment Alghero, Marzo 2003

2 Sommario Automi Cellulari (AC) Ambienti di simulazione e CAGE Il modello di AC in CAGE Caratteristiche dellambiente Programmazione di AC in CAGE Esempi di implementazione

3 Automi cellulari sistema discretodinamico Un Automa Cellulare è un sistema discreto dinamico composto da un grande numero di celle in una griglia nello spazio (1-D, 2-D, o 3-D). regola di evoluzione in parallelo Ogni cella interagisce solo con le sue vicine ed esiste una regola di evoluzione dellautoma cellulare che cambia lo stato di tutte le celle simultaneamente ( in parallelo ) a passi discreti del tempo.

4 Automi Cellulari comportamento globale Il comportamento globale del sistema è determinato dallevoluzione degli stati di tutte le celle come risultato di interazioni multiple tra le stesse.

5 Automi Cellulari Griglie bidimensionali e vicinati classici

6 Automi Cellulari sistemi dinamici discreti sistemi dinamici continui Gli automi cellulari (AC) sono sistemi dinamici discreti ma risultano spesso efficace alternativa alternativa ai sistemi di equazioni differenziali per la simulazione di sistemi dinamici continui 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 simulare il comportamento diun sistema complesso dallinterazione di un grande numero di celle che che seguono semplici regole, Lidea di base è di simulare il comportamento di un sistema complesso dallinterazione di un grande numero di celle che che seguono semplici regole, e non di descrivere il comportamento globale mediante complesse equazioni

7 Automi Cellulari e calcolo parallelo computer paralleli Luso di computer paralleli risulta spesso inevitabile quale supporto per la modellazione mediante AC di problemi reali modello di calcolo pararallelo parallelismo implicitolocalità Gli AC rappresentano un modello di calcolo pararallelo che può essere efficacemente implementato in architetture parallele in virtù delle caratteristiche di parallelismo implicito e località data parallelism Lapproccio naturale prevede la suddivisione delle celle tra i diversi elementi di calcolo del computer parallelo (data parallelism) SPMD In pratica nelle architetture a memoria distribuita (MIMD computer) il parallelismo degli AC può essere implementato mediante lapproccio SPMD (Single Program Multiple Data)

8 Ambienti di simulazione basati su AC sequenziali paralleli Esistono molti ambienti di modellazione e simulazione basati su AC implementati sia in computer sequenziali (PCs, workstations) che paralleli: CAPE PECANS CAMEL P-CAM StarLogo NEMO DEVS CELLULAR CAM-8 (hardware).... CAGE: C ellular A utomata G eneral E nvironment potenziali aree di applicazione Le potenziali 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 dellurbanistica)

9 Stazionarietà spaziale e temporale degli intorni In CAGE lintorno può variare nel tempo ed è definito sulla base di relazioni, non necessariamente geometriche, che intercorrono tra gli oggetti della realtà. Regolarità della discretizzazione In CAGE loggetto 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 transizione In 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

10 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 dellevoluzione In CAGE per consentire simulazioni realistiche esiste anche un meccanismo di controllo globale (steering) dellevoluzione del sistema Difficoltà nellimportazione degli scenari da GIS In CAGE è prevista limplementazione 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

11 GUI GUI amichevole per la modellazione dell automa cellulare in modo visuale cross-platformQT Applicazione cross-platform basata sulle librerie QT (Windows-Linux) Rimozione di molte delle restrizioni Rimozione di molte delle restrizioni tipiche degli ambienti ad AC Strutturazione in layers dello scenario Strutturazione in layers dello scenario (nei diversi layers si svolgono, parallelamente e secondo le regole assegnate, le simulazioni dei vari fenomeni di interesse) Funzioni di libreria Funzioni di libreria predefinite e facilitazioni per la scrittura delle regole di evoluzione importazione/esportazione Funzioni di importazione/esportazione di dati grafici o tabellari Esecuzione su elaboratore remotoTCP Esecuzione su elaboratore remoto mediante protocollo TCP Caratteristiche essenziali di CAGE

12 La GUI di CAGE Modellazione della struttura Finestre grafiche

13 Lautoma cellulare Lautoma cellulare AC è definito dalla tripla: è linsieme 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. Il modello di AC

14 Il layer layer di celle Un layer di celle è definito dalla tripla: è un insieme di celle è linsieme finito dei valori che assume il vettore r-dimensionale dei parametri di layer. un vettore di funzioni di aggiornamento dei parametri di layer

15 La cella cella La cella è definita dalla sestupla: è linsieme finito dei valori che assume il vettore q-dimensionale che definisce lo stato della cella è linsieme finito dei valori che assume il vettore r-dimensionale dei parametri locali della cella O i è un insieme finito di oggetti geometrici, eventualmente georeferenziati e caratterizzati da opportuna descrizione vettoriale.

16 è un vettore di n funzioni di vicinato definite come: Vicinato orizzontale Vicinato verticale La cella

17 è 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: La cella

18 Le funzioni di aggiornamento dei parametri di layer sono definite dalla: I parametri di layer possono assumere valori dipendenti dalla configurazione attuale dellintero layer, offrendo quindi un meccanismo di controllo globale dellevoluzione del layer. Aggiornamento dei parametri di layer

19 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 allautoma cellulare Aggiornamento dei parametri globali

20 Architettura (futura) di CAGE TCP CAGE server CAGE client CAGE client CAGE client C++ compiler CA kernel PIPE

21 Caratteristiche di CAGE: modellazione della struttura nuovo layer nuovo sottostato Generazione funzione nuovo parametro Nuovo vicinato verticale Rappresentazione ad albero della struttura Modifica attributi dellelemento selezionato Testo della funzione Rappresentazione del flow-chart della funzione

22 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)

23 Parametri e sottostati Per ogni parametro è possibile specificare: il nome; il tipo: tra intero, reale, carattere il tipo di aggiornamento tra: costante o basato su una funzione Per ogni sottostato è possibile specificare le seguenti proprietà: il nome il tipo: tra intero, reale, carattere

24 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

25 Funzioni Per ogni funzione (aggiornamento dei parametri, sottostati e vicinati) è necessario specificare: il nome la frequenza di esecuzione la probabilità di esecuzione una condizione cui subordinare lesecuzione

26 Generazione di funzioni Creazione del diagramma di flussoProprietà del componente selezionato Inserimento facilitato del codice (variabili e funzioni di libreria)

27 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 allistruzione return del C)

28 Condizioni logiche Rappresentazione ad albero Esempio: (a=1 AND b=2) OR (c=0) AND OR a=1 b=2 c=0

29 Proposizioni logiche Creazione di una proposizione logica composta

30 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 delloggetto obj centroidY(obj)Restituisce la coordinata Y del baricentro delloggetto obj area(obj)Restituisce larea delloggetto obj perimeter(obj)Restituisce il perimetro delloggetto obj length(obj)Restituisce la lunghezza delloggetto obj

31 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 over Esempio: prob(10,100) restituisce true nel 10% dei casi div(n1, n2)Restituisce true se n1 è divisibile per n2

32 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

33 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.

34 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 dallidentificatore [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:

35 Aggiornamento di vicinato basato su funzione Attributi della query Vicinato orizzontale Query di aggiornamento FrequenzaProbabilitàCondizioneCondizione di inclusione della cella target (dist(Obj,Cell[Layer].Obj) 5000) Cella Vicinato generato al primo passo dist(Obj, Cell[Layer].Obj)<100

36 Creazione di una discretizzazione non regolare Strumenti di editing

37 Controllo visualizzazione oggetti Alcune altre funzioni utili Controllo visualizzazione layers Editing dei valori delle variabili Creazione colormap

38 Colormap

39 Alcune delle cose da fare (si accettano suggerimenti): Potenziamento del linguaggio di programmazione delle regole (costrutti per literazione 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 !


Scaricare ppt "CAGE Cellular Automata General Environment Alghero, Marzo 2003."

Presentazioni simili


Annunci Google