Skip to main content

An extension of PuLP, a linear programming problem modeling tool

Project description

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.

License: MIT


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")

# add if-then constraints
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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ppulp-0.1.0.tar.gz (9.9 kB view details)

Uploaded Source

Built Distribution

ppulp-0.1.0-py3-none-any.whl (12.9 kB view details)

Uploaded Python 3

File details

Details for the file ppulp-0.1.0.tar.gz.

File metadata

  • Download URL: ppulp-0.1.0.tar.gz
  • Upload date:
  • Size: 9.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.9.14

File hashes

Hashes for ppulp-0.1.0.tar.gz
Algorithm Hash digest
SHA256 faa4cc7a38da5b5b5b7ef8e9acf9c988f666b6fabe4da9d981d163c8b19db01a
MD5 9c3c14ed072687189f1876f6270f9f7c
BLAKE2b-256 84060aaaf36c6825671db0ff646b3566eefb5b857fc516c5e9f58cddaee5c4aa

See more details on using hashes here.

File details

Details for the file ppulp-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: ppulp-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 12.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.9.14

File hashes

Hashes for ppulp-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 829935731aa7e46fd3c1a5750bfb4c51480f5f94667bcf22dc519d75760d6ab6
MD5 e90d2ebaf9bd4f0737b4ae5f52701891
BLAKE2b-256 81f65c9e9f69f223d7cda9a7619c21bb93ba1e48552f4080d687a098d27d32a2

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page