kill DiscreteConditional::argmaxInPlace
parent
1422b6c431
commit
4d62b87e35
|
@ -257,33 +257,6 @@ size_t DiscreteConditional::argmax(const DiscreteValues& parentsValues) const {
|
||||||
return maxValue;
|
return maxValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ************************************************************************** */
|
|
||||||
void DiscreteConditional::argmaxInPlace(DiscreteValues* values) const {
|
|
||||||
ADT pFS = choose(*values, true); // P(F|S=parentsValues)
|
|
||||||
|
|
||||||
// Initialize
|
|
||||||
DiscreteValues mpe;
|
|
||||||
double maxP = 0;
|
|
||||||
|
|
||||||
// Get all Possible Configurations
|
|
||||||
const auto allPosbValues = frontalAssignments();
|
|
||||||
|
|
||||||
// Find the maximum
|
|
||||||
for (const auto& frontalVals : allPosbValues) {
|
|
||||||
double pValueS = pFS(frontalVals); // P(F=value|S=parentsValues)
|
|
||||||
// Update maximum solution if better
|
|
||||||
if (pValueS > maxP) {
|
|
||||||
maxP = pValueS;
|
|
||||||
mpe = frontalVals;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// set values (inPlace) to maximum
|
|
||||||
for (Key j : frontals()) {
|
|
||||||
(*values)[j] = mpe[j];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
void DiscreteConditional::sampleInPlace(DiscreteValues* values) const {
|
void DiscreteConditional::sampleInPlace(DiscreteValues* values) const {
|
||||||
assert(nrFrontals() == 1);
|
assert(nrFrontals() == 1);
|
||||||
|
|
|
@ -218,12 +218,6 @@ class GTSAM_EXPORT DiscreteConditional
|
||||||
*/
|
*/
|
||||||
size_t argmax(const DiscreteValues& parentsValues = DiscreteValues()) const;
|
size_t argmax(const DiscreteValues& parentsValues = DiscreteValues()) const;
|
||||||
|
|
||||||
/**
|
|
||||||
* @brief Calculate assignment for frontal variables that maximizes value.
|
|
||||||
* @param (in/out) parentsValues Known assignments for the parents.
|
|
||||||
*/
|
|
||||||
void argmaxInPlace(DiscreteValues* parentsValues) const;
|
|
||||||
|
|
||||||
/// @}
|
/// @}
|
||||||
/// @name Advanced Interface
|
/// @name Advanced Interface
|
||||||
/// @{
|
/// @{
|
||||||
|
|
Loading…
Reference in New Issue