Metadata-Version: 2.1
Name: honeybee
Version: 0.1.0a3
Summary: An artificial bee colony implementation in Python
Home-page: https://github.com/Engineero/honeybee
Author: Engineero
Author-email: engineerolabs@gmail.com
License: UNKNOWN
Project-URL: Documentation, https://engineero.github.io/honeybee
Project-URL: Source, https://github.com/Engineero/honeybee
Project-URL: Tracker, https://github.com/Engineero/honeybee/issues
Keywords: abc artificial bee colony optimization
Platform: UNKNOWN
Classifier: Development Status :: 2 - Pre-Alpha
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: MIT License
Classifier: Natural Language :: English
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.3
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Topic :: Scientific/Engineering
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Classifier: Topic :: Scientific/Engineering :: Artificial Life
Classifier: Topic :: Utilities
Description-Content-Type: text/markdown

# Honeybee

An artificial bee colony implementation in Python

## Installation

To install with `pip`:

    pip install honeybee

## Usage

To use, first install the package as above, then define a function that you
wish to optimize. This can be a simple mathematical formula, or something that
calls a complicated model training routine. The important thing is that it
depends on hyperparameters that can be passed to the function, and returns a
fitness measure that will be maximized by the algorithm:

```python
def my_func(**params):
    """ Implements Rastrigin's function of two inputs. """
    x = [v for v in params.values()]
    return 20 + sum([a**2 - 10*cos(2*np.pi*a) for a in x])
```    

Next define the ranges of parameters over which you wish to optimize:

```python
params = {'x1': (-5.12, 5.12),
          'x2': (-5.12, 5.12)}
```          

Finally, initialize the colony and fit the objective function:

```python
my_colony = Colony(my_func, params, num_bees=10)
my_colony.fit()
```


