The portable universal library in global optimization.
Project description
porgo
When I was researching a function without given all local minima, like the underlined function:
$$ f(x)=\sum_{i=1}^{n/2}(-13+x_{2i-1}+((5-x_{2i})x_{2i}-2)x_{2i})^2+(-29+x_{2i-1}+((x_{2i}+1)x_{2i}-14)x_{2i})^2. $$
I used optimtool.unconstrain
to search local minima, got an efficient experience about searching the nearest minimum point. Add a mechanism to jump out of the local area would increase the runtime of the whole script, so porgo
is a new progam to accelerate to search global minima.
refer to test.py and the global minima of 4-dimensional $f(x)$ is (5, 4, 5, 4).
glos
glos is the main runtime to serve as a global search class, users can run train_gen module with given cycles at any times until the function searching process converged.
init:
- objective_function: Callable, a high-dimensional function with convex, non-convex, and many local minima.
- bounds: List[List[float]] | List[Tuple[float]], changes this value makes a significant influence of mini and fit_mini.
- mutation: float=0.5, increase this value makes the search radius larger.
- recombination: float=0.9, increase this value allows larger number of mutation.
rand_pop:
- population_size: int=50, randomly init the population (or called initial points) with shape at (population, dimension).
- verbose: bool=False, whether to output initial population when manually replace the random generated rule.
train_gen:
- cycles: int=1000, try to run several times (until converged) when give a smaller cycle number if search bounds is in large space.
result:
- verbose: bool=False, whether to output console information after search populations were updated (check self.mini and self.fit_mini, the top3 updated results are (self.mini, self.fit_mini) < (self.medi, self.fit_medi) < (self.maxi, self.fit_maxi)).
reference
Storn, R and Price, K, Differential Evolution - a Simple and Efficient Heuristic for Global Optimization over Continuous Spaces, Journal of Global Optimization, 1997, 11, 341 - 359.
LICENSE
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
File details
Details for the file porgo-1.1.0-py3-none-any.whl
.
File metadata
- Download URL: porgo-1.1.0-py3-none-any.whl
- Upload date:
- Size: 5.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.7.1 importlib_metadata/6.0.0 pkginfo/1.8.2 requests/2.27.0 requests-toolbelt/0.9.1 tqdm/4.64.1 CPython/3.8.12
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3ec87d8b76c15b6ea827ff50b7f94d86c680043ffacddc6bbfb291b4f35facc0 |
|
MD5 | 545677106529985fc4cfd66b264ee0f0 |
|
BLAKE2b-256 | a756f9677007b17353582650744732037bd5d53d8ce2c1053828c87440714cb0 |