« Previous « Start » Next »
1 Introduction
1.1 What is TOMLAB?
TOMLAB is a general purpose development environment in Matlab for
research, teaching and practical solution of optimization problems.
TOMLAB has grown out of the need for advanced, robust and reliable
tools to be used in the development of algorithms and software for the
solution of many different types of applied optimization problems.
There are many good tools available in the area of numerical analysis,
operations research and optimization, but because of the different
languages and systems, as well as a lack of standardization, it is a
time consuming and complicated task to use these tools. Often one has
to rewrite the problem formulation, rewrite the function
specifications, or make some new interface routine to make everything
work. Therefore the first obvious and basic design principle in TOMLAB
is:
Define your problem once, run all available solvers. The
system takes care of all interface problems, whether between languages
or due to different demands on the problem specification.
In the process of optimization one sometimes wants to graphically
view the problem and the solution process, especially for
ill-conditioned nonlinear problems. Sometimes it is not clear what
solver is best for the particular type of problem and tests on
different solvers can be of use. In teaching one wants to view the
details of the algorithms and look more carefully at the different
algorithmic steps. An unexperienced user or a student might want
some very easy way to solve the problem, and would like to use a
menu system or a graphical user interface (GUI). Using a GUI or a
menu system also makes it very easy to change parameters
influencing the solution process. When developing new algorithms
tests on thousands of problems are necessary to fully access the
pros and cons of the new algorithm. One might want to solve a
practical problem very many times, with slightly different
conditions for the run. Or solve a control problem looping in
real-time and solving the optimization problem each time slot.
All these issues and many more are addressed with the TOMLAB
optimization environment. TOMLAB gives easy access to a large set of
standard test problems, optimization solvers and utilities.
Furthermore, it is easy to define new problems in the TOMLAB format, and try
to solve them using any solver. To access the user problem in the
GUI or menu system, routines converting the problem into the TOMLAB Init File
and adding the problems to the GUI data base are available and
simple to use. To use TOMLAB in real-time control, the efficient
MEX-file interfaces calling fast Fortran solvers are of great
importance.
1.2 The Organization of This Guide
Section 2 presents the general design of TOMLAB .
Section 3 contains strict mathematical definitions
of the optimization problem types. All solver routines available in
TOMLAB are described.
Section 4 describes the two available input
formats, the TOMLAB Format (TQ) and the TOMLAB Init File Format
(IF).
Sections 5, 6, 7 and
8 contain examples on the process of defining problems
and solving them. All test examples are available as part of the
TOMLAB distribution.
Section 9 shows how to setup and define
multi layer optimization problems in TOMLAB .
Section 10 presents the Graphical User Interface
(GUI). The GUI gives the user the possibility to set all kinds of
solver parameters that influences the optimization process. It can
also be used as a code generator, saving the status of the GUI and
generating m-file code to run the current problem. There is also
an option to retrieve the saved status of the GUI.
Section 10.5 presents the menu system,
tomMenu . The menu system implements some, but not all of the
functionality of the GUI.
tomRemote but can be useful when
running TOMLAB on remote machines over text-only connections.
Section 11 contains detailed descriptions
of many of the functions in TOMLAB . The TOM solvers, originally
developed by the Applied Optimization and Modeling (TOM) group,
are described together with TOMLAB driver routine and utility
functions. Other solvers, like the Stanford Optimization
Laboratory (SOL) solvers called using MEX-file interfaces are not
described, but documentation is available for each solver, e.g.
the MINOS User's Guide [
60].
Section 12 describes the utility functions
that can be used, for example
tomRun and
SolverList.
Section 13 introduces the different
options for derivatives, automatic differentiation.
Section 14 discusses a number of special system
features such as partially separable functions and user supplied
parameter information for the function computations.
Appendix A contains tables describing all elements
defined in the problem structure. Some subfields are either empty, or
filled with information if the particular type of optimization problem
is defined. To be able to set different parameter options for the
optimization solution, and change problem dependent information, the
user should consult the tables in this Appendix.
Appendix B
contains tables describing all elements defined in the output result
structure returned from all solvers and driver routines.
An array of such structures are also returned if calling the GUI
or menu system with an output variable.
Appendix C is concerned with the global variables
used in TOMLAB and routines for handling important global variables
enabling recursive calls of any depth.
Appendix D describes in detail how to edit TOMLAB
Init Files directly.
Appendix E describes the available set of
interfaces to other optimization software, such as CUTE, AMPL, and The
Mathworks' Optimization Toolbox.
Appendix F
gives some motivation for the development of TOMLAB .
1.3 Further Reading
TOMLAB has been discussed in several papers and at several
conferences. The main paper on TOMLAB v1.0 is [
45]. The use
of TOMLAB for nonlinear programming and parameter estimation is
presented in [
48], and the use of linear and discrete
optimization is discussed in [
49]. Global optimization
routines are also implemented, one is described in [
8].
In all these papers TOMLAB was divided into two toolboxes, the NLPLIB
TB and the OPERA TB. This was impractical because of the integration
of linear and mixed-integer programming in the GUI and the other
menu and driver tools. The first version of the graphical user
interface (GUI) is described in [
20]. TOMLAB v2.0 was discussed
in [
46], [
43]. and [
44]. TOMLAB v4.0 and
how to solve practical optimization problems with TOMLAB is discussed
in [
47].
The use of TOMLAB for costly global optimization with industrial
applications is discussed in [
9]; costly global
optimization with financial applications in
[
40, 41, 42]. Applications of global optimization
for robust control is presented in
[
28, 29]. The use of TOMLAB for exponential fitting and nonlinear parameter estimation
are discussed in e.g.
[
52, 4, 25, 26, 50, 51].
The manuals for the add-on solver packages are also recommended
reading material.
« Previous « Start » Next »