qiskit.circuit.library.pauli_two_design
qiskit.circuit.library.pauli_two_design(num_qubits, reps=3, seed=None, insert_barriers=False, parameter_prefix='θ', name='PauliTwoDesign')
Construa um ansatz de projeto Pauli 2.
Essa classe implementa uma forma específica de um circuito de 2 projetos [1], que é frequentemente estudado na literatura de aprendizado de máquina quântica, como, por exemplo, a investigação de platôs estéreis em algoritmos variacionais [2].
O circuito consiste em camadas alternadas de rotação e entrelaçamento, com uma camada inicial de portas de tipo “ ”. As camadas de rotação contêm rotações de Pauli de um único qubit, nas quais o eixo é escolhido aleatoriamente de forma uniforme entre X, Y ou Z. As camadas de entrelaçamento são compostas por portas CZ em pares, com uma profundidade total de 2.
Por exemplo, o circuito poderia ter a seguinte aparência:
┌─────────┐┌──────────┐ ░ ┌──────────┐ ░ ┌──────────┐
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]) ├
└─────────┘└──────────┘ ░ └──────────┘ ░ └───────────┘Exemplos:
from qiskit.circuit.library import pauli_two_design
circuit = pauli_two_design(4, reps=2, seed=5, insert_barriers=True)
circuit.draw("mpl")
Parâmetros
- num_qubits (int) – O número de qubits do circuito Pauli Two-Design.
- reps (int) – Especifica a frequência com que um bloco que consiste em uma camada de rotação e uma camada de emaranhamento é repetido.
- seed (int | None) – A semente para escolher aleatoriamente os eixos das rotações de Pauli.
- parameter_prefix (str) – O prefixo usado para os parâmetros de rotação.
- insert_barriers (bool) – Se
True, são inseridas barreiras entre cada camada. Se forFalse, nenhuma barreira será inserida. O padrão éFalse. - name (str) – O nome do circuito.
Retorna
Um circuito com design Pauli 2.
Tipo de retorno
Referências
[1] Nakata et al, 2-designs unitários de unitários X e Z-diagonais aleatórios. arXiv:1502.07514
[2] McClean et al, Platôs estéreis em cenários de treinamento de redes neurais quânticas. arXiv:1803.11173