Scheduling Optional Tasks with Explanation Andreas Schutt 1 , Thibaut Feydy 1 , and Peter J. Stuckey 1,2 1 Optimisation Research Group, National ICT Australia 2 Department of Computing and Information Systems, The University of Melbourne, Victoria 3010, Australia {andreas.schutt,thibaut.feydy,peter.stuckey}@nicta.com.au Abstract. Many scheduling problems involve reasoning about tasks which may or may not actually occur, so called optional tasks. The state-of- the-art approach to modelling and solving such problems makes use of interval variables which allow a start time of ⊥ indicating the task does not run. In this paper we show we can model interval variables in a lazy clause generation solver, and create explaining propagators for schedul- ing constraints using these interval variables. Given the success of lazy clause generation on many scheduling problems, this combination ap- pears to give a powerful new solving approach to scheduling problems with optional tasks. We demonstrate the new solving technology on well- studied flexible job-shop scheduling problems where we are able to close 36 open problems. 1 Introduction Many resource-constrained scheduling problems involve reasoning about tasks which may or may not actually occur, so called optional tasks. The state-of-the- art approach in Constraint Programming (CP) to modelling and solving such problems makes use of so-called interval variables [12] which represent a start time, end time, and duration of a task, or ⊥ indicating the task does not run. Propagation algorithms can update the possible start and end times of a task, without knowing whether the task actually runs or not. In 2008, Laborie and Rogerie [12] introduce interval variables for resource- constrained scheduling to IBM ILOG CP Optimizer [11] as a “first-class citizen” variable type for CP systems. In that work and later follow up work [13,14], they show how to handle these variables in the context of planning and schedul- ing. The benefits of interval variables are not only in giving a neat conceptual model for representing optional tasks, but also the additional propagation ob- tained that is possible by reasoning on start and end times even without knowing whether a task executes. However, interval variables do not come for free, they may introduce additional variables into a model, and their propagation is more complex. Standard CP systems that do not support interval variables are still able to model and solve problems with optional tasks, but suffer from the weaker propagation. For example, each optional task can be associated with a Boolean