pypi version

LipPy

A module for solving linear programming problems on Python.

Install

pip install lippy

How to use

Import

import lippy as lp

1. Simplex method in primal linear programming:

c_vec = [6, 6, 6]
a_matrix = [[4, 1, 1],
            [1, 2, 0],
            [0, 0.5, 4]]
b_vec = [5, 3, 8]

simplex = lp.SimplexMethod(c_vec, a_matrix, b_vec)
solution, func_value = simplex.solve()

2. Simplex method in dual linear programming:

c_vec = [6, 6, 6]
a_matrix = [[4, 1, 1],
            [1, 2, 0],
            [0, 0.5, 4]]
b_vec = [5, 3, 8]

c_vec, a_matrix, b_vec = lp.primal_to_dual_lp(c_vec, a_matrix, b_vec)
simplex = lp.SimplexMethod(c_vec, a_matrix, b_vec)
solution, func_value = simplex.solve()

3. Branch and bound in integer linear programming:

c_vec = [3, 3, 7]
a_matrix = [[1, 1, 1],
            [1, 4, 0],
            [0, 0.5, 3]]
b_vec = [3, 5, 7]

bab = lp.BranchAndBound(c_vec, a_matrix, b_vec)
solution, func_value = bab.solve()

4. Brute force method in integer linear programming:

c_vec = [3, 3, 7]
a_matrix = [[1, 1, 1],
            [1, 4, 0],
            [0, 0.5, 3]]
b_vec = [3, 5, 7]

force = lp.BruteForce(c_vec, a_matrix, b_vec)
solution, func_value = force.solve()

5. Cutting-plane method in integer linear programming:

c_vec = [3, 3, 7]
a_matrix = [[1, 1, 1],
            [1, 4, 0],
            [0, 0.5, 3]]
b_vec = [3, 5, 7]

gomory = lp.CuttingPlaneMethod(c_vec, a_matrix, b_vec)
gomory.solve()

6. Zero-sum game in game theory (using Simplex method):

game_matrix = [[8, 1, 17, 8, 1],
               [12, 6, 11, 10, 16],
               [4, 19, 11, 15, 2],
               [17, 19, 6, 17, 16]]

game = lp.ZeroSumGame(game_matrix)
strategies = game.solve()

p.s. Conclusion of the solution:

You can use three logging modes: lp.FULL_LOG, lp.MEDIUM_LOG and lp.LOG_OFF.

These values are passed to the parameters of the class you are using.
The default value is lp.LOG_OFF.

Example:

simplex = lp.SimplexMethod(c_vec, a_matrix, b_vec, log_mode=lp.LOG_OFF)
# or
bab = lp.BranchAndBound(c_vec, a_matrix, b_vec, log_mode=lp.LOG_OFF)

GitHub

View Github