Qiskit.아쿠아로 QAE 3분 요리하기

5987 단어 QiskitAquaQISKITQAE

Qiskit.아쿠아로 QAE 3분 요리하기


과거 기사Qiskit.aqua로 증폭 연산자 Q 쉽게 만들기
프로그램 라이브러리를 더욱 간단하게 이용했다.
나는 이것이 아마도 가장 빠를 것이라고 생각한다.

회로 설계

from qiskit import QuantumCircuit
from qiskit.aqua.algorithms import Grover, QPE
from qiskit.circuit.library import ZGate, RYGate, CZGate
from qiskit.extensions import UnitaryGate
from qiskit.circuit.add_control import add_control
from qiskit.tools.visualization import plot_histogram
from qiskit import Aer, execute
from qiskit.aqua import QuantumInstance
import numpy as np
Grover 알고리즘의 프로그램 라이브러리에 증폭 연산자를 만듭니다.
nqubit = 3
# the state we desire to find is '011'
good_state = ['011']

# specify the oracle that marks the state '011' as a good solution
oracle = QuantumCircuit(nqubit)
oracle.z(0)

state_preparation = QuantumCircuit(nqubit, name='State preparation')
state_preparation.h([1,2])
state_preparation.x(2)
state_preparation.ccx(2,1,0)
state_preparation.x(2)

# define Grover's algorithm
grover = Grover(oracle=oracle, good_state=good_state, state_preparation=state_preparation)

QAE 회로.
from qiskit.aqua.algorithms import AmplitudeEstimation
num_eval_qubits = 3
QAE = AmplitudeEstimation(num_eval_qubits, state_preparation=state_preparation, grover_operator=grover.grover_operator, quantum_instance=Aer.get_backend('qasm_simulator'))
끝났어.

실행

QAE.construct_circuit().draw('mpl')
result = QAE.run()
result.a_estimation
0.1464466과거 기사Qiskit.aqua로 증폭 연산자 Q 쉽게 만들기와 일치합니다.

결론

  • aqua의 라이브러리에서 QAE를 사용할 수 있습니다.나는 일본어의 해설 보도가 아마도 이것으로부터 시작된 것 같다고 생각한다.
  • 아무리 생각해도 원리를 모르면 사용할 수 없다.(state preparation이란? Grover 연산자는?)
  • 좋은 웹페이지 즐겨찾기