Math 如何使用约束行和列的遗传算法子代创建N皇后问题?
对于发现的N-Queen问题,我正在尝试实现一个遗传算法来解决它 然而,让我们假设我正试图限制这个问题。我们知道,要获得攻击值0,不能在同一行和同一列中有皇后。我限制每块板上每个女王都有不同的行和列。我想让遗传算法找到一个对角线也不攻击的解决方案Math 如何使用约束行和列的遗传算法子代创建N皇后问题?,math,artificial-intelligence,genetic-algorithm,Math,Artificial Intelligence,Genetic Algorithm,对于发现的N-Queen问题,我正在尝试实现一个遗传算法来解决它 然而,让我们假设我正试图限制这个问题。我们知道,要获得攻击值0,不能在同一行和同一列中有皇后。我限制每块板上每个女王都有不同的行和列。我想让遗传算法找到一个对角线也不攻击的解决方案 我的问题是使用遗传算法为这个解决方案创建一个孩子。从两个母板生成子板的好方法是什么,即子板的行和列不能重叠?避免行和列重叠在遗传算法中是很困难的。典型的方法是通过数组中的索引隐式表示列,然后用数字1..N表示皇后 因此,8皇后问题的解决方案可以用(51
我的问题是使用遗传算法为这个解决方案创建一个孩子。从两个母板生成子板的好方法是什么,即子板的行和列不能重叠?避免行和列重叠在遗传算法中是很困难的。典型的方法是通过数组中的索引隐式表示列,然后用数字1..N表示皇后 因此,8皇后问题的解决方案可以用(51842736)表示 如果您获取数组的任何子集,您可以将其与另一个数组混合,并确保每列(或每行)中有一个皇后,不管您怎么想
通过使用组合数学,可以避免列和行重叠(因此有N!个排列而不是N^N),但问题是这样做所需的表示(实际上可以使用整数表示完整的配置)对于交叉操作不起作用。您还将遇到整数表示的限制。使用如上所述的数组效果相当好,因此我建议首先探索这种方法。这个问题缺乏对您的环境的关注。请显示您拥有的,例如,电路板的限制。如果你只询问如何创建孩子,那么展示所有其他需要的东西。