仅使用唯一整数的Matlab遗传算法(GA)

仅使用唯一整数的Matlab遗传算法(GA),matlab,optimization,integer,constraints,genetic-algorithm,Matlab,Optimization,Integer,Constraints,Genetic Algorithm,我使用matlabs GA优化整数变量数组,但我希望每个变量都是唯一的值。 更准确地说,我只希望某个比例有唯一的值 例如,假设我必须找到10个变量的最佳整数值,但作为一项要求,我的优化需要确保最后5个变量都是给定范围内的唯一值。我如何确保最后5个变量是唯一的 我曾考虑使用一个非线性约束来标记任何重复变量,但这将意味着GA仍将运行此迭代,这将导致错误。我想的另一种方法,但不确定如何做,是创建一个自定义创建函数,确保它们是unqiue 在此问题上的任何帮助都将不胜感激!谢谢 在健身功能中,是否可以使

我使用matlabs GA优化整数变量数组,但我希望每个变量都是唯一的值。 更准确地说,我只希望某个比例有唯一的值

例如,假设我必须找到10个变量的最佳整数值,但作为一项要求,我的优化需要确保最后5个变量都是给定范围内的唯一值。我如何确保最后5个变量是唯一的

我曾考虑使用一个非线性约束来标记任何重复变量,但这将意味着GA仍将运行此迭代,这将导致错误。我想的另一种方法,但不确定如何做,是创建一个自定义创建函数,确保它们是unqiue


在此问题上的任何帮助都将不胜感激!谢谢

在健身功能中,是否可以使用类似于从甲板上绘画的设置


也就是说,假设您想要一个1-10范围内的3个唯一整数,而不是试图告诉GA选择3个唯一整数,而是告诉它为第一个变量选择一个介于1和10之间的索引,为第二个变量选择1-9,为第三个变量选择1-8。通过编程或使用匿名函数将1到10之间的唯一整数数组传递给fitness函数。第一个变量从该数组中选择其整数(通过索引),然后从数组中删除该整数。重复第二个和第三个变量。通过这种方式,每个变量选择一个唯一的值(如从一副牌中绘图)。

在健身功能中是否可以使用类似于从一副牌中绘图的设置


也就是说,假设您想要一个1-10范围内的3个唯一整数,而不是试图告诉GA选择3个唯一整数,而是告诉它为第一个变量选择一个介于1和10之间的索引,为第二个变量选择1-9,为第三个变量选择1-8。通过编程或使用匿名函数将1到10之间的唯一整数数组传递给fitness函数。第一个变量从该数组中选择其整数(通过索引),然后从数组中删除该整数。重复第二个和第三个变量。通过这种方式,每个变量选择一个唯一的值(就像从一副卡片上绘图)。

这是一个很好的简单解决方案。谢谢。这是一个很好的简单解决方案。谢谢