matflow.subset_simulation.subset_simulation.generate_next_level_samples_DA#

matflow.subset_simulation.subset_simulation.generate_next_level_samples_DA(performance, performance_coarse, num_chains, num_states, dimension, chain_seeds, chain_g, level_idx, master_seed, threshold, proposal, log_surrogate_weight, transformation=None, temperature=1.0, num_inner_states=1, spawn_key=None, debug=False)#

Generate one conditional level using fixed-subchain RST.

This is the randomised-length subchain surrogate transition (RST) algorithm but with a fixed length subchain. For num_inner_states=1, this should be identical to generate_next_level_samples_DA_single_inner.

Each outer transition:

current x

v

num_inner_states coarse-MH steps

v

endpoint psi

v

one fine evaluation (unless psi == x)

v

fine correction

v

new x

The inner MH kernel targets the coarse surrogate

pi_C(x) ∝ phi(x) * log_surrogate_weight(g_c(x)).

The endpoint is then corrected to the fine target.

Parameters:
  • log_surrogate_weight (Callable) –

  • transformation (Callable | None) –

  • num_inner_states (int) –

  • spawn_key (tuple[int, ...] | None) –

  • debug (bool) –

Return type:

DALevelSamplingResult