Description
Instructions for Handing In Homework
Formulate the following problems in GAMS and solve them. Please follow the instructions given in
the problems closely. Submit this assignment electronically to the drop box, one zip file containing
the files that are outlined below.
You should hand in exactly 4 files with the following names: hw4-1.gms, hw4-2.gms, hw4-3.gms,
hw4-4.gms
1 Malfoy Catering
Lucius and Narcissa Malfoy didn’t get to be rich, pureblood, dark wizards without lots of galleons.
Their family made their money in the Wizard catering business. As part of the business, their son
Draco is responsible for ensuring that they have enough clean napkins to meet demand over a period
of n days. The number dj of napkins required on the jth day is known in advance. To satisfy this
requirement, Draco can either buy new napkins for α galleons each, or he can have the napkins laundered. The laundry provides both fast and slow magical cleaning services, In fast service, napkins
are returned q days later for a cost of β galleons per napkin, and in slow service, napkins are returned
p days laters at a cost of γ dollars per napkin. Natrually, p > q, and α > β > γ. Suppose that Draco
must plan for a period of n = 10 days, and the number of required napkins is given as
set T /1*10/ ;
parameter d(T) / 1 50, 2 60, 3 80, 4 70, 5 50, 6 60, 7 90, 8 80, 9 50,
10 100 / ;
Finally, for Draco’s instance, we have p = 4, q = 2, α = 200, β = 75, and γ = 25.
1.1 Problem
Formulate Draco’s problem as a min cost network flow problem and solve it using GAMS. In order to
get full credit, you must model the problem as a min-cost network flow problem. Hint: Your network
should have 22 nodes in it for Draco’s instance. After solving the instance, you should display the
following information, using GAMS parameters named as specified.
Display Item GAMS Parameter Name
Minimum cost required to meet demand Cost
Number of equations in your GAMS model NumEqu
Total number of napkins purchased NumBought
2 Least “Squares.”
2.1 Dynamic Sets Background
This problem is also designed to test our ability to use dynamic sets. We will use the sets
Problem 2 Page 1
ISyE/CS635 Problem Set #4 Prof Michael Ferris
sets
ALLI /c1*c400/
ALLJ /x1*x100/
;
sets
I(ALLI) /c1*c6/
J(ALLJ) /x1*x4/
;
You only need to declare your equations once. You will re-define the equations for the second
model by dynamically adjusting the sets I and J to include all of the elements from ALLI and ALLJ
for the second part of the problem. Remember, when writing your equations, you declare them over
the full domain (larger set), but you define them (write them) only for those elements you want—the
subset. All of this problem can be done in a single GAMS file.
2.2 The Small Problem
The set of six equations in four variables (1)—(6) does not have a unique solution.1
8×1 − 2×2 + 4×3 − 9×4 = 17 (1)
x1 + 6×2 − x3 − 5×4 = −16 (2)
x1 − x2 + x3 = 7 (3)
x1 + 2×2 − 7×3 + 4×4 = −15 (4)
x3 − x4 = 6 (5)
x1 + x3 − x4 = 0 (6)
For each equation i, and values of variables x = (x1, x2, x3, x4), let ei be the absolute difference
(error) between the left hand side and the right hand side. For example, for i = 2 and x = (−5, 3, 1, 4),
the error is
e2 = |(1)(−5) + 6(3) − (1)(1) − 5(4) − (−16)| = |8| = 8.
2.1 Problem
Write a linear programming instance that will minimize the total absolute error:
e1 + e2 + e3 + e4 + e5 + e6.
Solve this instance with GAMS. Display both the (minimum) total absolute deviation (in a parameter
named TotalDevSmall and the values of x that achieve this, in a parameter named xValSmall(ALLJ).
For example, your code may look like this:
parameters
TotalDevSmall,
xValSmall(ALLJ)
;
TotalDevSmall = ztotdev.L ;
1Most six equations with four variables don’t.
Problem 2 Page 2
ISyE/CS635 Problem Set #4 Prof Michael Ferris
xValSmall(J) = x.L(J);
display TotalDevSmall;
display xValSmall;
2.2 Problem
For the same instance, write a linear programming instance that will minimize the maximum error
in any one equation. Namely find values of x that will
min max{e1, e2, e3, e4, e5, e6}.
Create your instance in GAMS and solve it. What is the minimum max-error that can be achieved?
Display this value in a parameter called MinMaxDevSmall. For example, your code may look like
this:
parameters
MinMaxDevSmall
;
MinMaxDevSmall = zminmax.L;
display MinMaxDevSmall;
2.3 General Least “Squares.”
Let J = {1, 2, . . . , |J|}. For each j ∈ J you have a decision variable xj . You are given a set of equations
containing these decision variables as follows:
X
j∈J
aijxj = bi ∀i ∈ I
Define the absolute error of each equation i ∈ I as the quantity
ei(x) =
X
j∈J
(aijxj ) − bi
∀i ∈ I.
2.3 Problem
Write a linear program to solve the following optimization problem:
min
x∈R|J|
X
i∈I
ei(x).
Using the GAMS code below to create an instance with |N| = 100, |M| = 400 create and solve this
large random instance. Note the use of yes make the sets I and J contain all of the elements in
ALLI and ALLJ. Be sure to also include the option seed=666 line so that all of us create the same
random instance.
* Reset sets
I(ALLI) = yes;
J(ALLJ) = yes;
option seed = 666 ;
A(I,J) = uniform(-10,10) ;
b(I) = uniform(-100,100) ;
Problem 2 Page 3
ISyE/CS635 Problem Set #4 Prof Michael Ferris
Solve your instance and display the final total deviation in a parameter named TotalDevBig.
For example,
parameters TotalDevBig ;
TotalDevBig = ztotdev.L ;
display TotalDevBig;
2.4 Problem
Solve the same instance from Problem 2.3, but in this case to minimize the maximum error:
min
x∈R|J|
max
i∈I
ei(x)
Solve your instance and display the final minimum maximum deviation in a parameter named
MinMaxDevBig. For example,
parameters MinMaxDevBig;
MinMaxDevBig = zminmax.L;
display MinMaxDevBig;
3 Broom Rental
Oliver Wood retired from his career as keeper at Puddlemere United to start the Wood Broom Rental
Company WBC,
2 and he needs your help. There is a fleet of 94 brooms that are distributed among 10
different locations. The (x, y) coordinates of each broom rental agency (in a grid based on kilometers3
is given in Table 1, as are the number of brooms currently in each location and the number of brooms
required for tomorrow’s rentals. The cost of transporting a broom from one location to another is 0.5
galleon/km. Naturally brooms travel “as the crow flies,” so distances between agencies are Euclidean
distances.
Place x y Required Current
Coor. Coor. Brooms Brooms
Hogwarts 0 0 10 8
Godric’s Hollow 20 20 6 13
Little Whinging 18 10 8 4
Shell Cottage 30 12 11 8
The Leaky Cauldron 35 0 9 12
Ollivander’s 33 25 7 2
Zonko’s Joke Shop 5 27 15 14
Dervish and Banges 5 10 7 11
Little Hangleton 11 0 9 15
Weasley’s Wizard Wheezes 2 15 12 7
Table 1: Information About WBC
3.1 Problem
Write a linear program in GAMS that will determine the movement of all brooms to establish the
required number of brooms at all agencies in a minimum cost manner. Ensure your linear program is
2
In the Wizarding World, brooms may be rented and used, much like cars, in our normal Muggle world.
3Wizards use the metric system
Problem 3 Page 4
ISyE/CS635 Problem Set #4 Prof Michael Ferris
in the form of a minimum cost network flow problem, and set up the GAMS file to use the appropriate
CPLEX options so it solves as such.
Wood would like to know two things. First, he would like to know the minimum broom tranportation cost (in a GAMS parameter transportCost), as follows:
parameter transportCost ;
transportCost = cost.L;
display transportCost;
Second, according to the optimal transportation plan, he would like to know the set of all locations requiring extra brooms that do not receive any brooms from their closest location (in a set
not from closest).
set not_from_closest(P);
option not_from_closest:0:0:1;
display not_from_closest;
hints:
• Be sure to put quotation marks around elements of sets when defining them if there are spaces
in the element names.
• GAMS has functions sqrt and sqr that may be useful.
• The second part will require a little bit of GAMS coding trickery.
4 Untied Airlines
Prof. Wright hates flying United airlines through O’Hare (ORD). This is a problem, as he is a soughtafter lecturer who frequently must make trips from his home base in Madison (MSN) to San Francisco
(SFO), Houston (IAH), Washington DC (DCA), and Orlando (MCO). If Prof. Wright flies United, he
must travel through ORD, if he travels Delta he can choose to go via Detriot (DTW) or Minneapolis
(MSP).
The travel times between various locations in minutes are:
MSN.ORD 22, MSN.DTW 65, MSN.MSP 46,
MSP.SFO 213, MSP.IAH 139, MSP.DCA 125, MSP.MCO 176,
ORD.SFO 247, ORD.IAH 124, ORD.DCA 82, ORD.MCO 135,
DTW.SFO 280, DTW.IAH 147, DTW.DCA 53, DTW.MCO 130
Delay times at ORD are approximately uniformly distributed between 0 and 3 hours, at DTW the
delay time are are between 0 and 1.5 hours and between 0 and 2 hours at MSP.
We will assume that Prof. Wright makes 3 trips to each location every year. Prof. Wright is a
notorious cheapskate, and lives for frequent flyer miles. So he would like to only fly one airline.
4.1 Problem
Should Prof. Wright switch to Delta? Justify your answer with a mathematical model and explain
what your model does to deal with the uncertainty.
4.2 Problem
What if you add a constraint that he must always use the same hub?
4.3 Problem
What if he forgoes frequent flyer miles – which route should he then use for which flight?
Problem 4 Page 5