Research Article
Metric-Based Cooperative Routing in Multihop Ad Hoc Networks
function modified Dijkstra (G, S, D): | for each vertex v in Graph: | //Initializations | cost [v]:= infinity; | //Unknown cost function from S to v | previous [v]:= undefined; | //Previous node in optimal path from S | end for; | cost [S]:= 0; | Q:= the set of all nodes in Graph; | while Q is not empty: | u:= vertex in Q with smallest cost ; | if cost [u] = infinity: | break; | //remaining vertices inaccessible from S | fi; | remove u from Q; | for each neighbor v of u: | //where v has not yet been | removed from Q. | temp:= 1− (1−cost [u]) linkmetric(u,v); | //link cost for PDR | temp:= cost [u] + 1/linkmetric(u,v); | //link cost for Throughput | or Energy Efficiency | if alt < cost [v]: | cost [v]:= temp; | //Update new metric | previous [v]:= u; | //Update new path | fi; | end for; | end while; | return cost ; | path:= empty sequence | //find shortest path between S and D | d:= D | while previous [d] is defined: | insert u at the beginning of path | d:= previous [d] | end while | return path; | end modified Dijkstra. |
|