%global _empty_manifest_terminate_build 0 Name: python-optlang Version: 1.6.1 Release: 1 Summary: Formulate optimization problems using sympy expressions and solve them using interfaces to third-party optimization software (e.g. GLPK). License: Apache-2.0 URL: https://github.com/opencobra/optlang Source0: https://mirrors.nju.edu.cn/pypi/web/packages/90/9b/5343d9a18a7e5e4d87fcb18058044eb4e94e0a44e160d43ac9132cf5deec/optlang-1.6.1.tar.gz BuildArch: noarch Requires: python3-six Requires: python3-swiglpk Requires: python3-sympy Requires: python3-black Requires: python3-isort Requires: python3-tox %description *Sympy based mathematical programming language* |PyPI| |Python Versions| |License| |Code of Conduct| |GitHub Actions| |Coverage Status| |Documentation Status| |Gitter| |JOSS| |DOI| Optlang is a Python package for solving mathematical optimization problems, i.e. maximizing or minimizing an objective function over a set of variables subject to a number of constraints. Optlang provides a common interface to a series of optimization tools, so different solver backends can be changed in a transparent way. Optlang's object-oriented API takes advantage of the symbolic math library `sympy `__ to allow objective functions and constraints to be easily formulated from symbolic expressions of variables (see examples). Show us some love by staring this repo if you find optlang useful! Also, please use the GitHub `issue tracker `_ to let us know about bugs or feature requests, or our `gitter channel `_ if you have problems or questions regarding optlang. Installation ~~~~~~~~~~~~ Install using pip pip install optlang This will also install `swiglpk `_, an interface to the open source (mixed integer) LP solver `GLPK `_. Quadratic programming (and MIQP) is supported through additional optional solvers (see below). Dependencies ~~~~~~~~~~~~ The following dependencies are needed. - `sympy >= 1.0.0 `__ - `six >= 1.9.0 `__ - `swiglpk >= 1.4.3 `__ The following are optional dependencies that allow other solvers to be used. - `cplex `__ (LP, MILP, QP, MIQP) - `gurobipy `__ (LP, MILP, QP, MIQP) - `scipy `__ (LP) - `osqp `__ (LP, QP) Example ~~~~~~~ Formulating and solving the problem is straightforward (example taken from `GLPK documentation `__): from __future__ import print_function from optlang import Model, Variable, Constraint, Objective # All the (symbolic) variables are declared, with a name and optionally a lower and/or upper bound. x1 = Variable('x1', lb=0) x2 = Variable('x2', lb=0) x3 = Variable('x3', lb=0) # A constraint is constructed from an expression of variables and a lower and/or upper bound (lb and ub). c1 = Constraint(x1 + x2 + x3, ub=100) c2 = Constraint(10 * x1 + 4 * x2 + 5 * x3, ub=600) c3 = Constraint(2 * x1 + 2 * x2 + 6 * x3, ub=300) # An objective can be formulated obj = Objective(10 * x1 + 6 * x2 + 4 * x3, direction='max') # Variables, constraints and objective are combined in a Model object, which can subsequently be optimized. model = Model(name='Simple model') model.objective = obj model.add([c1, c2, c3]) status = model.optimize() print("status:", model.status) print("objective value:", model.objective.value) print("----------") for var_name, var in model.variables.iteritems(): print(var_name, "=", var.primal) The example will produce the following output: status: optimal %package -n python3-optlang Summary: Formulate optimization problems using sympy expressions and solve them using interfaces to third-party optimization software (e.g. GLPK). Provides: python-optlang BuildRequires: python3-devel BuildRequires: python3-setuptools BuildRequires: python3-pip %description -n python3-optlang *Sympy based mathematical programming language* |PyPI| |Python Versions| |License| |Code of Conduct| |GitHub Actions| |Coverage Status| |Documentation Status| |Gitter| |JOSS| |DOI| Optlang is a Python package for solving mathematical optimization problems, i.e. maximizing or minimizing an objective function over a set of variables subject to a number of constraints. Optlang provides a common interface to a series of optimization tools, so different solver backends can be changed in a transparent way. Optlang's object-oriented API takes advantage of the symbolic math library `sympy `__ to allow objective functions and constraints to be easily formulated from symbolic expressions of variables (see examples). Show us some love by staring this repo if you find optlang useful! Also, please use the GitHub `issue tracker `_ to let us know about bugs or feature requests, or our `gitter channel `_ if you have problems or questions regarding optlang. Installation ~~~~~~~~~~~~ Install using pip pip install optlang This will also install `swiglpk `_, an interface to the open source (mixed integer) LP solver `GLPK `_. Quadratic programming (and MIQP) is supported through additional optional solvers (see below). Dependencies ~~~~~~~~~~~~ The following dependencies are needed. - `sympy >= 1.0.0 `__ - `six >= 1.9.0 `__ - `swiglpk >= 1.4.3 `__ The following are optional dependencies that allow other solvers to be used. - `cplex `__ (LP, MILP, QP, MIQP) - `gurobipy `__ (LP, MILP, QP, MIQP) - `scipy `__ (LP) - `osqp `__ (LP, QP) Example ~~~~~~~ Formulating and solving the problem is straightforward (example taken from `GLPK documentation `__): from __future__ import print_function from optlang import Model, Variable, Constraint, Objective # All the (symbolic) variables are declared, with a name and optionally a lower and/or upper bound. x1 = Variable('x1', lb=0) x2 = Variable('x2', lb=0) x3 = Variable('x3', lb=0) # A constraint is constructed from an expression of variables and a lower and/or upper bound (lb and ub). c1 = Constraint(x1 + x2 + x3, ub=100) c2 = Constraint(10 * x1 + 4 * x2 + 5 * x3, ub=600) c3 = Constraint(2 * x1 + 2 * x2 + 6 * x3, ub=300) # An objective can be formulated obj = Objective(10 * x1 + 6 * x2 + 4 * x3, direction='max') # Variables, constraints and objective are combined in a Model object, which can subsequently be optimized. model = Model(name='Simple model') model.objective = obj model.add([c1, c2, c3]) status = model.optimize() print("status:", model.status) print("objective value:", model.objective.value) print("----------") for var_name, var in model.variables.iteritems(): print(var_name, "=", var.primal) The example will produce the following output: status: optimal %package help Summary: Development documents and examples for optlang Provides: python3-optlang-doc %description help *Sympy based mathematical programming language* |PyPI| |Python Versions| |License| |Code of Conduct| |GitHub Actions| |Coverage Status| |Documentation Status| |Gitter| |JOSS| |DOI| Optlang is a Python package for solving mathematical optimization problems, i.e. maximizing or minimizing an objective function over a set of variables subject to a number of constraints. Optlang provides a common interface to a series of optimization tools, so different solver backends can be changed in a transparent way. Optlang's object-oriented API takes advantage of the symbolic math library `sympy `__ to allow objective functions and constraints to be easily formulated from symbolic expressions of variables (see examples). Show us some love by staring this repo if you find optlang useful! Also, please use the GitHub `issue tracker `_ to let us know about bugs or feature requests, or our `gitter channel `_ if you have problems or questions regarding optlang. Installation ~~~~~~~~~~~~ Install using pip pip install optlang This will also install `swiglpk `_, an interface to the open source (mixed integer) LP solver `GLPK `_. Quadratic programming (and MIQP) is supported through additional optional solvers (see below). Dependencies ~~~~~~~~~~~~ The following dependencies are needed. - `sympy >= 1.0.0 `__ - `six >= 1.9.0 `__ - `swiglpk >= 1.4.3 `__ The following are optional dependencies that allow other solvers to be used. - `cplex `__ (LP, MILP, QP, MIQP) - `gurobipy `__ (LP, MILP, QP, MIQP) - `scipy `__ (LP) - `osqp `__ (LP, QP) Example ~~~~~~~ Formulating and solving the problem is straightforward (example taken from `GLPK documentation `__): from __future__ import print_function from optlang import Model, Variable, Constraint, Objective # All the (symbolic) variables are declared, with a name and optionally a lower and/or upper bound. x1 = Variable('x1', lb=0) x2 = Variable('x2', lb=0) x3 = Variable('x3', lb=0) # A constraint is constructed from an expression of variables and a lower and/or upper bound (lb and ub). c1 = Constraint(x1 + x2 + x3, ub=100) c2 = Constraint(10 * x1 + 4 * x2 + 5 * x3, ub=600) c3 = Constraint(2 * x1 + 2 * x2 + 6 * x3, ub=300) # An objective can be formulated obj = Objective(10 * x1 + 6 * x2 + 4 * x3, direction='max') # Variables, constraints and objective are combined in a Model object, which can subsequently be optimized. model = Model(name='Simple model') model.objective = obj model.add([c1, c2, c3]) status = model.optimize() print("status:", model.status) print("objective value:", model.objective.value) print("----------") for var_name, var in model.variables.iteritems(): print(var_name, "=", var.primal) The example will produce the following output: status: optimal %prep %autosetup -n optlang-1.6.1 %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-optlang -f filelist.lst %dir %{python3_sitelib}/* %files help -f doclist.lst %{_docdir}/* %changelog * Fri May 05 2023 Python_Bot - 1.6.1-1 - Package Spec generated