220 likes | 428 Views
Resource-Constrained Project Scheduling Problem (RCPSP). Resource-Constrained Project Scheduling Problem (RCPSP).
E N D
Resource-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 Aktunits 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
Exemple of RCPSP One resource required. Availability: 6 units in each period
First Solution representation (or encoding) • Activity list (or permutation based) representation [j1, j2,…, jn] is a permutation of the activity indices where
Serial 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 theprecedence and resource constraints.
[1, 2, 5, 3, 4, 6, 8, 7, 9, 10] Different activty lists Same schedule Activity list representation and Serial SGS : Exemple [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] Activity list Activity list
Initial 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.
Selection Operator • The parent-solutions are the individuals in the population, and they are paired randomly.
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]
Mutation 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 β < βmax them move the activity.
Second 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
Serial 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.
Initial 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).
Selection 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
One 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 ρcomponentsof 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)
Mutation 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 .