dealib.linprog package

Submodules

dealib.linprog._wrappers module

class dealib.linprog._wrappers.LPP(c: Optional[numpy.ndarray[Any, numpy.dtype[float]]] = None, A_ub: Optional[numpy.ndarray[Any, numpy.dtype[float]]] = None, b_ub: Optional[numpy.ndarray[Any, numpy.dtype[float]]] = None, A_eq: Optional[numpy.ndarray[Any, numpy.dtype[float]]] = None, b_eq: Optional[numpy.ndarray[Any, numpy.dtype[float]]] = None)

Bases: object

Linear programming problem.

Parameters
  • c (1-d array) – Objective function to optimize.

  • A_ub (2-d array) – Lhs matrix of inequalities constraints.

  • b_ub (1-d array) – Rhs vector of inequalities constraints.

  • A_eq (1-d array) – Lhs matrix of equalities constraints.

  • b_eq (1-d array) – Rhs vector of equalities constraints

A_eq: Optional[numpy.ndarray[Any, numpy.dtype[float]]] = None
A_ub: Optional[numpy.ndarray[Any, numpy.dtype[float]]] = None
b_eq: Optional[numpy.ndarray[Any, numpy.dtype[float]]] = None
b_ub: Optional[numpy.ndarray[Any, numpy.dtype[float]]] = None
c: Optional[numpy.ndarray[Any, numpy.dtype[float]]] = None
class dealib.linprog._wrappers.LPPResult(f: float, x: numpy.ndarray[Any, numpy.dtype[float]], slack: numpy.ndarray[Any, numpy.dtype[float]], dual: numpy.ndarray[Any, numpy.dtype[float]])

Bases: object

Result of linear programming problem.

Parameters
  • f (bool) – A value of objective function.

  • x (1-d array) – Solution vector at optima.

  • slack (2-d array) – Matrix of slack variables.

  • dual (2-d array) – Matrix of variables of dual LPP.

dual: numpy.ndarray[Any, numpy.dtype[float]]
f: float
slack: numpy.ndarray[Any, numpy.dtype[float]]
x: numpy.ndarray[Any, numpy.dtype[float]]

dealib.linprog._simplex module

dealib.linprog._simplex.simplex(lpp: dealib.linprog._wrappers.LPP, *, opt_f: Optional[bool] = True, opt_slacks: Optional[bool] = False, maxiter: Optional[int] = 1000, eps: Optional[float] = 1e-06, tol: Optional[float] = 1e-09) dealib.linprog._wrappers.LPPResult

Solves the given linear programming problem.

Parameters
  • lpp (LPP) – Linear programming problem.

  • opt_f (bool) – Flag that determines whether to optimize the objective function.

  • opt_slacks (bool) – Flag that determines whether to optimize the slack variables.

  • maxiter (int) – Maximal number of iteration.

  • eps (float) – Float number for slack optimization.

  • tol (float) – Tolerance for LPP solving.

Returns

LPP solution.

Return type

LPPResult

Example

>>> c = np.array([3, 2])
>>> A_ub = np.array([[2, 1], [-1, -3]])
>>> b_ub = np.array([50, -15])
>>> A_eq = np.array([[5, 6]])
>>> b_eq = np.array([60])
>>> lpp = LPP(c, A_ub, b_ub, A_eq, b_eq)
>>> result = simplex(lpp)
>>> print(result.f)
33.333333
>>> print(result.x)
[10, 1.666667]
>>> print(result.slack)
[28.333333, 0]