Next Article in Journal
Responsive Economic Model Predictive Control for Next-Generation Manufacturing
Previous Article in Journal
A Parameter Identification Method for Stewart Manipulator Based on Wavelet Transform
 
 
Font Type:
Arial Georgia Verdana
Font Size:
Aa Aa Aa
Line Spacing:
Column Width:
Background:
Article

Single-Machine Parallel-Batch Scheduling with Nonidentical Job Sizes and Rejection

School of Mathematics and Statistics, Ningbo University, Ningbo 315211, China
*
Author to whom correspondence should be addressed.
Mathematics 2020, 8(2), 258; https://doi.org/10.3390/math8020258
Submission received: 30 January 2020 / Revised: 12 February 2020 / Accepted: 13 February 2020 / Published: 16 February 2020
(This article belongs to the Section Mathematics and Computer Science)

Abstract

:
We investigate the single-machine parallel-batch scheduling problem with nonidentical job sizes and rejection. In this problem, a set of jobs with different processing times and nonidentical sizes is given to be possibly processed on a parallel-batch processing machine. Each job is either accepted and then processed on the machine or rejected by paying its rejection penalty. Preemption is not allowed. Our task is to choose the accepted jobs and schedule them as batches on the machine to minimize the makespan of the accepted jobs plus the total rejection penalty of the rejected jobs. We provide an integer programming formulation to exactly solve our problem. Then, we propose three fast heuristic algorithms to solve the problem and evaluate their performances by using a small numerical example.

1. Introduction

In this paper, we investigate the single-machine parallel-batch scheduling problem with nonidentical job sizes and rejection. This problem can be addressed as follows. We are given a set of jobs J = { J 1 , J 2 , , J n } and a single parallel-batch processing machine with a capacity 1. Each job J j has a processing time p j , a size s j ( 0 , 1 ] , and a rejection penalty e j , j = 1 , 2 , , n . A job J j is either accepted and then processed on the machine or rejected by paying a certain penalty e j , j = 1 , 2 , , n . The machine can simultaneously process a number of jobs as a batch subject to the constraint that the total size of jobs in the batch is not larger than the capacity 1 of the machine. The processing time for a parallel batch is defined as the longest processing time of the jobs in the batch. Preemption is not allowed. Our task is to choose the accepted jobs and schedule them as batches on the single machine to minimize the makespan of the accepted jobs plus the total rejection penalty of the rejected jobs. Let A denote the accepted job subset and R = J A denote the rejected job subset. Given the accepted job subset A and its corresponding schedule σ , let C j denote the completion time of job J j when job J j is accepted. Then, using the general three-field notation for scheduling problem [1], the problem can be denoted by 1 | p b a t c h , s j , r e j | C max + j R e j , where C max = max j A C j . The objective function C max + j R e j addresses the total operational cost. The first part C max represents the maximum completion time (i.e., makespan), which describes the cost for working time. The second part j R e j represents the total rejection penalty, which describes the cost for outsourcing and/or for loss in revenue and customer goodwill. The second part does not have to be scaled since we may always scale the individual rejection penalties.
Our problem falls into the category of single-machine batch scheduling. Since Ikura and Gimple [2] initiated the work on the single-machine batch scheduling, single-machine batch scheduling has been investigated extensively in the past few decades. Brucker et al. [3] studied the single-machine batch processing scheduling problem with the goal to minimize regular scheduling criteria that are nondecreasing on the job completion times. Liu and Yu [4] considered the single-machine batch processing scheduling problem with jobs having release dates and the objective function is to minimize the makespan. Cheng et al. [5] investigated an unbounded batch processing machine scheduling problem with jobs having release dates and deadlines. Liu et al. [6] set the complexity of scheduling an unbounded batch machine. Zhang et al. [7] studied the single-machine batch processing scheduling problem with the goal to minimize the makespan. A survey on batch processing scheduling was given by Potts and Kovalyov [8].
In the above-mentioned studies, the assumption that all the jobs are required to be accepted with processing and no rejection is allowed is made. However, in some actual situations, due to the limited production capacity and tight delivery time requirement, the decision-maker may need to reject some jobs by paying the corresponding rejection penalties. In recent years, some researchers have started to focus on batch processing scheduling with job rejection. Lu et al. [9] studied an unbounded parallel-batch processing machine scheduling problem with release dates and rejection with the goal to minimize the makespan plus the total rejection penalty. They showed that the problem is weakly NP-hard and derived a fully polynomial time approximation scheme (FPTAS). Furthermore, for the bounded parallel-batch processing machine scheduling problem with release dates and rejection, Lu et al. [10] proved that it is strongly NP-hard and presented a two-approximation algorithm and a polynomial time approximation scheme (PTAS); Cao and Yang [11] also derived a PTAS. He et al. [12] considered two bi-criteria single parallel batch processing machine scheduling problems with job rejection being allowed; one is to minimize the makespan as long as the total rejection cost is not larger than a given threshold, and the other is to minimize the total rejection cost as long as the makespan is not larger than a given threshold.
Note that, if all jobs have identical processing time and the rejection penalty for each job is infinity, then the problem is just the classical one-dimensional bin packing problem, which is strongly NP-hard [13]. Naturally, our problem 1 | p b a t c h , s j , r e j | C max + j R e j is strongly NP-hard. Our problem extends the models proposed in Lu et al. [9] and Zhang et al. [7]. By setting each job has the identical size, the model proposed in Lu et al. [9] is our special case. When we set e j = + , the model proposed in Zhang et al. [7] becomes our special case.
The remainder of this paper is organized as follows. In Section 2, we give the integer programming formulation to exactly solve our problem. In Section 3, we proposed three fast heuristic algorithms to solve our problem followed by a numerical example to show the solution results by running these algorithms in Section 4. Finally, we conclude the paper in Section 5.

2. Integer Programming Formulation

In this section, we derive an integer programming formulation for problem
1 | p b a t c h , s j , r e j | C max + j R e j .
Clearly, there are at most n batches in our problem. The decision variables of the problem are as follows:
y i : equals 1 if the i th batch is opened; 0 otherwise, i = 1 , 2 , , n .
l i : denotes the longest processing time in the i th batch if y i = 1 ; 0 otherwise, i = 1 , 2 , , n .
z j : equals 1 if job J j is rejected; 0 otherwise, j = 1 , 2 , , n .
x i j : equals 1 if the i th batch contains job J j ; 0 otherwise, i , j = 1 , 2 , , n .
Let p max = max j = 1 n p j . Then, we have the following integer programming (IP) formulation to describe problem 1 | p b a t c h , s j , r e j | C max + j R e j .
IP Formulation:
Minimize
i = 1 n y i l i + j = 1 n z j e j
Subject to
i = 1 n x i j + z j = 1 , j = 1 , 2 , , n ;
j = 1 n x i j s j 1 , i = 1 , 2 , , n ;
x i j y i , i , j = 1 , 2 , , n ;
x i j p j l i , i , j = 1 , 2 , , n ;
y i l i y i p max , i = 1 , 2 , , n ;
x i j { 0 , 1 } , i , j = 1 , 2 , , n ;
y i { 0 , 1 } , i = 1 , 2 , , n ;
z j { 0 , 1 } , j = 1 , 2 , , n .
The objective function in Equation (1) tries to minimize the makespan (maximum completion time) of the accepted jobs plus the total rejection penalty of the rejected jobs. The constraint set in Equation (2) ensures that each job is either accepted to process in some batch or rejected. The constraint set in Equation (3) describes that the total size of the accepted jobs assigned into the same batch is not greater than the capacity size 1. The constraint set in Equation (4) states that there exists a job assigned into some batch if and only if this batch is opened. The constraint set in Equation (5) guarantees that the processing time of each job assigned into some batch is not greater than the longest processing time in this batch. The constraint set in Equation (6) gives the lower bound and upper bound for the longest processing time in some batch. Finally, the constraint sets in Equations (7)–(9) impose the binary restriction on x i j , y i , and z j , i , j = 1 , 2 , , n .
Note that the problem 1 | p b a t h , s j , r e j | C max + j R e j includes the well-known strongly NP-hard problem Bin Packing [13] as its special case. Thus, exactly solving its IP Formulation is also strongly NP-hard [13]. It is impossible to solve it exactly in polynomial time according to the NP-completeness theory [13]. Thus, we turn to design fast heuristic algorithms to obtain an approximate feasible solution. However, if one relaxes the binary variables x i j , y i , and z j , i , j = 1 , 2 , , n to real variables, then we obtain its relaxed version for the IP Formulation, which can be exactly solved in polynomial time by using the well-known interior point method [14]. The optimal objective function value of the relaxed version is a lower bound for that of its IP Formulation.

3. Three Heuristics Algorithms

In this section, we focus on to design some fast heuristic algorithms to solve the approximate solution for problem 1 | p b a t c h , s j , r e j | C max + j R e j . For the first two heuristic algorithms (Algorithms 1 and 2), the main idea is first to determine the rejected job subset and then construct batches for the accepted jobs to process them in an arbitrary order on the machine. For the third heuristic algorithm (Algorithm 3), the main idea is first to construct batches for the accepted jobs and then by checking each batch determine the rejected job subset. Our heuristic algorithms are listed as follows.
Algorithm 1
Step 1. Let R = { j | e j s j p j , j = 1 , 2 , , n } { j | s j > 1 / 2 , j = 1 , 2 , , n } be the rejected job subset. Accordingly, A = J R is the accepted job subset.
Step 2. For the accepted jobs in A , first sequence them in non-increasing order of the job processing times, i.e., p π 1 p π 2 p π | A | , where | A | denotes the number of accepted jobs and ( π 1 , π 2 , , π | A | ) is a permutation of the accepted jobs.
Step 3: If A , open the first batch B 1 . Initially, let B 1 : = and S ( B 1 ) : = 0 . Let k : = 1 .
Step 4: From i = 1 to | A | , do the following:
If S ( B k ) + s π i 1 , put job J π i into batch B k and update S ( B k ) : = S ( B k ) + s π i ; otherwise let k : = k + 1 , open a new batch B k , put job J π i into batch B k and update S ( B k ) : = s π i .
Step 5: Processing the opened batches B 1 , B 2 , , B k in an arbitrary order on the machine and output the solution ( B 1 , B 2 , , B k | R ) .
Theorem 1.
Algorithm 1runs in O ( n log n ) time and output a feasible solution for problem 1 | p b a t c h , s j , r e j | C max + j R e j .
Proof. 
For the running time, Algorithm 1 mainly costs in Step 2, which is O ( n log n ) time. For other steps, it costs at most O ( n ) time. Thus, Algorithm 1 runs in O ( n log n ) time. From Step 4, the constructed batches are subject to the batch capacity constraint, which implies the outputted solution is feasible. Hence, it is proven. ☐
Algorithm 2
Step 1. First sort all the jobs in J according to the non-increasing order of the job processing times, i.e., p π 1 p π 2 p π n , where ( π 1 , π 2 , , π n ) is a permutation of ( 1 , 2 , , n ) .
Step 2. Construct a series of rejected job subsets R i as follows:
R 0 = , R i = { J π 1 , J π 2 , , J π i } , i = 1 , 2 , , n .
Accordingly, define the corresponding accepted job subset A i = J R i , i = 0 , 1 , 2 , , n .
Step 3: From i = 0 to n do the following:
Step 3.1: For the accepted jobs in A i , first sequence them in non-increasing order of the job processing times, i.e., p π 1 i p π 2 i p π | A i | i , where | A i | denotes the number of accepted jobs in A i and ( π 1 i , π 2 i , , π | A i | i ) is a permutation of the accepted jobs in A i .
Step 3.2: If A i , open the first batch B 1 i . Initially, let B 1 i : = and S ( B 1 i ) : = 0 . Let k i : = 1 .
Step 3.3: From j = 1 to | A i | , do the following:
If S ( B k i i ) + s π j i 1 , put job J π j i into batch B k i i and update S ( B k i i ) : = S ( B k i i ) + s π j i ; otherwise let k i : = k i + 1 , open a new batch B k i i , put job J π j i into batch B k i i and update S ( B k i i ) : = s π j i .
Step 3.4: Processing the opened batches B 1 i , B 2 i , , B k i i in an arbitrary order on the machine.
Step 3.5: Compute the objective function value Z i = C max ( A i ) + j R i e j for the accepted jobs A i and the rejected jobs R i , where C max ( A i ) denotes the makespan for the constructed parallel-batch schedule B 1 i , B 2 i , , B k i i of A i and j R i e j denotes the total rejection penalty.
Step 4: Choose the solution ( B 1 q , B 2 q , , B k q q | R q ) with minimum Z q as the output, i.e., Z q = min i = 0 , 1 , 2 , , n Z i .
Theorem 2.
Algorithm 2runs in O ( n 2 ) time and output a feasible solution for problem 1 | p b a t c h , s j , r e j | C max + j R e j .
Proof. 
For the running time, Algorithm 2 mainly costs in Step 3, which is O ( n 2 ) time. For the other steps, it costs at most O ( n log n ) time. Thus, Algorithm 2 runs in O ( n 2 ) time. From Step 3.3, the constructed batches are subject to the batch capacity constraint, which implies the outputted solution is feasible. Hence, it is proven. ☐
Algorithm 3
Step 1. First sort all the jobs in J according to the non-increasing order of the job processing times, i.e., p π 1 p π 2 p π n , where ( π 1 , π 2 , , π n ) is a permutation of ( 1 , 2 , , n ) .
Step 2: Open the first batch B 1 . Initially, let B 1 : = and S ( B 1 ) : = 0 . Let k : = 1 .
Step 3: From i = 1 to n , do the following:
If S ( B k ) + s π i 1 , put job J π i into batch B k and update S ( B k ) : = S ( B k ) + s π i ; otherwise let k : = k + 1 , open a new batch B k , put job J π i into batch B k and update S ( B k ) : = s π i .
Step 4: For all the constructed batches B q , q = 1 , 2 , , k , if max j B q p j j B q e j , we remove batch B q and reject all the jobs in B q ; otherwise we reserve the batch B q .
Step 5: Processing the reserved batches in an arbitrary order on the machine.
Theorem 3.
Algorithm 3runs in O ( n log n ) time and output a feasible solution for problem 1 | p b a t c h , s j , r e j | C max + j R e j .
Proof. 
For the running time, Algorithm 3 mainly costs in Step 1, which is O ( n log n ) time. For other steps, it costs at most O ( n ) time. Thus, Algorithm 3 runs in O ( n log n ) time. From Steps 3 and 5, the reserved batches are subject to the batch capacity constraint, which implies the outputted solution is feasible. Hence, it is proven. ☐
The above three algorithms are combinatorial algorithms. Their running times are faster than some meta-heuristic approach proposed by Shojafar et al. [15] for cloud job scheduling problem and bio-inspired greedy or clustering algorithms proposed by Alizadeh et al. in [16] for batch scheduling problems and Amato et al. in [17] for multimedia stories’ creation problem from online social networks.

4. A numerical Example

In this section, we present a small numerical example to show how Algorithms 1, 2 and 3 work and use the exact solution with solving the IP to evaluate the quality of solutions returned by the three heuristics algorithms.
Numerical example. Consider the following n = 10 jobs to be possible processed on a single batch processing machine. The capacity for the machine is 1. The corresponding processing times, sizes and reject penalties for the 10 jobs are shown in Table 1.
Solution results. The IP solver used was Lingo 11. Algorithms 1, 2 and 3 were implemented in MATLAB. All tests were run on an Intel Core i5-4200 PC with a 2.5 GHz dual core processor, 4 GB of RAM, and the Windows 10 operating system. The collected times are the actual run times for the program, in seconds.
We first solved the IP formulation for the numerical example with 10 jobs by using Lingo 11, which takes a very long time, about 14 h. We obtained the optimal values for Z j * , j = 1 , 2 , , 10 , as shown in Table 2.
According to the values of Z j * , j = 1 , 2 , , 10 , we obtained the rejected job subset
R * = { J 1 , J 5 , J 6 , J 7 , J 9 , J 10 }
and the accepted job subset
A * = { J 2 , J 3 , J 4 , J 8 }
with one batch B 1 * = { J 2 , J 3 , J 4 , J 8 } . The objective function value for the optimal solution is 84.
An illustration chart for the makespan of the optimal solution is shown in Figure 1.
Running Algorithms 1, 2 and 3 we obtained the solution results in 5 s. All solution results are shown in Table 3, where “OBJ” denotes the objective function value.
The illustration charts for the obtained makespan by Algorithms 1, 2 and 3 are shown in Figure 2, Figure 3 and Figure 4.
Performance Ratio. For the performance ratio of Algorithm 1, it is at most 95 84 1.14 . For the performance ratio of Algorithm 3, it is 94 84 1.12 . For the performance ratio of Algorithm 3, it is 90 84 1.08 . In the given numerical example, Algorithm 3 output the best solution.
In the actual application, we should run all the three proposed heuristic algorithms and choose the best solution.
Remarks. 
The above-proposed Algorithms 1, 2 and 3 cannot been applied to other objective functions. If one changes the objective function, then we should redesign the algorithms for the new objective function.

5. Concluding Remarks

In this paper, we investigate the single-machine parallel-batch scheduling problem with nonidentical job sizes and rejection. Our proposed problem generalizes many existing batch scheduling problems. Our proposed heuristic algorithms are combinatorial and run more quickly than some existing bio-inspired algorithms. It would be interesting to further explore other objective functions and design some fast algorithms with good performance ratio.

Author Contributions

Conceptualization, M.J. and X.L.; methodology, M.J.; software, X.L.; validation, M.J., X.L. and W.L.; writing—original draft preparation, M.J.; writing—review and editing, W.L.; supervision, W.L. All authors have read and agreed to the published version of the manuscript.

Funding

This research was funded by Zhejiang Provincial Natural Science Foundation of China, grant number LY19A010005; the Humanities and Social Sciences Planning Foundation of the Ministry of Education, grant number 18YJA630077; and Natural Science Foundation of China, grant number 11971252.

Acknowledgments

The authors would like to thank the reviewers for their useful suggestions and comments.

Conflicts of Interest

The authors declare no conflict of interest. The funders had no role in the design of the study; in the collection, analyses, or interpretation of data; in the writing of the manuscript, or in the decision to publish the results.

References

  1. Graham, R.L.; Lawler, E.L.; Lenstra, J.K.; Rinnooy Kan, A.H.G. Optimization and approximation in deterministicsequencing and scheduling: A survey. Ann. Discret. Math. 1979, 5, 287–326. [Google Scholar]
  2. Ikura, Y.; Gimple, M. Scheduling algorithms for a single batching processing machine. Oper. Res. Lett. 1986, 5, 61–65. [Google Scholar] [CrossRef]
  3. Brucker, P.; Gladky, A.; Han, H.; Kovalyov, M.Y.; Potts, C.N.; Tautenhahn, T.; Van de Velde, S.L. Scheduling a batching machine. J. Sched. 1998, 1, 31–54. [Google Scholar] [CrossRef]
  4. Liu, Z.; Yu, W. Scheduling one batch processor subject to job release dates. Discret. Appl. Math. 2000, 105, 129–136. [Google Scholar] [CrossRef] [Green Version]
  5. Cheng, T.C.E.; Liu, Z.; Yu, W. Scheduling jobs with release dates and deadlines on a batch processing machine. IIE Trans. 2001, 33, 685–690. [Google Scholar] [CrossRef]
  6. Liu, Z.; Yuan, J.; Cheng, T.C.E. On scheduling an unbounded batch machine. Oper. Res. Lett. 2003, 31, 42–48. [Google Scholar] [CrossRef] [Green Version]
  7. Zhang, G.; Cai, X.; Lee, C.Y.; Wong, C.K. Minimizing makespan on a single batch processing machine with nonidentical job sizes. Nav. Res. Logist. 2001, 48, 226–240. [Google Scholar] [CrossRef]
  8. Potts, C.N.; Kovalyov, M.Y. Scheduling with batching: A review. Eur. J. Oper. Res. 2000, 120, 228–249. [Google Scholar] [CrossRef]
  9. Lu, L.; Zhang, L.; Yuan, J. The unbounded parallel batch machine scheduling with release dates and rejection to minimize makespan. Theor. Comput. Sci. 2008, 396, 283–289. [Google Scholar] [CrossRef] [Green Version]
  10. Lu, L.; Cheng, T.C.E.; Yuan, J.; Zhang, L. Bounded single-machine parallel-batch scheduling with release dates and rejection. Comput. Oper. Res. 2009, 36, 2748–2751. [Google Scholar] [CrossRef] [Green Version]
  11. Cao, Z.; Yang, X. A PTAS for parallel batch scheduling with rejection and dynamic job arrivals. Theor. Comput. Sci. 2009, 410, 2732–2745. [Google Scholar] [CrossRef] [Green Version]
  12. He, C.; Leung, Y.T.; Lee, K.; Pinedo, M.L. Scheduling a single machine with parallel batching to minimize makespan and total rejection cost. Discret. Appl. Math. 2016, 204, 150–163. [Google Scholar] [CrossRef]
  13. Garey, M.R.; Johnson, D.S. Computers and Intractability: A Guide to the Theory of NP-Completeness; W.H. Freeman and Company: San Francisco, CA, USA, 1979. [Google Scholar]
  14. Vanderbei, R.J. Linear Programming: Foundations and Extensions, 3rd ed.; Springer: Berlin/Heidelberg, Germany, 2008. [Google Scholar]
  15. Shojafar, M.; Javanmardi, S.; Abolfazli, S.; Nicola, C. FUGE: A joint meta-heuristic approach to cloud job scheduling algorithm using fuzzy theory and a genetic method. Clust. Comput. 2015, 18, 829–844. [Google Scholar] [CrossRef]
  16. Alizadeh, N.; Kashan, A.H. Enhanced grouping league championship and optics inspired optimization algorithms for scheduling a batch processing machine with job conflicts and non-identical job sizes. Appl. Soft Comput. 2019, 83, 105657. [Google Scholar] [CrossRef]
  17. Amato, F.; Castiglione, A.; Mercorio, F.; Mezzanzanica, M.; Moscato, V.; Picariello, A.; Sperlì, G. Multimedia story creation on social networks. Future Gener. Comput. Syst. 2018, 86, 412–420. [Google Scholar] [CrossRef]
Figure 1. The makespan of the optimal solution.
Figure 1. The makespan of the optimal solution.
Mathematics 08 00258 g001
Figure 2. The obtained makespan by Algorithm 1.
Figure 2. The obtained makespan by Algorithm 1.
Mathematics 08 00258 g002
Figure 3. The obtained makespan by Algorithm 2.
Figure 3. The obtained makespan by Algorithm 2.
Mathematics 08 00258 g003
Figure 4. The obtained makespan by Algorithm 3.
Figure 4. The obtained makespan by Algorithm 3.
Mathematics 08 00258 g004
Table 1. The processing times, sizes and reject penalties for the given 10 job.
Table 1. The processing times, sizes and reject penalties for the given 10 job.
Job J 1 J 2 J 3 J 4 J 5 J 6 J 7 J 8 J 9 J 10
Processing time529201524413272428
Size0.70.40.20.10.50.80.60.30.90.5
Rejection penalty3121781431014187
Table 2. The values for Z j * , j = 1 , 2 , , 10 .
Table 2. The values for Z j * , j = 1 , 2 , , 10 .
Z j * Z 1 Z 2 Z 3 Z 4 Z 5 Z 6 Z 7 Z 8 Z 9 Z 10
Value1000111011
Table 3. The solution results for three heuristic algorithms.
Table 3. The solution results for three heuristic algorithms.
AlgorithmThe Accepted Jobs and Its BatchesThe Rejected JobsOBJ
1 B 1 = ( J 2 , J 10 ) , B 2 = ( J 8 , J 5 , J 3 ) , B 3 = ( J 4 , J 7 ) R = { J 1 , J 6 , J 9 } 95
2 B 1 = ( J 3 , J 4 , J 7 ) , B 2 = ( J 1 ) , B 3 = ( J 6 ) R = { J 2 , J 5 , J 8 , J 9 , J 10 } 94
3 B 1 = ( J 5 , J 8 ) , B 2 = ( J 3 , J 4 , J 7 ) R = { J 1 , J 2 , J 6 , J 9 , J 10 } 90

Share and Cite

MDPI and ACS Style

Jin, M.; Liu, X.; Luo, W. Single-Machine Parallel-Batch Scheduling with Nonidentical Job Sizes and Rejection. Mathematics 2020, 8, 258. https://doi.org/10.3390/math8020258

AMA Style

Jin M, Liu X, Luo W. Single-Machine Parallel-Batch Scheduling with Nonidentical Job Sizes and Rejection. Mathematics. 2020; 8(2):258. https://doi.org/10.3390/math8020258

Chicago/Turabian Style

Jin, Miaomiao, Xiaoxia Liu, and Wenchang Luo. 2020. "Single-Machine Parallel-Batch Scheduling with Nonidentical Job Sizes and Rejection" Mathematics 8, no. 2: 258. https://doi.org/10.3390/math8020258

Note that from the first issue of 2016, this journal uses article numbers instead of page numbers. See further details here.

Article Metrics

Back to TopTop