Linear optimization solutions for job scheduling
Existing products, sample implementation guidelines
- (VIDEO) https://fieldsquared.com/video-field-workforce-management-mobility/ https://en.praxedo.com/features/guided-tour/dispatcher/scheduling/optimise-routes-with-smartscheduler/
- (DOCUMENT) https://help.salesforce.com/articleView?id=pfs_optimization_theory_definitions.htm&type=5
Models (Implementation)
- Python Gurobi lib (mixed-integer linear/quad optimization) http://www.matthewdgilbert.com/blog/introduction-to-gurobipy.html https://towardsdatascience.com/scheduling-with-ease-cost-optimization-tutorial-for-python-c05a5910ee0d
- Python Taskpacker https://github.com/Edinburgh-Genome-Foundry/Taskpacker
- Python pyomo https://towardsdatascience.com/modeling-and-optimization-of-a-weekly-workforce-with-python-and-pyomo-29484ba065bb https://github.com/ccarballolozano/blog-post-codes/blob/master/Modeling-and-optimization-of-a-weekly-workforce-with-Python-and-Pyomo/Modeling%20and%20optimization%20of%20a%20weekly%20workforce%20with%20Python%20and%20Pyomo.ipynb
- Ortools python (cp_model) https://developers.google.com/optimization/scheduling/job_shop
- IBM Decision Optimization CPLEX Modeling for Python (Apache 2.0 Open src) (Feature by feature chapter) https://pypi.org/project/docplex/ https://ibmdecisionoptimization.github.io/tutorials/html/Scheduling_Tutorial.html
- Python Whiteboard library https://medium.freecodecamp.org/introducing-timeboard-a-python-business-calendar-package-a2335898c697
- Genetic algorithm (Schedule optimization implementations) (Number of workers, Time of task, Priority of task) http://theisensanders.com/genetic_task_scheduling_algorithm/ (Conference talks optimization - Multiple constraints) https://medium.com/@filiph/using-a-genetic-algorithm-to-optimize-developer-conference-schedules-27f13d97fa9a (Job-shop schedule optimization) http://mat.uab.cat/~alseda/MasterOpt/p11-31.pdf
- Integer linear programming (Nurse job scheduling - Minimize staff cost given constraints related to time/shifts) https://blogs.mathworks.com/loren/2016/01/06/generating-an-optimal-employee-work-schedule-using-integer-linear-programming/ https://towardsdatascience.com/integer-programming-in-python-1cbdfa240df2
- PySwarm (Particle swarm optimization) https://pythonhosted.org/pyswarm/
- Uber ride optimization data set: https://towardsdatascience.com/uber-driver-schedule-optimization-62879ea41658
- Multiple algos implementation (Job-Shop) https://github.com/oahziur/animated-archer