Allocation of Divisible Goods Under Lexicographic Preferences
CHAPTER 5 SUPPLIER SELECTION BY LEXICOGRAPHIC METHOD...
-
Upload
vuongduong -
Category
Documents
-
view
230 -
download
5
Transcript of CHAPTER 5 SUPPLIER SELECTION BY LEXICOGRAPHIC METHOD...
93
CHAPTER 5
SUPPLIER SELECTION BY LEXICOGRAPHIC
METHOD USING INTEGER LINEAR PROGRAMMING
5.1 INTRODUCTION
The SCMS model is solved using Lexicographic method by using
LINGO software. Here the objectives are ranked and they along with its trade
off values are brought as constraints for evaluation of the subsequent
objectives. Since the objectives are brought into the model as constraints, the
purchase manager will be able to control the defectives and late deliveries of
the shipment to be received from various vendors and put it under certain
limit depending on the company’s policy prior to the selection, which is the
greatest advantage of using this model. Weber et al (2000) generated weights
for quantity allocation that is done in constraint method. But these cannot
control the defectives and late deliveries prior to the selection and quantity
allocation, because the defectives and late deliveries may exceed the company
policy entailing the reallocation of order quantity. This chapter explores the
use of Lexicographic approach for the proposed research and its advantages.
5.2 WHAT IS LEXICOGRAPHIC METHOD?
This method involves a process of ranking objectives according to
the most important criterion. The top subset is identified according to the first
most important criterion, and the alternatives in this subset are ranked
according to the second most important criterion, and so on, until a single
94
alternative left or all criteria have been examined. In the lexicographic method
it is required to rank order the importance of each behavior relative to the
other behaviors. Assume that the behaviors are ranked in decreasing order of
importance O1, O2,...,On. Then a sequential elimination process is started by
solving the following sequence of problems until either a unique solution is
found or all the problems are solved:
P1 : max O1(x), x X
P2 : max O2(x), x X 1
.....
Pi : max Oi(x), x X i-1
Xi-1 = { x|x solves P i-1 }, i = 2,..., n+1,.....
The basic idea is that the first objective is used to screen the
solutions of the second objective and so on. A famous application is in
university admittance where students with highest grades are allowed in any
college they choose. The second best groups are allowed only the remaining
places and so on.
5.2.1 Applicability of lexicographic method to supplier selection
The lexicographic method involves solving multiple optimization
problems in sequence, rather than minimizing a single function once. The first
step in this method is to categorize objective functions into different levels in
order of importance from one to k, where k is the index for the final level.
Then the following problems are solved one after another in order of
importance while keeping optimized results, Fj ( X j* ), constrained for the
successive problems :
95
Find x R n such that
Min F i ( x )
subject to
Fj ( x ) Fj ( xj * )
where j = 1,2 ….., i-1; i1 and i=1,2,…,k
As the method proceeds, the number of constraints grows up to k-1
until an optimal solution x is found.
In this research, on the first level the most significant criterion is
selected and then the suppliers are compared according to this criterion.
Hence initially the supplier selection criteria are ranked in order of
importance. Suppliers are first evaluated on the most important criterion. If a
supplier satisfies this criterion much better than the other suppliers then we
choose it, if not we compare the suppliers with respect to a second criterion.
Hence here once the designer ranks the objectives in order of importance, the
optimum solution X* is then found by minimizing the objective functions
starting with the most important and proceeding according to the order of
importance of the objectives. Let the subscripts of the objectives indicate not
only the objective function number, but also the priorities of the objectives.
Thus f1(X) and fk(X) denote the most and least important objective functions,
respectively. The first problem is formulated as
Minimize f1(X)
subject to
gj(X) 0, j=1,2,…,m
and its solution
X1* and f1
* = f1(X1*) is obtained.
96
Then the second problem is formulated as
Minimize f2(X)
subject to
gj(X) 0, j=1,2,…,m
f1(X) f1*
The solution of the problem is obtained as X2* and f2* = f2(X2
*).
This procedure is repeated until all the k objectives have been
considered. The ith problem is given by
Minimize fi(X)
subject to
gj(X) 0, j=1,2,…,m
fl (X) fl*, l=1,2,…,i-1
and its solution is found as
Xi* and fi
* = fi(Xi*).
Finally, the solution obtained at the end (i.e., Xk*) is taken as the
desired solution X* of the original multi-objective optimization problem.
5.3 EVALUATION OF THE MODEL USING LINGO
The model furnished in the previous chapter is solved considering a
case from a leading textile machinery-manufacturing firm. As indicated in the
solution methodology the criteria selected or ranked with the first objective as
quality followed by delivery rate and cost.
97
5.3.1 An introduction to LINGO
This research uses Lindo Systems’ Lingo 7.0 for solving this
model. LINGO is a simple tool for utilizing the power of linear and nonlinear
optimization to formulate large problems concisely, solve them, and analyze
the solution. LINGO provides a completely integrated package that includes a
powerful language for expressing optimization models, a full featured
environment for building and editing problems, and a set of fast built-in
solvers.
5.3.1.1 Lingo built in solvers
Unlike many modeling packages, all of the LINGO solvers are
directly linked to the modeling environment. This seamless integration allows
LINGO to pass the problem to the appropriate solver directly in memory
rather than through more sluggish intermediate files. LINGO has four solvers
it uses to solve different types of models. These solvers are direct solver,
linear solver, nonlinear solver, branch and bound manager. LINGO is
designed, so the process of solving the model requires as little input from the
user as possible. When the solve command is initiated, LINGO analyzes the
problem and, when possible, reduces the problem and even substitutes out
variables. Based upon the models structure, LINGO automatically selects the
appropriate solver and intelligently adjusts internal parameters.
5.3.1.2 Linearization
LINGO's linearization capabilities can automatically convert many
non smooth functions and operators to a series of linear, mathematically
equivalent expressions. Similarly, the product of a continuous and binary
variable can also be linearized. Many non smooth models may be entirely
98
linearized. This allows the linear solver to quickly find a global solution to
what would have otherwise been an intractable problem.
The LINGO solvers are all part of the same program. To solve a
model, the direct solver first computes the values for as many variables as
possible. If the direct solver finds an equality constraint with only one
unknown variable, it determines a value for the variable that satisfies the
constraint. The direct solver stops when it runs out of unknown variables or
there are no longer any equality constraints with a single remaining unknown
variable. Once the direct solver is finished, if all variables have been
computed, LINGO displays the solution report. If unknown variables remain,
LINGO determines which solvers to use on a model by examining its
structure and mathematical content. For a continuous linear model, LINGO
calls the linear solver. If the model contains one or more nonlinear
constraints, LINGO calls the nonlinear solver. When the model contains any
integer restrictions, the branch-and-bound manager is invoked to enforce
them. The branch-and-bound manager will in turn call either the linear or
nonlinear solver depending upon the nature of the model.
The linear solver in LINGO uses the revised simplex method with
product form inverse. A barrier solver may also be obtained, as an option, for
solving linear models. On linear integer models, LINGO does considerable
preprocessing (i.e., adding constraint “cuts” to restrict the non-integer feasible
region). These cuts will greatly improve solution times for most integer
programming models.
5.3.2 Developing LINGO model
In general, an optimization model will consists of the following
three items
99
Objective Function
The objective function is a formula that expresses exactly what it is
you want to optimize. In business oriented models, this will usually be a profit
function you wish to maximize, or a cost function you want to minimize.
Variables
Variables are the quantities that we have under our control. We
must decide what the best values of the variables are. For this reason,
variables are sometimes also called decision variables. The goal of
optimization is to find the values of a model's variables that generate the best
value for the objective function, subject to any limiting conditions placed on
the variables.
Constraints
Almost without exception there will be some limit on the values the
variables in a model can assume-at least one resource will be limited (e.g.,
time, raw materials, department's budget, etc.). These limits are expressed in
terms of formulas that are a function of the model's variables. These formulas
are referred to as constraints because they constrain the values the variables
can take.
LINGO provides very easy commands and macros for specifying
the model with its variables and constraints. Once the program is developed,
and on clicking solve, LINGO will invoke the appropriate internal solver to
begin searching for the optimal solution to the model.
100
5.3.2.1 Monitoring the progress of the solver
When the solver starts, it displays a solver status window on the
screen which is useful for monitoring the progress of the solver and the
dimensions of the model.
Variable box
The Variables box shows the total number of variables in the
model.
Constraint box
The Constraints box shows the total constraints and the number of
these constraints that are nonlinear. A constraint is considered nonlinear if
one or more variables appear nonlinearly in the constraint.
Computation time
The Elapsed Runtime box shows the total time used so far to
generate and solve the model.
Optimizer Status box
The Optimizer Status box shows the current status of the optimizer
and a description of the fields.
Once the solver can no longer find better solutions to the model, it
will terminate in either the "Global Optimum" or "Local Optimum" state. If
the model does not have any nonlinear constraints, then any locally optimal
101
solution will also be a global optimum. Thus, all optimized linear models will
terminate in the global optimum state.
5.3.2.2 Solution report
When LINGO is done solving the model, it indicates the number of
iterations it took to solve the model, the maximum profit, reduced costs, slack
or surplus and Dual Price. A variable’s reduced cost can be the amount by
which the objective coefficient of the variable would have to improve before
it would become profitable to give the variable in question a positive value in
the optimal solution. Or it can be the amount of penalty paid to introduce one
unit of that variable into the solution.
The Slack or Surplus column in a LINGO solution report tells how
close is to satisfying a constraint as equality. This quantity, on less than or
equal constraints, is generally referred to as slack. On greater than or equal
constraints, this quantity is called a surplus. If a constraint is exactly satisfied
as equality, the slack or surplus value will be zero.
5.4 VENDOR SELECTION AND ORDER ALLOCATION
WITHOUT CONSIDERING QUANTITY DISCOUNTS
A description on the step by step approach in evaluating this model
using LINGO is described in this section.
5.4.1 Step 1: Defining the model
There are three basic steps to define the model – definition of the
objective function, variables and constraints. As indicated in the previous
chapter, the following variables are used for defining the model
102
VENDOR (I) - The name of the vendor
CAPACITY - The maximum capacity of components that a
vendor can supply
PERCENT_DEF - Percentage of defectives that is expected from the
vendor. It gives the number of defectives in a lot of
100. Here the values are represented as fractions
i.e., if percent defective is 2.5% for a vendor then it
is given as 0.025.
DELIVERY_LATE - This gives the number of items delivered late in a
lot of 100. And this is also represented in fractions.
COST - The cost of the component supplied from a
particular vendor
MIN_BUS - The minimum business that is required to be done
with the vendor.
MIN_QTY - The minimum quantity that a vendor expects to be
supplied to a manufacturer.
SELECT - A variable which determines the selection of vendor
from the list of vendors.
SUP_DET - This option denotes the order quantities allocated to
the specific vendor.
5.4.1.1 Objective function
Consider the model indicated in Chapter 3: Here the objective is to
minimize the cost, number of late deliveries and number of defectives. The
Lingo model window with the objective definition is as shown in Figure 5.1.
103
Figure 5.1 Lingo model window for the objective function
5.4.1.2 Variables
The variables define what should be controlled. In the given
problem, the variable SELECT (I) determine, whether the vendor needs to be
selected or not. SUP_DET (I, J) determine the order quantities to be allocated
by Manufacturer J to vendor I. They are defined in Lingo as
@FOR( VENDORS( I): @BIN( SELECT( I)));
@FOR( LINKS( I, J): @GIN( SUP_DET(I,J)));
where SELECT (I) can take only binary values (1/0), BIN denotes Binary
Integer Number. SUP_DET (I, J) can take integer variables and hence
denoted as GIN (General Integer Number).
104
5.4.1.3 Constraints
Next the constraints must be input. These constraints are written
using the defined variables as indicated in Figure 5.2 in Lingo.
Figure 5.2 Lingo window indicating the constraints
5.4.2 Step 2: Defining the tradeoff values
The objectives are considered one by one with the trade-off applied
between the objectives which then help in achieving the final objective cost.
Considering only the quality objective, the vendors V1, V2, V4, and V5 are
selected with their order allocation (SUP_DET) as indicated in Table 5.1.
Total Supply = 600+211+543+700 = 2054.
Total Defectives = vendor
) i F(PERCENT_DE *] i SUP_DET[
= 600*0.025 +211* 0.045+543*0.035 +700*0.015
= 54 (Global optimum)
Non-Defectives = 2054 -54=2000.
105
Global optimal solution found at step: 1019 Objective value: 54.00000 Branch count: 693 Export Summary Report: Transfer Method: OLE BASED (Object Linking and Embedding) Ranges Specified: 2
SUP_DET SELECT
Ranges Found: 2 Range Size Mismatches: 0 Values Transferred: 14
Model Title: Vendor Selection Quality Variable Value Reduced Cost
SELECT( V1) SELECT( V2) SELECT( V3) SELECT( V4) SELECT( V5) SELECT( V6) SELECT( V7) SUP_DET( V1, S1) SUP_DET( V2, S1) SUP_DET( V3, S1) SUP_DET( V4, S1) SUP_DET( V5, S1) SUP_DET( V6, S1 SUP_DET( V7, S1)
1.000000 1.000000 0.0000000 1.000000 1.000000 0.0000000 0.0000000 600.0000 211.0000 0.0000000 543.0000 700.0000 0.0000000 0.0000000
0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.2500000E-01 0.4500000E-01 0.5000000E-01 0.3500000E-01 0.1500000E-01 0.6000000E-01 0.5900000E-01
Demand is met exactly with least number of defectives satisfying all the
constraints. As per the lexicographic method a constraint for number of
defectives is fixed in the verdict of purchase manger and company policy, and
the model is solved for the minimum number of late deliveries.
Table 5.1 Lingo solution report for quality objective
106
5.4.2.1 Sensitivity analysis for determining the tradeoff values
Sensitivity analysis by varying the different objectives and
determining its solution helps in fixing the upper limit and the trade off
values. From the global optimum value, the quality is relaxed in steps of 5 and
its corresponding delivery is determined as in Table 5.2. The graph is plotted
as in Figure 5.3. It is found that there is no appreciable decrease in late
deliveries when quality objective is relaxed beyond 75. Say if the company is
also not willing to take more than 75 defectives; the quality is fixed to be 75.
Now for this quality, the delivery objective is taken and relaxed in steps of 5
to finds its corresponding cost objective.
.
Table 5.2 Various quality and delivery values without quantity
discounts using ILP
Quality (Number of defectives)
Late deliveries (Global optimum)
54 113.43 60 94.53 65 51.82 70 44.30 75 38.60 80 37.55 85 36.45
107
30405060708090
100110120
50 55 60 65 70 75 80 85 90Defectives
Late
del
iver
ies
Figure 5.3 Sensitivity analysis for defectives and late deliveries without
discounts using ILP
Table 5.3 shows the relaxation for late deliveries and its corresponding cost.
From Figure 5.4, there is no appreciable difference in price objective when
delivery objective is relaxed beyond 55. Hence the trade off values for quality
and delivery objectives are fixed to be 75 and 55 respectively. Based on
which the model is updated with these trade-off values as in Figure 5.5.
Table 5.3 Various quality, delivery and cost values without quantity
discounts using ILP
Quality (Number of defectives)
Number of late deliveries Cost (Rs.)
75 40 22891.00
75 45 22814.00
75 50 22513.75
75 55 22392.80
75 60 22392.80
108
2230022400225002260022700228002290023000
35 40 45 50 55 60 65Late deliveries
Cos
t in
Rs.
Figure 5.4 Sensitivity analysis for late deliveries and cost without
discounts using ILP
Figure 5.5 Lingo model for considering objectives with trade-off
5.4.3 Step 3: Defining the input to the model
The next step is to input the data for solving the model. The data for
7 vendors collected from the textile machinery-manufacturing firm were
109
indicated in chapter 3. These details are obtained through the past history of
the vendors. In Figure 5.6, capacity indicates the maximum capacity a vendor
can deliver, Percent_Def is the percentage of defectives, Delivery_Late is the
percentage of late deliveries and Cost is the cost per component. The
purchasing department also has a minimum and maximum business which is
the minimum and maximum order quantities that can be placed for each
vendor. For this problem the minimum and maximum business are 100 and
1200 respectively. Hence if a vendor’s capacity is beyond these limits, this
model takes care of allocating the quantities to the vendors appropriately.
Figure 5.6 Input data for LINGO software without price breaks
5.4.4 Step 4: Solve the model and analyze the status
Once the problem is formulated and the inputs are given, LINGO
will invoke the appropriate internal solver to begin searching for the optimal
solution for the model. When the solver starts, it displays a solver status
window on the screen as indicated in Figure 5.7.
110
Here the solver status window indicates there are 14 variables and
32 constraints. The solver takes 6010 iterations and 6993 branches to get the
global optimum solution. The current value of the objective function is
22392.8 and also Objective value of best integer solution found is also
22392.8.
Figure 5.7 Lingo solver status window without considering quantity
discounts
5.4.5 Step 5: Examine the solution report
The solution report gives complete details on how the solution has
arrived like the number of iterations it took to solve the problem, the exact
step where it found the solution and the like as described in the Table 5.4. The
vendors selected and orders allocated are as indicated in Table 5.4.
111
Table 5.4 Lingo solution report without considering quantity discounts
Solution report from LINGO Global optimal solution found at step : 6010 Objective value : 22392.75 Branch count : 6993 Model Title: : VENDOR SELECTION
Variable Value Reduced Cost
DEMAND(S1) 2000.000 0.0000000 SELECT(V1) 1.000000 0.0000000 SELECT(V2) 1.000000 0.0000000 SELECT(V3) 0.000000 0.0000000 SELECT(V4) 0.000000 0.0000000 SELECT(V5) 1.000000 0.0000000 SELECT(V6) 1.000000 0.0000000 SELECT(V7) 0.000000 0.0000000 MIN_BUS(V1) 100.0000 0.0000000 MIN_BUS(V2) 100.0000 0.0000000 MIN_BUS(V3) 100.0000 0.0000000 MIN_BUS(V4) 100.0000 0.0000000 MIN_BUS(V5) 100.0000 0.0000000 MIN_BUS(V6) 100.0000 0.0000000 MIN_BUS(V7) 100.0000 0.0000000 MAX_BUS(V1) 1200.000 0.0000000 MAX_BUS(V2) 1200.000 0.0000000 MAX_BUS(V3) 1200.000 0.0000000 MAX_BUS(V4) 1200.000 0.0000000 MAX_BUS(V5) 1200.000 0.0000000 MAX_BUS(V6) 1200.000 0.0000000 MAX_BUS(V7) 1200.000 0.0000000 MIN_QTY(V1) 100.0000 0.0000000 MIN_QTY(V2) 200.0000 0.0000000 MIN_QTY(V3) 250.0000 0.0000000 MIN_QTY(V4) 350.0000 0.0000000 MIN_QTY(V5) 100.0000 0.0000000 MIN_QTY(V6) 300.0000 0.0000000 MIN_QTY(V7) 250.0000 0.0000000 CAP(V1) 600.0000 0.0000000 CAP(V2) 750.0000 0.0000000 CAP(V3) 800.0000 0.0000000 CAP(V4) 750.0000 0.0000000 CAP(V5) 700.0000 0.0000000 CAP(V6) 950.0000 0.0000000 CAP(V7) 1000.000 0.0000000 COST(V1,S1) 10.00000 0.0000000 COST(V2,S1) 11.50000 0.0000000 COST(V3,S1) 12.00000 0.0000000 COST(V4,S1) 9.500000 0.0000000 COST(V5,S1) 10.50000 0.0000000 COST(V6,S1) 12.25000 0.0000000 COST(V7,S1) 15.00000 0.0000000 SUP_DET( V1, S1) 599.0000 10.00000 SUP_DET( V2, S1) 483.0000 11.50000
112
Table 5.4 (continued)
Variable Value Reduced Cost
SUP_DET( V3, S1) 0.0000000 12.00000 SUP_DET( V4, S1) 0.0000000 9.500000 SUP_DET( V5, S1) 682.0000 10.50000 SUP_DET( V6, S1) 301.0000 12.25000 SUP_DET( V7, S1) 0.0000000 15.00000 PERCENT_DEF(V1,S1) 0.2500000E-01 0.0000000 PERCENT_DEF(V2,S1) 0.4500000E-01 0.0000000 PERCENT_DEF(V3,S1) 0.5000000E-01 0.0000000 PERCENT_DEF(V4,S1) 0.3500000E-01 0.0000000 PERCENT_DEF(V5,S1) 0.1500000E-01 0.0000000 PERCENT_DEF(V6,S1) 0.6000000E-01 0.0000000 PERCENT_DEF(V7,S1) 0.5900000E-01 0.0000000 DELIVERY_LATE(V1,S1) 0.3250000E-01 0.0000000 DELIVERY_LATE(V2,S1) 0.5250000E-01 0.0000000 DELIVERY_LATE(V3,S1) 0.6250000E-01 0.0000000 DELIVERY_LATE(V4,S1) 0.1500000 0.0000000 DELIVERY_LATE(V5,S1) 0.2000000E-02 0.0000000 DELIVERY_LATE(V6,S1) 0.2500000E-01 0.0000000 DELIVERY_LATE(V7,S1) 0.2350000E-01 0.0000000 Row Slack or Surplus Dual Price
OBJECTIVE 22392.75 0.0000000 LATE_DELIVERY 1.286000 0.0000000 QUALITY 10.00000 0.0000000 DEMAND_ROW( S1) 0.0000000 0.0000000 CAPACITY_ROW( V1) 1.000000 0.0000000 CAPACITY_ROW( V2) 267.0000 0.0000000 CAPACITY_ROW( V3) 0.0000000 0.0000000 CAPACITY_ROW( V4) 0.0000000 0.0000000 CAPACITY_ROW( V5) 18.00000 0.0000000 CAPACITY_ROW( V6) 649.0000 0.0000000 CAPACITY_ROW( V7) 0.0000000 0.0000000 MAX_BUS_ROW( V1) 601.0000 0.0000000 MAX_BUS_ROW( V2) 717.0000 0.0000000 MAX_BUS_ROW( V3) 0.0000000 0.0000000 MAX_BUS_ROW( V4) 0.0000000 0.0000000 MAX_BUS_ROW( V5) 518.0000 0.0000000 MAX_BUS_ROW( V6) 899.0000 0.0000000 MAX_BUS_ROW( V7) 0.0000000 0.0000000 MIN_QTY_ROW( V1) 499.0000 0.0000000 MIN_QTY_ROW( V2) 283.0000 0.0000000 MIN_QTY_ROW( V3) 0.0000000 0.0000000 MIN_QTY_ROW( V4) 0.0000000 0.0000000 MIN_QTY_ROW( V5) 582.0000 0.0000000 MIN_QTY_ROW( V6) 1.000000 0.0000000 MIN_BUS_ROW( V2) 383.0000 0.0000000 MIN_BUS_ROW( V3) 0.0000000 0.0000000 MIN_QTY_ROW( V7) 0.0000000 0.0000000 MIN_BUS_ROW( V1) 499.0000 0.0000000 MIN_BUS_ROW( V4) 0.0000000 0.0000000 MIN_BUS_ROW( V5) 582.0000 0.0000000 MIN_BUS_ROW( V6) 201.0000 0.0000000 MIN_BUS_ROW( V7) 0.0000000 0.0000000
113
In the above solution report, it indicates that it takes 6010 steps to
solve the problem and the minimum cost that can be achieved is 22392.75.
Next it indicates the variables in the problem like Demand, Minimum and
Maximum Business values from the manufacturer, minimum quantity and
maximum capacity of the vendor, cost, percentage defectives and late
deliveries. Here the variable SUP_DET indicates the order allocated for that
particular vendor. Similarly the variable SELECT indicates if the particular
vendor has been selected or not. The value 1 in SELECT indicates the vendor
has been selected.
A variable’s reduced cost is the amount by which the objective
coefficient of the variable would have to improve before it would become
profitable to give the variable in question a positive value in the optimal
solution. For example, if a variable had a reduced cost of 10, the objective
coefficient of that variable would have to decrease by 10 units in a
minimization problem in order for the variable to become an attractive
alternative to enter into the solution. In this particular problem, the reduced
cost is the cost of per unit of that component from a particular vendor.
The Slack or Surplus column in the solution report tells how close
it is to satisfy a constraint as equality. This quantity, on less than or equal ( )
constraints, is generally referred to as slack. On greater than or equal ( )
constraints, this quantity is called a surplus. If a constraint is exactly satisfied
as equality, the slack or surplus value will be zero. If a constraint is violated,
as in an infeasible solution, the slack or surplus value will be negative.
Knowing this can help to find the violated constraints in an infeasible model-a
model for which there doesn’t exist a set of variable values that
simultaneously satisfies all constraints. Non-binding constraints, constraints
with a slack or surplus value greater than zero, will have positive, nonzero
values in this column.
114
The dual price is the amount by which the objective would improve
as the right-hand side, or constant term, of the constraint is increased by one
unit. In a minimization problem, the objective value would decrease if it was
to increase the right-hand side of a constraint with a positive dual price. Dual
prices are sometimes called shadow prices, because they tell us how much we
should be willing to pay for additional units of a resource.
The Table 5.5 indicates the vendors selected, order allocated,
defectives, late deliveries and cost as inferred from the solution report.
Table 5.5 Vendor selection and order allocation without quantity
discounts using ILP
Vendor number
Order allocation
Number of defectives
Number of late
deliveries
Total cost in Rs.
V1 599 15 19 5990
V2 483 22 25 5554
V5 682 10 1 7161
V6 301 18 8 3687
Total 2065 65 53 22392
Order – Defectives = 2065 – 65 = 2000 = Demand
From the Table 5.5 it is found that the order allocation for the
vendors is done considering the number of defectives also. Hence the demand
is exactly met when the number of defectives is eliminated. This is very
advantageous and useful in a manufacturing industry where the demand will
always be met.
115
5.5 VENDOR SELECTION AND ORDER ALLOCATION
CONSIDERING QUANTITY DISCOUNTS
Vendors offer quantity discounts in order to increase their order
allocations by the manufacturer. Manufacturer in turn considers quantity
discounts by the vendor to minimize their total cost. In the case of quantity
discounts, the vendor offer price breaks based on the number of components.
This section deals with the evaluation of SCMS model considering quantity
discounts.
5.5.1 Step 1: Defining the Model Taking the 7 vendor data used for evaluation of the model without quantity discounts, the non linear nature of the problem due to the inclusion of price breaks is converted to a linear problem as explained below. Consider each range of discount offered by a vendor as an additional vendor with same Quality and delivery. Here since there are 7 vendors with each offering 2 price breaks, the total number of vendors now would be 7*2= 14 vendors. The corresponding additional vendors are: V1-V8, V2-V9, V3-V10, V4 -V11, V5-V12, V6-V13, and V7-V14. For example additional vendor V1-V8 has the same quality and delivery as V1 but has a different price break. By doing this piecewise linear problem is converted to a linear problem. To make this feasible necessary surrogate constraints are added viz., minimum quantity for V1 is made 100, and for V8 as 300 and capacity for V1 is made 300 and for V8 as 600. Similar transformation is done for all vendors which eventually converts the piecewise linear problem into a linear problem. Figure 5.8 indicates this model, wherein the change is in the inclusion of the additional vendors.
116
Figure 5.8 LINGO model window for vendor selection using quantity
discounts
5.5.2 Step 2: Defining the Tradeoff values
There would be no change in the upper limit value of the quality
when considering quantity discounts, since for determining the late deliveries
for various values of quality is the same as was without discount model. But
in the case of determining the upper limit for late delivery objective, there will
be change in the value of the cost objective when the quality objective is fixed
as 75 and the late delivery objective is varied due to the inclusion of price
breaks.
5.5.2.1 Sensitivity analysis for determining the tradeoff values
From Table 5.6 and Figure 5.9, the sensitivity analysis indicates
that when the late delivery is increased beyond 55 there is no appreciable
difference in the cost objective. Although the analysis indicates that the cost
objectives becomes constant after the late delivery is relaxed beyond 65, the
upper limit for late delivery is fixed as 55, because of two reasons
117
Table 5.6 Various quality, delivery and cost values with quantity
discounts using ILP
Quality (Number of defectives)
Late deliveries Cost (Rs.)
75 40 21369.50 75 45 21284.00 75 50 21284.00 75 55 20756.00 75 60 20735.00 75 65 20512.00 75 70 20512.00 75 75 20512.00 75 80 20512.00
204002050020600207002080020900210002110021200213002140021500
35 40 45 50 55 60 65 70 75 80 85
Late deliveries
Cos
t in
Rs.
Figure 5.9 Sensitivity analysis for late deliveries and cost with quantity
discounts using ILP
1. A company can have norm of not accepting more number of
late deliveries even if the cost is less, since it might affect the
production of the product.
118
2. There is no marginal difference in cost when late delivery is
relaxed beyond 55.
Hence the trade off values of quality and late delivery is fixed as 75 and 55
respectively
5.5.3 Step 3: Defining the input to the model
5.5.3.1 Price breaks
An important aspect in the quantity discount model is defining the
inputs. The price breaks offered by the 7 vendors are as indicated in
Figure 5.10 which is same as the input given in Table 3.8.
Figure 5. 10 LINGO input data window for quantity discount
119
5.5.4 Step 4: Solve the model and analyze the status
As indicated in the vendor selection without quantity discount
approach, LINGO solver solves this model choosing the appropriate solver
and produces the result as indicated in Figure 5.11. Here the solver status
window indicates there are 28 variables and 67 constraints. The solver takes
7605 iterations and 7398 branches to get the global optimum solution. The
current value of the objective function is 20756 and also Objective value of
best integer solution found is also 20756. This value is lower than the value
that is obtained without quantity discount model and hence considering
quantity discounts produces better cost value.
Figure 5.11 Lingo solver status window considering quantity discounts
5.5.5 Step 5: Solution report
The vendors selected and orders allocated are as indicated in
Table 5.7. The solution report indicates the vendors selected are V6, V8, V9
and V12. Hence the actual vendors selected are as indicated in the
Table 5.8, V6, V1, V2 and V5 along with their order allocations
120
Table 5.7 Lingo solution report considering quantity discounts
Solution report from LINGO Global optimal solution found at step : 7605 Objective value : 20756.00 Branch count : 7398 Variable Value Reduced Cost
DEMAND( S1) 2000.000 0.0000000 SELECT( V1) 0.0000000 0.0000000 SELECT( V2) 0.0000000 0.0000000 SELECT( V3) 0.0000000 0.0000000 SELECT( V4) 0.0000000 0.0000000 SELECT( V5) 0.0000000 0.0000000 SELECT( V6) 1.000000 0.0000000 SELECT( V7) 0.0000000 0.0000000 SELECT( V8) 1.000000 0.0000000 SELECT( V9) 1.000000 0.0000000 SELECT( V10) 0.0000000 0.0000000 SELECT( V11) 0.0000000 0.0000000 SELECT( V12) 1.000000 0.0000000 SELECT( V13) 0.0000000 0.0000000 SELECT( V14) 0.0000000 0.0000000 MIN_BUS( V1) 100.0000 0.0000000 MIN_BUS( V2) 100.0000 0.0000000 MIN_BUS( V3) 100.0000 0.0000000 MIN_BUS( V4) 100.0000 0.0000000 MIN_BUS( V5) 100.0000 0.0000000 MIN_BUS( V6) 100.0000 0.0000000 MIN_BUS( V7) 100.0000 0.0000000 MIN_BUS( V8) 100.0000 0.0000000 MIN_BUS( V9) 100.0000 0.0000000 MIN_BUS( V10) 100.0000 0.0000000 MIN_BUS( V11) 100.0000 0.0000000 MIN_BUS( V12) 100.0000 0.0000000 MIN_BUS( V13) 100.0000 0.0000000 MIN_BUS( V14) 100.0000 0.0000000 MAX_BUS( V1) 1200.000 0.0000000 MAX_BUS( V2) 1200.000 0.0000000 MAX_BUS( V3) 1200.000 0.0000000 MAX_BUS( V4) 1200.000 0.0000000 MAX_BUS( V5) 1200.000 0.0000000 MAX_BUS( V6) 1200.000 0.0000000 MAX_BUS( V7) 1200.000 0.0000000 MAX_BUS( V8) 1200.000 0.0000000 MAX_BUS( V9) 1200.000 0.0000000 MAX_BUS( V10) 1200.000 0.0000000 MAX_BUS( V11) 1200.000 0.0000000 MAX_BUS( V12) 1200.000 0.0000000 MAX_BUS( V13) 1200.000 0.0000000 MAX_BUS( V14) 1200.000 0.0000000 MIN_QTY( V1) 100.0000 0.0000000 MIN_QTY( V2) 200.0000 0.0000000 MIN_QTY( V3) 250.0000 0.0000000 CAP( V5) 399.0000 0.0000000
121
Table 5.7 (continued) Variable Value Reduced Cost
CAP( V6) 599.0000 0.0000000 CAP( V7) 649.0000 0.0000000 CAP( V8) 600.0000 0.0000000 CAP( V9) 750.0000 0.0000000 CAP( V10) 800.0000 0.0000000 CAP( V11) 750.0000 0.0000000 CAP( V12) 700.0000 0.0000000 CAP( V13) 950.0000 0.0000000 CAP( V14) 1000.000 0.0000000 COST( V1, S1) 10.00000 0.0000000 COST( V2, S1) 11.50000 0.0000000 COST( V3, S1) 12.00000 0.0000000 COST( V4, S1) 9.500000 0.0000000 COST( V5, S1) 10.50000 0.0000000 COST( V6, S1) 12.25000 0.0000000 COST( V7, S1) 15.00000 0.0000000 COST( V8, S1) 9.000000 0.0000000 COST( V9, S1) 10.00000 0.0000000 COST( V10, S1) 11.00000 0.0000000 COST( V11, S1) 9.000000 0.0000000 COST( V12, S1) 10.00000 0.0000000 COST( V13, S1) 11.50000 0.0000000 COST( V14, S1) 14.00000 0.0000000 MIN_QTY( V4) 350.0000 0.0000000 MIN_QTY( V5) 100.0000 0.0000000 MIN_QTY( V6) 300.0000 0.0000000 MIN_QTY( V7) 250.0000 0.0000000 MIN_QTY( V8) 300.0000 0.0000000 MIN_QTY( V9) 500.0000 0.0000000 MIN_QTY( V10) 500.0000 0.0000000 MIN_QTY( V11) 550.0000 0.0000000 MIN_QTY( V12) 400.0000 0.0000000 MIN_QTY( V13) 600.0000 0.0000000 MIN_QTY( V14) 650.0000 0.0000000 CAP( V1) 299.0000 0.0000000 CAP( V2) 499.0000 0.0000000 CAP( V3) 499.0000 0.0000000 CAP( V4) 549.0000 0.0000000 SUP_DET( V1, S1) 0.0000000 10.00000 SUP_DET( V2, S1) 0.0000000 11.50000 SUP_DET( V3, S1) 0.0000000 12.00000 SUP_DET( V4, S1) 0.0000000 9.500000 SUP_DET( V5, S1) 0.0000000 10.50000 SUP_DET( V6, S1) 308.0000 12.25000 SUP_DET( V7, S1) 0.0000000 15.00000 SUP_DET( V8, S1) 597.0000 9.000000 SUP_DET( V9, S1) 506.0000 10.00000 SUP_DET( V10, S1) 0.0000000 11.00000 SUP_DET( V11, S1) 0.0000000 9.000000 SUP_DET( V12, S1) 655.0000 10.00000 SUP_DET( V13, S1) 0.0000000 11.50000 SUP_DET( V14, S1) 0.0000000 14.00000 PERCENT_DEF( V1, S1) 0.2500000E-01 0.0000000 PERCENT_DEF( V2, S1) 0.4500000E-01 0.0000000
122
Table 5.7 (continued) Variable Value Reduced Cost
PERCENT_DEF( V3, S1) 0.5000000E-01 0.0000000 PERCENT_DEF( V4, S1) 0.3500000E-01 0.0000000 PERCENT_DEF( V5, S1) 0.1500000E-01 0.0000000 PERCENT_DEF( V6, S1) 0.6000000E-01 0.0000000 PERCENT_DEF( V7, S1) 0.5900000E-01 0.0000000 PERCENT_DEF( V8, S1) 0.2500000E-01 0.0000000 PERCENT_DEF( V9, S1) 0.4500000E-01 0.0000000 PERCENT_DEF( V10, S1) 0.5000000E-01 0.0000000 PERCENT_DEF( V11, S1) 0.3500000E-01 0.0000000 PERCENT_DEF( V12, S1) 0.1500000E-01 0.0000000 PERCENT_DEF( V13, S1) 0.6000000E-01 0.0000000 PERCENT_DEF( V14, S1) 0.5900000E-01 0.0000000 DELIVERY_LATE( V1, S1) 0.3250000E-01 0.0000000 DELIVERY_LATE( V2, S1) 0.5250000E-01 0.0000000 DELIVERY_LATE( V3, S1) 0.6250000E-01 0.0000000 DELIVERY_LATE( V4, S1) 0.1500000 0.0000000 DELIVERY_LATE( V5, S1) 0.2000000E-02 0.0000000 DELIVERY_LATE( V6, S1) 0.2500000E-01 0.0000000 DELIVERY_LATE( V7, S1) 0.2350000E-01 0.0000000 DELIVERY_LATE( V8, S1) 0.3250000E-01 0.0000000 DELIVERY_LATE( V9, S1) 0.5250000E-01 0.0000000 DELIVERY_LATE( V10, S1) 0.6250000E-01 0.0000000 DELIVERY_LATE( V11, S1) 0.1500000 0.0000000 DELIVERY_LATE( V12, S1) 0.2000000E-02 0.0000000 DELIVERY_LATE( V13, S1) 0.2500000E-01 0.0000000 DELIVERY_LATE( V14, S1) 0.2350000E-01 0.0000000 Row Slack or Surplus Dual Price
OBJECTIVE 20756.00 0.0000000 LATE_DELIVERY 0.2250000E-01 0.0000000 QUALITY 9.000000 0.0000000 DEMAND_ROW( S1) 0.0000000 0.0000000 CAPACITY_ROW( V1) 0.0000000 0.0000000 CAPACITY_ROW( V2) 0.0000000 0.0000000 CAPACITY_ROW( V3) 0.0000000 0.0000000 CAPACITY_ROW( V4) 0.0000000 0.0000000 CAPACITY_ROW( V5) 0.0000000 0.0000000 CAPACITY_ROW( V6) 292.0000 0.0000000 CAPACITY_ROW( V7) 0.0000000 0.0000000 CAPACITY_ROW( V8) 3.000000 0.0000000 CAPACITY_ROW( V9) 244.0000 0.0000000 CAPACITY_ROW( V10) 0.0000000 0.0000000 CAPACITY_ROW( V11) 0.0000000 0.0000000 CAPACITY_ROW( V12) 45.00000 0.0000000 CAPACITY_ROW( V13) 0.0000000 0.0000000 CAPACITY_ROW( V14) 0.0000000 0.0000000 MAX_BUS_ROW( V1) 0.0000000 0.0000000 MAX_BUS_ROW( V2) 0.0000000 0.0000000 MAX_BUS_ROW( V3) 0.0000000 0.0000000 MAX_BUS_ROW( V4) 0.0000000 0.0000000 MAX_BUS_ROW( V5) 0.0000000 0.0000000 MAX_BUS_ROW( V6) 892.0000 0.0000000 MAX_BUS_ROW( V7) 0.0000000 0.0000000
123
Table 5.7 (continued)
Row Slack or Surplus Dual Price MAX_BUS_ROW( V8) 603.0000 0.0000000 MAX_BUS_ROW( V9) 694.0000 0.0000000 MAX_BUS_ROW( V10) 0.0000000 0.0000000 MAX_BUS_ROW( V11) 0.0000000 0.0000000 MAX_BUS_ROW( V12) 545.0000 0.0000000 MAX_BUS_ROW( V13) 0.0000000 0.0000000 MAX_BUS_ROW( V14) 0.0000000 0.0000000 MIN_QTY_ROW( V1) 0.0000000 0.0000000 MIN_QTY_ROW( V2) 0.0000000 0.0000000 MIN_QTY_ROW( V3) 0.0000000 0.0000000 MIN_QTY_ROW( V4) 0.0000000 0.0000000 MIN_QTY_ROW( V5) 0.0000000 0.0000000 MIN_QTY_ROW( V6) 8.000000 0.0000000 MIN_QTY_ROW( V7) 0.0000000 0.0000000 MIN_QTY_ROW( V8) 297.0000 0.0000000 MIN_QTY_ROW( V9) 6.000000 0.0000000 MIN_QTY_ROW( V10) 0.0000000 0.0000000 MIN_QTY_ROW( V11) 0.0000000 0.0000000 MIN_QTY_ROW( V12) 255.0000 0.0000000 MIN_QTY_ROW( V13) 0.0000000 0.0000000 MIN_QTY_ROW( V14) 0.0000000 0.0000000 MIN_BUS_ROW( V1) 0.0000000 0.0000000 MIN_BUS_ROW( V2) 0.0000000 0.0000000 MIN_BUS_ROW( V3) 0.0000000 0.0000000 MIN_BUS_ROW( V4) 0.0000000 0.0000000 MIN_BUS_ROW( V5) 0.0000000 0.0000000 MIN_BUS_ROW( V6) 208.0000 0.0000000 MIN_BUS_ROW( V7) 0.0000000 0.0000000 MIN_BUS_ROW( V8) 497.0000 0.0000000 MIN_BUS_ROW( V9) 406.0000 0.0000000 MIN_BUS_ROW( V10) 0.0000000 0.0000000 MIN_BUS_ROW( V11) 0.0000000 0.0000000 MIN_BUS_ROW( V12) 555.0000 0.0000000 MIN_BUS_ROW( V13) 0.0000000 0.0000000 MIN_BUS_ROW( V14) 0.0000000 0.0000000
Table 5.8 Selected vendors and actual vendors with their allocations
Vendors V6 V8 V9 V12
Order quantity 308 597 506 655
Actual vendors V6 V1 V2 V5
The Table 5.9 indicates the vendors selected, order allocated,
defectives, late deliveries and cost as inferred from the solution report
124
Table 5.9 Vendor selection and order allocation with quantity discounts
Vendor no (Actual vendor)
Order allocation
Number of defectives
Number of late
deliveries Total cost
in Rs. V8(V1) 597 15 19 5373 V9(V2) 506 23 27 5060
V12(V5) 655 10 1 6550 V6 308 18 8 3773
Total 2066 66 55 20756 Order – Defectives = 2066 – 66 = 2000 = Demand
From Table 5.9 the demand is exactly met when eliminating the
number of defectives. The number of defectives and number of late deliveries
are within the specified limits in the model.
5.6 SUMMARY
This chapter described the evaluation methodology for the single
component multiple vendor selection model using Lexicographic method.
LINGO has in built solvers and these solvers were used to generate the
solution. The model was evaluated using two scenarios, one with discounts
and one without discounts. It is evident from the solutions that the objective
value generated using discounts was better than the without discount model.
This evaluation method had used the all-unit quantity discount model, where
if the order exceeded a middle order quantity, they were considered as
different vendor with a price equal to the discounted price. The next chapter
discusses the evaluation of the multi-component multi-vendor model
considering incremental discounts.