A user-friendly, Streamlit-based calculator for solving Integer Programming problems using optimization algorithms like Branch & Bound, Cutting Planes, and Heuristics.
Integer Programming is a mathematical technique aimed at finding optimal solutions with variables constrained to integer values. The Integer Programming Problem Solver (IPPS) offers a clean interface to define and solve a wide range of integer programming problems including:
- Linear Integer Programming
- Mixed-Integer Programming
- Binary Integer Programming
By utilizing advanced optimization methodologies, the tool ensures accurate, efficient solutions tailored for decision-makers in logistics, finance, engineering, and more.
- ✅ State-of-the-art optimization algorithms
- 👥 User authentication
- ✍️ Intuitive formulation input
- 📊 Solver and result analyzer
- 📦 Built with Streamlit and PuLP
- 📐 Supports both Maximization and Minimization objectives
- Import libraries:
streamlit
,pulp
,PIL
- Define UI alignment methods (
left_align
,right_align
) - Build solver logic using PuLP
- Implement login functionality
- Design UI with sidebar navigation:
- Homepage: Overview and applications
- Formulation: Mathematical model input
- Calculator: Interactive solver (post-login)
- Accept input for:
- Number of variables and constraints
- Objective function coefficients
- Constraint equations and RHS
- Variable bounds and types
- Solve using
solve_integer_programming()
- Display optimal result or infeasibility notice
Page | Description |
---|---|
Homepage | Overview and real-life use cases |
Formulation | Mathematical model formulation |
Calculator | Solver interface with problem inputs and results (requires login) |
- 📦 Supply chain optimization
- 🏗️ Project scheduling
- 💰 Portfolio selection
- 🏭 Production planning
- 🚛 Logistics & transportation
# Clone the repository
git clone https://github.com/your-username/IPPS.git
cd IPPS
# Install dependencies
pip install streamlit pulp Pillow
# Run the app
streamlit run app.py