#include <graphAbstraction.h>
Inheritance diagram for graphAbstraction:

Public Member Functions | |
| graphAbstraction () | |
| virtual | ~graphAbstraction () |
| virtual bool | pathable (node *from, node *to)=0 |
| is there a legal path between these 2 nodes? | |
| void | getParentHierarchy (node *from, node *to, std::vector< node * > &fromChain, std::vector< node * > &toChain) |
| given 2 nodes, find as much of their hierarchy that exists in the graph | |
| graph * | getAbstractGraph (int level) |
| return the abstract graph at the given level | |
| unsigned int | getNumAbstractGraphs () |
| return the total number of graphs in the hierarchy | |
| virtual double | h (node *a, node *b)=0 |
| heuristic cost between any two nodes | |
| double | distance (path *p) |
| length in distance of a path | |
| node * | getNthParent (node *which, int n) |
| return nth level parent of which or null if it doesn't exist | |
| node * | getParent (node *which) |
| long | getNumChildren (node *which) |
| node * | getNthChild (node *which, int n) |
| long | getAbstractionLevel (node *which) |
| graph * | getAbstractGraph (node *which) |
| virtual void | verifyHierarchy ()=0 |
| verify that the hierarchy is consistent | |
| void | clearMarkedNodes () |
| get current revision of hierarchy -- indicates if changes have been made */ | |
| virtual void | removeNode (node *n)=0 |
| remove node from abstraction | |
| virtual void | removeEdge (edge *e, unsigned int absLevel)=0 |
| remove edge from abstraction | |
| virtual void | addNode (node *n)=0 |
| add node to abstraction | |
| virtual void | addEdge (edge *e, unsigned int absLevel)=0 |
| add edge to abstraction | |
| virtual void | repairAbstraction ()=0 |
| This must be called after any of the above add/remove operations. | |
| virtual int | measureRepairHits () |
| void | measureAbstractionValues (int level, double &n, double &n_dev, double &c, double &c_dev) |
| double | measureAverageNodeWidth (int level) |
Protected Attributes | |
| std::vector< graph * > | abstractions |
Private Member Functions | |
| int | computeWidth (node *n) |
| int | widthBFS (node *child, node *parent) |
| double | measureExpectedNodeWidth (node *n) |
| int | getNumExternalEdges (node *n, node *p) |
| int | countEdgesAtDistance (node *child, node *parent, std::vector< int > &dists) |
|
|
|
|
|
|
|
||||||||||||
|
add edge to abstraction
Implemented in clusterAbstraction, loadedCliqueAbstraction, mapCliqueAbstraction, mapFlatAbstraction, MapLineAbstraction, mapQuadTreeAbstraction, NodeLimitAbstraction, and radiusAbstraction. |
|
|
add node to abstraction
Implemented in clusterAbstraction, loadedCliqueAbstraction, mapCliqueAbstraction, mapFlatAbstraction, MapLineAbstraction, mapQuadTreeAbstraction, NodeLimitAbstraction, and radiusAbstraction. |
|
|
get current revision of hierarchy -- indicates if changes have been made */
Reimplemented in mapAbstraction, and mapCliqueAbstraction. |
|
|
|
|
||||||||||||||||
|
|
|
|
length in distance of a path
|
|
|
|
|
|
return the abstract graph at the given level
|
|
|
|
|
||||||||||||
|
|
|
||||||||||||
|
return nth level parent of which or null if it doesn't exist
|
|
|
return the total number of graphs in the hierarchy
|
|
|
|
|
||||||||||||
|
|
|
|
|
|
||||||||||||||||||||
|
given 2 nodes, find as much of their hierarchy that exists in the graph
Reimplemented in loadedCliqueAbstraction, and mapCliqueAbstraction. |
|
||||||||||||
|
heuristic cost between any two nodes
Implemented in loadedCliqueAbstraction, and mapAbstraction. |
|
||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
Reimplemented in mapCliqueAbstraction. |
|
||||||||||||
|
is there a legal path between these 2 nodes?
Implemented in clusterAbstraction, loadedCliqueAbstraction, mapCliqueAbstraction, mapFlatAbstraction, MapLineAbstraction, mapQuadTreeAbstraction, NodeLimitAbstraction, and radiusAbstraction. |
|
||||||||||||
|
remove edge from abstraction
Implemented in clusterAbstraction, loadedCliqueAbstraction, mapCliqueAbstraction, mapFlatAbstraction, MapLineAbstraction, mapQuadTreeAbstraction, NodeLimitAbstraction, and radiusAbstraction. |
|
|
remove node from abstraction
Implemented in clusterAbstraction, loadedCliqueAbstraction, mapCliqueAbstraction, mapFlatAbstraction, MapLineAbstraction, mapQuadTreeAbstraction, NodeLimitAbstraction, and radiusAbstraction. |
|
|
This must be called after any of the above add/remove operations. But the operations can be stacked followed by a single repairAbstraction call. Implemented in clusterAbstraction, loadedCliqueAbstraction, mapCliqueAbstraction, mapFlatAbstraction, MapLineAbstraction, mapQuadTreeAbstraction, NodeLimitAbstraction, and radiusAbstraction. |
|
|
verify that the hierarchy is consistent
Implemented in clusterAbstraction, loadedCliqueAbstraction, mapCliqueAbstraction, mapFlatAbstraction, MapLineAbstraction, mapQuadTreeAbstraction, NodeLimitAbstraction, and radiusAbstraction. |
|
||||||||||||
|
|
|
|
|
1.3.4