From 8d6e521bf6e331120441878a04e00523004f285b Mon Sep 17 00:00:00 2001 From: CoprDistGit Date: Wed, 10 May 2023 04:33:02 +0000 Subject: automatic import of python-pysolnp --- python-pysolnp.spec | 496 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 496 insertions(+) create mode 100644 python-pysolnp.spec (limited to 'python-pysolnp.spec') diff --git a/python-pysolnp.spec b/python-pysolnp.spec new file mode 100644 index 0000000..b73bef4 --- /dev/null +++ b/python-pysolnp.spec @@ -0,0 +1,496 @@ +%global _empty_manifest_terminate_build 0 +Name: python-pysolnp +Version: 2022.3.13 +Release: 1 +Summary: This provides the SOLNP optimizaiton Algorithm. +License: Boost Software License +URL: https://github.com/KristerSJakobsson/solnp +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/7a/7e/aabec9721b0696983001974f9534ede9773cf9d2b9e4ec849450e04ca8f4/pysolnp-2022.3.13.tar.gz + +Requires: python3-autopep8 +Requires: python3-pytest + +%description +[![codecov](https://codecov.io/gh/KristerSJakobsson/solnp/branch/master/graph/badge.svg)](https://codecov.io/gh/KristerSJakobsson/solnp) +[![Documentation Status](https://readthedocs.org/projects/solnp/badge/?version=latest)](https://solnp.readthedocs.io/en/latest/?badge=latest) +[![Python Versions](https://img.shields.io/pypi/pyversions/pysolnp.svg)](https://pypi.org/project/pysolnp/) + +See full documentation on [http://solnp.readthedocs.io](https://solnp.readthedocs.io/en/latest/). + +# pysolnp - Nonlinear optimization with the augmented Lagrange method + +## Description +SOLNP solves the general nonlinear optimization problem on the form: +``` + minimize f(x) + subject to + g(x) = e_x + l_h <= h(x) <= u_h + l_x < x < u_X +``` +where f(x), g(x) and h(x) are smooth functions. + +## Compatibility +Precompiled Wheels are available for CPython: +- Windows: Python 3.6+ +- Linux: Python 3.6+ +- Mac OS: Python 3.6+ + +For other systems, or to have BLAS and LAPACK support, please build the wheels manually. +Note: For best results, building it from source is recommended, as BLAS and LAPACK will make a difference. + +## Installation +Simply install the package through PyPi with: +`pip install pysolnp` + +When compiling from source code you will need CMake.
+See the [README for the C++ code](https://github.com/KristerSJakobsson/solnp/blob/master/README.md) for details. + +## Usage +Below is the Box example, for the complete example see [/python_examples/example_box.py](/python_examples/example_box.py). +```python +import pysolnp + +def f_objective_function(x): + return -1 * x[0] * x[1] * x[2] + +def g_equality_constraint_function(x): + return [4 * x[0] * x[1] + 2 * x[1] * x[2] + 2 * x[2] * x[0]] + +x_starting_point = [1.1, 1.1, 9.0] +x_l = [1.0, 1.0, 1.0] +x_u = [10.0, 10.0, 10.0] +e_x = [100] + +result = pysolnp.solve( + obj_func=f_objective_function, + par_start_value=x_starting_point, + par_lower_limit=x_l, + par_upper_limit=x_u, + eq_func=g_equality_constraint_function, + eq_values=e_x) + +result.solve_value +result.optimum +result.callbacks +result.converged +``` + +Output: +``` +>>> result.solve_value +-48.11252206814995 +>>> result.optimum +[2.8867750707815447, 2.8867750713194273, 5.773407748939196] +>>> result.callbacks +118 +>>> result.converged +True +``` + +## Parameters +The basic signature is: +```python +solve(obj_func: function, par_start_value: List, par_lower_limit: object = None, par_upper_limit: object = None, eq_func: object = None, eq_values: object = None, ineq_func: object = None, ineq_lower_bounds: object = None, ineq_upper_bounds: object = None, rho: float = 1.0, max_major_iter: int = 10, max_minor_iter: int = 10, delta: float = 1e-05, tolerance: float = 0.0001, debug: bool = False) -> pysolnp.Result +``` + +Inputs: + +| Parameter | Type | Default value* | Description | +| -------------------|:--------------------------|:-----------------|-----------------------------------------------------------------------------------| +| obj_func | Callable\[List, float\] | - | The objective function f(x) to minimize. | +| par_start_value | List | - | The starting parameter x_0. | +| par_lower_limit | List | None | The parameter lower limit x_l. | +| par_upper_limit | List | None | The parameter upper limit x_u. | +| eq_func | Callable\[List, float\] | None | The equality constraint function h(x). | +| eq_values | List | None | The equality constraint values e_x. | +| ineq_func | Callable\[List, float\] | None | The inequality constraint function g(x). | +| ineq_lower_bounds | List | None | The inequality constraint lower limit g_l. | +| ineq_upper_bounds | List | None | The inequality constraint upper limit g_l. | +| rho | float | 1.0 | Penalty weighting scalar for infeasability in the augmented objective function.** | +| max_major_iter | int | 400 | Maximum number of outer iterations. | +| max_minor_iter | int | 800 | Maximum number of inner iterations. | +| delta | float | 1e-07 | Step-size for forward differentiation. | +| tolerance | float | 1e-08 | Relative tolerance on optimality. | +| debug | bool | False | If set to true some debug output will be printed. | + +*Defaults for configuration parameters are based on the defaults for Rsolnp.
+**Higher values means the solution will bring the solution into the feasible region with higher weight. Very high values might lead to numerical ill conditioning or slow down convergence. + +Output: +The function returns the `pysolnp.Result` with the below properties. + +| Property | Type | Description | +| -------------------|:----------------------|-------------------------------------------------------| +| solve_value | float | The value of the objective function at optimum f(x*). | +| optimum | List\[float\] | A list of parameters for the optimum x*. | +| callbacks | int | Number of callbacks done to find this optimum. | +| converged | boolean | Indicates if the algorithm converged or not. | +| hessian_matrix | List\[List\[float\]\] | The final Hessian Matrix used by pysolnp. | + +## Use-cases and Applications +* NMPC - Nonlinear model predictive controls-case studies using Matlab, REXYGEN and pysolnp NLP solver under Python environment by Štěpán Ožana. +[[NMPC Overhead Crane (PDF)](https://github.com/StepanOzana/NMPC/raw/main/NMPC_Overhead_Crane/NMPC_overhead_crane_description.pdf)] +[[GitHub Source Code](https://github.com/StepanOzana/NMPC)] +[[Štěpán's Homepage](http://stepan-ozana.com/index.php?lang=EN)] + +## Authors + +* **Krister S Jakobsson** - *Implementation* - krister.s.jakobsson@gmail.com + +## License + +This project is licensed under the Boost License - see the [license](LICENSE.md) file for details. + +## Acknowledgments + +* **Yinyu Ye** - Publisher and mastermind behind the original SOLNP algorithm, +[Original Sources](https://web.stanford.edu/~yyye/matlab/) +* **Alexios Ghalanos and Stefan Theussl** - The people behind RSOLNP, +[Github repository](https://github.com/cran/Rsolnp) +* **Davis King** - The mastermind behind Dlib, check out his blog! [Blog](http://blog.dlib.net/) + + + + +%package -n python3-pysolnp +Summary: This provides the SOLNP optimizaiton Algorithm. +Provides: python-pysolnp +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +BuildRequires: python3-cffi +BuildRequires: gcc +BuildRequires: gdb +%description -n python3-pysolnp +[![codecov](https://codecov.io/gh/KristerSJakobsson/solnp/branch/master/graph/badge.svg)](https://codecov.io/gh/KristerSJakobsson/solnp) +[![Documentation Status](https://readthedocs.org/projects/solnp/badge/?version=latest)](https://solnp.readthedocs.io/en/latest/?badge=latest) +[![Python Versions](https://img.shields.io/pypi/pyversions/pysolnp.svg)](https://pypi.org/project/pysolnp/) + +See full documentation on [http://solnp.readthedocs.io](https://solnp.readthedocs.io/en/latest/). + +# pysolnp - Nonlinear optimization with the augmented Lagrange method + +## Description +SOLNP solves the general nonlinear optimization problem on the form: +``` + minimize f(x) + subject to + g(x) = e_x + l_h <= h(x) <= u_h + l_x < x < u_X +``` +where f(x), g(x) and h(x) are smooth functions. + +## Compatibility +Precompiled Wheels are available for CPython: +- Windows: Python 3.6+ +- Linux: Python 3.6+ +- Mac OS: Python 3.6+ + +For other systems, or to have BLAS and LAPACK support, please build the wheels manually. +Note: For best results, building it from source is recommended, as BLAS and LAPACK will make a difference. + +## Installation +Simply install the package through PyPi with: +`pip install pysolnp` + +When compiling from source code you will need CMake.
+See the [README for the C++ code](https://github.com/KristerSJakobsson/solnp/blob/master/README.md) for details. + +## Usage +Below is the Box example, for the complete example see [/python_examples/example_box.py](/python_examples/example_box.py). +```python +import pysolnp + +def f_objective_function(x): + return -1 * x[0] * x[1] * x[2] + +def g_equality_constraint_function(x): + return [4 * x[0] * x[1] + 2 * x[1] * x[2] + 2 * x[2] * x[0]] + +x_starting_point = [1.1, 1.1, 9.0] +x_l = [1.0, 1.0, 1.0] +x_u = [10.0, 10.0, 10.0] +e_x = [100] + +result = pysolnp.solve( + obj_func=f_objective_function, + par_start_value=x_starting_point, + par_lower_limit=x_l, + par_upper_limit=x_u, + eq_func=g_equality_constraint_function, + eq_values=e_x) + +result.solve_value +result.optimum +result.callbacks +result.converged +``` + +Output: +``` +>>> result.solve_value +-48.11252206814995 +>>> result.optimum +[2.8867750707815447, 2.8867750713194273, 5.773407748939196] +>>> result.callbacks +118 +>>> result.converged +True +``` + +## Parameters +The basic signature is: +```python +solve(obj_func: function, par_start_value: List, par_lower_limit: object = None, par_upper_limit: object = None, eq_func: object = None, eq_values: object = None, ineq_func: object = None, ineq_lower_bounds: object = None, ineq_upper_bounds: object = None, rho: float = 1.0, max_major_iter: int = 10, max_minor_iter: int = 10, delta: float = 1e-05, tolerance: float = 0.0001, debug: bool = False) -> pysolnp.Result +``` + +Inputs: + +| Parameter | Type | Default value* | Description | +| -------------------|:--------------------------|:-----------------|-----------------------------------------------------------------------------------| +| obj_func | Callable\[List, float\] | - | The objective function f(x) to minimize. | +| par_start_value | List | - | The starting parameter x_0. | +| par_lower_limit | List | None | The parameter lower limit x_l. | +| par_upper_limit | List | None | The parameter upper limit x_u. | +| eq_func | Callable\[List, float\] | None | The equality constraint function h(x). | +| eq_values | List | None | The equality constraint values e_x. | +| ineq_func | Callable\[List, float\] | None | The inequality constraint function g(x). | +| ineq_lower_bounds | List | None | The inequality constraint lower limit g_l. | +| ineq_upper_bounds | List | None | The inequality constraint upper limit g_l. | +| rho | float | 1.0 | Penalty weighting scalar for infeasability in the augmented objective function.** | +| max_major_iter | int | 400 | Maximum number of outer iterations. | +| max_minor_iter | int | 800 | Maximum number of inner iterations. | +| delta | float | 1e-07 | Step-size for forward differentiation. | +| tolerance | float | 1e-08 | Relative tolerance on optimality. | +| debug | bool | False | If set to true some debug output will be printed. | + +*Defaults for configuration parameters are based on the defaults for Rsolnp.
+**Higher values means the solution will bring the solution into the feasible region with higher weight. Very high values might lead to numerical ill conditioning or slow down convergence. + +Output: +The function returns the `pysolnp.Result` with the below properties. + +| Property | Type | Description | +| -------------------|:----------------------|-------------------------------------------------------| +| solve_value | float | The value of the objective function at optimum f(x*). | +| optimum | List\[float\] | A list of parameters for the optimum x*. | +| callbacks | int | Number of callbacks done to find this optimum. | +| converged | boolean | Indicates if the algorithm converged or not. | +| hessian_matrix | List\[List\[float\]\] | The final Hessian Matrix used by pysolnp. | + +## Use-cases and Applications +* NMPC - Nonlinear model predictive controls-case studies using Matlab, REXYGEN and pysolnp NLP solver under Python environment by Štěpán Ožana. +[[NMPC Overhead Crane (PDF)](https://github.com/StepanOzana/NMPC/raw/main/NMPC_Overhead_Crane/NMPC_overhead_crane_description.pdf)] +[[GitHub Source Code](https://github.com/StepanOzana/NMPC)] +[[Štěpán's Homepage](http://stepan-ozana.com/index.php?lang=EN)] + +## Authors + +* **Krister S Jakobsson** - *Implementation* - krister.s.jakobsson@gmail.com + +## License + +This project is licensed under the Boost License - see the [license](LICENSE.md) file for details. + +## Acknowledgments + +* **Yinyu Ye** - Publisher and mastermind behind the original SOLNP algorithm, +[Original Sources](https://web.stanford.edu/~yyye/matlab/) +* **Alexios Ghalanos and Stefan Theussl** - The people behind RSOLNP, +[Github repository](https://github.com/cran/Rsolnp) +* **Davis King** - The mastermind behind Dlib, check out his blog! [Blog](http://blog.dlib.net/) + + + + +%package help +Summary: Development documents and examples for pysolnp +Provides: python3-pysolnp-doc +%description help +[![codecov](https://codecov.io/gh/KristerSJakobsson/solnp/branch/master/graph/badge.svg)](https://codecov.io/gh/KristerSJakobsson/solnp) +[![Documentation Status](https://readthedocs.org/projects/solnp/badge/?version=latest)](https://solnp.readthedocs.io/en/latest/?badge=latest) +[![Python Versions](https://img.shields.io/pypi/pyversions/pysolnp.svg)](https://pypi.org/project/pysolnp/) + +See full documentation on [http://solnp.readthedocs.io](https://solnp.readthedocs.io/en/latest/). + +# pysolnp - Nonlinear optimization with the augmented Lagrange method + +## Description +SOLNP solves the general nonlinear optimization problem on the form: +``` + minimize f(x) + subject to + g(x) = e_x + l_h <= h(x) <= u_h + l_x < x < u_X +``` +where f(x), g(x) and h(x) are smooth functions. + +## Compatibility +Precompiled Wheels are available for CPython: +- Windows: Python 3.6+ +- Linux: Python 3.6+ +- Mac OS: Python 3.6+ + +For other systems, or to have BLAS and LAPACK support, please build the wheels manually. +Note: For best results, building it from source is recommended, as BLAS and LAPACK will make a difference. + +## Installation +Simply install the package through PyPi with: +`pip install pysolnp` + +When compiling from source code you will need CMake.
+See the [README for the C++ code](https://github.com/KristerSJakobsson/solnp/blob/master/README.md) for details. + +## Usage +Below is the Box example, for the complete example see [/python_examples/example_box.py](/python_examples/example_box.py). +```python +import pysolnp + +def f_objective_function(x): + return -1 * x[0] * x[1] * x[2] + +def g_equality_constraint_function(x): + return [4 * x[0] * x[1] + 2 * x[1] * x[2] + 2 * x[2] * x[0]] + +x_starting_point = [1.1, 1.1, 9.0] +x_l = [1.0, 1.0, 1.0] +x_u = [10.0, 10.0, 10.0] +e_x = [100] + +result = pysolnp.solve( + obj_func=f_objective_function, + par_start_value=x_starting_point, + par_lower_limit=x_l, + par_upper_limit=x_u, + eq_func=g_equality_constraint_function, + eq_values=e_x) + +result.solve_value +result.optimum +result.callbacks +result.converged +``` + +Output: +``` +>>> result.solve_value +-48.11252206814995 +>>> result.optimum +[2.8867750707815447, 2.8867750713194273, 5.773407748939196] +>>> result.callbacks +118 +>>> result.converged +True +``` + +## Parameters +The basic signature is: +```python +solve(obj_func: function, par_start_value: List, par_lower_limit: object = None, par_upper_limit: object = None, eq_func: object = None, eq_values: object = None, ineq_func: object = None, ineq_lower_bounds: object = None, ineq_upper_bounds: object = None, rho: float = 1.0, max_major_iter: int = 10, max_minor_iter: int = 10, delta: float = 1e-05, tolerance: float = 0.0001, debug: bool = False) -> pysolnp.Result +``` + +Inputs: + +| Parameter | Type | Default value* | Description | +| -------------------|:--------------------------|:-----------------|-----------------------------------------------------------------------------------| +| obj_func | Callable\[List, float\] | - | The objective function f(x) to minimize. | +| par_start_value | List | - | The starting parameter x_0. | +| par_lower_limit | List | None | The parameter lower limit x_l. | +| par_upper_limit | List | None | The parameter upper limit x_u. | +| eq_func | Callable\[List, float\] | None | The equality constraint function h(x). | +| eq_values | List | None | The equality constraint values e_x. | +| ineq_func | Callable\[List, float\] | None | The inequality constraint function g(x). | +| ineq_lower_bounds | List | None | The inequality constraint lower limit g_l. | +| ineq_upper_bounds | List | None | The inequality constraint upper limit g_l. | +| rho | float | 1.0 | Penalty weighting scalar for infeasability in the augmented objective function.** | +| max_major_iter | int | 400 | Maximum number of outer iterations. | +| max_minor_iter | int | 800 | Maximum number of inner iterations. | +| delta | float | 1e-07 | Step-size for forward differentiation. | +| tolerance | float | 1e-08 | Relative tolerance on optimality. | +| debug | bool | False | If set to true some debug output will be printed. | + +*Defaults for configuration parameters are based on the defaults for Rsolnp.
+**Higher values means the solution will bring the solution into the feasible region with higher weight. Very high values might lead to numerical ill conditioning or slow down convergence. + +Output: +The function returns the `pysolnp.Result` with the below properties. + +| Property | Type | Description | +| -------------------|:----------------------|-------------------------------------------------------| +| solve_value | float | The value of the objective function at optimum f(x*). | +| optimum | List\[float\] | A list of parameters for the optimum x*. | +| callbacks | int | Number of callbacks done to find this optimum. | +| converged | boolean | Indicates if the algorithm converged or not. | +| hessian_matrix | List\[List\[float\]\] | The final Hessian Matrix used by pysolnp. | + +## Use-cases and Applications +* NMPC - Nonlinear model predictive controls-case studies using Matlab, REXYGEN and pysolnp NLP solver under Python environment by Štěpán Ožana. +[[NMPC Overhead Crane (PDF)](https://github.com/StepanOzana/NMPC/raw/main/NMPC_Overhead_Crane/NMPC_overhead_crane_description.pdf)] +[[GitHub Source Code](https://github.com/StepanOzana/NMPC)] +[[Štěpán's Homepage](http://stepan-ozana.com/index.php?lang=EN)] + +## Authors + +* **Krister S Jakobsson** - *Implementation* - krister.s.jakobsson@gmail.com + +## License + +This project is licensed under the Boost License - see the [license](LICENSE.md) file for details. + +## Acknowledgments + +* **Yinyu Ye** - Publisher and mastermind behind the original SOLNP algorithm, +[Original Sources](https://web.stanford.edu/~yyye/matlab/) +* **Alexios Ghalanos and Stefan Theussl** - The people behind RSOLNP, +[Github repository](https://github.com/cran/Rsolnp) +* **Davis King** - The mastermind behind Dlib, check out his blog! [Blog](http://blog.dlib.net/) + + + + +%prep +%autosetup -n pysolnp-2022.3.13 + +%build +%py3_build + +%install +%py3_install +install -d -m755 %{buildroot}/%{_pkgdocdir} +if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi +if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi +if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi +if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi +pushd %{buildroot} +if [ -d usr/lib ]; then + find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/lib64 ]; then + find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/bin ]; then + find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/sbin ]; then + find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst +fi +touch doclist.lst +if [ -d usr/share/man ]; then + find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst +fi +popd +mv %{buildroot}/filelist.lst . +mv %{buildroot}/doclist.lst . + +%files -n python3-pysolnp -f filelist.lst +%dir %{python3_sitearch}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Wed May 10 2023 Python_Bot - 2022.3.13-1 +- Package Spec generated -- cgit v1.2.3