APEMoST
|
#include <omp.h>
#include "mcmc.h"
#include "parallel_tempering.h"
#include "parallel_tempering_beta.h"
#include "parallel_tempering_interaction.h"
#include "parallel_tempering_config.h"
#include "debug.h"
#include "define_defaults.h"
#include "gsl_helper.h"
#include "parallel_tempering_run.h"
#include "utils.h"
Defines | |
#define | BURN_IN_ITERATIONS |
#define | RWM |
#define | ADAPT |
Functions | |
void | register_signal_handlers () |
void | run_sampler (mcmc **chains, int n_beta, unsigned int n_swap, const unsigned long max_iterations, char *mode) |
void | report (const mcmc **chains, const int n_beta) |
void | calibrate_first () |
void | calibrate_rest () |
void | prepare_and_run_sampler (const unsigned long max_iterations, int append) |
void | adapt (mcmc **chains, const unsigned int n_beta, const unsigned int n_swap) |
void | dump (const mcmc **chains, const unsigned int n_beta, const unsigned long iter, FILE *acceptance_file, FILE **probabilities_file) |
#define ADAPT |
Enable a constant but small rescaling of the step width to keep the acceptance rate up.
#define BURN_IN_ITERATIONS |
how many iterations should be spent on burn-in
Referenced by calibrate_first(), calibrate_rest(), and check().
#define RWM |
Enable Random Walk Metropolis (adaptive MCMC method) Also important: MINIMAL_STEPWIDTH, MAXIMAL_STEPWIDTH
void adapt | ( | mcmc ** | chains, |
const unsigned int | n_beta, | ||
const unsigned int | n_swap | ||
) |
References dump_i, get_params_accepts_sum(), get_params_rejects_sum(), get_prob(), get_steps(), markov_chain_step(), reset_accept_rejects(), rmw_adapt_stepwidth(), and TARGET_ACCEPTANCE_RATE.
Referenced by run_sampler().
void calibrate_first | ( | ) |
needs: params file BURN_IN_ITERATIONS start values (in params file)
does: calibrate first chain (beta = 1) writes beta, stepwidths and start values as first line in file calibration_result
provides: stepwidths of first chain (calibration_result) new params file (params_suggest) new start values (calibration_result)
References BURN_IN_ITERATIONS, calc_model(), DEFAULT_ADJUST_STEP, ITER_LIMIT, markov_chain_calibrate(), MAX_AR_DEVIATION, mcmc_check(), MUL, setup_chains(), TARGET_ACCEPTANCE_RATE, write_calibrations_file(), and write_params_file().
Referenced by main().
void calibrate_rest | ( | ) |
needs: params file BURN_IN_ITERATIONS first line in calibration_result BETA_ALIGNMENT BETA_0 SKIP_CALIBRATE_ALLCHAINS
does: calibrate remaining chains (beta < 1) writes all betas, stepwidths and start values in file calibration_result
provides: stepwidths of first chain (calibration_result) new params file (params_suggest) new start values (calibration_result)
References mcmc::additional_data, BETA_0, burn_in(), BURN_IN_ITERATIONS, calc_beta_0(), calc_model(), DEFAULT_ADJUST_STEP, dump_vectorln(), dup_vector(), get_beta(), get_chain_beta(), get_n_par(), get_params_best(), get_steps(), ITER_LIMIT, markov_chain_calibrate(), MAX_AR_DEVIATION, mcmc_check(), mem_free, mem_malloc, MUL, N_BETA, mcmc::params_step, read_calibration_file(), set_beta(), set_params(), setup_chains(), TARGET_ACCEPTANCE_RATE, write_calibration_summary(), and write_calibrations_file().
Referenced by main().
void dump | ( | const mcmc ** | chains, |
const unsigned int | n_beta, | ||
const unsigned long | iter, | ||
FILE * | acceptance_file, | ||
FILE ** | probabilities_file | ||
) |
References debug, dump_mcmc(), dump_ul, dump_vector(), dumpflag, get_duration(), get_params(), get_params_accepts_global(), get_params_rejects_global(), get_ticks_per_second(), IFDEBUG, PRINT_PROB_INTERVAL, and report().
Referenced by run_sampler().
void prepare_and_run_sampler | ( | const unsigned long | max_iterations, |
int | append | ||
) |
References mcmc_free(), mcmc_open_dump_files(), mem_free, N_BETA, N_SWAP, read_calibration_file(), register_signal_handlers(), report(), run_sampler(), set_data(), and setup_chains().
Referenced by main().
void register_signal_handlers | ( | ) |
Referenced by prepare_and_run_sampler().
void report | ( | const mcmc ** | chains, |
const int | n_beta | ||
) |
References mcmc_dump_flush(), and print_current_positions().
Referenced by dump(), and prepare_and_run_sampler().
void run_sampler | ( | mcmc ** | chains, |
int | n_beta, | ||
unsigned int | n_swap, | ||
const unsigned long | max_iterations, | ||
char * | mode | ||
) |
References adapt(), assert, dump(), dumpflag, get_beta(), get_duration(), get_prior(), get_prob(), markov_chain_step(), mcmc_append_current_parameters(), mcmc_check_best(), mem_calloc, mcmc::n_iter, run, and tempering_interaction().
Referenced by prepare_and_run_sampler().