MixedIntegerRotationConstraintGenerator::ReturnType Struct Reference

`#include <drake/solvers/mixed_integer_rotation_constraint.h>`

## Public Attributes | |

std::array< std::array< VectorXDecisionVariable, 3 >, 3 > | B_ |

B_ contains the new binary variables added to the program. More... | |

std::array< std::array< VectorXDecisionVariable, 3 >, 3 > | lambda_ |

λ contains part of the new continuous variables added to the program. More... | |

std::array<std::array<VectorXDecisionVariable, 3>, 3> B_ |

B_ contains the new binary variables added to the program.

B_[i][j] represents in which interval R(i, j) lies. If we use linear binning, then B_[i][j] is of length 2 * num_intervals_per_half_axis_. B_[i][j](k) = 1 => φ(k) ≤ R(i, j) ≤ φ(k + 1) B_[i][j](k) = 0 => R(i, j) ≥ φ(k + 1) or R(i, j) ≤ φ(k) If we use logarithmic binning, then B_[i][j] is of length 1 + log₂(num_intervals_per_half_axis_). If B_[i][j] represents integer k in reflected Gray code, then R(i, j) is in the interval [φ(k), φ(k+1)].

std::array<std::array<VectorXDecisionVariable, 3>, 3> lambda_ |

λ contains part of the new continuous variables added to the program.

λ_[i][j] is of length 2 * num_intervals_per_half_axis_ + 1, such that R(i, j) = φᵀ * λ_[i][j]. Notice that λ_[i][j] satisfies the special ordered set of type 2 (SOS2) constraint. Namely at most two entries in λ_[i][j] can be strictly positive, and these two entries have to be consecutive. Mathematically

∑ₖ λ_[i][j](k) = 1

λ_[i][j](k) ≥ 0 ∀ k

∃ m s.t λ_[i][j](n) = 0 if n ≠ m and n ≠ m+1

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

- drake/solvers/mixed_integer_rotation_constraint.h