<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Individual Scheduling for the Multi-Mode Resource- Constrained Multi-Project Scheduling Problem</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Vladislav Korotkov</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Mikhail Matveev</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Voronezh State University</institution>
          ,
          <addr-line>Voronezh</addr-line>
          ,
          <country country="RU">Russia</country>
        </aff>
      </contrib-group>
      <fpage>2</fpage>
      <lpage>9</lpage>
      <abstract>
        <p>Solving a well-known resource constrained project scheduling problem (RCPSP) is crucial for project management. It consists of assigning a start time to each activity such that the precedence relations and the resource constraints are satisfied [1, 2]. The resulting schedule usually quantitatively distributes resources along the project timeline. However, for practical purposes, individual schedules have to be obtained for employees and other named resources to organize the workflow. Such resource allocation was previously presented assuming the difference in skills and other individual features [3]. This approach dramatically extends the search space. In practice, accounting resource heterogeneity is usually redundant or difficult to implement. This paper proposes the two-stage approach to individual schedule construction assuming that all units of the same resource are interchangeable. The first stage is a general scheduling based on genetic algorithm. The modified multi-project and multi-mode variation of the problem (also known as MRCMPSP) is considered as it is much closer to the real-world problems [4]. The second stage includes individual scheduling by allocating resource units to activities subject to the required condition (in this case, the uniformity of resource allocation). A simulated annealing algorithm is proposed for this purpose.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introduction</title>
      <p>time unit. Workers and machines are examples of this type of resource. Each resource
l  Lp of the project p has a capacity of cpl . There are also global renewable resources
G limited by capacities cg , g  G . They can be used in any project.</p>
      <p>Each activity j  J p , p  P is performed in exactly one mode mpj from the set of
possible execution modes M pj . The mode determines activity duration and specific
resource requirements. Let d pjmpj be the processing time of activity j  J p in mode
mpj  M pj , and rpjmpjl define its consumption of l .</p>
      <p>The objective is to find such activity start times spj and mode assignments mpj that
satisfy precedence and resource constraints while minimizing the total project delay
TPD . The total project delay is calculated as follows:
where Finishp is the last activity completion time for the project p ; CPDp is a critical
path duration assuming resource constraint relaxation and the assignment of execution
modes with the shortest durations.</p>
      <p>Thus, the objective can be formulated as the combinatorial optimization problem:
TPD   (MK p  CPDp )</p>
      <p>pP
MSp  Finishp  Startp</p>
      <p>TPD  min
subject to:
 rpjmpjl  cpl
jAp (t)
 rpjmpjl  cpl
jJp
  rpjmpj g  cg
pP jAp (t)
p  P,l  Lp ,t 0,T </p>
      <p>p  P,l  Lp
g  G ,t 0,T 
spj  d pjmpj  spj</p>
      <p>
        p  P, j  J p , j  Pre( j)
spj  Startp
mpj  M pj
p  P, j  J p
p  P, j  J p
Ap (t)   j  J p | spj  t  spj  d pjmpj 
(
        <xref ref-type="bibr" rid="ref1">1</xref>
        )
(
        <xref ref-type="bibr" rid="ref2">2</xref>
        )
(
        <xref ref-type="bibr" rid="ref3">3</xref>
        )
(
        <xref ref-type="bibr" rid="ref4">4</xref>
        )
(
        <xref ref-type="bibr" rid="ref5">5</xref>
        )
(
        <xref ref-type="bibr" rid="ref6">6</xref>
        )
(
        <xref ref-type="bibr" rid="ref7">7</xref>
        )
(
        <xref ref-type="bibr" rid="ref8">8</xref>
        )
(9)
of the project p in progress in the period t, t 1 ; (
        <xref ref-type="bibr" rid="ref7">7</xref>
        ) defines the precedence
constraints while resource constraints are defined in (
        <xref ref-type="bibr" rid="ref4">4</xref>
        ), (
        <xref ref-type="bibr" rid="ref5">5</xref>
        ) and (
        <xref ref-type="bibr" rid="ref6">6</xref>
        ).
      </p>
      <p>The second stage is aimed to find correspondences between activities and resource
units that are in some sense optimal. The schedule obtained in the first stage determines
durations and resource requirements for each activity. Let Hl be the set of all available
units of resource l and Jl </p>
      <p>J p be the set of all activities that require resource l .</p>
      <p>pP
Each activity j  Jl has duration d j and requires rjl of resource l . For each resource
unit h we define Sh as the desired set of activities from its individual schedule. In this
case, the uniformity of the resource allocation is considered as the optimality criterion.
We assume that no resource unit can be utilized in multiple parallel activities. Thus, we
can formulate the following combinatorial optimization problems for each renewable
resource type l  G  Lp :
subject to:
pP
 (U (h)  AvgU (l))2  min
hHl</p>
      <p>U (h)   d j</p>
      <p>jSh
AvgU (l)  hHl U (h)</p>
      <p>Hl
Sh | j  Sh  rjl</p>
      <p> j  Jl
j Over( j)</p>
      <p>h  Hl ; j, j  Sh ; j  j
Sh  Jl
h  Hl
(11)
(12)
(13)
(14)
(15)
(16)</p>
      <p>Here Over( j) is the set of activities which overlap with j . U (h) (12) is the total
utilization of h , AvgU (l) (13) is the average resource utilization for l . Constraint (14)
verifies that resource needs are met. Constraint (15) prevents allocation to overlapping
activities.
3</p>
    </sec>
    <sec id="sec-2">
      <title>General Scheduling</title>
      <p>RCPSP (and hence MRCMPSP) is computationally intensive combinatorial
optimization task. It was proven to be NP-hard [5]. Optimal solution may be obtained only for
rather small instances while practical problems can reach hundreds of activities.
Therefore, the majority of studies consider applying different heuristics to find suboptimal
solutions without traversing the entire search space [2].</p>
      <p>In this study a genetic algorithm approach was used for general schedule
construction. Some features of the previous implementations were incorporated [6, 7, 8].
Implementation details are provided below.
3.1</p>
      <sec id="sec-2-1">
        <title>Solution Representation</title>
        <p>Each solution is encoded by a chromosome which corresponds to strictly one feasible
schedule. Each chromosome consists of two parts: the first one contains an activity list
in order of priority and the second one includes chosen activity modes. The
corresponding schedule can be obtained by the following sequential procedure. Starting with an
empty schedule we construct a new partial schedule by placing the next activity from
an activity list to the earliest possible time so that precedence and resource constraints
are satisfied. This is usually called a serial schedule generation scheme (SGS). Note
that any such solution corresponds to only one schedule but the same schedules can be
obtained from different solutions.
3.2</p>
      </sec>
      <sec id="sec-2-2">
        <title>Fitness Function</title>
        <p>The modification of fitness function proposed in [8] was used for solution evaluation.
It penalizes solutions by adding the number of requested non-renewable resource units
that exceed the capacity. Such approach is considered more efficient in terms of faster
convergence to suboptimal solutions.</p>
        <p>1 MaxTPD  TPD(I )  1
f (I )   MaxTPD
 1 TPD(I )
 MaxTPD</p>
        <sec id="sec-2-2-1">
          <title>MaxTMS  TMS(I )</title>
        </sec>
        <sec id="sec-2-2-2">
          <title>MaxTPD</title>
          <p> ERR,</p>
          <p>ERR  0
otherwise
TMS   MS p</p>
          <p>pP
MaxTMS    d pjmpj</p>
          <p>pP jJp
 
MaxTPD     d pjmpj  CPDp 
pP  jJ p 


ERR    max 0,
pP lLp 
 jJ p rpjmpjl  cpl </p>
          <p>
cpl 
(17)
(18)
(19)
(20)
(21)
Here ERR (21) is the non-renewable resource error, TMS (18) is the total makespan
of the projects, equations (19) and (20) define estimations of maximum total makespan
and maximum total project delay respectively.
3.3</p>
        </sec>
      </sec>
      <sec id="sec-2-3">
        <title>Initial Population</title>
        <p>The initial population is randomly generated to ensure diversity of solutions. The
procedure of random generation starts with an empty activity list. At each step of the
procedure a random activity whose predecessors are already in the list is appended. Its
mode is also taken randomly and added to the second part of the chromosome.</p>
        <p>The resulting instances obviously satisfy the precedence constraints. And for the
algorithm to work correctly crossover and mutation operations must be implemented in
such a way that the resulting solutions are also feasible.
3.4</p>
      </sec>
      <sec id="sec-2-4">
        <title>Crossover Operation</title>
        <p>Crossover operation combines a pair of parent solutions to produce two children that
inherit their parents’ features. The operation is applied independently to activity lists
and mode lists of parent chromosomes.</p>
        <p>A point q on both active lists is picked randomly splitting them into two parts. All
activities from the first part of the first (second) activity list are transferred to the first
(second) offspring list and the remaining activities are appended in the order in which
they are located in the second (first) parent. Such method is called a single-point
crossover.</p>
        <p>Activity mode lists of the parents are crossed over according to uniform method. For
each i-th activity a random value pi 0,1 is picked independently. If pi  0.5 then
the first (second) child inherits the mode of this activity from the first (second) parent.
Otherwise, the first (second) child inherits the mode from the second (first) parent.
3.5</p>
      </sec>
      <sec id="sec-2-5">
        <title>Mutation Operation</title>
        <p>Mutation is defined as a random change in the solution obtained by crossing over.
Mutation operation is also applied independently to each part of a chromosome.</p>
        <p>For each i-th activity of activity list a random value pi 0,1 is picked
independently. If pi  PPM , where PPM is initially defined mutation probability, then i-th
and i+1 activities are swapped unless this violates the precedence constraints.</p>
        <p>Each activity mode is replaced by a randomly picked one with initially defined
probability PMM .</p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>Individual Scheduling</title>
      <p>Since we assume interchangeability of individual units of the same resource, it's
reasonable to represent solution as a multiset to reduce the search space. Thus, any solution
is defined as:</p>
      <p>
        Zl  Sl(
        <xref ref-type="bibr" rid="ref1">1</xref>
        )  Nl(
        <xref ref-type="bibr" rid="ref1">1</xref>
        ) ,..., Sl(k)  Nl(k)
k  Hl
(22)
where Sl(i)  Jl is a list of activities, and Nl(i) is the number of such schedules.
      </p>
      <p>The neighbor of any solution relative to the particular activity j can be obtained by
removing this activity from some schedule and adding to another one. Note that target
schedule should not contain any activities overlapping with j .</p>
      <p>The initial solution can be randomly generated. The procedure starts with a set of
empty schedules. Then each activity j from Jl is added rjl times to random
schedules. Again, the target schedules should contain only activities which don't overlap with
j .</p>
      <p>Now it becomes possible to apply any local search algorithm to solve the problem.
In this study the simulated annealing method was used. The main steps of the algorithm
are:</p>
      <p>Obtain random initial solution and set x (the current solution) and xbest (the best
solution) to it. Store corresponding objective function value in fbest ;
1. Initialize the temperature T with T0 ;
2. Get random neighbor x of the current solution;
3. Calculate the objective function f (x) and the difference  : f (x)  f (x) ;
4. if   0 then x : x and
5.</p>
      <p>
        if f (x)  fbest then fbest : f (x) and xbest : x ;
6. Otherwise, if e/T  p ( p [0,1] is a random value) then x : x ;
7. Lower the temperature: T :  T (  (
        <xref ref-type="bibr" rid="ref1">0,1</xref>
        ) );
8. If termination conditions aren't met, then go to step 3.
5
      </p>
    </sec>
    <sec id="sec-4">
      <title>Computational Experiments</title>
      <p>The algorithm was tested on a subset of MISTA 2013 Challenge problem instances [4].
The algorithm was implemented in Python and all tests were performed on a computer
with Intel Core i5 8250U.</p>
      <p>Table 1 shows results for 9 problems of MISTA 2013 Challenge instance set. The
problems with different number of projects, activities and renewable resources were
considered. Parameters of genetic algorithm were: population size – 150, crossover
probability – 0.8, mutation probability – 0.04. Simulated annealing parameters were:
iteration count – 1000, initial temperature – 1000, temperature reduction factor – 0.9.</p>
      <p>A series of tests was performed on the problem A-1 with different number of
generations to estimate the rate of convergence of the proposed genetic algorithm. The values
of other parameters were the same. 20 runs were made for each population size. The
results are shown in table 2.</p>
      <p>A series of tests was performed on the problem A-9 with different number of
iterations to estimate the rate of convergence of the proposed simulated annealing method.
The values of other parameters were the same. 20 runs were made for each number of
iterations. The results are shown in table 3.
In this study, an extension to the traditional MRCMPSP was introduced to make
individual schedules for renewable resources. The resulting two-stage optimization model
was implemented using genetic algorithm and simulated annealing method. The
algorithm was tested on the set of problems from MISTA 2013 Challenge.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Kolisch</surname>
          </string-name>
          , R.:
          <article-title>Project Scheduling under Resource Constraints: Efficient Heuristics for Several Problem Classes</article-title>
          . Physica-Verlag, Heidelberg (
          <year>1995</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Abdolshah</surname>
            ,
            <given-names>M.:</given-names>
          </string-name>
          <article-title>A Review of Resource-Constrained Project Scheduling Problems (RCPSP) Approaches</article-title>
          and Solutions.
          <source>International Transaction Journal of Engineering</source>
          , Management, &amp;
          <source>Applied Sciences &amp; Technologies</source>
          <volume>5</volume>
          (
          <issue>4</issue>
          ),
          <fpage>253</fpage>
          -
          <lpage>286</lpage>
          (
          <year>2014</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Yannibelli</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Amandi</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>A knowledge-based evolutionary assistant to software development project scheduling</article-title>
          .
          <source>Expert Systems with Applications</source>
          <volume>38</volume>
          (
          <issue>7</issue>
          ),
          <fpage>8403</fpage>
          -
          <lpage>8413</lpage>
          (
          <year>2011</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Wauters</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kinable</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Smet</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          , et al.:
          <article-title>The Multi-Mode Resource-Constrained Multi-Project Scheduling Problem</article-title>
          .
          <source>Journal of Scheduling</source>
          <volume>19</volume>
          (
          <issue>3</issue>
          ),
          <fpage>271</fpage>
          -
          <lpage>283</lpage>
          (
          <year>2016</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Blazewicz</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lenstra</surname>
            ,
            <given-names>J.K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rinnooy</surname>
            <given-names>Kan</given-names>
          </string-name>
          ,
          <string-name>
            <surname>A.H.G.</surname>
          </string-name>
          :
          <article-title>Scheduling subject to resource constraints: classification and complexity</article-title>
          .
          <source>Discrete Applied Mathematics</source>
          <volume>5</volume>
          (
          <issue>1</issue>
          ),
          <fpage>11</fpage>
          -
          <lpage>24</lpage>
          (
          <year>1983</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Hartmann</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          :
          <article-title>Project Scheduling with Multiple Modes: A Genetic Algorithm</article-title>
          .
          <source>Annals of Operations Research</source>
          <volume>102</volume>
          (
          <issue>1-4</issue>
          ),
          <fpage>111</fpage>
          -
          <lpage>135</lpage>
          (
          <year>2001</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Kumanan</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          , Jose,
          <string-name>
            <given-names>G.J.</given-names>
            ,
            <surname>Raja</surname>
          </string-name>
          ,
          <string-name>
            <surname>K.</surname>
          </string-name>
          <article-title>: Multi-project scheduling using a heuristic and a genetic algorithm</article-title>
          .
          <source>The International Journal of Advanced Manufacturing Technology</source>
          <volume>31</volume>
          (
          <issue>3-4</issue>
          ),
          <fpage>360</fpage>
          -
          <lpage>366</lpage>
          (
          <year>2006</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Sebt</surname>
            ,
            <given-names>M.H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Afshar</surname>
            ,
            <given-names>M.R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Alipouri</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          :
          <article-title>An Efficient Genetic Algorithm for Solving the Multi-Mode Resource-Constrained Project Scheduling Problem Based on Random Key Representation</article-title>
          .
          <source>International Journal of Supply and Operations Management</source>
          <volume>2</volume>
          (
          <issue>3</issue>
          ),
          <fpage>905</fpage>
          -
          <lpage>924</lpage>
          (
          <year>2015</year>
          )
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>