<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Scheduling of Two Parallel Machines with Linear Decreasing Time Slot Costs to Minimize Total Weighted Completion Time ⋆</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Alexander Kononov</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Irina Lushchakova</string-name>
          <email>IrinaLushchakova@yandex.ru</email>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff3">3</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Belarusian State University of Informatics and Radioelectronics</institution>
          ,
          <country country="BY">Belarus</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Novosibirsk State University</institution>
          ,
          <addr-line>2, Pirogova str., 630090, Novosibirsk</addr-line>
          ,
          <country country="RU">Russia</country>
        </aff>
        <aff id="aff2">
          <label>2</label>
          <institution>Sobolev Institute of Mathematics</institution>
        </aff>
        <aff id="aff3">
          <label>3</label>
          <institution>UIIP NAS of Belarus</institution>
          ,
          <country country="BY">Belarus</country>
        </aff>
      </contrib-group>
      <fpage>344</fpage>
      <lpage>349</lpage>
      <abstract>
        <p>We consider a scheduling problem with two parallel machines to minimize the sum of total weighted completion time and total machine time slot cost. In this paper we focus on the case of the constant or linear decreasing sequences of time slot costs. We suggest an exact pseudopolynomial DP algorithm for the case of arbitrary integer processing times of jobs. If all jobs have unit processing times, we modify our approach to obtain a polynomial algorithm.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>Introduction
⋆ partially supported by the Project BRFFR
15 CO-043
Copyright ⃝c by the paper's authors. Copying permitted for private and academic purposes.
In: A. Kononov et al. (eds.): DOOR 2016, Vladivostok, Russia, published at http://ceur-ws.org</p>
    </sec>
    <sec id="sec-2">
      <title>A schedule s is determined by assigning for each job i 2 N its start moment ri(s)</title>
      <p>and machine L on which it will be processed. Notice that in a schedule s there may be
some machine idle times between jobs.</p>
      <sec id="sec-2-1">
        <title>The objective is to nd a schedule s minimizing the function</title>
        <p>F1(s) + F2(s) =
n 2
∑ wiCi + ∑
i=1
L=1 i2NL(s)
∑</p>
        <p>L
ri(s);Ci(s):</p>
        <sec id="sec-2-1-1">
          <title>We denote this problem by P 2jslotcostj ∑(wiCi + rLi;Ci ). In [1] the analogous problem for single machine is denoted by 1jslotcostj ∑(wiCi + ri;Ci ).</title>
          <p>
            Proposition 1 ([
            <xref ref-type="bibr" rid="ref1">1</xref>
            ]). If the sequence f kg of time slot costs, k = 1; 2; :::; K, is
nondecreasing, the problem 1jslotcostj ∑(wiCi + ri;Ci ) reduces to the classical problem
1jj ∑wiCi.
          </p>
        </sec>
        <sec id="sec-2-1-2">
          <title>The same conclusion can be done for the problem P 2jslotcostj ∑(wiCi +</title>
          <p>L
ri;Ci ).</p>
          <p>
            Theorem 1. [
            <xref ref-type="bibr" rid="ref2">2</xref>
            ] If the sequence f kg, k = 1; 2; :::; K, is non-increasing, the problem
1jslotcostj ∑(wiCi + ri;Ci ) is NP-hard in the strong sense.
          </p>
        </sec>
        <sec id="sec-2-1-3">
          <title>Consider the case of the problem 1jslotcostj ∑(wiCi + ri;Ci ) where the time slot</title>
          <p>cost decreases as a linear function of the time index k, i.e. k k+1 = ", " &gt; 0, for
k = 1; 2; :::; K 1.</p>
          <p>
            Lemma 1. [
            <xref ref-type="bibr" rid="ref2">2</xref>
            ] If the sequence f kg, k = 1; 2; :::; K, is linear decreasing, then in a
optimal schedule for the problem 1jslotcostj ∑(wiCi + ri;Ci ) the jobs are scheduled in
the order wp11 wp22 ::: wpnn .
          </p>
          <p>
            Lemma 2. [
            <xref ref-type="bibr" rid="ref2">2</xref>
            ] For a job i, if wpii &gt; ", then it is optimal to process this job as early as
possible. If wpii &lt; ", then it is optimal to process job i as late as possible. If wpii = ",
then the job has the same cost no matter when it is processed.
          </p>
        </sec>
      </sec>
      <sec id="sec-2-2">
        <title>Based on the above lemmas, an O(nlogn) algorithm is suggested in [2] for the</title>
        <p>problem 1jslotcostj ∑(wiCi + ri;Ci ) with linear decreasing time slot cost sequence.
1</p>
        <p>Algorithm DP-LinDec-2 for the case of arbitrary processing
times</p>
      </sec>
      <sec id="sec-2-3">
        <title>Suppose that two parallel machines have either constant or linear decreasing time slot</title>
        <p>cost sequences f k1g and f k2g: k1 k1+1 = "1 and k2 k2+1 = "2 for k = 1; 2; :::; K 1,
where 0 "1 "2.</p>
        <p>Divide the set N of jobs into three subsets: J1 = fi : wi=pi &gt; "2g, J2 = fi : wi=pi &lt;
"1g, J3 = fi : "1 wi=pi "2g. For a nonempty set Jj , 1 j 3, we set nj = jJj j,
Pj = ∑i2Jj pi; otherwise let nj = 0, Pj = 0.</p>
      </sec>
      <sec id="sec-2-4">
        <title>Let us order and renumber the jobs in such way that we have:</title>
        <p>J1 = fi1; i2; :::; in1 g and wpii11 wpii22 ::: wpiinn11 &gt; "2;
J2 = fk1; k2; :::; kn2 g and wpkk11 wpkk22 ::: wpkknn22 &lt; "1;
J3 = fl1; l2; :::; ln3 g and "2 wpll11 wpll22 ::: wpllnn33 "1.</p>
      </sec>
      <sec id="sec-2-5">
        <title>For the problem under consideration we present an algorithm DP-LinDec-2 (Dynamical Programming- Linear Decreasing time slot costs - 2 machines) which proceeds in three stages.</title>
      </sec>
      <sec id="sec-2-6">
        <title>At Stage 1, algorithm DP-LinDec-2 schedules jobs from the set J1:</title>
        <p>Let J1 ̸= ∅. Denote p(m1) = pi1 + pi2 + ::: + pim for m = 1; 2; :::; n1; P1 = p(n11).</p>
      </sec>
      <sec id="sec-2-7">
        <title>Consider a subproblem with jobs i1; i2; :::; im. Suppose that machines start at time 0.</title>
        <p>Let f1(x; m) be the minimal value of the objective function when machine 1 completes
the processing at time x, 0 x minfP1; Kg. Then machine 2 should complete the
processing at time (p(m1) x). Due to the WSPT property, job im is the last job either
on machine 1 or on machine 2. Hence, we have the following dynamic programming
recursion:
f1(x; m) = minff1(x pim ; m 1) + wim x +
f1(x; m
1) + wim (p(m1)
1
x pim ;x;
x) + p2(m1) 1 x;p(m1) xg:</p>
      </sec>
      <sec id="sec-2-8">
        <title>The boundary conditions are:</title>
        <p>f1(x; m) = +1 for x &lt; 0, or x &gt; minfK; p(m1)g, or p(m1) x &gt; K.</p>
      </sec>
      <sec id="sec-2-9">
        <title>The initial conditions are</title>
        <p>f1(x; 1) = wi1 pi1 + 02;pi1 ; if x = 0,</p>
        <p>wi1 pi1 + 01;pi1 , if x = pi1 , +1 otherwise.</p>
        <p>For each x = 0; 1; :::; minfP1; Kg we keep the value f1(x; n1) and its corresponding
schedule ′(x). If J1 = ∅, we set x = 0, f1(0; 0) = 0. In this case the corresponding
schedule ′(0) is a dummy one. The time complexity of Stage 1 is O(n1P1).</p>
      </sec>
      <sec id="sec-2-10">
        <title>At Stage 2, algorithm DP-LinDec-2 schedules jobs from the set J2:</title>
        <p>Let J2 ̸= ∅. Denote p(m2) = pk1 + pk2 + ::: + pkm for m = 1; 2; :::; n2; P2 = p(n22):</p>
      </sec>
      <sec id="sec-2-11">
        <title>Consider a subproblem with jobs k1; k2; :::; km from the set J2. Let f2(y; m) be the</title>
        <p>minimal value of the objective function when machine 2 starts the processing of some
of these jobs at time y. Then machine 1 starts the processing of the remaining part
of these jobs at time 2K y p(m2). Both machines complete the processing at time
K. Actually, from the symmetry between the set J1 and the set J2 we can use the
similar dynamic programming approach in the opposite direction. Formally, we have
the following dynamic programming recursion:
f2(y; m) = minff2(y + pkm ; m 1) + wkm (y + pkm ) +
2
y;y+pkm ;
p(m2) 1) + 21K y p(m2);2K y p(m2) 1 g:
f2(y; m
1) + wkm (2K
y</p>
      </sec>
      <sec id="sec-2-12">
        <title>The boundary conditions are:</title>
        <p>f2(y; m) = +1 for y &gt; K, or y &lt; maxf0; K p(m2)g, or 2K y p(m2) &lt; 0.</p>
      </sec>
      <sec id="sec-2-13">
        <title>The initial conditions are</title>
        <p>f2(y; 1) = wk1 K + K2 pk1 ;K ; if y = K pk1 ,</p>
        <p>wk1 K + K1 pk1 ;K , if y = K; +1, otherwise.</p>
        <p>For each y = K; K 1; :::; maxf0; K P2g we keep the value f2(y; n2) and its
corresponding schedule ′′(y). If J2 = ∅, we set y = K, f2(K; 0) = 0. In this case the
corresponding schedule ′′(K) is a dummy one. The time complexity of Stage 2 is
O(n2P2).</p>
      </sec>
      <sec id="sec-2-14">
        <title>Stage 3 of algorithm DP-LinDec-2 is realized for all values of the variables x and</title>
        <p>y, 0 x minfP1; Kg, maxf0; K P2g y K.</p>
        <p>Let us consider the particular values of x and y from the above ranges. At rst the
algorithm checks, if there exists a feasible schedule (x; y) such that in this schedule
jobs from the sets J1 and J2 are processed in the same time intervals and on the same
machines as in the schedules ′(x) and ′′(y). A schedule (x; y) is feasible if each
machine processes no more than one job at any time slot. To make sure that a feasible
schedule exists, it is sufficient to verify that the inequality P1 y x 2K y P2
holds. If a schedule (x; y) is feasible, the algorithm inserts the jobs from the set J3
into it.</p>
        <p>Let J3 ̸= ∅. Denote p(m3) = pl1 + pl2 + ::: + plm for m = 1; 2; :::; n3; P3 = p(n33):</p>
      </sec>
      <sec id="sec-2-15">
        <title>Consider a subproblem with jobs l1; l2; :::; lm from the set J3. We know that ma</title>
        <p>chine 1 starts the processing of some of these jobs at time x and completes at time
z, while machine 2 starts the processing of the remaining part of these jobs at time
u. Let f3(x; y; z; u; m) be the minimal value of the objective function when machine 1
completes the processing of the rst part of the set J3 at time z. Then machine 2 should
complete the processing of the remaining jobs of the set J3 at time u + p(m3) (z x).
Due to the WSPT property, job lm is the last job from the set J3 either on machine 1
or on machine 2. Hence, we have the following dynamic programming recursion:
f3(x; y; z; u; m) = minff3(x; y; z plm ; u; m 1) + wlm z + z1 plm ;z;
f3(x; y; z; u; m
1) + wlm (u + p(m3)
(z
x))) +
u2+p(m3) 1 (z x);u+p(m3) (z x)g:</p>
      </sec>
      <sec id="sec-2-16">
        <title>The boundary conditions are:</title>
        <p>f3(x; y; z; u; m) = +1 for z &lt; x, or z &gt; minf2K
y</p>
        <p>P2; x + p(m3)g,
or u + p(m3)
(z
x) &gt; y.</p>
        <p>The initial conditions are:
f3(x; y; z; u; 1) = wl1 (u + pl1 ) +
wl1 (x + pl1 ) +
2
u;u+pl1 , if z = x and u + pl1
x1;x+pl1 , if z = x + pl1 2K
y,
y</p>
        <p>P2,
+1, otherwise.</p>
      </sec>
      <sec id="sec-2-17">
        <title>Thus, for any feasible schedule (x; y) algorithm DP-LinDec-2 constructs a fam</title>
        <p>ily of feasible schedules ~(x; y; z; u), x z minfx + P3; 2K y P2g, maxfy</p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>P3; P1 xg u y. Each schedule ~(x; y; z; u) has the value f3(x; y; z; u; n3) of the</title>
      <p>objective function. If J3 = ∅ we set z = x, u = y, f3(x; y; x; y; 0) = 0. In this case the
corresponding schedule ~(x; y; x; y) coincides with the schedule (x; y).</p>
      <sec id="sec-3-1">
        <title>At each step of Stage 3 we keep only the current schedule with the minimal value</title>
        <p>of the function f1(x; n1) + f2(y; n2) + f3(x; y; z; u; n3) that is found over all values of the
variables x; y; z; u enumerated till the moment. After nishing Stage 3 the algorithm
nds an optimal schedule. The time complexity of Stage 3 is O(n3P1P2P32).</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>The whole time complexity of algorithm DP-LinDec-2 is O(n1P1+n2P2+n3P1P2P32).</title>
      <sec id="sec-4-1">
        <title>It should be mentioned that at all stages of algorithm the space complexity is O(nK).</title>
        <p>Algorithm DP-LinDec-2-UT for the case of unit processing
times</p>
      </sec>
      <sec id="sec-4-2">
        <title>Consider the particular case of the problem under consideration when all jobs have</title>
        <p>unit processing times, i.e. all pi = 1. Since in this case Pj = nj, 1 j 3, the
algorithm DP-LinDec-2 becomes polynomial algorithm with the complexity O(n21 +
n22 + n1n2n33). However, we can suggest the modi cation of our approach to reduce the
complexity to O(n1n2n3). Let us consider an algorithm DP-LinDec-2-UT(Dynamical</p>
      </sec>
      <sec id="sec-4-3">
        <title>Programming- Linear Decreasing time slot costs - 2 machines-Unit Times)which consists of four stages.</title>
        <p>Let L1; L2 be the numbers of machines, L1 2 f1; 2g, L2 = 3 L1.</p>
        <p>At Stage 1, algorithm DP-LinDec2-UT calculates the contribution of jobs from
the set J1 into the optimal value of the objective function. Let J1 ̸= ∅. Suppose that
machines start at time 0. Let g1(x; L1) be the minimal contribution of jobs from the
set J1 when machine L1 completes the processing at time x. Then machine L2 should
complete the processing at time (n1 x). Jobs will be scheduled on machines in the
nonincreasing order of their weights. Hence, we have the following dynamic programming
recursion:
g1(0; L1) = 0L;2n1 + ∑jn=11 jwij ;
g1(x; L1) = g1(x 1; L1) + xL1 1;x nL12 x;n1 (x 1) ∑jn=12x wij ;
where x = 1; 2; :::; [ n1 ] and L1 2 f1; 2g:</p>
        <p>2</p>
        <p>We keep all values g1(x; 1), g1(x; 2), where x = 0; 1; :::; [ n21 ]. If J1 = ∅, we set x = 0,
g1(0; 1) = 0, g1(0; 2) = 0. The time complexity of Stage 1 is O(n1).</p>
      </sec>
      <sec id="sec-4-4">
        <title>At Stage 2, algorithm DP-LinDec2-UT calculates the contribution of jobs from</title>
        <p>the set J2 into the optimal value of the objective function. Let J2 ̸= ∅ and g2(y; L1)
be the be the minimal contribution of jobs from the set J2 when machine L1 starts
the processing at time K y. Then machine L2 should start the processing at time</p>
      </sec>
      <sec id="sec-4-5">
        <title>K (n2 y). Both machines complete the processing at time K. We have the following</title>
        <p>dynamic programming recursion:
g2(0; L1) = KL2 n2;K + ∑jn=21(K n2 + j)wkj ;
g2(y; L1) = g2(y 1; L1) + KL1 y;K y+1 KL2 (n2 y+1);K (n2 y)+
∑jn=21 2y+1 wkj ; where y = 1; 2; :::; [ n2 ] and L1 2 f1; 2g:</p>
        <p>2</p>
        <p>We keep all values g2(y; 1), g2(y; 2), y = 0; 1; :::; [ n22 ]. If J2 = ∅, we set y = 0,
g2(0; 1) = 0, g2(0; 2) = 0. The time complexity of Stage 2 is O(n2).</p>
      </sec>
      <sec id="sec-4-6">
        <title>At Stage 3, algorithm DP-LinDec-2-UT calculates the contribution of jobs from</title>
        <p>the set J3 into the optimal value of the objective function under the condition that
jobs from the sets J1 and J2 have been already assigned to machines.</p>
        <p>Let J3 ̸= ∅ and g3(z; x; y) be the minimal contribution of jobs from the set J3 when
machine 1 starts the processing of some of these jobs at time x and completes their
processing at time x + z, while machine 2 starts the processing of the remaining part
of these jobs at time K y (n3 z) and completes their processing at time K y.</p>
      </sec>
      <sec id="sec-4-7">
        <title>We have the following dynamic programming recursion:</title>
        <p>g3(0; x; y) = K2 y n3;K y + ∑jn=31(K y n3 + j)wlj ;
g3(z; x; y) = g3(z 1; x; y) + x1+z 1;x+z K2 y (n3 (z 1));K y (n3 z)+
(x + z)wlz (K y (n3 z))wlz ;
where x = 0; 1; 2; :::; [ n21 ], y = 0; 1; 2; :::; [ n22 ], z = 1; 2; :::; n3.</p>
        <p>We keep all values g3(z; x; y), x = 0; 1; :::; [ n21 ], y = 0; 1; :::; [ n22 ], z = 0; 1; :::; n3. If
J3 = ∅, we set z = 0, g3(0; x; y) = 0 for x = 0; 1; :::; [ n21 ], y = 0; 1; :::; [ n22 ]. The time
complexity of Stage 3 is O(n1n2n3).</p>
      </sec>
      <sec id="sec-4-8">
        <title>At Stage 4, algorithm DP-LinDec-2-UT nds an optimal schedule. The total</title>
        <p>cost of an optimal schedule corresponds to the value G = minfG1; G2; G3g, where</p>
        <p>G1 = minfg1(x; 1) + g2(y; 1) + g3(0; x; y)jx = 0; 1; :::; [ n21 ]; y = 0; 1; :::; [ n22 ]; n1 x
K (n2 y + n3)g;</p>
        <p>G2 = minfg1(x; 2) + g2(y; 2) + g3(n3; n1 x; y)jx = 0; 1; :::; [ n21 ]; y = 0; 1; :::; [ n22 ];
n1 x + n3 K (n2 y)g;</p>
        <p>G3 = minfg1(x; 2)+g2(y; 1)+g3(z; n1 x; n2 y)jx = 0; 1; :::; [ n21 ]; y = 0; 1; :::; [ n22 ]; z =
1; 2:::; n3 1; n1 x + z K y; x K (n2 y) (n3 z)g.</p>
        <p>If G = G1 then on machine 1 we reserve x slots starting from the time moment 0
and y slots starting from the moment K y, while on machine 2 we reserve n1 x
slots starting from the time moment 0 and n2 y + n3 slots starting from the moment
K (n2 y) n3.</p>
        <p>If G = G2 then on machine 2 we reserve x slots starting from the time moment 0
and y slots starting from the moment K y, while on machine 1 we reserve n1 x + n3
slots starting from the time moment 0 and n2 y slots starting from the moment
K n2 + y.</p>
        <p>If G = G3 then on machine 1 we reserve n1 x + z slots starting from the time
moment 0 and y slots starting from the moment K y, while on machine 2 we reserve
x slots starting from the time moment 0 and n2 y + n3 z slots starting from the
moment K n2 + y n3 + z.</p>
      </sec>
      <sec id="sec-4-9">
        <title>In the reserved slots we assign jobs of the sets J1, J3 and J2 in nonincreasing order of their weights. The time complexity of algorithm DP-LinDec-2-UT is O(n1n2n3). If for each job i we have pi = 1 and wi = 1, then all jobs are contained only in one of the sets J1, J2, or J3. In this case the complexity of the algorithm will be O(n).</title>
      </sec>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Wan</surname>
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Qi</surname>
            <given-names>X.</given-names>
          </string-name>
          :
          <article-title>Scheduling with Variable Time Slot Costs</article-title>
          . Naval Research Logistics. (
          <year>2010</year>
          ) V. 57, N 2. P.
          <volume>159</volume>
          -
          <fpage>171</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Zhao</surname>
            <given-names>Y.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Qi</surname>
            <given-names>X.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Li</surname>
            <given-names>M.:</given-names>
          </string-name>
          <article-title>On scheduling with non-increasing time slot cost to minimize total weighted completion time</article-title>
          .
          <source>Journal of Scheduling. -DOI 10.1007/s10951-015-0462-9.</source>
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>