Drake
DynamicProgrammingOptions Struct Reference

## Detailed Description

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 PeriodicBoundaryConditionperiodic_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, InputPortIndexinput_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...

## ◆ DynamicProgrammingOptions()

 DynamicProgrammingOptions ( )
default

## ◆ assume_non_continuous_states_are_fixed

 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.

## ◆ convergence_tol

 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.

## ◆ discount_factor

 double discount_factor {1.}

A value between (0,1] that discounts future rewards.

FittedValueIteration.

## ◆ input_port_index

 std::variant input_port_index
Initial value:

For systems with multiple input ports, we must specify which input port is being used in the control design.

systems::InputPortSelection.

## ◆ periodic_boundary_conditions

 std::list periodic_boundary_conditions

## ◆ visualization_callback

 std::function& 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.

Note
The first call happens at iteration 1 (after the value iteration has run once), not zero.

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