| Crates.io | abc |
| lib.rs | abc |
| version | 0.2.3 |
| created_at | 2016-03-23 05:50:04.222947+00 |
| updated_at | 2016-05-03 01:01:54.483453+00 |
| description | An implementation of Karaboga's Artificial Bee Colony algorithm. |
| homepage | |
| repository | https://github.com/daviddonna/abc-rs |
| max_upload_size | |
| id | 4530 |
| size | 839,678 |
Karaboga's Artificial Bee Colony in Rust (and in parallel!)
Documentation, including sample code.
There's also a demo, which animates the algorithm for your viewing pleasure. It also uses a couple useful techniques for applying the algorithm to a complex, persistent state.
Available from crates.io as abc.
The Artificial Bee Colony is an optimization algorithm. It considers a set of solution candidates by sending conceptual "bees" to work on those solutions. There are three kinds of bee:
The ABC algorithm can be -- and has been -- applied to a variety of applications. As with many such algorithms, the logic is fairly agnostic about the domain that it works in. In fact, the prerequisites for using the algorithm are:
A solution could be a game-playing AI, a blueprint for a building, or just a
point in space, and the abc crate treats them all alike. Simply implement
the Context
trait for a type of your choice, construct a Hive, and start running.
Speaking of running,abc supports two run modes:
The abc crate takes advantage of Rust's excellent concurrency support to
explore the same space. This means that heavy computation can be distributed
across multiple CPU cores, or I/O-bound evaluation can run without blocking.
The hive maintains a queue of bees, and the threads each take bees from the
queue and apply the bees' logic to the solutions. So, at a given moment, there
is a different bee working in each thread.