I re-purposed some open source optimization tooling. First, I built a bunch of constraints around certain performance metrics, set a setPlayerCount to 12 and maxMinutesPlayed to 16000. I set an objectiveFunction to maximize sumScore (which was an aggregation of the metric scoring I created) with the cap at maxOpenLeagueSalary. I didn't set a minSalary. I ran it against the full player database to see what kind of team it would build for your 16,000 minute challenge.
I pasted the team at the bottom of this message.
I don't think I will run the team, just because I hate the day to day maintenance of trying to keep up with the fatigue. The solver I built is flawed in a pretty minor sense in that it doesn't know about minute stretching, such that certain guys lose value in scenarios like the playoffs from minute stretching. I tried to build in some logic to prevent it from being too easy to gameplan against but that is about the extent of coaching based logic I can build into it. I also didn't build any positional effectiveness into it, so it could honestly create critical flaws at the wing positions just based on those players generating less value. It also is pretty light on iterations so I am sure if I wanted to commit more runtime I could get better solves.
Anyway, I thought I would share the results in case you found it interesting.
Name |
Year Team |
Pos |
Min |
Per% |
Mid% |
Pnt% |
Usg% |
2pnt%# |
3pnt%# |
eFG% |
TS% |
Oreb% |
Dreb% |
Creb% |
Ast% |
A/T |
Stl% |
TO% |
Blk% |
Paul, Chris |
16-17 Clippers |
PG |
1921 |
38 |
35 |
27 |
24.4 |
51.1 |
40.9 |
55.5 |
61.4% |
2.3 |
14.1 |
16.4 |
35.7 |
3.8 |
2.8 |
14.05 |
0.2 |
Griffin, Eddie |
04-05 Timberwolves |
PF |
1492 |
39 |
32 |
29 |
19 |
42.6 |
32.7 |
45.1 |
47.4% |
9.5 |
22.6 |
32.1 |
4.6 |
1 |
0.7 |
9.00 |
4.6 |
McGee, JaVale |
16-17 Warriors |
C |
739 |
1 |
18 |
81 |
23.8 |
65.2 |
0 |
65.2 |
64.2% |
14.8 |
18.7 |
33.5 |
2.6 |
0.4 |
1.1 |
9.81 |
4.9 |
Chamberlain, Wilt |
69-70 Lakers |
C |
505 |
0 |
10 |
90 |
26.4 |
57 |
0 |
56.8 |
55.4% |
14.7 |
25.4 |
40.1 |
10.5 |
0.9 |
0.7 |
15.91 |
5.7 |
Wright, Brandan |
11-12 Mavericks |
PF |
983 |
0 |
34 |
66 |
17.1 |
62 |
0 |
61.8 |
63.2% |
8.4 |
15.0 |
23.4 |
2.2 |
0.6 |
1.3 |
7.46 |
4.7 |
Kidd, Jason |
05-06 Nets |
PG |
2980 |
44 |
30 |
26 |
19.2 |
44.4 |
35 |
48.1 |
52.6% |
3.2 |
18.8 |
22.0 |
32.1 |
3.5 |
2.4 |
15.94 |
0.6 |
Mourning, Alonzo |
00-01 Heat |
C |
306 |
1 |
39 |
60 |
30.8 |
52.5 |
0 |
51.8 |
53.6% |
12.8 |
24.1 |
36.9 |
5.8 |
0.4 |
0.6 |
14.49 |
6.4 |
Rogers, Roy |
99-00 Nuggets |
PF |
355 |
1 |
36 |
63 |
14.2 |
40.4 |
0 |
39.8 |
42.0% |
9.6 |
13.7 |
23.3 |
3.3 |
0.9 |
0.2 |
8.62 |
6.1 |
Jones, Terrence |
12-13 Rockets |
SF |
276 |
20 |
39 |
41 |
18.2 |
50.5 |
26.2 |
48.4 |
51.2% |
11.0 |
13.9 |
24.9 |
6.9 |
1.2 |
1.9 |
11.36 |
3.9 |
Brown, Kedrick |
01-02 Celtics |
SG |
245 |
39 |
26 |
36 |
16 |
42.1 |
18.5 |
36.4 |
40.0% |
4.6 |
16.7 |
21.3 |
8.5 |
2.1 |
3.3 |
8.16 |
1.7 |
Malone, Moses |
82-83 76ers |
C |
2922 |
0 |
33 |
67 |
26 |
49.8 |
0 |
50.1 |
57.8% |
16.7 |
25.2 |
41.9 |
3.8 |
0.4 |
1.2 |
13.78 |
2.9 |
James, LeBron |
09-10 Cavaliers |
SF |
2966 |
25 |
39 |
36 |
33.7 |
55.6 |
33.2 |
54.5 |
60.4% |
2.9 |
17.4 |
20.3 |
28 |
2.5 |
2 |
12.26 |
1.5 |
You could probably swap out someone like Kendrick Brown for someone with slightly more minutes with the remaining dough. It also looks like it might favor usage more than it should, but that might not be a bad problem with as heavily as rookies are going to be used.
It was a fun exercise to build it anyway.
3/9/2018 1:50 PM (edited)