

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

# QuEra Aquila를 사용하여 아날로그 프로그램 제출
<a name="braket-quera-submitting-analog-program-aquila"></a>

이 페이지에서는 QuEra의 Aquila 시스템 기능에 대한 포괄적인 설명서를 제공합니다. 여기서 다루는 세부 정보는 다음과 같습니다.

1. Aquila가 시뮬레이션한 매개변수화된 해밀토니안

1. AHS 프로그램 파라미터

1. AHS 결과 내용

1. Aquila 기능 파라미터

**Topics**
+ [해밀토니안](#braket-quera-aquila-device-hamiltonian)
+ [Braket AHS 프로그램 스키마](#braket-quera-ahs-program-schema)
+ [Braket AHS 작업 결과 스키마](#braket-quera-ahs-task-result-schema)
+ [QuEra 디바이스 속성 스키마](#braket-quera-device-properties-schema)

## 해밀토니안
<a name="braket-quera-aquila-device-hamiltonian"></a>

QuEra의 Aquila 시스템은 기본적으로 다음 (시간 종속) 해밀토니안을 시뮬레이션합니다.

![드라이브, 로컬 디튜닝 및 점 간 결합 항을 포함하는 시스템의 해밀토니안을 나타내는 합계가 포함된 수학 방정식입니다.](http://docs.aws.amazon.com/ko_kr/braket/latest/developerguide/images/TimeDependentDrivingHamiltonian.png)


**참고**  
로컬 디튜닝에 대한 액세스는 [실험 기능](https://docs.aws.amazon.com/braket/latest/developerguide/braket-experimental-capabilities.html)이며 Braket Direct를 통해 요청하여 사용할 수 있습니다.

where
+ Hdrive,k​(t)=( 1/2 ​Ω(t)eiϕ(t)S−,k​ \+ 1/2 ​Ω(t)e−iϕ(t) S\+,k​) \+ (−Δglobal​(t)nk​),
  + Ω(t)는 시간 종속 전역 구동 진폭(Rabi 주파수라고도 함)으로, 단위는 (rad/s)입니다.
  + ϕ(t)는 라디안 단위로 측정되는 시간 종속 전역 위상입니다.
  + S−,k​와 S\+,k​는 원자 k의 스핀 강하 및 상승 연산자입니다(기저 상태에서 \|↓⟩=\|g⟩, \|↑⟩=\|r⟩, 이는 S−​=\|g⟩⟨r\|, S\+​=(S−​)†=\|r⟩⟨g\|).
  + Δglobal​(t)는 시간 종속 전역 디튜닝입니다.
  + nk는 원자 k의 Rydberg 상태에 대한 사영 연산자입니다(즉, n=\|r⟩⟨r\|).
+ Hlocal detuning,k(t)=-Δlocal(t)hknk
  + Δlocal(t)는 (rad/s) 단위로 나타낸 로컬 주파수 이동의 시간 종속 인자입니다.
  + hk는 위치 종속 인자로, 0.0에서 1.0 사이의 무차원수입니다.
+ Vvdw,k,l​=C6​/(dk,l​)6nk​nl​,
  + C6은​van der Waals 계수로, 단위는 (rad / s) \* (m)^6입니다.
  + dk,l은 원자 k와 l 사이의 유클리드 거리로, 미터 단위로 측정됩니다.

사용자는 Braket AHS 프로그램 스키마를 통해 다음 파라미터를 제어할 수 있습니다.
+ 2차원 원자 배열(각 원자 k의 xk​ 및 yk​ 좌표, um 단위)로, k,l=1,2,…N으로 쌍별 원자 거리 dk,l​을 제어합니다.
+ Ω(t)는 시간 종속 전역 구동 주파수로, 단위는 (rad/s)입니다.
+ ϕ(t)는 시간 종속 전역 위상으로, 단위는 (rad)입니다.
+ Δglobal​(t)는 시간 종속 전역 디튜닝으로, 단위는 (rad/s)입니다.
+ Δlocal(t)는 로컬 디튜닝 크기의 시간 종속 (전역) 인자로, 단위는 (rad/s)입니다.
+ hk는 로컬 디튜닝 크기의 (정적) 위치 종속 인자로, 0.0에서 1.0 사이의 무차원수입니다.

**참고**  
사용자는 관련된 수준(즉, S−​,S\+​, n 연산자가 고정됨)이나 Rydberg-Rydberg 상호 작용 계수(C6)의 강도를 제어할 수 없습니다.

## Braket AHS 프로그램 스키마
<a name="braket-quera-ahs-program-schema"></a>

 **braket.ir.ahs.program\_v1.Program 객체**(예제)

**참고**  
계정에 대해 [로컬 디튜닝](https://docs.aws.amazon.com/braket/latest/developerguide/braket-experimental-capabilities.html#braket-access-local-detuning) 기능이 활성화되지 않은 경우 다음 예제에서 `localDetuning=[]`을 사용합니다.

```
Program(
    braketSchemaHeader=BraketSchemaHeader(
        name='braket.ir.ahs.program',
        version='1'
    ),
    setup=Setup(
        ahs_register=AtomArrangement(
            sites=[
                [Decimal('0'), Decimal('0')],
                [Decimal('0'), Decimal('4e-6')],
                [Decimal('4e-6'), Decimal('0')]
            ],
            filling=[1, 1, 1]
        )
    ),
    hamiltonian=Hamiltonian(
        drivingFields=[
            DrivingField(
                amplitude=PhysicalField(
                    time_series=TimeSeries(
                        values=[Decimal('0'), Decimal('15700000.0'), Decimal('15700000.0'), Decimal('0')],
                        times=[Decimal('0'), Decimal('0.000001'), Decimal('0.000002'), Decimal('0.000003')]
                    ),
                    pattern='uniform'
                ),
                phase=PhysicalField(
                    time_series=TimeSeries(
                        values=[Decimal('0'), Decimal('0')],
                        times=[Decimal('0'), Decimal('0.000003')]
                    ),
                    pattern='uniform'
                ),
                detuning=PhysicalField(
                    time_series=TimeSeries(
                        values=[Decimal('-54000000.0'), Decimal('54000000.0')],
                        times=[Decimal('0'), Decimal('0.000003')]
                    ),
                    pattern='uniform'
                )
            )
        ],
        localDetuning=[
            LocalDetuning(
                magnitude=PhysicalField(
                    times_series=TimeSeries(
                        values=[Decimal('0'), Decimal('25000000.0'), Decimal('25000000.0'), Decimal('0')],
                        times=[Decimal('0'), Decimal('0.000001'), Decimal('0.000002'), Decimal('0.000003')]
                    ),
                    pattern=Pattern([Decimal('0.8'), Decimal('1.0'), Decimal('0.9')])
                )
            )
        ]
    )
)
```

**JSON**(예제)

**참고**  
계정에 대해 [로컬 디튜닝](https://docs.aws.amazon.com/braket/latest/developerguide/braket-experimental-capabilities.html#braket-access-local-detuning) 기능이 활성화되지 않은 경우 다음 예제에서 `"localDetuning": []`을 사용합니다.

```
{
    "braketSchemaHeader": {
        "name": "braket.ir.ahs.program",
        "version": "1"
    },
    "setup": {
        "ahs_register": {
            "sites": [
                [0E-7, 0E-7], 
                [0E-7, 4E-6],
                [4E-6, 0E-7]
            ],
            "filling": [1, 1, 1]
        }
    },
    "hamiltonian": {
        "drivingFields": [
            {
                "amplitude": {
                    "time_series": {
                        "values": [0.0, 15700000.0, 15700000.0, 0.0],
                        "times": [0E-9, 0.000001000, 0.000002000, 0.000003000]
                    },
                    "pattern": "uniform"
                },
                "phase": {
                    "time_series": {
                        "values": [0E-7, 0E-7],
                        "times": [0E-9, 0.000003000]
                    },
                    "pattern": "uniform"
                },
                "detuning": {
                    "time_series": {
                        "values": [-54000000.0, 54000000.0],
                        "times": [0E-9, 0.000003000]
                    },
                    "pattern": "uniform"
                }
            }
        ],
        "localDetuning": [
            {
                "magnitude": {
                    "time_series": {
                        "values": [0.0, 25000000.0, 25000000.0, 0.0],
                        "times": [0E-9, 0.000001000, 0.000002000, 0.000003000]
                    },
                    "pattern": [0.8, 1.0, 0.9]
                }
            }
        ]
    }
}
```


**기본 필드**  

| 프로그램 필드 | type | description | 
| --- | --- | --- | 
| setup.ahs\_register.sites | List[List[Decimal]] | 핀셋이 원자를 포획하는 2차원 좌표 목록 | 
| setup.ahs\_register.filling | List[int] | 트랩 위치를 차지하는 원자는 1로, 빈 위치는 0으로 표시 | 
| hamiltonian.drivingFields[].amplitude.time\_series.times | List[Decimal] | 구동 진폭의 시점, Omega(t) | 
| hamiltonian.drivingFields[].amplitude.time\_series.values | List[Decimal] | 구동 진폭의 값, Omega(t) | 
| hamiltonian.drivingFields[].amplitude.pattern | str | 구동 진폭의 공간 패턴, Omega(t). 'uniform'이어야 함 | 
| hamiltonian.drivingFields[].phase.time\_series.times | List[Decimal] | 구동 위상의 시점, phi(t) | 
| hamiltonian.drivingFields[].phase.time\_series.values | List[Decimal] | 구동 위상의 값, phi(t) | 
| hamiltonian.drivingFields[].phase.pattern | str | 구동 위상의 공간 패턴, phi(t). 'uniform'이어야 함 | 
| hamiltonian.drivingFields[].detuning.time\_series.times | List[Decimal] | 구동 디튜닝의 시점, Delta\_global(t) | 
| hamiltonian.drivingFields[].detuning.time\_series.values | List[Decimal] | 구동 디튜닝의 값, Delta\_global(t) | 
| hamiltonian.drivingFields[].detuning.pattern | str | 구동 디튜닝의 공간 패턴, Delta\_global(t). 'uniform'이어야 함 | 
| hamiltonian.localDetuning[].magnitude.time\_series.times | List[Decimal] | 로컬 디튜닝 크기의 시간 종속 인자의 시점, Delta\_local(t) | 
| hamiltonian.localDetuning[].magnitude.time\_series.values | List[Decimal] | 로컬 디튜닝 크기의 시간 종속 인자의 값, Delta\_local(t) | 
| hamiltonian.localDetuning[].magnitude.pattern | List[Decimal] | 로컬 디튜닝 크기의 위치 종속 인자, h\_k(값은 setup.ahs\_register.sites의 위치에 해당) | 


**메타데이터 필드**  

| 프로그램 필드 | type | description | 
| --- | --- | --- | 
| braketSchemaHeader.name | str | 스키마의 이름. 'braket.ir.ahs.program'이어야 함 | 
| braketSchemaHeader.version | str | 스키마 버전 | 

## Braket AHS 작업 결과 스키마
<a name="braket-quera-ahs-task-result-schema"></a>

 **braket.tasks.analog\_hamiltonian\_simulation\_quantum\_task\_result.AnalogHamiltonianSimulationQuantumTaskResult**(예제)

```
AnalogHamiltonianSimulationQuantumTaskResult(
    task_metadata=TaskMetadata(
        braketSchemaHeader=BraketSchemaHeader(
            name='braket.task_result.task_metadata',
            version='1'
        ),
        id='arn:aws:braket:us-east-1:123456789012:quantum-task/12345678-90ab-cdef-1234-567890abcdef',
        shots=2,
        deviceId='arn:aws:braket:us-east-1::device/qpu/quera/Aquila',
        deviceParameters=None,
        createdAt='2022-10-25T20:59:10.788Z',
        endedAt='2022-10-25T21:00:58.218Z',
        status='COMPLETED',
        failureReason=None
    ),
    measurements=[
        ShotResult(
            status=<AnalogHamiltonianSimulationShotStatus.SUCCESS: 'Success'>,

            pre_sequence=array([1, 1, 1, 1]),
            post_sequence=array([0, 1, 1, 1])
        ),

        ShotResult(
            status=<AnalogHamiltonianSimulationShotStatus.SUCCESS: 'Success'>,

            pre_sequence=array([1, 1, 0, 1]),
            post_sequence=array([1, 0, 0, 0])
        )
    ]
)
```

 **JSON**(예제)

```
{
    "braketSchemaHeader": {
        "name": "braket.task_result.analog_hamiltonian_simulation_task_result",
        "version": "1"
    },
    "taskMetadata": {
        "braketSchemaHeader": {
            "name": "braket.task_result.task_metadata",
            "version": "1"
        },
        "id": "arn:aws:braket:us-east-1:123456789012:quantum-task/12345678-90ab-cdef-1234-567890abcdef",
        "shots": 2,
        "deviceId": "arn:aws:braket:us-east-1::device/qpu/quera/Aquila",

        "createdAt": "2022-10-25T20:59:10.788Z",
        "endedAt": "2022-10-25T21:00:58.218Z",
        "status": "COMPLETED"

    },
    "measurements": [
        {
            "shotMetadata": {"shotStatus": "Success"},
            "shotResult": {
                "preSequence": [1, 1, 1, 1],
                "postSequence": [0, 1, 1, 1]
            }
        },
        {
            "shotMetadata": {"shotStatus": "Success"},
            "shotResult": {
                "preSequence": [1, 1, 0, 1],
                "postSequence": [1, 0, 0, 0]
            }
        }
    ],
    "additionalMetadata": {
        "action": {...}
        "queraMetadata": {
            "braketSchemaHeader": {
                "name": "braket.task_result.quera_metadata",
                "version": "1"
            },
            "numSuccessfulShots": 100
        }
    }
}
```


**기본 필드**  

| 작업 결과 필드 | type | description | 
| --- | --- | --- | 
| measurements[].shotResult.preSequence | List[int] | 각 샷에 대한 사전 시퀀스 측정 비트(각 원자성 위치마다 하나씩): 위치가 비어 있는 경우 0, 위치가 채워진 경우 1, 양자 진화를 실행하는 펄스 시퀀스 전에 측정됨 | 
| measurements[].shotResult.postSequence | List[int] | 각 샷에 대한 사후 시퀀스 측정 비트: 원자가 Rydberg 상태에 있거나 위치가 비어 있는 경우 0, 원자가 바닥 상태에 있는 경우 1, 양자 진화를 실행하는 펄스 시퀀스 종료 시 측정됨 | 


**메타데이터 필드**  

| 작업 결과 필드 | type | description | 
| --- | --- | --- | 
| braketSchemaHeader.name | str | 스키마의 이름. 'braket.task\_result.analog\_hamiltonian\_simulation\_task\_result'여야 함 | 
| braketSchemaHeader.version | str | 스키마 버전 | 
| taskMetadata.braketSchemaHeader.name | str | 스키마의 이름, ‘braket.task\_result.task\_metadata'여야 함 | 
| taskMetadata.braketSchemaHeader.version | str | 스키마 버전 | 
| taskMetadata.id | str | 양자 작업의 ID입니다. AWS 양자 작업의 경우 양자 작업 ARN입니다. | 
| taskMetadata.shots | int | 양자 작업에 대한 샷 수입니다. | 
| taskMetadata.shots.deviceId | str | 양자 작업이 실행된 디바이스의 ID입니다. AWS 디바이스의 경우 디바이스 ARN입니다. | 
| taskMetadata.shots.createdAt | str | 생성 타임스탬프입니다. 형식은 ISO-8601/RFC3339 문자열 형식 YYYY-MM-DDTHH:mm:ss.sssZ여야 합니다. 기본값은 '없음'입니다. | 
| taskMetadata.shots.endedAt | str | 양자 작업이 종료된 시점의 타임스탬프입니다. 형식은 ISO-8601/RFC3339 문자열 형식 YYYY-MM-DDTHH:mm:ss.sssZ여야 합니다. 기본값은 '없음'입니다. | 
| taskMetadata.shots.status | str | 양자 작업의 상태(CREATED, QUEUED, RUNNING, COMPLETED, FAILED)입니다. 기본값은 '없음'입니다. | 
| taskMetadata.shots.failureReason | str | 양자 작업의 실패 이유입니다. 기본값은 '없음'입니다. | 
| additionalMetadata.action | braket.ir.ahs.program\_v1.Program | ([Braket AHS program schema](#braket-quera-ahs-program-schema) 섹션 참조) | 
| additionalMetadata.action.braketSchemaHeader.queraMetadata.name | str | 스키마의 이름. 'braket.task\_result.quera\_metadata'여야 함 | 
| additionalMetadata.action.braketSchemaHeader.queraMetadata.version | str | 스키마 버전 | 
| additionalMetadata.action.numSuccessfulShots | int | 완전히 성공한 샷 수. 요청된 샷 수와 같아야 함 | 
| measurements[].shotMetadata.shotStatus | int | 샷 상태(성공, 부분 성공, 실패). "성공"이어야 함 | 

## QuEra 디바이스 속성 스키마
<a name="braket-quera-device-properties-schema"></a>

 **braket.device\_schema.quera.quera\_device\_capabilities\_v1.QueraDeviceCapabilities**(예제)

```
QueraDeviceCapabilities(
    service=DeviceServiceProperties(
        braketSchemaHeader=BraketSchemaHeader(
            name='braket.device_schema.device_service_properties', 
            version='1'
            ), 
            executionWindows=[
                DeviceExecutionWindow(
                    executionDay=<ExecutionDay.MONDAY: 'Monday'>, 
                    windowStartHour=datetime.time(1, 0), 
                    windowEndHour=datetime.time(23, 59, 59)
                ), 
                DeviceExecutionWindow(
                    executionDay=<ExecutionDay.TUESDAY: 'Tuesday'>, 
                    windowStartHour=datetime.time(0, 0), 
                    windowEndHour=datetime.time(12, 0)
                ), 
                DeviceExecutionWindow(
                    executionDay=<ExecutionDay.WEDNESDAY: 'Wednesday'>, 
                    windowStartHour=datetime.time(0, 0), 
                    windowEndHour=datetime.time(12, 0)
                ), 
                DeviceExecutionWindow(
                    executionDay=<ExecutionDay.FRIDAY: 'Friday'>, 
                    windowStartHour=datetime.time(0, 0), 
                    windowEndHour=datetime.time(23, 59, 59)
                ), 
                DeviceExecutionWindow(
                    executionDay=<ExecutionDay.SATURDAY: 'Saturday'>, 
                    windowStartHour=datetime.time(0, 0), 
                    windowEndHour=datetime.time(23, 59, 59)
                ), 
                DeviceExecutionWindow(
                    executionDay=<ExecutionDay.SUNDAY: 'Sunday'>, 
                    windowStartHour=datetime.time(0, 0), 
                    windowEndHour=datetime.time(12, 0)
                )
            ], 
            shotsRange=(1, 1000), 
            deviceCost=DeviceCost(
                price=0.01, 
                unit='shot'
            ), 
            deviceDocumentation=
                DeviceDocumentation(
                    imageUrl='https://a.b.cdn.console.awsstatic.com/59534b58c709fc239521ef866db9ea3f1aba73ad3ebcf60c23914ad8c5c5c878/a6cfc6fca26cf1c2e1c6.png', 
                    summary='Analog quantum processor based on neutral atom arrays', 
                    externalDocumentationUrl='https://www.quera.com/aquila'
                ), 
                deviceLocation='Boston, USA', 
                updatedAt=datetime.datetime(2024, 1, 22, 12, 0, tzinfo=datetime.timezone.utc), 
                getTaskPollIntervalMillis=None
    ), 
    action={
        <DeviceActionType.AHS: 'braket.ir.ahs.program'>: DeviceActionProperties(
                version=['1'], 
                actionType=<DeviceActionType.AHS: 'braket.ir.ahs.program'>
            )
    }, 
    deviceParameters={}, 
    braketSchemaHeader=BraketSchemaHeader(
        name='braket.device_schema.quera.quera_device_capabilities', 
        version='1'
    ), 
    paradigm=QueraAhsParadigmProperties(
        ...
        # See https://github.com/amazon-braket/amazon-braket-schemas-python/blob/main/src/braket/device_schema/quera/quera_ahs_paradigm_properties_v1.py
        ...
    )  
)
```

 **JSON**(예제)

```
{
    "service": {
        "braketSchemaHeader": {
            "name": "braket.device_schema.device_service_properties",
            "version": "1"
        },
        "executionWindows": [
            {
                "executionDay": "Monday",
                "windowStartHour": "01:00:00",
                "windowEndHour": "23:59:59"
            },
            {
                "executionDay": "Tuesday",
                "windowStartHour": "00:00:00",
                "windowEndHour": "12:00:00"
            },
            {
                "executionDay": "Wednesday",
                "windowStartHour": "00:00:00",
                "windowEndHour": "12:00:00"
            },
            {
                "executionDay": "Friday",
                "windowStartHour": "00:00:00",
                "windowEndHour": "23:59:59"
            },
            {
                "executionDay": "Saturday",
                "windowStartHour": "00:00:00",
                "windowEndHour": "23:59:59"
            },
            {
                "executionDay": "Sunday",
                "windowStartHour": "00:00:00",
                "windowEndHour": "12:00:00"
            }
        ],
        "shotsRange": [
            1,
            1000
        ],
        "deviceCost": {
            "price": 0.01,
            "unit": "shot"
        },
        "deviceDocumentation": {
            "imageUrl": "https://a.b.cdn.console.awsstatic.com/59534b58c709fc239521ef866db9ea3f1aba73ad3ebcf60c23914ad8c5c5c878/a6cfc6fca26cf1c2e1c6.png",
            "summary": "Analog quantum processor based on neutral atom arrays",
            "externalDocumentationUrl": "https://www.quera.com/aquila"
        },
        "deviceLocation": "Boston, USA",
        "updatedAt": "2024-01-22T12:00:00+00:00"
    },
    "action": {
        "braket.ir.ahs.program": {
            "version": [
                "1"
            ],
            "actionType": "braket.ir.ahs.program"
        }
    },
    "deviceParameters": {},
    "braketSchemaHeader": {
        "name": "braket.device_schema.quera.quera_device_capabilities",
        "version": "1"
    },
    "paradigm": {
        ...
        # See Aquila device page > "Calibration" tab > "JSON" page
        ...
    }
}
```


**서비스 속성 필드**  

| 서비스 속성 필드 | type | description | 
| --- | --- | --- | 
| service.executionWindows[].executionDay | ExecutionDay | 실행 기간의 일 수. '매일', '평일', '주말', '월요일', '화요일', '수요일', 목요일', '금요일', '토요일' 또는 '일요일'이어야 함 | 
| service.executionWindows[].windowStartHour | datetime.time | 실행 기간이 시작되는 시간의 UTC 24시간 형식 | 
| service.executionWindows[].windowEndHour | datetime.time | 실행 기간이 종료되는 시간의 UTC 24시간 형식 | 
| service.qpu\_capabilities.service.shotsRange | Tuple[int, int] | 디바이스의 최소 및 최대 샷 수 | 
| service.qpu\_capabilities.service.deviceCost.price | 실수 | 미국 달러 기준 디바이스 요금 | 
| service.qpu\_capabilities.service.deviceCost.unit | str | 요금 청구 단위, 예: '분', '시간', '샷', '작업' | 


**메타데이터 필드**  

| 메타데이터 필드 | type | description | 
| --- | --- | --- | 
| action[].version | str | AHS 프로그램 스키마 버전 | 
| action[].actionType | ActionType | AHS 프로그램 스키마 이름. 'braket.ir.ahs.program'이어야 함 | 
| service.braketSchemaHeader.name | str | 스키마의 이름. 'braket.device\_schema.device\_service\_properties'여야 함 | 
| service.braketSchemaHeader.version | str | 스키마 버전 | 
| service.deviceDocumentation.imageUrl | str | 디바이스 이미지의 URL | 
| service.deviceDocumentation.summary | str | 디바이스에 대한 간략한 설명 | 
| service.deviceDocumentation.externalDocumentationUrl | str | 외부 설명서 URL | 
| service.deviceLocation | str | 디바이스의 지리적 위치 | 
| service.updatedAt | datetime | 디바이스 속성이 마지막으로 업데이트된 시간 | 