Consolidates the many possible options to be passed to the dynamic programming algorithms.
#include <drake/systems/controllers/dynamic_programming.h>
Classes | |
struct | PeriodicBoundaryCondition |
For algorithms that rely on approximations of the state-dynamics (as in FittedValueIteration), this is a list of state dimensions for which the state space maximum value should be "wrapped around" to ensure that all values are in the range [low, high). More... | |
Public Member Functions | |
DynamicProgrammingOptions ()=default | |
Public Attributes | |
double | discount_factor {1.} |
A value between (0,1] that discounts future rewards. More... | |
std::list< struct PeriodicBoundaryCondition > | periodic_boundary_conditions |
double | convergence_tol = 1e-4 |
Value iteration methods converge when the value function stops changing (typically evaluated with the l∞ norm). More... | |
std::function< void(int iteration, const math::BarycentricMesh< double > &state_mesh, const Eigen::RowVectorXd &cost_to_go, const Eigen::MatrixXd &policy)> | visualization_callback {nullptr} |
If callable, this method is invoked during each major iteration of the dynamic programming algorithm, in order to facilitate e.g. More... | |
std::variant< systems::InputPortSelection, InputPortIndex > | input_port_index |
For systems with multiple input ports, we must specify which input port is being used in the control design. More... | |
bool | assume_non_continuous_states_are_fixed {false} |
(Advanced) Boolean which, if true, allows this algorithm to optimize without considering the dynamics of any non-continuous states. More... | |
|
default |
bool assume_non_continuous_states_are_fixed {false} |
(Advanced) Boolean which, if true, allows this algorithm to optimize without considering the dynamics of any non-continuous states.
This is helpful for optimizing systems that might have some additional book-keeping variables in their state. Only use this if you are sure that the dynamics of the additional state variables cannot impact the dynamics of the continuous states.
Default: false.
double convergence_tol = 1e-4 |
Value iteration methods converge when the value function stops changing (typically evaluated with the l∞ norm).
This value sets that threshold.
double discount_factor {1.} |
A value between (0,1] that discounts future rewards.
std::variant<systems::InputPortSelection, InputPortIndex> input_port_index |
For systems with multiple input ports, we must specify which input port is being used in the control design.
std::list<struct PeriodicBoundaryCondition> periodic_boundary_conditions |
std::function<void( int iteration, const math::BarycentricMesh<double>& state_mesh, const Eigen::RowVectorXd& cost_to_go, const Eigen::MatrixXd& policy)> visualization_callback {nullptr} |
If callable, this method is invoked during each major iteration of the dynamic programming algorithm, in order to facilitate e.g.
graphical inspection/debugging of the results.