Discrete Applied Mathematics (
)
–
Contents lists available at ScienceDirect
Discrete Applied Mathematics journal homepage: www.elsevier.com/locate/dam
Makespan optimization in a single-machine scheduling problem with dynamic job ready times—Complexity and algorithms Mateusz Gorczyca, Adam Janiak ∗ , Wladyslaw Janiak, Marcin Dymański Institute of Computer Science, Automation and Robotics, Wrocław University of Technology, Janiszewskiego 11/17, 50-372 Wrocław, Poland
article
info
Article history: Received 2 February 2013 Received in revised form 19 September 2013 Accepted 1 October 2013 Available online xxxx Keywords: Scheduling Resource allocation Metaheuristics Computational complexity
abstract An industrial problem encountered in steel mills is considered in the paper. The problem is formulated as a single-processor scheduling problem with a dynamic model of the task release date. In this model, a task is released for processing when its preprocessing is in the final state. The instantaneous rate of the change of the preprocessing state (from the initial to the final one) depends on the amount of resource allotted to the task. The resource available for task preprocessing is renewable and upper bounded. The problem consists in establishing the task sequence and the resource allocation that minimize the makespan. This problem has already been considered in the literature, but its complexity has not been formally proved. The proof of NP-hardness by polynomial reduction from the partition problem is presented in this paper. Two metaheuristics (simulated annealing and tabu search) are proposed to solve the problem. Both are tested, and the results are analyzed. © 2013 Published by Elsevier B.V.
1. Introduction Methods from scheduling theory are commonly used to make or support managerial decisions in modern computer and industrial systems. In order to describe the operation of these systems in terms of scheduling theory, many task parameters have to be quantified: among others, the task processing time, due date and release date, priority, and additional cost if the task is late. In the paper, we focus on the release date of the task. This parameter includes the duration of all activities that have to be performed until the task is finally ready for processing. In classical scheduling theory, the task release date is fixed and given in advance. Unfortunately, such a model is oversimplified and does not fit reality in many situations. Although much more realistic, the linear model of a task release date [9] is in many cases also too crude. In this model, the release date is given as a value of the non-decreasing function of the allotted resource. The resource is non-renewable, and its total amount available to shorten (compress) release dates of tasks is limited. Both the above models of the release date do not describe properly the following situation from steel-mill industries [10]. At some point of the technological process, the steel ingots are to be hot rolled in the blooming mill. This is possible only if the ingots are at the proper temperature above the recrystallization temperature of the rolled metal. Thus, before the hot rolling process, the ingots have to be preheated and this takes place in the soaking pits. The preheating process is a dynamical one, and it is described by some differential equations. These equations combine the rate of change of the ingot temperature and the velocity of the gas-flow that enters the soaking pit in which the ingot is preheated. Obviously, the ingot preheating
∗
Corresponding author. Tel.: +48 71 320 21 07; fax: +48 71 321 26 77. E-mail addresses:
[email protected] (M. Gorczyca),
[email protected] (A. Janiak),
[email protected] (W. Janiak).
0166-218X/$ – see front matter © 2013 Published by Elsevier B.V. http://dx.doi.org/10.1016/j.dam.2013.10.003
2
M. Gorczyca et al. / Discrete Applied Mathematics (
)
–
time can be shortened by increasing the gas-flow velocity, i.e., the higher the gas flow velocity, the shorter the preheating process lasts. The hot rolling process is a consecutive one. In contrast, the soaking pits can preheat the ingots in parallel, and they are supplied with gas by a common compressor. The power of the compressor is limited, and thus the gas flow has to be reasonably distributed. The problem is to distribute the gas flow (among the soaking pits in which the ingots are preheated) over time and to establish a sequence (in which the ingots are hot rolled in the blooming mill) in such a way that the completion time of the hot rolling of all tasks is minimized. The above situation can be described in terms of scheduling in the following way. The hot rolling corresponds to task processing while the blooming mill is a single processor. The moment at which the ingot (task) achieves the proper temperature is the release date of the task. The rate of preheating (preprocessing) is given as a function of the gas flow and is derived from the mentioned differential equations. The gas is a continuously divisible resource needed to preprocess the tasks. This resource is renewable, and its global amount is limited (by the power of the compressor). The problem is to find such a resource allocation and such a sequence of tasks for which the makespan is minimized. The problem is formally described in Section 2. Based on the above scheduling model, a solution for the problem has been proposed [11]. More precisely, the algorithm of the optimal resource allocation for a given task sequence has been constructed. This algorithm has been tested for a few orders of task sequencing. Moreover, in [8], some ideas for how to improve the resource allocation procedure have been given. The problem has also been claimed to be NP-hard, though no formal proof has been given in the literature. The motivation of this paper is to complete these results. Thus, in Section 3, we present the proof on NP-hardness. Since the problem is at least NP-hard, we propose using tabu search and simulated annealing approaches to solve it—see Section 4 for the results. A short conclusion is given in Section 5. To the best of our knowledge, the papers mentioned above are the only ones in which the release date has been described by a dynamic model. However, there are many scheduling results for problems where the task processing has been described by a dynamic model and the release date of task was fixed and given in advance or not considered at all—see [1]. Such problems have been referred to as discrete–continuous scheduling problems [14]. The sequence of tasks has been considered as a discrete part of the solution and the resource allocation as a continuous one. The most often analyzed problem of this domain is the one with identical parallel processors and the makespan criterion [14]. Such a problem has been observed in multiprocessor computer systems with virtual memory. In such systems, memory is divided into frames and the number of frames is usually large enough to treat memory as a continuous resource [3]. The rate of task processing (program execution) depends on the number of memory pages assigned to the task (process) [4]. The discrete–continuous scheduling model of this problem has been presented in [19]. This model has also been used to describe the refueling of a fleet of boats in a given critical time—see [14,5]. Discrete–continuous scheduling problems have also been analyzed with a criterion of mean flow time [13], weighted flow time [15], and maximum lateness [12], as well as with a minimized criterion of the resource level and an upper bound on the makespan [7]. Recently, discrete–continuous scheduling problems have been considered in computer systems with a criterion of energy consumption [16] or with constrained energy consumption [17]. 2. Problem formulation The set T = {1, . . . , n} of non-preemptable tasks is given for processing on a single processor. The processing time pi of task i ∈ T is given in advance. A task is released for processing once its preprocessing is finished. Each task i needs some positive amount of an additional continuously divisible resource for its preprocessing. This resource is renewable, and its global amount Uˆ > 0 (available for preprocessing of all tasks) is given in advance. Tasks can be preprocessed in parallel. The state of preprocessing (which will be abbreviated to ‘‘the state’’ in what follows) of task i at time t is denoted by xi (t ). The preprocessing of task i is described as a changing its state from 0 to the final state of preprocessing denoted by xˆ i . The release date ri of task i is defined as the earliest time at which the task is in the final state, i.e., ri := min{t : xi (t ) = xˆ i }.
(1)
The rate of preprocessing (i.e., the rate of the change of the task state) depends on the amount of the resource ui (t ) allotted to task i at time t, and is given by the following formula: dxi (t )
:= fi (ui (t )),
dt
i = 1 , . . . , n,
(2)
where fi (t ) is a continuous and increasing function for which fi (0) = 0. Thus, from the above description, we have
xˆ i =
ri
fi (ui (t ))dt .
(3)
0
The resource allocation is defined as a vector function ⟨u1 (t ), . . . , un (t )⟩. The resource allocation is feasible if the following two conditions are satisfied.
M. Gorczyca et al. / Discrete Applied Mathematics (
)
–
3
• ui (t ) is L-integrable or R-integrable for i = 1, . . . , n [18]. Notice that in this case the integral from the right-hand side of (3) exists for any ui (t ) and any continuous fi (·) [18]. ˆ i.e., • The allotted resource does not exceed U, n
ui (t ) 6 Uˆ
for t ∈ [0, max{ri }].
(4)
i=1
The problem is to find such a resource allocation (that will determine the release date of each task) and such a sequence of tasks (in which they will be processed once they are released) which minimize the makespan. 3. Problem complexity In this section, we prove the NP-hardness of the considered problem by a polynomial transformation from the wellknown NP-complete partition problem [6]. The partition problem and the transformation are defined as follows. Definition 1. In a partition problem (PP), there is given a set B of m elements; each element i ∈ B has integer size bi , and ′ i∈B bi = 2B. Is there a subset B ⊂ B such that i∈B ′ bi = i∈B \B ′ bi = B? Definition 2. The polynomial transformation from the PP to the considered problem is given as follows: n := m + 2, pi := α bi ,
(5) i = 1, . . . , m,
(6)
pm+1 := B(1 − α) + α min{bi } − ϵ,
(7)
pm+2 := B,
(8)
xˆ i := bi ,
i = 1, . . . , m,
(9)
xˆ m+1 := ϵ,
(10)
xˆ m+2 := B + α min{bi } − ϵ,
(11)
fi (ui ) :=
1 ui
for ui > 1 i = 1, . . . , m + 2, for 0 6 ui < 1,
(12)
Uˆ = 2,
(13)
y := B(2 + α) + α min{bi },
(14)
where α is any number satisfying 0<α<
1 2B + min{bi }
,
(15)
and ϵ is any number satisfying 0 < ϵ < min{min{bi }, α}.
(16)
Now we prove some useful corollaries for the considered problem transformed from the PP. These corollaries will help to prove the NP-hardness of the problem. Corollary 1. The shortest time of preprocessing (from the start of preprocessing to its finish) of task i is equal to xˆ i . Proof. It follows from (12) that the fastest rate of preprocessing for any task is 1. For fi (ui (t )) = 1, from (2), we have dt = dxi (t ), which after integration over the interval of preprocessing proves the corollary. For the solution in Fig. 1, the time of preprocessing for each of the tasks 1, 2, . . . , m, m+1, and m+2 is the shortest. It is equal to, respectively, xˆ 1 , . . . , xˆ m , xˆ m+1 , and xˆ m+2 . By (9)–(11), it is also equal to, respectively, b1 , . . . , bn , ϵ and B + α min{bi } − ϵ . Corollary 2. For each solution in which the amount of the resource allotted to any task at any time exceeds 1, there exists an equivalent solution (with respect to the criterion value) in which the resource allocation does not exceed 1 for any task at any time. Proof. If for any given solution the resource allocation is decreased to 1 (assuming it was higher than 1 at some time), this does not decrease the rate of preprocessing. Thus, the corollary is true. Based on Corollary 2, in this section we consider only such solutions in which the resource amount allotted to each task does not exceed 1. See Fig. 1 for an example of such a solution.
Proof. From (3), (12), and Corollary 2, we have
ri 0
ri
ui (t )dt, is equal to xˆ i . ri ui (t )dt = 0 fi (ui (t ))dt = xˆ i .
Corollary 3. The resource consumption for task i, defined as
0
4
M. Gorczyca et al. / Discrete Applied Mathematics (
)
–
Fig. 1. The exemplary solution of the considered problem—see Section 3 for details.
Now, we prove the complexity of the considered problem. Property 1. The considered problem is NP-hard. Proof. It is enough to prove that a solution of the considered problem (transformed from the PP) exists if and only if there exists a solution of the PP [6]. The ‘‘if’’ part. Suppose that there exists a solution of the PP, i.e., there exists a subset B ′ ⊂ B such that i∈B bi = B. Without loss of generality, assume that the smallest element of B belongs to the set B ′ , i.e., min{bi } ∈ B ′ . Consider the solution shown in Fig. 1. In this solution, task m + 1 is released and immediately started at time ϵ . Once task m + 1 is completed, the tasks that correspond to elements of the subset B ′ are processed. The task that corresponds to min{bi } (task 9 in Fig. 1) is performed as the last one among these tasks, and it is started immediately at its release date, i.e., at time B. The task m + 2 is also started at its release date, i.e., at time B + α min{bi }. Once this task is completed, the tasks that correspond to elements of the subset B \ B ′ are processed. Notice that in the presented solution all the tasks are processed without any idle time, except for the interval [0, ϵ], where ϵ is the release date of task m + 1. Therefore, the makespan is equal to the sum of ϵ and the total processing time of all tasks:
ϵ + pm+1 +
i∈B ′
pi + pm+2 +
pi = ϵ + B(1 − α) + α min{bi } − ϵ + α B + B + α B
i∈B \B ′
= B(2 + α) + α min{bi } = y.
(17)
The ‘‘only-if’’ part. We prove that, if the PP has no solution, then the considered problem has no solution as well, i.e., the criterion value is greater than y. As follows from (17), in order to obtain a solution with criterion value not greater than y, the idle time cannot exceed ϵ . It follows from Corollaries 1 and 3 and from (16) and (9)–(11) that task m + 1 is the (only) one that can be released at the earliest date, i.e., at time ϵ . Therefore, task m + 1 has to be started at time ϵ , and all remaining tasks have to be processed without any idle time. We prove that this is impossible if the PP has no solution. Without loss of generality, assume that between tasks m + 1 and m + 2 some subset of tasks B ′ is processed. If the PP has no solution, then b = ̸ B. Below, we consider separately both the following cases: b < B and ′ ′ i i i∈B i∈B i∈B ′ bi > B. ′ The case i∈B ′ bi < B. For this case, obviously i∈B ′ bi 6 B − 1. The total performance time of the tasks from the subset B is i∈B ′ α bi . If these tasks are processed immediately after task m + 1, the completion time of the last one of them is equal to
ϵ + pm+1 +
i∈B ′
α bi = ϵ + B(1 − α) + α min{bi } − ϵ + α
bi
i∈B ′
6 B(1 − α) + α min{bi } + α(B − 1) = B + α min{bi } − α.
However, as follows from (11) and Corollary 1, the earliest release date of task m + 2 is equal to B + α min{bi } − ϵ . From (16), we have ϵ < α . Therefore, there is an idle time equal to α − ϵ between the completion of tasks from the subset B ′ and the release date of task m + 2. Thus, the criterion value is greater than y.
M. Gorczyca et al. / Discrete Applied Mathematics (
)
–
5
Algorithm 1 Simulated annealing scheme 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
π := GenerateRandomPermutation() T := 100 {Initial temperature} while T > 0.1 and Running time < 2 hours do π ′ := RandomPermutationFromTheSwapNeighbourhoodOf(π ) if rπ ′ (1) 6 rπ(1) then π := π ′ {π ′ replaces π } else Accept π ′ as a new solution with probability e− end if T := 0.97 T {Temperature update} end while
r ′ π (1) −rπ(1) T
′ The case i∈B ′ bi > B. To avoid idle time, task m + 2 has to be started immediately after the last task from the subset B is completed, i.e., at ϵ + pm+1 + i∈B ′ α bi . Thus, the preprocessing of tasks m + 1, m + 2, and all tasks from the subset B ′ has to be finished by then. As follows from Corollary 3, the resource consumed to preprocess these tasks is equal to sum of their final states. On the other hand, in the time interval from 0 to ϵ + pm+1 + i∈B ′ α bi , at most Uˆ · (ϵ + pm+1 + i∈B ′ α bi ) resource can be consumed. Thus, to ensure that there is no idle time, this amount of the resource has to be enough to achieve the final states of tasks:
xˆ i + xˆ m+1 + xˆ m+2 6 Uˆ ·
ϵ + pm+1 +
α bi .
(18)
i∈B ′
i∈B ′
By substitution of (7), (9)–(11) and (13), we obtain:
bi + ϵ + B + α min{bi } − ϵ 6 2 ϵ + B(1 − α) + α min{bi } − ϵ + α bi + B + α min{bi } 6 2B − 2Bα + 2α min{bi } + 2α
i∈B ′
,
(19)
bi ,
(20)
i∈B ′
bi 6 B − 2Bα + α min{bi } + 2α
i∈B ′
bi ,
(21)
i∈B ′
bi
i∈B ′
i∈B ′
bi − B 6 α
2
i∈B ′
bi − 2B + min{bi } ,
(22)
i∈B ′
bi − B
i∈B ′
α>
2
>
bi − B
+ min{bi }
1 2B + min{bi }
.
(23)
i∈B ′
However, since (15), the above condition cannot be satisfied. Thus, some idle time appears, and the criterion value is greater than y. 4. Metaheuristic algorithms As has been proved in the previous section, the considered problem belongs to the class of optimization problems that are recognized as difficult. Therefore, in this section, we propose two metaheuristics that are efficient in solving such problems. Namely, we describe the application of simulated annealing (abbreviated to SA) and tabu search (TS)—see, e.g., [2]. In Section 4.1, the implementation details are described. The parameters of problems on which these metaheuristics have been tested are presented in Section 4.2, along with the results obtained. 4.1. Implementation Both metaheuristics are based on the methodology presented in [11]. More precisely, metaheuristics have been used to search for the best sequence of tasks π , while the algorithm of the optimal resource allocation has been used to evaluate each considered sequence. The resource allocation constructed by this algorithm results in a solution in which tasks are processed without any idle time, except for the interval from 0 to the release date of the first task in the sequence (like for the solution from Fig. 1). Since the processing time of each task is fixed, and tasks are processed without any idle time,
6
M. Gorczyca et al. / Discrete Applied Mathematics (
)
–
Algorithm 2 Tabu search scheme 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
π := GenerateRandomPermutation() Initialize empty TabuList of length 6 count := 0; while count 6 200 and Running time < 2 hours do AllowedSetOfSolutions = {π ′ ∈ SwapNeighborhoodOf(π ) such that either rπ ′ (1) 6 rπ(1) or π cannot be constructed from π ′ by swapping tasks of π ′ on positions stored in the TabuList ′ π := The best solution from AllowedSetOfSolutions Store in the TabuList positions on which tasks have been swapped to obtain π ′ from π count := count + 1 end while
only the release date of the first task in the sequence, denoted as rπ (1) , is minimized by the algorithm (but with regard to the preprocessing requirements of the other tasks). Thus, for the purpose of the evaluation of each sequence (which is necessary for metaheuristic to work), the value of the computed optimal release date of the first task was used. The other details of the implementation of both metaheuristics are as follows. For SA, a geometric cooling scheme was used with cooling factor 0.97 and the starting temperature equal to 100—see Algorithm 1 and Section 4.2. The procedure was terminated when the temperature dropped below 0.1 or the running time exceeded 2 h. The next sequence was picked at random from the swap neighborhood of the current sequence. The probability of acceptance was determined by a Boltzmann distribution. For TS, a simple tabu search scheme was used with the neighborhood defined by the swap move—see [2] and Algorithm 2. On the tabu list, the attribute of the last moves was stored, i.e., the position of the sequence on which the swap move was performed. The tenure of the tabu list was fixed equal to 6—see Section 4.2. The tabu list was updated with each visited sequence. The termination condition was set to 200 iterations of the algorithm or when the running time exceeded 2 h. 4.2. Metaheuristic parameter tuning, input data, and results The evaluation of each sequence is computationally very demanding. It follows from the fact that the optimal resource ′ allocation algorithm (necessary to calculate rπ( 1) needed in steps 5 and 8 of Algorithm 1 and in steps 5–7 in Algorithm 2) is based on convex programming with the number of variables roughly equal to n2 /2—see [11]. To solve this convex optimization problem, the fmincon procedure (with default settings) from the Optimization Toolbox for Matlab R2010a was used. The average time of a single run of SA or TS (with the running time condition turned off) for the number of tasks n = 12, 13, 14, 15 was, respectively, about 1, 1.2, 1.7, 2.5 h. Thus, the tests were not carried out for a greater number of tasks even though the SA or TS specific code (i.e., all operations except the calculation of rπ′ (1) ) written in JAVA was executed in less than 1 s. The experiment was performed √ on a computer with Intel Core i7 2600k 3.4 GHz processor with 4 GB RAM memory. We used root functions fi (ui ) = hi ki ui , hi > 0, ki > 1, commonly used to describe task processing [10,11,14]. For all tests, we assumed that Uˆ = 1. The coefficients hi and ki were randomly generated with a uniform distribution, respectively from the interval [1, 4] and the set {1, 2, 3, 4}. The final state of preprocessing xˆ i and the performance time pi were generated in a similar way—see Table 1 for details. For the SA algorithm, the cooling factor parameter was tuned in the following way. For different cooling factor values 0.999, 0.99, 0.98, . . ., 0.9 five initial runs were made for each number of tasks n = 12, 13, 14, 15, the initial temperature was equal to 100, and the final temperature was adjusted in such a way that for each run the number of iterations was the same. The best average result was obtained for the cooling factor value of 0.97. However, the difference between average results for different cooling factor values was not greater than 5%. For the TS algorithm, the tenure parameter value was chosen from 4, 5, . . ., 10, 12, 15, 20. Five initial runs were made for each number of tasks and each value of tenure. The best average result was obtained for the tenure value of 6. However, the difference between average results for different tenure values was not greater than 8%. For each combination of parameters, 25 instances were generated. The average improvement obtained by each metaheuristic is given in Table 1. It seems that the magnitude of improvement strongly depends on the problem instance, and that both guided local search strategies are relatively efficient. Therefore, it seems that, instead of further improving the sequence construction using more sophisticated metaheuristics, a different approach should be pursued. Examples of such an approach are techniques that simultaneously construct the sequence and resource allocation—see [8] for the concept and first results. 5. Conclusion In this paper, a practical problem that arises in steel mills has been proved to be NP-hard. It seems that the considered problem is strongly NP-hard, and the next step is to prove this. Two metaheuristic methods were proposed to solve it: simulated annealing and tabu search. The efficiency of these metaheuristics was examined, and it turned out to be similar
M. Gorczyca et al. / Discrete Applied Mathematics (
)
–
7
Table 1 The average improvement (%) of the release date of the first task in the sequence obtained by SA and TS metaheuristics—see Section 4 for details. Task parameters
pj pj pj pj
∈ {1, 2}, xˆ i ∈ [20, 50] ∈ {1, 2}, xˆ i ∈ [100, 200] ∈ {1, . . . , 10}, xˆ i ∈ [20, 50] ∈ {1, . . . , 10}, xˆ i ∈ [100, 200]
n = 12
n = 13
n = 14
n = 15
SA
TS
SA
TS
SA
TS
SA
TS
36.8 18.1 94.3 34.8
37.4 18.2 93.8 34.4
35.8 22.4 90.2 36.9
33.7 22.3 90.2 37.2
21.7 30.5 83.3 29.7
25.0 31.0 83.7 26.6
37.1 24.4 76.3 29.0
37.4 22.1 76.7 28.5
for both methods. Some directions for further improvement of the solution methods for the considered problem have been suggested. An extended computational study of different metaheuristic approaches for solving the considered problem and other problems with dynamic models of task processing times or task release dates is currently in progress. References [1] J. Błażewicz, K.H. Ecker, E. Pesch, G. Schmidt, J. Węglarz, Scheduling Computer and Manufacturing Processes, second ed., Springer, 2002. [2] C. Blum, A. Roli, Metaheuristics in combinatorial optimization: overview and conceptual comparison, ACM Computing Surveys (CSUR) 35 (3) (2003) 268–308. [3] D.D. Chamberlin, S.H. Fuller, L.Y. Liu, An analysis of page allocation strategies for multiprogramming systems with virtual memory, IBM Journal of Research and Development 17 (5) (1973) 404–412. [4] P.J. Denning, Working sets past and present, IEEE Transactions on Software Engineering 6 (1) (1980) 64–84. [5] M. Dror, H.I. Stern, J.K. Lenstra, Parallel machine scheduling with processing rates dependent on number of jobs in operation, Management Science 33 (8) (1987) 1001–1009. [6] M. Garey, D. Johnson, Computers and intractability. [7] M. Gorczyca, A. Janiak, Resource level minimization in the discrete–continuous scheduling, European Journal of Operational Research 203 (1) (2010) 32–41. [8] M. Gorczyca, A. Janiak, W. Janiak, Neighbourhood properties in some single processor scheduling problem with variable efficiency and additional resources, Decision Making in Manufacturing and Services 5 (1–2) (2011) 5–17. [9] A. Janiak, Time-optimal control in a single machine problem with resource constraints, Automatica 22 (6) (1986) 745–747. [10] A. Janiak, Minimization of the blooming mill standstills mathematical model—suboptimal algorithms, Zeszyty Naukowe Akademii Górniczo-Hutniczej s. Mechanika 8 (2) (1989) 37–49. [11] A. Janiak, W. Janiak, Single-processor scheduling problem with dynamic models of task release dates, IEEE Transactions on Systems, Man and Cybernetics, Part A (Systems and Humans) 41 (2) (2011) 264–271. [12] J. Józefowska, M. Mika, R. Różycki, G. Waligóra, J. Wêglarz, Discrete–continuous scheduling to minimize maximum lateness, in: Proceedings of the Fourth International Symposium on Methods and Models in Automation and Robotics MMAR’97, 1997, pp. 947–952. [13] J. Józefowska, J. Wêglarz, Discrete–continuous scheduling problems—mean completion time results, European Journal of Operational Research 94 (2) (1996) 302–309. [14] J. Józefowska, J. Wêglarz, On a methodology for discrete–continuous scheduling, European Journal of Operational Research 107 (2) (1998) 338–353. [15] E. Nowicki, S. Zdrzałka, Optimal control policies for resource allocation in an activity network, European Journal of Operational Research 16 (2) (1984) 198–214. [16] R. Różycki, J. Wêglarz, On job models in power management problems, Bulletin of the Polish Academy of Science 57 (2) (2009) 147–151. [17] R. Różycki, J. Wêglarz, Power-aware scheduling of preemptable jobs on identical parallel processors to meet deadlines, European Journal of Operational Research 218 (1) (2012) 68–75. [18] W.F. Trench, Introduction to Real Analysis, Prentice Hall, 2002. [19] J. Wêglarz, Multiprocessor scheduling with memory allocation—a deterministic approach, IEEE Transactions on Computers 29 (8) (1980) 703–709.