Skip to content

Repair AdaptiveMultiPropTuning picking-rule updates #534

Description

@BJMCox

AdaptiveMultiPropTuning aborts on the first tuning step for a valid vector-backed MCMCMultiProposal.

using BAT

proposal = MCMCMultiProposal([MetropolisHastings()], [1])
algorithm = TransformedMCMC(
    proposal = proposal,
    proposal_tuning = AdaptiveMultiPropTuning(),
    convergence = AssumeConvergence(),
    nchains = 1,
)

bat_sample(
    BAT.Distributions.Normal(),
    algorithm,
    BATContext(rng = BAT.Random123.Philox4x((0, 1))),
)

On d33ddf2b:

ERROR: TaskFailedException

    nested task error: UndefVarError: `curr_idx` not defined in `BAT`
    @ BAT .../mcmc_adaptive_multiprop_tuner.jl:145

The method binds active_idx but passes curr_idx. Later helpers accept tuples where the public state accepts vectors, mutate tuple results, require tuple qualities although broadcasting produces vectors, reference undefined p_tuned, and alias Categorical.p.

Please standardize the tuner on vector and Categorical inputs, use active_idx, copy probability storage, and preserve normalization. Add end-to-end vector and Categorical tests for post-step and post-cycle tuning, zero-quality cases, and proposal disabling and re-enabling.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions