|
1 | | -# Solving-facility-location-decision-problem-using-Python-Gurobi |
2 | | -Solving facility location decision problem using Python & Gurobi |
| 1 | +# 📦 Facility Location Optimization with Python & Gurobi |
| 2 | + |
| 3 | +This project is a hands-on implementation of the **Facility Location Problem (FLP)** using Python and the Gurobi optimization solver. The scenarios and data used are based on a case study from the [MITx MicroMasters program in Supply Chain Management](https://micromasters.mit.edu/scm/), module [Supply Chain Design](https://www.edx.org/learn/supply-chain-design/massachusetts-institute-of-technology-supply-chain-design), which I took in 2022. |
| 4 | + |
| 5 | +--- |
| 6 | + |
| 7 | +## 🧠 Problem Definition: Facility Location Problem (FLP) |
| 8 | + |
| 9 | +The **Facility Location Problem (FLP)** is a classic optimization problem in supply chain management. It involves choosing the optimal locations for facilities (e.g., warehouses, distribution centers, plants) and determining product flows to minimize total operational costs while satisfying customer demands and capacity constraints. |
| 10 | + |
| 11 | +In this project, the FLP is formulated as a **mixed-integer linear program (MILP)** with the objective to minimize: |
| 12 | +- Fixed costs of opening distribution centers (DCs), |
| 13 | +- Variable handling and shipping costs from plants to DCs and from DCs to regional demand points, |
| 14 | +- While ensuring all customer demands are met and no DC exceeds its capacity. |
| 15 | + |
| 16 | +--- |
| 17 | + |
| 18 | +## 🏭 Case Study: |
| 19 | +**New England Root Beer Distributors (NERD)** is a historic beverage company that has grown from a small, family-run root beer maker into a regional leader in the Northeastern United States. Originally operating multiple small plants, NERD consolidated production into a **single modern manufacturing facility in Scranton, Pennsylvania (SCP)** to reduce costs and improve scalability. |
| 20 | + |
| 21 | +### 🚚 Supply Chain Structure |
| 22 | +NERD’s current supply chain includes: |
| 23 | +- **1 main manufacturing plant** in Scranton, PA; and potential addition of a **second plant** in Bellows Falls, VT (BFP), which could decentralize production |
| 24 | +- **5 candidate distribution centers (DCs)** in New England |
| 25 | +- **12 regional demand points (RDCs)** that receive shipments from the DCs |
| 26 | + |
| 27 | + |
| 28 | + |
| 29 | +The supply chain operates in two stages: |
| 30 | +1. **Inbound logistics**: shipping root beer barrels from plant(s) to DCs. |
| 31 | +2. **Outbound logistics**: local couriers deliver barrels from DCs to RDCs. |
| 32 | + |
| 33 | +--- |
| 34 | + |
| 35 | +### ⚠️ Challenges Faced |
| 36 | +Despite operational success at the Scranton plant, NERD's **New England distribution network is inefficient and fragmented**, with facilities added over time through mergers and acquisitions rather than design. |
| 37 | + |
| 38 | +NERD management has raised concerns such as: |
| 39 | +- ❓ Are there too many DCs currently in operation? |
| 40 | +- 🏭 Should the Bellows Falls plant be used to support distribution? |
| 41 | +- 📦 Are service levels and capacities appropriate under current and future demand? |
| 42 | +- 💸 Can the overall network cost be reduced through better design? |
| 43 | + |
| 44 | +--- |
| 45 | + |
| 46 | +### 💡 Solution Approach in This Project |
| 47 | + |
| 48 | +To support decision-making, this project builds a **network design optimization model** to: |
| 49 | +- Determine which DCs should remain open (or be closed), |
| 50 | +- Optimize the flow of goods from plant(s) to DCs to RDCs, |
| 51 | +- Evaluate the cost-effectiveness of using the Bellows Falls plant, |
| 52 | +- Ensure customer demand is satisfied without exceeding facility capacities, |
| 53 | +- Minimize total system cost, including fixed, variable, and transportation costs. |
| 54 | + |
| 55 | +--- |
| 56 | + |
| 57 | +## 🧩 Main Project Tasks |
| 58 | + |
| 59 | +- ✅ **Model the supply chain network** using mathematical programming |
| 60 | +- ✅ **Build and solve the MILP model** with Python and Gurobi |
| 61 | +- ✅ **Decide which DCs to open** by running the model |
| 62 | + |
| 63 | +--- |
| 64 | + |
| 65 | +## 🚀 Tools Used |
| 66 | + |
| 67 | +- **Python** (data handling & model setup) |
| 68 | +- **Gurobi** (optimization solver) |
| 69 | +- **Pandas, NumPy** (data processing) |
| 70 | +- **Jupyter Notebooks** (visualization and testing) |
| 71 | + |
| 72 | +--- |
| 73 | + |
| 74 | +## 📎 License & Credits |
| 75 | + |
| 76 | +- The case study file belongs to Caplice, C. (2016). *New England Root Beer Distributors (NERD4) Case Study*. MITx MicroMasters in Supply Chain Management. [Link to program](https://micromasters.mit.edu/scm/) |
| 77 | +- This project is for educational and personal portfolio use only. |
| 78 | + |
| 79 | +--- |
| 80 | + |
| 81 | +## 🔗 References |
| 82 | + |
| 83 | +- [MITx MicroMasters in Supply Chain Management](https://micromasters.mit.edu/scm/) |
| 84 | +- [Gurobi Optimizer](https://www.gurobi.com/) |
0 commit comments