Skip to content
Julien Coupey edited this page Dec 17, 2015 · 24 revisions

Input arguments

Use your list of locations as command-line argument:

vroom "loc=lat,lon&loc=lat,lon[&loc=lat,lon...]"

Using an input file

To keep commands to a decent length and store the input, use a file containing the locations (same syntax as above) and pass its path as -i argument.

vroom -i myfile

Use with OSRM

VROOM will default to using OSRM for all routing-related matters, such as computing the cost matrix and getting the detailed route geometry once the solution is computed.

If the OSRM server is running on the same machine on the default port (5000), all is fine. Otherwise the -a and -p options are required to set the corresponding address and port for the server (see complete usage and options list below).

Complete usage and options list

$ vroom -h
VROOM Copyright (C) 2015, Julien Coupey
Usage :
    vroom [OPTION]... "loc=lat,lon&loc=lat,lon[&loc=lat,lon...]"
    vroom [OPTION]... -i FILE
Options:
    -a=ADDRESS   OSRM server name ("0.0.0.0")
    -p=PORT,     OSRM listening port (5000)
    -g,          get detailed route geometry for the solution
    -o=OUTPUT,   output file name
    -i=FILE,     read input from FILE rather than from
                 command-line
    -t,          read input file from -i option as TSPLIB format
    -v,          turn on verbose output

This program is distributed under the terms of the GNU General Public
License, version 3, and comes with ABSOLUTELY NO WARRANTY.

User-defined cost matrix

VROOM can easily run on user-defined problems, either by providing an explicit cost matrix or by listing the locations along with the way distances should be computed.

The required syntax follows the TSPLIB format, for two reasons: the format is quite simple and this allows to run the code on this well-known benchmark (see Benchmark).

Basic usage

The -t option specifies that a TSPLIB file should be expected as input.

vroom -t -i myfile.tsp

Supported syntax

Because of the variety of instances that have been described in TSPLIB, the syntax can seem a little picky and redundant. Only a subset is required or supported in VROOM, but it should be enough for most use-cases.

Mandatory tags

  • DIMENSION
  • EDGE_WEIGHT_TYPE

Supported use-cases

  • Problems with provided list of nodes (with EDGE_WEIGHT_TYPE among GEO, EUC_2D, CEIL_2D, ATT).
  • Problems with detailed matrix (with EDGE_WEIGHT_TYPE:EXPLICIT and EDGE_WEIGHT_FORMAT among FULL_MATRIX, UPPER_ROW, UPPER_DIAG_ROW and LOWER_DIAG_ROW).
Clone this wiki locally