Function fuse_constraints::computeEliminationOrder
Defined in File marginalize_variables.hpp
Function Documentation
-
UuidOrdering fuse_constraints::computeEliminationOrder(const std::vector<fuse_core::UUID> &marginalized_variables, const fuse_core::Graph &graph)
Compute an efficient elimination order for the marginalized variables.
The marginalized_variables are guaranteed to be placed before any additional connected variables. Each time a variable is eliminated from the system, the resulting reduced system is independent of the eliminated variable. By eliminating the “marginalized variables” first, all of the “additional connected variables” will remain in the system, but they will not depend on any of the “marginalized variables”…which is what we want.
This function uses CCOLAMD to find a good elimination order that eliminates all the “marginalized
variables” first.
- Parameters:
marginalized_variables – [in] The variable UUIDs to be marginalized out
graph – [in] A graph containing, at least, all constraints that involve at least one marginalized variable
- Returns:
The mapping from variable UUID to the computed elimination order