Lippy - solving linear programming problems.
Source Code: https://github.com/ispaneli/lippy
Lippy is a module for solving linear programming problems on Python.
Provides:
- Simplex method in primal linear programming
- Simplex method in dual linear programming
- Branch and bound in integer linear programming
- Brute force method in integer linear programming
- Cutting-plane method in integer linear programming
- Zero-sum game in game theory using Simplex method
Simplex method in primal linear programming
import lippy as lp
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()
Simplex method in dual linear programming
import lippy as lp
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()
Branch and bound in integer linear programming
import lippy as lp
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()
Brute force method in integer linear programming
import lippy as lp
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()
Cutting-plane method in integer linear programming
import lippy as lp
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()
Zero-sum game in game theory using Simplex method
import lippy as lp
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()
Logging
Existing logging modes:
- FULL_LOG
- MEDIUM_LOG
- LOG_OFF (default)
Logging is set when initializing a class object.
For example:
simplex = lp.SimplexMethod(c_vec, a_matrix, b_vec, log_mode=lp.LogMode.FULL_LOG)
bab = lp.BranchAndBound(c_vec, a_matrix, b_vec, log_mode=lp.LogMode.MEDIUM_LOG)
License
This project is licensed under the terms of the MIT license.
Release files for lippy 0.0.5
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| lippy-0.0.5.tar.gz | 14.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| lippy-0.0.5-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 32.5 kB
Release files / lippy-0.0.5.tar.gz
| Download URL | lippy-0.0.5.tar.gz |
|---|---|
| Size | 14.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
ac8b4782eb852a45fce1413c4844502cdc59faf688289cb0d9e4561e11938bae
|
|
BLAKE2b-256 checksum How to use checksums |
b71d1678e00420522710d34d6d1767a3e0516837d0b374a897917bc3bd6ccade
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.2 CPython/3.10.10
|
Release files / lippy-0.0.5-py3-none-any.whl
| Download URL | lippy-0.0.5-py3-none-any.whl |
|---|---|
| Size | 17.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
8a1a92f0c0e6e84251c70278595003a44f06ebd3197742ee6ffdec4380032ea4
|
|
BLAKE2b-256 checksum How to use checksums |
8b78aca6df391ca0e593cc6e47a629f41cd619a6efeb8844eb7e82a1ba1418af
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.2 CPython/3.10.10
|