NAG MATLAB 工具箱®性能测试案例

NAG MATLAB 工具箱最令使用者满意的就是其執行效能了,尤其在优化的函数上,我们提供了完整、精确且效率高的相关函数。以下我们透过 NAG 的 e04uc 函数与 MATLAB 的 fmincon 函数进行优化求解的執行效能比较。

测试背景

我们自 Dolan, More 与 Munson 所提的 22 个不同的求解大尺度优化例题中,取出 4 个不同的求解问题,分别利用 NAG 的 e04uc 与 MATLAB 的 fmincon 函数求解。 这 4 个优化问题简单描述如下:

  • Elastic-Plastic Torsion (扭力的弹塑性):当扭转长圆柱体时,分析潜在的压力
  • Journal Bearing (轴承滑动):当轴承滑动,研究当轴承滑动时,其中润滑油的压力分布
  • Minimal Surface with Obstacle (最小曲面):在给定的条件上,找出最小的曲面
  • Triangular Mesh Smoothing (三角网格平滑化):透过调试顶点位置,求取具有固定边界的三角网格的最平滑解
测试环境

SUSE LES 10 SP1 / 2 dual-core AMD Opterons (2.2GHz) / 4GB RAM

测试结果 (单位:秒)

Torsion
(nx=30)
Journal Bearing
(nx=30)
Minimal Surface
(nx=30)
Mesh Smoothing
(pacman)
fmincon 178.7 645.9 739.7 无法求解
e04uc 11.9 190.3 92.17 3503
*nx 为变数个数
*e04uc 与 fmincon 皆设定相同的参数条件

以下为速度倍数比较,NAG 函数远远优于 fmincon。

参考数据
E. Dolan, J. More and T. Munson, Benchmarking Optimization Software with COPS 3.0, Mathematics and Computer Science Division, Argonne National Laboratory, Technical Report ANL/MCS-273 (February 2004), http://www.mcs.anl.gov/~more//cops/cops3.pdf