maximization problem , linprog optimization

回答 (1 件)

Sulaymon Eshkabilov
Sulaymon Eshkabilov 2023 年 3 月 26 日

1 投票

Here is a nice documentation showing several examples how to apply linprog() fcn of MATLAB to solve such exercises:

6 件のコメント

Matt J
Matt J 2023 年 3 月 26 日
Also, you could use a problem-based workflow,
xu
xu 2023 年 3 月 27 日
I tried this one and it was not optimised well.
A=[0 -0.0123 0.738;0.0069 0.0069 0.828];
b=[-0.123;2.001];
lb=[160;10;0];
ub=[220;70; ];
f=[0;0;-1];
Aeq = [];
beq = [];
[x,favl]=linprog(f,A,b,Aeq,beq,lb,ub);
Warning: Length of upper bounds is < length(x); filling in missing upper bounds with +Inf.
Optimal solution found.
f1=0*x(1)+0.0123*x(2);
f2=-0.0069*x(1)-0.0069*x(2);
Matt J
Matt J 2023 年 3 月 27 日
Why do you think anything is wrong, apart from the warning?
xu
xu 2023 年 3 月 27 日
Since the optimal solution obtained from the literature was rather different from the one I got, I wondered if there was something wrong with my code.
Matt J
Matt J 2023 年 3 月 27 日
You should have,
ub=[220;70; +inf];
but that won't make a difference to the result.
Matt J
Matt J 2023 年 3 月 27 日
You can double check things with the problem-based approach:
lam=optimvar('lambda',1,'Lower',0);
x=optimvar('x',[2,1],'Lower',[160,10],'Upper',[220,70]);
Con.Con1=0.0123*x(2)-0.738*lam>=0.123;
Con.Con2=-0.0069*sum(x)-0.828*lam>=-2.001;
prob=optimproblem('Objective',lam,'ObjectiveSense','max','Constraints',Con);
sol=solve(prob)
Solving problem using linprog. Optimal solution found.
sol = struct with fields:
lambda: 0.6667 x: [2×1 double]

サインインしてコメントする。

カテゴリ

質問済み:

xu
2023 年 3 月 26 日

コメント済み:

2023 年 3 月 27 日

Community Treasure Hunt

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

Start Hunting!

Translated by