Skip to main content

Power of pre-processing: production scheduling with variable energy pricing and power-saving states


This paper addresses a single machine scheduling problem with non-preemptive jobs to minimize the total electricity cost. Two latest trends in the area of the energy-aware scheduling are considered, namely the variable energy pricing and the power-saving states of a machine. Scheduling of the jobs and the machine states are considered jointly to achieve the highest possible savings. Although this problem has been previously addressed in the literature, the reported results of the state-of-the-art method show that the optimal solutions can be found only for instances with up to 35 jobs and 209 intervals within 3 hours of computation. We propose an elegant pre-processing technique called SPACES for computing the optimal switching of the machine states with respect to the energy costs. The optimal switchings are associated with the shortest paths in an interval-state graph that describes all possible transitions between the machine states in time. This idea allows us to implement efficient integer linear programming and constraint programming models of the problem while preserving the optimality. The efficiency of the models lies in the simplification of the optimal switching representation. The results of the experiments show that our approach outperforms the existing state-of-the-art exact method. On a set of benchmark instances with varying sizes and different state transition graphs, the proposed approach finds the optimal solutions even for the large instances with up to 190 jobs and 1277 intervals within an hour of computation.

This is a preview of subscription content, access via your institution.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5


  1. 1.

    Aghelinejad, M., Ouazene, Y., & Yalaoui, A. (2018). Production scheduling optimisation with machine state and time-dependent energy costs. International Journal of Production Research, 56 (16), 5558–5575.

    Article  Google Scholar 

  2. 2.

    Aghelinejad, M., Ouazene, Y., & Yalaoui, A. (2019). Complexity analysis of energy-efficient single machine scheduling problems. Operations Research Perspectives, 6, 100105.

    MathSciNet  Article  Google Scholar 

  3. 3.

    Benedikt, O., Šu̇cha, P., Módos, I., Vlk, M., & Hanzálek, Z. (2018). Energy-aware production scheduling with power-saving modes. In van Hoeve, W.J. (Ed.) Integration of constraint programming, artificial intelligence, and operations research (pp. 72–81). Cham: Springer International Publishing, DOI

  4. 4.

    Cohen, D., Jeavons, P., Jefferson, C., Petrie, K., & Smith, B. (2006). Symmetry definitions for constraint satisfaction problems. Constraints, 11, 115–137.

    MathSciNet  Article  MATH  Google Scholar 

  5. 5.

    Fang, K., Uhan, N.A., Zhao, F., & Sutherland, J.W. (2016). Scheduling on a single machine under time-of-use electricity tariffs. Annals of Operations Research, 238(1), 199–227.

    MathSciNet  Article  MATH  Google Scholar 

  6. 6.

    Gahm, C., Denz, F., Dirr, M., & Tuma, A. (2016). Energy-efficient scheduling in manufacturing companies: a review and research framework. European Journal of Operational Research, 248(3), 744–757.

    MathSciNet  Article  MATH  Google Scholar 

  7. 7.

    Gao, K., Huang, Y., Sadollah, A., & Wang, L. (2019). A review of energy-efficient scheduling in intelligent production systems Complex & Intelligent Systems.

  8. 8.

    Gent, I.P., Petrie, K.E., & Puget, J.F. (2006). Chapter 10 - symmetry in constraint programming. In Rossi, F., van Beek, P., & Walsh, T. (Eds.) Handbook of Constraint Programming, Foundations of Artificial Intelligence, (Vol. 2 pp. 329–376): Elsevier, DOI

  9. 9.

    Gong, X., Pessemier, T.D., Martens, L., & Joseph, W. (2019). Energy- and labor-aware flexible job shop scheduling under dynamic electricity pricing: a many-objective optimization investigation. Journal of Cleaner Production, 209, 1078–1094.

    Article  Google Scholar 

  10. 10.

    Hadera, H., Harjunkoski, I., Sand, G., Grossmann, I.E., & Engell, S. (2015). Optimization of steel production scheduling with complex time-sensitive electricity cost. Computers & Chemical Engineering, 76, 117–136.

    Article  Google Scholar 

  11. 11.

    Kadioglu, S., & Sellmann, M. (2010). Grammar constraints. Constraints, 15(1), 117–144.

    MathSciNet  Article  MATH  Google Scholar 

  12. 12.

    Laborie, P., Rogerie, J., Shaw, P., & Vilím, P. (2018). IBM ILOG CP Optimizer for scheduling. Constraints, 23(2), 210–250.

    MathSciNet  Article  MATH  Google Scholar 

  13. 13.

    Margot, F. (2010). Symmetry in integer linear programming. In Jünger, M., Liebling, T.M., Naddef, D., Nemhauser, G.L., Pulleyblank, W.R., Reinelt, G., Rinaldi, G., & Wolsey, L.A. (Eds.) 50 Years of integer programming 1958-2008: from the early years to the state-of-the-art (pp. 647–686). Berlin: Springer, DOI

  14. 14.

    Merkert, L., Harjunkoski, I., Isaksson, A., Säynevirta, S., Saarela, A., & Sand, G. (2015). Scheduling and energy – industrial challenges and opportunities. Computers & Chemical Engineering, 72, 183–198.

    Article  Google Scholar 

  15. 15.

    Mouzon, G., Yildirim, M.B., & Twomey, J. (2007). Operational methods for minimization of energy consumption of manufacturing equipment. International Journal of Production Research, 45(18–19), 4247–4271.

    Article  MATH  Google Scholar 

  16. 16.

    Pesant, G. (2004). A regular language membership constraint for finite sequences of variables. In Wallace, M. (Ed.) Principles and practice of constraint programming – CP 2004 (pp. 482–495). Berlin: Springer, DOI

  17. 17.

    Shrouf, F., Ordieres-Meré, J., García-Sánchez, A., & Ortega-Mier, M. (2014). Optimizing the production scheduling of a single machine to minimize total energy consumption costs. Journal of Cleaner Production, 67, 197–207.

    Article  Google Scholar 

  18. 18.

    Trick, M. (2001). A dynamic programming approach for consistency and propagation for knapsack constraint. Annals of Operations Research, 118, 73–84.

    MathSciNet  Article  MATH  Google Scholar 

Download references


This work was funded by EU Structural funds and Ministry of Education, Youth and Sport of the Czech Republic within the project Cluster 4.0 number CZ.02.1.01/0.0/0.0/16_026/0008432. Moreover, we would like to thank the anonymous reviewers for their suggestions that improved the paper and the solution methods.

Author information



Corresponding author

Correspondence to Ondřej Benedikt.

Ethics declarations

Conflict of interests

The authors declare that they have no conflict of interest.

Additional information

Publisher’s note

Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.

This article belongs to the Topical Collection: Special Issue on Constraint Programming, Artificial Intelligence, and Operations Research

Guest Editors: Emmanuel Hebrard and Nysret Musliu

Appendix A : Evaluated CP models

Appendix A : Evaluated CP models

In this appendix, we describe the variations of the CP-SPACES model, which were implemented and evaluated in the preliminary experiment. The description is divided into three parts, namely the modeling of the jobs, the modeling of the spaces, and the linking constraints.

Modeling of the jobs:

All the models contain an interval variable zj with a fixed length of pj for each job Jj ∈. This interval variable represents the time interval in which the corresponding job is processed, i.e, the job starts at time StartOf(zj) and completes at time EndOf(zj). The models for the jobs differ primarily in how the cost of scheduling the jobs is formulated in the objective.

  • OPTIONAL: For each job \(J_{j} \in \mathcal {J} \) and interval \(I_{i} \in \mathcal {I}\), create an optional interval variable zj, i having fixed length pj and fixed start meaning that the job Jj starts to be processed at the beginning of interval Ii. By enforcing Alternative(zj,{zj, i : ∀I ∈}) on every job Jj ∈, we constraint that only one such variable will be present in the schedule. Then, every pair of job Jj ∈ and interval Ii ∈ adds term \(\text {PresenceOf}(z_{j, i}) \cdot c^{\text {(job)}}_{j, i} \) into the objective.

  • LOGICAL: Every pair of job Jj ∈ and interval Ii ∈ adds term \((\text {StartOf}({z_{j}}) = i - 1) \cdot c_{j,i}^{(job)}\) into the objective, i.e., if Jj starts at the beginning of Ii, the contribution of Jj into objective is cj, i(job).

  • ELEMENT: Each Jj ∈ adds term cj,StartOf(zj)+ 1(job) into the objective. The indexing by a variable can be done using Element expression.

  • OVERLAP: Every pair of job Jj ∈ and interval Ii ∈ adds term Overlap(zj, Ii) ⋅ ciP[proc,proc] into the objective.

  • STEPFN: For every unique processing time p ∈{pj : Jj ∈}, create a step function Fp representing the cost of starting a job with processing time pNoJob at the beginning of an interval. Each job Jj ∈ adds term \(\text {Start(Eval}{\text {StartOf}{(z_{j}}), F_{{p_{j}}}} )\) into the objective.

Modeling of the spaces:

Similarly as with the jobs, the modeling techniques for the spaces differ in how they contribute into the objective.

  • FIXED: For each pair of intervals \(I_{i},I_{i^{\prime }} \in \mathcal {I}\) such that \(i < i^{\prime }\), create an optional interval variable \(x_{{i},{i^{\prime }}}\) having fixed start to i and having fixed end to \(i^{\prime } - 1\). Each such pair of intervals adds term PresenceOf(xi, i) ⋅ c[i, i] into the objective.

  • FREE: For each possible space length \(\ell \in \{1, \dots , h\}\), we create \(K(\ell ) = \left \lfloor \frac { h}{\ell } \right \rfloor \) optional interval variables xk that are indexed by \(k \in \{ 1, 2, \dots , K(\ell ) \}\) and have fixed length . Each pair of length \(\ell \in \{{1}\dots ,{h}\}\) and \(k \in \{ 1, 2, \dots , K{(\ell )} \}\) adds term c[StartOf(),k,EndOf()(x, k) + 1] into the objective.

    The difference between FIXED and FREE is that in FREE the start times of the space variables are not fixed.

  • NOVARS: In this case, the spaces are not modeled by variables at all. Instead, we create a sequence variable π over all jobs variables zj. Each position ∈{1,…,n − 1} in π adds term c(EndOf(π),StartOf(π+ 1) + 1) into the objective (for brevity of the description, the cost of the switching from the first off and to the last off is omitted).

Linking constraints: The formulations of the jobs and spaces must be linked together with a linking constraint ensuring that every time instant of the scheduling horizon is occupied by either a job or a space interval variable. Moreover, we use NoOverlap on the jobs and spaces variables so that they do not overlap each other. Note that since NOVARS does not use variables for modeling the spaces, the linking constraint is not necessary in this case.

  • SUM: Here we simply constraint that the sum of the lengths of all present jobs and spaces variables equals to the length of the scheduling horizon.

  • PULSE: For each job and space variable, we create a pulse function having height of 1. Then, all the pulse functions are summed together into a cumul expression, which is forced to be 1 in every time instant of the scheduling horizon.

  • STARTOFNEXT: We create a sequence variable π over all jobs and spaces variables. Then we constraint that each variable on position π ends at the start of variable π+ 1.

Rights and permissions

Reprints and Permissions

About this article

Verify currency and authenticity via CrossMark

Cite this article

Benedikt, O., Módos, I. & Hanzálek, Z. Power of pre-processing: production scheduling with variable energy pricing and power-saving states. Constraints 25, 300–318 (2020).

Download citation


  • Single machine production scheduling
  • Machine states
  • Variable energy costs
  • Total energy cost minimization