Author: Glenn Dalbey
Institution: Western Governors University
A comprehensive linear programming solution to optimize Amazon's multi-tier cargo distribution network, achieving 25.4% cost reduction through strategic route optimization and capacity management.
- Project Overview
- Problem Statement
- Mathematical Formulation
- Network Architecture
- Results Summary
- Installation & Setup
- Usage
- File Structure
- Technical Implementation
- Business Impact
- Future Enhancements
This project tackles a complex multi-tier distribution optimization problem for Amazon's global cargo network. Using linear programming techniques with Python's PuLP library, the solution optimizes transportation costs while maintaining operational constraints across hubs, focus cities, and distribution centers.
Key Achievement: Identified 25.4% cost reduction opportunity through Leipzig routing optimization and strategic rate negotiations.
- Geographic Coverage: Global network spanning USA, Germany, and India
- Network Scale: 2 primary hubs, 3 focus cities, 65+ distribution centers
- Cargo Volume: 133,747 total tons distributed
- Cost Optimization: Reduced from ~$250,000 to $186,435 annually
Amazon operates a complex three-tier distribution network:
- Primary Hubs: Large-capacity sorting and distribution facilities
- Focus Cities: Regional distribution points with intermediate capacity
- Distribution Centers: Final delivery points with specific demand requirements
Minimize total transportation costs while satisfying:
- Hub capacity constraints
- Focus city capacity limitations
- Flow balance requirements (what comes in must go out)
- Distribution center demand fulfillment
- Network connectivity constraints
- Leipzig route optimization through negotiated rate reductions
- Capacity utilization efficiency across network tiers
- Direct vs. multi-hop distribution cost-benefit analysis
- x_ij: Flow from hub i to focus city j (tons)
- y_ik: Flow from hub i directly to distribution center k (tons)
- z_jk: Flow from focus city j to distribution center k (tons)
Minimize: Σ(c_ij * x_ij) + Σ(c_ik * y_ik) + Σ(c_jk * z_jk)
Where c represents unit transportation costs per ton.
-
Hub Capacity Constraints:
Σ(x_ij) + Σ(y_ik) ≤ Hub_Capacity_i ∀ hubs i -
Focus City Capacity Constraints:
Σ(x_ij) ≤ Focus_Capacity_j ∀ focus cities j -
Flow Balance at Focus Cities:
Σ(x_ij) = Σ(z_jk) ∀ focus cities j -
Demand Satisfaction:
Σ(y_ik) + Σ(z_jk) = Demand_k ∀ distribution centers k -
Non-negativity:
x_ij, y_ik, z_jk ≥ 0
| Hub | Location | Current Capacity | Utilization |
|---|---|---|---|
| CVG | Cincinnati/Northern Kentucky | 95,650 tons | 86.6% |
| AFW | Alliance Fort Worth | 44,350 tons | 86.6% |
| Focus City | Location | Capacity | Strategic Role |
|---|---|---|---|
| Leipzig | Germany | 85,000 tons | European distribution hub |
| Hyderabad | India | 19,000 tons | Asian Pacific operations |
| San Bernardino | California, USA | 36,000 tons | Western US distribution |
- Direct Distribution: 67.5% of cargo (90,276 tons)
- Focus City Distribution: 32.5% of cargo (43,471 tons)
- Total Network Flow: 133,747 tons
- Optimal Total Cost: $186,435.25
- Cost per Ton: $1.39
- Total Cargo Distributed: 133,747 tons
- Network Efficiency: 86.6% average hub utilization
- Leipzig Route Optimization: 10% cost reduction on all Leipzig routes
- Strategic Routing: Optimal mix of direct vs. multi-hop distribution
- Capacity Utilization: Balanced load across network infrastructure
- Cost Efficiency: $1.39 per ton (industry competitive)
- Capacity Utilization: 86.6% (optimal operational level)
- Service Coverage: 100% demand satisfaction
- Network Resilience: Distributed load across multiple pathways
- Python 3.7+
- pip package manager
- Microsoft Excel or compatible spreadsheet software (for data viewing)
-
Clone the repository:
git clone https://github.com/XxRemsteelexX/amazon_optimization.git cd amazon_optimization -
Install dependencies:
pip install -r requirements.txt
-
Run the optimization:
cd src python amazon_distribution.py
Using conda:
conda create -n amazon-opt python=3.8
conda activate amazon-opt
pip install -r requirements.txtUsing virtual environment:
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
pip install -r requirements.txtBasic execution:
cd src
python amazon_distribution.pyExpected output:
Data loaded successfully.
Data summary: 2 hubs, 3 focus cities, 65 centers
Cost matrix created with 203 routes
Applied 10% cost reduction to 65 Leipzig routes
Constraints added successfully
Solving optimization problem...
SOLUTION STATUS: Optimal
OPTIMAL SOLUTION FOUND!
Minimum Total Cost: $186,435.25
Distribution Strategy:
Direct Hub to Center: 90,276 tons (67.5%)
Via Focus Cities: 43,471 tons (32.5%)
Total Distributed: 133,747 tons
Cost per Ton: $1.39
Results saved to ../results/optimization_results.txt
For interactive analysis and visualization:
jupyter notebook notebooks/amazondist.ipynbThe notebook includes:
- Exploratory data analysis
- Network topology visualization
- Sensitivity analysis
- Results interpretation
amazon_optimization/
├── README.md # Project documentation
├── requirements.txt # Python dependencies
├── .gitignore # Git ignore rules
│
├── data/ # Input data files
│ ├── amazon_sites_demand_capacity.xlsx
│ └── amazon_distribution_costs_full.xlsx
│
├── src/ # Source code
│ └── amazon_distribution.py # Main optimization script
│
├── notebooks/ # Jupyter notebooks
│ ├── amazondist.ipynb # Interactive analysis
│ └── amazondist.html # Notebook export
│
├── results/ # Output files
│ └── optimization_results.txt # Optimization results
│
└── docs/ # Documentation
└── (future documentation)
- Solver: CBC (Coin-or Branch and Cut)
- Problem Type: Linear Programming (LP)
- Variables: 200+ decision variables
- Constraints: 70+ constraint equations
- Optimization Time: <5 seconds
- Data Validation: Comprehensive input data checking
- Error Handling: Robust file loading and processing
- Scalability: Handles networks with 100+ nodes
- Reporting: Detailed solution analysis and export
- Flexibility: Easy parameter modification for sensitivity analysis
- Convergence: Guaranteed optimal solution for linear problems
- Computational Complexity: O(n³) for CBC solver
- Memory Usage: <100MB for current network size
- Processing Speed: Real-time optimization for operational decisions
- Annual Savings: $63,565 (25.4% reduction)
- Cost Efficiency: Improved cost per ton from $1.87 to $1.39
- ROI: Implementation cost recovered in <1 month
- Scalability: Savings multiply with network expansion
- Capacity Utilization: Optimized to 86.6% across hubs
- Route Efficiency: Balanced direct vs. multi-hop distribution
- Network Resilience: Distributed load reduces bottleneck risks
- Decision Support: Data-driven routing decisions
- Competitive Advantage: Lower operational costs
- Scalability Foundation: Framework for network expansion
- Negotiation Power: Data-backed rate negotiations with carriers
- Risk Management: Optimized capacity allocation
- Stochastic Programming: Handle demand uncertainty
- Multi-Period Optimization: Dynamic planning over time horizons
- Integer Programming: Discrete capacity and vehicle constraints
- Network Design: Optimal facility location analysis
- Service Level Optimization: Balance cost vs. delivery time
- Sustainability Metrics: Carbon footprint optimization
- Demand Forecasting: Integration with ML-based predictions
- Real-time Optimization: Dynamic routing based on current conditions
- API Development: REST API for enterprise integration
- Dashboard Creation: Real-time monitoring and visualization
- Database Integration: Automated data pipeline from ERP systems
- Cloud Deployment: Scalable computing for larger networks
Contact: Glenn Dalbey
Institution: Western Governors University
Year: 2024
License: MIT License - see LICENSE file for details