如何在matlab GA工具箱中使用整数和二进制变量?
我使用matlab GA工具箱来解决一个整数规划问题。这个问题有一些二进制变量。 我对二进制变量使用了非线性约束,例如如何在matlab GA工具箱中使用整数和二进制变量?,matlab,genetic-algorithm,integer-programming,Matlab,Genetic Algorithm,Integer Programming,我使用matlab GA工具箱来解决一个整数规划问题。这个问题有一些二进制变量。 我对二进制变量使用了非线性约束,例如x*(1-x)=0,但matlab为这些变量输出实际值 另一个问题是最终解决方案不可行!我使用了这行代码: options = gaoptimset(options,'CreationFcn', @gacreationlinearfeasible); 但是matlab仍然没有生成可行的解决方案 一位朋友建议用不平等约束代替平等约束,但失败了 还有两个问题。1) 用matlab讲
x*(1-x)=0
,但matlab为这些变量输出实际值
另一个问题是最终解决方案不可行!我使用了这行代码:
options = gaoptimset(options,'CreationFcn', @gacreationlinearfeasible);
但是matlab仍然没有生成可行的解决方案
一位朋友建议用不平等约束代替平等约束,但失败了
还有两个问题。1) 用matlab讲二进制变量,2)生成可行的解
如何使用matlab GA解决我的问题?我不确定它是否是最佳解决方案,但我通过用适应度函数中的惩罚系数替换约束来解决我的问题
毕竟,作为一项建议,任何有相同问题的人都可以尝试GAlib(C++遗传库)而不是matlab。您当然可以使用整数规划解算器来使用二进制变量。只需限制其有效范围,使其介于
[0,1]
和整数之间。这有效地将约束强制为二进制。我想使用GA工具箱,而不是任何其他解算器。这是一个约束吗?你能解释为什么吗?我必须比较两种方法的求解时间,GA和MIPS。