1 Introduction

With traditional issues surrounding the manufacturing industry, there are always opportunities for improvement and industrial robot arms play a significant role in this matter. The use of robots in production has many advantages and benefits such as quality improvement for the system and quality of life improvement for the workers. Robots have the potential to enhance manufacturing sectors from productivity, quality, security, and safety points of view, and can even stimulate the creation of more jobs [1].

Robots in manufacturing cells are mainly used to pick and place the course products/products, assembling, painting, and welding processes. Robotic pick and place speeds up the process and decreases wasted handling time and as a result, increases production rates [2]. With many end-of-arm-tooling options available, robots can be customized to fit specific production requirements and as a consequence, moving large, small, heavy, or hard-to-handle products would be an easy task in manufacturing lines [3]. Consistency is the main benefit of using robots in production [4].

The scope of this research pertains to a real-life flexible robotic cell (FRC). An FRC is comprised of a number of computer numerical control (CNC) machines in which a robot is used to pick, place, and transport the parts between the input/output buffers and machines. Real-life flexible robotic cell is an FRC with intermediate buffers on the CNC machines. In such a cell, each machine is capable of performing all required processes for producing the parts, and item visits only one of the machines in the system [5]. Raw materials are handled by a robot from the main input buffer to intermediate buffers of the machines, and the products should be transported from the machines to the main output buffer. As a result, machines in the cell are laid out in parallel, not a sequence. The flexibility of the machines in the system allows the cell to produce parts with a wide range of features. The robot is capable of transporting parts with different ranges of size and weight. When the number of machines in a cell is high, the robot will be busier. Hence, it is valuable to investigate whether there exists an optimal process sequence for the robot to minimize the idle time of the machines and maximize the productivity of the cell, and if exists, how to find it.

This paper provides an approach to discover the optimal sequence of the pick-and-place jobs in a real-life FRC. The problem is framed as transferring items from the input buffer to the intermediate buffers and from machines to the output buffer. The purpose of this paper is threefold. First, to take into account all the characteristics of the real-life FRC and to develop a mathematical model to solve the optimization problem of the cell. Second, to generalize the problem by considering a cell with m machines and m intermediate buffers. Third, to solve the large-sized problem with simulated annealing (SA), genetic algorithm (GA), and expecting to obtain a much finer result with a hybrid metaheuristic algorithm (the initial parameters of the hybrid metaheuristic algorithms are calibrated by using the Taguchi method). Some numerical examples are solved aiming to make comparisons among the methods.

2 Literature review

According to the industry 4.0 records of the United Nations Educational, Scientific and Cultural Organization (UNESCO), one of the agendas that is perceived as a particular need, and a serious gap in industries is “increase facilities individual flexibility” [6]. By recent developments on technical specifications of CNC machines, robotic cells (RCs) are going to give their place to FRC that will be dominant in the manufacturing systems.

An RC is a group of machines with diverse characteristics in a workspace (e.g., drilling, milling, and turning). These machines are commonly connected to each other by a material handling system in order to process parts [7]. In RCs, the parts are processed through all the machines without any distinction in general. Therefore, parts go through machines in a similar sequence. Each machine performs a single operation and passes the part to the next machine by using the material handling system. A machine in an RC cannot complete all of the operations. In fact, RC scheduling problems lie in classical flow shop, which has been widely studied [8, 9].

In an FRC, all the operations of similar parts with a specific number of different operations are completed on a machine with the same process times [10]. When a part is loaded on a machine, the machine can complete all the remaining operations, not necessarily one operation. Depending on parts operation specifications, there is a need for flexible and programmable machines in the cell to solely perform all of the operations. Hence, it is possible to assign each of the operations to any machine and the operation time is not relative to the machine’s name and specifications [11]. The scheduling problem of an FRC can be generalized as two well-known scheduling problems: (a) cyclic scheduling of the robot move, and (b) operation allocation. In the cyclic scheduling of the robot movement, an optimal cycle for the robot’s movement sequence among all desired locations in a steady state is considered. On the other hand, in the operation allocation, the optimal order of the operations on the machines is found for each machine, independently. The problem becomes very difficult when the number of machines and operations increases, consequently, existing literature are mostly limited to a simple cell with two machines for processing a single-part type. The problem even is more complicated by considering constraints for the robot and machines (e.g., considering a different capacity for robot and machines). Moreover, the problem depends on the layout of the cell (i.e., circular or linear configuration).

In the last decades, some researchers have investigated the scheduling problem of FRCs. Akturk et al. [12] suggested a basic framework for FRC scheduling problems. Gultekin et al. [13] considered situations that are more realistic; they divided the operations into three groups based on tool constraints in the tool magazine, and they assumed that the first CNC machine or the second CNC machine could only execute some operations. In other studies, Gultekin et al. assessed the effect of pure cycles on the cycle times [14,15,16]. Rajapakshe et al. [17] accomplished a comparative productivity analysis on the flexible robotic cell with a single-gripper robot and without swap ability in circular and linear configurations. Yildiz et al. [18] considered a circularly configured FRC with m machines, a shared input/output buffer (I/O), and a single gripper robot without swap ability. Foumani and Jenab [19] investigated an FRC with m machine, a robot with swap ability, and the working machines are allowed to switch parts with each other. Kim et al. [20] examined the cyclic scheduling problem for a dual-armed cluster tool that performs periodic cleaning processes. They identified sufficient conditions for which the conventional backward and swap sequences provide the minimum cycle time. Moreover, they proposed two heuristic scheduling strategies and compared them with traditional programming methods and the lower bound of each schedule. Jiang et al. [21] applied two heuristics to minimize the makespan of a job scheduling problem. They considered a two-machine system where the machines are parallel and identical and the machines are loaded/unloaded by a server. Batur et al. [22] considered a hybrid robotic cell to produce multiple part-types and they presented a TSP-based model to solve this problem. Gultekin et al. [23] studied a two-machine dual-gripper FRC where their aim is finding the best order the robot moves to maximize the production rate. They found five different robot movement orders that dominate the rest of them. Recently, Ghadiri Nejad et al. [5] developed a mathematical model for the scheduling problem of an m machine FRC, and they proposed a SA algorithm for solving the problem. Ghadiri Nejad et al. [24] dealt with the scheduling of a multi-machine robotic cell producing identical parts. Without considering individual buffers for the machines, they tried to maximize the throughput of the system in the long run utilizing a metaheuristic algorithm. Moreover, Nejad et al. [25] considered a bi-objective scheduling problem of a flexible robotic cell to minimize the cyclic production cost of the cell. They proposed a mathematical model and used NSGAII for large-sized problems.

Recently, simulated annealing (SA) and genetic algorithm (GA) solution methods are used to solve a broad range of optimization problems. These methods have come to prominence for their high solution performance and fine results achieved in short times among meta-heuristics approaches. In recent publications, the SA and GA or their modifications have been used for solving the production scheduling problems [26, 27], flow shop FRC scheduling [28], supply chain inventory and network optimization problem [29, 30], emergency logistics problem [31, 32], assembly line balancing problem [33, 34], clustering problem [35, 36], etc.

Observing the cell configuration, the FRC in all the reported studies has a robot, an input/output buffer, and some machines, which are placed on a circular or liner layout. However, a vital component of a real-life FRC, namely an intermediate machine’s buffers, is not considered on scheduling problem. As far as the authors’ knowledge in this context, the scheduling problem of a real-life FRC with intermediate buffers is missing in the literature.

3 A real-life flexible robotic cell

A real-life FRC with three machines M1, M2, and M3, and one robot is shown in Fig. 1. In this system, the CNC center machines perform milling, drilling, and turning operations on a 19-kg cast crankshaft to be used in an automobile engine. Considering part features, it seems that it is possible to use a flow shop to produce the part. However, because of part sensitivity, the company prefers to do all the machining operations of the crankshaft on a CNC center machine. The part is brought to input buffer by an indexing conveyor. There is an intermediate buffer attached to each of the machines and a robot transfers the parts from the input to the intermediate buffers of the machines, and from machines to the output buffer. Loading of the parts from intermediate buffers to machines is performed by the manipulator of the buffer. A belt conveyor removes the finished parts from the output buffer of the cell. Since the robot performs a repeated sequence of pick-and-place operations, the performance of the cell depends on the sequence of the robot activities. The machining time including the time for loading of each item is 120 s. The load/unload activity by the robot takes 2 s. The transfer velocity of the robot is constant, and all of the individual facilities (i.e., input/output buffers, machines) are located linearly and in equal distance from each other. Therefore, the robot can transfer a part from the input buffer to the first machine, in 5 s which means, the loading of machine 1’s buffer from the input buffer, considering the loading and unloading time of the items, takes 9 s for this case. Apparently, the loading of machine 2 and machine 3’s buffer from the input buffer takes 14 and 19 s, respectively.

Fig. 1
figure 1

Real-life FRC configuration for crankshaft production

3.1 Problem definition and formulation

In the formulation, m machines are considered in FRC where the processing time for an item on any machine is p. Each machine has an individual input buffer to keep a part. The loading activity of machine i consists of moving the robot to the input buffer, picking an item, transferring it to machine i, and loading it into the machine’s buffer. Similarly, the unloading activity of machine i includes moving the robot towards machine i, getting the finished part from the machine, transferring, and putting it into the output buffer. Note that after each mission, the robot stays in place until its next operation. Cycle time is a duration from the starting of the system from a particular state and returning to the same state.

Let Lik be the loading and Uik be the unloading of the kth item of machine i in each cycle. Let Li be the set of loading activities of machine i, i.e., Li= {Lik| k = 1, 2}, and Ui be the set of unloading activities of machine i, i.e., Ui= {Uik| k = 1, 2}, when just two parts can be loaded on each machine. Let A be the set of all loading and unloading activities, i.e., A = {Lik, Uik| i = 1, 2, …, m; k = 1, 2}. Let ε be the time for taking an item from the input buffer or a machine, or the time for putting an item to the machines’ buffer or the output buffer. Let δ be the travel time of the robot for a one-unit distance. The distances between the input buffer and the first machine, between any two following machines, and between the last machine and the output buffer are assumed to be one unit of distance. Therefore, the time that the robot needs to perform activity b after finishing activity a (dab) is:

$$ {d}_{ab}=\Big\{{\displaystyle \begin{array}{cc}2\varepsilon +\left(i+j\right)\delta & \mathrm{if}\ a\in {L}_i\ \mathrm{and}\ b\in {L}_j\ \\ {}2\varepsilon +\left(|i-j|+m+1-j\right)\delta & \mathrm{if}\ a\in {L}_i\ \mathrm{and}\ b\in {U}_j\\ {}2\varepsilon +2\left(m+1-j\right)\delta & \mathrm{if}\ a\in {U}_i\ \mathrm{and}\ b\in {U}_j\\ {}2\varepsilon +\left(m+1+j\right)\delta & \mathrm{if}\ a\in {U}_i\ \mathrm{and}\ b\in {L}_j\end{array}} $$

Where m is the number of machines in the FRC. For example, to load machine 3 after loading machine 1 (L1L3), the robot goes to the input buffer from machine 1 (1δ), take a part (1ε), goes to machine 3(3δ), and load the machine (ε), that is totally 2ε + (1 + 3)δ (see the first row of dab). Until the process of an item has not been finished, the robot may need to wait before unloading it. Therefore, the time between the completion times of activities a and b related to machine i cannot be less than the following values (Tiab):

\( {T}_{ab}^i=\Big\{{\displaystyle \begin{array}{cc}2\varepsilon +\left(m+1-i\right)\delta +p& \mathrm{if}\ a={L}_{i1}\ \mathrm{and}\ b={U}_{i1}\ \\ {}2\varepsilon +\left(m+1-i\right)\delta +p& \mathrm{if}\ a={L}_{i2}\ \mathrm{and}\ b={U}_{i2}\\ {}\varepsilon +p& \mathrm{if}\ a,b\in {U}_i\\ {}{d}_{ab}& \mathrm{otherwise}\end{array}} \)

Table 1 contains different scenarios for the states of each machine at the beginning of the cycle.

Table 1 All of the activity orders for each machine

The order of the loading and unloading activities of each machine can be any of the orders mentioned in this table in the cyclic production. According to the orders of the activities, each machine should be set up before starting the cyclic production, and then the system may repeat the same operations, continuously.

Considering the cyclic form of the operations, and for the sake of simplicity and prevention of repeating similar permutations, one activity may be fixed as the first activity. In this study, L11 is considered as the first activity. Therefore, the time between two consecutive L11 activities is regarded as the cycle time. A reduction in the cycle time means an increase in the production rate of such a system. In the following, a mixed integer programming (MIP) model is proposed to find the optimal cycle time, the order of activities, and the robot waiting time before unloading each machine. The decision variables of this MIP model are as follows: C is the cycle time, ta is the completion time of activity a ∈ A, and wab is the waiting time of the robot between the completion times of activity a and following activity b, a ∈ A, b ∈ A − a.

\( {x}_{ab}=\Big\{{\displaystyle \begin{array}{cc}1& \mathrm{if}\ \mathrm{robot}\ \mathrm{performs}\ \mathrm{activity}\ b\ \mathrm{immediately}\ \mathrm{after}\ \mathrm{activity}\ a\\ {}0& \mathrm{otherwise}\end{array}} \)

\( {z}_{ik}=\Big\{{\displaystyle \begin{array}{cc}1& \mathrm{if}\ {k}^{th}\ \mathrm{order}\ \mathrm{is}\ \mathrm{applied}\ \mathrm{for}\ \mathrm{the}\ \mathrm{actvities}\ \mathrm{of}\ \mathrm{machine}\ i;k=1,2,...,8\\ {}0& \mathrm{otherwise}\end{array}} \)

$$ {\displaystyle \begin{array}{l}\min \sum \limits_{a\in A}\sum \limits_{b\in A-a}{d}_{ab}{x}_{ab}+\sum \limits_{a\in A}\sum \limits_{b\in A-a}{w}_{ab}\\ {}s.t.\end{array}} $$
(1)
$$ \sum \limits_{b\in A-a}{x}_{ab}=1\kern0.5em \forall a\in A $$
(2)
$$ \sum \limits_{a\in A-b}{x}_{ab}=1\kern0.5em \forall b\in A $$
(3)
$$ {t}_b\ge {t}_a+{d}_{ab}+{w}_{ab}-M\left(1-{x}_{ab}\right)\kern0.5em \forall b\in A-{L}_{11},a\in A-b $$
(4)
$$ {t}_b\le {t}_a+{d}_{ab}+{w}_{ab}+M\left(1-{x}_{ab}\right)\kern0.5em \forall b\in A-{L}_{11},a\in A-b $$
(5)
$$ C\ge {t}_a+{d}_{a{L}_{11}}+{w}_{a{L}_{11}}-M\left(1-{x}_{a{L}_{11}}\right)\kern0.5em \forall a\in A-{L}_{11} $$
(6)
$$ C\le {t}_a+{d}_{a{L}_{11}}+{w}_{a{L}_{11}}+M\left(1-{x}_{a{L}_{11}}\right)\kern0.5em \forall a\in A-{L}_{11} $$
(7)
$$ {w}_{ab}\le M{x}_{ab}\kern0.5em \forall a\in A,b\in A-a $$
(8)
$$ \sum \limits_{j=1}^8{z}_{ij}=1\kern0.5em i=1,...,m $$
(9)
$$ {t}_{Li1}-{t}_{Ui1}\le M\left({z}_{i3}+{z}_{i4}+{z}_{i5}+{z}_{i6}+{z}_{i7}+{z}_{i8}\right)\kern0.5em i=1,...,m $$
(10)
$$ {t}_{Li1}-{t}_{Ui2}\le M\left({z}_{i3}+{z}_{i5}+{z}_{i7}\right)\kern0.5em i=1,...,m $$
(11)
$$ {t}_{Li1}-{t}_{Li2}\le M\left({z}_{i3}+{z}_{i4}+{z}_{i5}+{z}_{i6}\right)\kern0.5em i=1,...,m $$
(12)
$$ {t}_{Ui1}-{t}_{Li1}\le M\left({z}_{i1}+{z}_{i2}\right)\kern0.5em i=1,...,m $$
(13)
$$ {t}_{Ui1}-{t}_{Li2}\le M\left({z}_{i1}+{z}_{i3}+{z}_{i4}\right)\kern0.5em i=1,...,m $$
(14)
$$ {t}_{Li2}-{t}_{Ui1}\le M\left({z}_{i2}+{z}_{i5}+{z}_{i6}+{z}_{i7}+{z}_{i8}\right)\kern0.5em i=1,...,m $$
(15)
$$ {t}_{Li2}-{t}_{Ui2}\le M\left({z}_{i7}+{z}_{i8}\right)\kern0.5em i=1,...,m $$
(16)
$$ {t}_{Li2}-{t}_{Li1}\le M\left({z}_{i1}+{z}_{i2}+{z}_{i7}+{z}_{i8}\right)\kern0.5em i=1,...,m $$
(17)
$$ {t}_{Ui2}-{t}_{Li1}\le M\left({z}_{i1}+{z}_{i2}+{z}_{i4}+{z}_{i6}+{z}_{i8}\right)\kern0.5em i=1,...,m $$
(18)
$$ {t}_{Ui2}-{t}_{Li2}\le M\left({z}_{i1}+{z}_{i2}+{z}_{i3}+{z}_{i4}+{z}_{i5}+{z}_{i6}\right)\kern0.5em i=1,...,m $$
(19)
$$ {t}_{Ui1}\ge {t}_{Li1}+{T}_{L1,U1}^i-M\left(1-{z}_{ik}\right)\kern0.5em i=1,...,m;k=1,2 $$
(20)
$$ {t}_{Ui2}\ge {t}_{Li2}+{T}_{L2,U2}^i-M\left(1-{z}_{ik}\right)\kern0.5em i=1,...,m;k=1,2,3,4,5,6 $$
(21)
$$ {t}_{Ui2}\ge {t}_{Ui1}+{T}_{U1,U2}^i-M\left(1-{z}_{ik}\right)\kern0.5em i=1,...,m;k=1,3,4,7,8 $$
(22)
$$ {t}_{Li1}-{t}_{Ui1}\le C-{T}_{L1,U1}^i{z}_{ik}\kern0.5em i=1,...,m;k=3,4,5,6,7,8 $$
(23)
$$ {t}_{Li2}-{t}_{Ui2}\le C-{T}_{L2,U2}^i{z}_{ik}\kern0.5em i=1,...,m;k=7,8 $$
(24)
$$ {t}_{Ui2}-{t}_{Ui1}\le C-{T}_{U2,U1}^i{z}_{ik}\kern0.5em i=1,...,m;k=4,6,8 $$
(25)
$$ {t}_a\ge 0\kern0.5em \forall a\in A $$
(26)
$$ C\ge 0 $$
(27)
$$ {w}_{ab}\ge 0\kern0.5em \forall a\in A,b\in A-a $$
(28)
$$ {x}_{ab}\in \left\{0,1\right\}\kern0.5em \forall a\in A,b\in A-a $$
(29)
$$ {z}_{ik}\in \left\{0,1\right\}\kern0.5em i=1,...,m;k=1,...,8 $$
(30)

The objective function of this model is to minimize the cycle time including the robot waiting times. Constraint (2) guarantees that the robot passes from each activity to another activity. Constraint (3) ensures that the robot passes each machine once. Constraints (2) and (3) together guarantee that the robot performs each activity. Constraints (4) and (5) compute the completion times of the activities considering the robot moving time, its loading and unloading times, and the waiting times of the robot to perform successive activities. These constraints also eliminate sub-cycles. Constraints (6) and (7) compute the cycle time considering the completion time of the last activity, the robot moving time, the load/unload times, and the waiting time until completing the first activity of the cycle. If a and b are not successive activities, wab will be fixed at zero by constraint (8). Constraint (9) guarantees that for each machine, one of the eight possible orders is applied. Constraints (10)–(19) compare the completion times of the activities of each machine and force the related z variables to be 1. Since in all of the eight orders, Ui1 is before Ui2; considering constraint (9), there is no need to use the similar restrictions for Ui2Ui1. Constraints (20)–(25) compute the completion times of the activities regarding the processing times of the machines and the time that the robot needs to perform these tasks. Constraints (26)–(28) are the non-negativity constraints, and finally, constraints (29) and (30) define the binary variables.

4 Solution methods

To solve the problem using the mathematical model, enumeration method is used considering the real data of the cell. Genetic and simulated annealing algorithms and a hybrid genetic algorithm are proposed to solve the large-sized cells.

4.1 Genetic algorithm

Genetic algorithm (GA) starts by generating a population of random solutions. Each solution is represented by an array having 4m elements in the form of XYZ where X, Y, and Z show loading/unloading activity, machine number, and part number, respectively. As an example, L21 illustrates a loading activity on machine 2 for its first part. Figure 2 depicts an encoding of a solution for a four-machine FRC. To avoid having similar permutations of a solution, the loading of the first machine with the first part is fixed as the first activity.

Fig. 2
figure 2

GA solution representation

The value of the fitness function for each solution is calculated considering the described formulations and given parameters. Since there is a probability of generating an infeasible solution, a repair procedure as shown in Fig. 4 is applied. It should be mentioned that after each crossover, or mutation operations, the solution is checked and is repaired if it is infeasible. In each step, some offsprings are produced by mating the selected parents through crossover and mutation operators. The one-point-crossover operator is utilized to decompose parent solutions into two segments. The second part of the parents after the crossover point is interchanged and two offsprings/children are produced. A graphical representation of the crossover operation is shown in Fig. 3.

Fig. 3
figure 3

An example of the crossover operation

If there exists a repeated gene in the offspring, its second appearance in the chromosome would be replaced by a gene which is absent in the solution. If there are more than one repeated genes, they are replaced by the absent ones in random order. For instance, L22 has been repeated twice in the first chromosome of offspring solution in Fig. 3. To repair this chromosome, the first L22 remains in the same place, but the second one is replaced by U21 which was absent in the solution. Similarly, in the second chromosome of the offspring solution in Fig. 3, U21 has been repeated twice and L22 which is the only absent gene is replaced in the second repeated gene of U21. Figure 4 illustrates the repaired offspring solutions.

Fig. 4
figure 4

Repairing the chromosome after a crossover operation

The mutation operator uses shift, swap, and reverse operations to generate neighboring solutions from the current solution. Shift operator selects an activity randomly and changes its place, preserving the order of all the other activities. Swap operator selects two activities randomly and changes their place. The reverse operator selects two positions and reverses the order of activities between them. Figure 5 gives examples for each of these mechanisms.

Fig. 5
figure 5

Generation of neighboring solutions by mutation operator

After generating the offsprings and adding them to the population, they are sorted based on their fitness function values. The best solutions are selected for starting the next iteration. The algorithm continues for a pre-determined number of iterations. Algorithm 1, represents the pseudo code of the proposed GA.

figure a

4.2 Simulated annealing

The simulated annealing (SA) algorithm starts by generating a random initial solution at a temperature of T = T0, and its fitness function is calculated similarly to what is explained for GA. SA generates a new neighboring solution by applying one of the shift, swap, and reverse operators on the initial solution, and then the fitness value of the new solution is calculated. If the fitness value is improved, the new solution is accepted for generating the next solution. Otherwise, the new solution with worse fitness value is accepted with a probability calculated by Eq. (31). Having the chance of selecting the worse solution is the advantage of the SA algorithm to escape from the local optimal and find better solutions. After each iteration of SA, the temperature drops by a coefficient of α (α ∈[0, 1]). The algorithm goes on until the temperature is less than a final temperature (Tf) and the best solution found so far is returned. Algorithm 2 represents the pseudo code of the proposed SA.

$$ \mathrm{Exp}\left(-\left( OBF\left(\mathrm{new}\ \mathrm{solution}\right)- OBF\left(\mathrm{current}\ \mathrm{solution}\right)\right)/T\right) $$
(31)
figure b

4.3 Hybrid genetic algorithm

The proposed hybrid algorithm proceeds the same as the GA except it uses a simulated annealing algorithm to improve the quality of each offspring, generated by the crossover operation. If the fitness function value is improved, the offspring is replaced by the new solution. To consider a probability to keep a worse solution for the next iteration, Eq. (32) is used. Algorithm 3 represents the pseudocode of the mutation algorithm which is located instead of lines 17 to 21 of the pseudocode of the GA in Algorithm 1

$$ \mathrm{Exp}\left(-\left( OBF\left(\mathrm{new}\right)- OBF\left(\mathrm{current}\right)\right)/\left(1-\mathrm{Iteration}\_\mathrm{no}/\mathrm{Itermax}\right)\right) $$
(32)
figure c

5 Experimental results

The experiments of all the problem instances have been performed on a platform with Intel(R) Core(TM) i5-3320 CPU at 2.60GHz and a 4.0 GB RAM.

5.1 The initial results for the real-life FRC case

The real-life FRC as an instance of the proposed model has been solved by an enumeration method, which helps to consider all different robot sequences to complete the jobs. Moreover, its corresponding cycle time allows verifying if all the logic and connections have been properly set. Moreover, for each run, detail information regarding the entire elements of the model and processes carried out in the system were provided.

To analyze the behavior of the real-life FRC, it is interesting to consider the data regarding total robot’s cycle time, the sequence of the robot operations, utilization of machines, and robot idle times. The minimum cycle time required to produce two parts in each of the individual machines in the existing configuration of the cell, as shown in Fig. 6, was 288 s. Considering the sequence of the robot operations for the optimal cyclic time, it was possible to conclude that the suggested sequential operations of the robot were logical and properly arranged. Figure 6 demonstrates the operations’ Gantt chart of the tasks in the cell for the optimum result.

Fig. 6
figure 6

Gantt chart of the optimal solution of m = 3, ε = 2, δ = 5, and p = 120 problem

According to the top row of Fig. 6, the robot performed L21U12U32U22L32L22L12U11U31U21L31L11 activities, consequently. This means the cycle was started just after completion of the loading of the first part on the first machine (at time of zero). Then, the robot went to the main input buffer, took a part, went to the second machine and loaded the buffer of the machine (at the time of 19). Then, the robot went to the first machine and unloaded the part, transferred it to the main output buffer and put it there (at time 43) and so on. The other three rows of the figure show the processing schedules of the machine where it is seen that when the machines were processing and when they were idle or were waiting to be loaded/unloaded.

In the real-life case, daily production in the cell was divided into three shifts, each consisting of 8 h, for 6 days a week, and consequently, 312 days a year, which means the available time was 26,956,800 s in a year. During this available time, the cell could complete 93,600 cycles, in each of which six parts were produced. Therefore, the cell was able to produce 561,600 number of products each year. Considering the utilization as a percentage of busy time over total production time, the use of the robot was 100%, as it was always busy according to the optimal schedule, and the usage of the machines was similar for all and equal to 83.3%.

Now, let us consider the order of robot activities before finding the optimal one. The previous order was L12L21L22L31L32U11U21U31U12U22U32L11. The cycle time of this order was 366 s. It shows that having this order in the real-life case, and considering 26,956,800 s available time in a year, the cell could have 73,652 complete cycle which was able to produce 441,912 parts in a year. Just these data show that the productivity of the cell with the optimized order was about 12.7% more than the cell with the previous order.

To evaluate the performance of the proposed mathematical model, some instances for a two- and three-machine cells with different processing times were considered. The ε and δ were fixed at one and two time units, respectively. The model was coded in CPLEX 12.6 software. Table 2 illustrates the related results where P was the processing times of the machines, m shows the number of machines in the cell, and C was the optimal cycle time calculated by the model.

Table 2 The results of the mathematical models for two- and three-machine problems

As shown in Table 2, the optimal cycle times for both two- and three-machine cells were constant when the processing times of the machines were small enough. Then by raising the processing times, their cycle times were steadily increasing. The computation times for the two-machine problems were always less than 1 s. For three-machine problems, the computation times were enormous when the processing times were small. By increasing the processing times until about 40 units, the computation time climbed to a minute. The other important point was the high rising in computation times between two- and three-machine cell problems with the same processing times, especially when the processing times were small. The experience gained from the model solution for the cell allowed us to draw some conclusions about the proposed model. It was verified that the model worked as specified in both mathematical processes and real-life operation. Additionally, the computation time of the model for large-size cells increased exponentially. It seemed that the use of metaheuristic algorithms for solving the model might be a good candidate.

5.2 Performances of the proposed metaheuristic algorithms

5.2.1 Tuning of the initial parameters

The performance of the proposed GA, SA, and HGA depend on their initial parameter settings. Therefore, different levels for the parameters of the proposed algorithms were selected and illustrated in Table 3.

Table 3 Levels of the parameters

To find the best initial amounts of the parameters, the Taguchi approach was used [37]. Using Eq. (31), the deviation of the response was examined, wherein Y designated the value of reply and n characterizes the number of orthogonal ranges.

$$ \raisebox{1ex}{$\mathrm{S}$}\!\left/ \!\raisebox{-1ex}{$\mathrm{N}$}\right.=-10\times \log 10\left(\mathrm{sum}\left({\mathrm{Y}}^2\right)/\mathrm{n}\right) $$
(33)

The best configuration of the initial values of the parameters is the one that increases the signal to noise ratio (S/N). For this reason, the S/N ration was plotted for each parameter and the parameters which maximized this ratio were selected, which means the parameters that decrease the effect of noise in the experiments. Seven different problems were considered to find the best combination of the initial values for each algorithm (as shown in Table 4).

Table 4 Problems which are solved to find the best initial parameters

For each combination of the parameters, the problems were solved five times, and the average of the fitness values was used as the response in Taguchi analysis. This method was deployed by Minitab 16.0. The design of the experiments can be found in Table 5.

Table 5 The results of different parameter combinations for the proposed algorithms

Figure 7 illustrates the S/N ratios for GA. According to this figure, all of the GA parameters were better to be at their fourth level. In other words, GA performed better when the initial value of population size was set to its upper bound (100), the maximum iterations was 100, and the probability of crossover and mutation were the same and equal to 90%.

Fig. 7
figure 7

S/N ratio plot for initial parameters of GA

The results of the Taguchi analysis for SA were depicted in Fig. 8. It was evident that T0, Tf, α, and N should be in their second, third, fourth, and fourth levels which correspond to 95, 0.75, 0.95, and 30, respectively. Additionally, according to Fig. 9, the parameters of HGA including Pop, IterMax, Pc, Pm, and N were better to be set at 100, 75, 0.7, 0.7, and 20, respectively.

Fig. 8
figure 8

S/N ratio plot for initial parameters of SA

Fig. 9
figure 9

S/N ratio plot for initial parameters of HGA

5.2.2 Comparisons between performances of the developed algorithms

For performance comparison of the algorithms, their parameters were set at their optimum values found by the Taguchi method, and some instance problems with four-, six- and eight-machine cell with various processing times were solved ten times each. The averages of the results were reported in Table 6.

Table 6 The cycle times found by the proposed algorithms

Considering the results shown in Table 6, both GA and HGA have got similar or better results than the SA for all three different cell problems. Moreover, the comparison between the results of GA and HGA shows that the HGA found the same or better solutions than the GA algorithm.

Table 7 shows the computation times for obtaining the results in Table 6. To have a better comparison among computation times, the results of each problem instance with the same number of the machine in the cell was plotted separately. Figures 10, 11, and 12 are related to four-, six- and eight-machine cell problems, respectively. These figures have shown similar trends for the computation times of the algorithms. It is apparent that the solution time of the SA was significantly lower than the other two algorithms and it remained constant by increasing the machine processing times in all the solved problems. On the other hand, the computation times of the GA and HGA had similar trends. For small processing times, the computation times of both algorithms were small, then by increasing the processing times, after a sharp rise, they had decreased a little bit and reached to a steady state situation. It should be mentioned that the computation time of the HGA was always greater and it increased sooner and sharper than the GA, except for the eight-machine cell problems, where the computation time of GA raised before the HGA.

Table 7 The computation times of the proposed algorithms
Fig. 10
figure 10

Computation times of the proposed algorithms for four-machine test problems

Fig. 11
figure 11

Computation times of the proposed algorithms for six-machine test problems

Fig. 12
figure 12

Computation times of the proposed algorithms for eight-machine test problems

6 Conclusion

In this study, the process sequencing problem of a pick-and-place robot in the real-life flexible robotic cell (FRC) was addressed. The problem aimed to minimize the cell’s cycle time by finding the best sequence of the operations for the robot to perform the jobs. The problem was solved by developing a mixed integer programming model for a real-life FRC. Moreover, by addressing some two- and three-machine cell scenarios, it was indicated that the computation times for solving the problems rose exponentially. Therefore genetic, simulated annealing, and a hybrid genetic algorithm were proposed to solve the large-size problems. Furthermore, utilizing the Taguchi method, the best combinations of initial parameters for the algorithms have been set. The comparisons of the results gained by the proposed algorithms illustrated that the performance of the proposed hybrid genetic algorithm dominates the other algorithms of this study.

Proposing a new mathematical model for the given problem with different capacities of the individual input buffer can be an attractive objective for further researches. The case that the machines have both individual input and output buffers may also be considered for future studies. Additionally, considering these problems under uncertainty of each parameter can be the next subject of discussion.