Information Processing Letters 113 (2013) 280–284
Contents lists available at SciVerse ScienceDirect
Information Processing Letters www.elsevier.com/locate/ipl
Machine scheduling with contiguous processing constraints ✩ Lan Lin a , Yixun Lin b,∗ a b
School of Electronics and Information Engineering, Tongji University, Shanghai 200092, China Department of Mathematics, Zhengzhou University, Zhengzhou 450001, China
a r t i c l e
i n f o
Article history: Received 2 January 2012 Received in revised form 15 January 2013 Accepted 4 February 2013 Available online 11 February 2013 Communicated by B. Doerr Keywords: Scheduling Contiguous processing Feasibility Optimality Polynomial-time algorithm
a b s t r a c t In classical machine scheduling problems the jobs are independent in general. Motivated by some special processing environments, this paper studies a model of scheduling problems with constraints that some groups of jobs have to be processed contiguously. It turns out that the feasibility of these constrained scheduling problems is equivalent to the recognition of interval hypergraphs. For this new model, two examples of single machine scheduling problems with polynomial-time algorithms are taken as a start. © 2013 Elsevier B.V. All rights reserved.
1. Introduction Scheduling theory is an active field in discrete optimization and computer science. In a great variety of machine scheduling problems, several types of constraints on the job set have been studied in the literature. The simplest constraints are unary relations, such as release dates and deadlines. A binary relation often considered is the precedence relation, namely, a partial order defined on the job set [3,7]. Similarly, some kind of compatibility relations may be taken into account in the scheduling problems with batching [8]. In this paper we consider a new type of constraints that some groups of jobs are restricted to have contiguous processing. To say precisely, let J = { J 1 , J 2 , . . . , J n } be the set of jobs and let F = { S 1 , S 2 , . . . , S m } be a family of subsets of J , where S i ⊆ J , i = 1, 2, . . . , m. The jobs in each S i are required to be processed contiguously on a machine. That is to say, all jobs in S i must be processed successively without interruption by other jobs, but there is no restric-
✩
*
Supported by NSFC (11101383, 11201121, 91218301). Corresponding author. E-mail address:
[email protected] (Y. Lin).
0020-0190/$ – see front matter © 2013 Elsevier B.V. All rights reserved. http://dx.doi.org/10.1016/j.ipl.2013.02.004
tion on their order. Also, different S i and S j may intersect each other. This requirement is motivated by the following applications: • Due to some physical or chemical property (say, heat treatment attribute) of jobs, a group of jobs in S i must be processed one by one without any break between them. • The jobs in each group S i need a specific auxiliary facilities, or additional technical treatment, that should be manipulated in a continuous time interval. For example, in an operation theater, different group of patients (with different age, sex, and disease) requires different surgery conditions, which must be contiguously available. • In supply chain scheduling, a group of products may serve a certain purpose, e.g., for military use, civic use, scientific research, or for certain customers. For each purpose, the machine manufacture has to keep a specific standard in a continuous period, and then the products are delivered to the customer as a batch. Similarly, in the multi-agent scheduling problems [1], the jobs belonging to each agent form a group with the same objective, only the subsets in F are disjoint in this case. Now we consider a more general case where the subsets S i can be overlapped. The paper is organized as follows. In Section 2, we study the existence of feasible solutions. Sections 3 and 4
L. Lin, Y. Lin / Information Processing Letters 113 (2013) 280–284
281
are devoted to establish optimization algorithms for two typical single machine scheduling problems with contiguity constraints: minimizing the total weighted completion times and the maximum lateness respectively. Section 5 gives a short summary. Our terminology and notation of scheduling theory will follow those of [3,7]. 2. Existence of feasible solutions Given the job set J = { J 1 , J 2 , . . . , J n } and the subset family F = { S 1 , S 2 , . . . , S m }, we consider a single machine scheduling problem with contiguity constraints of F , where the jobs in each subset S i ∈ F must be scheduled contiguously. According to the three-field notation (see [7]), we designate this problem by 1|Π(F )| f , where Π(F ) stands for the collection of all schedules π of J such that the jobs in each subset S i ∈ F appear consecutively in π (the notation Π(F ) here is according to [4]), and f is the objective function. For the subset family F , σ = ( J , F ) constitutes a set system or hypergraph. In this respect, σ is called an interval hypergraph if there exists a permutation π of J such that the elements of each subset S i ∈ F appear as a consecutive subsequence of π (see [4,9]). On the other hand, ( J , F ) can be represented by an m × n (0, 1)-matrix M in which the entry (i , j ) is 1 if and only if J j ∈ S i . A (0, 1)matrix M is said to have the consecutive ones property for rows if there exists a column permutation such that the ones in each row of the resulting matrix appear consecutively (see [2,4,5]). By definition, we have the following equivalent versions of feasibility. Proposition 2.1. The following statements are equivalent: (1) the scheduling problem 1|Π(F )| f is feasible; (2) the hypergraph σ = ( J , F ) is an interval hypergraph; (3) the incidence matrix M of ( J , F ) has the consecutive ones property. For brevity, we call a subset family F feasible if there exists a feasible schedule π ∈ Π(F ). In this situation, we say that π realizes the family F . Now, the problem is how to test the feasibility of F . This is a well solved problem in the recognition of interval graphs and interval hypergraphs. Booth and Lueker [2] first presented an algorithm based on the data structure P Q -tree (see also [4]). However, the algorithm is quite involved: at each iteration it checks nine templates to see if the adding subset is compatible with the existing ones. Many efforts have been made in simplifying this algorithm (see, e.g., Hsu [5]). Here, we propose an explanation to the meaning of P Q -trees. The algorithm and the proof can be consulted in the above-mentioned references. As a typical case, a subset family F is called a laminar (nested) family if for any two sets X , Y ∈ F , at least one of X \ Y , Y \ X , X ∩ Y is empty, that is, X ∩ Y = ∅ ⇒ X ⊆ Y or Y ⊆ X . On the other hand, two sets X , Y are said to be crossed if all of X \ Y , Y \ X , X ∩ Y are not empty. So, any two sets in a laminar family are not crossed. Let F be a laminar family which describes the contiguity constraints. Clearly, it can be represented by a rooted
Fig. 1. Special P Q -trees.
tree as follows (cf. the tree-representation of [6]): The universal set J is the root and each X ∈ F is a node; For X , Y ∈ F , X is a child of Y if X ⊂ Y and there is no Z ∈ F such that X ⊂ Z ⊂ Y ; And all leaves are singletons (jobs) of J . This is the Hasse’s diagram of partial order “⊂”. This rooted tree will be called the P Q -tree of F , denoted T F . For example, J = { J 1 , J 2 , . . . , J 7 } and F = {{ J 1 , J 2 , J 3 , J 4 }, { J 2 , J 3 , J 4 }, { J 6 , J 7 }}. Then the P Q tree T F can be depicted in Fig. 1(a), where the leaves are designated by squares and other internal nodes by circles, called P-nodes. Note that each P -node (except the root) represents a subset in F consisting of all jobs (leaves) that are descendants of this node. We next consider a crossed family F . By a “crossed family”, we mean a subset family that can form a connected graph by the relation of “cross”, that is, each subset is regarded as a vertex and two vertices are adjacent if they are crossed. To begin with, suppose that F = { X , Y } where X \ Y , X ∩ Y , Y \ X = ∅. Then the subset family F corresponds to an ordered partition Q = ( X \ Y , X ∩ Y , Y \ X ). If a schedule π realizes F , then it traverses three parts of Q in two ways: (1) from X \ Y to X ∩ Y and to Y \ X ; (2) from Y \ X to X ∩ Y and to X \ Y (within each part, the member order is arbitrary). In either way, we say that π realizes Q. Conversely, if π realizes Q, then it realizes F as well. In this sense, we say that the family F is equivalent to the partition Q. We will use a wide rectangle to designate the partition Q and call it a Q-node, which has three children X \ Y , X ∩ Y , and Y \ X . For example, X = { J 1 , J 2 , J 3 , J 4 }, Y = { J 2 , J 3 , J 4 , J 5 , J 6 }. Then the Q node and three children are depicted in Fig. 1(b). In general, let Q = ( X 1 , X 2 , . . . , Xl ) be an ordered partition of X , and Y is another subset crossed with X or some X i . The subset Y is said to be compatible with partition Q if a partition Q of X ∪ Y results from Q and Y by possible intersections of X , X i , Y and their complements. This partition Q is a refinement of Q. Going on inductively, we come to the conclusion: A crossed family F is feasible if and only if it is equivalent to a partition Q. Thus, a partition Q is represented by a Q -node with three or more children. For a Q -node, the children have only two orders: a given order and its reverse. Finally, we proceed to consider a general subset family F . A subfamily F ⊆ F is called a crossed component if it is a maximal subfamily of F that is a crossed family. We can deduce that a family F is feasible if and only if all crossed components are feasible. In summary, if F is feasible, we can construct the P Q tree as follows: First, find all crossed components and their
282
L. Lin, Y. Lin / Information Processing Letters 113 (2013) 280–284
an order relation of adjacent jobs. A general algorithmic approach can be illustrated by several typical models. We first consider the single machine scheduling problem with contiguity constraints to minimize the total weighted completion times, denoted 1|Π(F )| w jC j. Let J 1 , J 2 , . . . , J n be n jobs being processed by a single machine with processing times p 1 , p 2 , . . . , pn and weights w 1 , w 2 , . . . , w n respectively. For a schedule π = (π (1), π (2), . . . , π (n)), the completion time of job J π (i ) is Fig. 2. A P Q -tree with P -nodes and Q -nodes.
partitions, which are represented by Q -nodes. Second, when the subsets in each Q -node are merged into a single subset, the resulting family is laminar. So the P Q -tree of this laminar family is constructed as before, in which the nodes other than Q -nodes are P -nodes. An example of P Q -tree is shown in Fig. 2, where J = { J 1 , J 2 , . . . , J 9 } and F = {{ J 1 , J 2 }, { J 1 , J 2 , J 3 }, { J 3 , J 4 , J 5 , J 6 , J 7 }, { J 5 , J 6 }, { J 6 , J 7 }, { J 8 , J 9 }}. It should be emphasized that the P Q -tree T F is a data structure (not only a digraph) in which the children of each node have a specific order from left to right. So the lexicographical order of the leaves can be obtained by reading the labels of the leaves from left to right. The permutation π of jobs in this order is called the frontier schedule with respect to the tree T F . In our example of Fig. 2, the frontier schedule is π = ( J 1 , J 2 , . . . , J 9 ). For representing the contiguity of F , the crucial observation is that the order of children at each P -node is irrelevant and the order at each Q -node can be reversed. So, two P Q -trees T and T are said to be equivalent if one can be obtained from the other by the following operations: (i) Arbitrarily change the order of the children of P -node; (ii) Reverse the order of the children of Q -node. Based on this equivalence, we define L ( T F ) to be the set of all frontier schedules with respect to the equivalent P Q trees of T F . In the version of scheduling, the result of [2] is the following. Theorem 2.2. If the family F is feasible and T F is the corresponding P Q -tree, then a schedule π is feasible for the problem 1|Π(F )| f if and only if it is a frontier schedule of an equivalent P Q -tree of T F . Namely, Π(F ) = L ( T F ). 3. Minimizing total weighted completion times We proceed to study a class of single machine scheduling problems with contiguity constraints, which have the following features: (a) Local consistency: The objective function f can be evaluated for each block (a group of contiguous jobs) by a partial objective function, which is consistent with f . (b) Convexity: The global optimality can be determined by a monotone “gradient function” (a ratio or a similar label) of each block. For example, these properties hold for some classical problems whose optimal solutions can be determined by
C π (i ) =
i
f (π ) =
j =1
n
p π ( j ) . The objective function is
w π ( j) C π ( j) =
j =1
n n j =1
w π (i ) p π ( j ) .
i= j
It is known that the problem 1|| w j C j without constraints can be solved by the WSPT (weighted shortest processing time) rule, namely, the jobs are scheduled in nondecreasing order of ratio p j / w j (see [3,7]). Suppose that the subset family F is feasible and the P Q -tree T F is given. As stated in the previous section, the rule of producing equivalent P Q -trees is: (i) All children of each P -node can be reordered in any order; (ii) The child order of each Q -node can only be reversed. Furthermore, any feasible schedule can be obtained from a frontier schedule by carrying out these equivalence transformations. For any subset X ⊆ J , we denote p ( X ) = J j ∈ X p j and w( X) =
J j∈X
w j . So, in the P Q -tree, a node X , which
represents the subset X , is associated with two labels p ( X ) and w ( X ) and the ratio ρ ( X ) = p ( X )/ w ( X ). In the following algorithm, all children of a P -node will be ordered in nondecreasing order of ratio p ( X )/ w ( X ). This is the rule of P -nodes. On the other hand, for a consecutive subsequence π ( X ) = ( J i1 , J i2 , . . . , J ik ) of schedule π , we can calculate the partial objective value
j k f π(X) = wi j p il .
j =1
l =1
If the order of the jobs before and after this subsequence π ( X ) is fixed, then this partial value f (π ( X )) has a constant difference from the objective function f (π ) and this constant is independent of jobs of π ( X ). This is the socalled local consistency property. Now, for a Q -node X representing partition Q = ( X 1 , X 2 , . . . , Xl ) of X , suppose that the order of each child X i has been given by π ( X i ) (1 i l). Then π ( X ) = (π ( X 1 ), π ( X 2 ), . . . , π ( Xl )) is the consecutive subsequence for X . Thus its reverse is π ( X ) = (π ( Xl ), π ( Xl−1 ), . . . , π ( X 1 )) (note that the order within each child X i is unchanged). In the following algorithm, we will calculate two partial values f (π ( X )) and f (π ( X )), and choose the smaller one, from which the order of the children of Q -node X is determined. This is the rule of Q -nodes. For the P Q -tree T F , each node is given a level: The root has level 0; For a node of level i, all its children have
L. Lin, Y. Lin / Information Processing Letters 113 (2013) 280–284
level (i + 1). The algorithm for solving 1|Π(F )| as follows.
w j C j is
Algorithm A. Input: n jobs with processing times p j and weights w j ( j = 1, 2, . . . , n), the family F of contiguity constrains. Output: An optimal schedule π ∗ . Step 1: Construct the P Q -tree T F for the feasible family F . Step 2: Denote by U the set of unscanned nodes. Initially, it contains all internal nodes of T F . Carry out the reordering procedure as follows: While U = ∅ do: Choose an X ∈ U with maximal level (the order within each child is given). If X is a P -node then reorder all its children Y in nondecreasing order of ratio p (Y )/ w (Y ). If X is a Q -node with partition Q = ( X 1 , X 2 , . . . , Xl ) then compare the partial objective values of π ( X ) = (π ( X 1 ), π ( X 2 ), . . . , π ( Xl )) and π ( X ) = (π ( Xl ), π ( Xl−1 ), . . . , π ( X 1 )). If f (π ( X )) < f (π ( X )) then reverse the order of the children of X . Set U := U \ { X } ( X is scanned). Step 3: Return the frontier schedule π ∗ with respect to the equivalent P Q -tree T ∗ obtained by the reordering procedure.
Theorem 3.1. Algorithm A correctly solvesproblem 1|Π(F )| w j C j in O (n log n + r ) time, where r = S ∈F | S |. Proof. We first show the correctness of the algorithm. By Theorem 2.2, Π(F ) = L ( T F ). It suffices to show that the frontier schedule π ∗ obtained by the algorithm is optimal among all frontier schedules with respect to equivalent P Q -trees of T ∗ . Now let π ∈ L ( T F ) be a frontier scheduleof P Q -tree T that has the minimum value of n f (π ) = j =1 w π ( j ) C π ( j ) . If the node orders of T are the same as those of T ∗ , then we are done. Otherwise, they have different orders somewhere. There are two cases to consider. Case 1: At a P -node of T , there are two consecutive children X , Y with p ( X )/ w ( X ) p (Y )/ w (Y ) such that Y is scheduled before (at the left of) X , reversing the order in T ∗ . Let π (Y ) = ( J i 1 , J i 2 , . . . , J ik ) be the subsequence of Y in π , and π ( X ) = ( J j 1 , J j 2 , . . . , J jl ) the subsequence of X in π . We write π = (. . . , π (Y ), π ( X ), . . .). Now we construct a new tree T by interchanging the order of two children X , Y . So we get a new schedule
π . . , π ( X ), π (Y ), . . .). By the representation f (π ) = n= (. n j =1 ( i = j w π (i ) ) p π ( j ) , we have
f
π − f (π )
= ( p j 1 + p j 2 + · · · + p jl )( w i 1 + w i 2 + · · · + w ik ) − ( p i 1 + p i 2 + · · · + p ik )( w j 1 + w j 2 + · · · + w jl ) = p ( X ) w (Y ) − p (Y ) w ( X ) p( X ) p (Y ) 0. − = w ( X ) w (Y ) w( X) w (Y ) Hence f (π ) f (π ). Whenever T still has this kind of reverse orders, we make the same transformations as above. Case 2: At a Q -node X of T , the order of the children is different from that in T ∗ . Suppose this X is at the level as large as possible. Let Q = ( X 1 , X 2 , . . . , Xl ) be the partition of this node X . Then we construct a new tree T by reversing the child order of X and get a new schedule π . Since π ( X ) is the same as π ∗ ( X ) obtained by the algorithm, we
283
have f (π ( X )) f (π ( X )). Hence f (π ) f (π ) by the local consistency property. Whenever T still has this kind of reverse orders, we make the same transformations as above. By the above transformations, we can equivalently change the P Q -tree from T to T ∗ and keep the objective function nonincreasing. Therefore f (π ∗ ) f (π ). Thus π ∗ is also an optimal schedule. We next show the time bound of the algorithm. It is known that the P Q -tree can be constructed in O (m + n + r ) time (see [2,4,5]). Clearly, m = |F | r = S ∈F | S | as | S | 1 for S ∈ F . Moreover, we can sort all children of P -nodes in nondecreasing order of ratio p ( X )/ w ( X ) in O (n log n) time. To see this, suppose that there are k P nodes and they have n1 , n2 , . . . , nk children respectively, where ni 2. Note that n is the number of leaves in the P Q -tree. It is easy to verified that n1 + n2 + · · · + nk 2n by induction on k. So the running time of sorting all children of P -nodes is n1 log n1 + n2 log n2 + · · · + nk log nk (n1 + n2 +· · ·+ nk ) log n 2n log n. Also, the orders at all Q nodes can be adjusted in O (n) time. Therefore the overall running time is O (n log n + r ). This completes the proof. 2 4. Minimizing maximum lateness We next consider the single machine scheduling problem with contiguity constraints to minimize the maximum lateness, denoted 1|Π(F )| L max . It is known that the problem 1|| L max without constraints can be solved by the EDD (earliest due date) rule, namely, the jobs are ordered in nondecreasing order of due dates d j (see [3,7]). Let J 1 , J 2 , . . . , J n be n jobs with processing times p 1 , p 2 , . . . , pn and due dates d1 , d2 , . . . , dn respectively. For a schedule π = (π (1), π (2), . . . , π (n)), the completion i time of job J π (i ) is C π (i ) = j =1 p π ( j ) . The objective function (maximum lateness) is
f (π ) = max {C π ( j ) − dπ ( j ) }. 1 j n
Suppose that the subset family F is feasible and the P Q tree T F is given. We define a block to be a set of consecutive jobs with fixed order. In a block B, the job with the maximum lateness is called the critical job of B (if there is a tie, we choose the latest one). It is clear that this critical job is independent of the starting time S of B, because all completion times C j , as well as the lateness C j − d j , are added by the same constant S. Now we consider the problem of optimal ordering of k blocks B 1 , B 2 , . . . , B k . For 1 i k, let p ( B i ) be the sum of processing times of jobs in B i , and l( B i ) the maximum lateness of jobs (i.e. the lateness of critical job) in B i with respect to starting time S = 0. For a permutation (order) π B = (π (1), π (2), . . . , π (k)) of the blocks, the starting time of block B π (i ) is S π (i ) =
i −1
j =1
p ( B π ( j ) ). And the partial objective value is
f (π B ) = max S π (i ) + l( B π (i ) ) . 1i k
The problem is to find an order π B of blocks such that f (π B ) is minimized. If we regard the operation “max” as an “addition” ⊕ and the addition as a “multiple” ⊗,
284
L. Lin, Y. Lin / Information Processing Letters 113 (2013) 280–284
then this function is an analogue of the one minimized n f (π ) = j =1 w π ( j ) C π ( j ) before. Interestingly, the following optimality criterion is also similar (the ratio is replaced by the difference). Lemma 4.1. The partial objective value f (π B ) is minimized if the blocks are permuted in a nondecreasing order of the differences p ( B i ) − l( B i ). Proof. Let π B∗ be the order of blocks in nondecreasing order of differences p ( B i ) − l( B i ). If π B is an optimal order, which is different from π B∗ , then there must be two consecutive blocks B j and B i with p ( B j ) − l( B j ) p ( B i ) − l( B i ), reversing the order in π B∗ . We may construct a new order π B from π B by interchanging B j and B i . So, π B = (. . . , B j , B i , . . .) and π B = (. . . , B i , B j , . . .). By p ( B i ) + l( B j ) p ( B j ) + l( B i ), it follows that
max l( B i ), p ( B i ) + l( B j )
p ( B j ) + l( B i ) max l( B j ), p ( B j ) + l( B i ) .
Let S be the starting time of B i in π B and L the maximum lateness of blocks besides B i and B j . Then
f
π B = max S + l( B i ), S + p ( B i ) + l( B j ), L
max S + l( B j ), S + p ( B j ) + l( B i ), L = f (π B ).
If π B still has reverse orders relative to
π B∗ , we can
make the same transformations as above. In this way, we show that f (π B∗ ) f (π B ) and so π B∗ is also optimal, as required. 2
If X is a Q -node with partition Q = ( B 1 , B 2 , . . . , B k ) then compare the partial objective values of π ( X ) = (π ( B 1 ), π ( B 2 ), . . . , π ( B k )) and π ( X ) = (π ( B k ), π ( B k−1 ), . . . , π ( B 1 )). If l(π ( X )) < l(π ( X )) then reverse the order of the children of X . Set U := U \ { X }. Step 3: Return the frontier schedule π ∗ with respect to the equivalent P Q -tree T ∗ obtained by the reordering procedure.
Theorem 4.2. Algorithm B correctly solves problem 1|Π(F )| L max in O (n log n + r ) time, where r = S ∈F | S |. Proof. The optimality of P -nodes is by Lemma 4.1. The optimality of Q -nodes is by the direct comparison of two directions. The time bound is the same as in Theorem 3.1. 2 5. Concluding remarks This paper presents an introductory discussion to scheduling problems with contiguity constraints. We mainly establish polynomial-time algorithms for two classical scheduling problems. The same idea can be used to more models. For example, to minimize the makespan with release dates can be treated similarly. Also, the problem of minimizing the number of late jobs is worthwhile to study. In particular, we should pay attention to those NPhard problems which have polynomial algorithms when the contiguity constraints are relaxed. Acknowledgements The authors would like to thank the referees for their helpful comments on improving the representation of the paper. References
This lemma provides a rule for arranging the order of children of P -nodes. For a Q -node, we can determine the order of children by simply comparing the maximum lateness of two directions. Therefore we obtain an algorithm for solving the problem 1|Π(F )| L max , which is quite similar to Algorithm A. Algorithm B. Input: n jobs with processing times p j and due dates d j ( j = 1, 2, . . . , n), the family F of contiguity constrains. Output: An optimal schedule π ∗ . Step 1: Construct the P Q -tree T F for the feasible family F . Step 2: Let U be the set of all internal nodes of T F . Carry out the reordering procedure: While U = ∅ do: Choose an X ∈ U with maximal level (the order within each child is given). If X is a P -node then reorder all its children B’s in nondecreasing order of differences p ( B ) − l( B ).
[1] A. Agnetis, P. Mirchandani, D. Pacciarelli, A. Pacifici, Scheduling problems with two competing agents, Oper. Res. 52 (2004) 229–242. [2] K.S. Booth, G.S. Lueker, Testing of the consecutive ones property, interval graphs, and graph planarity using PQ-tree algorithms, J. Comput. System Sci. 13 (1976) 335–379. [3] P. Brucker, Scheduling Algorithms, third ed., Springer-Verlag, Berlin, 2001. [4] M.C. Golumbic, Algorithmic Graph Theory and Perfect graphs, Academic Press, New York, 1980. [5] W.L. Hsu, A simple test for the consecutive ones property, J. Algorithms 43 (2002) 1–16. [6] B. Korte, J. Vygen, Combinatorial Optimization: Theory and Algorithms, fourth ed., Springer-Verlag, Berlin, 2008. [7] M. Pinedo, Scheduling: Theory, Algorithms, and Systems, Prentice Hall, Englewood Cliffs, 1995. [8] C.N. Potts, M.Y. Kovalyov, Scheduling with batching: A review, European J. Oper. Res. 120 (2000) 228–249. [9] A.L. Rosenberg, Interval hypergraphs, Contemp. Math. Amer. Math. Soc. 89 (1989) 27–44.