Solves an unconstrainted multi-variable mixed integer non linear programming optimization problem
xopt = intfminunc(f,x0) xopt = intfminunc(f,x0,intcon) xopt = intfminunc(f,x0,intcon,options) [xopt,fopt] = intfminunc(.....) [xopt,fopt,exitflag]= intfminunc(.....) [xopt,fopt,exitflag,gradient,hessian]= intfminunc(.....)
a function, representing the objective function of the problem
a vector of doubles, containing the starting of variables.
a vector of integers, represents which variables are constrained to be integers
a list, containing the option for user to specify. See below for details.
a vector of doubles, the computed solution of the optimization problem.
a scalar of double, the function value at x.
a scalar of integer, containing the flag which denotes the reason for termination of algorithm. See below for details.
a vector of doubles, containing the Objective's gradient of the solution.
a matrix of doubles, containing the Objective's hessian of the solution.
Search the minimum of a multi-variable mixed integer non linear programming unconstrained optimization problem specified by : Find the minimum of f(x) such that
The routine calls Bonmin for solving the Un-constrained Optimization problem, Bonmin is a library written in C++.
The options allows the user to set various parameters of the Optimization problem. It should be defined as type "list" and contains the following fields.
The exitflag allows to know the status of the optimization which is given back by Bonmin.
For more details on exitflag see the Bonmin page, go to http://www.coin-or.org/Bonmin
//Find x in R^2 such that it minimizes the Rosenbrock function //f = 100*(x2 - x1^2)^2 + (1-x1)^2 //Objective function to be minimised function y=f(x) y= 100*(x(2) - x(1)^2)^2 + (1-x(1))^2; endfunction //Starting point x0=[-1,2]; intcon = [2] //Options options=list("MaxIter", [1500], "CpuTime", [500]); //Calling [xopt,fopt,exitflag,gradient,hessian]=intfminunc(f,x0,intcon,options) // Press ENTER to continue |
//The below problem is an unbounded problem: //Find x in R^2 such that the below function is minimum //f = - x1^2 - x2^2 //Objective function to be minimised function [y, g, h]=f(x) y = -x(1)^2 - x(2)^2; g = [-2*x(1),-2*x(2)]; h = [-2,0;0,-2]; endfunction //Starting point x0=[2,1]; intcon = [1] options = list("gradobj","ON","hessian","on"); [xopt,fopt,exitflag,gradient,hessian]=intfminunc(f,x0,intcon,options) |