p = optimproblem;
x = optimvar('x', 2,'Type','integer','LowerBound',0,'UpperBound',Inf);
p.ObjectiveSense = 'maximize';
p.Objective = 10*x(1) + 20*x(2);
cons1 = 6*x(1) + 8*x(2) >= 48;
cons2 = x(1) + 3*x(2) >=12;
p.Constraints.cons1 = cons1;
p.Constraints.cons2 = cons2;
sol = solve(p);
sol.x
Output ----
Solving problem using intlinprog.
Root LP problem is unbounded.
Intlinprog stopped because the root LP problem is unbounded.
ans =
[]

 採用された回答

Torsten
Torsten 2022 年 3 月 1 日

2 投票

Yes, I can see it with my naked eye that you can make the objective function as big as you like.
Take x(1) = 1e100, x(2) = 1e100, then x is feasible and the objective gives 30*1e100.

その他の回答 (1 件)

Janardhan Rao Moparthi
Janardhan Rao Moparthi 2023 年 12 月 28 日

0 投票

Since you do not specify the boundaries for the variable x(1) and x(2), it is giving error. instead try
  1. if the variables are not binary
lb = zeros(2,1);
ub = [inf;inf];
2.If the variables are binary
lb = zeros(2,1);
ub = [1;1];

カテゴリ

ヘルプ センター および File ExchangeNonlinear Optimization についてさらに検索

製品

リリース

R2021b

Community Treasure Hunt

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

Start Hunting!

Translated by