Skip to content

An artificial bee colony implementation in Python

License

Notifications You must be signed in to change notification settings

Engineero/honeybee

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

35 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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:

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:

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

Finally, initialize the colony and fit the objective function:

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