Skip to main content
Log in

Evolving ant colony system for large-sized integrated process planning and scheduling problem considering sequence-dependent setup times

  • Published:
Flexible Services and Manufacturing Journal Aims and scope Submit manuscript

Abstract

This paper proposes a new ant colony optimization (ACO) algorithm suitable for integrated process planning and scheduling (IPPS) that optimizes both process planning and scheduling simultaneously. The IPPS covered in this study, when compared to the conventional IPPS, is more flexible and complicated because sequence-dependent setups and tool-related capacity constraints are additionally considered. Traditional ACOs have limitations in improving the solution quality and computation time for IPPS. The high flexibility and complexity of IPPS requires a large size of repository for pheromone trails and it causes the long computation time for updating them, excessive evaporation of pheromones, and unbalancing between pheromones and desirability. In the proposed ACO, each ant agent improves their own incumbent solution or finds a new solution using the pheromone trails that is composed of the experience information of the colony. Therefore, the proposed ACO conducts individual and cooperative evolving at the same time. Furthermore, we propose a simplified updating rule for pheromone trails and standardization of the transition probability to increase efficiency of the algorithm. Experimental results show that the proposed ACO is superior to recently proposed meta-heuristics for benchmark problems of different sizes in terms of both solution quality and computation time.

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.

Institutional subscriptions

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8
Fig. 9
Fig. 10
Fig. 11

Similar content being viewed by others

References

Download references

Acknowledgements

This research was funded by the Basic Science Research Program through the National Research Foundation of Korea (NRF) funded by the Ministry of Education (2015R1D1A1A01060391).

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Chunghun Ha.

Additional information

Publisher's Note

Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.

Appendices

Appendix 1: Mathematical programming model of IPPS

The mathematical programming model for IPPS has been developed by Li et al. (2010) and Nourali et al. (2012). Nourali et al. (2012) proposed a mixed integer linear programming for assembly jobshop considering sequence-dependent setup times. However, the assembly jobshop problem is different from IPPS, but it does not consider loading and unloading, tool change, TAD change, and transportation time. On the other hand, Li et al. (2010) deals with IPPS but does not consider sequence-dependent setup times. Therefore, we present a new mixed integer nonlinear programming model for the proposed IPPS through the improvement of these two MILPs.

Sets and indices

\(j\):

job identification (ID) (\(j \in J\))

\(o\):

operation ID of job \(j\) (\(o \in O_{j}\))

\(m\):

machine ID (\(m \in M\))

\(t\):

tool ID (\(t \in T\))

\(k\):

TAD ID (\(k \in K\))

\(p_{j}\):

process route ID of job \(j\) (\(p_{j} \in P_{j}\))

\(J\):

set of jobs; \(J = \left\{{1,2,3, \ldots,n^{JOB}} \right\}\), \(n^{JOB}\) is the total number of jobs

\(O_{j}\):

set of operations of job \(j\) (\(O_{j} \subseteq O\)); \(O_{j} = \left\{{1,2,3, \ldots,n_{j}^{OP}} \right\}\), \(n_{j}^{OP}\) is the total number of operations of the job \(j\)

\(M\):

set of machines; \(M = \left\{{1,2,3, \ldots,n^{M}} \right\}\), \(n^{M}\) is the total number of machines

\(T\):

set of tools; \(T = \left\{{1,2,3, \ldots,n^{T}} \right\}\), \(n^{T}\) is the total number of tool types

\(K\):

set of TADs; \(K = \left\{{-\,x, x, -\,y, y, -\,z, z} \right\}\), \(- x, x, - y, y, - z, z\) are directions of tool access

\(P_{j}\):

set of alternative process routes of job \(j\)

\(O_{{jp_{j}}}\):

ordered set of operation IDs in the process route \(p_{j}\) of job \(j\) (\(O_{j} = \mathop {\bigcup}\nolimits_{{p_{j} \in P_{j}}} O_{{jp_{j}}} \forall j \in J\))

\(O_{j,o}\):

the operation \(o\) of job \(j\)

\(O_{j,o}^{m,t,k}\):

the \(O_{j,o}\) that is assigned the machine \(m\), the tool \(t\), and the TAD \(k\)

\(O_{{jp_{j} i}}\):

the \(i\)th operation ID of \(O_{{jp_{j}}}\); \(O_{{jp_{j} f}}\) is the first and \(O_{{jp_{j} l}}\) is the last element of \(O_{{jp_{j}}}\)

\(O_{{jp_{j} imtk}}\):

operation \(O_{{jp_{j} i}}\) that is assigned machine \(m\), tool \(t\), and TAD \(k\)

\(M_{{jp_{j} i}}\):

set of alternative machines for the operation \(O_{{jp_{j} i}}\), \(M_{{jp_{j} i}} \subseteq M\)

\(T_{{jp_{j} im}}\):

set of alternative tools for the operation \(O_{{jp_{j} i}}\) at the machine \(m\); \(T_{{jp_{j} im}} \subseteq T\)

\(K_{{jp_{j} im}}\):

set of alternative TADs for the operation \(O_{{jp_{j} i}}\) at the machine \(m\); \(K_{{jp_{j} im}} \subseteq K.\)

Parameters

\(R_{{jp_{j} ii^{\prime}}}\):

1, if the operation \(O_{{jp_{j} i}}\) must precede the operation \(O_{{jp_{j} i^{\prime}}}\); 0, otherwise

\(C_{m}^{SLOT}\):

the number (capacity) of tool slots of the machine \(m\)

\(C_{t}^{TOOL}\):

the available number (capacity) of the tool \(t\)

\(r_{t}^{SLOT}\):

the number of required slots for the tool \(t\)

\(L\):

a very large number.

Decision variables

\(X_{{jp_{j} imtk}}\):

1, if machine \(m\), tool \(t\), and TAD \(k\) are selected for the \(O_{{jp_{j} i}}\); 0, otherwise

\(Z_{{jp_{j}}}\):

1, if process route \(p_{j}\) of job \(j\) is selected; 0, otherwise

\({\text{Y}}_{{jp_{j} ij^{\prime} p_{{j^{\prime}}} i^{\prime} m}}\):

1, if operation \(O_{{jp_{j} i}}\) precedes operation \(O_{{j^{\prime} p_{{j^{\prime}}} i^{\prime}}}\) immediately on machine \(m\); 0, otherwise

\(U_{mt}\):

1, if tool \(t\) is installed on machine \(m\); 0, otherwise

\(st_{{jp_{j} imtk}}\):

starting time of \(O_{{jp_{j} imtk}}\)

\(ct_{{jp_{j} imtk}}\):

earliest completion time of \(O_{{jp_{j} imtk}}\)

\(sct_{{jp_{j} imtk}}\):

setup change time of \(O_{{jp_{j} imtk}}\)

\(tct_{{jp_{j} imtk}}\):

tool change time of \(O_{{jp_{j} imtk}}\)

\(pt_{{jp_{j} imtk}}\):

processing time of \(O_{{jp_{j} imtk}}\)

\(ult_{{jp_{j} imtk}}\):

unload time of \(O_{{jp_{j} imtk}}\)

\(trt_{{jp_{j} imtk}}\):

transportation time to the successive operation of \(O_{{jp_{j} imtk}}\)

Cmax:

makespan.

MINLP for IPPS

$${\text{Minimize}}\quad C_{max}$$
(14)

subject to

$$\mathop \sum \limits_{{p_{j} \in P_{j}}} Z_{{jp_{j}}} = 1 \quad \forall j \in J$$
(15)
$$\mathop \sum \limits_{{m \in M_{{jp_{j} i}}}} \mathop \sum \limits_{{t \in T_{{jp_{j} im}}}} \mathop \sum \limits_{{ k \in K_{{jp_{j} im}}}} X_{{jp_{j} imtk}} = Z_{{jp_{j}}} \quad \forall j \in J, \forall p_{j} \in P_{j}, \forall i \in O_{{jp_{j}}}$$
(16)
$$st_{{jp_{j} imtk}} + ct_{{jp_{j} imtk}} \le L\left({X_{{jp_{j} imtk}}} \right)\quad \forall j \in J, \forall p_{j} \in P_{j}, \forall i \in O_{{jp_{j}}}, \forall m \in M_{{jp_{j} i}}, \forall t \in T_{{jp_{j} im}}, \forall k \in K_{{jp_{j} im}}$$
(17)
$$\begin{aligned} & st_{{jp_{j} imtk}} + sct_{{jp_{j} imtk}} + tct_{{jp_{j} imtk}} + pt_{{jp_{j} imtk}} + ult_{{jp_{j} imtk}} - L\left({1 - X_{{jp_{j} imtk}}} \right) \le ct_{{jp_{j} imtk}} \\ & \quad \forall j \in J, \forall p_{j} \in P_{j}, \forall i \in O_{{jp_{j}}}, \forall m \in M_{{jp_{j} i}}, \forall t \in T_{{jp_{j} im}}, \forall k \in K_{{jp_{j} im}} \\ \end{aligned}$$
(18)
$$\begin{aligned} & ct_{{j^{\prime} p_{{j^{\prime}}} i^{\prime} mt^{\prime} k^{\prime}}} - L\left({{\text{Y}}_{{jp_{j} ij^{\prime} p_{{j^{\prime}}} i^{\prime} m}}} \right) \le st_{{jp_{j} imtk}} \\ & \quad \forall j,j^{\prime} \in J, \forall p_{j} \in P_{j}, \forall p_{{j^{\prime}}} \in P_{{j^{\prime}}} \forall i \in O_{{jp_{j}}},\forall i^{\prime} \in O_{{j^{\prime} p_{{j^{\prime}}}}}, \\ & \quad \forall m \in M_{{jp_{j} i}} \cap M_{{j^{\prime} p_{{j^{\prime}}}}},\forall t \in T_{{jp_{j} im}}, \forall k \in K_{{jp_{j} im}},\forall t^{\prime} \in T_{{j^{\prime} p_{{j^{\prime}}} i^{\prime} m}}, \forall k^{\prime} \in K_{{j^{\prime} p_{{j^{\prime}}} i^{\prime} m}} \\ \end{aligned}$$
(19)
$$\begin{aligned} & ct_{{jp_{j} imtk}} - L\left({1 - {\text{Y}}_{{jp_{j} ij^{\prime} p_{{j^{\prime}}} i^{\prime} m}}} \right) \le st_{{j^{\prime} p_{{j^{\prime}}} i^{\prime} mt^{\prime} k^{\prime}}} \\ & \quad \forall j,j^{\prime} \in J, \forall p_{j} \in P_{j}, \forall p_{{j^{\prime}}} \in P_{{j^{\prime}}} \forall i \in O_{{jp_{j}}},\forall i^{\prime} \in O_{{j^{\prime}p_{{j^{\prime}}}}}, \\ & \quad \forall m \in M_{{jp_{j} i}} \cap M_{{j^{\prime} p_{{j^{\prime}}}}},\forall t \in T_{{jp_{j} im}}, \forall k \in K_{{jp_{j} im}},\forall t^{\prime} \in T_{{j^{\prime} p_{{j^{\prime}}} i^{\prime} m}}, \forall k^{\prime} \in K_{{j^{\prime} p_{{j^{\prime}}} i^{\prime} m}} \\ \end{aligned}$$
(20)
$$\begin{aligned} & \mathop \sum \limits_{{m \in M_{{jp_{j} \left({i - 1} \right)}}}} \mathop \sum \limits_{{t \in T_{{jp_{j} \left({i - 1} \right)m}}}} \mathop \sum \limits_{{ k \in K_{{jp_{j} \left({i - 1} \right)m}}}} \left({ct_{{jp_{j} \left({i - 1} \right)mtk}} + trt_{{jp_{j} \left({i - 1} \right)mtk}}} \right) \le \mathop \sum \limits_{{m^{\prime} \in M_{{jp_{j} i}}}} \mathop \sum \limits_{{t^{\prime} \in T_{{jp_{j} im}}}} \mathop \sum \limits_{{ k^{\prime} \in K_{{jp_{j} im}}}} st_{{jp_{j} im^{\prime} t^{\prime} k^{\prime}}} \\ & \quad \forall j \in J, \forall p_{j} \in P_{j}, \forall i \in O_{{jp_{j}}} - \left\{{O_{{jp_{j} f}}} \right\} \\ \end{aligned}$$
(21)
$$\begin{aligned} & \mathop \sum \limits_{{m \in M_{{jp_{j} i}}}} \mathop \sum \limits_{{t \in T_{{jp_{j} im}}}} \mathop \sum \limits_{{ k \in K_{{jp_{j} im}}}} \left({ct_{{jp_{j} imtk}} + trt_{{jp_{j} imtk}}} \right) - L\left({1 - R_{{jp_{j} ii^{\prime}}}} \right) \le \mathop \sum \limits_{{m^{\prime} \in M_{{jp_{j} i^{\prime}}}}} \mathop \sum \limits_{{t^{\prime} \in T_{{jp_{j} i^{\prime} m}}}} \mathop \sum \limits_{{ k^{\prime} \in K_{{jp_{j} i^{\prime} m}}}} st_{{jp_{j} i^{\prime} m^{\prime} t^{\prime} k^{\prime}}}, \\ & \quad \forall i < i^{\prime},j \in J, \forall p_{j} \in P_{j}, \forall i,i^{\prime} \in O_{{jp_{j}}} \\ \end{aligned}$$
(22)
$$ult_{{jp_{j} lmtk}} \ge ULT\left(m \right)\quad \forall j \in J, \forall p_{j} \in P_{j}, \forall m \in M_{{jp_{j} l}}, \forall t \in T_{{jp_{j} lm}}, \forall k \in K_{{jp_{j} lm}}$$
(23)
$$ct_{{jp_{j} lmtk}} \le C_{max} \quad \forall j \in J, \forall p_{j} \in P_{j}, \forall m \in M_{{jp_{j} l}}, \forall t \in T_{{jp_{j} lm}}, \forall k \in K_{{jp_{j} lm}}$$
(24)
$$X_{{jp_{j} imtk}} \ge U_{mt} \quad \forall j \in J, \forall p_{j} \in P_{j}, \forall m \in M_{{jp_{j} l}}, \forall t \in T_{{jp_{j} lm}}, \forall k \in K_{{jp_{j} lm}}$$
(25)
$$\mathop \sum \limits_{t \in T} r_{t}^{SLOT} \times U_{mt} \le C_{m}^{SLOT} \quad \forall m \in M$$
(26)
$$\mathop \sum \limits_{m \in M} U_{mt} \le C_{t}^{TOOL} \quad \forall t \in T$$
(27)
$$st_{{jp_{j} imtk}} \ge 0\quad \forall j \in J, \forall p_{j} \in P_{j}, \forall i \in O_{{jp_{j}}}, \forall m \in M_{{jp_{j} i}}, \forall t \in T_{{jp_{j} im}}, \forall k \in K_{{jp_{j} im}}$$
(28)
$$sct_{{jp_{j} imtk}} \ge 0\quad \forall j \in J, \forall p_{j} \in P_{j}, \forall i \in O_{{jp_{j}}}, \forall m \in M_{{jp_{j} i}}, \forall t \in T_{{jp_{j} im}}, \forall k \in K_{{jp_{j} im}}$$
(29)
$$tct_{{jp_{j} imtk}} \ge 0 \quad \forall j \in J, \forall p_{j} \in P_{j}, \forall i \in O_{{jp_{j}}}, \forall m \in M_{{jp_{j} i}}, \forall t \in T_{{jp_{j} im}}, \forall k \in K_{{jp_{j} im}}$$
(30)
$$pt_{{jp_{j} imtk}} \ge 0\quad \forall j \in J, \forall p_{j} \in P_{j}, \forall i \in O_{{jp_{j}}}, \forall m \in M_{{jp_{j} i}}, \forall t \in T_{{jp_{j} im}}, \forall k \in K_{{jp_{j} im}}$$
(31)
$$ult_{{jp_{j} imtk}} \ge 0 \quad \forall j \in J, \forall p_{j} \in P_{j}, \forall i \in O_{{jp_{j}}}, \forall m \in M_{{jp_{j} i}}, \forall t \in T_{{jp_{j} im}}, \forall k \in K_{{jp_{j} im}}$$
(32)
$$trt_{{jp_{j} imtk}} \ge 0\quad \forall j \in J, \forall p_{j} \in P_{j}, \forall i \in O_{{jp_{j}}}, \forall m \in M_{{jp_{j} i}}, \forall t \in T_{{jp_{j} im}}, \forall k \in K_{{jp_{j} im}}$$
(33)
$$X_{{jp_{j} imtk}} \in \left\{{0,1} \right\} \quad \forall j \in J, \forall p_{j} \in P_{j}, \forall i \in O_{{jp_{j}}}, \forall m \in M_{{jp_{j} i}}, \forall t \in T_{{jp_{j} im}}, \forall k \in K_{{jp_{j} im}}$$
(34)
$$Z_{{jp_{j}}} \in \left\{{0,1} \right\} \quad \forall j \in J, \forall p_{j} \in P_{j}$$
(35)
$${\text{Y}}_{{jp_{j} ij^{\prime} p_{{j^{\prime}}} i^{\prime} m}} \in \left\{{0,1} \right\} \quad \forall j,j^{\prime} \in J, \forall p_{j} \in P_{j}, \forall p_{{j^{\prime}}} \in P_{{j^{\prime}}} \forall i \in O_{{jp_{j}}},\forall i^{\prime} \in O_{{j^{\prime} p_{{j^{\prime}}}}},\forall m \in M_{{jp_{j} i}} \cap M_{{j^{\prime} p_{{j^{\prime}}}}}$$
(36)
$$U_{mt} \in \left\{{0,1} \right\}\quad \forall m \in M, \forall t \in T$$
(37)

IPPS is a problem that minimizes makespan of the objective function (14). Constraints (15) allow only one process route to be selected in each job. Constraints (16) make sure that each operation of a selected process route selects only a combination of \(\left({m,t,k} \right)\). Constraints (17) make time schedules of all dummy operations zero. Constraints (18) ensure that each operation is completed by consuming relevant sequence-dependent setup times and processing time. Constraints (19) and (20) ensure that two or more operations are not performed simultaneously on the same machine. Constraints (21) consider transportation time for workpiece movement in the same job. Constraints (22) ensure that all precedence relations between operations are satisfied. Constraints (23) ensure that the completed workpiece is unloaded at the last operation of each job. Constraints (24) determine makespan. Constraints (25) prevent duplicate installation of the same tool on a machine. Constraints (26) and (27) are constraints on machine’s slot capacity and tool capacity, respectively. Constraints (28)–(37) are the possible ranges of time schedules and decision variables.

Appendix 2: Validation of effectiveness of OC, MTTC, and TUNING

Additional experiments were performed to verify the effectiveness of the three greedy heuristics OC, MTTC, and TUNING proposed in Sect. 4.4. OC, MTTC, and TUNING were inserted into the procedures of mPSO, FSDPSO, and E-ACO. Then, the five representative problems P1, P13, P21, P29 and P31 were repeated 10 times for each algorithm. Table 10 summarizes the experimental results before and after applying the three greedy heuristics. Three greedy heuristics reduced \(\overline{{C_{max}}}\) by 4.5% and 0.8% on average for mPSO and FSDPSO, respectively. On the other hand, for E-ACO, it resulted in a dramatic improvement by reducing \(\overline{{C_{max}}}\) by 27.4% and \(\overline{{t_{comp}}}\) by 75.4%. This phenomenon occurs because mPSO and FSDPSO contain procedures like OC, MTTC, and TUNING, but E-ACO does not. The results of this comparative study demonstrate that these three greedy heuristics are effective in improving the solution and reducing the computation time. Another notable point is that the performance of our proposed EACS is still better than others, although other meta-heuristics have been improved by OC, MTTC, and TUNING.

Table 10 Analysis of effectiveness of three greedy heuristics for various types of ACOs

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Ha, C. Evolving ant colony system for large-sized integrated process planning and scheduling problem considering sequence-dependent setup times. Flex Serv Manuf J 32, 523–560 (2020). https://doi.org/10.1007/s10696-019-09360-9

Download citation

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10696-019-09360-9

Keywords

Navigation