handle Gaussian conditionals in the BayesTree
parent
8c41f63167
commit
ca4293b70d
|
@ -138,7 +138,6 @@ GaussianBayesNet HybridBayesNet::choose(
|
||||||
|
|
||||||
} else if (factors_.at(idx)->isContinuous()) {
|
} else if (factors_.at(idx)->isContinuous()) {
|
||||||
// If continuous only, add gaussian conditional.
|
// If continuous only, add gaussian conditional.
|
||||||
factors_.at(idx)->print();
|
|
||||||
gbn.push_back((this->atGaussian(idx)));
|
gbn.push_back((this->atGaussian(idx)));
|
||||||
|
|
||||||
} else if (factors_.at(idx)->isDiscrete()) {
|
} else if (factors_.at(idx)->isDiscrete()) {
|
||||||
|
|
|
@ -57,12 +57,14 @@ HybridValues HybridBayesTree::optimize() const {
|
||||||
added_keys.insert(added_keys.end(), conditional->frontals().begin(),
|
added_keys.insert(added_keys.end(), conditional->frontals().begin(),
|
||||||
conditional->frontals().end());
|
conditional->frontals().end());
|
||||||
|
|
||||||
if (conditional->isHybrid()) {
|
if (conditional->isDiscrete()) {
|
||||||
// If conditional is hybrid, add it to a Hybrid Bayes net.
|
// If discrete, we use it to compute the MPE
|
||||||
hbn.push_back(conditional);
|
|
||||||
} else if (conditional->isDiscrete()) {
|
|
||||||
// Else if discrete, we use it to compute the MPE
|
|
||||||
dbn.push_back(conditional->asDiscreteConditional());
|
dbn.push_back(conditional->asDiscreteConditional());
|
||||||
|
|
||||||
|
} else {
|
||||||
|
// Else conditional is hybrid or continuous-only,
|
||||||
|
// so we directly add it to the Hybrid Bayes net.
|
||||||
|
hbn.push_back(conditional);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -109,6 +111,10 @@ VectorValues HybridBayesTree::optimize(const DiscreteValues& assignment) const {
|
||||||
(*gm)(assignment);
|
(*gm)(assignment);
|
||||||
|
|
||||||
gbn.push_back(gaussian_conditional);
|
gbn.push_back(gaussian_conditional);
|
||||||
|
|
||||||
|
} else if (conditional->isContinuous()) {
|
||||||
|
// If conditional is Gaussian, we simply add it to the Bayes net.
|
||||||
|
gbn.push_back(conditional->asGaussian());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue