翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
OpenQASM 3.0 を使用した特定の量子ビットの測定
ローカルステートベクトルシミュレーターとローカル密度行列シミュレーターは、回路の量子ビットのサブセットを測定できるOpenQASMプログラムの送信をサポートします。これは多くの場合、部分測定と呼ばれます。例えば、次のコードでは、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]
が、ここで測定するのは量子ビット 0 のみですb[0] = measure q[0]
。次に、ローカル状態ベクトルシミュレーターで以下を実行します。
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
、部分測定がサポートされます。
AwsDevice(Devices.Rigetti.AspenM3).properties.action['braket.ir.openqasm.program'].requiresAllQubitsMeasurement
ここで、 requiresAllQubitsMeasurement
は です。これはFalse
、すべての量子ビットを測定する必要がないことを示します。