TRICE DESIGN

TRICE algorithms are designed to solve optimal control and engineering design problems governed by partial differential equations(PDEs). In this case, the constraints c(y,u) = 0 in the abstract optimization problem

 min f(y,u) , s.t. c(y,u) = 0 , e(y,u) = 0 , h(y,u) <= 0 ,
arise from a discretization of the governing partial differential equations. This property of the problem leads to several observations
• Typically, the solution of the (linearized) PDEs is very expensive and dominates the cost of the optimization method.
• Often, efficient application dependent solvers for the (linearized) PDEs are available, for example from previous simulation studies.
• The optimization problem to be solved is a discretization of an infinite dimensional optimization problem, e.g., y and/or u represent functions. It is known that the underlying infinite dimensional problem often dominates the discretized, finite dimensional one.
These observations lead to the following design principles realized in the TRICE algorithms:
• The structure of the optimal control problem arising from the partitioning of variables into states y and controls u is utilized.
• The user is allowed to incorporate efficient application dependent solvers for the (linearized) PDEs. TRICE algorithms do not insist on specific, in the optimization code included linear system solvers for systems related to the linearization of c(y,u).
• The linearized governing equations are often solved iteratively. Therefore, TRICE allow the use of inexact solvers. The accuracy of the solves is adapted to the progress of the optimization algorithm and the quality of the current iterate as an approximate solution to the optimization problem.
• TRICE algorithms communicate with the application programs in an object oriented way. Given certain data, TRICE algorithms only require the results of specified, application related operations on these data, but do not require any knowledge on how these operations are performed. For example, given an iterate (y,u), TRICE algorithms require the evaluation of the constrained function c(y,u) or the solution of the linearized equation c'(y,u) s = -c(y,u), but do not require knowledge on how these tasks are performed, in particular do not require the Jacobian c'(y,u).
As a consequence, TRICE algorithms are potentially useful for distributed computing and multidisciplinary optimization. Application related operations such as the evaluation of c(y,u) or the solution of the linearized equation c'(y,u) s = -c(y,u) can be performed on different computers and the result can be exchanged with the TRICE algorithm via a network.
• The user can incorporate and utilize the infinite dimensional structure of the optimization problem. This is implemented in TRICE algorithms by allowing the use of weighted inner products.
More details on the design of the TRICE algorithms may be found in papers and, in particular, in the manuals contained in the TRICE software page .

TRICE homepage
Design Algorithms Applications Software