Skip to main content

A module for solving linear programming problems.

Project description

pypi downloads

LipPy

A module for solving linear programming problems on Python.

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)

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

lippy-0.0.4.tar.gz (9.8 kB view hashes)

Uploaded Source

Built Distribution

lippy-0.0.4-py3-none-any.whl (13.6 kB view hashes)

Uploaded Python 3

Supported by

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