布尔最小二乘法

时间:2016-02-23 12:31:07

标签: matlab mathematical-optimization least-squares

对于频谱估计算法,我需要找到矢量的最佳拟合线性组合以适合目标光谱分布。到目前为止,使用MATLAB中的lsqlin优化器可以很好地工作。 但是,对于最终的应用程序,我想以零和1来近似/解决这个问题,这意味着Ax = b求解为布尔x。

有没有办法为此目的参数化lsqlin或其他优化器函数?

1 个答案:

答案 0 :(得分:2)

如果问题只是:

Solve Ax=b for x in {0,1}

然后你可以使用MIP求解器(例如Matlab intlinprog)。如果问题过度约束并且您想要最小二乘解决方案:

Min w'w
S.t. Ax - b = w
x in {0,1} (binary variable)
w free variable

然后你有一个MIQP(混合整数二次规划)问题。有很好的解决方案,如Cplex和Gurobi(可从Matlab调用)。此外,Matlab还讨论了使用intlinprog的{​​{3}}。另一个想法是用绝对值之和代替二次目标。这可以表示为线性MIP模型。