Related Work and Recommended Reading¶
M4OPT builds on several related software packages and products. Additionally, linked here are several tutorials, talks and other sources of documentation the developers found useful when creating M4OPT and other MILP-based schedulers.
Related Projects¶
Astroplan Scheduling Software: Astroplan is an open-source python package designed as a toolbox to help plan and schedule observing runs. Astroplan does not make use of MILP scheduling, but serves as an inspiration of the type of general-use scheduling package we hope M4OPT can be.
gwemopt: Gwemopt is a graviational-wave follow-up scheduling software which uses a greedy algorithm. It was used to schedule Zwicky Transient Facility (ZTF) target of opportunity (ToO) follow-up during O3.
dorado-scheduling: Dorado is a proposed space mission for ultraviolet graviational-wave follow-up, for which an MILP-based ToO scheduler was developed. This scheduler makes use of IBM’s CPLEX Optimization Studio.
MUSHROOMS: MUSHROOMS is a MILP-based gravitational-wave follow-up scheduler designed with ZTF in mind. It developed for an REU project and makes use of Gurobi for optimization.
Spike: Spike is an observation planning and scheduling software released by the Space Telescope Science Institute that makes use of Constraint Satisfaction Problems to produce schedules.
Zwicky Transient Facility (ZTF) Scheduler: ZTF currently implements a mixed-integer programming scheduler to produce nightly schedules with the goal of maximizing transient discovery rate. As with Dorado Scheduling and MUSHROOMS, lessons learnt when producing this algorithm will be applied during M4OPT development.
Las Cumbres Observatory Adaptive Scheduler: MILP scheduling of heterogenous telescope networks, using Google OR Tools or Gurobi.
Documentation¶
Gurobi Documentation: This is the extensive documentation for Gurobi, one of the two commercial optimizers used in this project.
Docplex Documentation: This the extensive documentation for Docplex, the Python decision optimization library produced by IBM/CPLEX. This includes both mathematical programming and constraint programming optimization.
Mixed Integer Programming References¶
YALMIP Tutorials: This website is a very useful resource as an introduction to linear programming, and has a lot of useful information about translating common logical relationships and functions into integer linear programming terms.
Gurobi Python Examples: Gurobi maintains a large database of jupyter notebook examples of using MIP techniques to solve many common problems. This is very useful to see typical problem formulations, and more advanced tutorials give useful working example of more complicated concepts.
Conferences & Workshops¶
The following conferences and workshops all concern themselves with organizing a dialogue on planning and scheduling research, either within space science, as in the case of IWPSS, or interdisciplinarily as in the case of SPARK and ICAPS