Introduction
Traditional scheduling research assumes that the job values are independent of their start and finish times. However, there are practical situations where job values depend on the starting time of a job. For example, in a simplified version of scheduling movies in a theatre, the revenue generated from screening a movie depends on its starting time as the customer interest in a movie deteriorates with the passage of time (Swami et al, 1999). Even though the length of time for which a specific movie is shown is determined by the contract between the movie theatre and the distributor of the movie, movie scheduling decisions that determine their starting times can affect the total profits. In order to formulate and solve the movie theatre scheduling problem, therefore, we assume that all other decisions (like those discussed by Swami et al, 1999) have already been made. It is desired to find the order in which these n movies should be screened so as to maximize total profit.
Several other practical situations fit the above description including the remanufacturing environment with high-technology product (Fleischmann et al, 1997) and web object transmission (Xia and Tse, 2000). In such situations, it is advantageous to consider scheduling problems where job values deteriorate with job starting times and the objective is to find a schedule that maximizes the cumulative job values. Since there is only one machine (like the movie theatre), we consider the single machine scheduling problem with deteriorating job values to maximize the aggregate value of all jobs. Following the three field notation of the scheduling problems by Lawler et al (1993), we will designate this problem as 1|Vj(t)|max
Vj where Vj(t) is the value of job j if it starts at time t and 'max' is used to make clear that the objective is the maximization of value rather than minimizing cost.
Ignoring the capacity constraint, Fisher and Krieger (1981, 1984) proposed a heuristic algorithm for the nonincreasing concave job deterioration job value function. Their algorithm is based on the piecewise linear approximation and always obtains at least 2/3rd of the optimal cumulative job value. Voutsinas and Pappis (2002) developed a heuristic algorithm for the 1|Vj(t)=wj(t+pj)
j|max
Vj problem. However, the effectiveness of their algorithm to find an optimal solution decreases as the problem size grows. Heuristics developed for minimizing a general cost function by Alidaee (1991, 1993) can be used for solving the 1|Vj(t)|max
Vj problem considered in this paper. Apart from the above developments, the 1|Vj(t)|max
Vj problem has not received much attention in the literature. For example, existing literature does not address the issue of the capacity constrained environment with deteriorating job value functions.
This paper considers the 1|Vj(t)|max
Vj problem with and without capacity constraints and shows that, except for some special cases, the general problem is unary NP-hard. In view of its NP-hard nature, heuristics for various forms of the 1|Vj(t)|max
Vj problem are developed and empirically evaluated.
The rest of the paper is organized as follows. We first deal with the problem formulation and complexity including the identification of polynomially solvable special cases and a dominance-based optimization algorithm. Heuristics to find optimal or near-optimal schedules for the 1|Vj(t)|max
Vj problem are then described. After this, the results of the computational experiments for empirically evaluating the proposed algorithms are reported and discussed. Finally, we conclude the paper with a summary and some fruitful directions for future research.
Problem formulation and complexity
In this section, we formulate the 1|Vj(t)|max
Vj problem and show that the general problem is unary NP-hard. However, some special cases are polynomially solvable. To start the discussion in this section, we formally define the 1|Vj(t)|max
Vj problem and describe several types of job value functions analyzed in this paper. Then, we show that the problem with equal processing times is polynomially solvable. Problems with unrestricted job value functions are considered next where it is shown that the 1|Vj(t)=wj-
jt|max
Vj problem is polynomially solvable. Problems with exponential job value functions are shown to be unary NP-hard unless the job value deterioration rate for all jobs is a constant. Utilizing these results, we then show that problems with truncated job value functions and/or capacity constraints are unary NP-hard even for linear job value functions. Finally, we describe a dominance algorithm to find an optimum solution to the 1|Vj(t)|max
Vj problem.
Problem definition and job value functions
Let N={1,2,...,n} be the set of n jobs, available at time zero, that is to be processed on a single machine without interruptions, preemption or inserted idle time. There are no setup times. At any given time, the machine can process only one job. Associated with each job j
N is the processing time of pj and its value Vj(t) which is a non-increasing function of its starting time t. Because of the capacity constraints, the value of any job j may not exceed an upper limit Uj. It is desired to find a schedule that will maximize the total value of all jobs.
To define this problem, consider a schedule
=(
(1),
(2),...,
(n)) of n jobs. Then, the start time tj of job
(j) is given by

Therefore, the total value of schedule
is given by

Then, the problem considered in this paper is one of finding a schedule
such that V(
) calculated using Equations (1) and (2) is maximum.
The value function of each job j, Vj could take various forms. In this paper, we consider cases involving linear and exponential job value functions. Problems involving no capacity constraints are called the unrestricted job values. However, in several situations, the job value may deteriorate up to some time and remain constant after that time. We call this type of job values truncated job values. Further, there may be an upper limit on the value of a job due to certain restrictions, like the maximum number of seats available in a movie theatre. These type of job value functions will be called capacity constrained job values. Based on the above discussion, representative job value functions can be shown in Figure 1.
In this paper, we focus on these cases of job value functions.
Problems with equal processing times
While the general problem is shown to be unary NP-hard later in this section, the equal processing time problem can be polynomially solved as shown below.
Theorem 1
The 1|Vj(t), pj=p
j|max
Vj problem is optimally solvable in O(n3) computation steps by solving an assignment problem.
Proof
Since the processing times of all jobs are equal, the starting time of the job at sequence position i is (i-1)*p, where i=1,...,n. Introduce assignment variables xij (i,j=1,...,n), such that, xij=1 if job j is assigned to sequence position i and=0 otherwise. The problem can be formulated as follows:

subject to:



The above optimization problem represented by (3), (4),(5) and (6) can be converted into an equivalent standard linear assignment problem by subtracting each value Vj((i-1)*p) in the objective function in Equation (3) from maxj
n(Vj(0)). This assignment problem can be formulated in O(n2) computational steps and solved in O(n3) computational steps (Lawler, 1976). 
Unrestricted job value functions
We now resolve the complexity of the 1|Vj(t)|max
Vj problems starting with those involving unrestricted job value functions.
Unrestricted linear job value functions.
We first consider the 1|Vj(t)=wj-
jt|max
Vj problem with unrestricted linear job value function where the value of job j starting at time t is given by Vj(t)=wj-
jt. In order to ensure that job values are not negative, it is assumed that for each job j, wj,
j>0 and wj
j(P-pj) where P=
s=1nps.
Theorem 2
The 1|Vj(t)=wj-
jt|max
Vj problem is optimally solvable in O(n log n) computation steps by arranging jobs in descending order of the
j/pj values.
Proof
Let
=(
(1),
(2),...,
(n)) be a schedule of n jobs where
(j) represents job in sequence position j. Further, let C
(j) be the completion time of job
(j). Then, using Equations (1) and (2), the value of schedule
, V(
) is given by

From Equation (7) above, it is clear that V(
) is maximized by minimizing
j=1n{
(j)C
(j)}, which is the sum of the weighted completion times of all jobs. Therefore, this problem is polynomially solvable in O(n log n) computation steps using Smith's (1956) rule by arranging jobs in descending order of the
j/pj values. 
During the application of above (or heuristics based on similar analysis discussed in a later section), there may be ties that do not cause any problem and can be resolved arbitrarily. However, for its extension to other cases, appropriate tie-breaking rules are required. Therefore, in implementing Theorem 2, we break ties in favour of a job with maximum wj/pj value first, maximum wj value second, and maximum
j value last. However, in case of equal values for all parameters, we select the job randomly.
Unrestricted exponential job value functions.
The value of job j is given by

where Vj(tj) is interpreted as a job value deteriorating function, tj is the starting time, and wj,
j>0. The objective function of the problem is as follows:

Before resolving the complexity of the general 1|Vj(t)=wje-
jtj|max
Vj problem, we note that through a simple job interchange argument, the following special case can be polynomially solved.
Theorem 3
The 1|Vj(t)=wje-
t|max
Vj problem is optimally solvable in O(n log n) computation steps by arranging jobs in descending order of wj/(1-e-
pj) values.
To prove that the 1|Vj(t)=wje-
jt|max
Vj problem and the general 1|Vj(t)|max
Vj problem are unary NP-hard, we define the following 3-partition problem instance which is known to be unary NP-hard (Garey and Johnson, 1979).
Problem complexity
3-Partition problem instance (I): Given 3m+1 positive integers a1,...,a3m and b such that
j=13maj=mb, where each aj>1 is bounded by a polynomial of m and b/4<aj<b/2 for j=1,...,3m; is there a partition of the set j=1,...,3m into m disjoint three-element subsets {S1,S2,...,Sm} such that
j
Skaj=b for k=1,...,m?
In case any one of the aj=1 in the above 3-partition problem, all aj=1 and b=3. This implies that the special case of the above 3-partition problem with aj=1 for some j is trivially solvable in constant time. For this reason, this special case is excluded from our above definition of the 3-partition problem.
Now, we define an instance of the 1|Vj(t)=wje-
jt|max
Vj scheduling problem with the following parameter values.
Scheduling problem instance (Î) Given n=4m-1 jobs consisting of two subsets N1={1,2,...,3m} and N2={3m+1,3m+2,...,4m-1}. For each job j
N1, pj=aj, wj=1-e-aj, and
j=1; and pj=1,
j=1/2, and wj=(1-e-2)*e-{(j-3m)
+(j-3m-1)}/2, for j
N2 where j
=jb-1. It is desired to find a schedule that maximizes
Vj=
[j]=1nw[j]e-
[j]t where [j] is the job at sequence position j.
Lemma 1
The current problem instance Î of the 1|Vj(t)=wje-
jt|max
Vj problem can be constructed from the 3-partition instance I in pseudo-polynomial time.
Proof
Length (I)=3m+1+
i
S
log2(ai)
>3m+1 and Max(I)=b, where
x
represents the least integer greater than or equal to x. To construct instance (Î) of the 1|Vj(t)|max
Vj problem, one needs to compute wj for each job j
N1
N2. For j
N1, wj can be computed through at most aj time divisions and one time addition, which needs at most O(b) computational steps, since aj's are always less than b/2. Similarly, for all j
N2, wj can be computed in O(2*{(m-1)b+m/2+1}) computational steps. Hence to compute all wj, at most O(3mb+2m{(m-1)b+m/2+1}) computational steps are needed. Computational complexity of computing parameter
is O([log2(b)]+[log2(m)]). The other parameters of the current problem instance can be found in constant time. To compute all instances of the current problem will take at most O(4mb+2m{(m-1)b+m/2+1}) computational steps. Hence, the current instance Î of the 1|Vj(t)|max
Vj problem can be constructed in time polynomial in Length (I) and Max (I) of the 3-partition problem instance I. This implies that the current instance Î can be constructed from the 3-partition instance in pseudo-polynomial time (Garey and Johnson, 1979). 
Lemma 2
For instance Î of the 1|Vj(t)=wje-
jt|max
Vj problem, cumulative job value does not depend upon the ordering of jobs in sets Si, 1
i
m, where each Si is the maximal subset of adjoining elements from the set N1.
Proof
By definition of the scheduling problem instance Î, for each job j
Si, aj=pj, wj=1-e-aj, and
j=1. Let Si=(
i(1),...,
i(ri)), where ri is the total number of jobs in Si. Then, the value of
j
Siwje-
jtj in the objective function can be written as

This implies that the objective value does not depend on the order of jobs in sets Si, 1
i
m. 
Lemma 3
In an optimal schedule for instance Î of the 1|Vj(t)=wje-
jt|max
Vj problem, job j
N2 starts at time tj={(j-3m)
+(j-3m-1)}+1 irrespective of the ordering of jobs in subset N1.
Proof
Suppose that in an optimal schedule for instance Î, job i
N1 immediately follows job j
N2. Then,

Substituting the parameter values from the definition of the problem instance Î in Equation (11), we get

where

Since, by definition, pi>1 for i
N1, it follows that -
<A<0. In addition, as each pi is an integer, the starting times of all jobs will be integers. Further, in order to optimize the cumulative job value, starting time of job j, while satisfying condition (12) should be as small as possible. Therefore, in an optimal schedule, job j
N2 starts at time tj given by

From Equation (14), it is clear that the starting time of job j
N2 does not influence the order of jobs in subset N1 nor is influenced by them. 
Theorem 4
The 1|Vj(t)=wje-
jt|max
Vj and 1|Vj(t)|max
Vj problems are unary NP-hard.
Proof
The processing order and starting times of jobs N2 are obvious because of their parameters and above. Therefore, filling other jobs in the time gaps created by the schedules of jobs in N2 will improve the objective function value. With this viewpoint, we consider a complete schedule as shown in Figure 2 where the processing order of jobs will be ({i|i
S1},3m+1,{i|i
S2},3m+2,{i|i
S3},...,4m-1,{i|i
Sm}), where S={S1,S2,...,Sm}={1,...,3m}.
From Figure 2, it follows that the starting time of job 3m+1 is between b and
i
S1ai-b=L1. The starting time of job 3m+2 is between 2b+1 and
i
S1
S2ai+1-2b-1=L2. Similarly, the starting times of jobs 3m+3,...,4m-1, will deviate from points 3b+2,...,mb+m-1 by L3,...,Lm-1. From it follows that the value of
j
Swje-
jtj is not influenced by the ordering of jobs within the sets S1,S2,...,Sm. Further, from Lemma 3, it is clear that the ordering of jobs within sets S1,S2,...,Sm is not influenced by the jobs in subset N2. Using Lemma 2, the objective function for the scheduling problem instance Î defined by Equation (9), Z=
j
N1
N2wje-
jtj can be written as

which simplifies to

Since pj and b are integers, Lk must be integer. Therefore, from Equation (16), it is clear that the objective function Z increases as |Lk| decreases. Hence, the objective function Z will be maximum at |Lk|=0 (
k=1,2,...,m-1). Therefore, substituting Lk=0 in Equation (16), the optimal value of the objective function Z* is given by

Now, if the 3-partition instance I has a solution, then
j
Skaj=b and |Lk|=0
k
m. Therefore, the corresponding scheduling problem instance Î has an optimal solution with value Z* given by Equation (17).
Conversely, if the scheduling problem instance Î has an optimal solution with value Z* given by Equation (17), then
j
Skaj=b and |Lk|=0
k
m. Further, since b/4<aj<b/2 for j=1,...,3m, it follows that each Sk contains exactly three elements. Therefore, the subsets S1,S2,...,Sm is a solution to the 3-partition instance I. Since the 3-partition problem is known to be unary NP-hard, and that the scheduling problem instance Î can be constructed from the 3-partition instance I in pseudo-polynomial time (above), using the results in Garey and Johnson (1979), it follows that the 1|Vj(t)=wje-
jt|max
Vj and 1|Vj(t)|max
Vj problems are unary NP-hard. 
Theorem 4 above can be used to resolve the complexity of several other forms of exponential deterioration function as shown by the following corollary.
Corollary 1
The 1|Vj(t)=wju-
jt, u>1|max
Vj and 1|Vj(t)=wju-
jt, uj>1
j|max
Vj are unary NP-hard.
Truncated job value functions
We now consider the problem where the value of job j remains constant after a certain time. In other words, we consider the job value function of the form, Vj(t)=max(vj,fj(t)) where fj(t) is a nonincreasing function of the start time t of job j and vj=fj(Tj) for some starting time Tj of job j. In other words, the value of a job j deteriorates only up to time Tj and not after that time.
We now show that 1|Vj(t)=max(vj,fj(t))|max
Vj problem is unary NP-hard for any nonincreasing job value function.
Theorem 5
The 1|Vj(t)=max(vj,fj(t))|max
Vj problem is unary NP-hard for any non-increasing job value function.
Proof
To prove this theorem, consider the 1|Vj(t)=max(vj,wj-
jt)|max
Vj problem where for each job j, vj=wj-
jTj. Suppose that in an optimal schedule, subset of jobs started on or before time Tj is
1 and those started after time Tj is
2. Define the deadline of job j, time by which job j must be completed,
j as follows:
j=Tj+pj if j
1 and
j=
if j
2. Then, using the developments similar to those in the proof of Theorem 2, it follows that the problem of finding an optimal schedule for the two subset of jobs
1 and
2 is equivalent to the 1|
j|
wjCj problem (single machine problem to minimize weighted flowtime subject to deadlines) which is known to be unary NP-hard (Lenstra et al, 1977). Since this subset of the special case of the 1|Vj(t)=max(vj,fj(t))|max
Vj problem is unary NP-hard, it follows that the general 1|Vj(t)=max(vj,fj(t))|max
Vj problem is unary NP-hard for any nonincreasing job value function. 
Capacity constrained job value functions
We now consider problems where capacity constraints causes an upper limit U on the value that a particular job can create. Therefore, the capacity constrained job value function may be represented as follows:

where fj(t) is the unconstrained job value function.
If U
minj
nfj(P-mini
npi) where P=
i=1npi, then any sequence is optimal. Further, if U
maxj
nfj(0), the problem reduces to the 1|Vj(t)=fj(t)|max
Vj problem whose complexity has been established above. Therefore, in this section, we consider the non-trivial case of the capacity constrained problem where U does not satisfy the above constraints.
Theorem 6
The 1|Vj(t)=min(U,fj(t))|max
Vj problem is unary NP-hard for any non-increasing job value function.
Proof
Consider a special case of this problem where Vj(t)=min(U,wj-
jt) and U=wj-
jTj.
Then, the job value function can be written as

Let Cj=tj+pj be the completion time of job j and define dj=Tj+pj as its due date. Then, the 1|Vj(t)=min(U,wj-
jt)|max
Vj problem is equivalent to the 1
wjTj (single machine weighted tardiness) problem which is known to be unary NP-hard (Lawler, 1977; Lenstra et al, 1977). Therefore, the 1|Vj(t)=min(U,fj(t))|max
Vj problem is unary NP-hard for any non-increasing job value function. 
Capacity constrained truncated job value functions
The objective function of the capacity constrained problem with truncated job value function is as follows:

If U
minj
nvj, then any sequence is optimal. For other values of U, we now state the problem complexity.
Theorem 7
The 1|Vj(t)=min{U,max(vj,fj(t))}|max
Vj problem is unary NP-hard.
Proof
Follows from above since the 1|Vj(t)=min{U,fj(t)}|max
Vj problem is special case of the 1|Vj(t)=min{U,max(vj,fj(t))}|max
Vj problem. 
Time index formulation
The above problem, regardless of the form of the job value function, can also be formulated as a mixed linear integer program (Sousa and Wolsey, 1992). To do so, for each job j, let xjt=1, if job j is started at time t; and 0 otherwise. Further, let

The problem then may be represented as the following integer program:

Subject to



The first set of equations ensures that each job is scheduled exactly once, whereas the second set of inequalities ensures that at each time, at most one job is executed.
Dominance algorithm
We now describe an optimization algorithm to solve the 1|Vj(t)|max
Vj problem. For this purpose, let V(
) be the total value of a partial (or complete) schedule
containing k jobs expressed as follows:

Now consider two partial schedules
and
' that are different permutations of the same subset of jobs. Then, we state the following known result.
Theorem 8
For any schedules
and
' that are different permutations of the same subset of jobs, V(
)
V(
') implies V(
)
V(
'
).
A schedule
satisfying the conditions of is said to
dominates schedule
'. Based on this, a pure dominance theorem to optimally solve the 1|Vj(t)|max
Vj problem can be described as follows.
Pure dominance algorithm
Step 0: Let L=1 and S={1,2,...,n} be the set of n partial schedules each consisting only of one job j
N. Compute V(
) 

S. Enter Step 1.
Step 1: For each partial schedule 
S, form n-L partial schedules consisting of L+1 jobs by assigning each of the n-L unassigned jobs at sequence position L+1. Let the set of partial schedules so formed be S. Compute V(
) 

S.
Step 2: Group the partial schedules containing the same subset of jobs together, that is, let S={S1,S2,...,Sk}, where for each i
k, Si contains all partial schedules containing the same subset of jobs. For each subset Si, retain the partial schedule
i with maximum V(
i) value, that is, find
i
Si such that V(
i)=max
j
SiV(
j). Enter Step 3.
Step 3: Let L=L+1. If L<n, return to Step 1. Otherwise STOP; the last schedule retained in Step 2 is optimal.
While the above algorithm will optimally solve the 1|Vj(t)|max
Vj problem, it is, however, not likely to be an efficient algorithm. Its computational burden is exponential as in the best case, it will retain
r=1n{nCr} partial schedules.
Proposed heuristics
In view of the NP-hard nature of the problem, we present several heuristics that are based on existing literature. Since several existing algorithms can be used for problems with linear job value functions (by considering their minimum counterparts), we concentrate on developing heuristics for the non-linear job value functions.
Heuristics for unrestricted job value functions
Our first set of heuristics is an adaptation of greedy algorithms. At any sequence position, a greedy selection rule is used to assign a job to that sequence position. The basic steps of this greedy algorithm are as follows:
Algorithm G: basic greedy algorithm
Step 0: Let t=0, U=N={1,2,...,n}, and S=
. Enter Step 1.
Step 1: Let j be the job to be assigned to current sequence position using some selection rule. Enter Step 2.
Step 2: Set S=(S,j), U=(U
j), t=t+pj, and enter Step 3.
Step 3: If U=
, find V(S) using Equations (1) and (2) and STOP, otherwise return to Step 1.
Algorithm G has a computational complexity of O(n2).
It remains to specify the selection rule used in Step 1 of the above algorithm. We now describe several rules to select job j to be assigned to a sequence position in Step 1 above.
Our first heuristic selects a job with maximum job value per unit time at a particular time t.
Algorithm H: highest value heuristic
Step 1: Let j=arg[maxi
U(Vi(t)/pi)] using appropriate tie-breaking rules. Enter Step 2.
Our next heuristic follows the work of Fisher and Krieger (1981, 1984). This algorithm creates a dynamic job savings index for scheduling a job at time t rather than at the end of the schedule. To describe this algorithm, let P=
i
Npi.
Algorithm F: Fisher's greedy algorithm
Step 1: Let j=arg[maxi
U(Vi(t)-Vi(P-pi)/pi)] using appropriate tie-breaking rules.
Enter Step 2.
Alidaee (1993) suggests to approximate Vj(t) by a continuous function over time and hence makes decisions based on the rate of value deterioration rather than the absolute value. To describe this algorithm, let Vj'(t) be the differential of the job value function with respect to t. Step 1 of this algorithm can be described as follows:
Algorithm A: Alidaee's differential algorithm
Step 1: Let j=arg[mini
U(Vi'(t)/pi)] using appropriate tie-breaking rules. Enter Step 2.
Computational experience with algorithm A showed that it did not yield good results. However, its application in reverse, namely using the job selection rule from the last sequence position to the first produced excellent results. Therefore, we describe this revised algorithm as follows.
Algorithm R: Alidaee's reverse differential algorithm
Step 0: Let t=P, U=N={1,2,...,n}, and S=
. Enter Step 1.
Step 1: Let j=arg[mini
U(Vi'(P-t)/pi)] using appropriate tie-breaking rules. Enter Step 2.
Step 2: Set S=(j,S), U=(U
j), t=t-pj, and enter Step 3.
Step 3: If U=
, find V(S) using Equations (1) and (2) and STOP, otherwise return to Step 1.
For the linear job value function, algorithms A and R described above generate an optimal schedule as they implement stated earlier. Therefore, their computational complexity for the linear case can be reduced to O(n log n).
Our next algorithm is an adaptation of the greedy algorithm due to Voutsinas and Pappis (2002). Because of its use of special function, it is applicable to only those objective functions where some sort of weight wj for each job j is available (like in the exponential job value functions considered in this paper). They generate four schedules using the following job selection criteria and select the best schedule.
Algorithm V1
Step 1: Let j=arg[mini
U(pi)] using appropriate tie-breaking rules, similar to the ones described earlier. Enter Step 2.
Algorithm V2
Step 1: Let j=arg[mini
U(pi/wi)] using appropriate tie-breaking rules, similar to the ones described earlier. Enter Step 2.
Algorithm V3
Step 1: Let j=arg[maxi
U(wi)] using appropriate tie-breaking rules, similar to the ones described earlier. Enter Step 2.
Algorithm V4
Step 1: Let j=arg[maxi
U(Vi(pi))] using appropriate tie-breaking rules, similar to the ones described earlier. Enter Step 2.
Then, the Voutsinas and Pappis algorithm selects the schedules with maximum cumulative job values. Thus, for this algorithm we add additional step as follows:
Algorithm V: Voutsinas and Pappis algorithm
Step A: Let S1, S2, S3 and S4 be the schedules found by using Algorithms V1 to V4 above. Select schedule S such that S=arg[max(V(S1),V(S2),V(S3),V(S4))].
The computational complexity of algorithm V can be reduced to O(n log n) since algorithms V1 through V4 can be implemented in O(n log n) computational steps.
We now describe an adjacent pairwise interchange (API) heuristic which can generate a better schedule, if one exists. To describe this algorithm, let
=(
1,
2,...,
n) be the schedule generated by one of the above algorithms with value V(
). Then, the steps of the API heuristic are as follows:
Algorithm I: adjacent pairwise interchange algorithm
Step 0: Let
=(
(1),
(2),...,
(n)) be the initial schedule. Let i=c=1. Enter Step 2.
Step 1: Let
'=(
1,...,
i-1,
i+1,
i,...,
n). If V(
)<V(
'), set
=
' and c=2. Enter Step 2.
Step 2: If i<n-1, set i=i+1 and return to Step 1; otherwise enter Step 3.
Step 3: If c=2, set c=i=1 and return to Step 1; otherwise STOP and accept
as the solution obtained.
Since any change in a pair of jobs can trigger another iteration of the algorithm, the computational complexity of algorithm I is O(n2).
Since algorithm I can be used for any algorithm, we have a total of eight heuristics for the unrestricted 1|Vj(t)|
Vj problem; namely, algorithms, H, F, R, V, HI, FI, RI, and VI. The first four of these eight algorithms have a computational complexity of O(n log n) while the computational complexity of other four heuristics is O(n2+n log n).
Heuristic for truncated job value functions
We now describe adaptation of the heuristics developed above for the truncated job value functions of the form Vj(t)=max(vj,fj(t)). To describe this heuristic, for each job j, we find target time Tj such that vj=fj(Tj). Then, the heuristic based on those heuristics described above is as follows.
Algorithm T: truncated job value algorithm
Step 1: Let
=(
(1),
(2),...,
(n)) be the schedule generated by one of the heuristics for the unrestricted job value function. Let t=0, j=1, and A=B=
. Enter Step 2.
Step 2: If t<T(
(j)), let A=(A,
(j)) and proceed to Step 5; otherwise, enter Step 3.
Step 3: From schedule A, find sequence Aq where q is the least sequence position such that t
(q)
T
(j). Let
. Let
. If
, enter Step 4; otherwise set B=(B,
(j)), t=t-p
(j), and proceed to Step 5.
Step 4: If V
(k)(t
(q)-p
(k)+p
(j))>v
(k), set
; otherwise set
, B=(B,
(k)), and t=t-p
(k). Enter Step 5.
Step 5: Set t=t+p
(j). If j<n, set j=j+1 and return to Step 2; otherwise STOP.
Heuristic for capacity constrained job value functions
For the 1|Vj(t)=min(U,fj(t))|
Vi problem, we adapt the above algorithm T. To do so, we define the target start time of job j
N, Tj such that U=fi(Tj). The Steps 2 and 3 of the above algorithm are modified as below.
Algorithm C: capacity constrained job value algorithm
Step 1: Let
=(
(1),
(2),...,
(n)) be the schedule generated by one of the heuristics for the unrestricted job value function. For each job i
N, find Ti such that U=fi(Ti). Let t=0, j=1, and A=
. Enter Step 2.
Step 2: If t<T(
(j)), let A=(A,
(j)) and proceed to Step 4; otherwise, enter Step 3.
Step 3: From schedule A, find sequence Aq where q is the least sequence position such that t
(q)
T
(j). Let
. Let
. If
, set
; otherwise set A=(A,
(j)). Enter Step 4.
Step 4: Set t=t+p
(j). If j<n, set j=j+1 and return to Step 2; otherwise STOP.
The computational complexity of algorithms T and C is O(n2) in addition to that of getting the schedule in Step 1. Therefore, such improvements of the algorithms for the unconstrained case do not increase the overall complexity of the heuristics.
Heuristic for capacity constrained truncated job value functions
For the 1|Vj(t)=min(U,max(vj,fj(t)))|
Vi problem, we use a combination of algorithms T and C above. First, we solve the problem using algorithm C and then use algorithm T on the resulting schedule.
For algorithms T, C, and CT, any of the algorithms developed earlier can be used as an input schedules. However, in our implementation, we used algorithms HI, FI, and RI as starting schedules for each of the algorithms T, C, and CT.
Computational results
In this section, we report on the results of the computational experiments designed to evaluate the effectiveness and efficiency of the proposed heuristic algorithms in finding good quality schedules. The time index formulation of the problem could not be used to solve the large-sized problems considered in this paper. No other optimization algorithms exist to solve these large problems. For these reasons, for large sized problems, we compared the performance of these proposed heuristic algorithms relative to the best one.
Test problems
In order to test the effectiveness of the proposed heuristics, we considered two forms of the job value functions: Vj(t)=wj-
jt and Vj(t)=wje-
jt. Limited computational tests were also conducted for the job value function Vj(t)=wj(t)-
j used by Voutsinas and Pappis (2002) and found to show that proposed heuristics are superior to those of Voutsinas and Pappis (2002). However, these results are not reported in this paper. For each case, we consider the unrestricted, truncated, capacity constrained, and combined cases.
The parameters for each job were generated on the basis of real-life movie scheduling problem by using uniform random numbers. The processing time and initial job value of each job j
N, pj and wj were integers from a uniform distribution in the range [5,17] and [80,120], respectively. For each job j
N, define


Problem hardness is likely to depend on whether there is a balance between average processing times, capacity constraints, truncation points, and job value deterioration rates. For this reason, three classes of problems for the truncation points, capacity constraints, and job value deterioration rates were generated as shown in Table 1 below.
The number of jobs n=5,10,15,20,50,100,150, and 200. Problems involving 20 or less jobs were classified as small problems while those with more than 20 jobs were considered large problems. For small-sized problems, we solved 30 problems instances for each size while for the large-sized problems, 50 problem instances of each size were solved.
Algorithm effectiveness for small problems
Each problem instance was formulated an integer program and was solved to optimality by CPLEX 7.0 in Solaris 5.8 Environment. The average CPU time for these small sizes of problems on CPLEX 7.0 in Solaris 5.8 Environment was approximately 30 s. Each greedy and adjacent pairwise interchange algorithms were used for each problem instance regardless of the nature of the job value function. In addition, each problem instance was solved using each of the algorithms applicable to the specific job value function being considered. For example, for the truncated and capacity constrained cases, algorithms T and C were used, respectively. Similarly for the combined case, both algorithms T and C were used. However, to keep the tables manageable, algorithms T, C, or TC are represented by T only. However, the designation of specific cases being considered makes the context quite clear.
For each problem instance, the effectiveness of the heuristic algorithm h is determined by optimality gap, OGh (in terms of percentage), which is defined as

where Zh and Zo are solutions obtained by heuristic h and the time-index formulation of the problem, respectively.
Tables 2 and 3 depict the average and maximum values of the optimality gap, OGh for each algorithm h for the small size problems. The highest value heuristic H did not perform as well as others. However, even for this heuristic, the average optimality gap was rarely more than 10%. Among the greedy algorithms, algorithm F, which is based on the Fisher and Krieger's procedure, produced lower average percentage optimality gap for each problem size. The average optimality gap for heuristic F is less than 1% for all problem sizes. In addition, the maximum optimality gap for heuristic F is rarely more than 15%.
For the problem instances tested, algorithms R and V, which are based on the work of Alidaee and Voutsinas and Pappis, did worse. This result is surprising since for the cost minimization case, Alidaee reports that his proposed algorithms yield better results than Fisher and Krieger algorithms. We conjecture that the problem parameters used by Alidaee may have been rather restrictive in empirically evaluating the two algorithms. Job value dependence on the job starting times in our case and completion times in Alidaee's paper could have also have contributed to these surprising results.
Use of the improvement algorithms I, T, and C significantly improved the results of each greedy algorithm. However, on the average, algorithm FI leads to lower percentage optimality gaps than algorithms HI, RI, and VI. The use of algorithms T and C for the truncated and capacity constrained problems dramatically improves the performance of algorithms HI, FI, RI, and VI. In fact, use of algorithms I, T, and C reduces the average and maximum gaps to less than 1 and 9% for all algorithms.
As the problem size increases, the performance of each heuristic decreases, but not significantly. Further, while not shown in the tables, heuristics performed worse on problems with low or high levels of deterioration rate and high level of truncation.
Algorithm effectiveness for large problems
Each problem instance (n=50,100,150, and 200 jobs) was solved using each of the algorithms applicable to the specific job value function being considered. Further, each greedy and adjacent pairwise interchange algorithms were used for each problem instance regardless of the nature of the job value function.
For large job size problems, the average CPU times on CPLEX 7.0 in Solaris 5.8 Environment were greater than 2 h. Therefore, we used the best value of the objective function obtained by any of the heuristic in the same class (like the H, F, R, and V) as a surrogate of an optimal solution value. Therefore, for each set of 50 large problems instances, we have calculated the optimality gap, OGh for each heuristic h as follows:

where
c is the best solution among heuristics from class c.
Tables 4 and 5 show the average and maximum values of the optimality gap, OGh for each algorithm h for the large size problems. The results in Table 4 confirm the conclusions for the small problems. Greedy algorithms based on the Fisher and Krieger's procedure, like algorithm F produced lower average percentage optimality gap for each problem size, the average optimality gap being 4.5% or less. Greedy algorithms based on the work of Alidaee and Voutsinas and Pappis did worse.
Use of the improvement algorithm I significantly improved the results of each greedy algorithm, bringing the average optimality gap to less than 1% for heuristics FI, FIT(C), RI, RIT(C), and VIT(C). However, on the average, algorithm FI leads to lower percentage optimality gaps than algorithms HI, RI, and VI. Further, compared to the results for small problems, the neighbourhood improvement algorithm I produced significantly more improvements for large problems. The use of algorithms T and C for the truncated and capacity constrained problems dramatically improves the performance of algorithms HI, FI, RI, and VI. The maximum optimality gap values in Table 5 show a similar pattern as those for small problems in Table 3. While not shown in Tables 4 and 5, each heuristic performed worse on problems with low or high deterioration rates and low and high capacity restrictions.
From the above computational results, algorithms based on the piecemeal linear approximation of the job value functions suggested by Fisher and Krieger generate the best schedules for the single machine problems with deteriorating job value functions. Algorithm V based on the work of Voutsinas and Pappis consistently performed worse producing optimality gaps greater than heuristic H. However, even for algorithm V, used of proposed improvement heuristics significantly improved its effectiveness.
Conclusions
This paper considered the problem of scheduling a given number of movies in a theatre to maximize total profit. The problem is formulated as one of scheduling jobs on a single machine where the job value deteriorate with its start time and designated by 1|Vj(t)|max
Vj. In view of several practical applications of the problems, different operating configurations, like the limitations on the job values due to the machine capacity constraint were also considered. In addition, this paper analyses cases where the job values may stop deteriorating after a specified starting time.
Except for a some special cases, the 1|Vj(t)|max
Vj problem was shown to be unary NP-hard where the job deterioration function is Vj(t) is a non-increasing function of the starting time of job j. In view of the NP-hard nature of the problem, several heuristic algorithms are developed to find optimal or near optimal schedules for various cases of the 1|Vj(t)|max
Vj problem. Computational results over a large number of problems show that the proposed algorithms generated near-optimal solutions for a large number of problem instances. Among the heuristics tested, heuristic F produced the best results while algorithm V produced the worst results. Further, the use of the adjacent pair-wise interchange algorithm I was found to substantially improve the quality of the solutions obtained by any of the proposed greedy algorithms. Use of algorithms T and C could further improve the results.
While we considered the single machine scheduling problem where the job value deterioration depends on the job starting times, we note that our results and proposed heuristic algorithms can easily be adapted to the problems where the job value deterioration depends on the job completion times. Except for some minor changes in the details of the proofs, all complexity results are valid for the 1|Vj(Cj)|max
Vj problem where Cj is the completion time of job j. Similarly, for the proposed heuristics, equivalent job selection criteria can easily be described for the 1|Vj(Cj)|max
Vj problem.
The development of various heuristic algorithms in this paper also results in some fruitful directions for future research. First, it would be helpful to develop tight bounds and some dominance conditions to develop an effective branch and bound algorithm for the 1|Vj(t)|max
Vj problem. Second, the proposed heuristics can be modified to obtain improved solutions.
One way to do this is to use combinations of the proposed heuristics. For example, algorithms F, H, and R could be used in combination to improve the solution value. Third, it would be interesting to develop heuristics for the 1|Vj(t)|max
Vj problem with specified worse-case performance bounds. Fourth, it would be interesting and useful to develop and evaluate various local search heuristics such as tabu search and genetic algorithms. Finally, extension of the results to schedule movies in a multiplex theatre where several movie screens are available to schedule multiple movies at the same time would enhance the practical utility of scheduling theory. Thus, more research is necessary in the area of scheduling on non-manufacturing sector.
