翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Amazon Braket のパルス制御
パルスは、量子コンピュータの量子ビットを制御するアナログ信号です。Amazon Braket の特定のデバイスでは、パルス制御機能にアクセスして、パルスを使用して回路を送信できます。Braket を介してSDK、OpenQASM 3.0 を使用して、または Braket を介して直接、パルス制御にアクセスできますAPIs。まず、Braket でのパルス制御に関するいくつかの重要な概念を紹介します。
[フレーム]
フレームは、量子プログラム内のクロックとフェーズの両方として機能するソフトウェア抽象化です。クロック時間は、使用ごとに増分され、周波数によって定義されるステートフルキャリア信号が増分されます。量子ビットに信号を送信する場合、フレームは量子ビットのキャリア頻度、フェーズオフセット、および波形エンベロープが放出される時間を決定します。Braket Pulse では、フレームの構築はデバイス、頻度、フェーズによって異なります。デバイスに応じて、事前定義されたフレームを選択するか、ポートを指定して新しいフレームをインスタンス化できます。
from braket.pulse import Frame # predefined frame from a device device = AwsDevice("arn:aws:braket:us-west-1::device/qpu/rigetti/Ankaa-2") drive_frame = device.frames["Transmon_5_charge_tx_frame"] # create a custom frame readout_frame = Frame(name="r0_measure", port=port0, frequency=5e9, phase=0)
ポート
ポートは、量子ビットを制御する入出力ハードウェアコンポーネントを表すソフトウェア抽象化です。これにより、ハードウェアベンダーは、ユーザーが量子ビットを操作して観察するためのインターフェイスを提供できます。ポートは、コネクタの名前を表す単一の文字列によって特徴付けられます。この文字列は、波形をどの程度細かく定義できるかを指定する最小時間増分も公開します。
from braket.pulse import Port Port0 = Port("channel_0", dt=1e-9)
波形
波形は時間依存のエンベロープで、出力ポートで信号を出力したり、入力ポートを介して信号をキャプチャしたりできます。波形は、複雑な数値のリストから直接指定するか、波形テンプレートを使用してハードウェアプロバイダーからリストを生成できます。
from braket.pulse import ArbitraryWaveform, ConstantWaveform cst_wfm = ConstantWaveform(length=1e-7, iq=0.1) arb_wf = ArbitraryWaveform(amplitudes=np.linspace(0, 100))
Braket Pulse は、一定の波形、ガウシアン波形、Adiabatic Gate (DRAG) 波形による微分除去を含む波形の標準ライブラリを提供します。次の例に示すように、 sample
関数を使用して波形データを取得して波形のシェイプを描画できます。
gaussian_waveform = GaussianWaveform(1e-7, 25e-9, 0.1) x = np.arange(0, gaussian_waveform.length, drive_frame.port.dt) plt.plot(x, gaussian_waveform.sample(drive_frame.port.dt))
上の画像は、 から作成されたガウシアン波形を示していますGaussianWaveform
。パルス長は 100 ns、幅は 25 ns、振幅は 0.1 (任意の単位) を選択しました。波形はパルスウィンドウの中央に配置されます。 はブール引数 zero_at_edges
(凡例の ZaE) GaussianWaveform
を受け入れます。に設定するとTrue
、この引数は t=0 とlength
t= のポイントがゼロになるようにガウシアン波形をオフセットし、最大値がamplitude
引数に対応するように振幅を再スケーリングします。
パルスレベルのアクセスの基本概念を学習したので、次にゲートとパルスを使用して回路を構築する方法を見ていきます。