<!-- @Author: Thomas Firmin <ThomasFirmin> -->
<!-- @Date: 2022-05-03T15:41:48+02:00 -->
<!-- @Email: thomas.firmin@univ-lille.fr -->
<!-- @Project: Zellij -->
<!-- @Last modified by: ThomasFirmin -->
<!-- @Last modified time: 2022-05-03T15:44:11+02:00 -->
<!-- @License: CeCILL-C (http://www.cecill.info/index.fr.html) -->
<!-- @Copyright: Copyright (C) 2022 Thomas Firmin -->
![alt text](./sources/zellij_logo.png)
[![PyPI version shields.io](https://img.shields.io/pypi/v/zellij.svg)](https://pypi.org/project/zellij/)
[![PyPI license](https://img.shields.io/pypi/l/zellij.svg)](https://pypi.org/project/zellij/)
[![Documentation Status](https://readthedocs.org/projects/zellij/badge/?version=latest)](https://zellij.readthedocs.io/en/latest/?badge=latest)
[![GitHub latest commit](https://badgen.net/github/last-commit/ThomasFirmin/zellij/)](https://github.com/ThomasFirmin/zellij/commit/)
![Maintainer](https://img.shields.io/badge/maintainer-T.Firmin-blue)
**Zellij** is an open source Python framework for *HyperParameter Optimization* (HPO) which was orginally dedicated to *Fractal Decomposition based algorithms* [[1]](#1) [[2]](#2).
It includes tools to define mixed search space, manage objective functions, and a few algorithms.
To implements metaheuristics and other optimization methods, **Zellij** uses [DEAP](https://deap.readthedocs.io/)[[3]](#3) for the *Evolutionary Algorithms* part
and [BoTorch](https://botorch.org/) [[4]](#4) for *Bayesian Optimization*.
**Zellij** is defined as an easy to use and modular framework, based on Python object oriented paradigm.
See [documentation](https://zellij.readthedocs.io/en/latest/).
## Install Zellij
#### Original version
```
$ pip install zellij
```
#### Distributed Zellij
This version requires a MPI library, such as [MPICH](https://www.mpich.org/) or [Open MPI](https://www.open-mpi.org/).
It is based on [mpi4py](https://mpi4py.readthedocs.io/en/stable/intro.html#what-is-mpi)
```
$ pip install zellij[mpi]
```
User will then be able to use the `MPI` option of the `Loss` decorator.
```python
@Loss(MPI=True)
```
Then the python script must be executed using `mpiexec`:
```python
$ mpiexec -machinefile <path/to/hostfile> -n <number of processes> python3 <path/to/python/script>
```
## Dependencies
#### Original version
* **Python** >=3.6
* [numpy](https://numpy.org/)=>1.21.4
* [DEAP](https://deap.readthedocs.io/en/master/)>=1.3.1
* [botorch](https://botorch.org/)>=0.6.3.1
* [gpytorch](https://gpytorch.ai/)>=1.6.0
* [pandas](https://pandas.pydata.org/)>=1.3.4
* [enlighten](https://python-enlighten.readthedocs.io/en/stable/)>=1.10.2
#### MPI version
* **Python** >=3.6
* [numpy](https://numpy.org/)=>1.21.4
* [DEAP](https://deap.readthedocs.io/en/master/)>=1.3.1
* [botorch](https://botorch.org/)>=0.6.3.1
* [gpytorch](https://gpytorch.ai/)>=1.6.0
* [pandas](https://pandas.pydata.org/)>=1.3.4
* [enlighten](https://python-enlighten.readthedocs.io/en/stable/)>=1.10.2
* [mpi4py](https://mpi4py.readthedocs.io/en/stable/)>=3.1.2
## Contributors
### Design
* Thomas Firmin: thomas.firmin@univ-lille.fr
* El-Ghazali Talbi: el-ghazali.talbi@univ-lille.fr
## References
<a id="1">[1]</a>
Nakib, A., Ouchraa, S., Shvai, N., Souquet, L. & Talbi, E.-G. Deterministic metaheuristic based on fractal decomposition for large-scale optimization. Applied Soft Computing 61, 468–485 (2017).
<a id="2">[2]</a>
Demirhan, M., Özdamar, L., Helvacıoğlu, L. & Birbil, Ş. I. FRACTOP: A Geometric Partitioning Metaheuristic for Global Optimization. Journal of Global Optimization 14, 415–436 (1999).
<a id="3">[3]</a>
Félix-Antoine Fortin, François-Michel De Rainville, Marc-André Gardner, Marc Parizeau and Christian Gagné, "DEAP: Evolutionary Algorithms Made Easy", Journal of Machine Learning Research, vol. 13, pp. 2171-2175, jul 2012.
<a id="4">[4]</a>
M. Balandat, B. Karrer, D. R. Jiang, S. Daulton, B. Letham, A. G. Wilson, and E. Bakshy. BoTorch: A Framework for Efficient Monte-Carlo Bayesian Optimization. Advances in Neural Information Processing Systems 33, 2020.
Raw data
{
"_id": null,
"home_page": "https://github.com/ThomasFirmin/zellij",
"name": "zellij",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.6",
"maintainer_email": "",
"keywords": "fractal,continuous optimization,global optimization,black-box functions,decision space partitioning,exploration,exploitation,metaheuristics,tree search",
"author": "Thomas Firmin",
"author_email": "thomas.firmin@univ-lille.fr",
"download_url": "https://files.pythonhosted.org/packages/89/0d/f3ddbc85d0b2d81ab1452f77abeded880a592dcf218802a1ecf44acfcb23/zellij-1.0.1.tar.gz",
"platform": null,
"description": " <!-- @Author: Thomas Firmin <ThomasFirmin> -->\n <!-- @Date: 2022-05-03T15:41:48+02:00 -->\n <!-- @Email: thomas.firmin@univ-lille.fr -->\n <!-- @Project: Zellij -->\n <!-- @Last modified by: ThomasFirmin -->\n <!-- @Last modified time: 2022-05-03T15:44:11+02:00 -->\n <!-- @License: CeCILL-C (http://www.cecill.info/index.fr.html) -->\n <!-- @Copyright: Copyright (C) 2022 Thomas Firmin -->\n\n\n![alt text](./sources/zellij_logo.png)\n[![PyPI version shields.io](https://img.shields.io/pypi/v/zellij.svg)](https://pypi.org/project/zellij/)\n[![PyPI license](https://img.shields.io/pypi/l/zellij.svg)](https://pypi.org/project/zellij/)\n[![Documentation Status](https://readthedocs.org/projects/zellij/badge/?version=latest)](https://zellij.readthedocs.io/en/latest/?badge=latest)\n[![GitHub latest commit](https://badgen.net/github/last-commit/ThomasFirmin/zellij/)](https://github.com/ThomasFirmin/zellij/commit/)\n![Maintainer](https://img.shields.io/badge/maintainer-T.Firmin-blue)\n\n\n**Zellij** is an open source Python framework for *HyperParameter Optimization* (HPO) which was orginally dedicated to *Fractal Decomposition based algorithms* [[1]](#1) [[2]](#2).\nIt includes tools to define mixed search space, manage objective functions, and a few algorithms.\nTo implements metaheuristics and other optimization methods, **Zellij** uses [DEAP](https://deap.readthedocs.io/)[[3]](#3) for the *Evolutionary Algorithms* part\nand [BoTorch](https://botorch.org/) [[4]](#4) for *Bayesian Optimization*.\n**Zellij** is defined as an easy to use and modular framework, based on Python object oriented paradigm.\n\nSee [documentation](https://zellij.readthedocs.io/en/latest/).\n\n## Install Zellij\n\n#### Original version\n```\n$ pip install zellij\n```\n\n#### Distributed Zellij\n\nThis version requires a MPI library, such as [MPICH](https://www.mpich.org/) or [Open MPI](https://www.open-mpi.org/).\nIt is based on [mpi4py](https://mpi4py.readthedocs.io/en/stable/intro.html#what-is-mpi)\n\n```\n$ pip install zellij[mpi]\n```\n\nUser will then be able to use the `MPI` option of the `Loss` decorator.\n```python\n@Loss(MPI=True)\n```\nThen the python script must be executed using `mpiexec`:\n```python\n$ mpiexec -machinefile <path/to/hostfile> -n <number of processes> python3 <path/to/python/script>\n```\n\n## Dependencies\n\n#### Original version\n\n* **Python** >=3.6\n* [numpy](https://numpy.org/)=>1.21.4\n* [DEAP](https://deap.readthedocs.io/en/master/)>=1.3.1\n* [botorch](https://botorch.org/)>=0.6.3.1\n* [gpytorch](https://gpytorch.ai/)>=1.6.0\n* [pandas](https://pandas.pydata.org/)>=1.3.4\n* [enlighten](https://python-enlighten.readthedocs.io/en/stable/)>=1.10.2\n\n#### MPI version\n* **Python** >=3.6\n* [numpy](https://numpy.org/)=>1.21.4\n* [DEAP](https://deap.readthedocs.io/en/master/)>=1.3.1\n* [botorch](https://botorch.org/)>=0.6.3.1\n* [gpytorch](https://gpytorch.ai/)>=1.6.0\n* [pandas](https://pandas.pydata.org/)>=1.3.4\n* [enlighten](https://python-enlighten.readthedocs.io/en/stable/)>=1.10.2\n* [mpi4py](https://mpi4py.readthedocs.io/en/stable/)>=3.1.2\n\n## Contributors\n### Design\n* Thomas Firmin: thomas.firmin@univ-lille.fr\n* El-Ghazali Talbi: el-ghazali.talbi@univ-lille.fr\n\n## References\n<a id=\"1\">[1]</a>\nNakib, A., Ouchraa, S., Shvai, N., Souquet, L. & Talbi, E.-G. Deterministic metaheuristic based on fractal decomposition for large-scale optimization. Applied Soft Computing 61, 468\u2013485 (2017).\n\n<a id=\"2\">[2]</a>\nDemirhan, M., \u00d6zdamar, L., Helvac\u0131o\u011flu, L. & Birbil, \u015e. I. FRACTOP: A Geometric Partitioning Metaheuristic for Global Optimization. Journal of Global Optimization 14, 415\u2013436 (1999).\n\n<a id=\"3\">[3]</a>\nF\u00e9lix-Antoine Fortin, Fran\u00e7ois-Michel De Rainville, Marc-Andr\u00e9 Gardner, Marc Parizeau and Christian Gagn\u00e9, \"DEAP: Evolutionary Algorithms Made Easy\", Journal of Machine Learning Research, vol. 13, pp. 2171-2175, jul 2012.\n\n<a id=\"4\">[4]</a>\nM. Balandat, B. Karrer, D. R. Jiang, S. Daulton, B. Letham, A. G. Wilson, and E. Bakshy. BoTorch: A Framework for Efficient Monte-Carlo Bayesian Optimization. Advances in Neural Information Processing Systems 33, 2020.\n",
"bugtrack_url": null,
"license": "",
"summary": "A software framework for HyperParameters Optimization",
"version": "1.0.1",
"split_keywords": [
"fractal",
"continuous optimization",
"global optimization",
"black-box functions",
"decision space partitioning",
"exploration",
"exploitation",
"metaheuristics",
"tree search"
],
"urls": [
{
"comment_text": "",
"digests": {
"md5": "bc06e35965468a393aab8407371441ef",
"sha256": "0d15009097a0461e36ed6bb086c22f08d80eef2460d7e0c9fceea559047742ef"
},
"downloads": -1,
"filename": "zellij-1.0.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "bc06e35965468a393aab8407371441ef",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.6",
"size": 97202,
"upload_time": "2022-12-23T14:01:48",
"upload_time_iso_8601": "2022-12-23T14:01:48.770722Z",
"url": "https://files.pythonhosted.org/packages/9d/64/51498f0fa3cb582f1d252094e39d4eb054d3cf6bfbc024a71a25535713fb/zellij-1.0.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"md5": "53c57eff6a89da1b929085d8e0b52bd3",
"sha256": "72f6f3858105fe7ab0f4bf68e3b13766796ae40e05e60cc90611702226dce2df"
},
"downloads": -1,
"filename": "zellij-1.0.1.tar.gz",
"has_sig": false,
"md5_digest": "53c57eff6a89da1b929085d8e0b52bd3",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.6",
"size": 79088,
"upload_time": "2022-12-23T14:01:51",
"upload_time_iso_8601": "2022-12-23T14:01:51.013936Z",
"url": "https://files.pythonhosted.org/packages/89/0d/f3ddbc85d0b2d81ab1452f77abeded880a592dcf218802a1ecf44acfcb23/zellij-1.0.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2022-12-23 14:01:51",
"github": true,
"gitlab": false,
"bitbucket": false,
"github_user": "ThomasFirmin",
"github_project": "zellij",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "zellij"
}