Mixed-integer nonlinear programming problems are modeled just like nonlinear programming problems but with integer variables as well. Observe that bounds, linear/nonlinear constraints can be mixed and defined in any order. TomSym will automatically structure the problem on the appropriate format.
Name='minlp1Demo - Kocis/Grossman.';
toms 2x1 x
toms 3x1 integer y
objective = [2 3 1.5 2 -0.5]*[x;y];
constraints = { ...
x(1) >= 0, ...
x(2) >= 1e-8, ...
x <= 1e8, ...
0 <= y <=1, ...
[1 0 1 0 0]*[x;y] <= 1.6, ...
1.333*x(2) + y(2) <= 3, ...
[-1 -1 1]*y <= 0, ...
x(1)^2+y(1) == 1.25, ...
sqrt(x(2)^3)+1.5*y(2) == 3, ...
};
guess = struct('x',ones(size(x)),'y',ones(size(y)));
options = struct;
options.name = Name;
Prob = sym2prob('minlp',objective,constraints,guess,options);
Prob.DUNDEE.optPar(20) = 1;
Result = tomRun('minlpBB',Prob,2);