How can I solve this Min Opt with 9 decision variables, which are again in the form of matrices

조회 수: 1 (최근 30일)
Hi, I am very new to Matlab and I have the following question, but first the code:
x1 = sym('x1',[NA,NB]); % [ 0 , inf ]
x2 = sym('x2',[NA,NB]); % [ 0 , inf ]
x3 = sym('x3',[NA,NB]); % [ 0 , inf ]
x4 = sym('x4',[NA,NB]); % [ -inf , inf ]
%---
for i = 1:NA
for ii = 1:NB
C1(i,ii) = beqC1(i,ii) == x8(i,ii) + x7(i,ii) + x9(i,ii) + x2(i,ii);
C2(i,ii) = beqC2(i,ii) == x8(i,ii) + x3(i,ii) + x6(i,ii);
end
end
%---
[Aeq,beq] = equationsToMatrix([C1, C2], [x1, x2, x3, x4]);
f = sum(x5(:));
[x,costopt,exitflag,output] = intlinprog(f,[],[],[],Aeq,beq,[],[],[]);
Since I am a total beginner using Matlab, my question will be quite easy: How can I make this optimization problem work, so that it is in line with the following mathematical problem?
Since I already searched in the forum and on the web for solutions, without finding THE RIGHT guideline I would be more than happy to have expert help to code this problem. :)
Thank you!

채택된 답변

Alan Weiss
Alan Weiss 2017년 11월 6일
I think that you are doing very well for a novice. You can continue in two different ways, at least.
1. As you have been doing, but realize that you need to convert your problem from symbolic variables to standard MATLAB doubles.
Aeqf = double(Aeq);
beqf = double(beq);
ff = zeros(size(Aeq,2),1);
f = sum(x5(:)) % just to see the relevant variables
ff(51:54) = 1;
intcon = 1:length(f);
lb = zeros(length(ff),1);
lb(3*12+1:4*12+4) = -Inf;
[x,costopt,exitflag,output] = intlinprog(ff,intcon,[],[],Aeqf,beqf,lb);
This didn't quite work for me when I tried it; perhaps something is still missing from the bounds, because the error message that came back was "Intlinprog stopped because the root LP problem is unbounded."
2. If you have R2017b, try the new Problem-Based Optimization approach. Instead of using symbolic variables, use optimization variables to formulate and solve your problem.
Good luck,
Alan Weiss
MATLAB mathematical toolbox documentation

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Surrogate Optimization에 대해 자세히 알아보기

태그

아직 태그를 입력하지 않았습니다.

Community Treasure Hunt

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

Start Hunting!

Translated by