https://github.com/bbengfort/swarm-simulator
A simulation of a multi-agent swarm performing the retrieval of resources.
https://github.com/bbengfort/swarm-simulator
Last synced: 4 months ago
JSON representation
A simulation of a multi-agent swarm performing the retrieval of resources.
- Host: GitHub
- URL: https://github.com/bbengfort/swarm-simulator
- Owner: bbengfort
- License: mit
- Created: 2014-02-27T21:45:54.000Z (over 12 years ago)
- Default Branch: master
- Last Pushed: 2014-12-03T15:01:55.000Z (over 11 years ago)
- Last Synced: 2025-02-08T17:30:50.139Z (over 1 year ago)
- Language: TeX
- Size: 2.97 MB
- Stars: 3
- Watchers: 6
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
Swarm Simulator
===============
**A simulation of a multi-agent swarm performing the retrieval of resources.**
[![Astroid Mining][astroid_mining.jpg]][astroid_mining.jpg]
This project has two main components:
1. a simulator that can run either headless or visual simulations of swarms
2. an evolver that uses Evolutionary Programming to evolve the FSM of the swarm
## Quick Start ##
To get started quickly, I would recommend that you create a virtualenv for the code and install the requirements and libraries for the code into that environment. If you don't have virtualenv installed you can do so with the following command:
$ pip install virtualenv
Then to install both the evolution packages and the swarm package:
$ mkvirtualenv venv
$ python setup.py install
Running the code is now fairly straight forward; to run a visual simulation of the particle swarms use the `runsim.py` program in the bin folder:
$ python bin/runsim.py visual
Note that you can get help and the various options using the `--help` flag. At this point you should see the visual simulation start running with the default configuration. If you would like to use a different configuration (say one that has been evolved) pass it in with the `-c /path/to/conf.yaml` option.
Please let us know if you have any trouble!
**NOTE**: It turns out that this library requires the installation and compiling of several C libraries, particularly for PyGame, Numpy, librabbitmq, amqp, etc. The discussion for this will be different depending on your machine, but we'd be glad to help out any way we can to get it running for you!
## SAR Simulation ##
This package is designed to implement an offline (non-visual) search and retrieval simulation based on the implementation in [1]. This offline simulation will then be used to evaluate the fitness of various parameters that are loaded via YAML configuration file.
The package also has a viz library which implements a PyGame visual version of the simulator.
## Evolver ##
The evolver class makes use of Evolutionary Strategies and Evolutionary Programming to evolve the finite state machine that controls the behavior of each of the particles. This package uses Celery to do parallel, distributed processing of each simulation to compute fitness.
### References ###
[1] A. Rodríguez and J. A. Reggia, “Extending self-organizing particle systems to problem solving,” Artificial Life, vol. 10, no. 4, pp. 379–395, 2004.
[astroid_mining.jpg]: http://static.ddmcdn.com/gif/blogs/6a00d8341bf67c53ef0168eaa8f840970c-800wi.jpg