GPUdb C++ API  Version 7.0.19.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
gpudb::MatchGraphRequest Struct Reference

A set of input parameters for const. More...

#include <gpudb/protocol/match_graph.h>

Public Member Functions

 MatchGraphRequest ()
 Constructs a MatchGraphRequest object with default parameter values. More...
 
 MatchGraphRequest (const std::string &graphName_, const std::vector< std::string > &samplePoints_, const std::string &solveMethod_, const std::string &solutionTable_, const std::map< std::string, std::string > &options_)
 Constructs a MatchGraphRequest object with the specified parameters. More...
 

Public Attributes

std::string graphName
 
std::vector< std::string > samplePoints
 
std::string solveMethod
 
std::string solutionTable
 
std::map< std::string,
std::string > 
options
 

Detailed Description

A set of input parameters for const.

Matches a directed route implied by a given set of latitude/longitude points to an existing underlying road network graph using a given solution type.

IMPORTANT: It's highly recommended that you review the Network Graphs & Solvers concepts documentation, the Graph REST Tutorial, and/or some /match/graph examples before using this endpoint.

Definition at line 32 of file match_graph.h.

Constructor & Destructor Documentation

gpudb::MatchGraphRequest::MatchGraphRequest ( )
inline

Constructs a MatchGraphRequest object with default parameter values.

Definition at line 38 of file match_graph.h.

gpudb::MatchGraphRequest::MatchGraphRequest ( const std::string &  graphName_,
const std::vector< std::string > &  samplePoints_,
const std::string &  solveMethod_,
const std::string &  solutionTable_,
const std::map< std::string, std::string > &  options_ 
)
inline

Constructs a MatchGraphRequest object with the specified parameters.

Parameters
[in]graphName_Name of the underlying geospatial graph resource to match to using samplePoints.
[in]samplePoints_Sample points used to match to an underlying geospatial graph. Sample points must be specified using identifiers; identifiers are grouped as combinations. Identifiers can be used with: existing column names, e.g., 'table.column AS SAMPLE_X'; expressions, e.g., 'ST_MAKEPOINT(table.x, table.y) AS SAMPLE_WKTPOINT'; or constant values, e.g., '{1, 2, 10} AS SAMPLE_TRIPID'.
[in]solveMethod_The type of solver to use for graph matching.
  • gpudb::match_graph_markov_chain: Matches samplePoints to the graph using the Hidden Markov Model (HMM)-based method, which conducts a range-tree closest-edge search to find the best combinations of possible road segments (num_segments) for each sample point to create the best route. The route is secured one point at a time while looking ahead chain_width number of points, so the prediction is corrected after each point. This solution type is the most accurate but also the most computationally intensive. Related options: num_segments and chain_width.
  • gpudb::match_graph_match_od_pairs: Matches samplePoints to find the most probable path between origin and destination pairs with cost constraints.
  • gpudb::match_graph_match_supply_demand: Matches samplePoints to optimize scheduling multiple supplies (trucks) with varying sizes to varying demand sites with varying capacities per depot. Related options: partial_loading and max_combinations.
  • gpudb::match_graph_match_batch_solves: Matches samplePoints source and destination pairs for the shortest path solves in batch mode.
The default value is gpudb::match_graph_markov_chain.
[in]solutionTable_The name of the table used to store the results; this table contains a track of geospatial points for the matched portion of the graph, a track ID, and a score value. Also outputs a details table containing a trip ID (that matches the track ID), the latitude/longitude pair, the timestamp the point was recorded at, and an edge ID corresponding to the matched road segment. Has the same naming restrictions as tables. Must not be an existing table of the same name.
[in]options_Additional parameters
  • gpudb::match_graph_gps_noise: GPS noise value (in meters) to remove redundant sample points. Use -1 to disable noise reduction. The default value accounts for 95% of point variation (+ or -5 meters). The default value is '5.0'.
  • gpudb::match_graph_num_segments: Maximum number of potentially matching road segments for each sample point. For the markov_chain solver, the default is 3. The default value is '3'.
  • gpudb::match_graph_search_radius: Maximum search radius used when snapping sample points onto potentially matching surrounding segments. The default value corresponds to approximately 100 meters. The default value is '0.001'.
  • gpudb::match_graph_chain_width: For the markov_chain solver only. Length of the sample points lookahead window within the Markov kernel; the larger the number, the more accurate the solution. The default value is '9'.
  • gpudb::match_graph_source: Optional WKT starting point from samplePoints for the solver. The default behavior for the endpoint is to use time to determine the starting point. The default value is 'POINT NULL'.
  • gpudb::match_graph_destination: Optional WKT ending point from samplePoints for the solver. The default behavior for the endpoint is to use time to determine the destination point. The default value is 'POINT NULL'.
  • gpudb::match_graph_partial_loading: For the match_supply_demand solver only. When false (non-default), trucks do not off-load at the demand (store) side if the remainder is less than the store's need The default value is gpudb::match_graph_true.
  • gpudb::match_graph_max_combinations: For the match_supply_demand solver only. This is the cutoff for the number of generated combinations for sequencing the demand locations - can increase this up to 2M. The default value is '10000'.
  • gpudb::match_graph_left_turn_penalty: This will add an additonal weight over the edges labelled as 'left turn' if the 'add_turn' option parameter of the /create/graph was invoked at graph creation. The default value is '0.0'.
  • gpudb::match_graph_right_turn_penalty: This will add an additonal weight over the edges labelled as' right turn' if the 'add_turn' option parameter of the /create/graph was invoked at graph creation. The default value is '0.0'.
  • gpudb::match_graph_intersection_penalty: This will add an additonal weight over the edges labelled as 'intersection' if the 'add_turn' option parameter of the /create/graph was invoked at graph creation. The default value is '0.0'.
  • gpudb::match_graph_sharp_turn_penalty: This will add an additonal weight over the edges labelled as 'sharp turn' or 'u-turn' if the 'add_turn' option parameter of the /create/graph was invoked at graph creation. The default value is '0.0'.
  • gpudb::match_graph_aggregated_output: For the match_supply_demand solver only. When it is true (default), each record in the output table shows a particular truck's scheduled cumulative round trip path (MULTILINESTRING) and the corresponding aggregated cost. Otherwise, each record shows a single scheduled truck route (LINESTRING) towards a particular demand location (store id) with its corresponding cost. The default value is 'true'.
  • gpudb::match_graph_max_trip_cost: For the match_supply_demand solver only. If this constraint is greater than zero (default) then the trucks will skip travelling from one demand location to another if the cost between them is greater than this number (distance or time). Zero (default) value means no check is performed. The default value is '0.0'.
  • gpudb::match_graph_filter_folding_paths: For the markov_chain solver only. When true (non-default), the paths per sequence combination is checked for folding over patterns and can significantly increase the execution time depending on the chain width and the number of gps samples. The default value is gpudb::match_graph_false.
  • gpudb::match_graph_unit_unloading_cost: For the match_supply_demand solver only. The unit cost per load amount to be delivered. If this value is greater than zero (default) then the additional cost of this unit load multiplied by the total dropped load will be added over to the trip cost to the demand location. The default value is '0.0'.
  • gpudb::match_graph_max_num_threads: For the markov_chain solver only. If specified (greater than zero), the maximum number of threads will not be greater than the specified value. It can be lower due to the memory and the number cores available. Default value of zero allows the algorithm to set the maximal number of threads within these constraints. The default value is '0'.
  • gpudb::match_graph_truck_service_limit: For the match_supply_demand solver only. If specified (greather than zero), any truck's total service cost (distance or time) will be limited by the specified value including multiple rounds (if set). The default value is '0.0'.
  • gpudb::match_graph_enable_truck_reuse: For the match_supply_demand solver only. If specified (true), all trucks can be scheduled for second rounds from their originating depots. The default value is gpudb::match_graph_false.

Definition at line 288 of file match_graph.h.

Member Data Documentation

std::string gpudb::MatchGraphRequest::graphName

Definition at line 297 of file match_graph.h.

std::map<std::string, std::string> gpudb::MatchGraphRequest::options

Definition at line 301 of file match_graph.h.

std::vector<std::string> gpudb::MatchGraphRequest::samplePoints

Definition at line 298 of file match_graph.h.

std::string gpudb::MatchGraphRequest::solutionTable

Definition at line 300 of file match_graph.h.

std::string gpudb::MatchGraphRequest::solveMethod

Definition at line 299 of file match_graph.h.


The documentation for this struct was generated from the following file: