DOT – Design Optimization Tools
DOT is a general-purpose gradient-based optimization software library that can be used to solve a wide variety of optimization problems. Users have to link the DOT library into their own program. DOT provides the optimization technology, while the rest of the program has to provide the required function evaluations needed to perform the optimization. These function evaluations can be linear or nonlinear functions of the design variables. They may be very simple analytical functions or may be highly complicated implicit functions, for example a non-linear structural finite element simulation. Very little formal knowledge of optimization techniques is needed to make efficient use of DOT.
DOT can handle constrained, unconstrained, linear and non-linear optimization problems and can automatically calculate finite difference gradients needed during the optimization. DOT can also deal with user supplied gradients.
How does DOT work
The figure below defines the structure of a program that calls DOT to perform optimization. The user must provide a main program that setup the optimization problem. The user also provides an analysis subroutine or function which evaluates the objective and constraint functions and optionally calculates gradient information if gradient information is available.
The main program calls DOT to start the optimization. DOT will modify the design variables in search of the optimum. When DOT requires the values of the objective and constraint functions corresponding to a proposed design, it returns control to the main program. The main program calls DOT again to obtain the next design point and this process is repeated until DOT returns a parameter to indicate that the optimization is complete.
DOTTM Version 6 represents a major rewrite and enhancement of Versions 5.x. Following is a partial list of enhancements contained in Version 6.0.
- A few minor bugs have been corrected to make the basic optimization capability more robust. Most of these fixes are transparent to the average user, but are important to the overall reliability of the program. We have solved thousands of optimization problems in our quest to make DOT as robust as possible.
- The Golden Section Method is now available for use in the one-dimensional search. After the bounds have been reduced to the desired tolerance, polynomial interpolation is applied for a final refinement. If function evaluations are cheap, tightening the Golden Section tolerance will usually provide a better optimum.
- Major changes were made in the Modified Method of Feasible Directions (METHOD=1) to better follow curved constraints.
- Major changes were made in the Sequential Quadratic Programming Method, including addition of the Golden Section Method in the one-dimensional search.
- A SIMPLEX algorithm with built in upper bounds has been added to the Sequential Linear Programming Method (METHOD=2). In the past, the Modified Method of Feasible Directions was used to solve the linear sub-problem.
- Significant enhancements have been made to the Sequential Quadratic Programming algorithm (METHOD=3) to improve efficiency and robustness.
- Memory allocation has been greatly simplified.
- Subroutine DOT510, which estimates memory requirements, is still available to provide desired and maximum memory requirements. DOT510 no longer provides a minimum memory value since this unnecessarily restricted memory.
- Print levels have been modified to reduce the amount of output for lower IPRINT values.
DOTTM Version 5 represents a significant expansion and enhancement of Versions 4.x. Following is a partial list of enhancements contained in Version 5.0.
- A few minor bugs have been removed to make the basic optimization capability more robust. We have solved thousands of optimization problems in our quest to make DOT as robust as possible
- Significant enhancements have been made to the Sequential Quadratic Programming (SQP) algorithm (METHOD=3) to improve efficiency and robustness. We have made major changes in the memory allocation routines to allow for the solution of larger problems.
- The subroutine DOT510, which estimates memory requirements, has been greatly expanded. Now DOT510 provides minimum, desired and maximum memory needs. The interactive program, DTSTOR, includes this new information.
- If NRWK is input to DOT and contains more storage than the “desired” amount, the additional storage will be allocated to gradient storage and direction-finding calculations.
- If the number of active and violated constraints exceeds available memory, DOT will reduce the retained set and attempt to continue with the optimization process.
- Estimates of the Lagrange multipliers are now provided at the end of the optimization. These are stored in the first NCON locations of the WK array.
Our founder, Dr. Vanderplaats has written four optimizers. CONMIN (1972) and ADS (1984) were public domain research codes that are widely used by our competitors. His commercial codes, DOT and BIGDOT are exclusive to VR&D. DOT contains the Modified Method of Feasible Directions, invented by Dr. Vanderplaats. BIGDOT contains a new Sequential Unconstrained Minimization Technique, also invented by Dr. Vanderplaats, and able to solve extremely large constrained optimization problems.