

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# OpenQASM 3.0을 사용한 특정 큐비트 측정
<a name="braket-openqasm-measure-qubits"></a>

Amazon Braket에서 제공하는 로컬 상태 벡터 시뮬레이터 및 로컬 밀도 행렬 시뮬레이터는 회로 큐비트의 부분 집합을 선택적으로 측정할 수 있는 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];
"""
```

이 예제에서는 `q[0]`과 `q[1]`이라는 2개의 큐비트가 있는 양자 회로가 있지만 첫 번째 큐비트의 상태만 측정하는 데 관심이 있습니다. 이는 큐비트[0]의 상태를 측정하고 그 결과를 고전적 비트 b[0]으로 저장하는 라인 `b[0] = measure q[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`이며, 이는 모든 큐비트를 측정해야 하는 것은 아님을 나타냅니다.