Using Constructive Search in Resource Scheduling - PowerPoint PPT Presentation

1 / 33
About This Presentation
Title:

Using Constructive Search in Resource Scheduling

Description:

Generalized precedence constraints impose a minimum delay between the start times of A and B ... Lag-based disjunctive consistency test ... – PowerPoint PPT presentation

Number of Views:80
Avg rating:3.0/5.0
Slides: 34
Provided by: dre102
Category:

less

Transcript and Presenter's Notes

Title: Using Constructive Search in Resource Scheduling


1
Using Constructive Search in Resource Scheduling
  • By Andrei Missine

2
Overview
  • Brief Introduction to Constructive Search
  • Running examples
  • Basic Terms and Concepts in Resource Scheduling
  • Some common propagators
  • Disjunctive Constraint
  • Edge Finding

3
Overview
  • Scheduling Algorithms
  • Branching by dynamic release dates
  • Branching by assigning generalized precedence
    constraints
  • Branching by assigning or delaying start times of
    activities
  • Conclusion

4
Brief Intro to Constructive Search
  • Complete
  • Builds and systematically traverses the search
    tree
  • Root node of the tree contains assumptions only
    from the problem statement
  • At each node a decision is made
  • If a child backtracks to the parent the parent
    considers the next decision
  • If there are no more decisions to consider at a
    node, backtrack
  • Terminate when backtracking out of the root node

5
Running Examples
  • There will be two running examples, one for the
    unit-capacity resource and one for the
    capacitated resource.
  • A unit capacity resource is a resource with a
    capacity of exactly 1 unit.
  • A capacitated resource is a resource with a
    capacity that is greater than or equal to 1.

6
Running Example - Unit Capacity Resource (1)
  • The resource is the classroom
  • The activities are the 3 classes
  • Class A and class B can start at 1200 and must
    finish by 1400
  • Class C can start at 1200 and must finish by
    1600
  • Each class runs for an hour
  • Find a schedule with the smallest makespan such
    that all classes are scheduled and there are no
    clashes

7
Running Example - Capacitated Resource (2)
  • A computer lab with 100 computers is the resource
  • Classes are the activities
  • Class A and B start at 1200 and must finish by
    1330
  • Class C starts at 1200 and must finish by 1400
  • Each class requires 50 computers for 1 hour
  • Find a schedule with minimal makespan such that
    all classes can use the lab without going over
    the 100 computer limit

8
Resource Scheduling Terms and Concepts
  • Time windows an activity must execute in a
    given time window defined by the earliest start
    time and the latest end time
  • Generalized precedence constraints impose a
    minimum delay between the start times of A and B

9
Resource Scheduling Terms and Concepts
  • EST - Earliest start time of an activity
  • LST - Latest start time of an activity
  • EET - Earliest end time of an activity
  • LET - Latest end time of an activity
  • Core execution interval - the time interval when
    the activity must execute, if any
  • Makespan - the maximum of the latest end times of
    all activities

10
Resource Scheduling Terms and Concepts
  • Distance matrix - an n by n matrix where the
    entry (i, j) is the delay between the start time
    of activity i and the start time of activity j
  • Active / Dominating schedule - a schedule such
    that all activities are scheduled as early as
    possible without violating any of the constraints

11
Resource Scheduling Terms and Concepts
  • Active / Dominating schedule - a schedule such
    that all activities are scheduled as early as
    possible without violating any of the constraints

12
Common Propagators Disjunctive Constraint
  • When two activities combined capacity
    requirement exceeds the resource capacity the two
    activities are in disjunction
  • If start time of one activity is fixed then
    propagator can prune the other activitys start
    time domain.

13
Common Propagators Edge-Finding (Baptiste et al,
2003)
  • Edge-finding can be applied when resource usage
    of a subset of activities exceeds the resource
    capacity
  • Considers activities one by one, trying to prune
    their start times.
  • Pruning occurs when it is evident that given any
    feasible assignment of the remainder of the
    subset, the current domain of activity under
    consideration must be pruned.

14
Common Propagators Edge-Finding
  • This is done by considering core execution
    intervals and overall resource usage in an
    interval
  • Can be costly - O(n2)

15
Disjunctive Propagator versus Edge-Finding
  • Edge-finding is overkill in unit-capacity
    resource problems
  • Disjunctive propagator can be too weak on general
    capacitated resources
  • Edge-finding is expensive - O(n2)
  • Disjunctive propagator is cheap - O(1)
  • Bottom line - use disjunctive whenever you can
    and edge finding only when necessary (e.g. for
    pre-processing)

16
Propagators applied to the Examples
  • For the disjunctive propagator, note that it will
    not deduce any extra info on the capacitated
    example
  • Edge-finding is more powerful than disjunctive
    constraint
  • For the disjunctive case and example 1, assume
    that class A is already scheduled to start at
    1200
  • The propagator can then deduce that B and C must
    start at 1300 or later, and after a second
    iteration that C must start at 1400 or later

17
Propagators applied to the Examples
  • For edge-finding and example 2 it is possible to
    deduce that class C cannot start earlier than
    1300 even without any extra information
  • The reasoning is because both A and B have a core
    execution interval 1230 - 1300)
  • Thus C will not have any computers available if
    it starts any time before 1300
  • Applying edge-finding to example 1 we note that
    edge finding will be able to deduce that C must
    start at 1400 or later, even without knowing any
    extra info

18
The Branch-and-Bound idea
  • Search for a solution
  • Once a solution is found, remember it
  • Keep searching
  • If it becomes evident at a node that nothing
    below it leads to a solution better than the
    current, backtrack
  • In the algorithms that follow the bound is on the
    makespan
  • Lower-bound avoids exploring overly optimistic
    branches
  • Upper-bound avoids exploring overly pessimistic
    branches
  • Good bounds can greatly improve performance

19
Branching by Dynamic Release Dates
  • (Fest et al, 1998) introduce the idea of
    branching by selecting a set of activities to
    delay to fix broken resource utilization
    constraints
  • Branches are formed by considering possible
    subsets to delay
  • Overall structure of the algorithm
  • Assign earliest start times to all activities
    such that precedence constraints are met
  • Keep delaying activities until resource
    constraint is fixed
  • Upon backtracking pick the next delaying
    alternative

20
Branching by Dynamic Release Dates
  • The resulting tree is rather bushy because there
    can be exponentially many different subsets to
    consider
  • Authors present some ideas how to optimize the
    algorithm
  • The overall performance is still rather slow

21
Applying to the Examples
  • Consider the unit-capacity case. At root 3
    possible delay subsets A, B, A, C and B, C
  • Taking A, B results in backtracking since both
    are delayed to the 1300 - 1400 slot and cannot
    be scheduled
  • Taking A, C produces the schedule B (1200), A
    (1300), C (1400)
  • Taking B, C produces the schedule A (1200), B
    (1300), C (1400)

22
Applying to Examples
  • Now consider the capacitated case. At root the
    possible delay sets are A, B and C
  • Delaying A or B leads to immediate
    backtracking (the interval 1300 - 1330 is too
    short for a 1 hour class)
  • Delaying C results in the correct schedule
    where A and B start at 1200 and C starts at 1300

23
Branching by Assigning generalized precedence
relationships
  • (Brucker et al, 1998) suggest branching by making
    a decision at every node to assign either a
    concurrent or a disjunctive relationship between
    two free activities
  • A leaf node in such a tree has all activities
    associated with some precedence relationship
  • (Brucker et al, 1998) show that it is possible to
    tell whether or not a solution exists at such a
    leaf node, and if it does to find the active
    schedule
  • Note that the branching factor is only 2
  • This scheme was shown to be quite good by (Cesta
    et al, 2000)

24
Applying to Examples
  • The unit-capacity example is not interesting
    since all activities must be in disjunction
  • For the capacitated example the root node
    contains no precedence relationships
  • By following the algorithm, the following leafs
    form ( means concurrent, - means disjunctive)
  • A B, A C, B C
  • A B, A C, B C
  • A B, A C, B C
  • A B, A C, B C
  • A B, A C, B C
  • A B, A C, B C
  • A B, A C, B C
  • A B, A C, B C

25
Applying to Examples
  • The last 4 have no solution since A and B cannot
    possibly be in disjunction (because their core
    execution intervals overlap)
  • The first one has no solution also since ABC
    exceed the resource capacity
  • A B, A C, B - C is a solution B starts at
    1200, A starts at 1215 and C starts at 1300
  • Similarly for A B, A - C, B C (A and B are
    reversed)
  • A B, A - C, B - C is also a solution A and B
    both start at 1200 and C starts at 1300

26
Branching by Assigning or Delaying Start Times of
Activities
  • (Dorndorf et al, 2000) present a branching scheme
    that picks a free activity at each node and
    either assigns it the earliest start time, or
    delays the start time by some amount
  • Algorithm makes use of 4 consistency tests
  • Precedence consistency test
  • Resource consistency test
  • Interval-based disjunctive consistency test
  • Lag-based disjunctive consistency test
  • These tests are applied at each node to further
    prune the search tree

27
Branching by Assigning or Delaying Start Times of
Activities
  • Selection of an activity from a subset of free
    activities is done as follows
  • Find all activities such that either its earliest
    start time matches its precedence and resource
    feasible start time or it must precede some other
    free activity
  • Heuristically pick an activity from this subset
  • Delaying of the selected activity
  • Look at all activities which share a resource
    with the current activity such that their end
    times are after the current activitys start time
  • If there is at least one such activity pick the
    minimal end time of this activity as the delay
  • Otherwise delay by one

28
Branching by Assigning or Delaying Start Times of
Activities
  • Note that again, the branching factor is only 2
  • Unlike the two previous schemes, this scheme does
    not use lower bound on the makespan
  • This scheme was shown to be quite good by (Cesta
    et al, 2000)

29
Applying to Examples
  • Consider unit-capacity case. Assume that the
    heuristics selects A
  • It will first try assigning it to the earliest
    start time
  • This will result in pruning B to 1300, 1400)
    and, consequently C to 1400, 1600)
  • The algorithm then backtracks and will eventually
    find the solution B, A, C (after selecting B
    first) and no solutions starting with C

30
Applying to Examples
  • Now consider the general capacitated example
  • The execution is very similar - selecting C as
    the first activity leads to backtracking and
    delaying C since it is impossible to have C start
    at 1200
  • Selecting A or B will lead to the 3 solutions
    mentioned above

31
Conclusion
  • Propagators the tradeoff between speed versus
    pruning power
  • Branch-and-bound and usefulness of good initial
    bounds
  • The three branch-and-bound algorithms
  • Disadvantages of Constructive Search on large
    problem instances

32
References
  • Baptiste Philippe, Claude Le Pape, Nuijten Wim.
    2003. Constraint-Based Scheduling Applying
    Constraint Programming to Scheduling Problems,
    Second Printing. Kluwer Academic Publishers.
  • Brucker Peter, Knust Sigrid, Schoo Arno, Thiele
    Olaf. 1998. A branch and bound algorithm for
    the resource-constrained project scheduling
    problem. European Journal of Operations
    Research, 107 (1998) 272-288.

33
References
  • Cesta Amedeo, Oddi Angelo, Smith F. Stephen.
    2000. Iterative Flattening A Scalable Method
    for Solving Multi-Capacity Scheduling Problems.
    American Association for Artificial Intelligence,
    2000, pp 742-747.
  • Fest Andreas, Möhring Rolf H., Stork Frederik,
    Uetz Marc. 1998. Resource-Constrained Project
    Scheduling with Time Windwos A Branching Scheme
    Based on Dynamic Release Dates. Technical Report
    596, Technische Universit at Berlin.
  • Dorndorf Ulrich, Pesch Erwin, Phan-Huy Toàn.
    2000. A Time-Oriented Branch-and-Bound Algorithm
    for Resource-Constrained Project Scheduling with
    Generalised Precedence Constraints. Management
    Science, Vol. 46, No. 10, October 2000, pp.
    1365-1384.
Write a Comment
User Comments (0)
About PowerShow.com