I've got a problem with optimization and using a variable for exponent

Here is my matlab codeR
x = optimvar('x','type','integer','LowerBound',0,'UpperBound',48);
y = optimvar('y','type','integer','LowerBound',0,'UpperBound',48);
obj = fcn2optimexpr(@objfunx,x,y);
prob = optimproblem('Objective',obj);
con1 = x <= 48; prob.Constraints.constr = con1;
con2 = y <= 48; prob.Constraints.constr = con2;
con3 = (1-((0.2.^x))) + ((0.2.^x)).*(1-((0.3.^y))) >= 0.99;
prob.Constraints.constr = con3;
x0.x = 0; x0.y = 0;
show(prob)
function f = objfunx(x,y)
f =(60).*(x) + ((0.2.^x)).*(y).*(20);
end
and I got this error message
Error using optim.internal.problemdef.Power
Exponent must be a finite real numeric scalar.
Error in .^
Error in Test (line 8)
I want to get solution x, y
how can I solve this problem? I'm going to appreciate if you give me whole code

 채택된 답변

Alan Weiss
Alan Weiss 2020년 2월 27일
편집: Alan Weiss 2020년 2월 27일

0 개 추천

Optimization Toolbox™ does not support general nonlinear integer programming. Use ga or surrogateopt for nonlinear integer programming.
Or, for this problem, you could do exhaustive search; there are fewer than 2500 = 50^2 possibilities.
Alan Weiss
MATLAB mathematical toolbox documentation

댓글 수: 1

Thanks Alan Weiss, I already solved this problem with exhaustive search you mentioned.
I just wondered if I could solve that problem using some internal function that the MATLAB provides.
Your answer is really helpful for me and thank you again.

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 Surrogate Optimization에 대해 자세히 알아보기

제품

릴리스

R2019b

질문:

2020년 2월 26일

댓글:

2020년 2월 28일

Community Treasure Hunt

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

Start Hunting!

Translated by