A comprehensive desktop application for solving complex operations research problems using state-of-the-art optimization techniques. Built with Python, PyQt5, and Gurobi, this suite provides intuitive graphical interfaces for multiple optimization domains.
This project offers ready-to-use optimization solutions for real-world problems in logistics, transportation, network planning, and manufacturing. Each module features an interactive wizard-based interface, mathematical modeling with Gurobi, and detailed visualization of results.
- Maximum Coverage Location Problem with capacity-aware optimization
- Optimal placement of WiFi routers to maximize user coverage
- Support for 45+ router models (WiFi 5/6/6E standards)
- Budget and capacity constraints
- Interactive map visualization
- Task assignment and line balancing for distribution centers
- Sorting and packaging operations optimization
- Minimizes workstations, cycle time, and operational costs
- Precedence constraints and resource management
- Gantt charts and workload visualization
- Route planning for electric vehicles with energy constraints
- Battery consumption tracking and charging station optimization
- Time windows, waypoints, and road status handling
- Minimize travel time or energy consumption
- Distribution optimization from factories to warehouses
- Linear and Mixed-Integer Programming formulations
- Capacity constraints and fixed costs
- Minimize total transportation costs
- Manufacturing line optimization
- Flowshop scheduling with Gurobi
- Strategic facility placement
- Python 3.8+
- Gurobi 10.0+ with valid license (Academic licenses available)
- Operating System: Windows, Linux, or macOS
-
Clone the repository
git clone https://github.com/yassine-cloud/RO-Project.git cd RO_Project -
Install dependencies
pip install -r requirements.txt
-
Configure Gurobi license
- Obtain a Gurobi license (free for academics)
- Follow Gurobi's installation guide
-
Run the application
python main.py
Launch the application with python main.py to access the main menu. Select from five optimization modules:
- WiFi MCLP - Network deployment planning
- Transport Logistics - Factory-to-warehouse distribution
- Logistics - Warehouse operations optimization
- Electric Vehicle Routing - EV route planning
- Facility Location - Manufacturing optimization
Each module provides a step-by-step wizard:
- Input Data - Import CSV files or enter data manually
- Configuration - Set parameters and constraints
- Optimization - Solve with Gurobi's MIP solver
- Results - View solutions, statistics, and visualizations
- Export - Save results as JSON or CSV
RO_Project/
├── main.py # Application entry point
├── requirements.txt # Python dependencies
├── LICENSE # MIT License
│
├── interface/ # PyQt5 GUI modules
│ ├── main_window.py # Main menu
│ ├── wifi_deployment_wizard.py # WiFi MCLP interface
│ ├── logistics_window.py # Logistics interface
│ ├── transport_window.py # Transport interface
│ └── pages/ # Wizard pages for each module
│
├── projects/ # Optimization modules
│ ├── wifi_mclp/ # WiFi network deployment
│ ├── logistics/ # Warehouse logistics
│ ├── transport/ # Electric vehicle routing
│ ├── transport_logistics/ # Distribution planning
│ └── fabrication_montage/ # Manufacturing
│
├── api/ # Service layer
│ ├── dispatch.py # Module dispatcher
│ └── run_service.py # Service runner
│
└── tests/ # Unit tests
- Programming Language: Python 3.8+
- GUI Framework: PyQt5
- Optimization Solver: Gurobi Optimizer
- Data Processing: Pandas, NumPy
- Visualization: Matplotlib, Folium
- Testing: Pytest
All modules use Mixed-Integer Linear Programming (MILP) or Linear Programming (LP):
- Decision Variables: Binary (route selection) and continuous (quantities, time)
- Objective Functions: Minimize cost, time, energy, or maximize coverage
- Constraints: Capacity, precedence, energy, time windows, budget limits
Each module supports flexible configuration through:
- GUI inputs - Interactive parameter setting
- JSON files - Load saved scenarios
- CSV imports - Bulk data loading
- Python API - Programmatic access to solvers
Detailed documentation for each module:
- WiFi MCLP Documentation
- Transport Logistics Documentation
- Logistics Module Documentation
- Electric Vehicle Routing Documentation
Contributions are welcome! Please feel free to submit issues, feature requests, or pull requests.
- Fork the repository
- Create a feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
This project was developed as part of operations research coursework at INSAT (Institut National des Sciences Appliquées et de Technologie). It demonstrates practical applications of optimization theory in real-world scenarios.
- Gurobi Optimization for providing academic licenses
- PyQt5 for the robust GUI framework
- Operations Research course instructors and peers at INSAT
For questions, suggestions, or collaboration opportunities, please open an issue on GitHub.
Made with ❤️ for Operations Research