CHAPTER 6 SIMULATED ANNEALING ALGORITHM -...

36
82 CHAPTER 6 SIMULATED ANNEALING ALGORITHM SAA has broad appeal in many areas and has attractive and unique features when compared with others. The key feature of SAA is that it provides a means to escape local optima by allowing hill-climbing moves. This chapter discusses the SAA based heuristic as a proposed solution methodology to solve the multi-period fixed charge models proposed in this thesis. 6.1 INTRODUCTION There are many research works in the field of Operations Research using SAA heuristic. Eglese (1990) described the SAA and the physical analogy on which it is based. Some significant theoretical results are presented before describing how the algorithm may be implemented and some of the choices facing the user of this method. An overview of SAA experiments is given some suggestions are made for ways to improve the performance of the algorithm by modifying the pure SAA approach. Pirlot (1996) presented a tutorial introduction to three recent yet widely used general heuristics: Simulated Annealing, Tabu Search, and Genetic Algorithms. A relatively precise description and an example of application are provided for each of the methods, as well as a tentative evaluation and comparison from a pragmatic point of view. Ponnambalam et al (1999) proposed a SAA for the job shop scheduling problem with the objective of minimization of makespan time. They compared the proposed SAA with

Transcript of CHAPTER 6 SIMULATED ANNEALING ALGORITHM -...

82

CHAPTER 6

SIMULATED ANNEALING ALGORITHM

SAA has broad appeal in many areas and has attractive and unique

features when compared with others. The key feature of SAA is that it

provides a means to escape local optima by allowing hill-climbing moves.

This chapter discusses the SAA based heuristic as a proposed solution

methodology to solve the multi-period fixed charge models proposed in this

thesis.

6.1 INTRODUCTION

There are many research works in the field of Operations Research

using SAA heuristic. Eglese (1990) described the SAA and the physical

analogy on which it is based. Some significant theoretical results are

presented before describing how the algorithm may be implemented and some

of the choices facing the user of this method. An overview of SAA

experiments is given some suggestions are made for ways to improve the

performance of the algorithm by modifying the �pure� SAA approach. Pirlot

(1996) presented a tutorial introduction to three recent yet widely used

general heuristics: Simulated Annealing, Tabu Search, and Genetic

Algorithms. A relatively precise description and an example of application are

provided for each of the methods, as well as a tentative evaluation and

comparison from a pragmatic point of view. Ponnambalam et al (1999)

proposed a SAA for the job shop scheduling problem with the objective of

minimization of makespan time. They compared the proposed SAA with

83

existing genetic algorithms and the presented the comparative results. For

comparative evaluation, they used a wide variety of data sets. They found that

the proposed algorithm performed well for scheduling in the job shop.

Jayaraman and Ross (2003) addressed a class of distribution network design

problems, which is characterized by multiple product families, a central

manufacturing plant site, multiple distribution centre and cross-docking sites,

and retail outlets (customer zones) which demand multiple units of several

commodities. They proposed SAA for the class of distribution network

problems to generate globally feasible, near optimal distribution system

design and utilization strategies. Ji et al (2006) proposed an improved

simulated annealing (ISA), a global optimization algorithm for solving the

linear constrained optimization problems, of which the main characteristics

are that only one component of current solution is changed based on the

Gaussian distribution and ISA can directly solve the linear constrained

optimization problems. They solved 6 benchmark functions with the lower

and upper bounds constraints and 6 functions with linear constraints, and

proved that ISA is superior to the classical techniques for solving the

problems with lower and upper bounds. Lim et al (2006) proposed a

simulated annealing with hill climbing algorithm for the Traveling

Tournament Problem (TTP). They adapted the approach for TTP by

parallelizing components which search for better timetables and better team

assignments, instead of using these sequentially. Experiments have showed

that the hybrid approach gives results which are comparable to or better than

the best solutions for benchmark sets. Mansouri (2006) proposed a multi-

objective simulated annealing (MOSA) solution approach to a bi-criteria

sequencing problem to coordinate required set-ups between two successive

stages of a supply chain in a flow shop pattern. Each production batch has two

distinct attributes and a set-up occurs in each stage when the corresponding

attribute of the two successive batches are different. There are two objectives

including: minimizing total set-ups and minimizing the maximum number of

84

set-ups between the two stages that are both NP-hard problems. They

evaluated the Performance of the proposed MOSA using true Pareto-optimal

solutions of small problems found via total enumeration. They also compared

the MOSA against a lower bound in large problems. Comparative

experiments showed that the MOSA is robust in finding true Pareto-optimal

solutions in small problems.

The summary of the SAA applications is as follows:

� SAA is a proven tool for many hard optimization problems,

and if implemented well, often produces good results in a

short runtime.

� SAA configuration decisions proceed in a logical manner.

Hence it is simple to formulate and handle mixed, discrete

and continuous problem with ease.

� Its solution does not get trapped in a local minimum or

maximum by sometimes accepting even the inferior move.

� The methodology of SAA has broad appeal in many areas

(Balram Suman 2004) and has attractive and unique features

when compared with other optimization techniques (Suman

and Kumar 2006).

� On the above considerations, the four multi-period fixed

charge models have been solved using SAA based heuristic to

find the optimal or near optimal solutions in a reasonable

computational time.

85

6.2 FUNDAMENTALS OF SAA

The algorithm was first proposed by Kirkpatrick et al (1983) based

on the physical annealing process of solids. First, the solid is heated up to a

high temperature. At that temperature all the molecules of the material have

high energies and randomly arrange themselves into a liquid state. Then the

temperature decreases at a certain rate which will reduce the molecules�

energies and their freedom to arrange them. Finally, the temperature goes

down to such a level that all the molecules lose their freedom to arrange

themselves then the material crystallizes. If the temperature decreases at a

proper rate, the material can obtain a regular internal structure at the minimum

energy state. However, if the temperature goes down too fast, the

irregularities and defects will appear in the solid and the system will be at a

local minimum energy state. In analogy to the annealing process, the feasible

solutions of the optimization problem are correspond to the states of the

material, the objective function values computed at these solutions are

represented by the energies of the states, the optimal solution to the problem

can be viewed as the minimum energy state of the material and the

suboptimal solutions correspond to the local minimum energy states. Similar

to most classes of meta-heuristics that are based on gradual �local

improvements�, SAA starts off with a non-optimal initial configuration

(which may be random) and at high temperatureTE . A new configuration is

created by using a suitable mechanism with reference to the initial

configuration and calculating the corresponding cost differential ( Delta ). If

the cost is reduced, then the new configuration is accepted, otherwise that is

accepted with a probability exp (- Delta /TE ) and the process is repeated

until a termination criterion is met. The general structure of the SAA is as

shown below.

86

Step 1: Get an initial solution iS , randomly

Step 2: Set an initial temperature, 0�TE

Step 3: While not frozen do the following:

Step 3.1: Do the following n times:

Step 3.1.1: Sample a neighbour Si1 from Si

Step 3.1.2: Let Delta= cost (Si1) � cost (Si)

Step 3.1.3: If Delta< 0 then ( i.e. downhill move) set Si = Si1 else ( i.e.

uphill move) set Si = Si1 with the probability of exp (-Delta/TE )

Step 3.2: Set TE=TE*�, where � is the reduction factor

Step 4: Return Si

6.3 PROPOSED SAA

Multi-period fixed charge problems using SAA requires a separate

string coding and decoding procedural steps for each and every period. After

deriving the best distribution schedule for each period, they have to be

integrated for overall minimum cost. This difficulty is not present while

solving single-period problem using SAA because it requires only a single

integrated string for coding and decoding procedural steps. Moreover this

single-period formulation can be used while solving the multi-period

distribution problem in a multi-stage supply chain environment. Hence the

proposed SAA based heuristic is structured to solve the multi-period fixed

charge problems in two stages as stage-I and stage-II. Stage-I accepts the data

of multi-period fixed charge problem as input and transforms them as a single

period data set. Stage-II is the application of SAA that evolves the best

distribution schedule to the multi-period fixed charge problem with the

87

modulated data. The following sections delineate the proposed SAA with a

numerical example of multi-period fixed charge problems.

In the proposed SAA, the solution is represented as a gene type

representation of a feasible solution in the form of a finite length array called

string. The string is the permutation of cell numbers of a modulated single

period distribution matrix. Each cell in the distribution matrix known as gene

is identified with a unique number that assume discrete allocation values

pertaining to the problem's solution. The first gene in the string provides

location identification in the single-period matrix where the first allotment is

made by the minimum value of either supply (row) or demand (column). The

same procedure is followed until the whole single-period matrix is filled by

distribution allotments. Moreover, the string is structured as two parts. The

first part is framed by the cell numbers of prompt deliveries of the distribution

matrix and the second part is framed by the remaining cell numbers of the

distribution matrix. In order to maintain feasibility, the changes are made

separately in the two parts of the string.

The framework of the proposed SAA based heuristic (coded in

Turbo C++) is shown in Figure 6.1 and illustrated with the data of Model I in

sections 6.3.1 and 6.3.2.

88

Figure 6.1 Structure of the proposed SAA based heuristic to solve

multi-period fixed charge problems

Stage -II

If Delta<0

Generate initial seed S

Find �m and Z(�m); Set �opt��m and Zopt = Z(�m )

Parameters: TE = 475, ACCEPT = 0, TOTAL = 0, FREEZE = 0, � =0.90

Generate neighbourhood seed via mutation operator and

assign it as �m� at total distribution cost Z(�m�)

Compute Delta=Z(�m�)- Z(�m)

Set ACCEPT=ACCEPT+1

�m��m� and Z(�m)=Z(�m�)

(Downhill)

Yes

No

Yes

If Z(�m)<Zopt

Compute /TE)exp(-Delta P �

and sample R (Random no. (0,1))

(Uphill)

No

If R<PNo

Yes

Set ACCEPT=ACCEPT+1

�m��m� and Z(�m) = Z(�m�) Set �opt��m and Zopt = Z(�m )

Compute

PER=(ACCEPT*100/TOTAL)

Set TOTAL=TOTAL+1

Yes

If (TOTAL > m*n*t or

ACCEPT > (m*n*t)/2)

No

Set: TE=TE*�

ACCEPT=0 and

TOTAL=0

Outputs

�opt and ZoptIf (FREEZE=5)

or (TE=20)

FREEZE=FREEZE+1

If PER<15 No

Yes

NoYes

Stage -I 0

j

0

j

0

i

t

j

t

ijjijiijij BL andCI ,SI ,D ,P ,/SCBC ,CU ,CH ,SH ,FC , C T, n, m, :Inputs

Data transformation: Multi-period problem into Single-period problem

89

6.3.1 Stage-I: Data input and transformation

Step 1: Data inputs

The example data (relevant to Model I) used in chapter 4

(section 4.2) have been used again.

Step 2: Transformation of multi-period data into single period data

The multi-period fixed charge problems can be modelled as single-

period fixed charge problems by modulating the data of multi-period

fixed charge problems with the following notations:

tc - The period of demand in the SPFCDP

tr - The period of supply in the SPFCDP

Single period variable transportation cost (SP_Cij)

The conversion of MPFCDP variable transportation cost (Cij) into

SPFCDP variable transportation cost (SP_Cij) has to include either inventory

cost or backorder cost depending upon the period of supply and usage as well

as the location of inventory. The conversions for different situations are

presented below.

Case 1: When tc = tr

The demands at any period tc are met from the supply of the same

period. Hence single period variable cost (SP_Cij) remains unchanged as

given in Equation (6.1).

SP_Cij = Cij �i & �j (6.1)

Case 2: When tc > tr

The demands at any period tc are met from the excess supplies of the

previous period tr, which are held as inventory at either supplier�s locations or

customer�s locations. Hence SP_Cij needs to include either supplier�s

90

inventory cost (SHi) or customer�s inventory cost (CHj) depending on the

storage location. The storage location (supplier/customer) is decided by the

minimum value of SP_Cij in the allotted cell. The Equation s (6.2) and (6.3)

provide SP_Cij values for storing at supplier�s locations and customer�s

locations respectively.

SP_Cij = Cij + SHi * (tc- tr) �i, & �j (6.2)

SP_Cij = Cij + CHj * (tc- tr) �i, & �j (6.3)

Case 3: When tc < tr

The demands at the period tc are met as backorder in period tr.

Hence SP_Cij is changed as given in Equation (6.4) due to the presence of

backorder penalty cost (BCj).

SP_Cij = Cij + BCj * (tr -tc) �i &�j (6.4)

Single period fixed transportation cost (SP_FCij)

The conversion of MPFCDP fixed transportation cost (FCij) to

SPFCDP fixed transportation cost (SP_FCij) depends upon the periods at

which the actual shipment and usage takes place. In this conversion, the

following three types of decision variables decide the SP_FCij.

SP_Xijtctr

- Shipment quantity from supplier i to customer j for the demand

period tc and supply period tr

(SP_Xijtctr

)tc- Shipment quantity from supplier i to customer j, when both

supply and demand periods are same and equal to tc

(SP_Xijtctr

)tr- Shipment quantity from supplier i to customer j, when both

supply and demand periods are same and equal to tr

91

The conversions for different situations are presented below.

Case 1: When tc = tr

The demand at any period tc is transported in the same period and

hence single period fixed transportation cost (SP_Cij) remains unchanged as

given in Equation (6.5).

SP_FCij = FCij �i & �j (6.5)

Case 2: When tc > tr

Here SP_Xijtctr

refers to the inventory of either supplier or customer.

When it is considered as the inventory of supplier, SP_FCij depends on the

quantity of shipment (SP_Xijtctr

)tc and it is governed by the following Equation

s (6.6a) and (6.6b).

SP_FCij = 0 (When (SP_Xijtctr

)tc >0) �i & �j (6.6a)

SP_FCij = FCij (When (SP_Xijtctr

)tc =0) �i & �j (6.6b)

On the other hand, when SP_Xijtctr

is considered as the inventory of

customer, SP_FCij becomes a dependent quantity of shipment (SP_Xijtctr

)tr and

it is governed by the following Equation s (6.7a) and (6.7b).

SP_FCij = 0 (When (SP_Xijtctr

)tr >0) �i & �j (6.7a)

SP_FCij = FCij (When (SP_Xijtctr

)tr =0) �i & �j (6.7b)

Case 3: When tc < tr

Here SP_Xijtctr

refers to the backorder and it depends on the quantity

of shipment (SP_Xijtctr

)tr and it is governed by the following Equation s (6.8a)

and (6.8b).

92

SP_FCij = 0 (When (SP_Xijtctr

)tr >0) �i & �j (6.8a)

SP_FCij = FCij (When (SP_Xijtctr

)tr =0) �i & �j (6.8b)

Single period supply (SP_Pitr

)

The value of SP_Pitr is changed due to the presence of initial period

inventory (SIi0). The conversions for different situations are presented below.

Case 1: The period tr =1

SP_Pitr= Pi

t + SIi

0 �i (6.9)

Here SP_ Pitr is changed as given in Equation (6.9).

Case 2: The period tr >1

SP_Pitr= Pi

t �i (6.10)

Here SP_ Pitr remains unchanged.

Single period demand (SP_Djtc

)

The value of SP_Djtc is changed due to the presence of initial period

inventory (CIj0) or backorder (BLj

0). The conversions for different situations

are given below.

Case 1: The period tc =1

SP_Djtc

= Djt - CIj

0+ BLj

0 �j (6.11)

Here SP_Djtc

is changed as given in Equation (6.11).

Case 2: The period tc >1

SP_Djtc

= Djt �j (6.12)

Here SP_Djtc remains unchanged.

93

Table 6.1 presents the summary of the above rules of conversion in

the tabular form. The above modulations lend itself equivalent to the original

MPFCDP. However, as the demand of the customers is met either from the

inventories or as back orders, the fixed charge is not a constant. It depends on

the value of decision variables and it is either 0 or FCij depending upon the

period at which the actual shipment is made. This limits the usage of the

conventional FCTP solution procedures. However, the above conversion

provides a transformed data suitable for allocating the shipment quantities and

subsequently deriving a feasible MPFCDP distribution schedule in the SA

routine, which is delineated in the Stage II. Table 6.2 shows the SPFCDP data

matrix for the data of example problem given in chapter 4 (section 4.2).

94

94

Table 6.1 Summary of conversion rules for data transformation

Demand period tc Production

/ supply �

SP_Pitr

1 2 .. tc .. T

j = 1 to n j = 1 to n j = 1 to n j = 1 to n

Su

pp

ly p

erio

d t

r

1

i =

1 to m

SP_Cij= Cij

SP_FCij = FCij

SP_Cij= (Cij + SHi * 1)

SP_FCij=0 (When (SP_Xijtctr)tc>0)

SP_FCij=FCij (When (SP_Xijtctr)tc=0)

(OR )

SP_Cij= (Cij + CHj * 1)

SP_FCij=0 (When (SP_Xijtctr)tr>0)

SP_FCij=FCij (When (SP_Xijtctr)tr=0)

.. SP_Cij= (Cij + SHi * (t-1))

SP_FCij=0 (When (SP_Xijtctr)tc>0)

SP_FCij=FCij (When (SP_Xijtctr)tc=0)

(OR )

SP_Cij= (Cij + CHj *(t-1))

SP_FCij=0 (When (SP_Xijtctr)tr>0)

SP_FCij=FCij (When (SP_Xijtctr)tr=0)

..

SP_Cij= (Cij + SHi * (T-1))

SP_FCij=0 (When (SP_Xijtctr)tc>0)

SP_FCij=FCij (When (SP_Xijtctr)tc=0)

(OR )

SP_Cij= (Cij + CHj *(T-1))

SP_FCij=0 (When (SP_Xijtctr)tr>0)

SP_FCij=FCij (When (SP_Xijtctr)tr=0)

SP_Pitr

= Pi1 + SIi

0

2

i =

1 to m

SP_Cij=Cij + BCj * 1

SP_FCij=0 (When (SP_Xijtctr)tr>0)

SP_FCij=FCij (When (SP_Xijtctr)tr=0)

SP_Cij= Cij

SP_FCij = FCij ..

SP_Cij= (Cij + SHi * (t-2))

SP_FCij=0 (When (SP_Xijtctr)tc>0)

SP_FCij=FCij (When (SP_Xijtctr)tc=0)

(OR )

SP_Cij= (Cij + CHj *(t-2))

SP_FCij=0 (When (SP_Xijtctr)tr>0)

SP_FCij=FCij (When (SP_Xijtctr)tr=0)

..

SP_Cij= (Cij + SHi * (T-2))

SP_FCij=0 (When (SP_Xijtctr)tc>0)

SP_FCij=FCij (When (SP_Xijtctr)tc=0)

(OR )

SP_Cij= (Cij + CHj *(T-2))

SP_FCij=0 (When (SP_Xijtctr)tr>0)

SP_FCij=FCij (When (SP_Xijtctr)tr=0)

SP_Pitr =Pi

2

: : : : : :

tr i =

1 to m

SP_Cij=Cij + BCj * (t-1)

SP_FCij=0 (When (SP_Xijtctr)tr>0)

SP_FCij=FCij (When (SP_Xijtctr)tr=0)

SP_Cij=Cij + BCj * (t-2)

SP_FCij=0 (When (SP_Xijtctr)tr>0)

SP_FCij=FCij (When (SP_Xijtctr)tr=0)

.. SP_Cij= Cij

SP_FCij = FCij

.. SP_Cij= (Cij + SHi * (T-t))

SP_FCij=0 (When (SP_Xijtctr)tc>0)

SP_FCij=FCij (When (SP_Xijtctr)tc=0)

(OR )

SP_Cij= (Cij + CHj *(T-t))

SP_FCij=0 (When (SP_Xijtctr)tr>0)

SP_FCij=FCij (When (SP_Xijtctr)tr=0)

SP_Pitr=Pi

t

: : : : : :

T

i =

1 to m

SP_Cij=Cij + BCj * (T-1)

SP_FCij=0 (When (SP_Xijtctr)tr>0)

SP_FCij=FCij (When (SP_Xijtctr)tr=0)

SP_Cij=Cij + BCj * (T-2)

SP_FCij=0 (When (SP_Xijtctr)tr>0)

SP_FCij=FCij (When (SP_Xijtctr)tr=0)

.. SP_Cij=Cij + BCj * (T-t)

SP_FCij=0 (When (SP_Xijtctr)tr>0)

SP_FCij=FCij (When (SP_Xijtctr)tr=0)

.. SP_Cij= Cij

SP_FCij = FCij SP_Pitr =Pi

T

Demand �

SP_Djtc

SP_Djtc = Dj

1 - CIj0

or

= Dj1 + BLj

0

SP_Djtc =Dj

2 .. SP_Djtc =Dj

t .. SP_Djtc =Dj

T

95

95

Table 6.2 Transformed SPFCDP matrix

tc

Pitr

1 2 3

j

i

1 2 3 1 2 3 1 2 3 t r

1

1 SP_Cij 20

SP_FCij 900

35

90

25

100

25

0 (or)900

40

0 (or)90

30

0 (or)100

30

0 (or)900

45

0 (or)90

35

0 (or)100

70

35

0 (or)900

45

0 (or)90

40

0 (or)100

50

0 (or)900

55

0 (or)90

55

0 (or)100

2 40

150

5

1100

80

50

52

0 (or)150

17

0 (or)1100

92

0 (or)50

64

0 (or)150

29

0 (or)1100

104

0 (or)50

40

55

0 (or)150

15

0 (or)1100

95

0 (or)50

70

0 (or)150

25

0 (or)1100

110

0 (or)50

3 30

800

70

70

15

1000

58

0 (or)800

98

0 (or)70

43

0 (or)1000

86

0 (or)800

126

0 (or)70

71

0 (or)1000

60

45

0 (or)800

80

0 (or)70

30

0 (or)1000

60

0 (or)800

90

0 (or)70

45

0 (or)1000

2

1 40

0 (or)900

75

0 (or)90

55

0 (or)100

20

900

35

90

25

100

25

0 (or)900

40

0 (or)90

30

0 (or)100

50

35

0 (or)900

45

0 (or)90

40

0 (or)100

2 60

0 (or)150

45

0 (or)1100

110

0 (or)50

40

150

5

1100

80

50

52

0 (or)150

17

0 (or)1100

92

0 (or)50

30

55

0 (or)150

15

0 (or)1100

95

0 (or)50

3 50

0 (or)800

110

0 (or)70

45

0 (or)1000

30

800

70

70

15

1000

58

0 (or)800

98

0 (or)70

43

0 (or)1000

60

45

0 (or)800

80

0 (or)70

30

0 (or)1000

3

1 60

0 (or)900

115

0 (or)90

85

0 (or)100

40

0 (or)900

75

0 (or)90

55

0 (or)100

20

900

35

90

25

100

80

2 80

0 (or)150

85

0 or)1100

140

0 (or)50

60

0 (or)150

45

0 (or)1100

110

0 (or)50

40

150

5

1100

80

50

60

3 70

0 (or)800

150

0 (or)70

75

0 or)1000

50

0 (or)800

110

0 (or)70

45

0 (or)1000

30

800

70

70

15

1000

30

Djtc � 60 80 40 60 20 30 90 60 40

Suppliers� side

inventory cell

Customers�

side inventory

cell

96

6.3.2 Stage-II: Evolution of best distribution schedule with SAA

Step 1: Parameters setting and initialization of counters

The temperature parameter �TE�, of the algorithm decides the

probability of acceptance at the beginning of the algorithm, which is normally

around 0.9. The temperature reduction factor ���, determines the number of

evaluations and iterations of the algorithm. Besides these, three counters

govern the proposed SAA. The counter �TOTAL� controls the number of

perturbations at each temperature. The counter �ACCEPT� provides the

number of solutions updated at each temperature. The counter �FREEZE� gets

an increment when the percentage of �ACCEPT� over �TOTAL� falls below a

certain value (normally 15%). All the three counters are initialized with zero

while starting the algorithm. The counters �TOTAL� and �ACCEPT� are reset

to zero at each temperature reduction. The work of Park and Kim (1998)

provides guidelines to fix the initial temperature. The other SAA parameters

(final temperature, temperature reduction factor and counters) are set on the

basis of trials with sample problems and guidelines given in the previous

literature (Parthasarathy and Rajendran 1997 and Ponnambalam et al 1999).

The parameters (TE, TERMINATION CHECK, ACCEPT, TOTAL,

FREEZE and �) are as follows:

TE = 475; ACCEPT = 0; TOTAL = 0; FREEZE = 0;

�=0.90; and TERMINATION CHECK= (FREEZE=5) or (TE=20);

Step 2: Generation of initial seed string

In this proposed SAA, a string S refers to a gene type representation

of a feasible solution (i.e. distribution schedule) to the SPFCDP. The string S

is the permutation of SPFCDP matrix cell numbers, in which each cell is

identified with a unique number. The cell number corresponding to the ith

97

supplier of supply period tr and the jth

customer of demand period tc is fixed by

using the Equation (6.13) given below.

Cell number ={(tr -1) * m * n* T} + {(i-1) * (n*T)} + {(tc -1) * n} + j (6.13)

The total number of cells in the SPFCDP, which is also equal to the

length of the string S, thus becomes (m*T)*(n*T). Table 6.3 illustrates the

SPFCDP matrix cell numbers for the illustration problem given in Tables

4.1a, 4.1b and 4.1c. When the supply and demand are in same period (i.e. tc =

tr), then they form T diagonal sub matrices of size m*n (shown as rectangles

with dark borders in Table 6.3). The number of cells in the diagonal matrix

thus becomes equal to (m*n*T). Any value in the cell below the diagonal

matrix indicates the unfilled demand (backorder) of customer j in the period

tc, which is met by the supplier i during the next period tc+1. On the other

hand, any value in the cell above the diagonal matrix indicates the excess

supply (inventory) of supplier i in the period tr, which is either kept at the

location of the supplier i itself or delivered to customer j and stored at the

customer�s location.

Table 6.3 SPFCDP cell numbers matrix

tc

1 2 3

j

i

1 2 3 1 2 3 1 2 3

t r

1

1 1 2 3 4 5 6 7 8 9

2 10 11 12 13 14 15 16 17 18

3 19 20 21 22 23 24 25 26 27

2

1 28 29 30 31 32 33 34 35 36

2 37 38 39 40 41 42 43 44 45

3 46 47 48 49 50 51 52 53 54

3

1 55 56 57 58 59 60 61 62 63

2 64 65 66 67 68 69 70 71 72

3 73 74 75 76 77 78 79 80 81

98

The string S is structured such that it is convenient for perturbation

and capable of exploring all the areas of solution space to search for the

optimal or near optimal solution. The initial seed string S is generated

randomly by first selecting the cell numbers from the diagonal matrix cells

and then selecting the cell numbers from the nondiagonal matrix cells. It

provides allocation priority. Table 6.4 shows the first and second part of a

randomly developed example seed string for the illustration problem.

Table 6.4 An example initial seed string (S)

Allocation

priority no.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 27 25 26 27

String�s

first part

11 21 1 3 19 2 10 20 12 41 51 31 33 49 32 40 50 42 71 81 61 63 79 62 70 80 72

Allocation

priority no.

28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54

String�s

second part

30 37 68 13 39 46 66 57 14 23 47 69 64 17 78 25 75 27 34 77 36 43 59 45 52 73 4

Allocation

priority no.

55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81

String�s

second part

28 55 24 5 15 54 46 8 48 29 56 7 16 65 22 53 74 26 58 44 60 67 6 9 76 35 18

Step 3: Derivation of feasible MPFCDP distribution schedule,

evaluation, and initial solution

The string S, on decoding, provides a feasible distribution schedule

(i.e. solution) to the MPFCDP by first allocating shipment quantities to the

cells of SPFCDP based on their priority as per the positions in the string S and

then deriving the actual MPFCDP distribution quantities Xijt, suppliers�

inventory SIit, customers� inventory CIj

t and backorder BLj

t. The following

steps 3.1 to 3.3 describe the procedure adopted for the allocation to

SPFCDP(�s), derivation of actual schedule to MPFCDP (�m) and

determination of the total cost of distribution Z(�m) respectively.

99

Step 3.1: Allocation of shipment quantities to SPFCDP(����s)

Modulated SPFCDP data matrix is treated as a simple transportation

matrix and the allotment is made (as per the seed string priority number order

sequence) by allotting the minimum value of either supply or demand in each

matrix cell (SP_Xij= min (SP_Pitr

, SP_Djtc)). The allocation process is

continued for the whole seed string as per the priority number order sequence.

Tables 6.5a and 6.5d illustrate the allocations for the illustration SPFCDP

problem.

Table 6.5a Insertion of first priority cell 11 with shipment quantity 40

(min (SP_P21

, SP_D21))

tc

SP_Pitr

�1 2 3

j

i

1 2 3 1 2 3 1 2 3

tr

1

1 70

2 40 40 0

3 60

2

1 50

2 30

3 60

3

1 80

2 60

3 30

SP_Djtc� 60 80

40

40 60 20 30 90 60 40

Cell 11

(First in

allocation

priority)

100

Table 6.5b Insertion of second priority cell 21 with shipment quantity

40 (min (SP_P31, SP_D3

1))

Table 6.5c Allocation of the diagonal matrix cells

tc

SP_Pitr �1 2 3

j

i

1 2 3 1 2 3 1 2 3

t r

1

1 60 10 0 70 60 0

2 0 40 0 40 0

3 0 20 40 60 20 0

2

1 50 0 0 50 0

2 0 20 0 30 10

3 10 0 30 60 30 20

3

1 80 0 0 80 0

2 0 60 0 60 0

3 0 0 30 30 0

SP_Djtc� 60

0

80

40

30

10

40

0

60

50

0

20

0

30

0

90

10

60

0

40

0

tc

SP_Pitr

�1 2 3

j

i

1 2 3 1 2 3 1 2 3

tr

1

1 70

2 40 40 0

3 40 60 20

2

1 50

2 30

3 60

3

1 80

2 60

3 30

SP_Djtc� 60 80

40

40

0

60 20 30 90 60 40

101

Table 6.5d Final SPFCDP allocation matrix(����s)

Step 3.2: Derivation of MPFCDP distribution schedule (Xijt):

Any value in the cell below the diagonal matrices indicates the

unfilled demand (backorder) of customer j in the period tc, which is met by

the supplier i during the next period tc+1. On the other hand, any value in the

cell above the diagonal matrix indicates the excess supply (inventory) of

supplier i in the period tr, which is either kept at the location of the supplier i

itself or delivered to customer j and stored at the customer�s location. The

steps followed to derive the feasible distribution schedule for the MPFCDP

from the SPFCDP distribution schedule (Table 6.5d) are as follows.

Step 3.2.1: The allocations in the cells of below diagonal matrices of

SPFCDP are transferred as BLjt, where t corresponds to tc. The same is added

to the shipment quantity of jth

customer in the period t+1. In SPFCDP

allocation matrix (Table 6.5d), the allotment (10 units) 47 is set as backorder

to customer 2 in period 1. The same quantity (10 units) is added with the

demand of customer 2 in period 2.

tc

SP_Pitr �1 2 3

j

i

1 2 3 1 2 3 1 2 3 t r

1

1 60 10 0 0 0 0 0 0 0 70 60 0

2 0 40 0 0 0 0 0 0 0 40 0

3 0 20 40 0 0 0 0 0 0 60 20 0

2

1 0 0 0 50 0 0 0 0 0 50 0

2 0 0 0 0 20 0 0 0 10 30 10 0

3 0 10 0 10 0 30 10 0 0 60 30 20 10 0

3

1 0 0 0 0 0 0 80 0 0 80 0

2 0 0 0 0 0 0 0 60 0 60 0

3 0 0 0 0 0 0 0 0 30 30 0

SP_Djtc� 60

0

80

40

30

10

0

40

0

60

50

0

20

0

30

0

90

10

0

60

0

40

0

Cell no 45

Suppliers�

inventory

Cell no 52

Customers�

inventory

Cell no 47

Customers�

back order

102

Step 3.2.3: The allocations in the cells of above diagonal matrices of

SPFCDP are transferred as supplier�s inventory or customer�s inventory. It is

decided by the minimum SP_Cij value (minimum value of SP_Cij in the

supplier�s side and customer�s side inventory cell) and not by SP_FCij value.

It is because, SP_FCij value is either 0 or FCij depending upon the period at

which the actual shipment is made.

Case 1: Storage at the suppliers� side itself

The allocations in the cells of above diagonal matrices of SPFCDP

are transferred as supplier�s inventory SIit, where t corresponds to tc. The

same is added to the shipment quantity of ith

supplier in the period t+1. In

Table 6.5d, the allotment (10 units) in cell number 45 is set as supplier�s

inventory. Because the SP_Cij minimum is 92 (supplier�s side SP_Cij =92 and

customer�s side SP_Cij =95). This supplier�s inventory belongs to supplier 2

in period 2. The same quantity (10 units) is added with the supply of supplier

2 in period 3.

Case 2: Storage at the customers� side

The allocations in the cells of above diagonal matrices of SPFCDP

are transferred as CIjt in the period t itself, where t corresponds to tr. The same

is subtracted from the demand quantity of jth

customer in the period t+1. In

Table 6.5d, the allotment (10 units) in cell number 52 is set as customer�s

inventory. Because the SP_Cij minimum is 45 (supplier�s side SP_Cij =58 and

customer�s side SP_Cij =45). This customer�s inventory belongs to customer 1

in period 2. The same quantity (10 units) is subtracted from the demand of

customer 1 in period 3.

103

Eventually the actual MPFCDP distribution schedule from the

SPFCDP distribution schedule for the illustration problem is given in

Table 6.6.

Table 6.6 Seed string�s actual MPFCDP distribution schedule (����m)

T

1 2 3

j

i

1 2 3 SIi1

1 2 3 SIi2

1 2 3 SIi3

1 60 10 0 0 50 0 0 0 80 0 0 0

2 0 40 0 0 0 20 0 10 0 60 10 0

3 0 20 40 0 20 10 30 0 0 0 30 0

BLjt� 0 10 0 0 0 0 0 0 0

CIit � 0 0 0 10 0 0 0 0 0

Step 3.3: Determination of total distribution cost (Evaluation):

Total distribution cost Z(�m) corresponding to MPFCDP

distribution schedule �m is calculated from the objective Equation 3.1

(chapter 3) and is set as initial solution.

Z(�m) = 20,500 and �opt=�m and Zopt = Z(�m ).

Step 4: Generation of neighbourhood seed string and its evaluation

A neighbourhood seed string S� to the current seed string S is

generated via mutation operator (Mansouri, 2006), which is described below.

Mutation. Mutation for this research is a unary random mutation. A

random number U between 0 and 1 is generated corresponding to every

element of the seed and if the random number U is less than P_mut (0.5), then

those two particular elements are mutated. The mutation exchanges the

sequence elements within the seed for maintaining the feasibility. This

104

process is carried out separately in the first and second part of the

chromosome. A neighbourhood seed string S� before and after mutation is

given in Table 6.7.

Table 6.7 Seed string before and after mutation

Before mutation

StringAllocation priority no.

1 2 3 4 5 6 7 8 9 10 � 27 28 29 30 31 32 33 34 35 36 37 � 81

S 11 21 1 19 3 2 10 20 12 41 � 72 30 37 68 13 39 46 66 57 14 23 ... 18

First part Second part

After mutation

String Allocation priority no.

1 2 3 4 5 6 7 8 9 10 � 27 28 29 30 31 32 33 34 35 36 37 � 81

S� 11 21 1 19 12 2 10 20 3 41 � 72 30 46 68 13 39 37 66 57 14 23 ... 18

The SPFCDP distribution schedule (Table 6.8), MPFCDP

distribution schedule (Table 6.9) and total distribution cost Z(�m�) are

calculated by the same procedure as used in previous step 3.

Table 6.8 Neighbourhood seed string�s SPFCDP distribution schedule

(����s�)

tc

SP_Pitr

1 2 3

t r

j

i

1 2 3 1 2 3 1 2 3

1

1 0 70 0 0 0 0 0 0 0 70

2 30 10 0 0 0 0 0 0 0 40

3 20 0 40 0 0 0 0 0 0 60

2

1 0 0 0 50 0 0 0 0 0 50

2 0 0 0 0 20 0 0 0 10 30

3 10 0 0 10 0 30 10 0 0 60

3

1 0 0 0 0 0 0 80 0 0 80

2 0 0 0 0 0 0 0 60 0 60

3 0 0 0 0 0 0 0 0 30 30

SP_Djtc� 60 80 40 60 20 30 90 60 40

105

Table 6.9 New Seed string�s MPFCDP distribution schedule (����m�)

T

1 2 3

j

i

1 2 3 SIi1

1 2 3 SIi2

1 2 3 SIi3

1 0 70 0 0 50 0 0 0 80 0 0 0

2 30 10 0 0 0 20 0 10 0 60 10 0

3 20 0 40 0 30 0 30 0 0 0 30 0

BLjt� 10 0 0 0 0 0 0 0 0

CIit � 0 0 0 10 0 0 0 0 0

Total distribution cost Z(�m�) = 20,560

Step 5: Calculation of uphill acceptance parameter delta.

The new seed string S� is selected by calculating the value of the

delta. Delta is the cost difference between the neighbourhood seed string

distribution schedule and the initial seed string distribution schedule.

i.e., Delta = Z(�m�) − Z(�m); Delta = 20,560- 20,500 = 60

If (Delta � 0) then proceed to step 6 (downhill move). But here

(Delta > 0) so go to step 7 (uphill move).

Step 6: Downhill move

Assign �m =�m�, Z(�m) = Z(�m�) and

If Z (�m) < Zopt, then set � opt =�m and Zopt = Z (�m) else go to step 9.

Step 7: Uphill move

Computation of /TE)exp(-Delta P � and sample R (Random no.

generated (0,1)).

P = 0.88 and P = 0.92. If PR� , so proceed to step 8 else proceed to

step 9.

106

Step 8: Assign �m=�m�, Z(�m) = Z(�m�) and 1 ACCEPT ACCEPT � .

Step 9: TOTAL= TOTAL + 1.

Step 10: Check for termination of iteration at the set temperature

The algorithm is frozen. The termination of the SAA is achieved

when FREEZE counter reaches the specified value (FREEZE=5) or the

temperature TE falls to a pre-specified value (TE=20). Now �opt contains the

best MPFCDP distribution schedule and Zopt has the minimum Z(�m). If

(TOTAL > (m*n*t)) or (ACCEPT > (m*n*t)/2), then proceed to step 11 else

go back to step 4 until it satisfies the condition in step 10. Here the condition

in step 10 is not satisfied. Hence, execution goes to step 4.

Step 11: Final outputs

The final best found distribution schedule �(opt) and distribution cost

Z(opt) after decreasing the temperature from 475 to 20 for the illustration

problem are given below in the Tables 6.10 and 6.11.

Table 6.10 Final SPFCDP distribution schedule

tc

SP_Pitr

�1 2 3

t r

j

i

1 2 3 1 2 3 1 2 3

1

1 0 40 30 0 0 0 0 0 0 70

2 0 40 0 0 0 0 0 0 0 40

3 60 0 0 0 0 0 0 0 0 60

2

1 0 0 10 0 0 30 0 0 10 50

2 0 0 0 0 20 0 10 0 0 30

3 0 0 0 60 0 0 0 0 0 60

3

1 0 0 0 0 0 0 80 0 0 80

2 0 0 0 0 0 0 0 60 0 60

3 0 0 0 0 0 0 0 0 30 30

SP_Djtc� 60 80 40 60 20 30 90 60 40

Cell numbers

36 and 43

Supplier’s

inventory

Cell no 30

Customer’s

backorder

107

Table 6.11 Final MPFCDP distribution schedule (����opt)

T

1 2 3

j

i

1 2 3 SIi1

1 2 3 SIi2

1 2 3 SIi3

1 40 30 0 40 10 80 10 0

2 40 0 20 10 10 60 0

3 60 0 60 0 30 0

BLjt� 0 0 10 0 0 0 0 0 0

CIit � 0 0 0 0 0 0 0 0 0

Total distribution cost Z opt = 17,960

6.3.3 SAA distribution schedule and solutions to the other three

multi-period fixed charge models

The previous sections 6.3.1 and 6.3.2 illustrate the proposed SAA

heuristic to solve the Model I multi-period fixed charge problem. The same

SAA procedure is followed to solve the other three multi-period fixed charge

models (Model II, Model III and Model IV) with small changes in coding,

decoding and fitness function evaluation procedures. They are as follows:

� Model II follows the same coding procedure as Model I to

account for the subcontract instead of backorder. But in

decoding, the subcontract quantity (backorder in Model I) is

fulfilled in the same period itself and is transferred to the

same period in multi-period distribution schedule. The fitness

function is calculated from its relevant objective Equation

(3.20).

� Model III follows the same coding and decoding procedures

as Model I. But the fitness function is calculated from its

relevant objective Equation (3.39).

� Model IV follows the same coding procedure as Model I to

account for the subcontract instead of backorder. But in

108

decoding, the subcontract quantity (backorder in Model I) is

fulfilled in the same period itself and is transferred to the

same period in multi-period distribution schedule. The fitness

function is calculated from its relevant objective

Equation (3.58).

Finally, the solutions obtained by SAA based heuristic to the

example problem in all the four multi-period fixed charge problems are given

in Tables 6.12 to 6.15.

Table 6.12 SAA distribution schedule and solution of Model I

T

1 2 3

j

i

1 2 3 SIi1

1 2 3 SIi2

1 2 3 SIi3

1 40 30 0 40 10 80 10 0

2 40 0 20 10 10 60 0

3 60 0 60 0 30 0

BLjt� 0 0 10 0 0 0 0 0 0

CIit � 0 0 0 0 0 0 0 0 0

Total distribution cost=17,960

Table 6.13 SAA distribution schedule and solution of Model II

T

1 2 3

j

i

1 2 3 SIi1

1 2 3 SIi2

1 2 3 SIi3

1 40 30 0 20 30 0 80 0

2 40 0 20 10 70 0

3 60 0 50 10 40 0

SBjt� 0 0 10 0 0 0 0 0 0

CIit � 0 0 0 10 0 0 0 10 0

Total distribution cost =17,430

109

Table 6.14 SAA distribution schedule and solution of Model III

T

1 2 3

j

i

1 2 3 SIi1

1 2 3 SIi2

1 2 3 SIi3

1 40 30 0 40 10 80 10 0

2 40 0 20 10 10 60 0

3 60 0 60 0 30 0

BLjt� 0 0 10 0 0 0 0 0 0

CIit � 0 0 0 0 0 0 0 0 0

Total production-distribution cost=27,790

Table 6.15 SAA distribution schedule and solution of Model IV

T

1 2 3

j

i

1 2 3 SIi1

1 2 3 SIi2

1 2 3 SIi3

1 40 30 0 20 30 0 80 0

2 40 0 20 10 70 0

3 60 0 50 10 40 0

SBjt� 0 0 10 0 0 0 0 0 0

CIit � 0 0 0 10 0 0 0 10 0

Total production-distribution cost =27,260

6.4 PERFORMANCE ANALYSIS

Forty test problems along with their SAA outputs are considered for

this performance analysis. The quality of SAA solution is tested by comparing

it with the lower bound and LINGO solutions. Tables 6.16 to 6.19 show the

percentage of deviation of SAA solution with lower bound and LINGO

solutions. Figures 6.2 to 6.5 show them graphically.

110

Table 6.16 Percentage deviation of SAA solutions from lower bound

and LINGO solutions in Model I

Test

Problem

Percentage deviation of SAA solutions

with lower bound and LINGO solutions

Solver

time (secs.)

No. Size

m * n * T ZLINGO ZL SAA % deviation

from ZLINGO

% deviation

from ZL

1. 2 * 2 * 2 9,190 8,484 9,190 0 8.322 8

2. 2 * 3 * 2 17,625 16,813 17,925 1.702 6.614 8

3. 2 * 4 * 2 14,915 14,132 14,985 0.469 6.036 10

4. 2 * 5 * 2 30,850 30,021 30,850 0 2.761 12

5. 2 * 6 * 2 28,720 27,450 28,720 0 4.627 14

6. 2 * 7 * 2 18,320 18,214 18,320 0 0.582 12

7. 3 * 2 * 2 8,200 8,157 8,200 0 0.527 12

8. 3 * 3 * 2 11,290 11,237 11,290 0 0.472 15

9. 3 * 4 * 2 15,010 15,000 15,010 0 0.067 17

10. 3 * 5 * 2 18,690 17,991 18,690 0 3.885 13

11. 3 * 6 * 2 24,300 23,674 24,300 0 2.644 16

12. 3 * 7 * 2 25,780 25,731 25,780 0 0.190 20

13. 4 * 2 * 2 10,155 10,106 10,155 0 0.485 17

14. 4 * 3 * 2 21,620 20,695 21,620 0 4.470 25

15. 4 * 4 * 2 20,421 20,347 20,421 0 0.364 30

16. 4 * 5 * 2 20,460 20,310 20,460 0 0.739 38

17. 4 * 6 * 2 24,805 21,178 24,805 0 17.126 47

18. 5 * 2 * 2 14,285 14,010 14,285 0 1.963 22

19. 5 * 3 * 2 21,180 21,019 21,180 0 0.766 24

20. 5 * 4 * 2 24,283 23,206 24,283 0 4.641 21

21. 5 * 5 * 2 20,528 19,542 20,528 0 5.046 31

22. 5 * 6 * 2 17,444 16,834 17,444 0 3.624 74

23. 2 * 2 * 3 14,530 14,511 14,530 0 0.131 19

24. 2 * 3 * 3 25,100 25,051 25,100 0 0.196 29

25. 2 * 4 * 3 22,655 21,916 22,655 0 3.372 36

26. 3 * 2 * 3 11,500 11,479 11,500 0 0.183 31

27. 3 * 3 * 3 17,340 17,340 17,960 3.576 3.576 36

28. 3 * 4 * 3 23,165 20,773 22,640 -2.266 8.988 36

29. 3 * 5 * 3 23,820 21,542 22,260 -6.549 3.333 69

30. 4 * 2 * 3 15,435 14,608 15,435 0 5.661 37

31. 4 * 3 * 3 22,650 21,299 22,650 0 6.343 55

32. 4 * 4 * 3 28,390 27,415 27,830 -1.973 1.514 73

33. 4 * 5 * 3 26,120 24,266 24,805 -5.034 2.221 91

34. 5 * 2 * 3 21,200 21,140 21,200 0 0.284 26

35. 5 * 3 * 3 28,610 27,668 28,610 0 3.405 46

36. 2 * 2 * 4 17,975 17,275 17,975 0 4.052 33

37. 2 * 3 * 4 38,725 38,369 38,725 0 0.928 49

38. 2 * 4 * 4 20,860 20,208 20,860 0 3.226 67

39. 3 * 2 * 4 12,360 12,069 12,390 0.243 2.660 48

40. 3 * 3 * 4 13,875 13,112 13,525 -2.523 3.150 72

111

Table 6.17 Percentage deviation of SAA solutions from lower bound

and LINGO solutions in Model II

Test

Problem

Percentage deviation of SAA solutions

with lower bound and LINGO solutions

Solver

time (secs.)

No. Size

m * n * T ZLINGO ZL SAA % deviation

from ZLINGO

% deviation

from ZL

1. 2 * 2 * 2 9,010 8,034 9,010 0 12.148 9

2. 2 * 3 * 2 17,625 16,813 17,925 1.702 6.614 6

3. 2 * 4 * 2 14,915 14,132 14,985 0.469 6.036 10

4. 2 * 5 * 2 29,690 28,452 29,690 0 4.351 13

5. 2 * 6 * 2 28,720 27,450 28,720 0 4.627 15

6. 2 * 7 * 2 17,450 17,005 17,450 0 2.617 13

7. 3 * 2 * 2 7,875 7,127 7,875 0 10.495 12

8. 3 * 3 * 2 11,290 11,237 11,290 0 0.472 14

9. 3 * 4 * 2 15,010 15,000 15,010 0 0.067 14

10. 3 * 5 * 2 18,690 17,991 18,690 0 3.885 12

11. 3 * 6 * 2 22,940 20,200 22,940 0 13.564 18

12. 3 * 7 * 2 25,780 25,731 25,780 0 0.190 26

13. 4 * 2 * 2 10,155 10,106 10,155 0 0.485 17

14. 4 * 3 * 2 21,220 20,008 21,220 0 6.058 25

15. 4 * 4 * 2 20,421 20,347 20,421 0 0.364 33

16. 4 * 5 * 2 17,400 16,010 17,400 0 8.682 42

17. 4 * 6 * 2 24,805 21,178 24,805 0 17.126 52

18. 5 * 2 * 2 14,285 14,010 14,285 0 1.963 22

19. 5 * 3 * 2 21,180 21,019 21,180 0 0.766 23

20. 5 * 4 * 2 24,283 23,206 24,283 0 4.641 22

21. 5 * 5 * 2 20,150 20,025 20,150 0 0.624 31

22. 5 * 6 * 2 17,444 16,834 17,444 0 3.624 73

23. 2 * 2 * 3 14,630 14,015 14,630 0 4.388 21

24. 2 * 3 * 3 23,750 22,005 23,750 0 7.930 31

25. 2 * 4 * 3 21,485 20,408 21,485 0 5.277 41

26. 3 * 2 * 3 11,550 11,005 11,550 0 4.952 29

27. 3 * 3 * 3 17,430 17,340 17,430 0 0.519 36

28. 3 * 4 * 3 23,320 20,850 21,485 -7.869 3.046 34

29. 3 * 5 * 3 24,010 21,010 21,630 -9.913 2.951 68

30. 4 * 2 * 3 15,130 14,012 15,130 0 7.979 37

31. 4 * 3 * 3 22,540 22,402 22,540 0 0.616 53

32. 4 * 4 * 3 28,390 27,415 27,830 -1.973 1.514 70

33. 4 * 5 * 3 26,450 22,120 23,700 -10.397 7.143 88

34. 5 * 2 * 3 20,750 20,003 20,750 0 3.734 29

35. 5 * 3 * 3 28,150 27,283 28,150 0 3.178 52

36. 2 * 2 * 4 17,885 17,106 17,885 0 4.554 31

37. 2 * 3 * 4 38,100 36,750 38,100 0 3.673 49

38. 2 * 4 * 4 19,360 18,605 19,360 0 4.058 61

39. 3 * 2 * 4 11,505 11,000 11,505 0 4.591 52

40. 3 * 3 * 4 13,035 12,040 13,035 0 8.264 76

112

Table 6.18 Percentage deviation of SAA solutions from lower bound

and LINGO solutions in Model III

Test

Problem

Percentage deviation of SAA solutions

with lower bound and LINGO solutions

Solver

time (secs.)

No. Size

m * n * T ZLINGO ZL SAA % deviation

from ZLINGO

% deviation

from ZL

1. 2 * 2 * 2 13,365 12,659 13,365 0 5.577 8

2. 2 * 3 * 2 22,500 21,688 22,800 1.333 5.127 9

3. 2 * 4 * 2 21,305 20,522 21,375 0.329 4.157 11

4. 2 * 5 * 2 45,350 44,521 45,350 0 1.862 13

5. 2 * 6 * 2 43,420 42,150 43,420 0 3.013 14

6. 2 * 7 * 2 30,120 30,014 30,120 0 0.353 12

7. 3 * 2 * 2 11,955 11,912 11,955 0 0.361 13

8. 3 * 3 * 2 17,390 17,337 17,390 0 0.306 13

9. 3 * 4 * 2 21,600 21,590 21,600 0 0.046 17

10. 3 * 5 * 2 31,310 30,611 31,310 0 2.283 10

11. 3 * 6 * 2 38,220 37,594 38,220 0 1.665 15

12. 3 * 7 * 2 45,500 45,451 45,500 0 0.108 22

13. 4 * 2 * 2 15,695 15,646 15,695 0 0.313 17

14. 4 * 3 * 2 37,390 36,465 37,390 0 2.537 25

15. 4 * 4 * 2 38,061 37,987 38,061 0 0.195 36

16. 4 * 5 * 2 35,260 35,110 35,260 0 0.427 43

17. 4 * 6 * 2 39,335 35,708 39,335 0 10.157 48

18. 5 * 2 * 2 21,845 21,570 21,845 0 1.275 22

19. 5 * 3 * 2 36,360 36,199 36,360 0 0.445 26

20. 5 * 4 * 2 45,533 44,456 45,533 0 2.423 22

21. 5 * 5 * 2 34,538 33,552 34,538 0 2.939 31

22. 5 * 6 * 2 26,074 25,464 26,074 0 2.396 73

23. 2 * 2 * 3 21,405 21,386 21,405 0 0.089 18

24. 2 * 3 * 3 32,150 32,101 32,150 0 0.153 26

25. 2 * 4 * 3 32,255 31,516 32,255 0 2.345 35

26. 3 * 2 * 3 16,920 16,899 16,920 0 0.124 27

27. 3 * 3 * 3 27,170 27,170 27,790 2.282 2.282 40

28. 3 * 4 * 3 32,105 29,713 31,580 -1.635 6.283 37

29. 3 * 5 * 3 37,630 35,352 36,070 -4.146 2.031 69

30. 4 * 2 * 3 23,755 22,928 23,755 0 3.607 37

31. 4 * 3 * 3 38,610 37,259 38,610 0 3.626 56

32. 4 * 4 * 3 46,230 45,255 45,670 -1.211 0.917 76

33. 4 * 5 * 3 44,140 42,286 42,825 -2.979 1.275 93

34. 5 * 2 * 3 38,890 38,830 38,890 0 0.155 27

35. 5 * 3 * 3 48,740 47,798 48,740 0 1.971 52

36. 2 * 2 * 4 25,355 24,655 25,355 0 2.839 36

37. 2 * 3 * 4 49,845 49,489 49,845 0 0.719 49

38. 2 * 4 * 4 26,710 26,058 26,710 0 2.502 64

39. 3 * 2 * 4 18,290 17,999 18,320 0.164 1.783 46

40. 3 * 3 * 4 19,495 18,732 19,145 -1.795 2.205 72

113

Table 6.19 Percentage deviation of SAA solutions from lower bound

and LINGO solutions in Model IV

Test

Problem

Percentage deviation of SAA solutions

with lower bound and LINGO solutions

Solver

time (secs.)

No. Size

m * n * T ZLINGO ZL SAA % deviation

from ZLINGO

% deviation

from ZL

1. 2 * 2 * 2 13,185 12,209 13,185 0 7.994 8

2. 2 * 3 * 2 22,500 21,688 22,800 1.333 5.127 9

3. 2 * 4 * 2 21,305 20,522 21,375 0.329 4.157 9

4. 2 * 5 * 2 44,190 42,952 44,190 0 2.882 12

5. 2 * 6 * 2 43,420 42,150 43,420 0 3.013 14

6. 2 * 7 * 2 29,250 28,805 29,250 0 1.545 12

7. 3 * 2 * 2 11,630 10,882 11,630 0 6.874 13

8. 3 * 3 * 2 17,390 17,337 17,390 0 0.306 16

9. 3 * 4 * 2 21,600 21,590 21,600 0 0.046 17

10. 3 * 5 * 2 31,310 30,611 31,310 0 2.283 14

11. 3 * 6 * 2 36,860 34,120 36,860 0 8.030 17

12. 3 * 7 * 2 45,500 45,451 45,500 0 0.108 22

13. 4 * 2 * 2 15,695 15,646 15,695 0 0.313 17

14. 4 * 3 * 2 36,990 35,778 36,990 0 3.388 25

15. 4 * 4 * 2 38,061 37,987 38,061 0 0.195 32

16. 4 * 5 * 2 32,200 30,810 32,200 0 4.512 42

17. 4 * 6 * 2 39,335 35,708 39,335 0 10.157 48

18. 5 * 2 * 2 21,845 21,570 21,845 0 1.275 22

19. 5 * 3 * 2 36,360 36,199 36,360 0 0.445 21

20. 5 * 4 * 2 45,533 44,456 45,533 0 2.423 21

21. 5 * 5 * 2 34,160 34,035 34,160 0 0.367 31

22. 5 * 6 * 2 26,074 25,464 26,074 0 2.396 73

23. 2 * 2 * 3 21,505 20,890 21,505 0 2.944 17

24. 2 * 3 * 3 30,800 29,055 30,800 0 6.006 30

25. 2 * 4 * 3 31,085 30,008 31,085 0 3.589 39

26. 3 * 2 * 3 16,970 16,425 16,970 0 3.318 29

27. 3 * 3 * 3 27,260 27,170 27,260 0 0.331 39

28. 3 * 4 * 3 32,260 29,790 30,425 -5.688 2.132 37

29. 3 * 5 * 3 37,820 34,820 35,440 -6.293 1.781 70

30. 4 * 2 * 3 23,450 22,332 23,450 0 5.006 37

31. 4 * 3 * 3 38,500 38,362 38,500 0 0.360 55

32. 4 * 4 * 3 46,230 45,255 45,670 -1.211 0.917 74

33. 4 * 5 * 3 44,470 40,140 41,720 -6.184 3.936 93

34. 5 * 2 * 3 38,440 37,693 38,440 0 1.982 27

35. 5 * 3 * 3 48,280 47,413 48,280 0 1.829 49

36. 2 * 2 * 4 25,265 24,486 25,265 0 3.181 34

37. 2 * 3 * 4 49,220 47,870 49,220 0 2.820 49

38. 2 * 4 * 4 25,210 24,455 25,210 0 3.087 65

39. 3 * 2 * 4 17,435 16,930 17,435 0 2.983 49

40. 3 * 3 * 4 18,655 17,660 18,655 0 5.634 74

114

Figure 6.2 Comparison of SAA solutions with lower bound and LINGO

solutions in Model I

Figure 6.3 Comparison of SAA solutions with lower bound and LINGO

solutions in Model II

115

Figure 6.4 Comparison of SAA solutions with lower bound and LINGO

solutions in Model III

Figure 6.5 Comparison of SAA solutions with lower bound and LINGO

solutions in Model IV

116

6.5 SUMMARY

In this chapter four multi-period fixed charge problems (Model I to

Model IV) are solved using SAA based heuristic. Forty test problems (given

in Appendix 1) of different dimensions are also solved using SAA based

heuristic.

The outcome of percentage deviations from lower bound and

LINGO solutions reveals that the SAA heuristic provides good solutions that

are equal (better in 5 problems) to LINGO solutions and close to lower bound

values. This is shown in Table 6.20.

Table 6.20 Percentage deviations of SAA solutions with lower bound

and LINGO solutions

S. No. Models % Deviation of SAA solutions

From ZL From ZLINGO Average

min max min max ZL ZLINGO

1. Model I 0.06 17.12 -6.55 3.57 3.48 -0.36

2. Model II 0.06 17.13 -10.40 1.70 4.87 -0.87

3. Model III 0.05 10.16 -4.15 2.28 2.21 -0.22

4. Model IV 0.05 10.16 -6.29 1.33 3.09 -0.54

117

The average computational solver time of SAA heuristic is

considerably lower than LINGO. Figure 6.6 shows the comparison of SAA

heuristics’ average computational time with LINGO solver time. The figure

reveals that the SAA based heuristic provides good solutions in a reasonable

computational solver time.

Figure 6.6 SAAs� computational/solver time comparison with LINGO

solver

Eventually, the outcomes reveal that the SAA based heuristic

provides good solutions in a reasonable computational time. The next chapter

deals with the population search based GA heuristic.