Skip to content

Week 11 | Session 4: SC Digital Twin - Network Optimization (Excel + AnyLogistix)

Course: Supply Chain Digitization - Module 4: Digital Infrastructure



1. Context - Moving from GFA to Network Optimization

Section titled “1. Context - Moving from GFA to Network Optimization”

GFA (Sessions 2 & 3) found the optimal DC location from scratch - 1 DC, minimize transport cost.

This session: demand has doubled, a new factory is needed, and the existing DC lease is expiring. Must simultaneously decide: which factory to open, which DC to open, and how to route flows.

AttributeGFA (Sessions 2 & 3)Network Optimization (This Session)
Question answeredWHERE to place a new DC from scratch?Which factories/DCs to open AND how to route flows?
ObjectiveMinimize transportation costMaximize profit (Revenue − all costs)
Decision variablesxDC (lat), yDC (long) - 2 variables onlyyᵢ (factory open), zⱼ (DC open), xᵢⱼ (flows), qⱼₖ (flows)
Facility optionsInfinite possible coordinatesFixed candidate locations - choose which to open
Variable typeContinuous - lat/long are real numbersMixed Integer - binary (yᵢ, zⱼ) + continuous (xᵢⱼ, qⱼₖ)
Solver methodGRG Non-linear (spherical distance is non-linear)Simplex LP (all linear constraints and objective)
Cost componentsDistance × demand × transport cost onlyFixed + production + inbound/outbound + transport costs

2. Case Study - Pharma Company Network Redesign

Section titled “2. Case Study - Pharma Company Network Redesign”

Demand data - four markets (yearly demand doubled for the 3-year horizon):

MarketYearly DemandLatitudeLongitude
Pune3,15,36018.5273.85
Mumbai3,59,16019.0972.87
Ahmedabad3,10,98023.0272.57
Surat87,60021.1872.83

Background:

  • Demand in western region will double in next 3 years - current capacity insufficient.
  • Management decides to set up a new factory at one of: Nashik OR Aurangabad.
  • DC in Mumbai (from GFA) lease is expiring - must relocate to one of: VAPI OR V1D (Viwandi).
  • Markets remain: Pune, Mumbai, Ahmedabad, Surat - but demand is now doubled.
NodeLocationProd/Proc Cost/unitKey Distances
Factory 1Nashik$7/unit production→ VAPI 144 km, → V1D 129 km
Factory 2Aurangabad$5/unit production→ VAPI 322 km, → V1D 297 km
DC 1VAPI$0.25 inbound/outbound→ Mumbai 169 km, Pune 298 km, Surat 102 km, Ahm 346 km
DC 2V1D (Viwandi)$0.50 inbound/outbound→ Mumbai 35 km, Pune 151 km, Surat 254 km, Ahm 487 km

Transport cost: $0.001/km/unit. Revenue: $15 per unit sold.

  1. Open factory at Nashik, Aurangabad, or both?
  2. Open DC at VAPI, V1D, or both?
  3. Which factory supplies which DC (xᵢⱼ)?
  4. Which DC serves which market - and how much (qⱼₖ)?

Candidate factory data:

FactoryLatLongFixed cost/yr ($)Prod. cost/unit ($)→ Vapi (km)→ Bhiwandi (km)
Nashik19.9973.792,737,5007144129
Aurangabad19.8875.341,825,0005322297

Candidate DC data:

DCLatLongFixed cost/yr ($)Inbound/unitOutbound/unit
Vapi20.4272.911,825,0000.250.25
Bhiwandi19.2973.052,737,5000.500.50
DC → market distance (km)MumbaiPuneSuratAhmedabad
Vapi169298102346
Bhiwandi35151244487
VariableTypeMeaning
yᵢBinary 1= 1 if ith factory is OPEN; = 0 if NOT open. i = 1 (Nashik), i = 2 (Aurangabad)
zⱼBinary 1= 1 if jth DC is OPEN; = 0 if NOT open. j = 1 (VAPI), j = 2 (V1D)
xᵢⱼContinuous ≥ 0Quantity shipped from ith factory to jth DC
qⱼₖContinuous ≥ 0Quantity shipped from jth DC to kth customer (k = 1..4 markets)

Big M: a very large number. If a facility is open (y=1 or z=1), capacity = M (unlimited). If closed (=0), capacity = 0 - cannot send or receive anything.


Maximize Z = Revenue − Factory Fixed Cost − DC Fixed Cost
− Production Cost − Inbound Cost − Outbound Cost
− Factory→DC Transport Cost − DC→Customer Transport Cost
Cost / Revenue ComponentExpressionExplanation
RevenueΣⱼ Σₖ (Rev × qⱼₖ)Rev = $15/unit. Total revenue = units sold × price.
Factory Fixed CostΣᵢ (FC_factory_i × yᵢ)If yᵢ = 0: cost = 0 (factory not open). If yᵢ = 1: incur fixed cost.
DC Fixed CostΣⱼ (FC_dc_j × zⱼ)If zⱼ = 0: cost = 0 (DC not open). If zⱼ = 1: incur fixed cost.
Production CostΣᵢ Σⱼ (PC_i × xᵢⱼ)PC_i = production cost per unit at factory i ($7 Nashik, $5 Aurangabad).
Inbound ProcessingΣᵢ Σⱼ (IB_j × xᵢⱼ)IB_j = cost per unit for inbound processing at DC j ($0.25 VAPI, $0.50 V1D).
Outbound ProcessingΣⱼ Σₖ (OB_j × qⱼₖ)OB_j = cost per unit for outbound processing at DC j.
Factory → DC TransportΣᵢ Σⱼ (TC × dist_ij × xᵢⱼ)TC = $0.001/km/unit. dist_ij = km from factory i to DC j.
DC → Customer TransportΣⱼ Σₖ (TC × dist_jk × qⱼₖ)dist_jk = km from DC j to customer k.

ConstraintExpressionWhat it Enforces
Demand satisfactionΣⱼ qⱼₖ = Dₖ ∀kTotal shipments from all DCs to customer k must equal customer k’s full demand.
Factory capacityΣⱼ xᵢⱼ ≤ M × yᵢ ∀iIf factory i open (yᵢ=1): can ship up to M units. If closed (yᵢ=0): capacity = 0.
DC capacityΣₖ qⱼₖ ≤ M × zⱼ ∀jIf DC j open (zⱼ=1): can process up to M units. If closed (zⱼ=0): cannot process.
Flow balance at DCΣᵢ xᵢⱼ = Σₖ qⱼₖ ∀jWhat flows INTO each DC must equal what flows OUT. No inventory held at DC.
Binary variablesyᵢ, zⱼ ∈ 1Factory open/close and DC open/close are binary decisions.
Non-negativityxᵢⱼ, qⱼₖ ≥ 0Flow quantities cannot be negative.

Objective - maximise profit
max  Σ Rev·Qjk − [ Σ FixedFaci·Yi + Σ FixedDCj·Zj + Σ ProdFaci·Xij + Σ InbDCj·Xij + Σ OutbDCj·Qjk + Σ Transij·Xij + Σ Transjk·Qjk ]
Constraints
Σj Qjk = demandk  ·  Σj Xij ≤ M·Yi  ·  Σi Xij ≤ M·Zj
Σi Xij = Σk Qjk (flow balance)  ·  Yi, Zj ∈ 1  ·  Xij, Qjk ≥ 0
The full network-optimisation model - binary variables Yi / Zj decide which factories and DCs to open, while Xij / Qjk set the flows, all chosen to maximise revenue minus fixed, production, handling and transport costs.
Solver SettingValue / Detail
Set ObjectiveTotal Profit cell (Revenue − Cost)
ToMax (Maximize)
Changing Variablesyᵢ (factory binary), zⱼ (DC binary), xᵢⱼ (factory→DC flows), qⱼₖ (DC→customer flows)
Constraint 1DC inflow ≤ DC capacity (= M×zⱼ)
Constraint 2Demand satisfaction at all 4 markets
Constraint 3Factory outflow ≤ factory capacity (= M×yᵢ)
Constraint 4Flow balance: DC inflow = DC outflow
Binary constraintyᵢ and zⱼ set as binary (0 or 1 only)
MethodSimplex LP - objective and all constraints are linear
ResultAurangabad factory: OPEN. VAPI DC: OPEN. Nashik + V1D: CLOSED. Profit = ₹59,27,495

Distances are given as fixed inputs (km values) - not calculated via spherical formula. Objective function and all constraints are linear in the decision variables. Binary variables are handled as integer constraints - Simplex LP handles this as Mixed Integer LP.


Facilities to Open:

  • Factory: Aurangabad - OPEN (lower production cost $5/unit vs Nashik $7/unit)
  • DC: VAPI - OPEN (lower inbound/outbound cost $0.25 vs V1D $0.50)
  • Nashik factory: CLOSED. V1D (Viwandi) DC: CLOSED.

Product Flow:

  • Aurangabad factory → VAPI DC → all 4 markets
  • VAPI DC → Mumbai: 3,59,160 units
  • VAPI DC → Pune: 3,15,360 units
  • VAPI DC → Surat & Ahmedabad: demand matched exactly.

Optimal Profit: ₹59,27,495 - identical from Excel Solver and AnyLogistix.


8. AnyLogistix - Network Optimization Module

Section titled “8. AnyLogistix - Network Optimization Module”
Factories
Aurangabad
Nashik
→
Distribution centres
Bhiwandi
Vapi
→
Customers
Mumbai
Pune
Surat
Ahmedabad
The optimised network - the model selects which factories and DCs to open and routes each market’s demand through the least-cost factory→DC→customer path, the result a tool like anyLogistix also plots on a map.

When 4 SKUs are added + daily demand → number of decision variables multiplies. Excel cannot handle large Mixed Integer Programs (MIP) efficiently. AnyLogistix has built-in MIP solver + map visualization + route details + flow breakdown.

Data Entry in AnyLogistix - Network Optimization Module

Section titled “Data Entry in AnyLogistix - Network Optimization Module”
  • Customers: Pune, Mumbai, Ahmedabad, Surat - 4 markets.
  • Facilities: Aurangabad (factory), Nashik (factory), VAPI (DC), V1D (DC).
  • Demand: per day per SKU (4 SKUs × 4 markets = 16 demand entries).
  • Revenue: $15 per unit. Facility expenses: fixed cost per day.
  • Objective: Revenue − Fixed cost − Inbound − Outbound − Production − Transport.
  • Run → solution in seconds - same result as Excel: Aurangabad + VAPI, profit = ₹59,27,495.
  • Map visualization: actual road routes from Aurangabad → VAPI → customers.
  • Flow details: Aurangabad → VAPI: SKU1 = 3,13,900 units, distance shown, transport cost shown.
  • Per-route breakdown: every factory→DC and DC→customer flow with units, km, cost.
  • Multiple cost layers: processing cost, flow cost, transport cost shown separately per arc.

  • Context: demand doubled → need new factory + DC. Candidates: Nashik/Aurangabad (factory), VAPI/V1D (DC).
  • 4 decisions: which factories to open (yᵢ), which DCs to open (zⱼ), factory→DC flows (xᵢⱼ), DC→customer flows (qⱼₖ).
  • Objective: Maximize Profit = Revenue − all 7 cost components (fixed + variable + transport).
  • Big M trick: if facility closed (0) → capacity = 0 → cannot send/receive. Open (1) → capacity = M (unlimited).
  • Flow balance: inflow to DC = outflow from DC. DCs are pass-through - no inventory held.
  • Solver: Simplex LP (linear model, binary integer constraints). Contrast with GFA which used GRG Non-linear.
  • Result: Aurangabad factory + VAPI DC. Profit = ₹59,27,495. Identical from Excel and AnyLogistix.