Servicios de suministro
qiskit_addon_slc.utils
Diversas utilidades.
Este módulo ofrece una serie de funciones de utilidad. Algunas de ellas solo existen de forma temporal para solucionar problemas pendientes de la versión « Qiskit SDK ». Cuando esto ocurre, se marcan como tales y pueden eliminarse sin que se considere obsoleto ni se avise con antelación.
find_indices
find_indices(circuit, bits_or_instruction, /)
Determina los índices de los qubits correspondientes a los índices de bits o a las instrucciones de circuito proporcionados.
¡Esta función no se considera parte de la API estable! Se eliminará sin previo aviso ni fase de obsolescencia cuando el Qiskit SDK admita esa misma funcionalidad de forma nativa. Consulta este número para obtener más detalles.
Parámetros
- circuit (QuantumCircuit) – el circuito cuántico cuyos índices de qubits hay que hallar.
- bits_or_instruction (Bit |CircuitInstruction |Sequence[Bit]) – los bits cuyos índices hay que encontrar. Si se trata de un
CircuitInstruction, se utilizan los qubits sobre los que actúa esta instrucción.
Devuelve
Los índices de los bits consultados en los registros del circuito. Si se ha proporcionado un objeto de un solo bit, int se devuelve un único como su índice. De lo contrario, el tipo de retorno será un list[int] cuya longitud sea igual al número de bits proporcionados.
Subidas
TypeError – cuando bits_or_instruction se proporciona un tipo inesperado de.
Tipo de retorno
generate_noise_model_paulis
generate_noise_model_paulis(instructions, coupling_map=None, circuit=None)
Genera los términos de Pauli de peso 1 y 2 para cada una de las cajas de capas únicas de « 2q » proporcionadas.
Parámetros
- instructions (list[CircuitInstruction]) – el resultado de
find_unique_box_instructions(). Se da por hecho que cualquiera de las instrucciones proporcionadas está compuesta únicamente por puertas de medición o corresponde a una capa de instrucciones de puertas de 2 qubits. En el primer caso, el modelo de ruido generado contendrá únicamente erroresXde un solo qubit; en el segundo, se incluirán todos los errores de Pauli de peso 1 y 2 en el mapa de acoplamiento reducido. - coupling_map (CouplingMap | None) – el mapa de acoplamiento del backend en el que se han distribuido las instrucciones. En este caso
None, se supone una línea de qubits de tipo « 1d ». - circuit (QuantumCircuit | None) – el circuito transpilado que se ha dispuesto en el mapa de acoplamiento facilitado. Esto solo puede ocurrir
Nonecuando también escoupling_mapNone.
Devuelve
Un diccionario que asocia los ref atributos de la InjectNoise anotación de cada «Box» único a los términos de Pauli de peso 1 y 2 cuyos errores se han aprendido para ese «Box».
Tipo de retorno
dict [ str, QubitSparsePauliList ]
get_extremal_eigenvalue
get_extremal_eigenvalue(spo, **kwargs)
Calcula el valor propio extremo del operador proporcionado.
Esto convierte el operador proporcionado en una matriz dispersa cuyo valor propio mínimo se busca.
La implementación actual no está, desde luego, optimizada en cuanto a rendimiento.
Parámetros
-
spo (SparsePauliOp) – el operador cuyo valor propio mínimo hay que hallar.
-
kwargs –
argumentos de palabra clave adicionales para
davidson1(). Salvo que se indique lo contrario, se utilizarán los valores predeterminados siguientes:- tol: 1e-6
- max_cycle: 500
- max_space: 12
- lindep: 1e-11
- max_memory: 2000
Los demás valores adoptarán por defecto los valores predeterminados de « PySCF’s ».
Devuelve
Un par que indica si el algoritmo de Davidson ha convergido y el valor propio mínimo obtenido.
Tipo de retorno
iter_circuit
iter_circuit(circuit, *, reverse=False, log_process=True)
Recorre las instrucciones de un circuito.
Esta función se ejecuta de forma recursiva en las instrucciones BoxOp .
Se están ignorando las barreras del circuito.
Parámetros
- circuit (QuantumCircuit) – el circuito por el que se va a recorrer.
- reverse (bool) – si se debe recorrer el circuito en orden inverso.
- log_process (bool) – si se debe registrar el proceso.
Cesiones
Tuplas de longitud cuatro, compuestas por la instrucción de circuito detectada, los índices canónicos de los qubits (es decir, los índices enteros de los qubits sobre los que se actúa en el contexto de la entrada circuit) y los atributos InjectNoise : modifier_ref y ref. Es posible que estos dos últimos elementos None indiquen una instrucción de circuito que no formaba parte de un «unrolled BoxOp».
Tipo de retorno
Generador [ tupla [ InstrucciónDeCircuito, lista [ entero ], cadena | Ninguna, cadena | Ninguna]]
map_modifier_ref_to_ref
map_modifier_ref_to_ref(circuit)
Recorrer un circuito y asignar las referencias de las anotaciones InjectNoise .
Parámetros
circuit (QuantumCircuit) – el circuito por el que se va a recorrer.
Devuelve
Un diccionario que asocia cada elemento InjectNoise.modifier_ref a su correspondiente InjectNoise.ref.
Tipo de retorno
remove_measure
remove_measure(circuit)
Elimina todas las operaciones Measure del circuito proporcionado.
Esta función se ejecuta de forma recursiva en las instrucciones BoxOp .
Parámetros
circuit (QuantumCircuit) – el circuito del que hay que eliminar las mediciones.
Devuelve
El circuito sin operaciones de medición.
Tipo de retorno