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
is kept during the evolution process. In each iteration, the solution
is modified by adding a random vector
. In this way the new solution is modeled under the following expression:
Considering that the solution has d dimensions
, each coordinate is modified
by the random disturbance
modeled by a
Gaussian probability distribution defined as:
where and
, represent the standard deviation and the mean value,
respectively for dimension i. Since the value of
adds a modification around
, the mean value is considered zero
.
Once
has been calculated, it is tested whether the new position improves the quality of the previous solution
.
In this way, if the quality of
is better than
, the value of
is accepted as the new solution, otherwise
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
85ea625514d6a6996a097b910b60239f639e2673bbdedd9729ea556ad4219a37
|
|
| MD5 |
ff0484504dd157e239087373eaa1a43c
|
|
| BLAKE2b-256 |
83b2c21dbbadc2b302eaebbe04b6d2f5df954137ee34153a6f03a4f2e8fa1c37
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6ae671836b0eaa3ae8a6b2b74511714bf8be396c8d76696d41f69801611716b6
|
|
| MD5 |
339579671829808863974f5475c6cf3f
|
|
| BLAKE2b-256 |
aa25cfd8ffabd8bcedc5a97c12ddd61dc5aaa1f05c14284172c742c167c951a4
|