MATLAB: How to solve or re-write an optimization problem with equality constraints, some integer variables and a non-linear objective function

Global Optimization ToolboxoptimizationOptimization Toolbox

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:
  1. fmincon does not support integer variables
  2. 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
  3. 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!

Best Answer

Thank you. Note sure whether I can use that software, but I will have a look.
I'm thinking about another solution: Creating the input (selection of integer variables) in such a way that the optimum solution can be found without calculating all the combinations. So, somehow the 'input creator' should learn from the output (machine learning). I have some ideas on how to do this, but I have never set-up something like this before.
Do you perhaps have somes ideas about this, or an example in which this is used ?
Related Question