January, 1978 Report ESL-R-795 DISTRIBUTED ROUTING ALGORITHM

advertisement
January, 1978
Report ESL-R-795
SIMULATION OF A MINIMUM DELAY
DISTRIBUTED ROUTING ALGORITHM
by
John Christopher Poulos
This report is based on the unaltered thesis of John Christopher Poulos
submitted in partial fulfillment of the requirements for the degree of
Master of Science at the Massachusetts Institute of Technology in August,
1977.
This research was conducted at the Decision and Control Sciences
Group of the M.I.T. Electronic Systems Laboratory, with partial support
extended by the National Science Foundation under Grant NSF/ENG76-24447.
Electronic Systems Laboratory
Department of Electrical Engineering
and Computer Science
Massachusetts Institute of Technology
Cambridge, Massachusetts 02139
SIMULATION OF A MINIMUM DELAY DISTRIBUTED ROUTING ALGORITHM
by
John Christopher Poulos
B.S. Southern Methodist University
(1975)
SUBMITTED IN PARTIAL FULFILLMENT OF THE
REQUIREMENTS FOR THE DEGREE OF
MASTER OF SCIENCE
at the
MASSACHUSETTS INSTITUTE OF TECHNOLOGY
August, 1977
Signature of Author .
...
/..... ..........................
Department of Electrical Engineering and Computer Science
August 31, 1977
Certified by
O.
...
..........
/.
/.5..e
................
Thesis Supervisor
Accepted by ..........................................................
Chairman, Departmental Committee on Graduate Students
SIMULATION OF A MINIMUM DELAY DISTRIBUTED ROUTING ALGORITHM
by
John Christopher Poulos
Submitted to the Department of Electrical Engineering and Computer Science on August 31, 1977 in partial fulfillment of the requirements for
the Degree of Master of Science.
ABSTRACT
A quasi-static distributed routing algorithm for computer networks
is the starting point for this research. The algorithm seeks to minimize
the total expected message delay in the network by successively changing
the routing variables (fractions of traffic of a given commodity on a
link) until the optimum routing is achieved. A simulation program for this
algorithm is developed in several stages. At each stage, some strategy
for improving the convergence performance of the original algorithm is
Several test cases are run with the simulation program, in
investigated.
order to observe the behavior of the algorithm and provide a means for
comparing different strategies. The convergence rate depends on an arbitrary scale factor n, which affects the size of the changes in the routing
In the original algorithm, the optimal scale
variables at each iteration.
The choice of the best
factor varies greatly with traffic and topology.
n, at each iteration, is of primary interest, and several of the schemes
implemented investigate heuristic, as well as analytic, techniques for
calculating the optimal A. The concepts of single vs. multiple n's, and
The final scheme, using a
of fixed vs. dynamic I's are investigated.
single (global) dynamic p, is based on the use of a line search at each
iteration, common in iterative optimization algorithms, and displays some
very favorable properties, namely, fairly rapid convergence for light
to moderate loads, and virtual independence from any arbitrary scale
factor.
The final version, RSIM, is included at the end of the thesis, for
use in further investigation.
THESIS SUPERVISOR: Robert G. Gallager
TITLE:
Professor of Electrical Engineering
-2-
ACKNOWLEDGEMENTS
I would like to express my sincere appreciation to Professor Robert
G. Gallager for his invaluable comments and advice, provided at numerous
discussions held during the course of the research, and for his patience
in guiding me through this project.
I am also grateful to Alan G. Nemeth for providing the original
program used as a starting point in this research, and for the time he
spent explaining how the program worked.
This research was supported by NSF under Grant NSF/ENG76-24447.
-3-
TABLE OF CONTENTS
Page
SECTION 1
SECTION 2
7
INTRODUCTION
1.1
The Routing Problem
8
1.2
The Network Model
9
1.3
The Algorithm
13
1.4
Summary of Thesis
2Q
DEVELOPMENT OF THE SIMULATION PROGRAM
23
23
2.1
The Original Program
2.2
The Initial Single-Tl
Version - RSIM1
2.3
Initial-and Unsuccessful-Attempt with
Multiple-n's
39
2.4
A Working Multiple-n Version - RSIM2
48
2.5
A Dynamic Global-nr
2.6
A Refined RSIM3:
(Fixed-Value)
Version - RSIM3
The Final Version - RSIM
24
60
76
SECTION 3
SUGGESTIONS FOR FURTHER RESEARCH
81
SECTION 4
PRACTICAL CONSIDERATIONS
83
SECTION 5
4.1
General Remarks
83
4.2
Updating Protocols
84
4.3
The Choice of the Optimal C
87
89
CONCLUSIONS
APPENDIX A
GLOSSARY OF NOTATION
92
APPENDIX B
TEST CASES
94
APPENDIX C
DESCRIPTION OF THE SIMULATION PROGRAM RSIM
104
APPENDIX D
PL/I PROGRAM LISTING FOR RSIM
113
139
REFERENCES
-4-
LIST OF ILLUSTRATIONS
Figure
Page
2.1
Basic Flow-Diagram for Simulation Program.
25
2.2
Flow Diagram of Initial Link Overflow Recovery Scheme.
29
2.3
Convergence Performance of RSIM1 with NET1 (p = 0.375):
Number of Iterations Required for Convergence vs. r.
32
2.4
An Example which Illustrates Why the Optimal Tn Varies
with p.
37
2.5
Updated Link Flow on a Best Link, as a Function of
for the Initial Multiple-n Scheme.
2.6
Convergence Performance of RSIM2 with NET1 (p = 0.375):
Number of Iterations Required for Convergence vs. PARAM
54
2.7
Convergence Performance of RSIM3 with NETl: Number of
Iterations Required for Convergence vs. a, for Different Traffic Loads
72
C.i
Chaining of Incoming and Outgoing Links at a Node
106
C.2
Detailed Flow-Diagram of RSIM
108
C.3
Explanation of Flow Chart Symbols
109
C.4
Flow Diagram for User Interaction with RSIM
110
C.5
Sample TSO Session with RSIM
111
-5-
,45
LIST OF TABLES
Page
Table
2-1-
Optimal Parameter An, using RSIM1, For Different
Traffic Loads and Network Configurations.
35
2-2
Optimal Value of PARAM, Using RSIM2, for Different
Traffic Loads and Network Configurations.
55
2-3
Comparison Between RSIM1 and RSIM2: Minimum Number
of Iterations Required for Convergence (Using Optimal n or PARAM), with NET1 and Different Traffic
Loads.
57
2-4
Optimal Value of a, Using RSIM3, for Different Traffic Loads and Network Configurations.
73
2-5
Comparison Between RSIM2 and RSIM3: Minimum Number
of Iterations Required for Convergence (Using
Optimal PARAM or a), for Different Traffic Loads
and Test Cases.
75
-6-
SECTION 1
INTRODUCTION
In the past decade or so the fields of communications and computers
have come together, and as a result, the new area of computer or data
communication networks has developed.
We have seen a proliferation of
such networks in recent years as the scientific, government, and business
communities have become aware of the advantages offered by computer networks.
These advantages include decentralization of processing functions,
sharing of computer resources, access to remote data bases, system reliability, and communication and interaction between geographically distributed locations in a large organization.
The above benefits, coupled
with the advances being made in communications and computer technology,
and the downward trend in many of the costs associated with this technology, point to a continuing development and expansion in the data network
field.
In the design of a computer network many problems need to be solved.
The choice of communication link capacities, the configuration which the
nodes will adopt (the topological design problem),
the development of
communication standards and protocols, and the location of data concentrators and multiplexers are all problems which have received much attention by system designers.
The solutions to these problems are gener-
ally aimed at optimizing some chosen performance criteria subject to
financial and technological constraints.
Once the system has been de-
signed, a new set of problems must be tackled, problems which deal with
the operation of the network.
Here the issues include error control,
-7-
-8-
flow control (to prevent network congestion), routing of traffic through
the network, and the capability for handling hardware and software malfunctions.
Once again, the aim is to optimize some objective function
(performance criterion) subject to certain constraints.
1.1
The Routing Problem
This thesis deals with the issue of routing.
It is assumed that the
network has already been designed, and the problem that remains is that
of channeling the data from a source node to a destination node in a
sensible manner.
The networks considered are assumed to be operating in
a store-and-forward fashion (also referred to as message or packet switching).
That is, segments of bits, called messages or packets, are received
by intermediate nodes and forwarded to the next node on the way to their
destination.
A routing strategy is simply a way of specifying for each node i
which outgoing link(s) should be chosen to carry the traffic at i headed
for each other node j.
In most cases the strategy is designed with the
purpose of minimizing the expected message delay (i.e., the time the
message spends in the network heading from source to destination).
Routing schemes are generally classified as static, quasi-static,
and dynamic.
In static routing the characteristics of the network are
given, as well as an estimate of the traffic that will flow between each
pair of nodes, and the routing decisions at each node, which do not
change with time, are made in such a way that the expected message delay
is minimized.
Dynamic routing is characterized by routing decisions at
each node which vary according to the instantaneous states of the queues
which form at each link.
Quasi-static routing represents a compromise
between the simple but unresponsive static approach and the very responsive but impractical dynamic scheme which requires information about the
instantaneous state of the queues to be conveyed almost continuously
through the network.
In quasi-static routing the routes are updated
periodically and adapt to fluctuations in traffic or link or node failures.
The algorithm under consideration in this thesis is a quasi-static
distributed algorithm [1].
Each node i has a routing table which speci-
fies, for each other node j, what fraction of the traffic at i with
destination j should be routed along each of the outgoing links.
The
algorithm is applied independently at each node and the routing tables
are updated periodically based on information received from neighboring
nodes.
1.2
The Network Model
In order to obtain analytical results and algorithms which are
relatively simple and mathematically tractable, certain assumptions must
be made about the networks.
The usual model of a store-and-forward net-
work is that of a network of Markovian queues.
are those suggested by Kleinrock (2].
Many of the assumptions
Specifically, we consider the
network to consist of reliable nodes with infinite buffer capacity connected
by means of noiseless links of finite capacity.
We let the
nodes be represented by the integers 1,2, ..., n and represent a link
from node i to node k by (i,k).
The links are unidirectional but we
-10-
assume that if (i,k) exists then (k,i) must exist.
The set of links is
L = {(i,k)I a link goes from i to k}.
The messages arrive at a node and, if their destination is not that
node, they are placed in a queue on one of the outgoing links while waiting for retransmission.
It is assumed that messages are only delayed by
the links of the network (i.e., the time spent waiting in a queue for the
link to free up plus the time required to transmit the message).
Any
nodal processing time is associated partly with the link on which the
message arrives and partly with the link on which it departs.
Other de-
lays, such as propagation delay, are handled similarly or considered negligible.
Messages entering the network are assumed to arrive at the nodes
according to a Poisson process, with message lengths exponentially (or
geometrically) distributed with mean 1/" bits.
Kleinrock introduces a
final assumption, the "independence assumption" [2] which allows one to
treat the network as if it consisted of independent M/M/l queues (neglecting the correlation between traffic flows), and thus take advantage
of the available theory of single-server queues.
This non-realistic
assumption allows one to analyze each link independently and does not
appear to have a significant effect on the choice of routing.
In order to proceed with the description of the algorithm some
additional terms must be defined.
The expected input traffic entering node i, destined for node j,
is ri(j), in bits per second (bps).
the input set r.
The set {ri(j)} is referred to as
The total expected traffic, in bps, of node i destined
for node j is the node flow ti(j), which includes both the input traffic
ri(j) and the traffic from other nodes to destination j routed through
i.
Collectively, we speak of the node flcw set t.
The fraction of the
node flow ti(j) routed along link (i,k) is referred to as the routing
ik (j).
ik
variable
More precise conditions on the routing variable set
* are specified by Gallager [1]:
for
0ik
(j)<l
1.
<
2.
ik(J)=O
if
.(j)
k
3.
l<i,k,j<n
(i,k) %
L or if i=j
1
ik
4.
For each i,j(iUj) there exists a routing path from i
to j (i.e., a series of links between i and j which
have positive routing variables). Note: A link can
have a positive routing variable and still carry no
traffic.
With these definitions the conservation of flow at a node is expressed as
ti ( j) = ri ( j ) + Z tM(j)i
(j )
;
all i,j
(1.1)
A commodity i will refer to the traffic in the network destined for
node i.
The expected aggregate flow in bps on link (i,k) is fik (fik=0 if
(ik)%L).
The
Collectively, we refer to these as the link flow set f.
flow of commodity j on link (i,k) will be represented as fik(j).
These
terms are related in the equation
fi =
ik
fi (j)
ik
t
i
(1.2)
-12-
Any routing policy, subject to the above definitions, results in sets
4, and
t,
f, and Gallager shows that, given an input set r, any routing
strategy in which each node chooses its routing variables leads to a
unique t, f.
Returning to the analysis carried out by Kleinrock 12] we let Tik
be the expected delay per message on link (i,k) (queuing
delays).
and transmission
We are actually interested in the quantity Dik, which is the
expected number of messages per second transmitted on link (i,k), Xik'
times the expected delay per message (i.e., Dik =
the expected delay/unit time on link (i,k).
ikTik).
Thus Dik is
Under the above assumptions
Dik is a function only of the link flow fik' and is given by
fik
Di k (f
i
k
) = C
(1.3)
ik
ik
Cik is the capacity on link (i,k).
The important feature of Dik is
that it is strictly increasing, non-negative and convex U in fik'
The total expected delay accumulated per unit time, DT, is equal to
the total expected delay per message T times the total expected number
of message arrivals per second y, and is given by
DT =
D ik(f ik
)
=
T
(1.4)
i,K
Since the total expected message arrival rate y is independent of
the routing scheme, the total expected delay per message in the network
T can be minimized by minimizing DT over all choices of routing variables
(DT
T
depends on the flows which in turn are functions of r and
4).
Thus
-13-
the objective function will be (1.4).
In view of Little's result [3],
which states that the average number of messages (customers) in a queuing
system (the network) is equal to the expected message arrival rate times
the expected time spent in the system, we see that minimizing DT amounts
to minimizing the total average number of messages in the network, given
the set r.
1.3
The Algorithm
In a recent paper, Gallager [1] proposed a quasi-static distributed
routing algorithm which minimizes the total expected delay DT by successively updating the routing tables at each node.
The update of the
routing variables is based on certain information about the network communicated between neighboring nodes.
Gallager, Segall [4], and Agnew [5],
among others, have observed that if the quantity to be optimized is
the total delay DT then the routing algorithm should depend on the derivatives with respect to link flow of the expected link delays Dike rather
than just the delays.
at each iteration.
It is this information that is exchanged by nodes
This derivative shall be referred to as the mar-
ginal (or differential) link delay, and under the assumptions listed
previously, is given by
D ik(fik)
dfik
ik
(C.5-
ikfik
The algorithm is adaptive in the sense that the set
4 is modified
in response to information about the marginal delays, which in turn
-14-
convey information about fluctuations in network traffic.
The assumptions
under which the algorithm is developed are stationary input traffic statistics and a non-varying network configuration.
Gallager shows that,
for these conditions, the total expected delay DT converges, with successive updates of the set c, to the minimum average delay over all
routing assignments.
In addition, the traffic in the network is guaranIf the condition of stationary
teed to be loop-free at each iteration.
inputs is relaxed then the ability of the algorithm to react to input
changes will be related to its convergence speed.
To proceed with the description of the algorithm (for a complete
description the reader is referred to [11), the derivatives of DT with
respect to r and
=
3rrj)
.i(i)
9a ik ( )
4 are found:
ikfik
k
ij
i <j,
(f ik
kik
(16)
(17
+b )
Tr k(j
rk(J)
)
The term in brackets in the above equations will be referred to as
the differential or marginal delay from node i to destination j using
link (i,k).
aD
ik (j) = Dk(i) +
rk( j
1.8)
The first component is associated with link (i,k), while the second
term is the marginal delay from node k to destination j along all paths.
By definition 3DT/ar.(j) = 0.
-15-
The necessary conditions for
for all
4 to minimize DT , given that fik
s L, are, for all idj,
(i,k)
D(
)
ik(j)
;
(i,k) s L,
> 0
)
T
< cik
(1.9)
(X.. is a Lagrange multiplier, not to be confused with the average message
23
rate on a link).
This means that, given a pair of nodes i,j, the optimal set 4 will
be such that all links for which
ik(j) > 0 must have the same marginal
ik( j
delay, 3DT/JQik ( j ) , while links with
)
= 0 must have a marginal de-
lay greater than or equal to this previous value.
The sufficient conditions for 4 to minimize DT are, for all iOj,
(i,k)
£ L,
i (j) = Dk(fik
) +
3DT
3DT
(1.10)
>
This can be shown to be equivalent to:
()
ik~
,
- j )m:(im)
dim(
m:(i,m)cL 6.
Im j ) >
with equality if
ik(-j)>0
ik
(1.11)
This means that the optimal 4 will be such that, for given i,j, all
outgoing links
marginal delays
(i,k) from node i with
ik(J)
ik(j) > 0 will have identical
= 3aD~ri(j), while those links with
will have a marginal delay 6ik(j)
4
ik(J)
= 0
> aDT/Cr i(J)
These conditions for an optimal set
4 suggest the direction in
which to change the routing variables at each iteration so as to reduce
-16-
the total expected delay.
routing variables
Each node i must incrementally decrease those
4ik(j) for which the marginal delay
increase those for which it is small.
a protocol between nodes
6
ik(j) is large and
The algorithm consists of two parts:
to calculate the marginal delays (and perform
some other functions to be discussed later), and a set of rules for updating the routing variables
4.
The calculation of 6ik(j) consists of using (1.5) for the first
component, and determining aDT/Vrk(j)
for the neighboring node k.
We
define a node k to be downstream from a node i, with respect to destination j, if either ik(j) > 0 or if k is downstream from some node
which fi (j) > 0.
, for
We define i to be upstream from k, with respect to des-
tination j, if k is downstream from i.
The routing is loop-free
with
respect to a commodity j if there exist no i,k (iAk) such that i is both
upstream and downstream from k, relative to j.
This is equivalent to
saying that the upstream-downstream relation, with respect to a commodity
j, forms a partial ordering of the set of nodes.
Thus, in the first stage
of the algorithm, for each destination j, each node i waits until it has
received the value aDT/ark(j)
(aDT/arj(j)
O0).
from each of its downstream neighbors
It then calculates 3DT/ari(j) using (1.6) and broad-
casts it to all of its neighbors.
Thus the marginal delay information
for each commodity j propagates from j upstream through the network.
process is free from deadlocks if and only if
This
4 is loop free (otherwise
a node, both upstream and downstream from an adjacent node, could wait
forever for updating information from this adjacent node).
-17-
In order to prevent the formation of loops we must specify, for
each destination j and node i, a set B. (j] of blocked nodes k for which
~ik(j) = 0 and the algorithm is not allowed to increase 4ikj(1 from 0
The sets B. (jI will be described in more detail
at the next update.
after presenting the update procedure.
The algorithm A, at each iteration, maps the current set of 4 into
This mapping is defined as follows:
a new set 41 = A(¢).
for k £ Bi(j),
ik
c1
= °;
(1.12)
h)
Mi = o
ik
for k X Bi(j), define
aik(j) =
ik(j)-
min
m.B
i (j)
(1.13)
im()
and let
Aik(j)
where
=
(1.14)
min[(ik(J), naik(j)/ti (j)]
n is a scale parameter to be discussed later.
Let k . (i,j) be
mln
a value of m that achieves the minimization in (1.13).
ik( j )
m,,ljl+
Aik
m
kin
;
k
/
Then
kmin ;
( i,j)k
j)
The algorithm reduces the fraction of commodity j sent on nonoptimal links and increases the fraction on the best link.
The routing
variables on non-optimal links are not permitted to become negative.
-18-
The change in routing variable is proportional to the difference between
the marginal delay to node j using link (i,k) and using the best link,
as suggested by the conditions (1.11), and inversely proportional to
t.(j), which reflects the fact that if t.(j) is small then a large change
in ~ik(j) will not have a great effect on the flow on link (i,k).
nally the changes depend on the arbitrary scale factor n.
For
small convergence to the minimum delay is guaranteed but slow.
Fi-
n very
As n
increases, the algorithm converges faster, then begins to converge slower,
and finally fails to converge at all.
This parameter will be discussed
in greater detail in later sections.
In order to describe the sets B (j} a few definitions are needed.
A routing routing variable
i ('j)> 0 and aDT/ar
i .C)
<
.ik(j
is defined to be improper if
3DT/3rk(j).
As discussed in [1], improper
routing variables are rather atypical, and the algorithm always reduces
them at an update.
If
4
is loop free and i
= AC&)
contains a loop for some commodity
j, then the following conditions must hold:
a)
The loop contains some link (i,k) for which
ik(j)
= °0, ik > 0, and aDT/ri
(j) > aDT/DrkCj) (the
algorithm only increases routing variables on links to
nodes with smaller marginal delay).
b)
The loop contains some link (R,m) for which
is improper and for which
m Ci)
-
C(j} > 0 (i.e., the im-
proper 0 is not driven to zero at the update).
A node k is defined to be blocked with respect to a destination
j if there is some link (Z,m), downstream from k, for which 0 m(j) is
-19-
improper and
()
m
> -n
-
a6D]/(j)
/
(1.16)
The link in question could be one emanating from k.
The above condition
is based on the update equations, and simply states that after the next
update the improper routing variable might still be positive.
From the conditions for the existence of a loop, stated above,
there exists the danger of creating a loop if a routing variable to a
blocked node is "awakened" (increased from 0 at the update).
Finally, to prevent loops, for each node i and destination j a
set of nodes, B (j), is defined as
1
Bi(j) = {kleither
4ik(i)
= 0 and k is blocked w.r.t.j
(1.17)
or (i,k)
% L}
Routing variables from node i to a node in the set Bi(j) are not
allowed to increase from zero.
The inclusion in the set B.i(j) of nodes
not directly connected by a link to i is done for notational convenience.
For each destination j the blocked nodes can be determined at the
same time that the marginal delays are propagated upstream.
i, when it calculates aDT/a~r(j)
Each node
determines whether any neighboring
downstream routing variable is improper (according to the definition).
If this is the case then a flag is added to its broadcast of
DT/r
(j)
The flag is also added if the received value of aDT/rm(j) from any
downstream node m contained a flag.
Thus, all nodes upstream from a
node will also become blocked with respect to destination j.
.
-20-
The algorithm described above maintains loop freedom at each iteration,
and relies on this property for its operation.
1.4
Summary of Thesis
The routing algorithm described above was shown to reduce the total
average message delay, DT, to the minimum value over all routing assignments.
In order to allow a mathematical proof of the convergence of this
algorithm, update equations of the form given above (eqs. (1.12) - (1.15))
were used; also the proof used a "very small" value of rnto guarantee
convergence.
Clearly this left room for heuristic improvements to the
algorithm which might increase the speed of convergence, and allow it to
adapt to different network configurations and traffic levels without instability problems, link overflows, or need for outside (operator) intervention.
The routing algorithm is an iterative minimization of DT, subject to
constraints
(capacity constraints, conservation of flow equations, prop-
erties of routing variables) which assure a feasible set of flows at
each iteration.
The structure of the algorithm is the following: given
a starting point, at each iteration a direction of movement is found
according to some rule, and then one moves in that optimum direction a
certain distance in order to minimize the objective function DT .
The
starting point is a set of feasible flows; the direction of movement corresponds to the manner in which the routing variables are changed, and
this direction, given by the update equations, is found from the necessary
and sufficient conditions for minimum delay; finally, once the direction
-21-
has been established, it can be seen that the new set f, and hence the new
value of DT, is only a function of n, and so the distance moved in the
chosen direction is determined by the choice of this parameter.
The research carried outfor this thesis has concentrated primarily
on the development of a program which simulates this routing algorithm,
and the investigation of techniques for improving its performance.
The
program serves many purposes:
(1)
It provides a means of verifying the theoretical results
derived and predicted in Gallager's algorithm.
(2)
The simulation also permits the observation of the convergence performance and effectiveness of the algorithm
under various conditions of traffic and network structure.
(3)
It is an experimental tool which can be used to try out
heuristic techniques for improving the algorithm. (This
experimental process in turn suggests new ideas).
(4)
Finally, the program can be modified so as to look into
problems such as the case of nonstationary inputs, or
node and link failure recovery schemes.
In Section 2 the development of the program is followed in great
detail.
Any modifications performed along the way are also described.
The attempt to improve convergence speed has led to successive versions of
the program.
These versions are characterized by different approaches,
heuristic or otherwise, to the problem of choosing the scale factor n.
The approaches range from a fixed n, chosen at the beginning of the minimization, to dynamic methods of estimating the optimal n at each iteration.
The concept of multiple n's, one for each node or commodity, is developed
-22-
as well.
The final version of the program also investigates a heuristic
refinement to the method of updating the routing variables (choosing the
direction of movement).
In addition, algorithms are developed for finding
an initial set of routing paths, and for handling the case where this
initial routing results in link overflows.
Each version of the simulation program is accompanied by results obtained from sample networks.
These results allow comparisons to be made
between techniques, and thus suggest which methods should be pursued
further and which should be abandonned.
The final version described in
Section 2 contains most of the best features of previous versions plus
some new refinements.
This version is regarded as the end product of
the program development, and is described in greater detail in Appendix
C.
A listing of the program is given in Appendix D.
Section 3 discusses certain areas in which further research is needed,
and describes some of the problems that arise in these areas.
Section 4 deals with some of the practical considerations associated
with the implementation of this algorithm in a network.
The amount of
information that must be interchanged between nodes, and the manner in
which this is
done are some of the issues which are covered.
Conclusions and results are discussed in the following section, and
a series of Appendices are provided to expand and clarify some practical
topics.
SECTION 2
DEVELOPMENT OF THE SIMULATION PROGRAM
This section can be regarded as the body of the thesis, as it
traces the progress of the research which led to the main results and
the principal techniques implemented in the simulation program.
The
material is presented in chronological order, and describes the schemes
and techniques which were pursued in the process of improving the convergence properties of the algorithm.
A series of successive versions
of the simulation program are discussed below.
Each version incorporates
some new approach to the program development process.
In addition to
refinements to the algorithm's convergence rate, any major changes in
the program structure, which have an effect on its performance, are
explained.
2.1
The Original Program
The simulation program developed in this thesis got its start
with an existing program, written in the BCPL language by Alan G. Nemeth,
while at Lincoln Labs.
This program simulated the routing algorithm
exactly as stated in the equations of subsection 1.3, without any modifications.
The first step performed was that of translating the program from
BCPL, a language not widely available, to PL/I, a well known language
with which the author is familiar and one which incorporates most of
the features of BCPL (this simplified the translation considerably).
The PL/I simulator was designed as an interactive program, that is, one
-23-
-24-
in which the user (the person running the simulation) enters the necessary
data and parameters at a terminal, and has some control over the subsequent actions taken by the program.
The program was run on an IBM 370/168,
at MIT, under the Time Sharing Option (TSO).
The adoption of an inter-
active scheme provides the user with the ability to supply certain inputs,
observe the output data, and react to it immediately, without a long interruption in his (or her) chain of thought.
Although the original program evolved and underwent many modifications, the basic underlying structure of the algorithm, as well as the
method of storing the network information, are retained in all subsequent
versions.
The final version called RSIM, is discussed at the end of
Section 2, and is described in great detail in Appendix C, with a listing provided in Appendix D.
The reader is referred to these appendices
for an explanation of the function of each module (subroutine) in the
program.
The basic order in which the simulation processes are performed is
illustrated in the Macro (Large-scale) Flowchart in Fig. 2.1.
general framework is preserved in all versions of the program.
This
Detailed
flow diagrams, representing the final version, are presented in Appendix
C.
In this section, however, we are more concerned with the results of
the simulation runs than with the actual structure of the program.
2.2
The Initial Single-n (Fixed-Value) Version - RSIM1
This first version, referred to as RSIM1, was basically the PL/I
translation of the original program.
It did, however, incorporate a
-25-
Set up network from
input information
about test case being
run.
Read in necessary parameters which specify
/
/conditions under whic
/ the program will be
/
run.
/
Perform the specified number of iterations in the
minimization of total average delay.
processing
YES
a
NO
TTO)
Figure 2.1
Basic Flow Diagram for Simulation Program
-26-
few changes, most of which were aimed at simplifying the task of the user
by allowing him to change some of the parameters and continue the processing within the same simulation run.
One important modification con-
cerned the issue of a starting set of flows.
The algorithm requires an
initial routing assignment which must result in a set of feasible flows
(i.e., no capacity constraints violated).
initial set
4, for
In the original program this
each test case, was supplied as input data by the
user, together with the information about network configuration, link
capacities, and input traffic.
read in by the program).
(Appendix B describes how this data is
This approach is not recommended for two rea-
sons: first, the user, in setting up this initial
4, must,
in effect,
calculate the resulting flows to verify that the set f is feasible;
and second, the number of routing variables that need to be supplied
can be as large as (the number of links) x (the number of nodes -1).
These problems can make the design of a relatively large test network,
say, 10 nodes and 25 links, very cumbersome.
To circumvent this problem, a module, SHORTESTROUTE, which calculates an initial routing assignment, was incorporated in the program.
This initial set
4 routes traffic between each pair of nodes along the
shortest path (in number of links).
A single path is chosen for each
commodity flowing between each source and destination nodes.
The moti-
vation for this scheme lies in the intuitive idea that the shorter the
path the smaller the delay.
more detail in Appendix C.
The module SHORTESTROUTE is described in
-27-
At this point, the reader is advised to read Appendix B, so as to
understand how test cases are presented to the program, and to review
the concept of scaling input traffic flows, and the network utilization
factor p.
The sample networks listed there, NET1, NET2, and NET3, were
used extensively throughout the program development process, and are
referred to often in the thesis.
Since SHORTEST ROUTE sends traffic along single paths (¢'s are
either 1 or 0), and since the shortest paths are chosen in a manner
which depends on the order in which links are read into the program (as
discussed in App. C), it is possible for this initial routing assignment to result in a set f which exceeds one or more link capacities,
in spite of a relatively low utilization factor (i.e., many links carrying little or no traffic).
One would anticipate, in a case like this,
that after a few iterations the set f would become feasible again (we
are not considering the case where a majority of the links exceed capacity, because this congested case could be avoided by implementation
of flow control policies).
To handle this initial link overflow problem
a strategy was implemented whereby the capacities are increased to a
point where they can handle the flows, and then gradually decreased at
each iteration until the original capacities are reached.
Since the
algorithm is concerned with obtaining the optimal routing variables,
and since this temporary adjustment of link capacities
should be over
with, in general, after only a few iterations, the overflow recovery
scheme should not interfere with the overall minimization process.
-28-
In order to describe this recovery strategy in more detail, we must
define the link utilization factor pik to be
Pik
A
ik
Cik
C
ik
(2.1)
ik
Clearly, if Pik > 1.0 then there exists a link overflow on link (i,k).
We also define
=
max p
L
(2.2)
ik
which is a measure of the maximum congestion or overflow.
The initial overflow recovery strategy is illustrated in Figure 2,2,
Only those steps which are relevant to the capacity adjustment are shown.
In this and subsequent diagrams, CO refers to the original set of link
capacities, as specified by the input data set, and C refers to the set
of capacities in general, regardless of whether they are increased or
original values.
The capacities are always adjusted by a multiplicative term, so as
to insure that they maintain proportionality.
If this were not the case
(say, capacities were increased by a fixed additive constantl, then the
capacity constraints would be very different from the original net (in
effect, one is dealing with another problem altogetheri, and the algorithm
would not be moving in the right direction to minimize the objective
function.
As it is, even maintaining proportionality, the optimal set
* will vary somewhat according to the network utilization factor, so
it is desirable to return to the original capacities - and thus, to the
-29-
COMPUTE INITIAL
AND CALCULATE f
¢
START
CALCULATE
O-max
Pik
{ Increase
{Check
>
for
c(+
YES
Capacities)
05)
initial overflow
PRINT n, D
PERFORM AN UPDATE
OF
4
AND CALCULATE
NEW FLOWS AND NEW
(Check to see
whether capacities are still
greater than the
.original values.
INCREASED
?
N
SPE
_RNoT.SBEE
\
F
COMPLETED
YES
Reduce
)
capacities
Cmax[C0
C(12
Fig. 2.2IFlow
PROCEED
WITH FURTHER
COMPUTATION
YES
FLAG
Fig. 2.2
ORIGINAL
Flow Diagram of Initial Link Overflow Recovery Scheme
NO
-30-
original problem - in a relatively small number of steps.
In the event of an initial overflow the capacities are increased
by a factor of (I + 0.5).
The factor a insures that no link flows will
exceed capacity, and the 0.5 provides an additional 50% capacity increase,
which effectively reduces the network congestion.
This surplus capacity
permits the algorithm to make greater changes in flows at each iteration,
and so approach the optimum solution faster, with less danger of a link
overflow occurring in the initial steps (this last problem is discussed
later).
The surplus value 0.5 was chosen arbitrarily, but it has proven
to be adequate for the test runs performed.
Once the capacities have been increased, they are then scaled down
after each iteration by the factor shown in Figure 2.2.
This decrease
is performed after the new flows have been calculated, and leaves enough
capacity to handle these flows.
The value 2 appearing in the reduction
factor was arrived at after some experimentation.
Specifically, RSIM1
was run with test case NET2 (for which p = 0.611, and the initial set
f is infeasible), and with various combinations of n and this denominator.
It was found that for a
denominator greater than 2 (which cor-
responds to a smaller decrease in capacities), the process of returning
to the original capacities took a greater number of iteration steps,
and in many cases results in a link overflow (partly because the larger
capacity margin allowed greater changes in flows to occur, which could
cause a heavily loaded link to exceed capacity).
The results indicated
-31-
that the size of the denominator had little effect on the speed of convergence of the algorithm during this capacity adjustment phase, and
that a value of 2 provided a quicker return to the original capacities
(a desirable feature, as discussed previously).
Thus, of the parameters
over which the user has some control, only n has a strong influence on
the convergence rate.
Returning now to the performance of RSIM1, we recall that this
version was essentially the simulation of the equations supplied by the
algorithm, with no further modifications to the convergence process.
Specifically, the user supplied RSIM1 with a value of the parameter n,
and the program proceeded with the minimization of total delay using
this n at every iteration.
As one might expect, this approach was
not very practical, for reasons to be discussed later in the section.
However, the data obtained from running RSIM1 was useful in identifying
some of the areas which called for improvement.
In order to observe the behavior of RSIM1, the program was run
several times with test case NET1 (Fig. B.1), using different values
of n.
NET1 is a simple four-node network with a relatively light
traffic load (p = 0.375).
The number of iterations required for RSIM1
to converge to the minimum total delay is plotted in Figure 2.3 for
several values of n.
One can immediately see from this graph that the convergence rate
of RSIM1 is highly sensitive to the parameter
n,
n. Using the optimal
of about 2.7, the minimization is completed after six iterations,
-32Number of
Iterations
I
16 |
GRAY
1REGION I -DIVERGENCE --
CONVERGENCE
~~~~15
\
I
\
13,
'
'
8
10.
I
Il
2
I
I
1I
I
~~2~~~~~:1
0
!
I
,
0.0
Fig, 2.3
II ,
1.0
2.0
3.0
. I
4.0
I
5.0
Convergence Performance of RSIM1 with METi (p=0.375):
Number of Iterations Required for Convergence vs. rn.
i
-33-
a very reasonable number.
However, as soon as one moves away from this
value of n, the convergence rate shows considerable degradation.
fact, we can observe several regions in the curve of Fig. 2.3.
In
As one
decreases n from its optimum value, the number of iterations required
rises sharply.
In this region the changes in flows are proceeding very
slowly, and convergence is guaranteed but not efficient.
As one increases
n from the optimum value, one encounters a similar problem, with convergence guaranteed, but at a slower speed.
In this region some of the
changes are a little too large, causing overshoots in the increases of
flow on the optimal links (those with minimal marginal delay),
in turn make the iterative optimization less efficient.
which
Eventually,
as n is increased further, one enters a so-called "gray region" where,
because of the large overshoots, at some updates the new flows will
actually cause the total delay to increase.
In this region convergence
seems to be fairly certain, but it is slow, and with occasional perturbations (the total delay does not decrease monotonically).
Finally,
with even larger n's, the algorithm simply does not converge at all.
This divergence can manifest itself in two ways: if the network is
lightly loaded, so the links have a reasonable amount of surplus capacity,
then after a few iterations, the excessive changes in flows tend to
produce an oscillatory or periodic effect, with the total delay taking
on a few values over and over again; if n is much greater, or if the
traffic level in the net is higher, then eventually a change in flow
will cause a link flow to exceed the link capacity.
-34-
It should be noted that there are no well defined boundaries between
the regions discussed above.
Furthermore, as subsequent simulation runs
show, the shape of this curve is dependent on the traffic level in the
net.
For lower values of p,curves like the one in Fig. 2.3 become
flatter, indicating that the convergence is not so sensitive to the value
of n, whereas with higher values of p the curve rises even more steeply
on both sides of the optimal rn.
This is as one might expect, since
the heavier the traffic the greater the danger of exceeding a capacity,
and so, the more critical it is to use the appropriate value of
n.
From the above discussion, it is apparent that one of the main drawbacks of RSIM1 is that convergence is very sensitive to the choice of
n.
This in itself would not be serious if the same optimal n could be
used in a given network for all possible traffic loads.
once the ideal
In that case,
n was found, the algorithm would converge at its fastest
rate regardless of the traffic input values.
showed that this was not the case.
However, more simulation
By scaling the input traffic ap-
propriately, RSIMl was run with NET1 under four traffic levels.
In each
case, the optimal r was found, and the results are shown in TABLE 2-1.
In addition, the test case NET2, which is slightly more complex, was
run with a utilization factor equal to the highest p used with NET1.
What stands out immediately in TABLE 2-1 is the very wide range shown
by the optimal in. Not only is this parameter a function of the utilization factor, but it also depends to some extent on the structure and
configuration of the network.
(Notice how, for p = 0.611, the two nets
have different, optimal ln's).
This effect is not surprising, and we can
-35-
TABLE 2-1
OPTIMAL PARAMETER nl, USING RSIM1, FOR DIFFERENT
TRAFFIC LOADS AND NETWORK CONFIGURATIONS
p
Value of
SCALE used
in RSIM1
Optimal
rl
0.1875
0.5
7.0 - 7.2
0.3750
1.0
2.7
0.5625
1.5
0.25
0.6113
1.63
0,0082
0.6111
1.0
0.002
NET1
NET2
-36-
understand it better by considering the situation in Figure 2.4.
This
diagram illustrates an isolated part of a network, a node i with two
outgoing links (i,k) and (i,m).
is the best link (i.e.
For some commodity j assume that (i,m)
im(j) should increase at the next update).
Finally, for simplicity we assume that the marginal delay to node j from
either node k or m is the same (i.e. aDT/3rk
(j
a (j)
aik
= Dk(fi)
- Dm(fim).
im im
) = aDT/3rm(j)), so that
Now we consider two different levels of
traffic, as indicated on the abscissa of the plot of D' (f) (assume
Cik = Ci
= C).
The quantity aik(j), defined in Eq. (1.13), corresponds
to the lower traffic load, while aik(j) results from an increase by a
factor of 2 in all traffic inputs (and thus all link flows).
assume that
If we
_ik(j) will not be driven to zero at the update, then, from
ik
ik j )
t.
(j)
(2.3)
*f (j)
AikJ)=
n*a* (j)
ik
t*(j)
The two-fold increase in flows implies that t*(j) = 2.t (j).
1i
i
However,
due to the nonlinear nature of D' (f) (see Eq. (1.5)), the corresponding
increase in aik(j) will be much greater, particularly as the link flows
approach capacity.
n
To offset this nonlinear increase in the numerator,
must be adjusted so as to keep the size of the changes down.
While
the above argument is based on a simplified example, it should be fairly
obvious that in general the optimal n will decrease nonlinearly (and
rapidly) with a linear increase in traffic.
-37-
m
ok
f
ik
D' (f)
}
X
i
a*
(j)
ik
*ik(j)
.
im
Fig. 2.4
f
C
f.
*
ik
im
*
ik
An Example Which Illustrates Why the Optimal n Varies with p
-38-
To summarize then, there are several serious limitations associated
with RSIM1, the major ones being:
(1) Since the convergence of the algorithm is so sensitive
to the choice of n, it is difficult for the user to
determine, for a given p, the best value exactly,and
so the algorithm will rarely perform at its best.
The previous problem is even more serious in view
of the wide range (several orders of magnitude)
that this best
n can take on as p is varied.
(2) Because the same
n is used in RSIM1 at each iteration,
no consideration is given to the fact that at different points of the minimization different values might
be optimal.
Thus, by settling on a fixed value, the
algorithm will not converge as efficiently as it should.
We can conclude, from the analysis of RSIM1, that it would be
desirable to be able to choose a fixed n based on traffic and configuration data.
This is a difficult task since there is no simple
closed form representation of
n as a function of the network variables.
A different approach might be to choose a starting value of n, and
then occasionally increase it or decrease it according to some predefined heuristic rule.
One possible rule might be to observe the
number of minimizing routing variables (those which will increase)
which are no longer optimal after an update.
If this number is low
then changes in flows are occurring slowly, so n can be increased by
some predetermined factor; if, on the other hand, the number is high
then we are operating in the region above the optimal n in Figure 2.3,
and the convergence rate can be made more efficient by lowering r.
-39-
Here we are faced with the problem of finding (based on experimentation)
appropriate rules and scale factors which adapt to changing network
statistics.
The above approaches cannot guarantee that the flows will not exceed capacity at some point, and so, some form of recovery scheme would
be needed to maintain the set f feasible.
One method might involve de-
tecting a link overflow, returning to the previous set
4
(at which point
f is feasible), and recomputing the update with a scaled-down value of
Ti.
In the following subsections, several approaches to improving the
algorithm will be analyzed.
However, rather than pursue the strategies
outlined above, which rely on a certain measure of trial-and-error, and
brute force methods, emphasis will be placed on investigating concepts
such as the use of different n's for different nodes, use of an n
which
responds dynamically to changing network conditions, and development of
a closed form estimate of the optimal nr,
It must be kept in mind, in attempting to implement the above
concepts, that the routing algorithm being simulated is of a distributed
nature, and so one must assume that each node will be working only with
data available from neighboring nodes.
Therefore one must rule out
schemes which require each node to possess extensive knowledge of the
network variables at each iteration.
2.3
Initial-and Unsuccessful - Attempt with Multiple n's
One of the weaknesses of a routing scheme like RSIM1, which usesthe same rn to update all routing variables, is that it fails to take
-40-
into account the variation in traffic levels throughout the network.
While some links have a large surplus in capacity, others may be quite
congested; while the routing may be near the optimum in one part of
the net (or for one specific commodity), at other nodes larger changes
may be taking place.
One way to cope with this problem is to use multi-
ple nl's (for instance, one n per node).
This would allow best links
which have a low utilization factor to take on additional traffic at a
faster rate than those which are congested or are near their optimum
flow.
The implementation of a multiple n strategy involves certain problems
and complications which were not so apparent in the single n case.
To
begin with, care must be taken to avoid situations such as a link overflow resulting from several different commodities simultaneously Cbut
independently) making large increases in flow on an under utilized link.
This requires a certain degree of coordination between the local
e's.
Another problem, of a different type , is that of choosing the in's.
It is clearly not practical to use fixed values for these parameters.
This would make choosing the best set of n's (analogous to choosing
the optimal nrin RSIM1) a virtually impossible task because of the
infinite number of combinations.
the program, not by the user.
The choice then must be performed by
However, the use of n's which do not
change throughout the minimization process is not very sensible, for the.
same reasons as in the single-n case.
-41-
What we want then, is a dynamic multiple-rI scheme, that is, one
which is sensitive to both time variations and regional variations in
traffic in the network.
Furthermore, it would be convenient to obtain
a closed form estimate for the n's, instead of using nominal values and
changing them occasionally according to some heuristic rule.
All of the remaining schemes that will be discussed will choose n
dynamically, in response to the current state of the network.
For this
reason, it is necessary to modify the definition of a blocked node given
in subsection 1.3.
Since the value of n used in an update is unknown
at the time that blocked nodes are being identified, the inequality
(1.16) cannot be used.
We must then simply define a node k to be blocked
with respect to a destination j if there is some link (Z,m), downstream
from k, for which
4m(j) is improper.
no serious limitation on the algorithm.
This restricted definition imposes
The condition in
(1.16) was
necessary for the proof of the algorithm's convergence, and at best would
allow a routing variable to increase its value from zero one iteration
before this modified scheme would (however, the dynamic schemes should
still outperform the static one for reasons discussed throughout this
section).
Furthermore, the occurrence of improper routing variables,
and of situations where
(1.16) is used, should be quite rare in a large
network.
One of the major difficulties in choosing n dynamically is that
of determining a closed form expression for it, which will provide a
reasonable estimate of the ideal nr based on certain prevailing conditions
-42-
in the net.
This first attempt with a closed form for n was motivated,
in part, by observing, while running RSIM1, that at some nodes the flow
changes could have taken place much faster, in view of the available extra capacity on their outgoing links.
(The choice of a global n in RSIM1
was influenced by the requirement for small changes on congested links).
This indicated that the size of the changes should depend on the link
utilization factor, or the extra capacity on the link.
There are several possible ways of assigning multiple n's.
There
can be one n per node, one per commodity, one per node and commodity pair,
etc.
The single-n-per-node scheme tends to ignore the problem of dif-
ferent commodities requiring different rates at a given node, while the
single-n-per-commodity does not provide locality in the choice of n (a
desirable feature in a distributed algorithm), and allows little coordination between commodities.
The last method listed is satisfactory,
but makes use of more n's than are really necessary.
The scheme imple-
mented here also considers node-commodity pairs but, for each node it
uses the same n for all commodities which find the same outgoing link
optimal.
Thus, the total number of n's in the net is equivalent to the
number of links, emanating from all nodes, which are considered optimal
by at least one commodity (this number may vary at different iterations).
In order to simplify the calculation of n, it was necessary to
assume that the node flow t.i(j)
doesn't change at an update, so that
the only changes that must be considered are transfers of traffic between
outgoing links (a way of compensating for this assumption is introduced
later). This allows each node to calculate its
n's
independently, thus
requiring no additional information from its neighbors.
The analysis
-43discussed below corresponds to a single node i and only one of its best outgoing links (thus, some of the subscripts and labels have not been included).
The same processing must be performed for each optimal link, at each node.
Consider now a node i, with a set of outgoing links which carry
several commodities.
We consider (i,k*) to be the best link (one which
will increase its routing variable at the update) for a set of commodities.
Members of this set are denoted by j+k* (they will all use the same n),
and those which do not find this link optimal, by j;k*.
in determining the increase in traffic on this best link.
We are interested
We do not
consider, at this time, any decrease in traffic of commodities jsk*.
The
estimated increase will be denoted by Afik*,. Since we assume that t.(j)
doesn't change, Afik,
must consist of traffic of commodities j+*k*, which
is removed from non-optimal links.
We make one final assumption: on non-
optimal links with positive routing variables, this ~ is not reduced to
zero when updated; that is, from (1.14)
A
a ik (j)
ij
(j) =
(2.4)
This assumption, not unreasonable since r (and thus, the size of Aik(j))
is still unknown, will make Afik* linear in r.
Therefore, the estimated
increase in flow on link (i,k*) is given by
Afik
=
Afik
(j)
j-+k*
ti
j+)k*
hik(
k/k*
4ik(j)>0
(2.5)
= n
- [Z
j+k* k3k*
aik(j) ]
-ikM>
-44-
If we assume that the actual change of flow on link (i,k*), Afik*.
will be a linear function
is equal to Afik*, then the updated value of f
ik*
ik*
of n:
fik (n) = fik* + Afik*(
(2.6)
In figure 2.5 two forms of the updated link flow f
ik*
are shown:
the linear approximation, and a sketch of what the actual fk
ik*
n, flk* will not differ from the linear approxi-
For small values of
like.
mation.
As
might look
n is increased, fik* will increase, with occasional decreases
in slope caused by routing variables on non-optimal links being driven
to zero (at which point they cannot contribute any more traffic).
The
curve gradually approaches the value of
1
f
(00)
=
E
1
~ik*(J)ti(27)
ti(j) +
j+k*
jfk*
that is, all possible traffic of commodities j-+k*, plus a fraction of
commodities j/k*.
Actually, since the flows on all non-optimal links
will be driven to zero for some
fik*(0)
ln<, (see Eq.
(1.14)), fik* will reach
with that finite value of n, unless of course, Cik* < fik*(-),
in which case the link will saturate first.
To be perfectly rigorous,
we must remember that there is a decrease in fik* associated with those
commodities j/k* which have contributed some traffic to their corresponding
best
links
(the amount dependent on the value of the
n 's associ-
ated with those links); there is also a positive or negative change in
fik* associated with the fact that t.(j) will not, in general, be equal
ik*
i
-45-
1
fik*(n)
Linear Approximation
Cik*
iki
fk*- Cl--)
Actual Value
*I
}tik*(l1
Af
fik
Af ik*
ik
(l
I
1
-
ik*
ATI
°
a
Fig. 2.5
1
Updated Link Flow on a Best Link,as a
Function of rl, for the Initial MultiplenlScheme,.
-46-
to the nominal value t (j).
The net effect of these factors, not con-
sidered in the approximation, will be a shift (up or down) of the curve
for f.
from the position shown.
ik*
The linear version of fikhas a slope given by
Afik*
=
Afik*
=
a i(j)
j-j+k*
(2.8)
kk*
ik(j)>O
In order to accelerate the changes on links with a surplus of capacwhich lies somewhere between the
ity, we can aim for a value of fi
ik*
old flow fik* and capacity; in other words,
f
1
=f
+
ik*
ik*
ik* -ik*
P
where P is some experimentally determined parameter.
(2.9)
This would allow
lightly loaded best links to take on a fairly large amount of traffic.
Having decided on this value of fI
it is simple to use the linear form
ik*'
(2.6) and solve for the necessary value of n (11 in the diagram).
There-
fore, the closed form expression for n will be
C
-f
ik*
ik*
P'Z =
P-Z
E
j+k kik*
a
(:)
(2.10)
aik(J)
>ik(j)>0
This n is used for all commodities j)+k* leaving node i.
previously, each best link in the net will calculate its own
the same techniques, at each iteration.
As stated
n,
using
-47-
The parameter P should probably take on a value of approximately 4
1
(i.e. f.k* should lie a quarter of the way between fik* and Cik*).
This
moderate increase in fik*' coupled with the expected decrease in traffic
on link (i,k*) due to commodities jtk*, will compensate for any increase
in the node flow ti(j) which might otherwise saturate the link.
The
parameter P is global (i.e. used for all n's), a fact which might lead
one to believe that the outcome of all this analysis has been simply to
replace the arbitrary parameter n, in RSIM1, with another equally arbitrary
parameter P.
However, from the way that P is chosen, discussed above,
one would expect it to have a much narrower range, as a function of
different traffic loads and network configurations.
The multiple-n scheme outlined above was coded and run with test
case NET1.
The results were very disappointing: the total delay would
not decrease monotonically, even for P as large as 32 (corresponding
to relatively small changes).
After some more simulation runs it became
apparent that there was a flaw in the arguments which led to the heuristic
expression for n.
The problem is that the driving force behind the
changes in routing variables is the availability of capacity on the links.
Thus, even if the optimal flow on a link (i,k*) is well below capacity,
the strategy implemented here will still attempt to increase its flow by
a larger amount than might be required.
This will cause such a link to
become non-optimal, loose a large amount of traffic in a similar fashion,
once again become the best link, and bounce back and forth between these
two states because of the large changes.
Thus, unless P is made very
-48-
large, (meaning very small changes and thus very slow convergence) there
is no reason to believe that the algorithm will converge at all.
In
essence then, the problem with this scheme lies in its inability to reduce the size of the changes appropriately as the optimum ~ set is approached.
(2.10).
Another way of obtaining this conclusion is by observing Eq.
It can be seen that, as the routing variables approach their
optimum values, the aik(j) 's will become very small (as stated in (1.11)),
forcing the n's to become very large, and therefore preventing the
algorithm from converging.
This multiple-n version was not developed any further.
2.4
A Working Multiple-nl Version - RS1M2
The multiple-fl version of the routing algorithm discussed in the
previous subsection, was not successful primarily because the scheme
for choosing the n's was based on an unsatisfactory argument.
This out-
come did not weaken the case for multiple n's; it simply indicated that
some other approach was required to obtain a closed form expression for
the scale factor n.
In this subsection we consider a multiple-n scheme, called RSlM2,
in which the choice of n1 is based on a more sophisticated argument.
retains most of the properties of the previous scheme.
it uses a different
It
In particular,
ln for each "best" link in the network, the ntls are
recomputed at each iteration, and it relies on most of the same assumptions to derive a closed form expression of fn. The main assumptions, the
did not change at the update
reader will recall, were that t.(j)
31
(providing
-49-
independence between nodesl, and that non-optimal links with positive
I's
were not driven to zero at the update (which made the updated flows
linear functions of
n).
The notation introduced in subsection 2.3 is al-
so retained.
As discussed in subsection 1.4, at each iteration, once we have
established the optimum direction in which to move, so as to minimize the
objective function DT, the only problem remaining is that of choosing
the step size in that direction,
The distance moved is a function of rn,
and in order to speed up the convergence process, one must move until
a relative minimum point of the objective function is achieved.
This
technique of minimizing the objective function in the established direction, known as a "line search", is fairly standard in iterative
optimization algorithms.
The theory behind these optimization techniques
can be found in Luenberger (6].
In RS1Ml, a single n
was chosen in such a way that on the average
(over the entire network and over time) the step sizes produced the
*fastest convergence.
In the initial multiple-n scheme the choice of
n's was motivated by the utilization of the links.
In this strategy
we will work with the total expected delay, DT , and will actually aim
for the optimal n's by using the line search concept.
The analysis
will rely on many simplifications, so the result will be more of an
estimate of n.
As in the previous case, we shall consider a node i,
and a set j-+k* of commodities which find (i,k*) to be the best link
at that iteration, with the understanding that the analysis proceeds
identically for each best link in the network.
-50-
Consider now the difference in total expected delay
AD
= D1 - D
(2.11)
where DT is the total delay after the update.
We are considering only
one of the n's in the network, so this ADT is due to the increase Afik*
of traffic on the best link, and the corresponding decrease on the nonoptimal links.
As in the previous version, we assume that Afi
ik*
= Af
ik*
(Afik* is defined in (2.5)), that is, we ignore any decrease of traffic
of commodities j+k* on link (i,k*), as well as any deviations due to
changes in upstream traffic (i.e. changes in ti(j)).
We are interested
in minimizing DT with respect to n (or, equivalently, minimizing ADT).
By finding a stationary point of AD T,
we can solve for the optimum value
of n, and use it in the update processing.
Because of the many interactions and complexities which arise in
multicommodity flow problems, it is not possible to obtain an exact
expression for ADT as a function of n.
Instead, we resort to a series
expansion approximation and, relying on the assumptions stated above,
attempt to include the first and second order terms.
The resulting
expression is
AD T =
[Af ik(j)
k*
j-T
·6
(j)]ik*
Z
j+k* kk*
[Afik(J)
~ik(j)>0
(
j)
(2.12)
+ Higher Order Terms
The first term in (2.12) represents the contributions to ADT resulting
from the increases Afik*(j) in traffic of commodities j-+k*
on the best
link.
The
6
ik* ( j) term is the marginal delay from node i to destination
j (the product gives the delay increase).
The second term in (2.12)
represents the decrease in ADT due to the loss of traffic on non-optimal
links.
The higher order terms will be discussed later.
Using Eqs. C2.4)
and (2.5), and the fact that Afik(j) = Aik(j) .ti(.
we can rewrite (2.12) as
DT
j+k*
kk*
a ik ( j)]
'
d j-k*[kfk34k *
I) ]
ik*j)
ik (j)>O
E
j-+k* kk*k
[i
jk k*
j+k* kik*
aik (j)
a
aik(j)
6ik (j)]+
H.O.T.
[6ik(j)-6ik (j)] + H.O.T.
ik (j)>0
aik
= -n
* C
C
j-+k* kfk*
a.k(j) + H.O.T.
(2.13)
ik(j)>0
were use was made of (1.13).
The higher order terms become much more complicated, and so the
decision was made to include only the second order effect associated
with the increase of aggregate flow Afik* on the best link (for simplicity, only the increase of delay on link (i,k*) is considered,
rather than the effect on the whole network).
Therefore, the final
approximate expression for the change of total delay is
-52-
2
a-ikj)
ADT
1
2
"
aik D
ik
(Af
+
j-)-k* kik*
*ik(j)>O0
= ,n ·
aaik
. k (j)
ti 1 + 2 '
a
~
z
ijk* kk*
~
°jkik*
kk*
)
~ik (j >0
a
D"
. Dik*
ikCjl>0
(2.14).
where, from Eq. (1.3),
,,
d2 Dik(fik
2
C
DAi ik ~
Dik
=
2
2
ik
=
3
(Cik-f ikik
dfik
-
D
Cf
ik
All that remains now is to minimize ADT with respect to
solve for this value of n.
C215
ik
-f
nr,and
Thus, the closed form estimate of the
optimum n is given by
[jk* kfk*
ak
(Cik*
ik
Ak .
2
[
k* k(k*
A
J
* PARAM
(2.161
ik*
~ik(j)>0
The constant, PARAM (which includes the 2 in the denominator resulting from (2.15)), is an arbitrary parameter which takes into account the effects which were neglected in the analysis above.
Once
again, we are making use of a global parameter (since the same PARAM
is used for all n's), but we expect its range to be narrower than
that of the single n in RSIM1.
-53-
If Eqs. (2.16) and (2.10) are compared, one can see that this new
expression for n
does not steadily increase, as it did in the previous
scheme, as the optimum routing is approached.
RSIM2 was initially run with test case NET1 (p = 0.375).
The
number of iterations required for RSIM2 to converge is plotted in Figure
2.6, for several values of PARAM.
The regions shown in the figure are
the same ones that were described in subsection 2.2.
One can compare
this graph with Figure 2.3, which describes the performance of RSIM1
under equivalent conditions
n).
(in that case the arbitrary parameter was
The convergence of RSIM2 is still sensitive to the parameter,
but perhaps not as much as RSIM1, as the flatter curve would seem to
indicate (.better ratio of optimal parameter to the difference between
PARAM for two consecutive points near the optimum ).
One thing
seems certain though: for values of the parameter greater than the
optimum PARAM, the convergence is not as sensitive (curve doesn't
rise as steeply) as in the previous case.
A more useful comparison between RSIM1 and RSIM2 can be obtained
by observing TABLE 2-2, which shows the optimal values of PARAM,
using RSIM2, for different test cases and traffic levels, and TABLE
2-1, which shows similar data for RSIM1.
If we consider NET1 (for
which there is data in both tables), we can see that, for the same
range of p, the optimal PARAM shows a range of approximately one order
of magnitude, a considerable improvement over the three orders of
magnitude range displayed by the optimal qn in RSIM1.
It is also
evident from TABLE 2-2 that the optimal PARAM depends on the specific
-54Number of
Iterations
16
GRAY | DIVERGIONI GENCE
CONVERGENCE
I
15
I
14
I
\
13
\I
I
.I
11
10
12
I
8
+|I
4
7
\+
/
11
6
/
\
|I
I
I
I
I
5
I
4
I
3
2
0.142
Fig. 2.6
Convergence Performance of RSIM2 with NET1 (p = 0.375):
Number of Iterations Required for Convergence vs. PARAM.
-55-
TABLE 2-2
OPTIMAL VALUE OF PARAM, USING RSIM2, FOR DIFFERENT
TRAFFIC LOADS AND NETWORK CONDIGURATIONS
P
NET1
NET2
NET3
Value of
SCALE used
in RSIM2
Optimal
PARAM
0.1875
0.5
0.11 -
0.13
0.3750
1.0
0.10 -
0.12
0.5625
1.5
0.053
0.6113
1.63
0.026
0.3056
0.5
0.010
0.3752
0.614
0.007
0.6111
1.0
0.003
0.5882
1.0
0.05
~~~~~~~~~~~~~~
-56-
network being considered, as seen from the substantial difference in
optimal PARAM's between NET1 and NET2, for equal p's.
A final comparison between RSIM1 and RSIM2 is presented in TABLE
2-3.
Here we compare the fastest convergence rates of each scheme,
that is, the minimum number of steps required for the optimal routing
to be achieved, using NET1 and several traffic levels.
The data in
TABLE 2-3 corresponds to the number of iterations required using the
optimal n (for RSIM1) or PARAM (for RSIM2).
It can be seen from this
table that, with low network utilization factors, both strategies
perform similarly and in fact, for p = 0.5625 the single-n scheme
converges faster.
However, because of the multiple dynamic n's in
RSIM2, as the network becomes more heavily loaded (p > 0.5625), this
last scheme outperforms RSIM1 by far.
This is as should be expected,
since, under heavy traffic conditions, the individual n's in RSIM2
can take on very different values, according to the local traffic levels,
and thus are not dominated by the need for a small value at some point
in the network (as in the single-n case).
To summarize then, the multiple-n strategy developed in this subsection constitutes an overall improvement over the fixed single-n
version.
Its convergence appears to be less sensitive to the user-
specified PARAM; it displays a much narrower range in this parameter
as a function of network traffic and configuration; and finally, it
converges just as fast, or faster, than RSIM1, for the test cases
considered, particularly when the network is congested.
-57-
TABLE 2-3
COMPARISON BETWEEN RSIM1 and RSIM2:
MINIMUM NUMBER OF ITERATIONS
REQUIRED FOR CONVERGENCE (USING OPTIMAL rn OR PARAM), WITH NET1
AND DIFFERENT TRAFFIC LOADS.
P
Number of
steps, using
RSIM1
Number of
steps, using
RSIM2
0.1875
6
6
0.3750
6
5
0.5625
9
17
0.6113
>40
22
-58-
However, RSIM2 still leaves much room for improvement.
To begin
with, although the range of PARAM is considerably narrower than that
of n
in RSIM1, it still is wide enough to make the correct choice a
matter of trial-and-error, with considerable degradation in performance
resulting if the optimum value is not chosen.
At the same time, the
uncertainty associated with this selection process establishes the
need for recovery algorithms, for the case of link overflow, as discussed at the end of subsection 2.2.
One other phenomenon, observed while running simulations with
RSIM2, needs to be discussed.
For relatively large traffic levels, it
was seen that the gray region (region of convergence, with occasional
perturbations) became quite wide.
In fact, in some cases the algorithm
converged fastest in this region (i.e. the minimum of the iterations-vs.PARAM curve occurred within the gray region).
Instead of simply ig-
noring this gray region (a simple implementation would detect an increase
in DT and invoke a recovery routine which would reduce the parameter
before proceeding), one could take advantage of this effect by implementing some "intelligent" scheme which could differentiate between
this gray region and the region of divergence, and allow the optimization to proceed in the former case.
Incidentally, this phenomenon is
caused, in part, by the inaccuracies associated with the estimate of
n, as well as the dependency of the different n's on a global parameter
(PARAM).
For a high network utilization factor, as the optimum set
* is approached, one might expect congested nodes to require smaller
n's than those with lighter traffic.
The global nature of PARAM
-59-
restricts the independence between I's somewhat, and thus increases the
risk of excessive changes occurring at some point in the network.
The problems discussed above could be alleviated, to some extent,
if more accurate estimates of the optimal n could be found, while
relaxing some of the previous restrictive assumptions.
In the following
subsections, these ideas will be investigated.
Before proceeding with any new versions of the simulation program,
a property of the routing algorithm must be mentioned.
We consider
test case NET3, which is an eight-node network with a symmetric configuration, and a relatively high utilization factor (p = 0.5882).
While
smaller networks with similar p's were found to converge only after
9 or more steps (see TABLE 2-3), RSIM2 only required 2 iterations to
reach the optimum ~ set for NET3.
The reason for this lies in the
choice of input traffic requirements
the optimal set
P.
(the ri(j)'s), and the nature of
The inputs of NET3 were chosen in a way that took
advantage of the symmetry of the net, and so the initial routing
(determined by SHORTEST ROUTE) was not drastically different from the
final set ~.
A more important issue is that of the final routing: in
this case nearly every routing variable had a final value of 1.0 or
0.0, that is, there was almost no splitting of traffic at the nodes.
Simulation with several test cases has shown that the convergence
process concludes abruptly and more rapidly for cases in which there
is little or no traffic splitting, and that the process is slower
when the optimal set ~
the range 0 <
4ik(j)
contains many routing variables which lie in
< 1.
(Note that the splitting refers to traffic
of an individual commodity, not to the aggregate flow).
-60-
2.5
A Dynamic Global-n Version - RSIM3
The version discussed in the previous subsection, RSIM2, had the
desirable feature of multiple n's, which were calculated at each update
(dynamic property).
However, its performance was less than ideal, as there
still existed a dependency on a wide-ranging parameter.
This was due,
in part, to the many assumptions that were made in order to derive the
closed form expression for n.
Another problem encountered was that of
incorporating the appropriate first and second order effects into the
approximate expression for AD
T.
In this subsection we discuss a new approach to choosing
n, which
makes use of the line search concept, discussed previously, and which is
based on the fundamental equations of Section 1.
The implementation of
this approach is called RSIM3.
One of the basic assumptions underlying version RSIM2, was that the
node flows ti(j) remained unchanged at the updates.
This allowed each
node to compute its n's independently, without considering any changes
in the traffic flowing into the node.
In the strategy to be presented,
we no longer assume independence between nodes, that is, we consider the
transfer of traffic from non-optimal links to the best link, and we also
take into account any changes made upstream of a node.
This approach
requires greater consideration for the order in which the nodes- may process and transmit information, because of the interrelations which arise
between different commodities.
As will be discussed in a later section,
the problem becomes very complex if each node is to calculate its own l
-61-
(for each best link).
Therefore,
the initial attempt at applying the
new concepts, RSIM3, will make use of a single n for the entire network,
with the multiple-n case to be attempted at a later stage.
In the analysis which follows we shall be concerned with the state
of the network before and after an update.
We define fi
to be the value
of the aggregate link flow on (i,k) before an update, and let fik(n) be
the link flow after the update, as a function of the scale factor
(re-
n
call that, once the direction in which to move has been established, the
new set f, and thus the expected delay, are functions of n).
We can
therefore write an approximate expression for the total delay after an
update using the first few terms of the series expansion about the value
of n=0,
DT (n) =
T
D(fik ())
ik ik
dDT (n)
DT(O) + I'
n2
2
T
j=o
d~dR
(2.17)
2
d DT (n)
2
2
n=o
As in the previous subsection, we are now interested in finding
the n which will minimize the total delay DT(n).
We thus obtain,
by differentiation,
dDT(Tn)
n
dn
_
n=
-7 0
2DT
d'n2
T=0'
dr
DT
(2.18)
-62-
The technique applied in the line search above is known as Newton's
Method.
It provides an estimate of the minimum point of a function by
using a quadratic form to approximate the function; all that is required
is knowledge of the value of the function and its first and second derivates at a given point (in this case the function is DT(n) and we can
calculate or estimate the values of DT, D' and D'' at R = 0, that is,
T
T
before the update).
Newton's Method is described more thoroughly in
Luenberger (p. 137-139) [6].
The problem of evaluating (2.18) at each update will be treated
below.
By direct differentiation,
dDT (n)
T
i-
D=
T
dD.ik(f.ik (I))
k
drj
i,k
'
rl=0
(2.19)
dn
r=0
k * fDk
=E
i,k
k
k
where
D'k
=
ijk
ik
=dfik
ik
(TI)
dfik (r)
dT
fik
(2.20)
T=0
(2.21)
=0
Similarly,
d DT (n)
D'
d Dik (fik (n))
=
=
di
=o
=
i,k
[Dik
£
ik
22
dT=0
(f) 2 + DIk
k
ik
i
(2.22)
-63-
where
Dik
=
D"k
2ik
2(2.23)
dfik i
n=0
d f k(n)
ik
n
d2
df
ik
(2.24)
(Note that the prime and double prime refer to derivatives with respect
to n, except for Dik, where the differentiation is with respect to fik ().
All derivatives are evaluated at n=O).
Expressions for Dik and D'
k
have been presented in Eqs. (1.5) and
(2.15), so the only quantities that remain to be calculated are fVk and
f"!.
ik'
In order to proceed further, we must define some of the quantities
of interest.
Let t (j), 4ik(j),
and fik(j) be a node flow, a routing
variable, and a link flow of commodity j, respectively,
Section 1) prior to an update.
Let ti(j,n),
(as defined in
.ik(j,n),and fik(j,n)
n,
be the corresponding quantities after the update, as a function of
t1
and let ti(j),
1
j)
f'i'(j)
be their
ik (j), C'I(j),
ik
' f)k(j), and
,
k
corresponding first and second derivatives with respect to
at n=O.
We can now rewrite Eqs.
(1.1) and
n, evaluated
(1.2) to represent these
quantities after an update,
fik()
fik(j'n)ik
=
(2.25)
fik(j')
=
t i(in)-ik(iul)
i
i
(2.26)
-64-
t. j,n)
=
312.27i
r. (ji)+
f i(iJTn)
(2.27)
Differentiating (2.25)-(2.27) with respect to
f!
=
n (at n=0), we obtain
f!
f(j)
(2.28)
j)
fk = Z. ffig
ik(j)
ik
ik (
(2.29)
(2.29)
o
f;
Ak
(j) = t!(j) ·
fi' (j)
=
t'.'(j)
ik
~
o
(j) + t.(j)
1
++ 2 (
C·
ik(j)
j)(j) ·
(2.30)
(i
(2.31)
t!(j) = E f'i(j)
(2.32)
t'(j) =
(2.33)
1
ff(j)
R9
In the above equations use was made of the fact that ~ik(jT')
0
r
ik(j) and ti(j,n) In=o
= t (j).
As in the previous two versions, we rely on the assumption that
positive routing variables on non-optimal links are not reduced to zero
at the update.
This assumption is used only in calculating n, at which
time the size of the changes in routing variables is still unknown.
allows us to treat Aik(j,n), and therefore
This
Ik(j,n), as linear functions
of n (at least over the range of n being considered).
This, in turn,
means that ~" (j) = 0, a fact which was used in evaluating (2.31).
ik
however, that because the node flows t.
i(j,n) are now functions of
(we no longer assume that they remain unchanged during an updatel,
Notice
n
-65-
the link flows will no longer be linear in rn, as in RSIM2
(this can be
seen from Eq. (2.26)).
The quantities fik and fk for each link must be calculated
1 ku at
ik
each update, in order to evaluate the expression for n.
at
This computa-
tion must be performed in a distributed manner, given the nature of the
The evaluation of n proceeds in three stages.
routing algorithm.
The first stage involves the calculation of
for each outgoing link
ik(j) at each node i,
(i,k) and each destination j. Before discussing
this stage, we will introduce some additional notation.
It will some-
times be convenient to focus on the changes in the quantities of interest occurring at an update, rather than the first derivatives.
we define, for small changes
A ik(j,n) = n
Afik(n)
Afi (Jin) ;n
1
Thus
(using An=n-O=n):
ik(j)
f'
(2.34)
(2.35)
* f!(j)
(2.36)
1
Except for (2.34) these quantities are not, in general, linear in
rB. In the rest of this section we shall drop the n, included in the
parenthesis, for convenience.
The calculation of the Cik(j)'s is basically equivalent to the
update processing described in subsection 1.3, and the resulting
equations are similar to Eqs. (1.12)-(1.15) except for the assumption
-66-
that the set
4
is linear in rn, as discussed many times before.
Thus,
for each node i and destination j we have,
0; for k £ Bi(j).
for k $ B
A'ik(j) -ik
iC(j)
i( j )
(jn)
=
1
()
0;
:
aik (j)
-
k(j)
(j
t?)(j)
=
k
- QC(j);
iOk
k
.
min
(i,j)
(ij)
k
k
kmin (i,j)
i) > 0, k
=
k
(i,j)
(2.38)
min
The evaluation of (2.38) requires only the information about marginal delays and best links, which was obtained in the manner described
in subsection 1.3.
The second stage in the evaluation of n consists of calculating
fk and f"k at each node i, for each outgoing link (i,k).
ik
ik
This calcu-
lation makes use of Eqs. (2.28) and (2.29), and requires each node to
determine fk (j) and fi'(j).
These in turn are obtained using (2.30)
It can be assumed that
and (2.31).
to the update of each node i.
ik(j) and t?(j) are available prior
ik1
The quantity
i k(j) has been obtained in
the previous stage, so only t!(j) and t'. (j) need to be calculated at
These quantities are calculated using (2.32) and (2.33),
each node.
which in turn requires each node Z for which f.i(j) and f'i(j) might be
non-zero to transmit these values to node i.
This process of calculating
t'!(j) and ti' (j)at node i, then calculating flk(j) and fi(j), and
1
1
-67-
finally transmitting these last two values to the neighboring nodes, must
be carried out in a special order for each commodity (a "modified" upstream-downstream order to be discussed later).
The third and final stage requires each node to calculate Dik fik
ik ik
and [D"
(fk)
ik+
ik
+
D
ik
f" ] for each outgoing link (i,k), and then
ik
propagate these values around the network so that D' and D"
T
T
calculated (using (2.19) and (2.22)).
may be
Finally, n is obtained using
Eq. (2.18), and the routing variables are updated as in subsection 1.3.
The communication of information between nodes in this stage must proceed in a special order, for the sake of efficiency (i.e. to avoid
excessive update protocols in the network).
The distributed manner in
which stages 2 and 3 are actually performed in a network, is considered
in Section 4.
In any case, it is evident that RSIM3 requires the ex-
change of around twice the amount of updating information required in
previous versions.
This increase in network overhead traffic can be
minimized by transmitting the routing information in an efficient and
"intelligent" manner.
Despite the elegance of the preceding analysis, a closer look at
some of the derived equations reveals their inability to deal with a
special situation.
case
Specifically, if we consider Eq. (2.38) for the
ik > 0, k y k . (i,j), and in addition let t?(j) -+ 0, then we
ik
~
mirn
1
see that
'ik(j) +
x.
This situation poses no problem for the evalua-
tion of Eq. (2.30), since the second term is t?(j) · !k(j), and so
the node flow in the denominator is cancelled out.
However, if we
observe (2.31), we see that no such cancellation occurs in the second
-68-
term, which means that f
ik
This value
(j) will itself go to infinity.
is then propagated through the network, at which point the algorithm
for calculating n breaks down.
There seems to be no straightforward
method of avoiding this problem, except for ignoring the second term in
(2.31) when it blows up (i.e. using only the first term if t?(j) = 0).
However, this approach is not based on any sound argument and furthermore, it doen't handle the case of t?(j) very close to, but not quite,
zero (for which
ik(j) becomes very large).
The reason for this "flaw"
in the theory probably lies in the approximate nature of the expression
for DT(n).
It is possible that the inclusion of higher order terms
might balance out this undesirable effect, in some way.
This idea re-
quires further investigation.
In order to determine a way of handling this exceptional case,
some simulation runs were performed, using a modified version of Eq.
(2.31), which forced the second term to zero if t?(j) was zero.
For
the given test case, NET2, the t?(j) = 0 case occurred frequently; in
)
addition it was found that the sum of the terms D"-W(flk
ik
ik
links was greater than the corresponding sum of Dik
least two orders of magnitude, at each iteration.
f'
2
over all
terms by at
In other words, the
second component of Eq. (2.22) was not very significant (as long as it
remained finite), and had only a slight effect on the convergence
performance of the algorithm (the effect might be slightly greater in
a larger network).
Taking all this into consideration, the decision
was made to exclude the terms involving fiiko from the analysis.
We
can therefore rewrite the original equations to account for these
-69-
modifications, and exclude those which are no longer needed (that is,
Eqs. (2.29), (2.31), and (2.33)
) .
To summarize then, the equa-
tions which will be used in the implementation of the algorithm for
calculating n are:
D'
T
DT
n =
(2.39)
T
DT =
Di
T i,k
D=
T
Dv'
- k ik
i,k
k.=7.
fk
k
(2.40)
ik
*
(f )k2
ik
ik(j)
(2.42)
fk(j)
= t'
ik
1 (j)
t(j) =
(2.41)
(j) + t?(j)
1
·ik
' (j)
(2.43)
fi(j)
(2.44)
The arbitrary parameter c in (2.391 serves a similar purpose to
PARAM in RSIM2, that is, it helps make up for the higher order effects
which were excluded from the analysis.
Before proceeding with the simulation results of RSIM3, we will
discuss a related issue.
Consider the change in flow on link (i,k) of
commodity j, at an update.
This change is a function of
n, and,
assum-
ing rl has already been calculated, is given by
Afik
j,t
n) = Ati(j
1,rn
Pik(j
ik ,n
+ t 1Cj
· A
ikCJ.
n
(2,45)
'k
-70-
The second term in (2.45) corresponds to the change in fik(j) resulting
from the transfer of traffic from non-optimal links to the best link.
This change in effect redistributes the original node flow ti(j) among
the outgoing links.
The first term in (2.45) simply states that any
change in the traffic at node i destined for j (either positive or negative), resulting from changes in upstream link flows, must be distributed
among the outgoing links, and this distribution must make use of the updated routing variables.
Note that (2.45) is similar in structure to
Eq. (2.43), except for the use of the updated routing variable instead
of
iO (j)
ik
This does not indicate, as one might assume, that the
analysis which led to a closed-form
behavior of the algorithm.
n is unable to model the actual
The reason for this disagreement seems to
stem from the manner in which (2.45) was obtained.
There should be no
conflict if (2.45) is derived from the basic principles of operation
of the algorithm, and not simply by multiplying Eq. (2.43) by the calculated
n and then applying the definitions given in (2.34) - (2.37).
This latter method will yield an equation which still uses
ik (j).
ik
The
problem is that (2.36) and (2.37) are approximations, and so the use
of the updated ~ in (2.45) makes up for the difference between exact
and approximate values in the first term of the equation (the second
term presents no problem since (2.34) is an exact expression, given the
original assumption that Aik(j,n) is linear in
n).
In the process of computing n, just before an update, (2.34) is
used, as described previously (remember that at this point n and the
new set ~ are still unknown).
Once
n
is obtained, the update can proceed
-71-
in one of two equivalent ways: one approach is to calculate the updated
routing variables according to Eqs. (1.12) - (1.15), and then compute
the new flows using Eqs. (1.1) - (1.2); the other way is to use (2.45)
to compute the Afik's, and use these values to update the link flows
(fik(
)
= fk +
fik())
Extensive simulation runs were performed with RSIM3 to determine
the performance of this new scheme.
show
The first data, in Figure 2.7,
the number of iterations required for RSIM3 to converge to the
optimal routing, as a function of the arbitrary parameter a.
case NET1 was used, with three different utilization factors.
The test
It can
be seen that the shape of the curves is not much different from the
ones obtained using previous version; that is, the convergence is still
sensitive to a parameter
(in this case a).
However, the curves are
quite flat in the neighborhood of the optimal a, providing a greater
tolerance in the choice of the best value.
But the remarkable feature about RSIM3, which becomes evident
from Figure 2.7, is the fact that the optimal a
is virtually identical
for all three traffic levels (of course the number of steps required
increases as the network becomes congested).
Further evidence of this
desirable result is provided in TABLE 2-4, where the optimal a is listed
for several traffic levels and test cases.
For the large variety of
conditions considered in the table, the overall range of the optimal
a is approximately 0.8-1.3.
This is to be compared with the two-orders-
of-magnitude or greater range displayed by PARAM in version RSIM2, for
a comparable range of p and variety of test cases.
The optimal a shows
-72Number of
Iterations
19
/-2_-
17.
X
164
= 0.6750
-p
= 0.5625
\
15
1413'
q
12
P'
11
O
/P
= 0.3750
o
10
9,
8
+
71
42
6teratins
0.0
Fig.
0.5
2.7
0.6
Required for Convergence vs.
0.7
0.8
0.9
1.0
1.1
L2
1.3
1.4
, for different
1.5
1.6
1.7
Convergence Performance of RSIM3 with NET1: Number of
Iterations Required for Convergence vs. a, for different
Traffic Loads,
1.8
-73-
TABLE 2-4
OPTIMAL VALUE OF a, USING RSIM3, FOR DIFFERENT
TRAFFIC LOADS AND NETWORK CONFIGURATIONS
p
NET1
NET2
NET3
{
Value of
SCALE used
in RSIM3
Optimal
a
0.1875
0.5
0.6 - 1.3
0.3750
1.0
0.8 - 1.0
0.5625
1.5
0.8 - 1.1
0.6113
1.63
0.8 - 1.1
0.6750
1.8
1.0 - 1.2
0.7500
2.0
1.3
0.'3056
0.5
1.0
0.4278
0.7
0.9
0.6111
1.0
1.3
0.5882
1.0
1.3 - 1.4
-74-
a slight tendency to increase as p increases (previous parameters decreased as p grew large), but all in all it lies within the range
mentioned above for any "typical" network.
This feature, coupled with
the rather negligible degradation in performance which results from
using an a in the neighborhood of the optimum value (flatness of the
curves), imply a minimum of uncertainty in the choice of a, as well
as a guarantee that the algorithm will perform very nearly at its best
at all times.
As an added feature, we observe in TABLE 2-5 (analogous to TABLE
2-3) that RSIM3 outperforms RSIM2 (the best version up to this point)
as far as convergence rate is concerned, with the new version reaching
the minimum delay in fewer steps than RSIM2, particularly in the important high traffic range.
Note that, for low utilization factors,
all versions converge equally fast, and in fact there is a sort of lower
bound on the number of steps required for a given test case, imposed
partly by the underlying theory of the routing algorithm.
In summary then, this new approach, based on the use of a dynamic
estimate of the optimal global n, is far better than any of the previous
schemes.
Despite its reliance on a single n for the entire network,
it converges just as fast, or faster than the multiple-n version, and
is virtually independent of any arbitrary parameter.
This last property
is essential if therouting in a network is to proceed without operator
intervention or a-complicated algorithm
for determiningthe best n
Since RSIM3 is so well-behaved, there is no need to worry about
falling in the gray or divergence regions because of the wrong choice
-75-
TABLE 2.5
COMPARISON BETWEEN RSIM2 AND RSIM3: MINIMUM NUMBER OF ITERATIONS
REQUIRED FOR CONVERGENCE (USING OPTIMAL PARAM OR a), FOR DIFFERENT
TRAFFIC LOADS AND TEST CASES.
P
NET1 .!
NET2 i
Number of
Steps, Using
RSIM2
Number of
steps, using
RSIM3
0.1875
6
6
0.3750
5
5
0.5625
17
11
0.6113
22
15
0.3056
>24
17
-76-
of the arbitrary parameter, and so the issue of recovery algorithms for
link overflows or suboptimal convergence rates is no longer of importance in this implementation.
For all the advantages offered by RSIM3, there is one major drawback: it reguires a great deal more information to be exchanged between
the nodes in the network.
However, if the information is communicated
in a sensible manner, one can expect not more than twice the amount of
routing information to circle through the net.
This is not a serious
problem when dealing with quasi-static routing, since the period between
updates should be long relative to the total time required for an update.
2.6
A Refined RSIM3 : The Final Version - RSIM
In this subsection we discuss an attempt at improving the conver-
gence rate of RSIM3. Although this version is very similar to the previous one, it will try to exploit the concept of "best" and "worst" links.
Specifically,it will attempt to speed up the increase of traffic on a
best link, at an update, by routing any additional upstream traffic
along this best link, and, in case of a decrease in upstream traffic, by
applying this decrease to the worst link (the one with the greatest
delay),with the effect of speeding up the removal of traffic from this
link. This final version of the simulation program will be referred to
as RSIM.
A good starting point for the analysis is Eq. (2.45). The first
term in that equation,
ii~lilll
_11111
i··l~i~~_
·
Ati(j,n).-ik(j,n), will be modified to take into
I~~.
~ _ik
-77-
account the above ideas ; in other words, Ati(j,n) will no longer be
distributed among the outgoing links in the standard manner, but instead
it will be assigned to the best link, if it is positive, and to the worst
link, if it is negative. The second term is not changed. For positive
Ati(j,n) we can assume that the best link will be able to handle this
relatively small amount of extra traffic without overflowing (if it can't
handle it, then the non-optimal links will probably be unable to as well;
this would only occur in a saturated network). On the other hand, if
Ati (j,r)
is negative, the removal of traffic from the worst link is limi-
ted by the existing link flow. If the decrease Ati(j,r)
causes all traffic
(of a given commodity) to be removed from the worst link, then the remaining portion of this negative Ati(j,n) is allocated to the second worst
link; again, if this decrease drives the flow to zero, then the remainder
of At, (j,n) is allocated to the next worst link; and so on, until all of
Ati(j,r)
has been accounted for.
Before presenting the new expression for Afik(j,n), we will consider the calculation of n, which precedes the updating of flows. In
RSIM3 Eqs.
(2.39) - (2.44) were used for this calculation. In this new
scheme (2.43) must be modified in a way analogous to (2.45). That is, if
t!(j)
is positive it will be allocated to the best link, and if it is
negative it will be allocated to the worst link. However, at this stage
we are assuming that positive routing variables on non-optimal links are
not driven to zero at the update
(since rn is still unknown), so this will
mean that, for t!(j) negative, the worst link
be able to handle the totality of t!(j)
3.
(with a positive
4 ) will
(i.e. there is no need to worry
-78about the next worst links). The expression below is a compact representation of the modified version of (2.43)
Q
;
ik (j) = O,
4ik
(f.(j) + ai
-aik(j) + [i worse
than k
(j
fik
;
=
+
f! (j)
-(i
4ik (j)
tf(j)
.
(i,j)
$ kmin
.
k km(i,j)
min
(j)) + t!(j)]
(ij)
> 0, k 3 k
min
;
1
=k km
(ij)
mi
(2.46)
where
[x]
is defined to be the minimum of x and zero. The above expres-
sion applies for t!(j) positive or negative. For simplicity, we do not
list the case k E B.(j), for which f'k(j) is always equal to zero.
1
ik
The following is a compact representation of the change in link
flow, Af k(ji), at an update (modified version of (2.45))
(fig(j) + Af i(jn)) + At.i(jn)]
max{Afi(jn) + [
Z worse
f(
than k
=
Afik (j,n)
; k
c
mnij)
min
\
A if(jT)
+
kmin ( i
min
Ati (j,n) ; k = k
}
j)
(ij)
(2.47)
where we have defined, for k Z k
.
man
Afik(jn)
=
max[-f k(j)
(i,j),
a
j)
-'a(j),
(2.48)
-79The expression for Afik(j,n) apDlies for positive or negative Ati.(j,n)
end takes into account the situation of link flows being driven to zero.
As before, we do not list
the case k £ Bi(j), since Afik(j,n) will always
be zero.
In previous versions-of the simulation program the choice of
n was
of primary interest, and the idea was to optimize the size of the step taken
at each update.
In this approach, we are seeking to speed'up the convergence
by modifying the way in which the flows are updated, that is, by improving
the choice of direction in which to move at each iteration.
The simulation runs with RSIM indicated that there was hardly any
difference between this scheme and RSIM3.
For NET1, as well as for the
other cases with light traffic, the results were identical.
This is due
partly to the reduced size of the test cases (in a large network, with
paths several links long, the effects tend to compound and become more
obvious).
However, for NET2 and NET3, with moderate to high p's, there
were minor differences in performance.
For these cases, RSIM seemed to
converge slightly faster in the neighborhood of the optimal a, and at
approximately the same rate at the optimal a itself.
Thus the performance
of RSIM could be described by curves very similar to those for RSIM3, but
somewhat flatter in the 0.8 - 1.3 range of a.
For the minor improvement in performance of RSIM, there is a considerable increase in the length and complexity of the module UPDATE in
the program, resulting from the need to rank the links emanating from each
node according to their marginal delays, and the problem of preventing link
flows from going negative at an update (these would not be serious problems
in an actual network with a distributed implementation of the routing
algorithm).
-80-
In any case, RSIM is presented as the final version of the simulation
program because it displays the best performance, and because it represents
a starting point for further investigation into the problem of improving
the direction of movement of the algorithm.
Appendix C presents a descrip-
tion of the PL/I implementation of RSIM, and Appendix D contains a listing
of this program.
Also included in Appendix D is a listing of the UPDATE
module used in RSIM3, which may be preferred for its simplicity (this module
is the only difference between RSIM3 and RSIM).
SECTION 3
SUGGESTIONS FOR FURTHER RESEARCH
The final version of the simulation program, RSIM, made use of Newton's
Method to obtain a first order estimate of the optimal parameter R.
Before
that, the multiple-n version, RSIM2, relied on the assumed independence
between nodes
(tW(j) = 0) to calculate the n's.
The better performance
of RSIM, and its virtual independence from any arbitrary parameter indicate that the assumption of non-varying node flows is too restrictive.
A version incorporating both multiple n's and reliable first order estimates of these n's, would seem to be the next logical scheme to investigate.
However, this is not a straightforward combination of RSIM2 and
RSIM, since many new problems arise.
Specifically, the choice of a con-
venient representation of DT as a function of one or all of the
very difficult.
n's is
Also, since each node is calculating a different n for
each of its best outgoing links, the protocols necessary for the exchange
of update information become exceedingly complex, particularly since there
is no obvious order in which to proceed with this update processing.
It
is not clear whether the advantages in performance that might result
from such a scheme would outweigh the disadvantages of an appreciable
increase in overhead and update computation.
Another approach to improving the convergence performance of the
routing algorithm lies in the development of better policies for updating the set ~
(i.e., choosing a direction of movement).
An initial
heuristic technique was implemented in RSIM, which modified the basic
update equations.
However, the results
(a slight improvement over RSIM3)
suggest that more elaborate schemes are needed.
-81-
-82-
In addition to finding new ways to improve the performance of existing versions of the algorithm, the relaxation of some of the rather strict
assumptions, on which the algorithm is based, is an area which deserves
further study.
For example, to gain further insight into the behavior
of the algorithm in an actual network, the situation of non-stationary
input statistics should be simulated.
Consideration should also be given
to the problem of link and node failures.
Finally, it is possible that a more sophisticated initial routing
scheme might provide a starting point which is closer to the optimal
The present scheme,
routing (thus requiring fewer steps to converge).
SHORTEST ROUTE, simply routes traffic between two nodes along the path containing the fewest number of intermediate nodes.
The choice of a shortest
path, for the case where more than one is available, is a function of the
order in which the network configuration was setup.
There is no con-
sideration given to the capacity of the links being used in a shortest
path, nor to the problem of a link being chosen by many commodities to
be part of a shortest path, while some other link remains unused.
It seems
reasonable to assume that a more balanced traffic distribution could be
obtained initially if the routing were divided among all existing shortest
paths between a pair of nodes.
This would prevent many of the cases of
initial overflow that arose in test cases with moderate traffic levels.
SECTION 4
PRACTICAL CONSIDERATIONS
4.1
General Remarks
The distributed routing algorithm
[1] which has been simulated, lends
itself for use in store-and-forward data networks which provide alternate
paths between nodes.
A node in one of these networks might represents a
host computer or a terminal.
In most cases, there is a front-end communi-
cations processor at each node, which handles the network functions and
protocols.
The quasi-static nature of the algorithm means that it will
perform effectively if the input statistics are changing slowly and there
are only occasional link or node failures.
As discussed in Section 1, the development of the algorithm relies
The simulation program, RSIM, makes
on several simplifying assumptions.
use of most of these same assumptions (including that of stationary input
statistics).
The purpose of RSIM is to investigate and improve the perThe program does not consider many
formance of the routing algorithm.
of the practical issues that arise in a real application: the discrete
nature of messages (the algorithm works with streams of bitsl, the flow
control strategies (to prevent saturation of the network), priority
The consideration of all these issues
disciplines for the messages, etc.
would make the analysis very complicated, and probably obscure the interpretation of the simulation results.
One point which must be emphasized is the distributed nature of the
algorithm.
The routing tables at each node are updated individually,
based on information exchanged between adjacent nodes.
-83-
Therefore,
-84-
throughout the process of improving the convergence performance of the
algorithm, we have avoided any schemes requiring information at each node
which is not easily available (to avoid excessive overhead traffic).
The
matter of communicating update information between adjacent nodes is
addressed in the following subsection.
4.2
Updating Protocols
A major consideration in a distributed routing strategy is that of
transmitting the update information, needed to change the routing variables,
between nodes in the network.
In the original algorithm [1], we only re-
quired a protocol between nodes to calculate the marginal delays.
protocol is described in subsection 1.3.
This
We recall that the algorithm
maintains loop freedom, a property which simplifies the implementation
of protocols.
The only quantities which must be estimated by a node are the average
flow at the node, and on the outgoing links.
With this information, and
the equations of Section 1, the other terms can be calculated.
Kleinrock's formulas ((1.3),
Because
(1.4)) are based on many assumptions
(some
fairly restrictive), the direct estimation of delay gradients has been
investigated [7] as an alternative to Eq.
(1.3) and its derivative.
In the final versions of the simulation program, RSIM3 and RSIM,
the new technique for estimating the optimal n at each iteration requires
additional information to be passed around the network.
We are referring
to the three stages in the evaluation of Tr, introduced in subsection 2.5.
The first stage, that of calculating P!k(j)
at each node i, for each
-85-
outgoing link Ci,k) and each destination j, requires essentially the same
information that was obtained in the calculation of marginal delays described in Section 1.
We recall that the marginal delay information for
each destination j was propagated upstream from j to the rest of the netAt the same time, the blocked nodes for each node with respect to
work.
each destination were determined.
In the original algorithm the definition
of a blocked node relied on the condition of Eq. (1.16).
This actually
allows a node k which is downstream of a node i to be upstream after an
iteration; for this reason, the value of aDT/ari(j) had to be broadcast
to all neighbors (potential upstream nodes), excluding j, of course.
How-
ever, as explained in Section 2, if the value of n is changing at each
iteration, then a broader definition of a blocked node has to be used
(see P. 41).
In this case, the reversing of the upstream-downstream order
between two nodes can't occur in a single iteration, and so, the node i
must broadcast the value of aDT/3ri(j) only to those adjacent nodes which
are not downstream (a decrease in the amount of routing overhead).
The second stage of the calculation of n, we recall, requires each
node to calculate fik(j) for its outgoing links.
This requires node i
to calculate t!(j), which in turn requires each node Z for which f'i might
be non-zero (remember that second derivatives have been excluded from
the analysis)to communicate this value to i.
In order to avoid communi-
cation of f' (j) when unnecessary, we must define L(i,j), for each node
i and commodity j, to be the set of nodes £ for which fli(j) might be nonzero.
The set contains all the upstream neighbors of i, with respect to
j, since for these nodes
wo;(j)
will typically be positive (and therefore,
-86-
by (2.43), so will f'iCj)).
If node i is blocked w.r.t. j, and if
Oi(j) = 0 then i s B(Z,j), and so fi)
only upstream nodes must be considered
=
(since
i()
(those for which
= 0 unless i = k
DT/ar
(cj) > 3DT/ri
(j)
(Z,j).
Since i = k
Thus,
li (j) > 0).
= 0,
the other hand, if i is not blocked w.r.t. j, and
'(j)
= 0).
On
then
(m,j) implies that
(the algorithm only increases routing variables
from zero on links to nodes with smaller marginal delay) node i must
receive fi
(j
) from all nodes Z which have higher marginal delays.
marizing, we define L(i,j)
L(ij)=
lZ
:
Sum-
as
i is blocked w.r.t. j
either
, is an
U
pstream neighbor of i w.r.t. j or
3DT/;r (j) > 3DT/ ri(j),
Each node i can determine L'(i,j)
if i is not blocked t.r.t.
ji
for each commodity during the pro-
cess of calculating and transmitting marginal delays.
In this second stage
then,each node i, for each destination j, waits until it has received
fi
(j )
from each I C L(i,j)
calculates t!(j),
1
(j
(and uses fhi
)
=
0 for Z[L(i,j)).
It then
and finally, for each link (i,k), itcalculates fik(j)
ik
and sends it to k if i e L(k,j).
The remaining computation in stage
2 has been described in subsection 2.5.
In stage 3, each node i calculates Dk
ik
each link (i,k).
f
ik
and D
Dik
(fk) for
k
In order to compute D' and D" , each node i will sum
T
T
the above terms over the outgoing links to yield
DT (i)
= . Dik
(4.1)
-87-
D" (i)
T
D ,
Dik
(f
2I
ik
(4.21
Now all that remains is to sum these quantities over the set of nodes.
An-effective way of doing this involves the use of the existing routing
structure for some predetermined destination, say node 1.
Then, proceeding
downstream to node 1, each node i calculates:
P' = D' (i) +
T
P"
T
Z
L: i=k
P' (Z)
min
(L,l)
(4.31
T
= D" (i) +
P" (4)
~T T
R: i=k . (Z,1) T
min
and then sends these quantities to k i (i,l).
(4.4)
Finally node 1 calculates
n = -P T(1)/P"T (1); the value of nris then propagated upstream through the
net along these same paths.
The protocol outlined above requires more communication between
nodes, and takes longer than the protocol for the original algorithm
(essentially, stage 1).
However, this should not be a problem in a
quasistatic situation, since the update time is small relative to the
period between updates.
4.3
The Choice of the Optimal a
In Section 2 it was noted that RSIM (and RSIM3) displayed the
favorable property of a narrow range in the user-controlled scale factor
a,
as a function of network traffic and configuration.
It was also
observed that, excluding extreme cases of loading, the optimal a was
in the upper half of the 0.9 - 1.3 range, for large p, and in the lower
part, for lighter traffic.
In a real data network it would probably be
-88-
a reasonable rule of thumb to use a = 1.3 during the busier hours, and
a = 1.0 the rest of the time, or let each node decide between these values,
according to its average traffic statistics.
SECTION 5
CONCLUSIONS
The research performed for this thesis has dealt with the simulation and improvement of the performance of a distributed quasi-static
routing algorithm for data networks.
The algorithm was shown to converge
[1] under certain conditions, but this analysis left room for many improvements and refinements.
The algorithm, which iteratively minimizes
the total expected message delay in the network, chooses a direction
of movement, at each iteration, in which to change the routing variables,
and proceeds to make changes which are proportional to an arbitrary
parameter n.
A major portion of the investigation was concerned with
methods of choosing
algorithm.
n, so as to speed up the convergence rate of the
In Section 2 a series of successive versions of the simulation
program were discussed, and compared on the basis of convergence rate and
dependence on arbitrary parameters.
The initial version, with a single
fixed value of n, was not very practical because of the difficulty in
choosing the best n for a given configuration and input traffic requirement (the range of n was several orders of magnitude).' The need was
established, then, for an analytical approach to the choice of n.
After a few unsuccessful attempts, a scheme using multiple rn's
(one for each best link emanating from each node) was shown to behave
reasonably well, although there still remained a certain dependency on
a scale factor PARAM, which displayed a range of about two orders of
magnitude for the test cases considered.
-89-
The problem with this scheme
-90-
was that it relied on a restrictive assumption which allowed the calculations
to proceed independently at each node, but which did not represent the
true behavior of the network.
Since any further improvements on the concept of multiple it's seemed
to require a great deal of complexity in the analysis, the next attempt
was directed towards a single dynamic n scheme.
This one relied on a
sounder argument in the derivation of an expression for the estimate of
the optimal nl.
By using Newton's Method to perform a line search of
n, at each iteration, a substantial improvement in performance was obtained.
Not only did this strategy converge faster than the previous versions
(particularly for high traffic levels), but it also depended on a scale
factor, a,
which hardly varied at all, for a wide range of configurations
and traffic loads.
In fact, it was observed that for a in the range
0.8 - 1.3, near optimal performance could be obtained with almost any
"typical" network.
In the final part of Section 2, a slight modification in the manner
in which the routing variables are updated was attempted.
The results
did not indicate any great improvement, but this approa6h could be the
subject of further investigation.
At the same time that the schemes above were being developed, a
simulation program incorporating many of these strategies, plus several
useful features, was taking shape.
The final product, RSIM, represents
the implementation of the last version discussed in Section 2.
In
addition to the simulation of the algorithm, with its best heuristic
improvements, RSIM contains subroutines which provide an initial routing
variable set, and handle the case where this initial routing results in
infeasible link flows.
The program is described in Appendix C, and was
designed as an interactive tool which can be used for further research.
APPENDIX A
GLOSSARY OF NOTATION
NOTATION
DEFINITION
(i,k)
directed link from node i to node k.
L
set of links in a network.
1/1
average message length, in bits.
Xik
-
expected flow, in.messages per second, on
link (i,k).
Cik
capacity of link (i,k), in bps.
C
set of link capacities
y
total expected number of message arrivals
per second to the network
t. (j)
node flow, or total expected traffic at node
i of commodity j, in bps.
t
the set of node flows.
r.(j)
expected traffic of commodity j, in bps,
arriving at node i from outside the network.
r
the input set.
f. (j)
expected traffic of commodity j, in bps,
flowing on link (i,k).
fik
total expected traffic, or, link flow, in
bps, flowing on link (i,k).
f
the set of link flows.
-k(j)
a routing variable representing the fraction
of traffic destined for node j that will
leave node i along link (i,k).
the set of routing variables.
Tik
expected delay per message on link (i,k).
T
total expected delay per message in the
network.
-92-
-93-
DEFINITION
NOTATION
D
=
ik
ik
f
Cik fik
DT
Dik
i,k
ik
Pik
Pik = C.
= max Pik
i,k ik
P=kik
C
expected delay per unit time incurred by
messages on link (i,k).
total expected delay per unit time incurred
by messages in the network.
link utilization factor.
maximum link utilization factor.
network utilization factor.
ik
i,k
6iJl
marginal delay from node i to
destination j along link (i,k)
APPENDIX B
TEST CASES
In order to observe the behaviour of the routing simulation program,
during the development and debugging stage, a few sample networks were
designed and used to obtain output data.
These networks are relatively
small, but manage to illustrate most of the characteristics of the algorithm.
The three test cases are referred to as NET1, NET2, and NET3,
throughout this thesis.
In order to make a test case available to RSIM certain information
must be read in at the beginning of the simulation run.
Specifically,
RSIM must set up the network configuration, as explained in Appendix C,
and it must know the input set r (traffic requirements).
In the present
interactive version of RSIM the user must create a data set (of the DATA
type) containing the necessary information.
The reader is referred to
the appropriate literature on TSO (such as IBM manuals, or IPC publications at MIT) for exact details of this procedure.
RSIM has an input
file, NETWORK, which receives the data from a particular data set when
an input statement is encountered in the modules INPUT NET or INPUT TRAFFIC.
Before running the program, the user must allocate the data set, containing the test case of interest, to the input file (typical command would
be ALLOCATE FILE(NETWORK) DATA (NET1.DATA)).
If the program is con-
verted to batch form, then, by making certain modifications to the input statements, the test case data can be included at the end of the
card deck, in the standard fashion.
In any case, the format to be used for this network data must be
the one indicated below.
The description of the net consists of a list
-94-
-95-
of links and their associated capacities; each link (i,k) with capacity
Cik is specified by three numbers separated by one or more blanks: the
first number is the departing node i of the link, the second number is
the arriving (terminating) node k of the link, and the third is the link
capacity (in bps).
Remember that links are unidirectional, so both (i,k)
and (k,i) must be specified for a duplex link.
The links of the net are
typed in successive lines, and the end of the list is indicated by a
line with three zeros (separated by blanks).
The data about input traf-
fic to the net follows this configuration data.
each expected traffic requirement, r.(j),
In successive lines
is represented by three numbers,
separated by one or more blanks: the first number represents the source
node i, the second represents the destination node j for the traffic,
and the third is the value of expected input traffic (in bps).
again the list is ended with a line of three zeros.
Once
Any link not in-
cluded in the list is assumed not to exist, and any input traffic not
listed is assumed to be zero.
RSIM assigns an integer link ID to the links in the data set, and
uses this labelling scheme internally, instead of the usual (i,k) method.
The links are labelled in increasing order in a first-come-first-served
manner, so the order in which the links are specified can be of some
significance, primarily in the SHORTEST ROUTE module (discussed in
Apppendic C).
shown.
In Figures B.1, B.2, and B.3 the three test cases are
The Figures include: a diagram of the net, with links labelled
as explained above; a representation of the initial routing assignment
provided by SHORTEST ROUTE, the routing for each commodity specified
-96-
separately; the net structure and input traffic data, in the same order
as in the actual data sets; and the values of the link flows resulting
from this initial set c (Numerical data is in TABLES B-l, B-2, and B-31.
RSIM has the capability of scaling the input traffic requirements,
in order to simulate different traffic levels in the network.
At the
beginning of a run, RSIM prompts the user (with a message at the terminal) for a value for the variable SCALE.
It then multiplies the "nomi-
nal" values of the set r (given in the data set) by this scale factor,
and uses these scaled inputs in the iteration process.
After it has
completed the processing, it will prompt the user for another value
of SCALE, if he desires to recompute with another traffic level.
The
values listed in the data sets correspond to a scale factor of value
If SCALE is large enough to result in flows which exceed the
one.
capacity of one or more links, then this initial overflow situation is
handled by the scheme outlined in subsection 2.2.
In order to characterize the traffic load for a network, a figure
of merit, the network utilization factor, is defined as
(0)
p
A
i,k
(B.1)
Cik
i,k
where fik) is the initial value of link flow fik'
ik
ik
measure of the congestion in the network.
This factor is a
It cannot exceed 1, since
this would imply that the network is saturated.
We have not addressed
-this problem of severe congestion in the thesis, because it is one that
-97-
could be avoided by implementing appropriate flow control strategies
in a real network.
As noted in Section 2, an initial link flow can ex-
ceed capacity, even if the utilization factor is quite low.
This situ-
ation is handled by RSIM, by temporarily increasing the link capacities
(see subsection 2.2).
In this Case p is still computed using the initial
flows and the original capacities
(not the scaled-up capacities), since
the algorithm eventually reduces the capacities to their original values.
It should be noted that p is not the ideal figure of merit, since
its value depends on the original link flows, and ignores the fact that
these flows will be reduced (or at least their sum will) as the routing
is optimized.
However, p is a simple parameter, which is useful when
analyzing the performance of the algorithm as a function of message
traffic.
Corresponding to each value of SCALE there is a value of p,
and in fact these parameters convey similar information.
The utiliza-
tion factor, however, contains information about the relative load in
a network, whereas the value of SCALE must be coupled with the nominal
input traffic data, and knowledge of the link capacities, to convey
the same information.
-o
3_
O
4
Network Configuration (showing link ID's)
·3
4I
Initial routing assignment, as determined by SHORTEST ROUTE
for each commodity (circled destination node). Arrows cor(
) =
respond to
jjik
1.0.
Figure B.1
Sample Network NET1. Configuration and
Initial Routing Assignment.
-99-
TABLE B-1
CAPACITY AND TRAFFIC DATA.
SAMPLE NETWORK NET1.
Link
i
Capacity
k
._ _ _
_ _ _ _ __ik _
Initial
Flow
Cik
_
f
ik
Input Traffic
i
j
r (j)
1
2
10.0
2,0
1
2
2.0
2
1
10.0
3.0
1
3
2.0
2
4
10.0
5.0
2
1
3.0
4
2
10.0
5.0
2
3
2.0
3
4
10.0
5.0
2
4
3.0
4.
3
10.0
6.0
.3
.2
2.0
3
1
10.0
2.0
3
4
3.0
1
4
10.0
2.0
4
1
2.0
4
2
3.0
Network Utilization Factor
(SCALE = 1):
p = 0.3750
'XUGMUbTSSV bUTqlnod TIe-ruI
pup uoqnen6Tuuo3D
-'aN
fON
TdouE
i[eS
·0'
-MoD SMOI.I
'fano
'(spou
uoTT- uTMsSp
ASMIEaOHS Aq pau
*
Liaop
=
pUaOT
oo
se '$UeUIUBTsse
-00i-
00L
a'n6T~
-00T-
( 1o )Kp
puodsei
ea io;
l
buF;nol ITeF;uI
01
;xTpouoo
u)
-101TABLE B-2
SAMPLE NETWORK NET2.
Link
Capacity
CAPACITY AND TRAFFIC DATA.
Initial
Flow
Input Traffic
i
j
r.(j)
5.0
1
2
3.0
6.0
5.0
1
3
2.0
5
6.0
2.0
1
4
2.0
5
1
6.0
2.0
2
1
3.0
2
3
6.0
2.0
2
4
2.0
3
2
6.0
7.0
3
5
2.0
3
4
6.0
0.0
3
1
2.0
4
3
6.0
4.0
3
2
3.0
4
5
6.0
4.0
4
5
2.0
5
4
6.0
6.0
4
3
2.0
5
2
6.0
3.0
4
1
2.0
2
5
6.0
4.0
5.
2
3.0
5
3
2.0
i
k
Cik
1
2
6.0
2
1
1
Network Utilization Factor
(SCALE = 1):
p = 0.6111
-1023
20
4q
8.0
..
__0
0
7
2' ,~1°
6
Network configuration
.
'._\,
(showing link ID's)
- -------------
'
Initial routing assignment, as determined by SHORTEST ROUTE,
for each commodity (circled destination node).
Arrows correspond to ~ik
Figure B.3
j )
(
=
1.0.
Sample Network NET3. Configuration and
Initial Routing Assignment.
0
-103TABLE B-3
SAMPLE NETWORK NET3.
Link
Capacity
CAPACITY AND TRAFFIC DATA
Initial
Flow
Input Traffic
i
k
Cik
ik
1
2
10.0
6.0
1
2
3,0
2
1
10.0
3.0
1
5
3,0
1
6
10.0
8.0
1
6
2.0
6
1
10.0
6.0
2
4
3.0
1
8
5.0
4.0
2
6
3.0
8
1
5.0
4.0
3
5
3,0
2
3
10.0
3.0
3
2.
3,0
3
2
10.0
6.0
3
8
4,0
3
4
10.0
8.0
4
7
4.0
3
8
5.0
4.0
4
2
3,0
8
3
5.0
4.0
4
5
4.0
4
3
10.0
3.0
5
1
3.0
4
7
5.0
4.0
5
4
4,0
7
4
5.0
4.0
6.
7
4.0
4
5
10.0
7.0
6
2
3.0
5
4
10.0
4.0
7
8
4,0
5
6
10.0
3.0
7
6
4.0
6
5
10.0
3.0
7
4
4.0
6
7
5.0
4.0
8
1
4,0
7
6
5.0
4.0
8
3
4.0
7
8
5.0
4.0
8
7
4,0
8
7
5.0
4.0
1
8
4.0
3
4
2.0
r(j)
i
Network Utilization Factor (SCALE = 1.0): p = 0.5882
APPENDIX C
DESCRIPTION OF THE SIMULATION PROGRAM RSIM
The simulation program, RSIM, presented here is the final version in
the program development process.
It implements the concepts introduced in
subsection 2.6, as well as many of the useful features developed at earlier
stages.
The program is written in PL/I (it is assumed throughout this Appendix
that the reader is familiar with the basic elements of PL/I)
on an IBM 370/168 under T.S.O.
in Appendix D.
A listing of the final program is provided
The program is interactive, and allows the user to select
the values of the input variables.
test case he wants to run
to loadingthe program),
In particular, he or she may choose the
(this allocation, however, must take place prior
the size of the scale factor a
of iterations he wants performed, etc.
requirements
and was run
(ALPHA), the number
He may also scale the input traffic
(as discussed in Appendix B) to vary the utilization factor.
Once the specified number of iterations has been performed, RSIM will
prompt the user for any more input variables
(if he desires to run the
data again under different conditions).
RSIM consists of a main block of statements, which form the backbone
of the iteration process, and a series of subroutines, or modules
(all
internal to PRSIM), which perform various specific tasks.
The basic structural units of the network are the links and nodes.
The information about them is stored in two arrays, LINKS and NODES.
The dimensions of these arrays can be modified to accomodate larger test
-104-
-105-
cases.
The elements of LINKS are structures
(one for each link) containing
the following variables:
ID -
a label assigned to the link and used internally
(instead of the (i,k) method)
DLINKCH - a pointer to another link departing from the same
node.
ALINKCH - a pointer to another link arriving at the same node.
DLINKND - the node i for a link
(i,k)
ALINKND -
(i,k)
the node k for a link
CAPAC - the capacity Cik of the link
Flow
- the link flow f.
DPRIME - the value of Dik(fik)
The elements of NODES are also structures, which consists of the
following variables:
ID - the node number specified in the input data set
DLINKHD - a pointer to the first link in the chain of depending
links
ALINKHD - a pointer to the first link in the chain of arriving
links
For the sake of efficiency, the links at each node have been chained
together by means of pointers.
Each node i has a pointer DLINKND which
is the head of this list and points to one of the links emanating from node
i.
This link, in turn has a pointer, DLINKCH, which points to the next
departing link, and so one until the last link, whose pointer points to
NULL.
This organization is illustrated in Figure C.1.
The links entering
node i (remember, links are unidirectional), that is, those of the type
Saurq 6upob:nP
pu
'HDXNIV
uuoui OI
go
BUTurpusq
/
/-ZHINII'II
Cm[HNIfrVitHI
V
HOUNI'YI
tT
XNIl
I\N-901-
-901-
T
DNI'T
H3NI
'[I
-107-
(., i), are organized in a similar fashion, as shown in the same figure.
This notation comes in handy when it is necessary to run through the links
entering or leaving a-node and perform some computation.
Another useful feature is the based structure LINK. This is identical
to the corresponding elements of LINKS, but instead of having a fixed
location, it may be overlayed on an element of LINKS by assigning the
appropriate value to the pointer which points to link.
It is convenient
in many parts of the program to use this overlay procedure to access one
of the elements of LINKS.
In Section 2 a Macro-flow chart, describing the basic structure of
RSIM, was given.
sented.
In Figure C.2, a detailed flow diagram of RSIM is pre-
Beside some of the "boxes" are the names of the modules of RSIM
which perform the processing indicated in the box.
An explanation of
the flowchart symbols is given in Figure C.3.
To the user who is not concerned with the actual way that RSIM works,
the main interest will be in knowing how to communicate with this interactive program.
it needs.
RSIM is designed to prompt the user for any information
The order in which the prompting messages appear on the terminal
is presented in the flow diagram of Figure C.4 (the processing steps have
been left out).
Note:
all non-numeric answers to prompting messages
must be enclosed by single quotation marks, and must be in upper case.
Part of a TSO session with RSIM is shown in Figure C.5.
The value
of ETA listed at each iteration is the value used at the update, which
results in the total delay listed next to ETA.
A final remark about RSIM: because of round-off effects in the
processing at each iteration, the value of total delay may show a tendency
-108(%
)
START
E OR
/STRlTURE
rs.;:A
7t_--1 h'E~~~~~~~~
INPU)T
A
N(2
.|
'O
NET
/INFRMATIO·N
KE
/
SE1' UP NETWORKC
INP
STRUCiURE
GET LINK
FIND NODE
READ INPUT
TRAFFIC DAT
YiSS
PHI
WANT\
XO
?> TIMS
, ...
,' CONTINUE THNO_
:ATION
PRINT
PRINT
N£T
(_
IE
OUTPUT ROUTES
OUTPUT ROUTES
OU WANT
'YES'
INPUT TRAFFIC
PRNT
(ROUTING VARI
'STOP,
EC MPUTE WITH
-EW PAR
Ir01
Is
>
TIE>
O
YES
q10.0
VALUE
E/~~~~~
|
[SCATU
'NO'
NO
I
S
O
r
YES
*l
+ r
TO
YS/NT
^
SCALE
-oRECO~iUTE
NWCE
WITH
W
NEW SCALE
'
(
O
.
SET
C 4- C
mCOMPuW INITIAL
INSERIT
40, '
oEACH
|tNEXTIN
LIST OF NODES FOR
CO.ODITY.
STOPSOlT
0~~~~~~~~~~~~~~~~
SHORE
NEW
R'5EcoMUTE
[SHORTEST
n;
NEW;
COMPUTE
UPSDATE
fb;
NEW
E
COM`2f
UPAI~T
PATHS & S2ORE
NO ALTERNATE RO
INGJ.
FIND BLOX(ED NIODES;
CREATE OR!ERED
INS5RT UPSTREAM
CHECK DaWNSTREA^4
~n
IINO
4~ o . o
PFG 4- ORIGIAL
aDT/ar;
COZUPUTE D',
PROPER
CALCU
ft
r NEW
CALCULATZE
W.'f
| lMAX-FACTOR
~~~~~~~
· m~~~~~~~~~~~~x P~~~~~ ~
~~ik
FACTOR
max
--.
B 4-
max p
L
.
MAX
i
(Links
'FLOW
EXCEEDS
~~·o
YES
B >
/
\?
OiT
>,
?
+
'LINX CAPAC
HAVE BEEN
-INCREASED'
'"'~'"
|I
SE
CAPACITY'
C *-C 00(+0.5)
| FLAG C INCREASED
YNO
Pik
I
IME + TIm + 1
INC
O-
8PRIN
C (1)
PARXM
YES
TIME.
·
AX * 0
TI
VALUE
~Scc~rE
OF STEPS
TIMEMAX 4
|
(
~
~~~~~~~~~~~~~~~~~~~~~~~~---1
(1
-4I[C ,C(1o
|
f
PRINT 8,
C(t
_
I T)/
1enX
+ STEPS
1.,
_~~~~~~~
]c+ax
I
NO
|,
YES
'BACK TO
ORIGINAL
CAPACITIES'
'Figure C.2
Detail~ed Flow-Diagram of RSIM
FLAG+OCIGINAL
-109-
Processing.
Decision.
,/~
!
/~
~
Input read from
test case data sets.
User Input at terminal.
(in response to a prompting message from RSIM).
Output printed at terminal.
O
Figure C.3
Connector.
Explanation of Flow Chart Symbols
-110-
STARTHA
TESTEPS:'CQNTINUE
OF SCALE:'
OF
THIRS
T
N?
t
ER A IO
ENTER STOP,
MORE OR PHI-.`
I T
VALUE OF
SCALEE
B1~ j~
-~
- - - ( B
.INFO
'ENTER VALUEE
OF PARAM:N
STOP'
' PHI" /
STEPSPRINT
IROUTING
INFO =
FLOEVARIABLESS
ANY
V.ALUE OF
PARAM
MORE '
'DO YOU IANT T
RECOMPLUTE WITH
NEW PARAM?'
'ENTER YES OR
NO
/ '
'ENTER NUMBER
OF TIMESTEPS:'
'DO YOU WANT T
LECOMPUTE WITH
NEW SCALE?'
_
%_~
i
L
._-XOF
-"LUE OF
!
UE~
N'ENTER
YES OR
STEPS
VAIUE OF
ANSWER
UPDATE
PROCESSING
-
I
I
1
.
Figure C
/
4FlwDiNSER
\
?
t
VALUE OF
MSER
'"s'NO'
In o
rct 'wit
YSSWER - ?
<
?LOW
z
YES
1 wYE
YES,
'YES'
|
;NO
|
'ENTER VALUE
OF SCALE:'
TERATI
LOOP COMPLETED_
A
ALUE OF SCALE
Figure C.4
Flow Diagram for User Interaction with RSIM
2(1o rs
loa1
,-A - !'Tr
*
TI 'E STEPS
nOF
;.)Fr:'LAv
r757
-
"'
ju,
..
j7. .
9.
3 .?.!,2
o2
3
7
7 :
797,2
2. 7·
S3. 1 ?
.'
EiT
3.
7
3
r,.521
0,°
?'tI:
1 7
)*
)
5
r .
;j --;5
:, .
. ,3:.
'
)
5.
7
3.'L:-V )
T7
1
T:
E
-nSTEP
""
A
F '\'
'I
E'.Tr ill.ii F'
')
pl1 i h
| i. O
I
. 5.
' 7-
A
l
r)
,Ti._
T
ENTE
T
I Lr't .
r,,TOF Ai
. - If
\IALE
STEP
0
1
;T
,
ET
:T.
,
,2,.
21
1) ,;
1
5.,s. ^34?
';
2
,q'riE
~5.
,
1o
SEso
1
T.O Ss
1)
FgE(
u3, C.5
Siow
C. 5 Sapl.
Sm1 e; TSO
Figure
E(NT
A-;i
(E'TEF,!
'
2 A. I
5)l'''
Figure C.5
?
.T
DE-rLAY
5. r7857
i3. r,^J ,
(
t,
TOTAL
2.-1:2:.,~~~.,
X . .
2
,
-
T
w
r,1'n I7:
t"EES7
Sample TSO Session w±th I~SIM
-112-
to change (or increase) its least significant digit after the minimum
has been achieved.
This should not be considered a convergence problem
of-the algorithm, and the user should be able to realize that the optimum
routing has been reached.
-.113-
APPENDIX D
PL/I PROGRAM LISTING FOR RSIM
r
>r r
x>
n --i - o
:'
> x z ;x x 5
vi_ -_p
Xx
-n
wP
m
--
r
C
OO
H
r1o
X
-
NN
:
0a r
> > (/ll m jC Gn -C1 <
> mr
m rn
-n
mrn O
r=Z
* C)
'Z
Zo
r
a m n-A
4n
M
rz 2
r--
Dr
-4- m n
I
--
--in
v> (A OX
rn r
O
z
b- 4t Pw .
z-9
" Z
_"'
Z
%
>-
0
m >
X
=
i-
--
-"
Z
m
4
ZI --
Z- "
" '
C:7
C
i_
s*
-4-.II
Z
O- Z
. Z
a
N
rfV
_0
rz
"
w
O
C')
m
z
c r- r
-- -Z
N
m
o
-
*
*
c
z-o z
x
x
I m m oom
'C
'*
'<
0 -t c -- - r -*
-c .
z-.
z
*
c
*
m1
.
*
*-"
4
-
*rn
-.
O
w
*
o
-
*
*
0
z
(A
*
*
*
*
*
3*
"*
>
*
.
*
V)
*
m
*
*
-4
0
-X
*
-*
-,
o
.;
Z *
m
;*
*:
*
tC
O
*
*
*
-
a
m
rnt
* *
r: "
,
m
C
U Q
r Z
Z - Z --4
-t
0
u0(*
M
-0-
"Z-
N
>
r- r-4r-
O
p>r
m
x
Z
_4 Z
-4I
C)
00
Z.
' Z
"
N
b ;>ZZz Z- Z1
no
t--
C f;3_" COZ
.
-
X
""4 .-. "4 -.
w
z c--
-,t-
--
>
NN
z
rroo -nm
c r m OC
>
171:
0--z
c,
O ,r-o
--IX* X
,-., Z -, t
mrnz
- m
n
x>
<MX
m
m-t X
O',.~- r-,o
-rn mmo -
Z
m
-
O1
noi>-----
OXm-xxcX
0'
N
m
O
*t
*
*
-t
>
*
0*
-
*
*
*
rn
-4
(
*
*
*
*
Zn
00
x
cP
Z
0*
*
*
i
*
*
*
*
-*
* .
*
Z
*
rn
rn
*
*
**
9
*n
*
*
*
*
*
*
*
*
*
*
*
*
_Z*
(A (A (A LIOA O
(
V)
O 19 19
O N
O fs)
O O 1w
tM
O%
s
N) P 0
_
tJ1 fP
tJ
tu
r-
a
OA
N)4-44N
(A (A
OA V
A (
-4 *-4 -O P
N
N
0w iD C$
0J
0S
U1
(A) (A (A
OOOt O" N
----N
4%
-P w
W
(A
-
0.
N
r
*-~O
_
VI (A
O (A VI
OA (A
O LA (o
OO (A (A (
O
O
- o
o O o oO---oO
cs X
0C
0' 'J
_J
4 W N
Ln C1
tur
0
( (A
0- a
-
'. Ct -
s-T43 19 -(:4
(A
(
(A
-C:
C- a
O"
0"n 01N4%
w N\
6
0) <
W
a)
-
-115¢t cO Cy a
C
1C CO O\ aUE LN lN
rC Lr Lj O fPt tM
OO O LO
O OOO
n VO
OnLn
O O VI
cr (V CC)¢ in d
OO OO O
OOOO
O)
O
~
*_
b W-4
V)
,
0
U
4
_
_
h(
_
_4
-q
_- __
V In 0 V,
0
, .
Ot
V,0 0)
(,
0
0
0aC 0st 0
t cCCCe e
c£f0C
dCK CCfL o cof z
0n
, L ,O t_ W ,0, 0 rt
O On O
OOO O
O OO
4
0n
cr f:
_
0
nf r
(,.
0)v)n0 0
v0
f
M ce Co
0 0
of oCLY
OOOOOOOOOOOOOO00000 00000000
0000OO0000000000000000000000
00000O000
000
O O- C' O O U. %O C- O O 0 V- N C OOOOOOOOOOOOO
t O O OZ O OO
,z
z
---
1
'"
z.
Co
CO Z
ar
<
<
_-
U."a
c
X
O O O
O
O
_ r
*-
CU
*,
s-
.
"
Ul
"
'
cV-'^M
0--r
=
Z ' Ut
X .- "V)
I 4 u, .-J u J.<
r:
UJ SL
x-.I--,Z,'
* L
ZW
Z
-u.O
a0
n J .o
UZ C
^* Z0 -J- V)- ^ UJ 0 - O U! 0
UL
..
F-Z
ZCO
COLU oZ
Zo CZt
-J L M
C CDWYWO
0 <C)Z
cW CW
,-!4I-.-,C4_L <Z
X<
=.<.JX
a
: D C Q X .J
O X :-, '
'" ¢"
Q
Z a
a_ CQ . UJ _
> c< X E LO) tA
vz x O
Z
Z X . LWZL
-WJ< Z
_
'-4"'.
bt.
Z z
Z
r
Zt Z
. O.-'
O
c.
U!J L
X
Z.
tJ:
-:{
u
,, ; ..
,.-O
Co I
I--C.- :X IL
LLJ
CO cO -It
-LU
Q t ct! F
X x
Z
b.Ma
*
O
C L
IJ X X ·- "*,-W VL
) in
UO
-l
JW 'E
*
O:
Z.. IZ
r) L)
X CX
C
o) L;
L-- Oa
- wCo W
v:w
OCW
0 Xa
c
O
X
- <
, zNO X v
'z
Zo2'
=:z
WI X X,-, :Z O X I:
X
,-0
W- l.
Y
WlJ~: I
~t: !
r: ~d D2X :E :E X
: X :
VO u: E:)
a X o. 0 LLa LU <Z
D-J -c
a
Z---c-ZJZ
Z<<W
<z
-.J
C3 OlL<: UJ
V)
W
O X
V) tw)
:
E X
CZ:
E X
Z- O L g
;ZJ O
0- 3:c3
J 3:
_ W V - t--- u LL
J If
U- d WUJ!
X X U- V)O
<
.J
U
<z
J
U
4
N
N1 D
·-(¢
.
U
-
X:E
0C
Z
Ln,
ce <4 Z rLL
UJ-DO
Y
-13 -J
O--;Z
>
> Z Z JU U Jr 0 3
Z
_
J
0U0
_ .J .J
UUU
O e-
I-<. _Z
Cz X Q
J
U
F
¢ o s
<
0 0
JJ
<-J
M
n0
W4
_
0 n
of ce nM oc
y~Of
nc rn mm
--I
zm
> C o z
-O ,
'O T0m
C C Z
0
- I--i
Cl
.. D3*G)>
U(I
'VZ
;
aIt
'0'0r k
O
-H
0tr
--2
-
Ii
3
V 3>
C
Z>
-fl
>2
0
m
>'-4"r>
0T1
S >C-0N
;- *
-'0
m
-
-T:
1
-t
w
I. O O
o
("-
-4
- r
>
Z
rm
,
aoC
-- 4 -4
C--
-47;
0
>A ;
mi..
Z
O
r-
6'-
Z --4
- r
Z
D I
;,.
( 0-
r-
m
J
r-
0
C
-m
C
;
1
>
>
m
t
m
Z
rm
*
T1l
;
m
·
C
-4i
1
*
*
Z
*
*
-
*
*
'
-n
O
*
*
'*
*
*
*
*
*
*
*
*
nC
*
- 45
*
*
*
,
*
r
O
**
C
*
m
*
°*
o
*
i
*
*
m
~-O~
*
*
-
*
*
*
o
.
Y
*
3
*
.r'1
i
-OD>
*
*
*
~m
XI
unI<
uu
n
Z
<* D
-
-C
--
;c
;
r- r>*
m-
-cO
x C: P -m C
+
4C
lo
,'*
7
-
>
>
C
-4
M
n
-i r
-
O
m
- >
', Y
rlrII *
, -- C
- Ii
(-ti
_1
i
, m
1: 0C
ItI , t .
* Z
--- t
00*
· C
-'--v
C;
'o
C
-t
, C
C
l..if-4.-4 - 4
m!
c- Ut C
cO GI rn
--I
oCO
I
Z
*
r
s4
co,Z
v1
G)
mno o
o o m c
>, z >
0
- --j n-= rrl Z.. 0 ;a
> r ;> r.
o -tmz
or>
o
-- a O
l r0 -n ". co >> r
*
*
..
O
*
*
>
->*
-*
.11
*
*
m
-.
'
.t
-nr
>
in
O
00000000
00
O O
00000000000
O O
O
OOOOO
O0
O O0 ;O O
O
00000000000000
O O
O
oooo
O O
O0 O
*
*
-*
*
*
*
*
*
*
*
*t
*
*
*
*
*
oo0000000000oo
O
0O
O
00
000
000000000000000000000000000000
-0
3-i
0-4 -
--
0-4
00000000000000000000000
73 cZ
0 )-'0 .~
O O oo
o
w~-o O
WO
-~ ~-~
00000000000000
0O
-~-
o4sJ
ktn 4 W Nwt
0O
-
---
-64
Z ooZ o%0O o O0
ZOC O C) ov
O oW
oO
00o oo 0000000000
W -- O\
CJln
W tN9o-- 0- 10
D m
-91T-
6----- #-
oooo000000o00
O-4
o C:) O4
o O oO oo O
V4-1
-0 W N
-
O O
00000-000
O CO
0-
-
-
ooo
4 C" V1
W
-117Cy
O
4
0
-4
-4 N
Mt
-4 _- _4
-4
4
4 _4
0000C)OO0000000000000
IZ Z E LZ E:E:
a-.,' b..4
0
_
0
0
0z
b_
N
L %O f0 M (
0
v-4
4 rt-4 p_4 -1 r4
4
,4 t-4 -4 _
p-4
:
X:E
-l
-
00
t
N
-4
-4
:'Z
Z :5
::E
O .4
9 N
m
Ua
D-r
CO
M 0
m %O
s0 I-F 0 01
C
rt
M M
N n"M, Ci M
CJ ? CC
M M
N N
4
4
4 _4
4
-4 " -4 _4
p4 _4
4
4 P-4 -4
00000
:E
EM A
Z
9-- ---
b-4---
00L 0
0
M
N
4 F
0
-
0n 0
eO
0f
0
C)OOO000000
S!
E
r S E
L4
r
-4 t_
0_
0
o
0_f
4
0 : ct
n
0
0
_
u
41
-4 _4
_4
E E ::
-4
£
_4
b4
-
-4 -
-4
__
0
0
0e 0
00
J
P-4
:
4
E
-4
0n
-OO4
0
00000OOOOOO00000000oo00
0
It 4
000000000000000000000000000000000000
OOOOOOOOOOOOOOOOOOOO0000000000000000000000
000000000Q000000000
00000000000000000
0
Ne
U-.
9.'
_
Q
_
w
<:.W
D
u
9!LLJS'
x
L! .
,
·
~cL
c
W
t-..
~.
dZ
u
Z
0
Q
LL' ,-ct w
W
.
.
I-J 0
" tOJOO
'
WL<
W14
X.. F
,
.
Q
Z
wLU
0:3J
LU X
9-
-
-: W 1
!
-r- -
-
,O O LUX.-
,..- O
'- X O
W,v)
i
0
2-
-1
9
i
Q..H
v(
. U u,) X
x CL
ZD
UJ 0--
il
w--- ZLv
oZ 0.
X
LU
V-:
--! a
LI
O-
.
,j
I
.
t,.1, W..
CL
-4
Ln <
a
1.4
IL O
t
tn
' lCL0-II
W
0< :D ,,taI
:M
0
Z=
Zia
Wn
X
2DD
.O
0-
0 0
i.H
3 D)
)
L.
.,,.- n
C W ."
)W
0
-
LU
0
,,e X
0
*<
ZU
0o
HI it
W
0
11
l:
0
Ck!
S
U-.
0a '
*
1L
en
Ii
11
UC
v
..-.
Oi
LU
v
)
,.
**
)
-b4C
<
M
nL
O
U
C0
9)
.L.
U-
0
u
-L
C
_i
0-
H
Wl
0.L00 L-)'-*C0L'a
CUc
t
0
<£
X
-
J
a ,
CHL
0.OflI-
G
:U
:-l
2
M-
0.-W C
'P-L
*
0
*
*.
Lt-U
--
c.
-- Z
-
L
-
-
~Z
F--
_U
.-
-
ZU
:
0
0
UZ
--
_
'
0.X,
, X-4 LU OZ
1-
*r-
~
Ui
U
:J0
...
S:.
t:L
_
0
-.
ZO
0
+
+
>
v)
-.
LU
.I-
IL
0
4-
52
01-
9.
,/
0M
--'-
>
LU
co
I
-
-0
-U
~~L_
U.
U0-
U
-X
LU
I-C3O9
-
_"
O
It
IJ
,
-
-
*I _
_ 4W
V
V)
Ul
-
_
"
_
_
O
Q3 O
O
O
O
a Oa O
CA a c
O O
OO O
CA C
O
0O
ce
n
n
V1
15
U)
V)
C
u
b-
O
V)
O
04
0-4
0-
x
z
x
zi
I-
_
VI
V)
-
"
I..
tA
)
CA cA 0
U
CY
c (Y
CA
O
O
O
O
CO
O
00000000000000000000000000000
00000000000000000000000000000
<I:~
3:
z
I-
-t_ ^
·
,,.
F0
O
,)
_:-.--.
<
-
_ 0
<.-
C I.L
'Z
- _4~
-44
O-
zF
IL"
-9
~-.~JL
,-
0
--I
,
^ X
z
>
<0
o
UWc
! <'
Z
c_
_4
, I LL
<C
0
_
U1
Z<00
<
C
LU)<
CA <
J
U: ^ 0
Z)
Z
0
-
-
<.3
-
W V
_
0
: - cc
-- 0U
WU 0..
cC
Z0
0
I
Z'Q
__
0
0
I-
Z
l
Z- O -
W
>0
OW
0w
9.
UC
-CL.
Z- W
LV
I .V)
OJCL
-
0
O-
0
t*
-
U.
<
1
-
<
--
-I-z3
C
I
W
r-- V
L W -i--
O
U LD
*--i--
F
U_
0
QW
JU
.t>-t
0 9"
3.
>-3n _ tn uW >-,z..Z
Z
O..
<cW
a
<
Cu-
0U
1-
1
J.-
Z
O L
0< >
>>
'uII- I
t
OU.5O U0w - M-^ U,
tO
_
0C
UJZ0
V- O
Cr
C - :::(
U
Z .
co..JL--
,
ZuO,.
:
0
,
0-0-1-
*Z'
O-
3--
-
CCZ9OL
z
LW U
--0-_ * I W
W*'
LLO
cc-
W
cc
1-O-0
O
!
0-U
..- 1.
* L: W0-
W<
-
0
~ --U
-
O
.)_
Z
0W
Z
--
F0UJ_
-
.
-
0C °
<-I
W
Z
-
_J
0
--
,0-.
;!.
"
.j
*
I.
0
A
-w
M.L
wM
-0
c
'0-
0 -40 -404
0
t_4
to
SO I- W a" 0o
ICI
t t co
:K :
0
0
:
z
b
*
W.
0
0
O
:m:
_4
n
clCA c! CA
O
0
0
WN
- r0I-
3 I tO -( I
O
M: M
__
t^
VI Ln
v,
00000000000000000000000000000
04
0
2z
_C
*_4_
cA_ CA
ca
0
E:x
7
UV V)
L/I V) 0 V)
U)
cA
c 0)ca
C nct 0
:E x
: Z
M -
4 N
0o
Wa'
a O r-
M
M
ul %0 1C-
40 0-
00
0
0-40040-
-V N
C
V\ %O r-
-t
M
V1 M ,t U tr , -,
LnOn
X: x
z z:
x
N
om4c
010
% %t
O f
U'
3LUt
0
0-4
z1 z
E:
.
6,_
_
I,
Ln
V)
Ln
V)
CY CC
CA
cA- CY
CA
cN m It u0 o
0
co cO 0
I'0a0 CS
o- N
co co co co co
oo
-It MD
oC o(
t
0%a
O
wo O O0
0
77
N
0% C)C)
0n
It
a
_-4 O00,-4
-O
o
o o
_
0
N
tn-
-n
-4
-f
4
_
'
000000000000000000000000000000000000
c4
oc
-
-
-4
-
4
nn
4
-
nV
00 (
0 04 00
-
-- 4 r4
0
C4
000
000
000
000
-d
N
u1I in 0 to
V) o
0 V)
4uln 00000
N
N
Cd
tn V)
Qo n
N
N
N
N
tn to
00
s000
o
-"
%
jN
N
Vo
rtl
0 0000ul ,
V
0000000000000000000
0000000000000000000
00000000000000000000
0000000000000000000
**
*
*
*
+
*
*
*
*
*
*
*
*
*
*
*
*
*
*
0
*
*
*.
zr
0I
*
*
*
0
LU
*
*
-
*_
*
D
*
0
0
cc
*
*
-
C
_
-
.*
-*
*
*
*
*
*
*
/'
-*
z
*
* .
*
*
*
*
-
w
t-cD
U
-
*
*
*
*
S*
*
-
..
l
I
I
*_
..
I 0
I-
-
,.
w,
~~~~0*
I--A
0
*
*
~Z*
LU
*
*
WLUW
Z~
'D0
u Q
I. - W
,
t- 4
C
V
*D
*
0
UL0
J
ZQ -W
CZ
I--
I Z
J
-W.
J
* owo
*
...
C-O
IIA
A AO O ZA Z
W
QZ0-
I
9*
W'-UJ
.LL
o ZJ
0Y
IL
* XUI
11
Z
0
z
I
Q.
F
OI IW LL J
0 0 01
tC
l! Z
Z
-OZC
Z0
.
-0
t
l:
11 Z
I
I AAilWUJ
O 00Z0
'.Z
C:) Z C AJ
Z A
Z Z-iLJ-U
Z Z
Z.
C
0
Z
0
z
zzz ZZZZ
Z-
W
N
r
0
-%
-120fCO
,
O
0QO,..04 N
N
'.,
I,,
CAiN "
l
t\
CJ
" N t N rt1
_
NJ
N
N C0 0'.O
N" A N
N
N
AJ
Nt
N
It
M rN)M
N
N
N
_-
-
M
L.
m
C\JN " N
N N
O I"
CO(0 0 O
m
rn ffN
m
t
N
N e
eq
N eq
000000000000000000000000
-
$b-4
O 0 0
000
000
Ite ri1
000
C
W-O -
t
tnU
U,,O
4<. 44
J Nt N
,t
C1 A1
rJ N N
-
__- 1_
-"
6
b-
-
-
O O
4
Of
F cM a3
C' '
a o
0- CO
X4 X
-_
4 -H
_
_4
I-4 C_ (Xo G
.4 0"4 Ct
-4
-
b-
C
C_4
.
-¢
_
CO 0
N as
6as
-
t
-4
4
-
4
,-4
a
t
L
N
L
tn
I Nt
4
O 000000000
L. cr
O fC
6Lcr
4
<
(\
0o
-4Cr
-_ O "
i
M
O
N
_ NO NO O
O~ O
O:)
0000000000000000000000000000
000
000C)
N
't
000000000000
--4
0000000000000000000000000000
ru WC' ,r o
_-4 N M S
> £
c
-4-4-4
-,
N C
+
0000000000000000000000000000
0000O000000000000
000000
*.
-z
-
LU
,','LU
z
._
-Z
C
LU
CC
D
-
Id
LU
Z
zZ
.
Z
J
0
U.
__ Y
WCtZ
.
Z
I-Z
-u-
LU
J .,J
IS,iZ
w-
-00
.4
J w
-t
0-3
--l
W
<U..
I.
J
.
-J ..
Z
.. J !J
-
C'_c
0
:
0
"-.-
:.
(0
z0
z
LU.'
CCW
---
tI U
D'
--<
--
oZZ W - 1
_.:CW Z
Z
UI
Z0
U.
t
0Z
W
,
0 -OZ
O 0
-I
LZ UW
X
C
-J -CLL
._
Z
Z
:
0
OC:0 X
Z
-: _Jt-'..
-"
.-JD
,-
Z
Z
a- LuZ
J%
J
Z
..
,
-,
_=0
.
ZO0.O,
LUII
0
oL#bO=:
-:
J -4
_J 0
J11-J
LU CZ WuuW
1! O
i1 0 0Z
a
0 --.
;
I
:y
110
-0C
C-.
W
'-, 0
Z-OCOOo<0D'-'
ZW
WCC
0
0
I
WU
i
A1
N
-121l ¢
UN U,
Ln O rWCs avo
L
L,\ t L nL
000 N
OOO
5-~ F
fV
011-
N
W
_
V
tA
C- ce 0
_
I V)
_
_
V)
_
ce C/ cr-
O 0O Ot0G
X
O
0N
WV)
Ln v)
Q,-, Qct
cYC
Ce 04:
cy ln
O O0 OO -O
N 0 ¢_
N
.N
r
~-4
W h-)W
L/I V)
Z
cr, ao
4
I-- ?-
0 '0
'0
_
c
c
V)
Ln (A
c.
0
N
-
m -,t t un eO r
<
t
w
r- r- r- rC- I,
NN
--, N
O OOOO
C~ u
'I
C
Y
J.
u
n
w
L,
cC
M
v
J
N
,
0000000000O
000
O
t_
t%
.0
JOf--N ,dN
N
t]
mT
4I,
OO0
~
C-·
nd
-
r-4
W
N
u
O Coc
X
ooc
O
- co
co co co
Nt'
(c NJ
NMI
N, NN N"
N
O
c-O-4b-4
V U) "
c -
OOOOO 0 000 O
N
-4
oO
c
N
O O
N
Ln Ln
b
f.
X
U3
Ln
C"
V)
VI
v)
Ln 0
ce Oc z=
ce0r C- Of
U
0
*
0L
0
OO
H
VI 0
t oL
Q
O O0 N
N
a4O
N
000
00000000000000000
00000000
000
00000000000000000
00000000
LU
0
zn
D
.l y
c)
ZU
·
"-
3U
.
I
Z
,.
w~~~~~~~~~~Z
F
w
U
of
Z
oF~~,
I-l
.
,-
0
.
Z
-t
I
cn
1--
/%.
c,
Z
W
Cz
to
a~
L U.
Z
X
0 'LL
C:
<X
L
o
·
'
a
LA
I_
W
Z
2
b.
U-Q
c
1-I
)
*<
C
0-
-_~~~~~~
,
U') (U .L.Z
-
,--
.
'
:
;J-
z
*
.
L
0
0c
U
3L*^
I-
W
w
D}
<
V0
Z
C
U-
l
:- 0
M
UuL.
0
W
-
i-
U.
0
4U
Cs
AZ
0-
W
.·
C
A
WLC
r 0
L
FD
-
(Y-
LL
0
Z
V)W-0
**
I
0 X
0
-¢: *^
Q
J
t
c3
W0U
)^
CK O
C!
0V
LA0~~~
:
C)It
CWUU.-
W .
W
_:
WZ
)<
o
ui-
I
.-
LAA
I
001
* . U-
-
::)
, CO
a-.
LI
·
Oc
-.
WW)
z
0
Z
o
La <
o
.
UJU
.JXW
D-.
LtW
2
0
_
.
-
*W~t
ctr
OL
¢.Jef
O
U
W J- O*)0~
* LL II a
tQ< IO
2
Q
X4
,,~
ut
LL IIA
) **
W.
WWL
U)
-. Z
.~
I.U
--
Of
L~
zr
0LL
O
Z
co
0<
D (I
*
Z
b000
.
,
.
-0
7
F3 L
L,-
cc)
e
U'
F-
a!
.I 0%
C
3cr a
0
J4
.x 0
Q
O
en){/
. z :
I- z
O
<
0
w
3
F4
U
.a
::
.,
'-
J
. '.
Z
I
I
Z
3 -L
O.
L
|-
j1
QrO
0
OL
m
7
m
0
z
om
z
o
;o
-
; .*. z
O
;'
m
Z
*
"=
cO
z
r
O mI
mi
1-4
;'
0
0
>
r-
II
-4 V
or--
---
-
(O ,
C
0.
"*
Z
Az
· *
o
r
*. '
r0Z
:
_
z
11
;
-1
I
0a
I
V
r-
V J
r-t
H
C--;
Z
'E:C * rz
_
O
;z ;O
-..
-I
+
Z·
*.0
D>.11
r-
>
mr--o
"
rr >
--
Z
(-
I- V
Z
O
s1
-
+
z
I
z
>
t
* m
, ,
r -I
Z
J '11 .
t
zr 1
Crz
: --i
-- 4
0'o
r
o0
I
-- m -4 I z
mcml
;ror
o Z(.
.
r
-
-
7
m
> l
3
>i(A
;v
O
o0
-* ;
m
m O
-I
-,o
0
a
c c
I
-<
Amr
--.
~ ii m 'v C
m
-i c ---0.
-c 7;
ti
0
I o
ii
o l
m ( cl
-li
r'>
I
; o. ,
m
D -4
3 O
-
z
*c
z
O
O
0-
**r-
(A
-;
I
O
>
I m r O 1 C
cc
m
c-4
0
r- z
r' m
lrM
0 O
Z *
( Z*
* -i
!t
(AII m l
-4 c
>-4
X
-4"-HC
Z tI
z oo
0
O
<-I -
nC
-- 3
-oI
V
c
0
.>
rr
-. :
A r
o
r
M
omo
-z
> r- 0l
m O
11
I -z r
I
O Z
m
(A
3
V
rz'---I
---
0
.
H
11
- r 0
m
--
Z
r -c -ri; I
zrm
V
r
-4
ml
.ki>
"Z
0lr- -cA
O Ii
:
it
O r
>r
Z
r
I
C
C
O M
n, 10
O -t : If r- .
C G' 0''
I
o
II iO O r £V
Z
.* --Z
mi
(A
z
0
7;
0
;,
c
m
O
Ml
Z
Z
o
0
m
c
m
rn
.-
zz
0
zC)
m
r
-
o
r-
z
(l
-4
00000000000000000000000000000000000
0000000000000000000000000000000000000
000000000000000000000000000000000000
000000000000000000000000000000000000
O -O
o
O
O o o0 o
o- O O000000000000000000000000000000000000
A
a,-
W
o)
1-4 O"
o4Ooooo
(Avo (A(A
a- (
"-4
0-4
w, fw w
"
(
w4
o(AIn
0 4 O
w
N
O
rOO
O O o
O-4o'JI
(A
A(A(A
n w r (A
oo (
o1 tn (An
-IV) X N
s (A O
wn
-v" (
cn 0(
Vp
%n
.
s o(Al
0nV.(A
0 (A
0 0iUV)(A
V"
-4
" 0w t
1w
..,
w
w
w
w w
w
w w
w
0
O
OOo
C
c
oro'
O
(A
Ln, -(A. , WVA
I L"
w - I. (A
N C
ac LA,
W
w (A J~O4m<oi
34P" 0. w.
-4 b.*1 Dsk
f- q
OC.#
N)C0N
ooooco
J
w rO
N)
N N
OOOOC 0
)1N) h
N
OO
N N N) N N
n>u rHo£bsbuw
-123-
U'% %Or-
N N
n
aW
N
mn r
--
O-
,,,,0
N
M
m M
O en
m
%iUn
10 rC
O n
Cm
m n
MF
0
oN
n '
'
M
_ 4
4
ci, C,.
. Ci f- C-i, i,.,
. c,..
i
_4C
_
i..
.' t'"
£
:E: Z
CO
'
On On
,,
£
:E:
r, c
X:
4 N
oWCo
,t
r'
M
,rt i.,
u"
e
00CCO
co i::
ce
f 0
000000000000000000000
t
l.
n eln
7£
:
,.
tM so
U, u '..
er
Z
X
W0
U..
O
_- _
," _-,- Y
f, C-,,.
., cO. mcO
tn Uo %O
-. -,
m mOn
n eOm'
O o"
n ' (.,. "c
m n
00O
00000000000000000000000000000
X:
M:
2
Z
£
X:
M:
E: 2
5 :X
£
:F:
OO
2£
-
o P
oa
N
U.
--J
I.
_4
Z
-4
U._
X
"r
0
_-it
o oo
o
C3O Ou'
cZW
o.-.
_J >-
,-.
-J "Z0<O
.0
I4
.- Z
C3'*
e..
UL
10
X
_
o9
C-WwiZ
0,
C-
f,:J
_J J - "
., 0
. tM,.)
W Zrc
--o
C4
U
C
0Z0
.CU
- U
,v..-J
LiJ Z .-J -J
aC - c V) I-
,-.
cO
0)
U
C:L
C
I
O
-
O
O
-
t:
- --
if -: Z
-e
0
x
,-J
-
..-
i-
Z
'
wu·I
>
'
11-· CIZ
x
0
x
<
*
.
CC
C
D
.-
I)
Io..
X
.._ J
0
'
X
I.--
.
OfL
<X-
*
L
CCU-
z'
a
~I
etg,)
I
.._
.I
O
C
LU
..0.
A
A
I----
V)
Lt.. .
LUl,
O
C
X
Jt
:;:
Or 0., 0., ,, 0,,,f
0
-
:
:E
VE
:
Z
00000000
00000000
O
O O O O O OO
O O O
t,"
m m m
O
00000000
0000000000000
00000
0 0000000000000000000
C3:O O
a O0 O O a O O O O O O
O UJ
ZWf
L-J :
.OCc2
, C0
0o
L.
, 'n .
-
%0
n
..
CCYlO
:E
-4
>0
m
z
;X
o
o rMn
0 z
7 CCo )O
0XC
O-r
r
' *Y' C Z
II
r C
tr-
-01
-c)r
'
-i
I
-I
0
0
r
>
0
~'>
r-,
>
0
-0
,-
I
C:C
0
o
rn
mrm
u,
- r. Ii
-z ,
C)
rm
m
z
C
Z
0
C
0
C
>
z
l
--
7.
*
i
--
-c
C
(
X
m
o
r'
,-'
,
0
nZ
X,,
*
Z
.>
n ii
3
m
a
>
0
(lI
r-
C
+>
;0
m
r-C)
C
--
-4
p
iD
Z
ro
>
mM
Z
--i
C
I:
C
Z
·
--t
C:
'3
Z
'A
-
--4
r!
n
-.
0
>
(A
r
0
-4
I
S
m
m
m
,
-
C
A
->
D Z --
C)
--4
C-
>
'-4
. I-"C~'1
-',
;ZZ m
0 0>
i
fl D Z
Z
Z
4.
-
"r r-
X
-
,
0
LA
CC)O
-
O O m
C) 3Ir-
·
rn
1
t> 3
-n1
>
rn
rm
^
V) "
--
?
;:c
0
H
C
O
tl
-m
>
0-
C
0
-,
ZC')
O C
: r
=
-0
-v'
. ..
_r
m3
rl
n-111
*
.
'-n H o 1
C O*
;r-
C
0
:7
0
C-
II-03
'
r'
C~OX
caox
.4
m
X
'e
)
C
0>
; o
7OC
n
: r
m C*
1 1
*
* Z
'
2c;
m-
--
ri l
m
o
-4
*o
3 III
-
C'O
O
,
-4 -C: 0 (A
o
C, C
;:0
C
:
-'
4.
"*
-> CC
I
X J Z m m m01
--I
Z- - 1
r1
Zco0
m
o r- Cn
SIr:x'
. -·
(70
0
I
MC r':
00
**
*-
C)
c-C:
0 i-.
-v
.*
c0
oco
:mz
rI-
(
-
,. --
3O
--- ur -
_
m O
o
--
im
o
1---
C
It r-
-- 0
*
4
II
I
I
--4o
oC)
-:
Z
-.; I
txm
C:: H O
I1
i
rm
X
O
CC:C
f1
1II II r
-41
.
I -4
o00.0
c
z roc,3)
o
--
>
0
=I40<
0*
C)
-<
_s
m
m >'-'
Z
m
_
,'
tUn 4.
r
N, N N
w
'
0000000000
-
_ -,
F
oO
"0
0n
-
o O 4
__4
'Ak-I
.--,
0-4
%O cc
n0
0000000000
oooooooooooooooo
( L.
00
OO
00
00
0000000000
O OO O OO
00O
0000000000
0000000000
C0 00000Q00(000000
000000000
0 00000
0000000000000000
0000000000000000
A 'A 0(A
--
-I
A
,(n.t-
4
0A
NA 0
-
-
-
_
)
0
-
-4
-
_--
00
'.
Ln
tL
A - 0
(A
, 'A/0
-_
-
-4
-
-
O
O
00000000000000000000000000000000000
OO
OOOOOOO
0~~~0~~
W
OOOOOOOOOOO
0
4~~~JrZL~
L'
A0
A
-
O
/C
-125-
M 01
;
O,0.OO
O,
o N
O
M
O(D
to Vn
F
O O
O O
LOO
r
O O
in %o rM
~-4-4 ~-4 -4
01 o -4
eN
M
~-4
-4
O r-4-4
-c
(F1 0
N
CV N
C)C OO OCO
C
OOO
uO
_"
I"N
Cy,
L
OOOO
M
N
L
N
CO
\0 a c
M
-_ N
M MY
OC
QL.
CA
O
000000000000000
00000
O,
m It m ' f- c 0' 0- 4 N M ' - L1 '0 r- M
L- U.
It-t
S-- s%
r %t
t) V
t1e. ..
lidn m m m n m
n !n m C1n m fn
m m
00000000000000
o rt- om'
a o *-4 e m .- w %O re- oa 0
c·
N N N N m
eO m m m m m mt
m m
m C
m nIm
en
-4
_0
-. \
m
+
i:
W
O-·
Z
·
W
·
U-C
0
0
;
0
,
Z
I;;
W
o
w
)i itt
V
C
0a c ZZ
-C-w
.
Z
-J
!-
O
-C)
V1- W
< LULU WV) O
-J
>W C D
UZ
I
. -F
c
CL.F- 0
3-0
I
0
0
X
c
I-Z
0
- Wt ;)
,
r:
!4
1
-j
UtIWU
' S-O
Cr
Z
IJ 3x
Z I O
-0J1
x
CL
0
0
ZZ
0
I:
M
-
Z
.
4
! v-
X
'.J
*C C
OW-0
^e
Lu0
ZZ-I
II cK
-
J
n
---
c!
C
1
3
0.4J
*"-
I
113
z
tn
x
C -4
I
.
0C
0
LUJ
Z
-
-
r it
L-Z
C
IJ0
ur
C *
0OW
a
0W
CeWA uJ I
X
Z
zO
0
Ci
0
-e- Z-
L.)
c -WU Y- c
t e. _
.
o
3LOaL
0
0
0 Z--3 -0
WLO
OO
LU
Q
+ IW
10
0
I-i- LJV
-O
0
M
a
c:
'
FA
U
* II A -
J'
1 0
.
-j
110
AA-A1I .J I J
J A -J A
I 0 1
II-
L zZC
Z
D
14j Z-
*Z*
r- Jz-z
Z
Z
--*
DZ J 4
0
Zz
A
.4
!r
9C
*
*
;
:: Y- J
Z-
be
Z
u w'
0 O
0
_
:
* it
-- LO
l--
LU
tZ
-
,-. O
Z .-J
*.
:
Z
cW
-
-
113
- Ull; II UJ
WC
Z I
2
UJ Z
z
D O0
i
J9 l- W
co > 0 c
J
t- tD
.. ) C Q
0)
U- LL Q
0
Z 3-C
Z'-490n
!1-.
0)
~
-'
I-^ Z L)
:
0
0Z:
:
<1
Iz LLJ LU
LU
01-e
--
995-c"
U:
ii
.
A - 0
n
0
Z
f'a
0
Or
*{: -0
W
L-JLL
*'O
Oa
,T-.
AJ-
_,'-'IZI Z:C
W
_C
Q
· F
'jaZ
IJtl~
C
LL O cM
0
-LU>OL)UJ
C
lCl-'0a
I
J
:X-
if
a
:. ^
0
I
LU
a 10
WUJ
I- LU
c0
£
ZW W U-L
W
-126h- C 0'7
4c '0
r'M'
M
flM
M
¢5 ·j·
4¢
M
Cn
0
-
N
-4-
t
,t s t
0M
U -1
LU 0 rl- c
-t
t
-t
r jt
+t~ ¢t ·;t
I
t
M CZ 0e
W- C
c
Q 0
0K
X C : Of Q
n
r,
L V
U ! tQ
% + %t -f
It
jNt -
M 4
-4 N
Cl" 0
r
-
-
ODCN 0O
Ln '0ttn LP
uN
J .41 14,
t
Ce
O O
HY rc
1
.4
-t
t
OOO
OOOOOOO
M
C MCO
M CC
cY
*D Z
%D
e
1
0C
'O I-
-0
O
It -It It
¢ It
4- Nt
r
O
Y
4 4N M -
Ul %O O "O
UN u\
O C)
O O OOOOOOOO4O
O OOOOCO
W
M 4
000000000000000000000000000000000000
0
O OI O) O1 O
C QO O
O C
O O O 0
O O LO
OI LI
000000000000000000000000000000000000
000000000000000000000000000000000000
OOOOOOOOOOOOOOOOOOOO0000000000000000
OO
% "O O
aO
O
OD
Q
O
O
O
O
O =
W
O
O
O
W
W
O W
O
O
00
O
OIO
O/COI
O LI
OO
O
O
O/)
a,
OC7
Z
0
z
k-
p_
~
,~
l-
_
-
,-
L
09- ili
Z
.CO
J
35
I
1
] 2··F
C:
ll
..
Z
) -.
:~'
~
a*O L
A
,-40
-.
0
z
O
aa
II O
-.,
0--1:U
0 WO Z.J[S~
a J CC.J
s .
Z3aZ 0 :t11 (0.
J I1
.
0a )3 eCLJ
'"
.D-. Z .. JJ
II
I.
)
-
01 0
C1
!)
UJ
-
:0Z Z
Z Z.
C;
... ,J 0
,
0
u9
O
0: O . aO
03 .
U--)
WC00]{)cZ>L)0u00
-
0
:E
-
!-D-'
-HO
t
tl
co
0 -'
E) A
L.
CWC
<
V)
D
- +
'
+Z
Lu*
HZ
r
-0
4/
I
H
W
Y
uJ
11)W
W4/)
L Ou- 1
c"
LZ
O
I,
0
C1
UJ
0
J
LL V")
I-t
0
, .L
·
L (:
~I.J O 0,
0
. tW W
D
i
+n '..J
11--Lu
-L
3
w
,,!ez.
-'
U
0
,.tLu
LUJ
.9
O
Z
·.
-
.
**-c.
0,' I.,t II
(
W
C..I-
2) Co
0
b
)
I-+
Z
.,
p
0
*-
-Z
II
LI-
:
-W
I --
0
LU
012
L..
!: O- -
,
Z
Z*-.
Z C_ Zn
UJ
0
0
*.
LUZ
0
..
00
H
:I :
Z
Z
WL
Z
LU
-127-
C'
9
t
-
N
>
a>
4
%O
P
%O P- I-
PW r-
I,-- I-
r-
r-e-r-
_r
-,+
st
It¢ 4
N·
-t
It
X
r
Z
LA tn
t
It
t
E E Z
Z
v (In 0t' L 0 L
.m 0Ln
C_ cr fce c0
CZ ae cr- 0
n
N M
o
-¢
U
un £
r
-
-It
% %t %t
I>-;'
ZE
vA (A
t
.-. "r - -t
%t
:E
: E
LuArtn
L
0CA LA L
>
t 't
't
E
0
Cs aa
4
t
X
LA0 L
C,
cr
c,
ff
N
o
Nt
-
Ln
tn
:
-:
Z
Z
X
LA 0
(,
LA 0
0
(/L
l:C
cl
a:
4
t
Z
s
Z
Z
C,
cp
't
f- ct: C Of
ok
o
o
t
LA Ln 0
t
{Y-
DC
C
Ln
0
N
"
C
2: IZ
cK
IV CK 0f r
0Y af a
c::
rv af CY-,
W 0O-0
a o
cc
03
co co co co co c co
rco
0Y 0Q
tY:
o
o
UN
Z
000000000000000000000000000000000
cO C0 o
C' 0o
0
o
o
O0t00O0 0
m0
0
C: O
o
o
o
O
o
0
0
0
0
O- O
o
o
0
0
C)
o
O
_I _
0
0 00
O
CO
_r-4
tOOOLO
_ _-
0
_4
C
0
ci
-O
CO
O O
_ _4 -j N C4 N
00 0
0
0
LOO C- O ) as O
JN C\j N N Cq Cn
0
mO '
N
0
0
0
0
0
O
O a00
0 O
000000000000000000000000000000000
CA
V)
LU
U
0
c.
r
0
-,
-U I--
o
.JeJ
0-Z.
·
Z
z
Z
::
0
*9
C.-!
O0
a
0I A
*
t,-*
.- _0-. - I Z:>
W
I
OD-' -:,
2Z
U.
02
of
t ZZ
Q
O
C0
O. UL
)(
<LL
l, Z
..CI- '
-'J- --
Z .J
J
*
Z)
.
I-t--
Z
Li 5
2
4 Z1
*II.J
i-:I
'-I
C- .JJ IIZ " 2
.4
->~
::A
I_-JZ
Fcy J
CUA0
C J :t:
0 -..
II
3
O
2:
U
II
.*'Z.-
0
0'*^
'"
0C* *O
L~aO-UW
Q
>-
.
,
.-
WI
Y
.Z
C
.
Li
_
2c
.-.
-I
t
...
J
<
z
LX
I-
LC
.Jt.,^
-J
.
I
<
* l)>0
O
I
U A
.z
a
Z2 :"*^
W a
Z
J
I
Lu
O Z
C0 Q.
: D
~d-
-'t
_
_
J
- Z A
Z
JrA
u Z...
-.
4 *-? y DeJ
-tZ:
Z w
w-
LA'
CA--
J
DW'U-
J
3
c .o .
0.O:0
02:
o-4Z1
-
Ie
J
)O
¢
0
It
3
:0
.
Li
CKL./
**DIE
O
-40
a
-2
I
I
_J
-
II
cCzi
= 3:
U*
-
- E)
C
3:ILU
- 2:01-W
Z
:
I-Q
Zat _1
-X
CA
Li
aI
<
0
** Z
W .41
; q 'Y
L
Z
.4
0 1
ZWL
O40
U2
2J
Li------------------
o
Lr
:
Le)
-128O- 0
W
' c,
,n
0
6' uL u9 0')0
N
a o.
,/
' fu WO
N
,0 /)n
-
0- _
"
-
.-
W
tI
e
LA
Ln a'.0 TM-4
e"
"t
U-
(InA o
'A Lt
N
s4
fr
-4
b--4
(
00
V,,
4 LA
_- b.
'
f'
"
-
(0 0
i
0
Vn
0 0
0,00
ur
0
N !
-
-'
-
-
4 _ 4
0-
0(A
n 0
LA
-
0
0'
3 tc
n
in I\n inJ.
_-
.4
U
LA
-
W_
-
n, 0 vo
L
0
V
o
0' 09
u
09
'
t,
N C t tt
N
" NN. N
N N
N 1I N
_4
_. ti4
O -4 _ -4 4 _O
O O
U U\n
in
in
in ui n UVin
ic A UN
tn L LAln LniA Un A L u'\ Ln
n AU LAn LA\
LA A LA L LA
OOOOOOO00
OOOOO
OOOOOOOO
OOOOOOOOOOOOOO
P1
M
N
4 t-
a
0
OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO00000000
000000000000000000000000000000000000
oooooooooooooooooooooooooooooooooooo
Vr.
ct
-
0
0
o
o
00
C-
Z
40
J.
.J
UX
,.-
0*
LL
U
~
LLJ
z
-
X
.--
LL.
WLU
.
'
Z
-
II
Z
Lt
-ID D:) I
a. 0 IC*
Z
L
U 0-L U. F0
C:
D-
Z
W
LU
I
3
-'
,- *,'
: -4
LU
J.4+
-J
J* +
LU
.r
cc
W
3
Ow Z
UW If
(0D
-
,W
UJ
I-
I
-.-
oDZD
-
-
-
-I'
"
U1
·
8
vx
a
0 a-h FZD
2
D
'Z)--.t ZUJ
_"'"
W *
F0
LlJ
O LL
D-40.
c 0
.*
Ca
C
LU
-
4
-
a
-
1
0
a
·X
--
U
.·+ <.*CO
X
I
J UD D
*. ,- U.L
z0.LC
aDcoz
FL
-UU
A
W
wII 'o
r>
nL
C- U :O
I
D"-OH
OZ!
ID
"
<
__!J . ,- LL CDO
L3
zZm LS1
0 0C( ~+0.. ..a:3J
A -'U
.
i
Zco
· ce X
I :D D
ZO Oi
0·
-4
*
O
0 II
*'
..
t-.C)LL D UJ
C
- u
LL
H--" t.L
f-) U
HDI-Z
i-J.--D'.
I
*0... V
C.. JII
co
LD
D
LL.C0DLL
Z cO
DLLO
UU0
ca
O
C) OOX
Vx
UV
L U'4'4
: )-"""O
w
.z
LI
Z
Z
o.
a
,U
OZ
*
,
_'"
.L
CY,
z
CL
c
cz
9_*
C
0
if
H
V
ZW
6-
T
H
liD
0K
zO
Z
Z
w
W
,
oC
_~
H
oc
Z
-
LU
>.c a
,V)
O
..C,-
J
OD'-< Hc c4
0
L C0
c
.
U
3:
.
OL
11 O
C: Z
V)
u
'-4U.
I/)
O
0
+
-
-C0.
_
-0U
yO
0
11
+
-
Zoo
L
s4
+
i
H
'*
-J
-129--4 N M
Nt 3
ms U,% n
% U
t
n m
,O r4$s
ui% n
cW
Nt
a0 o
0
n
It
mn
2:
:
z
Ln VI ti
:
E
tolLI VI LI VI Ln LI 0
cr C;CE ct C0 n
Cnr c-
00000
t-
c
4
U
¢
- %O
W C0 0
-O N ^
cn %O 'O
sD 'D 'O
Ln
> UO 'O
£ %O
e %O %O
us nLLn
kn 41
Vn UIs i
un O
m Un >
u
Lun
um
0OOOoO
OOOOOoOOOOOOOO
£
_ N M
Ln
uv
0
us L>
ut-un
r
VI Ln
l,
L(
tZeCK Q
ce
oooooooo
ooooo0ooooo
z £:;: Z
5
£
tA V)
L0
crn
Ot
_
N
tn>o
%O 'O r
Ln UN us i-m Ln LN uM
N m
:
l/) Ln
l
:E::
V) Ln Ln
I
C0 fL : Cnr cn o Cr K
oC:
VI
m
0
Ct
(
n
O000000
OO 000000
t
Ul\
0
OOO
O
000000
Ir
0co
£ :
z x M:
tL I LI
")
) 0
Cf nL
cX o
eocr c
0000000000000000000o
C
::
CnL
c o
0
OOOOOO
a,
)N
o -It
_? 9
fC
)
a
#
-
N
s S0tOU
1
Ct-c CO
O O
OO0
O O O
OO0O
000
OOO
0) 000O
O O O O C
O
OO
O O O
O OO
O
OOO
00000000000000000000000000
Z
0
WI
J 2~
co
0
UZ I-
t
:>
LLI
.,-Z
U
LJj
D
"
-
:E0
LU -n
--
.-
-,
ZZn o
c:
lI
·I
U.
-.
t
Z
CLZ
U
%* .
'
wCKOL
a0**
CLILV)
Z
UJ0 X
CL
D
Z
_
0 S-
LL. .
0
ItXIt
IL:
L-
r
L
J-
v(
ui
0
C
z
LU
-. JL
D
s
.
C*0
Q
0U
0
0
0
tLJ
J
I
C
O
r
O.
I
,
.a
o
0.
Z"
.-
-
If tY- ZI
to,
Io.
'00
I It
=*
)=c
) ,,
Z
OW
ozi
f
--L-
LJ
.-40z-
it
O LI
C
01-rLL It
- IO
*
0
SW
-
!
-0
t7
0
J<
u.
tn - Z<*
t -i -4-
L
s
x
Z
L
' 4
O,..>J<-
z
.
+
-- 0
Z ,--.
t-t
:
.
0
_
Z
CV
V Z ,I,-- ..
Z
-
0
- --
..
O d:
X a
b
<
0
O-
1"4*
a
I Or
_J - Z
'LLJ
:DCW,,.-
0
0wi
oC
W
..0
IL*
-O
O
L
0O LL
0O
1
0·
O
1
CL
I
J
Z
* *: f
O
O
ti*l cc-<0
Or
<
J
WLO
O- Z
J
O
Ief
I
S
X
11
-
Z 0C : <
LUt L. X
3z
I
:)x
J
-130-
F-
M
0(7N
r-
N
t
M
I
O
in
lSLA
Lin
L\ L L
000000000000000000000000000000000000
0 0
C' 0
Ln
LA
4
?__
00
00
N
04 F
- t L %.
Ln L
LI
a0 000
LAn L
L
c
Ln L A
%O
fl) -t¢
N
4
CO Ge 0
M
rn
a, 0O
O
M
n
_ -
O
o
o,0o
o oo
aa ,
c, cr, C-o,
CT,. OcC ,, ,
0 % '0 '0 0 '0 %. 0 '.0 '.
U
Ln m A L\S oL
ULA LAL
.Ltn 1A
o
_-
_4
-
-4
_
I--
b4
%-4
0
00
0
LA '. r
N A%
0 0 0
C 0 c-
m LA LA LAnL
Un
LA L
0
0 0
CO
00
0
0o-
L uL
N
O
Ln
L
A LA
LI L
6-_
6-O
4 _
.-
I-
4-
_
0 '.
0
-s6
_ 6
(A (
(A (A (A tn 0
0 0 0 0
0 00
0' O0 -a N r
fC
0
'.
0
t
.
LA
UL
LA
f m LAL m n
0
¢
Ln Ln
uL
O
a
OOO
O O O O O
O
0 0 O0 O0 O0 O0 O0 0 0 0
O
0000000O O
OO
a O O O a C C O O O O O C O O O C C O OOO O O O O
000OOOOOOOOOOOOOOOOOOO
I-
n (A VA (A (A VI (l
f VA V) (A (.A (A fA (A VA
VA (A
VI (
(AVI VA) (" (A (A V)
I (AV)
'I
4
,
-4
C-.
o
W01o0
IC
OOco,
cco
4
cO
O co
O
O
U Ln
ul LA Ln L%
0~_r
OOO
000OOOOOOOOOOOOOOOO
LUL
z
A
I
Z
Z
UJ
V
Z
0
.
0j
A
.
Z-
U!
Z
'"Z-J .,._
Z _
I
-i
J4
J
-
Ai
IWJ'- -
*1 tH: U
_ a
~ O
..-
C
Q0 0C:
.)
40
r
Z
ZL
-
r
iO a I^* -.
- 0ZJA
X
Z *Or a
----
-
aOO
-
oO
* e
3 J
Zf
Z
O
U0
0
:E
Z
6-
I
°"
.
0t
AO
0X
(/
6
O
H
0: Z !t
co
Z II!- 0
aI/13
A r-/
I0 .r . C-
*^
-
b-DZ
--
E~
U- C-
..1tJO
'-
0
A
-
$.-H
!.-'_-0 "II
1.*4'
Z
Z
II Z0
Ii 0.4.4J ,,
I*
0 V,
,
£/- 5 -o
0 c0
J a')
O
..
Z.- r ZZ 0-Jau
l1
0,0
a
-I
0
-
Z
X
AZ
Z
u
*
- .Z
!Z W-A'
·. Z_44V
Cw
V)
EC
-
a0I
1z
1r
),' It0
o
X-AJ0 0
01 :
t:3+0
:
0A
Iz
(A
-U
r
I
O.
O
21
t
-I
HZ
_
11
·
.W
I
.41
t!.Y Z 11
". Z!X
.Z
Z_
_J
U
J
0 _
-
:A C
A
Z0 a-%_
* '*" OW.a.
W-W
Z
l
J
C:
-* ! AZ
Uj O50. 0(
tt IJ,
U O
:
/
0
_
C
c~
C .
u
0 0
Qa : :
O :D; 2? u D
UJ
FA
.4
O0
d
C3
.
.
CJ
J
a
-131-
M
LA
m o t
o 0 0
M It
4 LA '. N
0O
0o-4 -4
-4 t-4 -_ -4 -4 -4 -4 N N N N N N N N N N M
M
o0 o u0
o 000
o ,:
CO
00 O
C) 00
o
o
C:)
o
M -It
Ot
m O
0*
"
NOt M
Ot4Ot
O4- 4O
00
un
On It%O t-
Ce
O
Co
O
·O -Jt
On O M
C)
0
0r 00000000000000
C
it ,
O P4
LC\
O
4 i- %O
l %O
0 'O
C%C
O
%O 0 N Cr%
0 %O
%OC
%O
O-
uOO n O n OO
I
0
.J100. - LL
C:0 *+
_1vI,
:t
C-J
,-I
a-L
O
4-.
cl
L
J
-a
Ht .4
*
J
,-_I J.-1
DJ
'- U,
.
14
4
J
'
.O
1
A Ot3A
-J,
U I
V"
<
-:E
O---Z,
WUWu
. 4:XO
-' '-Z
I
LLL
W.
II
:Z
J- ! ·
-.
9-
Y
-L .4
*
D'
* UZ C
-
-0C0.
-.
C+0
0
'#
*
/'-
I
*·Z2-Z
1J W-''I
I-A
->'
ZJ
tZ
WO
U
Z0
J --*- LU
OO
:E-J
_
ZU.I-L
LU'-r
ZJ
O
I
lL
JII
O
0
J
J L ,.
00" IZ
LW Z
=E
r
Z
DO
w
I
(
ii
I
Q
Z :~
:
I¢' :. .
i
11 03
L
·
*
ZL.
a-.
.
V
'
J.
.J
.0o
I--
t
I-- I
.*
I
ItII
I-II
0 <
'/)l
*
I
JO
I,/
O:LU
Z
i-- Z
.
W
Z
'"
LL: a 0.,
-0 Z
c
<
.. /
-"
* *:
lII
Z
O.
-L
r +-,
*
·
Q
Z
.J
o
L0 * J
'-A
* .
0
-
C-:
.
1'c
I--L
m
<
ItW
0
-
c. ·
+
A
-It
I-I--
0u)
I-
:A
-J
0
LU I
II u.
V
I
9
*
ZLl
-'
N
AW LUIIo
-
0cc:
V)
I--v
-
I C)
-
0
OI:.
0
I
*
*r-
;Z
-T
"
-J
*
UQ
A U'- V)'-'"
:4E
U. II I
0.4
.
0..-
0L
'
a
* .
+
O..IJ
-
E:-E.J-J
Wl 0
|
A * e 1 A
IZ Z -J
tl .
C- ,. I' O
Cc--J
-J
'
a*-
.Z
LL
-J
.. J"-
_
_
U
"-i*'
02
0
s
If .--
+
..
oZ*
-
tLUU
O i
-l
__ ~-
..
C
<
X-.
-Jz
*
<
0
:-
A C
"-
^-
,--
z
oZz
. L
OOOOOOO
0
4O0
00000000000000000
000000o
o
4
N
Jz 0U
JSLU
CLL 0w
J
.
0
4LA0 - CO
4 4 4 'r
C.
44
Z
0
V
0" 0
M. j-
w
O)
'
r'- C
re% n
rM
o o 00
O O o 0 0 0000000
O O OOO OOOOOO
O O0000
O o O
00
000000000000000000
000000000000000
U" % ICO ONa
Mn
'- O
C=0
a aLU
.40
Z
1
-132-
*
?F M 6Cr a 0o
r
I' r%D 10 %O C
%O la %O O 0 D
u-
r
fcW C aL0o
m \t¢ U
a O t4
. D10
um V>-\ 0 t
W, Ln LN )Ln
-0 1i %O d
*30
%C %O 10 ' 0 a)00
.o
£
ID
O I
4
d0
00 -D
D ID0
o
W C
0r
4
rC
IC
- t
r-- IF
00 %0 1}
10 O % %O %C
cO to
X0
o-
0
co co
%) %0 10 %O
000000000000000000000000000000000000
t7 Q
Nm
-t
0
_
0
V
0
0
4r
I-F
Ln 'o I
rF
r
0(
0
aCO C
-I-
0
O
0
0
4 N
coa)
0
0
0
M t
c: c
0
%*
co
cO
tn Ln Ln Ln I
I'n
tn Lr7 n Ul Lckn
WA
0
0(
CO CC- C
6Ico co
O cco CY as
Ln LA
Ln LA Ln LA
V
0
0Vt
Ln 'o r,. co C
0
N
ON >r. C, 0
0-o
a
LA LA LA L,,nLn LA '0
r
V
o
0 0
0
0
0
V)
0
0
0
0(
0
£t Ln %
o C> o
m
o
No
00
0 '.0 '
LA L
0
0
OOC)
O0COC:OOO0000000000000OOOOOOOOOC)t
OOOOOOOOOOQOOOOOOOOOOOoOOOOOOO000000
ree
--
0
I
0
+
*
WZV
I
IZ
0
-I
J
-<0* Wod
a,.
UQ 2
I--
A
o ,*-"
: Y0
I
I C:'.
C
-
-
US
0C--.
"AZ
_
.)
W
O0-
:"
+-
- l C:
t/3 a
" zW Z
:D
OZ.
.
0+0
IZ-
t0
W
r
I0
A
I *
0'-iJ---'
3 Z J
Z
1 aLU
M
r-
)--
0u
WO
',
. 0
1)-0
a a
11
.4
<.
Z
I
l.0
I
,,
HO
IJI
A..
0
L
-r
O
I
Ia ^
Z
_-
V
Z
A
0JIII
WO
OZ
0
.I 4x >*
it
Z_C
V
J . C)-LU-O
IwX
ZO
LU a
W
-,
z
A-*z
I
1C
-I
a
J
JZ
I
Z It
C) IJ.
X.
I a
J xLL_
a
Z
x
-.
WO
I-1: a
-
Z
,
.
A
.4I
CU
J I-
-*
:D0
.4
1
0*
A
-I
<.
0
WJ-IrA'Z JOI
H JZ
W
Z
*
W
-
~d
, *!
4-_.
"- O0
X 0 IA Q
FUL
t
-r-:4
0
,3
-J
A Z-
r
Z
.D
O
.
:4
W..
(
-;
.4Z
.40
^-'-A Z.4
0
I0 0
O*
LUX
)
A
CI
X
I
-U
--t _.
.
Z
":
C:Z
FI
3
X
A: ZO
.I
0
AA
Lz
<OI
.400
-
*0
-W
-U.
I0'
-J
.
..
-
<
OZ
.r
0
I
-
01-
0c
g
Z
*
!-- - IV 11
Z ZCz
0*3
z
*W
A
'-
_ bW
+
"',z
0
S.
Ir
I
UUI
"
A
0
0
I-
3LLL
J
I I
I
*r
Z WO
=
W
0I! . JO LL
·
U -1,J LL'*
:u
Fa3 uII _C-a LL' 'O
tZ IY
aI
LZO.4
Z
LU3
*I
^
.
-
~*3
,k,Vo
W 1A
- -3 _.
M
I aF- _)· 3( i
S..
-0
.O
L
Z-
AI a
0
0
,
-U
I0'- 3
C4
C)
:F
U<
U.0
x
aJ
a
I
I<~
G
-133-
-
M
-4I-4o5
M4
M.
OOO0
OOt 0O
%O
tf)00
cl
Ca C
M
O
o o
b,
,
O u OU)
OO/ 0
C
A
w4 -4
c
t
6
Mr
Ln 2
N
N`
N
--
O
0
a-
c>
II
I
t
*a
c.-J
Q
_·.1
J Z
*J 0
_--
: -II-g
)L-L
0
CZ X
z
-:
0
tJ
_
Z
W
14
0
I
U.Z .0*
a
W-I4
0
O.
z
^
yJ4
_1
-UJJ
t Z
aWO
X-0 -
IJ
J
A
1
O f0- co
O.L
0J *
1
- X
,u-
-
Z
*e*
WO
I
C I ,^
U
0-
W Z
X
I
-
.- 0
I
LZ
9
a. -)
F
0'
0
D
aI
-
I
CU
)-Z c
)
oUJ
C
-
.
OD
0
I Z.*
^
Z
*-
3 D
WZ
W
0O
Ul
0
W
Z-
D
C
I -h
Y
Z
000.J
c c
N
o C
_
F
0.
_I
z
uD
F-
*DV)
-. 000
-
0.
--
<.
6-
0 ' -0--
0
0.D
O,
J
3IC-
*
~
Z
C
0.-1 4OLL
F3
<
co
0
ZID I
0
-J
~
Z
r
-
1 Z
Z
W
--
W
0
0L
*
3
-L
'V0
C
en-fm
m
.
0
O
( p.I
C
000
000
O
'I '
O.Z
I
< .J
r JY
UL
M M
*
0 _-
cI
0C
S.r rO
1
CA CA C0
0
N
0
I
OOO
l0 P0
E- U.
0
I
*
M M
_ .Cl) l
A
Z0,
A
Wl
ui
XWI
Q
N
N
4
O
*!
X I
A
0
.*
m -t
V
0
L +
- *44W It U*
I
eW
^ c -Fa00l
If
.WZ
3
t0
O
-
C)
0
0
r4
X
W0
*
*"
0
0
ll
j
0
a-
a
M
Ct-
,·J
A
0! -
Z
,,
N
-
0
-45.4
r44
00C00000)0
'-~
I
XC-
P
N
-4F
6 -4r
0
C
C CKM CA
(ACA c-
W 0
M -4¢ U% D f-
n
-
N
** 'I,'I 0-')
t
-
0\
CA CA C
'-_
0
aW
a
C
O
0
OOOOOOO00000
00000000000000000000000000000
I
%O r-
in
CA
N
N
4 6
0
C
a'
._
M
5. 40r 5
%
r OOOOOQOOOO
OO
OOO
? Irtfy?1
0
0
CD 0
O 0
C
c
-
o4 N
0
OOO
OO
C 0
0
0
Y
_4 ,
4
0%
F
C6-C7 4 ,
L^ O rC- M
M4r t
-4 N
r4-
Ln %o I-
t
5
U)
Y
0A y
01 10
I'M
m
o N
- co C0
un "O
*
- -
V D
0Q
..
-134,-4{~M%~
%t
t-- coa:)
r0
~
N N
eqc4
eq o,
NN
O N4
,4
r-- p--rI-- f--P- P--- P.
OOOOOOOOOOO
s~F:~T
r:
O" OC-Cee
,O
sE Trs
X
r
m O0 O
c,
-0 '0
0%
%O ,O
UO
O
, .O
O
O %OO
OooooooooOO
cOOOOCOOOOO
000000000:
z
0 C)
0
O
0
ILULL
3C
OZ.
-
'%
Q.-LU
J.. X
w0.
_.
C- *
---
Z9 ,
I
;o
-,
Z _..._
i--CI
C..J.4
_9Z -_
-'-.LL
C
o
z.
* _
.U
C
C
UJ CzDO
Z
LU
LI
-135-
A Simpler Version of the UPDATE Module Cinterchangeable
with the UPDATE Module of RSIMI
-136-4 C\
O
rn
%%.
D t-O co
o4 -a
o
o
O
o 9..
o
_4 N
_
_
m
'r
0
0
0
0
0
0 r- 44
000000000000000000000000000000000000
O O OC
OO
O`- O7 O O O hi
O
0
m
4
t
oo C
o
4
N
4
%NO O
O
N
O) O
0
00
M
N
O?
4
LU -O f-
N4 C
N
C:
It
O
O
CM0
N
O
0
<
bM e4M
N
CO O
C>
000000
0
-
N
M t
UD
VI
4
n
O NO
0
O,
n
O
0
O
00
Z
CIO
O OO.
-~~~
~~J I-~~~~~~~~~-
·
Z0
~I
W0
U.
Z
I
A
a-
9.
w
Z
ZU-
o, o-'*o
o
ooo:
E
- .
O
X M:
V)
O
OI.. L
O
<
O
O
O
C:) &
O
"
Z/
-'
:J
ol
L" V)
w
LL u
.
Zcn
UL/
.U-.
~
Q
J L
.99
CC00
0. U3.:0
< )1,
I
V0: z
(AZ
0 U.
E)
0-I'<WV)C~Z4'.
Z)
.u
!1
O
-J
O
O O- O
AZ
_O O
-rJ
,
-
O
I-
0 - 0it.
EL CC
UJ
Z
w
*
z'/OO
I--
-
0n
W
a
-,
EJ
!
It
SI
ZZ
U.
a
@9
Z
0
Z
_J
O
^-
.
O
U
A
I
-O
94
1 t
U-
u0
0
*
O
'
+
'--.0Z
J
_E),~
0-
#VO
11
- i
-)
0
* U.Z
0
* i*
2
U
UE3
)
CI 0)
- -J
I
3
-
O
Z
-J
+ v
"J
n,
_ 9t
Z
O
a
-
..OQ
O
0.4L)
m I
*
- Z-, t
O :~
O)
.I
Z
"9-
'
e.: . -ZJ
E
u.
W
II
I1
" I!~
:0 E:*D-. ,-Z
I
- '0U,,/00<0 W 0-t ~_
-J
. ·
:
U
I .
A E~,
- X
< CI-'*Xr
::
V<
: <
:
-.Z
_J
U0 -7-)_- _J<...J <i.
X4
O
0
O
4- -
cO
O
O
UJ
0o
:cZ
O U.' _O
O
O
O
<
o<-4 ,
c
l-.
0-
4
V)
L
O
i
-137rfl c
cr o4
M4 M
-4 . -t
-t '.I 4
4f
'- .4
O
P
-
fr-
4
-4
0
-
y
Ua' N a
0
OOOOOOOOOOOOOOO
st
L
f.
LLn
,+ U-I
-
000000000000000000000000000000000000
000000000000000000000000000000000000
:El:E AE:£ ::
2::S
c:
a: sEX:
£
rE :Z
XE:
:
O0000O000000000000000000000000O00000
m m t0
I
t
CT
% t
r %
OOQOOOOOO
t
o4 _ N
It
L-
2: £d:Z
%a
WCLf O
-% f %V-
'.I
0 '0
O D
o--
: X:E
:X
d :E
L 2: X:
C OOOOOOOOOOOO
O
c
o o
o
oL
a
'00 N
V
Vi
3
0 '0o4
D
X
o
Z
-
r.-
r.
X
o o
!
rr-
M: X
o o
o
o
I--Z
Z0 -
0
t
-
LL
Z
uj 0
0
-Z
-(
Z
I
0
~
1.-I
I
, b
O
i
.,00
OA
.-
,-.J
I"
b
,/
90,0Z
0 QI it 0.
r W'
**
.
"Zroz
.jI
-0-/
(AC)
III
.Z *-I
0
A
:-- .,I.
*iI_--e
LU
0
~z
-/:Z
Z
.Z
0
z:0(
*3 _ ,J
A O D A_IIJ -
.
s,-O
Z·
Z.
I.ZA I
A U-'
I^1
0_
_aO
*'..JE
0 I
-e
"
.e.
cra 0
,-..w-b
I
.. JII- - IJ-4
,_
' -- -4, E 0 H
"-b.UW'-"EA
.J)z
V0
V
*
0...I
L) A
I
, II I..
J
"
.
I0
Wg . )
4 -U
'"C3 *
A
it
00..
_
-
I-'U --
0z
,-
0
"'- OU
a
_
0
I'
-
z'
Z
I
0
.
. t'
2
*JVa .J l
Zo3
-:D ,V)
_
,C
0+ L
IE
I
J
I
O
.!
- cUJ
z
'Z
--
*I
-
0-.
;: D,L0 l0
~I,.
iS f,/)
it 14
J0t ZO ^I
v3w0
-"
O
W O
0
V)
It 0-
Z
r
U 0. I
4J
W La
F
0
Z
'Z
"
" i I'.(A
4
W
II
O
'"
-138o
4
0 to-O Oa
O
Cs F F F r
O4 t
1N M
O
r
00000000
M
0
wCOm m 00
0
000
o 7
o
O O
-_
C0cr
oo
0 00
,
0
O W
0-,O-
O
,-o
O(,
Cr
0, 0r
O
_a
N
- 0000
0000000000
0
0000000000000000000000
;t
ao
o
zJ
aa- h4
*t
0000000000000000000
O O O
O O O O O OOO0OOOOOOOOOOOOOOOOO
O O O O O O O
o
0000000000t a-
l a8
J
000000000000
N
ao
o4
t
4
0
t-
LI.1
Z
·
LI-
41C
I--
.1
V)
+
-Z
O O
Oi--O
O000000000000
'J L,
Za
1
1
OCO
O.
0
.
~
Za
a
A ^I0J
Zi
LU
c3
G11O
O
LLt--00000000 *
*
* _
~-Z
[
,
-
+
D .-'J"
3
OifI
-. _l V)
II -43, ,
09L
I'I
'· Z '~
--Jo
*11,9
+
A
A
ZV)
-
ZZ
V
-
" D -
. -0*~
,- '3: i
. AJJ
4. I
+_
.C
<: Z
Z
t
- 0'
/)J4Z~
.4Z4
* *
*,:IC Xa~z
U.-
l --
*- -r
1--111.L.S^W
·
IZ I
00
' -- _
'
,
O
O
_W
1-.
U
- -i
-,J
_1- Ir *
oU-
*.
,
-
,9
L--.--.
A
.I
0.1V)-V)
00.-i
.I
YU (2 OV.I
: Z<1 I 0. '-' w -'--C
v5-C
N
* *^
Z
II-*
"'Z-
!
11 *"
Z
I a
Z
*
0,.4
r;O CZ
·
'
II
J OC O
O-
SW1-Z
U.
I-..
_.-!
I
-,,.
_
Z+
-*
z
,-Uz
Z
^
O 0)
CI
:
C2
--
A
' II
'
'
C3
0
I- Z
-.C I - .4
---
o- 0
0-'oZJ
* 03
LL.. Z.* I. ?w
U
V.
n
-J1
'93:
il I
-
I--5
<
C_
Zu a
Z
Z.
REFERENCES
[1]
R.G. Gallager, "A Minimum Delay Routing Algorithm Using Distributed
Computation", IEEE Trans. on Communications, Vol. COM-25, No. 1,
pp. 73-85, Jan., 1977.
[2]
L. Kleinrock, Communication Nets: Stochastic Message Flow and Delay,
McGraw-Hill, 1964.
[3]
L. Kleinrock, Queueing Systems - Volume I: Theory, Wiley-Interscience,
1975.
[4]
A. Segall, "The Modeling of Adaptive Routing in Data Communication
Networks", IEEE Trans. on Communications, Vol. COM-25, No. 1,
pp. 85-95, Jan., 1977.
[5]
C. Agnew, "On Quadratic Adaptive Routing Algorithms", Communications
of the ACM, Vol. 19, No. 1, 1976, pp. 18-22.
[6]
D.G. Luenberger; Introduction to Linear and Nonlinear Programming,
Addison Wesley, Reading, Mass., 1973.
[7]
M. Bello, "The Estimation of Delay Gradients for Purposes of Routing
in Data-Communications Networks", S.M. Thesis, Dept. of Electr. Eng.
& Comp. Sci., M.I.T., Feb., 1977.
-139-
Download