Dual problem and primal problem unbounded linear programming
์กฐํ ์: 26 (์ต๊ทผ 30์ผ)
์ด์ ๋๊ธ ํ์
Hello,
I need some help please to solve this problem I have . I have solved a max. problem , the primal problem , by using linprog.
After this , I have done the dual problem of the primal. After this proccess, I don't get the result that I should get , because the values of F0 should be the same in both cases(if I am not wrong).
I am sending the illustrated problem and code below. I hope someone can give me a help.
thank you !
Max 300๐ฅ1 + 400๐ฅ2
๐ฅ1 + ๐ฅ2 โค 320
4๐ฅ1 + 5๐ฅ2 โค 510
2๐ฅ1 + 3๐ฅ2 โค 430
3๐ฅ1 + ๐ฅ2 โค 300
๐ฅ1,๐ฅ2 โฅ 0
The Dual Problem
Min 320๐ฆ1 + 510๐ฆ2 + 430๐ฆ3 + 300๐ฆ4
๐ฆ1 + 4๐ฆ2 + 2๐ฆ3 + 3๐ฆ4 โฅ 300
4๐ฆ1 + 5๐ฆ2 + 3๐ฆ3 + ๐ฆ4 โฅ 400
๐ฆ1,๐ฆ2,๐ฆ3,๐ฆ4 โฅ 0
Matlab Code:
%Primary Problem
%Ax<=b
%coefficients of A
A = [1 4; 4 5; 2 3; 3 1];
%coefficients of B
b = [320 510 430 300];
%coefficients of the objective function
f = [300 400];
%The maximation of the linear function using the matlab linear
%programming function
[x0,F0] = linprog(-f,A,b,[],[],[0 0])
% disp('x0 = ')
% disp(x0);
%------------------------------------------------------------------
%Dual problem
%coefficients of AT
AT = [1 4 2 3;
4 5 3 1];
%coefficients of u
u = [300 400];
g = [320 510 430 300];
%setting a lower bounder
lb = zeros(1,4);
%setting an upper bounder
ub=[];
[u0,F0] = linprog(g,-AT,-u,[],[],lb,ub)
% disp('u0 = ');
% disp(u0);
%So,1st and 2nd constrains of the primary problem are active
%because u0 = [9.0909
% 72.7273
% 0
% 0]
%Solutions of Primary problem throug the dual problem
syms x1 x2
eqns = [x1 + x2 == 320, 4*x1 + 5*x2 == 510];
S = solve(eqns,[x1 x2]);
b = [S.x1 S.x2];
disp('Values of x ')
disp(b);
duality_gap = [x0(1)-u0(1); x0(2)-u0(2)]
๋๊ธ ์: 1
๋ต๋ณ (1๊ฐ)
Matt J
2024๋
7์ 27์ผ
ํธ์ง: Matt J
2024๋
7์ 27์ผ
%Primary Problem
%coefficients of A
A = [1 4; 4 5; 2 3; 3 1];
%coefficients of B
b = [320 510 430 300];
%coefficients of the objective function
f = [300 400];
%The maximation of the linear function using the matlab linear
%programming function
[x0,F0] = linprog(-f,A,b,[],[],[0 0]);
F0=-F0
%------------------------------------------------------------------
%Dual problem
%coefficients of AT
AT = A';
%coefficients of u
u = f;
g = b;
%setting a lower bounder
lb = zeros(1,4);
[u0,F0] = linprog(g,-AT,-u,[],[],lb);
F0
๋๊ธ ์: 0
์ฐธ๊ณ ํญ๋ชฉ
์นดํ ๊ณ ๋ฆฌ
Help Center ๋ฐ File Exchange์์ Solver Outputs and Iterative Display์ ๋ํด ์์ธํ ์์๋ณด๊ธฐ
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!