diff --git a/doc/src/pgRouting-introduction.rst b/doc/src/pgRouting-introduction.rst index 427a8242826..e9e2a54d54e 100644 --- a/doc/src/pgRouting-introduction.rst +++ b/doc/src/pgRouting-introduction.rst @@ -66,8 +66,6 @@ This Release Contributors Individuals in this release v3.8.x (in alphabetical order) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -(Alphabetical order) - Aurélie Bousquet, Regina Obe, Vicky Vergara @@ -77,6 +75,10 @@ And all the people that give us a little of their time making comments, finding issues, making pull requests etc. in any of our products: osm2pgrouting, pgRouting, pgRoutingLayer, workshop. +Translators (in alphabetical order) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Dapeng Wang Corporate Sponsors in this release (in alphabetical order) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -87,6 +89,7 @@ direct monetary funding to the pgRouting project: - `OSGeo `__ - `OSGeo UK `__ - `Google Summer of Code `__ +- `HighGo Software `__ - `Paragon Corporation `__ Contributors Past & Present: @@ -110,6 +113,7 @@ Aurélie Bousquet, Cayetano Benavent, Christian Gonzalez, Daniel Kastl, +Dapeng Wang, Dave Potts, David Techer, Denis Rykov, @@ -163,6 +167,7 @@ direct monetary funding to the pgRouting project: - CSIS (University of Tokyo) - Georepublic - Google Summer of Code +- HighGo Software - iMaptools - Leopark - Orkney diff --git a/doc/src/proposed.rst b/doc/src/proposed.rst index 693d0ab7bf8..f790b882839 100644 --- a/doc/src/proposed.rst +++ b/doc/src/proposed.rst @@ -80,12 +80,6 @@ Proposed Functions :start-after: official-start :end-before: official-end -.. rubric:: Utilities - -.. include:: topology-functions.rst - :start-after: utility_proposed-start - :end-before: utility_proposed-end - .. toctree:: :hidden: diff --git a/doc/src/release_notes.rst b/doc/src/release_notes.rst index 80363ea83e1..1ec63b14354 100644 --- a/doc/src/release_notes.rst +++ b/doc/src/release_notes.rst @@ -187,12 +187,7 @@ milestone for 3.8.0 .. rubric:: Promotion to official function of pgRouting. -* `#2772 `__: - Promoted to official pgr_extractVertices in version 3.8 - - .. include:: pgr_extractVertices.rst - :start-after: Version 3.8.0 - :end-before: .. rubric +.. rubric:: Metric * `#2760 `__: Promoted to official pgr_degree in version 3.8 @@ -201,6 +196,15 @@ milestone for 3.8.0 :start-after: Version 3.8.0 :end-before: .. rubric +.. rubric:: Utilities + +* `#2772 `__: + Promoted to official pgr_extractVertices in version 3.8 + + .. include:: pgr_extractVertices.rst + :start-after: Version 3.8.0 + :end-before: .. rubric + * `#2774 `__: Promoted to official pgr_findCloseEdges in version 3.8 @@ -208,23 +212,37 @@ milestone for 3.8.0 :start-after: Version 3.8.0 :end-before: .. rubric +* `#2873 `__: + Promoted to official pgr_separateCrossing in version 3.8 + + .. include:: pgr_separateCrossing.rst + :start-after: Version 3.8.0 + :end-before: Description + +* `#2874 `__: + Promoted to official pgr_separateTouching in version 3.8 + + .. include:: pgr_separateTouching.rst + :start-after: Version 3.8.0 + :end-before: Description + .. rubric:: Proposed functions -* Contraction +.. rubric:: Contraction - * `#2790 `__: - pgr_contractionDeadEnd new contraction function - * `#2791 `__: - pgr_contractionLinear new contraction function - * `#2536 `__: - Support for contraction hierarchies (pgr_contractionHierarchies) +* `#2790 `__: + pgr_contractionDeadEnd new contraction function +* `#2791 `__: + pgr_contractionLinear new contraction function +* `#2536 `__: + Support for contraction hierarchies (pgr_contractionHierarchies) -* Utilities +.. rubric:: Utilities - * `#2848 `__: - Create pgr_separateCrossing new utility function - * `#2849 `__: - Create of pgr_separateTouching new utility function +* `#2848 `__: + Create pgr_separateCrossing new utility function +* `#2849 `__: + Create of pgr_separateTouching new utility function .. rubric:: Official functions changes diff --git a/doc/topology/topology-functions.rst b/doc/topology/topology-functions.rst index 3e500f7f33d..325822b2bb8 100644 --- a/doc/topology/topology-functions.rst +++ b/doc/topology/topology-functions.rst @@ -43,6 +43,8 @@ Utility functions - :doc:`pgr_extractVertices` - Extracts vertex information based on the edge table information. - :doc:`pgr_findCloseEdges` - Finds close edges of points on the fly +- :doc:`pgr_separateCrossing` - Breaks geometries that cross each other. +- :doc:`pgr_separateTouching` - Breaks geometries that (almost) touch each other. .. utility_official-end @@ -50,13 +52,6 @@ Utility functions :start-after: warning-begin :end-before: end-warning -.. utility_proposed-start - -- :doc:`pgr_separateCrossing` - Breaks geometries that cross each other. -- :doc:`pgr_separateTouching` - Breaks geometries that (almost) touch each other. - -.. utility_proposed-end - .. toctree:: :hidden: diff --git a/doc/utilities/pgr_separateCrossing.rst b/doc/utilities/pgr_separateCrossing.rst index 2519744af46..b7ab1ad596a 100644 --- a/doc/utilities/pgr_separateCrossing.rst +++ b/doc/utilities/pgr_separateCrossing.rst @@ -8,8 +8,8 @@ **************************************************************************** .. index:: - single: Utilities ; pgr_separateCrossing - proposed on v3.8.0 - single: separateCrossing - proposed on v3.8.0 + single: Utilities ; pgr_separateCrossing + single: separateCrossing | @@ -23,7 +23,8 @@ do not cross. .. rubric:: Version 3.8.0 -* New proposed function. +* Function promoted to official. +* Proposed function. Description ------------------------------------------------------------------------------- diff --git a/doc/utilities/pgr_separateTouching.rst b/doc/utilities/pgr_separateTouching.rst index e73c6d059b3..ca2e6f318a0 100644 --- a/doc/utilities/pgr_separateTouching.rst +++ b/doc/utilities/pgr_separateTouching.rst @@ -8,8 +8,8 @@ **************************************************************************** .. index:: - single: Utilities ; pgr_separateTouching - proposed on v3.8.0 - single: separateTouching - proposed on v3.8.0 + single: Utilities ; pgr_separateTouching + single: separateTouching | @@ -23,7 +23,8 @@ are properly connected at endpoints .. rubric:: Version 3.8.0 -* New proposed function. +* Function promoted to official. +* Proposed function. Description ------------------------------------------------------------------------------- diff --git a/docqueries/src/test.conf b/docqueries/src/test.conf index dc67159148d..900fd151308 100644 --- a/docqueries/src/test.conf +++ b/docqueries/src/test.conf @@ -3,7 +3,10 @@ %main::tests = ( 'any' => { 'files' => [qw( + concepts.pg + migration.pg sampledata.pg + withPoints-category.pg )], }, ); diff --git a/locale/en/LC_MESSAGES/pgrouting_doc_strings.po b/locale/en/LC_MESSAGES/pgrouting_doc_strings.po index 4c7aa02bb19..05167950247 100644 --- a/locale/en/LC_MESSAGES/pgrouting_doc_strings.po +++ b/locale/en/LC_MESSAGES/pgrouting_doc_strings.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: pgRouting v3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-04-22 23:45+0000\n" +"POT-Creation-Date: 2025-04-29 15:26+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -2772,17 +2772,25 @@ msgstr "" msgid ":doc:`pgr_contractionDeadEnd`" msgstr "" +msgid ":doc:`pgr_contractionLinear`" +msgstr "" + +msgid ":doc:`pgr_contractionHierarchies`" +msgstr "" + msgid "" -"In large graphs, like the road graphs, or electric networks, graph " -"contraction can be used to speed up some graph algorithms. Contraction " -"reduces the size of the graph by removing some of the vertices and edges " -"and, for example, might add edges that represent a sequence of original " -"edges decreasing the total time and space used in graph algorithms." +"In large graphs, like road graphs or electric networks, graph contraction" +" can be used to speed up some graph algorithms. Contraction can reduce " +"the size of the graph by removing some of the vertices and edges and " +"adding edges that represent a sequence of original edges (the original " +"ones can be kept in some methods). In this way, it decreases the total " +"time and space used by graph algorithms, particularly those searching for" +" an optimal path." msgstr "" msgid "" "This implementation gives a flexible framework for adding contraction " -"algorithms in the future, currently, it supports two algorithms:" +"algorithms in the future. Currently, it supports three algorithms." msgstr "" msgid "Dead end contraction" @@ -2791,21 +2799,24 @@ msgstr "" msgid "Linear contraction" msgstr "" -msgid "Allowing the user to:" +msgid "Contraction hierarchies" msgstr "" -msgid "Forbid contraction on a set of nodes." +msgid "" +"The two first ones can be combined through a iterative procedure, via the" +" ``pgr_contraction`` method. The third one is implemented on its own." msgstr "" -msgid "" -"Decide the order of the contraction algorithms and set the maximum number" -" of times they are to be executed." +msgid "All functions allow the user to forbid contraction on a set of nodes." msgstr "" msgid "https://www.cs.cmu.edu/afs/cs/academic/class/15210-f12/www/lectures/lecture16.pdf" msgstr "" -msgid "https://algo2.iti.kit.edu/documents/routeplanning/geisberger_dipl.pdf" +msgid "https://ae.iti.kit.edu/download/diploma_thesis_geisberger.pdf" +msgstr "" + +msgid "https://jlazarsfeld.github.io/ch.150.project/contents/" msgstr "" msgid "Cost - Category" @@ -3379,6 +3390,9 @@ msgstr "" msgid ":doc:`coloring-family`" msgstr "" +msgid ":doc:`contraction-family`" +msgstr "" + msgid ":doc:`transformation-family`" msgstr "" @@ -3797,9 +3811,6 @@ msgstr "" msgid ":doc:`bdDijkstra-family`" msgstr "" -msgid ":doc:`contraction-family`" -msgstr "" - msgid ":doc:`dijkstra-family`" msgstr "" @@ -3860,6 +3871,14 @@ msgstr "" msgid ":doc:`pgr_findCloseEdges` - Finds close edges of points on the fly" msgstr "" +msgid ":doc:`pgr_separateCrossing` - Breaks geometries that cross each other." +msgstr "" + +msgid "" +":doc:`pgr_separateTouching` - Breaks geometries that (almost) touch each " +"other." +msgstr "" + msgid "Functions by categories" msgstr "" @@ -7178,13 +7197,10 @@ msgstr "" msgid "This Release Contributors" msgstr "" -msgid "Individuals in this release v3.7.x (in alphabetical order)" +msgid "Individuals in this release v3.8.x (in alphabetical order)" msgstr "" -msgid "(Alphabetical order)" -msgstr "" - -msgid "Regina Obe, Vicky Vergara" +msgid "Aurélie Bousquet, Regina Obe, Vicky Vergara" msgstr "" msgid "" @@ -7193,6 +7209,12 @@ msgid "" "osm2pgrouting, pgRouting, pgRoutingLayer, workshop." msgstr "" +msgid "Translators (in alphabetical order)" +msgstr "" + +msgid "Dapeng Wang" +msgstr "" + msgid "Corporate Sponsors in this release (in alphabetical order)" msgstr "" @@ -7210,6 +7232,9 @@ msgstr "" msgid "`Google Summer of Code `__" msgstr "" +msgid "`HighGo Software `__" +msgstr "" + msgid "`Paragon Corporation `__" msgstr "" @@ -7222,17 +7247,17 @@ msgstr "" msgid "" "Aasheesh Tiwari, Abhinav Jain, Aditya Pratap Singh, Adrien Berchet, Akio " "Takubo, Andrea Nardelli, Anthony Tasca, Anton Patrushev, Aryan Gupta, " -"Ashraf Hossain, Ashish Kumar, Cayetano Benavent, Christian Gonzalez, " -"Daniel Kastl, Dave Potts, David Techer, Denis Rykov, Ema Miyawaki, " -"Esteban Zimanyi, Florian Thurkow, Frederic Junod, Gerald Fenoy, Gudesa " -"Venkata Sai Akhil, Hang Wu, Himanshu Raj, Imre Samu, Jay Mahadeokar, " -"Jinfu Leng, Kai Behncke, Kishore Kumar, Ko Nagase, Mahmoud Sakr, Manikata" -" Kondeti, Mario Basa, Martin Wiesenhaan, Maxim Dubinin, Maoguang Wang, " -"Mohamed Bakli, Mohamed Zia, Mukul Priya, Nitish Chauhan, Rajat Shinde, " -"Razequl Islam, Regina Obe, Rohith Reddy, Sarthak Agarwal, Shobhit " -"Chaurasia, Sourabh Garg, Stephen Woodbridge, Swapnil Joshi, Sylvain " -"Housseman, Sylvain Pasche, Veenit Kumar, Vidhan Jain, Virginia Vergara, " -"Yige Huang" +"Ashraf Hossain, Ashish Kumar, Aurélie Bousquet, Cayetano Benavent, " +"Christian Gonzalez, Daniel Kastl, Dapeng Wang, Dave Potts, David Techer, " +"Denis Rykov, Ema Miyawaki, Esteban Zimanyi, Florian Thurkow, Frederic " +"Junod, Gerald Fenoy, Gudesa Venkata Sai Akhil, Hang Wu, Himanshu Raj, " +"Imre Samu, Jay Mahadeokar, Jinfu Leng, Kai Behncke, Kishore Kumar, Ko " +"Nagase, Mahmoud Sakr, Manikata Kondeti, Mario Basa, Martin Wiesenhaan, " +"Maxim Dubinin, Maoguang Wang, Mohamed Bakli, Mohamed Zia, Mukul Priya, " +"Nitish Chauhan, Rajat Shinde, Razequl Islam, Regina Obe, Rohith Reddy, " +"Sarthak Agarwal, Shobhit Chaurasia, Sourabh Garg, Stephen Woodbridge, " +"Swapnil Joshi, Sylvain Housseman, Sylvain Pasche, Veenit Kumar, Vidhan " +"Jain, Virginia Vergara, Yige Huang" msgstr "" msgid "Corporate Sponsors (in alphabetical order)" @@ -7250,6 +7275,9 @@ msgstr "" msgid "Google Summer of Code" msgstr "" +msgid "HighGo Software" +msgstr "" + msgid "iMaptools" msgstr "" @@ -9548,6 +9576,315 @@ msgstr "" msgid "Using when departure and destination are not in the contracted graph" msgstr "" +msgid "``pgr_contractionHierarchies`` - Experimental" +msgstr "" + +msgid "" +"``pgr_contractionHierarchies`` — Performs graph contraction according to " +"the contraction hierarchies method and returns the contracted vertices " +"and shortcut edges created." +msgstr "" + +msgid "New **experimental** function" +msgstr "" + +msgid "" +"The contraction hierarchies method builds, from an initial order of the " +"vertices, a hierarchical order, giving priority to some vertices during " +"the processing of label fixing of shortest paths algorithms. Furthermore," +" the contraction hierarchies algorithm adds shortcut edges in the graph, " +"that helps the shortest paths algorithm to follow the created " +"hierarchical graph structure." +msgstr "" + +msgid "" +"The idea of the hierarchy is to put at a high priority level vertices " +"that belong to the long distance network (highways for example in a road " +"network) and to a low level of priority nodes that belong to the short " +"distance network (arterials or secondary roads for example in road " +"networks)." +msgstr "" + +msgid "" +"The contraction hierarchies algorithm makes the assumption that there is " +"already a valuable vertices order that is used to initialize the " +"contraction process. As in most cases there is no valuable initial node " +"ordering, we use the order given by vertices ID. Then, the contraction " +"process is made on the basis of this first order to give the final " +"hierarchy." +msgstr "" + +msgid "" +"The basic idea is to keep the vertices in a priority queue sorted by some" +" estimate of how attractive is their contraction. The implemented case " +"uses the metric called *edge difference*, which corresponds to the " +"difference between the number of shortcuts produced by a vertex " +"contraction and the number of incident edges in the graph before " +"contraction (``#shortcuts - #incident edges``)." +msgstr "" + +msgid "" +"Finally, the aim is to reduce the explored part of the graph, when using " +"a bidirectional Dijkstra-like algorithm. The vertices order is used to " +"feed the oriented search. The search is made without losing optimality." +msgstr "" + +msgid "" +"Finding an optimal vertices ordering for contraction is a difficult " +"problem. Nevertheless, very simple local heuristics work quite well, " +"according to Geisberger et al. [2]. The principle here is to a priori " +"estimate the value of the *edge difference* and to contract the node at " +"the top of the queue only if the new value of the metric keeps it at the " +"top of the queue. Otherwise, it is reinserted in the queue, at its right " +"place corresponding to the new metric value." +msgstr "" + +msgid "The process is done on graphs having only edges with positive costs." +msgstr "" + +msgid "" +"It is necessary to remember that there are no deleted vertices with this " +"function. At the end, the graph keeps every vertex it had, but has some " +"added edges, corresponding to shortcuts. The vertices which have been " +"contracted, to build the shortcut edges, are kept and hierarchically " +"ordered." +msgstr "" + +msgid "" +"As for the other contraction methods, it does not return the full " +"contracted graph, only the changes. They are here of two types:" +msgstr "" + +msgid "added shortcut edges, with negative identifiers;" +msgstr "" + +msgid "contracted nodes with an order." +msgstr "" + +msgid "The ``pgr_contractionHierarchies`` function has the following signature:" +msgstr "" + +msgid "pgr_contractionHierarchies(`Edges SQL`_, [**options**])" +msgstr "" + +msgid "Returns set of |result-contraction-hierarchies|" +msgstr "" + +msgid "Contraction hierarchies optional parameters" +msgstr "" + +msgid "True if the graph is directed, False otherwise." +msgstr "" + +msgid "" +"The function returns many rows (one per vertex and one per shortcut edge " +"created). The columns of the rows are:" +msgstr "" + +msgid "Type of the ``id``." +msgstr "" + +msgid "Column ``id`` has a positive value" +msgstr "" + +msgid "Column ``id`` has a negative value" +msgstr "" + +msgid "``metric``" +msgstr "" + +msgid "``vertex_order``" +msgstr "" + +msgid "Examples" +msgstr "" + +msgid "On an undirected graph" +msgstr "" + +msgid "" +"The following query shows the original data involved in the contraction " +"operation on an undirected graph." +msgstr "" + +msgid "building contraction hierarchies on the whole graph" +msgstr "" + +msgid "" +"The results do not represent the contracted graph. They represent the " +"changes done to the graph after applying the contraction algorithm and " +"give the vertex order built by the algorithm, by ordering vertices " +"according to the *edge difference* metric. As a consequence, vertices are" +" all represented in the result (except of course forbidden ones). Only " +"shortcut built by the algorithm are represented in the result." +msgstr "" + +msgid "" +"After computing the contraction hierarchies, an order is now given to the" +" vertices," +msgstr "" + +msgid "" +"in order to be used with a specific Dijkstra algorithm (implementation " +"coming in a future version), which speeds up the search." +msgstr "" + +msgid "We obtain the contracted graph above:" +msgstr "" + +msgid "" +"We can see without surprise that the vertices belonging to the shortcuts " +"have a tendency to have a high priority level in the resulting vertices " +"order." +msgstr "" + +msgid "On an undirected graph with forbidden vertices" +msgstr "" + +msgid "building contraction with a set of forbidden vertices" +msgstr "" + +msgid "Contraction process steps details" +msgstr "" + +msgid "Shortcut building process" +msgstr "" + +msgid "" +"A vertex ``v`` is contracted by adding shortcuts replacing former paths " +"of the form ``(u, v, w)`` by an edge ``(u, w)``. The shortcut ``(u, w)`` " +"is only needed when ``(u, v, w)`` is the only shortest path between ``u``" +" and ``w``." +msgstr "" + +msgid "" +"When all shortcuts have been added for a given vertex ``v``, the incident" +" edges of ``v`` are removed and another vertex is contracted with the " +"remaining graph." +msgstr "" + +msgid "" +"The procedure is destructive for the graph and a copy is made to be able " +"to manipulate it again as a whole. The contraction process adds all " +"discovered shortcuts to the edge set ``E`` and attributes a metric to " +"each contracted vertex. This metric is giving what is called the " +"*contraction hierarchy*." +msgstr "" + +msgid "Initialize the queue with a first vertices order" +msgstr "" + +msgid "For each vertex ``v`` of the graph, a contraction of ``v`` is built:" +msgstr "" + +msgid ":math:`v`" +msgstr "" + +#, python-brace-format +msgid ":math:`\\{p, r, u\\}`" +msgstr "" + +msgid ":math:`p`" +msgstr "" + +#, python-brace-format +msgid ":math:`\\{u, v\\}`" +msgstr "" + +msgid ":math:`u`" +msgstr "" + +#, python-brace-format +msgid ":math:`\\{p, v, w\\}`" +msgstr "" + +msgid ":math:`r`" +msgstr "" + +#, python-brace-format +msgid ":math:`\\{v, w\\}`" +msgstr "" + +msgid ":math:`w`" +msgstr "" + +#, python-brace-format +msgid ":math:`\\{r, u\\}`" +msgstr "" + +msgid "Adjacent edges are removed." +msgstr "" + +msgid "" +"Shortcuts are built from predecessors of ``v`` to successors of ``v`` if " +"and only if the path through ``v`` corresponds to the only shortest path " +"between the predecessor and the successor of ``v`` in the graph. The " +"*edge difference* metric here takes the value of -2." +msgstr "" + +msgid "" +"Then the following vertex is contracted. The process goes on until each " +"node of the graph has been contracted. At the end, there are no more " +"edges in the graph, which has been destroyed by the process." +msgstr "" + +msgid "" +"This first contraction will give a vertices order, given by ordering them" +" in ascending order on the metric (edge difference). A total vertices " +"order is built. If ``u < v``, then ``u`` is less important than ``v``. " +"The algorithm keeps the vertices into a queue in this order." +msgstr "" + +msgid "" +"A hierarchy will now be constructed by contracting again the vertices in " +"this order." +msgstr "" + +msgid "Build the final vertex order" +msgstr "" + +msgid "" +"Once the first order built, the algorithm uses it to browse the graph " +"once again. For each vertex taken in the queue, the algorithm simulates " +"contraction and calculates its edge difference. If the computed value is " +"greater than the one of the next vertex to be contracted, then the " +"algorithm puts it back in the queue (heuristic approach). Otherwise it " +"contracts it permanently." +msgstr "" + +msgid "Add shortcuts to the initial graph" +msgstr "" + +msgid "" +"At the end, the algorithm takes the initial graph (before edges " +"deletions) and adds the shortcut edges to it. It gives you the contracted" +" graph, ready to use with a specialized Dijkstra algorithm, which takes " +"into account the order of the nodes in the hierarchy." +msgstr "" + +msgid "Use the contraction" +msgstr "" + +msgid "Build the contraction" +msgstr "" + +msgid "Add shortcuts and hierarchy in the existing tables" +msgstr "" + +msgid "Add new columns in the `vertices` and `edges` tables to store the results:" +msgstr "" + +msgid "Update and insert the results in the two tables." +msgstr "" + +msgid "Use a Dijkstra shortest path algorithm on it" +msgstr "" + +msgid "" +"Then you can use any Dijkstra-like algorithm, waiting for the adapted one" +" which will take into account the built vertices hierarchy. For example:" +msgstr "" + msgid "``pgr_contractionLinear`` - Proposed" msgstr "" @@ -12890,9 +13227,6 @@ msgstr "" msgid "``geometry`` Geometry column of the noded network" msgstr "" -msgid "Examples" -msgstr "" - msgid "Create the topology for the data in :doc:`sampledata`" msgstr "" @@ -13250,6 +13584,9 @@ msgid "" "that do not cross." msgstr "" +msgid "Proposed function." +msgstr "" + msgid "This is an auxiliary function for separating crossing edges." msgstr "" @@ -14906,14 +15243,6 @@ msgid "" "Graph." msgstr "" -msgid ":doc:`pgr_separateCrossing` - Breaks geometries that cross each other." -msgstr "" - -msgid "" -":doc:`pgr_separateTouching` - Breaks geometries that (almost) touch each " -"other." -msgstr "" - msgid ":doc:`withPoints-family` - Functions based on Dijkstra algorithm." msgstr "" @@ -14965,9 +15294,7 @@ msgstr "" msgid "Promotion to official function of pgRouting." msgstr "" -msgid "" -"`#2772 `__: Promoted " -"to official pgr_extractVertices in version 3.8" +msgid "Metric" msgstr "" msgid "" @@ -14975,11 +15302,26 @@ msgid "" "to official pgr_degree in version 3.8" msgstr "" +msgid "" +"`#2772 `__: Promoted " +"to official pgr_extractVertices in version 3.8" +msgstr "" + msgid "" "`#2774 `__: Promoted " "to official pgr_findCloseEdges in version 3.8" msgstr "" +msgid "" +"`#2873 `__: Promoted " +"to official pgr_separateCrossing in version 3.8" +msgstr "" + +msgid "" +"`#2874 `__: Promoted " +"to official pgr_separateTouching in version 3.8" +msgstr "" + msgid "Proposed functions" msgstr "" @@ -14996,6 +15338,11 @@ msgid "" "pgr_contractionLinear new contraction function" msgstr "" +msgid "" +"`#2536 `__: Support " +"for contraction hierarchies (pgr_contractionHierarchies)" +msgstr "" + msgid "" "`#2848 `__: Create " "pgr_separateCrossing new utility function" @@ -15022,6 +15369,11 @@ msgid "" "reorganization on pgr_contraction" msgstr "" +msgid "" +"Other enhancements: `#2869 " +"`__" +msgstr "" + msgid "SQL code enhancements" msgstr "" diff --git a/locale/pot/pgrouting_doc_strings.pot b/locale/pot/pgrouting_doc_strings.pot index 518efcf2d79..3c8b1ee0b67 100644 --- a/locale/pot/pgrouting_doc_strings.pot +++ b/locale/pot/pgrouting_doc_strings.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: pgRouting v4.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-04-22 23:45+0000\n" +"POT-Creation-Date: 2025-04-29 15:26+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -2557,10 +2557,16 @@ msgstr "" msgid ":doc:`pgr_contractionDeadEnd`" msgstr "" -msgid "In large graphs, like the road graphs, or electric networks, graph contraction can be used to speed up some graph algorithms. Contraction reduces the size of the graph by removing some of the vertices and edges and, for example, might add edges that represent a sequence of original edges decreasing the total time and space used in graph algorithms." +msgid ":doc:`pgr_contractionLinear`" msgstr "" -msgid "This implementation gives a flexible framework for adding contraction algorithms in the future, currently, it supports two algorithms:" +msgid ":doc:`pgr_contractionHierarchies`" +msgstr "" + +msgid "In large graphs, like road graphs or electric networks, graph contraction can be used to speed up some graph algorithms. Contraction can reduce the size of the graph by removing some of the vertices and edges and adding edges that represent a sequence of original edges (the original ones can be kept in some methods). In this way, it decreases the total time and space used by graph algorithms, particularly those searching for an optimal path." +msgstr "" + +msgid "This implementation gives a flexible framework for adding contraction algorithms in the future. Currently, it supports three algorithms." msgstr "" msgid "Dead end contraction" @@ -2569,19 +2575,22 @@ msgstr "" msgid "Linear contraction" msgstr "" -msgid "Allowing the user to:" +msgid "Contraction hierarchies" msgstr "" -msgid "Forbid contraction on a set of nodes." +msgid "The two first ones can be combined through a iterative procedure, via the ``pgr_contraction`` method. The third one is implemented on its own." msgstr "" -msgid "Decide the order of the contraction algorithms and set the maximum number of times they are to be executed." +msgid "All functions allow the user to forbid contraction on a set of nodes." msgstr "" msgid "https://www.cs.cmu.edu/afs/cs/academic/class/15210-f12/www/lectures/lecture16.pdf" msgstr "" -msgid "https://algo2.iti.kit.edu/documents/routeplanning/geisberger_dipl.pdf" +msgid "https://ae.iti.kit.edu/download/diploma_thesis_geisberger.pdf" +msgstr "" + +msgid "https://jlazarsfeld.github.io/ch.150.project/contents/" msgstr "" msgid "Cost - Category" @@ -3064,6 +3073,9 @@ msgstr "" msgid ":doc:`coloring-family`" msgstr "" +msgid ":doc:`contraction-family`" +msgstr "" + msgid ":doc:`transformation-family`" msgstr "" @@ -3406,9 +3418,6 @@ msgstr "" msgid ":doc:`bdDijkstra-family`" msgstr "" -msgid ":doc:`contraction-family`" -msgstr "" - msgid ":doc:`dijkstra-family`" msgstr "" @@ -3463,6 +3472,12 @@ msgstr "" msgid ":doc:`pgr_findCloseEdges` - Finds close edges of points on the fly" msgstr "" +msgid ":doc:`pgr_separateCrossing` - Breaks geometries that cross each other." +msgstr "" + +msgid ":doc:`pgr_separateTouching` - Breaks geometries that (almost) touch each other." +msgstr "" + msgid "Functions by categories" msgstr "" @@ -6280,16 +6295,19 @@ msgstr "" msgid "This Release Contributors" msgstr "" -msgid "Individuals in this release v3.7.x (in alphabetical order)" +msgid "Individuals in this release v3.8.x (in alphabetical order)" msgstr "" -msgid "(Alphabetical order)" +msgid "Aurélie Bousquet, Regina Obe, Vicky Vergara" msgstr "" -msgid "Regina Obe, Vicky Vergara" +msgid "And all the people that give us a little of their time making comments, finding issues, making pull requests etc. in any of our products: osm2pgrouting, pgRouting, pgRoutingLayer, workshop." msgstr "" -msgid "And all the people that give us a little of their time making comments, finding issues, making pull requests etc. in any of our products: osm2pgrouting, pgRouting, pgRoutingLayer, workshop." +msgid "Translators (in alphabetical order)" +msgstr "" + +msgid "Dapeng Wang" msgstr "" msgid "Corporate Sponsors in this release (in alphabetical order)" @@ -6307,6 +6325,9 @@ msgstr "" msgid "`Google Summer of Code `__" msgstr "" +msgid "`HighGo Software `__" +msgstr "" + msgid "`Paragon Corporation `__" msgstr "" @@ -6316,7 +6337,7 @@ msgstr "" msgid "Individuals (in alphabetical order)" msgstr "" -msgid "Aasheesh Tiwari, Abhinav Jain, Aditya Pratap Singh, Adrien Berchet, Akio Takubo, Andrea Nardelli, Anthony Tasca, Anton Patrushev, Aryan Gupta, Ashraf Hossain, Ashish Kumar, Cayetano Benavent, Christian Gonzalez, Daniel Kastl, Dave Potts, David Techer, Denis Rykov, Ema Miyawaki, Esteban Zimanyi, Florian Thurkow, Frederic Junod, Gerald Fenoy, Gudesa Venkata Sai Akhil, Hang Wu, Himanshu Raj, Imre Samu, Jay Mahadeokar, Jinfu Leng, Kai Behncke, Kishore Kumar, Ko Nagase, Mahmoud Sakr, Manikata Kondeti, Mario Basa, Martin Wiesenhaan, Maxim Dubinin, Maoguang Wang, Mohamed Bakli, Mohamed Zia, Mukul Priya, Nitish Chauhan, Rajat Shinde, Razequl Islam, Regina Obe, Rohith Reddy, Sarthak Agarwal, Shobhit Chaurasia, Sourabh Garg, Stephen Woodbridge, Swapnil Joshi, Sylvain Housseman, Sylvain Pasche, Veenit Kumar, Vidhan Jain, Virginia Vergara, Yige Huang" +msgid "Aasheesh Tiwari, Abhinav Jain, Aditya Pratap Singh, Adrien Berchet, Akio Takubo, Andrea Nardelli, Anthony Tasca, Anton Patrushev, Aryan Gupta, Ashraf Hossain, Ashish Kumar, Aurélie Bousquet, Cayetano Benavent, Christian Gonzalez, Daniel Kastl, Dapeng Wang, Dave Potts, David Techer, Denis Rykov, Ema Miyawaki, Esteban Zimanyi, Florian Thurkow, Frederic Junod, Gerald Fenoy, Gudesa Venkata Sai Akhil, Hang Wu, Himanshu Raj, Imre Samu, Jay Mahadeokar, Jinfu Leng, Kai Behncke, Kishore Kumar, Ko Nagase, Mahmoud Sakr, Manikata Kondeti, Mario Basa, Martin Wiesenhaan, Maxim Dubinin, Maoguang Wang, Mohamed Bakli, Mohamed Zia, Mukul Priya, Nitish Chauhan, Rajat Shinde, Razequl Islam, Regina Obe, Rohith Reddy, Sarthak Agarwal, Shobhit Chaurasia, Sourabh Garg, Stephen Woodbridge, Swapnil Joshi, Sylvain Housseman, Sylvain Pasche, Veenit Kumar, Vidhan Jain, Virginia Vergara, Yige Huang" msgstr "" msgid "Corporate Sponsors (in alphabetical order)" @@ -6334,6 +6355,9 @@ msgstr "" msgid "Google Summer of Code" msgstr "" +msgid "HighGo Software" +msgstr "" + msgid "iMaptools" msgstr "" @@ -8248,6 +8272,213 @@ msgstr "" msgid "Using when departure and destination are not in the contracted graph" msgstr "" +msgid "``pgr_contractionHierarchies`` - Experimental" +msgstr "" + +msgid "``pgr_contractionHierarchies`` — Performs graph contraction according to the contraction hierarchies method and returns the contracted vertices and shortcut edges created." +msgstr "" + +msgid "New **experimental** function" +msgstr "" + +msgid "The contraction hierarchies method builds, from an initial order of the vertices, a hierarchical order, giving priority to some vertices during the processing of label fixing of shortest paths algorithms. Furthermore, the contraction hierarchies algorithm adds shortcut edges in the graph, that helps the shortest paths algorithm to follow the created hierarchical graph structure." +msgstr "" + +msgid "The idea of the hierarchy is to put at a high priority level vertices that belong to the long distance network (highways for example in a road network) and to a low level of priority nodes that belong to the short distance network (arterials or secondary roads for example in road networks)." +msgstr "" + +msgid "The contraction hierarchies algorithm makes the assumption that there is already a valuable vertices order that is used to initialize the contraction process. As in most cases there is no valuable initial node ordering, we use the order given by vertices ID. Then, the contraction process is made on the basis of this first order to give the final hierarchy." +msgstr "" + +msgid "The basic idea is to keep the vertices in a priority queue sorted by some estimate of how attractive is their contraction. The implemented case uses the metric called *edge difference*, which corresponds to the difference between the number of shortcuts produced by a vertex contraction and the number of incident edges in the graph before contraction (``#shortcuts - #incident edges``)." +msgstr "" + +msgid "Finally, the aim is to reduce the explored part of the graph, when using a bidirectional Dijkstra-like algorithm. The vertices order is used to feed the oriented search. The search is made without losing optimality." +msgstr "" + +msgid "Finding an optimal vertices ordering for contraction is a difficult problem. Nevertheless, very simple local heuristics work quite well, according to Geisberger et al. [2]. The principle here is to a priori estimate the value of the *edge difference* and to contract the node at the top of the queue only if the new value of the metric keeps it at the top of the queue. Otherwise, it is reinserted in the queue, at its right place corresponding to the new metric value." +msgstr "" + +msgid "The process is done on graphs having only edges with positive costs." +msgstr "" + +msgid "It is necessary to remember that there are no deleted vertices with this function. At the end, the graph keeps every vertex it had, but has some added edges, corresponding to shortcuts. The vertices which have been contracted, to build the shortcut edges, are kept and hierarchically ordered." +msgstr "" + +msgid "As for the other contraction methods, it does not return the full contracted graph, only the changes. They are here of two types:" +msgstr "" + +msgid "added shortcut edges, with negative identifiers;" +msgstr "" + +msgid "contracted nodes with an order." +msgstr "" + +msgid "The ``pgr_contractionHierarchies`` function has the following signature:" +msgstr "" + +msgid "pgr_contractionHierarchies(`Edges SQL`_, [**options**])" +msgstr "" + +msgid "Returns set of |result-contraction-hierarchies|" +msgstr "" + +msgid "Contraction hierarchies optional parameters" +msgstr "" + +msgid "True if the graph is directed, False otherwise." +msgstr "" + +msgid "The function returns many rows (one per vertex and one per shortcut edge created). The columns of the rows are:" +msgstr "" + +msgid "Type of the ``id``." +msgstr "" + +msgid "Column ``id`` has a positive value" +msgstr "" + +msgid "Column ``id`` has a negative value" +msgstr "" + +msgid "``metric``" +msgstr "" + +msgid "``vertex_order``" +msgstr "" + +msgid "Examples" +msgstr "" + +msgid "On an undirected graph" +msgstr "" + +msgid "The following query shows the original data involved in the contraction operation on an undirected graph." +msgstr "" + +msgid "building contraction hierarchies on the whole graph" +msgstr "" + +msgid "The results do not represent the contracted graph. They represent the changes done to the graph after applying the contraction algorithm and give the vertex order built by the algorithm, by ordering vertices according to the *edge difference* metric. As a consequence, vertices are all represented in the result (except of course forbidden ones). Only shortcut built by the algorithm are represented in the result." +msgstr "" + +msgid "After computing the contraction hierarchies, an order is now given to the vertices," +msgstr "" + +msgid "in order to be used with a specific Dijkstra algorithm (implementation coming in a future version), which speeds up the search." +msgstr "" + +msgid "We obtain the contracted graph above:" +msgstr "" + +msgid "We can see without surprise that the vertices belonging to the shortcuts have a tendency to have a high priority level in the resulting vertices order." +msgstr "" + +msgid "On an undirected graph with forbidden vertices" +msgstr "" + +msgid "building contraction with a set of forbidden vertices" +msgstr "" + +msgid "Contraction process steps details" +msgstr "" + +msgid "Shortcut building process" +msgstr "" + +msgid "A vertex ``v`` is contracted by adding shortcuts replacing former paths of the form ``(u, v, w)`` by an edge ``(u, w)``. The shortcut ``(u, w)`` is only needed when ``(u, v, w)`` is the only shortest path between ``u`` and ``w``." +msgstr "" + +msgid "When all shortcuts have been added for a given vertex ``v``, the incident edges of ``v`` are removed and another vertex is contracted with the remaining graph." +msgstr "" + +msgid "The procedure is destructive for the graph and a copy is made to be able to manipulate it again as a whole. The contraction process adds all discovered shortcuts to the edge set ``E`` and attributes a metric to each contracted vertex. This metric is giving what is called the *contraction hierarchy*." +msgstr "" + +msgid "Initialize the queue with a first vertices order" +msgstr "" + +msgid "For each vertex ``v`` of the graph, a contraction of ``v`` is built:" +msgstr "" + +msgid ":math:`v`" +msgstr "" + +msgid ":math:`\\{p, r, u\\}`" +msgstr "" + +msgid ":math:`p`" +msgstr "" + +msgid ":math:`\\{u, v\\}`" +msgstr "" + +msgid ":math:`u`" +msgstr "" + +msgid ":math:`\\{p, v, w\\}`" +msgstr "" + +msgid ":math:`r`" +msgstr "" + +msgid ":math:`\\{v, w\\}`" +msgstr "" + +msgid ":math:`w`" +msgstr "" + +msgid ":math:`\\{r, u\\}`" +msgstr "" + +msgid "Adjacent edges are removed." +msgstr "" + +msgid "Shortcuts are built from predecessors of ``v`` to successors of ``v`` if and only if the path through ``v`` corresponds to the only shortest path between the predecessor and the successor of ``v`` in the graph. The *edge difference* metric here takes the value of -2." +msgstr "" + +msgid "Then the following vertex is contracted. The process goes on until each node of the graph has been contracted. At the end, there are no more edges in the graph, which has been destroyed by the process." +msgstr "" + +msgid "This first contraction will give a vertices order, given by ordering them in ascending order on the metric (edge difference). A total vertices order is built. If ``u < v``, then ``u`` is less important than ``v``. The algorithm keeps the vertices into a queue in this order." +msgstr "" + +msgid "A hierarchy will now be constructed by contracting again the vertices in this order." +msgstr "" + +msgid "Build the final vertex order" +msgstr "" + +msgid "Once the first order built, the algorithm uses it to browse the graph once again. For each vertex taken in the queue, the algorithm simulates contraction and calculates its edge difference. If the computed value is greater than the one of the next vertex to be contracted, then the algorithm puts it back in the queue (heuristic approach). Otherwise it contracts it permanently." +msgstr "" + +msgid "Add shortcuts to the initial graph" +msgstr "" + +msgid "At the end, the algorithm takes the initial graph (before edges deletions) and adds the shortcut edges to it. It gives you the contracted graph, ready to use with a specialized Dijkstra algorithm, which takes into account the order of the nodes in the hierarchy." +msgstr "" + +msgid "Use the contraction" +msgstr "" + +msgid "Build the contraction" +msgstr "" + +msgid "Add shortcuts and hierarchy in the existing tables" +msgstr "" + +msgid "Add new columns in the `vertices` and `edges` tables to store the results:" +msgstr "" + +msgid "Update and insert the results in the two tables." +msgstr "" + +msgid "Use a Dijkstra shortest path algorithm on it" +msgstr "" + +msgid "Then you can use any Dijkstra-like algorithm, waiting for the adapted one which will take into account the built vertices hierarchy. For example:" +msgstr "" + msgid "``pgr_contractionLinear`` - Proposed" msgstr "" @@ -11020,9 +11251,6 @@ msgstr "" msgid "``geometry`` Geometry column of the noded network" msgstr "" -msgid "Examples" -msgstr "" - msgid "Create the topology for the data in :doc:`sampledata`" msgstr "" @@ -11341,6 +11569,9 @@ msgstr "" msgid "``pgr_separateCrossing`` - From crossing geometries generates geometries that do not cross." msgstr "" +msgid "Proposed function." +msgstr "" + msgid "This is an auxiliary function for separating crossing edges." msgstr "" @@ -12616,12 +12847,6 @@ msgstr "" msgid ":doc:`pgr_lineGraph` - Transformation algorithm for generating a Line Graph." msgstr "" -msgid ":doc:`pgr_separateCrossing` - Breaks geometries that cross each other." -msgstr "" - -msgid ":doc:`pgr_separateTouching` - Breaks geometries that (almost) touch each other." -msgstr "" - msgid ":doc:`withPoints-family` - Functions based on Dijkstra algorithm." msgstr "" @@ -12667,15 +12892,24 @@ msgstr "" msgid "Promotion to official function of pgRouting." msgstr "" -msgid "`#2772 `__: Promoted to official pgr_extractVertices in version 3.8" +msgid "Metric" msgstr "" msgid "`#2760 `__: Promoted to official pgr_degree in version 3.8" msgstr "" +msgid "`#2772 `__: Promoted to official pgr_extractVertices in version 3.8" +msgstr "" + msgid "`#2774 `__: Promoted to official pgr_findCloseEdges in version 3.8" msgstr "" +msgid "`#2873 `__: Promoted to official pgr_separateCrossing in version 3.8" +msgstr "" + +msgid "`#2874 `__: Promoted to official pgr_separateTouching in version 3.8" +msgstr "" + msgid "Proposed functions" msgstr "" @@ -12688,6 +12922,9 @@ msgstr "" msgid "`#2791 `__: pgr_contractionLinear new contraction function" msgstr "" +msgid "`#2536 `__: Support for contraction hierarchies (pgr_contractionHierarchies)" +msgstr "" + msgid "`#2848 `__: Create pgr_separateCrossing new utility function" msgstr "" @@ -12706,6 +12943,9 @@ msgstr "" msgid "`#2802 `__: Code reorganization on pgr_contraction" msgstr "" +msgid "Other enhancements: `#2869 `__" +msgstr "" + msgid "SQL code enhancements" msgstr "" diff --git a/sql/contraction/contractionHierarchies.sql b/sql/contraction/contractionHierarchies.sql index 0784de777e0..2879eb28ebc 100644 --- a/sql/contraction/contractionHierarchies.sql +++ b/sql/contraction/contractionHierarchies.sql @@ -63,7 +63,7 @@ LANGUAGE SQL VOLATILE STRICT; COMMENT ON FUNCTION pgr_contractionHierarchies(TEXT, BOOLEAN, BIGINT[]) IS 'pgr_contractionHierarchies -EXPERIMENTAL +- EXPERIMENTAL - Parameters: - Edges SQL with columns: id, source, target, cost [,reverse_cost] - Optional Parameters diff --git a/sql/contraction/deadEndContraction.sql b/sql/contraction/deadEndContraction.sql index c6cfa7437f4..80c8cd6a978 100644 --- a/sql/contraction/deadEndContraction.sql +++ b/sql/contraction/deadEndContraction.sql @@ -44,6 +44,7 @@ LANGUAGE SQL VOLATILE STRICT; COMMENT ON FUNCTION pgr_contractionDeadEnd(TEXT, BOOLEAN, BIGINT[]) IS 'pgr_contractionDeadEnd +- PROPOSED - Parameters: - Edges SQL with columns: id, source, target, cost [,reverse_cost] - Optional Parameters diff --git a/sql/contraction/linearContraction.sql b/sql/contraction/linearContraction.sql index 6fe617a119f..2e41f0191ce 100644 --- a/sql/contraction/linearContraction.sql +++ b/sql/contraction/linearContraction.sql @@ -44,6 +44,7 @@ LANGUAGE SQL VOLATILE STRICT; COMMENT ON FUNCTION pgr_contractionLinear(TEXT, BOOLEAN, BIGINT[]) IS 'pgr_contractionLinear +- PROPOSED - Parameters: - Edges SQL with columns: id, source, target, cost [,reverse_cost] - Optional Parameters diff --git a/sql/lineGraph/lineGraph.sql b/sql/lineGraph/lineGraph.sql index 2d45720cd14..d9ecadac116 100644 --- a/sql/lineGraph/lineGraph.sql +++ b/sql/lineGraph/lineGraph.sql @@ -51,7 +51,7 @@ ROWS 1000; COMMENT ON FUNCTION pgr_lineGraph(TEXT, BOOLEAN) IS 'pgr_lineGraph -- EXPERIMENTAL +- PROPOSED - Parameters: - edges SQL with columns: id, source, target, cost [,reverse_cost] - Optional Parameters: diff --git a/sql/max_flow/maxFlowMinCost.sql b/sql/max_flow/maxFlowMinCost.sql index 1b3256ea634..edec5928307 100644 --- a/sql/max_flow/maxFlowMinCost.sql +++ b/sql/max_flow/maxFlowMinCost.sql @@ -181,7 +181,7 @@ IS 'pgr_maxFlowMinCost(Many to One) '; COMMENT ON FUNCTION pgr_maxFlowMinCost(TEXT, ANYARRAY, ANYARRAY) -IS 'EXPERIMENTAL pgr_maxFlowMinCost(Many to Many) +IS 'pgr_maxFlowMinCost(Many to Many) - EXPERIMENTAL - Parameters: - Edges SQL with columns: id, source, target, cost [,reverse_cost] @@ -192,7 +192,7 @@ IS 'EXPERIMENTAL pgr_maxFlowMinCost(Many to Many) '; COMMENT ON FUNCTION pgr_maxFlowMinCost(TEXT, TEXT) -IS 'EXPERIMENTAL pgr_maxFlowMinCost(Combinations) +IS 'pgr_maxFlowMinCost(Combinations) - EXPERIMENTAL - Parameters: - Edges SQL with columns: id, source, target, cost [,reverse_cost] diff --git a/sql/max_flow/maxFlowMinCost_Cost.sql b/sql/max_flow/maxFlowMinCost_Cost.sql index a58aea7af02..605ab39c829 100644 --- a/sql/max_flow/maxFlowMinCost_Cost.sql +++ b/sql/max_flow/maxFlowMinCost_Cost.sql @@ -141,7 +141,7 @@ IS 'pgr_maxFlowMinCost_Cost (Many to One) '; COMMENT ON FUNCTION pgr_maxFlowMinCost_Cost(TEXT, ANYARRAY, ANYARRAY) -IS 'EXPERIMENTAL pgr_maxFlowMinCost_Cost (Many to Many) +IS 'pgr_maxFlowMinCost_Cost (Many to Many) - EXPERIMENTAL - Parameters: - Edges SQL with columns: id, source, target, cost [,reverse_cost] @@ -152,7 +152,7 @@ IS 'EXPERIMENTAL pgr_maxFlowMinCost_Cost (Many to Many) '; COMMENT ON FUNCTION pgr_maxFlowMinCost_Cost(TEXT, TEXT) -IS 'EXPERIMENTAL pgr_maxFlowMinCost_Cost (Combinations) +IS 'pgr_maxFlowMinCost_Cost (Combinations) - EXPERIMENTAL - Parameters: - Edges SQL with columns: id, source, target, cost [,reverse_cost] diff --git a/sql/metrics/betweennessCentrality.sql b/sql/metrics/betweennessCentrality.sql index 8da8d6916a4..a1c2e059fcd 100644 --- a/sql/metrics/betweennessCentrality.sql +++ b/sql/metrics/betweennessCentrality.sql @@ -48,6 +48,7 @@ LANGUAGE SQL VOLATILE STRICT; COMMENT ON FUNCTION pgr_betweennessCentrality(TEXT, BOOLEAN) IS 'pgr_betweennessCentrality +- EXPERIMENTAL - Parameters: - edges SQL with columns: source, target, cost [,reverse_cost]) - Optional Parameters: diff --git a/sql/topology/nodeNetwork.sql b/sql/topology/nodeNetwork.sql index 008b68a8c19..9da4973abdd 100644 --- a/sql/topology/nodeNetwork.sql +++ b/sql/topology/nodeNetwork.sql @@ -228,16 +228,5 @@ END; $BODY$ LANGUAGE 'plpgsql' VOLATILE STRICT COST 100; -- COMMENTS -COMMENT ON FUNCTION pgr_nodeNetwork(TEXT, DOUBLE PRECISION, TEXT, TEXT, TEXT, TEXT, BOOLEAN) IS 'pgr_nodeNetwork -- Parameters - - Edge table name - - tolerance -- Optional parameters - - id := ''id'' - - the_geom := ''the_geom'' - - table_ending := ''noded'' - - rows_where := '''' - - outall := false -- DOCUMENTATION: - - ${PROJECT_DOC_LINK}/pgr_nodeNetwork.html -'; +COMMENT ON FUNCTION pgr_nodeNetwork(TEXT, DOUBLE PRECISION, TEXT, TEXT, TEXT, TEXT, BOOLEAN) +IS 'pgr_nodeNetwork deprecated function on v3.8.0'; diff --git a/sql/utilities/separateCrossing.sql b/sql/utilities/separateCrossing.sql index e3a97f7028a..123b3cb730c 100644 --- a/sql/utilities/separateCrossing.sql +++ b/sql/utilities/separateCrossing.sql @@ -112,7 +112,6 @@ $BODY$ LANGUAGE 'plpgsql' VOLATILE STRICT; -- COMMENTS COMMENT ON FUNCTION pgr_separateCrossing(TEXT, FLOAT, BOOLEAN) IS 'pgr_separateCrossing -PROPOSED - Parameters - Edges SQL with columns: id, geom - Optional parameters