The Genetic Adaptive Routing Algorithm Masaharu Munetomo A routing algorithm constructs routing tables to forward communication packets based on network status information.. More precise
Trang 1The Genetic Adaptive Routing Algorithm
Masaharu Munetomo
A routing algorithm constructs routing tables to forward communication packets based on network status information Rapid inflation of the Internet increases demand for scalable and adaptive network routing algorithms Conventional protocols such as the Routing Information Protocol (RIP) (Hedrick, 1988) and the Open Shortest-Path First protocol (OSPF) (Comer, 1995) are not adaptive algorithms; they because they only rely on hop count metrics to calculate shortest paths In large networks, it is difficult to realize an adaptive algorithm based on conventional approaches This is because they employ broadcasts to collect information on routing tables or network link status, which causes excessive overheads in adaptive algorithms
In this chapter, we describee an adaptive routing algorithm called the Genetic Adaptive Routing Algorithm (GARA) The algorithm maintains a limited number of alternative routes that are frequently used Instead of broadcasting a whole routing table or link status,
it only observes communication latency for the alternative routes It also tries to balance link loads by distributing packets among the alternative routes in its routing table The
alternative routes are generated by path genetic operators.
9.2 Routing algorithms in the Internet
From the early history of the Internet, vector distance routing algorithms based on Bellman-Ford’s algorithm (Bellman, 1957; Ford and Fulkerson, 1962) have usually been employed
Telecommunications Optimization: Heuristic and Adaptive Techniques, edited by D.W Corne, M.J Oates and G.D Smith
Copyright © 2000 John Wiley & Sons Ltd ISBNs: 0-471-98855-3 (Hardback); 0-470-84163X (Electronic)
Trang 2The Routing Information Protocol (RIP) (Hedrick, 1988) based on the vector-distance algorithm with hop count metric is commonly used even now in small local area networks The algorithm yields many communication overheads in larger networks because they periodically send broadcast messages that contain a whole routing table More precisely, the number of messages to broadcast routing tables is proportional to n2 (n is the number
of nodes in a network) and the size of a routing table is proportional to n, which means that
the total communication overhead for the routing information exchange becomes O(n3) The vector distance algorithm also suffers from its slow convergence because it is necessary for the routing tables to reach all the nodes in the network to obtain the correct distance
To reduce communication overhead, routing algorithms based on link status information such as the SPF (Shortest Path First protocol) send broadcast messages that only contain information on link status Based on a topological database generated from the collected link status, the algorithm calculates the shortest paths employing Dijkstra’s shortest path algorithm (Dijkstra, 1959) in each node The SPF broadcasts messages that only contain the nodes’ link status instead of the entire routing table Therefore, the size of a message that contains link status information becomes O(1) when the degree of nodes is constant such
as in a mesh network, and the size becomes O (log n) in a hypercube network However, the number of messages is also proportional to n2, which leads to extensive overheads in larger size network Therefore, the OSPF (Open Shortest Path First protocol) (Moy, 1989),
a widely used network routing protocol for Interior Gateway Protocol (IGP) (Comer, 1995) based on the SPF, relies on hop count metric and detects topological changes such as link failure
It seems easy to collect information on the communication latency of links and calculate routes with minimum delay; however, it is almost impossible in large networks This is because we need to collect the communication latency of all the links frequently by broadcast messages, which leads to extremely heavy communication overheads In addition, delayed information for the latency may create far from optimal routes In a huge network such as the Internet, it is essentially important for routing algorithms to be scalable To achieve scalability in adaptive network routing algorithms, it is necessary to observe communication latency with as few communication overheads as possible
Before introducing our routing algorithm by GA, this section gives a brief review of related work concerning the application of GAs to network resource management problems Since many of the problems are classified into combinatorial optimization problems, they can directly be solved by GAs For example, an application of GA to network routing in
telecommunication networks is proposed in the Handbook of Genetic Algorithms (Davis, 1991) by Cox et al (1991) The authors solved a constrained optimization problem that
allocates link bandwidth to each connection For another approach, Munakata and Hashier (1993) solved the maximum network flow problem The objective of this optimization problem is to maximize the network flow based on the global information of the network These two algorithms cannot be applied directly to routing in packet-switching networks such as the Internet because they are based on circuit-switching networks, in which the
Trang 3bandwidth of the network is allocated to circuits – connections between nodes (Tanenbaum,
1988) On the other hand, Carse et al (1995; and Chapter 8) applied a Fuzzy Classifier
System (FCS) to a distributed routing algorithm on packet-switching networks in which each packet is routed independently by a routing table This routing algorithm, however, only decides whether a packet should take a direct route or an indirect route by using a FCS Therefore, the algorithm cannot be directly applied to actual routing algorithms
The Genetic Adaptive Routing Algorithm (GARA) is an adaptive routing algorithm that employs genetic operators to create alternative routes in a routing table It is based on source routing algorithms, which determine the entire route of a packet in its source node Each node has a routing table containing a set of alternative routes, each of which is created
by genetic operators Each packet selects one of the alternative routes to the destination The algorithm observes the communication latency of routes frequently used
Figure 9.1 Overview of the GARA.
Figure 9.1 shows an overview of the GARA Each node has a routing table that contains routes to destinations For each destination, a set of alternative routes is assigned Each route has its weight value (as its fitness) that specifies the probability for the route to be selected from a set of alternative routes The weight is calculated from the communication latency, observed by sending delay query packets At the beginning, the routing table is
empty When a packet must be sent to a destination, a default route to the destination is
generated by using Dijkstra’s shortest path algorithm based on hop count metric After a specified number of packets are sent along a route, a packet is sent to observe the
Node Routing table Dest Route Delay Weight
0 1
2
3
4
5
6
1 (0 1) 100 1.0
4 (0 6 4) 70 0.7 (0 3 4) 90 0.3
5 (0 3 5) 100 0.7 (0 3 4 5) 150 0.1 (0 6 4 5) 130 0.2
6 (0 6) 50 1.0
Delay Query &
Answer
Applying Path Genetic Operators (Only contains routes frequently used)
Network
Trang 4communication latency of the route To generate alternative routes, path genetic operators
are invoked at a specified probability after every evaluation of weight values To prevent overflow of a routing table, selection operators are applied to reduce its size A selection operator deletes a route that has the lowest weight among the routes to a destination Moreover, another selection operator may be applied; this deletes all the routes to a destination to which the number of packets sent is the smallest among all the destinations in
a routing table
The GARA can greatly reduce communication overheads for dynamic observation of network status by limiting the observation to alternative routes frequently used It can also reduce the possibility of congestion by distributing packets probabilistically among the alternative routes
For the GARA, path genetic operators such as path mutation and path crossover are
designed to generate alternative routes based on the topological information of the network The path mutation operator causes a perturbation of a route in order to create an alternative route The path crossover exchanges sub-routes between a pair of routes
A route (path) is encoded into a list of node IDs from its source node to its destination For example, a route from node 0 to node 9 is encoded into a list of nodes along the route: (0 12 5 8 2 9) The route is constrained to the network topology; that is, each step of a route must pass through a physical link of the network
The path mutation generates an alternative route by means of a perturbation Figure 9.2 shows how to perform this mutation operator To perform a mutation, first, a node is selected randomly from the original route, which is called a mutation node Secondly, another node is randomly selected from nodes directly connected to the mutation node Thirdly, an alternative route is generated by connecting the source node to the selected node and the selected node to the destination employing Dijkstra’s shortest path algorithm
More precisely, the path mutation proceeds according to the following sequence where r
is the original route and r′ is its mutated one.
1 A mutation node n m is selected randomly from all nodes along the route r, except its
source and destination nodes
2 Another node n m′ is selected randomly from neighbors of the mutation node, i.e
m
n ′∈ε(n m)
3 It generates a shortest path r from the source node to 1 n m′, and another shortest path
2
r from n m′ to the destination
4 If there is no duplication of nodes between r and 1 r , they are connected to have a2
mutated route r=r1+r2 Otherwise, they are discarded and no mutation is performed
Trang 5Figure 9.2 Path mutation applied to a route.
Suppose that the mutation operator is applied to a route r = (0 3 5 6 7 10 12 15) First, we
select, for example, a node 7 as a mutation node Secondly, another node 8, for example, is randomly selected from the neighbors of the mutation node Thirdly, by Dijkstra’s shortest path algorithm, we connect the source node 0 and the selected node 8 to generate a path
1
r =(0 2 4 8) We also connect node 8 and the destination node 15 to generate another path
2
r = (8 10 12 15) We finish the mutation by connecting the routes r and 1 r to eventually2
have r′ = (0 2 4 8 10 12 15) We do not generate a route r′ if any duplication exists between
1
r and r This is because we need to avoid creating any loop in a route that passes through2 the same nodes twice or more
The path crossover exchanges sub-routes between a pair of routes To perform the crossover, the pair should have the same source node and destination node A crossing site
of the path crossover operator is selected from nodes contained in both routes The crossover exchanges sub-routes after the selected crossing site Figure 9.3 shows an overview of the operator
The crossover operator applied to a pair of routes r and 1 r proceeds as the following2
sequence
1 A set of nodes N cincluded in both r and 1 r (excluding source and destination nodes)2
are selected as potential crossing sites If N cis an empty set, we do not perform the crossover
2 A node n cis selected randomly from N c as a crossing site
3 The crossover is performed by exchanging all nodes after the crossing site n c between
1
r and r2
Suppose that a path crossover is applied to a pair of routes r and 1 r from node 0 to node2
20 as in the following:
Original Path
Mutation
Mutated Path r1
r2
n’m
nm
Trang 6Figure 9.3 Path crossover applied to a pair of routes.
1
r = (0 2 3 7 9 11 12 15 17 18 20),
2
r = (0 4 5 7 10 11 13 15 16 20).
Their potential crossing sites are nodes 7, 11 and 15 When we select, for example, the node
11 as a crossing site, the offspring are generated by exchanging the sub-routes after the crossing site:
1
r = (0 2 3 7 9 11 13 15 16 20),
2
r = (0 4 5 7 10 11 12 15 17 18 20).
When we do not have a common node in a pair of routes, we cannot select a crossing site
and we do not perform a crossover In our earlier work such as Amano et al (1993) and Murai et al (1996), in order to perform a crossover even when the pair has no common
nodes, we connect crossing sites by calculating the shortest path between them However, a pair of routes without any similarity is not worth crossing-over, because the operator may generate routes which are too far from their parents for such routes, which may lead to random regenerations of routes
Route r1
Route r2
Crossing Site
Crossover
Crossing Site
Route r1 (Changed)
Route r2 (Changed) Potential crossing site
Selected crossing site
Trang 79.6 Maintaining Routing Tables
Table 9.1 shows a routing table used in the GARA The routing table consists of five entries
named destination, route, frequency, delay and weight For each destination, we have a set
of alternative routes The frequency of a route specifies the number of packets sent to the destination along the route The delay entry stores the communication latency of packets sent along the route The weight of a route is calculated by its communication latency,
which specifies the probability for the route to be selected when a packet is sent From a GA’s point of view, the weight corresponds to a fitness value
Table 9.1 A routing table.
(1 3 4 2) (1 3 4 5 2)
7232 2254 1039
50 60 70
0.7 0.2 0.1
(1 10 11 6)
20983 34981
100 105
0.4 0.6
(1 7 8)
30452 3083
40 40
0.9 0.1
In the table, routes marked with asterisks are the default routes which are the shortest paths based on hop-count metric Initially, the routing table is empty When it becomes necessary to send a packet to a destination, and if there is no route to the destination, a default route is generated by Dijkstra’s algorithm and is inserted to the routing table After sending a specified number of packets along a route, we send a packet that observes the communication latency of the route The fitness value is calculated after receiving its answer After the observation, path genetic operators are applied to the routes at a specified probability to generate alternative routes
A weight value (fitness value) of a route specifies the probability for the route to be selected from alternative routes It is calculated from the communication latency along the routes To observe delay along the route, a delay query message is issued at a specified interval Using the delay obtained, we calculate weight values w i using the following equations:
∑
=
=
S
i i
S
i i
d
d
η
η , where /
1
/ 1
(9.1)
Trang 8where d i is the delay for route i and S is a set of routes to the same destination In the
above equations, we first normalize the delay values d i by dividing by their total sum to yield ηi Second, we calculate the reciprocal number of ηi and normalize them to have a weight value This is because we need to have a larger weight of w ifor a smaller delay of
i
d Consequently, a route with smaller delay is frequently employed in sending packets However, note that the selection of routes is a randomized one; routes with longer delay also have a chance to be selected
In the GARA, each node executes the same algorithm independently Figure 9.4 shows a pseudo PASCAL code of the algorithm Each packet has entries such as type, route and next, where type specifies type of a packet, route entry is the route of the packet, and next indicates next hop in its route Types of packets are DataPacket (which contains data), DelayRequest (for requesting delay of a link), and DelayAnswer (for answering a DelayRequest packet) DelayRequst and DelayAnswer packets have DelayEntry which records the communication latency of the packets
Every time a packet is created at a node, the node determines a route for the packet based on its routing table For a packet arriving from another node, if its type is DataPacket, the node simply forwards the packet according to its route In the initial state, a routing table is empty If the routing table does not contain a route for the destination of a packet created, a default route is generated by employing Dijkstra’s shortest path algorithm and is inserted to the table
Each time after a specified number of packets are sent along a route, a DelayRequest packet is sent to observe the communication latency along the route If the packet arrives at the destination, a DelayAnswer packet is sent back After receiving the answer, the communication latency of the route is obtained by calculating the average amount of time sending a DelayRequest packet and receiving a DelayAnswer packet After obtaining the delay of a route, weight values of routes are calculated according to equation 9.1 After every evaluation of weights, genetic operators are invoked at a specified probability to create alternative routes in the routing table
If the size of the routing table exceeds a limit, we perform a selection to reduce its size
We have two types of selection operators: local selection is invoked if the number of
strings exceeds a limit, and it deletes a route with the smallest weight among routes with
the same destination; and global selection is invoked when the number of destinations in
the routing table exceeds a limit, and it deletes all the routes to a destination of which frequencies of sending packets is the smallest among all destinations in the routing table
To evaluate routing algorithms, it is important to perform experiments for networks large
enough In the following experiments, also discussed in Munetomo et al (1998a), a sample
network with 20 nodes is employed (Figure 9.5) The bandwidth of a link is represented by its thickness The thicker link is for the link with 4.5 Mbps, and the thinner one has bandwidth of 1.5 Mbps
Trang 9Initialize routing table;
while not terminated do
begin
wait for a packet to be received or input from user;
if packet.type = DataPacket then
begin
if the packet is sent from other node then
begin
if packet.destination = this node ID then receive packet;
else send the packet to the node of packet.next;
end
else (* if the packet is input from user at the node *)
begin
if routing table for the destination is empty then
begin
create a default route by using Dijkstra’s algorithm;
add the default route to the routing table;
reset frequency entry of the default route;
packet.route := default route;
if the number of destination > limit then
delete routes of a destination least frequently used;
end
else
begin
select a route from the routing table by roulette wheel selection; increment frequency entry of the selected route;
packet.route := the selected route;
if route.frequency mod EvaluationInterval = 0 then
begin
packet.type := DelayRequest;
packet.route := route;
send the packet according to the route;
end
end
end
end
if packet.type = DelayRequest then
begin
packet.DelayEntry := CurrentTime – packet.CreateTime;
packet.CreateTime := CurrentTime;
packet.type := DelayAnswer;
send packet to its source;
end;
if packet.type = DelayAnswer then
begin
packet.DelayEntry := packet.DelayEntry + CurrentTime – packet.CreateTime; packet.delay_entry := packet.DelayEntry/2;
change delay of the route based on packet.DelayEntry;
if random < Pmutation then
begin
apply a mutation to a route in the routing table;
add the string created to the routing table;
if table_size > limit then delete a string of the lowest weight;
end
if random < Pcrossover then
begin
apply a crossover to a pair of route in the routing table;
add the string created to the routing table;
if table_size > limit then delete a string of the lowest weight;
end
end;
end
end.
Figure 9.4 Pseudo PASCAL code for the GARA.
Trang 10Figure 9.5 A sample network for the experiment.
We compare the GARA with conventional routing algorithms under the following conditions: at each node in the network, data packets are randomly generated at a specified interval that is exponentially distributed The destination of a packet is randomly selected from nodes that are represented by circles with gray inside (see Figure 9.5) Delay query packets are sent every after 10 data packets are sent The probability to apply a mutation after an evaluation is 0.1 and that to apply a crossover is 0.05 The maximum population size is 100 We continue the simulation for 3000(s) to obtain the following results
In Figure 9.6, we compare the mean arrival time of data packets for the RIP, for the SPF, for an adaptive version of the SPF, and for the GARA The adaptive SPF observes communication latency of links to calculate the shortest paths (we set the delay observation interval at 30(s) and 60(s) for the experiments) The mean arrival time indicates the mean value of the time it took to arrive at destinations of packets from their creation on the source nodes We can change the frequency of generating data packets by changing the mean generation interval of data packets which is exponentially distributed
This figure shows that the mean arrival time of packets is smallest when we employ the GARA algorithm for routing The SPF is slightly better than the RIP Adaptive SPFs suffer from communication overhead caused by their frequent observation of the link status of all links, especially when the network is lightly loaded (longer mean generation interval) For a
2000 (ms) interval of creating packets, which leads to heavily loaded links in the network, the GARA achieves about 20% of the mean arrival time compared with those of the RIP and the SPF This means that packets sent by the GARA arrived at their destinations five times faster than those sent by the other algorithms In this experiment, the adaptive SPF
0
1
4
5
6 7 10
8 9 11
12
13
14
15 16
17
18 19
4.5 M 1.5 M