|
file | Batch.h [code] |
|
file | BeamSearch.h [code] |
| This is an implementation of beam search that maintains a priority queue of partial states and attempts to find a program with the lowest posterior score. To do this, we choose a node to expand based on its prior plus N_REPS samples of its likelihood, computed by filling in its children at random. This stochastic heuristic is actually inadmissable (in A* terms) since it usually overestimates the cost. As a result, it usually makes sense to run at a pretty high temperature, corresponding to a downweighting of the likelihood, and making the heuristic more likely to be admissable.
|
|
file | Control.h [code] |
| This class has all the information for running MCMC or MCTS in a little package. It defaultly constructs (via Control()) to read these from FleetArgs, which are a bunch of variables set by Fleet::initialize from the command line. This makes it especially convenient to call with command line arguments, but others can be specified as well.
|
|
file | EnumerationInference.h [code] |
|
file | HillClimbing.h [code] |
| This cute kind of inference keeps a body of N top hypotheses, and successively proposes to them using standard proposals. When it hasn't improved in ctl.restart steps, it will restart (resample). Note that this really should use ctl.restart>0, or else you just climb up one hill. NOTE: We could propose propotional to each hypothesis' posterior, but it doesn't matter much because the best gets most probability mass (that's why we don't store more than n=1 defaultly)
|
|
file | MPIInferenceInterface.h [code] |
|
file | PriorInference.h [code] |
| Inference by sampling from the prior – doesn't tend to work well, but might be a useful baseline.
|
|
file | SampleStreams.h [code] |
|
file | ThreadedInferenceInterface.h [code] |
| This manages multiple threads for running inference. This requires a subclass to define run_thread, which is what each individual thread should do. All threads can then be called with run(Control, Args... args), which copies the control for each thread (setting threads=1) and then passes the args arguments onward.
|
|