Стабилизаторы и измерение чётности через QPE
Постройте код повторения как стабилизаторный код. Стабилизатор S сохраняет кодовые состояния: $S|\psi\rangle=|\psi\rangle$; здесь рассматриваются операторы Паули на трёх кубитах.
1. Найдите два независимых стабилизатора кодовых состояний 000 и 111.
2. Постройте QPE, выдающую собственное значение одного из стабилизаторов $I\otimes Z\otimes Z$.
A. Каковы его собственные значения? Найдите минимальное число счётных кубитов для их точной оценки.
B. Дополните данную qc0. Автор указывает, что QPE выполняет проективное измерение этого оператора на $|\psi\rangle=|0\rangle\otimes|0\rangle\otimes|+\rangle$.
C. Используя тождества схем, преобразуйте часть QPE в схему qc1 только с CNOT. Выполните обе схемы с shots=8192 и сопоставьте результат.
Сохранены все исходные вопросы, определения, регистры, начальный H и заготовки. Исходный заключительный рисунок общей структуры кодирования и двух проверок находится в разборе.
Исходные определения и заготовки (код сохранён без исполнения):
from qiskit import *
from qiskit.visualization import plot_histogram
from qiskit.visualization import plot_state_qsphere, plot_bloch_vector
from qiskit.quantum_info import Statevector
import numpy as np
sim = Aer.get_backend('aer_simulator')
## Your answer goes here
t = int(input('The number of counting qubit: '))
qc0 = QuantumCircuit(t+3, 1)
qc0.h(-1)
qc0.barrier()
## your code goes here ##
######
qc0.measure(0, 0)
qc0.draw('mpl')
counts_qc0 = sim.run(qc0, shots=8192).result().get_counts()
plot_histogram(counts_qc0)
qc1 = QuantumCircuit(t+3, 1)
qc1.h(-1)
qc1.barrier()
## your code goes here ##
######
qc1.measure(0, 0)
qc1.draw('mpl')
counts_qc1 = sim.run(qc1, shots=8192).result().get_counts()
plot_histogram(counts_qc1)Предложить решение
Войти, чтобы отправить материал.