使用Barrodale-Roberts-算法求解最小绝对偏差:过早终止?
请原谅冗长的问题,它只需要一些解释就可以解决实际问题。那些熟悉上述算法的人可能会直接跳到第一个单纯形标签。 为了解决最小绝对偏差问题(又称优化),Barrodale-Roberts算法是一种特殊用途的单纯形法,只需很少的存储和计算工作即可找到合适的最小值。L1L1L_1 我的算法实现以一个简单的示例终止,直到达到适当的最小值为止。但是,可能让我首先以更详细的方式陈述问题: 给定数据,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。这个问题可以说成是线性程序,因此可以使用类单纯形方法解决。(xi,yi)(xi,yi)(x_i,y_i)L1L1L_1c∈mc∈mc\in m∑i=1n|yi−f(xi)|withf(x):=Ax⋅ϕ∑i=1n|yi−f(xi)|withf(x):=Ax⋅ϕ \sum_{i=1}^n |y_i-f(x_i)| \quad\text{with}\quad f(x):=A_x\cdot \phi AxAxA_xn×mn×mn\times mxxx Barrodale和Roberts建议对单形方法进行一种(显然广泛使用的)修改,该方法使用L1L1L_1问题的特殊结构从根本上简化了单形方法。最值得注意的是,这是一种最佳解决方案,它至少对给定数据点的rank(A)rank(A)\mathop{rank}(A)进行插值。具有Jstor访问权限的用户可以在这里找到相应的文章。 Lei和Anderson在2002年提出了一个小的修改方案,该修改方案应增加数值稳定性,从而克服单纯形算法的已知问题。 基本上,该算法假定您从一组必须进行插值的给定点开始,使用给定的过程构建单纯形表,然后使用Barrodale和Roberts的规则来确定要更改的基础变量,从而修改一组近似的数据点。 巴罗代尔和罗伯茨举了一个小例子,我试图重现。它试图通过函数逼近点。使用以下精简单纯形表完成其算法:{(1,1),(2,1),(3,2),(4,3),(5,2)}{(1,1),(2,1),(3,2),(4,3),(5,2)}\{(1,1), (2,1), (3,2), (4,3), (5,2)\}a1+a2xa1+a2xa_1+a_2x Basisb1v2b2u4v5Marginal …