Abstract
We study various single machine scheduling problems with two competing agents, unit processing times and arbitrary integer release dates. The problems differ by the scheduling criterion used by each of the two agents, and by the variant of the bicriteria problem that has to be solved. We prove that when the scheduling criterion of either one of the two agents is of a max-type, then all considered variants of the bicriteria problem are solvable in polynomial time. However, when the two agents have a sum-type of scheduling criterion, several variants of the bicriteria problem become \(\mathcal {NP}\)-hard.
Similar content being viewed by others
References
Agnetis, A., Mirchandani, P. B., Pacciarelli, D., & Pacifici, A. (2004). Scheduling problems with competing agents. Operations Research, 52, 229–242.
Agnetis, A., Pacciarelli, D., & Pacifici, A. (2007). Multi-agent single machine scheduling. Annals of Operations Research, 150, 3–15.
Agnetis, A., Billaut, J. C., Gawiejnowicz, S., Pacciarelli, D., & Soukhal, A. (2014). Multiagent scheduling—models and algorithms. New York: Springer. ISBN 978-3-642-41879-2.
Baker, K. R., & Smith, J. C. (2003). A multiple criterion model for machine scheduling. Journal of Scheduling, 6, 7–16.
Bansal, N., Kimbrel, T., & Sviridenko, M. (2006). Job shop scheduling with unit processing times. Mathematics of Operations Research, 31(2), 381–389.
Baptiste, P. (1999). Polynomial time algorithms for minimizing the weighted number of late jobs on a single machine with equal processing times. Journal of Scheduling, 2(6), 245–252.
Belouadah, H., Posner, M. E., & Potts, C. N. (1992). Scheduling with release dates on a single machine to minimize total weighted completion time. Discrete Applied Mathematics, 36, 213–231.
Brucker, P., & Kravchenko, S. A. (2008). Scheduling jobs with equal processing times and time windows on identical parallel machines. Journal of Scheduling, 11, 229–237.
Chen, C. L., & Bulfin, R. L. (1990). Scheduling unit processing time jobs on a single machine with multiple criteria. Computers & Operations Research, 17(1), 1–7.
Cheng, T. C. E., Ng, C. T., & Yuan, J. J. (2008). Multi-agent scheduling on a single machine with max-form criteria. European Journal of Operational Research, 188, 603–609.
Dourado, M. C., de Freitas Rodrigues, R., & Szwarcfiter, J. L. (2009). Scheduling unit time jobs with integer release dates to minimize the weighted number of tardy jobs. Annals of Operations Research, 169(1), 81–91.
Elvikis, D., & T’kindt, V. (2014). Two-agent scheduling on uniform parallel machines with min–max criteria. Annals of Operations Research, 213(1), 79–94.
Elvikis, D., Hamacher, H. W., & T’kindt, V. (2011). Scheduling two agents on uniform parallel machines with makespan and cost functions. Journal of Scheduling, 14, 471–481.
Frederickson, G. (1983). Scheduling unit-time tasks with integer release times and deadlines. Information Processing Letters, 16(4), 171–173.
Garey, M. R., Johnson, D. S., Simons, B. B., & Tarjan, R. E. (1981). Scheduling unit-time tasks with arbitrary release times and deadlines. SIAM Journal on Computing, 10(2), 256–269.
Hochbaum, D., & Shamir, R. (1991). Strongly polynomial algorithms for the high multiplicity scheduling problem. Operations Research, 39(4), 648–653.
Karhi, S., & Shabtay, D. (2013). On the optimality of the TLS Algorithm for solving the online-list scheduling problem with two job types on a set of multipurpose machines. Journal of Combinatorial Optimization, 26(1), 198–222.
Kovalyov, M. Y., Oulamara, A., & Soukhal, A. (2012). Two-agent scheduling on an unbounded serial batching machine. Lecture Notes in Computer Science, 7422, 427–438.
Kravchenko, S. A., & Werner, F. (2011). Parallel machine problems with equal processing times: a survey. Journal of Scheduling, 14, 435–444.
Lang, T., & Fernandez, E. B. (1976). Scheduling of unit-length independent tasks with execution constraints. Information Processing Letters, 4(4), 95–98.
Lee, K., Leung, J. Y.-T., & Pinedo, M. (2011). Scheduling jobs with equal processing times subject to machine eligibility constraints. Journal of Scheduling, 14(1), 27–38.
Lee, W. C., Wang, W. J., Shiau, Y. R., & Wu, C. C. (2010). A single machine scheduling problem with two agents and deteriorating jobs. Applied Mathematical Modelling, 34, 3098–3107.
Leung, J. Y.-T., Pinedo, M., & Wan, G. (2010). Competitive two-agents scheduling and its applications. Operations Research, 58, 458–469.
Li, C.-L. (2006). Scheduling unit-length jobs with machine eligibility restrictions. European Journal of Operational Research, 174(2), 1325–1328.
Mor, B., & Mosheiov, G. (2011). Single machine batch scheduling with two competing agents to minimize total flowtime. European Journal of Operational Research, 215, 524–531.
Mosheiov, G., & Oron, D. (2008). Open-shop batch scheduling with identical jobs. European Journal of Operational Research, 187(3), 1282–1292.
Mosheiov, G., & Yovel, U. (2006). Minimizing weighted earliness-tardiness and due-date cost with unit processing-time jobs. European Journal of Operational Research, 172(2), 528–544.
Oron, D., Shabtay, D., & Steiner, G. (2014). Two-agent scheduling on a single machine with equal job processing times. European Journal of Operational Research, 244(1), 86–99.
Perez-Gonzalez, P., & Framinan, J. M. (2014). A common framework and taxonomy for multicriteria scheduling problem with interfering and competing jobs: Multi-agent scheduling problems. European Journal of Operational Research, 235(1), 1–16.
Shabtay, D., Arviv, K., Edan, Y., & Stern, H. (2014). A combined robot selection and scheduling problem for flow-shops with no-wait restrictions. Omega, 43, 96–107.
Shabtay, D., Dover, O., & Kaspi, M. (2015). Single-machine two-agent scheduling involving a just-in-time criterion. International Journal of Production Research, 53(9), 2590–2604.
Simons, B. (1982). On scheduling with release times and deadlines. Netherlands: Springer.
Simons, B. B., & Warmuth, M. K. (1989). A fast algorithm for multiprocessor scheduling of unit-length jobs. SIAM Journal on Computing, 18(4), 690–710.
Steiner, G., & Yeomans, S. (1993). A note on “scheduling unit-time tasks with integer release times and deadlines”. Information Processing Letters, 47(3), 165–166.
T’kindt, V., & Billaut, J.-C. (2006). Multicriteria scheduling: Theory, models and algorithms (2nd ed.). Berlin: Springer.
Van Den Akker, J. M., Diepen, G., & Hoogeveen, J. A. (2010). Minimizing total weighted tardiness on a single machine with release dates and equal-length jobs. Journal of Scheduling, 13(6), 561–576.
Yuan, J. J., Shang, W. P., & Feng, Q. (2005). A note on the scheduling with two families of jobs. Journal of Scheduling, 8, 537–542.
Author information
Authors and Affiliations
Corresponding author
Appendices
Appendix 1: A numerical example that illustrates the implementation of Algorithm 1
Consider an instance with five jobs in set \(\mathcal {J}^{(2)}\), where the job’s parameters are given in Table 4 below.
Below, we implement Algorithm 1 on job set \(\mathcal {J}^{(2)}\) to construct our premier schedule.
[Initialization] \(D=\emptyset \)
-
Step 1: The jobs in \(\mathcal {J}^{(2)}\) are already numbered according to the ERD rule.
-
Step 2: The deadlines are given in Table 4, and at the end of this step we have that \(D=(D_{[1]},D_{[2]},D_{[3]},D_{[4]})=(2,3,9,10)\). Moreover, we set \(D_{[0]}=0\).
-
Step 3: We set \(\mathcal {I}_{1}=\{1,2,3\}\); \(\mathcal {I}_{2}=\{1,2\}\); \(\mathcal {I}_{3}=\mathcal {I}_{5}=\{6,7,8,9,10\}\); and \(\mathcal {I}_{4}=\{5,6,7,8,9\}\). Thus, \(\mathcal {I}=\{0,1,2,3,5,6,7,8,9,10\}\) and \(\mathcal {L}(k)=\emptyset \) for any \(k\in \mathcal {I}\).
-
Step 4: At the end of this step we have \(\mathcal {L}(2)=\{J_{2}^{(2)}\}\), \(\mathcal {L}(3)=\{J_{1}^{(2)}\}\), \(\mathcal {L}(9)=\{J_{4}^{(2)}\}\) and \(\mathcal {L}(10)=\{J_{5}^{(2)},J_{3}^{(2)}\}\).
-
Step 5: We set \(k=D_{[4]}=10\) and \(j=4\).
-
Step 6:
-
Iteration 1: Job \(J_{5}^{(2)}\) is at the head of \(\mathcal {L}(k=10)\). Thus, \(h=5\). Since \(k-1=9\ge r_{5}^{(2)}=8\), we set \(S_{5}^{(2)}=10\) and \(\mathcal {L}(10)=\mathcal {L}(10)\diagdown J_{5}^{(2)}=\{J_{3}^{(2)}\}\). Since \(\mathcal {L}(10)\ne \emptyset \) and \(\mathcal {L}(9)\ne \emptyset \), we set \(j=3\). Then, we merge \(\mathcal {L}(10)\) into \(\mathcal {L}(9)\) such that \(\mathcal {L}(9)=\{J_{4}^{(2)},J_{3}^{(2)}\}\). Since \(\mathcal {L}(9)\ne \emptyset \), we set \(k=9\).
-
Iteration 2: Job \(J_{4}^{(2)}\) is at the head of \(\mathcal {L}(k=9)\). Thus, \(h=4\). Since \(k-1=8\ge r_{4}^{(2)}=8\), we set \(S_{4}^{(2)}=9\) and \(\mathcal {L}(9)=\mathcal {L}(9)\diagdown J_{4}^{(2)}=\{J_{3}^{(2)}\}\). Since \(\mathcal {L}(9)\ne \emptyset \) and \(\mathcal {L(}8)=\emptyset \), we do not update the value of j. Then, we merge \(\mathcal {L}(9)\) into \(\mathcal {L}(8)\) such that \(\mathcal {L}(8)=\{J_{3}^{(2)}\}\). Since \(\mathcal {L}(8)\ne \emptyset \), we set \(k=8\).
-
Iteration 3: Job \(J_{3}^{(2)}\) is at the head of \(\mathcal {L}(k=8)\). Thus, \(h=3\). Since \(k-1=7\ge r_{3}^{(2)}=6\), we set \(S_{3}^{(2)}=8\) and \(\mathcal {L}(8)=\mathcal {L}(8)\diagdown J_{3}^{(2)}=\emptyset \). Since \(\mathcal {L}(8)=\emptyset \), we set \(j=2\). Then, we merge \(\mathcal {L}(8)\) into \(\mathcal {L}(7)\) such that \(\mathcal {L}(7)=\emptyset \). Since \(\mathcal {L}(7)=\emptyset \), we set \(k=D_{[2]}=3\).
-
Iteration 4: Job \(J_{1}^{(2)}\) is at the head of \(\mathcal {L}(k=3)\). Thus, \(h=1\). Since \(k-1=2\ge r_{1}^{(2)}=0\), we set \(S_{1}^{(2)}=3\) and \(\mathcal {L}(3)=\mathcal {L}(3)\diagdown J_{1}^{(2)}=\emptyset \). Since \(\mathcal {L}(3)=\emptyset \), we set \(j=1\). Then, we merge \(\mathcal {L}(3)\) into \(\mathcal {L}(2)\) such that \(\mathcal {L}(2)=\{J_{2}^{(2)}\}\). Since \(\mathcal {L}(2)\ne \emptyset \), we set \(k=2\).
-
Iteration 5: Job \(J_{2}^{(2)}\) is at the head of \(\mathcal {L}(k=2)\). Thus, \(h=2\). Since \(k-1=1\ge r_{2}^{(2)}=1\), we set \(S_{2}^{(2)}=2\) and \(\mathcal {L}(2)=\mathcal {L}(2)\diagdown J_{2}^{(2)}=\emptyset \). Since \(\mathcal {L}(2)=\emptyset \), we set \(j=0\). Then, we merge \(\mathcal {L}(2)\) into \(\mathcal {L}(1)\) such that \(\mathcal {L}(1)=\emptyset \). Since \(\mathcal {L}(1)=\emptyset \), we set \(k=D_{[0]}=0\).
-
-
[Output] \(S^{(2)}=(S_{1}^{(2)},S_{2}^{(2)},\ldots ,S_{n_{2}}^{(2)})=(3,2,8,9,10)\), where \(S_{j}^{(2)}\) is the time slot in which \(J_{j}^{(2)}\) is scheduled in the premier solution. Figure 1 below illustrates the resulting premier solution (schedule).
Appendix 2: A numerical example that illustrates the implementation of Algorithm 2
In addition to the instance provided in Appendix 2 for the jobs in set \(\mathcal {J}^{(2)}\), we include also three jobs that belongs to agent 1, where the job’s parameters are given in Table 5 below.
In order to construct an optimal schedule for the corresponding \(1\left| {\textit{CO}},r_{j}^{(i)},p_{j}^{(i)}=1\right| \epsilon (f_{\Sigma }^{(1)}/f_{\max }^{(2)})\) problem, we next implement Algorithm 2 on the entire job set \(\mathcal {J}^{(1)}\cup \mathcal {J}^{(2)}\).
[Input]: \(S^{(2)}=(S_{1}^{(2)},S_{2}^{(2)},S_{3}^{(2)},S_{4}^{(2)},S_{5}^{(2)})=(3,2,8,9,10)\) {the output of Phase 1}.
[Initialization] Set \(k=1\).
Step 1: The jobs in \(\mathcal {J}^{(1)}\) are already sorted according to the ERD rule. We also sort the jobs of the second agent in a non-decreasing order of \(S_{j}^{(2)}\) such that \(\mathcal {J}^{(2)}=\{J_{2}^{(2)},J_{1}^{(2)},J_{3}^{(2)},J_{4}^{(2)},J_{5}^{(2)}\}\).
Step 2:
-
Iteration 1: Jobs \(J_{1}^{(1)}\) and \(J_{2}^{(2)}\) are at the head of \(\mathcal {J}^{(1)}\) and \(\mathcal {J}^{(2)}\), respectively. Since \(k-1=0\ge \min \{r_{1}^{(1)},{\min _{J_{j}^{(2)}\in \mathcal {J}^{(2)}}}\{r_{j}^{(2)}\}\}=0\) we do not reset the value of k. Since \(S_{h}^{(2)}=S_{2}^{(2)}=2\ne k=1\) and that \(k-1=0<r_{h}^{(1)}=r_{1}^{(1)}=1\), Case 3 holds. Since \(J_{1}^{(2)}\) is the first job in \(\mathcal {J}^{(2)}\) with a release date not later than \(k-1=0\), we set \(S_{1}^{(2)}=1\), \(\mathcal {J}^{(2)}=\{J_{2}^{(2)},J_{3}^{(2)},J_{4}^{(2)},J_{5}^{(2)}\}\) and \(k=2\).
-
Iteration 2: Jobs \(J_{1}^{(1)}\) and \(J_{2}^{(2)}\) are at the head of \(\mathcal {J}^{(1)}\) and \(\mathcal {J}^{(2)}\), respectively. Since \(k-1=1\ge \min \{r_{1}^{(1)},{\min _{J_{j}^{(2)}\in \mathcal {J}^{(2)}}}\{r_{j}^{(2)}\}\}=1\), we do not reset the value of k. Since \(S_{h}^{(2)}=S_{2}^{(2)}=2=k\), Case 1 holds. Thus, we set \(\mathcal {J}^{(2)}=\mathcal {J}^{(2)}\diagdown J_{h}^{(2)}=\{J_{3}^{(2)},J_{4}^{(2)},J_{5}^{(2)}\}\) and \(k=3\).
-
Iteration 3: Jobs \(J_{1}^{(1)}\) and \(J_{3}^{(2)}\) are at the head of \(\mathcal {J}^{(1)}\) and \(\mathcal {J}^{(2)}\), respectively. Since \(k-1=2\ge \min \{r_{1}^{(1)},{\min _{J_{j}^{(2)}\in \mathcal {J}^{(2)}}}\{r_{j}^{(2)}\}\}=1\), we do not reset the value of k. Since \(S_{h}^{(2)}=S_{3}^{(2)}=8\ne k=3\) and \(k-1=2>r_{h}^{(1)}=r_{1}^{(1)}=1\), Case 2 holds. Thus, we set \(S_{1}^{(1)}=3\), \(\mathcal {J}^{(1)}=\mathcal {J}^{(1)}\diagdown J_{h}^{(1)}=\{J_{2}^{(1)},J_{3}^{(1)}\}\) and \(k=4\).
-
Iteration 4: Jobs \(J_{2}^{(1)}\) and \(J_{3}^{(2)}\) are at the head of \(\mathcal {J}^{(1)}\) and \(\mathcal {J}^{(2)}\), respectively. Since \(k-1=3\ge \min \{r_{2}^{(1)},{\min _{J_{j}^{(2)}\in \mathcal {J}^{(2)}}}\{r_{j}^{(2)}\}\}=3\), we do not reset the value of k. Since \(S_{h}^{(2)}=S_{3}^{(2)}=8\ne k=4\) and \(k-1=3=r_{h}^{(1)}=r_{2}^{(1)}=3\), Case 2 holds. Thus, we set \(S_{2}^{(1)}=4\), \(\mathcal {J}^{(1)}=\mathcal {J}^{(1)}\diagdown J_{h}^{(1)}=\{J_{3}^{(1)}\}\) and \(k=5\).
-
Iteration 5: Jobs \(J_{3}^{(1)}\) and \(J_{3}^{(2)}\) are at the head of \(\mathcal {J}^{(1)}\) and \(\mathcal {J}^{(2)}\), respectively. Since \(k-1=4<\min \{r_{3}^{(1)},{\min _{J_{j}^{(2)}\in \mathcal {J}^{(2)}}}\{r_{j}^{(2)}\}\}=6\), we set \(k=7\). Since \(S_{3}^{(2)}=8\ne k=7\) and \(k-1=6<r_{3}^{(1)}=10\), Case 3 holds. Since \(J_{3}^{(2)}\) is the first job in \(\mathcal {J}^{(2)}\) with a release date not later than \(k-1=6\), we set \(S_{3}^{(2)}=7\), \(\mathcal {J}^{(2)}=\{J_{4}^{(2)},J_{5}^{(2)}\}\) and \(k=8\).
-
Iteration 6: Jobs \(J_{3}^{(1)}\) and \(J_{4}^{(2)}\) are at the head of \(\mathcal {J}^{(1)}\) and \(\mathcal {J}^{(2)}\), respectively. Since \(k-1=7<\min \{r_{3}^{(1)},{\min _{J_{j}^{(2)}\in \mathcal {J}^{(2)}}}\{r_{j}^{(2)}\}\}=8\), we set \(k=9\). Since \(S_{h}^{(2)}=S_{4}^{(2)}=9=k\), Case 1 holds. Thus, we set \(\mathcal {J}^{(2)}=\mathcal {J}^{(2)}\diagdown J_{h}^{(2)}=\{J_{5}^{(2)}\}\) and \(k=10\).
-
Iteration 7: Jobs \(J_{3}^{(1)}\) and \(J_{5}^{(2)}\) are at the head of \(\mathcal {J}^{(1)}\) and \(\mathcal {J}^{(2)}\), respectively. Since \(k-1=9>\min \{r_{3}^{(1)},{\min _{J_{j}^{(2)}\in \mathcal {J}^{(2)}}}\{r_{j}^{(2)}\}\}=8\), we do not reset the value of k. Since \(S_{h}^{(2)}=S_{4}^{(2)}=10=k\), Case 1 holds. Thus, we set \(\mathcal {J}^{(2)}=\mathcal {J}^{(2)}\diagdown J_{h}^{(2)}=\emptyset \) and \(k=11\).
-
Iteration 8: Job \(J_{3}^{(1)}\) is at the head of \(\mathcal {J}^{(1)}\). Since \(k-1=10=\min \{r_{3}^{(1)},{\min _{J_{j}^{(2)}\in \mathcal {J}^{(2)}}}\{ r_{j}^{(2)}\} \}=10\) we do not reset the value of k. Since \(\mathcal {J}^{(2)}=\emptyset \) and \(k-1=10=r_{3}^{(1)}=10\), Case 2 holds. Thus, we set \(S_{3}^{(1)}=11\), \(\mathcal {J}^{(1)}=\emptyset \) and \(k=12\). Since \(\mathcal {J}^{(1)}\cup \mathcal {J}^{(2)}=\emptyset \), the entire set of jobs is scheduled.
[Output] \(S^{(1)}=(S_{1}^{(1)},S_{2}^{(1)},S_{3}^{(1)})=(3,4,11)\) and \(S^{(2)}=(S_{1}^{(2)},S_{2}^{(2)},S_{3}^{(2)},S_{4}^{(2)},S_{5}^{(2)})=(1,2,7,9,10)\). Figure 2 below illustrates the resulting schedule.
Appendix 3: A numerical example that illustrates the implementation of Algorithm 4
Consider an instance of the \(1\left| {\textit{CO}},r_{j}^{(i)},p_{j}^{(i)}=1\right| \#(\Sigma C_{j}^{(1)},\Sigma C_{j}^{(2)})\) problem, where \(n_{1}=5\) and \(n_{2}=3\). The release dates of the jobs in \(\mathcal {J}^{(1)}\) and \(\mathcal {J}^{(2)}\) are given in Tables 6 and 7 below.
Below, we implement Algorithm 4 to find the entire set of Pareto-optimal solutions.
Step 1: We call Procedure “obtaining Pareto-optimal solution \(\pi _{1}\)” (Algorithm 3) and below we present the implementation of this procedure on the above numerical example.
[Initialization] The jobs in each \(\mathcal {J}^{(i)}\) are already numbered according to the ERD rule. We set \(\pi _{1}=\emptyset \), \(F^{(1)}(\pi _{1})=0\), \(F^{(2)}(\pi _{1})=0\) and \(r=k_{1}=1\).
[Core]
-
Iteration 1: Job \(J_{1}^{(1)}\) is at the head of \(\mathcal {J}^{(1)}\) and job \(J_{1}^{(2)}\) is at the head of \(\mathcal {J}^{(2)}\). Since \(k_{1}-1=0\ge \min \{r_{1}^{(1)},r_{1}^{(2)}\}=0\), we do not reset the value of \(k_{1}\). Since \(k_{1}-1=0\ge r_{1}^{(1)}=0\), we set \(\pi _{1}=\{J_{1}^{(1)}\}\), \(F^{(1)}(\pi _{1})=1\), \(\mathcal {J}^{(1)}=\{J_{2}^{(1)},J_{3}^{(1)},J_{4}^{(1)},J_{5}^{(1)}\}\) and \(r=k_{2}=2\).
-
Iteration 2: Job \(J_{2}^{(1)}\) is at the head of \(\mathcal {J}^{(1)}\) and job \(J_{1}^{(2)}\) is at the head of \(\mathcal {J}^{(2)}\). Since \(k_{2}-1=1\ge \min \{r_{2}^{(1)},r_{1}^{(2)}\}=0\), we do not reset the value of \(k_{2}\). Since \(k_{2}-1=1\ge r_{2}^{(1)}=0\), we set \(\pi _{1}=\{J_{1}^{(1)},J_{2}^{(1)}\}\), \(F^{(1)}(\pi _{1})=1+2=3\), \(\mathcal {J}^{(1)}=\{J_{3}^{(1)},J_{4}^{(1)},J_{5}^{(1)}\}\) and \(r=k_{3}=3\).
-
Iteration 3: Job \(J_{3}^{(1)}\) is at the head of \(\mathcal {J}^{(1)}\) and job \(J_{1}^{(2)}\) is at the head of \(\mathcal {J}^{(2)}\). Since \(k_{3}-1=2\ge \min \{r_{3}^{(1)},r_{1}^{(2)}\}=1\), we do not reset the value of \(k_{3}\). Since \(k_{3}-1=2\ge r_{3}^{(1)}=1\), we set \(\pi _{1}=\{J_{1}^{(1)},J_{2}^{(1)},J_{3}^{(1)}\}\), \(F^{(1)}(\pi _{1})=3+3=6\), \(\mathcal {J}^{(1)}=\{J_{4}^{(1)},J_{5}^{(1)}\}\) and \(r=k_{4}=4\).
-
Iteration 4: Job \(J_{4}^{(1)}\) is at the head of \(\mathcal {J}^{(1)}\) and job \(J_{1}^{(2)}\) is at the head of \(\mathcal {J}^{(2)}\). Since \(k_{4}-1=3\ge \min \{r_{4}^{(1)},r_{1}^{(2)}\}=1\), we do not reset the value of \(k_{4}\). Since \(k_{4}-1=3<r_{4}^{(1)}=4\), we set \(\pi _{1}=\{J_{1}^{(1)},J_{2}^{(1)},J_{3}^{(1)},J_{1}^{(2)}\}\), \(F^{(2)}(\pi _{1})=4\), \(\mathcal {J}^{(2)}=\{J_{2}^{(2)},J_{3}^{(2)}\}\) and \(r=k_{5}=5\).
-
Iteration 5: Job \(J_{4}^{(1)}\) is at the head of \(\mathcal {J}^{(1)}\) and job \(J_{2}^{(2)}\) is at the head of \(\mathcal {J}^{(2)}\). Since \(k_{5}-1=4\ge \min \{r_{4}^{(1)},r_{2}^{(2)}\}=1\), we do not reset the value of \(k_{5}\). Since \(k_{5}-1=4\ge r_{4}^{(1)}=4\), we set \(\pi _{1}=\{J_{1}^{(1)},J_{2}^{(1)},J_{3}^{(1)},J_{1}^{(2)},J_{4}^{(1)}\}\), \(F^{(1)}(\pi _{1})=6+5=11\), \(\mathcal {J}^{(1)}=\{J_{5}^{(1)}\}\) and \(r=k_{6}=6\).
-
Iteration 6: Job \(J_{5}^{(1)}\) is at the head of \(\mathcal {J}^{(1)}\) and job \(J_{2}^{(2)}\) is at the head of \(\mathcal {J}^{(2)}\). Since \(k_{6}-1=5\ge \min \{r_{5}^{(1)},r_{2}^{(2)}\}=1\), we do not reset the value of \(k_{6}\). Since \(k_{6}-1=4<r_{5}^{(1)}=9\), we set \(\pi _{1}=\{J_{1}^{(1)},J_{2}^{(1)},J_{3}^{(1)},J_{1}^{(2)},J_{4}^{(1)},J_{2}^{(2)}\}\), \(F^{(2)}(\pi _{1})=4+6=10\), \(\mathcal {J}^{(2)}=\{J_{3}^{(2)}\}\) and \(r=k_{7}=7\).
-
Iteration 7: Job \(J_{5}^{(1)}\) is at the head of \(\mathcal {J}^{(1)}\) and job \(J_{3}^{(2)}\) is at the head of \(\mathcal {J}^{(2)}\). Since \(k_{7}-1=6<\min \{r_{5}^{(1)},r_{3}^{(2)}\}=8\), we set \(k_{7}=9\). Since \(k_{7}-1=8<r_{5}^{(1)}=9\), we set \(\pi _{1}=\{J_{1}^{(1)},J_{2}^{(1)},J_{3}^{(1)},J_{1}^{(2)},J_{4}^{(1)},J_{2}^{(2)},J_{3}^{(2)}\}\), \(F^{(2)}(\pi _{1})=10+9=19\), \(\mathcal {J}^{(2)}=\emptyset \), \(r=8\) and \(k_{8}=10\).
-
Iteration 8: Job \(J_{5}^{(1)}\) is at the head of \(\mathcal {J}^{(1)}\) and there are no jobs in \(\mathcal {J}^{(2)}\). Since \(k_{8}-1=9\ge \min \{r_{5}^{(1)}\}=9\), we do not reset the value of \(k_{8}\). Since \(k_{8}-1=9\ge r_{5}^{(1)}=9\), we set \(\pi _{1}=\{J_{1}^{(1)},J_{2}^{(1)},J_{3}^{(1)},J_{1}^{(2)},J_{4}^{(1)},J_{2}^{(2)},J_{3}^{(2)},J_{5}^{(1)}\}\), \(F^{(1)}(\pi _{1})=11+10=21\), \(\mathcal {J}^{(1)}=\emptyset \) and \(k_{9}=11\).
[Output] The triplet \((\pi _{1},F^{(1)}(\pi _{1}),F^{(2)}(\pi _{1}))=(\{J_{1}^{(1)},J_{2}^{(1)},J_{3}^{(1)},J_{1}^{(2)},J_{4}^{(1)},J_{2}^{(2)},J_{3}^{(2)},J_{5}^{(1)}\},21,19)\).
Figure 3 below illustrates the schedule represented by \(\pi _{1}\) for the above numerical example.
We set \(\Pi _{e}=\{(\pi _{1},F^{(1)}(\pi _{1}),F^{(2)}(\pi _{1}))\}\), and \(k=1\).
Step 2:
-
Iteration 1 (\(i_{2}=1\)): Since \(J_{3}^{(1)}\) is the latest job of agent 1 that precedes job \(J_{1}^{(2)}\) in permutation \(\pi _{1}\), we set \(l=3\). Since \(\min \{C_{1}^{(2)}(\pi _{1})-1-C_{0}^{(2)}(\pi _{1}),C_{1}^{(2)}(\pi _{1})-1-r_{1}^{(2)}\}=\min \{3,2\}=2\), we can perform only two pairwise interchanges with job \(J_{1}^{(2)}\). The first with job \(J_{l+1-1}^{(1)} =J_{3}^{(1)}\), which results in \(\pi _{2}=\{J_{1}^{(1)},J_{2}^{(1)},J_{1} ^{(2)},J_{3}^{(1)},J_{4}^{(1)},J_{2}^{(2)},J_{3}^{(2)},J_{5}^{(1)}\}\) with \(F^{(1)}(\pi _{2})=F^{(1)}(\pi _{1})+1=22\) and \(F^{(2)}(\pi _{2})=F^{(2)}(\pi _{1})-1=18\) (we include the triplet \((\pi _{2},F^{(1)}(\pi _{2}),F^{(2)}(\pi _{2}))\) in \(\Pi _{e}\)) and the second with job \(J_{l+1-2}^{(1)}=J_{2}^{(1)}\), which results in \(\pi _{3}=\{J_{1}^{(1)},J_{1}^{(2)},J_{2}^{(1)},J_{3} ^{(1)},J_{4}^{(1)},J_{2}^{(2)},J_{3}^{(2)},J_{5}^{(1)}\}\) with \(F^{(1)} (\pi _{3})=F^{(1)}(\pi _{2})+1=23\) and \(F^{(2)}(\pi _{3})=F^{(2)}(\pi _{2})-1=17\) (we include the triplet \((\pi _{3},F^{(1)}(\pi _{3}),F^{(2)}(\pi _{3}))\) in \(\Pi _{e}\)). We set \(k=k+2=3\).
-
Iteration 2 (\(i_{2}=2\)): Since \(J_{4}^{(1)}\) is the last job of agent 1 before \(J_{2}^{(2)}\) in \(\pi _{3}\), we have that \(l=4\). Since \(\min \{C_{2}^{(2)}(\pi _{3})-1-C_{1}^{(2)}(\pi _{3}),C_{2}^{(2)}(\pi _{3} )-1-r_{2}^{(2)}\}=\min \{3,4\}=3\), we can perform only three pairwise interchanges with job \(J_{2}^{(2)}\). The first is with job \(J_{l+1-1} ^{(1)}=J_{4}^{(1)}\), which results in \(\pi _{4}=\{J_{1}^{(1)},J_{1}^{(2)} ,J_{2}^{(1)},J_{3}^{(1)},J_{2}^{(2)},J_{4}^{(1)},J_{3}^{(2)},J_{5}^{(1)}\}\) with \(F^{(1)}(\pi _{4})=F^{(1)}(\pi _{3})+1=24\) and \(F^{(2)}(\pi _{4} )=F^{(2)}(\pi _{3})-1=16\) (we include the triplet \((\pi _{4},F^{(1)}(\pi _{4}),F^{(2)}(\pi _{4}))\) in \(\Pi _{e}\)); the second is with job \(J_{l+1-2} ^{(1)}=J_{3}^{(1)}\), which results in \(\pi _{5}=\{J_{1}^{(1)},J_{1}^{(2)} ,J_{2}^{(1)},J_{2}^{(2)},J_{3}^{(1)},J_{4}^{(1)},J_{3}^{(2)},J_{5}^{(1)}\}\) with \(F^{(1)}(\pi _{5})=F^{(1)}(\pi _{4})+1=25\) and \(F^{(2)}(\pi _{5} )=F^{(2)}(\pi _{4})-1=15\) (we include the triplet \((\pi _{5},F^{(1)}(\pi _{5}),F^{(2)}(\pi _{5}))\) in \(\Pi _{e}\)); and the last is with job \(J_{l+1-3}^{(1)}=J_{2}^{(1)}\), which results in \(\pi _{6}=\{J_{1}^{(1)} ,J_{1}^{(2)},J_{2}^{(2)},J_{2}^{(1)},J_{3}^{(1)},J_{4}^{(1)},J_{3}^{(2)} ,J_{5}^{(1)}\}\) with \(F^{(1)}(\pi _{6})=F^{(1)}(\pi _{5})+1=26\) and \(F^{(2)} (\pi _{6})=F^{(2)}(\pi _{5})-1=14\) (we include the triplet \((\pi _{6},F^{(1)} (\pi _{6}),F^{(2)}(\pi _{6}))\) in \(\Pi _{e}\)). We set \(k=k+3=6\).
-
Iteration 3 (\(i_{2}=3\)): Since \(J_{4}^{(1)}\) is the last job of agent 1 before \(J_{3}^{(2)}\) in \(\pi _{6}\), we have that \(l=4\). Since \(\min \{C_{3}^{(2)}(\pi _{6})-1-C_{2}^{(2)}(\pi _{6}),C_{3}^{(2)}(\pi _{6})-1-r_{3}^{(2)}\}=\min \{5,0\}=0\), we cannot perform any pairwise interchange with job \(J_{3}^{(2)}\). We set \(k=k+0=6\).
[Output] Set \(\Pi _{e}=\{(\pi _{1},21,19),(\pi _{2},22,18),(\pi _{3},23,17),(\pi _{4},24,16),(\pi _{5},25,15),(\pi _{6},26,14)\}\) (Tables 1, 2, 3).
Rights and permissions
About this article
Cite this article
Dover, O., Shabtay, D. Single machine scheduling with two competing agents, arbitrary release dates and unit processing times. Ann Oper Res 238, 145–178 (2016). https://doi.org/10.1007/s10479-015-2054-7
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10479-015-2054-7