OpenQASM 3.0 を使用した特定の量子ビットの測定 - Amazon Braket

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

OpenQASM 3.0 を使用した特定の量子ビットの測定

Amazon Braket が提供するローカル状態ベクトルシミュレーターとローカル密度マトリックスシミュレーターは、回路の量子ビットのサブセットを選択的に測定できるOpenQASMプログラムの送信をサポートします。この機能は部分測定とも呼ばれ、よりターゲットを絞った効率的な量子計算を可能にします。たとえば、次のコードスニペットでは、2 量子ビット回路を作成し、2 番目の量子ビットを測定せずに、最初の量子ビットのみを測定できます。

partial_measure_qasm = """ OPENQASM 3.0; bit[1] b; qubit[2] q; h q[0]; cnot q[0], q[1]; b[0] = measure q[0]; """

この例では、2 つの量子ビット q[0]と を持つ量子回路がありますがq[1]、最初の量子ビットの状態の測定にのみ関心があります。これは、qubit[0] の状態を測定しb[0] = measure q[0]、その結果をクラシックビット b[0] に保存する 行によって実現されます。この部分的な測定シナリオを実行するには、Amazon Braket が提供するローカル状態ベクトルシミュレーターで次のコードを実行できます。

from braket.devices import LocalSimulator local_sim = LocalSimulator() partial_measure_local_sim_task = local_sim.run(OpenQASMProgram(source=partial_measure_qasm), shots = 10) partial_measure_local_sim_result = partial_measure_local_sim_task.result() print(partial_measure_local_sim_result.measurement_counts) print("Measured qubits: ", partial_measure_local_sim_result.measured_qubits)

デバイスが部分的な測定をサポートしているかどうかは、アクションプロパティの requiresAllQubitsMeasurementフィールドを調べることで確認できます。 の場合False、部分的な測定がサポートされます。

from braket.devices import Devices AwsDevice(Devices.Rigetti.Ankaa3).properties.action['braket.ir.openqasm.program'].requiresAllQubitsMeasurement

ここで、 requiresAllQubitsMeasurementは です。これはFalse、すべての量子ビットを測定する必要がないことを示します。