Latest Threat Research:SANDWORM_MODE: Shai-Hulud-Style npm Worm Hijacks CI Workflows and Poisons AI Toolchains.Details
Socket
Book a DemoInstallSign in
Socket

pysolnp

Package Overview
Dependencies
Maintainers
1
Versions
9
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

pysolnp

This provides the SOLNP optimization Algorithm.

pipPyPI
Version
2025.10.17
Maintainers
1

codecov Documentation Status Python Versions

See full documentation on http://solnp.readthedocs.io.

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 for details.

Usage

Below is the Box example, for the complete example see /python_examples/example_box.py.

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:

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:

ParameterTypeDefault value*Description
obj_funcCallable[List, float]-The objective function f(x) to minimize.
par_start_valueList-The starting parameter x_0.
par_lower_limitListNoneThe parameter lower limit x_l.
par_upper_limitListNoneThe parameter upper limit x_u.
eq_funcCallable[List, float]NoneThe equality constraint function h(x).
eq_valuesListNoneThe equality constraint values e_x.
ineq_funcCallable[List, float]NoneThe inequality constraint function g(x).
ineq_lower_boundsListNoneThe inequality constraint lower limit g_l.
ineq_upper_boundsListNoneThe inequality constraint upper limit g_l.
rhofloat1.0Penalty weighting scalar for infeasability in the augmented objective function.**
max_major_iterint400Maximum number of outer iterations.
max_minor_iterint800Maximum number of inner iterations.
deltafloat1e-07Step-size for forward differentiation.
tolerancefloat1e-08Relative tolerance on optimality.
debugboolFalseIf 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.

PropertyTypeDescription
solve_valuefloatThe value of the objective function at optimum f(x*).
optimumList[float]A list of parameters for the optimum x*.
callbacksintNumber of callbacks done to find this optimum.
convergedbooleanIndicates if the algorithm converged or not.
hessian_matrixList[List[float]]The final Hessian Matrix used by pysolnp.

Use-cases and Applications

Authors

License

This project is licensed under the Boost License - see the license file for details.

Acknowledgments

  • Yinyu Ye - Publisher and mastermind behind the original SOLNP algorithm, Original Sources
  • Alexios Ghalanos and Stefan Theussl - The people behind RSOLNP, Github repository
  • Davis King - The mastermind behind Dlib, check out his blog! Blog

FAQs

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts