Title: P1253297875rnscL
1 Resource-Constrained Project Scheduling Problem
(RCPSP)
2Resource-Constrained Project Scheduling Problem
(RCPSP)
- For each activity j (j 1, 2, , n) of the
project, we have to determine a starting period
in order to minimize the total duration
(makespan) of the project while satisfying the
precedence and resource constraints. -
- K resources (k 1, 2, , K) are required to
complete the activities - Akt units of resource k are
available during period t - Activity j characteristics
- dj duration (number of periods)
- Pj set of predecessors (to be
completed before j) - rjk number of units of resource k
required by j - during each period of its
completion - Hypothesis Activity completed without
interruption
3Exemple of RCPSP
- One resource required.
- Availability 6 units
- in each period
4First Solution representation (or encoding)
- Activity list (or permutation based)
representation - j1, j2,,
jn - is a permutation of the activity
indices where -
-
5Serial SGS to decode the representation into a
schedule
- Activity are scheduled sequentially according to
their position in the permutation - Each activity is scheduled to start as early as
possible according to the precedence and resource
constraints.
6Activity list representation and Serial SGS
Exemple
- 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
Activity list
Activity list
7Initial population
- The solutions in the initial population are
generated with the following procedure - The activities are selected
sequetially. - Each time a new activity is selected
to be the next element of - the vector, it is selected randomly
among those having all their - predecessors already selected.
8Selection Operator
- The parent-solutions are the individuals in the
population, and they are paired randomly.
9 One point crossover
1, 2, 3, 4, 5, 6, 7, 8, 9, 10
1, 3, 2, 6, 4, 8, 5, 7, 9, 10
?4
1, 2, 3, 4, 6, 8, 5, 7, 9, 10
1, 3, 2, 6, 4, 5, 7, 8, 9, 10
10Mutation operator
- Consider each activity
- Select randomly a position where the activity can
be moved according to the precedence constraints - Move the activity at this position with a
probability equal to ßmax - i.e. Select randomly ß ? 0, 1
- If ß lt ßmax
them move the activity.
11Second solution representation (encoding)
- Priority based representation
- z z1, z2,, zn
- The smaller is the value of zj , the
higher is the activity j priority to be scheduled
12Serial SGS to decode the representation into a
schedule
- Activity are scheduled sequentially
- Each time a new activity is scheduled, it is
selected as one with the highest priority (i.e.,
with the smallest component in the genotype
vector) among those having all their predecessors
already scheduled. - This activity is scheduled to start as early as
possible according to the precedence and resource
constraints.
13Initial Population
- The individuals of the initial population are
generated randomly by assigning a random integer
number in 0, 1, , n -1 to each component of
the genotype vector. - One of the individual is generated according to
the LFT rule where the component of the activity
having the largest latest finishing time is equal
to (n 1).
14Selection Operator
- Pseudo-elitist selection operator
- Each parent solution is selected randomly in a
subset of the current population obtained by
eliminating the 25 less fitted solutions and the
25 best fitted solutions. - In each pair, the parent-solutions are selected
to be different
15One point crossover
- The one point crossover generates two
offspring-solutions from the two parent-solutions - z1 z11, z21, ,
zm1 - z2 z12, z22, ,
zm2 - as follows
- i) Select randomly a position (index) ?,
0 ? m. - ii) Then the offspring-solutions are
specified as follows - oz1 z11, z21, , z?1,
z?12, , zm2 - oz2 z12, z22, , z?2,
z?11, , zm1 - The first ? components of offspring oz1
(offspring oz2) are the corresponding ones of
parent 1 (parent 2), and the rest of the
components are the corresponding ones of parent 2
(parent 1)
16Mutation Operator
- For each offspring-solution, the operator is
applied with a probability of pmut. - To apply the operator, we first select randomly
an element - .
- Then select randomly a component of the
offspring vector that has a value different from
, and replace it by .