Inicializar
class qiskit.circuit.library.Initialize(params, num_qubits=None, normalize=False)
Bases: Instruction
Inicialización de amplitud compleja.
Clase que inicializa una colección flexible de registros qubit, implementada llamando a la clase StatePreparation clase. Tenga en cuenta que Initialize es un Instruction y no un Gate ya que contiene una instrucción reset, que no es unitaria.
El estado inicial se prepara basándose en la Isometry síntesis descrita en [1].
Referencias:
[1] Iten et al., Circuitos cuánticos para isometrías (2016). Física. Rev. A 93, 032318.
Parámetros
-
params (Statevector | Sequence[complex] | str |int) –
El estado a inicializar puede ser cualquiera de los siguientes.
- Vector de estado o vector de amplitudes complejas para inicializar.
- Etiquetas de los estados base de los estados propios de Pauli Z, X, Y. Consulte
Statevector.from_label(). Obsérvese que el orden de las etiquetas se invierte con respecto al índice del qubit al que se aplican. La etiqueta de ejemplo '01' inicializa el qubit cero en y el qubit uno en . - Un entero que se utiliza como un mapa de bits que indica qué qubits inicializar a . Ejemplo: establecer params a 5 inicializaría el qubit 0 y el qubit 2 a y el qubit 1 a .
-
num_qubits (int | None) – Este parámetro sólo se utiliza si params es un int. Indica el número total de qubits en la llamada de inicialización. Ejemplo: inicializar cubre 5 qubits y params es 3. Esto permite inicializar los qubits 0 y 1 a y los 3 qubits restantes a .
-
normalize (bool) – Si se normaliza una matriz de entrada a un vector unitario.
Atributos
base_class
Obtiene la clase base de esta instrucción. Está garantizado que se encuentra en el árbol de herencia de self.
La "clase base" de una instrucción es la clase más baja en su árbol de herencia con la que el objeto debe considerarse totalmente compatible para aplicaciones de circuito _all_. Por lo general, esto significa que la subclase se define únicamente para ofrecer algún tipo de comodidad al programador con respecto a la clase base, y la clase base es la "verdadera" clase desde el punto de vista del comportamiento. En particular, no debe anular base_class si está definiendo una versión personalizada de una instrucción que será implementada de forma diferente por el hardware, como una estrategia de medida alternativa, o una versión de una puerta parametrizada con un conjunto particular de parámetros con el propósito de distinguirla en un archivo Target de la puerta parametrizada completa.
Esto suele ser exactamente equivalente a type(obj), excepto en el caso de instancias únicas de instrucciones de biblioteca estándar. Estas instancias singleton son subclases especiales de su clase base, y esta propiedad devolverá esa base. Por ejemplo:
>>> isinstance(XGate(), XGate)
True
>>> type(XGate()) is XGate
False
>>> XGate().base_class is XGate
TrueEn general, no se debe confiar en la clase precisa de una instrucción; dentro de un circuito determinado, se espera que Instruction.name sea un discriminador más adecuado en la mayoría de las situaciones.
decompositions
Obtenga las descomposiciones de la instrucción de la SessionEquivalenceLibrary.
definition
Definición de retorno en términos de otras puertas básicas.
label
Etiqueta de instrucciones de devolución
mutable
Esta instancia es una instancia única mutable o no.
Si este atributo es False la instancia de la puerta es un singleton compartido y no es mutable.
name
Devuelve el nombre.
num_clbits
Devuelve el número de clbits.
num_qubits
Devuelve el número de qubits.
params
Devuelve los parámetros de inicialización.
Métodos
add_decomposition
add_decomposition(decomposition)
Añade una descomposición de la instrucción a la SessionEquivalenceLibrary.
broadcast_arguments
broadcast_arguments(qargs, cargs)
Validación de los argumentos.
Parámetros
- qargs (List) – Lista de argumentos de bits cuánticos.
- cargs (List) – Lista de argumentos clásicos de bits.
Cesiones
Tuple(List, List) - Una tupla con argumentos individuales.
Eleva
CircuitError - Si la entrada no es válida. Por ejemplo, el número de argumentos no coincide con las expectativas de la puerta.
copy
copy(name=None)
Copia de la instrucción.
Parámetros
name (str) – nombre que se dará al circuito copiado, si None entonces el nombre permanece igual.
Devuelve
una copia de la instrucción actual, con el nombre actualizado si se proporcionó
Tipo de retorno
gates_to_uncompute
gates_to_uncompute()
Llamada para crear un circuito con puertas que lleven el vector deseado a cero.
Devuelve
circuito para llevar self.params vector a
Tipo de retorno
inverse
inverse(annotated=False)
Genera un error, ya que «Initialize» no se puede invertir.
Parámetros
annotated (bool)
is_parameterized
repeat
repeat(n)
Crea una instrucción que self se repite veces.
Parámetros
n (int) – Número de veces que se repite la instrucción
Devuelve
Contiene la definición.
Tipo de retorno
Eleva
CircuitError - Si n < 1.
reverse_ops
reverse_ops()
Para una instrucción compuesta, invierta el orden de las subinstrucciones.
Esto se hace invirtiendo recursivamente todas las subinstrucciones. No invierte ninguna puerta.
Devuelve
una nueva instrucción con
subinstrucciones invertidas.
Tipo de retorno
soft_compare
soft_compare(other)
Comparación suave entre puertas. Sus nombres, número de qubits y números de bits clásicos deben coincidir. El número de parámetros debe coincidir. Se compara cada parámetro. Si uno es un ParameterExpression entonces no se tiene en cuenta.
Parámetros
other (instruction) – otras instrucciones.
Devuelve
son auto y otros iguales hasta expresiones de parámetros.
Tipo de retorno
to_mutable
to_mutable()
Devuelve una copia mutable de esta puerta.
Este método devolverá una nueva copia mutable de esta instancia de puerta. Si se utiliza una instancia singleton, ésta será una nueva instancia única que puede mutar. Si la instancia ya es mutable será una deepcopy de esa instancia.
validate_parameter
validate_parameter(parameter)
El parámetro de instrucción no tiene validación ni normalización.