Models Constrained Global Optimization Problems: glc prob

From TomWiki

Jump to: navigation, search

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



\begin{array}{ll}\min\limits_{x} & f(x) \\&  \\s/t & \begin{array}{llcccll}-\infty < &x_{L} & \leq  & x & \leq & x_{U}& < \infty  \\&b_{L} & \leq  & A x  & \leq & b_{U}& \\&c_{L} & \leq  & c(x) & \leq & c_{U},&    ~x_{j} \in \mathbb{N}\ ~~\forall j \in I,  \\\end{array}\end{array}

where x, x_L, x_U \in \mathbb{R}^n, f(x) \in \mathbb{R}, A
\in \mathbb{R}^{m_1 \times n}, b_L,b_U \in \mathbb{R}^{m_1} and c_L,c(x),c_U \in \mathbb{R}^{m_2}. The variables x \in I, the index subset of 1,...,n, 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);
Personal tools