Tool-feeder partitions for module assignment in PCB assembly

Tool-feeder partitions for module assignment in PCB assembly

Author’s Accepted Manuscript Tool-feeder partitions for module assignment in PCB assembly Csaba Raduly-Baka, Mika Johnsson, Olli S. Nevalainen www.els...

518KB Sizes 0 Downloads 55 Views

Author’s Accepted Manuscript Tool-feeder partitions for module assignment in PCB assembly Csaba Raduly-Baka, Mika Johnsson, Olli S. Nevalainen www.elsevier.com/locate/caor

PII: DOI: Reference:

S0305-0548(16)30212-X http://dx.doi.org/10.1016/j.cor.2016.08.017 CAOR4072

To appear in: Computers and Operation Research Received date: 16 December 2015 Revised date: 23 August 2016 Accepted date: 26 August 2016 Cite this article as: Csaba Raduly-Baka, Mika Johnsson and Olli S. Nevalainen, Tool-feeder partitions for module assignment in PCB assembly, Computers and Operation Research, http://dx.doi.org/10.1016/j.cor.2016.08.017 This is a PDF file of an unedited manuscript that has been accepted for publication. As a service to our customers we are providing this early version of the manuscript. The manuscript will undergo copyediting, typesetting, and review of the resulting galley proof before it is published in its final citable form. Please note that during the production process errors may be discovered which could affect the content, and all legal disclaimers that apply to the journal pertain.

Tool-feeder partitions for module assignment in PCB assembly. Csaba Raduly-Bakaa,∗, Mika Johnssonb , Olli S. Nevalainena a Department b Mentor

of Information Technology, 20014, University of Turku, Finland Graphics Development, Joukahaisenkatu 6, 20540 Turku, Finland

Abstract The assembly of electronic components on printed circuit boards is performed in a line of automated placement machines, each equipped with a feeder unit that contains the component reels required for a product type. Assembling multiple product types by a single machine requires the replacement of certain components in the feeder unit. Increasingly, assembly machines are equipped with modular feeder units, enabling the replacement of a larger group of component reels. To minimize the machine setup time, component reel modules can be preassigned with the necessary component types, thus requiring only the loading of a suitable module set for each product. This work introduces and analyses the problem of constructing the minimum number of component reel modules, with the objective that a set of jobs can be manufactured without individual component reel changes. We show that the problem is NP-hard and provide an integer programming formulation for it. We also introduce two heuristics based on job grouping, and analyze the results. Keywords: Complexity theory, Flexible manufacturing systems, Tool loading, Set-up optimization, Control of assembly process, Printed Circuit Board, Job Grouping

1. Introduction In manufacturing of printed circuit boards (PCBs), electronic components are placed by high precision automated placement machines onto bare PCBs. The placement machines are equipped with a feeder unit that can hold several component reel tapes, necessary for the assembly of a specific PCB type, see [2]. A prerequisite for the assembly of a PCB product type is that the machine has access to all the component reel types required for the product. Component reels cannot be loaded or unloaded, while assembling a PCB. This presupposes that the online feeder unit of the machine is of sufficiently large capacity, so that all component reels required for a PCB can be loaded. In flexible manufacturing systems (FMS), it is typical that a single placement machine is used to assemble multiple PCB product types (each in different batch sizes), where the difference between the ∗ Corresponding

author. Email address: [email protected] (Csaba Raduly-Baka)

Preprint submitted to Elsevier

PCB types can be small (as in the case of product variations) or rather large (when various product categories are assembled for different customers). Normally, the feeder capacity of the placement machine is not sufficiently large to hold all the component reels required by all the PCB product types. Therefore, some component reels must be removed and new ones loaded into the machine before a new PCB type batch can be processed. This setup step (swapping component reels) requires that the machine is stopped, which adds extra delay to the production and possibly impacts subsequent operations. Minimizing the machine setup time, and organizing production to reduce such delays has been extensively studied in the FMS literature. A number of problems have been identified here. First, the tool loading problem [39] asks to find the minimum number of component reel swaps, given a fixed job sequence. The delay can be further reduced, by reordering the jobs, resulting in the tool switching problem [5]. Here, the goal is to find a processing order for the PCB batches, so that the number of component reel swaps is minimized. August 27, 2016

Another approach to reduce the operational delays, caused by machine setups, is to organize jobs into groups that can be manufactured without component reel changes. Since there are similarities between jobs, multiple jobs could be manufactured with a single online feeder assignment of the component reels. This results in the job grouping problem (see [10]), where the goal is to group jobs into the minimum number of groups, so that the component reels required to manufacture PCBs in a group fit into the online feeder unit of the machine. Component setup time can also be reduced by loading components in groups. Automatic tool transporters (see [37]) can load multiple tools at once. These can reduce the setup delay, but the tools are still placed into a single feeder unit, and the location of the tools may increase the length of transporter head movements. To minimize the setup time, machine manufacturers have recently introduced modular feeder units, where the online feeder unit of the machine contains a fixed number (say 4), of replaceable component reel modules (or carriages) [28]. The capacity of the modules is the same (typically 20 to 40 reels). Examples of such machines are Fuzion from Universal, iFlex from Assemblon, and BM/NPM from Panasonic. A number of additional offline modules are commonly available in the vicinity of the machine. New component reels can be installed to the offline modules in parallel with the machine operation, without having any impact on the production time. When the production changes to a new PCB batch, instead of swapping out tools, only a few modules are exchanged. Module change costs are considerably smaller than the cost associated with changing all the component reels that fit into one module. There are multiple ways in which modular feeder units can be employed. In the simplest form, modules can be used to reduce tool switching time, by loading component reels in groups. Here the goal is to prepare a number of offline modules for the next PCB batch in parallel with the processing of the current PCB batch. In this model, it is allowed to swap both modules and individual component reels, in order to minimize the total tool switching time. The problem is NP-hard even for a fixed job sequence [28]. Another way to employ modular feeder units is to pre-assign modules with component reels so that a large number of PCB jobs (production schedule for

up to a year) can be manufactured, by using these modules and without the need to switch component reels in any modules. Since the machine feeder can hold only a limited number of modules at a time (typically 4), in a feasible solution, for each of these jobs there must be at most 4 modules that cover the job (i.e. contain all the component reels required for the job in the given machine). If the machine capacity would be only 1 module (as in traditional machine designs), this would reduce to the job grouping problem, that has been extensively covered in the literature. On the other hand, in the machine types studied here, the capacity is greater than one, resulting in the tool partitioning for module assignment (TPMA) problem. Here, a set of jobs is given, where each job is defined by a subset of components. The goal is to find a minimum number of modules and their assignments with component reels, so that each job can be covered by at most F modules, where F is the machine capacity in terms of modules. To our understanding, this type of problem has not been addressed before in the literature, in the context of machine scheduling. The problem is also of considerable practical relevance. In the present study, we show that the TPMA problem is NP-hard for any fixed value of F , introduce an integer programming formulation of the problem, and present a heuristic technique that is an extension of a job grouping heuristic. The technique is evaluated on both practical and synthetic data instances. 1.1. Literature review Since the TPMA problem is an extension of the job grouping problem (in a direction not yet addressed previously), here we limit our focus to the job grouping literature. In the job grouping problem (JGP), a set of jobs is processed on a single machine (see [5]). Each job requires a subset of tools (component reels in the case of PCB assembly) to be present in the machine. In JGP, the machine has sufficient capacity to process individual jobs, but insufficient to process all the jobs without changing tools. Therefore, the jobs are organized into groups so that, jobs of a group can be manufactured without the need to change tools (the union of their tool set fits into the online magazine of the machine). The goal is to reduce the number of groups and, as a consequence, the number of machine setup occasions. Job group2

ing is one of the combinatorial problems that occur in production scheduling (see [5], [6]). A set covering formulation for the JGP is given in [18], while the work in[10] formulates it as a column generation problem. In [21], groups are created by maximizing the number of jobs in a group, which is essentially a set covering approach. The problem is shown to be NP-hard in [40], where the authors also give a branch-and-bound method to solve it. For PCB production, job grouping is discussed in [4]. The set covering approach is further studied in [34], where the authors present a heuristic method based on similarity measures. Similarity measures are used to determine a subset of jobs that are merged into one group. Techniques based on similarity measures are popular in the job grouping literature. In [3] similarity measures are used to construct a graph of jobs, where nodes are jobs and edges are similarities between jobs. A maximum spanning tree on this graph is then constructed to determine the groups of jobs. For surface mounted PCB assembly machines, the job grouping problem is studied in [35], where a 0/1 mathematical formulation and an integrated solution approach are introduced. Based on these results an interactive system has been developed in [36] to optimize the operation of surface mounted component placement machines. Various similarity measures are evaluated in [30]; these types of measures are also used in the present work. The job grouping problem has numerous variants. In PCB manufacturing the component reels may be of different sizes, with different limits on the number of component reels that can be inserted at once into the feeder unit. This leads to the general weighted grouping problem where elements of different weights are placed into groups, subject to a weight limit [24]. In this problem there is a set of collections, each consisting of a number of elements, and the goal is to form the minimum number of groups of elements, so that each collection is covered by at least one group. It is shown in [24] that problems of this type can be reduced into a smaller form that is then solvable in practical time. Machines equipped with several different feeder units are discussed in [25]. Here the feeder units are of different types and have different capacities. The problem is different from the problem discussed in this work because we consider a single feeder unit that contains several replaceable modules, while in [25] they have several fixed feeder units of different

types, but components are still replaced individually. In [25] components are restricted by their type and can be placed only in a corresponding feeder unit. The authors show that the problem is NPhard as it is a generalization of the JGP. They also give a mathematical formulation, and propose several heuristics and compare their results. More recently, the job grouping problem is applied in [42] to planning of container transfers at seaport terminals. The authors introduce additional constraints to the problem (vehicle collision avoidance, container stacking and orientation), to handle practical challenges specific to the application. In [14] jobs are assigned to multiple machines of different types, by treating the assignment of jobs to a machine as a grouping problem. The authors extend the classical JGP into an asymmetric model, where the machines are of different types and have different capacities. 2. Problem description and complexity In the tool partitioning for module assignment (TPMA) problem a (typically large) set of jobs is given, where each job is defined by a set of component reel types required for that job. The jobs are processed on a single machine, capable of holding a limited number of component reel modules. The required component reels are fixed into modules (a.k.a. carriages), and the content of a module cannot be altered. In order to process a job, a number of modules are loaded into the online feeder magazine of the machine. The capacity of the online storage of the machine is limited, and there is room for up to F = 4 modules in the magazine, for the types of machines mentioned in the introduction. The capacity of a module is also fixed and it can typically hold up 20-40 component reels. A job can be manufactured if and only if there are at most F modules whose union contains all the component reels required for the job. A feasible solution to the TPMA problem is a set of modules, such that all the jobs of the input set can be manufactured. The goal of the TPMA problem is to find the minimum number of such modules. As opposed to the typical tooling problem, there is no particular order between the jobs in the TPMA problem, and the task does not include the sequencing these jobs. When the job sequence must be determined, the minimization of module swaps will become the traditional tool switching problem, albeit with a much smaller (F = 4) number of tools. 3

In the TPMA problem, it is not allowed to alter the content of a module once it is unloaded from the online storage space. The modules are thus considered to be fixed, and must be able to serve the predetermined set of jobs. In order to create a feasible set of modules with their components assigned, some component reel types must be available in multiple copies. The current working assumption here is that an arbitrary number of such components are available, and each component consumes the same amount of space (a slot) of the feeder module. In the following, the formal parameters and notation for the TPMA problem are introduced:

E a fixed upper limit on the number of modules that can be built. The value of E can be easily calculated from the input: a feasible trivial solution is to assign F different modules to each job, resulting in E = N · F modules. The goal here is to reduce the number of actual modules needed, by removing some of the modules from the maximum of E modules. aij an element of the the job-tool incidence matrix; aij is 1 if component i is needed in job j, 0 otherwise. In the integer programming formulation, the following decision variables are used:

N the number of jobs in the input set.

cik is 1 if component reel i is loaded into module k, 0 otherwise.

M the total number of different component reel types required by all the jobs.

sjk is 1 if module k is used by job j, 0 otherwise.

F the maximum number of component reel modules that can be loaded into the online storage space (magazine) of the machine.

bijk is 1 if component from reel i is used in job j from module k, 0 otherwise. dk module k is part of the solution (k = 1..E). If dk = 0, the module will not be needed by the jobs.

C the capacity of a component reel module. All modules have the same capacity.

The constraints of the model are:

Tj the set of component types required for a job j in the machine. As a feasibility condition, the size of Tj is not larger than the total number of component reels that can be loaded into the online modules (at most F · C).

E 

bijk ≥ aij , ∀i, j

(1)

k=1

Equation 1 ensures that for each job j and component reel i, the component reel is available in a module k that is online when the job is manufactured.

T the set of all component types. The goal of the TPMA problem is to construct the smallest set of modules and their component settings, so that any of the jobs can be manufactured by a subset of at most F modules. In practice, additional goals may be integrated into the problem, like minimizing the number of copies of a component reel type, or constructing modules that allow a smaller change cost when sequencing jobs and swapping modules between jobs. The focus in the present work is on minimizing the number of modules created.

E 

sjk ≤ F, ∀j ∈ [1..N ]

(2)

k=1

Equation 2 limits the number of modules that can be used for a job. With a maximum online capacity of F modules, there can be at most F instances of 1s for sjk . M 

cik ≤ C, ∀k ∈ [1..E]

(3)

i=1

2.1. Integer programming model

Equation 3 limits the load of a module to C. There can be at most C component reel types in a module k, this assignment is given by cik .

Next, an integer linear programming formulation of the TPMA problem is given. In addition to the notation discussed above, the following input parameters are used:

bijk ≤ sjk , ∀i, j, k 4

(4)

Equation 4 ensures that a component from reel i can be inserted from a module k into a job j if and only if the module is available for the job (sjk = 1). bijk ≤ cik , ∀i, j, k

2.2.2. TPMA is NP-hard The hardness of the TPMA problem is established by showing that its decision version (Decision-TPMA) is NP-complete. In the DecisionTPMA the input is the same as in the TPMA problem, with the addition of a fixed integer D. The goal is to decide if there is a feasible module assignment of at most D modules (feasible meaning that any of the jobs can be manufactured with at most F of these modules).

(5)

Equation 5 ensures that a component from reel i can be inserted into a job j if and only if it is available in a module k. dk ≥ cik , ∀i, k

(6)

Lemma 1. Decision-TPMA is NP-complete for any fixed value of F and arbitrary values of N and M.

Equation 6 counts the number of constructed modules. Some modules may remain empty (dk = 0), reducing the total number of needed modules. All variables are 0/1: bijk , cik , dk , sjk ∈ {0, 1}

Proof. Clearly Decision-TPMA is in NP. The NP-completeness is shown by a reduction from 3-partition. Given an arbitrary 3-partition instance, a TPMA problem instance is constructed as follows. Let Pk be a set of wk different component reels. Create a total of 3n such component reel sets (Pk , k = 1...3n), each containing different component reel types (a total of nB different component reels). Construct a total number of N = (3n)F different jobs by combining the Pk sets of component reels in all possible ways (note that F is fixed). A job Tj consists of the union of F component reel sets Pk . The resulting job sizes will vary from F · B/4 to F · B/2. Let the capacity of a module be C = B, and the total number of component reel types (as stated earlier) M = n · B. In the TPMA problem, multiple copies of component reels are allowed. As can be seen later in this reduction, if the decision problem result is a yes, there is exactly one copy of each component reel in the solution, corresponding to a digit in the unary representation of a number from the 3-partitioning problem. Given a black box that can solve the DecisionTPMA problem, we ask if there is a feasible module assignment of at most D = n modules for the above constructed instance. Claim: the answer is yes if and only if the 3-partition instance is also a yes instance (i.e. there is a partition of the numbers that satisfies the conditions). First, it must be established, that for a TPMA problem instance constructed as described above, there can be no feasible solution with less than n modules. There are nB different component reel types, and each component reel type is used by some job. Since each module can contain at most B component reels, there must be at least n modules in a feasible solution. Therefore, a yes answer

(7)

The objective is to minimize the total number of modules assigned with component reels: minimize Z =

E 

dk

(8)

k=1

2.2. Complexity As mentioned earlier, the TPMA problem has not received any previous attention in the flexible manufacturing literature. Therefore, to our knowledge, the complexity of the problem has not been previously established. In the following a proof is given that the TPMA problem is NP-hard, for any fixed number of online modules F , and arbitrary number of component reels and jobs. This is done by showing that the decision version of the TPMA problem is strongly NP-complete. The proof uses a reduction from the 3-partition problem, by constructing a TPMA problem instance from an arbitrary 3-partition problem instance. Note, that this reduction is valid only if it is assumed that the 3-partition problem is encoded in unary. This is possible because 3-partition is strongly NP-complete and it remains NP-complete even if the input is unary coded [15]. 2.2.1. 3-Partition Let us assume a multi-set S of 3n positive integers wk , a positive integer  B, where B/4 < wk < B/2 for each wk , and k∈S wk = nB. The 3partition problem asks to partition S into n disjoint for each 1 ≤ i ≤ n, the triples S1 , S2 , ..., Sn , so that sum of integers in Si is B: k∈Si wk = B. 5

P1

P2

P3

Module 1

P4

P1

P5 Module 2

P6

P7

P8

component reel sets Pk are stored in one module. This results in a partitioning of Pk (|Pk | = wk ) into modules of size B that corresponds to a solution of the 3-partition problem. To complete the reduction, it must be shown that a yes instance of a 3-partition problem results in a yes instance for the Decision-TPMA instance obtained as described earlier. Indeed, given a partition of the numbers wk into subsets Si of size 3, a module containing the 3 corresponding sets of reels Pk is created for each subset Si . The 3-partitioning then guarantees that each 3 of the sets fit into a module with capacity B. Since each reel set Pk is fully contained in a module, for any combination of F reel sets (a job in the TPMA problem instance), there exists at most F modules containing these reel sets, making the resulting TPMA solution feasible.

P9

Module 3

Figure 1: A module assignment that is not a valid 3-partition solution.

for the Decision-TPMA problem can exists only if a feasible solution with exactly n modules exists. Next, we show that the yes instances of DecisionTPMA correspond to yes instances of 3-partition. Assume that there is a feasible solution of n modules, each containing B component reels. The question here is if these modules are actual partitions of the numbers wk . Alternatively, is there a module that contains only a part of a component reel set Pk , but not the whole set. Consider the specific example of Figure 1. Here a module assignment is not a valid 3-partition solution. Since F = 3, there are jobs with any three combinations of tool sets Pk . Consider job i containing tools Ji = {P1 , P7 , P10 }. All modules of Figure 1 are fully loaded (see earlier reasoning), so there must be a fourth module containing P10 . Job Ji requires modules 1 and 2 because of tools from P1 , module 3 for tools from P7 and a fourth module containing P10 . This means that Ji cannot be manufactured, since only three online modules are allowed. That is, Ji requires four modules, because P1 is split between 2 modules. Therefore, in this example P1 should not be split into two (or more) modules in a feasible solution. More generally, let Pk be a component reel set that is split between two or more modules in the solution. The component reels of Pk can have only one copy, otherwise the total available capacity of nB component reels is exceeded, requiring more than D modules in an optimal module assignment, and therefore corresponding to a no result of the Decision-TPMA problem. Recall that all the combinations of Pk sets (containing exactly F sets) were used to create the jobs of the TPMA problem instance. Therefore, there exists a job, that uses component reel sets stored in the F − 1 other modules (not containing any reels of Pk ), and the component reels of Pk . Such a job would not be feasible to manufacture, since it would need at least two modules to make the reels of Pk available online, therefore requiring at least F + 1 online modules at the same time. This contradicts our assumption that, in a feasible solution, Pk is a component reel set that is split between two or more modules. Therefore, all

The above proof establishes the complexity of the TPMA problem for an arbitrary number of component reels and jobs, for an arbitrary but fixed value of F . In fact, as already observed in the introduction, the TPMA problem is a generalization of the job grouping problem, in that for F = 1, the TPMA problem becomes a simple job grouping problem. The complexity of the job grouping problem is known to be NP-hard [10]. Therefore, this observation also establishes the NP-hardness of the special case of the TPMA problem when F = 1. 3. Proposed algorithm Given the hardness results of the TPMA problem, an efficient heuristic is introduced that can be used to create good (albeit suboptimal) solutions for an input instance. As mentioned earlier, the TPMA problem can be seen as an extension to the job grouping problem, where parts (subset of component types) of the jobs are ”grouped” together into modules (or carriages). Since there are no previous algorithms available for the TPMA problem, and the job grouping problem has been studied and solved extensively in the literature, as a first attempt we will adapt a job grouping heuristic to the TPMA problem. In this adaptation, the job grouping heuristic is used to create groups of jobs that are then used to construct a set of F modules per each group. This heuristic is further extended with TPMA specific steps, to reduce the number of obtained modules by sharing modules between groups. 6

The goal in job grouping is to group the jobs into a minimum number of groups, so that each group can be manufactured using the same online feeder assignment. This kind of solution can immediately be converted into a TPMA solution (for an arbitrary number F of online modules), by collecting the component reels used in each job-group and creating at most F modules out of these. Since the job grouping problem is run on an instance where the online capacity is set to F · C, the resulting groups can each be manufactured with F online modules, creating a valid TPMA solution. This simple approach can be applied with arbitrary job grouping heuristics. The challenge in the case of the TPMA problem is to further reduce the number of modules, since (especially in practical cases), it is typical that PCB jobs share subsets of components, and these could be clustered into separate modules for frequent reuse. For the solution of the TPMA problem, an agglomerative hierarchical clustering scheme is selected, that has been used successfully for the job grouping problem. The agglomerative hierarchical clustering scheme has the advantage (compared to other job grouping heuristics), that the job similarity hierarchy obtained by the algorithm can also be used further to create shared modules between the groups, thus reducing the number of modules. A hierarchical clustering heuristic was first used in [29] for the job grouping problem. In hierarchical clustering, a tree structure of clusters is built, where each node represents a cluster of jobs and its child nodes are clusters that are included in the parent cluster. There are two hierarchical clustering approaches in the literature: divisive and agglomerative. For a comprehensive discussion of group setup strategies in PCB manufacturing see [41]. In the agglomerative clustering scheme of [1] a tree of job groups is built step-by-step by merging groups that are most similar, so that the capacity of the online feeder is not exceeded. Each job forms initially a separate group. A similarity metric is used to determine which groups to merge, subject to the capacity limitation of the feeder magazine. Let m(i, j) be the similarity measure between two sets of component reels Ti and Tj (of two jobs or job groups). Let G = (V, E, c) be the similarity graph of the jobs, where V = {1...N } are the jobs, E are edges between jobs and cij = m(i, j) is the similarity between two jobs. If merging two jobs i and j (or groups) results in a group with a larger reel set than

G1

G2 J3

J1

J4

G3 J5

J6

J7

J2

Figure 2: Groups of jobs created using the hierarchical clustering scheme.

the capacity F · C, there will be no edge connecting the nodes i and j. In the following agglomerative hierarchical clustering heuristic (adapted from [1]), a forest (a set of trees) X of jobs is built by merging jobs (nodes) based on their similarity. As the jobs are merged, they are removed from G and a new node corresponding to the job group is added to G. The edge costs of the new node are updated accordingly. Algorithm 1 Hierarchical clustering of jobs 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15:

function ClusterJobs(T, m) Let G = (V, E, c) Let cij = m(i, j) for all (i, j) ∈ E Edge (i, j) exists if and only if Ti ∪Tj ≤ F ·C Let X be a forest of singular trees Tj while While E = ∅ do Select (i, j) ∈ E such that cij is maximal Create a new node k in X Let Tk = Ti ∪ Tj Remove nodes i and j from G Add a new node Tk to G Update edges and costs for node k in G, using the m(k, j) similarity function. end while return X end function

The above well known algorithm stops when there are no edges left in graph G. This happens when no two groups can be merged without exceeding the capacity limitation F · C. This results in groups given by X (see Figure 2), where each job in a group can be manufactured without changing component reels (component reels are changed between groups). Observe that the similarity metric is not specified here. The job grouping literature uses a number of different similarity metrics (see [1], [30], [32] and [41]), and a number of these metrics will be tested here see Table 1. The above heuristic is already sufficient as it is, for creating feasible reel to module assignments for the TPMA problem; just split the set of component 7

Table 1: Job/group similarity metrics m(i, j) used in Section 4.

Name

Metric

Simple matching (SM)

|Ti ∩Tj |+M −|Ti ∪Tj | M

Jaccard

|Ti ∩Tj | |Ti ∪Tj |

Dice

2·|Ti ∩Tj | |Ti ∩Tj |+|Ti ∪Tj |

Inclusion measure (IM)

|Ti ∩Tj | |Ti ∩Tj |+|TJ \Ti |

Intersection (INT)

|Ti ∩ Tj |

Cosine (COS)

Ti ·Tj |Ti |·|Tj |

one or more modules, and the number of modules associated with a fragment is called the class of the fragment. The component reels of a fragment thus fit into the number of modules given by the fragment class. The final objective is to separate each fragment into class 1 fragments, i.e. a fragment fits into one module. Initially, each job (leaf node in the clustering tree X) is associated a single fragment of class F , regardless of the actual number of component reels in the fragment. Let i and j be two nodes of the tree being connected by a parent node at some step by the ClusterGroups algorithm. Each node of X has a set of associated fragments (initially 1). Let Pi denote the set of fragments associated with node i. As X is constructed, fragments are merged and split by a merge(Pi , Pj ) routine using a number of rules as follows:

reels required by each job group into F modules, to obtain a TPMA solution. In this solution, each job group uses a different set of F modules. However, in the TPMA problem some modules could be reused between groups, if the component reels are arranged in a suitable way. For example, two groups obtained with the ClusterJobs algorithm may share a common subset of component reels. These component reels (a sufficient number of them) can be rearranged in a separate module, which is then used by the two different job groups. In this way the number of modules is reduced by one. Generalizing this idea, the hierarchical clustering algorithm can be used to determine similarities between job groups, and combine groups that are most similar. Let ClusterGroups be an algorithm similar to ClusterJobs, with the difference that in line 4 of the algorithm, the capacity limitation is ignored. The ClusterGroups algorithm keeps merging jobs into groups until a final supergroup is obtained, containing all the jobs. The resulting tree of groups will then be used to reduce the number of modules. The ClusterJobs algorithm resulted in a similarity forest X of jobs and groups. The ClusterGroups algorithm continues with the merging of jobs/groups until X becomes a single binary tree. In addition to the similarity tree X of groups created by the ClusterGroups algorithm, it is also necessary to determine which subsets of reels of a group can be shared. This is done by partitioning the component reel set of a group into parts or fragments. A fragment is a subset of the component reels used by a job group. A fragment may occupy

Rule 1 If both nodes i and j have one fragment of the same class and their merging will not increase the class (number of required modules), then one new fragment is formed at the parent node that is the union of the two fragments from the child nodes. Rule 2 If either of the nodes have more than one fragment, these are sorted in increasing order of their class. A fragment of node i is split with a fragment of node j of the same class and with the largest number of common component reels between the two fragments. Splitting two fragments A and B means creating three fragments P1 = A ∩ B, P2 = A\B and P3 = B\A, if the resulting number of required modules does not increase by this operation (see rule 3). Rule 3 If two fragments cannot be merged (per rule 1) or split (per rule 2), they are added to the fragment set of the parent node without changes. Figure 3 illustrates a similarity tree obtained by the modified ClusterGroups algorithm. At each leaf node there will be one fragment of class F . At each inner node, a set of fragments are created from the fragments of the child nodes. The root will contain a large set of fragments, many of these possibly are of class 1, while some of them have a larger class which can be split into multiple fragments of class 1. The resulting set of class 1 fragments at the root node form the set of modules that is a feasible solution to the TPMA problem. This solution is further 8

improved by clustering the class 1 fragments using the ClusterJobs algorithm. Each fragment is a set of component reel types and therefore can be seen as a job. If the capacity limitation in ClusterJobs is set to C (the size of one module), the algorithm can be used to pack these fragments into a smaller number of modules. This last step of packing can produce some gain (reduction on the number of modules), but typically this turns out to be small, since the fragments are already split (by rules 1 and 2) so that the common parts are extracted. For the pseudocode of the ClusterGroups see Algorithm 2.

G4 G4

G1

G2

G3

Figure 3: Groups are further merged, and fragments are separated.

4. Computational Experiments In this work, two methods are proposed to solve the TPMA problem. First, an existing job grouping method is used to create job groups where each group can be manufactured with a single feeder unit assignment (ClusterJobs). This results in a fixed set of F modules per group. The solution is further improved, with a TPMA specific extension to the hierarchical clustering scheme, by searching for shared fragments of the groups and assigning them to modules (ClusterGroups). These modules will be shared by several groups, therefore reducing the total number of required modules.

Algorithm 2 Job clustering with fragments. The merge procedure applies the fragment merging rules 1, 2 and 3. 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16:

function ClusterGroups(T, m) Let G = (V, E, c) Let cij = m(i, j) for all (i, j) ∈ E Let X be a forest of singular trees Tj , while While E = ∅ do Select (i, j) ∈ E such that cij is maximal Create a new node k in X Let Tk = Ti ∪ Tj Remove nodes i and j from G Add a new node Tk to G Update edges and costs for node k in G, using the m(k, j) similarity function. Let Pi and Pj be the fragment set of nodes i and j. Let Pk = merge(Pi , Pj ) be the set of the parent node. end while return X end function

4.1. Data Sets Both of the proposed TPMA solution methods were tested on three different data sets. The first (industrial) data set contains 341 jobs and 410 components (D341 ) and was provided by our partner from industry. The jobs are typical small, most of the jobs have between 15 to 55 components, the two largest jobs having 90 components. Here, the minimum online capacity was set to 100 (4 modules with 25 slots each). The first data set parameters are reported in rows 1-3 of Table 2 as (Name, M, N, C, F ), where C is the capacity of one module and F is the number of online modules. The second data set is randomly generated in a similar way as described in [7]. Here a number of N jobs are created, by randomly selecting a subset of component reels from a set of M component reels, each job having between min and max number of components. The second data set parameters are reported (in Table 2) as (M, N, min, max, C, F ). The third data set is also generated randomly (similarly to the second data set), using a scheme that better models practical scenarios. In practical data instances it is typical that different PCB 9

Table 2: The various data set parameters used in the test instances.

Row 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

Type Dense Sparse Sparse Dense Sparse Dense Sparse Dense Sparse Dense Sparse Dense Sparse Dense Sparse

for ClusterJobs and ClusterGroups are reported in Tables 3 and 4, respectively. The number of modules are reported as a percentage of a trivial solution, where each job would use its own F modules, resulting in a total of F ·N modules. For each similarity measure, the first column contains 100 · FR·N where R is the resulting number of modules. This illustrates the performance of the heuristics by comparing it to the trivial solution, where smaller percentages are better. The second column contains the number of wasted module slots relative to the total number of module slots (R · C), where again smaller values are better. In a feasible module assignment for a TPMA problem, there may be some slots in these modules that are not used. These slots are left empty because some job groups may not fully use the online capacity F · C, and because the packing of fragments will certainly not result in an optimal solution. The amount of wasted slots is also an important metric to report, because it correlates with the quality of a module assignment. A typical instance was solved in a second or less. For the randomly generated instances, 100 different instances were tested and the results were averaged. We also solved very small instances using the IP model. Using the second data generation method, the instances were of the form (10, 3, 4, 5, 3, 2) and (10, 4, 4, 5, 3, 2). That is, 10 components in 3 and 4 jobs, with 2 online modules of capacity 3, each job containing 4 or 5 components. For solving the IP we used the gplk solver. For the 3-job instance, the solution produced by ClusterGroups and the optimal solution had both 3 modules, while for the 4-job instance, the optimal solution had 3 modules and our heuristic reported 4 modules.

Data Set (D341, 410, 341, 25, 4) (D341, 410, 341, 30, 4) (D341, 410, 341, 50, 2) (100, 50, 40, 80, 20, 4) (100, 50, 20, 40, 20, 4) (160, 60, 40, 80, 20, 4) (160, 60, 40, 80, 30, 4) (160, 100, 20, 40, 20, 4) (160, 100, 20, 40, 30, 4) (100, 50, 3, 4, 16, 20, 40, 20, 4) (100, 50, 3, 4, 16, 20, 20, 20, 4) (160, 100, 3, 4, 16, 20, 40, 20, 4) (160, 100, 3, 4, 16, 20, 20, 30, 4) (200, 100, 3, 4, 16, 20, 40, 20, 4) (200, 100, 3, 4, 16, 20, 20, 30, 4)

types share some common parts. For example a subset of components S1 may be a part of several jobs (S1 ⊂ T1 , S1 ⊂ T2 and S1 ⊂ T3 ), while the remaining parts of these jobs differ. This is mainly because nowadays product variations are small customizations of the same common design. The third data set is generated randomly by creating a set S of random subsets of component reels, or parts (20 subsets for example) from M different reel types. Each part, is a randomly selected subset of the components, and the size of the part (i.e. the number of different component types) is also randomly selected between parameter values min and max. The jobs are then generated by randomly selecting a number of parts from S. The number of parts selected for a job is also a randomly selected number between parameter values minp and maxp. Rows 1-3 of Table 2 contain the industrial data set with different values of C (module capacity) and F (number of online modules). Rows 4-9 show the parameters of the second data set type (randomly generated), in the form: (M, N, min, max, C, F ). Rows 10-15 state the parameters of the third data set (also randomly generated), in the form: (M, N, minp, maxp, min, max, part, C, F ).

4.3. Observations ClusterGroups improves over ClusterJobs by finding common subsets between these groups. The improvements of ClusterGroups over ClusterJobs method are reported in Table 5, as the reduction (in percentage) obtained by ClusterGroups over ClusterJobs for each similarity measure. The main observation to be made from the resulting module assignments is the remarkable reduction on the number of modules (and wasted slot space) between the ClusterJobs and ClusterGroups methods. ClusterJobs applies only a job grouping method and creates the modules directly from these

4.2. Results The algorithms were implemented in C++ and the tests were run on a 2.3 GHz desktop computer. The similarity metrics of Table 1 were used to evaluate job-to-job similarities. The numerical results 10

Row 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

Row 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

SM 7.9% 5.4% 3.4% 40.9% 14.7% 57.6% 26.5% 23.0% 10.5% 21.0% 16.0% 35.3% 6.7% 40.2% 10.0%

6.1% 5.9% 6.6% 3.9% 3.7% 6.1% 2.9% 6.7% 4.1% 4.8% 4.4% 6.3% 4.6% 6.6% 4.8%

SM 10.5% 10.5% 7.3% 11.7% 4.3% 10.7% 65.6% 7.5% 21.0% 8.3% 80.0% 10.2% 37.3% 10.6% 31.8% 11.9% 14.8% 11.3% 31.7% 7.8% 22.3% 6.4% 53.0% 11.2% 9.1% 6.7% 60.4% 12.5% 14.0% 9.1%

Jaccard 7.6% 3.4% 5.2% 4.9% 3.6% 4.5% 39.3% 3.6% 15.3% 1.5% 57.3% 4.9% 23.3% 2.1% 20.4% 3.9% 9.3% 1.4% 21.0% 3.4% 16.3% 3.0% 34.9% 4.6% 7.1% 2.3% 40.5% 5.0% 9.5% 3.6%

Jaccard 9.1% 5.3% 6.2% 6.0% 4.0% 4.5% 61.2% 4.7% 18.5% 2.2% 78.5% 9.5% 31.7% 3.1% 26.7% 4.9% 12.2% 1.6% 28.8% 4.4% 20.8% 4.5% 51.3% 10.1% 8.2% 3.5% 59.4% 11.9% 12.6% 6.0%

Dice 7.6% 3.4% 5.2% 4.9% 3.6% 4.5% 39.3% 3.6% 15.3% 1.5% 57.3% 4.9% 23.3% 2.1% 20.4% 3.9% 9.3% 1.4% 21.0% 3.4% 16.3% 3.0% 34.9% 4.6% 7.1% 2.3% 40.5% 5.0% 9.5% 3.6%

Dice 9.1% 5.3% 6.2% 6.0% 4.0% 4.5% 61.2% 4.7% 18.5% 2.2% 78.5% 9.5% 31.7% 3.1% 26.7% 4.9% 12.2% 1.6% 28.8% 4.4% 20.8% 4.5% 51.3% 10.1% 8.2% 3.5% 59.4% 11.9% 12.6% 6.0%

IM 7.8% 3.1% 5.8% 2.1% 3.7% 2.2% 41.3% 4.4% 15.0% 3.3% 56.8% 4.7% 26.0% 2.7% 21.7% 3.9% 10.3% 1.9% 22.0% 4.7% 17.3% 4.1% 35.4% 5.0% 8.3% 2.4% 40.4% 5.0% 10.7% 3.8%

IM 9.3% 4.4% 6.5% 2.1% 4.1% 4.7% 63.5% 5.8% 20.2% 4.1% 78.5% 9.4% 36.9% 9.6% 28.1% 6.5% 13.3% 2.6% 32.9% 7.7% 23.6% 6.1% 51.8% 9.9% 9.7% 3.6% 58.9% 11.3% 14.3% 6.0%

INT 7.7% 0.8% 5.9% 1.7% 3.9% 2.4% 39.6% 3.3% 15.8% 1.4% 56.8% 4.4% 23.7% 1.9% 20.7% 3.4% 9.2% 1.2% 23.0% 2.3% 18.0% 1.7% 35.0% 4.0% 7.1% 1.5% 40.6% 3.8% 9.7% 2.5%

INT 8.8% 0.7% 6.1% 1.6% 3.9% 2.4% 60.6% 4.0% 18.7% 1.9% 78.1% 9.3% 32.1% 3.1% 26.8% 3.8% 12.1% 1.4% 29.2% 3.2% 20.6% 2.9% 48.8% 7.9% 7.6% 2.2% 57.1% 10.3% 11.8% 2.9%

COS 7.5% 1.8% 5.0% 2.4% 3.5% 2.3% 39.4% 3.6% 15.2% 1.3% 57.3% 4.9% 23.3% 2.1% 20.3% 3.7% 9.1% 1.4% 21.1% 3.3% 16.2% 3.1% 35.2% 4.4% 6.9% 2.3% 40.7% 4.4% 9.5% 3.3%

COS 8.7% 4.0% 5.8% 3.2% 3.8% 5.2% 61.2% 4.7% 18.1% 2.1% 78.5% 9.5% 31.6% 3.2% 26.4% 4.5% 11.8% 1.6% 28.7% 4.3% 20.6% 4.3% 51.2% 10.0% 8.0% 3.7% 59.3% 11.9% 12.3% 5.5%

Time 4.5 4.6 4.6 3.7 2.8 15.1 6.3 16.9 15.9 3.0 3.0 20.4 17.7 2385.2 21.1

Time 4.3 4.5 4.6 1.2 2.6 1.5 4.7 12.9 15.1 2.4 2.6 5.2 17.3 4.8 19.9

Table 3: Module count improvements and wasted space obtained with the ClusterJobs procedure. For each similarity measure, the first column contains improvement over the trivial solution, while the second column contains the wasted space, smaller values are better. Results in rows 4-15 are averages of 100 runs. Time is in seconds. Table 4: Module count improvements and wasted space obtained with the ClusterGroups procedure. For each similarity measure, the first column contains improvement over the trivial solution, while the second column contains the wasted space. Time is in seconds.

11

groups. The results for ClusterGroups indicate that considerable reduction on the number of module is obtained in most cases, by splitting the groups into fragments and merging the fragments into modules. Observe that ClusterGroups is an agglomerative hierarchical clustering scheme, that can be applied on the groups produced by any other heuristic. Job grouping is a well researched problem, and literature provides numerous techniques to solve it. The second observation is that there is a difference in improvements for sparse and dense instances (see labeling in Table 2). In sparse instances the total online capacity F · C is much larger than the largest job, and therefore better job grouping is possible (fewer number of job groups are created). This is also indicated in Tables 3 and 4, where a smaller module count is obtained for sparse instances. On the other hand, the ClusterGroups heuristic results in larger improvements over the basic ClusterJobs heuristic in the case of dense instances. This is shown in Table 5 as follows: rows 1, 2 and 3 are similar instances with increasing sparsity. Starting from row 4, we have pairs of dense/sparse instances of similar size. The results show that for dense instances, the improvement obtained by ClusterGroups is consistently (but not significantly) better (larger percentages). In dense instances, the available online capacity is much closer or equal to the largest job size. Here, the initial job grouping results in a much larger number of groups, which means a larger number of modules is created by ClusterJobs. The further improvement by ClusterGroups can now be larger, and in many cases a reduction of more than 30% in the number of modules has been obtained. Similar improvements are observed also in the amount of wasted space (slots in modules that are not used); here the reduction is often greater than 50%.

SM 2.6% 4.3% 1.8% 5.9% 0.9% 4.1% 24.7% 3.7% 6.3% 4.6% 22.4% 4.1% 10.9% 7.7% 8.9% 5.2% 4.3% 7.2% 10.7% 2.9% 6.3% 2.0% 17.7% 4.9% 2.4% 2.1% 20.2% 5.9% 3.9% 4.3%

Jaccard 1.5% 1.9% 1.0% 1.0% 0.4% -0.1% 21.8% 1.1% 3.2% 0.7% 21.1% 4.6% 8.4% 1.1% 6.3% 0.9% 2.9% 0.2% 7.9% 1.0% 4.5% 1.4% 16.3% 5.5% 1.1% 1.2% 18.8% 6.9% 3.1% 2.4%

Dice 1.5% 1.9% 1.0% 1.0% 0.4% -0.1% 21.8% 1.1% 3.2% 0.7% 21.1% 4.6% 8.4% 1.1% 6.3% 0.9% 2.9% 0.2% 7.9% 1.0% 4.5% 1.4% 16.3% 5.5% 1.1% 1.2% 18.8% 6.9% 3.1% 2.4%

IM 1.5% 1.3% 0.7% -0.0% 0.4% 2.5% 22.3% 1.4% 5.2% 0.8% 21.8% 4.8% 10.9% 6.9% 6.5% 2.5% 3.0% 0.7% 10.9% 3.1% 6.3% 2.0% 16.4% 4.9% 1.5% 1.3% 18.5% 6.3% 3.5% 2.1%

INT 1.1% -0.1% 0.2% -0.1% 0.0% 0.0% 21.0% 0.7% 3.0% 0.4% 21.3% 4.8% 8.4% 1.1% 6.1% 0.4% 2.9% 0.3% 6.2% 0.9% 2.6% 1.2% 13.9% 3.8% 0.4% 0.7% 16.5% 6.4% 2.1% 0.5%

COS 1.2% 2.2% 0.8% 0.9% 0.3% 2.9% 21.8% 1.1% 2.9% 0.8% 21.2% 4.6% 8.4% 1.1% 6.2% 0.8% 2.7% 0.2% 7.6% 0.9% 4.4% 1.2% 16.0% 5.7% 1.1% 1.4% 18.6% 7.5% 2.8% 2.2%

Table 5: Improvement in percentages of the number of groups and wasted space of ClusterGroups over ClusterJobs.

5. Conclusion

Row 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

In the present work we studied the tool partitioning for module assignment problem that has not been previous addressed in the literature. A formal definition of the TPMA problem was given, along with an integer programming formulation. The NPhardness of the problem was established by a reduction from the 3-partition problem. It shows that trying to solve the problem optimally will be impractical for any instance of significant size. Two heuristic methods were proposed to efficiently create solutions for the TPMA problem. 12

First, it was observed that the TPMA problem can be viewed as an extension of the common job grouping problem. This observation leads to the suitability of any existing job grouping heuristic for the TPMA problem. A well known agglomerative hierarchical clustering scheme was applied to find initial job groups and a feasible module assignment. The TPMA problem is a nontrivial extension of the job grouping problem, because the goal is not to group jobs, but group parts of jobs (assuming F > 1). This motivates the search for an improvement over the module assignments obtained by the job grouping heuristic. To this end, the ClusterGroups heuristic was introduced. The heuristic has the advantage of reusing the hierarchical clustering scheme on parts of the jobs identified as common fragments. The improvement obtained by identifying and packing these fragments is significant, as shown in the results. The TPMA problem is of interest in the design of assembly processes for high-mix-low-volume production. To make the presentation easier to follow, a number of simplifying assumptions were made. First, all the component reel widths are uniform (one slot). Modules are of the same capacity and of the same kind, in that any component reel can be assigned to any module. These assumption may not be valid in some practical scenarios. Also, in the TPMA problem there were no restrictions on the number of available copies of a component reel type. In practice, some component reel types may be available in a limited number of copies, and this can further restrict how they can be assigned to modules. These are variants and extensions of the TPMA problem that will be addressed in future research.

[6]

[7]

[8]

[9]

[10]

[11]

[12]

[13]

[14]

[15]

[16] [17]

[18]

6. References

[19]

[1] Anderberg, M.R., 1973. Cluster Analysis for Applications, Academic Press, New York. [2] Ayob, M., Kendall, K., 2008. A survey of surface mount machine optimization: Machine classification, European Journal of Operational Research, Vol. 186, pp. 893-914. [3] Bhaskar, G., and T. T. Narendran. 1996. Grouping PCBs for set-up reduction: A maximum spanning tree approach. International Journal of Production Research 34.3: 621-632. [4] Carmon, Tali F., Oded Z. Maimon, and Ezey M. DarEl. 1989. Group set-up for printed circuit board assembly. The International Journal of Production Research: 1795-1810. [5] Crama, Y., 1997. Combinatorial optimization models for production scheduling in automated manufacturing

[20]

[21]

[22]

13

systems. European Journal of Operational Research 99, 136-153. Crama, Y., van de Klundert, J., Spieskma, F.C.R., 2002. Production planning problems in printed circuit board assembly, Discrete Applied Mathematics, Vol. 123, No 1-3, pp. 339-361. Crama, Y., Kolen, A.W.J., Oerlemans, A.G., 1994. Minimizing the number of tool switches on a flexible machine, The International Journal of Flexible Manufacturing Systems, Vol. 6, pp. 33-54. Crama, Y., Moonen. L.S., Spieskma, F.C.R., Talloen, E., 2007. The tool switching problem revisited, European Journal of Operational Research, 182, pp. 952-957. Crama, Y., Oerlemans, A. G., and Spieksma, F. C. (2011). Production planning in automated manufacturing. Springer Publishing Company, Incorporated. Crama, Y., Oerlemans, A.G., 1994. A column generation approach to job grouping for flexible manufacturing systems. European Journal of Operational Research 78, 58-80. Crama, Y., van de Klundert, J., 1999. Worst-case performance of approximation algorithms for tool management problems. Naval research logistics 46, 445-462. Crama, Y., van de Klundert, J., 1996. The approximability of tool management problems. METEOR, Maastricht research school of Economics of Technology and Organizations. Crama, Y., Oerlemans, A. G., Spieksma, F. C., 1996. The job grouping problem for flexible manufacturing systems: some extensions. In Production Planning in Automated Manufacturing (pp. 139-169). Jans, R., and Desrosiers, J. (2013). Efficient symmetry breaking formulations for the job grouping problem. Computers and Operations Research, 40(4), 1132-1142. Garey, M.R., Johnson D.S., 1978. ”Strong” NPCompleteness results: Motivation, Examples, and Implications. Journal of the ACM (JACM), 25(3) pp. 499508. Garey, M.R., Johnson D.S., 1979. Computers and intractability. A guide to the theory of NP-completeness. Hertz, A., Laporte, G., Mittaz, M., Stecke, K. E. (1998). Heuristics for minimizing tool switches when scheduling part types on a flexible machine. IIE transactions, 30(8), 689-694. Hirabayashi, R., H. Suzuki, and N. Tsuchiya. 1984. Optimal tool module design problem for NC machine tools. Journal of the Operations Research Society of Japan. 27.3, 205-229. Hirvikorpi, M., Knuutila, T., Johnsson, M., and Nevalainen, O. S. (2005). A general approach to grouping of PCB assembly jobs. International Journal of Computer Integrated Manufacturing, 18(8), 710-720. Hashiba, S. and Chang, T. C. 1992. Heuristic and simulated annealing approaches to PCB assembly setup reduction. Proceedings of the IFIP TC5/WG5. 3 Eight International PROLAMAT Conference on Human Aspects in Computer Integrated Manufacturing. NorthHolland Publishing Co. Hwang, S. A constraint-directed method to solve the part selection problem in flexible manufacturing systems planning stage. 1986. Proceedings of the Second ORSA/TIMS Conference on Flexible Manufacturing Systems. Elsevier Science Publishers Amsterdam. Hwang, S. S., and Shogan, A. W. 1989. Modeling and solving an FMS part selection problem. International

Journal of Production Research 27.8: 1349-1366. [23] Johnsson, M., Puranen, M., Lehtinen, J., Leip”al”a, T., and Nevalainen, O. (1997). On the work process organization of surface mounted component printing. Turku Centre for Computer Science. [24] Knuutila, T., and Nevalainen, O. (2002). A reduction technique for weighted grouping problems. European Journal of Operational Research, 140(3), 590-605. [25] Knuutila, T., Hirvikorpi, M., Johnsson, M., and Nevalainen, O. (2004). Grouping PCB assembly jobs with feeders of several types. International Journal of Flexible Manufacturing Systems, 16(2), 151-167. [26] Leon, V. Jorge, and Brett A. Peters. 1996. Re-planning and analysis of partial setup strategies in printed circuit board assembly systems. International Journal of Flexible Manufacturing Systems 8.4: 389-411. [27] Maimon, O. and Shtub, A. 1991. Grouping methods for printed circuit board assembly. The International Journal of Production Research 29.7: 1379-1390. [28] Raduly-Baka Cs., Nevalainen O.S. 2015. “The modular tool switching problem”. In European Journal of Operations Research. Vol. 242, pp. 100-106. [29] Raz, T., Yaung, T., 1994, Heuristic clustering based on a measure of inclusion, International Journal of Industrial Engineering, 1, 57-65. [30] Salonen, K., Johnsson, M., Smed, J., Johtela, T., Nevalainen, O., 2000. A Comparison of Group and Minimum Setup Strategies in PCB Assembly. Proceedings of Group Technology/Cellular Manufacturing World Symposium, Vol. 1. San Juan, Puerto Rico, 2000. [31] Salonen, K., Smed, J., Johnsson, M., Nevalainen, O., 2006. Grouping and sequencing PCB assembly jobs with minimum feeder setups, Robotics and ComputerIntegrated Manufacturing, Vol. 22, pp. 297-305. [32] Shafer, S.M., Rogers, D.F., 1993, Similarity and distance measures for cellular manufacturing. Part I. A survey, International Journal of Production Research, 31, 1133-1142. [33] Shafer, S.M., Rogers, D.F., 1993, Similarity and distance measures for cellular manufacturing. Part II. An extension and comparison, International Journal of Production Research, 31, 1315-1326. [34] Shtub, A., and Maimon, O. 1992. Role of similarity measures in PCB grouping procedures. The International Journal of Production Research, 30(5), 973-983. [35] Smed, J., Johnsson, M., Puranen, M., Leip”al”a, T., and Nevalainen, O. (1999). Job grouping in surface mounted component printing. Robotics and ComputerIntegrated Manufacturing, 15(1), 39-49. [36] Smed, J., Johtela, T., Johnsson, M., Puranen, M., and Nevalainen, O. (2000). An interactive system for scheduling jobs in electronic assembly. The international journal of advanced manufacturing technology, 16(6), 450-459. [37] Song, C.Y, Hwang, H. 2002. “Optimal tooling policy for a tool switching problem of a flexible machine with automatic tool transporter.” In International journal of production research Vol. 40.4, pp. 873-883. [38] Stecke, K. E., 1983. Formulation and solution of nonlinear integer production planning problems for flexible manufacturing systems. Management Science 29.3, 273288. [39] Tang, C.S., Denardo E.V., 1988. Models arising from a flexible manufacturing machine, Part I: Minimization of the number of tool switches, Operations Research,

Vol. 36, No. 5, pp. 767-777. [40] Tang, C.S., Denardo E.V., 1988. Models arising from a flexible manufacturing machine, Part II: Minimization of the number of switching instants, Operations Research, Vol. 36, No. 5, pp. 778-784. [41] Yilmaz, I.O., 2008, Development and evaluation of setup strategies in printed circuit board assembly. Gabler Edition Wissenschaft. [42] Yuan, S., Skinner, B. T., Huang, S., Liu, D. K., Dissanayake, G., Lau, H., and Pagac, D. (2011). A job grouping approach for planning container transfers at automated seaport container terminals. Advanced Engineering Informatics, 25(3), 413-426.

14