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.