10
PRODUCTION MANAGEMENT Reconfiguring flexible machine modules of a PCB assembly line Attila To ´th Timo Knuutila Olli S. Nevalainen Received: 27 January 2009 / Accepted: 24 November 2009 / Published online: 9 December 2009 Ó German Academic Society for Production Engineering (WGP) 2009 Abstract Assembly of electronic components to Printed Circuit Boards (PCB) is a complicated manufacturing process and therefore its control is usually divided into several subtasks which are handled separately. We consider the combined task of determining a machine configuration and line balancing for a single assembly line of intercon- nected, reconfigurable machine modules and one PCB type in production. The modules can be tailored to the needs of each PCB type by suitable assignments for placement heads, nozzles and feeders. Out of these, the component-to- machine assignment appears to be most difficult and we propose five different solution methods for it; brute force, random, greedy, local search and genetic algorithm. The genetic algorithm outperformed the other methods in practical test. Keywords Printed circuit board Modular placement machine Flexible manufacturing Line balancing Machine reconfiguration 1 Introduction Organizing the assembly process of Printed Circuit Boards (PCB) is a common optimization task in the electronics assembly industry [1]. Since the production process uses automatic placement machines instead of manual workers and these machines become even faster and more compli- cated, there is an urgent claim for utilizing well-founded quantitative techniques for optimizing the configuration of the production lines and their use. Accordingly, three fac- tors are of special importance: quality of products, speed of the assembly process and costs of equipments and labour. Therefore, faster production with less cost means higher profit [2]. Responding to the growing demands of markets, facto- ries raise their productivity by using several assembly lines with several machines and by producing different PCB types simultaneously. This condition makes planning and control of the production process complicated, hence a hierarchical decomposition approach is necessary [3]. The trend to shorten life cycles of consumer products has increased the importance of the flexibility of assembly machines. As a result of this there are currently modular reconfigurable machines available (like Fuji NXT or Sie- mens Siplace). One can build of them a production line suited for the particular PCB-type in production. This kind of machines consists of a set of interconnected identical modules. Each module is of the so-called gantry-type which contains a feeder unit holding component reels, a moveable arm with changeable head and changeable noz- zles inserted into the head (Fig. 1). The speciality of this machine type is that each module can be reconfigurated. In particular, different heads, nozzles and feeders can be installed to machine modules such that the assembly task will be effective. Configuring a production line in an optimal way is a non-trivial task because one has to consider several factors, like many different component types should be inserted on the PCB, different component types require different head and nozzle types in their placement operations. Further, as there may be several different head types that can hold A. To ´th University of Szeged, Szeged, Hungary T. Knuutila (&) O. S. Nevalainen Department of Information Technology and TUCS, University of Turku, Turku, Finland e-mail: knuutila@utu.fi 123 Prod. Eng. Res. Devel. (2010) 4:85–94 DOI 10.1007/s11740-009-0200-2

Reconfiguring flexible machine modules of a PCB assembly line

  • Upload
    utu

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

PRODUCTION MANAGEMENT

Reconfiguring flexible machine modules of a PCB assembly line

Attila Toth • Timo Knuutila • Olli S. Nevalainen

Received: 27 January 2009 / Accepted: 24 November 2009 / Published online: 9 December 2009

� German Academic Society for Production Engineering (WGP) 2009

Abstract Assembly of electronic components to Printed

Circuit Boards (PCB) is a complicated manufacturing

process and therefore its control is usually divided into

several subtasks which are handled separately. We consider

the combined task of determining a machine configuration

and line balancing for a single assembly line of intercon-

nected, reconfigurable machine modules and one PCB type

in production. The modules can be tailored to the needs of

each PCB type by suitable assignments for placement

heads, nozzles and feeders. Out of these, the component-to-

machine assignment appears to be most difficult and we

propose five different solution methods for it; brute force,

random, greedy, local search and genetic algorithm. The

genetic algorithm outperformed the other methods in

practical test.

Keywords Printed circuit board �Modular placement machine � Flexible manufacturing �Line balancing � Machine reconfiguration

1 Introduction

Organizing the assembly process of Printed Circuit Boards

(PCB) is a common optimization task in the electronics

assembly industry [1]. Since the production process uses

automatic placement machines instead of manual workers

and these machines become even faster and more compli-

cated, there is an urgent claim for utilizing well-founded

quantitative techniques for optimizing the configuration of

the production lines and their use. Accordingly, three fac-

tors are of special importance: quality of products, speed of

the assembly process and costs of equipments and labour.

Therefore, faster production with less cost means higher

profit [2].

Responding to the growing demands of markets, facto-

ries raise their productivity by using several assembly lines

with several machines and by producing different PCB

types simultaneously. This condition makes planning and

control of the production process complicated, hence a

hierarchical decomposition approach is necessary [3].

The trend to shorten life cycles of consumer products

has increased the importance of the flexibility of assembly

machines. As a result of this there are currently modular

reconfigurable machines available (like Fuji NXT or Sie-

mens Siplace). One can build of them a production line

suited for the particular PCB-type in production. This kind

of machines consists of a set of interconnected identical

modules. Each module is of the so-called gantry-type

which contains a feeder unit holding component reels, a

moveable arm with changeable head and changeable noz-

zles inserted into the head (Fig. 1). The speciality of this

machine type is that each module can be reconfigurated. In

particular, different heads, nozzles and feeders can be

installed to machine modules such that the assembly task

will be effective.

Configuring a production line in an optimal way is a

non-trivial task because one has to consider several factors,

like many different component types should be inserted on

the PCB, different component types require different head

and nozzle types in their placement operations. Further, as

there may be several different head types that can hold

A. Toth

University of Szeged, Szeged, Hungary

T. Knuutila (&) � O. S. Nevalainen

Department of Information Technology and TUCS,

University of Turku, Turku, Finland

e-mail: [email protected]

123

Prod. Eng. Res. Devel. (2010) 4:85–94

DOI 10.1007/s11740-009-0200-2

different numbers of nozzles, one must consider the nozzle-

to-head and component-to-nozzle compatibilities.

Numerous approaches have been proposed for line bal-

ancing in general [4] and for PCB assembly processes [5].

For PCBs the applications differ in the number and the type

of machines, in terms of the objective function (such as

production cost minimization, workload balancing, process

time reducing, etc.), or the solution method. To mention

some works, a mathematical model for the line balancing

problem is described in [6]. Heuristic approaches include

branch-and-bound [7, 8], greedy [9], tabu search [10],

genetic algorithm [11] and immune algorithm [12]. Most of

the algorithms do not consider the characteristic of all

mechanical components of the machines, e.g. heads or

nozzles.

In this work we consider the machine configuration and

line balancing (MCLB) in the case of a single PCB type

manufactured by an assembly line of reconfigurable

machine modules. Our task is to configurate the modules

and allocate the component placements to the modules

such that the total production time is minimized. The

MCLB problem is of combinatorial nature and it contains

numerous crisp constraints. Because practical problems are

normally large we content with sub-optimal solutions, see

[13] on general theory of optimization. The MCLB prob-

lem is related to the tool mounting problem [14] in a

production process utilizing a flexible flow line of numer-

ically controlled (NC) machines. Here, nozzles, heads and

feeder units can be interpreted as tools to be allocated to

the NC machines. In addition, we must consider the

interdependencies of the module-to-part allocations in

MCLB. An other possibility is to interpret the machine

configuration and line balancing as a case of optimizing a

simultaneous production process of a batch of identical

jobs. From the point of view of line balancing the problem

is of the flow line type [4, 5].

2 Machine configuration and line balancing problem

Consider the task of assembling N components to a bare

PCB. Our interest is in efficient production of a single

batch of PCBs of the same type. Suppose that there are

t different component types and the number of placements

of component type i is ci. The assembly line consists of a

reconfigurable machine with m modules. In addition, there

are other working units including a glue/paste dispenser, an

oven and a test station. It is assumed that component

placement is the bottleneck of the process and it is there-

fore necessary to minimize the time consumed by the

assembly machine modules. Reconfigurable machine

design means here that each module can be equipped with

different head types and feeder units to match the particular

component types of the PCB. Reconfiguration is done off-

line, i.e. when changing the PCB batch. Each module is

equipped with a stationary PCB holding table, a stationary

feeder unit and a moveable arm with a single multi-nozzle

placement head. There are h different head types with

different nozzle capacities and in total n nozzle types.

Furthermore, we assume that a sufficient number of copies

of each head type and nozzle type exist. The nozzle

assignment is static, i.e. they can not be changed on the fly

during the processing of a PCB batch. The placement times

per component (thi) and the time for picking-up a com-

ponent from the feeder (tpi) are module (i) dependent

constants. The compatibility of the heads and nozzles (a

head type is able to handle a set of nozzle types), the

components and nozzles (a nozzle type is able to handle a

set of component types) and the components and heads

(follows transitively from the previous two relations) are

given with matrices HN, CN and CH, where

HNi;j¼1; if head type i and nozzle type j are compatible

0; otherwise

CNk;j¼1; if component type k and nozzle type j are compatible

0; otherwise

CHk;i¼1; if component type k and head type i are compatible

0; otherwise

ð1Þ

We suppose that the width of the component types (wi)

(number of slots in the feeder unit), the capacity of the

feeder unit (number of feeder slots), placing times (thj) and

pick-up times (tpj) for each machine type j are given. As a

simplification we suppose that a nozzle type can be inserted

into only one head type and a component type can be

handled with only one nozzle type. Figure 2 gives a sample

Fig. 1 Reconfigurable

assembly machine with three

modules

86 Prod. Eng. Res. Devel. (2010) 4:85–94

123

MCLB problem which is similar to a small sized real life

problem.

We say that a module configuration (head, nozzles,

feeder) and component-to-machine assignment is feasible

if it fulfils the constraints:

C1. Each placement is assigned to a module.

C2. No more nozzles are assigned to a placement head

than it can contain.

C3. A nozzle is not assigned to a head if they are not

compatible.

C4. If a component is assigned to a machine, at least one

nozzle capable of handling that component type is

assigned to its head.

C5. The total width of the assigned components to a head

does not exceed the total capacity of the feeder unit

of the corresponding machine.

In the MCLB problem the aim is to determine for a

single PCB type a feasible machine line configuration and

component-to-machine assignment which minimizes the

total processing time for a PCB batch. The problem can be

solved by making three assignments for each machine

module:

mhj = the head type assigned to module j,

xi,j = the number of components of type i assigned to

module j,

yi,j = the number of nozzles of type i assigned to the

head of module j.

Solutions of these three assignments are interconnected

and have an effect to each others. So, in order to get the

globally best solution, one should consider them jointly,

yet this would be too complex for problems of practical

size. Here we solve the assignments successively and

iteratively (Fig. 3). Head assignment is done first because it

fixes largely the two later assignments. The iteration of the

assignments is restricted to components and nozzles though

in general there are cases where different variations of head

assignments should be checked.

Minimization of the total assembly time of a PCB batch

means the minimization of the assembly time of the

slowest machine (the bottleneck module) of the line. The

operation of a machine module proceeds as a sequence of

task blocks consisting of four steps: (1) pick-up compo-

nents to the nozzles of the head; (2) move the head to the

position of the first component placement on the PCB; (3)

place the components to their proper positions on the PCB,

and (4) move the head back to the feeder area. It is sup-

posed that the placement time depends linearly on the

number of components, the component placement time of

the head and the number of task blocks. The objective

function of MCLB is thus:

min maxj2 1;2;...;mf g

Xt

i¼1

xi;j � ðthj þ tpjÞ !

þ a� tbj

( )ð2Þ

where tbj is the number of task blocks of machine j, and a

is a time factor connected to task blocks (including the time

for moving between PCB and feeder area and the time for

camera checking).

One can calculate tbj from the allocated nozzles in the

head and the number of components assigned to the

module. For a given nozzle type this value is defined as the

total number of the assigned compatible component

Component types (t) = 8 Machine modules (m) = 4 Head types (h) = 2 Nozzle types (n) = 5 Placements (c) c1=30, c2=20, c3=10, c4=5, c5=3, c6=3, c7=2, c8=1

Head-nozzle compatibility (HN)

Component-nozzle compatibility (CN)

Component widths (w): w1=1, w2=2, w3=3, w4=4, w5=5, w6=5 w7=5, w8=7 Nozzles in the head types (ht): ht1=4, ht2=1 Feeder capacity (fc) = 12 Placing time (th): th1=1 th2=1, th3=1, th4=1 Pick-up time (tp): tp1=1 tp2=1, tp3=1, tp4=1

Nozzle types Head Types

1 1 1 0 00 0 0 1 1

Nozzle types

Com

pone

nt ty

pes

1 0 0 0 01 0 0 0 00 1 0 0 00 0 1 0 00 0 1 0 00 0 0 1 00 0 0 0 10 0 0 0 1

Fig. 2 A simple MCLB problem

Fig. 3 Solving the MCLB

problem

Prod. Eng. Res. Devel. (2010) 4:85–94 87

123

placements of different component types divided by the

number of installed nozzles of that type. Then, tbj is the

maximum of the number of task blocks for each nozzle

type of the head. Assuming that in each module the com-

ponent placements are distributed among all compatible

nozzles and the nozzles are filled-up greedily, we have

tbj ¼ max8i2N 0j�N

Ptk¼1 xk;j � CNk;i

yi;j

� �ð3Þ

where Nj0 is the set of the nozzle types assigned to the head

of machine j.

Obviously, the expression (3) should be rounded up;

however, by ignoring this, the landscape of the objective

function becomes smoother and more efficient to search on it.

3 Assignment of heads to modules

One can calculate a collection of the placement heads for

the modules by knowing the component types and their

number of copies on the PCB. At this level of the problem

hierarchy the workload of the bottleneck module is mea-

sured as the total number of component placements.

Because we do not know the nozzle-to-head assignment

yet, we can not use the more accurate formula (2) and (3).

On the other hand, we consider the capacities of the heads

and feeder units while assigning heads to modules. The

resulting assignment (mh) also determines implicitly what

nozzle types can be assigned to each head/module later.

When grouping the component types by the compatible

head types, there are two lower bounds for the number of

copies of each head type j:

LBj1: Nozzle requirement

The component types assigned to a head type (j)

determine the nozzle types (S) to be installed to the

heads of that type. The minimal number of heads (of

type j) can be calculated as Sj j=htj� �

.

LBj2: Feeder capacity

Because each module has a single placement head, one

can determine the number of required modules for each

head type using the information about the component

sets. One should consider here the total feeder space

(counted as the number of the feeder unit slots) needed

by the components assigned to a head type, divide it by

the number of slots in the feeder unit of the module (fc)

and finally round up the result.

The final lower bound of the number of the heads of type

j (at the same time the number of modules equipped with

head type j) is LBj = max{LBj1, LBj

2}.

Let Lj be the total number of those component place-

ments that are compatible with head type j divided by the

head capacity. It indicates the requisiteness of head type j,

Lj ¼Pt

i¼1 ci � CHi;j

htjð4Þ

Let L be the sum of Lj - s.

As mentioned above, we want to allocate initially the

heads of the m available modules in proportion to the number

of placements compatible with heads. Therefore, denote by

kj the number of modules equipped with head type j:

kj ¼ m� Lj

L

� �ð5Þ

Due to the rounding in (5), some machines may remain

free, i.e. without an assigned head. Considering the lower

bounds, LBj, two cases can be detected:

1. To fulfill the lower bounds more modules are needed to

use some head types than remained unequipped. Then,

iteratively reduce the number of the heads in increasing

order of the fractional pieces of kj while bearing in

mind the lower bounds. If there is no such head type

available, there is no feasible solution for the problem.

2. As for having fulfilled all the bounds, there are some

modules free. Then, assign to them the head types in

decreasing order of the fractional pieces of kj.

Notice that fulfilling LBj ensures a feasible solution for

the MCLB problem. Satisfying LBj1 means that there is

enough place in the heads for every needed nozzle type;

thus, every component type can be assigned to at least one

head equipped with a suitable nozzle. Fulfillment of LBj2

guarantees that there is sufficient feeder unit space for each

head type so that the components can be stored in the

feeder units of the machine modules.

Pseudo-code of the head-assignment is found in the

Appendix.

4 Assignment of components to heads

Given a head-to-module assignment (mhi, i = 1–m) and

our task is to determine the assignment of component

placements to heads (xi,j, i = 1–t, j = 1–m). To evaluate

the component-to-head assignment, the nozzle-to-head

assignment must be considered, since they restrict each

others. Thus, both assignments must be evaluated together

using the objective function (2). Due to the large search

space of the component distributions among the heads,

heuristics for the component-to-head assignment seem to

be particularly suitable; five such methods were imple-

mented in the present study. Three of these (Brute force,

Random, Greedy) are very simple and give a starting point

for comparisons. Local Search and Genetic Algorithm have

been successfully applied in other combinatorial problems

and their implementation for MCLB is rather natural.

88 Prod. Eng. Res. Devel. (2010) 4:85–94

123

Brute Force. The brute force method generates all fea-

sible assignments of the placements to the compatible

heads for all component types.

Random. The component placements of component

types are distributed randomly among the compatible heads

so that the solution respects the constraints C1 to C5. For

pseudo-code of Random see Appendix.

Greedy. The first steps of this method are similar to the

nozzle-to-head assignment (to be considered later), since to

define a uniform distribution of the component placements

one has to determine the nozzle assignment to the heads

from the number of the component placements. Component

placements are then distributed uniformly to compatible

heads. See Appendix for pseudo-code.

Local Search (LS). An initial feasible solution (fulfilling

C1 to C5) is generated by Random. New feasible neigh-

bouring solutions are then produced by moving some

component placements from a head to another feasible

head while the solution is improving. A head is feasible for

a component type if the feeder unit has enough slots for the

reel and the needed nozzle can be assigned to the head. For

pseudo-code see Appendix.

5 Genetic algorithm

Genetic algorithms (GA) [15] perform simultaneous search

for optimal solutions by maintaining a collection (called

population) of candidate solutions (individuals). Each

individual is coded as an array of elements (commonly bits

or integers) called chromosome and new individuals are

produced by two operations: mutation and crossover.

Selection of parents for mating plays an important role

when forming new generations of the population. Here, the

aim is to improve the overall objective function value

(fitness) of the individuals and at the same time avoid the

premature convergence of the population to a suboptimal

solution (i.e. preserve the diversity of the solutions).

Representation of individuals. Individuals are expressed

by the component-to-machine assignment (x-matrix).

Initial population. An initial population of Npop indi-

viduals (i.e. feasible solutions) is generated using Random.

Crossover operation. Uniform crossover is used on the

columns (modules) of x-matrix. A random bitvector states

the way of constructing the two offsprings (Fig. 4a). As the

head-to-machine assignment equals in both individuals,

this method does not violate the head-component compat-

ibilities. However, the number of placements of some

component types may be incorrect and C1 may be violated

(Fig. 4b). Consequently, we need a balancing method on

the rows (i.e. the component types):

If a component type (i) has more than ci placements,

decrease the assigned values on every head equally keeping

the proportion of the number of the placements among the

heads (Fig. 4b row 1).

Otherwise, if a component type has fewer placements

than it should, increase the assigned nonzero values equally

to reach the correct number, (Fig. 4b row 2). If all values

are zero in the row, spread the components equally among

the suitable heads. It can happen that there is no such head

because the feeder unit is full the and the component type

requires a new nozzle type while the head is full, see row 7

and 8 of Offspring 1. The components on the heads should

then be rearranged which leads to a new difficult problem.

These offsprings are therefore rejected.

Fig. 4 An example of uniform

crossover with feasibility

correction. The mask is (1 0 1 0)

Prod. Eng. Res. Devel. (2010) 4:85–94 89

123

5.1 Mutation operation

For each head i and component type j assigned to i, gen-

erate with a given probability a random number r [ [1, xi,j].

Then, move r components from head i to another randomly

selected feasible head (fulfilling constraints C2 to C5).

5.2 Selection

The roulette wheel selection [15] is used for selecting the

parents to the crossover. Parents are chosen on the basis of

their fitnesses calculated by (2).

5.3 Replacement

The original population and the offsprings of mutations and

crossover operations are stored in a pool of from which the

best individuals are selected to the new generation.

6 Assignment of nozzles to heads

The head-to-machine (mh-matrix) and component-to-head

assignments (x-matrix) are known at this point. Notice that the

component-to-head assignment step gives a feasible solution.

So, there must be a feasible solution for the nozzle-to-head

problem, too. Because it was supposed that each nozzle type

can be installed to only one head type we can determine the

solution of the nozzle-to-head assignment (y-matrix) for each

head in separation. Therefore, consider a head j, the set of the

assigned components to head j and the nozzle types for these

component types. Initially one nozzle of each required type is

assigned to the head j to ensure the feasibility of the solution.

The remaining free nozzle holding places of the head are then

distributed by the size of the component groups:

r jz ¼ r j �

d jz

d j

� �ð6Þ

where dzj is the number of the component placements for

nozzle type z on head j, dj is the sum of them and rj is the

number of the free nozzle places on this head. As a result of

rounding, there can be some free places unoccupied which

are allocated to the nozzle types in decreasing order of the

fraction of the rzj numbers.

7 Results of the experimental tests

The five solution algorithms for MCLB were implemented

in MatLab. To evaluate the effect of the component-to-

head assignment algorithms we performed test runs with

five problem instances of different sizes, see Table 1. As

the structure of PCBs can be rather various, the parameters

of the test problems vary accordingly. Still, their proportion

follows real life PCB instances in production. For the

parameters of the test problem 2 see Fig. 2.

The brute force method proved to be useless, since it ran

in reasonable time for the smaller test instances (the first

three).

The parameters for GA:

population size = 10,

probability of the mutation = 0.1,

probability of the crossovers = 0.8,

number of generations = 100.

The parameters of LS:

maximum number of iterations = 5,000,

maximum number of unsuccessful iterations = 50.

A summary of results for problem 5 with different a-

values (0, 1, 2, 5, 10) is shown in Fig. 5. Each problem

instance was solved 20 times with each algorithm (observe

that the algorithms are stochastic). The setting of a = 0

means that the objective function omits the number of task

blocks, whereas larger a-values give larger weights to the

movements between the PCB and feeder unit. GA outper-

formed the other methods for all a-settings. A large a-value

(10) was rather difficult even for it (Fig. 5e). Results for

Greedy and LS were scattered in particular for large a-

values. The same trend is also visible in Fig. 6 where the

results are for a = 10 and all test problems.

Table 2 gives a summary of results for a = 0, 5 and 10.

Results for other a-values exhibit the same trend (data not

shown). GA worked robustly in these tests; its best and

average results are very close to each other. Results for LS

and Greedy are more scattered and their overall perfor-

mance is worse. While LS found the same best result as GA

in 6 out of total 15 problem instances, Greedy was weaker

in this respect.

8 Concluding remarks

We made some simplifications in our problem statement

which would be worth further studies. In particular, the

estimation of the placement times was linear with no regard

Table 1 Test problems

Component

types

Machines Head

types

Nozzle

types

Placements Feeder

capacity

1 8 5 2 5 55 10

2 8 4 2 5 74 12

3 10 5 3 8 100 20

4 20 8 4 10 320 30

5 40 8 4 15 525 30

90 Prod. Eng. Res. Devel. (2010) 4:85–94

123

to the topology of the PCBs or ordering of the components

in the feeder unit. Introduction of a more complicated time

model [16] were possible.

The value of parameter a was left intentionally free. It is

machine dependent and also depends on the dimension of

the PCB. We only looked at five obvious extreme cases.

Value a = 0 stands for the case where the dimensions of

the PCB are large in comparison to the distance between

the side of the PCB and the feeders. Values a = 2 and

a = 5 present higher importance for the number of task

blocks. Value a = 10 stands for the case when movements

on the PCB area and on the feeder unit are minimal.

Heuristic methods were applied in the present study. The

authors try currently to solve the MCLB-problem exactly by

mathematical optimization methods. While the practical

usefulness of this approach is questionable, we can evaluate

the heuristics (for small instances using large computation

time). Application of techniques for tool management

problems may bring a new perspective to MCLB.

Appendix

Pseudo-code of the head assignment method:

1. For each head type j:

a. Define the lower bound LBj.

b. Define kj, the initial number of copies of head type j.

2. Let K be the number of extra machines.

3. For every head type j, where LBj [ kj:

Increase the number of copies of head type j with

LBj - kj and decrease K by the same amount. If K \ 0

Fig. 5 Distribution of the results for test problem 5 with different a-values in (2). The bars show the frequency of finding a solution at a given

range (20 repetitions)

Prod. Eng. Res. Devel. (2010) 4:85–94 91

123

after this operation, decrease the number of copies of

those head types i where LBi \ ki one by one in

increasing order of the fractional part of ki values. If

finally K \ 0, there is no feasible solution.

4. If K [ 0, increase the number of copies of the head

types in decreasing order of the fraction of the kj - s.

Pseudo-code of the Random assignment method:

1. Ensuring the feasibility of the solution:

a. Define the set of feasible component types Sz for

each nozzle type z.

b. Assign one placement from each component set Sz

(of a randomly selected component type) to a

randomly selected suitable machine in random

order of sets Sz (z = 1–n). This step ensures that

every nozzle type will be installed to at least one

head on the nozzle-to-head assignment step (con-

straint C4).

c. Assign one placement of each component type

(which was not selected step b) to a randomly

selected suitable head/machine. This ensures that

the placements of all component types are

assigned to at least one head (constraint C1)

2. The rest of the placements:

For each component type

a. Generate a random order of the heads.

b. Assign a randomly selected number of the com-

ponent placements to the current head considering

the constraints C2–C5.

c. If there are unassigned placements, take the next

head in the order (if there is no more left, start

again with the first one) and return to step b.

Fig. 6 Distributions of the results for problems 1–5 with a = 10 (20 repetitions)

92 Prod. Eng. Res. Devel. (2010) 4:85–94

123

Pseudo-code of the Greedy assignment method:

1. Define the set Sz for type nozzle type z.

2. Calculate for each nozzle type z the total number of

copies of the nozzles to be placed into the heads of

machine modules considering

a. capacity of the head type,

b. number of heads of this type defined by the head

assignment step and

c. number of placements of components in Sz.

3. The nozzle capacity of the assigned heads is distrib-

uted among the different nozzle types z in proportion

to the number of placements in Sz sets.

4. For each nozzle type z and component type i calculate

the value Rz,i as the proportion of the number of

component placements of type i to the total number of

placements in set Sz.

5. For each component type i, assign Rz,i component

placements to each head compatible with i.

Pseudo-code of the Local Search assignment method:

1. Produce a feasible initial solution using the Random

method.

2. Generate a new solution in the following way:

a. Randomly select a head (j).

b. Randomly select a component type assigned to

this head (i).

c. Generate a random number r [ [0, xi,j] (where xi,j

is the number of component placements of type i

assigned to head j).

d. Randomly select another suitable head (j0) as the

target of the operation. A head is suitable if the

component assignment does not violate any con-

straint (C4 and C5).

e. Move r components from head j to head j0.

3. Keep the new solution if it is better than the previous one.

4. Terminate the algorithm if the search has been

unsuccessful during a given number of iterations,

otherwise continue with step 2.

References

1. Ayob M, Kendal G (2208) A survey of surface mount device

placement optimization: machine classification. Eur J Oper Res

186(3):893–914

2. Ho W, Ji P (2006) Optimal production planning for PCB

assembly in Springer Series in Advanced Manufacturing

3. Smed J, Johnsson M, Puranen M, Leipala T, Nevalainen O (1999)

Job grouping in surface mounted component printing. Robot

Comput Aided Manuf 15:39–49

4. Pinedo ML (2008) Scheduling: theory, algorithms, and systems.

Springer, New York

5. Hayrinen T, Johnsson M, Johtela T, Smed J, Nevalainen O (2000)

Scheduling algorithms for computer-aided line balancing in

printed circuit board assembly. Prod Plan Control 11(5):497–510

Table 2 Summary of test result for problems 1–5 with weight a = 0, 5, 10 (20 repetition)

Problem Random Greedy Local search Genetic

Average Best Average Best Average Best Average Best

Case a = 0

1 53,30 38,00 39,50 36,00 39,30 34,00 34,30 34,00

2 86,70 68,00 74,90 68,00 74,60 68,00 68,00 68,00

3 116,80 92,00 92,00 90,00 90,40 90,00 90,00 90,00

4 181,60 136,00 119,70 114,00 137,30 116,00 113,00 112,00

5 349,60 282,00 262,60 256,00 282,70 252,00 250,00 250,00

Case a = 5

1 91,55 63,00 69,33 62,67 64,39 57,33 58,58 55,67

2 173,29 130,50 128,21 119,00 124,85 118,00 118,49 118,00

3 163,33 127,00 127,02 125,33 126,82 123,67 124,25 123,00

4 277,42 197,33 164,54 154,88 164,87 154,00 155,98 150,67

5 491,09 376,75 330,74 315,67 333,77 321,29 320,55 315,57

Case a = 10

1 131,50 86,00 96,53 89,33 93,33 81,00 82,91 78,67

2 248,73 184,00 201,40 170,00 182,85 168,00 168,55 168,00

3 213,45 170,67 161,18 152,00 162,11 152,00 156,73 152,00

4 332,60 245,33 206,82 191,75 215,36 198,00 198,62 190,00

5 584,81 491,00 408,17 381,33 408,18 392,50 388,71 377,00

Prod. Eng. Res. Devel. (2010) 4:85–94 93

123

6. Sze MT, Ji P, Lee WB (2001) Modeling the component assign-

ment problem in PCB assembly. Assem Autom 21(1):55–60

7. Kodek DM, Krisper M (2004) Optimal algorithm for minimizing

production cycle time of a printed circuit board assembly line. Int

J Prod Res 42(23):5031–5048

8. Hillier MS, Brandeau ML (2001) Cost minimization and work-

load balancing in printed circuit board assembly. IIE Trans

33:547–557

9. Duman E, Yildirim MB (2005) Workload balancing in printed

circuit board assembly shops. Dogus Univ J 6(1):67–78

10. Wan YF, Ji P (2001) A tabu search heuristic for the component

assignment problem in PCB assembly. Assem Autom 21(3):236–240

11. Ho W, Ji P (2007) The line assignment and the component

allocation problems, optimal production planning for PCB

assembly, Springer Series in Advanced Manufacturing, pp 85–

108

12. Khoo LP, Alisantoso D (2003) Line balancing of PCB assembly

line using immune algorithms. Eng Comput 19(2/3):92–100

13. Bazaraa MS, Sherali HD, Shetty CM (2006) Nonlinear pro-

gramming: theory and algorithms, 3rd Edition

14. Gray AE, Seidmann A, Stecke KE (1993) A synthesis of decision

models for tool management in automated manufacturing. Man-

age Sci 39(5):549–567

15. Michalewicz Z (1996) Genetic algorithms ? data structures =

evolution programs, 3rd edn. Springer, Berlin

16. Laakso T, Johnsson M, Johtela T, Smed J, Nevalainen O (2002)

Estimating the production time in PCB assembly. J Electron

Manuf 11(2):161–170

94 Prod. Eng. Res. Devel. (2010) 4:85–94

123