1 #ifndef MIXTUREPROPOSAL_H_
2 #define MIXTUREPROPOSAL_H_
7 namespace SamplingAlgorithms {
33 std::shared_ptr<AbstractSamplingProblem>
const&
prob);
36 std::shared_ptr<AbstractSamplingProblem>
const&
prob,
37 std::vector<std::shared_ptr<MCMCProposal>>
const&
proposals,
38 std::vector<double>
const&
weights);
45 static std::vector<double>
GetWeights(boost::property_tree::ptree
const& pt);
48 static std::vector<std::shared_ptr<MCMCProposal>>
GetProposals(boost::property_tree::ptree
const& pt,
49 std::shared_ptr<AbstractSamplingProblem>
const&
prob);
52 std::vector<std::shared_ptr<MCMCProposal>>
proposals;
55 virtual std::shared_ptr<SamplingState>
Sample(std::shared_ptr<SamplingState>
const& currentState)
override;
57 virtual double LogDensity(std::shared_ptr<SamplingState>
const& currState,
58 std::shared_ptr<SamplingState>
const& propState)
override;
std::shared_ptr< AbstractSamplingProblem > prob
This class implements a weighted mixture of other proposals.
virtual double LogDensity(std::shared_ptr< SamplingState > const &currState, std::shared_ptr< SamplingState > const &propState) override
static std::vector< std::shared_ptr< MCMCProposal > > GetProposals(boost::property_tree::ptree const &pt, std::shared_ptr< AbstractSamplingProblem > const &prob)
virtual ~MixtureProposal()=default
std::vector< double > weights
static std::vector< double > GetWeights(boost::property_tree::ptree const &pt)
MixtureProposal(boost::property_tree::ptree pt, std::shared_ptr< AbstractSamplingProblem > const &prob)
std::vector< std::shared_ptr< MCMCProposal > > proposals
The proposal distribution.
virtual std::shared_ptr< SamplingState > Sample(std::shared_ptr< SamplingState > const ¤tState) override