Python:用遗传算法解决背包优化?
目前我正试图用最好的方式来完成我正在做的事情。我有以下几点建议Python:用遗传算法解决背包优化?,python,genetic-algorithm,knapsack-problem,Python,Genetic Algorithm,Knapsack Problem,目前我正试图用最好的方式来完成我正在做的事情。我有以下几点建议 Player Pos Salary My Proj 0 James Harden PG/SG 10600 51.94472302 1 Jose Juan Barea PG/SG 4200 22.20823452 2 Stephen Curry PG/SG 8700 42.95809374 3 Eric Gordon SG 5400 27.452
Player Pos Salary My Proj
0 James Harden PG/SG 10600 51.94472302
1 Jose Juan Barea PG/SG 4200 22.20823452
2 Stephen Curry PG/SG 8700 42.95809374
3 Eric Gordon SG 5400 27.45218158
4 Nikola Vucevic C 7400 37.00103015
5 Wilson Chandler SF/PF 4900 24.83866589
每天大约有200名球员参加比赛。我需要运行优化以填充多达20个符合以下约束条件的绘图列表:
5万美元以下
使用1pg、1sg、1sf、1pf、1c、1g、1f和1util
正如您所看到的,大多数球员可以在一个阵容中填充多个位置,该阵容由位置列中的“/”字符表示。G位置可以用PG或SG填充,F位置可以用SF或PF填充,UTL位置接受所有位置
起初,我研究了使用背包暴力的方法,这似乎是最简单的方法,但实际上有数以万亿计的组合,因此如果没有真正做我真正想要的事情,这将花费大量的时间
相反,我决定尝试使用遗传学的方法,因为我已经看了很多关于这个问题的讲座视频,并且认为这是解决这个问题的一个好主意。然而,我不知道如何在一般的1/0背包方法中设置这个问题,因为我需要包括很多东西。在一个典型的背包方法中,你只有一个重量和一个值。我的体重和价值观是球员的工资和他们的预期分数。然而,我必须在这里也包括球员的位置,一个球员可能有1个或2个不同的可能性
希望这是有意义的,我基本上是在寻找一些关于如何开始在Python3中处理这项任务的见解。提前感谢您所提供的一切 这是一个良好的开端: 充分理解遗传算法的基础知识,很好的例子 遗传算法的美妙之处在于,一旦你定义了如何评估适应度,其他一切都会自行到位。您可以从完全随机的项目开始,经过连续几代,它将变得有序。如果你采取正确的方法,那么阵容和背包问题是非常非常相似的。您已经知道可以容纳多少项(领先);你现在只需要选择哪一个,这就是GA的作用 想想这些步骤: