양자 회로 및 Schedule
개시하다
Qiskit에서는 제작된 양자회로를 실기로 실행하면 뒷면에 교정된 펄스를 사용한다.펄스 모듈을 사용하면 자신이 좋아하는 방식으로 펄스를 맞춤형으로 만들 수 있다.본고는 양자 회로와 펄스 모듈의 조합을 소개하고자 한다.
먼저 Qiskit Pulse를 이동하기 위해 필요한 기술을 요약합니다.import numpy as np
from qiskit import QuantumCircuit, transpile, Aer, IBMQ
from qiskit.visualization import *
from qiskit.circuit import Gate
IBMQ.load_account()
provider = IBMQ.get_provider(hub='ibm-q', group='open', project='main')
backend = provider.get_backend('ibmq_armonk')
backend_defaults = backend.defaults()
backend_config = backend.configuration()
사용자 정의 갑문에 자체 펄스 연결
기본 절차는 다음과 같다.
import numpy as np
from qiskit import QuantumCircuit, transpile, Aer, IBMQ
from qiskit.visualization import *
from qiskit.circuit import Gate
IBMQ.load_account()
provider = IBMQ.get_provider(hub='ibm-q', group='open', project='main')
backend = provider.get_backend('ibmq_armonk')
backend_defaults = backend.defaults()
backend_config = backend.configuration()
add_calibration()
를 이용하여 3에서 만든 클래스를 2에서 정의한 문에 연결from qiskit import pulse
GHz = 1.0e9 # Gigahertz
qubit=0
freq_GHz=4.95
freq=freq_GHz*GHz
drive_sigma_sec = 0.075e-6
drive_duration_sec = drive_sigma_sec * 8
drive_amp = 0.3
# 1. カスタムゲート作成
x_pulse = Gate('x_pulse', num_qubits=1, params=[])
# 2. 1で作成したカスタムゲートを含む量子回路を作成
sample = QuantumCircuit(1, 1)
sample.append(x_pulse, [0])
sample.measure(0, 0)
#3. 自分が作成したいパルスの定義を記述したscheduleクラスを作成
with pulse.build(backend) as x_schedule:
pulse.set_frequency(freq, pulse.drive_channel(qubit))
pulse.play(pulse.Gaussian(duration=16 * int(pulse.seconds_to_samples(drive_duration_sec) / 16),
amp=drive_amp,
sigma=pulse.seconds_to_samples(drive_sigma_sec),
name="x_schedule"), pulse.drive_channel(qubit))
#4. 3で作成したクラスを2で定義したゲートにバインド
sample.add_calibration(x_pulse, (0, ), schedule=x_schedule)
sample.draw(output='mpl')
스스로 정의한 통일문을 만들 수 있다.
https://qiskit.org/documentation/stubs/qiskit.circuit.Gate.html
사용자 정의 문을 포함하는 양자 회로를 만듭니다.여기서 우리는 양자 비트의 사용자 정의 문을 만드는 양자 회로를 만들었다.
이전에 설명한 Builder 구문을 사용하여 펄스를 정의합니다.여기에 펄스 모듈이 제공하는 방법
seconds_to_samples()
을 사용합니다.이 방법은 매개 변수를 초 단위로 주면 활동 백엔드에서 초 단위로 지나간 견본 수를 얻을 수 있다.https://qiskit.org/documentation/stubs/qiskit.pulse.builder.seconds_to_samples.html
자신이 만든 펄스와 울타리를 묶는다.
제작된 양자 회로의 펄스를 확인하다
자신이 만든 양자 회로가 어떤 펄스 구성인지 확인할 수 있다.
sample_sx = QuantumCircuit(1, 1)
sample_sx.sx(0)
sample_sx.measure(0, 0)
sample_sx.draw(output='mpl')
from qiskit import schedule as build_schedule
# 1. scheduleを定義
schedule = build_schedule(sample_sx,backend)
schedule.draw(backend=backend)
자신이 정의한 양자 회로와 백엔드를 정의하고 schedule을 만들면 펄스의 상황을 알 수 있다.
총결산
이 글은 양자 회로와 schedule을 소개했다.자신이 정의한 양자 회로가 어떤 펄스로 집행되는지 보는 것도 재미있다.
Reference
이 문제에 관하여(양자 회로 및 Schedule), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/Kumezawa/items/7a00cab344f1a814dbd1
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(양자 회로 및 Schedule), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/Kumezawa/items/7a00cab344f1a814dbd1텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)