0% found this document useful (0 votes)
36 views4 pages

Example: Transportation Problem: Seven

The document describes an optimization model for allocating production across multiple plants to satisfy demand at multiple retailers while minimizing transportation costs. The model includes variables for the quantity transported from each plant to each retailer, constraints for not exceeding plant capacities and satisfying retailer demands, and an objective to minimize total transportation costs. The document also provides sample data for the production capacities, retailer demands, and transportation costs.

Uploaded by

nimaatsed
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
36 views4 pages

Example: Transportation Problem: Seven

The document describes an optimization model for allocating production across multiple plants to satisfy demand at multiple retailers while minimizing transportation costs. The model includes variables for the quantity transported from each plant to each retailer, constraints for not exceeding plant capacities and satisfying retailer demands, and an objective to minimize total transportation costs. The document also provides sample data for the production capacities, retailer demands, and transportation costs.

Uploaded by

nimaatsed
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 4

Example: Transportation problem IE 426 Optimization models and applications

A large manufacturing company produces liquid nytrogen in ve plants spread out in East Pennsylvania Each plant has a monthly production capacity Plant i 1 2 3 4 5 Capacity pi 120 95 150 120 140 It has seven retailers in the same area Each retailer has a monthly demand to be satised Retailer j 1 2 3 4 5 6 7 Demand dj 55 72 80 110 85 30 78 transportation between any plant i and any retailer j has a cost of cij dollars per volume unit of nytrogen cij is constant and depends on the distance between i and j nd how much nitrogen to be transported from each plant to each retailer . . . while minimizing the total transportation cost

Lecture 6 September 11, 2008

more AMPL LP examples Quiz #1: Sep 30

Transportation model
1 Variables: qty from plant i to retailer j: xij (non-negative) Constraints: 1. capacity: 2. demand:
7 j=1 xij 5 i=1 xij

Variables with multiple indices in AMPL


Variable and parameter vectors can be dened with sets: 1 2 2 3 4 5 6 7
set S; param c {S}; var x {S} binary; var y {i in S} <= c[i] >= c[i]/2;

pi dj

i j

3 4 5

Variables and parameters can be dened on multiple index sets:


set Cities; set Months = 1..12; param maxBicycles {Cities}; var nBikes {i in Cities} integer <= maxBicycles [i]; var y {Cities, Months} >= 0 <= 4; var z {i in Cities, j in Cities: i != j} integer;

Objective function: total transportation cost, 5 7 i=1 j=1 cij xij

Dening classes of constraints in AMPL


Index sets are also useful with constraints! Constraints can also be dened over a set of indices:
set S; con1 {i in S}: a[i]*x[i] + b[i]*y >= d; set Cities; set Months; param maxAnnualPizzaConsumption {Cities}; param maxMonthlyPizzaConsumption {Cities, Months}; var pizza {i in Cities, m in Months} >= 0 <= maxMonthlyPizzaConsumption [i,m]; con_YR_Pizza {i in Cities}: sum {m in Months} pizza [i,m] <= maxAnnualPizzaConsumption [i];

Back to our transportation problem


param np; param nr; set P = 1..np; set R = 1..nr; param maxCap {P}; param demand {R}; param cost {P,R}; var x {P,R} >= 0; minimize tcost: sum {i in P, j in R} cost[i,j] * x[i,j]; capCon {i in P}: sum {j in R} x [i,j] <= maxCap [i]; demCon {j in R}: sum {i in P} x [i,j] >= demand [j];

Problem data (in a separate .dat le)


param np = 5; param nr = 7; param maxCap := 1 34 2 22 3 41 4 19 param demand := 1 12 2 21 3 19 4 15 5 25 6 9 param cost: 1 2 3 4 5 1 3 7 5 2 8 2 5 8 3 6 1 3 5 4 9 4 5 4 4 5 7 8 2 5 5 6 7 2 5

Sensitivity analysis and iiss in AMPL

Reduced cost of variable v is accessed with sufx .rc (e.g. qty[4].rc) Shadow price of constraint c is accessed with sufx .dual (e.g. demandConstr[4].dual) displaying iiss in AMPL requires a CPLEX option: option cplex_options iisfind 1; After the solve; command, print them out with display {i in _ncons: _con[i].iis != "non"} (_conname [i], con[i].iis); (Horrible, isnt it?)

5 30;

7 12;

6 9 5 6 4 6

7 := 1 4 9 6 6;

Where do we put all this nitrogen?

Example: Production planning

Suppose that inventory capacity at each retailer is 30% of the retailers demand. How does the model change? Add constraint

A small rm produces plastic for the car industry.

At the beginning of the year, it knows exactly the demand di of plastic for every month i. It also has a maximum production capacity of P and an inventory capacity of C. The inventory is empty on 01/01 and has to be empty again on 12/31 production has a monthly cost ci

xij 1.3dj
i=1

j = 1, 2 . . . , 7

AMPL: inventoryCap {j in R}: sum {i in P} x [i,j] <= 1.3 * demand [j];

What do we produce at each month to minimize total production cost while satisfying demand?

Production planning. What variables?

Production planning. What constraints?

How much to produce each month i: xi , i = 1, 2 . . . , 12 Anything else? The inventory level at the beginning of each month (demand is satised by part of production and part of inventory): yi , i = 0, 1, 2 . . . , 12 Why 0? Because we need to know (actually we need to constrain!) the inventory on 01/01 and on 12/31.

Production capacity constraint: xi P i = 1, 2 . . . , 12 Beginning/end of year: y0 = 0, y12 = 0 What goes in must go out. . . xi yi1 i di yi xi + yi1 = di + yi i = 1, 2 . . . , 12

Production planning model

Production planning model


set Months = 1..12; set MonthsPlus = 0..12; param cost {Months}; param Capacity;

min

12 i=1 ci xi

xi + yi1 = di + yi i = 1, 2 . . . , 12 0 xi P i = 1, 2 . . . , 12 yi 0 i = 1, 2 . . . , 12 y0 = y12 = 0

param demand {Months}; var production {Months} >= 0 <= Capacity; var inventory {MonthsPlus} >= 0; minimize prodCost: sum {i in Months} cost [i] * production [i]; conservation {i in Months}: production [i] + inventory [i-1] = demand [i] + inventory [i]; Jan1Inv: inventory [0] = 0; Dec31Inv: inventory [12] = 0;

Problem data

param Capacity = 120; param cost := 1 14 2 19 5 10 6 7 9 7 10 10 param demand := 1 110 2 70 5 140 6 90 9 100 10 105

3 15 7 4 11 11

4 11 8 5 12 13;

3 85 7 40 11 140

4 90 8 80 12 80;

You might also like