All Projects → coin-or → Pulp

coin-or / Pulp

Licence: other
A python Linear Programming API

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Pulp

Choco Solver
An open-source Java library for Constraint Programming
Stars: ✭ 518 (-52.04%)
Mutual labels:  solver, constraints
PyMiniSolvers
A Python API for the MiniSat and MiniCard constraint solvers.
Stars: ✭ 18 (-98.33%)
Mutual labels:  solver, constraints
Logician
Logic programming in Swift
Stars: ✭ 182 (-83.15%)
Mutual labels:  solver, constraints
GHOST
General meta-Heuristic Optimization Solving Toolkit
Stars: ✭ 28 (-97.41%)
Mutual labels:  solver, constraints
Optaplanner
AI constraint solver in Java to optimize the vehicle routing problem, employee rostering, task assignment, maintenance scheduling, conference scheduling and other planning problems.
Stars: ✭ 2,454 (+127.22%)
Mutual labels:  solver, constraints
csb
A cloth and soft body simulation library, using position based dynamics.
Stars: ✭ 29 (-97.31%)
Mutual labels:  solver, constraints
Easyanchor
⚓️ Declarative, extensible, powerful Auto Layout
Stars: ✭ 432 (-60%)
Mutual labels:  constraints
Osqp
The Operator Splitting QP Solver
Stars: ✭ 689 (-36.2%)
Mutual labels:  solver
Convex.jl
A Julia package for disciplined convex programming
Stars: ✭ 417 (-61.39%)
Mutual labels:  solver
Nerdyui
An easy way to create and layout UI components for iOS.
Stars: ✭ 381 (-64.72%)
Mutual labels:  constraints
Intellidroid
A targeted input generator for Android that improves the effectiveness of dynamic malware analysis.
Stars: ✭ 46 (-95.74%)
Mutual labels:  constraints
Rbdl Orb
RBDL - Rigid Body Dynamics Library - ORB Version - The two main differences to the original rbdl is that this version has error handling and uses polymorphism for constraints
Stars: ✭ 33 (-96.94%)
Mutual labels:  constraints
Rein
Database constraints made easy for ActiveRecord.
Stars: ✭ 657 (-39.17%)
Mutual labels:  constraints
Flutter Ai Rubik Cube Solver
Flutter-Python rubiks cube solver.
Stars: ✭ 744 (-31.11%)
Mutual labels:  solver
Mylinearlayout
MyLayout is a powerful iOS UI framework implemented by Objective-C. It integrates the functions with Android Layout,iOS AutoLayout,SizeClass, HTML CSS float and flexbox and bootstrap. So you can use LinearLayout,RelativeLayout,FrameLayout,TableLayout,FlowLayout,FloatLayout,PathLayout,GridLayout,LayoutSizeClass to build your App 自动布局 UIView UITab…
Stars: ✭ 4,152 (+284.44%)
Mutual labels:  constraints
Tangramkit
TangramKit is a powerful iOS UI framework implemented by Swift. It integrates the functions with Android layout,iOS AutoLayout,SizeClass, HTML CSS float and flexbox and bootstrap. So you can use LinearLayout,RelativeLayout,FrameLayout,TableLayout,FlowLayout,FloatLayout,LayoutSizeClass to build your App 自动布局 UIView UITableView UICollectionView
Stars: ✭ 984 (-8.89%)
Mutual labels:  constraints
Uicollectionview Layouts Kit
📐 A set of custom layouts for UICollectionView with examples [Swift 5.3, iOS 12].
Stars: ✭ 410 (-62.04%)
Mutual labels:  constraints
Cppnumericalsolvers
a lightweight C++17 library of numerical optimization methods for nonlinear functions (Including L-BFGS-B for TensorFlow)
Stars: ✭ 638 (-40.93%)
Mutual labels:  solver
The Power Of Prolog
Introduction to modern Prolog
Stars: ✭ 776 (-28.15%)
Mutual labels:  constraints
Semver
Work with Semantic Versions in Go
Stars: ✭ 608 (-43.7%)
Mutual labels:  constraints

pulp


.. image:: https://travis-ci.org/coin-or/pulp.svg?branch=master :target: https://travis-ci.org/coin-or/pulp

PuLP is an LP modeler written in Python. PuLP can generate MPS or LP files and call GLPK_, COIN-OR CLP/CBC, CPLEX, GUROBI_, MOSEK_, XPRESS_, CHOCO_, MIPCL_, SCIP_ to solve linear problems.

Installation

The easiest way to install pulp is via PyPi <https://pypi.python.org/pypi/PuLP>_

If pip is available on your system::

 python -m pip install pulp

Otherwise follow the download instructions on the PyPi page.

If you want to install the latest version from github you can run the following::

python -m pip install -U git+https://github.com/coin-or/pulp

On Linux and OSX systems the tests must be run to make the default solver executable.

::

 sudo pulptest

Examples

See the examples directory for examples.

PuLP requires Python 2.7 or Python >= 3.4.

The examples use the default solver (CBC). To use other solvers they must be available (installed and accessible). For more information on how to do that, see the guide on configuring solvers <https://coin-or.github.io/pulp/guides/how_to_configure_solvers.html>_.

Documentation

Documentation is found on https://coin-or.github.io/pulp/.

Use LpVariable() to create new variables. To create a variable 0 <= x <= 3::

 x = LpVariable("x", 0, 3)

To create a variable 0 <= y <= 1::

 y = LpVariable("y", 0, 1)

Use LpProblem() to create new problems. Create "myProblem"::

 prob = LpProblem("myProblem", LpMinimize)

Combine variables to create expressions and constraints, then add them to the problem::

 prob += x + y <= 2

If you add an expression (not a constraint), it will become the objective::

 prob += -4*x + y

To solve with the default included solver::

 status = prob.solve()

To use another sovler to solve the problem::

 status = prob.solve(GLPK(msg = 0))

Display the status of the solution::

 LpStatus[status]
 > 'Optimal'

You can get the value of the variables using value(). ex::

 value(x)
 > 2.0

Exported Classes:

  • LpProblem -- Container class for a Linear programming problem

  • LpVariable -- Variables that are added to constraints in the LP

  • LpConstraint -- A constraint of the general form

    a1x1+a2x2 ...anxn (<=, =, >=) b
    
  • LpConstraintVar -- Used to construct a column of the model in column-wise modelling

Exported Functions:

  • value() -- Finds the value of a variable or expression
  • lpSum() -- given a list of the form [a1*x1, a2x2, ..., anxn] will construct a linear expression to be used as a constraint or variable
  • lpDot() --given two lists of the form [a1, a2, ..., an] and [ x1, x2, ..., xn] will construct a linear epression to be used as a constraint or variable

Building the documentation

The PuLP documentation is built with Sphinx <https://www.sphinx-doc.org>. We recommended using a virtual environment <https://docs.python.org/3/library/venv.html> to build the documentation locally.

To build, run the following in a terminal window, in the PuLP root directory

::

 python -m pip install -r requirements-dev.txt
 doc/make html

A folder named pulp-or-docs will be created in the same folder as the PuLP root directory. The home page for the documentation is pulp-or-docs/html/index.html which can be opened in a browser.

Comments, bug reports, patches and suggestions are welcome.

.. _Python: http://www.python.org/

.. _GLPK: http://www.gnu.org/software/glpk/glpk.html .. _CBC: https://github.com/coin-or/Cbc .. _CPLEX: http://www.cplex.com/ .. _GUROBI: http://www.gurobi.com/ .. _MOSEK: https://www.mosek.com/ .. _XPRESS: https://www.fico.com/es/products/fico-xpress-solver .. _CHOCO: https://choco-solver.org/ .. _MIPCL: http://mipcl-cpp.appspot.com/ .. _SCIP: https://www.scipopt.org/

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].