

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

# 로컬 양자 디바이스 에뮬레이터
<a name="braket-local-emulator"></a>

Amazon Braket의 로컬 에뮬레이터 도구를 사용하면 실제 양자 하드웨어에서 실행하기 전에 축어적 양자 프로그램을 로컬에서 에뮬레이션할 수 있습니다. 에뮬레이터는 디바이스 보정 데이터를 사용하여 축어적 회로를 검증하므로 호환성 문제를 조기에 파악할 수 있습니다.

또한 로컬 에뮬레이터는 다음 프로세스를 통해 양자 하드웨어 노이즈를 시뮬레이션합니다.
+ 디바이스 보정 데이터를 사용하여 노이즈 모델 구성
+ 회로의 각 게이트에 탈분극 노이즈 적용
+ 회로 끝에 판독 오류 적용
+ 로컬 밀도 행렬 시뮬레이터를 사용하여 노이즈가 있는 회로 시뮬레이션

로컬 에뮬레이터 사용에 대한 자세한 내용은 amazon-braket-examples GitHub 리포지토리의 [Amazon Braket에서 축어적 회로의 로컬 에뮬레이션](https://github.com/amazon-braket/amazon-braket-examples/blob/main/examples/braket_features/Device_emulation/01_Local_Emulation_for_Verbatim_Circuits_on_Amazon_Braket.ipynb)을 참조하세요.

**Topics**
+ [로컬 에뮬레이션의 이점](#braket-local-emulator-benefits)
+ [로컬 에뮬레이터 생성](#braket-create-local-emulator)

## 로컬 에뮬레이션의 이점
<a name="braket-local-emulator-benefits"></a>
+ 실시간 또는 과거 보정 데이터를 사용하여 디바이스 제약 조건에 대해 축어적 회로를 검증합니다.
+ 양자 하드웨어에 작업을 제출하기 전에 문제를 디버깅합니다.
+ 노이즈 없는 에뮬레이션과 노이즈 있는 에뮬레이션을 하드웨어 결과와 비교하여 노이즈 효과를 이해합니다.
+ 노이즈 인식 양자 알고리즘을 개발하는 워크플로를 간소화합니다.

## 로컬 에뮬레이터 생성
<a name="braket-create-local-emulator"></a>

로컬 양자 디바이스 에뮬레이터는 양자 디바이스 또는 디바이스 속성 집합에서 직접 생성할 수 있습니다. 디바이스를 직접 에뮬레이션할 때 에뮬레이터는 인스턴스화된 디바이스의 최신 보정 데이터를 사용합니다. 다음 코드 예제에서는 Rigetti's Ankaa-3 디바이스를 직접 에뮬레이션하는 방법을 보여줍니다.

```
from braket.aws.aws_device import AwsDevice

ankaa3 = AwsDevice("arn:aws:braket:us-west-1::device/qpu/rigetti/Ankaa-3")
ankaa3_emulator = ankaa3.emulator()
```

다음 예제에서는 JSON 형식의 Ankaa-3 디바이스 속성 집합에서 로컬 디바이스 에뮬레이터를 생성하는 방법을 보여줍니다.

```
from braket.aws import AwsDevice
from braket.emulation.local_emulator import LocalEmulator
import json

# Instantiate the device
ankaa3 = AwsDevice("arn:aws:braket:us-west-1::device/qpu/rigetti/Ankaa-3")
ankaa3_properties = ankaa3.properties

# Put the Ankaa-3 properties in a file named ankaa3_device_properties.json
with open("ankaa3_device_properties.json", "w") as f:
    json.dump(ankaa3_properties.json(), f)

# Load the json into the ankaa3_data_json variable
with open("ankaa3_device_properties.json", "r") as json_file:
    ankaa3_data_json = json.load(json_file)

# Create the Ankaa-3 local emulator from the json file you created
ankaa3_emulator = LocalEmulator.from_json(ankaa3_data_json)
```

다음을 통해 예제를 사용자 지정할 수 있습니다.
+ 다른 QPU 디바이스의 속성 사용
+ 에뮬레이터에 다른 JSON 파일 지정
+ 에뮬레이터를 인스턴스화하기 전에 디바이스 속성 값 변경