Skip to main content
Log in

Single machine scheduling with two competing agents, arbitrary release dates and unit processing times

  • Published:
Annals of Operations Research Aims and scope Submit manuscript

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.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

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.

    Article  Google Scholar 

  • Agnetis, A., Pacciarelli, D., & Pacifici, A. (2007). Multi-agent single machine scheduling. Annals of Operations Research, 150, 3–15.

    Article  Google Scholar 

  • 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.

    Article  Google Scholar 

  • Bansal, N., Kimbrel, T., & Sviridenko, M. (2006). Job shop scheduling with unit processing times. Mathematics of Operations Research, 31(2), 381–389.

    Article  Google Scholar 

  • 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.

    Article  Google Scholar 

  • 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.

    Article  Google Scholar 

  • 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.

    Article  Google Scholar 

  • 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.

    Article  Google Scholar 

  • 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.

    Article  Google Scholar 

  • 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.

    Article  Google Scholar 

  • 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.

    Article  Google Scholar 

  • 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.

    Article  Google Scholar 

  • Frederickson, G. (1983). Scheduling unit-time tasks with integer release times and deadlines. Information Processing Letters, 16(4), 171–173.

    Article  Google Scholar 

  • 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.

    Article  Google Scholar 

  • Hochbaum, D., & Shamir, R. (1991). Strongly polynomial algorithms for the high multiplicity scheduling problem. Operations Research, 39(4), 648–653.

    Article  Google Scholar 

  • 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.

    Article  Google Scholar 

  • 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.

    Article  Google Scholar 

  • Kravchenko, S. A., & Werner, F. (2011). Parallel machine problems with equal processing times: a survey. Journal of Scheduling, 14, 435–444.

    Article  Google Scholar 

  • Lang, T., & Fernandez, E. B. (1976). Scheduling of unit-length independent tasks with execution constraints. Information Processing Letters, 4(4), 95–98.

    Article  Google Scholar 

  • 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.

    Article  Google Scholar 

  • 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.

    Article  Google Scholar 

  • Leung, J. Y.-T., Pinedo, M., & Wan, G. (2010). Competitive two-agents scheduling and its applications. Operations Research, 58, 458–469.

    Article  Google Scholar 

  • Li, C.-L. (2006). Scheduling unit-length jobs with machine eligibility restrictions. European Journal of Operational Research, 174(2), 1325–1328.

    Article  Google Scholar 

  • 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.

    Article  Google Scholar 

  • Mosheiov, G., & Oron, D. (2008). Open-shop batch scheduling with identical jobs. European Journal of Operational Research, 187(3), 1282–1292.

    Article  Google Scholar 

  • 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.

    Article  Google Scholar 

  • 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.

    Article  Google Scholar 

  • 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.

    Article  Google Scholar 

  • 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.

    Article  Google Scholar 

  • 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.

    Article  Google Scholar 

  • Simons, B. (1982). On scheduling with release times and deadlines. Netherlands: Springer.

    Book  Google Scholar 

  • 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.

    Article  Google Scholar 

  • 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.

    Article  Google Scholar 

  • T’kindt, V., & Billaut, J.-C. (2006). Multicriteria scheduling: Theory, models and algorithms (2nd ed.). Berlin: Springer.

    Google Scholar 

  • 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.

    Article  Google Scholar 

  • 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.

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Dvir Shabtay.

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.

Table 4 Agent’s 2 job’s parameters

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).

Fig. 1
figure 1

The premier 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.

Table 5 Agent’s 1 job parameters

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.

Fig. 2
figure 2

The optimal schedule for the numerical example

[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.

Table 6 Agent’s 1 job parameters
Table 7 Agent’s 2 job parameters

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.

Fig. 3
figure 3

Schedule \(\pi _{1}\)

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

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

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

Download citation

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10479-015-2054-7

Keywords

Navigation