multiple sourcing effects in the expansion of panama canal

66
The Pennsylvania State University The Graduate School College of Engineering MULTIPLE SOURCING EFFECTS IN THE EXPANSION OF PANAMA CANAL A Thesis in Industrial Engineering and Operations Research by Yuexi Chen ©2014 Yuexi Chen Submitted in Partial Fulfillment of the Requirements for the Degree of Master of Science August 2014

Upload: others

Post on 11-Mar-2022

3 views

Category:

Documents


0 download

TRANSCRIPT

The Pennsylvania State University

The Graduate School

College of Engineering

MULTIPLE SOURCING EFFECTS IN THE EXPANSION OF PANAMA CANAL

A Thesis in

Industrial Engineering and Operations Research

by

Yuexi Chen

©2014 Yuexi Chen

Submitted in Partial Fulfillment

of the Requirements

for the Degree of

Master of Science

August 2014

ii

The thesis of Yuexi Chen was reviewed and approved* by the following:

Vittal Prabhu

Professor, Department of Industrial and Manufacturing Engineering

Thesis Adviser

Saurabh Bansal

Assistant Professor, Department of Supply Chain and Information Systems

Paul Griffin

Professor, Department of Industrial and Manufacturing Engineering

Peter and Angela Dal Pezzo Department Head Chair

*Signatures are on file in the Graduate School.

iii

ABSTRACT

With the expanding of Panama Canal, suppliers along the East coast are facing challenges

of shift in cargo, while customers earn benefits for more suppliers to choose from. The

study will discuss the impact of Panama Canal expansion along the supply chain, by

analyzing the change of risk and uncertainty due to involvement of multiple suppliers

(sources); and give customers insights of how to choose among a number of suppliers.

The Panama Canal expansion problem will be fitted into a Beer Game model with

multiple suppliers. Later in the article will analyze the problem by using various kinds of

optimization methods in the area of supply chain management. Detailed problem

formulation will be provided with multiple criteria. After that recommendations will be

made to the customers.

iv

Table of Contents

List of Figures .................................................................................................................... v

List of Tables .................................................................................................................... vi

Chapter 1. Literature Review ............................................................................................ 1

Chapter 2. Research Methodology .................................................................................. 11

Chapter 3. An EOQ Model Evaluating Purchase from Multiple Suppliers to Single

Destination ........................................................................................................................ 13

Problem Statement and Assumptions ............................................................................ 13

Evaluation of Order Fulfillment Rate............................................................................ 14

Optimization Model Formulation ................................................................................. 18

Numerical Example ....................................................................................................... 21

Chapter 4. Optimization of Performance Measures ........................................................ 24

Excel Solver VBA ......................................................................................................... 24

Interior-Point Method .................................................................................................... 26

Augmented Simultaneous Perturbation Stochastic Approximation (ASPSA) method . 28

A Comparison between VBA and Matlab..................................................................... 32

A Comparison between Interior Point Method and ASPSA Method............................ 32

Chapter 5. A Multiple Criteria Model to Evaluate Performance Measures .................... 37

Goal Programming ........................................................................................................ 37

Goal Programming Model ............................................................................................. 38

Chapter 6. Conclusion ..................................................................................................... 41

Appendix A ...................................................................................................................... 43

VBA Code ..................................................................................................................... 43

Interior-Point Method .................................................................................................... 44

ASPSA Method ............................................................................................................. 47

Goal Programming ........................................................................................................ 53

Biography......................................................................................................................... 57

v

List of Figures

Figure 1.Waterway Routes between Far East and the US .................................................. 2

Figure 2. Beer Game ........................................................................................................... 3

Figure 3. Variability of Orders............................................................................................ 4

Figure 4. Variability of Inventory ....................................................................................... 4

Figure 5. Demand Distortion .............................................................................................. 5

Figure 6. Dependency Analysis .......................................................................................... 6

Figure 7. The change of 50 variables for 150000 iterations for maximizing A ................ 30

Figure 8. The change of objective A for 150000 iterations .............................................. 31

Figure 9. The change of 50 variables for 150000 iterations for minimizing B ................ 31

Figure 10. The change of objective B for 150000 iterations ............................................ 32

Figure 11. Comparison between Interior Point and ASPSA on Obj A ............................. 34

Figure 12. Comparison between Interior Point and ASPSA on Time to compute A ....... 34

Figure 13. Comparison between Interior Point and ASPSA on Obj B ............................. 35

Figure 14. Comparison between Interior Point and ASPSA on Time to compute B........ 35

vi

List of Tables

Table 1. Numerical Example Parameters .......................................................................... 22

Table 2. A Feasible Solution ............................................................................................. 23

Table 3. VBA Result for Optimizing A ............................................................................ 25

Table 4. VBA Result for Optimizing B ............................................................................ 25

Table 5. Interior-Point Method for Optimizing A ............................................................ 27

Table 6. Interior-Point Method for Optimizing B ............................................................. 27

Table 7. ASPSA Method for Optimizing A ...................................................................... 30

Table 8. ASPSA Method for Optimizing B ...................................................................... 30

Table 9. Results Comparison between Interior-Point and ASPSA ................................... 33

Table 10. Further Comparison between Interior-Point and ASPSA ................................. 33

Table 11. Goal Programming Results ............................................................................... 40

vii

Acknowledgements

This thesis has been successfully completed under hard work, supports and continuous

efforts from many individuals, supervisors and institutions.

First and foremost, I would like to specially thank to Dr. Vittal Prabhu, my thesis advisor,

for his valuable guidance and instructions. It always brings me inspiration when

discussing with him.

Besides, I would like to thank to the Department of Industrial and Manufacturing

Engineering of the Pennsylvania State University for providing me rich resources and

good facilities to complete this thesis.

Last but not least, I deeply appreciate the understanding and supports from my family and

friends on me in completing the thesis.

1

Chapter 1

Literature Review

Panama Canal Expansion

A large part of Sino-US trade is conducted through entrepot trade on the US West coast.

Container vessels larger than 5,000 TEU transport goods from China to the US West

coast, then dispatch goods to the East coast via land way. The tedious processes lead to

port congestion, additional cost of switching transportation means and thus, low

efficiency.

The Panama Canal’s massive expansion project has been started in 2007, and is

scheduled to be completed in 2015. By the time, the Canal will allow large container

vessels with up to 13,000 TEU shipping capacity to transport through waterway directly

from Far East to the US East coast. The project will steal the show of the West coast

harbors and spurs East coast harbors to undertake multimillion-dollar efforts to increase

their capacity and local infrastructure.

By the time of completion of the project, new patterns of logistics planning will reveal on

the East coast due to larger goods supply directly shipped to there, and more retailers

involved in. In a typical supply chain, if we call the East coast harbors as the “suppliers”,

then inland supermarkets that needs goods supplies from harbors can be considered as

“customers”. From a customer’s point of view, the situation of more suppliers gives

chance to lower cost and improve efficiency. At this point, interesting questions are

raised: how to make the best selection among retailers? What are the criteria when

2

making selection? We can model the situation as a multiple sourcing problem and

analyze it by using supply chain management methods.

Figure 1.Waterway Routes between Far East and the US

(Source: Maritime Construction Depot [3])

The Beer Game

The Beer Game is a logistics simulation game that demonstrates basic principles in

supply chain management. First developed by a group of professors of MIT in 1960s, the

beer game has since been played all over the globe from all levels. The objective of the

game is to meet end customer’s demand of product while keeping as less penalty cost

(inventory cost and backorder cost) as possible along supply chain.

Typically, the beer game includes four stages: factory, distributor, wholesaler and retailer.

The factory produce product while the other three delivers product downward until it

reaches external end customer. They align as shown in flow chart in Figure 1. In this

system, retailer’s demands trigger product flow and order flow along the supply chain.

3

Before start, each stage has its own amount of inventory. The game is played in rounds,

which simulate weeks. For each round, each stage push an anticipated amount of product

downwards the supply chain, place an anticipated order upwards, and mark down

inventory level or backorder amount.

Figure 2. Beer Game

Some essential rules need to be followed. First, every order has to be fulfilled either

directly in current round, or later in subsequent rounds. Second, for penalty cost, each

item in inventory will cost $A per round, while each item in backorder will cost $B per

round. As mentioned above, the primary goal of the game is to minimize penalty cost.

Third, no communication is allowed among all stages. The only information allowed to

exchange is their orders. However, only the adjacent upstream stage can know the order.

Only the retailer knows the exact amount of order from external end customers while the

other three stages place anticipated orders base on their business intuition and

experiences.

Bullwhip Effect

The beer game would never failed to yield a bullwhip effect along the supply chain. If

consolidate and plot data collected from each stage, one can easily find that the

fluctuation of order amount and inventory level becomes more and more obvious on

4

upper stream stages. Two sample plots regarding the variability of order and inventory

are shown in Figure 3 and Figure 4. The data used in generating these two plots are from

a simulation of the game.

Figure 3. Variability of Orders

Figure 4. Variability of Inventory

0

10

20

30

40

50

60

70

80

0 5 10 15 20 25 30 35 40

Orders

Customer Retailer Wholesaler Distributor Factory

-150

-100

-50

0

50

0 5 10 15 20 25 30 35 40

Inventory

Retailer Wholesaler Distributor Factory

5

Bullwhip effect is the inherent increase in order amount fluctuation up the supply chain

(i.e., away from customer). As the illustration shown in Figure 5, the demand becomes

more and more distorted from downstream to upstream of the supply chain.

Figure 5. Demand Distortion

The concept of bullwhip effect first appeared in Forrester’s Industrial Dynamics in 1961.

Burbidge (1989) explained the behavior and called it the ‘Law of Industrial Dynamics’.

When demand of products is transmitted from downstream to upstream using stock

control ordering, then demand variation will be enlarged in each stage (Mason-Jones and

Towill 2000). According to Wilck (2006), the bullwhip effect is led from myopically

forecasted demand, order batching, price fluctuation and shortage gaming. It will result in

inventories excess, costs increase, quality problems, overtime expenses, shipping costs

increase, loss of customer service, lead time lengthening, sales loss and unnecessary

adjustment on capacity (Donovan 2002). Metters (1997) suggested that by reducing the

bullwhip effect the costs can be reduced dramatically. Even though the uncertainty is first

introduced by external end customers, the major amount uncertainty along the supply

chain is induced and magnified inside the system (Hieber and Hartel 2003). Information

6

sharing and coordination among stages within the supply chain are two well-known

management techniques, but it is often hard to do so.

Single Sourcing and Multiple Sourcing

According to Ford et al. (2011), single sourcing has the following benefits: single

agreement and one line of contact, and release from most of the day-to-day monitoring

and operation. But some risks such as higher supplier service responsibility, long-term

contract, and less competition, are more obvious. Multiple sourcing involves competition

between suppliers and avoid lock-in to a single supplier, tends to lead to shorter term

contract, and provides flexibility to replace a supplier without affecting others. However

more efforts shall be made by the customer to manage a portfolio of suppliers. To

evaluate supply chain risk associated with single vs. multiple sourcing, Nelson (2013)

conducted a mutual vs. lopsided dependency analysis. Customer with single sourcing is

more dependent than the supplier. If an issue arises, a transition to a multiple sourcing

strategy would help to mitigate risks and reduce reliance on the supplier.

Figure 6. Dependency Analysis (Nelson 2013)

7

Sodhi (2013) quantified the bullwhip effect for the manufacturer in a single sourcing

scenario by using an EOQ model. Lead time in the EOQ model is estimated by

exponential distribution. The reorder point and safety stock level may vary due to

different inventory management policies, such as commonly known (Q, r) policy and (T,

S) policy.

Performance Measures of Supply Chain

In today’s marketplace, companies must always be concerned with their competition. In

order to evaluate a company’s ability to meet end customer needs through product

availability, responsiveness and on-time delivery, some key indicators shall be analyzed

along a company’s supply chain. According to Hausman, supply chain performance

measures, or metrics, cross both functional lines and company boundaries. All functional

groups, such as R&D, manufacturing and marketing, are responsible in designing,

building and selling products more efficiently and effectively; and company boundaries

are changing as discovering new ways of all departments to work jointly to achieve the

ultimate supply chain goal: fill customer orders faster in the fierce competition.

In order to achieve the goal, key performance measures that we are going to look at must

show not only service wellness (service level, etc.), but also business handling wellness

(financial, inventory, etc.).

By selecting and analyzing some good performance measures, we can understand

business strategy in depth, and be more confident to handle bullwhip effect. However,

“bad” measures may mislead our understanding toward supply chain performance.

8

In the following discussion, we choose two indicators: total cost and order fulfillment rate

as the key performance measures.

Multi-item EOQ Model

Supply chain management integrated business functions and business processes within

and across companies into a cohesive and high-performing business models (Subramanya

and Sharma, 2009). It is a difficult job to manage supply chain because of complicated

relationships and integrations between various parties inside a supply chain.

Entities/products follow a certain process to be transported from supplier to customer; or

from source to destination. Single source-single destination Economic Order Quantity

(EOQ) mathematical model has been widely discussed in the literature to tackle the

tedious supply chain process, which includes production, transportation, storage, and

inspection.

The aim of EOQ model is to minimize the total cost along the supply chain, includes but

not limited to, procurement, transportation and inventory cost. In following chapter, an

EOQ model is formulated to evaluate the purchase process from multiple suppliers to

single destination. Details will be discussed later.

Optimization Methods

After the EOQ model is formulated, various optimization methodologies can be used to

solve the problem, such as Particle Swarm Optimization (PSO) method, Interior-Point

method and Augmented Simultaneous Perturbation Stochastic Approximation (ASPSA)

method.

9

Particle Swarm Optimization (PSO) (Kennedy and Eberhart, 1995) is a computational

method that optimizes a problem by iteratively improve a candidate solution with a given

measure of quality. This method simulates candidate solution as a particle, and uses

simple mathematical formulae to update particle’s position and velocity. A number of

particles with n-dimension are randomly chosen. In each iteration, we test the fitness of

the particle and compare the objective solution with current optima. The process of

finding optima goes with particle movement, and terminated by either reaching a

maximum iteration number or falling into a preset error range. PSO method requires only

primitive mathematical operators but has been demonstrated to perform well on a lot of

algorithms. Here in the research, PSO is used to minimize total cost A as well as

maximize order fulfillment rate B along a multiple suppliers supply chain. We initially

tried to use PSO as the optimization tool for the problem. After several times of test, we

noticed the Matlab function works best for inequality constrained problem, and has

problems meeting equality constraints, however most constraints in the problem are

equality constraints. We found it is time consuming to fine-tune the function, so we

converted to use Interior-Point method and ASPSA method.

Interior-Point method was invented by John von Neumann and then developed by

Karmarkar for linear programming. This method solves linear or nonlinear programming

problems and achieves optimization by scanning through the middle of solid rather than

around the surface of convex set.

ASPSA method is a simulation optimization method that can model the real systems in

fidelity and capture complex dynamics. (Spall, 1998) Simultaneous Perturbation

Stochastic Approximation (SPSA) uses only objective function measurements but not the

10

measurements of the gradient of the objective function (which are often difficult to

obtain). (Wang and Prabhu, 2009) ASPSA augmented pre-search, ordinal optimization,

non-uniform gain, and line search with SPSA.

Both Interior-Point and ASPSA will be discussed in detail later.

To realize those methods mentioned above, several programming software/languages can

be choosing from. Most commonly used ones are VBA, Matlab, LINGO and GAMS. We

first utilized VBA embedded in Excel, then convert to Matlab for its higher effectiveness.

The two methods mentioned above are programmed in Matlab.

Goal Programming

Goal programming is an operational research tool formulated with linear programming

method within the field of multi-criteria decision making (MCDM). The basic idea of

goal programming is to establish a set of goals for each of the objectives, formulate an

objective function for each objective, and seek solutions that minimize the total deviation

from the stated goals. According to how the goals compare in importance, goal

programming can be categorized as non-preemptive or preemptive. One of the categories

is selected and implemented in the following.

11

Chapter 2

Research Methodology

Performance Measures to Evaluate Supply Chain

Supply chain management is described as a systemic method to manage all participants in

the supply chain, which includes factory, distributor, wholesaler and retailer. There are

two performance measures that are commonly used to evaluate the success of a supply

chain: total cost and order fulfillment. In order to meet customer’s satisfaction, the

management processes aim to minimize total cost, as well as maximize order fulfillment

rate. In commerce, merchandisers make great efforts to reduce expenditure and thus to

increase profit. Therefore the total cost is considered as a key performance measure. Also,

to seek long-term sustainability in business operation, it is vital for all parties along the

supply chain to have a relatively high percentage of order fulfillment rate. Manufacturing

industry relies highly on raw material supplement. A low raw material supply may lead to

low production rate, low economy of scale, high production breakage risk, and high

operation cost. Due to this reason, order fulfillment rate is considered as another key

performance measure to evaluate the supply chain.

Optimization Methods

The goal is to minimize cost A and maximize order fulfillment rate B along supply chain.

A multi-objective optimization problem is defined and formulated in the following

chapter to optimize these two performance measures. Detail explanations of each

12

performance measures are discussed. Order fulfillment rate B is evaluated with its

exponential distribution property, then is implemented into an EOQ model that evaluate

both A and B simultaneously. Then common optimization algorithms are used to solve

the two optimization problems. VBA and Matlab are the two programming languages we

used, and Interior-Point Method and Augmented Simultaneous Perturbation Stochastic

Approximation (ASPSA) method are realized by Matlab. After that, a multiple criteria

optimization approach of goal programming is applied to integrate the two optimization

problems together. Detail analysis is provided later.

13

Chapter 3

An EOQ Model Evaluating Purchase from Multiple Suppliers to Single Destination

With the expansion of Panama Canal, more and more product suppliers are involved in

the fierce competition along the East coast. For a customer’ point of view, in order to

evaluate their competencies and make the best selection, a series of comparison should be

made. In this section, a linear programming model based on the idea of Economic Order

Quantity (EOQ) is developed in order to optimize the two suppliers’ performance

measures we chose: total cost and order fulfillment rate. In the following multi-objective

optimization problem, two objectives are considered. We want to minimize the total cost

along a supply chain under stochastic order quantity, inventory holding cost, purchasing

cost, inspection cost, and demand; as well as maximize order fulfillment rate regarding

amount successfully delivered and amount ordered. Multiple suppliers and single

destination scenario is considered.

Problem Statement and Assumptions

The current study develops a fuzzy model that shows flow of single product from

multiple suppliers to single destination, with cost and supplier and destination. In this

coordination, the cost is associated with all stages, such as demand cost, inventory

holding cost, distribution cost, and inspection cost. The objective of the problem is to

minimize the total cost.

14

Due to different agreements made between parties, prices of suppliers can be different,

and customers will have different tendencies to purchase from each supplier. For the

following discussion, several assumptions have been made:

Only a single customer/destination is considered

Single type of product is considered

Periodic review order policy

Demand is uncertain

If an order cannot be delivered on time, it will be cancelled

Penalty cost for undelivered orders

Quality of product supplied by each supplier is identical

Fixed cost is identical to all suppliers

Product is consumed in constant rate

Constant inspection rate

Evaluation of Order Fulfillment Rate

In preparation for the optimization formulation, the definition of order fulfillment rate

needs to be clearly stated.

This section will discuss a mathematical model that to evaluate order fulfillment rate for

multi-supplier scenario. The customer place orders of a single type of product to all

suppliers, while the order amount placed may vary to different suppliers in different time

period. We assume the lead time follows an exponential distribution, there is a chance

that some suppliers may not fulfill order in some time period. Order fulfillment rate is

defined as the percentage of order filled by suppliers. It is one of the most important

15

indicators in measuring supply chain performance. Companies that boast some of the

highest order fulfillment rate carry less inventory, experience shorter cash-to-cash cycle

times, and have significantly fewer stock-outs than their competitors; while low

fulfillment rate leads to extra labor costs and administration cost, increased need to

provide replacement orders, low operation efficiency and low customer satisfaction.

Lead time is a time gap between order placement and order receipt. In reality, there

always is latency between the initiation and execution of a process. In the realm of supply

chain management, a company must consider lead time as a vital factor when managing

inventory. If not well-planned, shortage may occur during the delay. Assume the lead

time Lj for the order placed to supplier j follows an exponential distribution with rate μj,

then the properties of the exponential distribution, the expected value and variance of the

lead time are

j

jLE

1][

2

1][

j

jLVar

The purchasing process we discussed uses period review order policy, with time period

length τ. An order is placed by customer at the beginning of the period, and the ordered

product is received by customer by the end of the same period – if the supplier is able to

fulfill the order. For an order placed at the beginning of the time period t, the supplier

may or may not fulfill the order at the end of time period t. Therefore the customer will

either receive an amount of Djt or 0 iterms by the end of period t from supplier j.

16

Let τ be the time length of each period t. The probability that supplier j will successfully

deliver an amount of Djt by the end of period t is

jeLp j

1)(

Define a discrete random variable Yj that represent the order fulfillment rate or the

percentage of the order received from supplier j. For the scenario of single supplier, the

order is either entirely fulfilled or not fulfilled at all. The distribution of order fulfillment

rate Y1 depending on lead time is

1

1

)( 0

1)( 1

1

1

1eLp

eLpY

For the scenario of multiple suppliers, 10 jY , 10 Jj

jY .

1

1

)( 0

1)(

eLp

eLpD

D

Y

j

j

Jj

jt

jt

j

As there are multiple suppliers to whom the customer can place order, we define two sets

M and N as two subsets of supplier set J.

M the set of m suppliers that successfully deliver product by the end of same period t,

JM

N the set of n suppliers that failed to deliver product by the end of same period t,

JN , JNM and NM

17

Then the probability that m suppliers will deliver their orders on time is

Mj Nj

jj eemNp )()1())((

The number of order arrivals by the end of period t depends on the subset M representing

those suppliers capable to deliver order of amount of Djt.

A counting process is used to count the total number of order arrivals from supplier set M.

A compound Poisson process is used to model total order fulfillment rate Y.

Mj

jYY

Within the whole set of suppliers J, each supplier experiences risk of not being able to

fulfill order, then there are nm2 possible combinations of available and unavailable

suppliers in each period t. For each scenario k among all nm2 possible combinations, we

have

Mj

jkk YY

The expected total order fulfillment rate is

nm

k Mj

jk

nm

k

k

nmnm

YY

YE

22

][

2

1

2

1

And the variance of total order fulfillment rate is

22])[(][)( YEYEYVar

18

Optimization Model Formulation

Order fulfillment rate has been defined in previous section and the definition of total cost

is straight forward. In this section the multi-objective optimization problem is formulated.

Sets

In preparation for the formulation, the following sets are identified.

T time period with index t, and time length τ for each period

J supplier with index j

M supplier subset of which can successfully deliver order with indicator mjt

Parameters

A the total cost which involves inventory holding cost for both suppliers and

destination, purchasing cost, inspection cost, and transportation cost.

B the total order fulfillment rate calculated by the ratio of amount successfully

delivered and total amount ordered.

ht inventory holding cost per product unit in period t at the destination

φjt unit purchasing cost from supplier j in period t

βjt unit transportation cost in period t from supplier j to the destination

λjt unit inspection cost in terms of quantity ordered from supplier j in period t

ηt unit penalty cost for undelivered order in period t

19

Xjt supplement that supplier j received in period t

Ct consumption amount of product in period t

IN1 initial inventory of the planning horizon at destination

μj lead time distribution parameter for supplier j

mjt binary indicator for whether supplier j can successfully deliver order in period t

Decision Variables

Djt the amount of product ordered in period t from supplier j for the destination

It inventory level at the destination at the end of period t

Formulation

Minimize A =

T

t

J

j

jtjtjtjtjtjtttt

jeDDDIh1 1

)}]1)({(])[[(

(1)

Maximize B = Y =

T

t

J

j

jY1 1

=

T

t Jj

jt

T

t Mj

jt

D

D

1

1=

T

t Jj

jt

T

t

jt

D

eD j

1

1

)1(

(2)

Subject to

t

J

j

jttt CeDII j

1

)1( )1(

;,...,1 Jj Tt ,...,2 (3)

1

1

111 )1( CeDINIJ

j

j

j

;,...,1 Jj (4)

20

t

J

j

jt CeD j

1

)1(

Tt ,...,2 (5)

0,, jttjt IID

In the proposed model, two objective functions need to be optimized. Equation (1) is the

objective function to minimize the total cost incurred in inventory holding, transportation,

purchasing and inspection. Period ending inventory holding cost at destination is denoted

by tt Ih , cost of purchasing the products from supplier j at period t is denoted by

)1(

jeD jtjt

, cost of inspection on ordered quantity from supplier j in period t is

reflected by )1(

jeD jtjt

, transportation cost from supplier j in period t is calculated by

)1(

jeD jtjt

. The cost is calculated for planning horizon. Since ordering cost, such

as set up and initialization fee, is fixed and identical for all suppliers, and is not affected

by the ordering quantities, we omit this term and thus to simplify the model. Equation (2)

is the objective function to maximize order fulfillment rate. It is calculated by the amount

of product successfully filled by suppliers in set M divided by the total amount of product

ordered to all suppliers in set J.

Constraint (3-5) are the balancing equations for suppliers and destination. Equation (3)

shows that the total demand in all periods from the destination is less than or equal to

total ending inventory and ordered quantity at supplier j in all periods; with this constraint

shortages are avoided. Equation (4) finds the total inventory level at destination by the

end of period t, after receiving order amount )1( jeD jt

. Equation (5) calculates the

21

total inventory level at the destination by the end of 1st period, after receiving order

amount )1(1

jeD j

.

Numerical Example

To further illustrate above problem, a numerical example is presented. We run empirical

data in Excel Spreadsheet.

We assume a scenario of four suppliers and ten months.

22

Month It Djt

η

($) ht ($) φjt ($) βjt ($)

1 2 3 4 1 2 3 4 1 2 3 4

1 102.8174 120 110 120 120 20 5 21 27 29 19 9 7 6 10

2 152.8511 115 105 125 110 20 5 22 26 29 19 10 7 8 10

3 213.1002 115 105 120 115 20 5 23 25 28 18 8 8 10 10

4 245.7022 120 110 125 115 20 5 23 24 29 20 7 8 12 10

5 308.3041 120 110 125 115 20 5 25 34 22 25 9 6 14 10

6 352.6882 115 105 125 115 20 5 28 30 26 28 12 6 6 9

7 395.4491 125 105 125 115 20 5 22 31 27 29 15 6 7 9

8 476.4278 130 110 125 115 20 5 29 32 33 36 4 6 8 11

9 534.8414 115 110 125 115 20 5 19 21 32 19 6 9 9 11

10 583.2549 115 110 125 115 20 5 28 21 30 15 12 7 10 12

λjt ($) Xjt Ct INj1 IN1 μj

1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4

1 1 1 1 100 95 120 100 350

50 50 60 50 60 1.818182 1.639344 1.754386 2.040816

1 1 1 1 100 85 110 100 330

1 1 1 1 100 90 115 100 320

1 1 1 1 120 100 110 100 360

1 1 1 1 90 95 110 100 330

1 1 1 1 95 95 100 100 340

1 1 1 1 105 95 105 110 350

1 1 1 1 110 90 110 110 320

1 1 1 1 115 95 105 90 330

1 1 1 1 100 100 110 90 340

Table 1. Numerical Example Parameters

23

In this example, the total cost A = $154945.678 and order fulfillment rate B =

0.835462432 = 83.5462%. However, by trial and error, we can get lower total cost A and

higher order fulfillment rate B. If decision variables Djt’s change as following, total cost

A = $ 150164.5561 and order fulfillment rate B = 0.835516721 = 83.5517%.

Djt

Amount of product ordered in

period t from supplier j for the

destination

1 2 3 4

110 110 120 120

120 105 125 110

115 105 120 115

120 110 125 115

120 110 125 115

115 105 125 115

125 105 125 115

130 110 125 115

115 110 125 115

100 100 125 115

Table 2. A Feasible Solution

By randomly changing order amount in above table, we notice that often both total cost A

and order fulfillment rate B increase or decrease at the same time. That is to say one is

improved with another one getting worse.

Since total cost A and order fulfillment rate B share a common set of constraints, but one

with minimize objective while the other with maximize objective, they are conflicting

with each other and cannot reach optimal at the same time. By intuition, minimize total

cost may lead to sacrifice of service level, and inventory level may be kept as low as

possible to lower holding cost, and thus order fulfillment rate is lower. However, if we

only consider maximizing order fulfillment rate, we can place orders as large as possible

to guarantee adequate supplement, then total cost can be huge.

24

Chapter 4

Optimization of Performance Measures

This chapter describes three commonly used methods/tools for optimization problem.

The problem is at first solved by Excel Solver, but the results are not desirable. Then

Interior-Point method and Augmented Simultaneous Perturbation Stochastic

Approximation (ASPSA) method are used to solve the problem. Both of them are coded

by using Matlab. Then a comparison is presented among them.

Excel Solver VBA

To solve the optimization problem, we first use an embedded function in Excel. A set of

VBA program utilizing Solver function is written for solving the problem. We played

with the VBA program, and noticed that the optimal results slightly changed, either up or

down, after every run trial. E.g., for total cost A the optimum varies between $120,000-

ish and $170,000-ish. Without changing problem constraints, we change initial values of

decision variables each time, and found that the results are highly correlated to initial

values input. One of the best results we got from VBA program is shown in the table

below.

Min Total Cost A = $ 121,886.1527 with B = 0.835493289

It Djt

54.73772 106.2516 95.05023 104.2169 106.8258

54.99999 100.3561 90.48099 108.3328 96.18491

65.91539 100.8109 90.48777 102.8977 101.6573

47.99983 106.2586 95.91853 106.5716 100.7272

55.61136 104.4676 92.47244 108.7818 98.40182

25

44.79612 96.78111 89.19549 110.55 97.47168

31.99999 108.1244 88.76473 109.6659 97.00661

52.38973 114.92 93.33846 106.5762 92.82585

62.87101 103.5021 96.78455 106.5762 100.732

60 96.78578 97.64608 107.0183 102.1272

Table 3. VBA Result for Optimizing A

Max Order Fulfillment Rate B = 0.870077392 with A = $ 169644.424

It Djt

2673.943 0 0 0 3406.528

2343.943 0 0 0 0

2045.232 0 0 0 24.46826

1717.37 0 0 0 36.93648

1474.982 0 0 0 100.6952

1134.982 0 0 0 0

821.6534 0 0 0 42.14696

589.9975 0 0 0 101.5358

359.2216 0 0 0 114.0405

60 0 0 0 46.86759

Table 4. VBA Result for Optimizing B

We also noticed a problem that if consider integer constraints for decision variables

(since they denote product item volume), the VBA program will take a very long time to

run (more than 15 minutes) and may not always reach an optimum eventually.

After a lot of tests, we found the optima of each test were not identical. One of the main

reasons is the initial values of decision variables. We observed that the optima of both

performance A and B vary with the change of initial value of Djt and It. We were also

aware of low efficiency of the program.

The VBA code is shown is Appendix A.

26

Due to the limitation of Solver function embedded in Excel, we then convert to more

powerful tools for problem solving.

Interior-Point Method

An Interior-Point method is a linear or nonlinear programming method that combines the

advantages of the simplex algorithm with the geometry of the ellipsoid algorithm that

achieves optimization.

Convex program with inequality:

Minimize f0(x)

Subject to fi(x) ≤ 0, i = 1,…, m

Ax = b

where

f0,…,fm: Rn → R convex, twice differentiable

A ∈ Rp×n with rank p < n

An optimal x* exists

The pseudo code of the process is shown below.

given strictly feasible x, t := t(0) > 0, μ >1, tolerance ε > 0.

repeat

Centering step. Compute x*(t) by minimizing tf0+ϕ, subject to Ax = b.

Update x := x*(t).

Stopping criterion. quit if m/t < ε.

Increase t. t := μt.

27

We implemented the logic by using Matlab. The optimal solutions for total cost and

fulfillment rate are shown below.

Min Total Cost A = $ 105,020 with B = 0.8479

It Djt

0 0 0 0 333

0 0 0 0 379

0 0 0 0 368

0 215 0 0 207

0 394 0 0 0

0 0 0 411 0

0 0 0 423 0

0 382 0 0 0

0 394 0 0 0

60 0 0 0 460

Table 5. Interior-Point Method for Optimizing A

Max Order Fulfillment Rate B = 0.8701 with A = $ 107,091.6768

It Djt

70 0 0 0 360

100 0 0 0 360

140 0 0 0 360

140 0 0 0 360

170 0 0 0 360

190 0 0 0 360

201 0 0 0 360

242 0 0 0 361

274 0 0 0 363

301 0 0 0 367

Table 6. Interior-Point Method for Optimizing B

The Matlab code using Interior-Point method and fmincon function is shown in Appendix

A.

28

Augmented Simultaneous Perturbation Stochastic Approximation (ASPSA) method

ASPSA method is an improvement of SPSA. It incorporated techniques including ordinal

optimization (OO), pre-search, line search memory of best solution, and non-uniform step

size gain. ASPSA not only achieves speed up, but also improves solution quality and

converges faster than SPSA.

________________________________________________________________________

ASPSA Algorithm (Wang and Prabhu, 2009)

Step 1. Initialization and coefficient selection

Set counter index k = 0, ck = c and distribution for ak.

Step 2. Presearch

Randomly choose θj(j = 1, ... m) from the decision space;

Evaluating them by running simulation in ns length;

Let yb = min{yj, j = 1, ..., m};

Run full simulation length to evaluate y(θb);

Set θbest = θk = θb, ybest = yb.

Step 3. Generate simultaneous perturbation vector Δk

Step 4. Loss function evaluation

Order y(θk + ckΔk) and y(θk - ckΔk) by evaluating them in length of ns

Step 5. Gradient approximation

otherwise 1

)()( if 1

k

kkkk

kk

cycy

g

29

Step 6. Line search

Generate step size vector akj (j = 1,…,l) from some random distribution;

Calculate k

j

k

j

k

j

k ga

1, j = 1, …, l

Evaluate y(θk+1j) in short simulation length ns

Let yb = min{Jj, j = 1, ..., l};

Run full simulation length to reevaluate y(θb);

If ybest > yb, ybest = yb and θbest = θk+1 = θb;

Otherwise, θk+1 = θbest + Λk where Λk is a perturbation vector

Step 7. Iteration or termination

k ← k +1. If stop criteria is satisfied, stop. Otherwise, go to step 2.

________________________________________________________________________

Referring to Wang and Spall (2008), we use the following parameter values:

an = 0.1(n+100)-0.602 and cn = n-0.101

The ASPSA method is also coded in Matlab. We played with the program by changing

number of iterations. Shown in Figure 8, as the number of iterations increases, the

decrease of optimal value of objective A becomes slowly. If we set 150,000 iterations, the

following results are achieved.

Min Total Cost A = $ 111,320 with B = 0.838517319

It Djt

0.2307 88.92506 22.67039 0 227.2314

0.3787 90.52844 114.4733 0 187.0396

16.3164 133.8396 45.79779 0 215.1398

85.3308 168.1548 168.2569 0 176.4629

30

56.4482 151.6375 26.52388 120.0213 61.54234

87.8982 20.47216 139.1411 250.4327 40.72305

67.9389 82.77013 73.7329 196.3757 44.37835

0 248.6775 54.36506 0.233377 0

117.8519 249.5694 147.0041 0 139.1369

58.0089 0 181.2779 0.104234 154.4148

Table 7. ASPSA Method for Optimizing A

(For convenience, all numbers are rounded to 0 if less than 1)

Max Order Fulfillment Rate B = 0.8346 with A = $ 115,559.6172

It Djt

70.02639 90.11218 89.59581 89.86332 90.45029

100.027 90.04207 89.63968 89.89583 90.42298

139.9975 90.01394 89.61568 89.98122 90.35754

139.9934 90.11478 89.58598 89.85059 90.44157

170.0507 90.01233 89.61557 89.98932 90.43565

190.0195 90.09954 89.58275 89.89885 90.38792

199.9659 90.02699 89.64454 89.8304 90.44283

240.0607 90.09323 89.66048 89.95461 90.39001

270.0003 90.03551 89.6264 89.92862 90.35212

290.0178 90.03119 89.57264 89.95698 90.45762

Table 8. ASPSA Method for Optimizing B

Figure 7. The change of 50 variables for 150000 iterations for maximizing A

31

Figure 8. The change of objective A for 150000 iterations

Figure 9. The change of 50 variables for 150000 iterations for minimizing B

32

Figure 10. The change of objective B for 150000 iterations

A Comparison between VBA and Matlab

Since VBA is embedded in MS Excel and all data are stored in the spreadsheet, it is the

most convenient tool on hand to use for optimization by simply enables Macros. The

VBA code is also easy to understand and write, with a lot of open sources online to refer

to. However, by using VBA Solver we don't know the exact algorithm it utilized to do

optimization. We did try to realize other optimization algorithms in VBA, but it is hard to

debug compare with other programming languages. Matlab is another commonly used

programming language. We then converted to use Matlab to realize algorithms.

A Comparison between Interior Point Method and ASPSA Method

Under current situation, the elapsed time for each method is shown below:

33

Obj A Time to compute A Obj B Time to compute B

Interior-Point $105,020 1.103997 seconds 0.8701 0.878707 seconds

ASPSA $111,320 35.703490 seconds 0.8346 0.317647 seconds

Table 9. Results Comparison between Interior-Point and ASPSA

As we can see, if 150000 iterations are used, Interior Point method yield better results for

both maximizing objective A and minimizing objective B. The result for objective A is

6.00% better and the result for objective B is 4.08% better. To compare the elapsed time,

Interior Point method is far better than ASPSA method for objective A, while slightly

worse for computing objective B. If more iterations, ASPSA would give better result, but

the improvement rate is slow and time consuming. However if we test more iterations,

ASPSA may yield better solution than Interior-Point, but the computing time will be even

longer.

To further compare these two methods with 150000 iterations, we vary the input

parameter values with multiplication, and record the results as the following.

Obj A

($)

Time to compute

A (sec) Obj B

Time to compute

B (secs)

Original Interior Point 105,020 1.103997 0.8701 0.878707

ASPSA 111,320 35.70349 0.8346 0.317647

1.1φjt Interior Point 112,303 1.140186 0.8701 0.937014

ASPSA 118,733 36.038361 0.83459 0.318544

2φjt Interior Point 175,830 1.224833 0.8701 0.950334

ASPSA 183,063 40.892094 0.83459 0.345902

1.1φjt and 1.1βjt Interior Point 115,155 1.228092 0.8701 1.000075

ASPSA 120,884 37.079783 0.83459 0.311864

2φjt and 1.1βjt Interior Point 178,995 1.173423 0.8701 0.95632

ASPSA 185,992 38.289282 0.8346 0.320289

(rnd()+1)φjt and

(rnd()+1)βjt

Interior Point 135,703 1.391487 0.8701 0.950614

ASPSA 150,034 37.35776 0.8346 0.309988

Table 10. Further Comparison between Interior Point and ASPSA

34

Figure 11. Comparison between Interior Point and ASPSA on Obj A ($)

Figure 12. Comparison between Interior Point and ASPSA on Time to compute A (sec)

100,000

110,000

120,000

130,000

140,000

150,000

160,000

170,000

180,000

190,000

200,000

Original 1.1φjt 2φjt 1.1φjt and

1.1βjt

2φjt and

1.1βjt

(rnd()+1)φjt

and

(rnd()+1)βjt

Interior

Point

ASPSA

0

5

10

15

20

25

30

35

40

45

Original 1.1φjt 2φjt 1.1φjt and

1.1βjt

2φjt and

1.1βjt

(rnd()+1)φjt

and

(rnd()+1)βjt

Interior Point

ASPSA

35

Figure 13. Comparison between Interior Point and ASPSA on Obj B

Figure 14. Comparison between Interior Point and ASPSA on Time to compute B (secs)

0.81

0.82

0.83

0.84

0.85

0.86

0.87

0.88

Original 1.1φjt 2φjt 1.1φjt and

1.1βjt

2φjt and

1.1βjt

(rnd()+1)φjt

and

(rnd()+1)βjt

Interior Point

ASPSA

0

0.2

0.4

0.6

0.8

1

1.2

Original 1.1φjt 2φjt 1.1φjt and

1.1βjt

2φjt and

1.1βjt

(rnd()+1)φjt

and

(rnd()+1)βjt

Interior Point

ASPSA

36

We changed unit purchasing cost (φjt) and unit transportation cost (βjt). Five other

scenarios are considered: magnify φjt to its 1.1 multiplications; magnify φjt to its 2

multiplications; magnify φjt to its 1.1 multiplications and βjt to its 1.1 multiplication;

magnify φjt to its 2 multiplications and βjt to its 1.1 multiplications; as well as magnify φjt

to its 1~2 multiplications and βjt to its 1~2 multiplications.

As shown in Table 10, for total cost A, Interior-Point method yields better solution for

4%-10%, and takes much shorter computing time.

For order fulfillment B, the optimal rarely vary for either method. Elapsed times are

shorter for ASPSA, but the differences are not vital since all of them are less than 1

second.

37

Chapter 5

A Multiple Criteria Model to Evaluate Performance Measures

In the problem we discussed above, with the same set of constraints, two objectives are

considered: total cost A and order fulfillment rate B. We want to have both maximized A

as well as minimized B at the same time to meet customer’s satisfaction. So the

relationship between objectives and constraints is not completely solid. Goal

programming method is used to achieve both goals simultaneously. It is a good idea to

treat both of them as constraints by adding slack variables to represent deviation from a

goal.

Goal Programming

(Lawrence and Pasternack, 2002) A goal programming model seeks to simultaneously

consider several objective functions that are in decision makers concern. Compare to a

linear programming model consists a set of constraints and a single objective function to

be maximized or minimized, a goal programming model consists the same set of

constraints, a set of goals that are prioritized in some sense, and a single penalty objective

function to be minimized. The objective is to find a solution that satisfies the true

constraints and comes closest to meeting the stated goals. Here we use optimal values for

each objective function as the stated goals. All objective functions share the same set of

constraints.

Non Preemptive Goal Programming

38

In non-preemptive goal programming, relative weights are assigned to each goal. The

larger the weight value, the more importance the goal is to decision makers. These

weights act as unit penalty that fail to meet a stated goal. The form of non-preemptive

goal programming is:

Minimize the total weighted deviations from the goals

Subject to (1) Expressions for the goal equations

(2) Functional constraints

(3) Non-negativity constraints of all decision and deviation variables

Preemptive Goal Programming

Preemptive goal programming shares the same basic idea with non-preemptive goal

programming that to find the best solution set as close to the stated goals as possible.

However in preemptive goal programming decision makers determine the relative

priority of multiple objective functions. Objective functions, or goals, are prioritized.

Higher prioritized goal must be satisfied before considering lower prioritized ones. (Jones

et al., 1995)

Goal Programming Model

Since both objectives are equally prioritized, decision maker is more interested in direct

comparison of objectives, so non pre-emptive goal programming is used.

Before implementing goal programming, penalties need to be determined for not reaching

a goal. We notice that the result for total cost A is at ×105 order of magnitude and B is at

39

×10-1 order of magnitude. We define the penalties as: for every $ 1,000 that the total cost

exceeds optimal A, pA is penalized; for every 1 percent that order fulfillment rate

decreased compared to optimal B, pB is penalized. To balance their order of magnitude,

here we use

pA = 8 and pB = 10

as an example. These two penalty values vary against specific conditions and

management concerns.

We use the results from Interior Point method as the optimal solutions. Then the goal

programming is formulated as

Minimize Total Penalty = )100(101000

8B

A ss

Subject to

105020 AsA

8701.0 BsB

t

J

j

jttt CeDII j

1

)1( )1(

;,...,1 Jj Tt ,...,2

1

1

111 )1( CeDINIJ

j

j

j

;,...,1 Jj

t

J

j

jt CeD j

1

)1(

Tt ,...,2

40

0,, jttjt IID

0, AsA

1,0 BsB

Again, by using Interior Point method in Matlab, we have the following optimal solution.

It Djt

0 0 0 0 333

0 0 0 0 379

0 0 0 0 368

143 0 0 0 578

0 0 0 0 215

0 0 0 411 0

0 0 0 423 0

0 382 0 0 0

0 394 0 0 0

60 0 0 0 460

Table 11. Goal Programming Results

0.854585

105,349$

0155.0

329

B

A

s

s

B

A

The optimal value of Total Penalty = 18.1463.

To reach the optimal solution, we changed Matlab code of Interior-Point method

accordingly. It is attached in Appendix A.

41

Chapter 6

Conclusions

In previous works, we firstly discussed the expansion of Panama Canal and

corresponding consequences. With the expansion more and more suppliers are directly

available to customers along the East coast and they are facing fiercer competition

against each other. Under this condition, we are interested in the new purchase process

pattern which led by the expansion. In contrast to the sole supplier scenario in the past, a

new scenario of multiple suppliers and single customer is analyzed in the research. By

estimating customer’s concerns, two main performance measures are taken into account

to evaluate the supply chain: total cost A and order fulfillment rate B. An EOQ model is

then established for them. Both of them are formulated with the amount of product

ordered (Djt) and inventory level at the destination (It), as decision variables, and

inventory holding cost (ht), unit purchasing cost (φjt) and product consumption amount

(Ct) etc., as parameters. Our aim is to find a compromising solution that maximize total

cost A and minimize order fulfillment rate B simultaneously.

To solve these two optimization problems, we first considered them separately. VBA

Solver and Matlab are the programming language tools that we used for optimizing the

two problems. In Matlab, two method – Interior-Point method and Augmented

Simultaneous Perturbation Stochastic Approximation (ASPSA) method are realized.

Comparisons between VBA Solver and Matlab, as well as Interior-Point method and

ASPSA method are then presented. We conclude that Interior-Point method is better for

generating ideal results and shorter computing time for the problem we discuss.

42

As the optimal solutions for both A and B are found, we integrate them into a single

model so that a compromising solution can be found. Non pre-emptive goal programming

technique is used. A compromising solution is reached with corresponding penalties.

We proposed possible methods for customer to evaluate suppliers on the aspect of total

cost and order fulfillment rate. For the final selection process, goal programming method

was recommended. An example and its corresponding solutions were presented to further

illustrate the ideas.

43

Appendix A

VBA Code

Sub multiob()

Worksheets("find").Activate

Dim initiala As Long

initiala = 200000

Dim initialb As Integer

initialb = 0.1

Range("$I$18").Value = initiala

Range("$J$18").Value = initialb

Range("$K$18").Value = initiala

Range("$L$18").Value = initialb

Dim i As Integer

For i = 1 To 10

' Min A

SolverReset

SolverOk SetCell:=Range("$D$17"), MaxMinVal:=2, ValueOf:="0",

ByChange:="$B$4:$B$13,$E$4:$H$13"

SolverAdd CellRef:=Range("$D$21:$D$30"), Relation:=2,

FormulaText:=Range("$F$21:$F$30")

SolverAdd CellRef:=Range("$D$31"), Relation:=3,

FormulaText:=Range("$F$31")

' It takes a long time to run if the following two constraints

are considered

' SolverAdd CellRef:=Range("$B$4:$B$13"), Relation:=4

' SolverAdd CellRef:=Range("$E$4:$H$13"), Relation:=4

SolverSolve userFinish:=True

If Range("$D$17") < Range("$I" & i + 17) Then

Range("$M$18:$M$27").Value = Range("$B$4:$B$13").Value

Range("$N$18:$Q$27").Value = Range("$E$4:$H$13").Value

End If

Range("$I" & i + 17).Value = Range("$D$17")

Range("$J" & i + 17).Value = Range("$F$17")

' Max B

SolverReset

SolverOk SetCell:=Range("$F$17"), MaxMinVal:=1, ValueOf:="0",

ByChange:="$B$4:$B$13,$E$4:$H$13"

SolverAdd CellRef:=Range("$D$21:$D$30"), Relation:=2,

FormulaText:=Range("$F$21:$F$30")

SolverAdd CellRef:=Range("$D$31"), Relation:=3,

FormulaText:=Range("$F$31")

44

' It takes a long time to run if the following two constraints

are considered

' SolverAdd CellRef:=Range("$B$4:$B$13"), Relation:=4

' SolverAdd CellRef:=Range("$E$4:$H$13"), Relation:=4

SolverSolve userFinish:=True

If Range("$F$17") > Range("$L" & i + 17) Then

Range("$R$18:$R$27").Value = Range("$B$4:$B$13").Value

Range("$S$18:$V$27").Value = Range("$E$4:$H$13").Value

End If

Range("$K" & i + 17).Value = Range("$D$17")

Range("$L" & i + 17).Value = Range("$F$17")

Next

End Sub

Interior-Point Method

Main solver for both optimizing total cost A and order fulfillment B:

%% Clear environments

clear all; close all; clc;

%% Prepare Constants

parameter.ht = 5*ones(10, 1);

parameter.beta = [9 7 6 10;

10 7 8 10;

8 8 10 10;

7 8 12 10;

9 6 14 10;

12 6 6 9;

15 6 7 9;

4 6 8 11;

6 9 9 11;

12 7 10 12];

parameter.lambda = ones(10,4);

parameter.phi = [21 27 29 19;

22 26 29 19;

23 25 28 18;

23 24 29 20;

25 34 22 25;

28 30 26 28;

22 31 27 29;

29 32 33 36;

19 21 32 19;

28 21 30 15];

45

parameter.c = [350;

330;

320;

360;

330;

340;

350;

320;

330;

340];

parameter.miu = [1.818181818 1.639344262 1.754385965

2.040816327]';

parameter.in = [60 0 0 0 0 0 0 0 0 0]';

parameter.Mat = [1 0 0 0 0 0 0 0 0 0;

-1 1 0 0 0 0 0 0 0 0;

0 -1 1 0 0 0 0 0 0 0;

0 0 -1 1 0 0 0 0 0 0;

0 0 0 -1 1 0 0 0 0 0;

0 0 0 0 -1 1 0 0 0 0;

0 0 0 0 0 -1 1 0 0 0;

0 0 0 0 0 0 -1 1 0 0;

0 0 0 0 0 0 0 -1 1 0;

0 0 0 0 0 0 0 0 -1 1];

% Lower bound

lb = zeros(50, 1);

% Initial value x0

x0 = [70 100 140 140 170 190 200 240 270 290 90*ones(1, 40)]';

%% Execute fmincon with ObjA

options_A = optimset('Algorithm', 'active-set', 'MaxFunEvals',

100000, 'MaxIter', 10000, 'Display', 'off');

[x,fval,exitflag,output,lambda,grad] =

fmincon(@(x)ObjectiveA(x,parameter),x0,[],[],[],[],lb,[],@(x)Cons

tra(x, parameter), options_A);

%% Execute fmincon with ObjB

options_B = optimset('Algorithm', 'active-set', 'MaxFunEvals',

100000, 'MaxIter', 10000, 'Display', 'off');

[x,fval,exitflag,output,lambda,grad] =

fmincon(@(x)ObjectiveB(x,parameter),x0,[],[],[],[],lb,[],@(x)Cons

tra(x, parameter), options_B);

real_fval = 1/(fval/10000);

Constraints.m

% Input x format:

% 01 - 10: Column B

% 11 - 20: Column I

% 21 - 30: Column J

% 31 - 40: Column K

46

% 41 - 50: Column L

function [ c, ceq ] = Constra( x, parameter )

% Decomposition to vector

b = x(1:10, 1);

e_1 = x(11:20, 1);

e_2 = x(21:30, 1);

e_3 = x(31:40, 1);

e_4 = x(41:50, 1);

% Compute inequal constraint

c = sum(parameter.c) - sum(e_1) - sum(e_2) - sum(e_3) - sum(e_4);

% Compute equal constraint

ceq = parameter.Mat*b - e_1 - e_2 - e_3 - e_4 - parameter.in +

parameter.c;

end

ObjectiveA.m

% Input x format:

% 01 - 10: Column B

% 11 - 20: Column I

% 21 - 30: Column J

% 31 - 40: Column K

% 41 - 50: Column L

function ObjA = ObjectiveA( x, parameter )

% Decomposition to vector

b = x(1:10, 1);

e_1 = x(11:20, 1);

e_2 = x(21:30, 1);

e_3 = x(31:40, 1);

e_4 = x(41:50, 1);

% Compute ObjectiveA value

ObjA = 0;

ObjA = ObjA + parameter.ht'*b;

ObjA = ObjA + parameter.beta(:,1)'*e_1 + parameter.beta(:,2)'*e_2

+ parameter.beta(:,3)'*e_3 + parameter.beta(:,4)'*e_4;

ObjA = ObjA + parameter.phi(:,1)'*e_1 + parameter.phi(:,2)'*e_2 +

parameter.phi(:,3)'*e_3 + parameter.phi(:,4)'*e_4;

ObjA = ObjA + parameter.lambda(:,1)'*e_1 +

parameter.lambda(:,2)'*e_2 + parameter.lambda(:,3)'*e_3 +

parameter.lambda(:,4)'*e_4;

End

ObjectiveB.m

47

% Input x format:

% 01 - 10: Column B

% 11 - 20: Column I

% 21 - 30: Column J

% 31 - 40: Column K

% 41 - 50: Column L

function ObjB = ObjectiveB( x, parameter )

% Decomposition to vector

e_1 = x(11:20, 1);

e_2 = x(21:30, 1);

e_3 = x(31:40, 1);

e_4 = x(41:50, 1);

% Compute ObjectiveBvalue

temp_1 = sum(e_1/(1 - exp(-parameter.miu(1))));

temp_1 = temp_1 + sum(e_2/(1 - exp(-parameter.miu(2))));

temp_1 = temp_1 + sum(e_3/(1 - exp(-parameter.miu(3))));

temp_1 = temp_1 + sum(e_4/(1 - exp(-parameter.miu(4))));

temp_2 = sum(e_1) + sum(e_2) + sum(e_3) + sum(e_4);

ObjB = 10000*temp_1/temp_2;

end

ASPSA Method

ASPSA_ObjA.m

clear all

close all

clc

% Prepare Constants

parameter.ht = 5*ones(10, 1);

parameter.beta = [9 7 6 10;

10 7 8 10;

8 8 10 10;

7 8 12 10;

9 6 14 10;

12 6 6 9;

15 6 7 9;

4 6 8 11;

6 9 9 11;

12 7 10 12];

parameter.lambda = ones(10,4);

parameter.phi = [21 27 29 19;

22 26 29 19;

23 25 28 18;

23 24 29 20;

25 34 22 25;

48

28 30 26 28;

22 31 27 29;

29 32 33 36;

19 21 32 19;

28 21 30 15];

parameter.c = [350;

330;

320;

360;

330;

340;

350;

320;

330;

340];

parameter.miu = [1.818181818 1.639344262 1.754385965

2.040816327]';

parameter.in = [60 0 0 0 0 0 0 0 0 0]';

parameter.Mat = [1 0 0 0 0 0 0 0 0 0;

-1 1 0 0 0 0 0 0 0 0;

0 -1 1 0 0 0 0 0 0 0;

0 0 -1 1 0 0 0 0 0 0;

0 0 0 -1 1 0 0 0 0 0;

0 0 0 0 -1 1 0 0 0 0;

0 0 0 0 0 -1 1 0 0 0;

0 0 0 0 0 0 -1 1 0 0;

0 0 0 0 0 0 0 -1 1 0;

0 0 0 0 0 0 0 0 -1 1];

%Reserve Space for x

n = 150000;

x = zeros(50, n);

ObjValue = zeros(1,n);

% Initial value x0

x(:,1) = [70 100 140 140 170 190 200 240 270 290 90*ones(1, 40)]';

ObjValue(1) = newObjectiveA(x(:,1), parameter);

% Equality

cgrad=[1 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0

0 0 -1 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0;

-1 1 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0

-1 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0;

0 -1 1 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0

0 -1 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0;

0 0 -1 1 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0

0 0 -1 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 0;

0 0 0 -1 1 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 0

0 0 0 -1 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0;

0 0 0 0 -1 1 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0

0 0 0 0 -1 0 0 0 0 0 0 0 0 0 -1 0 0 0 0;

0 0 0 0 0 -1 1 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 -1 0 0 0 0

0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 -1 0 0 0;

49

0 0 0 0 0 0 -1 1 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 -1 0 0 0

0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 -1 0 0;

0 0 0 0 0 0 0 -1 1 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 -1 0 0

0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 -1 0;

0 0 0 0 0 0 0 0 -1 1 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 -1 0

0 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 -1]';

% Inequality

qgrad=[0 0 0 0 0 0 0 0 0 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1

-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1

-1 -1 -1 -1 -1]';

% Calculate g(x)

for i = 1:1:n-1

a = 0.1*(i+100)^(-0.602);

r = 10*i^(0.1);

c = i^(-0.101);

delta = 2*round(rand(50,1))-1;

% Calculate ghat

gplus = newObjectiveA(x(:,i)+c*delta, parameter);

gminus = newObjectiveA(x(:,i)-c*delta, parameter);

ghat = (gplus - gminus)/(2*c)./delta;

% Calculate P3

MinMatrix = [zeros(50,1) x(:,i)];

MinVector = min(MinMatrix')';

% Calculate next step

x(:,(i+1)) = x(:,i) - a*ghat - a*r*(cgrad*Ceq(x(:,i),

parameter)+qgrad*max(0,Cineq(x(:,i), parameter))+MinVector);

ObjValue(i+1) = newObjectiveA(x(:,i+1), parameter);

end

index = 1:1:n;

figure

plot(index, ObjValue);

grid on;

figure

plot(index, x);

grid on;

newObjectiveA.m

% Input x format:

% 01 - 10: Column B

% 11 - 20: Column I

% 21 - 30: Column J

% 31 - 40: Column K

% 41 - 50: Column L

function ObjA = newObjectiveA( x, parameter )

% Decomposition to vector

50

b = x(1:10, 1);

e_1 = x(11:20, 1);

e_2 = x(21:30, 1);

e_3 = x(31:40, 1);

e_4 = x(41:50, 1);

% Compute ObjectiveA value

ObjA = 0;

ObjA = ObjA + parameter.ht'*b;

ObjA = ObjA + parameter.beta(:,1)'*e_1 + parameter.beta(:,2)'*e_2

+ parameter.beta(:,3)'*e_3 + parameter.beta(:,4)'*e_4;

ObjA = ObjA + parameter.phi(:,1)'*e_1 + parameter.phi(:,2)'*e_2 +

parameter.phi(:,3)'*e_3 + parameter.phi(:,4)'*e_4;

ObjA = ObjA + parameter.lambda(:,1)'*e_1 +

parameter.lambda(:,2)'*e_2 + parameter.lambda(:,3)'*e_3 +

parameter.lambda(:,4)'*e_4;

end

ASPSA_ObjB.m

clear all

close all

clc

% Prepare Constants

parameter.ht = 5*ones(10, 1);

parameter.beta = [9 7 6 10;

10 7 8 10;

8 8 10 10;

7 8 12 10;

9 6 14 10;

12 6 6 9;

15 6 7 9;

4 6 8 11;

6 9 9 11;

12 7 10 12];

parameter.lambda = ones(10,4);

parameter.phi = [21 27 29 19;

22 26 29 19;

23 25 28 18;

23 24 29 20;

25 34 22 25;

28 30 26 28;

22 31 27 29;

29 32 33 36;

19 21 32 19;

28 21 30 15];

parameter.c = [350;

330;

51

320;

360;

330;

340;

350;

320;

330;

340];

parameter.miu = [1.818181818 1.639344262 1.754385965

2.040816327]';

parameter.in = [60 0 0 0 0 0 0 0 0 0]';

parameter.Mat = [1 0 0 0 0 0 0 0 0 0;

-1 1 0 0 0 0 0 0 0 0;

0 -1 1 0 0 0 0 0 0 0;

0 0 -1 1 0 0 0 0 0 0;

0 0 0 -1 1 0 0 0 0 0;

0 0 0 0 -1 1 0 0 0 0;

0 0 0 0 0 -1 1 0 0 0;

0 0 0 0 0 0 -1 1 0 0;

0 0 0 0 0 0 0 -1 1 0;

0 0 0 0 0 0 0 0 -1 1];

%Reserve Space for x

n = 1500;

x = zeros(50, n);

ObjValue = zeros(1,n);

% Initial value x0

x(:,1) = [70 100 140 140 170 190 200 240 270 290 90*ones(1, 40)]';

ObjValue(1) = newObjectiveB(x(:,1), parameter);

% Equality

cgrad=[1 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0

0 0 -1 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0;

-1 1 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0

-1 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0;

0 -1 1 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0

0 -1 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0;

0 0 -1 1 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0

0 0 -1 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 0;

0 0 0 -1 1 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 0

0 0 0 -1 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0;

0 0 0 0 -1 1 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0

0 0 0 0 -1 0 0 0 0 0 0 0 0 0 -1 0 0 0 0;

0 0 0 0 0 -1 1 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 -1 0 0 0 0

0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 -1 0 0 0;

0 0 0 0 0 0 -1 1 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 -1 0 0 0

0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 -1 0 0;

0 0 0 0 0 0 0 -1 1 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 -1 0 0

0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 -1 0;

0 0 0 0 0 0 0 0 -1 1 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 -1 0

0 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 -1]';

52

% Inequality

qgrad=[0 0 0 0 0 0 0 0 0 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1

-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1

-1 -1 -1 -1 -1]';

% Calculate g(x)

for i = 1:1:n-1

a = 0.1*(i+100)^(-0.602);

r = 10*i^(0.1);

c = i^(-0.101);

delta = 2*round(rand(50,1))-1;

% Calculate ghat

gplus = newObjectiveB(x(:,i)+c*delta, parameter);

gminus = newObjectiveB(x(:,i)-c*delta, parameter);

ghat = (gplus - gminus)/(2*c)./delta;

% Calculate P3

MinMatrix = [zeros(50,1) x(:,i)];

MinVector = min(MinMatrix')';

% Calculate next step

x(:,(i+1)) = x(:,i) - a*ghat - a*r*(cgrad*Ceq(x(:,i),

parameter)+qgrad*max(0,Cineq(x(:,i), parameter))+MinVector);

ObjValue(i+1) = newObjectiveB(x(:,i+1), parameter);

ObjRealValue(i+1) = 1/(ObjValue(i+1)/10000);

end

index = 1:1:n;

figure

plot(index, ObjRealValue);

grid on;

figure

plot(index, x);

grid on;

newObjectiveA.m

% Input x format:

% 01 - 10: Column B

% 11 - 20: Column I

% 21 - 30: Column J

% 31 - 40: Column K

% 41 - 50: Column L

function ObjB = newObjectiveB( x, parameter )

% Decomposition to vector

b = x(1:10, 1);

e_1 = x(11:20, 1);

e_2 = x(21:30, 1);

e_3 = x(31:40, 1);

e_4 = x(41:50, 1);

% Compute ObjectiveBvalue

53

temp_1 = sum(e_1/(1 - exp(-parameter.miu(1))));

temp_1 = temp_1 + sum(e_2/(1 - exp(-parameter.miu(2))));

temp_1 = temp_1 + sum(e_3/(1 - exp(-parameter.miu(3))));

temp_1 = temp_1 + sum(e_4/(1 - exp(-parameter.miu(4))));

temp_2 = sum(e_1) + sum(e_2) + sum(e_3) + sum(e_4);

ObjB = 10000*temp_1/temp_2;

end

Ceq.m

function ceq = Ceq( x, parameter )

% Decomposition to vector

b = x(1:10, 1);

e_1 = x(11:20, 1);

e_2 = x(21:30, 1);

e_3 = x(31:40, 1);

e_4 = x(41:50, 1);

% Compute equal constraint

ceq = parameter.Mat*b - e_1 - e_2 - e_3 - e_4 - parameter.in +

parameter.c;

end

Cineq.m

function c = Cineq( x, parameter )

% Decomposition to vector

b = x(1:10, 1);

e_1 = x(11:20, 1);

e_2 = x(21:30, 1);

e_3 = x(31:40, 1);

e_4 = x(41:50, 1);

% Compute inequal constraint

c = sum(parameter.c) - sum(e_1) - sum(e_2) - sum(e_3) - sum(e_4);

end

Goal Programming

MainSolver.m

%% Clear environments

clear all; close all; clc;

54

%% Prepare Constants

parameter.ht = 5*ones(10, 1);

parameter.beta = [9 7 6 10;

10 7 8 10;

8 8 10 10;

7 8 12 10;

9 6 14 10;

12 6 6 9;

15 6 7 9;

4 6 8 11;

6 9 9 11;

12 7 10 12];

parameter.lambda = ones(10,4);

parameter.phi = [21 27 29 19;

22 26 29 19;

23 25 28 18;

23 24 29 20;

25 34 22 25;

28 30 26 28;

22 31 27 29;

29 32 33 36;

19 21 32 19;

28 21 30 15];

parameter.c = [350;

330;

320;

360;

330;

340;

350;

320;

330;

340];

parameter.miu = [1.818181818 1.639344262 1.754385965

2.040816327]';

parameter.in = [60 0 0 0 0 0 0 0 0 0]';

parameter.Mat = [1 0 0 0 0 0 0 0 0 0;

-1 1 0 0 0 0 0 0 0 0;

0 -1 1 0 0 0 0 0 0 0;

0 0 -1 1 0 0 0 0 0 0;

0 0 0 -1 1 0 0 0 0 0;

0 0 0 0 -1 1 0 0 0 0;

0 0 0 0 0 -1 1 0 0 0;

0 0 0 0 0 0 -1 1 0 0;

0 0 0 0 0 0 0 -1 1 0;

0 0 0 0 0 0 0 0 -1 1];

% Lower bound

lb = zeros(52, 1);

% Initial value x0

% x0 = [70 100 140 140 170 190 200 240 270 290 90*ones(1, 40) 0

0]';

55

% x0 = [0 0 0 0 0 0 0 0 0 10 0 0 0 215 394 0 0 382 394 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 411 423 0 0 0 333 379 368 207 0 0 0 0 0 460

0 0.0204]';

x0 = [zeros(1,9) 60 0 0 0 214.88 393.95 0 0 382.01 393.95 0

zeros(1,10) 0 0 0 0 0 411.13 423.22 0 0 0 333.30 379.28 367.78

206.88 0 0 0 0 0 459.73 0 0.0204]';

%% Execute fmincon with ObjA

options_A = optimset('Algorithm', 'active-set', 'MaxFunEvals',

100000, 'MaxIter', 10000, 'Display', 'off');

[x,fval,exitflag,output,lambda,grad] =

fmincon(@(x)ObjectiveA(x,parameter),x0,[],[],[],[],lb,[],@(x)Cons

tra(x, parameter), options_A);

%% Execute fmincon with ObjB

options_B = optimset('Algorithm', 'active-set', 'MaxFunEvals',

100000, 'MaxIter', 10000, 'Display', 'off');

[x,fval,exitflag,output,lambda,grad] =

fmincon(@(x)ObjectiveB(x,parameter),x0,[],[],[],[],lb,[],@(x)Cons

tra(x, parameter), options_B);

real_fval = 1/(fval/10000);

%% Execute fmincon with ObjC

options_C = optimset('Algorithm', 'active-set', 'MaxFunEvals',

100000, 'MaxIter', 10000, 'Display', 'off');

[x,fval,exitflag,output,lambda,grad] =

fmincon(@(x)ObjectiveC(x),x0,[],[],[],[],lb,[],@(x)ConstraC(x,

parameter), options_C);

ConstraC.m

function [ c, ceq ] = ConstraC( x, parameter )

% Decomposition to vector

b = x(1:10, 1);

e_1 = x(11:20, 1);

e_2 = x(21:30, 1);

e_3 = x(31:40, 1);

e_4 = x(41:50, 1);

sA = x(51);

sB = x(52);

ceq = zeros(12,1);

% Compute inequal constraint

c = sum(parameter.c) - sum(e_1) - sum(e_2) - sum(e_3) - sum(e_4);

% Compute equal constraint

ceq(1:10,1) = parameter.Mat*b - e_1 - e_2 - e_3 - e_4 -

parameter.in + parameter.c;

ceq(11,1) = ObjectiveA(x, parameter) - sA - 105020.44;

ceq(12,1) = 1/(ObjectiveB(x, parameter)/10000) + sB - 0.8701;

end

ObjectiveC.m

56

function ObjC = ObjectiveC(x)

% Decompose the variables used in this function

sA = x(51);

sB = x(52);

ObjC = sA*8/1000 + sB*100*10;

end

57

Biography

Arlbjørn, J. S. (2010). Supply Chain Management. Academica

Aronovich, D., Tien, M., Collins, E., Sommerlatte, A. & Allain, L. (2010).

Measuring Supply Chain Performance: Guide to Key Performance Indicators for Public

Health Managers. Arlington, Va.: USAID DELIVER PROJECT, Task Order 1

Burbidge, J. L. (1989). Production Flow Analysis for Planning Group Technology.

Oxford University Press

Donovan, R. M. (2002). Supply Chain Management Cracking the Bullwhip Effect.

Duijts, C. (2001). The Beer Distribution Game. Center for Enterprise Sciences

and the Institute for Information Systems, ETH Zürich

Dwyer, K. (April 2008). Perfect Order Fulfillment: Getting it All Right. In

Logistics

Ebbesen, S., Kiwitz, P. & Guzzella, L. (2012). A Generic Particle Swarm

Optimization Matlab Function. American Control Conference

Ford, C., Maughan, A. & Stevenson, S. (2011). Single-and-multi-sourcing-models.

Practical Law Company

Hieber, R. & Hartel, I. (2003). Impacts of SCM order strategies evaluated by

simulation-based 'Beer Game' approach: The model, concept, and initial experiences.

Production Planning & Control: The Management of Operations, 14:2, 122-134

Ho, T., Tang, C. & Bell, D. R. (1998). Rational Shopping Behavior and the

Option Value of Variable Pricing. Institute for Operations Research and the Management

Sciences, Volume 44 Issue 12-part-2

Jones, D. & Tamiz, M. (1995). Practical Goal Programming. International Series

in Operations Research and Management Science, Springer

Kennedy, J. & Eberhart, R. (1995). Particle Swarm Optimization, IEEE

International Conference, 1942 - 1948 vol.4

Koba, M. (2013). Panama Canal expansion boom might sail past US ports, CNBC

Lawrence & Pasternack (2002). Applied Management Science: Modeling,

Spreadsheet Analysis, and Communication for Decision Making. John Wiley & Sons, Inc.

Maritime Construction Depot (2012). Panama Canal Expansion completion date

pushed back to 2015 and Eastern Ports are prepared!

58

Mason-Jones, R., Naylor, J.B. & Towill, D. (2000). Engineering the Leagile

Supply Chain. Int. Jnl. Agile Man. Systems

McCaffrey, J. (2011). Particle Swarm Optimization. MSDN Magazine

Melin, P., Castillo, O., Ramírez, E.G., Pedrycz, W. (2007). Analysis and Design

of Intelligent Systems Using Soft Computing Techniques. Springer

Metters, R. (1997). Quantifying the Bullwhip Effect in Supply Chains. Journal of

Operations Management, 15(2), 89-100

Muller, M. (2011). Essentials of Inventory Management. AMACOM Div

American Mgmt Assn

Nelson, J. (2013). Evaluating Supply Chain Risks with Single vs. Multiple

Vendor Sourcing Strategies. Spend Matters Network

Ruo, N. & Shan, M. (2009). The Expansion Project of Panama Canal Brings

Challenges and Competition: US Container Harbors Competes to Win [in Chinese],

China Water Transport

Rodrigue, J. P. (2010). Factors Impacting North American Freight Distribution in

View of the Panama Canal Expansion. the Van Horne Institute

Salin, L. D. (2010). Impact of Panama Canal Expansion on the U.S. Intermodal

System. United States Department of Agriculture, Agricultural Marketing Service

Sodhi, M. S., Sodhi, N. S. & Tang, C. (2013) An EOQ model for MRO customers

under stochastic price to quantify bullwhip effect for the manufacturer. International

Journal of Production Economics

Spall, J. C. (1998). An Overview of the Simultaneous Perturbation Method for

Efficient Optimization, Johns Hopkins APL Technical Digest, Vol.19, No.4

Subramanya, K. N. & Sharma, S. C. (2009). Integrated Scheduling of a Two

Stage Supply Chain Network using Simulation – A Case Study. International Journal of

Computer Science and Network Security, Vol. 9 No. 4 pp. 364-369

Wang, I. J. & Spall, J. C. (2008). Stochastic optimization with inequality

constraints using simultaneous perturbations and penalty functions. International Journal

of Control, Vol. 81, No. 8, 1232-1238

Wang, L. & Prabhu, V. (2009). A Stochastic Perturbation Algorithm for Inventory

Optimization in Supply Chains. Int’l Journal of Information Systems and Supply Chain

Management, 2(3), 1-18

59

Wilck, J. H. (2006). Managing the Bullwhip Effect. Pennsylvania State University