PPS-23-ScalaSim

Requisiti e Specifiche di Progetto

Modello di Dominio

Il progetto ScalaSim si pone di realizzare un simulatore di Automi Cellulari capace di supportare varie tipologie di questi ultimi, provvedendo a fornire meccanismi e componenti generali ed estendibili per fare in modo di adattare il software costruito in base alle esigenze delle simulazioni.

Un automa cellulare è un modello matematico che consiste in una griglia costituita da celle che rappresentano delle entità che evolvono nel tempo. Ciascuna di queste celle può assumere un insieme finito di stati e in ogni unità di tempo la griglia viene aggiornata seguendo delle regole definite dalla tipologia di automa simulato.

Requisiti

Durante l’analisi del dominio, sono stati individuati i seguenti requisiti del sistema software da realizzare.

Business

L’obiettivo del progetto è la creazione di un simulatore di automi cellulari all’interno di un ambiente finito. L’ambiente è suddiviso in celle, le quali durante la simulazione possono subire un cambiamento di stato dettato da un insieme di regole o comportamenti definiti da uno specifico automa cellulare. L’applicazione o meno di una regola può dipendere sia dallo stato della cella su cui viene applicata, sia da un insieme di fattori che caratterizzano l’ambiente e la simulazione in un certo istante di tempo. Generalmente tra questi fattori possono essere considerati lo stato del vicinato di una cella, o il numero di step che la simulazione ha effettuato in un dato momento. Una regola deve quindi essere definita nella maniera più generale possibile in modo tale da poter rappresentare, potenzialmente, un qualsiasi comportamento di un automa cellulare.

Il simulatore prodotto dovrà implementare almeno 3 dei seguenti automi cellulari:

Di seguito una breve descrizione per ognuno di essi.

Conway’s Game of Life

Conway's Game of Life in esecuzione

Conway’s Game of Life è un semplice automa cellulare che simula l’evoluzione di un universo artificiale composto da cellule. Queste cellule possono essere in due stati: vive o morte.

Le regole sono molto semplici:

Brian’s Brain

Brian's Brain in esecuzione

Brian’s Brain è un automa cellulare che simula l’evoluzione di un universo artificiale composto da celle che possono trovarsi in uno dei seguenti tre stati:

Ad ogni step della simulazione, una cella OFF diventa ON se esattamente due degli otto vicini hanno stato ON. Tutte le celle ON, allo step successivo diventano DYING: tutte le celle in questo, all’iterazione successiva avranno stato OFF.

Langton’s ANT

Langton's Ant dopo 11.000 iterazioni

Questo automa cellulare ha un comportamento molto semplice ma i risultati che emergono possono essere piuttosto complessi.

La griglia iniziale è composta da sole celle bianche, e in una qualunque posizione viene collocata una formica. Ad ogni iterazione la formica si sposta di una posizione secondo le seguenti regole:

WaTor

WaTor in esecuzione

WaTor simula l’evoluzione di una popolazione contenente prede e predatori, nel nostro caso Fish e Shark rispettivamente, all’interno di un ambiente toroidale. I risultati possono essere interessanti, come l’estinzione di una o entrambe le specie o un equilibrio tra le due.

Le regole possono essere così riassunte:

Rule110

Rule 110 dopo 256 iterazioni

Rule110 è un automa cellulare monodimensionale che si espande all’infinito. Ogni cella può assumere due valori, e lo stato successivo è definito dalla cella stessa e i suoi vicini. Le celle possono assumere valore 1 e 0, visivamente codificati rispettivamente in nero e bianco.

In base alla configurazione di una cella e delle due vicine si definisce lo stato della cella sottostante al passo successivo in base allo schema:

000 001 010 011 100 101 110 111
0 1 1 1 0 1 1 0

Utente

Gli utenti saranno in grado di interagire con il sistema principalmente in due modalità:

In entrambe le modalità un utente potrà configurare i parametri della simulazione, tra cui:

Requisiti Funzionali

Il sistema software deve essere in grado di rappresentare una vasta gamma di automi cellulari, ovvero supportare un ambiente costituito da celle aventi un certo stato, il quale può mutare nel tempo in base a specifiche regole dell’automa. Oltre ad essere in grado di modellare un automa, il sistema deve poter effettuare un certo numero di iterazioni dell’evoluzione del sistema, ossia applicare l’insieme di regole caratterizzanti l’automa alle celle componenti l’ambiente, in modo tale da causare un susseguirsi di cambiamenti di stato delle stesse ad ogni ciclo.

Il sistema deve garantire la correttezza di ognuno degli automi cellulari listati precedentemente, permettendo inoltre una visualizzazione in tempo reale della loro evoluzione o un’esportazione grafica del loro risultato.

Requisiti Non Funzionali

Trattandosi di un simulatore con la possibilità di visualizzazione in tempo reale, il sistema deve garantire un discreto livello di efficienza. Riguardo l’interfaccia grafica che permette l’interazione col simulatore stesso, essa dev’essere intuitiva e di facile uso, specialmente per quanto riguarda aspetti più avanzati come la configurazione della simulazione.

Requisiti di Implementazione

Requisiti Opzionali

Indice Capitolo Precedente Capitolo Successivo