MultivariateVariationalDistribution
class MultivariateVariationalDistribution(num_qubits, var_form, params, low=None, high=None)
The Multivariate Variational Distribution.
Parameters
- num_qubits (
Union
[List
[int
],ndarray
]) – List with the number of qubits per dimension - var_form (
Union
[QuantumCircuit
,VariationalForm
]) – Variational form - params (
Union
[List
[float
],ndarray
]) – Parameters for variational form - low (
Union
[List
[float
],ndarray
,None
]) – List with the lower bounds per dimension, set to 0 for each dimension if None - high (
Union
[List
[float
],ndarray
,None
]) – List with the upper bounds per dimension, set to 1 for each dimension if None
Attributes
dimension
returns dimensions
high
returns high
low
returns low
num_qubits
returns num qubits
num_target_qubits
Returns the number of target qubits
num_values
returns number of values
probabilities
returns probabilities
probabilities_vector
returns probabilities vector
values
returns values
Methods
build
MultivariateVariationalDistribution.build(qc, q, q_ancillas=None, params=None)
build_controlled
MultivariateVariationalDistribution.build_controlled(qc, q, q_control, q_ancillas=None, use_basis_gates=True)
Adds corresponding controlled sub-circuit to given circuit
Parameters
- qc (QuantumCircuit) – quantum circuit
- q (list) – list of qubits (has to be same length as self._num_qubits)
- q_control (Qubit) – control qubit
- q_ancillas (list) – list of ancilla qubits (or None if none needed)
- use_basis_gates (bool) – use basis gates for expansion of controlled circuit
build_controlled_inverse
MultivariateVariationalDistribution.build_controlled_inverse(qc, q, q_control, q_ancillas=None, use_basis_gates=True)
Adds controlled inverse of corresponding sub-circuit to given circuit
Parameters
- qc (QuantumCircuit) – quantum circuit
- q (list) – list of qubits (has to be same length as self._num_qubits)
- q_control (Qubit) – control qubit
- q_ancillas (list) – list of ancilla qubits (or None if none needed)
- use_basis_gates (bool) – use basis gates for expansion of controlled circuit
build_controlled_inverse_power
MultivariateVariationalDistribution.build_controlled_inverse_power(qc, q, q_control, power, q_ancillas=None, use_basis_gates=True)
Adds controlled, inverse, power of corresponding circuit. May be overridden if a more efficient implementation is possible
build_controlled_power
MultivariateVariationalDistribution.build_controlled_power(qc, q, q_control, power, q_ancillas=None, use_basis_gates=True)
Adds controlled power of corresponding circuit. May be overridden if a more efficient implementation is possible
build_inverse
MultivariateVariationalDistribution.build_inverse(qc, q, q_ancillas=None)
Adds inverse of corresponding sub-circuit to given circuit
Parameters
- qc (QuantumCircuit) – quantum circuit
- q (list) – list of qubits (has to be same length as self._num_qubits)
- q_ancillas (list) – list of ancilla qubits (or None if none needed)
build_inverse_power
MultivariateVariationalDistribution.build_inverse_power(qc, q, power, q_ancillas=None)
Adds inverse power of corresponding circuit. May be overridden if a more efficient implementation is possible
build_power
MultivariateVariationalDistribution.build_power(qc, q, power, q_ancillas=None)
Adds power of corresponding circuit. May be overridden if a more efficient implementation is possible
get_num_qubits
MultivariateVariationalDistribution.get_num_qubits()
returns number of qubits
get_num_qubits_controlled
MultivariateVariationalDistribution.get_num_qubits_controlled()
returns number of qubits controlled
pdf_to_probabilities
static MultivariateVariationalDistribution.pdf_to_probabilities(pdf, low, high, num_values)
pdf to probabilities
required_ancillas
MultivariateVariationalDistribution.required_ancillas()
returns required ancillas
required_ancillas_controlled
MultivariateVariationalDistribution.required_ancillas_controlled()
returns required ancillas controlled
set_probabilities
MultivariateVariationalDistribution.set_probabilities(quantum_instance)
Set Probabilities
Parameters
quantum_instance (QuantumInstance) – Quantum Instance