Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在matlab GA工具箱中使用整数和二进制变量?_Matlab_Genetic Algorithm_Integer Programming - Fatal编程技术网

如何在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讲

我使用matlab GA工具箱来解决一个整数规划问题。这个问题有一些二进制变量。 我对二进制变量使用了非线性约束,例如
x*(1-x)=0
,但matlab为这些变量输出实际值

另一个问题是最终解决方案不可行!我使用了这行代码:

options = gaoptimset(options,'CreationFcn', @gacreationlinearfeasible);
但是matlab仍然没有生成可行的解决方案

一位朋友建议用不平等约束代替平等约束,但失败了

还有两个问题。1) 用matlab讲二进制变量,2)生成可行的解


如何使用matlab GA解决我的问题?

我不确定它是否是最佳解决方案,但我通过用适应度函数中的惩罚系数替换约束来解决我的问题


毕竟,作为一项建议,任何有相同问题的人都可以尝试GAlib(C++遗传库)而不是matlab。

您当然可以使用整数规划解算器来使用二进制变量。只需限制其有效范围,使其介于
[0,1]
和整数之间。这有效地将约束强制为二进制。我想使用GA工具箱,而不是任何其他解算器。这是一个约束吗?你能解释为什么吗?我必须比较两种方法的求解时间,GA和MIPS。