PauliTwoDesign
class qiskit.circuit.library.PauliTwoDesign(num_qubits=None, reps=3, seed=None, insert_barriers=False, name='PauliTwoDesign')
베이스: TwoLocal
폴리 투 디자인 안사츠.
이 클래스는 [변] 분 알고리즘에서 불모 고원(barren plateaus)을 연구하는 경우와 같이[,] 양자 기계 학습 문헌에서 자주 다루어지는 2-디자인 회로¹의 특정 형태를 구현합니다.
이 회로는 얽힘 게이트( )로 구성된 초기 층을 중심으로, 회전 층과 얽힘 층이 번갈아 배치되어 있습니다. 회전 레이어에는 단일 큐비트 파울리 회전이 포함되어 있으며, 회전축은 X, Y 또는 Z 중 하나로 균등하게 무작위로 선택됩니다. 얽힘 층은 총 깊이가 2인 쌍을 이룬 CZ 게이트로 구성됩니다.
예를 들어, 회로는 다음과 같이 보일 수 있습니다(단, 다른 시드를 선택하면 다른 폴리 로테이션을 생성합니다).
┌─────────┐┌──────────┐ ░ ┌──────────┐ ░ ┌──────────┐
q_0: ┤ RY(π/4) ├┤ RZ(θ[0]) ├─■─────░─┤ RY(θ[4]) ├─■─────░──┤ RZ(θ[8]) ├
├─────────┤├──────────┤ │ ░ ├──────────┤ │ ░ ├──────────┤
q_1: ┤ RY(π/4) ├┤ RZ(θ[1]) ├─■──■──░─┤ RY(θ[5]) ├─■──■──░──┤ RX(θ[9]) ├
├─────────┤├──────────┤ │ ░ ├──────────┤ │ ░ ┌┴──────────┤
q_2: ┤ RY(π/4) ├┤ RX(θ[2]) ├─■──■──░─┤ RY(θ[6]) ├─■──■──░─┤ RX(θ[10]) ├
├─────────┤├──────────┤ │ ░ ├──────────┤ │ ░ ├───────────┤
q_3: ┤ RY(π/4) ├┤ RZ(θ[3]) ├─■─────░─┤ RX(θ[7]) ├─■─────░─┤ RY(θ[11]) ├
└─────────┘└──────────┘ ░ └──────────┘ ░ └───────────┘예제
from qiskit.circuit.library import PauliTwoDesign
circuit = PauliTwoDesign(4, reps=2, seed=5, insert_barriers=True)
circuit.draw('mpl')
함수는 pauli_two_design() 함수는 기능적으로 동일한 회로를 구성하지만 더 빠릅니다.
참조
[1] : 나카타 외., 임의의 X 및 Z 대각선 유니타리에서 유니타리 2 디자인을 만듭니다.
[2] : McClean 외., 양자 신경망 훈련 환경의 척박한 고원.
qiskit.circuit.library.n_local.pauli_two_design.PauliTwoDesign 클래스는 키스킷 2.1 에서 더 이상 사용되지 않습니다. 키스킷 3.0 에서 제거됩니다. 대신 qiskit.circuit.library.pauli_two_design 함수를 사용하세요.
매개변수
- num_qubits (int | None) – 폴리 투 디자인 회로의 큐비트 수입니다.
- reps (int) – 회전 레이어와 얽힘 레이어로 구성된 블록이 반복되는 빈도를 지정합니다.
- seed (int | None) – 폴리 회전의 축을 무작위로 선택하기 위한 시드입니다.
- insert_barriers (bool) –
True인 경우 각 레이어 사이에 장벽이 삽입됩니다.False인 경우 장벽이 삽입되지 않습니다. 기본값은False입니다. - name (str) – 생성된 회로에 사용할 이름.
속성
num_parameters_settable
설정 가능한 파라미터의 수를 반환합니다.
리턴
고유할 수 있는 매개변수의 수입니다.
name
유형: str
사람이 읽을 수 있는 회로의 이름입니다.
예제
from qiskit import QuantumCircuit
qc = QuantumCircuit(2, 2, name="my_circuit")
print(qc.name)my_circuit