Dual problem and primal problem unbounded linear programming

13 次查看(过去 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)]

回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Linear Programming and Mixed-Integer Linear Programming 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by