1 Introduction

In this technology-driven era, the sustainability of an industry is solely dependent on the customer-based market where the paradigm of an ideal product is often changing (Kim et al. 2020), and the demand for customized products is at its record height (Novshek and Thoman 2006). To thrive in this environment where the manufacturers’ prime objective is to meet the ever-increasing demand of the customers with best quality, a new research dimension has been added to the field of industrial engineering. The prime aim of this branch of engineering is to increase the productivity of the industry (Sakamoto 2010). Ascertaining the optimum job-processing sequence is one of the many ways for improving productivity (Arashpour et al. 2016). The method for computing the optimal sequence is called sequencing and scheduling (SS), which involves the integration of engineering and numerical computation with managerial activities (Kumar et al. 2017). Sequencing is defined as assigning of jobs on a group of machines whereas scheduling consists in arranging, controlling and optimizing work and workloads in a manufacturing unit.

In industry, SS aims in maximizing efficiency and free flow of production and also focuses on minimizing the make-span and cost of production (Mokhtari and Hasani 2017). The determination of this optimum sequence facilitates the efficient use of its resources viz. processing machines, available floor space, material handling and storage, work hour, etc. It also reduces the wastage of time due to lack of co-ordination and thereby enables the company to deliver the products to its end-users at the promised date. SS also establishes inter-department co-ordination (Sly et al. 2017).

SS are broadly classified into two categories: 1. Job shop scheduling (JSS) and 2. Flow shop scheduling (FSS). In general, if a set of jobs are to be processed in a set of machines such that each job has a pre-specified order or route of visit on machines such type of schedule is called JSS. Whereas if every job follows the same route of visit on machines, such type of schedule is called FSS. In an industrial scenario, encountering of single machine is a rare sight to witness. In a multi-stage production shop, it is a very common approach to install identical parallel machines that can operate the same set of operations at every stage in the production shop (Naderi et al. 2014). The objective of such an arrangement is to increase the floor-space utilization and decrease the bottleneck formation. Integration of parallel machines with FSS is called Flexible flow-shop scheduling (FFSS) (Neufeld et al. 2016). FFSS is a generalized form of FSS problems and it is capable of processing more number of jobs at time. Due to these properties FFSS is mostly applied in manufacturing industries. FFSS is widely used in industry that does batch production such as printer manufacturing industry, fabrication industry, car repairing, circuit board manufacturing industry etc. Above that, FFSS is characterized with unlimited buffer space between different stages (Almeder and Hartl 2013). Hence, FFSS problems from an industry perspective are of keen research interest to the present-day researchers and academicians maximizing efficiency and productivity of an industry.

Recently, many researchers and academicians are attracted to the objective of increasing productivity by minimizing the maximum completion time (CT) called make-span (Gao et al. 2016), total lateness or tardiness and number of tardy jobs (Gholami and Zandieh 2009). These performance parameters in a scheduling problem are a function of processing time (PT) which is defined as the time taken for processing a job on a machine (Choi et al. 2010). In most of the literature, PT is considered deterministic, which implies that the time taken for processing a job in every production cycle on a machine is known with absolute accuracy. However, in the practical scenario, there is some uncertainty associated with the PT. The reason for uncertainty in PT is due to the different factors affecting the physical nature of the scheduling problem such as the efficiency of the workers, disruption during machining, loading and unloading time of jobs, machine breakdown, etc. contributes to the uncertainty in PT (Ahmadi et al. 2016).

Zadeh 1965 developed the concept of fuzzy sets (FS) which was adopted by (Prade 1979) to quantify the uncertainty in PT to develop the fuzzy PT (FPT). Dubois and Prade (1982) utilized the FPT and integrated it with the scheduling algorithm developed in (Erschler et al. 1976) to develop the first FPT-based heuristic algorithm. Since then a lot of research development is made. Some of the recent notable literature that provides a comprehensive view about FPT-based heuristic algorithm can be found in (Behnamian 2016; Liu et al. 2017; Arık and Toksarı 2018).

FPT is applied for scheduling identical parallel machines with different capacities (Jia et al. 2019), uniform parallel machines (Li et al. 2019) and non-identical parallel machines (Alcan and BaşLıGil 2012). For a multi-stage production shop, where the path of every job is pre-determined when hybridized with such arrangement is identified as flexible flow-shop scheduling (FFSS). Salvador (1973) was the first to study the FFSS problem. Some of the state-of-the-art literature on the development of FFSS problems can be found in (Ruiz and Vázquez-Rodríguez 2010; Neufeld et al. 2016).

Initially, researchers focused on developing exact methods for solving scheduling problems (Tran et al. 2016) but optimization for FFSS problems are the case of NP-hard problem (Wang and Li 2002). Therefore, researchers shifted their focus towards developing heuristic algorithms to compute a near-optimal schedule for the problems. However, unit increase in the input may exponentially slow down the devised technique. Therefore, researchers shifted their focus on developing fast heuristic techniques that can return a good schedule but not optimal (Asadzadeh and Zamanifar 2010).

In multi-stage scheduling, one of the essential decision-making is to prioritize the jobs that are waiting for processing on a machine. Such type of decision-making regulations is termed as dispatching rule. Shortest processing time (SPT) rule (Schultz 1989) is the simplest form of dispatching rule. According to this rule, the job with the shortest PT will be processed first in a machine. Unlike SPT, longest processing time (LPT) rule prioritizes the job that requires the highest time for processing (Della and Scatamacchia 2020). One of the most common forms of dispatching rules applied in multi-stage medium enterprise is the first come first serve (FCFS) rule. In this rule, the job that arrives first in the working station is taken up for processing irrespective of its importance (Schwiegelshohn and Yahyapour 1998). Earliest release date (ERD) is similar to FCFS rule. The ERD rule is mostly applied when the prime objective of the schedule is to minimize the waiting time of jobs (Pinedo and Chao 1999). Total work remaining (TWR) is a dispatching rule that prioritize the job on the basis of work remaining. Number of unfinished parts (NUP) is a dispatching rule, where the job with maximum unfinished parts is preferred over other jobs. Earliest completion time (ECT) and latest completion time (LCT) are two dispatching rules associated with completion time. The former rule prioritize the job that is expected for earlier completion; whereas, the later prioritize the job that is expected for later completion (Jungwattanakit et al. 2008). Earliest due date (EDD) rule prioritize the jobs in increasing order of due dates. The EDD rule is mostly applied when the objective of the schedule is to minimize the maximum tardiness (Pinedo and Chao 1999). Two variations of the EDD rule are minimum slack time rule (MST) and slack time per processing time rule (SP). Slack time is defined as the difference between the due dates and processing time required. In the MST rule, the job with the least slack time is preferred for processing over other jobs. In SP rule, the quotient obtained by dividing slack time by processing time is arranged in non-decreasing order and prioritized accordingly. It is shown in the paper (Kaban et al. 2012) that hybridizing \({\text{PT}}\) and \({\text{TWR}}\) and combination of \({\text{TWR}}\) and \({\text{CT}}\) works best for minimizing the job-flow time and make-span, respectively. Jungwattanakit et al. (2008) proposed a heuristic algorithm by hybridizing the SPT and EDD rule for minimizing make-span and total number of tardy jobs. There exist several survey literature on dispatching rules that are applied to multi-stage scheduling problems (Nguyen et al. 2017a, b).

Moreover, many new dispatching rules were formulated for prioritizing jobs. Priority dispatching rule falls in the category of completely reactive of the three groups as identified in (Ouelhadj and Petrovic 2009). Some of the priority dispatching algorithms formulated for FFSS environment are Palmer heuristic, Campbell, Dudek, and Smith (CDS) algorithm, Gupta algorithm (GUP), Dannenbring algorithm, Nawaz, Encore and Ham (NEH) heuristics, etc. Palmer heuristic (Palmer 1965) developed the concept of ‘Slope Order Index (SOI)’ for the jobs. Jobs are arranged in an increasing order of the SOI and the sequencing of the jobs is done accordingly. The Palmer heuristic is later applied to fuzzy FFSS problem by (Hong and Wang 1999). Campbell et al. (1970) proposed a priority-based dispatching rule termed as CDS algorithm. The algorithm is an extension of the Johnson algorithm. The algorithm creates many schedules for a FFSS problem and then Johnson’s algorithm is applied to it. Out of the various schedules, the best computed by Johnson’s algorithm is chosen (Gozali 2019). Dannenbring (1977) hybridized the advantages of the CDS and Palmer heuristic. The NEH algorithm developed in the year 1983 considered that the job with highest total operating time must be placed in higher order of the job sequence (Nawaz et al. 1983). Above these, there are many other priority dispatching rule proposed for the FFSS problem which falls within the category of completely reactive. Amin and El-Bouri (2018) defined the term completely reactive as decision-making under the real-time scenario and identified 27 sets of priority-based dispatching rules. Literature where multi-criteria decision-making (MCDM) methods were employed for developing priority-based dispatching rules (Subramaniam et al. 2000; Petroni and Rizzi 2002). For optimizing the performance parameters, dispatching rules were hybridized with different optimization algorithms in the literature (Joo and Kim 2015; Nguyen et al. 2017a, b). Many pieces of literature were reviewed for the present study but limited with the most recent and significant state-of-the-art.

1.1 Motivation and novelties

In a multi-stage manufacturing industry, one of the most important decision-making activity is to choose the next job for processing in a machine. But most of the time, it is been observed that choosing a wrong job may affect the free flow of production. Above that, for increasing the production capacity of the industry resulted in installation of number parallel machines. Even though the parallel machines are replication of each other, yet their working condition may vary depending upon their state of condition. The product quality is greatly affected depending on the condition of the processing machines. It is observed that the quality of product fails to meet the customer expectation if the jobs are assigned to machines that are deemed unfit or imperfect from the perspective of reliability. The prime need of the manufacturing industry is to design an effective SS algorithm that not only maximizes the efficiency and free flow of production but also increases the production of quality products.

Motivated by the problem, this paper proposes a novel two-phase heuristic scheduling algorithm to compute the performance measures of a flexible flow-shop environment. The proposed scheduling algorithm considers FPT for scheduling the jobs on the machines. FPT is applied to model the uncertainty associated with time taken for processing a job on a machine. The first phase of the method is setting the priority of the jobs and the machines. Job prioritization (JP) decides the sequence in which jobs shall be taken up by the machines in each stage of the FFSS problem. JP is done by hybridizing three well-established dispatching rules viz. CT, PT and TWR. Whereas machine prioritization (MP) is a way of deciding which available machine shall take up the jobs for processing by abiding the assumption that no machine shall remain idle in any stage of the FFSS environment. MP is a decision-making process which is to be evaluated based on several criteria. Hence, MCDM method became handy in setting machine preference in each stage. A novel MCDM model is proposed in the study, which is based on the concept of risk minimization. The model perceives risk as choosing an unreliable machine over the reliable one. The second phase of the heuristic algorithm is assigning of the jobs to the appropriate machines. The proposed approach is applied to schedule a 72-job and 5-stage FFSS problem of a medium-sized manufacturing industry. The performance of the model is statistically tested by Wilcoxon signed-rank test on the basis of make-span and execution. Also, the feasibility of the proposed heuristic algorithm is tested by comparing the results of the performance measures with that obtained from some other established heuristic algorithm. Moreover, an in-depth study about the heuristic algorithm is conducted, and the important points that are observed are explained elaborately in this paper.

The organization of the remaining paper is done as: Sect. 2 recalls some preliminary concepts and their definitions followed by Sect. 3 that describes the case study. Section 4 describes the methodology proposed, which is followed by results and discussions obtained for the case study in Sect. 5. Finally, Sect. 6 is the conclusion of the paper.

2 Preliminaries

In this section, we shall discuss the key concepts employed for developing the heuristic proposed in the article. We shall start by recalling a few definitions.

2.1 Definitions

2.1.1 Triangular fuzzy number

In the universe of discourse \(U\), \(\widetilde{A}\) is termed as \(FS\), if it is typified by membership value \(\left({\mu }_{\widetilde{A}}\right)\) that maps every element of \(U\) to a real-valued number in \(\left[0, 1\right]\) (Hussain et al. 2018).

$$\widetilde{A}= \left\{x, {\mu }_{\widetilde{A}}\left(x\right)|x\in U\right\},$$

where \({\mu }_{\widetilde{A}}\left(x\right)\) denotes the membership value of \(x\in U\). \(\widetilde{A}\) is called \(TFN\) if it is represented by triplets \(\left(\underline{a}, a, \overline{a}\right)\) such that \(\left(\underline{a}\le a\le \overline{a}\right)\) and the triplets represent a fuzzy subset of a real line whose membership value is defined as (Molinari 2016):

$$\mu_{{\tilde{A}}} \left( x \right) = \left\{ {\begin{array}{*{20}c} {\frac{{x - \underline {a} }}{{a - \underline {a} }},} & {\underline {a} \le x \le a} \\ {\frac{{ \overline{a} - x}}{{ \overline{a} - a}},} & {a \le x \le \overline{a}} \\ {0,} & {otherwise.} \\ \end{array} } \right.$$

2.1.2 Arithmetic operations and defuzzification of TFN

Arithmetic operations for two TFNs and defuzzification of TFN by the center of gravity approach are defined in (Hussain et al. 2019). The expression for inverse operation and defuzzification of a TFN \(\widetilde{A}=\left(\underline{a}, a, \overline{a}\right)\) in Eqs. (15).

$${\text{Inverse of}}:{\raise0.7ex\hbox{$1$} \!\mathord{\left/ {\vphantom {1 {\tilde{A}}}}\right.\kern-0pt} \!\lower0.7ex\hbox{${\tilde{A}}$}} = \left( {{\raise0.7ex\hbox{$1$} \!\mathord{\left/ {\vphantom {1 {\overline{a}}}}\right.\kern-0pt} \!\lower0.7ex\hbox{${\overline{a}}$}}, {\raise0.7ex\hbox{$1$} \!\mathord{\left/ {\vphantom {1 a}}\right.\kern-0pt} \!\lower0.7ex\hbox{$a$}}, {\raise0.7ex\hbox{$1$} \!\mathord{\left/ {\vphantom {1 {\underline {a} }}}\right.\kern-0pt} \!\lower0.7ex\hbox{${\underline {a} }$}}} \right), \left[ {\left( {\underline {a} , a, \overline{a}} \right) > 0} \right],$$
(1)
$${\raise0.7ex\hbox{$1$} \!\mathord{\left/ {\vphantom {1 {\tilde{A}}}}\right.\kern-0pt} \!\lower0.7ex\hbox{${\tilde{A}}$}} = \left( {{\raise0.7ex\hbox{$1$} \!\mathord{\left/ {\vphantom {1 {\underline {a} }}}\right.\kern-0pt} \!\lower0.7ex\hbox{${\underline {a} }$}}, {\raise0.7ex\hbox{$1$} \!\mathord{\left/ {\vphantom {1 {\overline{a}}}}\right.\kern-0pt} \!\lower0.7ex\hbox{${\overline{a}}$}}, {\raise0.7ex\hbox{$1$} \!\mathord{\left/ {\vphantom {1 a}}\right.\kern-0pt} \!\lower0.7ex\hbox{$a$}}} \right),\left[ {\underline {a} \left\langle {0;\left( {a, \overline{a}} \right)} \right\rangle 0} \right],$$
(2)
$${\raise0.7ex\hbox{$1$} \!\mathord{\left/ {\vphantom {1 {\tilde{A}}}}\right.\kern-0pt} \!\lower0.7ex\hbox{${\tilde{A}}$}} = \left( {{\raise0.7ex\hbox{$1$} \!\mathord{\left/ {\vphantom {1 a}}\right.\kern-0pt} \!\lower0.7ex\hbox{$a$}}, {\raise0.7ex\hbox{$1$} \!\mathord{\left/ {\vphantom {1 {\underline {a} }}}\right.\kern-0pt} \!\lower0.7ex\hbox{${\underline {a} }$}}, {\raise0.7ex\hbox{$1$} \!\mathord{\left/ {\vphantom {1 {\overline{a}}}}\right.\kern-0pt} \!\lower0.7ex\hbox{${\overline{a}}$}}} \right), \left[ {\left( {\underline {a} , a} \right)\left\langle {0;\overline{a}} \right\rangle 0} \right],$$
(3)
$${\raise0.7ex\hbox{$1$} \!\mathord{\left/ {\vphantom {1 {\tilde{A}}}}\right.\kern-0pt} \!\lower0.7ex\hbox{${\tilde{A}}$}} = \left( {{\raise0.7ex\hbox{$1$} \!\mathord{\left/ {\vphantom {1 {\underline {a} }}}\right.\kern-0pt} \!\lower0.7ex\hbox{${\underline {a} }$}}, {\raise0.7ex\hbox{$1$} \!\mathord{\left/ {\vphantom {1 a}}\right.\kern-0pt} \!\lower0.7ex\hbox{$a$}}, {\raise0.7ex\hbox{$1$} \!\mathord{\left/ {\vphantom {1 {\overline{a}}}}\right.\kern-0pt} \!\lower0.7ex\hbox{${\overline{a}}$}}} \right), \left[ {\left( {\underline {a} , a, \overline{a}} \right) < 0} \right].$$
(4)
$${\text{Defuzzification of }}\tilde{A}:{ }A = \frac{1}{3}\left( {\underline {a} + a + \overline{a}} \right),$$
(5)

where \(A\) is the defuzzified value of \(\widetilde{A}\).

2.2 Processing time measurement

The PT considered in this paper is the sum of loading time, machining time and unloading time. The loading time of a job is defined as the time taken to set up a job on \({the l}^{th}\) machine of the \({k}^{th}\) stage of the job-processing shop. Machining time is defined as the time taken to machine the loaded job, whereas unloading time is defined as the time taken to unload the machined job. Since job setup, machining and changeover are conducted manually. Therefore, the time taken for processing a similar job on the same machine varies for different cycles. Hence, job PT is uncertain. Therefore, FSs is used to model the uncertainty associated with job PT. \(TFN\) is employed to quantify the uncertainty associated with the \(PT\). The simplicity of the membership function is the prime reason for applying \(TFN\) the fuzziness of \(PT\).

In the study, fuzzy \(PT\) is represented as \(\widetilde{t}= \left(\underline{t}, t, \overline{t}\right)\). The triplet of fuzzy \(PT\) represents the optimistic time, most likely time and pessimistic time taken for processing a job on a machine in definite stage. For computing the triplet of \(\widetilde{t}\), the time taken for processing ten similar jobs on the same machine at the same stage is recorded. The triplets are computed using Eqs. (68).

$$\underline{t}=min\left\{{t}_{1}, {t}_{2}, {t}_{3} \cdots {t}_{10}\right\},$$
(6)
$$t= \frac{1}{10}\sum \left({t}_{1}+ {t}_{2}+ {t}_{3}+ \cdots +{t}_{10}\right),$$
(7)
$$\overline{t}=max\left\{{t}_{1}, {t}_{2}, {t}_{3} \cdots {t}_{10}\right\}.$$
(8)

The most likely value \(t\) has the highest membership value \({\mu }_{\widetilde{A}}\left(x\right)=1\), where \(x= t\). The value of membership functions \({\mu }_{\widetilde{A}}\left(x\right)\) decreases uniformly when the value of \(x\) approaches \(\underline{t}\) and \(\overline{t}\). Since \(PT\) is considered in a fuzzy environment, hence, all the scheduling parameters considered in the study that are functions of \(PT\) are fuzzy. Ahmad and Cheng (2022) applied TFN to quantify the uncertainty in the processing time to develop a fuzzy control chart. (Kang et al. 2023) and (Zhou et al. 2022) developed a hybrid optimization and Pareto-based discrete optimization algorithm, respectively, for solving problems with \(FPT\).

3 Case study

The problem considered in this paper is a case study of 72-job and 5-stage FFSS problem of a medium-sized manufacturing industry. The first major department is the manufacturing shop where the 72 jobs are produced in 5 manufacturing units. The manufacturing of the jobs is initiated by a Kanban system. The jobs are then passed to the second department that is the machining and job-processing shop. The job-processing shop is divided into 5 stages and each stage comprises of different numbers of identical parallel machines. The jobs from each manufacturing unit follow a unique route of visit on the machines. Thereby making the scheduling of jobs in the job-processing shop a FFSS problem. The jobs are processed in batches and continuous in nature. Since the time taken for setting up of a job, machining the job and changeover are conducted manually. Therefore, the time taken for processing similar jobs on the same machine varies for different cycles. There is a fuzziness associated with the processing time. The bottleneck formation of job flow in the industry is materialized because of this department. The jobs coming out of this department go to the third department, i.e., the pre-fitting. The detailed job-flow diagram of the job-processing shop is shown in Fig. 1.

Fig. 1
figure 1

Detailed job-flow diagram of job-processing shop

3.1 Problem description

In this study, the objective of the scheduling problem under consideration is to achieve a continuous and smooth flow of parts to the pre-fitting area. This objective can be obtained by minimizing the value of make-span, total tardiness and total number of tardy jobs. \({J}^{1}, {J}^{2}, {J}^{3}, {J}^{4}\) and \({J}^{5}\) are a collection of 16, 17, 22, 8 and 9 jobs that are manufactured in 5 manufacturing units.

The total number of schedules possible for FFSS problem considered in this paper is the sum of the schedules for each stage. For a FFSS problem having n-stages with m-machines in each stage needed to process j-jobs the total number of schedules is computed according to Eq. (9).

$$\text{Total number of schedules}= \left[\sum_{n}{\left(j!\right)}^{m}\right].$$
(9)

The total number of schedules computed according Eq. (9) is \(4.746\times {10}^{99}\).

3.2 Assumptions made for the problem considered

To achieve the aim of the scheduling problem, certain assumptions that are made for processing of the jobs are as follows:

  1. i.

    All the machines, in a stage, are capable of performing the same set of operations on the jobs.

  2. ii.

    The sequential order of job flow is pre-defined and strictly follows it, as shown in Fig. 1.

  3. iii.

    Processing of a job once started on a machine in a stage it will not pass to the next stage unless it is completed in the present stage.

  4. iv.

    No pre-emption of the job is allowed in any stage of the job-processing shop.

  5. v.

    Splitting of jobs is not allowed.

  6. vi.

    All the 72 semi-finished jobs are readily available for processing before starting of the current cycle.

  7. vii.

    All the machines in every stage are available before starting the current cycle.

  8. viii.

    No machine will remain idle if jobs are available.

3.3 Proof of NP-hard

In the literatures, it is established that make-span optimization for FFSS environment is non-deterministic polynomial (NP) complete problem. It implies that the problem is both NP and NP-hard. Therefore, there does not exist a polynomial time algorithm for solving such type of problem (Jungwattanakit et al. 2008).

The problem considered in the study can be proved as NP-hard if and only if all NP-hard problem is effectively reducible to the present problem in polynomial time. However, the easiest way of proving that the present problem is NP-hard by reducing a known FFSS problem into the present problem in polynomial time by polynomial transformations also known as Karp reduction.

Considering \(A {\text{and}} B\) is used to denote a general FFSS and the problem considered in this study, respectively. The steps of proving \(B\) as NP-hard can be summarized as follows (Bürgisser 2013):

  • Transform inputs: Transform the inputs for problem \(A \left({I}_{A}\right)\) into the inputs for \(B \left({I}_{B}\right)\) in polynomial time represented as \({I}_{A}\underset{P}{\to }{I}_{B}\).

  • Applying blackbox for solving problem \(B\): Considering that there exists a blackbox that is capable of solving both the problem \(A\text{ as well as} B\).

  • Transform output: Transforming the output for problem \(B \left({O}_{B}\right)\) into the output of problem \(A \left({O}_{A}\right)\) in polynomial time represented as \({O}_{B}\underset{P}{\to }{O}_{A}\).

Following the above steps, input for problem \(A\) is identified as number of stages, number of machines in each stage and number of jobs processing. After transforming the inputs of \(A\) into inputs of \(B\) are tabulated in Table 1.

Table 1 Inputs of \(B\) in the form of inputs of \(A\)

Considering that there exists a polynomial time algorithm that can compute the value of make-span for problem \(A\) and the value is \(C\) (say). The polynomial time algorithm considered in the study is developed by (Aydilek and Allahverdi 2013) for problem \(A\). When applied the same polynomial algorithm, the make-span value computed for the problem \(B\) is 2071 min, i.e., \(C= \text{2071 minutes}\). Thus, the known NP-hard problem \(A\) is reduced to problem \(B\). Hence, it can be concluded that the problem considered in this study is also a NP-hard problem.

4 Proposed model

The comprehensive intention of the paper is to develop a heuristic algorithm that is efficient as well as effective in returning a nearly optimal result for the FFSS problem. In such type of scheduling problem, the most difficult task is computing the optimal job sequence and allocating the jobs to the appropriate machines simultaneously (Chen 2004). Hence, a heuristic algorithm is developed that focuses on job scheduling by allocating the resource to the most appropriate machine in each stage of an FFSS problem. The proposed heuristic is a double-phase procedure that initially prioritizes the jobs and machines and finally, allocates the jobs to the machines in order of the computed preference score.

The first phase of the proposed heuristic algorithm is the prioritization of the jobs and the machines in each stage. JP is a machine-independent way of deciding the next job in the queue, waiting for processing (Chua et al. 2011). Certain disadvantages are identified in the literature for the dispatching rules that consider one factor for prioritizing jobs. Therefore, in this paper, an attempt is made to prioritize the jobs by combining the three factors \(CT, PT\) and \(TWR\).

The second step of the first phase is the prioritization of the machines in each stage of the job-processing shop. It is a way of deciding the machine that shall take the next job for processing in case two or more machines are available at the moment (Chua et al. 2011). Selecting the suitable machine for processing the jobs is an MCDM problem that involves decision-making from the point of view of reliability, productivity, efficiency, revenue generation and total costing (Karim and Karmaker 2016). From the literature survey, the criteria chosen for selecting machine are tabulated in Table 2.

Table 2 List of criteria for machine selection

The final phase of the proposed heuristic is sequencing the jobs with the most suitable machine available in order of the preference score. Before explaining the proposed approach, we shall start by defining the symbols and notations that are used for the formulation. The list of symbols used in formulating the heuristic is shown in Table 3.

Table 3 List of symbols

4.1 Job prioritization

JP is machine-independent rules for deciding the next job in the sequence. In this study, the jobs priority is determined based on the preference score for the jobs which is computed according to the Eq. (10).

$${\widetilde{\wp }}_{\left(j\right)}={w}_{1}.{\widetilde{C}}_{\left(j\right)}+{w}_{2}.{\widetilde{t}}_{\left(j\right)}+{w}_{3}.{\widetilde{T}}_{\left(j\right)},$$
(10)

where \({w}_{1}, {w}_{2} {\text{and}} {w}_{3}\) are the weights for the CT, PT and TWR, respectively. The computed value of \({\widetilde{\wp }}_{\left(j\right)}\) is in the form of \(TFN\) which is defuzzified, according to Eq. (5). The job with the highest preference score is given the priority for processing on the available machine from a set of jobs that are awaiting service. Higher the value of preference score, more prioritization is given to the job as it implies more work remaining, more time taken for processing and completion. The advantage of hybridizing the single-factor rules according to Eq. (10) is that the preference score integrates the conceptual attributes of the individual dispatching rules to the level of their importance in attaining the objectives. The value of \({C}_{\left(j\right)} {\text{and}} {T}_{\left(j\right)}\) is calculated according to Eqs. (11) and (12), respectively.

$${C}_{\left(j\right)}= \sum_{k=1}^{K}{t}_{\left(j;k\right)},$$
(11)
$${T}_{\left(j\right)}= \sum_{k=k}^{K}{t}_{\left(j;k\right)}.$$
(12)

4.2 Machine prioritization

Machine prioritization (MP) is a way of ranking the machines available in each stage based on their reliability. MP determines the machine preference for processing a job when more than one machine is available at a time. Ranking of the available machines based on the preference score is a case of multi-criteria decision-making (MCDM) problem. Computation of the preference score for the machine is done based on the criteria as listed in Table 2 which involves making a decision based on the factors which are quantitative as well as qualitative in nature. To simplify the rating process, linguistic terms are carried out to assess the machines concerning the identified factors. Based on the experience of the decision makers, linguistic ratings are provided to the alternatives. The two main reasons for vacillation that the decision makers faced are the existence of vagueness and uncertainties in the available information about the factors and the psychological perception of the decision makers about the factors. Due to these two reasons, linguistic terminologies are the best way of rating the alternatives (Hussain et al. 2018). Linguistic terminologies are quantified using TFNs which are used for rating the alternatives (Feng et al. 2022). In the state-of-the-art literature, fuzzy sets and logic are integrated with MCDM models to develop ranking algorithm that is capable of taking into account the uncertainty that rose due to the vagueness in the nature of the problem. Some of the papers on fuzzy MCDM include (Hussain et al. 2018; Hussain et al. 2019; Akram and Bibi 2023; Luo et al. 2023).

The criteria chosen for the process of MP is mostly related with the operational, functioning and repairing of the machines. Therefore, the operators and machinists who operate and repair the machines are chosen as the decision makers. The view of the decision makers is aggregated to form the fuzzy decision matrix. The corresponding \(TFNs\) for the linguistic ratings and the linguistic rating-based decision matrix are shown in Tables 4 and 5, respectively.

Table 4 Corresponding \(TFNs\) for linguistic variables
Table 5 Linguistic decision matrix

The steps for computing the preference score of the machines in each stage are as follows:


Step 1: Aggregation of the fuzzy decision matrix

First, the linguistic ratings provided by the decision makers are quantified using \(TFNs\). Then, the fuzzy decision matrix of each decision maker is aggregated to form the aggregated fuzzy decision matrix \(\left(\widetilde{D}\right)\) which is computed as follows:

$$\widetilde{D}= {\left[{\widetilde{d}}_{ql}\right]}_{\left(m\times {M}^{k}\right)}={\left[\frac{\sum_{p=1}^{\alpha }\left({\widetilde{\mathbb{R}}}_{pql}\right)}{\alpha }\right]}_{\left(m\times {M}^{k}\right)}; q\in \left[1,m\right], l\in \left[1,{M}^{k}\right].$$
(13)

Step 2: Formulation of fuzzy relative cost matrix

The fuzzy relative cost matrix \(\left(\widetilde{R}\right)\) is derived from the concept of risk minimization. The concept of risk pertains to for not selecting the available machine with maximum reliability. The computation of \(\widetilde{R}\) is done as follows:

$$\widetilde{R}={\left[{\widetilde{r}}_{ql}\right]}_{\left(m\times {M}^{k}\right)}=\left\{\begin{array}{cc}{\left[\underset{q}{\mathrm{max}}\left({\widetilde{d}}_{ql}\right)-{\widetilde{d}}_{ql}\right]}_{\left(m\times {M}^{k}\right)}, & For benefit-criteria\\ {\left[{\widetilde{d}}_{ql}-\underset{q}{\mathrm{min}}\left({\widetilde{d}}_{ql}\right)\right]}_{\left(m\times {M}^{k}\right)},& For cost-criteria.\end{array}\right.$$
(14)

Step 3: Formulation of weighted normalize matrix

The weighted normalize matrix \(\left(\widetilde{W}\right)\) is computed by multiplying the elements of normalize matrix and weight of the criteria. The factors based on which machines are prioritized different units, and as a result, the values are incomparable. Hence, this obstacle is tackled by normalizing the factors. Normalization of the entries of \(\widetilde{R}\) is computed as follows:

$$\begin{array}{cc}\widetilde{N} ={\left[{\widetilde{n}}_{ql}\right]}_{\left(m\times {M}^{k}\right)}={\left[\frac{{\widetilde{r}}_{ql}}{\sqrt{\sum_{l=1}^{{M}^{k}}\left({{\widetilde{r}}_{ql}}^{2}\right)}}\right]}_{\left(m\times {M}^{k}\right)};& q=\left\{1, 2, 3\cdots m\right\}.\end{array}$$
(15)

The weight represents the degree of importance of the criterion for reaching at a rationale conclusion. The elements of weighted normalize matrix is computed as follows:

$$\widetilde{W}= {\left[{\widetilde{\omega }}_{ql}\right]}_{\left(m\times {M}^{k}\right)}= {\left[{w}_{q}* {\widetilde{n}}_{ql}\right]}_{\left(m\times {M}^{k}\right)}.$$
(16)

Step 4: Calculation of preference score

The formula for computing the preference score is as follows:

$$\begin{array}{cc}{\widetilde{\wp }}_{l}= {\left[\frac{\sum_{q=1}^{m}\left({\widetilde{\omega }}_{ql}\right)}{\sum_{l=1}^{{M}^{k}}\sum_{q=1}^{m}\left({\widetilde{\omega }}_{ql}\right)}\right]}_{\left(1\times {M}^{k}\right)};& l=\left\{1, 2, 3\cdots {M}^{k}\right\},k=\left\{1, 2, 3, 4, 5\right\}.\end{array}$$
(17)

The preference score as evaluated from Eq. (17) is defuzzified according to Eq. (5) and ranked in ascending order which implies lower the value of \({\wp }_{l}\) more reliable amongst the machine available for processing the jobs at the moment. Hence, the machine with the least value of \({\wp }_{l}\) will be selected to process a job in case more than one machine is available.

4.3 Computation of weight factors for the criteria

The weights signify the degree of importance of the criteria in the process of decision-making. The weights computed is the aggregate of the ratings as assigned by the decision makers. In this study, the panel of decision makers are experts from the domain of production scheduling which includes researcher, production manager, production supervisor and operational head. The experts provide their decision in linguistic rating according to their experiences in the domain of production scheduling which are quantified using \(TFNs\). The aggregated rating \(\left({\widetilde{z}}_{q}\right)\) provided by the experts were computed according to the Eq. (18).

$${\widetilde{z}}_{q}= \frac{\sum_{p=1}^{\alpha }\left({\widetilde{\mathbb{R}}}_{pq}\right)}{\alpha }; q=\left\{1, 2, 3, \cdots , m\right\},$$
(18)

where \({\widetilde{\mathbb{R}}}_{pq}\) represents the corresponding \(TFN\) for the linguistic rating given by \({p}^{th}\) decision maker for the \({q}^{th}\) criterion. The corresponding fuzzy ratings for linguistic terms are shown in Table 6. In Eq. (18), \(\alpha\) represents the total number of decision makers in the panel and \(m\) is the no. of criteria, \(m=3\) for JP and \(m=8\) for MP in each stage. The \({\widetilde{z}}_{q}\) is defuzzified according to Eq. (5), which is then normalized to evaluate the weight for the criteria.

Table 6 Corresponding fuzzy ratings for linguistic terms
$${w}_{q}= \frac{{z}_{q}}{\sum_{q=1}^{m}\left({z}_{q}\right)};q=\left\{1, 2, 3, \cdots m\right\}.$$
(19)

The fuzzy ratings for the criteria provided by the panel of decision makers for evaluating the weights for prioritizing the jobs and the machines are tabulated in Tables 7 and 8, respectively.

Table 7 Fuzzy ratings assigned to factors for JP
Table 8 Fuzzy ratings assigned to criteria for MP

Aggregating ratings provided by the panel of decision makers and experts in the domain of production scheduling for computing the weights of the criteria for JP and MP are shown in Table 9.

Table 9 Computed weights of the criteria

4.4 Procedure for assigning of jobs to the machines

The final phase of the proposed heuristic is assigning of the jobs to the machines in the FFSS problem. Four cases may arise during the mapping of jobs to the machines:

Case i: If \({\varvec{u}}=1\) and \({\varvec{v}}=1\)

In this case, job awaiting \(\left(j\right)\) is assigned to the available machine \(\left(l\right)\) which is represented as \(\left(j,l\right)\).

Case ii: If \({\varvec{u}}=1\) and \({\varvec{v}}>1\)

In this case, the machine with the lowest preference score is given the priority for processing the available job. If

$${\wp }_{{l}_{min}}=min\left\{{\wp }_{{l}_{1}}, {\wp }_{{l}_{2}}, {\wp }_{{l}_{3}}, \cdots , {\wp }_{{l}_{{M}^{k}}}\right\}.$$

Then the assignment is done as \(\left(j, {l}_{{\wp }_{min}}\right)\), where \({l}_{{\wp }_{min}}\) is the highest prioritized machine.

Case iii: If \({\varvec{u}}>1\) and \({\varvec{v}}=1\)

In this case, the job with the highest preference score is given priority to be the next job in the queue waiting to be processed.

$${\wp }_{{j}_{max}}=min\left\{{\wp }_{{j}_{1}}, {\wp }_{{j}_{2}}, {\wp }_{{j}_{3}}, \cdots , {\wp }_{{j}_{{J}^{i}}}\right\}.$$

The assignment of a job to a machine is done as \(\left({j}_{{\wp }_{max}}, l\right)\), where \({j}_{{\wp }_{max}}\) is the highest prioritized job.

Case iv: If \({\varvec{u}}>1\) and \({\varvec{v}}>1\)

In this case, the preference score for both jobs and machines shall come into play. Highest prioritized job is assigned to the highest prioritized machine, and the second-highest prioritized job is assigned to the second-highest prioritized machine and so on. Considering after time \(\widetilde{t}\), jobs \({j}_{1}, {j}_{2}, {j}_{3} {\text{and}} {j}_{4}\) awaiting processing in a stage where three machines are available \({l}_{1}, {l}_{2} \mathrm{and} {l}_{3}\). Assuming \({\wp }_{{j}_{1}}\succ {\wp }_{{j}_{2}}\succ {\wp }_{{j}_{3}}\succ {\wp }_{{j}_{4}}\) and \({\wp }_{{l}_{1}}\prec {\wp }_{{l}_{2}}\prec {\wp }_{{l}_{3}}\). The assignment of the jobs to the machines is done as follows \(\left({j}_{{\wp }_{1}},{l}_{{\wp }_{1}}\right), \left({j}_{{\wp }_{2}},{l}_{{\wp }_{2}}\right) {\text{and}} \left({j}_{{\wp }_{3}},{l}_{{\wp }_{3}}\right)\). The \(CT\) for the jobs \({j}_{1}, {j}_{2} \text{and }{j}_{3}\) are computed as

$${\widetilde{C}}_{\left({j}_{{\wp }_{1}},{l}_{{\wp }_{1}}\right)}=\widetilde{t}+{\widetilde{t}}_{\left({j}_{{\wp }_{1}},{l}_{{\wp }_{1}}\right)}; {\widetilde{C}}_{\left({j}_{{\wp }_{2}},{l}_{{\wp }_{2}}\right)}=\widetilde{t}+{\widetilde{t}}_{\left({j}_{{\wp }_{2}},{l}_{{\wp }_{2}}\right)}; {\widetilde{C}}_{\left({j}_{{\wp }_{3}},{l}_{{\wp }_{3}}\right)}=\widetilde{t}+{\widetilde{t}}_{\left({j}_{{\wp }_{3}},{l}_{{\wp }_{3}}\right).}$$

Two sub-cases may arise for assigning of job \({j}_{4}\) in any one of the three machines.

Sub-case a: Job \({j}_{4}\) will be assigned to the machine having the least \(CT\)

Sub-case b: If minimum \(CT\) is the same for more than one machine, then assigning of the job will be done according to Case ii. The procedure for the solution by the proposed heuristic is shown in Fig. 2.

Fig. 2
figure 2

Proposed heuristic algorithm

5 Results and discussion

In this section of the paper, the result obtained for the considered problem after applying the proposed approach is discussed.

5.1 Performance analysis of the proposed model

To corroborate the relative superior performance of the proposed heuristic approach, the performance of the proposed algorithm is compared with the performance of eighteen heuristic algorithms. The algorithms are applied to sixteen different benchmark FFSS problems. The performance table is shown in Table 10.

Table 10 Performance table

Subsequently, the Wilcoxon signed-rank test is employed for pairwise comparison to verify the proposed approach’s superiority in comparison with other heuristic algorithms. Wilcoxon signed-rank test is a non-parametric dependable sample hypothesis test. This test is used to compare the performance of the repeated measurements on a single sample to analyze the divergence between their population means (Woolson 2007). The null and alternative hypotheses formulated for the Wilcoxon signed-rank test are as follows:

\({\left({H}_{0}\right)}_{h}: {\mu }_{PA}= {\mu }_{h},\) i.e., there is no significant difference in the performance of the proposed algorithm and heuristic algorithm.

\({\left({H}_{1}\right)}_{h}: {\mu }_{PA}\ne {\mu }_{h},\) i.e., there is a significant difference in the performance of the proposed algorithm and heuristic algorithm.Here, \(h\) in the null and alternative hypotheses stands for the eighteen different heuristic algorithm. For example: \({\left({H}_{0}\right)}_{SPT}\) implies there is no significant difference in the performance of the proposed algorithm and shortest processing time algorithm. Whereas \({\left({H}_{1}\right)}_{SPT}\) implies there is a significant difference in the performance of the proposed algorithm and shortest processing time algorithm.

Table 11 summarizes the results of pairwise comparison for all the heuristics for significance level of 0.05. The table consists of the sum of positive ranks (W +), sum of negative ranks (W−), Wilcoxon test (W) value and p value. The W + values indicate the sum of ranks for the heuristic algorithms for which proposed approach outperformed the compared algorithms and vice versa for W−. On the other hand ‘W’ measures the pairwise averages that are greater than the hypothesized median. The W− value helps to evaluate the p value. The p value measures the evidence against the null hypothesis.

Table 11 Wilcoxon signed-rank test table

From Table 11, there is enough evidence to reject the null hypotheses and accept the alternate hypotheses for the algorithms SPT, LPT, TWR, NUP, EDD, ERD, FIFO, ECT, LCT, MST, PAL, PT + CT, CT + TWR and TWR + PT for significance level of 0.05. Hence, we can conclude that there is a significant difference in the performance of the proposed algorithm and heuristic algorithm. It implies that the proposed heuristic algorithm provides better solution when applied to FFSS problems.

5.2 Results from the proposed heuristic

In this section, the result obtained from the by applying the proposed model in the problem considered for the study is discussed. The first step of the proposed heuristic is to compute the weightage of the factors and the criteria for prioritizing the jobs and the machines. The calculated weights of the criteria are shown in Table 9. The next step is computing the preference score of the jobs and machines.

In the process of JP, four decision makers are chosen and based on their experience linguistic terms are assigned to the criteria which were quantified using \(TFNs\). The three factors that are identified for prioritizing the jobs are \(CT, PT\) and \(TWR\). Based on the three factors, preference scores of the jobs are computed using Eq. (9).

For MP in each stage, decision makers assigned linguistic ratings to the machines concerning the criteria which are quantified using \(TFNs\). The relative cost matrix and the normalize matrix for each stage of the problem as computed by Eqs. (13) and (14).

STAGE 1

$$R_{1} = \begin{array}{*{20}c} {\begin{array}{*{20}c} {Cr_{1} } \\ {Cr_{2} } \\ {\begin{array}{*{20}c} {Cr_{3} } \\ {Cr_{4} } \\ {\begin{array}{*{20}c} {Cr_{5} } \\ {Cr_{6} } \\ {\begin{array}{*{20}c} {Cr_{7} } \\ {Cr_{8} } \\ \end{array} } \\ \end{array} } \\ \end{array} } \\ \end{array} } & {\left[ {\begin{array}{*{20}c} \begin{gathered} m/c_{1} \hfill \\ \left( { - 2,0,2} \right) \hfill \\ \end{gathered} & \begin{gathered} m/c_{2} \hfill \\ \left( { - 2,0,2} \right) \hfill \\ \end{gathered} & \begin{gathered} m/c_{3} \hfill \\ \left( { - 2,0,2} \right) \hfill \\ \end{gathered} \\ {\left( {0,2,4} \right)} & {\left( { - 2,0,2} \right)} & {\left( {0,2,4} \right)} \\ {\begin{array}{*{20}c} {\left( { - 2,0,2} \right)} \\ {\left( {2,4,6} \right)} \\ {\begin{array}{*{20}c} {\left( {2,4,6} \right)} \\ {\left( {2,4,6} \right)} \\ {\begin{array}{*{20}c} {\left( {2,4,6} \right)} \\ {\left( {0,2,4} \right)} \\ \end{array} } \\ \end{array} } \\ \end{array} } & {\begin{array}{*{20}c} {\left( { - 2,0,2} \right)} \\ {\left( {0,2,4} \right)} \\ {\begin{array}{*{20}c} {\left( {2,4,6} \right)} \\ {\left( {2,4,6} \right)} \\ {\begin{array}{*{20}c} {\left( { - 2,0,2} \right)} \\ {\left( { - 2,0,2} \right)} \\ \end{array} } \\ \end{array} } \\ \end{array} } & {\begin{array}{*{20}c} {\left( {0,2,4} \right)} \\ {\left( { - 2,0,2} \right)} \\ {\begin{array}{*{20}c} {\left( { - 2,0,2} \right)} \\ {\left( { - 2,0,2} \right)} \\ {\begin{array}{*{20}c} {\left( {2,4,6} \right)} \\ {\left( {2,4,6} \right)} \\ \end{array} } \\ \end{array} } \\ \end{array} } \\ \end{array} } \right],} \\ \end{array}$$
$${\widetilde{N}}_{1}= \begin{array}{c} \begin{array}{ccc} \quad{m/c}_{1}& \quad\quad\quad\quad{m/c}_{2}& \quad\quad\quad\quad\quad{m/c}_{3}\end{array}\\ \begin{array}{cc}\begin{array}{c}{Cr}_{1}\\ {Cr}_{2}\\ \begin{array}{c}{Cr}_{3}\\ {Cr}_{4}\\ \begin{array}{c}{Cr}_{5}\\ {Cr}_{6}\\ \begin{array}{c}{Cr}_{7}\\ {Cr}_{8}\end{array}\end{array}\end{array}\end{array}& \left[\begin{array}{ccc}\left(-0.577, 0, 0.577\right)& \left(-0.577, 0, 0.577\right)& \left(-0.577, 0, 0.577\right)\\ \left(0, \mathrm{1,2}\right)& \left(-1, 0, 1\right)& \left(0, \mathrm{1,2}\right)\\ \begin{array}{c}\left(-0.707, 0, 0.707\right)\\ \left( 0.707, 1.414, 2.121\right)\\ \begin{array}{c}\left( 0.577, \mathrm{1.154,1.732}\right)\\ \left( 0.577, \mathrm{1.154,1.732}\right)\\ \begin{array}{c}\left( 0.577, \mathrm{1.154,1.732}\right)\\ \left( 0, 0.707, 1.414\right)\end{array}\end{array}\end{array}& \begin{array}{c}\left(-0.707, 0, 0.707\right)\\ \left( 0, 0.707, 1.414\right)\\ \begin{array}{c}\left( 0.577, \mathrm{1.154,1.732}\right)\\ \left( 0.577, \mathrm{1.154,1.732}\right)\\ \begin{array}{c}\left(-0.577, 0, 0.577\right)\\ \left(-0.707, 0, 0.707\right)\end{array}\end{array}\end{array}& \begin{array}{c}\left( 0, 0.707, 1.414\right)\\ \left(-0.707, 0, 0.707\right)\\ \begin{array}{c}\left(-0.577, 0, 0.577\right)\\ \left(-0.577, 0, 0.577\right)\\ \begin{array}{c}\left( 0.577, \mathrm{1.154,1.732}\right)\\ \left( 0.707, 1.414, 2.121\right)\end{array}\end{array}\end{array}\end{array}\right].\end{array}\end{array}$$

STAGE 2

$${\widetilde{R}}_{2}= \begin{array}{c}\begin{array}{ccc} \quad\quad\quad\quad{m/c}_{1}& \quad\quad\quad\quad{m/c}_{2}& \quad\quad\quad\quad{m/c}_{3}\end{array}\\ \begin{array}{cc}\begin{array}{c}{Cr}_{1}\\ {Cr}_{2}\\ \begin{array}{c}{Cr}_{3}\\ {Cr}_{4}\\ \begin{array}{c}{Cr}_{5}\\ {Cr}_{6}\\ \begin{array}{c}{Cr}_{7}\\ {Cr}_{8}\end{array}\end{array}\end{array}\end{array}& \left[\begin{array}{ccc}\left(0, 2, 4\right)& \left(0, 2, 4\right)& \left(-2, 0, 2\right)\\ \left(-2, 0, 2\right)& \left(-2, 0, 2\right)& \left(0, 2, 4\right)\\ \begin{array}{c}\left(-2, 0, 2\right)\\ \left(2, 4, 6\right)\\ \begin{array}{c}\left(4, 6, 8\right)\\ \left(2, 4, 6\right)\\ \begin{array}{c}\left(2, 4, 6\right)\\ \left(-2, 0, 2\right)\end{array}\end{array}\end{array}& \begin{array}{c}\left(-2, 0, 2\right)\\ \left(-2, 0, 2\right)\\ \begin{array}{c}\left(0, 2, 4\right)\\ \left(-2, 0, 2\right)\\ \begin{array}{c}\left(-2, 0, 2\right)\\ \left(-2, 0, 2\right)\end{array}\end{array}\end{array}& \begin{array}{c}\left(-2, 0, 2\right)\\ \left(-2, 0, 2\right)\\ \begin{array}{c}\left(-2, 0, 2\right)\\ \left(0, 2, 4\right)\\ \begin{array}{c}\left(0, 2, 4\right)\\ \left(2, 4, 6\right)\end{array}\end{array}\end{array}\end{array}\right],\end{array}\end{array}$$
$${\widetilde{N}}_{2}=\begin{array}{c} \begin{array}{ccc} \quad\quad\quad\quad\quad{m/c}_{1}& \quad\quad\quad\quad\quad{m/c}_{2}& \quad\quad\quad\quad\quad\quad\quad\quad{m/c}_{3}\end{array}\\ \begin{array}{cc}\begin{array}{c}{Cr}_{1}\\ {Cr}_{2}\\ \begin{array}{c}{Cr}_{3}\\ {Cr}_{4}\\ \begin{array}{c}{Cr}_{5}\\ {Cr}_{6}\\ \begin{array}{c}{Cr}_{7}\\ {Cr}_{8}\end{array}\end{array}\end{array}\end{array}& \left[\begin{array}{ccc}\left(0, 1, 2\right)& \left(0, 1, 2\right)& \left(-1, 0, 1\right)\\ \left(-0.707, 0, 0.707\right)& \left(-0.707, 0, 0.707\right)& \left(0, \mathrm{0.707,1.414}\right)\\ \begin{array}{c}\left(-0.577, 0, 0.577\right)\\ \left( 0.577, 1.154, 1.732\right)\\ \begin{array}{c}\left(0.894, 1.342, 1.789\right)\\ \left(0.707, 1.414, 2.121\right)\\ \begin{array}{c}\left(0.707, 1.414, 2.121\right)\\ \left( -0.577, 0, 0.577\right)\end{array}\end{array}\end{array}& \begin{array}{c}\left(-0.577, 0, 0.577\right)\\ \left( -0.577, 0, 0.577\right)\\ \begin{array}{c}\left(0, 0.447, 0.894\right)\\ \left( -0.707, 0, 0.707\right)\\ \begin{array}{c}\left(-0.707, 0, 0.707\right)\\ \left(-0.577, 0, 0.577\right)\end{array}\end{array}\end{array}& \begin{array}{c}\left( -0.577, 0, 0.577\right)\\ \left(-0.577, 0, 0.577\right)\\ \begin{array}{c}\left(-0.447, 0, 0.447\right)\\ \left(0, \mathrm{0.707,1.414}\right)\\ \begin{array}{c}\left( 0, \mathrm{0.707,1.414}\right)\\ \left( 0.577, 1.154, 1.732\right)\end{array}\end{array}\end{array}\end{array}\right].\end{array}\end{array}$$

STAGE 3

$${\widetilde{R}}_{3}=\begin{array}{c} \begin{array}{cccc}\quad\quad\quad{m/c}_{1}& \quad\quad\quad{m/c}_{2} & \begin{array}{cc} \quad\quad\quad\quad{m/c}_{3}& \quad\quad\quad{m/c}_{4}\end{array}\end{array}\\ \begin{array}{cc}\begin{array}{c}{Cr}_{1}\\ {Cr}_{2}\\ \begin{array}{c}{Cr}_{3}\\ {Cr}_{4}\\ \begin{array}{c}{Cr}_{5}\\ {Cr}_{6}\\ \begin{array}{c}{Cr}_{7}\\ {Cr}_{8}\end{array}\end{array}\end{array}\end{array}& \left[\begin{array}{ccc}\left(0, 2, 4\right)& \left(-2, 0, 2\right)& \begin{array}{cc}\left(0, 2, 4\right)& \left(-2, 0, 2\right)\end{array}\\ \left(-2, 0, 2\right)& \left(2, 4, 6\right)& \begin{array}{cc}\left(-2, 0, 2\right)& \left(-2, 0, 2\right)\end{array}\\ \begin{array}{c}\left(0, 2, 4\right)\\ \left(-2, 0, 2\right)\\ \begin{array}{c}\left(0, 2, 4\right)\\ \left(2, 4, 6\right)\\ \begin{array}{c}\left(0, 2, 4\right)\\ \left(0, 2, 4\right)\end{array}\end{array}\end{array}& \begin{array}{c}\left(-2, 0, 2\right)\\ \left(-2, 0, 2\right)\\ \begin{array}{c}\left(0, 2, 4\right)\\ \left(2, 4, 6\right)\\ \begin{array}{c}\left(-2, 0, 2\right)\\ \left(-2, 0, 2\right)\end{array}\end{array}\end{array}& \begin{array}{c}\begin{array}{cc}\left(0, 2, 4\right)& \left(2, 4, 6\right)\end{array}\\ \begin{array}{cc}\left(-2, 0, 2\right)& \left(0, 2, 4\right)\end{array}\\ \begin{array}{c}\begin{array}{cc}\left(-2, 0, 2\right)& \left(2, 4, 6\right)\end{array}\\ \begin{array}{cc}\left(-2, 0, 2\right)& \left(0, 2, 4\right)\end{array}\\ \begin{array}{c}\begin{array}{cc}\left(-2, 0, 2\right)& \left(2, 4, 6\right)\end{array}\\ \begin{array}{cc}\left(0, 2, 4\right)& \left(2, 4, 6\right)\end{array}\end{array}\end{array}\end{array}\end{array}\right]\end{array}\end{array},$$
$${\widetilde{N}}_{3}=\begin{array}{c} \begin{array}{cccc}\quad\quad\quad\quad\quad{m/c}_{1}& \quad\quad\quad\quad\quad{m/c}_{2}& \begin{array}{cc} \quad\quad\quad\quad\quad{m/c}_{3}& \quad\quad\quad\quad\quad{m/c}_{4}\end{array}\end{array}\\ \begin{array}{cc}\begin{array}{c}{Cr}_{1}\\ {Cr}_{2}\\ \begin{array}{c}{Cr}_{3}\\ {Cr}_{4}\\ \begin{array}{c}{Cr}_{5}\\ {Cr}_{6}\\ \begin{array}{c}{Cr}_{7}\\ {Cr}_{8}\end{array}\end{array}\end{array}\end{array}& \left[\begin{array}{ccc}\left(0, 0.707, 1.414\right)& \left(-0.707, 0, 0.707\right)& \begin{array}{cc}\left(0, 0.707, 1.414\right)& \left(-0.707, 0, 0.707\right)\end{array}\\ \left(-0.5, 0, 0.5\right)& \left(0.5, 1, 1.5\right)& \begin{array}{cc}\left(-0.5, 0, 0.5\right)& \left(-0.5, 0, 0.5\right)\end{array}\\ \begin{array}{c}\left(0, 0.707, 1.414\right)\\ \left(-0.577, 0, 0.577\right)\\ \begin{array}{c}\left(0, 0.707, 1.414\right)\\ \left(0.577, 1.154, 1.732\right)\\ \begin{array}{c}\left(0, 0.577, 1.154\right)\\ \left(0, 0.707, 1.414\right)\end{array}\end{array}\end{array}& \begin{array}{c}\left(-0.707, 0, 0.707\right)\\ \left(-0.577, 0, 0.577\right)\\ \begin{array}{c}\left(0, 0.707, 1.414\right)\\ \left(0.577, 1.154, 1.732\right)\\ \begin{array}{c}\left(-0.577, 0, 0.577\right)\\ \left(-0.707, 0, 0.707\right)\end{array}\end{array}\end{array}& \begin{array}{c}\begin{array}{cc}\left(0, 0.707, 1.414\right)& \left(0.707, 1.414, 2.121\right)\end{array}\\ \begin{array}{cc}\left(-0.577, 0, 0.577\right)& \left(0, 0.577, 1.154\right)\end{array}\\ \begin{array}{c}\begin{array}{cc}\left(-0.707, 0, 0.707\right)& \left(0.707, 1.414, 2.121\right)\end{array}\\ \begin{array}{cc}\left(-0.577, 0, 0.577\right)& \left(0, 0.577, 1.154\right)\end{array}\\ \begin{array}{c}\begin{array}{cc}\left(-0.577, 0, 0.577\right)& \left(0.577, 1.154, 1.732\right)\end{array}\\ \begin{array}{cc}\left(0, 0.707, 1.414\right)& \left(0.707, 1.414, 2.121\right)\end{array}\end{array}\end{array}\end{array}\end{array}\right]\end{array}\end{array}.$$

STAGE 4

$${\widetilde{R}}_{4}=\begin{array}{c} \begin{array}{cccc}\quad\quad\quad{m/c}_{1}& \quad\quad\quad{m/c}_{2} & \begin{array}{cc} \quad\quad\quad{m/c}_{3}& \quad\quad\quad{m/c}_{4}\end{array}\end{array}\\ \begin{array}{cc}\begin{array}{c}{Cr}_{1}\\ {Cr}_{2}\\ \begin{array}{c}{Cr}_{3}\\ {Cr}_{4}\\ \begin{array}{c}{Cr}_{5}\\ {Cr}_{6}\\ \begin{array}{c}{Cr}_{7}\\ {Cr}_{8}\end{array}\end{array}\end{array}\end{array}& \left[\begin{array}{ccc}\left(0, 2, 4\right)& \left(0, 2, 4\right)& \begin{array}{cc}\left(0, 2, 4\right)& \left(-2, 0, 2\right)\end{array}\\ \left(0, 2, 4\right)& \left(-2, 0, 2\right)& \begin{array}{cc}\left(0, 2, 4\right)& \left(-2, 0, 2\right)\end{array}\\ \begin{array}{c}\left(2, 4, 6\right)\\ \left(0, 2, 4\right)\\ \begin{array}{c}\left(-2, 0, 2\right)\\ \left(-2, 0, 2\right)\\ \begin{array}{c}\left(-2, 0, 2\right)\\ \left(0, 2, 4\right)\end{array}\end{array}\end{array}& \begin{array}{c}\left(2, 4, 6\right)\\ \left(-2, 0, 2\right)\\ \begin{array}{c}\left(-2, 0, 2\right)\\ \left(-2, 0, 2\right)\\ \begin{array}{c}\left(2, 4, 6\right)\\ \left(-2, 0, 2\right)\end{array}\end{array}\end{array}& \begin{array}{c}\begin{array}{cc}\left(0, 2, 4\right)& \left(-2, 0, 2\right)\end{array}\\ \begin{array}{cc}\left(6, 8, 10\right)& \left(-2, 0, 2\right)\end{array}\\ \begin{array}{c}\begin{array}{cc}\left(6, 8, 10\right)& \left(-2, 0, 2\right)\end{array}\\ \begin{array}{cc}\left(2, 4, 6\right)& \left(-2, 0, 2\right)\end{array}\\ \begin{array}{c}\begin{array}{cc}\left(2, 4, 6\right)& \left(0, 2, 4\right)\end{array}\\ \begin{array}{cc}\left(-2, 0, 2\right)& \left(0, 2, 4\right)\end{array}\end{array}\end{array}\end{array}\end{array}\right]\end{array}\end{array},$$
$${\widetilde{N}}_{4}=\begin{array}{c} \begin{array}{cccc}\quad\quad\quad\quad\quad\quad{m/c}_{1}& \quad\quad\quad\quad\quad\quad\quad\quad{m/c}_{2}& \begin{array}{cc} \quad\quad\quad\quad\quad{m/c}_{3}& \quad\quad\quad\quad{m/c}_{4}\end{array}\end{array}\\ \begin{array}{cc}\begin{array}{c}{Cr}_{1}\\ {Cr}_{2}\\ \begin{array}{c}{Cr}_{3}\\ {Cr}_{4}\\ \begin{array}{c}{Cr}_{5}\\ {Cr}_{6}\\ \begin{array}{c}{Cr}_{7}\\ {Cr}_{8}\end{array}\end{array}\end{array}\end{array}& \left[\begin{array}{ccc}\left(0, 1, 2\right)& \left(0, 1, 2\right)& \begin{array}{cc}\left(0, 1, 2\right)& \left(-1, 0, 1\right)\end{array}\\ \left(0, 0.707, 1.414\right)& \left(-0.707, 0, 0.707\right)& \begin{array}{cc}\left(0, 0.707, 1.414\right)& \left(-0.707, 0, 0.707\right)\end{array}\\ \begin{array}{c}\left(0.577, 1.154, 1.732\right)\\ \left(0, 0.302, 0.603\right)\\ \begin{array}{c}\left(-0.289, 0, 0.289\right)\\ \left(-0.5, 0, 0.5\right)\\ \begin{array}{c}\left(-0.577, 0, 0.577\right)\\ \left(0, 0.707, 1.414\right)\end{array}\end{array}\end{array}& \begin{array}{c}\left(0.577, 1.154, 1.732\right)\\ \left(-0.301, 0, 0.301\right)\\ \begin{array}{c}\left(-0.289, 0, 0.289\right)\\ \left(-0.5, 0, 0.5\right)\\ \begin{array}{c}\left(0.577, 1.154, 1.732\right)\\ \left(-0.707, 0, 0.707\right)\end{array}\end{array}\end{array}& \begin{array}{c}\begin{array}{cc}\left(0, 0.577, 1.154\right)& \left(-0.577, 0, 0.577\right)\end{array}\\ \begin{array}{cc}\left(0.905, 1.207, 1.508\right)& \left(-0.302, 0, 0.302\right)\end{array}\\ \begin{array}{c}\begin{array}{cc}\left(0.866, 1.155, 1.443\right)& \left(-0.289, 0, 0.289\right)\end{array}\\ \begin{array}{cc}\left(0.5, 1, 1.5\right)& \left(-0.5, 0, 0.5\right)\end{array}\\ \begin{array}{c}\begin{array}{cc}\left(0.577, 1.154, 1.732\right)& \left(0.577, 1.154\right)\end{array}\\ \begin{array}{cc}\left(-0.707, 0, 0.707\right)& \left(0, 0.707, 1.414\right)\end{array}\end{array}\end{array}\end{array}\end{array}\right].\end{array}\end{array}$$

STAGE 5

$${\widetilde{R}}_{5}=\begin{array}{c} \begin{array}{cc}\quad\quad\quad\quad{m/c}_{1}& \quad\quad\quad\quad{m/c}_{2}\end{array}\\ \begin{array}{cc}\begin{array}{c}{Cr}_{1}\\ {Cr}_{2}\\ \begin{array}{c}{Cr}_{3}\\ {Cr}_{4}\\ \begin{array}{c}{Cr}_{5}\\ {Cr}_{6}\\ \begin{array}{c}{Cr}_{7}\\ {Cr}_{8}\end{array}\end{array}\end{array}\end{array}& \left[\begin{array}{c}\begin{array}{cc}\left(-2, 0, 2\right)& \left(-2, 0, 2\right)\end{array}\\ \begin{array}{cc}\left(-2, 0, 2\right)& \left(0, 2, 4\right)\end{array}\\ \begin{array}{c}\begin{array}{cc}\left(-2, 0, 2\right)& \left(0, 2, 4\right)\end{array}\\ \begin{array}{cc}\left(0, 2, 4\right)& \left(-2, 0, 2\right)\end{array}\\ \begin{array}{c}\begin{array}{cc}\left(2, 4, 6\right)& \left(-2, 0, 2\right)\end{array}\\ \begin{array}{cc}\left(-2, 0, 2\right)& \left(-2, 0, 2\right)\end{array}\\ \begin{array}{c}\begin{array}{cc}\left(-2, 0, 2\right)& \left(0, 2, 4\right)\end{array}\\ \begin{array}{cc}\left(-2, 0, 2\right)& \left(-2, 0, 2\right)\end{array}\end{array}\end{array}\end{array}\end{array}\right]\end{array}\end{array},$$
$${\widetilde{N}}_{5}=\begin{array}{c} \begin{array}{cc}\quad\quad\quad\quad{m/c}_{1}& \quad\quad\quad\quad{m/c}_{2}\end{array}\\ \begin{array}{cc}\begin{array}{c}{Cr}_{1}\\ {Cr}_{2}\\ \begin{array}{c}{Cr}_{3}\\ {Cr}_{4}\\ \begin{array}{c}{Cr}_{5}\\ {Cr}_{6}\\ \begin{array}{c}{Cr}_{7}\\ {Cr}_{8}\end{array}\end{array}\end{array}\end{array}& \left[\begin{array}{c}\begin{array}{cc}\left(-0.707, 0, 0.707\right)& \left(-0.707, 0, 0.707\right)\end{array}\\ \begin{array}{cc}\left(-1, 0, 1\right)& \left(0, 1, 2\right)\end{array}\\ \begin{array}{c}\begin{array}{cc}\left(-1, 0, 1\right)& \left(0, 1, 2\right)\end{array}\\ \begin{array}{cc} \left(0, 1, 2\right)& \left(-1, 0, 1\right)\end{array}\\ \begin{array}{c}\begin{array}{cc}\left(0.707, 1.414, 1.732\right)& \left(-0.707, 0, 0.707\right)\end{array}\\ \begin{array}{cc}\left(-0.707, 0, 0.707\right)& \left(-0.707, 0, 0.707\right)\end{array}\\ \begin{array}{c}\begin{array}{cc}\left(-1, 0, 1\right)& \left(0, 1, 2\right)\end{array}\\ \begin{array}{cc}\left(-0.707, 0, 0.707\right)& \left(-0.707, 0, 0.707\right)\end{array}\end{array}\end{array}\end{array}\end{array}\right].\end{array}\end{array}$$

Preference score and machine priority computed following the steps of the proposed approach is shown in Table 12.

Table 12 Machine priority table

Assigning the jobs to the machines by following the steps as shown in Fig. 2, the result obtained is tabulated in Table 13. The Gantt chart for the problem considered following the proposed algorithm is shown in Fig. 3.

Table 13 Sequence of assigning jobs to machine as obtained by proposed heuristic
Fig. 3
figure 3

Gantt chart obtained by the proposed heuristic

5.3 Validation of the proposed heuristic algorithm

Validation for a heuristic algorithm is checks the robustness of the proposed model (Singh et al. 2006). For this reason, the result obtained from the proposed heuristic algorithm is compared with the result obtained from different established algorithms. The deviation of the results is computed using Eq. (20) and the comparison values are tabulated in comparison Table 14.

$${\text{Deviation }}\,\,{\text{values}} = \frac{{y - y_{pa} }}{{y_{pa} }} \times 100\% ,$$
(20)

where \({y}_{pa}\) is the value of the performance parameters obtained from the proposed approach whereas \(y\) is values obtained from the heuristic algorithms. The value of deviation is calculated to show how accurate the proposed model behaves with respect to the other established models. Table 14 and Fig. 4 show the comparison of the performance measures of the various heuristic algorithms.

Table 14 Comparison table
Fig. 4
figure 4

Comparison chart

For the problem considered in the study, the execution time for the proposed scheduling heuristic model is 27.08 s which is fairly good in comparison to the execution time of other heuristic algorithms. The result of make-span from the proposed heuristic is 2041.6 min which is far superior to the make-span value obtained from other heuristic algorithms. However, the value of total tardiness and number of tardy jobs obtained from the proposed method is the fourth best and thirteenth best value, respectively. But it should be noted that the heuristic algorithms for which performance value of total tardiness and number of tardy jobs is better than the proposed model either compute an inferior value of make-span or take more execution time.

From the overall comparison of the values of performance measures computed by different heuristic algorithms and the deviation computed, it can be concluded that proposed heuristic algorithm could be applied for solving the FFSS problem in fuzzy environment.

5.4 Discussions

The general intention of the paper is to develop a heuristic algorithm that is capable of returning the near-optimal result for FFSS problems. The proposed heuristic algorithm is a two-phase method. The first phase involves prioritization of jobs as well as machines and the second phase of the proposed heuristic involves assigning of jobs to the machines in each stage of the problem. Some of the points observed during the study are as follows:

  • \(JP\) is defined as the sequence in which the jobs shall be processed. Dispatching rules are the most popular form of \(JP\). Sequencing and scheduling done by hybridizing two or more dispatching rules performs better than single-factor regulations.

  • In the study, \(JP\) is done by hybridizing three dispatching rules viz. processing time, completion time and total work remaining. The job with higher priority value in a stage implies comparatively more time taken for completion and processing as well as more amount of work remaining for completing the job. Hence, such a job should be processed earlier rather than other jobs.

  • \(MP\) involves the process of decision-making from the perspective of reliability to choose the machine that shall take the job for processing in case more than one machine is available.

  • A novel MCDM model is developed for computing \(MP\). The model is based on the concept of risk minimization. In the model, the decision matrix is converted into a relative cost matrix which is used to compute the priority value of the machines in each stage. The model perceives risk as processing of jobs in a comparatively less reliable machine. The highest prioritized machine implies that the machine is highly reliable and the product obtained by manufacturing from such machine is of superior quality.

  • The degree of importance of each criterion while prioritizing the jobs and machines is the aggregation of the linguistic ratings provided by the decision makers. The linguistic rating signifies the degree up to which a decision maker feels the criterion is relevant for the process of prioritization. The linguistic ratings are quantified using \(TFNs\).

  • The primary ambition of the proposed heuristic algorithm is to assign more number of jobs to the reliable machines in each stage of the problem. The assignment must also abide the assumptions that a low priority machine will not remain idle if jobs are available for processing at the present stage.

  • It is observed that the proposed heuristic algorithm computed the best value of make-span and the fourth best value for \(\text{total tardiness}\). Whereas the model performed poorly while minimizing the value for \(\text{number of tardy jobs}\). However, it should be noted that average tardiness per unit tardy job is the least for the proposed model. The reason is that the model assigns more number of jobs to relatively more reliable machines.

  • The proposed algorithm and eighteen other heuristic algorithms are applied to seventeen benchmark scheduling problems from the literatures. The algorithms are compared statistically on the basis of performance and execution time. Wilcoxon signed-rank test conducted at significance level of 0.05, shows that there is a significant difference in the performance of the proposed algorithm and SPT, LPT, TWR, NUP, EDD, ERD, FIFO, ECT, LCT, MST, PAL, PT + CT, CT + TWR and TWR + PT. It implies that the proposed heuristic algorithm provides better solution when applied to scheduling problems.

Some other important points that are observed during the study are:

  • The \(PT\) for jobs on a reliable machine has values much nearer to the most likely time. In contrast, the \(PT\) for jobs on a relatively low reliable machines show negative skewness, i.e., most of the \(PT\) fall toward pessimistic value. This is also established by (Qin and Jiang 2005).

  • The processing time for job \(\left(\mathrm{1,8}\right)\) in 4th stage by 4th and 3rd machines for 100 periods is shown in Fig. 5a, b, respectively. It is observed that at an average 63%, the \(PT\) value falls toward the pessimistic time when processed on a relatively lower reliable machine. Whereas on average, the \(PT\) value for 69% concentrates about the most likely time when processed on a more reliable machine.

  • In a particular stage, the difference between the pessimistic and optimistic value for processing a job on the least reliable machine for 100 cycles is around 81% more than processing the same job on a most reliable machine.

  • The proposed algorithm strategically assigns more jobs to relatively more reliable machines in each stage. Due to this reason, the machine idle time for such machines is less in comparison to other machines. Since PT for reliable machines is less in comparison to less reliable machines. Hence, the make-span value obtained from the proposed heuristic is very much nearer to the optimal value. The number of jobs assigned to the machines at each stage is shown in Fig. 6.

Fig. 5
figure 5

Variation in \(PTs\) for job \(\left(\mathrm{1,8}\right)\) in 4th stage by a 4th and b 3rd machines for 100 cycles

Fig. 6
figure 6

Bar graphs representing jobs assigned to the machines

5.5 Limitations of the proposed approach

The proposed approach computes the best result for make-span as it assigns more number of jobs to higher ranked machines. On the other hand, the model fails to compute a better result for the total tardiness and total number of tardy jobs. Above this, the execution time for the proposed model is more than some of the heuristic models in the literature.

6 Conclusion

The comprehensive intention of the paper is to develop a robust scheduling heuristic algorithm capable of returning a good solution within a reasonable time-period. The study proposes a novel heuristic two-phase algorithm that prioritizes both the jobs as well as the identical parallel machines in a scheduling problem. Job prioritization is done by hybridizing the CT, PT and TWR. On the other hand, machine prioritization is done by computing the reliability of the parallel machines in the form of preference score. Ranking the identical machines based on certain criteria is an MCDM problem. A novel MCDM model is developed and proposed in this study. The MCDM model is built on the concept of risk minimization. In this study, risk is defined as the sense of regret for choosing a low reliable machine over a more reliable machine. The proposed heuristic algorithm assigns more number of jobs to a reliable machine than a less reliable machine. At the same time abides by the rule that a low priority machine shall not remain idle if jobs are available for processing at the present stage. Above this, the study employs the concept of fuzzy sets to model the uncertainty in the PT. The potentiality of a proposed heuristic algorithm lies in the practicality and robustness of the model. The proposed model is applied for scheduling jobs in the manufacturing industry of a medium enterprise in FFSS environment. Also, the same problem is solved by different heuristic algorithms. It is observed that the result obtained from the proposed model computed the best value for make-span and fourth best value for \(\text{total tardiness}\). The heuristic algorithms for which performance value of total tardiness and number of tardy jobs is better than the proposed model either computes an inferior value of make-span or takes more execution time. From the study, it is also observed that \(PT\) for jobs on a more reliable machine is lesser than the \(PT\) for jobs on a low reliable machine. Because of this time taken for processing the jobs are relatively lesser than the time taken for processing the same job in relatively small reliable machines. The proposed approach outperformed heuristic approached for computing the make-span and therefore, the proposed approach is mostly be applied to the manufacturing industries that aims in increasing the production of the manufactured products. From the overall discussions, it can be concluded that the proposed heuristic can be applied for computing the performance measures of FFSS problem under uncertain environment.