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);