Metadata-Version: 1.1
Name: graph-algorithms
Version: 0.1
Summary: Common Graph Algorithms Library
Home-page: https://pypi.python.org/pypi/common_algorithms
Author: David McDougall <dam1784[at]rit.edu>
Author-email: dam1784[at]rit.edu
License: The MIT License (MIT)

Copyright (c) 2016 David McDougall

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.


Description: Common Graph Algorithms Library
        
        Library of graph algorithms which operate directly on python data structures.
        
        This library uses a novel API for representing graphs.  Graph vertexes can be 
        any hashable python value and the connectivity between vertexes is
        represented with a callback function.  This callback is named the 'adjacent' 
        function.  The adjacent function has the following form:
        
        def adjacent(vertex):
            '''
            This function returns all vertexes which the given vertex is connected to.
            '''
            return iterable-of-neighboring-vertexes
        
        
        
        Contents:
        
        depth_first_traversal()
            A lazy depth first traversal
        
        depth_first_search()
            A depth first search
        
        iterative_deepening_depth_first_search()
            Searching infinite graphs
        
        a_star()
            Fast optimal pathfinding
        
        topological_sort()
            Dependency resolution.
        
        strongly_connected_components()
            Determines which areas of the graph can reach which other areas.
        
        In the future I would like to implement more algorithms:
        - Minimum Spanning Tree
        - Min-cut/Max-flow
        - Substructure Search
        
        
        Installation note:
        This package optionally uses numpy.
        Numpy is used by some unit tests.
        Numpy is used to calculate A-stars effective branching factor (EBF).
        If numpy is not available then EBF is not reported.
        
        
        Comments and feedback are welcome
        Send to David McDougall  email: dam1784[at]rit.edu
        
Keywords: development,graph
Platform: UNKNOWN
Classifier: Development Status :: 3 - Alpha
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Intended Audience :: Developers
Classifier: Topic :: Software Development
Classifier: Topic :: Software Development :: Libraries
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: Utilities
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.5
