请原谅冗长的问题,它只需要一些解释就可以解决实际问题。那些熟悉上述算法的人可能会直接跳到第一个单纯形标签。
为了解决最小绝对偏差问题(又称优化),Barrodale-Roberts算法是一种特殊用途的单纯形法,只需很少的存储和计算工作即可找到合适的最小值。
我的算法实现以一个简单的示例终止,直到达到适当的最小值为止。但是,可能让我首先以更详细的方式陈述问题:
给定数据,L_1优化会尝试找到最小化 \ sum_ {i = 1} ^ n | y_i-f(x_i)|的c \ in m 。\ quad \ text {with} \ quad f(x):= A_x \ cdot \ phi 其中A_x是n \ times m矩阵,在某种程度上取决于x。这个问题可以说成是线性程序,因此可以使用类单纯形方法解决。
Barrodale和Roberts建议对单形方法进行一种(显然广泛使用的)修改,该方法使用问题的特殊结构从根本上简化了单形方法。最值得注意的是,这是一种最佳解决方案,它至少对给定数据点的进行插值。具有Jstor访问权限的用户可以在这里找到相应的文章。
Lei和Anderson在2002年提出了一个小的修改方案,该修改方案应增加数值稳定性,从而克服单纯形算法的已知问题。
基本上,该算法假定您从一组必须进行插值的给定点开始,使用给定的过程构建单纯形表,然后使用Barrodale和Roberts的规则来确定要更改的基础变量,从而修改一组近似的数据点。
巴罗代尔和罗伯茨举了一个小例子,我试图重现。它试图通过函数逼近点。使用以下精简单纯形表完成其算法:
最重要的是,对第一点和第三点进行插值,并且总误差等于 。他们得出结论
由于所有非基本向量都具有非正边际成本[...]
迭代完成并达到最佳状态。
如果我使用Lei和Anderson的算法,则可以按预期方式为插值集{1,3}再现该单纯形表。但是,如果我以集合(显然不是最佳选择)开始算法,则会得到以下单纯形表:
但是,这个结果使我感到困惑。如果我正确理解上述报价,则没有正的边际成本表明可以达到最佳。但是,约2.33的函数值当然不是最佳的。交换与将产生一个结果,该结果看齐Barrodale和Roberts的溶液,因此是最佳的。
附加信息:如果我从Barrodale和Roberts给出的初始画面开始,我还能够通过普通的单纯形步骤重现上面的画面,因此,我相当有信心实际数值是正确的并且我对枢轴选择规则的解释有毛病。
有什么想法吗?
我意识到问题本身非常复杂,可能至少需要充分了解Barrodale和Roberts算法的知识。整个算法需要在这里完整详细地重复。但是,如果您对我采取的步骤或缺少的信息还有其他疑问,请随时提出,我们将很乐意回答。