优化薄区域:

优化薄区域:

现在我们进入第二个思考实验:考虑一个可行区域,其中包含一个三角形< span > < /美元跨度> \ mathbb {R} ^ 2 < span > < / span >美元基座很宽,高度很短,如图所示:

\ scalebox {1.0} {\ includegraphics(宽度= 4){refman_misc / codedraw2.pdf}}
考虑这样一种情况,底对高的比率是< span > < / span > 10 ^ 5美元美元< span > < / span >,我们认为a名义上的目标函数< 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违规行为:新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 >美元