1
3
您正在尝试用方框约束来求解最小二乘。标准稀疏最小二乘算法包括LSQR和最近的LSMR。这些只需要应用矩阵向量积。要添加约束,请注意,如果您在框的内部(没有任何约束是“活动的”),那么您将继续使用您选择的任何内部点方法。对于所有活动约束,您执行的下一次迭代将停用约束,或约束您沿约束超平面移动。通过对您选择的算法进行一些(概念上相对简单)适当的修改,您可以实现这些约束。 但是,通常可以使用任何凸优化包。我个人使用matlab包cvx解决了这类问题,它使用sdpt3/sedumi作为后端。cvx只是这些半定程序解算器的一个非常方便的包装器。 |
2
3
你的问题类似于 非负最小二乘 问题(nnls),可表述为 $$\Min_X_AX-B__U 2^2\文本以X\GE 0$为准, 对此,似乎存在许多算法。 实际上,如果除了最初的非负变量$x$之外,您还创建了附加变量$x'$并将其与线性约束$x_i+x_i'=n$链接,您的问题可以或多或少地转换为nnls问题。这种方法的问题是,这些额外的线性约束可能无法在最小二乘法中得到精确的满足——然后尝试用一个大的数字对它们进行加权可能是合适的。 |
3
1
你的矩阵a^t a是半正定的,所以你的问题是凸的;在设置解算器时一定要利用这个。 大多数Go-to-Qp求解器都是Fortran和/或非免费的;不过我听说了有关ooqp的一些好消息。( http://www.mcs.anl.gov/research/projects/otc/Tools/OOQP/OoqpRequestForm.html 但要得到一份拷贝有点痛苦。 |
4
1
如果你有matlab,这是你可以做的。 TFOCS . 这是用于解决问题的语法:
如果函数句柄太大而无法装入内存,则可以传递它。 |
5
1
如果你将你的模型重新表述为:
最小值
< BR/>
受试者:
这是一个标准的二次规划问题。这是一种常见的模型类型,可以通过商业解决方案(如CPLEX或Gurobi)轻松解决。(免责声明:我目前为Gurobi优化工作,以前为提供cplex的ilog工作。) 从属于:
这是一个标准的二次规划问题。这是一种常见的模型类型,可以通过商业解决方案(如CPLEX或Gurobi)轻松解决。(免责声明:我目前为Gurobi优化工作,以前为提供CPLEX的ILOG工作)。 |
6
0
cvxopt怎么样?它适用于稀疏矩阵,并且似乎某些圆锥编程解算器可以帮助: http://abel.ee.ucla.edu/cvxopt/userguide/coneprog.html#quadratic-cone-programs 这是对上述文档中代码的简单修改,以解决您的问题:
cvxopt支持稀疏矩阵,因此对您很有用。 |
rookie · 检查函数模板的所有参数包参数是否属于int 1 年前 |
ivaigult · -W转换和隐式字符串到布尔类型转换 1 年前 |
rainer · 后台插入程序的初始化 1 年前 |
Community wiki · 以理智、安全和高效的方式复制文件 1 年前 |
Shefali Kanaujia · 对C中向量的向量进行排序++ 1 年前 |
Ma Joonyoung · 粗粒度和细粒度链表的时间比较 1 年前 |