Optimal solution of one dimension cutting stock

Lehigh University
Lehigh Preserve
Theses and Dissertations
1994
Optimal solution of one dimension cutting stock
problem
Pei-Chun Lin
Lehigh University
Follow this and additional works at: http://preserve.lehigh.edu/etd
Recommended Citation
Lin, Pei-Chun, "Optimal solution of one dimension cutting stock problem" (1994). Theses and Dissertations. Paper 286.
This Thesis is brought to you for free and open access by Lehigh Preserve. It has been accepted for inclusion in Theses and Dissertations by an
authorized administrator of Lehigh Preserve. For more information, please contact [email protected].
AUTHOR:
. Lin, Pei-Chun
TITLE:
Optimal Solution of One
Dimension Cutting Stock
Problem
DATE: May 29,1994
Optimal Solution of One Dimension Cutting Stock Problem
by
Pei-Chun Lin
A Thesis
Presented to the Graduate and Research Committee
""
of Lehigh University
in Candidacy for the Degree of
Master of Science
In
Industrial Engineering
Lehigh University
4/26/1992
ACKNOWLEDGEMENTS
I would like to express my sincere gratitude and appreciation to my
advisor, Associate Professor John W. Adams for his guidance, time and
patience.
He gave me expert advice and valuable lessons in research
methodology and these guidance are sure to stay with me for my life of career.
I would also like to thank my best friend, Yi-Hui Ma for her
encouragement and great help in my study.
III
TABLE OF CONTENTS
page·
CHAPTER
ABSTRACT
1
1. INTRODUCTION
2
2. DEFINITION OF PROBLEM
4
3. LITERATURE REVIEW
6
4. SOLUTION OF PROBLEM
13
- Creating the output file for the data of inventory
13
- Generating the random number to represent orders
13
- Setting up the initial matrix
14
- Finding out the pivot row and entering column
14
. - Updating the matrix which shows the shadow prices
14
5. THE KNAPSACK PROBLEM
15
6. SIMULATION
18
7. FURTHER STUDY
20
REFERENCES
21
APPENDIX A. Program of simulation
22
APPENDIX B. Result of simulation for 500 periods
35
APPENDIX C. Result of simulation for 1000 periods
54
VITA
73
IV
ABSTRACT
The proposed research considers the problem of minimizing waste in a
paper cutting operation. The operation begins with that some parent rolls of
indicated widths are to be cut to fill orders for rolls of specified widths. The
objective of the study is to find out the way to carry out the required cutting
operation and will produce the smallest amount of waste by exploiting linear
programmIng.
Because in the real paper cutting problem, the number of columns in the
linear programming will be very large, this problem was solved by observing
that the 'pricing out' operation for the paper cutting problem was equivalent
to a knapsack problem. Therefore, the entering column is found by solving a
knapsack problem.
A C program has been written to solve the entire problem using the
ideas of linear programming combined with the knapsack solution. Some
simulation result are presented at the end of this study.
1
Chapter 1 INTRODUCTION
The use of operations research methods to solve problems in material
cutting has been an active topic of research for many years and has been
applied in a number of manufacturing areas.
This paper focuses on the
problem of minimizing waste in a paper cutting operation that begins with
different orders of rolls of specified widths.. Those rolls are to be cut from
parent rolls of particularized widths and the waste occurs when the unusable
widths are left over.
This study solves the problem using methods reported by Gilmore and
Gomory[l] in 1961. When the variety of orders is big, there will be many
different ways of cutting the parent rolls to supply the need. Gilmore and
Gomory use linear programming and the number of columns in the tableau
will be very large -- in some cases up to millions of columns. Gilmore and
Gomory solved this problem by using the recursive method of solving a
knapsack problem because they found out that the 'pricing out' operation for
the paper cutting problem was equivalent to a knapsack problem. By solving
a knapsack problem we can identify an entering column. This study solves the
knapsack problem using a method that was described by Garfinkel and
Nemhauser[2].
2
In this paper, a C program was written for working out the entire
problem by using the ideas of Gilmore and Gomory combined with the solution
of knapsack problems reported b\~arfinkel and Nemhauser. This C program
can be used to simulate the paper
c~tting problem. Orders are random, but the
widths of parent rolls are specified. Some parent rolls may be more efficient
than others. It is difficult to find out an analytic solution to the problem of
finding the optimal widths of parent rolls. However, it may be possible to get
useful information by way of simulation.
In the long run, the inventory
generated by consecutive simulation can be treated as time series.. By using
the ARIMA models describes by Box and Jenkins [3], we can forecast the
amount offuture inventory. Chapter 6 of this thesis contains some simulation
results.
The idea of solving the cutting problem were not only used in the paper
industry but also in many other industries[4] . Sweeney and Paternoster[5]
have compiled a bibliography that contains more than 400 books, articles,
dissertations, and working papers. Some of these references are about paper
cutting, and many of them are about other material -- steel, glass, wood,
plastic, and many others. In chapter 3 of this thesis we will review a few of
these papers.
The following sections represent the definition of paper cutting problem,
3
the literature review, the solution of problem, the description of a knapsack
problem and how did the knapsack problem relate to the original problem that
we'd like to solve, and the results of simulation.
4
Chapter 2 DEFINITION OF PROBLEM'
Notation:
(1) Let R=(r 1 , r 2, r 3,
, r k), r i is the width of the i-th roll in order.
(2) Let N=(n b n 2, n 3,
that
, nk),
llj
is the number of rolls of the i-th width
Wi
is the width of the i-th parent roll from
have been ordered.
(3) Let W=(w b w2, w 3, ... , WI),
which
be
the orders are to be cut.
(4) Let S=(Sb S2' S3' .. , , Sk),
Si
(5) Let X=(x1, X 2, X 3, .,. , ~),
Xj
is either 1 or O.
is the number of times the activity i is to
engaged in.
In the case of the basic single-machine paper cutting problem, all parent
rolls have the same length, and all of the ordered rolls also have the same
length as parent rolls. Since those widths demanded are smaller or equal to
the widths of parent rolls
(Wi ~ r j
for all i, j), the cutting problem begins with
finding combinations of the ordered widths, and with which to fill out the
widths of parent rolls. Usually, there will be some trim loss left over from
such combinations. The paper cutting problem is to find out the trimming
combinations of ordered widths and to determine that the number of which
parent rolls are to be cut according to each combination -- in order to satisfy
the orders most efficiently[5].
5
The vector S is called a slitting pattern because it tells us how to cut a
parent roll into rolls of narrower widths. If Sj is one, a roll of width .rj will be
cut from a parent rolls. This imposes the following constraint, applying to a
parent roll of width w.
slr l + s Zr 2 + S3r 3 + "... + Skrk
~
w
In practical cases there are a very large number of possible slitting patterns,
but only a few of them will actually be used in a given case.
For an offered set of orders, say (R,N), and an unlimited supply of
parent rolls of widths W, there will be a set of feasible slitting patterns. To
find out a feasible
e slitting pattern is equivalent to create an activity, which means the cutting
of a parent roll in a specified manner. Hence, the cutting paper problem can
be posed as an integer linear programming problem. Those variables
,
~
Xb
Xz, ...
must satisfy k inequalities:
~IXI
+ ~zX2 + ... + ~n~ ~~, (i=1. ..... k)
If an order for I\ pieces of width r j is to be filled, where
~j
is the number of
pieces of length rj created by the j-th activity[1] . Moreover, vector X are
supposed to minimize the cost function:
LCjJS for i=1. ..l, j=1. ..n
where <; is the cost of the parent roll from which activity j is cut.
6
':
Chapter 3 LITERATURE REVIEW
In 1961, Gilmore and Gomory proposed the linear programrrung
approach, which solves the one-dimensional cutting problem that materials are
manufactured to be cut to various customer widths so as to meet customer
demands and also niinimize waste was the first to present methods which
could be practically applied to real-world problem[l]. Since then, the cutting
problems have been extended from original one-dimensional problem to twodimensional, three-dimensional problems.
Because the problems were
extended, those related techniques which were used to solve the cutting
problem by all means increased vastly. Therefore, the research of cutting
problem became diverse and complicated, and a large number of articles were
published on these problems. In this paper, we narrow down the cutting
problem to be only one-dimension and broadly follow the techniques which
were proposed by Gilmore more Gomory. Hence, we categorize the review of
literature to three parts:
(1) introduce the important bibliography of the cutting problem,
(2) recite how was the idea oflinear programming adapted to the cutting
problem by Gilmore and Gomory, and
(3) compare the ways of rounding due to the restriction to integers.
7
}
1. Sweeney and Paternoster[6] published a categorized, applicationorientated research
bibl~ography for
cutting and packing problems. In this
paper, the author listed more than 400 books, articles, dissertations and
working papers which all talked about the subject -- cutting and packing
problems. First of all, the author introduced fifteen references to those readers
who are not familiar with the cutting and packing problems to give them a
basic idea. Then, the author generated a 3x3 matrix which was formed by
solution approach and problem dimension. According to the solution
methodologies employed, there are three categories:
• sequential assignment heuristic
• single-pattern generating procedures, and
• multiple-pattern generating procedures.
For the other categorization, problems were divided into one-dimensional, twodimensional, or three-dimensional problems. So as to be more convenient to
those who are interested in various special topics on cutting and packing
problem, the paper also listed detail citations.
The main part of the
bibliography is arranged chronologically by year and alphabetically by author
within each year. At the end of this paper, there are two supplementary lists.
One contains dissertations and theses, and the other provides recent (1986 to
1990) proceedings, presentations, and working papers. In summary, the paper
8
provides a good and very detail literature review on the cutting and packing
problems.
2. Gilmore and Gomory published two papers of the same topic -- A
linear programming approach to the cutting-stock problem. In part one, they
use dYnamic programming to solve the cutting problems, and in part two, they
use knapsack method instead.
In this study, we broadly follow their
techniques to solve the cutting problem. We will recite these two method next.
Following the definition of problem in chapter 2, we know the linear
programming problem which we'd like to solve is to find out
Xl' X 2, ... , ~
to
satisfy k inequalities:
."
..
CljIX I
+
Clj2X 2
+ ... + 3jnXn
;:::
llj,
(i=1. ..k)
and also minimize
2:<;4 for i=1...1, j=1...n
where the notation is identical to chapter 2.
For integer problems, it is required that all 4 be integers, but this
constraint is dropped here.
variables
~+l
, ... ,
~+m
s.t.
Next, Gilmore and Gomory introduced slack
satisfying:
CljIX I
+
~~2
+ .. , +
9
3jn~ - ~+i
= llj, (i=1...m)
(2)
4
~
0,
(3)
By using the simplex computational procedure, a given solution subject to (2)
and (3) for which (1) is a minimum provides that any basic solution of equation
(2) and (3) must make the value of (1) less than the given solution. In order
to express the algorithm of solution, more notations are listed as follow.
Notation:
• Let X=(x ll xz,
••• , ~)
is a given basic feasible solution.
• Let Pj=(a Ij , aZj, ..., am) is the number of pieces of length r l , r z,
created
rm
by the j-th activity.
• Let P=(a l , a z,
a stock
•.. ,
••• ,
am) is an undetermined new activity that cuts from
length L having a cost c.
• Let A be the matrix with Ph ... , Pm as columns.
• Let C=[c l , cz,
••• ,
cm] is a vector with cost coefficient.
Because PI' ..., Pm form a basis, there is the usual column vector U satisfying
the equation:
AU=P
U =AIp
If and only if
CU> c
then the new activity will be an improvement over the given solution
10
CA-Ip> c
Let CA- I have coefficients b l, bz,
•.. ,
bm.
If and only if there exist nonnegative integer a h
am satisfying
... ,
(4)
and
(5)
then the activity cutting from L can be profitable.
One method of determining whether there exists positive integers a h a z,
.•• ,
am
to satisfY equations (4) and (5) would be to determine integers -which satisfy
equation (4) and make bla l + ... + bm~ be a maximum. If the maximum won't
satisfY (5) then none would. Therefore, the problem becomes:
max bla l + bza 2 + ... + bmam
s.t.
L ;: : rIal + r 2a Z + ... + rm~
Using dynamic programming method which is similar to that described by
Danzig[8], the problem can be defined as
max Fm(L) = bla l + b za 2 + ... +
s.t.
bm~
L;:::: rIal + r 2a Z + ... + rm~
then
Fm+I(L) = max{nbm+l + FmeL - nrm+l)}
where n is chosen such that
o~ n ~ [ L / r
m +l ]
11
square bracket denotes the largest integer part. Fm+1(L) is the value of the
most valuable combination that can be fitted into a knapsack of length L if
only the first m+ 1 lengths can be used.
In the later paper published by Gilmore and Gomory, they described a
faster knapsack method and changed the algorithm. First of all, the stock
length L was replaced by Lj. That means it is necessary to solve a series of
knapsack problem like
max M =
s.t.
L
Lbj~
~ Lrj~
for i=1...m
for i=1. ..m
In chapter 5 of this paper, the knapsack algorithm will be described in detail.
3. Up to now, the linear programming is discussed for solving the
paper-cutting problem. However, in a real paper-cutting problem, it is not
permitted to have noninteger solution. Subject to this constraint, we can
always round up or round down to the nearest integer but the results will be
totally different. First, the amount of order must be filled. If we use the way
of rounding down, then the insufficient part become another problem to be
solved. In the other hand, rounding up creates extra rolls than it is ordered
and those will be treated as inventory. Besides, there are some heuristic
procedures to solve the pure-integer linear programming problem. In Sweeney
and Paternoster's paper[6], they chose rounding as a special topic and listed
12
those papers related to it.
In 1966, Hillier[7] wrote a paper about the algorithm for pure integer
linear programming. Initially, the optimal noninteger solution by the simplex
method is required. Then considering the solutions (integer or noninteger) that
satisfy both the objective function constraints and the constraints that are
binding on the optimal noninteger solution. Hillier's algorithm should get a
set of closer integer solution than totally rounding up which is used in the
solution of problem in this study. Since the following part that we'd like to
study focuses on the distribution of inventory, it is not the most important
thing for this study whether we can find a best way to get the integer solution
or not.
13
Chapter 4 SOLUTION OF PROBLEM
The solution of the problem which was described in chapter 2 is what we
would like to focus on for this study. The algorithm of solution is also the
main frame of the C program which is used to do the work of simulation.
Next, we will go through the whole algorithm to make the C program be easily
understood and finally the C program will be attached to the appendix of this
study.
Creating the output file for the data of inventory
At the very beginning of this program, a few output file were created to
store the numerical data of inventory. The reason to do this is we got rid of
the limitation that the solution must be integer during the procedure of
solving this problem. Therefore, those noninteger solution must be round up
to fill every order and meanwhile, some extra rolls were generated. They are
treated as inventory and would be spent when the next order comes in. So as
to analyze the dependence of the data by exploiting the software named
Statgraphic, those output file will save the data we need.
Generating the random number to represent order
It was mentioned before that the number of order for each different size
is random. A subroutine was called when simulation was started to generate
14
the number of order from customers.
Setting up the initial matrix
_.
There are two matrices which would be updated in the process of
calculating to show what we would like to know in each step of calculation.
Initially, we have to set up these two matrices by input the number of parent
rolls, the parent widths, and the costs of parent rolls, etc.
Finding out the pivot row and entering column
Every time this subroutine was called, the most recently updated
shadow prices were known. After implementing the knapsack algorithm which
will be recited in chapter 5, the subroutine will do calculation to update those
two matrices and make judgement to know which column is the entering
column and find out the pivot row.
Updating the matrix which shows the shadow prices
When leaving the previous subroutine, immediately we would like to
know whether the optimal solution is found or not. If not, the subroutine was
called to update the matrix which shows the shadow prices except the pivot
row, then go to the previous subroutine again. If it is really done, then go to
the final subroutine and print out the result we need.
15
Chapter 5 THE KNAPSACK PROBLEM
A well known example of a knapsack problem is the cargo problem that
is to maximize the total value of cargos which are going to be taken subject to
the limitation of weight or space. Let 3..i > 0 be the weight per unit and cj > 0
be the value per unit ofthej-th type. If the total limitation of weight or space
is b, then the problem is
max LCpS for j=1...n
s.t.
L3..i~
4
where
~
~
::; b
for j=1...n
0 integer j=1...n
is the number of the j-th type included[?].
The following part is the algorithm which Garfinkel and Nemhauser
developed to solve the knapsack problem and is the method used in this paper
whenever we want to look for a new colunm or activity that will improve the
solution.
The first step of calculation is to reorder the variables aI' a 2 ,
••. ,
C\n
(represented the ratio of shadow price divided by demanded length) so that
b/r l
~
b/r2 ~
.••
~
bjrm , and reorder the stock lengths so that Ll > L2 > ... > Lk ,
16
such that the array of parent widths became a decreasing array. Introduce a
variable
3m+1
with coefficient bm+1 = 0 and r m+1
= 1.
Let
the bracket denotes the largest integer part again. Here, (a)s represents a svector of nonnegative integers ai, a 2,
... ,
as, where 1 ::; s ::; m. A vector (a)m is
an extension of a vector (a)s, s ::; m, if the first s coefficients of (a)m are just the
coefficients of (a)s' In the algorithm, a sequence of vectors (a\, for various
values of s, satisfying
IS
generated in lexicographically descending order, where (al)sl is
lexicographically larger than (a2)s2 if and only if for some i, 1 ::; i ::; min{sl'
S2},
and
~
while
I
~+l
Let t
=
I
=1
~
>
2
2
a;+1
and Mj
= cj ,
j
= 1...k.
The vector (a)m is then tested to
determine whether for it Ibi~ for i = 1...m exceeds the current best values Mj
17
for applicable j, and if so these current best values are redefined.
(1) For those j, t
for i
~j ~
k, for which Lj
~ Lri~
for i = 1...m and
Lbi~
> Mj
= 1...m, redefine ~ to be Lbi~ for i = 1...m.
(2) Let s be the largest i, 1
~
i
~
m, such that
~
"* O.
Thus (a)s has
among its coefficients all the nonzero coefficients of (a)m and its last coefficient
is nonzero. The lexicographically largest m-vector lexicographically smaller
than (a)m necessarily has its s-th coefficient one less than
~;
that is, it is an
extension_of a vector (a\, which differs from (a)s only in having a s-1 as its s-th
coefficient.
(3) Redefine as to be as-1 and let t be the smallestj, 1 ~j
Lj
;:::
Lri~
for i = 1...s and (Lj
-
Lri~)bs+l
> (Mj
-
Lbi~)rs+l'
~
s-1, such that
~
k, such that
and go to step (5). If
there is no such j then go to step (4),
(4) Redefine s to be the largest i, 1 ~ i
(3).
~
"* 0, and go to
If there is no such i, then the current values of Mj , j = 1. ..k are the
maximums to be found.
(5) Let
~+1 = [(L t
-
Lri~) / r s + 1]
18
and go to step (1) [9] .
19
Chapter 6 SIMULATION
It was mentioned in chapter 4 that a senes of data represented
inventory would be generated after running the C program. Initially, we tried
to figure out whether there is any relationship between the distribution of
inventory and the probability distribution which was used to generate the
random number for different orders. Since the extra rolls cut by each period
are treated as inventory and always spent in the coming period, it seems that
the data represented inventory are not independent. Hence, the data could not
be fitted into any identical probability distribution. However, when data are
dependent, they can be treated as time series if the periods are long enough.
Therefore, we simulated at least five hundred times , sometimes up to three
thousand times, and analyzed the data by the method proposed by Box and
Jenkins [3]. By implementing this method, some models are derived and they
can depict the nature of the system generating the time series. Besides, these
models can be used for obtaining forecasts of future values of the series. In
this study, we would like to know what is the attribute of the system which
illustrated inventory. For instance, if the system can be represented by the
model so called autoregressive model, that means the current value of the
process is expressed as a finite, linear aggregate of previous values of the
process.
Intuitively,
for our inventory system, it has the similar
characteristic. The more we want to know is the next stock may be impacted
20
by the previous one, two, or three periods. The information is pretty practical
for the realistic inventory control in factory. Moreover, the model can help us
to predict the future inventory which also provide useful data.
To illustrate the procedures described in chapter 4 and 5, consider the
following case. There are three different parent widths, 72, 78, and 84 and
each individual cost is 72.0, 78.0, and 84.0. Six kinds of widths are ordered-5, 7, 11, 16, 23, and 25. The mapping number of rolls are generated by the
binomial probability distribution with parameters 100, 0.16.
Initially, all
stocks are zero. In appendix B, the results of simulation for running 500
periods are presented in the sequence of widths -- 5, 7, 11, 16,23, and 25. And
in appendix C, it runs 1000 periods. For each individual width, first figure
tells the amount of inventory versus time; next figure displays the forecast
of the future inventory of 20 periods with 95 percent limits; and the final
figure arranges the horizontal axis to amplify the shift of future inventory and
,,-
makes the data clearer to read.
.
21
Chapter 7 FURTHER STUDY
For a lot of industries, how to reduce the cost of raw materials is an
important issue. In many assembly and manufacturing factories, to buy raw
materials then do some processes on the raw materials are major operations.
Ifraw materials could be cut in the method which minimizes the loss, then at
the same time the cost would be saved. For instance, in a window assembly
factory, the raw materials need to be cut in one dimension would be like frame
and sash; in two dimensions might be glass and screen, etc. It is clear to see
for those assembly industries that the cost ofraw materials occupies a primary
promotion of total manufacturing cost. Therefore, to make the cutting of raw
materials most economic is an efficient way to cut down the cost. Since the
algorithm of optimizing the cutting operations for one dimension may not be
appropriate for two dimensions, the two dimensions' or even three dimensions'
cutting procedure is not only a useful but also a practical field which is worth
studying much more.
Besides the cost of raw materials, inventory control is also a momentous
topic in industries. After doing the work of simulation which is proposed in
this study, it is accessible to predict a few periods of future inventory. As we
know, there exists a lot of obedient algorithm for inventory control. It must
be interesting if these information can be combined together to pursue better
22
inventory control.
23
REFERENCES
1
P. C. Gilmore and R. E. Gomory 1961. A Linear Programming Approach to
the Cutting Stock Problem. Opns Res.(9):849-859.
2
Robert S. Garfinkel and George L. Nemhauser 1972. Integer
Programming, p. 214. John Wiley & Sons, New York.
3
George E. P. Box and Gwilym M. Jenkins 1982. Time Series Analysis:
forecast-ing and control, Holden-Day.
4
Hartmut Stadtler 1990. A one-dimensional cutting stock problem in the
aluminum industry and its solution. European Journal of Operational
Research(44):209-223.
5
J. F. Pierce 1964. Some Large Scale Production Scheduling Problems in the
Paper Industry, p. 13. Prentice Hall, Englewood Cliffs, N.J.
6
Paul E. Sweeney and Elizabeth Ridenour Paternoster 1992. Cutting and
Pack-ing
Problems:
A
Categorized
Application-Orientated
Research
Bibliography. Opl Res. Soc.(43):691-706.
7
Frederick S. Hillier 1966. Efficient Heuristic Procedures for Integer Linear
Programming with an Interior. Opns. Res.(14):600-637.
8
George B. Dantzig 1957. Discrete-Variable Extremum Problems. Opns.
Res.(5):266-277.
9
P. C. Gilmore and R. E. Gomory 1963. A Linear Programming Approach to
the cutting Stock Problem-part 2. Opns Res.(9):849-859.
24
APPENDIX A
PROGRAM OF SIMULATION
25
/******************************************************************/
/* TRIMLOSS
*/
/* npw is the number of parent widths
*/
/* pw[npw] is an integer array containing a list of parent widths
*/
/* pc[npw] is a real array containing the costs of the parent rolls
*/
/* mpw is the maximum parent width
*/
/* cpw is the number of different widths in order
*/
/* nwo is the number of different widths in order
*/
/* lw[nwo] is an integer array containing a list of widths ordered
*/
/* nr[nwo] is an integer array containing the number of rolls ordered */
/******************************************************************/
#include <time.h>
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
#define nwo 6
#define npw 3
#define mpw 84
int d[mpw+1], x[nwo], ip[nwo], u[nwo], z[nwo], cpw, pr=O;
int i, j, index, count;
int b[nwo+1] [nwo], newh[nwo];
float sp[nwo], g[mpw+1], y[nwo], v[nwo], q[nwo], t[nwo+1], p[nwo+1];
float h[nwo+ 1] [nwo+3] ;
int pw[npw] = {72, 78, 84};
int lw[nwo] = {5,7,11,16,23,25}, nr[nwo], exact[nwo], inior[nwo];
int MM[nwo] = {o,o,o,o,o,o}, stock[nwo] = {o,o,o,o,o,o};
float pc[npw] = {72.0, 78.0, 84.0};
int done=1;
int in=O',
float w, cost=O.O;
FILE *outptrO, *outptr1, *outptr2, *outptr3, *outptr4, *outptr5;
void printO;
void ranO;
void startO;
void findpO;
void rowreduceO;
void knapsackO;
void sortO;
void sortiO;
26
/***************************/
/* This is the main program */
/***************************/
Void mainO
{
if« outptrO = fopen(lsto5.wkl", "w+"» == NULL)
{
printf("Unable to open output file");
exit(l);
}
if« outptrl = fopen(l sto7.wkl", "w+"» == NULL)
{
printf("Unable to open output file");
exit(l);
}
"
if« outptr2 = fopen(lstol1.wkl", "W +"» == NULL)
{
printf("Unable to open output file");
exit(l);
}
if« outptr3 = fopen(l sto16.wkl", "w+"» == NULL)
{
printf("Unable to open output file");
exit(l);
}
if« outptr4 = fopen(lsto23.wkl", "w+"» == NULL)
{
printf("Unable to open output file ");
exit(l);
}
if« outptr5 = fopen(l sto25.wkl", "w+"» == NULL)
{
printf("Unable to open output file");
exit(l);
}
randomizeO;
for(count=O; count<500; count++)
{
ranO;
done=O·,
startO;
27
FINDP:
findpO;
in=in+l·,
if(!done)
{
rowreduceO;
goto FINDP;
}
printO;
}
} /* end of main */
/*****************************************/
/* This subroutine is to print out the result */
/*****************************************/
void printO
{
for(i=O; i<nwo+l; i++)
{{ for(j=O;, j<nwo+3; j++)
printf(" %6.2£1', h[i] [j] );}
printf(" \n");}
for(i=O; i<nwo+l; i++)
{{ for(j=O; j<nwo; j++)
printf(" %5d", b[i] [j]);}
printf(" \n");}
printf("\nThe round-up result is: ");
for(i=l; i<nwo+l; i++)
{
newh[i-l] = ceil(h[i][nwo+l]);
printf(" %5d", newh[i-l]);
}
printfC ' \nThe cost of integer solution is: ");
cost=O.O;
for(index=O; index<nwo; index++)
cost = cost + pc[(b[O] [index])] * newh[index];
printf(" %0.1£\ nil,cost);
for(i=O; i<nwo; i++)
{
28
exact[i] = 0;
for(j=O; j<nwo; j++)
exact[i] = exact[i] + newh[j]
* b[i+l][j];
}
for(i=O; i<nwo; i++)
{
if( MM[i] != 0 )
stock[i] = exact[i] - MM[i];
else
stock[i] = stock[i] - inior[i] + exact[i];
printf("\nExact[%2d] = %2d
NewStock[%2dl=%d"
, lw[i], exact[i], lw[i], stock[i]);
if(i==O)
fprintftoutputO,
if(i==l)
fprintftoutputl,
if(i==2)
fprintftoutput2,
f(i==3)
fprintftoutput3,
f(i==4)
fprintftoutput4,
f(i==5)
fprintftoutput5,
"%2d \n", stock[i]);
"%2d \n", stock[i]);
"%2d \n", stock[i]);
"%2d \n", stock[i]);
"%2d \n", stock[i]);
"%2d \ nil , stock[il);
if(count==499)
{
fclose(outputO);
fclose(outputl);
fclose(output2);
fclose(output3);
fclose(output4);
fclose(output5);
}
printf(" \n");
} /* end of subroutine print */
/***************************************************/
/* This subroutine is to get random number for order */
/***************************************************/
29
void ranO
{
int i, j, k, x;
double R[nwo];
signed long double nom, denl, den2;
long double Prob, tl, t3, sum;
/* the factorial of 100 */
nom=l',
for(i=lOO; i>0; i--)
nom=nom*i',
prinf(" \ n------------------------------------------------------------ \ nil);
for(i=O; i<6; i++)
{
sum=O.O;
R[i] = random(lOOO)/lOOO.O;
tl = pow(0.16, 0) * pow(0.84, 100) - R[i];
if(fabs(tl) <= 0.001)
{
nr[i] = 0;
inior[i] = 0;
MM[i] = 0;
}
else
{
sum = pow(0.16, 0) * pow(0.84, 100);
for(x=l; x<lOO; x++)
{
denl=l',
for(j=x; j>O; j--)
denl = denl * j;
den2=1;
for(k=lOO-x; k>O; k--)
den2 = den2 * k ,
- -- Prob =nom/(denl*den2) * pow(0.16,x) * pow(0.84,100-x);
sum = sum + Prob;
t3 = sum - R[i];
30
if( fabs(t3)<0.08 )
{
nr[i] = x;
inior[i] = x;
if( inior[i] > stock[i] )
MM[i] = inior[i] - stock[i];
else
MM[i] = 0;
nr[i] = MM[i];
goto PRINT;
}
}}
PRINT:
printf("0rder[%2d]=%2d)
MustMake[%2d]=%d
,lw[i], inior[i], lw[i], MM[i]);
printf(" \n");
}
}/* end of subroutine random */
/************************************************/
/* This subroutine is to generate the initial matrix */
/************************************************/
void startO
{
int i, j;
float s;
for(i=O; i<nwo+1; i++)
p[i] = 0.0;
for(i=O; i<nwo+1; i++)
for(j=O; j<nwo; j++)
{ if(i-j==1)
b[i] [j] = 1;
else
b[i] [j] = 0;
[or(j=O;j<nwo; j++) ..
b[O] [j] = npw;
for(i=O; i<nwo+ 1; i++)
for(j=O; j<nwo+3; j++)
31
II
{ if(i-j==O)
h[i]m = 1.0;
else
h[i] m = 0.0;
for(j=1; j<nwo+1; j++)
h[O] [j] = pc[npw-1];
t[O] = 0.0;
for(i=1; i<nwo+1; i++)
t[i] = nr[i-1];
for(i=O; i<nwo+1; j++)
{
s=O.O;
for(j=O; j<nwo+1; j++)
s=s+t[j] *h[i]
h [i] [nwo+1] =s;
m;
}
} /* end of subroutine start */
/***********************************************/
/* This subroutine is to find out the pivot column */
/***********************************************/
void findpO
/* The next two instructions get the most recently updated shadow prices */
{
int i, j, ffi, ip[nwo];
float s;
for(j=1; j<nwo+1; j++)
spU-I] = h[O]
for(i=npw-I; i>=O; i--)
m;
{
knapsack(pw[i] );
if( w > pc[i] )
{
s=abs(p [0] +pc[i]);
for(j=O; j<nwo; j++)
s=s+abs(pU+ I]-x[j]);
if(s>O.I)
goto RN;
32
}
CONT:
RN:
done=l;
return;
m=l;
/* The next three instructions find the entering column which is p */
for(i=l; i<nwo+1; i++)
p[i] = x[i-1];
p[O] = -pc[m];
/* The next five instructions compute the product of BINV and p and put it in
the last column of the matrix h */
for(i=O; i<nwo+1; i++)
{
s=O.O;
for(j=O; j<nwo+1; j++)
s=s+p [j] *h[i]
h[i] [nwo+2]=s;
m;
}
/* The next eight instructions find the pivot row which is pr */
for(i=O; i<nwo; i++)
{
ip[i]=i;
if( h[i+1][nwo+1] >= 0.000001 )
q[i] = h[i+1][nwo+1] / h[i+1][nwo+2];
else
q[i] = 10.0e10;
sort(nwo,q,ip);
pr = ip[O]+l;
/* The next three instructions uodate matrix B */
for(i=l; i<nwo+1; i++)
{
b[i] [pr-1] = x[i-1];
b[0][pr-1] = m;
}
33
} /* end of subroutine findp */
/**********************************/
/* This subroutine is for rowreduce */
/**********************************/
void rowreduceO
{
int i, j;
for(j=O; j<nwo+3; j++)
h[pr] [j] = h[pr] [j] / h[pr] [nwo+2];
for(i=O; i<nwo+l; i++)
{
if( i!=pr )
{
for(j=O; j<nwo+3; j++)
h[i] [j] = h[i] [j] - h[pr] [j]
}
} /* end of subroutine rowreduce */
/*******************************************/
/* This subroutine is using knapsack method */
/*******************************************/
void knapsack(cpw)
{
int i, j, k;
for(i=O; i<=cpw; i++)
{
g[i]=O.O;
d[i]=nwo;
}
for(i=O; i<nwo; i++)
{
z[i]=O;
ip[i]=i;
if( sp[i] ==0.0 )
y[i]=lO.OelO;
else
34
* h[i][nwo+2];
y[i] =lw [i] / sp[i];
}
sort(nwo,y,ip);
for(i=O; knwo; i++)
{
u[i] = lw[ip[i]];
v[i] = sp[ip[i]];
}
j=O;
k=l',
KU:
if( k-u[j] >= 0 && j<= d[k-uU]] )
goto GlVE_W;
else
goto CPW;
GlVE_W:
w=g[k-u[j]] + v[j];
if(w<=g[k])
goto CPW;
else
{
g[k]=w;
d[k]=j;
}
CPW:
if(j<nwo-1)
{
j=j+1;
goto KU;
}
K_CPW:
if(k<cpw)
{
j=O;
k=k+1',
goto KU;
}
w=g[cpw];
35
if(g[k] == 0.0)
{
for(i=O; i<nwo; i++)
ip[i] = i;
sorti(nwo,u,ip);
for(i=O; i<nwo; i++)
x[i] = z[ip[i]];
else
{
z[d[k]] = z[d[k]] + 1;
k = k - u[d[k]];
goto G_K;
}
} /* end of subroutine knapsack */
/********************************/
/* This is the subroutine for float */
/********************************/
void sort(nwot,yt,ipt)
int ipt[nwo];
~ float yt[nwo];
{
int i, tempi, flag;
float temp;
do
{
flag=O;
for(i=O; i<nwo-1; i++)
if(yt[i] > yt[i+1])
{
temp=yt[i] ;
tempi=ipt[i] ;
yt[i]=yt[i+1];
ipt[i] =ipt[i+1] ;
yt[i+1]=temp;
ipt[i+1] =tempi;
flag=1;
}
36
}
while(flag);
}
/**********************************/
/* This is the subroutine for integer */
/**********************************/
void sorti(nwot,yt,ipt)
int ipt[nwo];
int yt[nwo];
{
int i, temp, tempi, flag;
do
{
flag=O;
for(i=O; i<nwot-1; i++)
if(yt[i] > yt[i+1])
{
temp=yt[i] ;
tempi=ipt[i] ;
yt[i] =yt[i+1];
ipt[i] =ipt[i+1];
yt[i+1]=temp;
ipt[i+1] =tempi;
flag=1;
}
}
while(flag);
}
37
APPENDIX B
RESULT OF SIMULATION FOR 500 PERIODS
38
Vertical Time Plot
213
16
...
.......
12
I
.;I
I
I
~
lD
J
.
LD
II
I
0
l(/)
L
i I
I·
8
IIIi~
roo
II j
~
I
I II
.. I
~
I
I
l
I
4
13
I
I
i
I
13
lee
21313
31313
Time .
39
41313
51313
Plot or Forecast Function
with 95 Percent Limits
2e
15
o
cazo
o
le
D
DO 0 CD
00
C:O
00
o
0
0
·0·· .
····0·
.-l
III
:>
D
o
a
l(/)
5
o
III
c
I
e I
0
o c
DODD
0
cc
c cc
~c
[
00 III
:0 0
ceo
r
L
-5
a
C
........... ····0·
o
0:
IJl
J;l C
DOD
Ii
III
,0'"
D
~
CD
",000-0(] • .().•.•
o
ce
00:0
OIlJOCOlDmO
ttl
I:D
o
a:DCEllDOCll
aD C
CI 0
0000
0
a
IIJO:OC
0 a:J '0 0
···[D-O· -0 '0'··0-
[
CD
om
DJI%]
D
m
0 CD 0
tD
CII:lDJ
0 aDO
Dalao coom
DO 00 : 0 C
0
C
0
0
aDO
0
ODJ
coo··
comaDo
000
DODO
0:0000
amo
0111
DC
oem
DC:C0
a:aD1El
·CO-CDO'D··O· ··OID··.() "CD·CII··-C] ···0··11]
..
0
··mm·tICJ
····0···
·······D··DD·[JJ·m·o··
I
e
lee
2ee
3ee
time index
40
4ee
5ee
see
Plot of Forecast Function
with 95 Percent Limits
I
20
c
15
c
c
c
c
c
..
10
-
.-t
l
III
;
.
:>
IJ)
o
I-
c
c
00
?~G&GG&GG&~GGGG&GGC
5
•
c
1I
l
c
c
c
c
o
c
c
c
c
c
c c
c
c
c
•
~
I
-5
-- -
-
------
'1
I
.
,
I
j
--------
_.
520
470
time index
41
o
Vertical Time Plot
15
12
9
.-i
1III
.
:>
['-
0
~
(I)
t
I
6
I
3
e
~
l
!
I
e
2ee
3ee
Time
42
I
4ee
Plot or Forecast Function
with 95 Percent Limits
IS
"'0
......• :
13
00
o CD
[IJ
DC
:COaJOCDO:
0
CDC
ri
C
an mo
I]
0
D
Ca:cr:::J;Ja:JD
o
: lID aD
0).
a
:DaD
lIlooae
C
ODal
DC
00
CDC
····.QO-Q-··-a ·······0-=0·0··-0
C
'" 0
co
•
OD
0
~
0
C
o : ODD
CD
7
[[D
CO C
·········00 ···Q··OoQ.Q·· . . . . ~: ····0···1]·1] ..... O ..
CO'"
I]
0
amo
I]
00
I]
OJ 0
DO 0
0
I]
I]
.
m :0:11
co:
00
c
C
III
CD~
OeD
O<D 0
OlD.
··Q··GlIr!-·DQ:l
D
··~·oo··
I]
I]
.<J).-m,,"
4
1
DODD
D
...... "'ID:-O
0
C
CJ
I:Il
_0
III
CD
···aJD····
DO
aoo
D
ID
0
CD:
DC
0:
CO
0
1]:
CQ:aJOD
'0'. ····Q]··m·o··Q·QJWm·DD·DOD ··D··O'··,································
'--1
-2
e
lee
2ee
3ee
time index
43
4ee
5ee
see
Plot of Forecast Function
with 95 Percent Limits
16
13
10
.-l
l..
III
.
:>
t-
7
O
c c
f-
(I')
4
c
1
··0··
l
-2 l-
I
520
470
time index
44
Vertical Time Plot
12
H"
8
.-l
L
III
::>
.
.-l
.-l
6
.... ··11
0
f-
1
(J)
I
4
2
e
e
lee
2ee
3ee
Time
45
4ee
5ee
Plot of Forecast Function
with 9S Percent Limits
13
1e
DC
7
.. ~. CD·· ...
(JJ
co
C
-0. . . . . '-0' "·0··
cae
.-l
.-l
alOD
o
an
cc
·········-mO·Q ···0 ... ··0···-0··
txlamo
0
0
o:om
OlD 0
0:0
00
IXDO
0
... ···{)·m,D··mO··C-III,: -eD·-(l·o-o
0 Il;Ill
m
lD
0
DCDO 0
alP
aJ[JJ 0
.:
a:cm
o-a
··0·0···.··
00 0
00
CDC
I-
-
(I)
4
-0·0··00
·1)···Q·mIDD -OD·-o···[IJ·Q·· m·D··Q·D··iI)Q aD ·0"
··0"'0'0-
om
OOlDa:
o
1
0
ma
CI:l
tDDDtIIDDII CD oc.m ac 1D0l::IIDCJa::
lIIeD
;e
e e e
lIla
Domo:
QI:IDIlIl::D:lI:IIOCDOOaJmc c
··[D··QOaDDCJm,DCJD··DDO-=tJ.:J ····ID:l,DIlQ;H:ZlaII··Q)··OtD·-m
ee
tIl
e ee
··ao-.-·
tII:
0
0
c·o
11I0
DC:
Dcm az::::D alO DC
·[D~oan'O«ID·m· . <JlIlllDl 0
0
0
j
.
OQ:l[D
-2
e
lee
2ee
3ee
time index
46
4ee
see
see
Plot of Forecast Function
with 95 Percent Limits
13
18
..;
7
'-0··0··
l-
In
J
..;
..;
0
flfl
4
o
1
..
0
··0··0·
-2 r-
528
478
time index
47
(
Vertical Time Plot
8
,
,
.............................
.
'l
~
i
6
f- .. ,
,
.•...................
,
.,
.-l
Ql
:>
(l)
1
,
j
.111J
II I
j
1-
4
.. ·'1'
.. r"
.-l
o
‫ן‬-
T
I
m
I
~
l..,
I
I
J
~
:I
~
I
~
I
2
:l
, ,
.,
.
B
B
lBB
2BB
3BB
Time
48
4BB
SBB
Plot
o~
Forecast Function
with 95 Percent Limits
9
7
o
..;
l..
5
.." ··.()·o
····0·
··········0
III
:>
om
(D
0
IIIJ
00
aJDaItD 0
It
0000
c~cmoo
00
c~
..;
o
lll)
3
f
~
-
t
1
-1
L
lXDI
"1::lI!EO -fD:]ll:Ic:a:otI:J:ll:lZ:lll(m. -DO o· -(0,0 ·0· .~ ..a=[D c:.DtDtD:IO c·· OOJ·· -a..[D Im-' -cD -Da:m'.a:D 1IlO· 0 -m·m .aJ:IXD.
l~
D:mlDODDI:D
CO_m:lOOa:J
0
QDOJJ
ED
lD
aJ~
mo:
DCa:::
0000
oo:mc
IDJO
DDI:II.c
r
I
e
lee
2ee
3ee
time index
49
4ee
see
see
Plot or Forecast Function
with 95 Percent Limit5
9
.-l
7
..-
5
.-
s..
.
lD
:>
Ul
.-l
0
I(f)
3
o
0
·
I
·1
j
1
o
j
0
------- -1
-1
I
470
528
time index
50
Vertical Time Plot
6
5
4
I
~
L.
III
.
)
l')
1 f
I
I
I
3
r T.
t
N
0
I-
(f)
2
1
e
e
lee
2ee
3ee
Time
51
4ee
5ee
Plot of Forecast Function
with 95 Percent Limits
7.7
5.7
a
a
a
~ 0
lila
0
0;
o
0
..-I
s..
IU
:IID ttl
:>
(')
0 IlIlO DC
aD DC
I:D
CD
0
0=0 OJ
0
[DODD aDO
0
0
_CD
3.7
l\J
o
lf/)
·
·
:
·
..
.
.
,
'
:
:
:.
:
.:
:
..
.
cr:::z)O _mamD Oa:mD lamll 0 lDDO QCl:JJI:CllID 0
~
OCttllll""D'XJ'TITJD!"D'W!rClI:IDDDDICJ CD
CaDO aDCl::DIIll
-
1
CD
I
l
1.7
I
-e.3
1
e
lee
2ee
3ee
time index
52
4ee
see
see
Plot of Forecast Function
with 95 Percent Limits
7.7
5.7
.-l
l.
III
.
:>
M
3.7
ru
o
I(f)
c c
1.7
-8.3
528
478
time index
53
Vertical Time Plot
5
···r
4
3
·
lJ)
(lJ
o
I(f)
2
1
e
e
lee
2ee
3ee
Time
54
4ee
5ee
Plot of Forecast Function
with 95 Percent Limits
5.S
4.S
3.S
.-l
coo
L
0
c em
o
IIIaIIODIIJ
tI
ceo
o aDO ID
000
III
:>
to
2.S
OJ
0
I00
loS
.
IDII:l
1ID::t%IIa::a~~
.
~c:o::m::JllItDDD[I]]~.:amllltIJI:DI
l:IIJIItDtIIDl:I:D m:c:D 0
Il:IIDWClIaID
e.s
m:rcoDc
0
o
aD 0
0
o
0
C IllC Oal
0
aJ C
co
-e.4
3ee
e
time index
55
4ee
see
see
Plot of Forecast Function
with 95 Percent Limits
i
5.6
4.6
I
-
:
:
3.6
.',~,----------
.-l
L
III
.
::>
lJ)
2.6
:
:
CU
0
I(J)
o
0
1.6 1--.:
Q
~.~
o
,.,
..
..
i!' ····tr·g.·
·&·G-·
·g,·D-·~·g,·g.·
·a·g.·t·:
0
0.6 ,- ....
...:.-
.-
-0.4
I
j
470
520
time index
56
APPENDIX'C
RESULT OF SIMULATION FOR 1000 PERIODS
57
Vertical Time Plot
24
2e
... 1
16
.. ....
...
.
. . ..
...
t-
ID
.
::>
IID
0
12
j
‫ן‬-
m
I
a
4
e
e
2ee
4ee
see
Time
58
aee
ieee
Plot or Forecast Function
with 95 Percent Limits
24
19
o
0
o
o
o
o
:c
00'"
0:
COD
<JOO
14
0011I 0
..;
l.
.. 0
0
0
0
0
00
0:
DOOO III
ODC
0
0
a:
ao
'"
o
0
9
··0··
ao
o
o
!lID ' "
o
(J)
:C
0
D
00
c
···0
a
CD 0
0
o
-=
ac o··-coa
tDO_
: ED:El
-=0 ~ o DOD CDO'C lJJ:I:IJ IIJ Dam
IIJ 0
0
lD
DOC:
:0
DOlIla
~
...
... -m.
o
Dill
0
om
-(Za1KJ~'"
IDDOC:aID:Jll:JDmIDOc:m~
~
Cl 0
0
IIB]-[). 0
olll:Dlinm.a.
:OaD
0
oa
~
DtIl
.....
:"'0'0-0 .... "-0>"
ODD
o
DC
CDCIDII aD
0
an_a:
·0
aa
·00··
D
00_0
.....
I-
4
:0
0; 0
··0··0··
ODD
··:m
0
aa
0:000
a D mllXJ
:>
.....
Cal"'"
D
0
DO ~
ID
IID
DOD 0
····.-a.·(D·QO··:O .. -o· -00'0'"
.. 0
0
o
0
0
c
0
a:nc1:lD
Q.
moo
CJKDl]GO .• m:.
CD.:Jl:llCXD
tmo-m .. ·om 0
_a:I:D~O
trIDaDC 0 0 azIIIJlIIIIJ KlIIDtDJ
0
aJDIlIIO
r::a
aDD:IatIJJ I:KD C
. . . . ; ••
e
~
DIll.
-1
-s
e
2ee
4ee
see
time index
59
see
leee
Plot of Forecast Function
with 95 Percent Limits
24
19
14 1- .. ;
·
·
0.·
j . - - ..-
······.. 0 · · · · · .. ····
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
.-l
L
III
.
:>
lID
0
I-
9
(J)
4
o
0
0
o
0
o
0
0
0
-1
I' _ - - - - - - - - - - - - - - - - .
l-I
I
-6
1020
970
time index
60
I
Vertical Time Plot
.-l
,.
~
III
l-
I'-
o
I(f)
e
2ee
4ee
see
Time
61
aee
leee
Plot of Forecast Function
with 95 Percent Limits
.......•
16
........ ········0 ..
o
13
o
co
00
o
lCCD
.
til
0
~~DOm
m
DO
DODD
o
OJ.
o
aD
0
:tEl 0110
ID
0_
0
~
m
DO CeDOa
DIm DO DODD _
e-o:
0
DO
····· .. ··.o .. -e-OOQ ····-aD··go.D···-a·O .. ·-o-a··~
mm:I:DCDDDDCDI:DD:a:IJ.~
0
am.
CIP a:I:D
III
.:0
00
":"00' .... (D . • . . ..,. "'''''0'00·«) ···‫סס‬oo·:'·
DaXXlOD
.;
L.
0
0
D~DDmla:a:J~OI:DD
COlD 0
00
[XI]
a
DO
o
0
DO
I:D
aD
I:J::lOoDtDJ
a::..O
D .000 •
ODD 0
CIX1I:lD D
0 ODD
tm tmCZJCXIDJC
0
aJaDe
CJ
aI
:::>
lI--
. .. . ( 1 ) . ··am··-oo·~ "'0(11"0"0'"
7
..
o
am atIJo.
:0
I-
..
OJ;
0
DO
'-0': ··.-m··""
'~~-().'[IJ 'D"IXDO-
0 OCD
[D
tD tIXl
···an~oa·D
•
a
aJ
DODO
Call 0
me
lDIID80
DC.
-
··a·iiI··.· .. ~~ ...
(I)
o
4
0
0
•
[II]
CD.
:
DlIXJ 0
aa-ml
a
o
DlJI]
··.···0···. ·.(II)··DOO-o:·OQ·Q.[DDIJ"····
:OZJ aD
0
0
00
tc C
P axED
CD
···m Gl-il.(x:nQ]· .... c.o- .. -GO
···~DO·
:
:00 I:I::IDXJJXJ I::IJODO;
1
DOD
aD-=:J"O.oa:IJ c.lCIIJ
:c
~
DID 0
Q .••••• -(IDDDQ.
00:0 om
o
D
-aD' • .
a:J 0
:
D[IJC
tJ:I]I3[J..-J.OODO
··
·
...
·:
·
.:
DO
•
aDO. 0
CDtDCtD l::.
····-ttD.G)··DD-&D· ·._a···m·OO·~D···.fI·D,.o·a.aCU···Q -'0-0-& .
OODOD.m
e
•
......
c
2ee
C DCDaDD CIaDDa::caaz:
··..,·OO-··o··«>.·um·o-m··
.
D
D
0
KD
[D:ce
D
DC
D
4ee
Il:IJ
[D
6ee
time index
62
EIHDD
see
O D D Dat
o
leee
12ee
Plot of Forecast Function
with 95 Percent Limits
I
I
16
13
10
_.;.
c c
.-l
~
III
.
:>
lt-
.
7
o
.&&.&~.&&.&~.~&.&~.
.
I-
(I)
........................................................................................
c
1
c c
f - ....... .,.
-
-
.;.-
2
"
:
I
970
1020
time index
63
Vertical Time Plot
12
le
a
.-l
L
lD
.
:>
I-
.-l
.-l
S
o
IUl
4
2
e
e
2ee
see
4ee
Time
64
aee
leee
Plot of Forecast Function
with 95 Percent Limits
13
a a
10
a
:0
DO COD
..-l
7
DC
a
0000
00
a""
Doom :m
a
.. ~ ... a·o iIID' ·.OO::J·IIO .a:JlDa:J . . . • ·om .... Oa:J~'DJ-0- •.• JZm Q- CDlDIIC:DQl' -CX:CO '000 -{)- .• 0
00
-0··.Q)··;··
L.
III
.
:>
JJ
.
.
0 ~tmJ
l:DIIO
a:::JD
Daltx1l
amo
CD :0 ~ ~ .
mlJO.
mIllO 0
_-a::D aJ
DCXXDD 00
a
I..-l
..-l
o
Im
cmlUJ
'DDaJO
4
.. m:J OlD·
~
0
me m::io
·.··ID
-[D' _
CD " O l D IDS
[IDeo
D:a::J
.~-(lammo···.cmCIID·.
0
-0' -DO'O ODD-'OD'D ·tIII·, ·-(J·O 'a:D-O"
-
··CIJCJc.J··a· ·accooQ·· .
1
aa a
-2
.:I D
aa:OaD
c.
o
DaD
C
IDO
o
CO
_0
:. . . Dec
DO
j
II
0
200
400
S0e
time index
65
S0e
10ee
1200
Plot of Forecast Function
with 95 Percent Limits
I
13
10
:
7
o
4
o
0
...........
,.-
o
-2
I
I
970
1020
time index
66
Vertical Time Plot
le
s
.-l
r
S
s...
III
.
1
:::>
I(D
.-l
0
I(f)
4
2
e
e
2ee
4ee
see
Time
67
see
ieee
Plot of
Foreca~t
Function
with 95 Percent Limits
9
7
o
..-l
0
c:
o
om
0
•....
····0······
"'-0-"
c c
C
o
aJ
5
~
III
.
:>
f-
Ul
..-l
o
fm
:3
~r
__·._•• _ ·
~
._0_.__._-_
•
am~_
___.._._ _.....,,_>11...."'..-."'.......
1
B
2BB
__~~
..._ _ ....._0.-.-.-"'__.....,..-..:..
4BB
SBB
timll index
68
BBB
lBBB
12BB
Plot of Forecast Function
with 95 Percent Limits
!
I
9
7
~
5
L
.-
.
III
.
~
I-
0
0
lD
~
0
I-
(J)
3
r-";
1
r- .. i>·o· ..........
......••••••.• -0 ....
'·0·· ·<1"0·
. ",0··
-
•
I
970
1020
time index
69
Vertical Time Plot
5
4
....
L
ID
.
:>
IM
3
OJ
0
I-
III
J
1
B
a
2aB
4aa
SBB
Time
70
aBa
Plot or Forecast Function
with 95 Percent Limits
•
5.7
o
DD
p
m oj:]
000
CD:
a moo en
•
000
L-
'.
.-l
l.
q
.
:>
‫­ן‬
M
CII
. , a-lDOta:mDC
Da:xDJ 0_;_
~
mlD'XltD D
_IDQ
moo
m:OOEXIa:JJDC
DOalO
3.7
o
I-
0lIIl DIDIIl ~
If)
1.7
-_...--_....._..."_..
:.0
_tKJ~tDIJIl[I~~...
...,..,. . . . . . ._
..--
...
DOD
0 ca:I:l
".,,
......
-.,.,
DOD
DO
...._
. . .. . . , _..... ,
...
-..."."
DODO 0
.,
IllD
_0
D
00
o
0Jl..
'.
-e.3
e
2ee
4ee
see
tim. index
71
see
ieee
12ee
Plot or Forecast Function
with 95 Percent Limits
I
I
7.7
_.
.....................................
-
. .....
-
5.7
.-l
1ID
o
::>
‫­ן‬
M
C\J
0
3.7
o
I(I)
o
0
1.7 f - .
I
970
1020
time index
72
Vertical Time Plot
s
5
... .......... .
4
..-f
I..
,.
III
IID
3
ru
0
I(f)
2
1
e
e
2ee
4ee
see
Timlt
73
see
leee
Plot or Forecast Function
with 95 Percent Limits
7.5
o
5.5
o c:
00
o
1Il0
0
.-l
~
C
ID
.
DOC
•
OCJ
DO
D:aJJ
C
D_
:>
lID
3.5
(\J
o
l(J)
_=-._..
am""".........
...._ _""'......._ _........_ _........_ ...
1.5
-e.5
e
2ee
4ee
see
timR index
74
see
leee
12ee
Plot or Forecast Function
with 95 Percent Limits
I
7.5
5.5
.-I
l..
III
.
:>
IID
OJ
3.5
~
-
. ..... ; ...
..
o
I(I)
D
D
D
D D
D
D D
1.5
D D
D
D
D D
I
979
1929
time index
75
VITA
Ms. Pei-chun Lin who is the daughter ofChun-Jeng Lin and Hsu-Chien
Lin was born in Taiwan in 1970. She received a B.S. degree in Industrial
Engineering from National Tsing-Hua Dill,versity in 1992.
After her
graduation from the college, she entered the I.E. graduate program at Lehigh
University.
76