Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ispaneli/lippy
A module for solving linear programming problems on Python.
https://github.com/ispaneli/lippy
bnd branch-and-bound brute-force cutting-plane-method game-theory game-theory-algorithms gomory-cut linear-programming math mathematica mathematics optimization-algorithms optimization-methods python python-types python3 simplex simplex-algorithm simplex-method zero-sum-game
Last synced: 3 months ago
JSON representation
A module for solving linear programming problems on Python.
- Host: GitHub
- URL: https://github.com/ispaneli/lippy
- Owner: ispaneli
- License: mit
- Created: 2021-11-21T18:23:33.000Z (about 3 years ago)
- Default Branch: master
- Last Pushed: 2023-03-22T17:44:06.000Z (almost 2 years ago)
- Last Synced: 2024-11-01T01:53:06.164Z (3 months ago)
- Topics: bnd, branch-and-bound, brute-force, cutting-plane-method, game-theory, game-theory-algorithms, gomory-cut, linear-programming, math, mathematica, mathematics, optimization-algorithms, optimization-methods, python, python-types, python3, simplex, simplex-algorithm, simplex-method, zero-sum-game
- Language: Python
- Homepage: https://pypi.org/project/lippy
- Size: 136 KB
- Stars: 18
- Watchers: 3
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
Lippy - solving linear programming problems.
---
**Source Code**:
https://github.com/ispaneli/lippy---
**Lippy** is a module for solving **linear programming problems** on Python.
Provides:
1. [Simplex method in primal linear programming](#simplex-method-in-primal-linear-programming)
2. [Simplex method in dual linear programming](#simplex-method-in-dual-linear-programming)
3. [Branch and bound in integer linear programming](#branch-and-bound-in-integer-linear-programming)
4. [Brute force method in integer linear programming](#brute-force-method-in-integer-linear-programming)
5. [Cutting-plane method in integer linear programming](#cutting-plane-method-in-integer-linear-programming)
6. [Zero-sum game in game theory using Simplex method](#zero-sum-game-in-game-theory-using-simplex-method)---
## Simplex method in primal linear programming
```python
import lippy as lpc_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
```python
import lippy as lpc_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
```python
import lippy as lpc_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
```python
import lippy as lpc_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
```python
import lippy as lpc_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
```python
import lippy as lpgame_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:
1. FULL_LOG
2. MEDIUM_LOG
3. LOG_OFF *(default)*Logging is set when initializing a class object.
For example:
```python
simplex = lp.SimplexMethod(c_vec, a_matrix, b_vec, log_mode=lp.LogMode.FULL_LOG)
``````python
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](https://github.com/ispaneli/lippy/blob/master/LICENSE).