Dear all,
I am trying to implement a constraint, saying that the sum of some variables in the problem should be equal to a certain fixed value (1 in this example). I am not quite familiar with the problem structure in these problems, and could not find any examples in the Matlab documentation. The code below shows the set up I have right now:
x0 = [zeros(1,N_plies) ones(1,N_plies)*t/N_plies];
lb = [-ones(1,N_plies)*90 zeros(1,N_plies)];
ub = [ones(1,N_plies)*90 ones(1,N_plies)*t];
c = @(x) sum(x(end/2+1:end)) == 1; %this does not work as handle for 'nonlcon'
opts = optimoptions(@fmincon,'Algorithm','sqp');
problem = createOptimProblem('fmincon','objective',...
@(x) ABDobjective(x),'x0',x0,'lb',lb,'ub',ub,'nonlcon',c,'options',opts);
Does anybody know of a way to make this work, or where there might be more information on how to set up this sort of structure?
Thanks,
Luca

 채택된 답변

Matt J
Matt J 2022년 5월 17일
x0 = zeros(1,N_plies);
lb = [-ones(1,N_plies)*90 zeros(1,N_plies)];
ub = [ones(1,N_plies)*90 ones(1,N_plies)*t];
Aeq=zeros(size(lb)); Aeq(end/2+1:end) = 1; %the sum constraint
beq=1;
opts = optimoptions(@fmincon,'Algorithm','sqp');
problem = createOptimProblem('fmincon','objective',...
@(x) ABDobjective(x),'x0',x0,'lb',lb,'ub',ub,'Aeq',Aeq,'beq',beq,'options',opts);

댓글 수: 1

Perfect! Did not know about this... (https://nl.mathworks.com/help/optim/ug/linprog.html)

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

추가 답변 (1개)

Torsten
Torsten 2022년 5월 17일
Aeq = [zeros(1,N_plies),ones(1,N_plies)];
beq = 1.0;

카테고리

도움말 센터File Exchange에서 Problem-Based Optimization Setup에 대해 자세히 알아보기

제품

릴리스

R2021a

질문:

2022년 5월 17일

댓글:

2022년 5월 17일

Community Treasure Hunt

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

Start Hunting!

Translated by