graph.tasks

## Class DijkstraShortestPath

- java.lang.Object
- - graph.tasks.DijkstraShortestPath

- All Implemented Interfaces:
    ShortestPath

      class DijkstraShortestPath
      extends java.lang.Object
      implements ShortestPath

  Implementace Dijkstrova algoritmu hledání nejkratší cesty.

  Popis: Nejkratší cesty se hledají Dijkstrovým algoritmem. Jako prioritní fronta vrcholů je použita halda. Výsledkem hledání je posloupnost vrcholů, kterými nejkratší cesta prochází.

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `(package private) class` | `DijkstraShortestPath.HeapElement` typ prvku prioritní fronty, obaluje vrchol grafu

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `private Graph` | `graph` graf, ve kterém se má hledat nejkratší cesta
    `private JustifiableHeapFactory` | `heapFac` továrna na prioritní fronty
    `private int` | `opCnt` provozní měření
    `private SequenceFactory` | `seqFac` továrna na výslednou posloupnost vrcholů

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `DijkstraShortestPath(Graph aGraph, SequenceFactory aSeqFac, JustifiableHeapFactory aHeapFac)` Vyrobí objekt třídy DijkstraShortestPath.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `private GraphTasksVertex` | `getGraphTaskVertex()`
    `int` | `getOperationCounter()` Provozní měření.
    `Sequence` | `shortestPath(GraphTasksVertex aStart, GraphTasksVertex aTarget)` Najde nejkratší cestu z výchozího do cílového vrcholu.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### graph

          private Graph graph

      graf, ve kterém se má hledat nejkratší cesta

    - #### seqFac

          private SequenceFactory seqFac

      továrna na výslednou posloupnost vrcholů

    - #### heapFac

          private JustifiableHeapFactory heapFac

      továrna na prioritní fronty

    - #### opCnt

          private int opCnt

      provozní měření

  - ### Constructor Detail

    - #### DijkstraShortestPath

          public DijkstraShortestPath(Graph aGraph,
                                      SequenceFactory aSeqFac,
                                      JustifiableHeapFactory aHeapFac)

      Vyrobí objekt třídy DijkstraShortestPath.
      Parameters:
        `aGraph` - graf, ve kterém se má hledat nejkratší cesta
        `aSeqFac` - továrna na posloupnosti (zde výsledná posloupnost vrcholů)
        `aHeapFac` - továrna na haldy (zde prioritní fronta)

  - ### Method Detail

    - #### getGraphTaskVertex

          private GraphTasksVertex getGraphTaskVertex()

    - #### shortestPath

          public Sequence shortestPath(GraphTasksVertex aStart,
                                       GraphTasksVertex aTarget)

      Najde nejkratší cestu z výchozího do cílového vrcholu.
      Specified by:
        `shortestPath` in interface `ShortestPath`
      Parameters:
        `aStart` - výchozí vrchol
        `aTarget` - cílový vrchol
      Returns:
        posloupnost vrcholů v pořadí, jak jimi prochází nejkratší cesta

    - #### getOperationCounter

          public int getOperationCounter()

      Provozní měření.
      Specified by:
        `getOperationCounter` in interface `ShortestPath`
      Returns:
        počet významných operací při posledním běhu Dijkstrova algoritmu