Application of a hybridized cuckoo search-genetic algorithm to path

Report 1 Downloads 98 Views
Application of a hybridized cuckoo search-genetic algorithm to path optimization for PCB holes drilling process W.C.E. Lim, G. Kanagaraj, S.G. Ponnambalam∗ School of Engineering, Jalan Lagoon Selatan, 46150 Bandar Sunway, Selangor, Malaysia

Abstract The drilling path optimization problem can be normally considered as the NP-hard combinatorial optimization problem. Due to complexity and exponential growth of solution space with respect to the problem size, drilling path optimization problem attracts a great interest among the academicians. In this paper, a hybrid algorithm cuckoo search with genetic algorithm (hybridCSGA) is applied to solve the path optimization problem for printed circuit board (PCB) holes drilling process. The performance of the proposed algorithm is tested through small and large size problem instances. It is shown that hybrid-CSGA reaches the near-optimal solution much earlier than the CS and GA approach. The computational experience conducted in this research indicates that the proposed method is robust, efficient, can be capable to efficiently find the optimal path for PCB holes drilling path optimization problem. Keywords: hybrid algorithm, cuckoo search, genetic algorithm, drilling path optimization 1. Introduction In electronic industries, robotic drilling machines have been widely used to perform holes drilling in printed circuit board (PCB) in mass quantity. ∗

Corresponding author Email addresses: [email protected] (W.C.E. Lim), [email protected] (G. Kanagaraj), [email protected] (S.G. Ponnambalam)

Preprint submitted to Computer & Indutrial Engineering

May 2, 2013

With the escalating growth in demand for computers and electronic gadgets, PCB has undoubtedly become a competitive market. The increasing variety of products in need of PCB has made it inevitable for circuit board manufacturing industry to automate the hole-drilling operations. Many industries have adopted the computer numerical control (CNC) system in automating the hole-drilling operations because of their control flexibility. These machines will choose the route based on the numerical controlled drill (NCD) files provided. The NCD files listed the sequence, location and size of each drilled hole. Although these files are computer generated, the sequences of the drill holes are not carefully considered. These leads to additional distance traveled by the drill bit during the drilling process (Othman et al., 2011). The optimized route in PCB drill holes drilling problem can be obtained by finding the optimal sequence that produce the least distance required by the drill bit to travel in order to complete its task, which directly increase the overall productivity of PCB manufacturing. A crucial issue in manufacturing is cost effectiveness. Production costs must be minimized if the product is to compete in the marketplace. Maximizing the production of products that meet customer requirements is the prime objective of a manufacturing enterprise. Therefore, any strategy that can be adopted to minimize the production time will have much impact on achieving the firm’s objectives (Onwubolu and Clerc, 2004). In producing PCBs, processing time can be roughly divided into two categories. The first is drill processing time, i.e., the time taken for the drilling of the holes. The second is drill movement time, i.e., the processing time for the drill to move between holes. The survey by Merchant (1985) reported that tool movement and switching time take 70% of the total time in a manufacturing process, on average. Thus, optimization of hole making operations can lead to significant reduction in machining time which directly improves productivity of manufacturing systems (Ghaiebi and Solimanpur, 2007). Due to a significant amount of time required for moving the drill bit from one point to another point, holes drill routing optimization problem attracts a great interest among the academicians, researchers and engineers to solve for. This concern for calculation of the minimum tool path length between holes, the drilling device has to be steered to the location of each hole exactly once, is similar to a very well-known problem from the operational research field called the (symmetric, single objective, Euclidean) traveling salesman problem (TSP). The routing of production through a manufacturing facility has been identified as a TSP (Khan et al., 1999). The problem of finding 2

the best way the points to be drilled are traversed can be modeled as TSP in order to cut down the production cost. In this case the holes to be drilled are the cities, and the cost of travel is the time it takes to move the drill head from one hole to the next. Path optimization in PCB holes drilling process is not a new field. Numerous researches have been oriented towards the development of algorithms for calculating the minimum drill path between holes (Liu et al., 1999; Aoyama et al., 2004; Chang et al., 2007). First, Kolahan and Liang (1996) have formulated the problem as TSP and worked on applying tabu search algorithm to solve the problem and then, they extended their research to a more complex case (Kolahan and Liang, 2000). Consequently, several researchers have demonstrated the applicability of TSP techniques to the drilling path optimization problem over the past few years. The hopfield algorithm was used for drilling path optimization by Zhou and Shao (2003). Sigl and Mayer (2005) introduced the 2-Opt Heuristic Evolutionary algorithm in solving drill routing for CNC machine. The evolutionary ant colony system algorithm and artificial immune algorithm were used for the single objective and multiobjective drilling path optimization problems (Xiao and Tao, 2005). The drilling path optimization has been solved using genetic algorithm (Zhang et al., 2006; Oysu and Bingul, 2007; Abu Qudeiri et al., 2007; Wei Wei, 2008), ant colony algorithm (Ghaiebi and Solimanpur, 2007), particle swarm optimization (Onwubolu and Clerc, 2004), global convergence particle swarm optimization (Zhu and Zhang, 2008) followed by Adam et al. (2010) proposed the use of linear decrease inertia weight with PSO in tackling path optimization problem and Othman et al. (2011) applied binary PSO in solving the same problem. Medina-Rodriguez et al. (2012) presented a parallel ant colony optimization algorithm to find an efficient sequence of operation for a set of holes located in a PCB board that achieves the shortest tool path. Recently, Saealal et al. (2012) implemented ant colony system, Ismail et al. (2012) applied firefly algorithm, and Lim et al. (2012) proposed cuckoo search algorithm to solve this problem. Due to the exponential growth of solution space with respect to the problem size, exact approaches for the drill path optimization have been limited to small and medium size instances with 10-20 holes. As the number of holes required increases so thus does the complexity to find the optimized path. For this reason, heuristics and meta-heuristics are often used to solve realistic sized drilling path optimization problem. Metaheuristics aim to sacrifice the guarantee for optimal solution to get decent solutions in a significantly 3

reduced amount of time. Recently, nature-inspired metaheuristic algorithms perform powerfully and efficiently in solving modern nonlinear numerical global optimization problems. These kinds of metaheuristic algorithms carry out on a population of solutions and always find best solutions. The cuckoo search algorithm developed by Yang and Deb (2009) has captured much attention due to its simplicity and ease of implementation and has been applied to solve many practical optimization problems (Yang and Deb, 2010; Lim et al., 2012; Gandomi et al., 2013). There is an increasing interest in applying the new approaches and in further improving the performance of existing optimization techniques researchers are paying great attention to hybridization of two or more optimization techniques. Hybridization, in context to metaheuristics, primarily refers to the process of combining the best features of two or more algorithms together, to form a new algorithm that is expected to outperform its ancestors over application-specific or general benchmark problems. Oysu and Bingul (2009) proposed the hybrid-GASA algorithm for tool-path optimization problem and show that the hybrid approach using GA and SA produces about 1.5% better minimum path solutions than standard GA and 47% better minimum path solutions than standard SA. In this paper, the cuckoo search algorithm is hybridized with genetic algorithm called CSGA is used to solve the drilling path optimization problem. The performance and efficacy of this hybrid algorithm is validated through solving small and large size problem instances. The rest of the paper is organized as follows: mathematical formulation of the drilling path optimization in PCB holes drilling process is presented in section 2. The description and implementation of the proposed hybrid CSGA is illustrated in section 3. Section 4 cites the verification results for two case study problems and five large size case study problems. Section 5 outlines the discussion and conclusion. A comprehensive list of references ends the paper. 2. Drilling path optimization When drilling a group of holes in a PCB using a CNC drilling machine, the machine table is driven back and forth in the x and y directions so that each hole is to be drilled in its designed position. Hence, the drilling operation can be divided into two parts: the drilling of the holes, and the positioning 4

of the worktable. The total operation time for the drilling process is simply the sum of the machining time and the positioning time: t = n × tm + t(x, y)

(1)

where n is the number of holes to be machined, tm is the time taken for drilling one hole, and t(x, y) is the total time taken for the positioning of the worktable. Since n is determined by the design of the PCB, and tm is decided by the CNC program, hence optimizing the positioning time, t(x, y), reduces the total operation time for the drilling process. This can only be achieved by optimizing the drilling path. The distance between two holes are often considered to be rectilinear or Euclidean. The rectilinear distance between two points, say i and j of coordinates (xi , yi ) and (xj , yj ) respectively, can be calculated with the following equation: dR ij = |xi − xj | + |yi − yj |

(2)

The movement of the worktable in the x and y directions are realized using stepper motors. By considering this machine characteristics, the problem to be solved here is to find a sequence in which the holes are to be drilled such that the worktable positioning time is minimized. The time needed for the worktable to position itself depends strongly on the machine characteristics. In practice, usually, this travelling time cannot be computed exactly. Travelling consists of three phases: accelerating the worktable, running at full speed, slowing down to a complete stop. For small distances, full speed may not be reached and we may have anomalies in the sense that a farther position can be reached faster than a nearer position. Even if a timing function is available it may be not accurate and it will be so complicated that its evaluation takes too long for large problem instances (where we cannot store a distance matrix). Therefore one has to be satisfied with making reasonable approximations on the true movement time. In this paper, the gears are taken to rotate at the constant speed at all times. The formula to calculate the positioning time for the worktable to move from point i to point j is as follows: t(i,j) =

X |xi − xj | vx

5

+

X |yi − yj | vy

(3)

where vx and vy are the linear velocities of the worktable in the x and y directions respectively. To further simplify the problem, both vx and vy are taken to be the same, vx = vy = v  X 1 X |xi − xj | + |yi − yj | (4) v Unlike classical TSP, drilling path optimization problem does not require the cutting tool to return to its initial position. In a five holes PCB drilling problem, assuming the best drilling path found is 1 → 2 → 3 → 4 → 5. After drilling the five holes in the sequence of 1 → 2 → 3 → 4 → 5 on a workpiece, the cutting tool can remain at its final position. The next workpiece can then be drilled in the reversed sequence, 5 → 4 → 3 → 2 → 1. The distance travelled from the initial to the final position is exactly the same. t(i,j) =

3. Proposed cuckoo search-genetic algorithm Yang and Deb (2009) developed the CS optimization algorithm which was inspired by the obligate brood parasitism of some cuckoo species by laying their eggs in the nests of other host birds (often other species). Some host birds engage direct conflict with the intruding cuckoos. For example, if a host bird discovers the eggs do not belong to it, it will either throw these alien eggs away or simply abandon its nest and build a new nest elsewhere. To reduce the chance of discovery by the host birds, the female cuckoo bird also tries to lay eggs that mimics the color and pattern of the eggs of certain species of host birds. In many engineering optimization problems, the CS algorithm demonstrated its superiority to older algorithms like PSO and GA (Yang and Deb, 2010; Gandomi et al., 2013). However, cuckoo search algorithm could not be readily applied to combinatorial problems such as the traveling salesman problem, the knapsack problem, and scheduling problems. In dealing with the discrete values, the CS algorithm was hybridized with GA. In general, an ideal global optimization technique should have the following five characteristics: • True global optimum should be found in each run. • Convergence should be fast.

6

• Method should be easy and simple to implement. • Algorithm should have minimum control parameters to tune. • Algorithm should require minimum computational power to run effectively. In this proposed hybridized CSGA, we strive to achieve the above criteria. In the original CS, one cuckoo lays one egg at a time by performing L´evy flights. In the hybridized CSGA, every two parent cuckoos will reproduce two cuckoo eggs. As mentioned above, the female cuckoo bird will mimic the eggs of the host birds. To account for this behavior, a mutation operator was added to the algorithm. This will reflect the behavior of mutation of the cuckoo eggs’ genes to increase their reproductivity. Even with mutation of their genes, there is still a possibility that the alien egg will be discovered by the host bird. The discovery of the alien egg is determined by the quality of the eggs reproduced. Therefore, elitism strategy is used to only keep the high quality eggs while the poor quality eggs are discarded. Just as CS and GA are both population-based algorithm, the hybrid CSGA is a population-based algorithm. The initial population is being randomly generated so that the initial solution is distributed throughout the Objective function f (x), x = (x1 , ..., xn ) Generate initial population xi , (i = 1, 2, ..., N ) while n < maxGeneration or stopping criterion Cuckoo birds crossover to reproduce new cuckoo eggs, yi Evaluate fitness, F (yi ) if F (yi ) > F (xi ) Replace xi with yi end if Cuckoo eggs mutate and dumped into other nests Low quality eggs are discarded by host birds. Rotation of represented solutions Find the current best solution end while Figure 1: Pseudocode of cuckoo search-genetic algorithm

7

solution space. Throughout the entire run of the algorithm the population number does not change. In each generation, the population will first undergo crossover and then mutation. After each operation, some form of elitism is applied to select only the best solutions. At the end of each generation, rotation is done to the solutions to increase the exploration of the solution space for the next generation. The procedures for the algorithm is summarized in figure 1. 3.1. Solution representation In this hybrid CSGA, each cuckoo bird represents a solution in the current generation, and cuckoo eggs represent the newly generated solutions in that generation (either by crossover or mutation). In the representation of the solutions, no special encoding done; each integer in the solution corresponds to a hole to be machined. Each point to be machined is numbered with a unique number beginning from 1 with an increment of 1 until all the points are numbered. The length of the solution depends on the number of holes to be machined. For n number of holes, the solution is: x = (x1 , ..., xn )

(5)

where each element in x represents the hole to be machined. When interpreting the solution, the starting point of the cutting tool must be determined first. The distance between each adjacent points are calculated to find the two points that have longest distance between each other. For example, the solution of a 7 holes workpiece: 2

7

1

3

4

5

6

with 4 and 5 as the longest distance simply means that 5 is the starting point and 4 is the ending point. The order of the holes to be machined can then be read of 5 → 6 → 2 → 7 → 1 → 3 → 4. 3.2. Crossover operator Before carrying out the crossover operator, the order for of the solutions are randomized. Then the parent cuckoo birds are split into pairs. Two cuckoo eggs are reproduced from the two parent cuckoos. The two-point crossover technique was adopted. Two points, i and j, are randomly selected for each pair of parents. Everything between the two 8

points is swapped between the two parents, generating two eggs. When i = 4, j = 5: Parents: 2

7

1

3

4

5

6

6

5

2

4

3

1

7

7

1

4

3

5

6

6

5

2

3

4

1

7

Children: 2

However, most of the time the crossover requires some repair work to be done. In the reparation work, the repeated genes are deleted and the missing genes are added in a random order right after the swapped genes: Parents: 2

7

1

3

4

5

6

3

6

7

5

2

4

1

7

1

5

2

5

6

3

6

7

3

4

1

4

6

7

3

4

1

7

3

4

2

5

Children: 2

Reparation: Step 1: Remove repeated genes 7

1

5

2

6

Step 2: Insert missing genes 7

1

5

2

4

3

6

6

1

3.3. Mutation operator Similar to the crossover, the order for the solutions are randomized first. In the mutation operation, each cuckoo egg mutates on its own. There are altogether five types of mutation techniques used in CSGA and only one type of mutation technique will be applied to each cuckoo egg. Because of the randomization of the solution, the type of mutation technique used for every cuckoo eggs are random. The five types of mutation techniques are flipping, sliding right, sliding left, swapping, and multi-swapping. Flipping: 2

7

1

3

4

5

6 → 2 9

7

5

4

3

1

6

Sliding right: 2

7

1

3

4

5

6 → 2

7

5

1

3

4

6

7

1

3

4

5

6 → 2

7

3

4

5

1

6

7

1

3

4

5

6 → 2

7

5

3

4

1

6

3

4

5

6 → 2

7

6

1

3

4

5

Sliding left: 2 Swapping: 2

Multi-swapping: 2

7

1

3.4. Elitism Each time after the crossover and also after the mutation, a form of elitism is performed so that the best solutions are selected and maintained in the population. For the crossover procedure, if the cuckoo egg is better than the parent, the new cuckoo egg will take the place of their parents, else the parent cuckoo bird retains its place. As for the mutation procedure, if the newly mutated cuckoo egg is better than the old cuckoo bird, the newly mutated cuckoo egg will take the place of the old cuckoo bird. If the mutated cuckoo egg is a poorer solution, it is considered to be discovered as an alien egg and is discarded. This procedure is summarized with the following equation:  yi if F (yi ) > F (xi,n ) xi,n+1 = i = 1, 2, ..., N (6) xi,n otherwise 3.5. Rotation After each generation, the genes of all the cuckoo birds are rotated randomly. This rotation does not create new solutions. Rather, it merely creates variations in the represented solution so that the search for solutions, especially the crossover operation, in the next generation is more diversify: 2

7

1

3

4

5

6 → 5

10

6

2

7

1

3

4

4. Algorithm verification To simplify the verification process, equation 2 is used as the objective function. To compare the performance of the proposed hybrid CSGA with other metaheuristics algorithm, we’ve considered the two workpieces proposed by Zhu and Zhang (2008) which has also been tested with other algorithms. In their work, they solved the path optimization problem with the global convergence PSO (GCPSO) and the basic PSO (Onwubolu and Clerc, 2004). Later, Ant colony system (ACS) (Saealal et al., 2012) was applied on workpiece 2 and CS (Lim et al., 2012) was applied on both the problems. In verifying the hybridized CSGA, the maximum number of generation was set to 10000, and the population of cuckoo is set to 100 and 150 in verification 1 and verification 2 respectively. The results are the average of 50 trials. In verifying the two workpieces, different values of ω was used for both CGPSO and PSO. For comparison sake, only the best ω will be chosen to compare (ω = 50). 4.1. Workpiece 1

Figure 2: Workpiece 1

The known global optimum solution for workpiece 1 is 322.5 mm. From the results shown in table 1, all the tested algorithms managed to achieve 11

Figure 3: Workpiece 2

global convergence. Among all the algorithms, CSGA performs the best in both having the minimum generation number for global convergence and having an average of 7 generations for global convergence. Basic PSO

GCPSO

CS

CSGA

100

100

100

100

3

5

1

1

7

646

27

7

Population number Minimum generation number for global convergence Average generation number for global convergence

Table 1: Verification of CSGA for workpiece 1

4.2. Workpiece 2 In the results of the verification of workpiece 2 shown in table 2, all the algorithms also managed to converge to the global optimum at 280 mm. CSGA demonstrated its competitive effectiveness with other algorithms. Though the population number of CSGA and ACS cannot be compared due to the 12

Population number Minimum generation number for global convergence Average generation number for global convergence

Basic PSO

GCPSO

ACS

CS

CSGA

150

150

25

100

150

93

10

193

3

19

847

1620

1415

706

40

Table 2: Verification of CSGA for workpiece 2

way ACS is being programmed to work, the number of generations CSGA needed for global convergence is much lesser than ACS. Both GCPSO and CS has a lower minimum generation number for global convergence when compared to CSGA. However, CSGA is more consistent in arriving at global minimum in each run; CSGA needs only 40 generations on average to obtain global optimum. 4.3. Case study problems The performance of the proposed hybrid CSGA is further tested with larger size problem instances. The coordinates of the five case study problems are generate randomly are given in the Appendix A. The name of the problems are PCB with 30 holes, PCB with 50 holes, PCB with 75 holes, PCB with 100 holes, and PCB with 200 holes. To compare the hybridized CSGA with the standard CS and standard GA for the path optimization problem, we’ve used the combinatorial CS developed by Lim et al. (2012). There are many variants of GA in the literature that were developed for combinatorial problems; some incorporated local search strategy, or other strategies to improve the search. For meaningful comparison, GA was written using the same crossover and mutation operators as those used in CSGA without additional strategies. The selection method used in GA is the roulette wheel selection and the parameters for the GA’s crossover and mutation probability is set to 0.9 and 0.1 respectively. For each of the problems, the population size for all three algorithms is set to 50 and is made to run for 10000 generations. The average of five trials were also recorded for comparison. In the results shown in table 3, CSGA clearly outperforms both the standard CS and standard GA. In the PCB with 30 holes problem, both CS and GA did relatively well when compared to hybridized CSGA. In the PCB with 13

Case study problems PCB with 30 holes PCB with 50 holes PCB with 75 holes PCB with 100 holes PCB with 200 holes

CS

GA

CSGA

Average

Best

Average

Best

Average

Best

53.898

52.598

52.185

51.033

51.086

51.033

79.270

75.465

70.479

68.605

69.412

68.299

129.063

120.604

87.602

85.079

82.463

80.799

156.298

144.880

109.576

106.651

97.783

94.693

511.086

504.744

243.168

233.070 152.157

143.343

Table 3: Comparison of CSGA with CS and GA for case study problems

50 holes problem, both CS and GA struggled to keep up with CSGA’s performance. As for the PCB with 50 holes, 100 holes and 200 holes problem, CSGA’s dominance is unquestionable. It is also observed from figure 4-8 that CSGA converges faster than both CS and GA for all five case study problems. The optimal path obtained by CSGA for the five case study problems are shown in figure 9-13. The performance of the hybrid CSGA is compared with CS and GA. The percentage improvement of CSGA over both CS and GA is given in table 4. The performance measure employed in the numerical study is mean percentage improvement (MPI) from CS and GA for comparison of the CSGA with the CS and GA. The percentage improvement equation is described as: dX − dCSGA × 100% (7) dX where dCSGA is the average total distance obtained from CSGA, and dX is the average total distance obtained from CS and GA for each respective calculation. From table 4, CSGA has a performance improvement of 5.22% over CS for the PCB with 30 holes problem while having a performance improvement of 2.11% over GA. As the size of the problem increases, the performance of CSGA over CS and GA becomes enormous. For the PCB with 200 holes problem, CSGA has a performance improvement of 70.23% and 37.43% over MPI =

14

160 CSGA CS GA 140

Total distance

120

100

80

60

40 0

1000

2000

3000

4000 5000 6000 Generation

7000

8000

9000 10000

Figure 4: Convergence graph for PCB with 30 holes problem

350 CSGA CS GA 300

Total distance

250

200

150

100

50 0

1000

2000

3000

4000 5000 6000 Generation

7000

8000

9000 10000

Figure 5: Convergence graph for PCB with 50 holes problem

15

500 CSGA CS GA

450 400

Total distance

350 300 250 200 150 100 50 0

1000

2000

3000

4000 5000 6000 Generation

7000

8000

9000 10000

Figure 6: Convergence graph for PCB with 75 holes problem

600 CSGA CS GA 500

Total distance

400

300

200

100

0 0

1000

2000

3000

4000 5000 6000 Generation

7000

8000

9000 10000

Figure 7: Convergence graph for PCB with 100 holes problem

16

1400 CSGA CS GA

1200

Total distance

1000

800

600

400

200

0 0

1000

2000

3000

4000 5000 6000 Generation

7000

8000

9000 10000

Figure 8: Convergence graph for PCB with 200 holes problem

Generation # 10000 The total distance: 51.033

9 8 7 6 5 4 3 2 1 0

2

4

6

8

10

Figure 9: Best path for PCB with 30 holes problem by CSGA

17

Generation # 10000 The total distance: 68.299

9 8 7 6 5 4 3 2 1

0

2

4

6

8

10

Figure 10: Best path for PCB with 50 holes problem by CSGA

Generation # 10000 The total distance: 80.799

9 8 7 6 5 4 3 2 1

0

2

4

6

8

10

Figure 11: Best path for PCB with 75 holes problem by CSGA

18

Generation # 10000 The total distance: 94.693

9 8 7 6 5 4 3 2 1

0

2

4

6

8

10

Figure 12: Best path for PCB with 100 holes problem by CSGA

Generation # 10000 The total distance: 143.343

9 8 7 6 5 4 3 2 1

0

2

4

6

8

10

Figure 13: Best path for PCB with 200 holes problem by CSGA

19

Case study problems PCB with 30 holes PCB with 50 holes PCB with 75 holes PCB with 100 holes PCB with 200 holes

Average total distance

% difference

CS

GA

CSGA

CSGA/CS

CSGA/GA

53.898

52.185

51.086

5.22

2.11

79.270

70.479

69.412

12.44

1.51

129.063

87.602

82.463

36.11

5.87

156.298

109.576

97.783

37.44

10.76

511.086

243.168

152.157

70.23

37.43

Table 4: Comparison of the percentage improved of CSGA with CS and GA

CS and GA respectively. Thus, it is concluded that CSGA is slightly better than both CS and GA at smaller size problems and CSGA is significantly better at bigger size problems. 5. Discussion and conclusion In this paper, the hybrid CSGA was proposed and was compared with previous algorithms with workpiece 1, workpiece 2, and 5 case study problems of various sizes. From the comparison study of the performance of CSGA with other existing algorithms, CSGA proves to be more superior and robust in the two verification problems and the five case study problems considered in this paper. In developing the algorithm, more attention is given to the two major components of the algorithm: intensification and diversification, or exploitation and exploration (Blum and Roli, 2003). By embedding GA with standard CS, the balance between the exploration and exploitation ability further improved. This is partly due to the fact that the CSGA maintains the Lamarckian property of the solution (Gen and Cheng, 1999). Having Lamarckian property in the solutions will ensure meaningful crossover between parent cuckoo birds. The crossover of the cuckoo birds maintains partial identity of the parent cuckoo bird while allowing a diversified search in the solution space. The mutation of the cuckoo eggs contributes to the local search of the solution space by making small but logical changes in the 20

genes. The five different techniques of mutation further intensify the local search of CSGA. In addition, the elitism strategy used in CSGA ensures that best solutions are always carried forward to the next generation. Though the rotation strategy applied at the end of every generation does not directly attribute to the search for the global minimum, the rotation of the genes in the cuckoo birds enhances the exploration of future generations and greatly reduces the possibility of a premature convergence at a local minima. Furthermore, the proposed CSGA is designed in a way that there is virtually no parameters to be fine tuned. It has only two basic parameters: the population size and the generation number. The stopping criterion of the optimization algorithm can be chosen for a balance between time and solution quality desired by the user. The user can either set the maximum number of generations, or stop the algorithm if no change in solution was made after a certain number of generations. Once the stopping criterion is decided, the population size can simply be chosen based on the size of the problem. These unique characteristics of CSGA make the algorithm easy to implement and apply and will potentially be the attractive optimization technique for practical engineering optimization problems. Future works can emphasize on extending the application of this optimization technique to other combinatorial engineering optimization problems such as the redundancy allocation problem, the container loading problem, and the job shop scheduling problem.

21

Appendix A. Coordinates of the five case study problems 1. PCB with 30 holes: no.

x

y

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30

0.977 6.711 9.720 2.950 1.355 6.330 8.218 4.330 6.707 0.585 6.575 7.740 7.906 2.492 2.364 6.742 9.007 3.902 4.272 9.315 1.676 5.823 9.029 5.115 7.391 2.349 1.516 3.275 2.380 5.350

8.166 6.146 2.533 6.447 4.940 6.747 8.613 2.013 9.119 5.825 5.624 9.043 0.764 5.705 0.686 8.643 3.919 0.299 2.150 8.190 9.135 1.743 1.603 7.751 1.431 3.552 7.939 9.785 8.014 3.304

22

2. PCB with 50 holes: no.

x

y

no.

x

y

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25

0.499 5.162 0.610 8.993 9.100 9.375 8.220 2.765 0.131 7.735 0.086 7.477 0.020 0.258 2.500 8.307 5.250 2.530 6.591 1.100 1.031 7.231 8.886 1.552 1.393

2.852 8.129 7.264 7.366 6.674 1.209 0.170 9.382 4.988 0.839 5.636 3.258 0.007 7.957 2.048 0.432 6.458 8.880 4.521 7.875 4.026 9.284 4.514 0.162 5.655

26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50

7.811 9.361 3.201 9.997 6.958 9.188 3.558 1.520 3.859 8.968 2.927 7.902 3.494 4.401 4.097 3.530 4.089 0.382 2.573 3.981 3.278 4.852 8.533 3.455 5.871

5.002 2.065 1.493 1.286 9.044 7.210 9.303 2.461 9.867 6.672 1.423 0.017 7.399 0.138 3.576 3.771 8.296 9.086 1.264 3.218 3.473 5.242 5.056 5.692 5.965

23

3. PCB with 75 holes: no.

x

y

no.

x

y

no.

x

y

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25

5.965 1.677 4.727 4.796 0.433 1.036 4.286 0.424 2.076 6.331 3.605 6.731 2.787 8.084 8.385 9.210 9.665 7.114 0.003 3.507 5.611 3.905 3.642 7.514 1.887

7.012 7.849 1.263 7.601 0.620 7.662 9.093 7.890 8.881 7.797 9.689 6.948 7.757 4.566 6.135 5.432 8.985 5.961 4.645 8.064 9.931 4.034 8.208 2.136 0.125

26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50

4.090 9.646 8.618 0.307 7.073 0.987 5.051 2.707 7.004 2.904 3.609 9.055 7.852 3.722 0.969 9.619 9.172 9.045 2.552 8.643 1.201 6.201 7.818 1.926 7.354

3.375 4.775 1.760 0.775 8.889 8.039 6.213 2.904 6.044 3.768 9.922 8.481 5.028 8.444 0.297 8.112 5.316 9.524 6.140 7.263 1.898 0.062 4.719 7.200 8.680

51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75

9.070 6.307 7.731 1.651 8.109 2.996 9.489 3.274 4.734 6.921 3.204 4.134 9.239 9.855 4.404 1.606 8.124 3.382 4.430 5.654 2.603 9.771 0.392 3.864 9.686

4.499 1.143 9.342 1.889 1.275 1.717 4.702 5.930 9.262 2.074 4.011 5.648 9.877 0.629 0.398 4.889 1.384 9.949 8.390 8.723 9.832 4.061 1.178 0.665 7.269

24

4. PCB with 100 holes: no.

x

y

no.

x

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34

9.510 9.863 9.125 8.747 7.380 4.822 4.111 7.266 0.090 0.963 4.608 8.631 5.340 3.148 9.823 4.215 0.737 8.091 6.962 6.959 5.761 6.238 0.747 0.402 6.316 4.553 7.194 8.483 6.729 6.327 8.577 4.678 8.648 7.037

7.400 7.875 0.143 2.847 6.779 7.804 4.902 6.148 5.883 0.046 3.555 4.775 3.723 1.552 2.148 5.512 9.583 4.312 3.673 1.413 6.463 4.353 9.305 2.353 8.925 3.023 9.226 5.236 3.651 6.986 7.133 8.808 0.999 0.705

35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68

6.105 8.126 4.216 3.749 9.185 1.061 8.753 9.009 6.938 5.732 7.679 7.787 6.030 2.019 3.304 4.415 1.377 5.141 1.223 7.534 8.731 3.721 7.584 1.527 5.897 7.777 8.264 7.205 1.298 8.698 2.995 0.136 7.792 3.629

25

y

no.

9.550 69 3.928 70 9.783 71 7.362 72 4.146 73 3.058 74 9.777 75 7.276 76 2.797 77 2.498 78 6.933 79 0.777 80 1.885 81 4.886 82 9.679 83 6.957 84 6.174 85 3.935 86 8.342 87 2.238 88 4.216 89 1.414 90 5.618 91 6.534 92 2.504 93 1.176 94 4.981 95 4.815 96 0.877 97 4.549 98 8.948 99 4.661 100 9.131 0.691

x

y

8.573 8.723 4.266 5.728 0.314 2.680 0.989 4.330 7.080 7.753 1.320 0.008 6.760 7.523 7.351 3.803 6.490 2.522 5.438 5.535 8.056 3.046 4.609 9.423 5.515 1.194 6.337 5.010 5.756 8.801 1.560 2.904

3.765 4.558 0.596 8.617 4.123 0.463 2.108 0.203 2.884 9.938 3.131 0.877 9.928 9.458 4.296 1.776 1.420 3.615 9.060 6.921 4.216 2.213 3.497 8.424 4.957 2.265 1.445 9.552 4.504 5.501 9.147 4.556

5. PCB with 200 holes: no.

x

y

no.

x

y

no.

x

y

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35

7.501 5.974 0.295 3.219 3.990 7.551 3.258 7.744 3.110 5.536 4.801 7.177 4.243 8.945 4.473 1.003 2.037 9.346 1.949 0.044 4.769 9.999 1.240 7.261 8.097 8.068 5.415 2.909 9.692 1.279 1.793 5.566 7.017 6.778 7.582

9.722 4.677 3.650 7.819 0.700 2.063 7.081 1.547 4.101 2.235 8.477 6.765 8.858 3.658 7.042 3.128 2.237 3.033 4.396 1.050 3.050 0.275 7.749 6.118 0.018 6.407 2.404 7.083 2.283 2.038 2.231 9.725 9.134 6.476 7.515

36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70

6.381 2.421 4.012 9.451 7.296 7.733 7.801 1.642 4.116 5.047 2.044 3.835 5.740 2.753 7.877 9.123 5.290 2.528 0.043 7.760 9.098 4.708 1.457 1.046 3.723 0.927 8.291 7.035 3.866 0.041 9.856 3.184 5.735 1.898 8.961

3.560 7.093 1.329 0.272 1.958 1.815 6.199 2.492 4.254 0.136 1.288 5.490 6.882 4.579 0.581 7.722 6.121 1.284 6.526 7.527 2.043 4.866 2.969 7.368 0.953 1.333 9.085 8.632 9.110 1.243 4.153 0.990 6.773 2.444 1.787

71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105

8.791 5.513 3.904 6.675 8.736 5.540 9.014 0.720 4.665 2.619 6.291 2.958 4.860 1.927 0.321 1.274 7.968 1.876 4.023 0.158 0.929 5.806 1.190 3.145 0.257 7.896 3.215 1.656 7.026 0.522 1.038 6.125 9.273 6.175 0.694

3.204 2.653 2.967 7.834 6.197 4.993 5.534 5.750 3.924 2.986 9.145 6.064 6.279 8.855 8.390 3.436 1.540 2.824 0.130 2.251 5.378 8.939 3.418 0.913 2.945 0.354 2.415 0.443 0.478 1.720 8.010 9.820 0.853 6.622 4.434

26

5. PCB with 200 holes (continued) no.

x

y

no.

x

y

no.

x

y

106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137

7.840 9.845 8.074 5.181 8.400 7.039 0.381 9.108 5.850 0.941 2.310 1.822 4.487 4.476 1.478 1.408 3.352 0.130 2.113 1.871 6.890 8.996 3.965 4.713 2.211 4.012 0.110 1.466 6.993 6.775 6.822 8.262

9.228 7.997 2.754 1.983 5.548 9.893 6.423 6.610 7.845 2.135 3.722 9.511 1.071 7.547 9.290 9.634 6.116 3.292 5.303 7.839 8.609 5.262 6.011 7.440 9.043 2.012 8.465 0.221 6.043 4.708 0.391 6.524

138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169

8.835 4.802 4.633 1.115 0.588 5.449 9.684 0.092 1.639 0.052 5.479 2.457 4.265 8.204 0.305 4.978 7.149 3.030 7.794 6.875 7.622 3.973 7.352 1.328 7.663 0.548 8.831 6.393 4.225 5.896 1.936 4.975

6.892 5.567 3.751 5.171 1.484 0.951 6.101 0.740 4.867 4.898 3.075 5.085 1.864 9.336 2.307 1.054 9.742 5.402 4.292 0.649 5.175 6.448 8.194 3.765 0.679 9.925 4.100 5.868 7.230 6.332 4.864 4.588

170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200

1.318 0.003 8.268 6.179 9.129 3.381 1.668 7.720 4.001 4.118 8.379 6.468 8.242 1.970 9.324 1.964 9.208 9.188 0.836 2.130 4.813 3.128 4.345 4.387 7.299 2.328 4.185 6.340 4.328 7.392 3.413

2.249 5.758 0.525 7.388 1.759 1.752 9.404 4.101 1.858 7.493 0.870 3.028 0.709 6.701 8.296 8.053 8.283 8.829 9.420 2.337 7.344 7.599 8.826 8.395 6.268 7.125 8.928 1.855 6.262 8.767 2.704

27

References Abu Qudeiri, J., Yamamoto, H., Ramli, R., 2007. Optimization of operation sequence in cnc machine tools using genetic algorithm. Journal of Advanced Mechanical Design, Systems, and Manufacturing 1, 272–282. Adam, A., Abidin, A.F.Z., Ibrahim, Z., Husain, A.R., Yusof, Z.M., Ibrahim, I., 2010. A particle swarm optimization approach to robotic drill route optimization, in: Mathematical/Analytical Modelling and Computer Simulation (AMS), 2010 Fourth Asia International Conference on, IEEE. pp. 60–64. Aoyama, E., Hirogaki, T., Katayama, T., Hashimoto, N., 2004. Optimizing drilling conditions in printed circuit board by considering hole quality: Optimization from viewpoint of drill-movement time. Journal of materials processing technology 155, 1544–1550. Blum, C., Roli, A., 2003. Metaheuristics in combinatorial optimization: Overview and conceptual comparison. ACM Computing Surveys (CSUR) 35, 268–308. Chang, P.C., Hsieh, J.C., Wang, C.Y., 2007. Adaptive multi-objective genetic algorithms for scheduling of drilling operation in printed circuit board industry. Applied Soft Computing 7, 800–806. Gandomi, A.H., Yang, X.S., Alavi, A.H., 2013. Cuckoo search algorithm: a metaheuristic approach to solve structural optimization problems. Engineering with Computers 29, 17–35. Gen, M., Cheng, R., 1999. Genetic algorithms and engineering optimization. volume 7. Wiley-interscience. Ghaiebi, H., Solimanpur, M., 2007. An ant algorithm for optimization of hole-making operations. Computers & Industrial Engineering 52, 308–319. Ismail, M., Othman, M., Sulaiman, H., Misran, M., Ramlee, R., Abidin, A., Nordin, N., Zakaria, M., Ayob, M., Yakop, F., 2012. Firefly algorithm for path optimization in pcb holes drilling process, in: Green and Ubiquitous Technology (GUT), 2012 International Conference on, IEEE. pp. 110–113.

28

Khan, W., Hayhurst, D., Cannings, C., 1999. Determination of optimal path under approach and exit constraints. European journal of operational research 117, 310–325. Kolahan, F., Liang, M., 1996. A tabu search approach to optimization of drilling operations. Computers & industrial engineering 31, 371–374. Kolahan, F., Liang, M., 2000. Optimization of hole-making operations: a tabu-search approach. International Journal of Machine Tools and Manufacture 40, 1735–1753. Lim, W.C.E., Kanagaraj, G., Ponnambalam, S., 2012. Cuckoo search algorithm for optimization of sequence in pcb holes drilling process, in: Emerging Trends in Science, Engineering and Technology. Springer, pp. 207–216. Liu, J., Linn, R., Kowe, P., 1999. A study on heuristic methods for pcb drilling route optimization. INTERNATIONAL JOURNAL OF INDUSTRIAL ENGINEERING 6, 289–296. Medina-Rodriguez, N., Montiel-Ross, O., Sepulveda, R., Castillo, O., 2012. Tool path optimization for computer numerical control machines based on parallel aco. Engineering Letters 20, 101–108. Merchant, M.E., 1985. World trends and prospects in manufacturing technology. International Journal of Vehicle Design 6, 121–38. Onwubolu, G., Clerc, M., 2004. Optimal path for automated drilling operations by a new heuristic approach using particle swarm optimization. International Journal of Production Research 42, 473–491. Othman, M.H., Abidin, A.F.Z., Adam, A., Yusof, Z.M., Ibrahim, Z., Mustaza, S.M., Yang, L.Y., 2011. A binary particle swarm optimization approach for routing in pcb holes drilling process, in: Proc. of the 1st International Conference on Robotic Automation System, pp. 201–206. Oysu, C., Bingul, Z., 2007. Tool path optimization using genetic algorithms, in: Conference on Genetic and Evolutionary Methods, Las Vegas, USA, pp. 120–126. Oysu, C., Bingul, Z., 2009. Application of heuristic and hybrid-gasa algorithms to tool-path optimization problem for minimizing airtime during machining. Engineering Applications of Artificial Intelligence 22, 389–396. 29

Saealal, M., Abidin, A., Adam, A., Mukred, J., Khalil, K., Yusof, Z., Ibrahim, Z., Nordin, N., 2012. An ant colony system for routing in pcb holes drilling process. International Journal of Innovative Management, Information & Production 3, 50–56. Sigl, S., Mayer, H.A., 2005. Hybrid evolutionary approaches to cnc drill route optimization, in: Computational Intelligence for Modelling, Control and Automation, 2005 and International Conference on Intelligent Agents, Web Technologies and Internet Commerce, International Conference on, IEEE. pp. 905–910. Wei Wei, LI Jian-yong, W.H., 2008. Path optimization for pcb nc-drilling using genetic algorithm. Computer Engineering and Applications 44, 229. Xiao, R., Tao, Z., 2005. Solution to holes machining path planning by evolutionary methods. COMPUTER INTEGRATED MANUFACTURING SYSTEMS-BEIJING- 11, 682. Yang, X.S., Deb, S., 2009. Cuckoo search via l´evy flights, in: Nature & Biologically Inspired Computing, 2009. NaBIC 2009. World Congress on, IEEE. pp. 210–214. Yang, X.S., Deb, S., 2010. Engineering optimisation by cuckoo search. International Journal of Mathematical Modelling and Numerical Optimisation 1, 330–343. Zhang, W., Lu, Z., Zhu, G., 2006. Optimization of process route by genetic algorithms. Robotics and Computer-integrated Manufacturing 22, 180– 188. Zhou, K., Shao, H., 2003. Programming of holes machining route base on hopfield algorithm. Die and Mould Technology 21, 48–50. Zhu, G.Y., Zhang, W.B., 2008. Drilling path optimization by the particle swarm optimization algorithm with global convergence characteristics. International Journal of Production Research 46, 2299–2311.

30