TOMLAB Introduction: Difference between revisions

From TomWiki
Jump to navigationJump to search
(Created page with "==Introduction== ===What is TOMLAB?=== TOMLAB is a general purpose development, modeling and optimal control environment in Matlab for research, teaching and practical soluti...")
 
Line 12: Line 12:


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.
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.
===The Organization  of This Guide===
'''[[#Overall_Design|Section 2]]''' presents the general design of TOMLAB.
'''[[#Problem_Types_and_Solver_Routines|Section 3]]''' contains strict mathematical definitions of the optimization problem types.  All solver routines available in TOMLAB  are described.
'''[[#Defining_Problems_in_TOMLAB|Section 4]]''' describes  the input  format and modeling environment.  The functionality  of the modeling engine TomSym is discussed in 4.3 and also in appendix C.
'''[[#Solving_Linear.2C_Quadratic_and_Integer_Programming_Problems|Section 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 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 are not described, but documentation is available for each solver.
'''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.
'''Appendix  D '''is concerned with the global variables used in TOMLAB  and routines for handling important global variables enabling recursive calls of any depth.
'''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.


===Further  Reading===
===Further  Reading===

Revision as of 17:43, 23 June 2011

Introduction

What is TOMLAB?

TOMLAB is a general purpose development, modeling and optimal control 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. 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.

Further Reading

TOMLAB has been discussed in several papers and at several conferences. The main paper on TOMLAB v1.0 is \[42\].

The use of TOMLAB for nonlinear programming and parameter estimation is presented in \[45\], and the use of linear and discrete optimization is discussed in \[46\]. 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. TOMLAB v2.0 was discussed in \[43\], \[40\]. and \[41\]. TOMLAB v4.0 and how to solve practical optimization problems with TOMLAB is discussed in \[44\].

The use of TOMLAB for costly global optimization with industrial applications is discussed in \[9\]; costly global optimization with financial applications in \[37, 38, 39\]. Applications of global optimization for robust control is presented in \[25, 26\]. The use of TOMLAB for exponential fitting and nonlinear parameter estimation are discussed in e.g. \[49, 4, 22, 23, 47, 48\].

The manuals for the add-on solver packages are also recommended reading material.