タグ: 量子プログラミング層

  • OQDの量子プログラム、ゲート・相互作用・駆動パルスを分けて書く理由

    OQDの量子プログラム、ゲート・相互作用・駆動パルスを分けて書く理由

    量子ビットを0から1へ変える操作も、「Xゲートをかける」と書く場合と、駆動の強さや時間を指定する場合では、プログラムに必要な情報が違います。さらにイオンを光で操作する装置へ近づくと、どの準位を使い、どのイオンへ、どんな光を当てるかまで決める必要があります。

    非営利の開発組織Open Quantum Design(OQD)は、こうした違いをデジタル、アナログ、原子の三つの記述層として整理しています。公開されているソフトウェアの型と説明を手がかりに、何をどの層で指定すると見通しがよくなるのかを見ていきます。これは新製品の発表ではなく、公開実装の構造を読む解説です。

    簡単にまとめると?

    • デジタル層はゲート、アナログ層はハミルトニアンと作用時間、原子層はイオンの準位や駆動パルスを記述します。
    • 「0を1へ変える」という意図が同じでも、装置へ近づくほど、周波数のずれ、光の向き、対象イオンなどの条件が必要になります。
    • 記述できること、古典計算で模擬できること、校正された実機で実行できることは別です。層を結ぶ図だけで全変換の完成を判断しません。

    ゲートの名前から、状態を動かす物理へ

    デジタル層では、量子ビットに施す操作をゲートの列として表します。たとえばXゲートは、基底状態0と1を入れ替える操作です。その効果を指定する段階では、レーザーの出力やイオンの位置まで決める必要はありません。OQD Coreの対象版には、名前、量子レジスター、パラメーターなどを持つGate型が用意されています。[1、2]

    アナログ層では、状態の時間変化を決めるハミルトニアンと、その作用時間を書きます。OQDでは、ハミルトニアンを包むAnalogGateと、それを一定時間作用させるEvolveを、AnalogCircuitに並べます。ここでの「Gate」は、一般に回路図の一個の論理ゲートと同じ粒度を意味するわけではありません。[3]

    違いを小さな理想例で考えます。雑音がなく、共鳴した二準位系を一定の強さで駆動し、ハミルトニアンを H = ℏΩX/2 と書く約束にします。Ωは回転の速さを表す角周波数です。0から始めると、時刻tで1になる確率は sin²(Ωt/2) です。Ωt = π なら確率は1になります。

    この式では、駆動を二倍にして時間を半分にしても、積Ωtは変わりません。同じ理想的な状態の入れ替えに、強さと時間の異なる組み合わせが対応します。これは層の違いを説明するための解析的な例で、OQDの実機測定値や、この場で実行したエミュレーターの出力ではありません。

    デジタル層はゲートと対象量子ビット、アナログ層はハミルトニアンと時間、原子層は準位・駆動・対象イオンを記述する。層の区別は、自動変換や実機実行の完成を保証しない。
    各層が受け持つ指定をまとめた概念図。資料[1–4]を基にQuantum Sea作成。矢印は指定を具体化する方向であり、対象版の自動変換がすべて完成していることを表しません。

    原子層では、どの遷移をどう駆動するかを指定する

    原子層は、イオンと光などの駆動場との相互作用に近い表現です。OQDのSystemは、イオンのリストと集団振動のモードを持ちます。イオンの側には、電子のエネルギー準位、その間の遷移、位置などを記録します。論理的な0と1が、装置のどの状態に対応するかが、ここで具体的になります。[4]

    駆動を表すBeamには、参照する遷移、ラビ周波数、共鳴からのずれである離調、位相、偏光、波数ベクトル、対象イオンの番号が含まれます。ラビ周波数は駆動による状態変化の速さ、波数ベクトルは波の進む向きと空間的な変化を表す量です。Pulseは、この駆動をどれだけの時間適用するかを指定します。[4]

    先ほどの理想例も、実際の駆動が共鳴からずれていたり、別のイオンへ届いたりすれば、「Ωtをπにした」という条件だけでは狙った操作を保証できません。二つの光を使うラマン遷移なら、光を同時に当てる組み合わせも必要です。OQDは、パルスや下位の手順を順に並べるSequentialProtocolと、並行に組み合わせるParallelProtocolを分けています。[4]

    ただし、これらは指定を表すデータの構造です。型に合った値を保存できたことと、その値が装置で安全に実現でき、狙った精度の操作になることは同じではありません。光の強度上限や、現在の校正結果と照らし合わせる段階が残ります。

    何を確かめたいかで、入口を選ぶ

    記述層と、そこで見やすくなる問い。Quantum Sea作成。
    層 主に指定するもの 確かめたいことの例
    デジタル ゲートと対象量子ビット 操作の順序や回路の構成
    アナログ ハミルトニアンと作用時間 モデル上の状態の時間変化
    原子 準位、駆動場、対象イオン、パルス 物理条件をどう指定したか

    量子アルゴリズムのゲート列を考えるなら、最初から光の偏光まで書くと、調べたい構造が埋もれがちです。一方、相互作用の強さを変えたときの状態の動きを調べるなら、ハミルトニアンを直接扱う方が自然です。装置固有の駆動や対象イオンを調べる段階では、原子層の情報が必要になります。

    アナログ層には、古典コンピューターで時間変化を計算する経路があります。対象版のAnalog Emulatorの説明では、AnalogCircuitをQuTiP用の表現へ変換し、シュレーディンガー方程式を解くsesolveで模擬します。この経路の存在は、同じプログラムがそのままイオントラップ実機へ送られた証拠にはなりません。[5]

    公開された構造と、完成した実行経路を分けて読む

    OQDの全体図には、記述層をつなぐ中間表現やコンパイラーが描かれています。中間表現(IR)は、プログラムを変換の途中で扱うための表し方です。抽象的な意図を具体的な物理操作へ移すには、書き換え規則だけでなく、対象装置の情報も必要になります。コンパイラー基盤は、解析、検証、変換の処理を作るための部品として説明されています。[1、6]

    今回参照したEquiluxの固定版は2026年7月21日のコミット2cce6088a6f68f585bcbdd2a943e6ff959d35fabです。そこが指定するOQD Coreの版eecf1123c93ceae594eda11fceb703586617de1eでは、原子層の説明に、最大レーザー出力やレーザーのロック周波数などをSystemへ含めること、校正データベースから状態を取得することが将来の項目として記載されています。現在の公開ページと固定したコードの版を区別して読む必要があります。[1、4]

    量子ソフトウェアを比べるときは、「何を記述できるか」に加え、「どの表現へ変換する実装を確認したか」「どのバックエンドで計算したか」「実機の校正条件まで確認したか」を分けると、できることの範囲が明確になります。OQDの三つの層は、その確認先を整理する手がかりになります。この記事では公開説明と型定義を読み取り、装置接続やライブラリーの実行、性能の再現試験は行っていません。

    出典

    1. Open Quantum Design Documentation: Welcome/Equilux固定版。公開ページは2026年11月5日確認。固定版の更新日は2026年7月21日。
    2. OQD Core: Digital Gate型。型の確認であり、任意のゲートの実行対応を保証するものではありません。
    3. OQD Core: Analog interface/操作型の実装。
    4. OQD Core: Atomic interface/Protocol型/System型。
    5. OQD Analog Emulator: QuTiP simulation。
    6. OQD Compiler Infrastructure: Introduction。各資料は同じ開発組織による説明・実装で、独立した性能検証ではありません。