优化薄区域:

优化薄区域:

现在我们进入第二个思考实验:考虑一个由三角形组成的可行区域< span > < /美元跨度> \ mathbb {R} ^ 2 < span > < / span >美元底部很宽,高度很短,如图所示:

图像codedraw2
考虑这样一种情况,底与高的比率是< span > < / span > 10 ^ 5美元美元< span > < / span >,我们认为是名义上的目标函数< span > < /美元跨度> vec {c} _1 \ < span > < / span >美元如图所示。

理论上,最优解应该是三角形的顶点,但假设我们随机扰动右手边和目标函数的项的顺序< span > < / span > 10美元^ {6}< span > < / span >美元.数值解会发生什么?

为了执行实验,我们执行代码thinOpt.py,我们在上面描述的不同扰动下执行一系列重新优化。更精确地说,当新的计算解与数学解的距离比以前的试验中更远时,我们打印:

  • 新的解之间的最大距离。
  • 当前迭代。
  • < span > < / span > \ kappa美元美元< span > < / span >KappaExact贡献)值为当前的最佳基础。
  • Gurobi对当前解决方案的约束违反。
  • Gurobi为当前解决方案报告的约束违反。
  • 古鲁比报告的双重违反目前的解决方案。

样本输出如下所示:

新maxdiff 4 e + 16 Iter 0 Kappa 3.31072侵犯:0 0 0新的maxdiff 4 e + 16 Iter 1 Kappa 3.31072侵犯:0 0 0新的maxdiff 4 e + 16 Iter 2 Kappa 3.31072侵犯:0 0 0新的maxdiff 4 e + 16 Iter 7 Kappa 3.31072侵犯:0 0 0 83年新的maxdiff 4 e + 16日Iter Kappa 3.31072侵犯:0 0 2.64698 e-23新的maxdiff 4 e + 16 Iter 194卡巴3.31072违规行为:0 0 0新maxdiff 4 e + 16 Iter 1073 Kappa违反3.31072:1.13687 e-13 0新的maxdiff 4 e + 16 Iter 4981 Kappa 3.31072侵犯:0 0 0新的maxdiff 4 e + 16 Iter 19514 Kappa 3.31072侵犯:0 0 0新的maxdiff 4 e + 16 Iter 47117 Kappa 3.31072侵犯:0 0 0新的maxdiff 4 e + 16 Iter 429955 Kappa 3.31072违规行为:0 0 0 New maxdiff 4e+16 Iter 852480 Kappa 3.31072违例:0 0 0

结果看起来和我们第一次测试中看到的很不一样。未受摄动模型的解与受摄动模型的解之间的距离是巨大的,甚至从第一次迭代开始。此外,< span > < / span > \ kappa美元美元< span > < / span >值相对较小,并且报告的原始、对偶和约束违背几乎为零。所以,发生了什么事?注意,当我们选择< span > < /美元跨度> vec {c} _1 \ = (0, 1) < span > < / span >美元,我们正在选择一个最优点,目标函数的一个小倾斜可能会把我们移到另一个非常远的极端点,因此是一个大的范数。这是可能的,因为区域非常大,原则上,没有任何界限,也就是说,这与< span > < / span > \ varepsilon美元美元< span > < / span >-最优解和很长的边。

同样,我们鼓励您使用这个示例。例如,如果标称目标函数是< span > < /美元跨度> vec {c} _2 \ = (1,0) < span > < / span >美元