<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE article  PUBLIC "-//NLM//DTD Journal Publishing DTD v3.0 20080202//EN" "http://dtd.nlm.nih.gov/publishing/3.0/journalpublishing3.dtd"><article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" dtd-version="3.0" xml:lang="en" article-type="research article"><front><journal-meta><journal-id journal-id-type="publisher-id">JAMP</journal-id><journal-title-group><journal-title>Journal of Applied Mathematics and Physics</journal-title></journal-title-group><issn pub-type="epub">2327-4352</issn><publisher><publisher-name>Scientific Research Publishing</publisher-name></publisher></journal-meta><article-meta><article-id pub-id-type="doi">10.4236/jamp.2023.116110</article-id><article-id pub-id-type="publisher-id">JAMP-126009</article-id><article-categories><subj-group subj-group-type="heading"><subject>Articles</subject></subj-group><subj-group subj-group-type="Discipline-v2"><subject>Physics&amp;Mathematics</subject></subj-group></article-categories><title-group><article-title>
 
 
  Two-Agent Makespan Minimization Problem on Parallel Machines
 
</article-title></title-group><contrib-group><contrib contrib-type="author" xlink:type="simple"><name name-style="western"><surname>Siqi</surname><given-names>Zheng</given-names></name><xref ref-type="aff" rid="aff1"><sup>1</sup></xref><xref ref-type="corresp" rid="cor1"><sup>*</sup></xref></contrib><contrib contrib-type="author" xlink:type="simple"><name name-style="western"><surname>Zhaohui</surname><given-names>Liu</given-names></name><xref ref-type="aff" rid="aff1"><sup>1</sup></xref></contrib></contrib-group><aff id="aff1"><addr-line>School of Mathematics, East China University of Science and Technology, Shanghai, China</addr-line></aff><pub-date pub-type="epub"><day>05</day><month>06</month><year>2023</year></pub-date><volume>11</volume><issue>06</issue><fpage>1693</fpage><lpage>1706</lpage><history><date date-type="received"><day>8,</day>	<month>May</month>	<year>2023</year></date><date date-type="rev-recd"><day>27,</day>	<month>June</month>	<year>2023</year>	</date><date date-type="accepted"><day>30,</day>	<month>June</month>	<year>2023</year></date></history><permissions><copyright-statement>&#169; Copyright  2014 by authors and Scientific Research Publishing Inc. </copyright-statement><copyright-year>2014</copyright-year><license><license-p>This work is licensed under the Creative Commons Attribution International License (CC BY). http://creativecommons.org/licenses/by/4.0/</license-p></license></permissions><abstract><p>
 
 
  A two-agent scheduling problem on parallel machines is considered in this paper. Our objective is to minimize the makespan for agent A, subject to an upper bound on the makespan for agent B. In this paper, we provide a new approximation algorithm called CLPT. On the one hand, we compare the performance between the CLPT algorithm and the optimal solution and find that the solution obtained by the CLPT algorithm is very close to the optimal solution. On the other hand, we design different experimental frameworks to compare the CLPT algorithm and the A-LS algorithm for a comprehensive performance evaluation. A large number of numerical simulation results show that the CLPT algorithm outperformed the A-LS algorithm.
 
</p></abstract><kwd-group><kwd>Parallel Machines</kwd><kwd> Makespan</kwd><kwd> Approximation Algorithm</kwd><kwd> Two-Agent</kwd><kwd> Empirical Results</kwd></kwd-group></article-meta></front><body><sec id="s1"><title>1. Introduction</title><p>In recent years, management problems in which multiple agents compete on the usage of a common processing resource are receiving increasing attention in different application environments, such as the scheduling of multiple flights of different airlines on a common set of airport runways, berths and material/ people movers (cranes, walkways, etc.) at a port for multiple ships, of clerical works among different “managers” in an office and of a mechanical/electrical workshop for different uses; and in different methodological fields, such as artificial intelligence, decision theory, and operations research.</p><p>In this paper, we consider an agent scheduling problem. Unlike classic scheduling problems, the jobs in agent scheduling problem belong to two or more owners which we call agents. Each agent owns a set of jobs and the objective. Each agent has its own goal depending on the schedule of its jobs. All the agents share common resource. Zhao et al. [<xref ref-type="bibr" rid="scirp.126009-ref1">1</xref>] provided an algorithm A-LS with per formance ratio 2 − 1 m . In this paper, we study a two-agent scheduling problem. The two agents are called agent A and B, respectively. All the jobs of agent A and agent B need to be scheduled on identical machines. Our objective is to minimize the makespan for agent A while keeping the makespan for agent B under a given value. The given value is indicated as threshold value for agent B. We only consider feasible threshold value in every instance of the problem, i.e., there always exists a schedule such that the makespan for agent B is no more than the threshold value. According to the notation introduced by Graham et al. [<xref ref-type="bibr" rid="scirp.126009-ref2">2</xref>] , the problem is denoted by P | | C max A : C max B ≤ Q .</p><p>Agent scheduling problems were introduced by Baker et al. [<xref ref-type="bibr" rid="scirp.126009-ref3">3</xref>] and Agnetis et al. [<xref ref-type="bibr" rid="scirp.126009-ref4">4</xref>] . The former paper focused on minimizing a linear combination of the agents’ criteria on single machine and presented some complex results. The latter paper mainly focused on two-agent scheduling problems, they summarized the complexity of some constrained optimization problems. Agnetis et al. [<xref ref-type="bibr" rid="scirp.126009-ref5">5</xref>] extended some of those problems into multi-agent version. Balasubramanian et al. [<xref ref-type="bibr" rid="scirp.126009-ref6">6</xref>] first studied the agent scheduling problem on parallel machines. They established an iteration SPT-LPT-SPT heuristic and a bicriteria genetic algorithm for the two-agent scheduling problem which is P | i n t e r | ( C max , ∑ C j ) , where inter means that the jobs of the different sets interfere with one another. Zhao et al. [<xref ref-type="bibr" rid="scirp.126009-ref7">7</xref>] considered two models of two-agent scheduling problem which are P m | | C max A : C max B ≤ Q and P m | | ∑ C j A : C max B ≤ Q , and these two problems had been proved NP-hard. For the problem P m | | C max A : C max B ≤ Q , Zhao et al. [<xref ref-type="bibr" rid="scirp.126009-ref1">1</xref>]</p><p>provided an algorithm A-LS with performance ratio 2 − 1 m . Moreover, when m = 2 , they presented an algorithm A-LPTE with performance ratio 1 + 17 4 ≈ 1.28 . Zhao et al. [<xref ref-type="bibr" rid="scirp.126009-ref8">8</xref>] studied a multi-agent scheduling problem on two identical parallel machines which is P 2 | C O | C max 1 , ⋯ , C max g , where CO denotes the situation where each agent completes to finish its jobs as early as possible. They introduced algorithm MML and proved the performance ratio of algorithm MML is ( 1 + 1 6 ,2 + 1 6 , ⋯ , g + 1 6 ), which was further shown to be tight. Gu et al. [<xref ref-type="bibr" rid="scirp.126009-ref9">9</xref>] extended the problem into m machines: P m | C O | C max 1 , ⋯ , C max g . An algorithm LLS was proposed for the problem. They proved the agent’s completion time is at most i + ( 1 3 − 1 3 m ) times its minimum makespan, where the agent with the i-th smallest α point value is the i-th completed agent.</p><p>The rest of this paper is organized as follows. In section 2 we briefly describe an integer programming (IP) model and propose a new algorithm called CLPT. In section 3 we compare the performance between the CLPT algorithm and the optimal solution first and then compare the performance between the A-LS algorithm and the CLPT algorithm. Finally, in section 4 we conclude the paper and give some fruitful directions for future work.</p></sec><sec id="s2"><title>2. Integer Programming Model and the CLPT Algorithm</title><sec id="s2_1"><title>2.1. Problem Formulation</title><p>Agent A has n A jobs, we denote the job set of agent A by</p><p>J A = { J 1 A , J 2 A , ⋯ , J n A A } . Agent B has n B jobs, we denote the job set of agent B by J B = { J 1 B , J 2 B , ⋯ , J n B B } . Let n = n A + n B . The processing time of J j A is</p><p>p j A , j = 1 , 2 , ⋯ , n A and the processing time of J j B is p j B , j = 1 , 2 , ⋯ , n B . The two agent are competing agents, i.e., J A ∩ J B = ∅ , J = J A ∪ J B . Let C max A ( CLPT ) denote the makespan for agent A obtained by the CLPT algorithm, C max B ( CLPT ) denotes the makespan for agent B obtained by the CLPT algorithm, C max A ( LS ) denotes the makespan for agent A obtained by the A-LS algorithm and C max B ( LS ) denotes the makespan for agent B obtained by the A-LS algorithm. Let π be the optimal schedule. Let C max A ( π ) denote the optimal makespan for agent A and let C max B ( π ) denote the optimal makespan for agent B.</p></sec><sec id="s2_2"><title>2.2. An Integer Programming Model for P | | C m a x A : C m a x B ≤ Q</title><p>In this subsection, we introduce an integer programming (IP) model which can help us obtain the optimal schedule in small-sized instances. Given an arbitrary optimal schedule π ′ , Zhao et al. [<xref ref-type="bibr" rid="scirp.126009-ref7">7</xref>] has shown that if C max A ( π ′ ) ≤ C max B ( π ′ ) , then π ′ can be transformed into a new schedule π such that A-jobs are all scheduled before B-jobs on each machine without increasing the makespan for agent A or changing the makespan for agent B, vice versa. Obviously, is also an optimal schedule. Let π be the optimal schedule considered in the following analysis in this section.</p><p>The IP model can be formulated as follows:</p><p>min     C max A s .t .           ∑ l = 1 m     ∑ i = 1 n     x i j l = 1 ,     j = 1 , ⋯ , n                   ∑ j = 1 n     x i j l ≤ 1 ,     i = 1 , ⋯ , n ,     l = 1 , ⋯ , m                   L l A = ∑ j ∈ A     ∑ i = 1 n     x i j l p j ,     l = 1 , ⋯ , m                   L l B = ∑ j ∈ B     ∑ i = 1 n     x i j l p j ,     l = 1 , ⋯ , m</p><p>L l = ∑ j ∈ A ∪ B     ∑ i = 1 n     x i j l p j ,     l = 1 , ⋯ , m L l = max ( L l max A , L l max B ) ,     l = 1 , ⋯ , m ( L l − L l max A ) ( L l max A − L l A ) = 0 ,     l = 1 , ⋯ , m ( L l − L l max B ) ( L l max B − L l B ) = 0 ,     l = 1 , ⋯ , m (1)</p><p>C max A ≥ L l max A ,     l = 1 , ⋯ , m C max B ≥ L l max B ,     l = 1 , ⋯ , m C max B ≤ Q x i j l ∈ { 0 , 1 } ,     i = 1 , ⋯ , n ,     j ∈ A ∪ B ,     l = 1 , ⋯ , m L l A , L l B , L l , C max A , C max B , L l max A , L l max B ≥ 0</p><p>In the (IP) formulation, L l max A represents the makespan of A jobs on machine l and L l max B represents the makespan of B jobs on machine l. x i j l represents the i-th position of the jobs j on the machine l, thus i = 1 , ⋯ , n , j ∈ A ∪ B , l = 1 , ⋯ , m and the decision variable x i j l = 1 when the job j is placed at the i-th position on the machine l, otherwise x i j l = 0 .</p><p>In the above integer programming model, the first constraint and the second constraint ensure that each job is scheduled exactly once. The third constraint L l A represents the sum of the total processing time of A jobs on machine l. The fourth constraint L l B represents the sum of the total processing time of B jobs on machine l. The fifth constraint L l represents the sum of the total processing time of A ∪ B jobs on machine l. The sixth constraint indicates that the makespan of machine l is the largest between L l max A and L l max B . The seventh constraint and the eighth constraint give the makespan of agent A and agent B on machine l. when L l − L l max A ≠ 0 , there must be L l &gt; L l max A , which means that on the machine l, the agent A is completed before the agent B, in the optimal solution: C max A ( π ) ≤ C max B ( π ) , so the makespan of agent A on machine l is equal to the sum of the total processing time of A jobs on machine l and the makespan of agent B on machine l is equal to the sum of the total processing time of all jobs on machine l which means that L l max A = L l A , L l max B = L l , the seventh constraint and the eighth constraint are established; when L l − L l max B ≠ 0 , there must be L l &gt; L l max B , which means that on the machine l, the agent B is completed before the agent A, in the optimal solution: C max B ( π ) ≤ C max A ( π ) , so the makespan of agent B on machine l is equal to the sum of the total processing time of agent B on machine l and the makespan of agent A on machine l is equal to the sum of the total processing time of all jobs on the machine l, which means that L l max A = L l , L l max B = L l B , the seventh constraint and the eighth constraint also holds. The ninth constraint states that the makespan of agent A is C max A . The tenth constraint states that the makespan of agent B is C max B . The eleventh constraint states that the makespan of the agent B on each machine does not exceed Q, where Q is a critical parameter. It directly affects the feasibility of the problem. If Q is small, then the problem has no feasible solution due to the hard constraint of C max B ≤ Q . Finally, the value of decision variable x i j l and the range of related parameters L l A , L l B , L l , C max A , C max B , L l max A , L l max B are given.</p></sec><sec id="s2_3"><title>2.3. The CLPT Algorithm</title><p>To describe the algorithm formally, we will introduce some notations. The LPT (longest processing time) algorithm assigns a job with maximum processing time to the first available machine. Let C L P T A denote the makespan obtained by applying LPT to agent A and let C L P T B denote the makespan obtained by applying LPT to agent B, X and Y represent either agent A or agent B. To clarify the definition, let’s assume that X represents agent A and Y represents agent B. X i , i = 1 , 2 , ⋯ , n denotes the load of A jobs assigned to the machine i. Y i , i = 1 , 2 , ⋯ , n denotes the load of B jobs assigned to the machine i. p ( I ) = ∑ j ∈ I     p j denotes the totle processing time of any job in subset I. We define two bounds Q A and Q B as follows.</p><p>Q A = max { 3 m − 1 2 m ⋅ 1 m ∑ j ∈ A     p j , C L P T A } , (2)</p><p>Q B = max { 3 m − 1 2 m ⋅ 1 m ∑ j ∈ B     p j , C L P T B , 3 m − 1 2 m Q } . (3)</p><p>Algorithm 1 and algorithm 2 for problem P | | C max A : C max B ≤ Q are described as follows.</p><disp-formula id="scirp.126009-formula2"><graphic  xlink:href="//html.scirp.org/file/13-1723248x84.png?20230629180234522"  xlink:type="simple"/></disp-formula><disp-formula id="scirp.126009-formula3"><graphic  xlink:href="//html.scirp.org/file/13-1723248x85.png?20230629180234522"  xlink:type="simple"/></disp-formula><p>In Algorithm 1 there may be more than one machine each of which has the smallest load. A1 (X, Y) always chooses the one with the minimum index.</p><p>Algorithm 1 takes O ( m n 2 ) times. Therefore, the complexity of the CLPT algorithm is O ( m n 2 ) . In order to demonstrate the feasibility of the CLPT algorithm, we propose the following lemmas.</p><p>Lemma 1. In Algorithm 1, if j ∈ X and p ( X s ) + p j &gt; Q X , then Y i ≠ ∅ for any i with p ( X i ) + p j ≤ Q X .</p><p>Proof. Since p ( X s ∪ Y s ) = min 1 ≤ i ≤ m p ( X i ∪ Y i ) , we have</p><p>p ( X i ∪ Y i ) + p j ≥ p ( X s ∪ Y s ) + p j &gt; Q X .</p><p>Then, Y i ≠ ∅ .&#168;</p><p>Lemma 2. For any j ∈ X , Algorithm 1 can always find X r such that p ( X r ) + p j ≤ Q X .</p><p>Proof. Suppose to the contrary that j ∈ X is the first job that cannot be assigned to any X i in Algorithm 1. Then, after jobs 1,2, ⋯ , j − 1 are assigned, it holds that</p><p>p ( X i ) + p j &gt; Q X ,   i = 1 , 2 , ⋯ , m . (4)</p><p>Denote I = X ∩ { 1 , 2 , ⋯ , j − 1 } = ∪ i = 1 m X i . We have</p><p>p ( I ) + m p j = ∑ i = 1 m     p ( X i ) + m p j &gt; m Q X ≥ 3 m 2 m + 1 p ( X ) ≥ 3 m 2 m + 1 p ( I ) + 3 m 2 m + 1 p j .</p><p>Equivalently, it holds that</p><p>2 p j &gt; p ( I ) m = 1 m ∑ i = 1 m     p ( X i ) ,</p><p>which implies that some X<sub>i</sub>s have at most one job of I, and no X<sub>i</sub>s have three or more jobs. Since Q X ≥ max i ∈ I p i , (4) implies that each X<sub>i</sub> contains at least one job of I. Without loss of generality, we assume that X 1 , X 2 , ⋯ , X u each have one, and X u + 1 , X u + 2 , ⋯ , X m each have two jobs of I. Since job j is not longer than any job of I, the jobs in X 1 , X 2 , ⋯ , X u must be longer than those in X u + 1 , X u + 2 , ⋯ , X m . Otherwise, job j can be assigned to some X<sub>i</sub> among X 1 , X 2 , ⋯ , X u .</p><p>Now consider the situation applying LPT to the job set X. We can schedule the job subset I such that M i processes the job of X<sub>i</sub> for i = 1 , 2 , ⋯ , u , and M u + 1 , M u + 2 , ⋯ , M m each process two jobs of X u + 1 , X u + 2 , ⋯ , X m . Then, job j cannot be finished by time Q X in LPT, a contradiction with Q X ≥ C L P T X .&#168;</p></sec></sec><sec id="s3"><title>3. Numerical Simulation</title><sec id="s3_1"><title>3.1. Compare the Performance between the CLPT Algorithm and the Optimal Solution</title><p>To illustrate the effectiveness of the CLPT algorithm, we randomly generate a small number of problems to compare the performance between the CLPT algorithm and the optimal solution. We define the number of machines m, the total jobs of two agents n, the range of the maximum and minimum processing time of randomly generated jobs Δ and the value of constraint Q, which is an upper bound for the makespan for agent B and we use α to express, if Q = ( a L B , b L B ) , where</p><p>L B = max { p ( B ) m , max ( p j B ) }</p><p>then α = ( a , b ) . Define P r = C max A ( CLPT ) C max A ( π ) . The experimental parameters followed by the average P r &#175; for 100 replications for the integer programming model and the CLPT algorithm. The results are as follows:</p><p>In <xref ref-type="table" rid="table1">Table 1</xref>: the number of machines is set at three levels: 3, 4 and 5, the total jobs of two agents is set at three levels: 5m, 10m and 15m, the constraint of α is set at three levels (1, 1.2), (1.2, 1.5) and (1.5, 1.8) and the variation range of the maximum and minimum value of the randomly generated jobs processing time is set at three levels: (1, 5), (1, 10) and (1, 20).</p><p>It can be seen from the experimental results that when m, n, Δ are fixed, the average value of Pr increases with the increase of α. When m, n, α are fixed, the average value of Pr decreases with the increase of Δ; when m, α, Δ are fixed, the average value of Pr decreases with the increase of n; when n, Δ, α are fixed, the average value of Pr increases with the increase of m. In a word, in each case, the average value of Pr is very close to 1, which suggests that the results obtained by the CLPT algorithm is very close to the optimal solution. The results demonstrate that the CLPT algorithm is an effective algorithm.</p></sec><sec id="s3_2"><title>3.2. Compare the Performance between the CLPT Algorithm and the A-LS Algorithm</title><p>The effectiveness and efficiency of heuristic algorithms in finding minimum makespan schedules was empirically evaluated by solving a large number of</p><table-wrap id="table1" ><label><xref ref-type="table" rid="table1">Table 1</xref></label><caption><title> Result for the average P r &#175; </title></caption><table><tbody><thead><tr><th align="center" valign="middle" >m</th><th align="center" valign="middle" >α</th><th align="center" valign="middle" ></th><th align="center" valign="middle" >(1, 5)</th><th align="center" valign="middle" >(1, 10)</th><th align="center" valign="middle" >(1, 20)</th><th align="center" valign="middle" ></th><th align="center" valign="middle" >(1, 5)</th><th align="center" valign="middle" >(1, 10)</th><th align="center" valign="middle" >(1, 20)</th><th align="center" valign="middle" ></th><th align="center" valign="middle" >(1, 5)</th><th align="center" valign="middle" >(1, 10)</th><th align="center" valign="middle" >(1, 20)</th></tr></thead><tr><td align="center" valign="middle" >3</td><td align="center" valign="middle" >(1, 1.2)</td><td align="center" valign="middle" >5m</td><td align="center" valign="middle" >1.024</td><td align="center" valign="middle" >1.02</td><td align="center" valign="middle" >1.015</td><td align="center" valign="middle" >10m</td><td align="center" valign="middle" >1.012</td><td align="center" valign="middle" >1.007</td><td align="center" valign="middle" >1.006</td><td align="center" valign="middle" >15m</td><td align="center" valign="middle" >1.008</td><td align="center" valign="middle" >1.004</td><td align="center" valign="middle" >1.002</td></tr><tr><td align="center" valign="middle" ></td><td align="center" valign="middle" >(1.2, 1.5)</td><td align="center" valign="middle" ></td><td align="center" valign="middle" >1.021</td><td align="center" valign="middle" >1.034</td><td align="center" valign="middle" >1.020</td><td align="center" valign="middle" ></td><td align="center" valign="middle" >1.009</td><td align="center" valign="middle" >1.007</td><td align="center" valign="middle" >1.006</td><td align="center" valign="middle" ></td><td align="center" valign="middle" >1.009</td><td align="center" valign="middle" >1.005</td><td align="center" valign="middle" >1.002</td></tr><tr><td align="center" valign="middle" ></td><td align="center" valign="middle" >(1.5, 1.8)</td><td align="center" valign="middle" ></td><td align="center" valign="middle" >1.061</td><td align="center" valign="middle" >1.049</td><td align="center" valign="middle" >1.039</td><td align="center" valign="middle" ></td><td align="center" valign="middle" >1.033</td><td align="center" valign="middle" >1.034</td><td align="center" valign="middle" >1.076</td><td align="center" valign="middle" ></td><td align="center" valign="middle" >1.025</td><td align="center" valign="middle" >1.055</td><td align="center" valign="middle" >1.051</td></tr><tr><td align="center" valign="middle" >4</td><td align="center" valign="middle" >(1, 1.2)</td><td align="center" valign="middle" ></td><td align="center" valign="middle" >1.025</td><td align="center" valign="middle" >1.020</td><td align="center" valign="middle" >1.018</td><td align="center" valign="middle" ></td><td align="center" valign="middle" >1.010</td><td align="center" valign="middle" >1.006</td><td align="center" valign="middle" >1.005</td><td align="center" valign="middle" ></td><td align="center" valign="middle" >1.009</td><td align="center" valign="middle" >1.004</td><td align="center" valign="middle" >1.003</td></tr><tr><td align="center" valign="middle" ></td><td align="center" valign="middle" >(1.2, 1.5)</td><td align="center" valign="middle" ></td><td align="center" valign="middle" >1.054</td><td align="center" valign="middle" >1.019</td><td align="center" valign="middle" >1.020</td><td align="center" valign="middle" ></td><td align="center" valign="middle" >1.010</td><td align="center" valign="middle" >1.006</td><td align="center" valign="middle" >1.005</td><td align="center" valign="middle" ></td><td align="center" valign="middle" >1.011</td><td align="center" valign="middle" >1.004</td><td align="center" valign="middle" >1.003</td></tr><tr><td align="center" valign="middle" ></td><td align="center" valign="middle" >(1.5, 1.8)</td><td align="center" valign="middle" ></td><td align="center" valign="middle" >1.076</td><td align="center" valign="middle" >1.075</td><td align="center" valign="middle" >1.070</td><td align="center" valign="middle" ></td><td align="center" valign="middle" >1.185</td><td align="center" valign="middle" >1.072</td><td align="center" valign="middle" >1.069</td><td align="center" valign="middle" ></td><td align="center" valign="middle" >1.095</td><td align="center" valign="middle" >1.040</td><td align="center" valign="middle" >1.050</td></tr><tr><td align="center" valign="middle" >5</td><td align="center" valign="middle" >(1, 1.2)</td><td align="center" valign="middle" ></td><td align="center" valign="middle" >1.024</td><td align="center" valign="middle" >1.020</td><td align="center" valign="middle" >1.022</td><td align="center" valign="middle" ></td><td align="center" valign="middle" >1.014</td><td align="center" valign="middle" >1.010</td><td align="center" valign="middle" >1.005</td><td align="center" valign="middle" ></td><td align="center" valign="middle" >1.008</td><td align="center" valign="middle" >1.006</td><td align="center" valign="middle" >1.003</td></tr><tr><td align="center" valign="middle" ></td><td align="center" valign="middle" >(1.2, 1.5)</td><td align="center" valign="middle" ></td><td align="center" valign="middle" >1.038</td><td align="center" valign="middle" >1.033</td><td align="center" valign="middle" >1.015</td><td align="center" valign="middle" ></td><td align="center" valign="middle" >1.012</td><td align="center" valign="middle" >1.007</td><td align="center" valign="middle" >1.021</td><td align="center" valign="middle" ></td><td align="center" valign="middle" >1.008</td><td align="center" valign="middle" >1.004</td><td align="center" valign="middle" >1.004</td></tr><tr><td align="center" valign="middle" ></td><td align="center" valign="middle" >(1.5, 1.8)</td><td align="center" valign="middle" ></td><td align="center" valign="middle" >1.154</td><td align="center" valign="middle" >1.118</td><td align="center" valign="middle" >1.075</td><td align="center" valign="middle" ></td><td align="center" valign="middle" >1.131</td><td align="center" valign="middle" >1.170</td><td align="center" valign="middle" >1.070</td><td align="center" valign="middle" ></td><td align="center" valign="middle" >1.085</td><td align="center" valign="middle" >1.043</td><td align="center" valign="middle" >1.048</td></tr></tbody></table></table-wrap><p>problems. In this section, we mainly describe the experimental framework used and the computational results.</p><sec id="s3_2_1"><title>3.2.1. A-LS Algorithm</title><p>The LS (list-scheduling) rule is: whenever a machine becomes available, the algorithm iteratively assigns a list of jobs to the least loaded machine. Let we briefly review the A − LS algorithm proposed by Zhao and Lu [<xref ref-type="bibr" rid="scirp.126009-ref1">1</xref>]</p><disp-formula id="scirp.126009-formula4"><graphic  xlink:href="//html.scirp.org/file/13-1723248x126.png?20230629180234522"  xlink:type="simple"/></disp-formula></sec><sec id="s3_2_2"><title>3.2.2. Experimental Framework</title><p>In order to compare the relative performance between the A-LS algorithm and the CLPT algorithm, we design three experimental frameworks. In each experiment, we investigate four variables: the number of machines m, the total jobs of two agents n, the value of constraint Q and the range of the maximum and minimum processing time of randomly generated jobs Δ. In order to investigate the effect of the investigated factors on the performance of the two algorithms, we use the control variable method to design experiments. For each fixed factors, we use Python 3.2 to generate at least 1000 instances randomly to observe the effect of the investigated factors on the results. The analysis of variance was appropriate in this case given equal samples and a large number of replications. Levene’s test was used to validate the assumption of homogeneous variance. Duncan’s post hoc test was used to rank the heuristics.</p><p>We define several parameters to compare the relative performance of the two algorithms. Let ρ 1 = C max A ( CLPT ) C max A ( LS ) where ρ 1 ≤ 1 means that the CLPT algorithm has a better performance than the A-LS algorithm, let ρ 2 = C max B ( CLPT ) C max B ( LS ) where ρ 2 ≤ 1 means that the CLPT algorithm violates fewer constraints than the A-LS algorithm. In order to show the relative performance between the two algorithms more intuitively. For each case, we generate 1000 instances randomly, among which:</p><p>&#183; N1 represents the number of C max A ( CLPT ) &lt; C max A ( LS ) ;</p><p>&#183; N2 represents the number of C max A ( CLPT ) &gt; C max A ( LS ) ;</p><p>&#183; N3 represents the number of C max B ( CLPT ) &lt; C max B ( LS ) ;</p><p>&#183; N4 represents the number of C max B ( CLPT ) &gt; C max B ( LS ) ;</p><p>&#183; N5 represents the number of C max A ( CLPT ) ≤ C max A ( LS ) and C max B ( CLPT ) ≤ C max B ( LS ) ;</p><p>&#183; N6 represent the number of C max A ( CLPT ) ≥ C max A ( LS ) and C max B ( CLPT ) ≥ C max B ( LS ) ;</p><p>The above six parameters can compare the performance of the CLPT algorithm and the A-LS algorithm intuitively. A higher value of N5-N6 indicates that the performance of the CLPT algorithm is better than that of the A-LS algorithm, and a higher value of N6-N5 indicates that the performance of the A-LS algorithm is better than that of the CLPT algorithm.</p><p><xref ref-type="table" rid="table2">Table 2</xref> presents a summary of all three experiments. In experiment E1, the number of machines m = 3, the total number of jobs is set at two levels???5m and 20m, the variation range of the maximum and minimum value of the randomly generated jobs processing time is set at four levels: (1, 2), (1, 5), (1, 10) and (1, 20), and the constraint of α is set at three levels: (1, 1.2), (1.2, 1.5) and (1.5, 1.8). In experiment E2, the number of machines is set at three levels: 3, 5 and 10, the total number of jobs is set at three levels: 5m, 10m and 20m, the Δ is set at two levels: (1, 5) and (1, 10), and the constraint of α is set at two levels: (1, 1.2) and (1.5, 1.8). In experiment E3, the number of machines is set at three levels: 3, 5 and 10, the number of jobs is fixed at n = 10m, the Δ is set at three levels: (1, 5), (1, 10) and (1, 20), and the constraint of α is set at two levels: (1, 1.2) and (1.5, 1.8). Under each parameter in all experiments, we generated 1000 instances randomly and calculated the number from N1 to N6 among these 1000 instances.</p></sec><sec id="s3_2_3"><title>3.2.3. Computational Results</title><p><xref ref-type="table" rid="table3">Table 3</xref> gives the results of experiment E1. <xref ref-type="table" rid="table3">Table 3</xref> shows the case of n = 5m and n = 20m. In case of m = 3, n = 5m: First, observe the effect of Δ on the results of the two algorithms. <xref ref-type="table" rid="table3">Table 3</xref> shows that when Δ = (1, 2), α = (1, 1.8), N5-N6 &#206; [48, 118]; when Δ = (1, 5), α = (1, 1.8), N5-N6 &#206; [417, 429]; when Δ = (1, 10), α = (1, 1.8), N5-N6 &#206; [516, 530]. We can find that when m, n, α are fixed, the performance of the CLPT algorithm better than the A-LS algorithm increased as Δ increased.</p><p>Then, observe the effect of α on the results of the two algorithms. <xref ref-type="table" rid="table3">Table 3</xref> shows that when Δ = (1, 2): α = (1, 1.2), N5-N6 = 118; α = (1.2, 1.5), N5-N6 = 48; α = (1.5, 1.8), N5-N6 = 91; when Δ = (1, 5): α = (1, 1.2), N5-N6 = 420; α = (1.2, 1.5), N5-N6 = 429; α = (1.5, 1.8), N5-N6 = 417; when Δ = (1, 10): α = (1, 1.2), N5-N6 = 530; α = (1.2, 1.5), N5-N6 = 530; α = (1.5, 1.8), N5-N6 = 516; when Δ = (1, 20): α = (1, 1.2), N5-N6 = 584; α = (1.2, 1.5), N5-N6 = 560; α = (1.5, 1.8), N5-N6 = 474. We can find that when m, n, Δ are fixed, the performance of the CLPT algorithm better than the A-LS algorithm decreased as α increased on the whole.</p><table-wrap id="table2" ><label><xref ref-type="table" rid="table2">Table 2</xref></label><caption><title> Summary of the experimental frameworks</title></caption><table><tbody><thead><tr><th align="center" valign="middle" ></th><th align="center" valign="middle" >m</th><th align="center" valign="middle" >n</th><th align="center" valign="middle" >Δ</th><th align="center" valign="middle" >α</th></tr></thead><tr><td align="center" valign="middle" >E1</td><td align="center" valign="middle" >3</td><td align="center" valign="middle" >5m, 20m</td><td align="center" valign="middle" >(1, 2), (1, 5), (1, 10), (1, 20)</td><td align="center" valign="middle" >(1, 1.2), (1.2, 1.5), (1.5, 1.8)</td></tr><tr><td align="center" valign="middle" >E2</td><td align="center" valign="middle" >3, 5, 10</td><td align="center" valign="middle" >5m, 10m, 20m</td><td align="center" valign="middle" >(1, 5), (1, 50)</td><td align="center" valign="middle" >(1, 1.2), (1.5, 1.8)</td></tr><tr><td align="center" valign="middle" >E3</td><td align="center" valign="middle" >3, 5, 10</td><td align="center" valign="middle" >10m</td><td align="center" valign="middle" >(1, 5), (1, 10), (1, 20)</td><td align="center" valign="middle" >(1.1.2), (1.5, 1.8)</td></tr></tbody></table></table-wrap><table-wrap id="table3" ><label><xref ref-type="table" rid="table3">Table 3</xref></label><caption><title> Result for experiment El</title></caption><table><tbody><thead><tr><th align="center" valign="middle"  colspan="3"  >n</th><th align="center" valign="middle"  colspan="6"  >5m</th><th align="center" valign="middle"  colspan="6"  >20m</th></tr></thead><tr><td align="center" valign="middle" >m</td><td align="center" valign="middle" >Δ</td><td align="center" valign="middle" >α</td><td align="center" valign="middle" >N<sub>1</sub></td><td align="center" valign="middle" >N<sub>2</sub></td><td align="center" valign="middle" >N<sub>3</sub></td><td align="center" valign="middle" >N<sub>4</sub></td><td align="center" valign="middle" >N<sub>5</sub></td><td align="center" valign="middle" >N<sub>6</sub></td><td align="center" valign="middle" >N<sub>1</sub></td><td align="center" valign="middle" >N<sub>2</sub></td><td align="center" valign="middle" >N<sub>3</sub></td><td align="center" valign="middle" >N<sub>4</sub></td><td align="center" valign="middle" >N<sub>5</sub></td><td align="center" valign="middle" >N<sub>6</sub></td></tr><tr><td align="center" valign="middle" >3</td><td align="center" valign="middle" >(1, 2)</td><td align="center" valign="middle" >(1, 1.2)</td><td align="center" valign="middle" >138</td><td align="center" valign="middle" >152</td><td align="center" valign="middle" >291</td><td align="center" valign="middle" >142</td><td align="center" valign="middle" >706</td><td align="center" valign="middle" >588</td><td align="center" valign="middle" >142</td><td align="center" valign="middle" >309</td><td align="center" valign="middle" >227</td><td align="center" valign="middle" >393</td><td align="center" valign="middle" >298</td><td align="center" valign="middle" >636</td></tr><tr><td align="center" valign="middle" ></td><td align="center" valign="middle" ></td><td align="center" valign="middle" >(1.2, 1.5)</td><td align="center" valign="middle" >124</td><td align="center" valign="middle" >136</td><td align="center" valign="middle" >250</td><td align="center" valign="middle" >185</td><td align="center" valign="middle" >679</td><td align="center" valign="middle" >631</td><td align="center" valign="middle" >126</td><td align="center" valign="middle" >416</td><td align="center" valign="middle" >269</td><td align="center" valign="middle" >294</td><td align="center" valign="middle" >290</td><td align="center" valign="middle" >606</td></tr><tr><td align="center" valign="middle" ></td><td align="center" valign="middle" ></td><td align="center" valign="middle" >(1.5, 1.8)</td><td align="center" valign="middle" >115</td><td align="center" valign="middle" >128</td><td align="center" valign="middle" >270</td><td align="center" valign="middle" >151</td><td align="center" valign="middle" >721</td><td align="center" valign="middle" >630</td><td align="center" valign="middle" >114</td><td align="center" valign="middle" >446</td><td align="center" valign="middle" >248</td><td align="center" valign="middle" >278</td><td align="center" valign="middle" >276</td><td align="center" valign="middle" >643</td></tr><tr><td align="center" valign="middle" >3</td><td align="center" valign="middle" >(1, 5)</td><td align="center" valign="middle" >(1, 1.2)</td><td align="center" valign="middle" >386</td><td align="center" valign="middle" >139</td><td align="center" valign="middle" >458</td><td align="center" valign="middle" >222</td><td align="center" valign="middle" >639</td><td align="center" valign="middle" >219</td><td align="center" valign="middle" >413</td><td align="center" valign="middle" >292</td><td align="center" valign="middle" >377</td><td align="center" valign="middle" >456</td><td align="center" valign="middle" >252</td><td align="center" valign="middle" >245</td></tr><tr><td align="center" valign="middle" ></td><td align="center" valign="middle" ></td><td align="center" valign="middle" >(1.2, 1.5)</td><td align="center" valign="middle" >377</td><td align="center" valign="middle" >134</td><td align="center" valign="middle" >490</td><td align="center" valign="middle" >218</td><td align="center" valign="middle" >649</td><td align="center" valign="middle" >220</td><td align="center" valign="middle" >341</td><td align="center" valign="middle" >402</td><td align="center" valign="middle" >441</td><td align="center" valign="middle" >347</td><td align="center" valign="middle" >251</td><td align="center" valign="middle" >254</td></tr><tr><td align="center" valign="middle" ></td><td align="center" valign="middle" ></td><td align="center" valign="middle" >(1.5, 1.8)</td><td align="center" valign="middle" >278</td><td align="center" valign="middle" >196</td><td align="center" valign="middle" >558</td><td align="center" valign="middle" >174</td><td align="center" valign="middle" >632</td><td align="center" valign="middle" >215</td><td align="center" valign="middle" >297</td><td align="center" valign="middle" >454</td><td align="center" valign="middle" >497</td><td align="center" valign="middle" >327</td><td align="center" valign="middle" >219</td><td align="center" valign="middle" >231</td></tr><tr><td align="center" valign="middle" >3</td><td align="center" valign="middle" >(1, 10)</td><td align="center" valign="middle" >(1, 1.2)</td><td align="center" valign="middle" >498</td><td align="center" valign="middle" >129</td><td align="center" valign="middle" >523</td><td align="center" valign="middle" >237</td><td align="center" valign="middle" >636</td><td align="center" valign="middle" >106</td><td align="center" valign="middle" >526</td><td align="center" valign="middle" >347</td><td align="center" valign="middle" >477</td><td align="center" valign="middle" >433</td><td align="center" valign="middle" >220</td><td align="center" valign="middle" >59</td></tr><tr><td align="center" valign="middle" ></td><td align="center" valign="middle" ></td><td align="center" valign="middle" >(1.2, 1.5)</td><td align="center" valign="middle" >442</td><td align="center" valign="middle" >158</td><td align="center" valign="middle" >599</td><td align="center" valign="middle" >224</td><td align="center" valign="middle" >619</td><td align="center" valign="middle" >89</td><td align="center" valign="middle" >470</td><td align="center" valign="middle" >412</td><td align="center" valign="middle" >534</td><td align="center" valign="middle" >374</td><td align="center" valign="middle" >214</td><td align="center" valign="middle" >70</td></tr><tr><td align="center" valign="middle" ></td><td align="center" valign="middle" ></td><td align="center" valign="middle" >(1.5, 1.8)</td><td align="center" valign="middle" >358</td><td align="center" valign="middle" >210</td><td align="center" valign="middle" >666</td><td align="center" valign="middle" >187</td><td align="center" valign="middle" >606</td><td align="center" valign="middle" >90</td><td align="center" valign="middle" >358</td><td align="center" valign="middle" >527</td><td align="center" valign="middle" >623</td><td align="center" valign="middle" >298</td><td align="center" valign="middle" >175</td><td align="center" valign="middle" >75</td></tr><tr><td align="center" valign="middle" >3</td><td align="center" valign="middle" >(1, 20)</td><td align="center" valign="middle" >(1, 1.2)</td><td align="center" valign="middle" >535</td><td align="center" valign="middle" >133</td><td align="center" valign="middle" >574</td><td align="center" valign="middle" >237</td><td align="center" valign="middle" >634</td><td align="center" valign="middle" >50</td><td align="center" valign="middle" >548</td><td align="center" valign="middle" >332</td><td align="center" valign="middle" >516</td><td align="center" valign="middle" >423</td><td align="center" valign="middle" >245</td><td align="center" valign="middle" >27</td></tr><tr><td align="center" valign="middle" ></td><td align="center" valign="middle" ></td><td align="center" valign="middle" >(1.2, 1.5)</td><td align="center" valign="middle" >477</td><td align="center" valign="middle" >145</td><td align="center" valign="middle" >621</td><td align="center" valign="middle" >238</td><td align="center" valign="middle" >622</td><td align="center" valign="middle" >62</td><td align="center" valign="middle" >496</td><td align="center" valign="middle" >415</td><td align="center" valign="middle" >570</td><td align="center" valign="middle" >373</td><td align="center" valign="middle" >213</td><td align="center" valign="middle" >20</td></tr><tr><td align="center" valign="middle" ></td><td align="center" valign="middle" ></td><td align="center" valign="middle" >(1.5, 1.8)</td><td align="center" valign="middle" >400</td><td align="center" valign="middle" >233</td><td align="center" valign="middle" >671</td><td align="center" valign="middle" >233</td><td align="center" valign="middle" >542</td><td align="center" valign="middle" >68</td><td align="center" valign="middle" >398</td><td align="center" valign="middle" >507</td><td align="center" valign="middle" >669</td><td align="center" valign="middle" >288</td><td align="center" valign="middle" >206</td><td align="center" valign="middle" >19</td></tr></tbody></table></table-wrap><p>In case of m = 3, n = 20m: First observe the influence of Δ on the results of the two algorithms. When Δ = (1, 2), α = (1, 1.8), N6-N5 &#206; [316, 367], which indicates that the A-LS algorithm outperformed the CLPT algorithm, and this advantage is very obvious. when Δ = (1, 5), α = (1, 1.8), N5-N6 &#206; [3, 12]; when Δ = (1, 10), α = (1, 1.8), N5-N6 &#206; [100, 161]; when Δ = (1, 20), α = (1, 1.8), N5-N6 &#206; [187, 218]. We can find that when m, n, α are fixed, the performance of the CLPT algorithm better than the A-LS algorithm increased as Δ increased, which is consistent with the results presented when m = 3, n = 5m. Then, we observe the effect of α. We can find that when m, n, Δ are fixed, the performance of the CLPT algorithm better than the A-LS algorithm decreased as α increased on the whole. which is also consistent with the results presented when m = 3, n = 5m.</p><p><xref ref-type="table" rid="table4">Table 4</xref> shows the results of experiment E2. <xref ref-type="table" rid="table4">Table 4</xref> mainly observes the effect of the number of machines m and the number of jobs n on the experimental results. Since α and Δ have a great effect on the two algorithms, in order to avoid subjectivity, we set α at two levels: (1, 1.2) and (1.5, 1.8) and set Δ at two levels: (1, 5) and (1, 50).</p><p>In case of Δ = (1, 5), α = ( 1,1.2 ) ∪ ( 1.5,1.8 ) : when m = 3, n = 5m, N5-N6 &#206; [380, 401]; when m = 3, n = 10m, N5-N6 &#206; [146, 220]; when m = 3, n = 20m, N5-N6 &#206; [−18, 32]. This indicates that when m, α, Δ are fixed, the performance of the CLPT algorithm better than the A-LS algorithm decreased as n increased. In particular, when m = 3, n = 20m, α = (1.5, 1.8), the performance of the A-LS algorithm is better than the CLPT algorithm. When m = 5, n = 5m, N5-N6 &#206; [477, 500]; when m = 5, n = 10m, N5-N6 &#206; [227, 284]; when m = 5, n = 20m, N5-N6 &#206; [66, 94]. This indicates that when m, α, Δ are fixed, the performance of the CLPT algorithm better than the A-LS algorithm decreased as n increased,</p><table-wrap id="table4" ><label><xref ref-type="table" rid="table4">Table 4</xref></label><caption><title> Result for experiment E2</title></caption><table><tbody><thead><tr><th align="center" valign="middle"  colspan="3"  >Δ</th><th align="center" valign="middle"  colspan="6"  >(1, 5)</th><th align="center" valign="middle"  colspan="6"  >(1, 50)</th></tr></thead><tr><td align="center" valign="middle" >m</td><td align="center" valign="middle" >n</td><td align="center" valign="middle" >α</td><td align="center" valign="middle" >N<sub>1</sub></td><td align="center" valign="middle" >N<sub>2</sub></td><td align="center" valign="middle" >N<sub>3</sub></td><td align="center" valign="middle" >N<sub>4</sub></td><td align="center" valign="middle" >N<sub>5</sub></td><td align="center" valign="middle" >N<sub>6</sub></td><td align="center" valign="middle" >N<sub>1</sub></td><td align="center" valign="middle" >N<sub>2</sub></td><td align="center" valign="middle" >N<sub>3</sub></td><td align="center" valign="middle" >N<sub>4</sub></td><td align="center" valign="middle" >N<sub>5</sub></td><td align="center" valign="middle" >N<sub>6</sub></td></tr><tr><td align="center" valign="middle" >3</td><td align="center" valign="middle" >5m</td><td align="center" valign="middle" >(1, 1.2)</td><td align="center" valign="middle" >431</td><td align="center" valign="middle" >134</td><td align="center" valign="middle" >416</td><td align="center" valign="middle" >233</td><td align="center" valign="middle" >634</td><td align="center" valign="middle" >233</td><td align="center" valign="middle" >574</td><td align="center" valign="middle" >142</td><td align="center" valign="middle" >594</td><td align="center" valign="middle" >277</td><td align="center" valign="middle" >587</td><td align="center" valign="middle" >29</td></tr><tr><td align="center" valign="middle" ></td><td align="center" valign="middle" ></td><td align="center" valign="middle" >(1.5, 1.8)</td><td align="center" valign="middle" >301</td><td align="center" valign="middle" >192</td><td align="center" valign="middle" >557</td><td align="center" valign="middle" >216</td><td align="center" valign="middle" >593</td><td align="center" valign="middle" >213</td><td align="center" valign="middle" >429</td><td align="center" valign="middle" >242</td><td align="center" valign="middle" >669</td><td align="center" valign="middle" >230</td><td align="center" valign="middle" >540</td><td align="center" valign="middle" >43</td></tr><tr><td align="center" valign="middle" ></td><td align="center" valign="middle" >10m</td><td align="center" valign="middle" >(1, 1.2)</td><td align="center" valign="middle" >411</td><td align="center" valign="middle" >229</td><td align="center" valign="middle" >443</td><td align="center" valign="middle" >346</td><td align="center" valign="middle" >425</td><td align="center" valign="middle" >205</td><td align="center" valign="middle" >611</td><td align="center" valign="middle" >227</td><td align="center" valign="middle" >545</td><td align="center" valign="middle" >381</td><td align="center" valign="middle" >396</td><td align="center" valign="middle" >16</td></tr><tr><td align="center" valign="middle" ></td><td align="center" valign="middle" ></td><td align="center" valign="middle" >(1.5, 1.8)</td><td align="center" valign="middle" >306</td><td align="center" valign="middle" >385</td><td align="center" valign="middle" >522</td><td align="center" valign="middle" >241</td><td align="center" valign="middle" >374</td><td align="center" valign="middle" >228</td><td align="center" valign="middle" >439</td><td align="center" valign="middle" >398</td><td align="center" valign="middle" >671</td><td align="center" valign="middle" >287</td><td align="center" valign="middle" >320</td><td align="center" valign="middle" >18</td></tr><tr><td align="center" valign="middle" ></td><td align="center" valign="middle" >20m</td><td align="center" valign="middle" >(1, 1.2)</td><td align="center" valign="middle" >420</td><td align="center" valign="middle" >320</td><td align="center" valign="middle" >400</td><td align="center" valign="middle" >420</td><td align="center" valign="middle" >261</td><td align="center" valign="middle" >229</td><td align="center" valign="middle" >608</td><td align="center" valign="middle" >315</td><td align="center" valign="middle" >492</td><td align="center" valign="middle" >467</td><td align="center" valign="middle" >219</td><td align="center" valign="middle" >6</td></tr><tr><td align="center" valign="middle" ></td><td align="center" valign="middle" ></td><td align="center" valign="middle" >(1.5, 1.8)</td><td align="center" valign="middle" >289</td><td align="center" valign="middle" >500</td><td align="center" valign="middle" >526</td><td align="center" valign="middle" >305</td><td align="center" valign="middle" >195</td><td align="center" valign="middle" >213</td><td align="center" valign="middle" >418</td><td align="center" valign="middle" >512</td><td align="center" valign="middle" >661</td><td align="center" valign="middle" >322</td><td align="center" valign="middle" >167</td><td align="center" valign="middle" >7</td></tr><tr><td align="center" valign="middle" >5</td><td align="center" valign="middle" >5m</td><td align="center" valign="middle" >(1, 1.2)</td><td align="center" valign="middle" >494</td><td align="center" valign="middle" >130</td><td align="center" valign="middle" >488</td><td align="center" valign="middle" >272</td><td align="center" valign="middle" >599</td><td align="center" valign="middle" >99</td><td align="center" valign="middle" >574</td><td align="center" valign="middle" >136</td><td align="center" valign="middle" >562</td><td align="center" valign="middle" >322</td><td align="center" valign="middle" >548</td><td align="center" valign="middle" >8</td></tr><tr><td align="center" valign="middle" ></td><td align="center" valign="middle" ></td><td align="center" valign="middle" >(1.5, 1.8)</td><td align="center" valign="middle" >291</td><td align="center" valign="middle" >270</td><td align="center" valign="middle" >719</td><td align="center" valign="middle" >162</td><td align="center" valign="middle" >568</td><td align="center" valign="middle" >91</td><td align="center" valign="middle" >411</td><td align="center" valign="middle" >298</td><td align="center" valign="middle" >726</td><td align="center" valign="middle" >214</td><td align="center" valign="middle" >492</td><td align="center" valign="middle" >8</td></tr><tr><td align="center" valign="middle" ></td><td align="center" valign="middle" >10m</td><td align="center" valign="middle" >(1, 1.2)</td><td align="center" valign="middle" >506</td><td align="center" valign="middle" >269</td><td align="center" valign="middle" >488</td><td align="center" valign="middle" >375</td><td align="center" valign="middle" >356</td><td align="center" valign="middle" >72</td><td align="center" valign="middle" >588</td><td align="center" valign="middle" >270</td><td align="center" valign="middle" >532</td><td align="center" valign="middle" >421</td><td align="center" valign="middle" >309</td><td align="center" valign="middle" >0</td></tr><tr><td align="center" valign="middle" ></td><td align="center" valign="middle" ></td><td align="center" valign="middle" >(1.5, 1.8)</td><td align="center" valign="middle" >325</td><td align="center" valign="middle" >413</td><td align="center" valign="middle" >623</td><td align="center" valign="middle" >265</td><td align="center" valign="middle" >322</td><td align="center" valign="middle" >95</td><td align="center" valign="middle" >414</td><td align="center" valign="middle" >443</td><td align="center" valign="middle" >677</td><td align="center" valign="middle" >292</td><td align="center" valign="middle" >266</td><td align="center" valign="middle" >2</td></tr><tr><td align="center" valign="middle" ></td><td align="center" valign="middle" >20m</td><td align="center" valign="middle" >(1, 1.2)</td><td align="center" valign="middle" >487</td><td align="center" valign="middle" >362</td><td align="center" valign="middle" >458</td><td align="center" valign="middle" >452</td><td align="center" valign="middle" >186</td><td align="center" valign="middle" >92</td><td align="center" valign="middle" >542</td><td align="center" valign="middle" >399</td><td align="center" valign="middle" >521</td><td align="center" valign="middle" >448</td><td align="center" valign="middle" >153</td><td align="center" valign="middle" >0</td></tr><tr><td align="center" valign="middle" ></td><td align="center" valign="middle" ></td><td align="center" valign="middle" >(1.5, 1.8)</td><td align="center" valign="middle" >322</td><td align="center" valign="middle" >552</td><td align="center" valign="middle" >626</td><td align="center" valign="middle" >304</td><td align="center" valign="middle" >144</td><td align="center" valign="middle" >78</td><td align="center" valign="middle" >369</td><td align="center" valign="middle" >567</td><td align="center" valign="middle" >683</td><td align="center" valign="middle" >298</td><td align="center" valign="middle" >135</td><td align="center" valign="middle" >0</td></tr><tr><td align="center" valign="middle" >10</td><td align="center" valign="middle" >5m</td><td align="center" valign="middle" >(1, 1.2)</td><td align="center" valign="middle" >540</td><td align="center" valign="middle" >139</td><td align="center" valign="middle" >538</td><td align="center" valign="middle" >325</td><td align="center" valign="middle" >536</td><td align="center" valign="middle" >16</td><td align="center" valign="middle" >638</td><td align="center" valign="middle" >112</td><td align="center" valign="middle" >508</td><td align="center" valign="middle" >391</td><td align="center" valign="middle" >497</td><td align="center" valign="middle" >0</td></tr><tr><td align="center" valign="middle" ></td><td align="center" valign="middle" ></td><td align="center" valign="middle" >(1.5, 1.8)</td><td align="center" valign="middle" >316</td><td align="center" valign="middle" >264</td><td align="center" valign="middle" >792</td><td align="center" valign="middle" >144</td><td align="center" valign="middle" >592</td><td align="center" valign="middle" >18</td><td align="center" valign="middle" >404</td><td align="center" valign="middle" >324</td><td align="center" valign="middle" >778</td><td align="center" valign="middle" >160</td><td align="center" valign="middle" >516</td><td align="center" valign="middle" >0</td></tr><tr><td align="center" valign="middle" ></td><td align="center" valign="middle" >10m</td><td align="center" valign="middle" >(1, 1.2)</td><td align="center" valign="middle" >528</td><td align="center" valign="middle" >287</td><td align="center" valign="middle" >519</td><td align="center" valign="middle" >408</td><td align="center" valign="middle" >305</td><td align="center" valign="middle" >16</td><td align="center" valign="middle" >581</td><td align="center" valign="middle" >271</td><td align="center" valign="middle" >523</td><td align="center" valign="middle" >431</td><td align="center" valign="middle" >298</td><td align="center" valign="middle" >0</td></tr><tr><td align="center" valign="middle" ></td><td align="center" valign="middle" ></td><td align="center" valign="middle" >(1.5, 1.8)</td><td align="center" valign="middle" >373</td><td align="center" valign="middle" >428</td><td align="center" valign="middle" >675</td><td align="center" valign="middle" >285</td><td align="center" valign="middle" >287</td><td align="center" valign="middle" >9</td><td align="center" valign="middle" >435</td><td align="center" valign="middle" >432</td><td align="center" valign="middle" >644</td><td align="center" valign="middle" >319</td><td align="center" valign="middle" >249</td><td align="center" valign="middle" >0</td></tr><tr><td align="center" valign="middle" ></td><td align="center" valign="middle" >20m</td><td align="center" valign="middle" >(1, 1.2)</td><td align="center" valign="middle" >530</td><td align="center" valign="middle" >373</td><td align="center" valign="middle" >491</td><td align="center" valign="middle" >470</td><td align="center" valign="middle" >157</td><td align="center" valign="middle" >15</td><td align="center" valign="middle" >553</td><td align="center" valign="middle" >377</td><td align="center" valign="middle" >502</td><td align="center" valign="middle" >465</td><td align="center" valign="middle" >158</td><td align="center" valign="middle" >0</td></tr><tr><td align="center" valign="middle" ></td><td align="center" valign="middle" ></td><td align="center" valign="middle" >(1.5, 1.8)</td><td align="center" valign="middle" >335</td><td align="center" valign="middle" >568</td><td align="center" valign="middle" >688</td><td align="center" valign="middle" >280</td><td align="center" valign="middle" >152</td><td align="center" valign="middle" >12</td><td align="center" valign="middle" >373</td><td align="center" valign="middle" >560</td><td align="center" valign="middle" >665</td><td align="center" valign="middle" >327</td><td align="center" valign="middle" >113</td><td align="center" valign="middle" >0</td></tr></tbody></table></table-wrap><p>which is consistent with the results presented when m = 3, n = 5m. When m = 10, n = 10m, the above results still holds. And we can also find that when n, Δ, α are fixed, the performance of the CLPT algorithm better than the A-LS algorithm increased as m increased on the whole.</p><p>In case of Δ = (1, 50), α = ( 1,1.2 ) ∪ ( 1.5,1.8 ) : when m = 3, n = 5m, N5-N6 &#206; [497, 558]; when m = 3, n = 10m, N5-N6 &#206; [302, 380]; when m = 3, n = 20m, N5-N6 &#206; [160, 213]. This indicates that This indicates that when m, α, Δ are fixed, the performance of the CLPT algorithm better than the A-LS algorithm decreased as n increased, which is consistent with the results presented when Δ = (1, 5), α = ( 1,1.2 ) ∪ ( 1.5,1.8 ) . When m = 5 and m = 10, the above results still holds. By comparing Δ = (1, 5) and Δ = (1, 50), it can be found that when Δ increases from (1, 5) to (1, 50), the value of N5-N6 also increases gradually, which is consistent with the results presented in <xref ref-type="table" rid="table3">Table 3</xref>. Moreover, when Δ = (1, 50), the number of machines m ≥ 5 and the number of jobs is greater than 20m, N6 is always equal to 0, which clearly indicates that the performance of the CLPT algorithm outperformed the A-LS algorithm in this case.</p><p><xref ref-type="table" rid="table5">Table 5</xref> shows the results of experiment E3. <xref ref-type="table" rid="table5">Table 5</xref> mainly observes the effect</p><table-wrap id="table5" ><label><xref ref-type="table" rid="table5">Table 5</xref></label><caption><title> Result for experiment E3</title></caption><table><tbody><thead><tr><th align="center" valign="middle"  colspan="2"  >α</th><th align="center" valign="middle"  colspan="7"  >(1, 1.2)</th><th align="center" valign="middle"  colspan="6"  >(1.5, 1.8)</th></tr></thead><tr><td align="center" valign="middle" >m</td><td align="center" valign="middle" >n</td><td align="center" valign="middle" >Δ</td><td align="center" valign="middle" >N<sub>1</sub></td><td align="center" valign="middle" >N<sub>2</sub></td><td align="center" valign="middle" >N<sub>3</sub></td><td align="center" valign="middle" >N<sub>4</sub></td><td align="center" valign="middle" >N<sub>5</sub></td><td align="center" valign="middle" >N<sub>6</sub></td><td align="center" valign="middle" >N<sub>1</sub></td><td align="center" valign="middle" >N<sub>2</sub></td><td align="center" valign="middle" >N<sub>3</sub></td><td align="center" valign="middle" >N<sub>4</sub></td><td align="center" valign="middle" >N<sub>5</sub></td><td align="center" valign="middle" >N<sub>6</sub></td></tr><tr><td align="center" valign="middle" >3</td><td align="center" valign="middle" >10m</td><td align="center" valign="middle" >(1, 5)</td><td align="center" valign="middle" >440</td><td align="center" valign="middle" >210</td><td align="center" valign="middle" >401</td><td align="center" valign="middle" >348</td><td align="center" valign="middle" >443</td><td align="center" valign="middle" >226</td><td align="center" valign="middle" >324</td><td align="center" valign="middle" >350</td><td align="center" valign="middle" >521</td><td align="center" valign="middle" >270</td><td align="center" valign="middle" >380</td><td align="center" valign="middle" >213</td></tr><tr><td align="center" valign="middle" ></td><td align="center" valign="middle" ></td><td align="center" valign="middle" >(1, 10)</td><td align="center" valign="middle" >537</td><td align="center" valign="middle" >224</td><td align="center" valign="middle" >505</td><td align="center" valign="middle" >361</td><td align="center" valign="middle" >416</td><td align="center" valign="middle" >63</td><td align="center" valign="middle" >378</td><td align="center" valign="middle" >382</td><td align="center" valign="middle" >636</td><td align="center" valign="middle" >253</td><td align="center" valign="middle" >366</td><td align="center" valign="middle" >79</td></tr><tr><td align="center" valign="middle" ></td><td align="center" valign="middle" ></td><td align="center" valign="middle" >(1, 20)</td><td align="center" valign="middle" >581</td><td align="center" valign="middle" >229</td><td align="center" valign="middle" >531</td><td align="center" valign="middle" >363</td><td align="center" valign="middle" >408</td><td align="center" valign="middle" >28</td><td align="center" valign="middle" >396</td><td align="center" valign="middle" >404</td><td align="center" valign="middle" >679</td><td align="center" valign="middle" >267</td><td align="center" valign="middle" >331</td><td align="center" valign="middle" >29</td></tr><tr><td align="center" valign="middle" >5</td><td align="center" valign="middle" >10m</td><td align="center" valign="middle" >(1, 5)</td><td align="center" valign="middle" >456</td><td align="center" valign="middle" >267</td><td align="center" valign="middle" >510</td><td align="center" valign="middle" >367</td><td align="center" valign="middle" >366</td><td align="center" valign="middle" >96</td><td align="center" valign="middle" >316</td><td align="center" valign="middle" >434</td><td align="center" valign="middle" >626</td><td align="center" valign="middle" >263</td><td align="center" valign="middle" >303</td><td align="center" valign="middle" >109</td></tr><tr><td align="center" valign="middle" ></td><td align="center" valign="middle" ></td><td align="center" valign="middle" >(1, 10)</td><td align="center" valign="middle" >561</td><td align="center" valign="middle" >245</td><td align="center" valign="middle" >511</td><td align="center" valign="middle" >403</td><td align="center" valign="middle" >352</td><td align="center" valign="middle" >15</td><td align="center" valign="middle" >387</td><td align="center" valign="middle" >424</td><td align="center" valign="middle" >679</td><td align="center" valign="middle" >268</td><td align="center" valign="middle" >308</td><td align="center" valign="middle" >20</td></tr><tr><td align="center" valign="middle" ></td><td align="center" valign="middle" ></td><td align="center" valign="middle" >(1, 20)</td><td align="center" valign="middle" >555</td><td align="center" valign="middle" >267</td><td align="center" valign="middle" >575</td><td align="center" valign="middle" >360</td><td align="center" valign="middle" >373</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >427</td><td align="center" valign="middle" >424</td><td align="center" valign="middle" >650</td><td align="center" valign="middle" >313</td><td align="center" valign="middle" >263</td><td align="center" valign="middle" >1</td></tr><tr><td align="center" valign="middle" >10</td><td align="center" valign="middle" >10m</td><td align="center" valign="middle" >(1, 5)</td><td align="center" valign="middle" >516</td><td align="center" valign="middle" >278</td><td align="center" valign="middle" >514</td><td align="center" valign="middle" >398</td><td align="center" valign="middle" >324</td><td align="center" valign="middle" >18</td><td align="center" valign="middle" >367</td><td align="center" valign="middle" >455</td><td align="center" valign="middle" >671</td><td align="center" valign="middle" >287</td><td align="center" valign="middle" >258</td><td align="center" valign="middle" >16</td></tr><tr><td align="center" valign="middle" ></td><td align="center" valign="middle" ></td><td align="center" valign="middle" >(1, 10)</td><td align="center" valign="middle" >535</td><td align="center" valign="middle" >291</td><td align="center" valign="middle" >543</td><td align="center" valign="middle" >409</td><td align="center" valign="middle" >300</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >422</td><td align="center" valign="middle" >429</td><td align="center" valign="middle" >642</td><td align="center" valign="middle" >319</td><td align="center" valign="middle" >252</td><td align="center" valign="middle" >1</td></tr><tr><td align="center" valign="middle" ></td><td align="center" valign="middle" ></td><td align="center" valign="middle" >(1, 20)</td><td align="center" valign="middle" >570</td><td align="center" valign="middle" >282</td><td align="center" valign="middle" >503</td><td align="center" valign="middle" >443</td><td align="center" valign="middle" >275</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >395</td><td align="center" valign="middle" >460</td><td align="center" valign="middle" >672</td><td align="center" valign="middle" >294</td><td align="center" valign="middle" >246</td><td align="center" valign="middle" >0</td></tr></tbody></table></table-wrap><p>of Δ on the experimental results. Because α has a significant effect on the experimental results, to avoid subjectivity, we set α = (1, 1.2) and α = (1.5, 1.8).</p><p>In case of α = (1, 1.2), n = 10m. When m = 3: Δ = (1, 5), N5-N6 = 217; Δ = (1, 10), N5-N6 = 253; Δ = (1, 20), N5-N6 = 380. When m = 5: Δ = (1, 5), N5-N6 = 270; Δ = (1, 10), N5-N6 = 337; Δ = (1, 20), N5-N6 = 373. When m = 10: Δ = (1, 5), N5-N6 = 306; Δ = (1, 10), N5-N6 = 300; Δ = (1, 20), N5-N6 = 275. We can find that when m, n, α are fixed, the range of N5-N6 increased as Δ increased on the whole and when n, Δ, α are fixed, the range of N5-N6 increased as m increased on the whole, which are consistent with the results presented in <xref ref-type="table" rid="table3">Table 3</xref> and <xref ref-type="table" rid="table4">Table 4</xref>.</p><p>In case of α = (1.5, 1.8), n = 10m. When m = 3: Δ = (1, 5), N5-N6 = 167; Δ = (1, 10), N5-N6 = 287; Δ = (1, 20), N5-N6 = 302. When m = 5: Δ = (1, 5), N5-N6 = 194; Δ = (1, 10), N5-N6 = 288; Δ = (1, 20), N5-N6 = 262. When m = 10: Δ = (1, 5), N5-N6 = 242; Δ = (1, 10), N5-N6 = 251; Δ = (1, 20), N5-N6 = 246. We can find that the number of machines and Δ have the same effect on the experimental results of the two algorithms as the case of α = (1, 1.2), n = 10m. By comparing α = (1, 1.2) and α = (1.5, 1.8), we can study the effects of constraint α on the experimental results. It is found that the result of α = (1, 1.2) is better than that of α = (1.5, 1.8), which is also consistent with the results presented in <xref ref-type="table" rid="table3">Table 3</xref> and <xref ref-type="table" rid="table4">Table 4</xref>.</p></sec><sec id="s3_2_4"><title>3.2.4. Summary of Results</title><p>As expected, in most case, N1 ≥ N2, N3 ≥ N4, N5 ≥ N6, Which shows that the CLPT algorithm outperformed the A-LS algorithm. The data results show that among the four parameters: the number of machines m, the total job of two agents n, the constraint α and the Δ, the α and the Δ have significant effects on the results of the experiment. We can find that when m, n, α are fixed, the range of N5-N6 increased as the range of Δ increased on the whole and when n, Δ, α are fixed, the range of N5-N6 decreased as α increased on the whole.</p></sec></sec></sec><sec id="s4"><title>4. Conclusions and Suggestions</title><p>This paper presents a new heuristic algorithm CLPT for the problem P | | C max A : C max B ≤ Q . Firstly, in order to study the relative performance between the CLPT algorithm and the optimal solution, we design the integer programming model to obtain the optimal solutions in small scale cases. The experimental results show that the result obtained by the CLPT algorithm is very close to the optimal solution. Then, we design three experimental frameworks to compare the relative performance between the A-LS algorithm and the CLPT algorithm. The experimental results show that the CLPT algorithm outperformed the A-LS algorithm.</p><p>Several issues are worthy of future investigations. Firstly, it can be seen from the experimental results of the CLPT algorithm that the makespan of agent A</p><p>obtained by the CLPT algorithm is no more than 3 m − 1 2 m times the optimal value, while the makespan for agent B is no more than 3 m − 1 2 m times the threshold value. This provides a research direction: to prove that the performance ratio of the CLPT algorithm for this problem is ( 3 m − 1 2 m , 3 m − 1 2 m ) , which is a</p><p>better performance ratio than the one currently exists. Secondly, we can extend the two-agent scheduling problem to the model of multi-agent scheduling problem. Finally, we can also consider changing the objective function of each agent, such as changing the maximum completion time to the sum of completion time, the sum of weighted completion time and a linear combination of two agents.</p></sec><sec id="s5"><title>Conflicts of Interest</title><p>The authors declare no conflicts of interest regarding the publication of this paper.</p></sec><sec id="s6"><title>Cite this paper</title><p>Zheng, S.Q. and Liu, Z.H. (2023) Two-Agent Makespan Mi- nimization Problem on Parallel Machines. Journal of Applied Mathematics and Physics, 11, 1693-1706. https://doi.org/10.4236/jamp.2023.116110</p></sec></body><back><ref-list><title>References</title><ref id="scirp.126009-ref1"><label>1</label><mixed-citation publication-type="other" xlink:type="simple">Zhao, K.J. and Lu, X.W. (2016) Two Approximation Algorithms for Two-Agent Scheduling on Parallel Machines to Minimize Makespan. Journal of Combinatorial Optimization, 31, 260-278. https://doi.org/10.1007/s10878-014-9744-y</mixed-citation></ref><ref id="scirp.126009-ref2"><label>2</label><mixed-citation publication-type="other" xlink:type="simple">Graham, R.L., Lawler, E.L., Lenstra, J.K. and Rinnooy Kan, A.H.G (1979) Optimization and Approximation in Deterministic Sequencing and Scheduling: A Survey. Annals of Discrete Mathematics, 5, 287-326. https://doi.org/10.1016/S0167-5060(08)70356-X</mixed-citation></ref><ref id="scirp.126009-ref3"><label>3</label><mixed-citation publication-type="other" xlink:type="simple">Baker, K.R. and Smith, J.C. (2003) A Multiple-Criterion Model for Machine Scheduling. Journal of Scheduling, 6, 7-16. https://doi.org/10.1023/A:1022231419049</mixed-citation></ref><ref id="scirp.126009-ref4"><label>4</label><mixed-citation publication-type="other" xlink:type="simple">Agnetis, A., Mirchandani, P.B., Pacciarelli, D. and Pacifici, A. (2004) Scheduling Problem with Two Competing Agents. Operations Research, 52, 229-242. https://doi.org/10.1287/opre.1030.0092</mixed-citation></ref><ref id="scirp.126009-ref5"><label>5</label><mixed-citation publication-type="other" xlink:type="simple">Agnetis, A., Pacciarelli, D. and Pacifici, A. (2007) Multi-Agent Single Machine Scheduling. Annals of Operational Research, 150, 3-15. https://doi.org/10.1007/s10479-006-0164-y</mixed-citation></ref><ref id="scirp.126009-ref6"><label>6</label><mixed-citation publication-type="other" xlink:type="simple">Balasubramanian, H., Fowler, J., Keha, A. and Pfund (2009) Scheduling Interfering Job Sets on Parallel Machines. European Journal of Operational Research, 199, 55-67. https://doi.org/10.1016/j.ejor.2008.10.038</mixed-citation></ref><ref id="scirp.126009-ref7"><label>7</label><mixed-citation publication-type="other" xlink:type="simple">Zhao, K.J. and Lu, X.W. (2013) Approximation Schemes for Two-Agent Scheduling on Parallel Machines. Theoretical Computer Science, 468, 114-121. https://doi.org/10.1016/j.tcs.2012.11.002</mixed-citation></ref><ref id="scirp.126009-ref8"><label>8</label><mixed-citation publication-type="other" xlink:type="simple">Zhao, K.J., Lu, X.W. and Gu, M.Z. (2016) A New Approximation Algorithm for Multi-Agent Scheduling to Minimize Makespan on Two Machines. Journal of Scheduling, 19, 21-31. https://doi.org/10.1007/s10951-015-0460-y</mixed-citation></ref><ref id="scirp.126009-ref9"><label>9</label><mixed-citation publication-type="other" xlink:type="simple">Zhao, K.J., Lu, X.W. and Gu, M.Z. (2018) An Algorithm for Multi-Agent Scheduling to Minimize the Makespan on m Parallel Machines. Journal of Scheduling, 21, 483-492. https://doi.org/10.1007/s10951-017-0546-9</mixed-citation></ref></ref-list></back></article>