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

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

#include <gpudb/protocol/solve_graph.h>

Public Member Functions

 SolveGraphRequest ()
 Constructs a SolveGraphRequest object with default parameter values. More...
 
 SolveGraphRequest (const std::string &graphName_, const std::vector< std::string > &weightsOnEdges_, const std::vector< std::string > &restrictions_, const std::string &solverType_, const std::vector< std::string > &sourceNodes_, const std::vector< std::string > &destinationNodes_, const std::string &solutionTable_, const std::map< std::string, std::string > &options_)
 Constructs a SolveGraphRequest object with the specified parameters. More...
 

Public Attributes

std::string graphName
 
std::vector< std::string > weightsOnEdges
 
std::vector< std::string > restrictions
 
std::string solverType
 
std::vector< std::string > sourceNodes
 
std::vector< std::string > destinationNodes
 
std::string solutionTable
 
std::map< std::string,
std::string > 
options
 

Detailed Description

A set of input parameters for const.

Solves an existing graph for a type of problem (e.g., shortest path, page rank, travelling salesman, etc.) using source nodes, destination nodes, and additional, optional weights and restrictions.

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

Definition at line 32 of file solve_graph.h.

Constructor & Destructor Documentation

gpudb::SolveGraphRequest::SolveGraphRequest ( )
inline

Constructs a SolveGraphRequest object with default parameter values.

Definition at line 38 of file solve_graph.h.

gpudb::SolveGraphRequest::SolveGraphRequest ( const std::string &  graphName_,
const std::vector< std::string > &  weightsOnEdges_,
const std::vector< std::string > &  restrictions_,
const std::string &  solverType_,
const std::vector< std::string > &  sourceNodes_,
const std::vector< std::string > &  destinationNodes_,
const std::string &  solutionTable_,
const std::map< std::string, std::string > &  options_ 
)
inline

Constructs a SolveGraphRequest object with the specified parameters.

Parameters
[in]graphName_Name of the graph resource to solve.
[in]weightsOnEdges_Additional weights to apply to the edges of an existing graph. Weights must be specified using identifiers; identifiers are grouped as combinations. Identifiers can be used with existing column names, e.g., 'table.column AS WEIGHTS_EDGE_ID', expressions, e.g., 'ST_LENGTH(wkt) AS WEIGHTS_VALUESPECIFIED', or constant values, e.g., '{4, 15, 2} AS WEIGHTS_VALUESPECIFIED'. Any provided weights will be added (in the case of 'WEIGHTS_VALUESPECIFIED') to or multiplied with (in the case of 'WEIGHTS_FACTORSPECIFIED') the existing weight(s). If using constant values in an identifier combination, the number of values specified must match across the combination.
[in]restrictions_Additional restrictions to apply to the nodes/edges of an existing graph. Restrictions must be specified using identifiers; identifiers are grouped as combinations. Identifiers can be used with existing column names, e.g., 'table.column AS RESTRICTIONS_EDGE_ID', expressions, e.g., 'column/2 AS RESTRICTIONS_VALUECOMPARED', or constant values, e.g., '{0, 0, 0, 1} AS RESTRICTIONS_ONOFFCOMPARED'. If using constant values in an identifier combination, the number of values specified must match across the combination. If remove_previous_restrictions is set to true, any provided restrictions will replace the existing restrictions. If remove_previous_restrictions is set to false, any provided restrictions will be added (in the case of 'RESTRICTIONS_VALUECOMPARED') to or replaced (in the case of 'RESTRICTIONS_ONOFFCOMPARED').
[in]solverType_The type of solver to use for the graph.
  • gpudb::solve_graph_SHORTEST_PATH: Solves for the optimal (shortest) path based on weights and restrictions from one source to destinations nodes. Also known as the Dijkstra solver.
  • gpudb::solve_graph_PAGE_RANK: Solves for the probability of each destination node being visited based on the links of the graph topology. Weights are not required to use this solver.
  • gpudb::solve_graph_PROBABILITY_RANK: Solves for the transitional probability (Hidden Markov) for each node based on the weights (probability assigned over given edges).
  • gpudb::solve_graph_CENTRALITY: Solves for the degree of a node to depict how many pairs of individuals that would have to go through the node to reach one another in the minimum number of hops. Also known as betweenness.
  • gpudb::solve_graph_MULTIPLE_ROUTING: Solves for finding the minimum cost cumulative path for a round-trip starting from the given source and visiting each given destination node once then returning to the source. Also known as the travelling salesman problem.
  • gpudb::solve_graph_INVERSE_SHORTEST_PATH: Solves for finding the optimal path cost for each destination node to route to the source node. Also known as inverse Dijkstra or the service man routing problem.
  • gpudb::solve_graph_BACKHAUL_ROUTING: Solves for optimal routes that connect remote asset nodes to the fixed (backbone) asset nodes.
  • gpudb::solve_graph_ALLPATHS: Solves for paths that would give costs between max and min solution radia - Make sure to limit by the 'max_solution_targets' option. Min cost shoudl be >= shortest_path cost.
The default value is gpudb::solve_graph_SHORTEST_PATH.
[in]sourceNodes_It can be one of the nodal identifiers - e.g: 'NODE_WKTPOINT' for source nodes. For BACKHAUL_ROUTING, this list depicts the fixed assets.
[in]destinationNodes_It can be one of the nodal identifiers
  • e.g: 'NODE_WKTPOINT' for destination (target) nodes. For BACKHAUL_ROUTING, this list depicts the remote assets.
[in]solutionTable_Name of the table to store the solution.
[in]options_Additional parameters
  • gpudb::solve_graph_max_solution_radius: For SHORTEST_PATH and INVERSE_SHORTEST_PATH solvers only. Sets the maximum solution cost radius, which ignores the destinationNodes list and instead outputs the nodes within the radius sorted by ascending cost. If set to '0.0', the setting is ignored. The default value is '0.0'.
  • gpudb::solve_graph_min_solution_radius: For SHORTEST_PATH and INVERSE_SHORTEST_PATH solvers only. Applicable only when max_solution_radius is set. Sets the minimum solution cost radius, which ignores the destinationNodes list and instead outputs the nodes within the radius sorted by ascending cost. If set to '0.0', the setting is ignored. The default value is '0.0'.
  • gpudb::solve_graph_max_solution_targets: For SHORTEST_PATH and INVERSE_SHORTEST_PATH solvers only. Sets the maximum number of solution targets, which ignores the destinationNodes list and instead outputs no more than n number of nodes sorted by ascending cost where n is equal to the setting value. If set to 0, the setting is ignored. The default value is '0'.
  • gpudb::solve_graph_export_solve_results: Returns solution results inside the resultPerDestinationNode array in the response if set to true. The default value is gpudb::solve_graph_false.
  • gpudb::solve_graph_remove_previous_restrictions: Ignore the restrictions applied to the graph during the creation stage and only use the restrictions specified in this request if set to true. The default value is gpudb::solve_graph_false.
  • gpudb::solve_graph_restriction_threshold_value: Value-based restriction comparison. Any node or edge with a RESTRICTIONS_VALUECOMPARED value greater than the restriction_threshold_value will not be included in the solution.
  • gpudb::solve_graph_uniform_weights: When specified, assigns the given value to all the edges in the graph. Note that weights provided in weightsOnEdges will override this value.
  • gpudb::solve_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::solve_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::solve_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::solve_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::solve_graph_num_best_paths: For MULTIPLE_ROUTING solvers only; sets the number of shortest paths computed from each node. This is the heuristic criterion. Default value of zero allows the number to be computed automatically by the solver. The user may want to override this parameter to speed-up the solver. The default value is '0'.
  • gpudb::solve_graph_max_num_combinations: For MULTIPLE_ROUTING solvers only; sets the cap on the combinatorial sequences generated. If the default value of two millions is overridden to a lesser value, it can potentially speed up the solver. The default value is '2000000'.
  • gpudb::solve_graph_accurate_snaps: Valid for single source destination pair solves if points are described in NODE_WKTPOINT identifier types: When true (default), it snaps to the nearest node of the graph; otherwise, it searches for the closest entity that could be an edge. For the latter case (false), the solver modifies the resulting cost with the weights proportional to the ratio of the snap location within the edge. This may be an over-kill when the performance is considered and the difference is well less than 1 percent. In batch runs, since the performance is of utmost importance, the option is always considered 'false'. The default value is gpudb::solve_graph_true.
  • gpudb::solve_graph_output_edge_path: If true then concatenated edge ids will be added as the EDGE path column of the solution table for each source and target pair in shortest path solves. The default value is gpudb::solve_graph_false.
  • gpudb::solve_graph_output_wkt_path: If true then concatenated wkt line segments will be added as the Wktroute column of the solution table for each source and target pair in shortest path solves. The default value is gpudb::solve_graph_true.

Definition at line 325 of file solve_graph.h.

Member Data Documentation

std::vector<std::string> gpudb::SolveGraphRequest::destinationNodes

Definition at line 342 of file solve_graph.h.

std::string gpudb::SolveGraphRequest::graphName

Definition at line 337 of file solve_graph.h.

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

Definition at line 344 of file solve_graph.h.

std::vector<std::string> gpudb::SolveGraphRequest::restrictions

Definition at line 339 of file solve_graph.h.

std::string gpudb::SolveGraphRequest::solutionTable

Definition at line 343 of file solve_graph.h.

std::string gpudb::SolveGraphRequest::solverType

Definition at line 340 of file solve_graph.h.

std::vector<std::string> gpudb::SolveGraphRequest::sourceNodes

Definition at line 341 of file solve_graph.h.

std::vector<std::string> gpudb::SolveGraphRequest::weightsOnEdges

Definition at line 338 of file solve_graph.h.


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