MATLAB Answers

0

how to optimize a function which optimization variable is not in it directly?

Asked by Sara Rajaee on 17 Jul 2019
Latest activity Answered by Walter Roberson
on 25 Jul 2019
there is a function in the picture which I should optimize it. Dm and I are matrixes . I has an indirect role in cacules of this function. how can I do that in matlab

  0 Comments

Sign in to comment.

2 Answers

Answer by Alan Weiss
on 19 Jul 2019

This looks like a binary programming problem. I don't know how the D_m depend on the I_{n,k}, but it looks like there is no big issue. Use intlinprog for the solution, or the problem-based approach.
Alan Weiss
MATLAB mathematical toolbox documentation

  3 Comments

thanks for your answer, I used problem-based approach for optimization, but I have a problem that I can't use mathematical caclus on optimization varible like X, for exmaple I can't find maximum element of X with "max (X)" and I get an error "Error using max
Invalid data type. First argument must be numeric or logical" or do division.
best regards
There is nothing in the formula that you posted that involves max()?
yeah, I have not posted all of the question here, but in part of that there are some max() function.

Sign in to comment.


Answer by Walter Roberson
on 25 Jul 2019

If you are using max and it is a discrete programming problem then try all of the possible input combinations and pick the best results.
If trying all of the possible inputs is not feasible (for example too slow above 2^40 possibilities) then ga()
fmincon cannot be used for discrete variables. intlinprog cannot be used when max() appears in the formula or constraints.
Sometimes instead of using max it can be feasible to run several slightly different problems, each assuming that one of the possibilities is the max, and then to take the result in which the max was true.

  0 Comments

Sign in to comment.