-
使用遗传算法解决背包问题的GeneticKnapsack
资源介绍
#背包问题
背包问题是一个经典的 NP 完全问题,在计算机科学中得到了广泛的研究。
解决这个问题的一种方法是对背包中所有可能的物体组合进行穷举搜索,比较重量和价值,并选择适合容量并具有最大价值的物体组合。 这在计算上需要很长时间。
一种计算成本较低的方法是使用遗传算法。 遗传算法可能找不到最好的答案,但在大多数情况下,它会在合理的时间内找到一个很好的解决方案。
对于这个问题,一个 0 或 1 的整数列表来表示你的可能解决方案的总体。 例如,假设您有 8 个对象,列表 {0, 1, 0, 1, 1, 0, 0, 1} 表示您正在背包中携带物品 2、4、5 和 8。
以下是遗传算法的基本步骤:
生成 m 条染色体的随机种群。
重复更改种群,直到满足您的适应度标准。
一种。 使用您自己创建的适应度函数评估种群中每个染色体 x 的适应度。
湾从种群中选择两个最合适的染色体。
C。