圈上优化:
圈上优化:
现在我们提供我们的第一个思想实验:考虑在约束条件定义的可行区域上优化线性函数的问题
为了执行实验,我们执行代码circleOpt.py,其中我们随机选择一个目标向量,找到由此产生的优化问题的最优解,并计算几个相关的量:
- 最糟糕的距离在报告的原始解决方案和理论解决方案之间的问题,实际上优化一个完美的循环,在所有之前的运行。
- 这是古罗比报告的最严重的边界违规。
- 在之前的所有运行中,古罗比报告的最严重的约束违反。
- 这是古罗比在之前所有比赛中报告的最严重的双重违规。
- 之前的实验数量。
- 累积的单纯迭代次数。
- 的(KappaExact属性)的当前最优基值。
示例输出如下所示:
错误:8.65535e-08 0 2.94137e-07 2.77556e-17 Iter 0 10 Kappa 3150.06错误:4.81978e-07 0 3.22359e-07 2.77556e-17 Iter 1 21 Kappa 3009.12错误:4.81978e-07 0 3.4936e-07 1.11022e-16 Iter 2 33 Kappa 2890.58错误:1.53201e-06 0 9.78818e-07 1.11022e-16 Iter 6 79 Kappa 1727.89错误:1.61065e-06 0 8.26005e-07 1.11022e-16 Iter 46 536 Kappa 1880.73错误:1.61065e-06 0 8.84782e-07 1.11022e-16 Iter 52 602 Kappa 1817.27错误:1.61065e-06 0 9.4557e-07 1.11022e-16 Iter 54 625 Kappa 1757.96错误:1.69167e-06 0 9.78818e-07 1.11022e-16 Iter 64 742 Kappa 1727.89错误:1.69167e-06 0 3.8268e-07 1.66533e-16 Iter 88 1022 Kappa 2761.99错误:1.69167e-06 0 9.04817e-07 1.66533e-16 Iter 92 1067 Kappa 1797.06错误:1.69167e-06 0 2.94137e-07 2.22045e-16 Iter 94 1089 Kappa 3150.06错误:1.69167e-06 0 3.29612e-07 2.22045e-16 Iter 95 1101 Kappa 2975.84错误:1.69167e-06 0 3.4936e-07 2.22045e-16 Iter 98 1137 Kappa 2890.58错误:1.69167e-06 0 9.25086e-07 2.22045e-16 Iter 99 1147 Kappa 1777.3错误:1.69167e-06 0 9.78818e-07 2.22045e-16 Iter 107 1237 Kappa 1727.89错误:1.69167e-06 0 9.99895e-07 2.22045e-16 Iter 112 1293 Kappa 1709.61错误:错误:1.96603e-06 0 9.99895e-07 2.22045e-16 Iter 134 1545 Kappa 1709.61
令人惊讶的是,报告的错误相当小。这是为什么呢?至少有两个影响因素:模型有一个有界可行域(在这种情况下,两个变量的范围都是).另外,从一个极值点(两个相邻约束的交点)到它的邻居的距离也相对较小,所以-最优解彼此接近。
我们鼓励您使用这些代码,修改一些输入数据,并分析结果。你将看到理论和数值最优解之间的差异将与微扰的大小相当。