项目作者: wfvining

项目描述 :
The Liquid Cellular Automaton
高级语言: C++
项目地址: git://github.com/wfvining/liquid-ca.git
创建时间: 2018-07-31T13:23:25Z
项目社区:https://github.com/wfvining/liquid-ca

开源协议:

下载


Liquid Cellular Automata

Build Status

Implements the density classification task in a liquid cellular
automaton.

An example of the simulation running is here.

For more information look here

The full paper is available here

Previous Versions

For the version of this code used in the paper “How does mobility
help distributed systems
compute?”
checkout
v0.1.1.

  1. $ git checkout v0.1.1

Dependencies

  • SFML is used for the visualization (viz can be disabled
    if you do not have this installed, spp below).
    sudo apt install libsfml-dev
  • pthreads

The code has been built and tested with the viz on Ubuntu 16.05,
18.04, and FreeBSD 11.2. It has been built on OSX without the viz.

Build

  1. $ cd liquid-ca
  2. $ mkdir build
  3. $ cd build
  4. $ cmake -DCMAKE_BUILD_TYPE=Release .. && make

Build without vizualization

To compile with no vizualization pass -DBUILD_VIZ=Off to cmake.

Tests

To run tests do make test

Experiments

In general every experiment is its own executable they take the
following standard options:

Option Model parameter
--num-agents <N> N
--arena-size <L> L
--communication-range <r> r
--max-time <T> T
--correlated <sigma> use CRW with sigma std. dev.
--seed <seed> random seed
--by-position initialize agent state by x position
--speed <s> agent speed

Some experiments take additional options.

Velocity experiment

Basic experiment that evaluates the performance of the LCA for initial
densities in the range [0,1].

$ ./velocity_experiment <iterations> [options listed above]

Evaluates each initial density with iterations independent random
initial conditions for each initial density.

Outputs the fraction of correctly classified initial conditions for
each initial density.

Time

velocity_experiment_time outputs information about the time to reach
consensus and the mean/median cumulative degree at the moment consensus is
reached. Always runs 100 iterations.

Visualization

Currently will output a png of the viz every 10 time steps (sorry, I
should make that optional).

./sim_viz <initial-density> [optons from above]

To start the sim press the spacebar, to speed up/down press the corresponding arrow key and to quit press q