Package graph :: Package algorithms :: Module minmax

Module minmax

Minimization and maximization algorithms.

Functions
list
heuristic_search(graph, start, goal, heuristic)
A* search algorithm.
dictionary
minimal_spanning_tree(graph, root=None)
Minimal spanning tree.
tuple
shortest_path(graph, source)
Return the shortest path distance between source and all other nodes using Dijkstra's algorithm.
Function Details

heuristic_search(graph, start, goal, heuristic)

 

A* search algorithm.

A set of heuristics is available under graph.heuristics. User-created heuristics are allowed too.

Parameters:
  • graph (graph) - Graph
  • start (node) - Start node
  • goal (node) - Goal node
  • heuristic (function) - Heuristic function
Returns: list
Optimized path from start to goal node

minimal_spanning_tree(graph, root=None)

 

Minimal spanning tree.

Parameters:
  • graph (graph) - Graph.
  • root (node) - Optional root node (will explore only root's connected component)
Returns: dictionary
Generated spanning tree.

Attention: Minimal spanning tree meaningful only for weighted graphs.

shortest_path(graph, source)

 

Return the shortest path distance between source and all other nodes using Dijkstra's algorithm.

Parameters:
  • graph (graph) - Graph.
  • source (node) - Node from which to start the search.
Returns: tuple
A tuple containing two dictionaries, each keyed by target nodes.
  1. Shortest path spanning tree
  2. Shortest distance from given source to each target node

Inaccessible target nodes do not appear in either dictionary.

Attention: All weights must be nonnegative.