• Nem Talált Eredményt

An integer programming approach

Chapter 2 Development of Methods for Logistical System Performance Analysis

2.2 Production Logistics - Scheduling

2.2.3 An integer programming approach

The determination of an optimal job shop schedule can be formulated as an integer programming problem if it is desired to use a general purpose solution approach.

As in other models the integer programming approach can accommodate a variety of performance measures. An integer program is a linear program with added requirement that all variables be integers. Therefore, a first approximation to the solution of any integer program may be obtained by ignoring the integer requirement and solving the resulting linear program (Bronson, Naadimuthu, 1997). If the optimal solution to the linear program happens to be integral, then this solution is also the optimal solution to the original integer program. Otherwise, and this is the usual situation, the components of the first approximation have to be rounded off to the nearest feasible integers and obtain a second approximation.

This describes one specialised type of integer programming structure that is potentially useful in solving job shop problems. The formulation relies on indicator variables to specify the operation sequence.

Machine k New jobs

Out-process jobs In-process

jobs

Completed jobs

Let xikdenote the completion time of job i on machine k. (i.e. the completion time of the particular operation of job i that requires machine k)

The xiks are decision variables and their values will essentially determine a schedule. To write inequalities representing precedence constraints, suppose that operation j of job i requires machine k and operation (j-1) of job i requires machine h.

Then, in order for a set of xik to be feasible, it is necessary to have

ih ijk

ik t x

x − ≥

n i

m j

≤ 1

,

1 (2.1)

where tijkis the processing time of operation j of job i on machine k. For the first operation (j=1) the constraint is simply

1 ≥0

ik

ik t

x 1≤in (2.2)

In addition, it is necessary to employ a large number of constraints to assure that no two operations are processed simultaneously by the same machine. Suppose, for example, that job i precedes job p on machine k, which means that operation (i, j, k) is completed before operation (p, q, k) begins. Then it is necessary to have

ik pqk

pk t x

x − ≥

On the other hand, if job p precedes job i on machine k, then it is necessary to have

pk ijk

ik t x

x − ≥

These are usually called disjunctive constraints because one or the other must hold. To accommodate these constraints in the formulation, an indicator variable yipkis defined as follows:

yipk =1 if job i precedes job p on machine k

=0 otherwise.

Then the constraints become

pqk ipk ik

pk x H y t

x − + (1− )≥ (2.3)

ijk ipk pk

ik x Hy t

x − + ≥ (2.4)

where H represents a very large positive number.

The focus is now on constructing schedules, which are ‘optimal’ in terms of two possible schedule measures. First, the schedule make-span Cmax is the earliest time at which all jobs are completed, defined by:

} {

xi

Cmax =max 1≤in

while the schedule flow-time F is the sum of the job completion times given by:

=

= n

i

xi

F

1

Minimisation of the make-span optimises the completion time of the last job, while minimisation of the flow-time is equivalent to optimising the completion of the average job. The focus in this section is on the mean flow time scenario where the entire formulation is:

Minimise

= n i

iki

x

1

Subject to xiktijkxih for (i, j−1,h)≤(i,j,k)

pqk ipk ik

pk x H y t

x − + (1− )≥

m k

n p i

≤ 1

, 1

ijk ipk pk

ik x Hy t

x − + ≥

m k

n p i

≤ 1

, 1

≥0

xik yipk =0or1

where kidenotes the machine at which the last operation of job i is scheduled. There are mn constraints of similar to inequalities (2.1) or (2.2), and there are mn(n-1) of type (2.3) or (2.4), or a total of mn2 constraints. There are mn xik variables and mn(n-1)/2

yipkvariables, since ypikneed not be defined if yipk is in the formulation. The total number of variables is therefore mn(n+1)/2. For a small problem containing n=4 jobs and m=3 machines, this formulation requires 48 constraints and 15 variables, while a 10 job, 5 machine formulation is 500 by 275 respectively. This integer programming problem can be solved by using the branch and bound algorithm. Constraints (2.3) and (2.4) are omitted initially and the remaining problem is solved as a linear program. If there are no machine conflicts in the resulting solution, then it represents an optimal schedule. If there is some conflict, say between jobs i and p on machine k, then two sub-problems are solved. One sub-problem contains the additional constraint

ik pqk

pk t x

x − ≥

and the other sub-problem contains the constraint

pk ijk

ik t x

x − ≥

Both of these sub-problems can then be solved as linear programs, for there are still no integer variables in the formulation. The branching process continues in this way, each time branching from an infeasible solution to two sub-problems containing additional inequality taken from the appropriate pair of disjunctive constraints. Whenever an infeasible solution is obtained, the value of the objective function in the corresponding linear program can be used as a upper bound. Thus, the branch and bound scheme solves a linear programming problem for each node in the branching tree as a means of solving the overall integer programming problem. The generated branching tree has the potential for greater computational efficiency. In particular, the approach based on the generation of active partial schedules resolves machine conflicts (i.e. disjunctive arcs) that occur early in the schedule before resolving the conflicts that appear later. What might be even more significant is that a refinement of a lower bound calculation can make any of the formulations appear to be more efficient.

The present state of research in scheduling leaves unsettled the question of which formulation and which lower bounds are most productive. Actually, this may not be pressing the question, for the capabilities of an available computer and the skills of the programmer may well dictate which approach is desirable.