#include <drake/geometry/optimization/graph_of_convex_sets.h>
Public Member Functions | |
GraphOfConvexSetsOptions ()=default | |
Public Attributes | |
std::optional< bool > | convex_relaxation {std::nullopt} |
Flag to solve the relaxed version of the problem. More... | |
std::optional< int > | max_rounded_paths {std::nullopt} |
Maximum number of distinct paths to compare during random rounding; only the lowest cost path is returned. More... | |
std::optional< bool > | preprocessing {std::nullopt} |
Performs a preprocessing step to remove edges that cannot lie on the path from source to target. More... | |
int | max_rounding_trials {100} |
Maximum number of trials to find a novel path during random rounding. More... | |
double | flow_tolerance {1e-5} |
Tolerance for ignoring flow along a given edge during random rounding. More... | |
int | rounding_seed {0} |
Random seed to use for random rounding. More... | |
const solvers::SolverInterface * | solver {nullptr} |
Optimizer to be used to solve the shortest path optimization problem. More... | |
solvers::SolverOptions | solver_options {} |
Options passed to the solver when solving the generated problem. More... | |
std::optional< solvers::SolverOptions > | rounding_solver_options {std::nullopt} |
Optional solver options for the rounded problems. More... | |
|
default |
std::optional<bool> convex_relaxation {std::nullopt} |
Flag to solve the relaxed version of the problem.
As discussed in the paper, we know that this relaxation cannot solve the original NP-hard problem for all instances, but there are also many instances for which the convex relaxation is tight.
double flow_tolerance {1e-5} |
Tolerance for ignoring flow along a given edge during random rounding.
If convex_relaxation is false or max_rounded_paths is less than or equal to zero, this option is ignored.
std::optional<int> max_rounded_paths {std::nullopt} |
Maximum number of distinct paths to compare during random rounding; only the lowest cost path is returned.
If convex_relaxation is false or this is less than or equal to zero, rounding is not performed.
int max_rounding_trials {100} |
Maximum number of trials to find a novel path during random rounding.
If convex_relaxation is false or max_rounded_paths is less than or equal to zero, this option is ignored.
std::optional<bool> preprocessing {std::nullopt} |
Performs a preprocessing step to remove edges that cannot lie on the path from source to target.
In most cases, preprocessing causes a net reduction in computation by reducing the size of the optimization solved. Note that this preprocessing is not exact. There may be edges that cannot lie on the path from source to target that this does not detect.
int rounding_seed {0} |
Random seed to use for random rounding.
If convex_relaxation is false or max_rounded_paths is less than or equal to zero, this option is ignored.
std::optional<solvers::SolverOptions> rounding_solver_options {std::nullopt} |
Optional solver options for the rounded problems.
If not set, solver_options is used. For instance, one might want to set tighter (i.e., lower) tolerances for running the relaxed problem and looser (i.e., higher) tolerances for final solves during rounding.
const solvers::SolverInterface* solver {nullptr} |
Optimizer to be used to solve the shortest path optimization problem.
If not set, the best solver for the given problem is selected. Note that if the solver cannot handle the type of optimization problem generated, the calling solve method will throw.
solvers::SolverOptions solver_options {} |
Options passed to the solver when solving the generated problem.