Skip to main content
Log in

A new novel local search integer-programming-based heuristic for PCB assembly on collect-and-place machines

  • Full Length Paper
  • Published:
Mathematical Programming Computation Aims and scope Submit manuscript

Abstract

This paper presents the development of a novel vehicle-routing-based algorithm for optimizing component pick-up and placement on a collect-and-place type machine in printed circuit board manufacturing. We present a two-phase heuristic that produces solutions of remarkable quality with respect to other known approaches in a reasonable amount of computational time. In the first phase, a construction procedure is used combining greedy aspects and solutions to subproblems modeled as a generalized traveling salesman problem and quadratic assignment problem. In the second phase, this initial solution is refined through an iterative framework requiring an integer programming step. A detailed description of the heuristic is provided and extensive computational results are presented.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

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

Similar content being viewed by others

References

  1. Ahmadi, J., Ahmadi, R., Matuso, H., Tirupati, D.: Component fixture positioning/sequencing for printed circuit board assembly with concurrent operations. Oper. Res. 43(3), 444–457 (1995)

    Article  MATH  Google Scholar 

  2. Altinkemer, K., Kazaz, B., Köksalan, M., Moskowitz, H.: Optimization of printed circuit board manufacturing: integrated modeling and algorithms. Eur. J. Oper. Res. 124(2), 409–421 (2000)

    Article  MATH  Google Scholar 

  3. Applegate, D., Bixby, R., Chvatal, V., Cook, W.: CONCORDE TSP solver. Website http://www.tsp.gatech.edu/concorde.html (2009)

  4. Ayob, M., Kendall, G.: A triple objective function with a Chebychev dynamic pick-and-place point specification approach to optimise the surface mount placement machine. Eur. J. Oper. Res. 164(3), 609–626 (2005)

    Article  MathSciNet  MATH  Google Scholar 

  5. Ayob, M., Kendall, G.: A survey of surface mount device placement machine optimisation: machine classification. Eur. J. Oper. Res. 186(3), 893–914 (2008)

    Article  MathSciNet  Google Scholar 

  6. Ball, M.O., Magazine, M.J.: Sequencing of insertions in printed circuit board assembly. Oper. Res. 36(2), 192–201 (1988)

    Article  MathSciNet  Google Scholar 

  7. Barnhart, C., Johnson, E., Nemhauser, G., Savelsbergh, M., Vance, P.: Branch-and-price: column generation for solving huge integer programs. Oper. Res. 46(3), 316–329 (1998)

    Article  MathSciNet  MATH  Google Scholar 

  8. Burke, E.K., Cowling, P.I., Keuthen, R.: Effective heuristic and metaheuristic approaches to optimize component placement in printed circuit board assembly. In: Proceedings of the 2000 Congress on Evolutionary Computation, vol. 1 (2000)

  9. Clarke, G., Wright, J.: Scheduling of vehicles from a central depot to a number of delivery points. Oper. Res. 12(4), 568–581 (1964)

    Article  Google Scholar 

  10. Crama, Y., van de Klundert, J., Spieksma, F.C.R.: Production planning problems in printed circuit board assembly. Discrete Appl. Math. 123(1–3), 339–361 (2002)

    Article  MathSciNet  MATH  Google Scholar 

  11. Dijkstra, E.W.: A note on two problems in connexion with graphs. Numer. Math. 1(1), 269–271 (1959)

    Article  MathSciNet  MATH  Google Scholar 

  12. Ellis, K.P., Kobza, J.E., Vittes, F.J.: Development of a placement time estimator function for a turret style surface mount placement machine. Robot. Comput. Integr. Manuf. 18(3–4), 241–254 (2002)

    Article  Google Scholar 

  13. Ellis, K.P., Vittes, F.J., Kobza, J.E.: Optimizing the performance of a surface mount placement machine. IEEE Trans. Electron. Packag. Manuf. [see also IEEE Transactions on Components, Packaging and Manufacturing Technology, Part C: Manufacturing] 24(3), 160–170 (2001)

  14. Feremans, C., Grigoriev, A.: Approximation schemes for the generalized geometric problems with geographic clustering. METEOR, Maastricht research school of Economics of TEchnology and ORganizations; University Library, Universiteit Maastricht (2004)

  15. Fischetti, M., Salazar Gonzalez, J.J., Toth, P.: The symmetric generalized traveling salesman polytope. Networks 26(2), 113–123 (1995)

    Article  MathSciNet  MATH  Google Scholar 

  16. Fischetti, M., Toth, P.: The generalized traveling salesman and orienteering problems. Comb. Optim. 12, 609–662 (2002)

    MathSciNet  Google Scholar 

  17. Franceschi, R.D., Fischetti, M., Toth, P.: A new ILP-based refinement heuristic for vehicle routing problems. Math. Program. 105(2), 471–499 (2006)

    Article  MathSciNet  MATH  Google Scholar 

  18. Golden, B.L., Raghavan, S., Wasil, E.A.: The vehicle routing problem: latest advances and new challenges, vol. 43 of Operations Research/Computer Science Interfaces Series. Springer (2008)

  19. Grunow, M., Günther, H.O., Schleusener, M., Yilmaz, I.O.: Operations planning for collect-and-place machines in PCB assembly. Comput. Ind. Eng. 47(4), 409–429 (2004)

    Article  Google Scholar 

  20. Gyorfi, J.S., Wu, C.H.: An efficient algorithm for placement sequence and feeder assignment problems with multiple placement-nozzles and independent link evaluation. IEEE Trans. Syst. Man Cybern.: Part A: Syst. Hum. 38(2), 437 (2008)

    Article  Google Scholar 

  21. Haberle, K.R., Graves, R.J.: Cycle time estimation for printed circuit board assemblies. IEEE Trans. Electron. Packag. Manuf. [see also IEEE Transactions on Components, Packaging and Manufacturing Technology, Part C: Manufacturing], 24(3), 188–194 (2001)

  22. Haimovich, M., Kan, A.H.G.R., Stougie, L.: Vehicle Routing: Methods and Studies. North-Holland, 1988, ch. Analysis of heuristics for vehicle routing problems, pp. 47–61

  23. Hirvikorpi, M., Knuutila, T., Johnsson, M., Nevalainen, O.: A general approach to grouping of PCB assembly jobs. Int. J. Comput. Integr. Manuf. 18(8), 710–720 (2005)

    Article  Google Scholar 

  24. Ho, W., Ji, P.: Component scheduling for chip shooter machines: a hybrid genetic algorithm approach. Comput. Oper. Res. 30(14), 2175–2189 (2003)

    Article  MATH  Google Scholar 

  25. Ho, W., Ji, P., Dey, P.K.: Optimization of PCB component placements for the collect-and-place machines. Int. J. Adv. Manuf. Technol. 37(7), 828–836 (2008)

    Article  Google Scholar 

  26. ILOG Inc.: CPLEX linear optimizer and mixed integer optimizer v. 11.0. Website http://www.ilog.com (2009)

  27. Ji, P., Wan, Y.F.: Planning for printed circuit board assembly: the state-of-the-art review. Int. J. Comput. Appl. Technol. 14(4), 136–144 (2001)

    Article  Google Scholar 

  28. Kazaz, B., Altınkemer, K.: Optimization of multi-feeder (depot) printed circuit board manufacturing with error guarantees. Eur. J. Oper. Res. 150(2), 370–394 (2003)

    Article  MATH  Google Scholar 

  29. Knuutila, T., Pyottiala, S., Nevalainen, O.S.: Minimizing the number of pickups on a multi-head placement machine. J. Oper. Res. Soc. 58(1), 115 (2007)

    Article  MATH  Google Scholar 

  30. Kulak, O., Yilmaz, I.O., Günther, H.O.: PCB assembly scheduling for collect-and-place machines using genetic algorithms. Int. J. Prod. Res. 45(17), 3949–3969 (2007)

    Article  MATH  Google Scholar 

  31. Kumar, R., Luo, Z.: Optimizing the operation sequence of a chip placement machine using TSP model. IEEE Trans. Electron. Packag. Manuf. 26(1), 14–21 (2003)

    Article  Google Scholar 

  32. Lapierre, S.D., Debargis, L., Soumis, F.: Balancing printed circuit board assembly line systems. Int. J. Prod. Res. 38(16), 3899–3911 (2000)

    Article  MATH  Google Scholar 

  33. Leu, M.C., Wong, H., Ji, Z.: Planning of component placement/insertion sequence and feeder setup in PCB assembly using genetic algorithm. J. Electron. Packag. 115(4), 424 (1993)

    Article  Google Scholar 

  34. Li, S., Hu, C., Tian, F.: Enhancing optimal feeder assignment of the multi-head surface mounting machine using genetic algorithms. Appl. Soft Comput. J. 8(1), 522–529 (2008)

    Article  Google Scholar 

  35. Parkhi, K.: Printed circuit board: world outlook. Tech. Rep. 844-F2, Visant Strategies, Inc. (2007)

  36. Salonen, K., Smed, J., Johnsson, M., Nevalainen, O.: Grouping and sequencing PCB assembly jobs with minimum feeder setups. Robot. Comput. Integr. Manuf. 22(4), 297–305 (2006)

    Article  Google Scholar 

  37. Sarvanov, V.I., Doroshoko, N.N.: The approximate solution of the travelling salesman problem by a local search algorithm with scanning neighborhoods of factorial cardinality in cubic time. Softw.: Algorithms Programs 31, 11–13 (1981)

    Google Scholar 

  38. Seth, A., Klabjan, D., Ferreira, P.M.: Analyses of advanced iterated tour partitioning heuristics for generalized vehicle routing problems. Tech. rep., Northwestern University. http://www.klabjan.dynresmanagement.com (2009)

  39. SIPLACE-Americas. Siemens automation electronic assembly systems. Siemens’ official website http://ea.automation.siemens.com (2009)

  40. Smed, J., Johnsson, M., Johtela, T., Nevalainen, O.: Techniques and applications of production planning in electronics manufacturing systems. Tech. Rep. 320, Turku Centre for Computer Science (1999)

  41. Su, C., Ho, L., Fu, H.: A novel tabu search approach to find the best placement sequence and magazine assignment in dynamic robotics assembly. Integr. Manuf. Syst. 9(6), 366–376 (1998)

    Article  Google Scholar 

  42. Tirpak, T.M., Nelson, P.C., Asmani, A.J.: Optimization of revolver head SMT machines using adaptive simulated annealing (ASA). In: Proceedings of the Twenty-Sixth IEEE/CPMT International Electronics Manufacturing Technology Symposium, pp. 214–220 (2000)

  43. Toth, P., Vigo, D.: The Vehicle Routing Problem. Monographs on discrete mathematics and applications. Society for Industrial and Applied Mathematics (2002)

  44. Wilhelm, W.E., Arambula, I., Choudhry, N.N.D.: Optimizing picking operations on dual-head placement machines. IEEE Trans. Autom. Sci. Eng. [see also IEEE Transactions on Robotics and Automation] 3(1), 1–15 (2006)

  45. Wilhelm, W.E., Choudhry, N.D., Damodaran, P.: A model to optimize placement operations on dual-head placement machines. Discrete Optim. 4(2), 232–256 (2007)

    Article  MathSciNet  MATH  Google Scholar 

  46. Wilhelm, W.E., Tarmy, P.K.: Circuit card assembly on tandem turret-type placement machines. IIE Trans. 35(7), 627–645 (2003)

    Article  Google Scholar 

  47. Yilmaz, I., Günther, H.-O.: A group setup strategy for PCB assembly on a single automated placement machine. In: Haasis, H.-D., Kopfer, H., Schönberger, J. (eds.) Operations Research. Springer, Berlin, Heidelberg pp. 143–148 (2005)

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Diego Klabjan.

Appendices

Appendix 1: Detailed integer linear program (ILP) model formulation for improvement phase

We formulate herein the integer linear program allowing feeder magazine motions and spindle jumping by using a bi-complete and total asynchronous extraction strategy.

1.1 Parameters

\({\mathcal {F}}^B\) :

\(=\) set of extracted board nodes

\({\mathcal {F}}^F\) :

\(=\) set of extracted feeder nodes

\({\mathcal {S}}^B\) :

\(=\) sequence pool for board node sequences (potentially all board node sequences)

\({\mathcal {S}}^F\) :

\(=\) sequence pool for feeder node sequences (potentially all feeder node sequences)

\({\mathcal {I}}^B\) :

\(=\) set of candidate insertion points for board node sequences

\({\mathcal {I}}^F\) :

\(=\) set of candidate insertion points for feeder node sequences

\({\mathcal {S}}_P\) :

\(=\) set of spindles

C :

\(=\) capacity of the head (vehicle) \(=\) \(|{\mathcal {S}}_P|\)

r :

\(=\) route

\(r^F\) :

\(=\) sequence of nodes corresponding to part of route r covering the feeder nodes

\(r^B\) :

\(=\) sequence of nodes corresponding to part of route r covering the board nodes

\({\mathcal {R}}\) :

\(=\) ordered list of all routes

\({\mathcal {I}}(r)\) :

\(=\) set of insertion points (i.e. arcs) associated with route r

\(\tilde{q}(s)\) :

\(=\) contribution to capacity usage of sequence s, i.e. number of nodes in node sequence s

\(\tilde{c}(s)\) :

\(=\) cost of sequence s

\(\gamma _{fi}\) :

\(=\) additional cost due to insertion of sequence \(f \in {\mathcal {S}}^F\) at insertion point i

\(\gamma _{bi}\) :

\(=\) additional cost due to insertion of sequence \(b \in {\mathcal {S}}^B\) at insertion point i

\(l_2(r)\) :

\(=\) insertion point corresponding to the \(G^B-G^F\) arc in the route r

\(l_1(r)\) :

\(=\) insertion point corresponding to the \(G^F-G^B\) arc in the route r

\({\mathcal {B}}(s)\) :

\(=\) beginning node of sequence s

\({\mathcal {L}}(s)\) :

\(=\) last node of sequence s

\({\mathcal {T}}(s,s_p)\) :

\(=\) \({\left\{ \begin{array}{ll} 1 \text { if spindle } s_p \text { is used in sequence } s\\ 0 \text { otherwise} \end{array}\right. }\)

\(\tilde{t}(s,s_p)\) :

\(=\) component type number carried by spindle \(s_p\) in the sequence s, returns 0 if none

\(F_p(n)\) :

\(=\) feeder position at node \(n \in G^F\)

\(\gamma _{fi}\) :

\(=\) insertion cost of reinserting a sequence of feeder nodes \(f \in {\mathcal {S}}^F\) into a \(G^F-G^F\) type insertion point \(i \in {\mathcal {I}}^F\)

\(\gamma ^{L^F_1}_{fl_1(r)}\) :

\(=\) insertion cost only on the feeder side of reinserting a sequence \(f \in {\mathcal {S}}^F\) of \(G^F\) nodes into a \(G^F-G^B\) type insertion point \(\in {\mathcal {I}}(r)\)

\(\gamma ^{L^F_2}_{fl_2(r-1)}\) :

\(=\) insertion cost only on the feeder side of reinserting a sequence \(f \in {\mathcal {S}}^F\) of \(G^F\) nodes into a \(G^B-G^F\) type insertion point \(\in {\mathcal {I}}(r-1)\); note that the cost of the neighboring route of the route containing i is influenced

\(\gamma _{bi}\) :

\(=\) insertion cost of reinserting a sequence \(b \in {\mathcal {S}}^B\) of \(G^F\) nodes into a \(G^B-G^B\) type insertion point \(i \in {\mathcal {I}}^B\)

\(\gamma _{bl_2(r)}\) :

\(=\) insertion cost of reinserting a sequence \(b \in {\mathcal {S}}^B\) of \(G^B\) nodes into a \(G^B-G^F\) type insertion point \(i \in {\mathcal {I}}(r)\)

\(\gamma ^{L^B_2}_{fl_2(r)}\) :

\(=\) insertion cost only on the board side of reinserting a sequence \(f \in {\mathcal {S}}^F\) of \(G^F\) nodes into a \(G^B-G^F\) type insertion point \(i \in {\mathcal {I}}(r)\)

\(\gamma _{bl_1(r)}\) :

\(=\) insertion cost of reinserting a sequence \(b \in {\mathcal {S}}^B\) of \(G^B\) nodes into a \(G^F-G^B\) type insertion point \(i \in {\mathcal {I}}(r)\)

\(\gamma ^{L^B_1}_{fl_1(r)}\) :

\(=\) insertion cost only on the board side of reinserting a sequence \(f \in {\mathcal {S}}^F\) of \(G^F\) nodes into a \(G^F-G^B\) type insertion point \(i \in {\mathcal {I}}(r)\)

1.2 Decision variables

$$\begin{aligned} y_{bi}&= {\left\{ \begin{array}{ll} 1 &{} \quad \text {if board node sequence } b \text { is allocated to the insertion point } i \in {\mathcal {I}}^B,\\ 0 &{} \quad \text {otherwise.} \end{array}\right. }\\ x_{fi}&= {\left\{ \begin{array}{ll} 1 &{} \quad \text {if feeder node sequence } f \text { is allocated to the insertion point } i \in {\mathcal {I}}^F,\\ 0 &{} \quad \text {otherwise.} \end{array}\right. }\\ t_r&= \text {time for route } r\\ F^M_r&= \text {amount the feeder can move when the head is executing route } r \end{aligned}$$

1.3 Objective function and constraints

The objective function reads

$$\begin{aligned} \min \sum _{r=1}^{|{\mathcal {R}}|} t_r. \end{aligned}$$

The constraints are as follows.

$$\begin{aligned}&\tilde{c}\left( r^F\right) + \sum _{f \in {\mathcal {S}}^F} \sum _{i \in {\mathcal {I}}^F \cap {\mathcal {I}}(r)} \gamma _{fi} \cdot x_{fi} \nonumber \\&\quad + \sum _{f \in {\mathcal {S}}^F} \gamma ^{L^F_1}_{fl_1(r)} \cdot x_{fl_1(r)} + \sum _{f \in {\mathcal {S}}^F} \gamma ^{L^F_2}_{fl_2(r-1)} \cdot x_{fl_2(r-1)} \nonumber \\&\quad + \max \left\{ \tilde{c}\left( r^B \right) + \sum _{b \in {\mathcal {S}}^B} \sum _{i \in {\mathcal {I}}^B \cap {\mathcal {I}}(r)} \gamma _{bi} \cdot y_{bi} \right. \nonumber \\&\quad + \sum _{b \in {\mathcal {S}}^B} \gamma _{bl_2(r)} \cdot y_{bl_2(r)} + \sum _{f \in {\mathcal {S}}^F} \gamma ^{L^B_2}_{fl_2(r)} \cdot x_{fl_2(r)} \nonumber \\&\quad \left. + \sum _{b \in {\mathcal {S}}^B} \gamma _{bl_1(r)} \cdot y_{bl_1(r)} + \sum _{f \in {\mathcal {S}}^F} \gamma ^{L^B_1}_{fl_1(r)} \cdot x_{fl_1(r)} , ~F^M_r/V_f \right\} = t_r\quad ~r ~\in ~{\mathcal {R}} \nonumber \\&\quad | \sum _{f \in {\mathcal {F}}^F} x_{fl_2(r)} \cdot F_p({\mathcal {B}}(f)) \nonumber \\&\quad + \left( 1 - \sum _{f \in {\mathcal {F}}^F} x_{fl_2(r)}) \cdot F_p({\mathcal {B}}((r+1)^F)\right) \nonumber \\&\quad - \sum _{f \in {\mathcal {F}}^F} x_{fl_1(r)} \cdot F_p({\mathcal {L}}(f)) \end{aligned}$$
(3)
$$\begin{aligned}&\displaystyle \left( 1 - \sum _{f \in {\mathcal {F}}^F} x_{fl_1(r)}\right) \cdot F_p({\mathcal {L}}(r^F)) | = F^M_r/W_s\quad r ~\in ~{\mathcal {R}} \end{aligned}$$
(4)
$$\begin{aligned}&\displaystyle \sum _{f \in {\mathcal {S}}^F} x_{fi} \le 1 \qquad i ~\in ~{\mathcal {I}}^F \end{aligned}$$
(5)
$$\begin{aligned}&\displaystyle \sum _{b: B(v) \in b} \left( ~ \sum _{r \in {\mathcal {R}}} (y_{bl_2(r)} + y_{bl_1(r)}) + \sum _{i \in {\mathcal {I}}^B} y_{bi} \right) = 1 \qquad v ~\in ~{\mathcal {F}}^B \end{aligned}$$
(6)
$$\begin{aligned}&\displaystyle \sum _{b \in {\mathcal {S}}^B} y_{bi} \le 1 \qquad i ~\in ~{\mathcal {I}}^B \end{aligned}$$
(7)
$$\begin{aligned}&\sum _{f \in {\mathcal {S}}^F} x_{fl_1(r)} + \sum _{b \in {\mathcal {S}}^B} y_{bl_1(r)} \le 1 \qquad r ~\in ~{\mathcal {R}} \end{aligned}$$
(8)
$$\begin{aligned}&\sum _{f \in {\mathcal {S}}^F} x_{fl_2(r)} + \sum _{b \in {\mathcal {S}}^B} y_{bl_2(r)} \le 1 \qquad r ~\in ~{\mathcal {R}} \end{aligned}$$
(9)
$$\begin{aligned}&\tilde{t}\left( r^F, ~s_p\right) - \tilde{t}\left( r^B, ~s_p\right) + \sum _{f \in {\mathcal {S}}^F} \tilde{t}(f, s_p) \cdot \left( \sum _{i \in {\mathcal {I}}(r) \cap {\mathcal {I}}^F} x_{fi} + x_{fl_1(r)} + x_{fl_2(r-1)} \right) \nonumber \\&\quad - \sum _{b \in {\mathcal {S}}^B} \tilde{t}(b, s_p) \cdot \left( \sum _{i \in {\mathcal {I}}(r) \cap {\mathcal {I}}^B} y_{bi} + y_{bl_1(r)} + y_{bl_2(r)} \right) = 0 \qquad r ~\in ~{\mathcal {R}},\quad s_p ~\in ~{\mathcal {S}}_P \nonumber \\\end{aligned}$$
(10)
$$\begin{aligned}&{\mathcal {T}}(r^F, s_p) + \sum _{f \in {\mathcal {S}}^F} {\mathcal {T}}(f, ~s_p) \cdot \left( \sum _{i \in {\mathcal {I}}(r) \cap {\mathcal {I}}^F} x_{fi} + x_{fl_1(r)} + x_{fl_2(r-1)} \right) \le 1 \nonumber \\&\quad r ~\in ~{\mathcal {R}},\quad s_p ~\in ~{\mathcal {S}}_P \end{aligned}$$
(11)
$$\begin{aligned}&{\mathcal {T}}(r^B, s_p) +\sum _{i \in {\mathcal {I}}(r) \cap {\mathcal {I}}^B} \sum _{b \in {\mathcal {S}}^B} {\mathcal {T}}(b, s_p) \cdot \left( \sum _{i \in {\mathcal {I}}(r) \cap {\mathcal {I}}^B} y_{bi} + y_{bl_1(r)} + y_{bl_2(r)} \right) \le 1 \nonumber \\&\quad r ~\in ~{\mathcal {R}},\quad s_p ~\in ~{\mathcal {S}}_P \end{aligned}$$
(12)
$$\begin{aligned}&\tilde{q}\left( r^F\right) + \sum _{f \in {\mathcal {S}}^F} \sum _{i \in {\mathcal {I}}^F \cap {\mathcal {I}}(r)} \tilde{q}(f) \cdot \left( \sum _{i \in {\mathcal {I}}(r) \cap {\mathcal {I}}^F} x_{fi} + x_{fl_1(r)} + x_{fl_2(r-1)} \right) \le C \nonumber \\&\quad r ~\in ~{\mathcal {R}} \end{aligned}$$
(13)
$$\begin{aligned}&\tilde{q}\left( r^B\right) + \sum _{b \in {\mathcal {S}}^B} \sum _{i \in {\mathcal {I}}^B \cap {\mathcal {I}}(r)} \tilde{q}(b) \cdot \left( \sum _{i \in {\mathcal {I}}(r) \cap {\mathcal {I}}^B} y_{bi} + y_{bl_1(r)} + y_{bl_2(r)} \right) \le C \nonumber \\&\quad r ~\in ~{\mathcal {R}} \end{aligned}$$
(14)
$$\begin{aligned}&\displaystyle x_{fi} ~ \qquad \text {binary} \qquad f ~\in ~{\mathcal {S}}_f,~i ~\in ~{\mathcal {I}}^F \end{aligned}$$
(15)
$$\begin{aligned}&\displaystyle y_{bi} ~ \qquad \text {binary} \qquad b ~\in ~{\mathcal {S}}_b,~i ~\in ~{\mathcal {I}}^B \end{aligned}$$
(16)
$$\begin{aligned}&\displaystyle t_r \ge 0 \qquad r ~\in ~{\mathcal {R}}\end{aligned}$$
(17)
$$\begin{aligned}&\displaystyle F^M_r \ge 0 \qquad r ~\in ~{\mathcal {R}} \end{aligned}$$
(18)

Constraint (3) models \(t_r\), the time to complete a route. The first term represents the cost on the feeder side of the short-cutted solution. The cost of inserting a \(G^F\) node sequence into a \(G^F-G^F\) type insertion point is given by the second term, into a \(G^F-G^B\) type insertion point by the third term, and into a \(G^B-G^F\) type insertion point by the fourth term. The maximum function captures the waiting cost due to the moving feeder and the two terms in it represent the cost of moving the feeder and the cost of the vehicle’s trip to the customers before returning to the feeder. The cost incurred by the vehicle’s trip is computed as the sum of the cost of the short-cutted solution, the cost of inserting a \(G^B\) node sequence into a \(G^B-G^B\) type insertion point, and the cost of inserting \(G^F\) and \(G^B\) node sequences into \(G^F-G^B\) and \(G^B-G^F\) type insertion points. Constraint (4) models the cost of the feeder movement. The terms capture the two possibilities each for determining the last feeder node to be visited in a given route and the first feeder node to be visited in its subsequent route. Constraints (5) and (7) specify that no more than one sequence can be inserted at an insertion point. Constraint (6) states that every board node can belong to exactly one re-inserted string. Constraints (8) and (9) state that only one of a feeder or board node can be reinserted at route junction points in order to reconstruct a solution. Constraint (10) balances the component types between the board and feeder route segments, whereas constraints (11) and (12) ensure no spindle reusage within the board and feeder route segments. Constraints (13) and (14) enforce capacity limitations on the head on the feeder and board segments, respectively.

1.4 Linearization of constraints

We note that (1) and (2) are non linear constraints. Rewriting the constraints in a linearized form and using,

$$\begin{aligned} k_{1fr}&= F_p({\mathcal {L}}(r^F)) - F_p({\mathcal {L}}(f))\\ k_{2fr}&= F_p({\mathcal {B}}(f)) - F_p({\mathcal {B}}((r+1)^F))\\ k_{3r}&= F_p({\mathcal {B}}((r+1)^F)) - F_p({\mathcal {L}}(r^F)) \end{aligned}$$

we obtain

$$\begin{aligned}&\tilde{c}\left( r^F\right) {+} \sum _{f \in {\mathcal {S}}^F} \sum _{i \in {\mathcal {I}}^F \cap {\mathcal {I}}(r)} \gamma _{fi} \cdot x_{fi} {+} \sum _{f \in {\mathcal {S}}^F} \gamma ^{L^F_1}_{fl_1(r)} \cdot x_{fl_1(r)} {+} \sum _{f \in {\mathcal {S}}^F} \gamma ^{L^F_2}_{fl_2(r-1)} \cdot x_{fl_2(r-1)} \nonumber \\&\quad +\, \tilde{c}\left( r^B\right) + \sum _{b \in {\mathcal {S}}^B} \sum _{i \in {\mathcal {I}}^B \cap {\mathcal {I}}(r)} \gamma _{bi} \cdot y_{bi} + \sum _{b \in {\mathcal {S}}^B} \gamma _{bl_2(r)} \cdot y_{bl_2(r)} + \sum _{f \in {\mathcal {S}}^F} \gamma ^{L^B_2}_{fl_2(r)} \cdot x_{fl_2(r)} \nonumber \\&\quad + \sum _{b \in {\mathcal {S}}^B} \gamma _{bl_1(r)} \cdot y_{bl_1(r)} + \sum _{f \in {\mathcal {S}}^F} \gamma ^{L^B_1}_{fl_1(r)} \cdot x_{fl_1(r)} \le t_r \qquad r ~\in ~{\mathcal {R}} \end{aligned}$$
(19)
$$\begin{aligned}&- V_f \cdot \left( t_r - \tilde{c}(r^F) - \sum _{f \in {\mathcal {S}}^F} \sum _{i \in {\mathcal {I}}^F \cap {\mathcal {I}}(r)} \gamma _{fi} \cdot x_{fi} \right. \nonumber \\&\quad \left. - \sum _{f \in {\mathcal {S}}^F} \gamma ^{L^F_1}_{fl_1(r)} \cdot x_{fl_1(r)} - \sum _{f \in {\mathcal {S}}^F} \gamma ^{L^F_2}_{fl_2(r-1)} \cdot x_{fl_2(r-1)} \right) \nonumber \\&\qquad \le \sum _{f \in {\mathcal {F}}^F} x_{fl_1(r)} \cdot k_{1fr} + \sum _{f \in {\mathcal {F}}^F} x_{fl_2(r)} \cdot k_{2fr} + k_{3r} \qquad r ~\in ~{\mathcal {R}} \end{aligned}$$
(20)
$$\begin{aligned}&\sum _{f \in {\mathcal {F}}^F} x_{fl_1(r1)} \cdot k_{1fr} + \sum _{f \in {\mathcal {F}}^F} x_{fl_2(r)} \cdot k_{2fr} + k_{3r} \nonumber \\&\quad \le V_f \cdot \left( t_r - \tilde{c}(r^F) - \sum _{f \in {\mathcal {S}}^F} \sum _{i \in {\mathcal {I}}^F \cap {\mathcal {I}}(r)} \gamma _{fi} \cdot x_{fi} \right. \qquad \nonumber \\&\qquad \left. - \sum _{f \in {\mathcal {S}}^F} \gamma ^{L^F_1}_{fl_1(r)} \cdot x_{fl_1(r)} - \sum _{f \in {\mathcal {S}}^F} \gamma ^{L^F_2}_{fl_2(r-1)} \cdot x_{fl_2(r-1)} \right) \qquad r ~\in ~{\mathcal {R}} . \end{aligned}$$
(21)

We split constraints (3) and (4) into their linearized forms, thereby getting rid of the troublesome maximum and absolute value functions.

Appendix 2: Pricing problem formulation for improvement phase

The dual of the above linear program has the objective

$$\begin{aligned}&\max \left\{ \sum _{r \in {\mathcal {R}}} \left( \tilde{c}\left( r^F\right) + \sum _{r \in {\mathcal {R}}} \tilde{c}\left( r^B\right) \right) \cdot w^A_r + \sum _{r \in {\mathcal {R}}} \left( V_f \tilde{c}\left( r^F\right) - k_{3r}\right) \cdot w^B_r \right. \nonumber \\&\quad + \sum _{r \in {\mathcal {R}}} \left( V_f \tilde{c}\left( r^F\right) + k_{3r}\right) \cdot w^C_r \nonumber \\&\quad + \sum _{i \in {\mathcal {I}}^F} w^D_i + \sum _{v \in {\mathcal {F}}^B} w^E_v + \sum _{i \in {\mathcal {I}}^B} w^F_i + \sum _{r \in {\mathcal {R}}} w^G_r + \sum _{r \in {\mathcal {R}}} w^H_r \nonumber \\&\quad + \sum _{r \in {\mathcal {R}}} \sum _{s \in {\mathcal {S}}_P} \left( \tilde{t}\left( r^F, s\right) - \tilde{t}\left( r^B, s\right) \right) \cdot w^I_{rs} \nonumber \\&\quad + \sum _{r \in {\mathcal {R}}} \sum _{s \in {\mathcal {S}}_P} \left( 1 - {\mathcal {T}}\left( r^F, s\right) \right) \cdot w^J_{rs} + \sum _{r \in {\mathcal {R}}} \sum _{s \in {\mathcal {S}}_P} \left( 1 - {\mathcal {T}}\left( r^B, s\right) \right) \cdot w^K_{rs} \nonumber \\&\quad + \sum _{r \in {\mathcal {R}}} \left( C - \tilde{q}\left( r^F\right) \right) \cdot w^L_r + \sum _{r \in {\mathcal {R}}} \left( C - \tilde{q}\left( r^B\right) \right) \cdot w^M_r \nonumber \\&\quad \left. + \sum _{i \in {\mathcal {I}}^F} w^E_i + \sum _{v \in {\mathcal {F}}^B} w^F_v + \sum _{i \in {\mathcal {I}}^B} w^G_i \right\} \end{aligned}$$
(22)

subject to constraints

$$\begin{aligned}&w^A_r + V_f \cdot w^B_r + V_f \cdot w^C_r \le 1 \qquad r ~\in ~{\mathcal {R}} \end{aligned}$$
(23)
$$\begin{aligned}&\quad \sum _{r \in {\mathcal {R}}} \left\{ - \gamma _{fi} \cdot w^A_r - (V_f \cdot \gamma _{fi} - k_{1fr}) \cdot w^B_r - \sum _{s \in {\mathcal {S}}_P} w^J_{rs} \cdot {\mathcal {T}}(f, s) \right. \nonumber \\&\quad \left. (- V_f \cdot \gamma _{fi} + k_{1fr}) \cdot w^C_r - w^D_i - \sum _{s \in {\mathcal {S}}_P} w^I_{rs} \cdot \tilde{t}(f, s) - w^L_r \cdot \tilde{q}(f) \right\} \le 0 \nonumber \\&\qquad f ~\in ~{\mathcal {S}}^F,\quad i ~\in ~{\mathcal {I}}^F \cap {\mathcal {I}}(r)\end{aligned}$$
(24)
$$\begin{aligned}&\sum _{r \in {\mathcal {R}}} \left\{ - \left( \gamma ^{L_1^F}_{fi} + \gamma ^{L_1^B}_{fi}\right) \cdot w^A_r - V_f \cdot \gamma ^{L_1^F}_{fi} \cdot w^B_r - \sum _{s \in {\mathcal {S}}_P} w^J_{rs} \cdot {\mathcal {T}}(f, s) \right. \nonumber \\&\quad \left. - V_f \cdot \gamma ^{L_1^F}_{fi} \cdot w^C_r - w^G_r - \sum _{s \in {\mathcal {S}}_P} w^I_{rs} \cdot \tilde{t}(f, s) - w^L_r \cdot \tilde{q}(f) \right\} \le 0 \nonumber \\&\qquad f ~\in ~{\mathcal {S}}^F,\quad i=l_1(r)\end{aligned}$$
(25)
$$\begin{aligned}&\sum _{r \in {\mathcal {R}}} \left\{ - (\gamma ^{L_2^F}_{fi} - V_f \cdot \gamma ^{L_2^F}_{fi} \cdot w^B_r - \sum _{s \in {\mathcal {S}}_P} w^J_{rs} \cdot {\mathcal {T}}(f, s) \right. \nonumber \\&\quad \left. - V_f \cdot \gamma ^{L_2^F}_{fi} \cdot w^C_r - \sum _{s \in {\mathcal {S}}_P} w^I_{rs} \cdot \tilde{t}(f, s) - w^L_r \cdot \tilde{q}(f) \right\} \le 0 \nonumber \\&\qquad f ~\in ~{\mathcal {S}}^F,\quad i=l_2(r-1)\end{aligned}$$
(26)
$$\begin{aligned}&\sum _{r \in {\mathcal {R}}} \left\{ - k_{2fr} \cdot w^B_r - k_{2fr} \cdot w^C_r - \gamma ^{L_2^B}_{fi} \cdot w^A_r - w^H_r \right\} \le 0 \qquad f ~\in ~{\mathcal {S}}^F,\quad i=l_2(r)\nonumber \\ \end{aligned}$$
(27)
$$\begin{aligned}&\sum _{r \in {\mathcal {R}}} \left\{ - \gamma _{bi} \cdot w^A_r - \sum _{s \in {\mathcal {S}}_P} w^K_{rs} \cdot {\mathcal {T}}(b, s) \right. \nonumber \\&\quad \left. - w^F_i - \sum _{s \in {\mathcal {S}}_P} w^I_{rs} \cdot \tilde{t}(b, s) - w^M_r \cdot \tilde{q}(b) \right\} \le 0 \qquad b ~\in ~{\mathcal {S}}^B,\nonumber \\&\qquad i ~\in ~{\mathcal {I}}^B \cap {\mathcal {I}}(r)\end{aligned}$$
(28)
$$\begin{aligned}&\sum _{r \in {\mathcal {R}}} \left\{ - \gamma _{bi} \cdot w^A_r - \sum _{s \in {\mathcal {S}}_P} w^K_{rs} \cdot {\mathcal {T}}(b, s) \right. \nonumber \\&\quad \left. - w^F_i -w^G_r - w^H_r - \sum _{s \in {\mathcal {S}}_P} w^I_{rs} \cdot \tilde{t}(b, s) - w^M_r \cdot \tilde{q}(b) \right\} \le 0 \qquad b ~\in ~{\mathcal {S}}^B,\nonumber \\&\qquad i ~\in ~\{l_1(r), l_2(r)\} \end{aligned}$$
(29)
$$\begin{aligned}&w^A_r, w^B_r, w^C_r, w^G_r, w^H_r, w^L_r, w^M_r \ge 0 \qquad r ~\in ~{\mathcal {R}} \end{aligned}$$
(30)
$$\begin{aligned}&w^E_v \text { unrestricted } \qquad v ~\in ~{\mathcal {F}}^F \cup ~{\mathcal {F}}^B \end{aligned}$$
(31)
$$\begin{aligned}&w^I_{rs} \text { unrestricted } \qquad r ~\in ~{\mathcal {R}},\quad s ~\in ~{\mathcal {S}}_P \end{aligned}$$
(32)
$$\begin{aligned}&w^J_{rs}, w^K_{rs} \ge 0 \qquad r ~\in ~{\mathcal {R}},\quad s ~\in ~{\mathcal {S}}_P \end{aligned}$$
(33)
$$\begin{aligned}&w^D_i, w^F_i \le 0 \qquad i ~\in ~{\mathcal {I}}^F \cup {\mathcal {I}}^B \end{aligned}$$
(34)
$$\begin{aligned}&w^I_r, w^J_r \le 0 \qquad r ~\in ~{\mathcal {R}} \end{aligned}$$
(35)

where \(w^A, w^B, \ldots , w^M\) are dual variables corresponding to the 13 constraint sets labelled (19)–(21) and (5)–(14). The column generation subproblem (i.e. finding the column with the minimum reduced cost) reduces to one with the following form for a given insertion point i:

$$\begin{aligned} \max _{r \in R} \left\{ \max _{f \in {\mathcal {S^F}}} \left\{ - \beta _1 \cdot \text {(TSP cost for } f \text { at } i) + \beta _2 \cdot \sum _{v \in f} \alpha _v + \beta _3 \right\} \right\} \end{aligned}$$

for \(x_{fi}\) variables, and, similarly, for \(y_{bi}\) variables we have

$$\begin{aligned} \max _{r \in R} \left\{ \max _{b \in {\mathcal {S^B}}} \left\{ - \beta _1 \cdot \text {(TSP cost for } b \text { at } i) + \beta _2 \cdot \sum _{v \in b} \alpha _v + \beta _3 \right\} \right\} . \end{aligned}$$

In both cases, we have to solve \(|{\mathcal {R}}|\) maximum weight circuit problems.

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Seth, A., Klabjan, D. & Ferreira, P.M. A new novel local search integer-programming-based heuristic for PCB assembly on collect-and-place machines. Math. Prog. Comp. 8, 1–45 (2016). https://doi.org/10.1007/s12532-015-0095-1

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s12532-015-0095-1

Keywords

Mathematics Subject Classification

Navigation