Skip to main content

Evolution inspired optimisation algorithms

Project description

Description

This package is a Python aims at providing a range of nature-inspired optimisation algorithms. This first version includes an implementation of genetic algorithm with "regularized evolution".

Installation

This package can be installed with "pip" or by cloning this repository

$ pip install evolution_opt

Example Usage

1) Define a function to be optimised

This function has to take a dictionary of parameter as argument:

def difficult_problem(param_dict):
    result = param_dict['x']**2 + (param_dict['y']+1)**2
    if param_dict['luck'] == 'lucky':
        pass
    else:
        result += 10
    return result

This function could be any process that takes parameters as input and outputs a scalar value.

It could evaluate a model's cross-validation score based on given hyperparameter values, a profit/cost function, the efficiency of a resourcing plan... The possibilities are limitless.

2) Define a search space

search_space = [
    Integer(-100,100, 'x'),
    Real(-100,100, 'y'),
    Categorical(['lucky', 'unlucky'], 'luck')
]

The search space can be composed of Integer, Real and Categorical variables. Numeric parameters are initialised with a lower bound, upper bound and a parameter name. Categorical parameters require a list of possible values and a parameter name.

3) Run the evolutionary algorithm

best_params = optimise(difficult_problem,search_space,minimize=True, 
                           population_size=20,n_rounds=500)   

# Prints:
# Number of Iterations: 500
# Best score: 0.00410559779230605
# Best parameters: {'x': -0.0, 'y': -1.0640749388786759, 'luck': 'lucky'}

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

evolution_opt-0.0.4.tar.gz (54.4 kB view hashes)

Uploaded Source

Built Distribution

evolution_opt-0.0.4-py3-none-any.whl (10.0 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page