Skip to content

Repository files navigation

Global Supply Chain Network Optimization & Robustness Analysis

A group project for Business Analytics course, focusing on Optimization and Simulation for Global Supply Chain of a virtual company.

📖 Executive Summary

This project addresses a strategic facility location and production allocation problem for PrecisionLink, a global electronics manufacturer. The goal was to design a cost-efficient and resilient supply chain network capable of serving five key global markets: USA, Germany, Japan, Brazil, and India.

Using Mixed-Integer Linear Programming (MILP) for optimization and Monte Carlo Simulation for risk assessment, we identified a network configuration that minimizes total costs while maintaining 100% robustness against demand volatility.

💼 Business Problem

PrecisionLink faces the challenge of expanding its production capacity to meet uncertain future demand across different regions. Key decision variables include:

  • Where to open factories? (Binary decision: Open/Close)
  • What capacity level? (Low vs. High Capacity)
  • How to allocate production? (Flow from Factory $i$ to Market $j$)

The objective is to minimize the Total Cost, which consists of:

  1. Fixed Costs: Annualized setup/operating costs for factories.
  2. Variable Costs: Production and shipping costs per unit.

🛠️ Methodology

We adopted a two-stage quantitative approach using Python:

  1. Optimization Modeling (MILP)

We formulated the problem using the PuLP library.

  • Objective Function: Minimize $Z = \sum \text{Fixed Costs} + \sum \text{Variable Costs}$.
  • Constraints:
    • Demand Satisfaction: Total production shipped to market $j$ $\ge$ Demand of $j$.
    • Capacity: Total production at factory $i$ $\le$ Installed Capacity of $i$.
    • Logical Constraints: Cannot produce if the factory is not opened.
  1. Robustness Analysis (Monte Carlo Simulation)

To account for market volatility, we ran 500 simulation iterations.

  • Randomness: Demand for each market was treated as a normal distribution $N(\mu, \sigma)$ based on forecasted data.
  • Process: For each iteration, we generated a random demand scenario and solved the MILP model to find the optimal network for that specific scenario.
  • Robustness Score: Calculated the probability of a facility being "Open" across all 500 scenarios.

📊 Key Insights & Results

Based on the simulation of 500 demand scenarios:

  1. Optimal Network Configuration
    • USA (High Capacity) and Japan (High Capacity) factories are the most robust nodes, with a 100% opening probability. They serve as the backbone of the global supply chain.
    • Brazil and India facilities showed lower utilization probabilities, suggesting they are sensitive to demand spikes but not essential for base-load demand.
  2. Financial Performance
    • Mean Total Cost: ~$92.6 Million
    • Cost Volatility: Standard Deviation of ~$6.0 Million
    • Risk Profile: The simulation quantified the financial risk, allowing stakeholders to budget for a "worst-case" scenario (e.g., 95th percentile cost).

💻 Tech Stack

  • Language: Python
  • Optimization: PuLP (Linear Programming solver)
  • Data Manipulation: Pandas, NumPy
  • Visualization: Matplotlib, Seaborn (for cost distribution and sensitivity plots)

P.S. This project was completed as part of the Business Analytics curriculum at Johns Hopkins Carey Business School.

About

A group project for Business Analytics course, focusing on Optimization and Simulation for Global Supply Chain of a virtual company.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages