对于频谱估计算法,我需要找到矢量的最佳拟合线性组合以适合目标光谱分布。到目前为止,使用MATLAB中的lsqlin
优化器可以很好地工作。
但是,对于最终的应用程序,我想以零和1来近似/解决这个问题,这意味着Ax = b求解为布尔x。
有没有办法为此目的参数化lsqlin
或其他优化器函数?
答案 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模型。