An extension of PuLP, a linear programming problem modeling tool

# ppulp

P(retty)PuLP is an extension of PuLP, linear programming problem modeling tool.

You can use the basic features of pulp plus the following useful extensions to make modeling simpler. ## Install

PyPI

pip install ppulp


GitHub

git clone https://github.com/nariaki3551/ppulp.git


## Features

• Variable product
• If-then constraints
• Absolute values
• Piecewise linear approximation of nonlinear functions
• Logical operations (And, Or, Xor)
• Reduction (Sum, Prod)

## Examples

### Variables productions

# from pulp import *
from ppulp import *

# create variables
x = LpVariable("x", cat="Binary")
y = LpVariable("y", cat="Binary")

# create variable production
z = x * y


### If-then constriant

from ppulp import *

x = LpVariable("x", lowBound=-1)
y = LpVariable("y", lowBound=-1)

prob = LpProblem(sense="Minimize")

prob += (x <= 0) >> (y >= 0)  # if (x <= 0) then (y >= 0)
prob += (y <= 0) >> (x >= 0)  # if (y <= 0) then (x >= 0)


### Absolution value

x = LpVariable("x")
y = LpVariable("y")
Abs(x+y)


### Approximation of nonlinear functions

from ppulp import *
import math

x = LpVariable("x", lowBound=3)
y = LpVariable("y", lowBound=4)

# create non-linear function
f = PiecewiseLinear(math.log, xl=7, xu=100, num=3)

prob = LpProblem()
prob += f(x + y)
prob += f(x) >= 10


### Reduction

from ppulp import *

x = [LpVariable(name=f"x{i}", ini_value=2) for i in range(5)]

# summation
lpSum(x)

# production
lpProd(x)


## Project details

This version 0.1.0

Uploaded source
Uploaded py3