qiskit.circuit.library.zz_feature_map
qiskit.circuit.library.zz_feature_map(feature_dimension, reps=2, entanglement='full', alpha=2.0, data_map_func=None, parameter_prefix='x', insert_barriers=False, name='ZZFeatureMap')
Circuito de evolución Pauli-Z de segundo orden.
Para 3 qubits y 1 repetición y entrelazamiento lineal el circuito se representa por:
┌───┐┌────────────────┐
┤ H ├┤ P(2.0*φ(x[0])) ├──■───────────────────────────■───────────────────────────────────
├───┤├────────────────┤┌─┴─┐┌─────────────────────┐┌─┴─┐
┤ H ├┤ P(2.0*φ(x[1])) ├┤ X ├┤ P(2.0*φ(x[0],x[1])) ├┤ X ├──■───────────────────────────■──
├───┤├────────────────┤└───┘└─────────────────────┘└───┘┌─┴─┐┌─────────────────────┐┌─┴─┐
┤ H ├┤ P(2.0*φ(x[2])) ├─────────────────────────────────┤ X ├┤ P(2.0*φ(x[1],x[2])) ├┤ X ├
└───┘└────────────────┘ └───┘└─────────────────────┘└───┘Aquí, es una función no lineal clásica, cuyo valor por defecto es si y si , y es el conjunto de índices de qubits que describen las conexiones en el mapa de características. Consulte la cadena de documentación de pauli_feature_map() para obtener más detalles.
Parámetros
- feature_dimension (int) – Número de qubits en el circuito.
- reps (int) – El número de veces que se repiten las capas de evolución.
- entanglement (str |Sequence[Sequence[int]] | Callable[[int], str |Sequence[Sequence[int]]]) – Especifica la estructura de entrelazamiento. Puede ser una cadena (
'full','linear','reverse_linear','circular'o'sca'), una lista de tuplas de enteros o una función que devuelva estos tipos en cada iteración. - alpha (float) – El factor de rotación de Pauli, que se multiplica por las rotaciones de Pauli.
- data_map_func (Callable[[Parameter], ParameterExpression] | None) – Una función de asignación para los datos
xque se puede proporcionar para anular la asignación predeterminada. - parameter_prefix (str) – El prefijo que se utiliza cuando se generan parámetros por defecto.
- insert_barriers (bool) – En ese caso
True, se insertan barreras entre las instrucciones de evolución y las capas de Hadamard. - name (str) – El nombre del circuito.
Devuelve
Un circuito cuántico que implementa el mapa de características ZZ.
Tipo de retorno
Ejemplos
>>> from qiskit.circuit.library import zz_feature_map
>>> prep = zz_feature_map(2, reps=1)
>>> print(prep)
┌───┐┌─────────────┐
q_0: ┤ H ├┤ P(2.0*x[0]) ├──■──────────────────────────────────────■──
├───┤├─────────────┤┌─┴─┐┌────────────────────────────────┐┌─┴─┐
q_1: ┤ H ├┤ P(2.0*x[1]) ├┤ X ├┤ P(2.0*(pi - x[0])*(pi - x[1])) ├┤ X ├
└───┘└─────────────┘└───┘└────────────────────────────────┘└───┘>>> from qiskit.circuit.library import efficient_su2
>>> classifier = zz_feature_map(3).compose(efficient_su2(3))
>>> classifier.num_parameters
27
>>> classifier.parameters # 'x' for the data preparation, 'θ' for the SU2 parameters
ParameterView([
ParameterVectorElement(x[0]), ParameterVectorElement(x[1]),
ParameterVectorElement(x[2]), ParameterVectorElement(θ[0]),
ParameterVectorElement(θ[1]), ParameterVectorElement(θ[2]),
ParameterVectorElement(θ[3]), ParameterVectorElement(θ[4]),
ParameterVectorElement(θ[5]), ParameterVectorElement(θ[6]),
ParameterVectorElement(θ[7]), ParameterVectorElement(θ[8]),
ParameterVectorElement(θ[9]), ParameterVectorElement(θ[10]),
ParameterVectorElement(θ[11]), ParameterVectorElement(θ[12]),
ParameterVectorElement(θ[13]), ParameterVectorElement(θ[14]),
ParameterVectorElement(θ[15]), ParameterVectorElement(θ[16]),
ParameterVectorElement(θ[17]), ParameterVectorElement(θ[18]),
ParameterVectorElement(θ[19]), ParameterVectorElement(θ[20]),
ParameterVectorElement(θ[21]), ParameterVectorElement(θ[22]),
ParameterVectorElement(θ[23])
])¿Le ha resultado útil esta página?
Informe de un error, de una errata o solicite contenido en GitHub.