Skip to content

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.

Notifications You must be signed in to change notification settings

KacemMathlouthi/OperationsResearch

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

51 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Operations Research Web Application

INSAT Logo

Try it on Hugging Face Spaces

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 documentation

Prerequisites

  • Python 3.9 or higher

Environment Setup

1. Clone the repository

git clone https://github.com/KacemMathlouthi/OperationsResearch.git
cd OperationsResearch

2. Create and activate a virtual environment

Linux/macOS

python3 -m venv venv
source venv/bin/activate

Windows

python -m venv venv
venv\Scripts\activate

3. Install dependencies

pip install -r requirements.txt

Running the Application

Ensure you are in the project root directory and your virtual environment is activated:

python app.py

The 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 Blocks using tabbed layout.
  • PDF report embedded with base64 encoding.

About

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.

Topics

Resources

Stars

Watchers

Forks

Contributors 5

Languages