pygraph.algorithms.heuristics.euclidean.euclidean

Package pygraph :: Package algorithms :: Package heuristics :: Module euclidean :: Class euclidean |

# Class euclidean

A* heuristic for Euclidean graphs.

This heuristic has three requirements:

1. All nodes should have the attribute 'position';
2. The weight of all edges should be the euclidean distance between the nodes it links;
3. The `optimize()` method should be called before the heuristic search.

A small example for clarification:

    >>> g = graph.graph()
    >>> g.add_nodes(['A','B','C'])
    >>> g.add_node_attribute('A', ('position',(0,0)))
    >>> g.add_node_attribute('B', ('position',(1,1)))
    >>> g.add_node_attribute('C', ('position',(0,2)))
    >>> g.add_edge('A','B', wt=2)
    >>> g.add_edge('B','C', wt=2)
    >>> g.add_edge('A','C', wt=4)
    >>> h = graph.heuristics.euclidean()
    >>> h.optimize(g)
    >>> g.heuristic_search('A', 'C', h)

Instance Methods
__init__(self) Initialize the heuristic object. |
optimize(self, graph) Build a dictionary mapping each pair of nodes to a number (the distance between them). |
__call__(self, start, end) Estimate how far start is from end. |
Inherited from `object`: `__delattr__`, `__format__`, `__getattribute__`, `__hash__`, `__new__`, `__reduce__`, `__reduce_ex__`, `__repr__`, `__setattr__`, `__sizeof__`, `__str__`, `__subclasshook__`

Properties
Inherited from `object`: `__class__`

Method Details

### __init__(self) (Constructor) |
Initialize the heuristic object. Overrides: object.__init__

### optimize(self, graph) |
Build a dictionary mapping each pair of nodes to a number (the distance between them). Parameters: `graph` (graph) - Graph.

### __call__(self, start, end) (Call operator) |
Estimate how far start is from end. Parameters: `start` (node) - Start node. `end` (node) - End node.