Models Constrained Global Optimization Problems: glc prob

From TomWiki
Jump to navigationJump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Notice.png

This page is part of TOMLAB Models. See TOMLAB Models.

In glc_prob there are 30 global mixed-integer nonlinear programming test problems with sizes to 20 variables and 5 constrains. In order to define the problem n and solve it execute the following in Matlab:

Prob	= probInit('glc_prob',n); 
Result  = tomRun('',Prob);

The basic structure of a constrained global optimization problems is the following


where , , , and . The variables , the index subset of , are restricted to be integers.

The following files are required to define a problem of this category in TOMLAB.

File: tomlab/quickguide/glcQG f.m, glcQG c.m

f:	Function
c: 	Constraints

An example of a problem of this class, (that is also found in the TOMLAB quickguide) is glcQG:

File: tomlab/quickguide/glcQG.m

% glcQG is a small example problem for defining and solving
% constrained global programming problems using the TOMLAB format.

Name = 'Hock-Schittkowski 59';
u = [75.196    3.8112    0.0020567  1.0345E-5  6.8306    0.030234   1.28134E-3 ...
     2.266E-7  0.25645   0.0034604  1.3514E-5  28.106    5.2375E-6  6.3E-8     ...
     7E-10     3.405E-4  1.6638E-6  2.8673     3.5256E-5];

x_L = [0 0]';     % Lower bounds for x.
x_U = [75 65]';   % Upper bounds for x.
b_L = []; b_U = []; A = []; % Linear constraints
c_L = [0 0 0];    % Lower bounds for nonlinear constraints.
c_U = [];         % Upper bounds for nonlinear constraints.
x_opt = [13.55010424 51.66018129]; % Optimum vector
f_opt = -7.804226324;              % Optimum
x_min = x_L;      % For plotting
x_max = x_U;      % For plotting
x_0 = [90 10]';   % If running local solver

Prob = glcAssign('glcQG_f', x_L, x_U, Name, A, b_L, b_U, ...
                  'glcQG_c', c_L, c_U, x_0, ...
                  [], [], [], [], ...
                  [], x_min, x_max, f_opt, x_opt);

Prob.user.u = u;
Prob.optParam.MaxFunc = 1500;

Result = tomRun('glcFast', Prob, 1);
%Result = tomRun('glcSolve', Prob, 1);
%Result = tomRun('lgo', Prob, 1);
%Result = tomRun('oqnlp', Prob, 1);