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-