quantax.sampler.MixSampler#
- class quantax.sampler.MixSampler(samplers: Sequence[Metropolis], reweight: float = 2.0, thermal_steps: int | None = None, sweep_steps: int | None = None, initial_spins: Array | None = None)#
Bases:
MetropolisA mixture of several metropolis samplers. New samples are proposed randomly by every sampler.
- __init__(samplers: Sequence[Metropolis], reweight: float = 2.0, thermal_steps: int | None = None, sweep_steps: int | None = None, initial_spins: Array | None = None)#
- Parameters:
state – The state used for computing the wave function and probability.
nsamples – Number of samples generated per iteration. It should be a multiple of the total number of machines to allow samples to be equally distributed on different machines.
reweight – The reweight factor n defining the sample probability \(|\psi|^n\), default to 2.0.
thermal_steps – The number of thermalization steps in the beginning of each Markov chain, default to be 20 * fock state length.
sweep_steps – The number of steps for generating new samples, default to be 2 * fock state length.
initial_spins – The initial spins for every Markov chain before the thermalization steps, default to be random spins.
- property nflips: int#
The number of flips in new proposal.
- reset() None#
Reset all Markov chains to
initial_spinsand thermalize them
- property nsamples: int#
Number of samples generated per iteration
- propose(key: Key, old_spins: Array) Array | Tuple[Array, Array]#
Propose new configurations.
- Returns:
Either a tuple of (new_spins, propose_ratio) or new_spins only, where new_spins is the proposed configurations, and propose_ratio is the ratio of proposal rate \(P(s|s') / P(s'|s)\). propose_ratio is set to 1 if not returned.
- property reweight: float#
The reweight factor n defining the sample probability \(|\psi|^n\)