
536 日本ロボット学会誌 Vol. 32 No. 6, pp.536~541, 2014 解 説 Software Tools for Nonlinear Optimization |Modern Solvers and Toolboxes for Robotics| Thomas Moulard∗1 Benjamin Chr´etien∗2 Eiichi Yoshida∗1 ∗1CNRS-AIST JRL (Joint Robotics Laboratory), UMI3218/CRT ∗2CNRS-UM2 LIRMM UMR 5506, Interactive Digital Human group This article reviews the state-of-the-art of nonlinear the activity of the project should be considered when solvers as well as frameworks for numerical optimiza- one chooses an algorithm from available ones (e.g. In- tion, which is more and more utilized for robotics appli- terior Point or Sequential Quadratic Problems). cations. We will discuss the features and project status This paper is reviewing various nonlinear solvers in for each solver and detail how one can use a numeri- 2 as well as numerical optimization frameworks in 3. cal optimization framework to avoid being limited to a Solvers are implementing one algorithm or one family particular solver. The comparison allows to choose the of algorithms whereas frameworks are designed as tool- appropriate strategy in robotics where trajectory gener- boxes with which many solvers can be used. The 4 ation, posture generation, control can be implemented provides a benchmark of various solvers based on the as different types of optimization problems. result obtained in the RobOptim framework. Finally, 5 discusses the benchmark results and concludes. 1. Introduction 2. State-of-the-Art Nonlinear Optimization Tool- Various problems in robotics are heavily relying on boxes numerical optimization. However, implementing these algorithms requires a high level of expertise and also is 2. 1 COIN IPOPT error-prone and time consuming. Both the required the- The COIN-OR (COmputation INfrastructure for Op- oretical background and the implementation issues such erational Research) is releasing an open-source, non- as numerical precision and parameter tuning makes the linear solver based on the interior point method called task of writing a new solver challenging. Therefore, IPOPT [1]. this paper will introduce various libraries implementing This solver is written in C++, provides a full object- solvers for constrained nonlinear optimization problems oriented interface and the website provides up-to-date in C/C++ or Python. Linear and quadratic problems documentation. The solver can solve nonlinear prob- are, of course, of interest but as they are easier to im- lems and ask the user to compute the functions values, plement, finding the right tool is nowadays straightfor- gradients and optionally hessian. If Hessian computa- ward. C and C++ languages have been chosen due to tion is not provided, the solver will approximate it using their popularity in intensive computation tasks such as a limited quasi-Newton algorithm (L-BFGS). The Jaco- numerical optimization. On the other hand, Python is bian and Hessian matrices are passed as sparse matrices, gaining in popularity due to its flexible syntax and its hence this solver is particularly suitable for large prob- ease of use. lems such as trajectory optimization. IPOPT relies on Once the decision of using a third-party solver is linear solvers for its interior-point method. It supports made, it is sometimes difficult to find the right toolbox. different linear solvers that can have a strong impact on Robustness of the algorithm as well as the license and the convergence and the optimization result. One could for instance use MUMPS [2] (open-source), or HSL's 原稿受付 2014 年 4 月 16 日 proprietary solvers (e.g. MA27, MA57, HSL MA97) [3]. キーワード:Numerical Optimization, Software ∗1〒 305{8568 つくば市梅園 1{1{1 For large-scale problems, MUMPS can distribute com- ∗2 Universit´eMontpellier 2, LIRMM UMR 5506, 161 rue Ada, putation over a cluster of machines using MPI, and some 34095 Montpellier, FRANCE ∗1Tsukuba{shi, Ibaraki of the HSL solvers also support parallel computation. JRSJ Vol. 32 No. 6 |46| July, 2014 Software Tools for Nonlinear Optimization 537 Finally, IPOPT includes a limited support for warm was made with interplanetary trajectory optimization start. in mind, the methods can still be applied to robotics 2. 2 CFSQP problems. Indeed, PaGMO provides an implementa- CFSQP [4] is a nonlinear solver written in C. Its inter- tion of the Generalized Island Model [10], which allows face is limited to a single C function requesting pointers the solver to distribute genetic algorithms over multi- to function to evaluate functions as well as Jacobians. ple processors. PaGMO can parallelize the workload on As a result, its use is more complicated than other multiple local threads as well as on multiple machines solvers from a technical point of view, but is largely thanks to MPI support. A Python interface, PyGMO, compensated by a very thorough documentation. The is also available. main drawback of this solver is that it is a closed-source Contrary to the other solvers presented here, PaGMO solver distributed by AEM Design Inc. This company's relies mostly on evolutionary algorithms to solve op- website is not available anymore and it is unknown if the timization problems, but it also supports nonlinear distribution of this software will continue. This software solvers such as GSL, IPOPT, NLopt or SNOPT. One supports multi-objective minimization and requires the of the advantages of its method is that it is less prone developer to provide a mean to evaluate functions as to entrapment by local minima. PaGMO offers a wide well as Jacobians. Sparse problems as well as warm range of evolutionary or stochastic algorithms: Differ- start are not supported. ential Evolution, Particle Swarm Optimization, Mono- 2. 3 NAG tonic Basin Hopping, Ant Colony Optimization, Monte NAG [5] is a commercial library including a large Carlo, etc. number of numerical algorithms, including numerical 2. 6 Summary optimization algorithms. In particular, two nonlinear Open-source software for numerical optimization is solvers are provided for both dense and sparse prob- becoming increasingly common. However, nonlinear lems. It provides a C API and is a closed-source soft- solvers remain a niche where using proprietary tools can ware which makes it more difficult to use. The docu- remain a necessity. Open-source projects like NLopt or mentation is good from a technical point of view, but PaGMO are younger, yet promising projects, but even it does not cover the full details of the underlying al- nowadays the older, proprietary solvers such as CFSQP gorithms. The nonlinear solver is using the Sequen- keep the lead when it comes to small problems. IPOPT tial Quadratic Programming strategy (SQP). The solver achieves intermediate results but it has been designed supports warm start. more for larger problems and thus is penalized when 2. 4 NLopt one has to deal with smaller, dense, problems. NAG is NLopt is an open-source library dedicated to non- also a possible alternative with medium performances. linear optimization [6]. It includes several well-known Moreover, when dealing with a specific problem, the optimization algorithms, either global (e.g. MLSL, theoretical best off-the-shelf solver may not be the one StoGO), local derivative-free (e.g. BOBYQA) or local providing the best results. For instance, some prob- gradient-based (e.g. MMA [7], SLSQP) algorithms, as lems may be easily solvable with SQP-based solvers well as the Augmented Lagrangian algorithm [8]. while interior-point solvers will take more time to con- This library aims at supporting different types verge. These problem-specific considerations can be of large-scale optimization problems: unconstrained, easily evaluated if the library used to implement the bound-constrained, or the general equality/inequality- problems can handle multiple solvers. Frameworks as constrained problem. Nonetheless, support for sparse the one which will be introduced in the 3 try to answer matrices has not been added yet. NLopt can be inter- this problem. faced with multiple languages: C/C++, Fortran, Mat- Nonlinear solvers still rely heavily on parameter tun- lab, Python, Julia etc. ing (tolerances, scaling, etc.), and the users may need 2. 5 PaGMO to set these parameters according to their goal: quality PaGMO, which stands for Parallel Global Multiobjec- of the solution, computation speed etc. Yet, the more tive Optimizer, is an open-source optimization toolbox complex the problem, the more unclear the influence of developed by the ESA [9]. Even though this library these parameters on the convergence. 日本ロボット学会誌 32 巻 6 号 |47| 2014 年 7 月 538 Thomas Moulard Benjamin Chr´etien Eiichi Yoshida Table 1 Nonlinear solver comparison Solver Project Status License Strategy Features IPOPT active open-source (EPL) Interior Point Warm Start, Sparse CFSQP inactive closed-source SQP none NAG active closed-source SQP Warm Start, Sparse NLopt active open-source (LGPL) Multiple Global/Local PaGMO active open-source (GPLv3) Evolutionary Global, Multithreading, MPI The Table 1 will summarize the advantages and tomatic differentiation. If the user wants to implement drawbacks of every solver. the Jacobian manually, it can be checked by DerAp- proximator which validates computation using numeri- 3. Numerical Optimization Frameworks cal differentiation. The framework is open-source and is An efficient solver is the key to solve robotics prob- distributed under the BSD licence. OpenOPT has been lems in a timely manner. However, it is difficult to designed with offline optimization of large problems in choose the right solver, and even harder to determine mind, and thus supports sparse matrices. the required features or to formulate the optimization 3. 2 RobOptim problem in an appropriate manner. In these scenarii, RobOptim [13] is a numerical optimization frame- instead of relying on a particular solver, a more general work written by the author of this paper and several \optimization framework" is advantageous because it other contributors. It is a templated C++ library de- allows us to change the resolution strategy after running signed to limit overhead as much as possible when solv- tests on the full problem.
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages6 Page
-
File Size-