Project No. 1 Omar Hopkins
OR 210 - Models in Operations Research Dr Dong Shaw Fall 1999
Project 1
Introduction The Matlab code used to solve the following problems is included in the appendix. Note that the code for each program (function) was written for the specific program and their respective initial conditions. The code is not written to solve the generalized problem type. With respect to writing a macro that would allow a single push button solution of optimization problem I have not been successful. The problem appears to come from one of the following area,
The macro recorder is not recognizing the Matlab functions. Although it appears that all the relevant files have been loaded it may be that Excel has not fully loaded all the macro references. I followed the instructions given by Matlab, but without success. I have also tried to program the macro directly from within Visual Basic but have also not had any success.
I will continue to see if I can identify a solution to this problem. Theoretically, it seems to be possible - however the implementation is, as yet, somewhat problematic.
General Comments on Matrix Structure These problems where typically structured as (highly) sparse matrices. Because these problems were fairly modest in scope regular matrix commands were used. However, in the event of significantly larger problems more attention to the use of sparse matrix format is recommended. The Matlab commands are essentially the same. Many of the problems that follow required the creation of additional variables - dummy variables. These were used as counters or other similar function but did not appear in the objective function.
Instructions The generalized instructions for running each of the problems are to select the Table(s) highlighted in yellow with the input data. If the tables are labeled separately then two tables will need to be inputted into the model. Paste the optimal solution, duel and objective function values as shown in the table. In some case the dual will be broken up into more than one part then paste in the order shown by the dual table numbers (e.g. D1, D2).
Omar Hopkins Page 2 of 23
Project 1
Problem 18 The city of Busville contains three school districts. The number of minority and non-minority students in each district is given by, District 1 2 3
Minority Students 50 50 100
Non-minority Students 200 250 150
Of all students, 25%The local court has decided that each of the town's two high schools (Cooley High and Walt Whitman High) must have approximately the same percentage of minority students (within ±5%) as the entire town. The distances (in miles) between the school districts and the high schools are given below, District 1 2 3
Cooley High 1 2 1
W. Whitman High 2 1 1
Each high school must have an enrollment of 300-500 students. Use linear programming to determine an assignment of students to schools that minimize the total distance students must travel to school.
The Solution: The following spreadsheet application allows the use to evaluate various scenarios and generate optimal solutions. District
Minority Students 50 100 100 20% 30%
1 2 3 Min Max
Nonminority Cooley High W. Whitman Students High 200 1 2 250 2 1 150 1 1 70% 300 500 80% 300 500
Optimal Solution District 1 2 3
D2 - Dual Solution Cooley High Minority Nonminority 50 200 0 0 87.5 150
D1 - Dual Solution Minority Enroll School Size
Omar Hopkins Page 3 of 23
Cooley High Min Max 0 0 0 0
W. Whitman High Minority Nonminority 0 0 50 250 12.5 0 W. Whitman High Min Max 0 0 0 0
Minority 1 1 1
Nonminority 1 1 1
Student-Miles (Obj Fn) 800
Project 1
Interpretation of the Dual The dual indicates approximately how much the objective function would change per unit change in the constraint. In this problem increasing the number students will increase the number of student-miles traveled. Likewise the changing the upper and lower bounds of the school size and minority fraction will not affect the objective function.
Omar Hopkins Page 4 of 23
Project 1
Problem 22 Alden Enterprises produces two products. Each product can be produced on one of two machines. The length of time needed to produce each product (in hours), on each machine is shown in Table 51. Each month, 500 hours of time are available on each machine. Each month, customers are willing to buy up to the quantities of each product at the prices given Table 52. The company's goal is to maximize the revenue obtained from selling units during the next two months. Formulate an LP to help meet this goal. Table 51 Product 1 Product 2
Machine 1 4 7
Table 52
Machine 2 3 4
Demands Month 1 100 140
Product 1 Product 2
Prices Month 2 190 130
Month 1 55 65
Month 2 12 32
The Solution: The following spreadsheet application allows the use to evaluate various scenarios and generate optimal solutions.
Input T51
T52
Prod 1 Prod 2 Constrain t
Mach 1 4 7
Mach 2 3 4
500
500
Prod 1 Prod 2
Demands Month 1 Month 2 100 190 140 130
Prices Month 1 55 65
Month 2 12 32
Output
Dual Solution Optimal Solution Revenue Availability Demand Sol'n Month 1 Month 2 8714.286 Mach 1 Mach 2 Prod 1 Prod 2 Prod 1 100 0 Month 1 9.285714 0 17.85714 0 Prod 2 14.28571 71.42857 Month 2 4.571429 0 0 0
Interpretation of the Dual The dual indicates approximately how much the objective function would change per unit change in the constraint. In this problem the dual solution indicates that if the availability of machine was increased the objective function (revenue) could be increased. Machine 2 would have an immediate effect. This suggests that additional capital investment should be in increasing the availability of machine 1. Likewise demand of product one in the first period is constraining revenue stream. Advertising moneys would be best spent increasing the demand of product 1 in the first period.
Omar Hopkins Page 5 of 23
Project 1
Problem 23 Kiriakis Electronics produces three products. Each product must be processed on each of three types of machines. When a machine is in use, it must be manned by a worker. The time (in hours) required to process each product on each machine and the profit associated with each product are shown in Table 53. At present, five type I machines, three type II machines, and four type III machines are available. The company has ten workers available and must determine how many workers to assign to each machine. The plant is open 40 hours per week, and each worker works 35 hours per week. Formulate an LP that will enable Kiriakis to assign workers to machines in a way that maximizes weekly profits. (Note: A worker need not spend the entire work week manning a single machine.) Table 53 Machine 1 Machine 2 Machine 3 Profit
Product 1 2 3 4 6
Product 2 3 5 7 8
Product 3 4 6 9 10
The Solution: The following spreadsheet application allows the use to evaluate various scenarios and generate optimal solutions. Table T1 Prod 1 Prod 2 Prod 3 #Available Mach 1 2 3 4 5 Mach 2 3 5 6 3 Mach 3 4 7 9 4 Profit $ 6.00 $ 8.00 $ 10.00 Table T2 Work Week (hrs) Machine Week (hrs)
35 40
Profit $ 233.33
Optimal Solution Worker 1 2 3 4 5 6 7 8 9 10 D1 - Dual/Machines
1 7.78 0.00 0.00 0.00 0.00 35.00 0.00 0.00 35.00 0.00 0.00
Machine 2 11.67 0.00 0.00 35.00 35.00 0.00 35.00 0.00 0.00 0.00 0.00
D2 - Dual Labor 3 15.56 35.00 35.00 0.00 0.00 0.00 0.00 35.00 0.00 35.00 0.00
0.67 0.67 0.67 0.67 0.67 0.67 0.67 0.67 0.67 0.67
Interpretation of the Dual The dual indicates approximately how much the objective function would change per unit change in the constraint. Note that in this example the dual for labor and the dual for capital refer to the constraint of workerhours and machine-hours. For each additional worker-hour added the firm could expect to reap an additional Omar Hopkins Page 6 of 23
Project 1 profit of $0.67. Adding additional machine capacity will not increase profits for the firm. Thus for this firm to increase profits it needs to hire more labor (the constraining factor).
Omar Hopkins Page 7 of 23
Project 1
Problem 24 Gotham City Hospital serves cases from four diagnostic related groups (DRGs). The profit contribution, diagnostic service use (in hours), bed-day use (in days), nursing care use (in hours) and drug use (in dollars) are given in Table 54. At present the hospital has available each week 570 hours of diagnostic services, 1000 bed-days, 50,000 nursing hours, and $50,000 worth of drugs. To meet the community's minimum health care demands at least 10 DRG1, 15 DRG2, 40 DRG3, and 160 DRG4 cases must be handled each week. Use LP to determine the hospital's optimal mix of DGR's. Table 54 Profit Diagnostic Bed-day Nursing Use Drugs Services DRG1 2000 7 5 30 800 DRG2 1500 4 2 10 500 DRG3 500 2 1 5 150 DRG4 300 1 0 1 50
The Solution: The following spreadsheet application allows the use to evaluate various scenarios and generate optimal solutions. T1 DRG1 DRG2 DRG3 DGR4 Maximum Dual Profit $ 2,000.00 $ 1,500.00 $ 500.00 $ 300.00 D1 Diag Service 7 4 2 1 570 250 Bed-Days 5 2 1 0 1000 0 Nursing Hours 30 10 5 1 50000 0 Drugs ($) 800 500 150 50 50000 1 Minimum 10 15 40 160 Optimal Sol'n Dual - D2
10 -550
50 0
40 -150
220 0
Total Profit $ 181,000.00
Interpretation of the Dual The dual indicates approximately how much the objective function would change per unit change in the constraint. From the dual we can see that of the four basic resources, bed-days and nursing hours are not constraints on total profit. However Diagnostic Services are a substantial constraint on profit. Therefore additional resources should be invested in this area. Likewise the minimum service constraints of DRG1 and DRG2 are reducing profit (negative dual). Therefore, were possible, those service should be substituted with the services of DRG2 and DRG4.
Omar Hopkins Page 8 of 23
Project 1
Problem 43 Silicon Valley Corporation (Silvco) manufactures transistors. An important aspect of the manufacture of transistors is the melting of the element germanium (a major component of a transistor) in a furnace. Unfortunately, the melting process yields germanium of highly variable quality. There are two methods that can be used to melt germanium; method 1 cost $50 per transistor, and method 2 costs $70 per transistor. The qualities of germanium obtained by methods 1 and 2 are shown in Table 61. Silvco can refire melted germanium in an attempt to improve its quality. It costs $25 to refire the melted germanium for one transistor. The results of the refiring process are shown in Table 62. Silvco has sufficient furnace capacity to melt or refire germanium for at most 20,000 transistors per month. Silvco's monthly demands are for 1000 grade 4 transistors, 2000 grade 3 transistors, 3000 grade 2 transistors, 3000 grade 1 transistors. Use LP to minimize the cost of producing the needed transistors. Grade of Melted Germanium
Percent Yielded by Melting Method 1 30 30 20 15 5
Defective Grade 1 Grade 2 Grade 3 Grade 4 Refired Grade of Germanium Defective Grade 1 Grade 2 Grade 3 Grade 4
Method 2 20 20 25 20 15
Percent Yielded by Refiring Grade 1 Grade 2 0 0 30 0 30 40 20 30 20 30
Defective 30 25 15 20 10
Grade 3 0 0 0 50 50
The Solution: The following spreadsheet application allows the use to evaluate various scenarios and generate optimal solutions. From the optimal solution we can see that refiring is not a preferred production strategy. T1
Yield
Defective G1 G2 G3 G4 Firing Cap Cost Solution
M1
M2
D
G1
30% 30% 20% 15% 5% 1 50
20% 20% 25% 20% 15% 1 70
30% 25% 15% 20% 10% 1 25
0% 30% 30% 20% 20% 1 25
Refire G2 G3 0% 0% 40% 30% 30% 1 25
0% 0% 0% 50% 50% 1 25
G4 Production Objective 0% 0% 0% 0% 1% 1 25
11,428.57 2,857.14 0.00 0.00 0.00 0.00 0.00
Omar Hopkins Page 9 of 23
0 3000 3000 2000 1000 20000
Dual 0.00 0.00 228.57 0.00 85.71 0.00 Objective Fn $ 771,428.57
Project 1
Interpretation of the Dual The dual indicates approximately how much the objective function would change per unit change in the constraint. We can see from the solution that the constraints that drive the objective function are the production objectives of the G2 and G4 grade transistors. Thus Silvco might attempt to increase demand for Transistors G1 and G3. The goal for Silvco would be to attempt to have no excess production of any grade transistor.
Omar Hopkins Page 10 of 23
Project 1
Problem 49 Transeast Airlines flies on the following route: LA-Houston-NY-Miami-LA. The length (in miles) of each segment of this trip is as follows: LA-Houston, 1500 miles; Houston-NY, 1700 miles; NY-Miami, 1300 miles; Miami-LA, 2700 miles. At each stop, the plane may purchase up to 10,000 gallons of fuel. The price of fuel at each city is as follows: LA $0.88, Houston $0.15, NY $1.05, Miami $0.95. The plane's fuel tank can hold at most 12,000 gallons. To allow for the possibility of circling over a landing site, we require that the ending fuel level for each leg of the flight be at least 600 gallons. The number of gallons used per mile on each leg of the flight is
1 average fuel level on leg of flight 2000 To simplify matters, assume that the average fuel level on any leg of the flight is
Fuel level at the start of leg fuel level at end of leg 2 Formulate an LP that can be used to minimize the fuel cost incurred in completing the schedule.
The Solution: The following spreadsheet application allows the use to evaluate various scenarios and generate optimal solutions.
To TX NY FL CA Fuel Cost Min Fuel Max Fuel Max Pur
CA 1500
TX
From NY
FL
1700 1300 0.88 600 12000 10000
2700 0.95 600 12000 10000
0.15 600 12000 10000
1.05 600 12000 10000
Fuel Purchases Gallons 3120 10000 Minimum Cost of Operation
1590
10000 $ 15,414.96
0.00 0.00 0.00 1.56
0.00 0.00 -1.11 6.34
Duel Solutions Min Fuel 9.74 Max Fuel 0.00 Max Pur 0.00 Miles 1.41
1.51 0.00 -0.27 0.74
Interpretation of the Dual The dual indicates approximately how much the objective function would change per unit change in the constraint. The dual solutions indicate that allowing purchases in excess of 10,000 gallons at Texas and/or Florida could further reduce costs. In additional raising minimum fuel requirements at California or Texas would also increase operational costs. Needless to say, re-estimating the mileage upwards between any two Omar Hopkins Page 11 of 23
Project 1 points will increase total fuel costs. Maximum fuel capacity of the jet does not seem to affect the overall cost of flight operations.
Omar Hopkins Page 12 of 23
Project 1
Problem 53 E.J. Korvair Department Store has $1000 in available cash. At the beginning of each of the next 6 months, E.J. will receive revenues and pay bills as shown in Table 66. It is clear that E.J. will have a shortterm cash flow problem until the store receives revenues from the Christmas shopping season. To solve this problem E.J. must borrow money. At the beginning of July, E.J. may take out a six-month loan. Any money borrowed for a six-month period must be paid back at the end of December along with 9% interest (early payback does not reduce the interest cost of the loan). E.J. may also meet cash needs through month-to-month borrowing. Any money borrowed for a one-month period incurs an interest cost of 4% per month. Use LP to determine how E.J. can minimize the cost of paying its bills on time. Table 66 July August September October November December
Revenues 1000 2000 2000 4000 7000 9000
Bills 5000 5000 6000 2000 2000 1000
The Solution: The following spreadsheet application allows the use to evaluate various scenarios and generate optimal solutions.
T1 Initial Cash July August September October November
Revenue $1,000.00 $1,000.00 $2,000.00 $2,000.00 $4,000.00 $7,000.00
December
$9,000.00 $1,000.00 $
T2 6-month Interest/life 9%
Bills $5,000.00 $5,000.00 $6,000.00 $2,000.00 $2,000.00
Loans 1-month 4%
Income (Debt) By month $ (3,000.00) $ (3,000.00) $ (4,000.00) $ 2,000.00 $ 5,000.00 8,000.00
Cumulative Surplus (Debt)
Loan Amts
$ (3,000.00) 1-Month $ $ (6,000.00) Loans $ $ (10,000.00) $ 4,000.00 $ (8,000.00) $ 2,000.00 $ (3,000.00) $ $
5,000.00
$ 6-Month Loan $ 6,000.00
$
Dual/Amt Due 0 0.01 0.04 0.04 0 0
Total Loan Cost 780.00
Interpretation of the Dual The dual indicates approximately how much the objective function would change per unit change in the constraint. The dual shows that if the loan amounts were to increase between August and October (particularly September-October) each dollar increase would result in an increase in the total cost of covering the cash flow shortfall.
Omar Hopkins Page 13 of 23
Project 1
Problem 55 Donald Rump is the international funds manager for Countribank. Each day Donald's job is to determine how the bank's current holdings of dollars, pounds, marks, and yen should be adjusted to meet the day's currency needs. Today the exchange rates between various currencies are given in Table 67. At the beginning of the day Countribank has the currency holdings given in Table 68. At the end of the day, Countribank must have at least the amounts of each currency given in Table 69. Donald's goal is to each day transfer funds in a way that makes currency holdings satisfy the previously listed minimums, and maximizes the dollar value of the currency holdings at the end of the day. To figure out the dollar value of, say, one pound, average the two conversion rates. Table 67 To From Dollars Pounds Marks Yen Dollars 1 0.58928 1.743 138.3 Pounds 1.697 1 2.9579 234.7 Marks 0.57372 .33808 1 79.346 Yen 0.007233 0.00426 0.0126 1 Table 68 Currency Dollars Pounds Marks Yen
Starting Units (10x9) 8 1 8 0
Table 69 Currency Dollars Pounds Marks Yen
Ending Units (10x9) 6 3 1 10
The Solution: The following spreadsheet application optimal solutions. T1 Dollars Pounds Dollars 1 0.58928 Pounds 1.697 1 Marks 0.5732 0.33808 Yen 0.007233 0.00426 Start 8.00E+09 1.00E+09 End 6.00E+09 3.00E+09
allows the use to evaluate various scenarios and generate Marks Yen 1.743 138.3 2.9579 234.7 1 79.346 0.0126 1 8.00E+09 0.00E+00 1.00E+09 1.00E+10
Optimal & Dual Solution Final Holdings 6E+09 3E+09 1E+09 3.626E+11 Dual/Start 1.0001736 1.6973103 0.5738167 0.0072343 Dual/End -0.000174 -0.000288 -0.000355 0 Value of Optimal Holdings 1.43E+10
Interpretation of the Dual The dual indicates approximately how much the objective function would change per unit change in the constraint.
Omar Hopkins Page 14 of 23
Project 1 The dual solution indicates that increasing the starting amount of any currency will increase the end value of the holdings (which makes intuitive sense). The dual solution also indicates that yen holdings increase the dollar value of the account at the end of the day. The other currencies (with their negative dual values) will reduce the account value. Note that there seemed to be a very small buy/sell gap. A larger gap might have had more pronounced effects on the relative value of the different currencies.
Omar Hopkins Page 15 of 23
Project 1
Appendix - Matlab Code Note that the following code was run as separate programs. For the purposes of presentation they have been co-joined. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Project No. 1 %% %% Omar Hopkins %% %% OR 210 - Models in Operations Research %% %% Fall 1999 - Dr. Dong Shaw %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Problem 18 %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Problem 18 % Matrix Analyzer function [x,y1,y2,z]=P18(T1) % Set up objective function c1=T1(1:3,3); c2=T1(1:3,4); c3=zeros(1,2); c=[c1',c1',c2',c2',c3]; d=ones(1,14); % Set up "A" Matrix % Note columns 13/14 are dummy variables for school population O6=ones(1,6); Z6=zeros(1,6); Z12=zeros(4,12); I2=eye(2); NI2=I2*-1; I6=eye(6); Z62=zeros(6,2); Min=NI2*T1(4,1); Max=NI2*T1(5,1); O3=ones(1,3); Z3=zeros(1,3); A1=[I6,I6,Z62]; A2=[O3,Z3,Z6;Z6,O3,Z3]; A3=[A2,Min;A2,Max]; A4=[I2;I2]; A5=[Z12,A4]; A6=[O6,Z6;Z6,O6]; A7=[A6,NI2]; A=[A7;A5;A3;A1]; % Set up constraints b1=zeros(2,1); for i=1:2 for j=1:2 b2=[b2;T1(3+j,2+i)]; end Omar Hopkins Page 16 of 23
Project 1 end b3=zeros(4,1); for i=1:2 for j=1:3 b4=[b4;T1(j,i)]; end end b=[b1;b2;b3;b4]; e3=ones(2,1)*3; e2=ones(2,1)*2; e1=ones(2,1); e=[e3;e2;e1;e2;e1;e3;e3;e3]; [status,x,y,z]=lp_solver(A,b,c,'min',e,d); % Format Output x1=x(1:3,:); x2=x(4:6,:); x3=x(7:9,:); x4=x(10:12,:); x=[x1,x2,x3,x4]; y21=[y(1,3),y(1,5)]; y22=[y(1,4),y(1,6)]; y31=[y(1,7),y(1,8)]; y32=[y(1,9),y(1,10)]; y2=[y21,y22;y31,y32]; y11=y(1,11:13); y12=y(1,14:16); y1=[y11',y12']; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Problem 22 %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function [x,y,z] = P22(T51,T52) % Problem set up price=T52(:,3:4); price=price'; [m,n]=size(price); % Set up c matrix c=reshape(price, 1, m*n); %Set up A matrix for j=1:2 PM=[eye(2)]*T51(1,j); AA=[AA;PM]; end for j=1:2 PM=[eye(2)]*T51(2,j); AB=[AB;PM]; end A=[AA,AB]; I=eye(4); A=[A;I]; Omar Hopkins Page 17 of 23
Project 1
%Set up b matrix constraint1=T51(3,:); for i=1:2 for j=1:2 b1=[b1;T51(3,i)]; end end constraint2=T52(:,1:2); constraint2=constraint2'; [m,n]=size(constraint2); b2=reshape(constraint2,m*n,1); b=[b1;b2]; [status,X,Y,z]=lp_solver(A,b,c); X=X'; x1=X(1,1:2); x2=X(1,3:4); x=[x1;x2]; Y=Y'; Y1=Y(1:4,1); Y2=Y(5:8,1); y1=[Y1(1:2,1),Y1(3:4,1)]; y2=[Y2(1:2,1),Y2(3:4,1)]; y=[y1,y2];
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Problem 23 %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function [x,y1,y2,z]=P23(T1,T2) % Problem Set Up % Obj Fn c1=T1(4,1:3); c2=zeros(1,30); c=[c2,c1]; d=ones(1,33); % A Matrix A1=T1(1:3,1:3)*-1; I=eye(10); A2=[ones(1,10),zeros(1,20); zeros(1,10),ones(1,10),zeros(1,10); zeros(1,20),ones(1,10)]; A3=zeros(13,3); A4=[I,I,I]; A5=[A2;A2;A4]; A6=[A1;A3]; Omar Hopkins Page 18 of 23
Project 1 A=[A5,A6]; % Constraints b1=T1(1:3,4)*T2(2,1); b2=ones(10,1)*T2(1,1); b3=zeros(3,1); b=[b3;b1;b2]; e1=ones(3,1)*3; e2=ones(13,1); e=[e1;e2]; [status,x,y,z]=lp_solver(A,b,c,'max',e,d); x1=x(1:10,:); x2=x(11:20,:); x3=x(21:30,:); x=[x1,x2,x3]; y=y'; y1=y(4:6,:); y1=y1'; y2=y(7:16,:); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Problem 24 %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function [x,y1,y2,z]=P24(T1) % Set Up Objective Function c=T1(1,1:4) d=ones(1,4); % Set Up "A" Matrix A1=T1(2:5,1:4); A2=eye(4); A=[A1;A2] % Set Up Constraints b1=T1(2:5,5); b2=T1(6,1:4); b=[b1;b2'] e1=ones(4,1)*1; e2=ones(4,1)*2; e=[e1;e2]; [status,x,y,z]=lp_solver(A,b,c,'max',e,d) % Reshape results x=x'; y1=y(:,1:4); y1=y1'; y2=y(:,5:8); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Problem 43 %% Omar Hopkins Page 19 of 23
Project 1 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function [x,y,z]=P43(T1) %Problem Set Up %Note a large number of dummy variables have been set up %Model only allows for _one_ refiring. % Obj Function Set Up c1=T1(7,1:7); z110=zeros(1,10); c=[c1,z110]; d=ones(1,17); % Matrix "A" Set Up A1=T1(1:5,1:2); A2=T1(1:5,3:7); z55=zeros(5,5); I5=eye(5); NI5=-1*I5; z52=zeros(5,2); FC=T1(6,1:7); A11=[FC,z110]; A12=[A1,z55,NI5,z55]; A13=[z52,I5,NI5,z55]; A14=[z52,A2,z55,NI5]; A15=[z52,NI5,I5,NI5]; A=[A11;A12;A13;A14;A15]; % Constraint Set Up b0=T1(6,8); b1=zeros(15,1); b2=T1(1:5,8); b=[b0;b1;b2]; e0=1; O5=ones(5,1); e1=O5*1; e2=O5*2; e3=O5*3; e=[e0;e3;e1;e3;e2]; [status,x,y,z]=lp_solver(A,b,c,'min',e,d); % Reformat solutions x=x(1:7,:)'; y0=y(1,1); y1=y(1,17:21); y=[y1,y0]'; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Problem 49 %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function [x,y,z]=P49(T1)
Omar Hopkins Page 20 of 23
Project 1 % Problem Set Up % Note that dummy variables for fuel @ arrival and % fuel consumed have been set up in the model % Set Up Objective Function c1=T1(5,1:4); c2=zeros(1,8); c=[c1,c2]; % Set Up "A" Matrix I4=eye(4); O4=zeros(4,4); NI4=I4*-1; WD=diag(ones(1,4),1); WD=[WD(1:4,5),WD(1:4,2:4)]; WDM1=-1*WD+I4; XX=T1(1:4,1:4)/4000; v=diag(XX); X1=diag(v,1); X1=[X1(1:4,5),X1(1:4,2:4)]; X=X1+XX; A1=[I4,O4,O4]; A2=[I4,WDM1,NI4]; A3=[O4,I4,O4]; A4=[I4,I4,O4]; A5=-1*[XX,X,NI4]; A=[A1;A2;A3;A4;A5]; % Set Up Constraints b1=T1(8,1:4)'; e1=ones(4,1); b2=zeros(4,1); e2=ones(4,1)*3; b3=T1(6,1:4)'; e3=ones(4,1)*2; b4=T1(7,1:4)'; e4=ones(4,1); b5=diag(T1(1:4,1:4)); e5=ones(4,1)*3; b=[b1;b2;b3;b4;b5]; e=[e1;e2;e3;e4;e5]; [status,x,y,z]=lp_solver(A,b,c,'min',e); % Format Solution x=x(1:4,1)'; y1=y(1,1:4); y2=y(1,9:12); y3=y(1,13:16); y4=y(1,17:20); y=[y2;y3;y1;y4]; Omar Hopkins Page 21 of 23
Project 1
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Problem 53 %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function [x,y,z]=P53(T1,T2) %Objective Function c1=T2(1,1); c2=(ones(6,1))'*T2(1,2); c=[c1,c2]; %decision variables d=ones(1,7); % A Matrix I=eye(6); A1=ones(6,1); A=[A1,I]; % Constraints b=-1*T1(1:6,1); % Constraint Direction e=ones(6,1)*2; [status,x,y,z]=lp_solver(A,b,c,'min',e,d); % Rearrange solution - such that 6month loan @ bottom x1=x(1,:); x2=x(2:7,:); x=[x2;x1]; y=y';
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Problem 55 %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function [x,y,z]=P55(T1) % Objective Function Set Up for i=1:4 c1=[c1,(1/T1(1,i)+T1(i,1))/2]; end c=[c1,zeros(1,16)]; % Generate "A" Matrix A11=diag(T1(1,1:4),0); A12=diag(T1(2,1:4),0); A13=diag(T1(3,1:4),0); A14=diag(T1(4,1:4),0); A10=zeros(1,4); Omar Hopkins Page 22 of 23
Project 1
A1=[ones(1,4),zeros(1,12);zeros(1,4),ones(1,4),zeros(1,8);zeros(1,8),ones (1,4),zeros(1,4);zeros(1,12),ones(1,4)]; A1=[zeros(4,4),A1]; A2=[-eye(4),A11,A12,A13,A14]; A3=[eye(4),zeros(4,16)]; A=[A1;A2;A3]; % Constraint Set Up b=[T1(5,1:4)';zeros(4,1);T1(6,1:4)']; e=[ones(4,1);ones(4,1)*3;ones(4,1)*2]; [status,x,y,z]=lp_solver(A,b,c,'max',e); x=x(1:4,1)'; y=[y(1,1:4);y(1,9:12)];
Omar Hopkins Page 23 of 23