German Jordanian University
Operations Research 1
- Section 1 -
First Semester 2011-2012
Case Study 1
Cutting Cafeteria Cost
Date: 19.12.2011
Mahmood Shubbak
Special Thanks to: Miss. Sanja Savic for her very kind
contribution to this solution of the case study.Case Study - Cutting Cafeteria Cost 2/6
Cutting Cafeteria Cost (Case Study) Given Data
Ingredients Nutritional Information:
X1 [g] X2 [g]
Potatoes Green Beans
Protein Concentration* 0.015 0.02
Iron Concentration* 0.3 * 10-5 1.2 * 10-5
Vitamin C Concentration* 12 * 10-5 1 * 10-4
*these values are the concentration in potatoes and beans. For example: 2% of beans are Protein.
Price:
Potatoes $ 8.818 x10-4 / 1 g
Green Beans $ 2.205 x10-3 / 1 g
Nutritional Requirements (for the whole Casserole):
Protein 180 g
Iron 0.08 g
Vitamin C 1.05 g
Taste Requirements (weight ratio) at least:
Potatoes : Green Beans
6 : 5
Which means: (Potatoes/Beans)≥1.2
Minimum Production = 10 kg / week
Asked for:
Values of X1 and X2 to minimize the cost.
** All weight units used here are grams unless otherwise mentioned.Case Study - Cutting Cafeteria Cost 3/6
Model:
Objective Function: (Minimize Cost)
Min z = 8.818 x10-4 X1 + 2.205 x10-3 X2
Subject to:
Nutritional Requirements Constraints:
Protein:
0.015 X1 + 0.02 X2 ≥ 180
- 0.015 X1 - 0.02 X2 ≤ -180
Iron:
0.3 * 10-5 X1 + 1.2 * 10-5 X2 ≥ 0.08
-0.3 X1 – 1.2 X2 ≤ -8000
Vitamin C:
12 * 10-5 X1 + 10-4 X2 ≥ 1.05
-1.2 X1 - X2 ≤ -10500
Taste Requirements Constraints:
5 X1 ≥ 6 X2
-5 X1 + 6 X2 ≤ 0
Minimum Production Constraint:
X1 + X2 ≥ 10000
-X1 - X2 ≤ -10000
Non-Zero Constraints:
X1 , X2 ≥ 0
MATLAB Solution:
Code Solution
f=[0.000818; 0.002205];
A=[-0.015 -0.02; -0.3 -1.2; -1.2
-1; -5 6; -1 -1];
b=[-180;-8000;-10500;0;-10000];
lb=zeros(2,1);
[x,z]=linprog(f,A,b,[],[],lb)
x =
6.1538 * 10^3
5.1282 * 10^3
z =
16.3415Case Study - Cutting Cafeteria Cost 4/6
a) Optimal Solution:
X1 (Potatoes) ≈ 6.2 kg
X2 (Green Beans) ≈ 5.1 kg
Optimum z ≈ $ 16.3
b) New Taste Requirement Constraint:
2 X1 ≥ X2
-2 X1 + X2 ≤ 0
New Solution (with MATLAB)
Code Solution
f=[0.000818; 0.002205];
A=[-0.015 -0.02; -0.3 -1.2; -1.2
-1; -2 1; -1 -1];
b=[-180;-8000;-10500;0;-10000];
lb=zeros(2,1);
[x,z]=linprog(f,A,b,[],[],lb)
x =
4.6667 * 10^3
5.5000 * 10^3
z =
15.9448
X1 (Potatoes) ≈ 4.7 kg
X2 (Green Beans) = 5.5 kg
Optimum z ≈ $ 15.9
c) In this part by changing iron requirements to 65mg, the solution will be:
Code Solution
% Optimum Solution for part c
f=[0.000818; 0.002205];
A=[-0.015 -0.02; -0.3 -1.2; -1.2
-1; -5 6; -1 -1];
b=[-180;-6500;-10500;0;-10000];
lb=zeros(2,1);
[x,z]=linprog(f,A,b,[],[],lb)
x =
7.1667 * 10^3
3.6250 * 10^3
z =
13.8555
X1 ≈ 7.2 kg
X2 ≈ 3.6 kg
Optimum z ≈ $ 13.9
d) In this part keeping iron requirements 65mg, and using the new beans price of
$0.5 per lb = $0.0011023 per gram, the solution will be:Case Study - Cutting Cafeteria Cost 5/6
Code Solution
% Optimum Solution for part d
f=[0.000818; 0.0011023];
A=[-0.015 -0.02; -0.3 -1.2; -1.2
-1; -5 6; -1 -1];
b=[-180;-6500;-10500;0;-10000];
lb=zeros(2,1);
[x,z]=linprog(f,A,b,[],[],lb)
x =
6.5642 * 10^3
4.0769 * 10^3
z =
9.8634
X1 ≈ 6.6 kg
X2 ≈ 4.1 kg
Optimum z ≈ $ 9.9
e) In this part a new alternative has appeared; which is Lima Beans (X2) instead of
green beans, i.e. a whole new problem with its objective function and constraints
must be solved, this new model is:
Min z = 8.818 x10-4 X1 + 1.323 x10-3 X2
Subject to:
- 0.015 X1 - 0.08 X2 ≤ -180
-0.3 X1 – 2.4 X2 ≤ -6500
-1.2 X1 ≤ -10500
-5 X1 + 6 X2 ≤ 0
-X1 - X2 ≤ -10000
X1 , X2 ≥ 0
Code Solution
% Optimum Solution for part e
f=[0.000818; 0.001323];
A=[-0.015 -0.08; -0.3 -2.4; -1.2
0; -5 6; -1 -1];
b=[-180;-6500;-10500;0;-10000];
lb=zeros(2,1);
[x,z]=linprog(f,A,b,[],[],lb)
x =
8.7500 * 10^3
1.6146 * 10^3
z =
9.2936
X1 ≈ 8.8 kg
X2 ≈ 1.6 kg
Optimum z ≈ $ 9.3Case Study - Cutting Cafeteria Cost 6/6
f) Edison will not be happy with the solution in part (e), because the recipe has
been changed, and the new one doesn’t meet the taste requirements, it is
somehow full of potatoes with very few beans.
g) New constraints:
- 0.015 X1 - 0.08 X2 ≤ -180
-0.3 X1 – 2.4 X2 ≤ -12000
-1.2 X1 ≤ -5000
-5 X1 + 6 X2 ≤ 0
-X1 - X2 ≤ -10000
X1 , X2 ≥ 0
Code Solution
% Optimum Solution for part g
f=[0.000818; 0.001323];
A=[-0.015 -0.08; -0.3 -2.4; -1.2
0; -5 6; -1 -1];
b=[-180;-12000;-5000;0;-10000];
lb=zeros(2,1);
[x,z]=linprog(f,A,b,[],[],lb)
x =
5.7143 * 10^3
4.2857 * 10^3
z =
10.3443
X1 ≈ 5.7 kg
X2 ≈ 4.3 kg
Optimum z ≈ $ 10.3
Which is much better.