Cellular Automata Simulation System: CATSIMS
Latest from Projects :

Traffic simulation models have proven to be suitable tools for the evaluation of Intelligent Transportation Systems (ITS), such as Advanced Traffic Management Systems (ATMS) and Adaptive Control Systems. The applicability of traffic simulation strongly depends, in most cases, on computing performance. In this project we developed a high performance simulator which can be used in online traffic applications.

The amount of computation necessary for simulating a large transportation network at a level of detail down to each individual traveler and vehicle is huge. Hence, a coarse simulation approach referred to as “Cellular Automata” (CA) is used to keep up with a fast computational speed necessary to simulate a whole region. In order to achieve the required computational performance to support a large number of travelers and a considerably sized transportation network, advance programing techniques such as parallel processing and advance memory management is implemented.
The Cellular Automata approach essentially divides every link on the network into a finite number of cells. At every time step each of these “cells” is scanned for a vehicle presence. If a vehicle is present, the vehicle position is advanced to another cell using some rule set. The model can consider behaviors of network users in the forms of route choosing and route changing and driving behavior.

CATSIMS, Cellular Automata Simulation System, the final outcome of this project is a high performance Cellular Automata micro simulator. I developed this software in C++, as an object oriented program. Each objects such as drivers, cars, links, traffic signals and etc. inherits its behaviors and specifications from its type.

For parallel processing, a hybrid model of shared memory and distributed memory is implemented with OpenMP and MPICH. The network is divided into sub networks. Sub Networks are processed in different processing nod as distributed system. Each sub network in each processing nod is simulated as shared memory system to reduce data transfer. Each sub network communicates with other sub networks to exchange car and path data. In order to reduce data transfer an innovative idea which I call it “Virtual Transition Area” is provided to for exchanging cars. Paths are generated at the beginning of the simulation with a recursive algorithm. Then, they are divided into sub networks as sub paths. Each sub networks only have information about its own sub paths and the connection between its sub paths with other sub path in other sub networks. At the certain times of data transferring, only the required sub path data is transferred. This method reduces the amount memory usage in each processing nod and data transfer between them. Moreover, In order to reduce memory usage of the program in any processing nod, advanced memory management is implemented.

This software can run under any configuration of the processing nod. Linux and Windows operating systems are supported. But I recommend Linux OS because of its performance.
The article of this project is submitted to applied soft computing journal.
This diagram shows the overall algorithm of this simulator:



No comment.
Post your comment:

© 2006 - 2019  Amir Zarinbal Masouleh