현재 나는 내가하고있는 일을 성취하기위한 최선의 방법을 고수하기 위해 노력하고 있습니다. 나는 다음 판다를 가지고있다.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 개의 다른 가능성 일 수 있습니다.
희망적으로 말하자면, 기본적으로 파이썬 3에서이 작업을 시작하는 방법에 대한 통찰력을 찾고 있습니다. 당신이 제공 할 수있는 것을 미리 감사드립니다!
가 완전히 유전자 알고리즘의 기본을 이해하고, 좋은 예 here :