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