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.