Allocating procurement to capacitated suppliers with concave

Operations Research Letters 36 (2008) 103 – 109
Operations
Research
Letters
www.elsevier.com/locate/orl
Allocating procurement to capacitated suppliers
with concave quantity discounts
Gerard J. Burke a , Joseph Geunes b,∗ , H. Edwin Romeijn b , Asoo Vakharia c
a Department of Finance and Quantitative Analysis, Georgia Southern University, Statesboro, GA 30460, USA
b Department of Industrial and Systems Engineering, University of Florida, Gainesville, FL 32611, USA
c Department of Information Systems and Operations Management, University of Florida, Gainesville, FL 32611, USA
Received 3 November 2005; accepted 9 April 2007
Available online 30 June 2007
Abstract
We consider a procurement problem where suppliers offer concave quantity discounts. The resulting continuous knapsack problem involves
the minimization of a sum of separable concave functions. We identify polynomially solvable special cases of this NP-hard problem, and
provide a fully polynomial-time approximation scheme for the general problem.
© 2007 Elsevier B.V. All rights reserved.
Keywords: Knapsack problem; Quantity discounts; Nonlinear programming; Approximation algorithms
1. Introduction and motivation
Supplier selection and procurement allocation are key elements of supply chain management. Among surveyed purchasing professionals, quality and delivery terms rank as the top two
evaluation criteria [7,18]. A purchasing manager is typically
mandated to allocate requirements to one or more approved
suppliers. Interestingly, past research [17] finds that purchase
price often dominates allocation decisions. With this type of
allocation behavior in mind and in accordance with internal
production volume economies of scale, many suppliers market
quantity discounts.
When no single approved supplier can meet all material requirements, allocations must be made to multiple suppliers.
When suppliers offer quantity discounts, the resulting allocation problem can be challenging. In its most general form, this
problem is a continuous knapsack problem involving the minimization of the sum of separable concave functions. Motivated
by this problem context, we study the resulting nonlinear and
continuous knapsack problem.
Since quantity discount schemes are widely used as a
bargaining tool and as a means to coordinate supply and
∗ Corresponding author. Tel.: +1 352 392 1464x2012; fax: +1 352 392 3537.
E-mail address: [email protected]fl.edu (J. Geunes).
0167-6377/$ - see front matter © 2007 Elsevier B.V. All rights reserved.
doi:10.1016/j.orl.2007.04.001
demand [19], a substantial amount of related literature exists
from economics, operations, and marketing perspectives. Economic motivation can be found in [3], while [1,8,12] provide
excellent overviews of quantity discount research in operations
and marketing. Related papers to our work include [4,6,9].
Burke et al. [4] examine supplier selection and quantity allocation decisions when suppliers offer constant, linear, incremental, and all-units discount pricing schemes. A branch-and-bound
approach for a related piecewise linear concave cost problem
can be found in [9]. In [6], a (differentiable) concave minimization problem is solved by employing a greedy heuristic solution
approach based on the minimum total cost of sourcing at each
supplier’s capacity limit.
Surprisingly little literature exists on continuous knapsack problems involving separable concave minimization
with upper bounds on variables. A notable exception is [11],
which provides an algorithm for finding local minima. Recent work [15] considers specially structured continuous
knapsack problems involving the minimization of a nonseparable concave function. A sizeable amount of literature
also exists on methods for the more general class of constrained concave minimization (see, e.g., [13,14]), a class
of NP-hard problems. For a recent comprehensive discussion of the literature on nonlinear knapsack problems, please
see [2].
104
G.J. Burke et al. / Operations Research Letters 36 (2008) 103 – 109
Our contributions are threefold. First, we provide a pseudopolynomial-time algorithm for concave separable minimization
over a knapsack constraint. We show how the performance of
this algorithm can be accelerated by exploiting the necessary
generalized Karush–Kuhn–Tucker (KKT) conditions (see [10]).
Second, we consider two practical special cases for which we
provide polynomial-time solution approaches. Third, we provide a tailored fully polynomial-time approximation scheme
(FPTAS) for the general problem, which we show is NP-hard.
The remainder of this paper is organized as follows. Section 2
defines the problem, addresses its complexity, and provides a
pseudopolynomial solution algorithm. Section 3 considers two
practical special cases that lend themselves to polynomial-time
solution. Section 4 provides an FPTAS for the general problem
class.
functions f˜i (qi ) (which provide lower bounds on the original
functional values), and this adjustment is feasible because of
the direction of the inequality in (2).
The concavity of the objective (1) implies that an optimal
extreme point solution exists, which implies that an optimal solution exists with at most one fractional variable, where a fractional variable is defined as a variable qi such that 0 < qi < ui
(proof of this property is based on showing that all extreme
points of the feasible region have at most one fractional variable; details can be found in [5]). In addition, the integrality of
Q and ui for all i ∈ I and the fact that at most one fractional
variable exists at any extreme point imply that all qi take integer values at optimality. In general, however, problem P(Q)
cannot be solved in polynomial time unless P = NP, as the next
proposition indicates.
2. Problem definition and pseudopolynomial solution
approach
Proposition 1. Problem P(Q) is NP-hard.
Consider a manufacturer who requires a quantity Q (a nonnegative integer) of material for production, to be procured from
a number of capacitated suppliers. We assume each supplier
i ∈ I (where I = {1, . . . , N} is the set of N suppliers) uses a
quantity discount pricing schedule, charging the manufacturer
fi (qi ), where fi (qi ) is a nonnegative and concave function, and
qi is the amount allocated to supplier i ∈ I . The capacity of
supplier i is the nonnegative integer value ui , and we assume
without loss of generality that fi (0)=0 for each supplier i ∈ I .
All suppliers are equally qualified in terms of supply quality,
and the manufacturer seeks to procure the required Q units at
minimum total cost. This supplier allocation problem can be
formulated as follows:
P(Q) Minimize
fi (qi )
(1)
i∈I
Subject to
i∈I
qi Q,
0 qi ui ,
(2)
i ∈ I.
(3)
Because of the direction of the inequality in (2), we
can, if necessary, redefine the cost functions as f˜i (qi ) =
min{fi (qi ), fi (ui )}, and we can then assume without loss of
generality that all cost functions are nondecreasing, where the
redefined functions remain concave. We can therefore assume
without loss of generality that fi (ui ) > 0 for all i ∈ I , because
if any fi (ui ) = 0, then, using the redefined functions we have
f˜i (qi ) = 0 for all 0 qi ui . We can then set qi = ui without
loss of optimality and decrease the knapsack problem size accordingly. When all of the original fi (qi ) are nondecreasing,
then an optimal solution exists for P(Q) such that (2) is satisfied at equality. When this is not the case, then this constraint
is tight at optimality under our redefined functions f˜i (qi ), although we may then need to adjust the resulting qi values as
follows. Let q̃i∗ denote the optimal value of qi when using the
redefined functions f˜i (qi ). If f˜i (q̃i∗ ) < fi (q̃i∗ ) then let qi∗ , the
optimal value of qi , equal ui . The objective function in terms
of the original fi (qi ) is now equal to that under the redefined
Proof. Consider the special case of P(Q) where for each i ∈ I ,
fi (0)=0 and fi (qi )=Ki for 0 < qi ui , where Ki > 0, and note
that this function is concave and nonnegative for 0 qi ui .
Clearly, an optimal solution exists such that for each i ∈ I ,
qi = 0 or ui . Thus, this problem is equivalent to solving
min
fi (ui )xi ui xi Q, xi ∈ {0, 1}, i ∈ I ,
i∈I
i∈I
which is a 0/1 knapsack problem, yielding the result.
We next discuss a pseudopolynomial-time algorithm for solving P(Q).
Pseudopolynomial-time algorithm: Given that there is at
most one fractional variable, we can use the following approach. Suppose we arbitrarily select a variable and assume
this variable is fractional. That is, given some variable n, we
allow this variable to take values such that 0 qn un (where
the inequalities allow for degenerate basic solutions). This implies that all other variables must take values at 0 or ui . Given
some value of qn between 0 and un inclusive, say qn , then
define f i = fi (ui ), and let Qn = Q − qn . We next solve the
following 0/1 knapsack problem:
KP(n, qn ) Minimize
f i xi
(4)
i∈I \{n}
Subject to
ui xi Qn ,
(5)
i∈I \{n}
xi ∈ {0, 1},
i ∈ I \{n}.
(6)
Problem KP(n, qn ) can be solved in O(N Q) time in the worst
case. There are N choices for n and un + 1 choices for the
“fractional” value of qn . Letting U = maxi∈I {ui }, if we solve
KP(n, qn ) for each possible (n, qn ) pair, the complexity of
this approach for solving P(Q) is O(U N 2 Q). We can speed
up the computational time required for solving P(Q) when
the fi functions are everywhere locally Lipschitz continuous by utilizing the generalized KKT conditions, as we next
discuss.
G.J. Burke et al. / Operations Research Letters 36 (2008) 103 – 109
Analysis of generalized KKT conditions: When each fi function is concave and everywhere locally Lipschitz continuous,
the generalized KKT conditions for P(Q) are necessary but not
sufficient (see [10] for a discussion of necessity and sufficiency
of generalized KKT conditions). We generically refer to a point
that satisfies the generalized KKT conditions as a “KKT point”.
As we will show, these conditions can reduce the computational
requirements of the dynamic programming approach we discussed. Let denote a KKT multiplier for constraint (2), and
let i and i denote multipliers for the upper and lower bounding constraints (3), respectively. Define jfi (qi ) as the set of
subgradients of the function fi (·) at qi , with j+ fi (qi ) denoting
the right directional derivative at qi and j− fi (qi ) denoting the
corresponding left directional derivative (that is, the right directional derivative at some qi is the rate of change of fi as we increase qi and the left directional derivative is the rate of change
of fi as we approach qi from the left). The set of subgradients
at qi is then equal to the interval [j+ fi (qi ), j− fi (qi )] (note that
jfi+ (0)jfi− (qi )jfi+ (qi ) jfi+ (ui ) for all 0 < qi < ui by
the concavity of fi , for all i ∈ I ). The generalized KKT conditions (in addition to the primal feasibility conditions (2) and
(3)) are written as
jfi (qi ) − + i − i 0,
qi − Q = 0,
i ∈ I,
(7)
(8)
i∈I
i (ui − qi ) = 0,
i ∈ I,
i ∈ I,
(10)
i , i 0,
i ∈ I,
(11)
0.
(12)
We know that an optimal solution exists with at most one fractional qi , i.e., with 0 < qi < ui . For variables at their upper
bounds, we must have i = 0. Letting Iu denote the set of
suppliers at their upper bounds, we must have
j− fi (ui ),
i ∈ Iu .
(13)
Let I0 denote the set of suppliers at their lower bounds (for
these suppliers, i = 0 must hold), where we must have
j+ fi (0),
i ∈ I0 .
given this range, we can use conditions (13) and (14) to fix values of qi prior to solving KP(n, qn ). Note that for any i = n, if
j− fn (qn ) < j− fi (ui ) j+ fi (0), then variable i must have qi =
0 for the resulting solution to satisfy the generalized KKT conditions. If, on the other hand, j+ fn (qn ) > j+ fi (0) j− fi (ui ),
then variable i must have qi =ui for a KKT point. Let Iu (n, qn )
(I0 (n, qn )) denote the set of i ∈ I such that qi must equal ui
(qi must equal 0) for a KKT point. Let If denote the remaining set of “free” variables (not including n), and note that for
i ∈ If , we have j− fi (ui ) j+ fn (qn ) j− fn (qn ) j+ fi (0).
For any variable i ∈ If , in terms of the KKT conditions, we
can set qi to any value between 0 and ui . Given that we have
chosen the basic variable n, however, these variables must take
values of 0 or ui when we solve KP(n, qn ). Thus, these variables will have corresponding binary decision variables in a
reduced form of KP(n,
qn ), which we next describe.
Note that if qn + i∈Iu (n,qn ) ui > Q, then we need not solve
KP(n, qn ), since no possibility of satisfying the KKT conditions
for the given (n, qn ) pair exists. Similarly, if qn +
i∈Iu ∪If ui < Q, then no solution satisfying the KKT conditions for the given (n, qn ) pair exists. Otherwise, we can solve
KP(n, qn ) by solving the following reduced
problem, which we
call KPR (n, qn ). We first reduce Qn by i∈Iu ui , and call the
R
R
resulting value Qn , i.e., Qn = Qn − i∈Iu ui . We next solve
the following reduced problem:
KPR (n, qn ) Minimize
f i xi
(16)
i∈If
(9)
i qi = 0,
(14)
105
Subject to
i∈If
R
u i x i = Qn ,
xi ∈ {0, 1},
i ∈ If .
(17)
(18)
Letting x ∗ denote the solution to the above problem, the resulting objective function
value for
the associated KKT point (if one
exists) is equal to i∈Iu f i + i∈If f i xi∗ +fn (qn ). By using the
generalized KKT conditions before solving the associated reduced 0/1 knapsack problem, we can reduce the computational
effort required for solving each 0/1 knapsack problem, which
reduces the overall time required by the pseudopolynomial-time
algorithm.
3. Polynomially solvable special cases
(15)
The following lemma illustrates that it is possible under certain conditions to identify an optimal solution in O(N log N )
time, which is the time required to sort N suppliers. More
importantly, it leads to polynomial-time solution procedures
for two practical special cases of problem P(Q), discussed in
Sections 3.1 and 3.2. We first index suppliers in nondecreasing
order of minimum price, pimin , where pimin ≡ fi (ui )/ui , and
define I i as the set of all suppliers whose index is greater than
i, i.e., I i = {j ∈ I : j > i}.
In our dynamic programming approach, when we fix values of
n and qn such that 0 < qn < un , this implies a range of possible
values of defined by the interval [j+ fn (qn ), j− fn (qn )]. Then,
Lemma 1. If the first k suppliers on the list fill the knapsack exactly at their upper bounds for some integer k (i.e.,
i∈I \I k ui = Q), then the resulting solution is optimal.
Let supplier n be the fractional (basic) supplier, with 0 qn un
(note that it is possible that qn = 0 and n = 0, or qn = un
and n = 0; thus, we use these boundary points for the “basic”
supplier as well so we do not miss solutions where each supplier
is at one of its bounds). For this supplier, for values of qn strictly
between 0 and un , we must have n = n = 0, and therefore
∈ jfn (qn ).
106
G.J. Burke et al. / Operations Research Letters 36 (2008) 103 – 109
Proof. Allocating qi units to supplier i results in a price per
unit of fi (qi )/qi . Because fi is concave, this price per unit is
minimized at ui , i.e., at a price per unit of pimin = fi (ui )/ui .
Given a solution such that the first k suppliers on the list fit
exactly at Q, any solution that increases qj for j ∈ I k cannot
decrease the average cost per unit of capacity consumption.
Moreover, any solution such that qj = > 0 for some j ∈ I k
and qi = ui − 0 for some i ∈ I \I k leads to at least as high
an average cost per unit. Therefore, no lower total cost feasible
solution exists. If there is a tie in the pimin value on the kth value, and if
all suppliers with pimin values less than or equal to this value
fit in the knapsack exactly, then Lemma 1 is unaffected. If
there is a tie in this value, and including all of these suppliers
at their capacities will exceed Q, then if there is some subset
of suppliers that tied with the kth pimin value such that this
subset of suppliers fits exactly at Q, then the lemma implies that
such a solution is optimal (note, however, that the subset sum
problem that needs to be solved to find this solution is NP-hard
itself). If, however, no subset of these suppliers fits exactly, then
we run into the case where we cannot be immediately certain
whether an optimal solution satisfies the constraint at equality,
or purchases more than Q units. In certain special cases we
can overcome this difficulty and continue to use the sorting
scheme we have described in order to solve the problem in
polynomial time. We henceforth assume suppliers are sorted
in nondecreasing order of pimin , and consider two such cases in
the following subsections.
3.1. Special case I: equal supplier capacities
This section assumes all suppliers have equal capacities, i.e.,
ui = uj = u for all pairs (i, j ) ∈ I . The problem then becomes
polynomially solvable using the sorting scheme described, as
we next discuss. For extreme point solutions, at most one variable qi takes a value strictly between its lower and upper bounds
(which are zero and u). This implies that at optimality, some
subset of qi variables Iu ⊆ I exists such that qi = u for i ∈ Iu
with |Iu |uQ and that |Iu | = Q/u. In addition, the single
fractional variable must take a value qf = Q(mod u) ≡ q̄f . If
we select some variable qj and set qj = q̄f , then the remaining
capacity in the knapsack equals Q/u×u, and the first Q/u
suppliers (excluding supplier j) fill this remaining capacity exactly. Lemma 1 then implies that the resulting solution is an
optimal solution with qj = q̄f . Repeating this for each j ∈ I
ensures finding an optimal solution. This approach requires one
initial objective function evaluation, and (at most) a simple addition and subtraction each time we evaluate a subsequent value
of j, which implies a worst-case complexity of O(N log N ).
3.2. Special case II: specially structured prices and
subgradients
Here, we consider a special case in which supplier capacities
may differ, but the cost functions are locally Lipschitz contin-
uous and the minimum supplier prices and directional derivatives obey a specific ordered relationship. If this ordered relationship holds, we will show that we can continue to utilize
a sorting scheme similar to the one used in the previous special case. Note that for a concave function fi (qi ) with qi ui ,
the minimum (feasible) derivative value occurs at qi = ui and
equals j− fi (ui ). The required condition can then be stated as
pimin min{j− fk (uk )},
k∈I i
i ∈ I \{N }.
(19)
Without loss of generality we assume that, if two or more
suppliers have the same pimin , a secondary ordering based on
j− fi (ui ) is used. Note that (19) does not preclude supplier cost
curves from intersecting. The following lemma leads to an efficient algorithm for cases where (19) holds.
−
Lemma 2. Suppose that pkmin minl∈I k {j
fl (ul )} for some
k ∈ I . Then for any knapsack of size Q i∈I \I k ui , an optimal solution exists in which qk = uk .
Proof. The result holds for Q = i∈I \I k ui by Lemma 1.
Consider an
optimal extreme point solution for a knapsack of
size Q > i∈I \I k ui , and suppose that the amount allocated
to supplier k equals uk − qk for some 0 < qk uk . If qk < uk
then qk serves as the single fractional variable in this solution.
k
In this case, suppose that each member of a subset
S ⊆ I of
suppliers has an allocation
of us , and note that s∈S us qk
must hold because Q > i∈I \I k ui . Suppose we shift qk units
from suppliers in S to supplier k such that for some subset S0 ⊂
S, qs = 0, and for some supplier s ∈ S, we have 0 qs us (qs may be
considered as the new fractional variable). Letting
q̃ = qk − s∈S0 us 0, the cost of the first solution minus the
second equals
fs (us )
fk (uk − qk ) − fk (uk ) +
s∈S0
+ fs (us ) − fs (us − q̃)
= (fk (uk − qk ) − pkmin uk ) +
s∈S0
psmin us
+ (fs (us ) − fs (us − q̃))
min
(pkmin (uk − qk ) − pkmin uk ) + pk+1
+ j− fs (us )q̃
min
= (pk+1
− pkmin )
s∈S0
us
s∈S0
us + (j− fs (us ) − pkmin )q̃ 0,
where the first inequality holds because of the concavity of
fs (qs ). The new solution is at least as good as the first, and
therefore either provides an alternative optimal solution, or we
have a contradiction to the optimality of the initial solution. It
is straightforward to show that this result continues to hold by
applying the same analysis when the initial value of qk = uk ,
and where some s1 ∈ I k may be fractional in the initial solution
and some s2 ∈ I k may be fractional in the second solution, and
where s1 may or may not equal s2 . G.J. Burke et al. / Operations Research Letters 36 (2008) 103 – 109
Lemmas 1 and 2 imply that we can employ a more efficient
algorithm for solving P(Q) when Lemma 2 holds by decomposing the problem into a set of smaller problems. Consider
supplier 1, who has the smallest value of pimin among all suppliers. Lemma 1 says that for a knapsack of size u1 , an optimal
solution fills the knapsack entirely with supplier 1. Lemma 2
then says that for any Q > u1 we have q1 = u1 . By Lemma 2,
for any Q > u1 , we can then solve a new problem with a knapsack of size Q − u1 containing all suppliers other than supplier
1. Given a knapsack of size Q̃ we determine how many suppliers (in index order) fully fit into the knapsack at their capacity
limits without violating Q̃. For these suppliers, Lemmas 1 and
2 imply that we can permanently assign their order quantities
equal to their capacities. If residual capacity remains following these assignments, we then solve a new problem with a
knapsack capacity equal to the residual capacity. Therefore, at
each step of the algorithm we solve a knapsack problem with
a smaller capacity than the previous step. Note that for a knapsack problem of size Q̃, because an optimal solution satisfies
the knapsack constraint at equality, we can assume without loss
of optimality that the capacity of a supplier j is equal to the
minimum between Q̃ and uj . Thus, as we solve smaller knapsack problems we may need to revise downward the supplier
capacities. At each step of the algorithm we only insert suppliers at their capacity values if they fully fit at capacity. If some
supplier is first on the list (in index order) and fully fits at a capacity level that has been revised downward to equal the residual capacity from a previous step, then this supplier must take
up the entire residual capacity, at which point the algorithm
terminates. This supplier is then actually assigned at a fraction
of its original capacity (and this can happen at most one time
in the algorithm). The algorithm, which we call algorithm KP
(for Knapsack Partition) is summarized as follows:
Algorithm KP.
1. Set Q̃ = Q, I¯1 = ∅, I¯0 = I , and qi = 0 for all i.
2. Set ũi = min{ui , Q̃} and p̃imin = fi (ũi )/ũi for all i ∈ I¯0 and
sort all suppliers in I¯0 in nondecreasing order of p̃imin .
3. Insert suppliers in I¯0 into a knapsack of size Q̃ in index
order as long as they
index of the first
fit. Let k denote the supplier such that i∈I¯0 \I k−1 ũi Q̃ and i∈I¯0 \I k ũi > Q̃.
For i ∈ I¯0 \I k−1 , set qi = ũi , let E = Q̃ − i∈I¯0 \I k−1 ũi , and
remove i from I¯0 and insert i into I¯1 .
4. If E =0, stop with an optimal solution. Otherwise, set Q̃=E
and return to step 2.
Lemma 2 allows setting Q̃ = E in step 4 and then solving
a smaller knapsack problem with capacity E containing only
items in I¯0 . Algorithm KP requires sorting at most N suppliers
at each step; in the worst case we may require this sorting O(N )
times, resulting in a worst-case complexity of O(N 2 log N ).
Ties in p̃imin can occur when we revise a supplier’s capacity
to Q̃ in the algorithm. Because of the algorithm’s structure,
we only need to worry about ties in p̃imin for the first supplier
in the list, and only in this case when all suppliers tied for
the lowest value of p̃imin have capacities that, when summed
107
together, exceed Q̃. If we also have ties in the secondary sorting
scheme (j− fi (ui )) then Lemma 2 indicates that we can insert
these in arbitrary order without loss of optimality. If we have a
set of suppliers that are tied in the primary and secondary sort
orders, and the sum of the upper bounds of these suppliers will
exceed the remaining knapsack capacity, then we can choose
any capacity feasible subset of these suppliers, and proceed to
the subsequent iteration.
4. Fully polynomial-time approximation scheme
This section provides an FPTAS for P(Q) which, given some
> 0, runs in polynomial time in N and 1/, and provides an
objective function value of no more than (1 + )z∗ , where z∗
is the optimal solution value. Note that our approach for developing an FPTAS is related to the approach employed in [16]
for capacitated economic lot-sizing.
4.1. Nondecreasing supplier revenue
We first provide a “budget-based” dynamic program for solving P(Q). Define Fi () as the maximum amount of capacity in
the constraint consumed using a budget of and including all
suppliers up to (and including) supplier i. The optimal solution
value is given by the smallest such that FN () Q. We assume a known budget upper bound exists, which we denote by
B (we later discuss how to determine a suitable value of B).
We begin by solving
F1 () = max{q1 |f1 (q1 ) , 0 q1 u1 },
= 0, . . . , B.
Because f1 (q1 ) is a univariate nondecreasing concave function
with f1 (0) = 0, the feasible region of this problem is convex.
If more than one value of q1 on the interval [0, u1 ] exists such
that f1 (q1 ) = or if f1 (u1 ) < , then f1 (q1 ) holds for all
q1 ∈ [0, u1 ] and the constraint f1 (q1 ) is redundant (because
f1 (q1 ) is nondecreasing and concave). In this case, F1 () = u1 .
Otherwise, letting q1u denote the unique value on the interval
[0, u1 ] such that f1 (q1u ) = , we have that F1 () = q1u . It is
therefore easy to determine F1 () for a well-defined concave
function f1 , with the bottleneck operation consisting of finding
the root of f1 (q1 ) − = 0. In the worst case finding such a
root (if one exists, which occurs if f1 (u1 ) > ) takes O(log u1 )
using binary search. We next consider
max
F2 () = max
=0,1,..., q2 =0,1,...,u2
{F1 () + q2 |f2 (q2 ) − } .
For a given , the inner maximization problem can be solved
as in the previous case in O(log u2 ) time. The general form of
the recursion is given by
max
Fi () = max
=0,1,..., qi =0,1,...,ui
{Fi−1 () + qi |fi (qi ) − } ,
108
G.J. Burke et al. / Operations Research Letters 36 (2008) 103 – 109
and the complexity of the inner maximization problem for a
given and is O(log ui ). Computing Fi () for a given i and
given therefore requires O( log U ) operations (recall that
U = maxi∈I {ui }). Since there are B values of , and N values
for i, the overall recursion requires O(N B 2 log U ) time, which
is effectively pseudopolynomial in the upper bound on the
budget B.
Budget scaling approach: Let K denote some positive integer less than or equal to B. For i ∈ I and ∈
{0, K, 2K, . . . , (
B/K + N )K}, define Gi () as the maximum capacity that can be consumed using the first i suppliers,
with a budget of no more than , when the budget allocated to
each supplier is a multiple of K. We can then compute Gi ()
for all i ∈ I and ∈ {0, K, 2K, . . . , (
B/K + N )K} with a
computational effort of no more than O(N (B/K + N )2 log U ).
Proposition 2. A value of ∈ {0, K, 2K, . . . , (
B/K+N )K}
exists such that GN ()Q; i.e., restricting ourselves to this
set of values permits finding a feasible solution if one exists.
Furthermore, the smallest value of from this set such that
GN ()Q has a value less than or equal to z∗ + N K.
Proof. Consider an optimal solution to the problem with optimal objective function value z∗ , and let ri denote the cost
contributed to the total by supplier i in this solution. If we allocate a budget amount equal to (
ri /K + 1) K ri to each
supplier i, then each qi will be at least as large as that in the
optimal solution, and the resulting solution when applying our
scaling algorithm therefore produces a feasible solution using
these budget allocations. The following inequalities show that
we implicitly account for this set of budget allocations in our
scaling algorithm:
(
ri /K + 1)K
i∈I
ri /K K + N K = z∗ /KK + N K.
i∈I
This last term is less than or equal to both z∗ + N K and
(
B/K + N)K which implies the results stated in the proposition. Upper bound on optimal solution value: Next, we show that
we can determine an upper bound on z∗ with a value no greater
than Nz∗ in polynomial time. To do this, we first wish to determine the smallest value L such that a feasible solution exists
where each supplier contributes no more than L to the objective
function. Such a value implies an upper bound of NL on the optimal solution. Note that, in an optimal solution, each supplier
contributes no more than z∗ to the objective function, and therefore Lz∗ . We have therefore that the upper bound N L N z∗ .
Given any positive value l, we can determine whether or not a
feasible solution exists such that each supplier’s contribution is
no more than l in O(N ) time as follows. For each supplier i, let
q̂i = max {qi | fi (qi )l}, and note that a feasiblesolution exists satisfying the required condition if and only if i∈I q̂i Q.
Note that each q̂i is nondecreasing in l, which implies that we
can find the minimum value L in polynomial time using binary
search.
Choice of K for FPTAS: The condition on the bound
B N z∗ implies B/N z∗ . Recall that our scaled dynamic
program when using budget multiples of K gives a solution that exceeds z∗ by at most NK. Suppose we choose
K =max{
B/N 2 , 1} and note that when K =1 we find an optimal solution. Suppose, therefore, that K = B/N 2 in which
case KN = B/N 2 N B/N z∗ . Observe that, in this
case, the complexity bound of O(N (B/K +N )2 log U ) applies.
This is of course polynomial if B/K N . Suppose therefore
that B/K > N . If B/N 2 > 1 then K =
B/N 2 which implies
K > B/2N 2 ; if B/N 2 1 then K =1 B/N 2 . In either case
we have K B/2N 2 , or B/K 2N 2 /. This implies that our
complexity bound is no worse than O(N (2N 2 / + N )2 log U ),
which can be expressed as O((N 5 /2 ) log U ).
Note that if the functions fi are differentiable and a root of
the equation fi (qi ) = can be found in constant time, then
the log U term can be dropped from the complexity bound. In
either case, however, the resulting complexity is polynomial in
the problem size.
Acknowledgment
This work was partially supported by NSF Grants #DMI0322715 and #DMI-0355533, and a Summer Research Grant
awarded to Asoo J. Vakharia by the Warrington College of
Business Administration.
References
[1] W.C. Benton, S. Park, A classification of literature on determining the
lot size under quantity discounts, European J. Oper. Res. 92 (1996)
219–238.
[2] K.M. Bretthauer, B. Shetty, The nonlinear knapsack problem—algorithms
and applications, European J. Oper. Res. 138 (2002) 459–472.
[3] J.M. Buchanan, The theory of monopolistic quantity discounts, Rev.
Econom. Stud. 20 (3) (1952–1953) 199–208.
[4] G. Burke, J. Carrillo, A.J. Vakharia, Heuristics for sourcing from multiple
suppliers with alternative quantity discounts, European J. Oper. Res.
(2007) forthcoming.
[5] G.J. Burke, Sourcing strategies in a supply chain, Doctoral Dissertation,
University of Florida, 2005.
[6] S.S. Chauhaun, J.-M. Proth, The concave cost supply problem, European
J. Oper. Res. 148 (2003) 374–383.
[7] G.W. Dickson, An analysis of vendor selection systems and decisions,
J. Purchasing 2 (1966) 257–267.
[8] R.J. Dolan, Quantity discounts: managerial issues and research
opportunities, Marketing Sci. 6 (1) (1987) 1–22.
[9] S. Erenguc, S. Tufekci, A branch and bound algorithm for a dynamic
single-item multi-source dynamic lot sizing problem with capacity
constraints, IIE Trans. (1987) 73–80.
[10] J.B. Hiriart-Urruty, On optimality conditions in nondifferentiable
programming, Math. Programming 14 (1978) 73–86.
[11] J.J. Moré, S.A. Vavasis, On the solution of concave knapsack problems,
Math. Programming 49 (3) (1991) 397–411.
[12] C.L. Munson, M.J. Rosenblatt, Coordinating a three level supply chain
with quantity discounts, IIE Trans. 33 (2001) 371–384.
[13] P.M. Pardalos, J.B. Rosen, Methods for global concave minimization: a
bibliographic survey, SIAM Rev. 28 (1986) 367–379.
[14] P.M. Pardalos, J.B. Rosen, Constrained global optimization: algorithms
and applications, in: Lecture Notes in Computer Science, vol. 268,
Springer, Berlin, New York, 1987.
G.J. Burke et al. / Operations Research Letters 36 (2008) 103 – 109
[15] H.E. Romeijn, J. Geunes, K. Taaffe, On a nonseparable convex
maximization problem with continuous knapsack constraints, Oper. Res.
Lett. 35 (2) (2007) 172–180.
[16] C.P.M. Van Hoesel, A.P.M. Wagelmans, Fully polynomial approximation
schemes for single-item capacitated economic lot-sizing problems, Math.
Oper. Res. 26 (2) (2001) 339–357.
109
[17] R. Verma, M.E. Pullman, An analysis of the supplier selection process,
Omega 26 (6) (1998) 739–750.
[18] C.A. Weber, J.R. Current, W.C. Benton, Vendor selection criteria and
methods, European J. Oper. Res. 50 (1991) 2–18.
[19] Z.K. Weng, Channel coordination and quantity discounts, Management
Sci. 41 (9) (1995) 1509–1522.