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

Support

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