所以我在matlab上使用linprog来解决优化问题,其中一个约束是所有数字都是0.5的倍数或者换句话说,每个数字加倍是一个整数。 由于所有约束必须存在的形式(它们必须都是线性方程式),我很难找到将此规则设置为约束的方法。
如何为linprog编写约束以确保返回数组中的所有数字都是0.5的倍数?
提前致谢!
答案 0 :(得分:0)
您可以使用intlinprog轻松完成。 https://www.mathworks.com/help/optim/ug/intlinprog.html
为此,您必须声明一个整数变量x_int。
如果x是您的初始连续变量,则以下约束确保x始终是0.5
的倍数2x = x_int