Skip to main content

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. 

Metadata

Release files for randomsearch 0.0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for randomsearch 0.0.1
File Size Uploaded
randomsearch-0.0.1.tar.gz 2.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for randomsearch 0.0.1
File Interpreter ABI Platform
randomsearch-0.0.1-py3-none-any.whl Python 3 none any Details

Total release size: 6.5 kB

Release files / randomsearch-0.0.1.tar.gz

Download URL randomsearch-0.0.1.tar.gz
Size 2.7 kB
Tags Source
SHA-256 checksum
How to use checksums
85ea625514d6a6996a097b910b60239f639e2673bbdedd9729ea556ad4219a37
BLAKE2b-256 checksum
How to use checksums
83b2c21dbbadc2b302eaebbe04b6d2f5df954137ee34153a6f03a4f2e8fa1c37
Upload date
Uploaded using Trusted Publishing?
What is 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

Release files / randomsearch-0.0.1-py3-none-any.whl

Download URL randomsearch-0.0.1-py3-none-any.whl
Size 3.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
6ae671836b0eaa3ae8a6b2b74511714bf8be396c8d76696d41f69801611716b6
BLAKE2b-256 checksum
How to use checksums
aa25cfd8ffabd8bcedc5a97c12ddd61dc5aaa1f05c14284172c742c167c951a4
Upload date
Uploaded using Trusted Publishing?
What is 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

Release history Release notifications | RSS feed

This release

0.0.1 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page