^{1}

^{*}

^{1}

This research develops a solution method for project scheduling represented by a max-plus-linear (MPL) form. Max-plus-linear representation is an approach to model and analyze a class of discrete-event systems, in which the behavior of a target system is represented by linear equations in max-plus algebra. Several types of MPL equations can be reduced to a constraint satisfaction problem (CSP) for mixed integer programming. The resulting formulation is flexible and easy-to-use for project scheduling; for example, we can obtain the earliest output times, latest task-starting times, and latest input times using an MPL form. We also develop a key method for identifying critical tasks under the framework of CSP. The developed methods are validated through a numerical example.

This research develops a solution method for a project scheduling using max- plus algebra (MPA). Goto [

Therefore, we newly develop a solution method for calculating the earliest output times to all output transitions, latest task-starting times, and latest input times, all of which are represented by an MPL from. In addition, we develop a method to identify critical tasks under the framework of CSP, which shall be a key method in this article.

We define a set ℝ max = ℝ ∪ { − ∞ } , where ℝ is the whole real line. Then, for x , y ∈ ℝ max , we define the following two basic operators:

x ⊕ y = max ( x , y ) , (1)

x ⊗ y = x + y . (2)

Additionally, we define a set ℝ ¯ max = ℝ ∪ { − ∞ } ∪ { + ∞ } to add the following two complementary operators:

x ∧ y = min ( x , y ) , (3)

x ⊙ y = − x + y . (4)

The priority of operators ⊗ and ⊙ is higher than that of ⊕ and ∧ . We shall denote the zero and unit elements for operators ⊕ and ⊗ by ε ( = − ∞ ) and e ( = 0 ) , respectively, and the unit element for operator ∧ by ε ¯ ( = + ∞ ) . If X , Y ∈ ℝ max n × m , and Z ∈ ℝ max m × q , then

[ X ⊕ Y ] i j = [ X ] i j ⊕ [ Y ] i j , (5)

[ X ⊗ Z ] i j = max k = 1 n ( [ X ] i k ⊗ [ Z ] k j ) . (6)

Moreover,

[ X ∧ Y ] i j = [ X ] i j ∧ [ Y ] i j , (7)

[ X ⊙ Z ] i j = min k = 1 n ( − [ X ] i k ⊙ [ Z ] k j ) , (8)

X T ⊙ Z = X \ Z . (9)

ε is a matrix whose elements are all ε , and e is a matrix whose diagonal elements are e and off-diagonal elements are ε . If X ∈ ℝ max n × n , then X ∗ repre- sents the Kleene staroperation defined below:

X ∗ = e ⊕ X ⊕ X ⊗ 2 ⊕ ⋯ ⊕ X ⊗ ( s − 1 ) (10)

where s ( 1 ≤ s ≤ n ) is an instance that satisfies X ⊗ ( s − 1 ) ≠ ε and X ⊗ s = ε .

The addition and multiplication operators are reduced to CSPs for MIP. For x , y , z ∈ ℝ max ,

z = x ⊕ y , (11)

z = x ⊗ y (12)

are focused on. First, Equation (11) is reduced to a CSP. The resulting formulation is:

z ≥ x , z ≥ y , z ≤ x + M ( 1 − s 1 ) , z ≤ y + M ( 1 − s 2 ) , ( s 1 , s 2 ) ∈ { 0 , 1 } , s 1 + s 2 ≥ 1 , (13)

where s 1 , s 2 are binary variables, whilst M is a large positive constant called big-M. The big-M, s 1 , and s 2 play a role of switching the equal signs. By generalizing this result for multiple numbers, the addition z = ⊕ i = 1 n x i can be reduced to a CSP as follows:

z ≥ x i ∀ i ∈ V n , z ≤ x i + M ( 1 − s i ) ∀ i ∈ V n , s i ∈ { 0 , 1 } ∀ i ∈ V n , ∑ k = 1 n s k ≥ 1 , (14)

where V n = { 1 , 2 , ⋯ , n } . If X , Y ∈ ℝ max n × m , and Z ∈ ℝ max m × r , then the addition P = X ⊕ Y can be formulated as follows:

p i j ≥ x i j ∀ i ∈ V n , ∀ j ∈ V m , p i j ≥ y i j ∀ i ∈ V n , ∀ j ∈ V m , p i j ≤ x i j + M ( 1 − s i j 1 ) ∀ i ∈ V n , ∀ j ∈ V m , p i j ≤ y i j + M ( 1 − s i j 2 ) ∀ i ∈ V n , ∀ j ∈ V m , ( s i j 1 , s i j 2 ) ∈ { 0 , 1 } ∀ i ∈ V n , ∀ j ∈ V m , s i j 1 + s i j 2 ≥ 1 ∀ i ∈ V n , ∀ j ∈ V m . (15)

With respect to Equation (12), the multiplication of two numbers in MPA can be formulated as follows:

z = x + y . (16)

Then, the multiplication of two matrices Q = Y ⊗ Z can be reduced to:

q i j ≥ y i k + z k j ∀ i ∈ V n , ∀ j ∈ V r , ∀ k ∈ V m , q i j ≤ y i k + z k j + M ( 1 − s i j k ) ∀ i ∈ V n , ∀ j ∈ V r , ∀ k ∈ V m , s i j k ∈ { 0 , 1 } ∀ i ∈ V n , ∀ j ∈ V r , ∀ k ∈ V m , ∑ l = 1 m s i j l ≥ 1 ∀ i ∈ V n , ∀ j ∈ V r . (17)

Next, we focus on the two complementary operators:

z = x ∧ y , (18)

z = x ⊙ y . (19)

In a similar manner to the reduction of x ⊕ y , Equation (18) can be reduced to:

z ≤ x , z ≤ y , z ≥ x − M ( 1 − s 1 ) , z ≥ y − M ( 1 − s 2 ) , ( s 1 , s 2 ) ∈ { 0 , 1 } , s 1 + s 2 ≥ 1. (20)

By generalizing this result for multiple numbers, the minimization z = ∧ i = 1 n x i can be reduced as follows:

z ≤ x i ∀ i ∈ V n , z ≥ x i − M ( 1 − s i ) ∀ i ∈ V n , s i ∈ { 0 , 1 } ∀ i ∈ V n , ∑ k = 1 n s k ≥ 1 , (21)

If X , Y ∈ ℝ max n × m , and Z ∈ ℝ max n × r , then the minimization of two matrices P = X ∧ Y can be formulated as follows:

p i j ≤ x i j ∀ i ∈ V n , ∀ j ∈ V m , p i j ≤ y i j ∀ i ∈ V n , ∀ j ∈ V m , p i j ≥ x i j − M ( 1 − s i j 1 ) ∀ i ∈ V n , ∀ j ∈ V m , p i j ≥ y i j − M ( 1 − s i j 2 ) ∀ i ∈ V n , ∀ j ∈ V m , ( s i j 1 , s i j 2 ) ∈ { 0 , 1 } ∀ i ∈ V n , ∀ j ∈ V m , s i j 1 + s i j 2 ≥ 1 ∀ i ∈ V n , ∀ j ∈ V m . (22)

Next, we focus on Equation (19), which can be reduced in a straightforward manner from the definition of ⊙ Z to:

z = − x + y . (23)

Then, the pseudo division operation Q = X T ⊙ Z can be formulated as follows:

q i j ≤ − x i k + w k j ∀ i ∈ V m , ∀ j ∈ V r , ∀ k ∈ V n , q i j ≥ − x i k + w k j + M ( 1 − s i j k ) ∀ i ∈ V m , ∀ j ∈ V r , ∀ k ∈ V n , s i j k ∈ { 0 , 1 } ∀ i ∈ V m , ∀ j ∈ V r , ∀ k ∈ V n , ∑ l = 1 n s i j l ≥ 1 ∀ i ∈ V m , ∀ j ∈ V r . (24)

After defining the following relevant matrices and vectors, we introduce the MPL equations taken up in references [

・ n : number of tasks;

・ p : number of external outputs;

・ q : number of external inputs;

・ B ∈ ℝ max n × q : input matrix, [ B ] i j = { e : if task i has an input transition j , ε : otherwise};

・ C ∈ ℝ max p × n : output matrix, [ C ] i j = { e : if task j has an output transition i , ε : otherwise};

・ d ∈ ℝ max n : system parameter, [ d ] i : duration time in task i ;

・ u ∈ ℝ max q : input vector, [ u ] i : input time to external input i ;

・ y ∈ ℝ max p : output vector, [ y ] i : output time from external output i ;

・ x ∈ ℝ max n : state vector, [ x ] i : start or completion time of task i .

The earliest task-completion times of all tasks, x E , are calculated using

x E = A ⊗ x E ⊕ b , (25)

Matrix A ∈ ℝ max n × m is the weighted transition matrix, and vector b ∈ ℝ max n is the weighted input vector which satisfies the following relation b = P ⊗ B ⊗ u . The earliest output times to all output transitions, y E , are then calculated by

y E = C ⊗ x E . (26)

Then, the latest task-starting times, x L , are calculated using

x L = A T ⊙ x L ∧ c (27)

Vector c ∈ ℝ max n is the weighted output vector which satisfies: c = P \ ( C \ y E ) . The latest input times, u L , are calculated using x L :

u L = B T ⊙ x L . (28)

As a consequence, the total floats of all tasks can be calculated using Equations (25) and (27):

m = ( x L + d ) − x E . (29)

All tasks can be subsequently classified into two types according to [ m ] i = 0 or [ m ] i > 0 , where the former one is classified as a critical task whereas the latter one as a non-critical task.

We consider a solution method for Equation (25). A simple approach is to relax the equation into the following inequality:

x E ≥ A ⊗ x E ⊕ b . (30)

The solution that has the smallest elements satisfying Equation (30), also called the least solution, is given by x E = A ∗ ⊗ b . We can reduce Equation (30) to the following CSP for MIP in the following manner:

x E i ≥ a i k + x E k ∀ ( i , k ) ∈ ε A , x E i ≤ a i k + x E k + M ( 1 − s i k ) ∀ ( i , k ) ∈ ε A , x E i ≥ b i ∀ ( i , k ) ∉ ε A , x E i ≤ b i + M ( 1 − s i k ) ∀ ( i , k ) ∉ ε A , s i k ∈ { 0 , 1 } ∀ i , k ∈ V n , ∑ l = 1 n s i l ≥ 1 ∀ i ∈ V n . (31)

If a i k = ε , then a i k + x E k j = ε follows. It is notable that we can compute A ∗ ⊗ b directly without calculating A ∗ . After relaxing the equation, we reduce Equation (26) to a CSP for MIP with the help of Equation (17):

y E i ≥ C i k + x E k ∀ i ∈ V p , ∀ k ∈ V n , y E i ≤ C i k + x E k + M ( 1 − s i k ) ∀ i ∈ V p , ∀ k ∈ V n , s i k ∈ { 0 , 1 } ∀ i ∈ V p , ∀ k ∈ V n , ∑ l = 1 n s i l ≥ 1 ∀ i ∈ V p . (32)

Next, we consider a solution method for Equation (27). A simple approach is to relax the equation into the following inequality:

x L ≤ A T ⊙ x L ∧ c . (33)

The solution that has the maximum elements satisfying Equation (33), also called the greatest solution, is given by x L = A ∗ \ c . We can reduce Equation (33) to a CSP for MIP in the following manner:

x L i ≤ − a i k + x L k ∀ ( i , k ) ∈ ε A , x L i ≥ − a i k + x L k − M ( 1 − s i k ) ∀ ( i , k ) ∈ ε A , x L i ≤ c i ∀ ( i , k ) ∉ ε A , x L i ≥ c i − M ( 1 − s i k ) ∀ ( i , k ) ∉ ε A , s i k ∈ { 0 , 1 } ∀ i , k ∈ V n , ∑ l = 1 n s i l ≥ 1 ∀ i ∈ V n . (34)

If a i k = ε , then − a k i + x L k j = ε follows. Here, it is again remarkable that Equation (34) can compute A ∗ \ c directly without calculating A ∗ . After relaxing the equation, we reduce Equation (28) to a CSP for MIP with the help of Equation (24):

u L i ≤ − B i k + x L k ∀ i ∈ V q , ∀ k ∈ V n , u L i ≥ − B i k + x L k + M ( 1 − s i k ) ∀ i ∈ V q , ∀ k ∈ V n , s i k ∈ { 0 , 1 } ∀ i ∈ V q , ∀ k ∈ V n , ∑ l = 1 n s i l ≥ 1 ∀ i ∈ V q . (35)

Lastly, we focus on reducing Equation (29), the resulting formulation of which is as follows:

m i = ( x L i + d i ) − x E i ∀ i ∈ V n . (36)

Then, we reduce Equation (36) to a CSP for MIP as follows.

m i − M α i ≤ 0 ∀ i ∈ V n , m i − ( 1 / M ) α i ≥ 0 ∀ i ∈ V n , α i ∈ { 0 ， 1 } ∀ i ∈ V n . (37)

If the total float m i is a real number, then Equation (37) can be computed by introducing a small positive constant ( 1 / M ) . If α i = 0 , then task i is critical since m i = 0 follows. Conversely, if α i = 1 , then task i is non-critical because ( 1 / M ) ≤ m i ≤ M holds. This is an important and key technique to classify all tasks into either critical or non-critical.

A numerical example is presented to validate the developed framework. We use a personal computer with the following execution environment:

・ machine: Dell Optiplex 9020;

・ CPU: Intel® Core™ i7-4790 3.60 GHz;

・ OS: Microsoft Windows 7 Professional;

・ memory: 4.0 GB.

To solve CSPs, we use SCIP version 3.2.1.

d = [ 1 2 3 4 5 ] , A = [ ε ε ε ε ε ε ε ε ε ε 3 ε ε ε ε ε 4 ε ε ε ε ε 5 5 ε ] , b = [ 4 2 ε ε ε ] , c = [ ε ¯ ε ¯ ε ¯ ε ¯ 7 ] .

The constant vectors and a matrix, d , A , b , and c , reflect the processing times, precedence constraints, locations of the external inputs, and locations of the external outputs, the definitions of which appear in Section 4.1. Since the solver cannot treat the zero element ε , we need to set the two constants big-M and zero element ε carefully. In accordance with the procedure in reference [

the latest input times: u L = [ 3 1 ] T , the total floats: m = [ 0 1 0 1 0 ] T , and the criticalities of all tasks: α = [ 0 1 0 1 0 ] T . We hence were able to obtain solutions by reducing the MPL equations to CSPs for MIP.

This research has developed a solution method for reducing a project scheduling problem represented by a max-plus-linear form. The resulting formulation was constraint satisfaction problems for mixed-integer programming. We attained calculating the earliest output times, latest task-starting times, latest input times, and critical tasks. Moreover, we also developed a method to classify all tasks into either critical or non-critical by introducing a small positive constant ( 1 / M ) . Our future works include a proper setting of the small positive constant as well as considering resource contentions.

Yokoyama, H. and Goto, H. (2017) Reduction and Analysis of a Max-Plus Linear System to a Constraint Satisfaction Problem for Mixed Integer Programming. American Journal of Operations Research, 7, 113-120. https://doi.org/10.4236/ajor.2017.72008