【发布时间】:2017-10-21 21:19:27
【问题描述】:
目前,我正在努力思考完成我正在做的事情的最佳方式。我有以下熊猫 df。
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 个遵循以下约束的选秀阵容:
低于 50,000 美元 使用 1 个 PG、1 个 SG、1 个 SF、1 个 PF、1 个 C、1 个 G、1 个 F 和 1 个 UTIL
如您所见,大多数球员可以在一个阵容中填补多个位置,由位置列中的“/”字符表示。 G位可以填PG或SG,F位可以填SF或PF,UTIL位接受所有位置。
起初我考虑使用背包蛮力方法,这似乎是最简单的,但实际上有数万亿种组合,所以这将花费大量时间而没有真正做我真正想做的事情。
相反,我决定尝试使用遗传学方法,因为我已经观看了许多关于此的讲座视频,并认为这是解决这个问题的好主意。但是,我不知道如何在一般的 1/0 背包方法中解决这个问题,因为我需要包括很多东西。在典型的背包方法中,您只有一个重量和一个值。我的体重和价值观是球员的薪水和他们的预计得分。但是,我还必须在此处包含玩家的位置,对于一名玩家来说,这可能是 1 种或有时 2 种不同的可能性。
希望这是有道理的,我基本上是在寻找有关如何开始在 Python 3 中解决此任务的某种见解。提前感谢您提供的任何东西!
【问题讨论】:
标签: python genetic-algorithm knapsack-problem