Kacemath/OperationsResearch
<h1 align="center">Operations Research Web Application</h1>
<p align="center"> <img src="https://insat.rnu.tn/assets/images/logoc.png" width="100" alt="INSAT Logo"><br><br> <a href="https://kacemath-operations-research.hf.space/" target="blank"> <img src="https://img.shields.io/badge/HuggingFace-Space-blue?logo=huggingface" alt="Try it on Hugging Face Spaces" /> </a> </p>
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.
Features
- 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.
Project Structure
.
├── 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 documentationPrerequisites
- Python 3.9 or higher
Environment Setup
1. Clone the repository
git clone https://github.com/KacemMathlouthi/OperationsResearch.git
cd OperationsResearch2. Create and activate a virtual environment
Linux/macOS
python3 -m venv venv
source venv/bin/activateWindows
python -m venv venv
venv\Scripts\activate3. Install dependencies
pip install -r requirements.txtRunning the Application
Ensure 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/.
Usage
Tabs Available:
- 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.
Notes
- Visualisations are generated with
matplotlib. - UI built with
Gradio Blocksusing tabbed layout. - PDF report embedded with base64 encoding.
