メインコンテンツへスキップ

Qiskit Pulseからフラクショナルゲートへの移行

フラクショナルゲートの導入に伴い、すべてのIBM Quantum®プロセッサーにおけるパルスレベルの制御は非推奨となり、2025年初頭に削除される予定です。また、qiskit.pulseモジュールはQiskit SDK v1.3.0で非推奨となり、Qiskit SDK v2.0.0で削除されます。この変更は、ユーティリティスケールの実験への継続的な注力と、量子アドバンテージにつながる可能性のあるアプリケーションを探求するユーザーへのサポートを背景としています。

フラクショナルゲートを使用した1量子ビットおよび2量子ビット回転の直接実行

パルスレベル制御の最も一般的なユースケースは、ECRまたはRXパルスを変更するカスタムパルススケジュールを構築し、1量子ビットおよび2量子ビットの回転を直接実行することでした。一般的な手順としては、RXCalibrationBuilderおよびRZXCalibrationBuilder(またはRZXCalibrationBuilderNoEcho)を使用し、QPUのtargetRXGateまたはRZXGate命令を追加した後、キャリブレーションビルダーパスを含むトランスパイルパイプラインを構築して、指定した角度に対する1量子ビットおよび2量子ビット回転をキャリブレーションするというものでした。この処理の背後では、ScheduleBlockQuantumCircuit内のゲートとの対応関係であるキャリブレーションが作成されていました。

現在は、新しいuse_fractional_gatesフラグを使用してHeronプロセッサー上でこれを実現できます。フラクショナルゲートガイドに記載されているとおり、RX(θ)R_X(\theta)およびRZZ(θ)R_ZZ(\theta)はどちらもこのフラグを使用してロードする必要があります。これにより、これらのゲートに関する情報をTarget属性に持つバックエンドが返されます。

service = QiskitRuntimeService()
backend = service.backend('ibm_torino', use_fractional_gates=True)

Qiskit Dynamicsの使用

qiskit.pulseモジュールには、1量子ビットおよび2量子ビット回転をより効率的に実行する機能以外にも、多くの機能が含まれていました。デバイス物理に対する制御の多くは、Qiskit Ecosystemに含まれるQiskit Dynamicsパッケージを使用してモデル化できます。特に、このパッケージはqiskit_dynamics.signalsモジュールという形で、qiskit.pulseが提供していた多くの機能に類似した独自の表現を持っています。このパッケージのドキュメントには、参考となるいくつかのチュートリアルが含まれています: