Docstoc

presentation

Document Sample
presentation Powered By Docstoc
					Pathfinding Algorithms for Mutating Weight Graphs

Haitao Mao Computer Systems Lab 2007-2008

Mutating Weight Graphs
  

Static graph structure

Edge weights change over time Not a standard type of graph: self-defined

The Pathfinding Problem


Given a mutating weight graph, previous states of the graph, a start vertex, and a destination vertex, find the vertex to move to next We are NOT finding the whole path at once

 

Algorithm strength measured on cost to go from start to destination, complexity, and adaptability to different graph structures.

Background


Could not find any previous research on mutating weight graphs Closest field is dynamic graphs: graphs which can gain and lose edges, but these are significantly different Other fields related to my project are probabilistic algorithms and graph searching algorithms





A Simplification
 

Grid-based graph

All weights are 1 or infinity, and each weight changes between the two possibilities with probability p per time unit Destination also moves Actually, here the vertices are mutating, but the edge weights are based on the vertex weights

 

Algorithms for Simplified Problem


Dumb: move randomly... eventually it'll get there Naive: greedy algorithm with distance as heuristic



 

Simple: Dijkstra every time Standard: take graph connectivity and structure into account Complex: approximate future mutating using previous mutation and factor that into algorithm



Algorithms for General Problem


Definition: randomized distance – the distance to destination node taking graph structure into account. For example, a vertex with two unit length paths leading to the destination will be closer in this sense than a vertex with only one.



Steady-state convergence/numerical analysis: set up a system of equations we want the randomized distances to satisfy, and solve

Algorithms (cont.)‫‏‬


Dynamic programming: approximate distance to heuristically closer points first, then base calculations for farther vertices on these approximations



Using the previous states of the graph: we can use this data to develop a hashmap to approximate future mutations Genetic programming: used to find optimal values for algorithm-specific variables



Algorithm Specifications


We focus on sparse graphs: where the number of edges is significantly less than the square of the number of vertices Limit the edge weights to positive doubles so mutation will be somewhat controlled; edge weights that are too large will never be traversed anyway





Complexity should be better than O(E^2log(E)+V^2log(V)) – this may change

Testing/Algorithm Analysis


Realistically, it's hard to differentiate among two good algorithms Run all algorithms together through graphs with varying structure and mutation patterns; compare based on total cost for each pathfinder, or possibly just their ranking Compare based on complexity






				
DOCUMENT INFO