-
scipy.optimize is not the best option for problems larger than toy-size
-
The following Python packages are open source and do the job:
- Pulp - See toy example: Optimization Using Python/Pulp
- Python-MIP - Find Many Examples in Docs
- Google OR-Tools is an impressive open-source application, lacking good developer support though.
Of particular interest is the cpModel solver for Contraint Programming found in ortools. See examples below:
-
One Period Planner for R&D Project Scheduling
- Code
- Leverages AddCumulative Constraint to set Capacity Limit over Project Horizon.
- Minimizes: Resource Cost + Tardiness Penalty - Early Completion Bonus
- Resources May Compete for Tasks.
- Expensive Resources Might Finish Tasks Earlier Than Inexpensive Ones.
- Input Data In .csv Format for Larger Problems.
-
Planner for R&D Project Scheduling With One Uncertain Task Completion Time)
- Code
- Adds Stochastic Programming Constraints.
- Leverages AddCumulative Constraint to set Capacity Limit over Project Horizon.
- Minimizes: Resource Cost + Tardiness Penalty - Early Completion Bonus
- Resources May Compete for Tasks and May Complete at Different Cadence
- Expensive Resources Might Finish Tasks Earlier Than Inexpensive Ones.
- Develop Model Data Structure for Model Variables and Results.