This project demonstrates the use of Linear Programming (PL) and Mixed-Integer Linear Programming (PLNE) for solving real-world optimisation problems using Gurobi. It uses Gradio to provide an interactive web interface.
- Production Planning (PL): Optimises the number of products to manufacture for maximum profit under resource constraints.
- Staff Scheduling (PLNE): Mock assignment of employees to shifts based on availability.
.
├── app.py # Main entry point of the Gradio application
├── assets/
│ └── compte_rendu.pdf # Project report
├── models/
│ └── gurobi_models.py # Gurobi-based solvers for PL and PLNE
├── ui/
│ └── gradio_sections.py # UI layout and Gradio component logic
├── requirements.txt # Python dependencies
└── README.md # Project documentation
- Python 3.9 or higher
git clone https://github.com/KacemMathlouthi/OperationsResearch.git
cd OperationsResearchpython3 -m venv venv
source venv/bin/activatepython -m venv venv
venv\Scripts\activatepip install -r requirements.txtEnsure you are in the project root directory and your virtual environment is activated:
python app.pyThe application will launch locally at http://127.0.0.1:7860/.
- Project Info: Displays team information and a PDF report.
- Production Planning (PL): Solve and visualise a linear programming problem using product and resource data.
- Staff Scheduling (PLNE): Simulated assignment of employees to shifts based on availability.
- Visualisations are generated with
matplotlib. - UI built with
Gradio Blocksusing tabbed layout. - PDF report embedded with base64 encoding.
