目前我正試圖圍繞最好的方式來完成我正在做的事情。我有以下熊貓df。Python:用遺傳算法求解揹包優化?
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中解決這個任務的見解。非常感謝您提供的任何東西!