Optimizing Machine Allocation in Semiconductor Manufacturing Capacity Planning using Umi Kalsom Yusof School of Computer Sciences Universiti Sains Malaysia 11800 USM, Penang, Malaysia umiyusof@cs.usm.my Bio-Inspired Approaches Safaai Deris Faculty of Computer Science and Information System Universiti Teknologi Malaysia 81310 Skudai, Johor, Malaysia safaai@utm.my ABSTRACT Having an accurate capacity planning is always an ultimate goal for semiconductor manufacturing. However, as capacity planning is highly affected by the demand forecast uncertainty, there is a necessity to make the gap closer to ensure profitability. The paper defines the problems faced by a semiconductor company in handling capacity planning and balancing the capital investment cost against the risk of losing revenue. Machine allocation in capacity planning is a process to determine mixture of a machine types that satisfy all precedence and resource constraints and minimize the total machines allocation. We adopt constraint-based genetic algorithm (GA) to solve this optimization problem with the focus on mapping the right chromosome representation to the domain problem. The method is chosen to allow the running of GA in original form as well as to ensure the computation is straight forward and simple. Datasets from one of the semiconductor manufacturing in Penang have been used for experiments. The results showed that by using good chromosome representation the machine allocation optimization will be obtained faster. Keywords Machine Allocation; Optimization approach; Genetic Algorithms; Semiconductor assembly. 1. INTRODUCTION Semiconductor industry has been widely regarded as a most complex manufacturing process due to technologies and manufacturing procedures [1]. In-fact, it has become one of the leading industries in US economy [2]. As the technologies in this business growing fast, they are also facing increase competition simultaneously. They are struggling with the demand from the customers to cut down the price, while the operating cost will be remained the same. As the chip prices reduce, the profit margin will also be cutting significantly. Consequently, the industries are facing a challenge of balancing the capital investment against the risk of losing customers demand and revenue. In order to gain more competitive advantages, semiconductor manufacturers have put an effort to improve capacity planning, scheduling and control of the production line as well as having a sound forecasting and product demands. Capacity planning, a very close related to demand forecast; is a process of adjusting the capacity of an organization in responding to the changing or predicted demands. In other word, capacity planning is involving with the maximum amount of work it capable of completing in a given period of time. Though it is a very challenging process, capacity planning plays a very important role to incorporate performance in the semiconductor industry [3]. As the cost of investment is very high, it is a high need for the corporate to make the gap between the demand forecasts and capacity planning closer. Capacity planning deals with demand forecast in uncertainty environment. This uncertainty is the root cause of the problem faced by capacity planning. In addition, risk of technology obsolescence, volatile demand, high and risky investment cost, and long lead time of procurement make a capacity investment as an overwhelming decision-making task [4]. Though it is desirable to lower the gap between forecast and actual demand, it is indeed a difficult task. So the approach in capacity planning is to consider uncertainty in demand will be always there. With that approach, many studies involve of using stochastic integer programming to find a tool set that robust to the demand changes. Berman et al. [5] applied a stochastic programming model to solve for the capacity expansion problem in service industry with uncertain demand, while Escudero et al. [6] analyze different modelling approaches to the production and capacity-planning problem using stochastic programming. Stochastic programming is a framework for modelling optimization problem that involving uncertainty environment. The real-world problems are almost invariably includes some unknown parameters where the deterministic approaches are formulated with known parameters. Stochastic programming goal is to find a solution that is feasible for all possible data and maximize the expectation of some function of the decisions and random variables. According to Spall [7] stochastic optimization algorithms are optimization algorithms which satisfy one or both of the following properties: There is random noise in the measurements of the criterion to be optimized and/or related information There is a random choice made in the search direction as the algorithm iterates toward a solution. The above two properties contrast with classical deterministic search and optimization, where it is assumed that one has perfect information about the loss function. The paper is organised as follow: Section 2 discusses related work on issue discussed. Next, Section 3 discusses on methodology 83
while Section 4 describes the problem and model formulation. Section 5 discusses on the solution proposed to solve the problem; while section 6 discusses on the results on the proposed solution. Section 7 states the contributions of the work and finally, the conclusion concludes the paper and future research. 2. RELATED WORK Capacity planning deals with the maximization of machine utilization, which the lower the allocation of the machines, the more product demand can be fulfilled, and it translates into more manageable and profitable company. Even though the machine one of the main players in capacity planning plays a very important factor to the financial impact, the research in the area of tool procurement in production planning is not much [8]. Initial model of allocation of wafer to different tool had been presented by Fordyce and Sullivan [9] which enable what if on questions may arise during planning and management of tools. Though their goal is to maximize the utilization of tools used, the scope of the research is restricted to a coordinated demand forecast. The other research that propose models of capacity planning in semiconductor industry have also limited their research on known forecast [10] due to the complexities involved with solving a stochastic program. However, with the increase of computational power in recent years, the concern areas are possible to be addressed. Consequently, stochastic programming and scenario based planning are starting to be utilized for industry size problems [11]. There are many approaches have been suggested to solve the complexity of capacity planning in volatile demand forecast environment. From the literatures, capacity planning problems have been handled by using linear programming-based (LP) and bio-inspired techniques. Stochastic approach has been addressed as best approach to handle capacity planning in uncertainty of demand forecast. Stated by Spall [7], linear-based programming and bio-inspiredapproach algorithms are part of stochastic approach. Genetic Algorithm (GA) and Ant Colony Optimization (ACO) are evolutionary algorithms (EC) which referred as class of stochastic search and optimization methods built on the mathematical emulation of natural evolution. 3. METHODOLOGY Figure 1 show the methodology of this research which consists of four main stages, namely modeling, single level optimization, two level optimization and loading capacity. Problem modeling in the first stage is important to understand the problem domain and formulate the capacity planning problem of real production in assembly semiconductor environment. In second stage, constraint-based Genetic Algorithm (GA) with its reproduction operators are used in order to propose single-level machine allocation optimization (minimize number of machines) for the demand forecast with consideration of machine allocation preferences. A minimal number of machines to allocate the demand forecast are important to ensure the company may utilize the best available machines as well as to speed up the processing of the products. Then, two-level machine allocation optimization will be proposed to handle more stringent machine constraints and parameters as well as to produce better result. The algorithm proposed will be a hybrid of GA and particle swarm optimization (PSO). The fourth stage will be maximizing the loading capacity of the products and quantity given the number of machines available in the production. This scenario will aid the management to know apart from the demand forecast, how much more the machines are possible to be allocated to their maximum. Figure 1. Research Methodology 84
4. PROBLEM DESCRIPTION AND MODEL FORMULATION There are two types of bottle neck in capacity planning in semiconductor manufacturing. One is primary bottle neck whereby the overall planning is concerned. Second is secondary planning where there are rooms for improvement due to the setting of the resources such as machine optimization. We are dealing with secondary bottle neck issues. This research is focusing on die attach area, one of the process in assembly semiconductor manufacturing. The role of capacity planning is to ensure the demand products are all being allocated with minimum number of machines. From the machine allocation, the management will understand the machine best arrangement to fulfil the demand, as well as to understand how much extra capacity they still have in order to allow more demand to be accepted. The products demand is vary from time to time, as well as the demand quantity for each product. In semiconductor environment, the demand can be fluctuated very fast where the demand for the same products can be very much differ within short period of time. In-fact there s also possibility where the product that demanded very high on previous month, then sharply drops in following month. Capacity planning may be done on quarterly, monthly or weekly basis. The common practice exercised by the planner is to divide the quantity of the product demand into weekly basis; which based on the number of work-weeks per month or quarterly. For this research, the quantity demand is represented on weekly basis. The forecast quantity will be gathered from many sources and the management will decide on the realistic demand quantity for production. There are n products (named product 1, product 2 and so on) to be allocated with four machine types (named machine type A, machine type B, machine type C and machine type D). Each machine type consists of 5, 14, 5, 10 number of machines respectively. Some machine types can only run certain products mainly due to technical reasons. One of the technical reason is the newer products only can run on newer machines due to technology advancement due to products specification. With this constraint, there must be a mechanism to ensure invalid machine type not being assigned to the product. Output quantity for each machine type is based on the unit per hour (UPH); means the quantity of the product can be produced within one hour. The output is varies for different product that run on the same machine type. Below is sample of the products and possible machine allocation. UPH to run the product is varies for each machine type. Demand quantity is the quantity being scheduled for production, machine to allocate is possible machine type can be allocated for the product. UPH is unit per hour for each machine types. Product with value - of UPH means the machine type not allowed to be allocated for that particular product. Example is product 2 where only machine type B is being assigned; which mean this product can only be allocated for machine type B only, while prod 5 can be produced with all machine types. There are four machine types with total of 36 machines. These products are further clustered under product group for easy planning purposes and products within the same group usually carry similar requirement. Product Demand Quantity Table 1. Product, quantity and machine allocation Machine Type to allocate Machine Type A UPH (Unit per hour) Machine Type B Machine Type C Machine Type D Product 1 2306462 A,B,D 4240 5077-5585 Product 2 2514052 B,D - 5077-5585 Product 3 15385 B,C,D - 4179 4685 4597 Product 4 30770 B,D - 4179-4597 5. SOLUTION BY CONSTRAINT-BASED GENETIC ALGORITHM The objective of the constrained-based of capacity planning is to find an optimum planning that minimizes machine allocation for all the products being scheduled for production with the allocation constraints. The solution to capacity planning is to assign the machines accordingly which the total machines used for allocation will be the least. Since this problem is a NP hard problem, it is difficult to find the optimum planning. The capacity planning need to fulfil: All products that required to be scheduled for production must be allocated according to the allowable machine. Resource availability: The number of machine allocated for products cannot be exceeded the actual number of machines for each machine types. Certain products can only be run on certain machine types only. UPH will be set for valid machine types only. The machine with higher UPH is preferably to be allocated first. In general, GA steps involving initialization, where an initial populations are generated by using a random function. These populations are assigned a fitness value based on the fitness function. In order to generate possibility for more solution, new populations are created based on the selection criteria. Genetic 85
operations; crossover and mutation are applied to these newlyformed populations and then the fitness function is calculated. These steps (formation of new solution until fitness calculation) will be repeated until the satisfactory result is achieved. For this constraint-based GA, the gene pool for each product will be generated first from the number of allowable machine for the product. Then the population will be generated where the genes are randomly selected from the gene pool for each product. The detail procedure is described below. Constraint-based genetic algorithm Begin Generation g = 0; Generate gene pool P(m); Initialize population F(g) random from gene pool P(m); Evaluate F(g); While (not termination condition) do Crossover: recombine F(g) to yield chromosome set S0(g); Mutation: alter the values of the genes of F(g) to yield S00(g), and new population S(g) S0(g) + S00(g); Evaluate S(g); Select F(g + 1) from F(g) and S(g); g = g + 1; End While End 5.1. Chromosome Representation One of the components of GA is chromosome. It represents a point of searching space which referred as individuals as well as a potential solution of a particular optimization problem. In addition, chromosome representation which representing the how the domain problem being mapped significantly affect the GA performance. Improper or wrong representation of the chromosome structure will often cause a poor performance [14]. It also may lead to inability to find the right solution. Basic GA has a tendency to produce a number of infeasible chromosomes in each generation due to randomized crossover and mutation [13]. Thus, the chromosomes need to be repaired to ensure feasible solution. This process will lengthen the computational time as well as given poor performance. Due to that, it is very crucial to be able to design good chromosome representation. The main objective is to generate chromosomes that able to produce feasible solution after each crossover and mutation. Good feasible chromosome will reduce the search space as well as make the algorithm more efficient, hence less computational time [12]. Based on these criteria in mind, each unit is assigned a binary number and let the chromosome be a sequence of binary number. However, an ordering of the units in a sequence is not yet machine allocation. Some machines can be allocated simultaneously for the same product. Thus, rather than units of machines in a sequence, we will build a sequence of machines for individual products. The machine allocation can be easily represented by 4-bit string, where each bit is a machine type. If a machine type is allocated for the particular product, the corresponding bit assumes value 1; otherwise it is 0. For example, the string 0 1 1 1 in a gene represents a machine type machine type B, machine type C and machine type D to be allocated for particular product (gene). It also denotes allowable machine allocation for this product is two machine types. Thus, a complete machine allocation for our problem can be represented as 76-bit chromosome (4 machine types with n products). However, crossover and mutation operators could easily create binary strings that call for allocating products more than required. In addition, we could call for machine allocation that would exceed the number of available machines as well. Hence, an approach of changing the chromosome syntax is taken. As already discussed, a chromosome is a collection of elementary parts called genes. Conventionally, each gene is represented by only one bit and cannot be broken into smaller elements. Anyway, for our problem, we can adopt the same concept, but represent a gene by four bits. In other words, the smallest indivisible part of our chromosome is a 4-bit string. This representation allows crossover and mutation operators to act according to the theoretical grounding of genetic algorithm. Based on products demand and allowable machine types in Table 1, a pool of genes is produced for product 5 as shown as Figure 2 (a) below, which denotes from two the power of 4 (allowable machine types) minus 0000 gene. There are fifteen possible genes to be selected for product 5. Figure 2 (b) shows product 6 may only have one gene selection due to the constraint where only machine type B can be allocated to this product. Figure 3 shows a sample of chromosome created. During initial population of chromosomes, GA will fill n- gene chromosome with genes randomly selected from the corresponding pools. Prod(5) 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 0 1 1 0 0 1 1 1... 1 11 0 1 1 1 1 a b Prod(6) 0 1 0 0 Figure 2. (a) Pool of genes for product 5. (b) Pool of genes for product 6. 86
Prod(1) Prod(2) Prod(3) Prod(4) Prod(5) Prod(6) Prod(7)... Prod(18) Prod(19) 1 1 0 1 0 1 1 0 1 0 1 0 1 0 1 0 1 1 1 0 1 1 1 1 0 1 0 1 0 1 0 1 1 1 1 1 Figure 3. A chromosome for the capacity planning problem The chromosome is a solution to the problem, which representing the assignment of machines to the product demand. In order to find the optimum schedule that optimize machine allocation, we define fitness functions F(g) as shown in Eq. (1). (1) The evaluation of a chromosome starts with the sum of machines for each machine type for all products demand. The number of machines of these four machine types will be summed and generate total number of machines required to allocate the product demand. Since the chromosomes are constructed from valid genes from gene pool; so the result expected to be a valid result. The chromosome s fitness is determined as a lowest total machine allocation for all products. Where p is the product, m is machine type for genome g, 1 <= g <= G, is the demand quantity for each product, is the unit per hour for each machine type and product, h is hour taken to process the product (weekly as 123.25 hours), is product efficiency percentage, and is product dual-hybrid percentage. Efficiency % is factor that affected loaded UPH (UPH that used to calculate the actual machine allocation) while dual-hybrid % is percentage of potential dual die or two different dies in the product quantity. If the dual-hybrid is 99.5 %, 0.5 % of quantity is going to be dual die or hybrid die. This factor will reduce the loaded UPH and make the machine allocation higher. The same product may be allocated for a different machine type and the demand quantity will be equally divided based on the number of machine types. The capacity planning having a minimum number of machines allocated will be selected for production scheduling. 5.2. Fitness Evaluation The evaluation of the chromosome is a crucial part of GA, since chromosomes selected for mating are based on their fitness. The fitness function will decide whether the machine allocation is good for the capacity planning. For our problem, the fitness function will decide the machine allocation for each machine type as well the total number of machines used for the allocation. Demand quantity for each product will be divided for number of machine type allocated. If the particular product is allocated for 3 machine types, the quantity will be divided by 3. This formula is derived to give correct quantity calculated for any allocated machine type. 5.3. Operators Constructing genetic operators required careful consideration to ensure the crossover and mutation work correctly as expected. The chromosome has to be broken up to give the result that legal to our problem. Due to the way the problem is mapped to the chromosome syntax, we can use the GA operators in their classical forms. As mentioned, each gene is represented by 4-bit indivisible string, which consists of a possible machine types for each product. Thus, any random recombination from two parents or mutation of a gene may result in changes of the machine types allocated for each product, but cannot generate invalid machine type allocation. In other word, this method will not create unnatural chromosomes. There are a number of crossover and mutation operators that can be applied. Several mutation operators have been researched for permutation representation, such as inversion, reciprocal exchange, insertion and displacement mutation. For mutation, we use displacement mutation, where 4-bit gene randomly selected in a chromosome and replaces it by a gene randomly selected from the corresponding gene pool. The rate of mutation is 1%. In the example shown in Figure 4, the chromosome is mutated in its 5 th gene, which is 1 1 1 0 and replaced by 0 1 1 0, chosen from the pool of gene for product 5. There are three crossover usually applied; partially mapped, order and cycle crossover. For crossover, we use partially mapped with two point crossover. So, the gene between the two points will be swapped between the parents chromosomes, rendering two child chromosomes. Example in Figure 5 shows crossover application. The offspring are made by cutting the parents randomly selected Prod(1) Prod(2) Prod(3) Prod(4) Prod(5) Prod(6) Prod(7)... Prod(18) Prod(19) 1 1 0 1 0 1 1 0 1 0 1 0 1 0 1 0 1 1 1 0 1 1 1 1 0 1 0 1 0 1 0 1 1 1 1 1 Prod(1) Prod(2) Prod(3) Prod(4) Prod(5) Prod(6) Prod(7)... Prod(18) Prod(19) 1 1 0 1 0 1 1 0 1 0 1 0 1 0 1 0 0 1 1 0 1 1 1 1 0 1 0 1 0 1 0 1 1 1 1 1 Figure 4: Mutation by displacement 87
point denoted by the vertical line (between gene 4 and 6) and exchanging parental genes after the cut. The selection method to choose most fit individuals for the next generation is the roulette wheel selection. Parents: Prod(1) Prod(2) Prod(3) Prod(4) Prod(5) Prod(6) Prod(7)... Prod(18) Prod(19) 1 1 0 1 0 1 1 0 1 0 1 0 1 0 1 0 1 1 1 0 1 1 1 1 0 1 0 1 0 1 0 1 1 1 1 1 Prod(1) Prod(2) Prod(3) Prod(4) Prod(5) Prod(6) Prod(7)... Prod(18) Prod(19) 1 1 0 0 0 1 1 1 1 0 1 1 1 1 1 0 1 1 0 0 1 0 1 1 0 0 0 1 0 0 0 1 1 1 0 1 Offsprings: Prod(1) Prod(2) Prod(3) Prod(4) Prod(5) Prod(6) Prod(7)... Prod(18) Prod(19) 1 1 0 1 0 1 1 0 1 0 1 0 1 1 1 0 1 1 0 0 1 0 1 1 0 1 0 1 0 1 0 1 1 1 1 1 Prod(1) Prod(2) Prod(3) Prod(4) Prod(5) Prod(6) Prod(7)... Prod(18) Prod(19) 1 1 0 0 0 1 1 1 1 0 1 1 1 0 1 0 1 1 1 0 1 1 1 1 0 0 0 1 0 0 0 1 1 1 0 1 Figure 5. Partially mapped Crossover 6. RESULT AND DISCUSSION The proposed approach has been implemented using C# compiler. Data from one of semiconductor companies at Penang, Malaysia is used to test the effectiveness of the proposed approach. Nineteen semiconductor products with four types of machines (total of 36) are selected to test the applicability and the effects of size and scale of the problem on performance of this approach. The problem may become complex due to constraints of the products that can be allocated to the machine types and the product quantity can be broken down to various machine types. The aim of the capacity planning is to minimize the total machines used to allocate the demand products. We are running the experiments of our proposed algorithms using two different chromosome representations on the same data. The first representation called R1 is the chromosome representation using the proposed constrained-based approach, while another chromosome representation called R2 is a random approach. Random approach chromosome representation will randomly take any gene from respective product without considering the product allowable machines. We will compare the results generated by R1 and R2. There are nineteen products which clustered into seven product groups. These products will be allocated with four types of machines consisting 5, 16, 5 and 10 units each type respectively; depending on the allowable machine type for each product. From the chromosome representation approach discussed earlier, adding another type of machine from three to four will double possible number of genes to be selected from eight to sixteen, which is two to the power of four possible genes to be selected for each products. The detail information on the products and machines is given in Table 1 and Table 2 respectively. As shown in Table 3 and Figure 7, the best solution for the machine allocation is found after 73 generations. The best CPU time is 05:13. The allocation generated by our approach of R1 which optimizes the machine availability is shown in Table 4 and Figure 6. Machine allocation shows the remaining number of machines available is 2.9520067 for machine type A, 0.167012 for machine type B, 0.2254166 for machine type C and 0.3448008 for machine type D with total number of machine readily to be used is 5, 16, 5 and 10 respectively. These available machine numbers would be able to accommodate more products to be allocated. The number of generations required to converge largely depends on the effectiveness of the chromosome representation as well as the fitness measure that evaluates the individual solution and the suitability of the operators. In this paper, the simple crossover used and mutation operators perform their tasks effectively due to the effective and efficiency of chromosome representation as well as the fitness function. The chromosome representation ensures the genes are representing the right combinations which only allow the right machines to be allocated to the respective products. Nevertheless, the fitness function will still checking the chromosome to ensure only the right combination as well the total amount of the machine allocated is not exceeded the machine available for allocation. The crossover operators finds all the permutations of machine allocation where the mutation operator provides the variety of parents that may include the good traits as the source of required traits for the next generation. 88
No. Table 2. Machine Capability and Product classes by product group Product Group No of Product Mach Type A Mach Type B Mach Type C Mach Type D 1 TSOP 2 y y 2 SSOP 4 y y 3 SSOP narrow 1 y y y y 4 MSOP 2 y y y y 5 PDIP 3 y y y y 6 SOIC narrow 3 y y y y 7 SOIC Wide 4 y y y y Note: y indicates machine type acceptable by product Parameters no of Population no of Generation Probability of Crossover Probability of Mutation Table 3. Experimental results for best five runs of R1 and R2 R1 Run 1 Run 2 Run 3 Run 4 Run 5 Run 1 Run 2 Run 3 Run 4 Run 5 1500 1500 1500 1500 1500 1500 1500 1500 1500 1500 500 500 500 500 500 500 500 500 500 500 0.7 0.7 0.7 0.7 0.7 0.7 0.7 0.7 0.7 0.7 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 F value 32.1501 32.1348 32.0766 32.1443 32.1204 32.1324 32.1624 32.1567 32.1568 32.1746 number of generation to converge CPU Time (min:sec) 107 120 73 79 17 322 308 363 280 262 5:30. 05:16 05:13 05:14 05:13 5:49 05:48 05:44 05:45 05:44 R2 Table 4. Machine Allocation for each product group Product Group Mach Type A Mach Type B Mach Type C Mach Type D TSOP 0 10.301802 0 4.3015722 SSOP 0 0.0254576 0 1.1757326 SSOP narrow 0 0.323n63 0.3738316 0.3555422 MSOP 1.3506641 2.65174 1.14596 1.031291 PDIP 0.0404847 0.4298466 0.0650682 0 SOIC narrow 0.5853578 2.053681 3.1252713 2.2592158 SOIC Wide 0.0714867 0.0472648 0.0644523 0.5318453 number of Machine 5 16 5 10 Available machine 2.9520067 0.167012 0.2254166 0.3448008 89
Figure 6. Best Machine Allocation based on Product Group Figure 7 shows the result produced by two algorithms where R1 is representing the algorithm where the constraints are imposed before the chromosome is created, while R2 is representing random gene selection chromosome. Both representations are showing its best and average as comparison. The best result indicates the best fitness value found in the population while the average denotes the average fitness value in that population. For R1, the population is immediately able obtain the correct result where that machine types is within the allowable machine to be allocated for the product. As generation is increasing, the population is getting fitter as the average is getting smaller number. On the other hand, R2 result takes 256 generations to get the correct result. From Table 3 shows R1 takes 17 generation to converge while R2 takes 322. Using GA without imposing constraint will take a longer time to find a near optimal solution due to a complex chromosome representation and fitness function. Applying a constraint-based genetic algorithm with the focus of effective chromosome representation has also been studied by Tsai and Chou [14] where improper or wrong representation of chromosome structure may cause a poor performance as well as inability to find the right solution. The proposed approach can be applied to similar constraint optimization problems, particularly in allocation and scheduling, where optimizing an objective function is subjected to resource and constraints. As shown in Table 3, the time taken to find solutions is not only dependent on the size of chromosomes but also on the tightness of the constraints and approach used in designing the chromosome representation as well as the effectiveness of fitness function. This is because substantial processing time is required to filter non-feasible solutions. The work is hopeful to aid the management in better managing the machine utilization as well as allowing more products that able to be scheduled in current resources. Figure 7. Best run of R1 and R2. 90
7. CONTRIBUTION OF WORK There are three main contributions of this work; namely 1. The problem modeling in order to understand the capacity planning problem and formulation. The model is developed based on the constraints and preferences of the machine types to be allocated. 2. The work proposes a technique of 4-bit binary for each gene in chromosome representation where the 1 denotes the machine type to be allocated, otherwise is 0. This technique will take into consideration the constraint of the machine types for each product where the bit for the machine type that not supposed to be allocated for certain products will remain 0. The technique contributes faster convergence of algorithm. 3. The constraint-based Genetic Algorithm to produce good performance machine allocation. Compared to the manual work to do the machine assignment, constraint-based GA is able to suggest the best machine allocation that able to fulfil the demand forecast as well as to ensure the number of machine allocated not exceeding the actual number of machines. Manual allocation is taking a lot of extra efforts to ensure all the preferences and constraints are being taking care of during the process of allocating. This is give a great pain if the demand forecast is keep on changing which need the planner to spend another long hours to complete new machine allocation. The algorithm allows the re-calculating of machine allocation as much as it is required within a short period of time. 8. CONCLUSION AND FURTHER WORK This paper discusses the problems faced by the capacity planning in dealing with uncertainty demand forecast and one of the main challenges is to effectively allocate the right resources to fulfil the demand. We propose a framework that has capability of finding the least number of machines to fulfil the product demand. This study manipulates chromosome representations in order to address machine allocation problem in semiconductor manufacturing. An idea of designing the chromosome that conforms to the machine types, constraints and preferences is proposed. Capacity planning problem in allocating machines (resources) to optimize their utilization has been modelled as a constraint satisfaction problem, where the constraints are taking into consideration in finding the solution. The model then proposed to be solved by constraint-based genetic algorithm (GA) due to its characteristics of finding the optimal solution for the problem. GA is a method that using the probability of selecting a good gene subset from a collection of hundreds possible solutions. In addition, constructing the good chromosome representations plays an important role to produce good feasible chromosome, which reduce searching space; hence makes GA run faster and more efficient. The results showed that by using good chromosome representation the machine allocation optimization will be obtained faster. Effective machine allocation not only able to maximize the products being allocated, but also able to act promptly for any case of demand forecast change. For future research, focus will be put on how to efficiently divide the quantity for each product to be allocated within the gene itself. Currently the quantity is divided equally based on the machine types. As mentioned the gene is denoted by 4-bit string where each bit is representing the machine type to be allocated. Getting the appropriate percentage of product quantity will ensure furthering optimization for the machine. 9. ACKNOWLEDGMENTS The authors wish to thank Universiti Sains Malaysia for the support of this research, under University Short Term Grant no: 304/PKOMP/639009. 10. REFERENCES [1] Huang, Dan., Yan, Juanwei., Qiao, Fei., 2004. Modeling with Hierarchical Petri net of Semiconductor Manufacturing System. Proc. 8th IEEE Int. Conf. Control, Automation, Robotics and Vision. [2] Cakanyildirim, M. and Roundy, R.O., 2002. Evaluation of Capacity planning Practises for the Semiconductor Industry. IEEE Transactions on Semiconductor Manufacturing,15 (3). [3] Liang, Y.Y., and Chou, Y.C., 2003. Option-based capacity planning for semiconductor manufacturing. IEEE, 2003. [4] Chou, Y.C., Cheng, C.T., Yang, F.C., Liang, Y.Y., 2007. Evaluating alternative capacity strategies in semiconductor manufacturing under uncertain demand and price scenarios. Int. J. Production Economics, 591-606. [5] Berman, O., and Ganz, Z., and Wagner, J.M., 1994. A Stochastic Optimization Model for Planning Capacity Expansion in a Service Industry under Uncertain Demand. Naval Research Logistics., Vol. 41, pp. 545-564. [6] Escudero, L. F., Kamesam, P.V., King, A. J., and Wets, R. J- B., 1993. Production Planning via Scenario Modeling, Annals of Operations Research, pp.311-335. [7] Spall, J.C., 2003. Introduction to Stochastic Search and Optimization. Wiley, Hoboken, NJ. [8] Swaminathan, J.M., 2000. Tool capacity planning for semiconductor fabrication facilities under demand uncertainty. European journal of Operational Research, 120: 545-558. [9] Fordyce, K., Sullivan, G., 1995. A dynamically generated rapid response capacity planning model for semiconductor fabrication facilities. Impact of emerging technologies on 91
computer science and operations research. Dordrecht: Kluwer Publishing, p. 103 27. [10] Leachman, R.C., and Carmon, T.F., 1992. On capacity modeling for production planning with alternative machines. IIE Transaction, 24 (4), 62-72. [11] Swaminathan, J.M. and Tayur, S.R., 1995. Managing Broader Product Lines through Delayed Differentiation using Vanilla Boxes. Working Paper, GSIA, Carnegie Mellon University, Pittsburgh, PA, forthcoming in Management Science. [12] Ho, n. B., Tay, J. C., 2004. GENACE: an efficient cultural algorithm for solving the Flexible Job-Shop Problem. IEEE international conference on robotics and automation, 1759 1766. [13] Goldberg, D.E. Genetic Algorithms in Search, Optimization and Machine Learning. Addison-Wesley, 1989. [14] Tsai, C. F, and Chao, K. M., 2007. An Effective Chromosome Representation for Optimising Product Quality. IEEE International Conference on Computer Supported Cooperative Work in Design, 1032-1037. 92