SCHEDULING PROBLEM FOR A SINGLE FLEXIBLE ...

2 downloads 0 Views 47KB Size Report
Nguyen Van Hop. 1. 1. .... Each job j requires Tj tools and n jobs need total T tools. ... mathematical model: Min. ∑∑. = = −. −. +. = n k. T i ki ik x x. sSnZ. 1. 1. )1( ).
SCHEDULING PROBLEM FOR A SINGLE FLEXIBLE MANUFACTURING MACHINE Nguyen Van Hop1 1. Industrial Engineering Program, Sirindhorn International Institute of Technology, Thammasat University, P.O. Box 22, Thammasat-Rangsit Post Office, Pathumthani 12121, Thailand. Tel. +66-2-9869101-9, Ext. 3308; Fax. +66-2-9869112-3 E-mail:[email protected] Abstract This paper addresses the scheduling problem for a single machine arising in flexible manufacturing systems. This problem is often defined by two interdependent problems:(i) job sequencing problem, and (ii) component/tool loading problem. We need to determine the optimal job sequence, which depends on the optimal solution of component/tool loading scheme for each sequence, in order to minimize total setup time. Several developed heuristics are compared with searching approaches such as Genetic Algorithm (GA), Simulated Annealing (SA), and Tabu Search (TS) to find out the best compromised solution for this kind of problem. Their perfomances are demonstrated by computer experiments. Keywords: job sequence, component loading, genetic algorithm, tabu search, simulated annealing, FMS. 1. Introduction In flexible manufacturing systems (FMS), a flexible machine can produce different kinds of product. Each product type requires a number of tools to process (or components in the case of assembly environment). These tools are loaded on the machine’s magazine. An important task of planner is to sequence these jobs (from now onward, we refer job as part type) such that total setup time is minimized. The total setup time includes the time to fix a part on machine table and time to exchange tools/components. The total tool exchanging time depends on the entire job sequence because the decision at each setup step of job change si to keep the common tools between the job and current setup on the tool magazine, remove unecessary tools and load required tools for the job. Thus, the setup time of each job in the sequence is not deterministic and it is relied on the tool exchanging time for that job. Hence, the scheduling problem for a single flexible manufacturing machine often includes two interdependent problems: (i) (ii)

1

Job sequencing problem: determine the best job sequence that setup time depends on tool/compoent loading scheme. Tool/component loading problem: order tool changes from machine’s magazine for each job sequence.

Corresponding author

A good procedure for the above scheduling problem in FMS environment should be able to handle both sequencing and loading issues together. The final solution depends not only on the optimal sequence of jobs but also on the quality of on tool/component loading. In literature, the scheduling problem for single flexible manufacturing machine is handled in different variants that depend on the structure of the tool/component loading issue. The simpliest case where the assumptions of equal tool sizes and not over magazine capacity are hold, i.e. all tools occupy same amount of space on the magazine (normally in one slot) and no job requires tools more than magazine capacity, has been considered extensivly. Tang and Denardo (1988) propose a greedy heuristic to determine job sequence and then develop a so-called “Keep Tool Needed Soon” (KTNS) policy that provides optimal solution for the tool/component loading problem. In this procedure, the tool magazine is kept in full and at an instance n tool i is •

Inserted: L(i,n) = n; Ji = 0;



Kept : L(i,n) = n ; Ji =1;   • Removed: i = max  L( p, n)   p: Jp =1  Where L(i,n) is the first instant at or after instant n at which tool i is needed. Ji =1 (0) if tool i is (is not) on the machine at a given instant n Various heuristics have also been developed for this scheduling problem since it is NP-complete (Crama et al. ,1994). Generally, these approaches implement KTNS principle to determine tool/component loading scheme and some constructive or iterative heuristics are used to determine the job sequence. The representation of constructive strategy is greedy heuristics. A “greedy” heuristic successively adds the jobs to a current subsequence according to some priority criteria. Lofgren and McGinnis (1986) develop a simple greedy heuristic that considers the “current” machine set-up, identifies the next job (printed circuit card -PCC) based on the similarity of its requirements to the current set-up, and then determines the components to be removed (if any) based on their frequency of use by the remaining PCCs. Rajkurmar and Narendran (1998) present a greedy heuristic, which exploits the similarities between boards and current setup on the magazine by their similarity coefficients. On the other hand, improvement heuristics that improve iteractively a starting solution, are implemented in some recursive or local search approaches (2-opt, tabu search, genetic algorithm, simulated annealing) to solve the problem. Sadiq, Landers and Taylor (1993) conduct a research on printed circuit boards (PCBs) sequencing and slot assignment problem on a single placement machine by the intelligent slot assignment (ISA) algorithm. Gronalt, Grunow, Gunther and Zeller (1997) model the combined component loading and feeder assignment problem, called as the component-switching problem, as a mixed-integer linear program. A recursive heuristic is proposed to solve this combined problem. Maimon and Braha (1998) develop a genetic algorithm and compare it with a TSP-based spanning tree

algorithm. Recently, Djelab et al. (2000) propose an iterative best insertion procedure (IBI) using hypergraph representation to solve this scheduling problem. Some beginning efforts have been tried to handle the “non-uniform tool-sizes” issue using different formulations such as Privault and Finke (1995), Gunther, Gronalt and Zeller (1998), Matzliach and Tzur (2000). Privault and Finke (1995) extend the KTNS policy to take into account the “non-uniform tool sizes” by using the network flow formulation. Gunther, Gronalt and Zeller(1998) extend the PCB assembly setup problem for single machine when the size of feeder required more slots in the magazine. They solve three sub-problems: board sequence, component loading and feeder assignment, sequentially by a TSP-based heuristic. Their heuristic first constructs a board sequence using an upper bound on component changeovers between two consecutive boards. The KTNS rule is implemented to evaluate the performance of the board sequence. Then an iterative procedure is developed using 2opt heuristic to improve the previous solution. The drawback of this approach is that it does not consider the current status of magazine. Recently, Matzliach and Tzur (2000) have shown the complexity of this case to be NP-complete. They also propose two constructive heuristics which provide solutions those are extremely closed to optimal solution (less than two percents). In the same streamline of this extension, Matzliach and Tzur (1998) concern with another aspect of the tool switching problem when parts that need to be processed on the machine arrive randomly and tool sizes are non-uniform. In another direction, Rupe and Kuo (1997) relax the assumption of tool magazine capacity restriction They allow job splitting and develop a so-called “get tool needed soon” (GTNS) policy. The GTNS strategy is proved to give the optimal solution for this case of the problem. This paper addresses the scheduling problem for a single flexible manufacturing machine with the simplest case of single occupied slot tool size and not overcapacity magazine assumptions. The next section describes the problem in detail. Solution approaches using search techniques are developed in Section 3. Section 4 illustrates these procedures’ performance through some experiments. The last section disscusses about the obtained results. 2. Problem Description In this section, we investigate the problem of scheduling n jobs that is processed by a single flexible machine. Each job j requires Tj tools and n jobs need total T tools. Tool i is assumed that occupies one slot on the magazine only, ∀i∈T. These tools are loaded on the machine’s magazine when their job are being processed. The magazine is also assumed that its capacity C can hold enough Tj tools for each job j when it is required (C ≥ Tj, ∀j). The requirement is that we need to determine the best job sequence such that total setup time is minimized. The total setup time consists of time to fix a job on the machine’s table and time to exchange tools on the magazine. The fixing time of a job on the machine’s table is supposed to be similar for every job and equal to a given constant S. The tool exchanging time depends on tool loading scheme, i.e. the ordering of tool changes for the corresponding job sequence. For each given job sequence, we need to answer the following question to determine a tool loading scheme: what tools need to be loaded on the magazine, what tools need to be

kept on the magazine, what tools need to be removed from the magazine such that total tool exchanging time to be minimized. Here, without loss of generality, tool exchanging time for a tool is assumed to be an unit of time (s = 1). It is clear that the best job sequence is obtained if total job setup time is minimized. It can be achieved if the best loading scheme is determined. On the other hand, the best loading scheme can be obtained if only if a best sequence are given. Therefore, the quality of final results of the secheduling problem depend on the results of the two above interdependent sub-problems: job sequencing problem and tool/component loading problem With these descriptions and assumption, we formulate the problem in the following mathematical model: n

T

Min Z = n * S + s ∑∑ xik (1 − xi (k −1 ) )

(1)

k =1 i =1

Subject to: T

∑x

ik

= C; k = 1,..., n

(2)

i =1

a ij y jk ≤ x ik ; i = 1,..., T ; j , k = 1,..., n n

∑y j =1

jk

= 1; k = 1,..., n

(4)

jk

= 1; j = 1,...., n

(5)

n

∑y k =1

Where n T Tj C S s j

Total number of jobs Total number of required tools. Total number of tools required by job j. Machine capacity. Job fixing time Tool exchanging time Job index, j=1,…, n

i

Tool index, i =1,…, T.

k

Job position index in the sequence, k=1,…,n 1; if tool i is on the magazine at instant k.

x ik = 0; otherwise. 1; if job j is processed at the k th position in the sequence. yjk = 0; otherwise. 1; if tool i is required by job j. aij = 0; otherwise.

(3)

This model is adapted from the one proposed by Rupe and Kuo (1997). There is one exception that the model represents for the problem of n jobs and each job requires Tj tools instead of H sub-jobs that each job requires one tool as in Rupe and Kuo (1997). Objective function (1) is expressed in terms of total setup time that includes total job fixing time and total tool exchanging time. Constraint (2) assures that exactly C tools are placed on the machine for any job. Constraint (3) indicates that if job j is processed at instant k, then all required tools of job j must be loaded on the machine. Constraint (4) and (5) assign exactly one job to exactly one position in the sequence and vice versa. 3. Solution Approaches In this section, solution approaches are developed using search techniques (Genetic Algorithm, Simulated annealing and Tabu Search). These techniques are the global searching procedures that attempt to mimic natural processes for avoding local optimization traps. Genetic Algorithm (GA), Simulated Annealing (SA) and Tabu Search (TS) are applied widely in many areas of combinatorial optimization problems such as scheduling, group technology, layout. The purpose of our paper is to compare the performance of these techniques that are used to solve the scheduling problem for a single flexible manufacturing machine over other heuristics. Hence, the solution procedure for our problem implements KTNS principle to determine tool/component loading scheme. Then, Genetic Algorithm (GA), Simulated Annealing (SA) and Tabu Search (TS) are used to improve the job sequence. 3.1. Genetic Algorithm (GA) Genetic algorithms were invented by Holland to mimic some of the processes of natural evolution and selection. The GA attempts to simulate nature's genetic processes by representing a solution to the problem as a string of genes that can take on some value from a specified finite range or alphabet. This string of genes, which represents a solution, is known as a chromosome. Then an initial population of legal chromosomes is constructed at random. At each generation, the fitness of each chromosome in the population is measured. The fitter chromosomes are then selected to produce offspring for the next generation, which inherit the best characteristics of both the parents. After many generations of selection for the fitter chromosomes, the result is hopefully a population that is substantially fitter than the original. As other genetic algorithms, our GA for scheduling problem in FMS consists of the following main components. Chromosome Representation Each chromosome represents a legal solution to the problem and is composed of a string of genes. In our application, each solution is encoded as a string of job sequence. For example, the string “235641” represents for a job sequence of job 2 is processed before job “3”, job “3” is processed before job “5” and so on (see Figure 1). The requirement is that repeating a job in a sequence is not allowed and all jobs should appear in the sequence.

2

3

5

6

4

1

Figure 1. Sequencing Coding Initial Population Once a suitable representation has been decided upon for the chromosomes, it is necessary to create an initial population to serve as the starting point for the genetic algorithm. This initial population can be created randomly. From empirical studies, a population size of 30 is selected. Fitness Evaluation The fitness function of our GA is evaluated based on total setup time calculation. This setup time is calculated as in objective function (1) where total number of tool switches is determined by using KTNS rule. Genetic operators We need to select chromosomes from the current population for reproduction. The selection procedure picks out parent chromosomes, based on their fitness values, which are then used by the crossover and mutation operators to produce offsprings for the new population. This selection/crossover/mutation cycle is repeated until the new population contains 30 chromosomes i.e. after cycles. The lower the fitness value the higher the probability of that chromosome being selected for reproduction. Once pairs of chromosomes have been selected, crossover and mutation can take place to produce offsprings. Several variations of genetic operators have been studied for scheduling problem. Among these variations, the two-point crossover and the shift mutation are shown to be good operators. Therefore, we will employ these operators to generate new populations in our GA. Figure 2 illustrates these operators. 4 3 6 7 1 8 9 2 ↓ ↓ 4 3 7 1 8 6 9 2 7 1

4 8 2 6 3

(a) Two-point Crossover

3

6

9

3

6

1

2 8 7 → → → 9 2 8

1 → 7

4 → 4

9 (b) Shift Mutation Figure 2. Sequencing Operations

This completes one cycle of our genetic algorithm. The fitness of each chromosome in the new population is evaluated and the whole procedure repeated, i.e. Step 1. Set g = 0 Step 2. Initialize P(g) • Generate randomly the population of solutions, and select 30 chromosomes as claimed. Repeat Step 3. Evaluate P(g) Step 4. Generate the new generation P(g+1) using genetic operations.



Reproduction: select chromosomes in P(g), based on fitness (using the roulette rule). • Two-point crossover takes place with given crossover probability pc ( = 0.7) • Shift mutation is implemented with given probabilities pm (= 0.03). Step 5. Set P(g) = P(g+1). Until a stopping criterion is met Here, stopping condition indicates that the algorithm is terminated if the solution does not improve any more or after a repetition of 100 iterations (g = 100 generations). 3.2. Simulated Annealing Simulated annealing (SA), which was proposed by Kirkpatrick (1983), is a stochastic computational technique derived from statistical mechanics for finding near globallyminimum-cost solutions to large optimisation problems. The method itself has a direct analogy with thermodynamics, specifically with the way that liquids freeze and crystallise, or metals cool and anneal. Given a succession of moves (i.e. neighbouring configurations), a simulated thermodynamical system was assumed to change its configuration from energy Eold to energy Enew with probability prob =e-(Enew-Eold)/kT (the so-called Boltzmann distribution) for a fixed temperature T and k known as the Boltzmann constant. If Enew < Eold then the new configuration has a lower energy state than the old one and so is assigned prob = 1 i.e. the system always accepts this move. If Enew > Eold then the new configuration has a higher energy than the old one but may still be accepted with probability 0< prob < 1 and thus help the system jump out of a local minimum. Apply this principle, the full SA procedure for our scheduling problem is Initialise T (= 100) Generate random solution Xold ( random job sequence: 1,2,…, n) WHILE T>Tmin DO FOR i = 1 to (n-1) DO generate new solution, Xnew (sequential job exchange) calculate new energy, Enew calculate ∆E = Enew - Eold IF ∆E