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.