Skip to main content

A simple n-dimensional random search algorithm

Project description

Random search algorithm

A simple n-dimensional random search algorithm.

Introduction

The Random search algorithm was the first method that based its optimization strategy on a stochastic process. Only one solution equation is kept during the evolution process. In each iteration, the solution equation is modified by adding a random vector equation . In this way the new solution is modeled under the following expression:

equation

Considering that the solution equation has d dimensions equation , each coordinate is modified equation by the random disturbance equation modeled by a Gaussian probability distribution defined as:

equation

where equation and equation, represent the standard deviation and the mean value, respectively for dimension i. Since the value of equation adds a modification around equation , the mean value is considered zero equation .

Once equation has been calculated, it is tested whether the new position improves the quality of the previous solution equation. In this way, if the quality of equation is better than equation, the value of equation is accepted as the new solution, otherwise equation remains unchanged.

Installation

GitHub

To install this library from GitHub run the following commands in the terminal:

$ git clone https://github.com/angelgaspar/randomsearch.git
$ cd randomsearch
$ python setup.py install

PyPi

If you have pip installed run the following commands in the terminal:

$ pip install randomsearch

Usage

This is an usage example:

import randomsearch as rs


def your_function(x):
    return -(x[0] ** 2 + x[1] ** 2) + 4


a, b = rs.optimize(function=your_function, dimensions=2, lower_boundary=[-14, -14], upper_boundary= [10, 10], max_iter=10000, maximize=True)
print(a, ",", b)
Note: The optimize function returns the best fitness and the best solution.
If you want to minimize a function maximize should be False. 

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

randomsearch-0.0.1.tar.gz (2.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

randomsearch-0.0.1-py3-none-any.whl (3.8 kB view details)

Uploaded Python 3

File details

Details for the file randomsearch-0.0.1.tar.gz.

File metadata

  • Download URL: randomsearch-0.0.1.tar.gz
  • Upload date:
  • Size: 2.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/50.3.0 requests-toolbelt/0.9.1 tqdm/4.48.2 CPython/3.7.3

File hashes

Hashes for randomsearch-0.0.1.tar.gz
Algorithm Hash digest
SHA256 85ea625514d6a6996a097b910b60239f639e2673bbdedd9729ea556ad4219a37
MD5 ff0484504dd157e239087373eaa1a43c
BLAKE2b-256 83b2c21dbbadc2b302eaebbe04b6d2f5df954137ee34153a6f03a4f2e8fa1c37

See more details on using hashes here.

File details

Details for the file randomsearch-0.0.1-py3-none-any.whl.

File metadata

  • Download URL: randomsearch-0.0.1-py3-none-any.whl
  • Upload date:
  • Size: 3.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/50.3.0 requests-toolbelt/0.9.1 tqdm/4.48.2 CPython/3.7.3

File hashes

Hashes for randomsearch-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 6ae671836b0eaa3ae8a6b2b74511714bf8be396c8d76696d41f69801611716b6
MD5 339579671829808863974f5475c6cf3f
BLAKE2b-256 aa25cfd8ffabd8bcedc5a97c12ddd61dc5aaa1f05c14284172c742c167c951a4

See more details on using hashes here.

Supported by

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