Skip to main content
IBM Quantum Platform

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')

GitHub

Pauli-Z-Evolutionskreis zweiter Ordnung.

Bei 3 Qubits und 1 Wiederholung und linearer Verschränkung wird die Schaltung wie folgt dargestellt:

┌───┐┌────────────────┐
┤ 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 ├
└───┘└────────────────┘                                 └───┘└─────────────────────┘└───┘

Hierbei ist φ\varphi eine klassische nichtlineare Funktion, die standardmäßig den Wert φ(x)=x\varphi(x) = x annimmt, wenn ∣S∣=1|S| = 1 gilt, und den Wert φ(x,y)=(π−x)(π−y)\varphi(x,y) = (\pi - x)(\pi - y), wenn ∣S∣>1|S| > 1 gilt, und SS ist die Menge der Qubit-Indizes, die die Verbindungen in der Merkmalskarte beschreiben. Weitere Informationen finden Sie im Docstring pauli_feature_map() von.

Parameter

  • feature_dimension (int) – Anzahl der Qubits im Schaltkreis.
  • reps (int) – Die Anzahl der Wiederholungen der Evolutionsschichten.
  • entanglement (str |Sequence[Sequence[int]] | Callable[[int], str |Sequence[Sequence[int]]]) – Legt die Verschränkungsstruktur fest. Dies kann eine Zeichenkette ('full', 'linear', 'reverse_linear', 'circular' oder 'sca'), eine Liste von Ganzzahl-Tupeln oder eine aufrufbare Funktion sein, die bei jeder Wiederholung diese Typen zurückgibt.
  • alpha (float) – Der Pauli-Rotationsfaktor, der mit den Pauli-Rotationen multipliziert wird.
  • data_map_func (Callable[[Parameter], ParameterExpression] | None) – Eine Zuordnungsfunktion für die Daten, x die übergeben werden kann, um die Standardzuordnung zu überschreiben.
  • parameter_prefix (str) – Das Präfix, das verwendet wird, wenn Standardparameter generiert werden.
  • insert_barriers (bool) – In True diesem Fall werden zwischen den Evolutionsanweisungen und den Hadamard-Schichten Barrieren eingefügt.
  • name (str) – Der Name der Rennstrecke.

Rückgabe

Ein Quantenschaltkreis, der die ZZ-Feature-Map implementiert.

Rückgabetyp

QuantumCircuit

Beispiele

>>> 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])
])
War diese Seite hilfreich?
Melden Sie auf GitHub einen Fehler, einen Tippfehler oder fordern Sie Inhalte an.