phpalgorithms/dijkstra

Implementation of Dijkstra's algorithm.

v3.0.1-alpha.1 2016-06-09 09:54 UTC

README

My implementation of famous the algorithm for finding the shortest paths in a graph. Discovered by Edsger Dijkstra.

Composer

Use in your console

composer require phpalgorithms/dijkstra

How to use

Create connections between points

    $dijkstra = new \PHPAlgorithms\Dijkstra(function (\PHPAlgorithms\Dijkstra\Creator $creator) {
        $creator->addPoint('start');

        $creator->addPoint('another one')
                ->addDoubleRelation($creator->getPoint(0), 10)
                ->addRelation($creator->addPoint(), 3);
    });

Generate paths from first point

    [...]

    print_r($dijkstra->generate(0)); // \PHPAlgorithms\Dijkstra\Path object

Generate paths for all points

    [...]

    print_r($dijkstra->generateAll()); // array of \PHPAlgorithms\Dijkstra\Path objects

Path object important parameters

    [...]

    print_r($pathObj->distance); // how is the path long
    print_r($pathObj->nodes); // all points in this path