1 Introduction

Enterprises are confronted by the challenges of global markets of the 21st century. Customer requirements are becoming increasingly important. They demand products and expect their orders to be handled quickly, accurately, and cost-effectively (Shapiro et al. 2004). On the other hand, customer orders become more frequent, and order sizes may be as small as one item. Pine et al. (1993) have described a factory manufacturing customized pagers in lot sizes as small as one within hours of an order arriving from a customer. Therefore, enterprises have to meet the challenges of quickly responding to customer orders as well as producing customized products cost-effectively to survive in competitive global markets.

Mass customization (MC) is adopted by enterprises as a manufacturing strategy because it calls for flexibility and quick responsiveness. In an ever-changing environment, people, processes, units, and technology reconfigure to give customers exactly what they want with low cost, high quality, and variety (Pine et al. 1993). In order to realize MC, manufacturers need to adopt highly reactive strategies. Reactive strategies are also adopted in supply chains such as the emergence of make-to-order (MTO) supply chains because supply chains are now in new and complex environments. Suppliers are facing complex manufacturing environments. They need to respond to demand fluctuations and to produce requirements at a low price. They cannot afford to make on-time deliveries by carrying a large amount of inventory.

A flexible manufacturing system (FMS) is a computer-controlled manufacturing system that produces a variety of part types simultaneously for different demand volumes. The flexible manufacturing technology is an important enabler of mass customization. Pine et al. (1993) have pointed out that an FMS could be adopted to automate a module for MC because it can choose instantly any product component within its wide envelope of variety.

The FMS part input sequencing problem is the determination of a sequence for inputting parts into a flexible manufacturing system. It falls in the domain of FMS scheduling. Researchers have investigated the problem, and both static and dynamic approaches have been developed. This paper considers the FMS part input sequencing problem in an MC environment. Customer orders arrive dynamically with order size as small as one; part processing information may be available in advance. We propose a dynamic heuristic-based algorithm for the problem, which balances workload dynamically and utilizes segmental set functions to apply strategies as well as their priorities.

The remainder of the paper is organized as follows. Section 2 briefly summarizes relevant literature in FMS part input sequencing. Section 3 presents a solution procedure, which is a dynamic heuristic-based algorithm. Theoretical analysis of the proposed algorithm is presented in Sect. 4. The application of the proposed algorithm is illustrated by an example in Sect. 5. Conclusions, managerial implications, and further research are provided in Sect. 6.

2 Part input sequencing in FMSs

Relevant research in FMS part input sequencing from prior literature is summarized in this section. Stecke (1983) defined five production planning problems for FMS operations: the part type selection problem, the machine grouping problem, the production ratio problem, the resource allocation problem, and the loading problem. The part type selection problem is defined as the determination of a subset for immediate and simultaneous processing among a set of part types that have production requirements. The production ratio problem is the determination of the part mix ratios at which a set of part types selected should be produced over the next production period.

Stecke and Kim (1988) studied FMS part type selection approaches and presented a flexible approach to select part types and simultaneously determine their mix ratios to balance aggregate machine workload in a flexible flow system (FFS). The comparative results indicate that the flexible approach enables the FFS to be more highly utilized. Stecke and Kim (1991) detailed the flexible approach. They illustrated how existing procedures that determine the relative mix ratios balancing workload of ordered part types can contribute also to part type selection. The analyses of fixtures, carts, and travel times were conducted and it was found that the flexible approach required fewer dedicated fixtures than batching. Stecke and Toczylowski (1992) considered FMS dynamic part type selection. Mathematical programming models were developed. Their approach allows a certain production flexibility to improve the utilization of the system even at the possible expense of the completion of some parts earlier. Stecke (1992) made in-depth study on the part mix ratios and developed procedures to determine part mix ratios for independent demands in FMSs. Part input sequencing and machine breakdown situations were considered. It pointed out the usefulness of the part mix ratios in solving other planning and operating problems such as providing guidelines for determining an appropriate part input sequence.

Early research in FMS part input sequencing includes its consideration in combination with FMS production planning problems. Even though early research was not mainly focused on the part input sequencing problem, the researchers developed different approaches for the problem. Stecke and Kim (1991) applied an algorithm, a modified version of Johnson’s algorithm, to determine a part input sequence in FFSs. They demonstrated these same ratios can be useful in determining a part input sequence to balance workload over time and suggested further research in determining a good part input sequence. Stecke (1992) also addressed part input sequencing in FMSs and mentioned several approaches, although the primary focus of the research was not on FMS part input sequencing. Further research on developing a more precise algorithm to find a part input sequence was suggested.

O’Keefe and Rao (1992) compared six part input sequencing approaches for an FFS: three static approaches and three dynamic approaches. Two new dynamic methods, look-ahead simulation and a fuzzy heuristic rule base, were considered for inputting a part from available part types into an FFS at a decision point. They concluded that the static determination of the best input sequence is appropriate for a stable FFS but a rapidly changing FFS may benefit from a dynamic part input method.

Stecke and Smith (1996) studied part input sequencing in FFSs. They integrated part input sequences determination with part mix ratio determination and revealed several significant conclusions regarding part mix ratios, part input sequences, and look-ahead capability. These include the determination of the part mix ratios proved to be more significant in performance improvement than the determination of part input sequences, the robustness of the IP formulations, and equally high overall machine utilizations by look-ahead capability at lower levels of work-in-process (WIP).

Kim et al. (2001) performed a study on the FMS part input sequencing problem. They decomposed the problem into the part input grouping problem and the sequencing problem. Heuristic algorithms were developed for the part input grouping problem and a number of scheduling rules were used for the sequencing problem. However, their results indicate that dispatch rules for the sequencing problem do not have much influence on the system performance of FMSs.

In summary, researchers have studied the FMS production planning and operation management problems for decades. FMS part input sequencing has also been an interesting research topic. From the brief summary of the typical research in FMS part input sequencing from the literature it can be seen that a variety of approaches have been developed, including batches of MPS, the ordered MPS, the permutation of an MPS, the modified Johnson’s algorithm, look-ahead simulation, fuzzy rule base, as well as other heuristics.

3 Proposed solution procedure

The objective of this research is to develop an effective approach for the part input sequencing problem of FMSs in a mass customization environment. The FMS produces a variety of parts. Customer orders arrive dynamically with order size as small as one and therefore production requirements cannot be determined completely before a production cycle begins. We propose a dynamic heuristic-based algorithm for the FMS part input sequencing problem.

Workload balance has been recognized in the literature to be able to eliminate bottlenecks and to increase productivity in FMSs. Stecke and Morin (1985) showed that balancing workload maximizes expected production for production planning in certain types of FMSs. Literature has illustrated that the shortest processing time (SPT) scheduling rule can increase productivity in FMS scheduling. Choi and Malstrom (1988) examined several scheduling rules in an FMS by a physical simulator and concluded that SPT results in high output, low throughput time, and low WIP inventory in the FMS. Because the objective of the proposed algorithm is to increase productivity, strategies that can increase productivity are applied in the development of the algorithm. The strategy of dynamic workload balancing is applied. Then, SPT is applied. Also, first-in first-out (FIFO) is applied when more parts have the same priority as the results of dynamic workload balancing and SPT.

Segmental set functions are generated to include the strategy of dynamic workload balancing, and the SPT scheduling rule. Instead of an operation processing time, total time of operations of a part is used in SPT for part input sequencing. The dynamic workload of a process station is defined as total time of remaining operations of parts inputted into the FMS but not finished on the corresponding process station. It is dependent on the current status of an operating FMS. It can be obtained using a shop-floor monitoring system. Contemporary technology can be applied in developing a monitoring system (Kimura and Kanda 2005).

The proposed algorithm selects and inputs a part dynamically at each input decision point that occurs when an inputted part completes its operations and leaves. The algorithm is state dependent and is composed of two phases: the initialization phase and the iteration phase. The initialization phase of the algorithm is used to input parts quickly to process stations initially for simultaneous processing. The quantity of initially inputted parts should not be large and should be decided according to the capacity of an FMS to ensure no blocking or deadlocking of the FMS occurs. The iteration phase of the algorithm, which involves processing a part to completion and introduction of a new part, is utilized repeatedly to dynamically select and input parts.

The algorithm is depicted by the use of the concepts and approaches of discrete mathematics (Johnsonbaugh 2004). Notation utilized in the algorithm is summarized in Table 1; x, y, z, yy, yz, zy, or zz is utilized to represent an individual set. The algorithm is described in an outline form as follows:

Table 1 Notation utilized in the algorithm

3.1 Phase I. Initialization

Step 1. Let Ω = 0 and θ = 1. Check if parts are available in the preprocess area and formulate part sets at the initial time t 0. Let

$$ \begin{aligned} g_{q,p} \left({t_0} \right)= &\left\{ {\begin{array}{l} 1,\quad \hbox{part }p\hbox{ is in set } q \hbox{ at time }t_0,q=1,2,\ldots,M; \\ 0, \quad\hbox{else.} \\ \end{array}}\right.\\ E_q \left({t_0 } \right)= & \left\{ {p\left. \right|g_{q,p} \left({t_0 } \right)=1\wedge O_{p,1} =q} \right\},q=1,2, \ldots,M.\\ \end{aligned} $$
(1)

Step 2. Check if θ ≥ η. If it is, then go to Step 3. Else

$$ \hat{{p}}\left(q \right)=\left\{ {p\left. \right|p\in E_q \left({t_0 } \right)\wedge a_p =\mathop {\min }\limits_{p\in E_q \left({t_0 } \right)} \left\{ {a_p } \right\}} \right\},q=1,2, \ldots,M. $$
(2)

Input \(\hat{{p}}\left(q \right).\) Let \(\delta _{\hat{{p}}\left(q \right)} =0.\) Let \(g_{q,\hat{{p}}\left(q \right)} (t_0)=0\) and update E q (t 0), q = 1,2,…,M, θ = θ + 1. Repeat this step.

Step 3. Let θ = 1 and t = t 0. Check if parts are available in the preprocess area and formulate the part set x at time t. Let

$$ \begin{aligned} g_{x,p} \left(t \right)= & \left\{ {\begin{array}{l} 1,\quad \hbox{part }p\hbox{ is in set }x\hbox{ at time }t; \\ 0, \quad \hbox{else.} \\ \end{array}} \right.\\ E_x \left(t \right)= & \left\{ {p\left. \right|g_{x,p} \left(t \right)=1} \right\}.\\ \end{aligned} $$

3.2 Phase II. Iteration

Step 1. Check if tT. If it is, then stop; else check if E x (t) = ϕ. If it is, then stop; else check until \(\exists p, \delta _p =1.\) Let t = c p .

Step 2. Collect the current workload of process stations at time t, γ j (t), j ∈ J and obtain

$$ \begin{aligned} \hat{{j}} = & \left\{ {j\left. \right|j\in J\wedge \gamma _j \left(t \right)=\mathop {\min }\limits_{j\in J} \left\{ {\gamma _j \left(t \right)} \right\}} \right\},\\ \tilde {j}= & \left\{ {j\left. \right|j\in J\wedge \gamma _j \left(t \right)=\mathop {\min }\limits_{j\in J,j\neq\hat{{j}}} \left\{ {\gamma _j \left(t \right)} \right\}} \right\}.\\ \end{aligned} $$
(3)

Step 3. Check if parts are available in the preprocess area and formulate the part set x at time t. Let

$$ \begin{aligned} g_{x,p} \left(t \right)= & \left\{ {\begin{array}{l} 1,\quad \hbox{part }p\hbox{ is in set }x\hbox{ at time }t; \\ 0, \quad \hbox{else.} \\ \end{array}} \right.\\ E_x \left(t \right)= & \left\{ {p\left. \right|g_{x,p} \left(t \right)=1} \right\}.\\ \end{aligned} $$
(4)

Step 4. Classify the parts in E x (t) into subsets and obtain E y (t) and E z (t) such that \(E_y \left(t \right)\cup E_z \left(t \right)=E_x \left(t \right).\) Let

$$ \begin{aligned} g_{q,p} \left(t \right)= & \left\{ {\begin{array}{l} 1, \quad \hbox{part }p\hbox{ is in set }q\hbox{ at time }t,q=y,z; \\ 0, \quad \hbox{else.} \\ \end{array}} \right.\\ E_y \left(t \right)= & \left\{ {p\left. \right|p\in E_x \left(t \right)\wedge g_{y,p} \left(t \right)=1\wedge O_{p,1} =\hat{{j}}} \right\},\\ E_z \left(t \right)= & \left\{ {p\left. \right|p\in E_x \left(t \right)\wedge g_{z,p} \left(t \right)=1\wedge O_{p,1} \neq\hat{{j}}} \right\}.\\ \end{aligned} $$
(5)

Step 5. Classify the parts in E y (t) into subsets and obtain E yy (t) and E yz (t) such that \(E_{yy} \left(t \right)\cup E_{yz} \left(t \right)=E_y \left(t \right).\) Classify the parts in E z (t) into subsets and obtain E zy (t) and E zz (t) such that \(E_{zy} \left(t \right)\cup E_{zz} \left(t \right)=E_z \left(t \right).\) Let

$$ \begin{aligned} g_{q,p} \left(t \right)= & \left\{ {\begin{array}{l} 1,\quad \hbox{part }p\hbox{ is in set }q\hbox{ at time }t,q=yy,yz,zy,zz; \\ 0, \quad \hbox{else.} \\ \end{array}} \right.\\ E_{yy} \left(t \right) = & \left\{ {p\left. \right|p\in E_y \left(t \right)\wedge g_{yy,p} \left(t \right)=1\wedge O_{p,1} =\hat{{j}}\wedge O_{p,2} =\tilde {j}} \right\},\\ E_{yz} \left(t \right)= & \left\{ {p\left. \right|p\in E_y \left(t \right)\wedge g_{yz,p} \left(t \right)=1\wedge O_{p,1} =\hat{{j}}\wedge O_{p,2} \neq\tilde {j}} \right\},\\ E_{zy} \left(t \right)= & \left\{ {p\left. \right|p\in E_z \left(t \right)\wedge g_{zy,p} \left(t \right)=1\wedge O_{p,1} \neq\hat{{j}}\wedge O_{p,1} =\tilde {j}} \right\},\\ E_{zz} \left(t \right)=& \left\{ {p\left. \right|p\in E_z \left(t\right)\wedge g_{zz,p} \left(t \right) = 1\wedge O_{p,1} \neq\hat{{j}}\wedge O_{p,1} \neq\tilde {j}} \right\}.\\ \end{aligned} $$
(6)

Step 6. Check if Ω = 1. If it is, then let θ = 1 and go to Step 7; else check if E q (t) = ϕ, q = x,y, yy, yz, zy, zz. If it is, then let Ω = 1 and go to Step 3 of this phase. Else

$$ \tilde {p}\left(q \right)=\left\{ {p\left. \right|p\in E_q \left(t \right)\wedge \sigma _p =\mathop {\min }\limits_{p\in E_q \left(t \right)} \left\{ {\sigma _p } \right\}} \right\}, $$
(7)

\(\lambda _q \left({\tilde {p}\left(q \right)} \right)=\theta, \theta =\theta +1.\) Let \(g_{q,\tilde {p}\left(q \right)} \left(t \right)=0\) and update E q (t). Repeat this step.

Step 7. Obtain set functions as follows, which are called as the simple functions

$$ \begin{aligned} \lambda _x\hbox{: } & E_x \left(t \right)\rightarrow I, \lambda _x =\left\{ {\left({p,\lambda _x \left(p \right)} \right)\left. \right|p\in E_x \left(t \right)} \right\};\\ \lambda _y\hbox{: } & E_y \left(t \right)\rightarrow I, \lambda _y =\left\{ {\left({p,\lambda _y \left(p \right)} \right)\left. \right|p\in E_y \left(t \right)} \right\}.\\ \end{aligned} $$
(8)

Obtain the segmented function as follows, which is also a set function

$$ P=\left\{ {p\left. \right|p\in E_q \left(t \right),q=yy,yz,zy,zz} \right\}, $$
(9)
$$ {\lambda }'\hbox{: }P\rightarrow I, {\lambda }'=\left\{ {\left({p,\lambda _q \left(p \right)} \right)\left. \right|p\in P} \right\}. $$
(10)

Step 8. Obtain the transformed function

$$ \overline \lambda\hbox{: } P\rightarrow I, \overline \lambda =\left\{ {\left({p,\overline \lambda _q \left(p \right)} \right)\left. \right|p\in P} \right\}.$$
(11)
$$ \overline \lambda _q \left(p \right)=\left\{ {\begin{array}{ll} \overline \lambda _{yy} \left(p \right)=\lambda _y \left(p \right)+\lambda _{yy} \left(p \right), & {p\in E_{yy} \left(t \right);} \\ \overline \lambda _{yz} \left(p \right)=\lambda _y \left(p \right)+\lambda _{yz} \left(p \right), & {p\in E_{yz} \left(t \right);} \\ \overline \lambda _{zy} \left(p \right)=\lambda _z \left(p \right)+\lambda _{zy} \left(p \right), & {p\in E_{zy} \left(t \right);} \\ \overline \lambda _{zz} \left(p \right)=\lambda _z \left(p \right)+\lambda _{zz} \left(p \right), & {p\in E_{zz} \left(t \right).} \\ \end{array}} \right. $$

Let λ z (p) = 0, p ∈ E z (t); λ yz (p) = 0, p ∈ E yz (t); λ zz (p) = 0, p ∈ E zz (t). Then

$$ \overline \lambda _q \left(p \right)=\left\{ {\begin{array}{ll} \lambda _y \left(p \right)+\lambda _{yy} \left(p \right), & {p\in E_{yy} \left(t \right);} \\ \lambda _y \left(p \right), & {p\in E_{yz} \left(t \right);} \\ \lambda _{zy} \left(p \right), & {p\in E_{zy} \left(t \right);} \\ 0, & {p\in E_{zz} \left(t \right).} \\ \end{array}} \right. $$
(12)

Step 9. Add the weight ξ to the transformed function to obtain the weighted function

$$ \tilde {\lambda}\hbox{: }P\rightarrow I, \tilde {\lambda }=\left\{ {\left({p,\tilde {\lambda }_q \left(p \right)} \right)\left. \right|p\in P} \right\}, \tilde {\lambda }_q \left(p \right)=\overline \lambda _q \left(p \right)+\xi S, $$
(13)
$$ \hbox{where }\xi =\left\{ {\begin{array}{ll} -5, & {q=yy;} \\ -3,& {q=yz;} \\ -1,& {q=zy;} \\ 0, & q=zz. \\ \end{array}} \right. $$
(14)

Step 10. Obtain the overall function

$$ \hat{{\lambda }}\hbox{: }P\rightarrow I, \hat{{\lambda }}=\left\{ {\left({p,\hat{{\lambda }}_q \left(p \right)} \right)\left. \right|p\in P} \right\}, \hat{{\lambda }}_q \left(p \right)=\lambda _x \left(p \right)+\tilde {\lambda }_q \left(p \right). $$
(15)

Step 11. Obtain

$$ p^{\ast}\left(x \right)=\left\{ {p\left. \right|p\in E_x \left(t \right)\wedge a_p =\mathop {\min }\limits_{p\in E_x \left(t \right)} \left\{ {a_p \left. \right|\hat{{\lambda }}_q \left(p \right)=\mathop {\min }\limits_{p\in E_x \left(t \right)} \left\{ {\hat{{\lambda }}_q \left(p \right)} \right\}} \right\}} \right\}. $$
(16)

Input part p*(x). Let \(\delta _{p^{\ast}\left(x \right)} =0\) and Ω = 0. Let \(g_{x,p^{\ast}\left(x \right)} (t)=0\) and update E x (t). Go to Step 1 of this phase.

4 Theoretical analysis

To analyze the effectiveness of the proposed algorithm, the concepts and approaches of discrete mathematics are applied and the properties of the set functions are discussed. Here, m, n, s, or e is utilized to represent an individual part. First, λ x (p) and λ y (p) are the elements in the ranges of the simple functions λ x and λ y and have the property of an ascending order of σ p . Proposition 1 describes this.

Proposition 1

\(\forall m,n\in E_x \left(t \right)\neq\phi, \sigma _m \le \sigma _n \Leftrightarrow \lambda _x (m) \le \lambda _x (n); \forall m,n\in E_y \left(t \right)\neq\phi, \sigma _m \le \sigma _n \Leftrightarrow \lambda _y (m) \le \lambda _y (n).\)

Proof

The elements λ x (p) are obtained by the recursive applications of formula (7) and the assignments of integers started with 1 and increased by 1 to each \(\lambda _x \left({\tilde {p}(x)} \right).\) Hence an ascending order of σ p is obtained. Therefore, \(\forall m,n\in E_x \left(t \right)\neq\phi,\) if \(\sigma _m \le \sigma _n,\) then λ x (m) ≤ λ x (n). Vice versa, if λ x (m) ≤ λ x (n), then σ m ≤ σ n . Therefore, \(\sigma _m \le \sigma _n \Leftrightarrow \lambda _x \left(m \right) \le \lambda _x \left(n \right), \forall m,n\in E_x \left(t \right)\neq\phi.\) Similarly, it can be obtained that \(\sigma _m \le \sigma _n \Leftrightarrow \lambda _y (m) \le \lambda _y (n), \forall m,n\in E_y \left(t \right)\neq\phi.\) \( \square\)

λ q (p), q = yy, yz, zy, zz are the elements in the range of the segmented function λ′ and have the property of an ascending order of \(\sigma _p \) in each subset. Proposition 2 depicts this.

Proposition 2

\(\forall m,n\in E_q \left(t \right)\neq\phi, q=yy,yz,zy,zz, \sigma _m \le \sigma _n \Leftrightarrow \lambda _q \left(m \right) \le \lambda _q \left(n \right).\)

Proof

The elements λ q (p) are obtained by the recursive applications of formula (7) and the assignments of integers started with 1 and increased by 1 to each \(\lambda _q \left({\tilde {p}(q)} \right).\) Hence an ascending order of σ p is obtained. Therefore, \(\forall m,n\in E_q \left(t \right)\neq\phi, q = yy, yz, zy, zz.\) If σ m ≤ σ n then λ q (m) ≤ λ q (n). Vice versa, if λ q (m) ≤ λ q (n), then σ m ≤ σ n . Therefore, \(\sigma _m \le \sigma _n \Leftrightarrow \lambda _q \left(m \right) \le \lambda _q \left(n \right), \forall m,n\in E_q \left(t \right)\neq\phi, q = yy, yz, zy, zz.\) \(\square\)

Theorem 1

Formula (15) is valid in obtaining the overall function \(\hat{{\lambda }}.\)

Proof

\(E_y \left(t \right)\cup E_z \left(t \right)=E_x \left(t \right)\) according to Step 4. Similarly according to Step 5, \(E_{yy} \left(t \right)\cup E_{yz} \left(t \right)=E_y \left(t \right)\) and \(E_{zy} \left(t \right)\cup E_{zz} \left(t \right)=E_z \left(t \right). \, \therefore E_{yy} \left(t \right)\cup E_{yz} \left(t \right)\cup E_{zy} \left(t \right)\cup E_{zz} \left(t \right)=E_x \left(t \right).\) According to formula (9),

$$ \begin{array}{l} P=\left\{ {p\left. \right|p\in E_q \left(t \right),q=yy,yz,zy,zz} \right\} =\left\{ {p\left. \right|p\in E_{yy} \left(t \right)\vee p\in E_{yz} \left(t \right)\vee p\in E_{zy} \left(t \right)\vee p\in E_{zz} \left(t \right)} \right\}\\ =\left\{ {p\left. \right|p\in E_{yy} \left(t \right)} \right\}\cup \left\{ {p\left. \right|p\in E_{yz} \left(t \right)} \right\}\cup \left\{ {p\left. \right|p\in E_{zy} \left(t \right)} \right\}\cup \left\{ {p\left. \right|p\in E_{zz} \left(t \right)} \right\} =E_{yy} \left(t \right)\cup E_{yz} \left(t \right)\cup E_{zy} \left(t \right)\cup E_{zz} \left(t \right). \\ \end{array} $$

E x (t) = P. According to formulae (13) and (15), \(\hat{{\lambda}}\hbox{: }P\rightarrow I, \; \hat{{\lambda }}=\left\{ {\left({p,\hat{{\lambda }}_q \left(p \right)} \right)\left. \right|p\in P} \right\}, \hat{{\lambda }}_q \left(p \right)=\lambda _x \left(p \right)+\tilde {\lambda }_q \left(p \right)=\lambda _x \left(p \right)+\bar{{\lambda }}_q \left(p \right)+\xi S.\,\,\lambda _x \left(p \right)\) are the elements in the range of \(\lambda _x.\,\,\overline \lambda _q \left(p \right)\) are the elements in the range of \(\overline \lambda.\) S and ξ are constants with values of integers. The domain of \(\bar{{\lambda }}\) is P. Because the domains of λ x and \(\bar{{\lambda }}\) are the same, formula (15) is valid in obtaining the overall function \(\hat{{\lambda }}.\) \(\square\)

\(\bar{{\lambda }}_q \left(p \right), q=yy,yz,zy,zz\) are the elements in the range of the transformed function \(\bar{{\lambda }}\) and have the property of an ascending order of σ p in each subset. Theorem 2 describes this.

Theorem 2

\(\forall m,n\in E_q \left(t \right)\neq\phi, q=yy,yz,zy,zz, \sigma _m \le \sigma _n \Leftrightarrow \bar{{\lambda }}_q \left(m \right) \le \bar{{\lambda }}_q \left(n \right).\)

Proof

According to formula (12), \(\bar{{\lambda }}_{yy} \left(p \right)=\lambda _y \left(p \right)+\lambda _{yy} \left(p \right), p\in E_{yy} \left(t \right); \bar{{\lambda }}_{yz} \left(p \right)=\lambda _y \left(p \right), p\in E_{yz} \left(t \right); \bar{{\lambda }}_{zy} \left(p \right)=\lambda _{zy} \left(p \right), p\in E_{zy} \left(t \right); \bar{{\lambda }}_{zz} \left(p \right)=0, p\in E_{zz} \left(t \right).\) According to Proposition 1, \(\forall m,n\in E_y \left(t \right)\neq\phi, \sigma _m \le \sigma _n \Leftrightarrow \lambda _y \left(m \right) \le \lambda _y \left(n \right).\) According to Proposition 2, \(\forall m,n\in E_q \left(t \right)\neq\phi, q=yy,yz,zy,zz, \sigma _m \le \sigma _n \Leftrightarrow \lambda _q \left(m \right) \le \lambda _q \left(n \right).\) If\(\sigma _m \le \sigma _n, \bar{{\lambda }}_{yy} \left(m \right)-\bar{{\lambda }}_{yy} \left(n \right)=\lambda _y \left(m \right)-\lambda _y \left(n \right)+\lambda _{yy} \left(m \right)-\lambda _{yy} \left(n \right) \le 0, \quad m,n\in E_{yy} \left(t \right).\) On the other hand, if \(\bar{{\lambda }}_{yy} \left(m \right) \le \bar{{\lambda }}_{yy} \left(n \right), m,n\in E_{yy} \left(t \right),\) then \(\lambda _y \left(m \right)-\lambda _y \left(n \right)+\lambda _{yy} \left(m \right)-\lambda _{yy} \left(n \right) \le 0, m,n\in E_{yy} \left(t \right).\) Different conditions make the above inequality hold:

  1. (1)

    \(\lambda _y \left(m \right)-\lambda _y \left(n \right) \le 0,\) and \(\left| {\lambda _{yy} \left(m \right)-\lambda _{yy} \left(n \right)} \right| \le \left| {\lambda _y \left(m \right)-\lambda _y \left(n \right)} \right|;\)

  2. (2)

    \(\lambda _{yy} \left(m \right)-\lambda _{yy} \left(n \right) \le 0,\) and \(\left| {\lambda _y \left(m \right)-\lambda _y \left(n \right)} \right| \le \left| {\lambda _{yy} \left(m \right)-\lambda _{yy} \left(n \right)} \right|;\)

  3. (3)

    \(\lambda _y \left(m \right)-\lambda _y \left(n \right) \le 0,\) and \(\lambda _{yy} \left(m \right)-\lambda _{yy} \left(n \right) \le 0.\)

Therefore, \(\sigma _m \le \sigma _n \) according to Proposition 1 for condition (1); \(\sigma _m \le \sigma _n \) according to Proposition 2 for condition (2); \(\sigma _m \le \sigma _n \) according to Propositions 1 and 2 for condition (3). ∴\(\sigma _m \le \sigma _n \Leftrightarrow \bar{{\lambda }}_{yy} \left(m \right) \le \bar{{\lambda }}_{yy} \left(n \right), m,n\in E_{yy} \left(t \right).\) Similarly, \(\sigma _m \le \sigma _n \Leftrightarrow \bar{{\lambda }}_{yz} \left(m \right) \le \bar{{\lambda }}_{yz} \left(n \right), m,n\in E_{yz} \left(t \right); \sigma _m \le \sigma _n \Leftrightarrow \bar{{\lambda }}_{zy} \left(m \right) \le \bar{{\lambda }}_{zy} \left(n \right), m,n\in E_{zy} \left(t \right); \sigma _m \le \sigma _n \Leftrightarrow \bar{{\lambda }}_{zz} \left(m \right) \le \bar{{\lambda }}_{zz} \left(n \right), m,n\in E_{zz} \left(t \right).\,\, \therefore \forall m,n\in E_q \left(t \right)\neq\phi, q=yy,yz,zy,zz, \sigma _m \le \sigma _n \Leftrightarrow \bar{{\lambda }}_q \left(m \right) \le \bar{{\lambda }}_q \left(n \right).\) \(\square\)

\(\hat{{\lambda }}_q \left(p \right), q = yy, yz, zy, zz\) are the elements in the range of the overall function \(\hat{{\lambda }}\) and have the property of an ascending order of \(\sigma _p \) in each subset. Theorem 3 depicts this.

Theorem 3

\(\forall m,n\in E_q \left(t \right)\neq\phi, q=yy,yz,zy,zz, \sigma _m \le \sigma _n \Leftrightarrow \hat{{\lambda }}_q \left(m \right) \le \hat{{\lambda }}_q \left(n \right).\)

Proof

According to formulae (13) and (15),

$$ \begin{array}{l} \hat{{\lambda }}_{yy} \left(p \right)=\lambda _x \left(p \right)+\overline \lambda _{yy} \left(p \right)+\xi S, \quad p\in E_{yy} \left(t \right); \quad\hat{{\lambda }}_{yz} \left(p \right)=\lambda _x \left(p \right)+\overline \lambda _{yz} \left(p \right)+\xi S,\quad p\in E_{yz} \left(t \right);\\ \hat{{\lambda }}_{zy} \left(p \right)=\lambda _x \left(p \right)+\overline \lambda _{zy} \left(p \right)+\xi S, \quad p\in E_{zy} \left(t \right);\quad \hat{{\lambda }}_{zz} \left(p \right)=\lambda _x \left(p \right)+\overline \lambda _{zz} \left(p \right)+\xi S,\quad p\in E_{zz} \left(t \right).\\ \end{array} $$

According to Proposition 1, \(\forall m,n\in E_x \left(t \right)\neq\phi, \sigma _m \le \sigma _n \Leftrightarrow \lambda _x \left(m \right) \le \lambda _x \left(n \right).\) According to Theorem 2, \(\forall m,n\in E_q \left(t \right)\neq\phi, q = yy, yz, zy, zz, \sigma _m \le \sigma _n \Leftrightarrow \bar{{\lambda }}_q \left(m \right) \le \bar{{\lambda }}_q \left(n \right).\) Therefore, if \(\sigma _m \le \sigma _n,\) \(\hat{{\lambda }}_{yy} \left(m \right)-\hat{{\lambda }}_{yy} \left(n \right)=\lambda _x \left(m \right)-\lambda _x \left(n \right)+\overline \lambda _{yy} \left(m \right)-\overline \lambda _{yy} \left(n \right) \le 0, m,n\in E_{yy} \left(t \right).\) On the other hand, if \(\hat{{\lambda }}_{yy} \left(m \right) \le \hat{{\lambda }}_{yy} \left(n \right), m,n\in E_{yy} \left(t \right),\) then \(\hat{{\lambda }}_{yy} \left(m \right)-\hat{{\lambda }}_{yy} \left(n \right)=\lambda _x \left(m \right)-\lambda _x \left(n \right)+\overline \lambda _{yy} \left(m \right)-\overline \lambda _{yy} \left(n \right) \le 0, m,n\in E_{yy} \left(t \right).\) Different conditions make the above inequality hold:

  1. (1)

    \(\lambda _x \left(m \right)-\lambda _x \left(n \right) \le 0,\) and \(\left| {\overline \lambda _{yy} \left(m \right)-\overline \lambda _{yy} \left(n \right)} \right| \le \left| {\lambda _x \left(m \right)-\lambda _x \left(n \right)} \right|;\)

  2. (2)

    \(\overline \lambda _{yy} \left(m \right)-\overline \lambda _{yy} \left(n \right) \le 0,\) and \(\left| {\lambda _x \left(m \right)-\lambda _x \left(n \right)} \right| \le \left| {\overline \lambda _{yy} \left( m \right)-\overline \lambda _{yy} \left( n \right)} \right|;\)

  3. (3)

    \(\lambda _x \left(m \right)-\lambda _x \left(n \right) \le 0,\) and \(\overline \lambda _{yy} \left(m \right)-\overline \lambda _{yy} \left(n \right) \le 0.\)

Therefore, \(\sigma _m \le \sigma _n \) according to Proposition 1 for condition (1); \(\sigma _m \le \sigma _n \) according to Theorem 2 for condition (2); and \(\sigma _m \le \sigma _n \) according to Proposition 1 and Theorem 2 for condition (3). ∴\(\sigma _m \le \sigma _n \Leftrightarrow \hat{{\lambda }}_{yy} \left(m \right) \le \hat{{\lambda }}_{yy} \left(n \right), m,n\in E_{yy} \left(t \right).\) Similarly, \(\sigma _m \le \sigma _n \Leftrightarrow {\hat{\lambda }}_{yz} (m) \le {\hat{\lambda }}_{yz} (n), m,n\in E_{yz} (t); \sigma _m \le \sigma _n \Leftrightarrow {\hat{\lambda }}_{zy} (m) \le {\hat{\lambda }}_{zy} (n), m,n \in E_{zy} ( t ); \sigma _m \le \sigma _n \Leftrightarrow {\hat{\lambda }}_{zz} (m ) \le {\hat{\lambda }}_{zz} ( n ), m,n\in E_{zz} (t ). \ \therefore \forall m,n\in E_q ( t )\neq \phi, q=yy,yz,zy,zz, \sigma _m \le \sigma _n \Leftrightarrow {\hat{\lambda }}_q ( m ) \le {\hat{\lambda }}_q ( n ).\) \(\square\)

A minimal \(\hat{{\lambda }}_q \left( p \right)\) corresponding to the parts in subset E yy (t) or E yz (t) is less than that corresponding to the parts in subset E zy (t) or E zz (t). Theorem 4 explains this.

Theorem 4

If \(m\in E_{yy} \left( t \right), n\in E_{yz} \left( t \right), s\in E_{zy} \left( t \right), e\in E_{zz} \left( t \right),\)

$$ \begin{array}{l} \hat{{\lambda }}_{yy} \left( m \right)=\min \left\{ {\hat{{\lambda }}_{yy} \left( p \right),p\in E_{yy} \left( t \right)} \right\},\quad \hat{{\lambda }}_{yz} \left( n \right)=\min \left\{ {\hat{{\lambda }}_{yz} \left( p \right),p\in E_{yz} \left( t \right)} \right\},\\ \hat{{\lambda }}_{zy} \left( s \right)=\min \left\{ {\hat{{\lambda }}_{zy} \left( p \right),p\in E_{zy} \left( t \right)} \right\},\quad \hat{{\lambda }}_{zz} \left( e \right)=\min \left\{ {\hat{{\lambda }}_{zz} \left( p \right),p\in E_{zz} \left( t \right)} \right\},\\ \end{array} $$

then \(\hat{{\lambda }}_{yy} \left( m \right) < \hat{{\lambda }}_{zy} \left( s \right), \hat{{\lambda }}_{yy} \left( m \right) < \hat{{\lambda }}_{zz} \left( e \right), \hat{{\lambda }}_{yz} \left( n \right) < \hat{{\lambda }}_{zy} \left( s \right), \hat{{\lambda }}_{yz} \left( n \right) < \hat{{\lambda }}_{zz} \left( e \right).\)

Proof

It can be obtained, according to formulae (11–15), that

$$ \begin{array}{l} \hat{{\lambda }}_{yy} \left( p \right)=\lambda _x \left( p \right)+\lambda _y \left( p \right)+\lambda _{yy} \left( p \right)-5S,\quad p\in E_{yy} \left( t \right);\quad \hat{{\lambda }}_{yz} \left( p \right)=\lambda _x \left( p \right)+\lambda _y \left( p \right)-3S, \quad p\in E_{yz} \left( t \right);\\ \hat{{\lambda }}_{zy} \left( p \right)=\lambda _x \left( p \right)+\lambda _{zy} \left( p \right)-S,\quad p\in E_{zy} \left( t \right);\quad \hat{{\lambda }}_{zz} \left( p \right)=\lambda _x \left( p \right),\quad p\in E_{zz} \left( t \right).\\ \end{array} $$

Therefore, \(\hat{{\lambda }}_{yy} \left( m \right)-\hat{{\lambda }}_{zy} \left( s \right)=\lambda _x \left( m \right)+\lambda _y \left( m \right)+\lambda _{yy} \left( m \right)-5S-\lambda _x \left( s \right)-\lambda _{zy} \left( s \right)+S.\) Because the elements in the ranges of both the simple functions and the segmented function are obtained by arranging parts in ascending orders of \(\sigma _p \) in different subsets and assigning integers started with 1 and increased by 1 to them, \(1 \le \lambda _x \left( m \right) \le S, 1 \le \lambda _x \left( s \right) \le S, 1 \le \lambda _y \left( m \right) \le S, 1 \le \lambda _{yy} \left( m \right) \le S, 1 \le \lambda _{zy} \left( s \right) \le S, S > 1.\,\,\hat{{\lambda }}_{yy} \left( m \right)-\hat{{\lambda }}_{zy} \left( s \right) \le -S-2 < 0,\,\, \therefore \hat{{\lambda }}_{yy} \left( m \right) < \hat{{\lambda }}_{zy} \left(s\right).\) Similarly, it can be obtained that \(\hat{{\lambda }}_{yy} \left( m \right)-\hat{{\lambda }}_{zz} \left( s \right)=\lambda _x \left( m \right)+\lambda _y \left( m \right)+\lambda _{yy} \left( m \right)-5S-\lambda _x \left( e \right) \le -2S-1 < 0. \,\, \therefore \hat{{\lambda }}_{yy} \left( m \right) < \hat{{\lambda }}_{zz} \left( e \right).\) Similar to the above, it can be obtained as well that \(\hat{{\lambda }}_{yz} \left( n \right)-\hat{{\lambda }}_{zy} \left( s \right)=\lambda _x \left( n \right)+\lambda _y \left( n \right)-3S-\lambda _x \left( s \right)-\lambda _{zy} \left( s \right)+S \le -2, \therefore \hat{{\lambda }}_{yz} \left( n \right) < \hat{{\lambda }}_{zy} \left( s \right); \hat{{\lambda }}_{yz} \left( n \right)-\hat{{\lambda }}_{zz} \left( e \right)=\lambda _x \left( n \right)+\lambda _y \left( n \right)-3S-\lambda _x \left( e \right) \le -S-1 < 0, \therefore \hat{{\lambda }}_{yz} \left( n \right) < \hat{{\lambda }}_{zz} \left( e \right).\) \(\square\)

Theorem 5

Formula (16) is valid in obtaining the selected part.

Proof

\(\hat{{\lambda }}_q \left( p \right)\) in formula (16) are the elements in the range of the overall function \(\hat{{\lambda }}.\) The proof is similar to that of Theorem 1, \(E_x \left( t \right)=P.\) Then, \(\mathop {\min }\limits_{p\in E_x \left( t \right)} \left\{ {\hat{{\lambda }}_q \left( p \right)} \right\}\) is valid in obtaining the minimal element in the range of the overall function \(\hat{{\lambda }}\) for parts in E x (t). Similarly, \(\mathop {\min }\limits_{p\in E_x \left( t \right)} \left\{ {a_p } \right\}\) obtains the earliest arrival time for parts in E x (t). Therefore, formula (16) is valid in identifying the part that corresponds to the minimal \(\hat{{\lambda }}_q \left( p \right)\) and has the earliest arrival time among the parts corresponding to the minimal \(\hat{{\lambda }}_q \left( p \right).\) \(\square\)

In summary, according to Theorem 4, a minimal \(\hat{{\lambda }}_q \left( p \right)\) corresponding to the parts in subset E yy (t) or E yz (t) is less than that corresponding to the parts in the other subsets. Both of the subsets possess the parts that best balance the workload. Therefore, if a part in subset E yy (t) or E yz (t) is inputted, the FMS tends to be more balanced. Also, at each input decision point, the algorithm selects and inputs the part corresponding to the minimal \(\hat{{\lambda }}_q \left( p \right)\) and having the earliest arrival time among the parts that correspond to the minimal \(\hat{{\lambda }}_q \left( p \right)\) according to Theorem 5. In addition, according to Theorem 3, a minimal \(\hat{{\lambda }}_q \left( p \right)\) corresponds to the parts having the minimal total time of operations in each subset. This indicates that the part selected and inputted at each input decision point balances the workload the most and has the minimal total time of operations in the same subset. Therefore, the algorithm utilizes the segmental set functions to dynamically balance workload first, and then apply SPT. In other words, the algorithm is effective in dynamic workload balancing.

5 Application example

The proposed algorithm can be applied to practical situations. It is well recognized in the literature that workload balance can increase productivity in FMSs. Therefore, the proposed algorithm can be used for part input sequencing of the FMSs in the MC environment to increase productivity. It can be applied to FMSs supplying multiple partners in MTO supply chains. It provides a methodology for FMSs to increase productivity and to handle demand fluctuations.

An illustrative example is provided here to explain how the proposed algorithm works. The example is developed by the use of simulation modeling and GPSS simulation software. The simulation of a real FMS in the semiconductor industry by GPSS simulation software was obtained from Department of Industrial Engineering, Texas Tech University and modified for illustrative purposes. A detailed description of the example can be found in He (1996).

The FMS is composed of a loading/unloading station, five process stations, and a material handling robot. The FMS configuration is illustrated in Fig. 1. The robot can only swing in a partial circle. It has to swing backwards at the end of a circle. Each process station provides a local buffer of limited capacity for WIP inventory. Because total parts processed simultaneously in the FMS are limited, parts generally do not exceed the local buffer capacity and there is no blocking of a process station. Researchers have considered dynamic arrival of part types in FMS studies for the machine grouping problem in FMSs (Stecke and Raman 1994), for the scheduling problem in FMSs (Sabuncuoglu 1998), and for the machine loading problem in FMSs (Sabuncuoglu and Lahmar 2003). Here, arriving parts are filled in a preprocess area of the FMS based on their arrival times. Production requirements are uniformly distributed among all part types. Part routings are random and are predetermined. Production information is listed in Table 2.

Fig. 1
figure 1

FMS configuration

Table 2 Production information

First, the algorithm checks available parts in the preprocess area at Step 1 to form the part sets E q (t 0) so that the same quantity of parts can be initially inputted to each process station as per formula (1). g q,p (t 0) in formula (1) is used to update E q (t 0). Formula (2) identifies the part having the earliest arriving time for each process station. Four parts are inputted to each process station, resulting in a total of 20 parts initially inputted into the FMS at Step 2. Then, the algorithm updates to the current time, checks available parts in the preprocess area to formulate the part set E x (t), and turns to the iteration phase at Step 3. The parts of each type inputted are listed at the second column in Table 3. The parts of each type remaining in the preprocess area are also listed in Table 3.

Table 3 Information obtained in the example by applying the proposed algorithm

At Step 1 in the iteration phase, the algorithm checks if the production cycle is finished. If so, the algorithm stops; if not, the algorithm checks if there are no parts to be inputted, and if there are no parts, the algorithm stops; if there are parts, the algorithm updates to the current time until a part finishes all its operations and leaves. After a part finishes all its operations, several operations are finished as well. Then, current workload information of the process stations is collected and the least and the second least loaded process stations are identified at Step 2 as per formula (3). The total processing times of the parts inputted are summarized in Table 4. The total processing times of the operations finished are summarized in Table 5. We can see from the tables that currently process station 3 is the least loaded station, having a workload of 290, and that process station 1 is the second least loaded one, having a workload of 390.

Table 4 Total inputted processing times
Table 5 Total finished processing times

Next, at Steps 3, 4, and 5, the algorithm checks available parts in the preprocess area to formulate E x (t) and classify parts in E x (t) into different subsets as per formulae (4–6). Similar to the above, g q,p (t) in the formulae are used to update E q (t). The classification is made by three levels of divisions: the division of E x (t) into subsets to obtain E y (t) and E z (t), the division of E y (t) into subsets to obtain E yy (t) and E yz (t), and the division of E z (t) into subsets to obtain E zy (t) and E zz (t). Formulae (4–6) describe the sets. The reason for the classification is that different priorities need to be considered for parts to be inputted from different subsets. Also, part input decisions are made dynamically, and different situations may occur at different input decision points, where there are no parts in E yy (t), or there are no parts in both E yy (t) and E yz (t), or others. These steps repeat once more. Part sets of E x (t), E y (t), E z (t), E yy (t), E yz (t), E zy (t), and E zz (t) are formed twice. \({\Upomega}\) is used to control the repetition at Step 6. First, the part sets are formed in order to obtain the elements in the ranges of the simple functions and the segmented function at Step 6. The same part sets are formed again as the elements in the domains of the set functions. Because the part sets used to obtain the elements in the domains and in the ranges of the set functions are the same, the set functions obtained are valid. Also, parts in the preprocess area are checked and part sets are formed each iteration in this phase in order to consider newly arriving parts. In the example, the parts in the preprocess area can be classified into different subsets based on their routings and the current workload information as follows: no parts in E yy (t), three type 3 and one type 5 parts in E yz (t), four type 1 and five type 6 parts in E zy (t), and two type 2, one type 4, one type 7, six type 8, and seven type 9 parts in \(E_{zz} \left( t \right).\,\,E_y \left( t \right)\cup E_z \left( t \right)=E_x \left( t \right),\) as described in Step 4. \(E_{yy} \left( t \right)\cup E_{yz} \left( t \right)=E_y \left( t \right)\) and E zy (t)∪ E zz (t) = E z (t), as displayed in Step 5. Therefore, all of the parts are in E x (t). Among them, type 3 and type 5 parts are in E y (t). The others are in E z (t).

At Steps 6 and 7, the algorithm obtains the simple functions and the segmented function as per formulae (7–10). The elements \(\lambda _x \left( p \right), \lambda _y \left( p\right),\) and \(\lambda _q \left( p \right)\) are obtained by ascending orders of \(\sigma _p \) in the sets E x (t), E y (t), E yy (t), E yz (t), E zy (t), and E zz (t) accordingly. The part to be selected and inputted can be identified based on their arriving times among the parts corresponding to the minimal \(\hat{{\lambda }}_q \left( p \right)\) according to Theorem 5. The elements \(\hat{{\lambda }}_q \left( p \right)\) can be obtained based on current workload information and part processing information that is the same for the same part type. Therefore, the part corresponding to the minimal \(\hat{{\lambda }}_q \left( p \right)\) is among the parts of the part type corresponding to the minimal \(\hat{{\lambda }}_q \left( {pt} \right),\) where pt is the part type index. For illustrative purpose, part types instead of parts are utilized to obtain the elements in the ranges of the set functions in the example. The elements λ x (pt) and \(\lambda _y \left( {pt} \right)\) are listed at the fourth and fifth columns in Table 3. The elements \(\lambda _q \left( {pt} \right)\) in different subsets are also listed in Table 3.

At Steps 8 and 9, the algorithm constructs the transformed function and adds the weight to it to obtain the weighted function as per formulae (11–14). The transformed function is constructed according to the three levels of divisions such that the elements in its range are different in different subsets. \(\lambda _y \left( p \right)\) is for the first division, \(\lambda _{yy} \left( p \right)\) is for the second division, and \(\lambda _{zy} \left( p \right)\) is for the third division. Because the weight for parts in different subsets is either negative integers or zero, it can only result in either reduction or no change in the elements in the range of the weighted function. Also, a smaller element in the range of the weighted function is resulted by a weight of a larger absolute value. At Step 10, the algorithm obtains the overall function. The elements in the range of the overall function fall into different areas and represent different priorities of parts in different subsets. The elements \(\hat{{\lambda }}_q \left( {pt} \right)\) can be obtained using formulae (11–15) and the following formula can be obtained:

$$ \hat{{\lambda }}_q \left( {pt} \right)=\lambda _x \left( {pt} \right)+\tilde {\lambda }_q \left( {pt} \right)=\lambda _x \left( {pt} \right)+\bar{{\lambda }}_q \left( {pt} \right)+\xi S=\left\{ {\begin{array}{ll} \lambda _x \left( {pt} \right)+\lambda _y \left( {pt} \right)+\lambda _{yy} \left( {pt} \right)-5S,& {pt\in E_{yy} \left( t \right),} \\ \lambda _x \left( {pt} \right)+\lambda _y \left( {pt} \right)-3S,& {pt\in E_{yz} \left( t \right),} \\ \lambda _x \left( {pt} \right)+\lambda _{zy} \left( {pt} \right)-S,& {pt\in E_{zy} \left( t \right),} \\ \lambda _x \left( {pt} \right),& {pt\in E_{zz} \left( t \right).} \\ \end{array}} \right. $$

If the size of the preprocess area is 50, the elements \(\hat{{\lambda }}_q \left( {pt} \right)\) for the part types in the preprocess area can be calculated by using the obtained elements in the ranges of the simple functions and the segmented function according to the above formula:

$$ \begin{array}{l} \hat{{\lambda }}_{yz} \left( 3 \right)=\lambda _x \left( 3 \right)+\lambda _y \left( 3 \right)-3\times 50=2+1-150=-147,\quad \hat{{\lambda }}_{yz} \left( 5 \right)=\lambda _x \left( 5 \right)+\lambda _y \left( 5 \right)-3\times 50=7+2-150=-141,\\ \hat{{\lambda }}_{zy} \left( 1 \right)=\lambda _x \left( 1 \right)+\lambda _{zy} \left( 1 \right)-50=3+2-50=-45,\quad \hat{{\lambda }}_{zy} \left( 6 \right)=\lambda _x \left( 6 \right)+\lambda _{zy} \left( 6 \right)-50=1+1-50=-48,\quad \hat{{\lambda }}_{zz} \left( 2 \right)=\lambda _x \left( 2 \right)=6,\\ \hat{{\lambda }}_{zz} \left( 4 \right)=\lambda _x \left( 4 \right)=4,\quad \hat{{\lambda }}_{zz} \left( 7 \right)=\lambda _x \left( 7 \right)=5,\quad \hat{{\lambda }}_{zz} \left( 8 \right)=\lambda _x \left( 8 \right)=8,\quad \hat{{\lambda }}_{zz} \left( 9 \right)=\lambda _x \left( 9 \right)=9. \end{array} $$

Part type 3 corresponds to the minimal \(\hat{{\lambda }}_q \left( {pt} \right).\) Therefore, a part of type 3 corresponds to the minimal \(\hat{{\lambda }}_q \left( p \right).\) In this example, there are three type 3 parts and the algorithm selects and inputs the one having the earliest arriving time among them at Step 11. After selecting and inputting the part, the algorithm updates its status and goes to Step 1 of this phase for iteration. The algorithm repeats this phase until the production cycle is finished or there are no parts to be inputted.

In this example, the part selected and inputted based on \(\hat{{\lambda }}_q \left( {pt} \right)\) is a part of type 3. Part type 3 has its first operation at process station 3, which has the least workload at the current input decision point and therefore balances the workload the most. Its total time of operations is 85, less than 290 for part type 5 in the same subset.

6 Conclusions

In the fiercely competitive global arena, increasing attention is being paid to customer requirements. Customer orders are becoming more frequent, and order sizes are decreasing. Enterprises have to provide quick response to customer orders and produce customized products in a cost-effective manner. Mass customization is adopted to meet these challenges.

This paper proposes a dynamic heuristic-based algorithm for the FMS part input sequencing problem in the MC environment. The proposed algorithm utilizes the segmental set functions to apply the strategy of dynamic workload balancing, and the SPT scheduling rule. Theoretical analysis is performed. The algorithm is effective in dynamic workload balancing. Productivity of FMSs can be increased by the use of the proposed algorithm because it is recognized in the literature that workload balance can increase productivity of FMSs. Therefore, the proposed algorithm can be used to operate FMSs cost-effectively for increasing the MC capability of FMSs.

Our investigation provides insights into practical applications. FMS managers can utilize the proposed algorithm for part input sequencing of FMSs to increase their MC capability in a complex and dynamic environment. The algorithm can be applied to FMSs supplying multiple partners in MTO supply chains that are confronted by demand fluctuations. The algorithm provides a pragmatic approach for FMSs to increase productivity and handle demand fluctuations so as to reduce inventories.

In summary, the paper contributes in several ways. It proposes an applicable and effective approach for the FMS part input sequencing problem in the MC environment. It establishes the segmental set functions to apply the strategy of dynamic workload balancing, and the SPT scheduling rule for this NP-hard problem. It explores the application of the concepts and approaches of discrete mathematics to analyze the effectiveness of the algorithm in dynamic workload balancing in a complex and dynamic environment. It provides an example to illustrate the application of the algorithm and points out its potential applications to practical situations.

Performance improvement in operation management in MC environments needs much attention and further study. A suggestion for further research could be the development of effective algorithms to consider delivery requirements of customer orders as well to improve both productivity- and due-date-based performance of FMSs.