Skip to main content
IBM Quantum Platform

ZZFeatureMap

class qiskit.circuit.library.ZZFeatureMap(feature_dimension, reps=2, entanglement='full', data_map_func=None, parameter_prefix='x', insert_barriers=False, name='ZZFeatureMap')

GitHub

베이스: PauliFeatureMap

2차 폴리-Z 진화 회로.

3 큐비트와 1 반복 및 선형 얽힘의 경우 회로는 다음과 같이 표현됩니다:

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

여기서 φ\varphi 는 고전적인 비선형 함수이며, S=1|S| = 1 일 경우 기본값은 φ(x)=x\varphi(x) = x 이고, S>1|S| > 1 일 경우 φ(x,y)=(πx)(πy)\varphi(x,y) = (\pi - x)(\pi - y) 이며, SS 는 특징 맵 내의 연결을 설명하는 큐비트 인덱스의 집합이다. 자세한 내용은 pauli_feature_map() 의 docstring을 참조하십시오.

예:

from qiskit.circuit.library import ZZFeatureMap
prep = ZZFeatureMap(2, reps=1)
print(prep.decompose())
     ┌───┐┌─────────────┐
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 EfficientSU2
classifier = ZZFeatureMap(3).compose(EfficientSU2(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])
])
classifier.count_ops()
OrderedDict([('ZZFeatureMap', 1), ('EfficientSU2', 1)])
버전부터 사용되지 않음 2.1

qiskit.circuit.library.data_preparation._zz_feature_map.ZZFeatureMap 클래스는 키스킷 2.1 에서 더 이상 사용되지 않습니다. 키스킷 3.0 에서 제거됩니다. Zz_feature_map 함수를 대신 사용하세요. 이렇게 하면 더 이상 BlueprintCircuit, 가 반환되지 않고 일반 QuantumCircuit 만 반환된다는 점에 유의하세요.

매개변수

  • feature_dimension (int) – 기능 수.
  • reps (int) – 반복되는 회로의 수로, 최소값은 1입니다.
  • entanglement (str |dict[int, list[tuple[int]]] | Callable[[int], str |dict[int, list[tuple[int]]]]) – 얽힘 구조를 지정합니다. 자세한 내용은 PauliFeatureMap 를 참조하십시오.
  • data_map_func (Callable[[ndarray], float] | None) – 데이터에 대한 x매핑 함수.
  • parameter_prefix (str) – 기본 매개변수가 생성되는 경우 사용되는 접두사입니다.
  • insert_barriers (bool) – 이 경우 True, 진화 명령어와 하다마르 층 사이에 장벽이 삽입된다.
  • name (str) – 회로 이름.

레이즈

ValueError - 피처 치수가 2보다 작은 경우.


속성

name

유형: str

사람이 읽을 수 있는 회로의 이름입니다.

예제

from qiskit import QuantumCircuit

qc = QuantumCircuit(2, 2, name="my_circuit")
print(qc.name)
my_circuit
이 페이지가 도움이 되었습니까?
GitHub에서 버그, 오타를 보고하거나 컨텐츠를 요청하십시오.