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 Exchange에서 Nonlinear Optimization에 대해 자세히 알아보기

제품

릴리스

R2021b

Community Treasure Hunt

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

Start Hunting!

Translated by