I realized that there is more to do in handling the team positions. Since the number of each position is fixed, the whole array of team_position can be replaced with a fixed set of integers.
With that change, it is also possible to add symmetry breaking on the player identifiers within each type of player position.
These two changes taken together makes the HiGHS solver taker around 3.2s on my machine, and OR-Tools with 10 threads takes 1.28s.
With that change, it is also possible to add symmetry breaking on the player identifiers within each type of player position.
These two changes taken together makes the HiGHS solver taker around 3.2s on my machine, and OR-Tools with 10 threads takes 1.28s.