13.07.2015 Views

Algorithms for the visualization and simulation of mobile ad hoc and ...

Algorithms for the visualization and simulation of mobile ad hoc and ...

Algorithms for the visualization and simulation of mobile ad hoc and ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

30cause <strong>the</strong> graph to fragment. In order to maintain <strong>the</strong> basic structure <strong>of</strong> <strong>the</strong> graph wedo not prune nodes whose removal would split <strong>the</strong> graph into multiple components <strong>and</strong>destroy its connectivity. Gilbert <strong>and</strong> Levchenko [20] do not maintain <strong>the</strong> connectivity<strong>of</strong> a graph during pruning. They reconnect <strong>the</strong> simplified graph as a post-process.The connectivity check <strong>of</strong> <strong>the</strong> pruning process utilizes our variation on Dijkstra’ssingle source shortest path computation mentioned previously. The c<strong>and</strong>idate nodeis removed from <strong>the</strong> graph. It is <strong>the</strong>n determined if all <strong>of</strong> <strong>the</strong> c<strong>and</strong>idate’s neighboringnodes are still connected to each o<strong>the</strong>r through <strong>the</strong> graph. This check is per<strong>for</strong>medby attempting to calculate <strong>the</strong> shortest path between all pairs <strong>of</strong> neighboring nodes.If unable to complete this computation, <strong>the</strong> graph has been disconnected by <strong>the</strong>c<strong>and</strong>idate node’s removal, <strong>and</strong> that node is <strong>the</strong>n re-inserted into <strong>the</strong> graph.The pruning process can be done incrementally. When pruning a weighted graphwe use an increment value along with a target threshold value. The initial thresholdis set to 0. The increment is <strong>ad</strong>ded to this value <strong>and</strong> <strong>the</strong> pruning process is per<strong>for</strong>med.The increment is <strong>the</strong>n <strong>ad</strong>ded to <strong>the</strong> current threshold <strong>and</strong> <strong>the</strong> pruning isper<strong>for</strong>med again on <strong>the</strong> previously pruned graph. This continues until <strong>the</strong> currentthreshold becomes greater than or equal to <strong>the</strong> target threshold. Incrementally removingnodes will typically provide better results than a non-incremental removal.One reason <strong>for</strong> this is that it tends to remove less important nodes be<strong>for</strong>e more importantnodes. When taking large threshold increments it is possible, since nodes arer<strong>and</strong>omly accessed, that a more important node can be processed <strong>and</strong> pruned be<strong>for</strong>e aless important node. Removing important nodes first may leave less important nodesin a position in which <strong>the</strong>y become impossible to remove due to <strong>the</strong> connectivitycheck. As <strong>the</strong> increment is decreased <strong>the</strong> chance <strong>of</strong> pruning a more important nodebe<strong>for</strong>e a less important node diminishes. Once <strong>the</strong> increment is equal to <strong>the</strong> smallestdifference between node weight values, incremental pruning effectively produces a

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!