system: [SYSTEM]

user: 4. 数值实验 本文从文献 [ 5 ] 中取出38个标准测试问题进行数值实验，目的是比较本文算法与几种经典无约束优化算法的数值效果以及对本文不同M值的算法的试验效果。所有数值实验都是在WINDOWS10操作系统，CPU频率为2.0 GHz，内存为2 GB的个人计算机上进行。各参数选取如下： ， σ = 0 .4 ， ρ = 0 .55 ， η = 10 − 10 。其中如果步2中 λ k 不满足(1.12)，则参数 由下列式子给出： τ = { 1 ，                             ‖ g k ‖ 2 > 1 ‖ g k ‖ 2 − 1 ，         10 − 5 ≤ ‖ g k ‖ 2 ≤ 1 10 5 ，                       ‖ g k ‖ < 10 − 5 (4.1) 表1中列出了各计算结果，其中各列的代表含义如下：k：迭代次数；flag：函数值的计算次数； f * ：算法求得的最优值。文中的初始点 x 0 采用文献 [ 5 ] 中给定的用来试验函数正确性的点作为初始点；终止条件采用 ‖ g k ‖ ≤ 10 − 8 。 表1选取M = 1，M = 2，M = 5，M = 10对本文算法进行比较，计算出不同的M值函数的迭代次数k，函数值的计算次数flag和函数值 f * ，并进行了比较。凸组合参数t的选取是通过比较t = 0.4， 0.5， 0.55，0.6，0.618这几个参数选取的，通过比较发现当 t = 0.618 时，表现效果较佳，因此选择 。其次从表中可以看出当M = 10时，该算法在最优函数值，函数值的计算次数以及迭代次数上对更多函数都是好的，因此选用M = 10时的函数计算效果与其他方法进行比较。表2中主要把共轭梯度法，BFGS拟牛顿法同本文中的算法进行比较。 Table 1 Different algorithms with the comparison of this algorith 问题 nmsg方法M1 nmsg方法M2 nmsg方法M5 nmsg方法M10 flag f * k flag f * k flag f * k flag f * k fun 170 9.30E−22 52 64 7.68E−20 52 15 3.64E−18 54 14 1.74E−26 56 fun202 64 4.90E+01 22 29 1.04E−20 21 12 3.98E−21 28 16 2.24E−25 32 fun204 1 1.84E−01 9 0 1.84E−01 8 0 1.84E−01 8 0 1.84E−01 8 fun208 170 9.30E−22 52 64 7.71E−20 52 15 3.64E−18 54 14 1.74E−26 56 fun243 8 7.97E−01 13 4 7.97E−01 12 4 7.97E−01 12 4 7.97E−01 12 fun256 902 1.71E−14 221 302 1.13E−18 83 44 2.57E−19 59 18 2.18E−20 67 fun266 6 1.00E+00 14 4 1 13 3 1 13 3 1.00E+00 13 fun271 0 9.97E−21 10 0 9.97E−21 10 0 9.97E−21 10 0 9.97E−21 10 fun273 0 8.17E−20 15 0 8.17E−20 15 0 8.17E−20 15 0 8.17E−20 15 fun275 7 2.94E−15 10 5 3.54E−16 11 0 1.89E−18 11 0 1.89E−18 11 fun276 13 4.73E−16 13 3 6.78E−16 12 0 7.02E−19 12 0 7.02E−19 12 fun286 170 9.30E−21 52 64 1.02E−19 53 15 3.64E−17 54 14 1.74E−25 56 fun288 582 4.62E−15 139 399 4.06E−18 105 44 1.28E−18 59 18 1.09E−19 67 fun290 5 1.50E−12 21 5 1.50E−12 21 5 1.50E−12 21 5 1.50E−12 21 fun291 12 1.62E−12 25 12 1.62E−12 25 12 1.62E−12 25 12 1.62E−12 25 fun292 17 8.01E−13 28 17 8.01E−13 28 17 8.01E−13 28 17 8.01E−13 28 fun293 20 6.32E−13 30 20 6.32E−13 30 20 6.32E−13 30 20 6.32E−13 30 fun294 3 5.64E+00 500 60 1.67E−20 63 47 3.30E−20 59 9 3.85E−20 54 fun295 14 9.59E+00 500 20 9.52E+00 500 78 3.40E−20 91 28 2.73E−20 79 fun296 369 4.75E−18 139 12 1.55E+01 500 113 2.28E−20 137 47 6.19E−21 107 fun298 599 1.10E−17 221 355 1.11E−20 296 178 4.87E−20 211 165 8.19E−22 241 fun300 273 −20 64 18 −20 27 4 −20 24 4 −2.00E+01 24 fun301 265 −50 53 22 −50 30 9 −50 26 9 −50 26 fun302 421 −100 68 31 −100 33 18 −100 30 16 −1.00E+02 27 fun308 9 7.73E−01 15 6 7.73E−01 14 6 7.73E−01 14 6 7.73E−01 14 fun314 8 1.69E−01 8 5 1.69E−01 9 5 1.69E−01 9 5 1.69E−01 9 fun352 28 9.03E+02 27 15 9.03E+02 21 8 9.03E+02 18 8 9.03E+02 18 fun379 192 4.01E−02 125 83 4.01E−02 93 34 4.01E−02 157 29 4.01E−02 51 表1. 不同算法同本文算法的比较 Table 2 Comparing different M value algorith 问题 bfgs cg M = 10 flag f * k flag f * k flag f * k fun 28 7.25E−23 33 2139 2.82E−17 224 14 1.74E−26 56 fun202 22 4.90E+01 14 50883 4.90E+01 5000 16 2.24E−25 32 fun204 8 1.84E−01 3 62 1.84E−01 16 0 1.84E−01 8 fun208 28 7.25E−23 33 1791 1.15E−16 191 14 1.74E−26 56 fun243 12 7.97E−01 9 657 7.97E−01 136 4 7.97E−01 12 fun256 32 1.08E−12 42 33923 4.49E−11 5000 18 2.18E−20 67 fun266 19 1 13 305 1 84 3 1.00E+00 13 fun271 57 3.08E−30 11 160 1.68E−19 17 0 9.97E−21 10 fun273 95 1.81E−19 39 207 2.30E−20 19 0 8.17E−20 15 fun275 2 5.61E−16 26 26 2.55E−13 2807 0 1.89E−18 11 fun276 2 4.15E−13 23 16 4.36E−13 399 0 7.02E−19 12 fun286 213 3.78E−18 154 828 5.07E−17 84 14 1.74E−25 56 fun288 96 6.13E−13 198 2485 1.83E−12 342 18 1.09E−19 67 fun290 8 1.70E−12 39 12 1.56E−10 5000 5 1.50E−12 21 fun291 102 8.40E−13 76 51 1.76E−11 5000 12 1.62E−12 25 fun292 430 5.70E−13 166 117 3.39E−12 4358 17 8.01E−13 28 fun293 3 NAN 5000 0 NAN 5000 20 6.32E−13 30 fun294 86 3.97E+00 45 5861 5.85E−17 561 9 3.85E−20 54 fun295 141 3.99E+00 74 2808 6.00E−17 255 28 2.73E−20 79 fun296 222 3.99E+00 103 1489 NAN 5000 47 6.19E−21 107 fun298 597 4.45E−21 249 14285 4.68E−18 1010 165 8.19E−22 241 fun300 20 −20 25 3264 −20 894 4 −2.00E+01 24 fun301 52 −50 57 11513 −5.00E+01 3134 9 −50 26 fun302 100 −100 107 18129 −1.00E+02 5000 16 −1.00E+02 27 fun308 11 7.73E−01 13 54 7.73E−01 17 6 7.73E−01 14 fun314 9 1.69E−01 6 729 1.69E−01 128 5 1.69E−01 9 fun352 23 9.03E+02 9 37703 9.03E+02 5000 8 9.03E+02 18 fun379 43 4.01E−02 56 9501 4.01E−02 1902 29 4.01E−02 51 表2. 不同M取值的算法比较 从表2中能明显地看出，本文的算法在很大一部分函数中都有很好的计算效果，在27个函数中，其中对最优函数值表现好的有20个，对迭代次数表现好的有14个，而从函数值的计算次数来看，几乎处处表现良好。因此我们得到了一个相对比较好的算法。