MultiMINLP: Difference between revisions

From TomWiki
Jump to navigationJump to search
No edit summary
mNo edit summary
Line 1: Line 1:
{{Part Of Manual|title=the MIPNLP Manual|link=[[MIPNLP|MIPNLP]]}}
[[Category:Solvers]]
[[Category:Solvers]]
==Purpose==
==Purpose==

Revision as of 10:39, 9 October 2014

Notice.png

This page is part of the MIPNLP Manual. See MIPNLP.

Purpose

multiMINLP solves general constrained mixed-integer global nonlinear optimization problems.

It is aimed for problems where the number of integer combinations nMax is huge and relaxation of the integer constraint is possible.

If no integer variables, multiMINLP calls multiMin. If nMax <= min(Prob.optParam.MaxFunc,5000), glcDirect is used. Otherwise, multiMINLP first finds a set M of local minima calling multiMin with no integer restriction on any variable. The best local minimum is selected. glcDirect is called to find the best integer feasible solution fIP in a small area (< +- 2 units) around the best local minimum found.

The other local minima are pruned, if fOpt(i) > fIP, no integer feasible solution could be found close to this local minimum i.

The area close to the remaining candidate local minima are searched one by one by calling glcDirect to find any fIPi < fIP.

multiMINLP solves problems of the form


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

Calling Syntax

Result = tomRun('multiMINLP',Prob,...)

Inputs

Prob is a structure, defined as to solve a standard MINLP problem. The Prob structure is fed to the localSolver. See e.g. minlpAssign. See multiMin and glcDirect for input to the subsolvers e.g. Prob.xInit is used in multiMin (and fCut, RandState, xEQTol).
Prob Problem description structure. The following fields are used:
x_L Lower bounds for each element in x. If generating random points, -inf elements of x_L are set to min(-L,xMin,x U-L) xMin is the minimum of the finite x_L values.
x_U Upper bounds for each element in x. If generating random points, inf elements of x_U are set to max(L,xMax,x L+L) xMax is the maximum of the finite x_U values.

L is 100 for nonlinear least squares, otherwise 1000.

b_L Lower bounds on linear constraints.
b_U Upper bounds on linear constraints.
A The linear constraint matrix.
c_L Lower bounds on nonlinear constraints.
c_U Upper bounds on nonlinear constraints.
PriLev Print Level:

0 = Silent

1 = Display 2 summary rows

2 = Display some extra summary rows

5 = Print level 1 in tomRun call

6 = Print level 2 in tomRun call

7 = Print level 3 in tomRun call

xInit Used in multiMin. See help for multiMin.
GO.localSolver The local solver used to run all local optimizations. Default is the license dependent output of GetSolver('con',1,0).
optParam Structure in Prob, Prob.optParam. Defines optimization parameters. Fields used:
MaxFunc Max number of function evaluations in each subproblem
fGoal Goal for function value f(x), if empty not used. If fGoal is reached, no further local optimizations are done
eps_f Relative accuracy for function value, fTol == eps_f. Stop if abs(f-fGoal) <= abs(fGoal) * fTol , if fGoal = 0. Stop if abs(f-fGoal) <= fTol , if fGoal ==0. Default 1e-8.
bTol Linear constraint feasibility tolerance. Default 1e-6
cTol Nonlinear constraint feasibility tolerance. Default 1e-6
MIP Structure in Prob, Prob.MIP. Defines integer optimization parameters. Fields used:
IntVars If empty, all variables are assumed non-integer. If islogical(IntVars) (=all el- ements are 0/1), then 1 = integer variable, 0 = continuous variable. If any element >1, IntVars is the indices for integer variables.
nMax Number of integer combinations possible, if empty multiMINLP computes nMax.
Rfac Reduction factor for real variables in MINLP subproblem close to local multiMINLP minimum. Bounds set to x_L = max(x_L,x-Rfac*(x_U-x_L)) and x_U= min(x_U,x+Rfac*(x_U-x_L)). Default 0.25.

Outputs

Result Structure with result from optimization. The following fields are changed:
Result structure from the last good optimization step giving the best f(x) value, the possible global MINLP minimum.

The following fields in Result are changed by multiMINLP before return:

ExitFlag = 0 normal output, of if fGoal set and found.

= 1 A solution reaching the user defined fGoal was not found.

= 2 Unbounded problem.

=4 Infeasible problem.

The Solver, SolverAlgorithm and ExitText fields are also reset.

A special field in Result is also returned, Result.multiMINLP:

xOpt Prob.N x k matrix with k distinct local optima, the test being norm(x k- xOpt(:,i)) <= xEqTol*max(1,norm(x k)) that if fulfilled assumes x_k to be to close to xOpt(:,i).
fOpt The k function values in the local optima xOpt(:,i),i=1,...,k.
Inform The Inform value returned by the local solver when finding each of the local optima xOpt(:,i); i=1,...,k. The Inform value can be used to judge the validity of the local minimum reported.
localTry Total number of local searches.
Iter Total number of iterations.
FuncEv Total number of function evaluations.
GradEv Total number of gradient evaluations.
HessEv Total number of Hessian evaluations.
ConstrEv Total number of constraint function evaluations.
ExitText Text string giving Inform information.