pgr_vrpOneDepot - Experimental - pgRouting Manual (3.2)
pgr_vrpOneDepot - Experimental
Warning
Possible server crash
-
These functions might create a server crash
Warning
Experimental functions
-
They are not officially of the current release.
-
They likely will not be officially be part of the next release:
-
The functions might not make use of ANY-INTEGER and ANY-NUMERICAL
-
Name might change.
-
Signature might change.
-
Functionality might change.
-
pgTap tests might be missing.
-
Might need c/c++ coding.
-
May lack documentation.
-
Documentation if any might need to be rewritten.
-
Documentation examples might need to be automatically generated.
-
Might need a lot of feedback from the comunity.
-
Might depend on a proposed function of pgRouting
-
Might depend on a deprecated function of pgRouting
-
No documentation available
Availability
-
Version 2.1.0
-
New experimental function
-
-
TBD
Description
-
TBD
Signatures
-
TBD
Parameters
-
TBD
Inner query
-
TBD
Result Columns
-
TBD
Additional Example:
BEGIN;
BEGIN
SET client_min_messages TO NOTICE;
SET
SELECT * FROM pgr_vrpOneDepot(
'SELECT * FROM solomon_100_RC_101',
'SELECT * FROM vrp_vehicles',
'SELECT * FROM vrp_distance',
1);
oid opos vid tarrival tdepart
-----+------+-----+----------+---------
-1 1 1 0 0
7 2 1 0 0
9 3 1 0 0
8 4 1 0 0
6 5 1 0 0
5 6 1 0 0
4 7 1 0 0
2 8 1 0 0
6 9 1 40 51
8 10 1 62 89
9 11 1 94 104
7 12 1 110 120
4 13 1 131 141
2 14 1 144 155
5 15 1 162 172
-1 16 1 208 208
-1 1 2 0 0
10 2 2 0 0
11 3 2 0 0
10 4 2 34 101
11 5 2 106 129
-1 6 2 161 161
-1 1 3 0 0
3 2 3 0 0
3 3 3 31 60
-1 4 3 91 91
-1 0 0 -1 460
(27 rows)
ROLLBACK;
ROLLBACK
Data
DROP TABLE IF EXISTS solomon_100_RC_101 cascade;
CREATE TABLE solomon_100_RC_101 (
id integer NOT NULL PRIMARY KEY,
order_unit integer,
open_time integer,
close_time integer,
service_time integer,
x float8,
y float8
);
COPY solomon_100_RC_101
(id, x, y, order_unit, open_time, close_time, service_time) FROM stdin;
1 40.000000 50.000000 0 0 240 0
2 25.000000 85.000000 20 145 175 10
3 22.000000 75.000000 30 50 80 10
4 22.000000 85.000000 10 109 139 10
5 20.000000 80.000000 40 141 171 10
6 20.000000 85.000000 20 41 71 10
7 18.000000 75.000000 20 95 125 10
8 15.000000 75.000000 20 79 109 10
9 15.000000 80.000000 10 91 121 10
10 10.000000 35.000000 20 91 121 10
11 10.000000 40.000000 30 119 149 10
\.
DROP TABLE IF EXISTS vrp_vehicles cascade;
CREATE TABLE vrp_vehicles (
vehicle_id integer not null primary key,
capacity integer,
case_no integer
);
copy vrp_vehicles (vehicle_id, capacity, case_no) from stdin;
1 200 5
2 200 5
3 200 5
\.
DROP TABLE IF EXISTS vrp_distance cascade;
WITH
the_matrix_info AS (
SELECT A.id AS src_id, B.id AS dest_id, sqrt( (a.x - b.x) * (a.x - b.x) + (a.y - b.y) * (a.y - b.y)) AS cost
FROM solomon_100_rc_101 AS A, solomon_100_rc_101 AS B WHERE A.id != B.id
)
SELECT src_id, dest_id, cost, cost AS distance, cost AS traveltime
INTO vrp_distance
FROM the_matrix_info;
See Also
Indices and tables