SCHOOL OF ENGINEERING AND ADVANCED TECHNOLOGY Engineering Project Routing in Small-World Networks
PEOPLE INVOLVED Student Amir Hoshang Kioumars Student of BE Software Engineering Supervisor Associate Professor Stephen Marsland
AIMS AND OBJECTIVES Aim Study routing in small-world networks Objectives/Expected project output Collect a set of comparison metrics on SRA’s Improve/develop a new routing algorithm
TASKS DECOMPOSITION Make and simulate the small-world networks Study selected SRA’s Collect a set of comparison metrics between selected SRA’s Develop a new routing algorithm or make improvement on the existing SRA’s Test any finding(s) against existing algorithms
WHAT IS THE ROUTING The term routing refers to the process of selecting paths in a network for sending network traffic or data. It is performed for many kinds of networks such as the telephone, transportation and the Internet.
ROUTING ALGORITHMS Design goals Optimality Simplicity/low overhead Robustness/stability Rapid convergence Flexibility Improvement impacts Speed Reliability Time/cost Quality of services
WHAT IS THE SMALL-WORLD NETWORK The small-world network is a type of mathematical graph in which most nodes are not neighbours but are in contact with each other through a small number of hops or steps experiment comprised several studies conducted by Stanley Milgram ( ), examining the average path length for social networks of people in the United States Example The Internet
STANDARD ROUTING ALGORITHMS Several algorithms Dijkstra Bellman-Ford A star B star Kleinberg … Algorithm selections Dijkstra (Dutch computer scientist Edsger Dijkstra, ) Kleinberg (Jon Kleinberg, 1999)
DIJKSTRA'S ALGORITHM Reference: Wikipedia -
DIJKSTRA'S ALGORITHM Advantages Exhaustive search (check all paths) Always return the optimal path Disadvantages Time consuming Need large chunk of memory for a big graph to store for 3000 nodes, the algorithm needs about 4*3000*3000 = bytes (36 MB memory), and if the number is 6000, it needs about 144 MB memory.
KLEINBERG’S ALGORITHM Suggest a simple greedy algorithm When is the current node, choose the next intermediate node which is closest to the target Do the iteration until reach to destination
DEVELOPMENT AND EXPOSITION OF WORK Selecting a programming language Selecting a suitable IDE (compiler) Selecting the standard routing algorithms (SRA’s) and developed them (Dijkstra and Kleinberg) Simulating small-world networks and run both SRA’s on them Selecting metrics items for SRA’s Weight Number of hops Time Testing environment – graphs with 40, 50, 100, 200, 300, 500, 700, 850 and 1000 number of nodes 3, 5, 10 and 15 neighbours rewiring probabilities 0, 0.5 and 1 Twenty iterations - used averaged results Multi-threading Java programming Hardware CPU: Intel® Core ™ 2 Quad 2.83 Ghz Ram: 4 Gb DDR2
COMPARISON RESULTS Optimal path Minimum number of hops Time taken Consistency of results
PATH WEIGHT
VISITED HOPS
DELIVERY TIME
IMPROVING THE KLEINBERG’S GREEDY ALGORITHM Using Kleinberg’s greedy Consider special cases 1.Whether source and target are connected directly 2.Source and target are connected with an intermediate node 3.Neighbours of source and target have a common node(s) 4.If none of the above cases were true, it run the Kleinberg’s greedy algorithm for one-step and go to step 1
Case 1: Direct link between source ‘s’ and target ‘t’
Case 2: Source ‘s’ and target ‘t’ have common node(s)
Case 3: There is a link between neighbours of source ‘s’ and the neighbours of target ‘t’
Case 4: None of above cases. Find the intermediate node source ‘s’, closest to target ‘t’ and do the above steps again in next iteration
NEW COMPARISON RESULTS given small-world network, the improved Kleinberg’s greedy algorithm returns the path with fewer number of hops compared to the Kleinberg’s greedy algorithm. Because in each iteration the algorithm is checking special cases; it performs over a longer time compared to the Kleinberg’s greedy algorithm. improving the Kleinberg’s greedy algorithm compare to Dijkstra’s alg minimum number of hops shorter time By increasing the number of nodes and the rewiring probability, the chance of finding a match among four special cases within the graph becomes higher.
PATH WEIGHT
VISITED HOPS
DELIVERY TIME
CONCLUSIONS Greedy algorithms are easy to invent and implement. Greedy algorithms usually progress in a top-down fashion, making one greedy choice after another, reducing each problem to a smaller one. It is also impossible to find a set of optimal solutions with a greedy algorithm. The Kleinberg’s greedy algorithm is focused on visiting a minimum number of hops in a shorter time. It does not guarantee to return the optimal path at the same time. improved Kleinberg’s greedy algorithm tried to reduce the number of visited nodes by checking special cases in each iteration it checks the special cases, the time of finding such a path is increased Finding an optimal path is proportional to the cost associated with it Finding an appropriate algorithm for a network depends on usage of that network