| Name | porgo JSON |
| Version |
1.1.1
JSON |
| download |
| home_page | https://github.com/linjing-lab/porgo |
| Summary | The portable universal library in global optimization. |
| upload_time | 2024-10-20 05:38:03 |
| maintainer | None |
| docs_url | None |
| author | 林景 |
| requires_python | None |
| license | MIT |
| keywords |
|
| VCS |
 |
| bugtrack_url |
|
| requirements |
No requirements were recorded.
|
| Travis-CI |
No Travis.
|
| coveralls test coverage |
No coveralls.
|
# 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:
- minimum: *bool=False*, whether to output mini and fit_mini after first if struct was executed.
- 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
[MIT LICENSE](./LICENSE)
Raw data
{
"_id": null,
"home_page": "https://github.com/linjing-lab/porgo",
"name": "porgo",
"maintainer": null,
"docs_url": null,
"requires_python": null,
"maintainer_email": null,
"keywords": null,
"author": "\u6797\u666f",
"author_email": "linjing010729@163.com",
"download_url": "https://github.com/linjing-lab/porgo/tags",
"platform": null,
"description": "# porgo\n\nWhen I was researching a function without given all local minima, like the underlined function:\n\n$$\nf(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.\n$$\n\nI 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.\n\nrefer to test.py and the global minima of 4-dimensional $f(x)$ is (5, 4, 5, 4).\n\n## glos\n\nglos 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.\n\ninit:\n- objective_function: *Callable*, a high-dimensional function with convex, non-convex, and many local minima.\n- bounds: *List[List[float]] | List[Tuple[float]]*, changes this value makes a significant influence of mini and fit_mini.\n- mutation: *float=0.5*, increase this value makes the search radius larger.\n- recombination: *float=0.9*, increase this value allows larger number of mutation.\n\nrand_pop:\n- population_size: *int=50*, randomly init the population (or called initial points) with shape at (population, dimension).\n- verbose: *bool=False*, whether to output initial population when manually replace the random generated rule.\n\ntrain_gen:\n- cycles: *int=1000*, try to run several times (until converged) when give a smaller cycle number if search bounds is in large space.\n\nresult:\n- minimum: *bool=False*, whether to output mini and fit_mini after first if struct was executed.\n- 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)).\n\n## reference\n\nStorn, 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.\n\n## LICENSE\n\n[MIT LICENSE](./LICENSE)\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "The portable universal library in global optimization.",
"version": "1.1.1",
"project_urls": {
"Download": "https://github.com/linjing-lab/porgo/tags",
"Homepage": "https://github.com/linjing-lab/porgo",
"Source": "https://github.com/linjing-lab/porgo/tree/main/porgo/",
"Tracker": "https://github.com/linjing-lab/porgo/issues"
},
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "8bbc891cd02336a95c20f9770dda64b98c711b839dbf294380913d75cdb51967",
"md5": "b52f7b1eef6bec1692d296904ff6561b",
"sha256": "1d22abf6ae890893a8620a90aee305f93ae19cfe0ba060a67fbc7379c8f28eea"
},
"downloads": -1,
"filename": "porgo-1.1.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "b52f7b1eef6bec1692d296904ff6561b",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 5666,
"upload_time": "2024-10-20T05:38:03",
"upload_time_iso_8601": "2024-10-20T05:38:03.446367Z",
"url": "https://files.pythonhosted.org/packages/8b/bc/891cd02336a95c20f9770dda64b98c711b839dbf294380913d75cdb51967/porgo-1.1.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-10-20 05:38:03",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "linjing-lab",
"github_project": "porgo",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "porgo"
}