# 13.3.3 Backward Scheduling and Forward Scheduling

### Intended learning outcomes: Explain forward scheduling and backward scheduling. Describe a simple algorithm for backward scheduling.

The two most important scheduling techniques are the following:

Backward scheduling, or back scheduling, begins with the set (that is, the latest acceptable) completion date for the order (that is, the order due date), and calculates — for each operation — the latest (acceptable) completion date (that is, the operation due date) and the latest (possible) start date (that is, the operation start date), as well as the latest (possible) start date for the order.

Forward scheduling begins with the set (that is, the earliest acceptable) start date for the order and calculates the earliest (acceptable) start date and the earliest (possible) completion date for each operation, as well as the earliest (possible) completion date for the order.

These two techniques assume the following definitions:

The latest date is a date that we cannot exceed in execution and control of operations. Similarly, we cannot allow a date to fall before the earliest date.
A set date is set “externally” and cannot be changed by means of the scheduling algorithm.

Figure 13.3.3.1 illustrates the two principles.

Fig. 13.3.3.1       Forward scheduling and backward scheduling.

Figure 13.3.3.2 shows the simplest algorithm for backward scheduling (the algorithm for forward scheduling has a similar structure):

1. The order of the operations is assumed to be a sequence of operations.
2. The production order consists of one single partial order.
3. All n operations are included in the lead time scheduling; that is, the order has not yet begun.
4. The inter­operation times are weighted with a factor of 1; that is, they are assumed to be “normal.”

The formal description of this scheduling task is as follows:

• Take a production order consisting of one partial order with n operations i, 1 ≤ i ≤ n, and m components j, 1 ≤ j ≤ m, as given. The operation numbers stand in a semiorder; if, for example, i1 < i2, then operation i1 is performed before operation i2.
• Beginning with the set (that is, the latest acceptable) order completion date, we calculate the following “latest” dates:
• Start and completion dates for the individual partial order
• Start and completion dates for the individual operations
• Reservation dates (= start date) for the components
• Start date for the order, with an exception message if it is earlier than a set (earliest) start date

As data specifications, the following notations are used:

• x                            = order, partial order, or one position in the partial order (component or operation)
• LCD[x]                 = latest completion date for x
• ECD[x]                 = earliest completion date for x
• LSD[x]                 = latest start date for x
• ESD[x]                 = earliest start date for x
• OT[i]                    = operation time for operation i
• INTBEF[i]           = inter­operation time before operation i
• INTAFT[i]           = inter­operation time after the end of operation i
• INTTEC[i]           = technical inter­operation time after operation i
• ADMPORDBEG = administrative time for the partial order at the beginning
• ADMPORDEND = administration time for the partial order at the end

Remarks:

• For comparing the date attributes with one another, we will use the standardized “ISO” format, that is, YYYYMMDD.
• A date is calculated either by the scheduling algorithm or given as a set date. We distinguish the latter from the former by the addition of (set), for example, LCD(set)[x].

Fig. 13.3.3.2       Simple algorithm for backward scheduling.