A comprehensive Mixed Integer Linear Programming (MILP) solution for retail supply chain network optimization, developed as part of MIT's SCM275x course. This project optimizes facility location, capacity allocation, and transportation flows while minimizing total supply chain costs.
This repository contains advanced optimization models for solving complex supply chain network design problems using:
- Mathematical Optimization: MILP formulations with Gurobi and PuLP solvers
- Large-Scale Problem Solving: Handling 109,080+ demand entries across 70+ facilities
- Multi-Objective Optimization: Balancing facility, transportation, and labor costs
- Interactive Visualization: Folium-based network mapping and analysis
Supply chain network design requires optimal decisions on:
- Facility Location: Which distribution centers to open/close
- Capacity Planning: Sizing facilities for seasonal demand variations
- Transportation Optimization: Minimizing shipping costs across the network
- Resource Allocation: Optimizing labor and space utilization
MILP/
βββ supply_chain_optimization.ipynb # Interactive Jupyter notebook
βββ supply_chain_optimization.py # Main Gurobi implementation
βββ supply_chain_optimization_PuLP.py # PuLP solver implementation
βββ supply_chain_optimization_PuLP_V2_5.py # Enhanced PuLP version
βββ supply_chain_optimization_PuLP_V2_6.py # Latest PuLP implementation
βββ analyze_infeasibility.py # Model debugging utilities
βββ supply_chain_network.html # Interactive network visualization
βββ optimization_log.txt # Solver output logs
βββ Achive/ # Development versions and iterations
βββ test.py # Quick testing utilities
- Binary Variables: Facility open/close decisions
- Continuous Variables: Transportation flows and capacity utilization
- Constraint Sets: Demand satisfaction, capacity limits, flow conservation
- Objective Function: Multi-component cost minimization
- Gurobi Optimizer: Commercial-grade solver for large-scale problems
- PuLP Framework: Open-source alternative with multiple solver backends
- Performance Comparison: Benchmarking across different optimization engines
- Scalability Testing: Handling varying problem sizes efficiently
- Facility Costs: Fixed opening costs and variable operational expenses
- Transportation Costs: Distance-based shipping rates with volume discounts
- Labor Costs: Regional wage variations and productivity factors
- Storage Costs: Warehouse space requirements and utilization rates
- Demand Aggregation: Multiple aggregation levels (monthly, product family, city)
- Rate Modeling: Machine learning-based transportation rate prediction
- Geographic Analysis: Haversine distance calculations and mapping
- Seasonal Patterns: Multi-period optimization with demand variations
# Core optimization libraries
pip install gurobipy pulp pandas numpy scikit-learn
# Visualization and mapping
pip install folium matplotlib seaborn
# Jupyter environment
pip install jupyter ipywidgets- Academic License: Obtain free academic license from Gurobi
- Installation: Follow Gurobi installation guide
- License Activation: Configure license file or token
- Interactive Analysis:
jupyter notebook supply_chain_optimization.ipynb- Gurobi Optimization:
python supply_chain_optimization.py- PuLP Alternative:
python supply_chain_optimization_PuLP_V2_6.py- Facilities Data: Location coordinates, capacities, costs
- Demand Data: Store-level demand by product and time period
- Transportation Rates: Shipping costs between facilities and stores
- Labor Costs: Regional wage data and productivity metrics
- y[f]: Binary variable for facility f opening decision
- x[f,s,p,m]: Continuous variable for shipment quantity from facility f to store s for product p in month m
- w[f,m]: Continuous variable for workers at facility f in month m
Minimize: Ξ£(facility_costs) + Ξ£(transportation_costs) + Ξ£(labor_costs)
- Demand Satisfaction: All store demand must be met
- Capacity Constraints: Facility throughput and storage limits
- Flow Conservation: Material balance at each facility
- Labor Requirements: Adequate staffing for processing volumes
- Facility Selection: Optimal subset of 70+ potential locations
- Cost Breakdown: Detailed analysis of facility vs. transportation trade-offs
- Capacity Utilization: Seasonal patterns and efficiency metrics
- Network Flow: Optimal product flows across the supply chain
- Demand Variations: Impact of demand changes on network design
- Cost Parameters: Sensitivity to transportation and facility costs
- Capacity Constraints: Effects of facility size limitations
- Geographic Factors: Distance and regional cost impacts
- Gurobi Parameters: Time limits, optimality gaps, presolve settings
- PuLP Backends: COIN-OR, CPLEX, GLPK solver integration
- Memory Management: Efficient handling of large constraint matrices
- Parallel Processing: Multi-threaded optimization when available
- Problem Preprocessing: Data aggregation and constraint reduction
- Model Formulation: Efficient constraint generation and variable indexing
- Solution Methods: Branch-and-bound, cutting planes, heuristics
- Scalability: Techniques for handling enterprise-scale problems
- Interactive Maps: Folium-based network visualization
- Cost Analysis: Detailed breakdown of optimization results
- Infeasibility Diagnosis: Tools for debugging infeasible models
- Sensitivity Reports: Parameter analysis and what-if scenarios
- Cost Reduction: 10-20% reduction in total supply chain costs
- Service Improvement: Enhanced delivery performance and reliability
- Capacity Planning: Optimal facility sizing for seasonal variations
- Strategic Planning: Long-term network design and expansion decisions
- Inventory Optimization: Reduced safety stock through network effects
- Transportation Efficiency: Consolidated shipments and route optimization
- Labor Planning: Optimal workforce allocation across facilities
- Risk Management: Robust network design for demand uncertainty
This project demonstrates advanced concepts in:
- Operations Research: Large-scale MILP formulation and solution techniques
- Supply Chain Design: Multi-echelon network optimization
- Mathematical Modeling: Complex constraint systems and objective functions
- Computational Optimization: High-performance solver utilization
- Chopra, S., & Meindl, P. (2019). Supply Chain Management: Strategy, Planning, and Operation
- Simchi-Levi, D., et al. (2014). Designing and Managing the Supply Chain
- Nemhauser, G.L., & Wolsey, L.A. (1999). Integer and Combinatorial Optimization
- Gurobi Optimization Guide: Mixed-Integer Linear Programming
This project is licensed under the MIT License - see the LICENSE file for details.
Please read CONTRIBUTING.md for details on our code of conduct and the process for submitting pull requests.
Developed as part of MIT SCM275x - advancing the science and practice of supply chain network optimization through mathematical programming.