/usr/share/doc/postgresql-9.5-pgrouting-doc/html/en/_sources/src/astar/doc/index.txt is in postgresql-9.5-pgrouting-doc 2.1.0-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 | ..
****************************************************************************
pgRouting Manual
Copyright(c) pgRouting Contributors
This documentation is licensed under a Creative Commons Attribution-Share
Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/
****************************************************************************
.. _pgr_astar:
pgr_astar - Shortest Path A*
===============================================================================
.. index::
single: pgr_astar(text,integer,integer,boolean,boolean)
module: astar
Name
-------------------------------------------------------------------------------
``pgr_astar`` — Returns the shortest path using A* algorithm.
Synopsis
-------------------------------------------------------------------------------
The A* (pronounced "A Star") algorithm is based on Dijkstra's algorithm with a heuristic that allow it to solve most shortest path problems by evaluation only a sub-set of the overall graph. Returns a set of :ref:`pgr_costResult <type_cost_result>` (seq, id1, id2, cost) rows, that make up a path.
.. code-block:: sql
pgr_costResult[] pgr_astar(sql text, source integer, target integer,
directed boolean, has_rcost boolean);
Description
-------------------------------------------------------------------------------
:sql: a SQL query, which should return a set of rows with the following columns:
.. code-block:: sql
SELECT id, source, target, cost, x1, y1, x2, y2 [,reverse_cost] FROM edge_table
:id: ``int4`` identifier of the edge
:source: ``int4`` identifier of the source vertex
:target: ``int4`` identifier of the target vertex
:cost: ``float8`` value, of the edge traversal cost. A negative cost will prevent the edge from being inserted in the graph.
:x1: ``x`` coordinate of the start point of the edge
:y1: ``y`` coordinate of the start point of the edge
:x2: ``x`` coordinate of the end point of the edge
:y2: ``y`` coordinate of the end point of the edge
:reverse_cost: (optional) the cost for the reverse traversal of the edge. This is only used when the ``directed`` and ``has_rcost`` parameters are ``true`` (see the above remark about negative costs).
:source: ``int4`` id of the start point
:target: ``int4`` id of the end point
:directed: ``true`` if the graph is directed
:has_rcost: if ``true``, the ``reverse_cost`` column of the SQL generated set of rows will be used for the cost of the traversal of the edge in the opposite direction.
Returns set of :ref:`type_cost_result`:
:seq: row sequence
:id1: node ID
:id2: edge ID (``-1`` for the last row)
:cost: cost to traverse from ``id1`` using ``id2``
.. rubric:: History
* Renamed in version 2.0.0
Examples
-------------------------------------------------------------------------------
* Without ``reverse_cost``
.. code-block:: sql
SELECT seq, id1 AS node, id2 AS edge, cost
FROM pgr_astar(
'SELECT id, source, target, cost, x1, y1, x2, y2 FROM edge_table',
4, 1, false, false
);
seq | node | edge | cost
-----+------+------+------
0 | 4 | 16 | 1
1 | 9 | 9 | 1
2 | 6 | 8 | 1
3 | 5 | 4 | 1
4 | 2 | 1 | 1
5 | 1 | -1 | 0
(6 rows)
* With ``reverse_cost``
.. code-block:: sql
SELECT seq, id1 AS node, id2 AS edge, cost
FROM pgr_astar(
'SELECT id, source, target, cost, x1, y1, x2, y2, reverse_cost FROM edge_table',
4, 1, true, true
);
seq | node | edge | cost
-----+------+------+------
0 | 4 | 3 | 1
1 | 3 | 2 | 1
2 | 2 | 1 | 1
3 | 1 | -1 | 0
(4 rows)
The queries use the :ref:`sampledata` network.
See Also
-------------------------------------------------------------------------------
* :ref:`type_cost_result`
* http://en.wikipedia.org/wiki/A*_search_algorithm
|