How can I solve or re-write an optimization problem with equality constraints, some integer variables and a non-linear objective function?
이전 댓글 표시
Hi,
I'm trying to optimize the following (very simplified) problem:
Non_linear_objective = 500 * (x(1)+x(2)+x(3)+x(4)) + 200 * (x(5)+x(6)+x(7)+x(8)) + 95 * ( x(9)-1)^2 + (x10-x9)^2 + (x11-x10)^2 + (x12-x11)^2 + (1-x12)^2 );
5 equality constraints:
x(1)+x(5)+x(9) = 1
x(2)+x(6)+x(10) = 1
x(3)+x(7)+x(11) = 1
x(4)+x(8)+x(12) = 1
40 *( x(1)+x(2)+x(3)+x(4)) = 80
4 integer variables: x(9), x(10),x(11),x(12) (which actually means that x(1)+x(5) (etc) is binary)
Why I'm currently not able to solve this:
- fmincon does not support integer variables
- I can rewrite the problem to a linear objective, with non-linear constraints, and 4 integer variables. But intlinprog does not support non-linear constraints
- I can use the Genetic Algorithm, but this finds a local mimum only. I have to solve this simple problem >300 times, to find the correct answer. (I'm using lb and ub of 0 and 1 for all variables)
Is my reasoning correct?
How could I solve these kind of problems?
Thank you!
댓글 수: 1
Are there positivity constraints on the x(i), i.e. x >= 0 e.g. ?
If this is the case, x(9)-x(12) can only have values 0 or 1. There are 2^4 = 16 combinations for x(9)-x(12) with 0 or 1 for the variables. So just solve your problem by running it 16 times using "quadprog" (or "fmincon").
Best wishes
Torsten.
채택된 답변
추가 답변 (1개)
Dredging Production
2018년 12월 19일
편집: Dredging Production
2018년 12월 19일
0 개 추천
카테고리
도움말 센터 및 File Exchange에서 Linear Programming and Mixed-Integer Linear Programming에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!