Improving Energy Efficiency in Discrete Parts Manufacturing System Using an Ultra-Flexible Job Shop Scheduling Algorithm
- 37 Downloads
Abstract
Improving energy efficiency has been one of main objectives in modern manufacturing enterprises. Various approaches aiming at efficient energy management have been proposed/developed, among which minimizing energy consumption by energy-sensible production scheduling techniques has emerged as a promising one. However, reported workshop models are quite simple and unrealistic. This paper studies a more realistic workshop model called ultra-flexible job shop (uFJS). In an uFJS, the sequence among operations for a job can be changed within certain constraints. To formulate this energy-efficient scheduling problem, a mixed-integer linear programming model was developed. To deal with large-sized problems, a specially designed genetic algorithm (GA) was subsequently proposed and implemented. Numerical results showed the proposed GA worked with decent effectiveness and efficiency. Finally, several comparative studies are carried out to further demonstrate its efficacy in terms of energy efficiency improvement. The advantage of the uFJS as compared to other relative simple workshop models is also shown. By considering the flexibility in operation sequencing in each job, the uFJS effectively integrates process planning and scheduling in discrete parts manufacturing system, thus providing a much larger solution space for more energy-efficient solutions. It therefore provides an excellent platform for decision-makers when developing energy-efficient techniques and strategies
Keywords
Energy efficiency Discrete parts manufacturing system Production scheduling Ultra-flexible job shop Mixed-integer linear programming Genetic algorithmList of Symbols
- CT_{k}
Critical off-on time of M_{k}
- d_{i}
Due date of J_{i}
- E_{k,off- on}
Energy consumed by M_{k} during an off-on process
- ET_{ijk}
The ending time of O_{ij} on M_{k}; ET_{ijk} ≥ 0
- FS
Flow shop
- G, P, N_{s}, P_{RM}, P_{RC}, P_{SC1}, P_{SC2}, P_{SM1}, P_{SM2}
GA parameters
- GA
Genetic algorithm
- GRA
Grey relational analysis
- i
Job index
- IP_{k}
The idle power of M_{k}
- IT_{k}
The total idle time of M_{k} in a schedule
- j
Operation index
- J_{i}
A job specified by i
- JS
Job shop
- k
Machine index
- L
A large positive number, set as 100
- MILP
Mixed-integer linear programming
- M_{k}
A machine specified by k
- MS
Machine state-based
- NP
Non-deterministic polynomial-time
- O_{ij}
An operation specified by i and j
- P
Population size
- PM
Precedence matrix
- PP
Process parameter-based
- PP_{ijk}
The average processing power required by M_{k} to process O_{ij}
- PT_{ijk}
The processing time required by M_{k} to process O_{ij}
- RC
R-matrix crossover
- RM
R-matrix mutation
- S/N
Signal-to-noise
- SC1, SC2
S-matrix crossovers
- SM
Single machine
- SM1, SM2
S-matrix mutations
- ST_{ijk}
The starting time of O_{ij} on M_{k}; ST_{ijk} ≥ 0
- TBS
Technical building service
- TEC
The total energy consumption of a schedule
- TI_{ijk}
The length of transition interval immediately before O_{ij} on M_{k}; TI_{ijk} ≥ 0
- TPE
The total processing energy of a schedule
- TTE
The total transition energy of a schedule
- uFJS
Ultra-flexible job shop environment
- x_{ijk}
If O_{ij} is assigned to M_{k}, x_{ijk} = 1; otherwise, x_{ijk}=0
- y_{ijk- i′ j′ k′}
If O_{ij} on M_{k} precedes O_{i′j′} on machine k′, y_{ijk−i′j′k} = 1; otherwise, y_{ijk−i′j′k′} = 0
- z_{ijk}
If TI_{ijk} is assigned off-on state, z_{ijk} = 1; otherwise z_{ijk} = 0
- Ω_{k}
The number of off-on transitions on M_{k}
1 Introduction
In the past decades, environmental concerns have been increasing due to greenhouse gas emission and climate change. Exhausting energy resources and stringent environmental legislations have been imposing huge pressure on modern enterprises to reduce their carbon footprint. It has been widely accepted that manufacturing industry are one of the largest energy consumers, but with low energy efficiency [1, 2]. As a consequence, improving energy efficiency in manufacturing, especially in discrete parts manufacturing system, has become a popular research issues in both industry and academia [3].
To achieve better energy efficiency control, an important prerequisite is to accurately estimate energy consumption in discrete parts manufacturing. It is therefore necessary to develop energy consumption estimation models for performing various machining processes on various machine tools. So far, reported energy consumption models can be approximately categorized into two major types: machine state-based (MS) models and process parameter-based (PP) models. The former estimate energy consumption by considering different machine states, e.g., idle, air-cut, spindle acceleration and deceleration [4, 5]. Furthermore, Schmidt et al. presented an approach to predict the electrical energy consumption for an arbitrary product on a specific machine [6]. The main limitation of MS models, however, is that the implementation may not be straightforward due to difficulties involved in identification of various machine states. On the other hand, the PP models appear more promising due to easy implementation and their decent accuracy level. Using an empirical method, Li and Kara found an inverse relationship between the specific energy consumption and MRR for a turning process [7]. Later, Li et al. extended the empirical model by taking spindle speed into consideration for a machine tool with relatively low standby power [8]. Subsequently, Liu et al. proposed a hybrid approach by calculating the cutting power at the tooltip analytically in a slot milling process [9]. These works have made significant contributions to accurate estimation of the energy consumption in a particular process, thus providing huge potential to address energy efficiency issues in manufacturing.
Generally, in discrete parts manufacturing, energy efficiency issues can be considered at three levels: operation planning (i.e., determining parameters for executing a particular process), process planning (i.e., translating the part design into machining instructions for manufacturing a particular part), and scheduling (i.e., allocating machining resources over the shop floor for producing a set of jobs). Accordingly, related research on optimization approaches maximizing energy efficiency generally follows three directions: (1) optimization of machining parameters for a particular process, (2) optimization in process planning for producing a particular part, and (3) optimization in scheduling for producing a set of jobs.
In the first category, the specific parameters in a process are identified and controlled to achieve maximum energy efficiency. For example, Camposeco-Negrete applied Taguchi method to optimize the turning parameters to improve energy efficiency [10]. Using the response surface method, Campatelli et al. optimized the process parameters to minimize power consumption in a milling process [11, 12]. More recently, Dureja et al. investigates the use of minimal quantities of lubricant as an alternative solution to green machining [13]. The aforementioned efforts have made valuable contributions to improving energy efficiency at the operation level. However, since machining itself usually takes up only a small portion of the total energy consumption [14], optimization at this level may have limited energy saving potential. For example, the cutting efficiency in a slot milling process could be as low as 13.67% [9].
In the second category, energy efficiency is considered in process planning, in which a set of operational instructions (machines and cutters) are selected and sequenced to convert the workpiece from raw material to the designed part. Some pioneer research works can be found in feature-based process planning [15]. Recently, this area has attracted certain attention and several frameworks were proposed for energy-efficient process planning [16, 17]. More specifically, the impacts of operation selection and operation sequencing on carbon emissions was investigated by Yin et al. [18]. Although energy-efficient process planning has shown some promising potential, it is still at an early stage. In addition, the energy saving potential is hard to quantify.
The last category represents a high-level approach to address energy efficiency issues. It was pointed out by Chu et al. that the concept of smart factory are of great importance for the future paradigm of manufacturing [19], and appropriate simulation model may help the manufacturing factories to save energy [20]. From the perspective of smart factory, energy saving can be achieved by systematic determination of machining activities over a period of time when scheduling a set of jobs. It was reported that energy savings could be achieved by turning off non-bottleneck machines instead of leaving them idle [21]. Following this approach, Mouzon and Yildirim presented a framework to minimize total energy consumption and total tardiness on a single machine (SM) [22]. Similarly, in SM environment, Shrouf et al. minimized the total energy consumption costs by avoiding high-energy price periods [23]. On the other hand, Fang et al. presented a mathematical model for minimizing power consumption and carbon footprint in a flow shop (FS) [24]. A more realistic form of FS is the hybrid or flexible FS, where an operation can be processed by more than one machine. For this kind of workshop model, Luo et al. addressed both production efficiency and electric power consumption [25], and Dai et al. proposed an evolutional algorithm to obtain an energy-efficient schedule in a flexible FS [26]. Compared to a FS, a job shop (JS) has an extra flexibility, i.e., each job has a fixed route, but different jobs may have different routes. For JS scheduling, Liu et al. presented a model for minimizing total electricity consumption and weighted tardiness [27]. These works have shown that substantial potential exists in scheduling for reducing energy consumption. However, the workshop models investigated by these works are relatively simple and far from realistic. For example, Liu et al. [27] assumed that an operation can only be processed by one particular machine. This is not typically the case in real production. In fact, it is common to find alternative machines for the same operation (e.g., a hole can be produced by a drill press/vertical milling machine/CNC machine center). Therefore, it is necessary to consider a more versatile or more flexible workshop model to reflect real manufacturing activities.
The work presented in this paper addresses energy-efficient scheduling issues in an ultra-flexible job shop environment (uFJS). Compared to a classic JS, an uFJS has two extra flexibilities: (1) an operation can be processed by more than one machine, i.e., machine assignment to a process is not pre-determined, and (2) the rigid and non-rigid precedence relationships among operations are considered, i.e., the route for a job is not fixed. It is worth noting that the first flexibility actually characterizes a classic FJS, while the second flexibility distinguishes the uFJS from a classic FJS. At the same time, the proposed scheduling algorithm has two different optimization objectives: minimum tardiness and minimum energy consumption. Only when tardiness can be avoided, the energy consumption minimization becomes meaningful.
In Sect. 2, the uFJS scheduling problem is introduced and then formulated using mixed-integer linear programming (MILP). For solution methods in large-sized problems, a genetic algorithm (GA) based algorithm is proposed in Sect. 3. Section 4 describes the determination of GA parameters using grey relational analysis. Section 5 describes several comparative studies based on which the proposed methods are discussed. Finally, Sect. 6 concludes the paper.
2 Problem Description
In this section, the classic FJS is firstly described, followed by the introduction of the uFJS. Then, a typical energy consumption profile is presented based on which the energy consumption in a schedule can be estimated. Finally, MILP is employed to formulate the energy-efficient scheduling problem.
2.1 The Classic FJS Model
- 1.
Each machine can only process one operation at a time.
- 2.
Each machine is continuously available for production.
- 3.
An operation cannot begin until its predecessors are completed.
- 4.
Once an operation is begun on a machine, it must not be interrupted.
- 5.
All jobs are available at time zero.
2.2 The uFJS Model
An example of a precedence matrix and its modified disjunctive graph
2.3 Energy Consumption Estimation in a Schedule
- 1.
idle—it consumes idle power IP_{k};
- 2.
off–on—M_{k} is firstly turned off (energy consumption: E_{k,off}). Before M_{k} can be used for production, it needs to be turned on and warmed up (energy consumption: E_{k,on}). These two events are combined into a single one called off–on transition with energy consumption E_{k,off–on} = E_{k,off} + E_{k,on}. At the same time, an off–on transition takes a minimum amount of time T_{k,off–on} for its completion.
- 1.
If TI < CT_{k}, the transition interval is assigned idle.
- 2.
If TI > T_{k,off–on}, the transition interval is assigned off-on.
- 3.
If CT_{k} ≤ TI ≤ T_{k,off–on}, the transition interval is assigned off–on. At the same time, the interval must be extended to T_{k,off–on}. The original schedule must be updated accordingly.
Once the state of every transition interval is assigned, the total energy consumption can be assessed.
2.4 Energy Consumption Estimation in a Schedule
- 1.
All machines are idle at time zero.
- 2.
Energy consumption due to technical building service (TBS) is considered constant. Therefore, the total energy consumption to be minimized can be seen as the total electricity consumed by all machines over the shop floor.
Equation (4) is the objective function. Constraint (5) ensures that each operation is assigned to and only to one machine. Constraint (6) states that once an operation is started on the assigned machine, it must not be interrupted until it is finished. Constraint (7) guarantees that if an operation is not assigned to a machine, the starting time and ending time on that machine should be zero. Constraints (8) and (9) make sure that no more than one operation can be processed by a machine at any time. Constraints (10 and (11) show that operations within the same job cannot be processed simultaneously by different machines. Constraints (12) and (13) define the decision variable y_{ijk−i′j′k′} on different occasions. Constraint (14) ensures the precedence constraints in precedence matrices are not violated. Constraint (15) defines the length of transition interval immediately before an operation. Constraints (16) and (17) determine the status of the transition interval. Finally, constraint (18) imposes the due date constraint on each job.
3 The Proposed GA-Based Solution Algorithm
Naturally, a MILP engine can be used to develop a solution algorithm to solve this uFJS scheduling problem. At the same time, it is obvious this problem is non-deterministic polynomial-time (NP) hard, and the MILP algorithm is only feasible to problems of small sizes. For large-sized problems, a search algorithm is needed to find high-quality solutions. Genetic algorithm is a well-known evolutionary search algorithm designed for NP-complete problems [31]. With proper implementation (e.g., GA operators and reproduction mechanism), it could search the whole solution space effectively and efficiently. As a result, a GA-based search algorithm is developed for finding the optimal or “near optimal” plans/schedule solution within a reasonable amount of time.
3.1 Solution Representation
The uFJS scheduling has three simultaneous tasks to perform, i.e., operation routing within each job, machine assignment, and operation sequencing on assigned machines. A chromosome (representing a schedule solution) must be designed in such a way that the entire solution space can be traversed by modifying the chromosome. In this paper, the proposed chromosome for a m-machine and n-job problem consists of two matrices: (1) a S-matrix with the size of \(m \times \mathop \sum \limits_{i \in J} l_{i}\), where l_{i} is the number of operations of J_{i}, and (2) a R-matrix with the size of n × l_{i−max}, where l_{i−max} = max l_{i}.
In a S-matrix, the k-th row stands for M_{k-1}. The entries in the k-th row represent the operations on M_{k−1} and they are to be performed sequentially. In a R-matrix, the i-th row stands for J_{i−1}. The entries in the i-th row represent the process plan of J_{i−1}. When S(k, j) or R(i, j) is empty, a dummy entry of “0” is used. A row in S-matrix stores the sequencing information of operations on the same machine, while a row in R-matrix provides the sequencing information of operations in the same job. S-matrix and R-matrix work together when determining the final Gantt chart.
With this solution representation, any changes on machine assignment and/or operation sequence can be easily made in the S-matrix, and any changes on routes of the jobs can be achieved in the R-matrix. Thus, this representation can cover the whole solution space for the uFJS scheduling problem.
3.2 Overall GA Procedure
- 1.
Randomly initialize P chromosomes in the first generation.
- 2.
Check and repair to make all the chromosomes feasible.
- 3.
Evaluate these P chromosomes in the current generation.
- 4.
If the stopping criterion is met, go to step (5); otherwise, generate P chromosomes in the next generation according to the reproduction mechanism and go to step (2).
- 5.
Output the obtained solution and stop.
The detailed implementation of uFJS-GA will be described in the following sections.
3.3 First Generation Initialization and Fitness Evaluation
- 1.
For the leftmost empty entry, randomly pick up one operation (from those of the job) that does not have any predecessor according to its PM.
- 2.
Update the PM by deleting the picked operation from rows and columns.
- 3.
If the PM becomes empty, go to (4). Otherwise, go to (1).
- 4.
Fill up all the empty entries of the row with “0”. Stop.
By applying the above procedures, one row at a time, a R-matrix can be randomly generated that satisfies the PM of the job automatically.
- 1.
Randomly pick up one operation with no predecessor according to the generated R-matrix.
- 2.
Randomly select one machine from the machine set that can process the picked operation, and assign the operation to the leftmost empty entry in the row representing the machine in S-matrix.
- 3.
Update the R-matrix by deleting the picked operation.
- 4.
If there is no operation left in R-matrix, go to (5). Otherwise, go to (1).
- 5.
Fill up all the empty entries in the S-matrix with “0” and restore the R-matrix. Stop.
By applying the above procedures, a S-matrix can be randomly generated that satisfies the already generated R-matrix automatically, which will guarantee its feasibility.
3.4 Creation of Offsprings
In a GA, searching for the optimal solution is conducted based on the evolution of the chromosomes over generations. In this evolution, new chromosomes (offsprings) need to be created by applying GA operations (crossover and mutation). Apparently, GA operators play an important role in the performance of the GA. Properly designed GA operators will not only help to increase the possibility of obtaining a good solution, but also to improve the searching efficiency.
- R-matrix crossover (RC). The mechanism of RC is illustrated in Fig. 4. A segment in a row, consisting of several entries, is randomly selected from Parent 1 (P1). The offspring inherits all entries from P1 except those in the selected segment (see Offspring′). Then it inherits the missing entries in their appearing order from P2 (see Offspring) so that the offspring is feasible.
- R-matrix mutation (RM). The mechanism of RC is illustrated in Fig. 5. One entry and one position are randomly selected in a row. The offspring inherits all entries from the parent except those between the selected entry (inclusive) and position (see Offspring′ in Fig. 5). The missing entry at the selected position in the offspring is filled by the selected entry (see Offspring″). Finally, the offspring inherits the other missing entries in their appearing order from its parent (see Offspring). The generated offspring will be checked to satisfy the PM before going to the next step. If not, the process is repeated until a feasible offspring is obtained.
- Two S-matrix crossovers: SC1 and SC2 (see Fig. 6). The operations within the parents are transformed into a single row (called a line) to facilitate the operation. Entries of “0” in this line act as machine divider. For SC1, several discrete entries are randomly picked up in P1. For SC2, a segment consisting of several continuous entries is randomly picked up in P1. The offspring inherits all the entries from P1 except these picked entries (see Offspring′ of SC1). Then it inherits the missing entries in their appearing order in P2 (see Offspring″ of SC1). At last, the offspring is transformed to S-matrix.
- Two S-matrix mutations: SM1 and SM2 (see Fig. 7). The S-matrix is first transformed into a line. For SM1, an entry and a position are randomly selected in the parent. A similar procedure to RM (see Fig. 5) is applied to generate the offspring. For SM2, two discrete entries are randomly picked up and their positions are exchanged to form an offspring in line. At last, the offspring is transformed to S-matrix.
3.5 Reproduction Mechanism and Stopping Criterion
In the process of reproduction, parents are randomly selected from the current generation. Each GA operator is assigned a probability according to which the GA operator is invoked.
The selection scheme of uFJS-GA is based on the elitism principle. A parameter called generation gap (G < 1) is used to control the total number of newly generated offsprings. Specifically, G × P chromosomes from the current generation are randomly selected to generate G × P offsprings. Based on fitness competition between the offsprings and their parents, chromosomes with lower fitness value are retained, forming one part of the next generation. Meanwhile, the other part is constituted by the other (1 − G) × P chromosomes in the current generation that take no part in the reproduction. In this way, elitism is automatically guaranteed. At the same time, the variety of chromosomes can also be reserved. The search algorithm stops when the best solution of a generation remains unchanged for a fixed number (N_{s}) of generations.
4 Determination of GA Parameters Using Grey Relational Analysis (GRA)
In the uFJS-GA, there are a number of parameters, i.e., population size (P), GA operator probabilities (P_{RM}, P_{RC}, P_{SC1}, P_{SC2}, P_{SM1} and P_{SM2}), generation gap (G) and stopping generation requirement (N_{S}). A proper setting of these parameters is therefore necessary. Traditional trial-and-error method is not only tedious but also inefficient. Cheng and Chang successfully employed the traditional Taguchi experimental design and signal-to-noise (S/N) analysis in the parameter setting for a genetic algorithm [32]. However, it is also noticed that Taguchi method can only deal with a single objective. In fact, besides fitness value, repeatability/stability should also be considered as an important criterion in evaluating search algorithms. In other words, a search algorithm should be able to give solutions with high quality and low deviation over runs. To address these two objectives simultaneously, the grey relational analysis (GRA) that has been widely used in solving complicated interrelationships among the multiple performance characteristics, is applied to set the GA parameters in this paper. The details for implementing the GRA can be found in the work by Lin and Lin [33].
Data set for the instance with 8 jobs/8 machine and 27 operations
Job | O | M _{0} | M _{1} | M _{2} | M _{3} | M _{4} | M _{5} | M _{6} | M _{7} | PM | d |
---|---|---|---|---|---|---|---|---|---|---|---|
J _{0} | O _{00} | 5 (6) | 3 (11) | 5 (10) | 3 (6) | 5 (10) | – | 10 (11) | 9 (4) | \(\left[ {\begin{array}{*{20}c} {\begin{array}{*{20}c} 0 & 1 & 1 \\ \end{array} } \\ {\begin{array}{*{20}c} { - 1} & 0 & 0 \\ \end{array} } \\ {\begin{array}{*{20}c} { - 1} & 0 & 0 \\ \end{array} } \\ \end{array} } \right]\) | 30 |
O _{01} | 10 (7) | – | 5 (7) | 8 (7) | 5 (7) | 9 (11) | 9 (9) | 6 (4) | |||
O _{02} | – | 10 (9) | – | 5 (5) | – | 2 (10) | 4 (11) | 5 (4) | |||
J _{1} | O _{10} | 5 (6) | 7 (12) | 3 (10) | 9 (7) | 3 (10) | – | 9 (12) | – | \(\left[ {\begin{array}{*{20}c} 0 & 1 & 1 & 1 \\ { - 1} & 0 & 0 & 0 \\ { - 1} & 0 & 0 & 1 \\ { - 1} & 0 & { - 1} & 0 \\ \end{array} } \right]\) | 30 |
O _{11} | – | 8 (8) | 5 (7) | 2 (8) | 5 (7) | 7 (11) | 10 (12) | 9 (6) | |||
O _{12} | – | 10 (9) | – | 5 (8) | – | 4 (10) | 1 (12) | 7 (4) | |||
O _{13} | 10 (6) | 8 (12) | 9 (7) | 6 (5) | 9 (7) | 7 (8) | – | – | |||
J _{2} | O _{20} | 10 (8) | – | – | 7 (6) | – | 5 (10) | 2 (11) | 4 (7) | \(\left[ {\begin{array}{*{20}c} {\begin{array}{*{20}c} 0 & 1 & 1 \\ \end{array} } \\ {\begin{array}{*{20}c} { - 1} & 0 & 1 \\ \end{array} } \\ {\begin{array}{*{20}c} { - 1} & { - 1} & 0 \\ \end{array} } \\ \end{array} } \right]\) | 20 |
O _{21} | – | 10 (8) | 6 (7) | 4 (13) | 6 (7) | 9 (11) | 10 (12) | – | |||
O _{22} | 1 (8) | 4 (12) | 5 (10) | 6 (10) | 5 (10) | 10 (10) | – | 7 (5) | |||
J _{3} | O _{30} | 3 (10) | 1 (9) | 6 (10) | 5 (12) | 6 (10) | 7 (11) | 8 (11) | 4 (7) | \(\left[ {\begin{array}{*{20}c} {\begin{array}{*{20}c} 0 & 0 & 0 \\ \end{array} } \\ {\begin{array}{*{20}c} 0 & 0 & 0 \\ \end{array} } \\ {\begin{array}{*{20}c} 0 & 0 & 0 \\ \end{array} } \\ \end{array} } \right]\) | 20 |
O _{31} | 12 (9) | 11 (10) | 7 (11) | 8 (8) | 7 (11) | 5 (9) | 6 (10) | 9 (7) | |||
O _{32} | 4 (9) | 6 (11) | 2 (7) | 10 (9) | 2 (7) | 9 (10) | 5 (9) | 7 (4) | |||
J _{4} | O _{40} | 3 (8) | 6 (12) | 7 (8) | 8 (5) | 7 (8) | – | 10 (12) | – | \(\left[ {\begin{array}{*{20}c} 0 & 1 & 1 & 1 \\ { - 1} & 0 & 0 & 0 \\ { - 1} & 0 & 0 & 1 \\ { - 1} & 0 & { - 1} & 0 \\ \end{array} } \right]\) | 30 |
O _{41} | 10 (6) | – | 7 (9) | 4 (7) | 7 (9) | 8 (8) | 6 (10) | – | |||
O _{42} | – | 9 (10) | 8 (10) | 7 (7) | 8 (10) | 2 (11) | 7 (10) | – | |||
O _{43} | 11 (6) | 9 (12) | – | 6 (6) | – | 5 (11) | 3 (11) | 6 (5) | |||
J _{5} | O _{50} | 6 (7) | 7 (10) | 1 (11) | 4 (9) | 1 (11) | 9 (10) | – | 10 (7) | \(\left[ {\begin{array}{*{20}c} {\begin{array}{*{20}c} 0 & 1 & 1 \\ \end{array} } \\ {\begin{array}{*{20}c} { - 1} & 0 & 1 \\ \end{array} } \\ {\begin{array}{*{20}c} { - 1} & { - 1} & 0 \\ \end{array} } \\ \end{array} } \right]\) | 20 |
O _{51} | 11 (9) | – | 9 (11) | 9 (7) | 9 (11) | 7 (11) | 6 (11) | 4 (4) | |||
O _{52} | 10 (6) | 5 (10) | 9 (11) | 10 (6) | 9 (11) | – | 10 (9) | – | |||
J _{6} | O _{60} | 5 (8) | 4 (12) | 2 (7) | 6 (8) | 2 (7) | – | 10 (10) | – | \(\left[ {\begin{array}{*{20}c} {\begin{array}{*{20}c} 0 & 0 & 1 \\ \end{array} } \\ {\begin{array}{*{20}c} 0 & 0 & 1 \\ \end{array} } \\ {\begin{array}{*{20}c} { - 1} & { - 1} & 0 \\ \end{array} } \\ \end{array} } \right]\) | 30 |
O _{61} | – | 9 (12) | – | 9 (10) | – | 9 (10) | 10 (12) | 5 (6) | |||
O _{62} | – | 8 (9) | 9 (10) | 3 (11) | 9 (10) | 6 (10) | – | 10 (7) | |||
J _{7} | O _{70} | 2 (10) | 8 (10) | 5 (9) | 9 (13) | 5 (9) | 4 (11) | – | 10 (7) | \(\left[ {\begin{array}{*{20}c} 0 & 0 & 0 & 0 \\ 0 & 0 & 1 & 1 \\ 0 & { - 1} & 0 & 1 \\ 0 & { - 1} & { - 1} & 0 \\ \end{array} } \right]\) | 20 |
O _{71} | 7 (8) | 4 (9) | 7 (8) | 8 (15) | 7 (8) | – | 10 (12) | – | |||
O _{72} | 9 (6) | 9 (11) | – | 8 (8) | – | 6 (10) | 7 (9) | 1 (4) | |||
O _{73} | 9 (10) | – | 3 (7) | 7 (9) | 3 (7) | 5 (9) | 8 (11) | – |
The three levels of factors in L27 orthogonal array
Level | 1 | 2 | 3 |
---|---|---|---|
A (P) | 100 | 200 | 300 |
B (G) | 0.3 | 0.5 | 0.7 |
C (\(P^{\prime}_{SC1}\)) | 1 | 2 | 3 |
D (\(P^{\prime}_{SC2}\)) | 1 | 2 | 3 |
E (\(P^{\prime}_{SM1}\)) | 1 | 2 | 3 |
F (\(P^{\prime}_{SM2}\)) | 1 | 2 | 3 |
G (P_{RC}) | 0.3 | 0.5 | 0.7 |
H (N_{s}) | 1000 | 2000 | 3000 |
Numerical test results for L27 orthogonal array and confirmation test
No. | Factors | Performance | ||||||||
---|---|---|---|---|---|---|---|---|---|---|
A | B | C | D | E | F | G | H | \(\bar{y}\) [EU] | σ | |
1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 718.9 | 11.4 |
2 | 1 | 1 | 1 | 1 | 2 | 2 | 2 | 2 | 678.3 | 7.6 |
3 | 1 | 1 | 1 | 1 | 3 | 3 | 3 | 3 | 665 | 7.3 |
4 | 1 | 2 | 2 | 2 | 1 | 1 | 1 | 2 | 664.1 | 7.2 |
5 | 1 | 2 | 2 | 2 | 2 | 2 | 2 | 3 | 656.3 | 6.6 |
6 | 1 | 2 | 2 | 2 | 3 | 3 | 3 | 1 | 687.7 | 13.4 |
7 | 1 | 3 | 3 | 3 | 1 | 1 | 1 | 3 | 654.1 | 3.3 |
8 | 1 | 3 | 3 | 3 | 2 | 2 | 2 | 1 | 679.9 | 11.4 |
9 | 1 | 3 | 3 | 3 | 3 | 3 | 3 | 2 | 656.9 | 8.5 |
10 | 2 | 1 | 2 | 3 | 1 | 2 | 3 | 1 | 766.1 | 32.2 |
11 | 2 | 1 | 2 | 3 | 2 | 3 | 1 | 2 | 721.9 | 27.4 |
12 | 2 | 1 | 2 | 3 | 3 | 1 | 2 | 3 | 685.9 | 13.8 |
13 | 2 | 2 | 3 | 1 | 1 | 2 | 3 | 2 | 705.4 | 21.7 |
14 | 2 | 2 | 3 | 1 | 2 | 3 | 1 | 3 | 673.3 | 12.3 |
15 | 2 | 2 | 3 | 1 | 3 | 1 | 2 | 1 | 717.8 | 19.9 |
16 | 2 | 3 | 1 | 2 | 1 | 2 | 3 | 3 | 678.5 | 11.1 |
17 | 2 | 3 | 1 | 2 | 2 | 3 | 1 | 1 | 694.1 | 13.3 |
18 | 2 | 3 | 1 | 2 | 3 | 1 | 2 | 2 | 671.6 | 9.9 |
19 | 3 | 1 | 3 | 2 | 1 | 3 | 2 | 1 | 779.5 | 24.1 |
20 | 3 | 1 | 3 | 2 | 2 | 1 | 3 | 2 | 702.6 | 17.5 |
21 | 3 | 1 | 3 | 2 | 3 | 2 | 1 | 3 | 684.2 | 16.1 |
22 | 3 | 2 | 1 | 3 | 1 | 3 | 2 | 2 | 701.9 | 18.3 |
23 | 3 | 2 | 1 | 3 | 2 | 1 | 3 | 3 | 680.6 | 13.7 |
24 | 3 | 2 | 1 | 3 | 3 | 2 | 1 | 1 | 702.9 | 13.1 |
25 | 3 | 3 | 2 | 1 | 1 | 3 | 2 | 3 | 673.2 | 7.6 |
26 | 3 | 3 | 2 | 1 | 2 | 1 | 3 | 1 | 707 | 17.9 |
27 | 3 | 3 | 2 | 1 | 3 | 2 | 1 | 2 | 671.4 | 5.5 |
** | 1 | 3 | 1 | 1 | 3 | 1 | 1 | 3 | 653.9 | 2.7 |
Grey relation grade for each level of the studied parameters
Level | 1 | 2 | 3 |
---|---|---|---|
A (P) | 0.765 | 0.559 | 0.591 |
B (G) | 0.554 | 0.632 | 0.730 |
C (\(P^{\prime}_{SC1}\)) | 0.648 | 0.642 | 0.626 |
D (\(P^{\prime}_{SC2}\)) | 0.650 | 0.644 | 0.622 |
E (\(P^{\prime}_{SM1}\)) | 0.614 | 0.629 | 0.673 |
F (\(P^{\prime}_{SM2}\)) | 0.651 | 0.642 | 0.623 |
G (P_{RC}) | 0.672 | 0.639 | 0.605 |
H (N_{s}) | 0.524 | 0.655 | 0.737 |
5 Results and Discussions
In this section, a comparative study between the implemented uFJS-GA and several other algorithms is firstly conducted using a set of instances. Subsequently, another comparative study is carried out among several workshop models to demonstrate the advantage of the uFJS model.
5.1 Comparative Study Between Other Algorithms and uFJS-GA
Obtained results for the uFJS scheduling problems with different sizes
Instance settings | MILP algorithm | Steepest descent | Greedy descent | uFJS-GA | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
No. | n | m | ∑l_{i} | TE [EU] | t [s] | TE [EU] | t [s] | TE [EU] | t [s] | \(\overline{TE}\,\) [EU] | TE_{min} [EU] | η (%) | \(\bar{t}\) [s] |
1 | 3 | 3 | 6 | 216.0 | 0.3 | 838.7 | 0.0 | 216.0 | 0.0 | 216.0 | 216.0 | 100 | 0.0 |
2 | 3 | 4 | 7 | 293.0 | 2.1 | 882.2 | 0.0 | 293.0 | 0.0 | 293.0 | 293.0 | 100 | 0.1 |
3 | 3 | 4 | 8 | 323.0 | 6.2 | 878.4 | 0.0 | 323.0 | 0.2 | 323.0 | 323.0 | 100 | 0.5 |
4 | 4 | 4 | 9 | 336.0 | 8.0 | 872.3 | 0.0 | 336.6 | 0.5 | 336.4 | 336.0 | 100 | 1.0 |
5 | 4 | 4 | 10 | 354.0 | 19.1 | 826.2 | 0.0 | 355.1 | 1.0 | 354.8 | 354.0 | 100 | 1.1 |
6 | 5 | 5 | 13 | 425.0 | 657.5 | 884.9 | 0.0 | 441.3 | 1.8 | 425.5 | 425.0 | 88.0 | 2.1 |
7 | 6 | 5 | 14 | 460.0 | 5160.7 | 875.5 | 0.0 | 486.1 | 2.0 | 460.7 | 460.0 | 94.0 | 2.9 |
8 | 5 | 6 | 14 | 459.0 | 59,384.4 | 831.6 | 0.0 | 477.4 | 3.5 | 461.6 | 459.0 | 56.0 | 3.3 |
9 | 6 | 6 | 17 | − | − | 866.6 | 0.0 | 516.4 | 4.9 | 503.8 | 503.0 | 78.0 | 5.4 |
10 | 7 | 6 | 19 | − | − | 830.7 | 0.0 | 585.8 | 6.3 | 564.9 | 563.0 | 28.0 | 8.7 |
11 | 7 | 7 | 21 | − | − | 926.7 | 0.0 | 636.2 | 7.5 | 617.9 | 615.0 | 20.0 | 9.2 |
12 | 8 | 8 | 27 | − | − | 879.6 | 0.0 | 693.4 | 10.2 | 653.6 | 651.0 | 14.0 | 27.8 |
- 1.
Comparative results against MILP. Although MILP algorithm could guarantee to find the optimal solution, the required search time increases exponentially as the problem size gets larger. As can be seen from Table 6, the MILP algorithm was only able to find the global minima (within a reasonable amount of time) for the first eight instances (up to 5-job/6-machine). In contrast, the uFJS-GA also managed to find the global minima of all eight instances, but within a much shorter time. The effectiveness and efficiency of the proposed uFJS-GA in small sized problems is clearly shown.
- 2.
Comparative results against steepest descent algorithm and greedy descent algorithm. For instances of large sizes, uFJS-GA, steepest descent algorithm and greedy descent algorithm managed to obtain solutions within a reasonable amount of time. As can be seen from Table 6, the solutions obtained by steepest descent algorithm are very poor. This is because search can be easily trapped in local minimum. On the other hand, greedy descent algorithm did a more reasonable job. Still, uFJS-GA outperformed it in nearly all instances, especially in large-sized problems. Although the true optimal solutions for these relative large-sized problems are not known, it can be safely stated that the solutions obtained by uFJS-GA are of decent quality.
It is also noted that the success rate of the uFJS-GA for finding TE_{min} decreased with the increase of the instance sizes (from 78 to 14%). Therefore, larger number of runs is recommended with instances of larger sizes.
5.2 Comparative Study Among Different Shop Floor Models
- 1.Classic FJS, where operations are allowed to be performed by alternative machines, but the operations in each job have to be sequentially performed according to a predetermined route. Compared to the uFJS, the precedence matrix of a job is simplified as$$PM_{i} = \left[ {\begin{array}{*{20}c} 0 & 1 & \cdots & 1 \\ { - 1} & 0 & \ddots & \vdots \\ \vdots & \ddots & \ddots & 1 \\ { - 1} & \cdots & { - 1} & 0 \\ \end{array} } \right]$$
- 2.
Ultra job shop (uJS), where there is flexibility in the route of each job, but each operation can only be processed on one machine.
- 3.
Classic job shop (JS), where the operations in each job have to be sequentially performed according to a predetermined route, and each operation can only be processed on one machine.
The results of the comparative study
Instance settings | uFJS | FJS | uJS | JS | |||
---|---|---|---|---|---|---|---|
No. | n | m | ∑l_{i} | \(\overline{TE}\) [EU] | \(\overline{TE}\) [EU] | \(\overline{TE}\) [EU] | \(\overline{TE} \,\) [EU] |
1 | 3 | 3 | 6 | 216.0 | 225.0 | 286.0 | 301.0 |
2 | 3 | 4 | 7 | 293.0 | 302.0 | 366.0 | 380.0 |
3 | 3 | 4 | 8 | 323.0 | 332.0 | 449.0 | 463.0 |
4 | 4 | 4 | 9 | 336.0 | 348.0 | 530.0 | 538.0 |
5 | 4 | 4 | 10 | 354.0 | 374.0 | 580.0 | 585.0 |
6 | 5 | 5 | 13 | 425.5 | 441.0 | 665.0 | 695.0 |
7 | 6 | 5 | 14 | 460.7 | 472.3 | 680.5 | 698.3 |
8 | 5 | 6 | 14 | 461.6 | 469.7 | 685.9 | 714.1 |
9 | 6 | 6 | 17 | 503.8 | 516.8 | 788.5 | 813.9 |
10 | 7 | 6 | 19 | 564.9 | 578.3 | 894.6 | 918.5 |
11 | 7 | 7 | 21 | 617.9 | 632.1 | 1012.1 | 1034.2 |
12 | 8 | 8 | 27 | 653.6 | 687.3 | 1815.5 | 1929.2 |
- 1.
Compared to FJS and uFJS, the energy efficiency of JS and uJS is much poorer. This is because JS and uJS assume that an operation can only be processed by one machine. This unrealistic assumption can easily cause bottleneck machines, unbalanced resource loading, and poor energy efficiency. In contrast, FJS and uFJS could achieve a higher energy efficiency by considering alternative machines.
- 2.Compared to FJS, lower energy consumption is achieved in uFJS in all instances. To have a better insight, the two best schedules for instance-12 from FJS and uFJS are shown in Fig. 9a, b, respectively. Clearly, there are four idle intervals in the FJS schedule, while there is only one idle interval in the uFJS schedule. This was achieved by adjusting the routes of certain jobs according to their precedence matrices.
Obviously, the uFJS model is superior to the other three workshop models in achieving better energy efficiency. The main reason is that process planning and scheduling are no longer two separate tasks in the uFJS model. Instead, they are partially integrated by the introduction of the flexibility in determining the routes for the jobs. This integration therefore provides extra solution space compared to other workshop models. However, it becomes a much more difficult challenge to find a good solution from such an enlarged solution space. The proposed GA-based scheduling algorithm is able to obtain high-quality solutions in a reasonable amount of time, proving to be an effective and efficient solution algorithm for uFJS scheduling problems.
5.3 Trade-Off Between Energy Consumption and Tardiness
- 1.
For uFJS-GA, change the fitness to F = T, where T is the total tardiness of the current solution. The uFJS-GA is then run to find the achievable minimal tardiness T_{min}.
- 2.
For uFJS-GA, change the fitness to F = TEC + p(T − T_{min}), where p is an extreme large penalty factor and T is the total tardiness of the current solution. The uFJS-GA is then run to find the optimal solution with the minimum energy consumption while the overall tardiness is maintained as T_{min}.
6 Conclusions
Energy efficiency is of vital importance in manufacturing nowadays. Related energy saving techniques are key to energy-efficient manufacturing. However, the workshop models investigated in the existing literature are relatively simple and far from realistic. To address this problem, this paper investigates a more realistic production environment, i.e., the uFJS model. By considering flexibilities in process planning and scheduling, the proposed workshop model can better characterize the real production activities. Distinguished from other workshop models (e.g., classic FJS and classic JS), the uFJS has three simultaneous tasks to perform, i.e., operation routing in each job, machine assignment, and operation sequencing on the assigned machines. To formulate and solve the energy-efficient scheduling problem in the uFJS, a MILP algorithm has been developed. For large-sized instances, a genetic algorithm (named uFJS-GA) has been designed. The parameters were determined with grey relational analysis to improve the uFJS-GA in terms of solution quality and standard deviation. Compared with other minimization algorithms (i.e., MILP, steepest descent and greedy descent), uFJS-GA worked more efficiently and effectively. Comparative study against other workshop models shows the uFJS is more energy-efficient. By allowing operation sequencing flexibility (for any particular job) in the scheduling stage, the integration of process planning and scheduling is effectively achieved in the uFJS. As a result, the solution space is tremendously enlarged and more energy-efficient solutions can be obtained.
From the managerial point of view, by treating a machine workshop as an uFJS, the potential to achieve higher energy efficiency is greatly improved. At the same time, for an uFJS, the uFJS-GA is a powerful tool to help make process planning and scheduling decisions.
In the next phase of our study, some of the constraints and assumptions will be relaxed to further characterize real production, e.g., machine may not be continuously available and material supply may be delayed. Meanwhile, work is underway towards energy-efficient rescheduling in the uFJS to deal with machine breakdown/recover and urgent job arrivals.
Notes
Compliance with Ethical Standards
Conflict of interest
On behalf of all authors, the corresponding author states that there is no conflict of interest.
References
- 1.Dornfeld, D. A. (2014). Moving towards green and sustainable manufacturing. International Journal of Precision Engineering and Manufacturing—Green Technology, 1, 63–66.CrossRefGoogle Scholar
- 2.Park, C., Kwon, K., Kim, W., & Min, B. (2009). Energy consumption reduction technology in manufacturing—A selective review of policies, standards, and research. International Journal of Precision Engineering and Manufacturing—Green Technology, 10, 151–173.CrossRefGoogle Scholar
- 3.Kang, H. S., et al. (2016). Smart manufacturing: Past research, present findings, and future directions. International Journal of Precision Engineering and Manufacturing—Green Technology, 3, 111–128.CrossRefGoogle Scholar
- 4.Avram, O. I., & Xirouchakis, P. (2011). Evaluating the use phase energy requirements of a machine tool system. Journal of Cleaner Production, 19, 699–711.CrossRefGoogle Scholar
- 5.Balogun, V. A., & Mativenga, P. T. (2013). Modelling of direct energy requirements in mechanical machining processes. Journal of Cleaner Production, 41, 179–186.CrossRefGoogle Scholar
- 6.Schmidt, C., Li, W., Thiede, S., Kara, S., & Herrmann, C. (2015). A methodology for customized prediction of energy consumption in manufacturing industries. International Journal of Precision Engineering and Manufacturing—Green Technology, 2, 163–172.CrossRefGoogle Scholar
- 7.Li, W., & Kara, S. (2011). An empirical model for predicting energy consumption of manufacturing processes: A case of turning process. Proceedings of the Institution of Mechanical Engineers, Part B: Journal of Engineering Manufacture, 225, 1636–1646.CrossRefGoogle Scholar
- 8.Li, L., Yan, J., & Xing, Z. (2013). Energy requirements evaluation of milling machines based on thermal equilibrium and empirical modelling. Journal of Cleaner Production, 52, 113–121.CrossRefGoogle Scholar
- 9.Liu, N., Zhang, Y. F., & Lu, W. F. (2015). A hybrid approach to energy consumption modelling based on cutting power: A milling case. Journal of Cleaner Production, 104, 264–272.CrossRefGoogle Scholar
- 10.Camposeco-Negrete, C. (2013). Optimization of cutting parameters for minimizing energy consumption in turning of AISI 6061 T6 using Taguchi methodology and ANOVA. Journal of Cleaner Production, 53, 195–203.CrossRefGoogle Scholar
- 11.Campatelli, G., Lorenzini, L., & Scippa, A. (2014). Optimization of process parameters using a response surface method for minimizing power consumption in the milling of carbon steel. Journal of Cleaner Production, 66, 309–316.CrossRefGoogle Scholar
- 12.Campatelli, G., Scippa, A., Lorenzini, L., & Sato, R. (2015). Optimal workpiece orientation to reduce the energy consumption of a milling process. International Journal of Precision Engineering and Manufacturing—Green Technology, 2, 5–13.CrossRefGoogle Scholar
- 13.Dureja, J. S., et al. (2015). Performance evaluation of coated carbide tool in machining of stainless steel (AISI 202) under minimum quantity lubrication (MQL). International Journal of Precision Engineering and Manufacturing—Green Technology, 2, 123–129.CrossRefGoogle Scholar
- 14.Yoon, H. S., et al. (2014). A comparison of energy consumption in bulk forming, subtractive, and additive processes: Review and case study. International Journal of Precision Engineering and Manufacturing—Green Technology, 1, 261–279.CrossRefGoogle Scholar
- 15.Sheng, P., Srinivasan, M., & Kobayashi, S. (1995). Multi-objective process planning in environmentally conscious manufacturing: A feature-based approach. CIRP Annals—Manufacturing Technology, 44, 433–437.CrossRefGoogle Scholar
- 16.Newman, S. T., Nassehi, A., Imani-Asrai, R., & Dhokia, V. (2012). Energy efficient process planning for CNC machining. CIRP Journal of Manufacturing Science and Technology, 5, 127–136.CrossRefGoogle Scholar
- 17.Singh, S., Goodyer, J., & Popplewell, K. (2007). Integrated environmental process planning for the design and manufacture of automotive components. International Journal of Production Research, 45, 4189–4205.CrossRefzbMATHGoogle Scholar
- 18.Yin, R., Cao, H., Li, H., & Sutherland, J. W. (2014). A process planning method for reduced carbon emissions. International Journal of Computer Integrated Manufacturing, 27, 1175–1186.CrossRefGoogle Scholar
- 19.Chu, W. S., et al. (2016). From design for manufacturing (DFM) to manufacturing for design (MFD) via hybrid manufacturing and smart factory: A review and perspective of paradigm shift. International Journal of Precision Engineering and Manufacturing—Green Technology, 3, 209–222.CrossRefGoogle Scholar
- 20.Zhao, W. B., Jeong, J. W., Do Noh, S., & Yee, J. T. (2015). Energy simulation framework integrated with green manufacturing-enabled PLM information model. International Journal of Precision Engineering and Manufacturing—Green Technology, 2, 217–224.CrossRefGoogle Scholar
- 21.Mouzon, G., Yildirim, M. B., & Twomey, J. (2007). Operational methods for minimization of energy consumption of manufacturing equipment. International Journal of Production Research, 45, 4247–4271.CrossRefzbMATHGoogle Scholar
- 22.Mouzon, G., & Yildirim, M. B. (2008). A framework to minimise total energy consumption and total tardiness on a single machine. International Journal of Sustainable Engineering, 1, 105–116.CrossRefGoogle Scholar
- 23.Shrouf, F., Ordieres-Meré, J., García-Sánchez, A., & Ortega-Mier, M. (2014). Optimizing the production scheduling of a single machine to minimize total energy consumption costs. Journal of Cleaner Production, 67, 197–207.CrossRefGoogle Scholar
- 24.Fang, K., Uhan, N., Zhao, F., & Sutherland, J. W. (2011). A new approach to scheduling in manufacturing for power consumption and carbon footprint reduction. Journal of Manufacturing Systems, 30, 234–240.CrossRefGoogle Scholar
- 25.Luo, H., Du, B., Huang, G. Q., Chen, H., & Li, X. (2013). Hybrid flow shop scheduling considering machine electricity consumption cost. International Journal of Production Economics, 146, 423–439.CrossRefGoogle Scholar
- 26.Dai, M., Tang, D., Giret, A., Salido, M. A., & Li, W. D. (2013). Energy-efficient scheduling for a flexible flow shop using an improved genetic-simulated annealing algorithm. Robotics and Computer-Integrated Manufacturing, 29, 418–429.CrossRefGoogle Scholar
- 27.Liu, Y., Dong, H., Lohse, N., Petrovic, S., & Gindy, N. (2014). An investigation into minimising total energy consumption and total weighted tardiness in job shops. Journal of Cleaner Production, 65, 87–96.CrossRefGoogle Scholar
- 28.Wang, Y. F. (2010). Optimization for process planning and scheduling in parts manufacturing. PhD diss. National University of Singapore.Google Scholar
- 29.Ma, G. H., Zhang, Y. F., & Nee, A. Y. C. (2000). A simulated annealing-based optimization algorithm for process planning. International Journal of Production Research, 38, 2671–2687.CrossRefGoogle Scholar
- 30.Wang, J., Zhang, Y. F., Nee, A. Y. C., Wang, Y. F., & Fuh, J. Y. H. (2009). Reducing tardy jobs by integrating process planning and scheduling functions. International Journal of Production Research, 47, 6069–6084.CrossRefzbMATHGoogle Scholar
- 31.De Jong, K. A. & Spears, W. M. Using genetic algorithms to solve NP-complete problems. in ICGA 124–132 (1989).Google Scholar
- 32.Cheng, B.-W., & Chang, C.-L. (2007). A study on flowshop scheduling problem combining Taguchi experimental design and genetic algorithm. Expert Systems with Applications, 32, 415–421.CrossRefGoogle Scholar
- 33.Lin, J. L., & Lin, C. L. (2002). The use of the orthogonal array with grey relational analysis to optimize the electrical discharge machining process with multiple performance characteristics. International Journal of Machine Tools and Manufacture, 42, 237–244.CrossRefGoogle Scholar
- 34.Il’ev, V. P. (2001). An approximation guarantee of the greedy descent algorithm for minimizing a supermodular set function. Discrete Applied Mathematics, 114, 131–146.MathSciNetCrossRefzbMATHGoogle Scholar