matchcake.devices.sampling_strategies package¶
Submodules¶
matchcake.devices.sampling_strategies.k_qubits_by_k_qubits_sampling module¶
- class matchcake.devices.sampling_strategies.k_qubits_by_k_qubits_sampling.KQubitsByKQubitsSampling¶
Bases:
SamplingStrategy
- K: int = None¶
- NAME: str = 'kQubitBykQubitSampling'¶
- batch_generate_samples(device: QubitDevice, states_prob_func: Callable[[TensorLike, Wires], TensorLike], **kwargs) TensorLike ¶
Generate qubit-by-qubit samples.
Sample x_0 from the probability distribution pi_0(x_0)
for j = 1 to n-1 do
Sample x_j from the probability distribution pi_j(x_0, …, x_{j-1}, x_j) / pi_{j-1}(x_0, …, x_{j-1})
end for
return x_0 … x_{n-1}
- Returns:
Samples with shape (shots, num_wires) of probabilities |<x|psi>|^2
- batch_generate_samples_by_subsets_of_k(device: QubitDevice, states_prob_func: Callable[[TensorLike, Wires], TensorLike], k: int = 1, **kwargs) TensorLike ¶
Generate qubit-by-qubit samples.
Sample x_0 from the probability distribution pi_0(x_0)
for j = 1 to n-1 do
Sample x_j from the probability distribution pi_j(x_0, …, x_{j-1}, x_j) / pi_{j-1}(x_0, …, x_{j-1})
end for
return x_0 … x_{n-1}
- Returns:
Samples with shape (shots, num_wires) of probabilities |<x|psi>|^2
- classmethod compute_extend_probs_to_all(all_states: TensorLike, extended_states: TensorLike, extended_states_probs: TensorLike)¶
- classmethod extend_states(states: TensorLike, added_states: TensorLike, unique: bool = True) TensorLike ¶
- generate_samples(device: QubitDevice, state_prob_func: Callable[[TensorLike, Wires], TensorLike], **kwargs) TensorLike ¶
Generate qubit-by-qubit samples.
Sample x_0 from the probability distribution pi_0(x_0)
for j = 1 to n-1 do
Sample x_j from the probability distribution pi_j(x_0, …, x_{j-1}, x_j) / pi_{j-1}(x_0, …, x_{j-1})
end for
return x_0 … x_{n-1}
- Returns:
Samples with shape (shots, num_wires) of probabilities |<x|psi>|^2
matchcake.devices.sampling_strategies.qubit_by_qubit_sampling module¶
- class matchcake.devices.sampling_strategies.qubit_by_qubit_sampling.QubitByQubitSampling¶
Bases:
KQubitsByKQubitsSampling
- K: int = 1¶
- NAME: str = 'QubitByQubitSampling'¶
- generate_samples(device: QubitDevice, state_prob_func: Callable[[TensorLike, Wires], TensorLike], **kwargs) TensorLike ¶
Generate qubit-by-qubit samples.
Sample x_0 from the probability distribution pi_0(x_0)
for j = 1 to n-1 do
Sample x_j from the probability distribution pi_j(x_0, …, x_{j-1}, x_j) / pi_{j-1}(x_0, …, x_{j-1})
end for
return x_0 … x_{n-1}
- Returns:
Samples with shape (shots, num_wires) of probabilities |<x|psi>|^2
matchcake.devices.sampling_strategies.sampling_strategy module¶
- class matchcake.devices.sampling_strategies.sampling_strategy.SamplingStrategy¶
Bases:
ABC
- NAME: str = 'SamplingStrategy'¶
- batch_generate_samples(device: QubitDevice, states_prob_func: Callable[[TensorLike, Wires], TensorLike], **kwargs) TensorLike ¶
- abstract generate_samples(device: QubitDevice, state_prob_func: Callable[[TensorLike, Wires], TensorLike], **kwargs) TensorLike ¶
matchcake.devices.sampling_strategies.two_qubits_by_two_qubits_sampling module¶
- class matchcake.devices.sampling_strategies.two_qubits_by_two_qubits_sampling.TwoQubitsByTwoQubitsSampling¶
Bases:
KQubitsByKQubitsSampling
- K: int = 2¶
- NAME: str = '2QubitBy2QubitSampling'¶
Module contents¶
- matchcake.devices.sampling_strategies.get_sampling_strategy(name: str) SamplingStrategy ¶