pub struct SafeDecodePlan {
pub shielded_path: Vec<StlTimedCell>,
pub greedy_path: Vec<StlTimedCell>,
pub reach_robustness: f64,
pub avoid_robustness: f64,
pub greedy_reach_robustness: f64,
pub greedy_avoid_robustness: f64,
pub interventions: usize,
pub reach_satisfied: bool,
pub avoid_satisfied: bool,
}Expand description
Result of a shielded decode, paired with the greedy baseline.
Fields§
§shielded_path: Vec<StlTimedCell>Shielded (STL-constrained) decoded path.
greedy_path: Vec<StlTimedCell>Greedy, unshielded decoded path (base policy argmax).
reach_robustness: f64Eventually-reach robustness of the shielded path (>= 0 means satisfied).
avoid_robustness: f64Worst always-avoid robustness of the shielded path (>= 0 means safe).
greedy_reach_robustness: f64Eventually-reach robustness of the greedy path.
greedy_avoid_robustness: f64Worst always-avoid robustness of the greedy path (< 0 means it cut through a geofence).
interventions: usizeNumber of steps where the shielded action differs from the greedy action.
reach_satisfied: boolWhether the shielded path satisfies the reach spec.
avoid_satisfied: boolWhether the shielded path satisfies every avoid spec.
Trait Implementations§
Source§impl Clone for SafeDecodePlan
impl Clone for SafeDecodePlan
Source§fn clone(&self) -> SafeDecodePlan
fn clone(&self) -> SafeDecodePlan
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for SafeDecodePlan
impl Debug for SafeDecodePlan
Source§impl PartialEq for SafeDecodePlan
impl PartialEq for SafeDecodePlan
impl StructuralPartialEq for SafeDecodePlan
Auto Trait Implementations§
impl Freeze for SafeDecodePlan
impl RefUnwindSafe for SafeDecodePlan
impl Send for SafeDecodePlan
impl Sync for SafeDecodePlan
impl Unpin for SafeDecodePlan
impl UnsafeUnpin for SafeDecodePlan
impl UnwindSafe for SafeDecodePlan
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read more§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self is actually part of its subset T (and can be converted to it).§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.