Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Soumettre un programme analogique à l'aide d' QuEra Aquila
Cette page fournit une documentation complète sur les fonctionnalités de la Aquila machine à partir deQuEra. Les détails abordés ici sont les suivants :
-
L'hamiltonien paramétré simulé par Aquila
-
Paramètres du programme AHS
-
Contenu du résultat AHS
-
Aquilaparamètre de capacités
Dans cette section :
hamiltonien
La Aquila machine de QuEra simule nativement l'hamiltonien suivant (en fonction du temps) :
Note
L'accès au désaccordage local est une fonctionnalité expérimentale et est disponible sur demande via Braket Direct.
où
-
H drive,k (t) = (1/2Ω (t) e iφ (t) S −,k + 1/2Ω (t) e −iφ (t) S) + (−Δ global (t+,k) n), k
-
Ω (t) est l'amplitude de conduite globale en fonction du temps (également appelée fréquence de Rabi), en unités de (rad/s)
-
φ (t) est la phase globale dépendante du temps, mesurée en radians
-
S −,k et S +,k sont les opérateurs d'abaissement et d'augmentation du spin de l'atome k (dans la base |↓⟩ =|g⟩, |↑=|r⟩, ils sont S − =|g + −
-
Δ global (t) est le déréglage global dépendant du temps
-
n k est l'opérateur de projection sur l'état de Rydberg de l'atome k (c'est-à-dire, n=|r
-
-
H local detuning,k (t) =-Δ local (t) h n k k
-
Δ local (t) est le facteur dépendant du temps du décalage de fréquence local, en unités de (rad/s)
h k est le facteur dépendant du site, un nombre sans dimension compris entre 0,0 et 1,0
-
-
V vdw,k,l = C6/(dk,l) 6 n k n, l
-
C 6 est le coefficient de van der Waals, en unités de (rad/s) * (m) ^6
-
d k,l est la distance euclidienne entre l'atome k et l, mesurée en mètres.
-
Les utilisateurs peuvent contrôler les paramètres suivants via le schéma du programme Braket AHS.
-
Arrangement bidimensionnel des atomes (kcoordonnées x k et y de chaque atome k, en unités de µm), qui contrôle les distances atomiques par paires d k,l avec k, l=1,2,... N
-
Ω (t), fréquence globale de Rabi dépendante du temps, en unités de (rad/s)
-
φ (t), phase globale dépendante du temps, en unités de (rad)
-
Δ global (t), le désaccordage global dépendant du temps, en unités de (rad/s)
-
Δ local (t), le facteur (global) dépendant du temps de l'ampleur du déréglage local, en unités de (rad/s)
-
hk, le facteur (statique) dépendant du site de l'ampleur du déréglage local, un nombre adimensionnel compris entre 0,0 et 1,0
Note
L'utilisateur ne peut pas contrôler les niveaux concernés (c'est-à-dire que les opérateurs S −+, S, n sont fixes) ni la force du coefficient d' Rydberg-Rydberg interaction (C6).
Schéma du programme Braket AHS
Objet Braket.IR.AHS.Program_V1.program (exemple)
Note
Si la fonctionnalité de désaccordage local n'est pas activée pour votre compte, utilisez-la localDetuning=[] dans l'exemple suivant.
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 (exemple)
Note
Si la fonctionnalité de désaccordage local n'est pas activée pour votre compte, utilisez-la "localDetuning": [] dans l'exemple suivant.
{ "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] } } ] } }
| Champ du programme | type | description |
|---|---|---|
|
setup.ahs_register.sites |
Liste [Liste [Décimal]] |
Liste des coordonnées bidimensionnelles où la pince à épiler piège les atomes |
|
setup.ahs_register.filling |
Liste [int] |
Marque les atomes qui occupent les sites piégés avec 1 et les sites vides avec 0 |
|
Hamiltonian.DrivingFields [] .amplitude.time_series.times |
Liste [décimale] |
points temporels de l'amplitude de conduite, Omega (t) |
|
Hamiltonian.DrivingFields [] .amplitude.time_series.values |
Liste [décimale] |
valeurs de l'amplitude de conduite, Omega (t) |
|
Hamiltonian.DrivingFields [] .amplitude.pattern |
str |
schéma spatial de l'amplitude de conduite, Omega (t) ; doit être « uniforme » |
|
Hamiltonian.DrivingFields [] .phase.time_series.times |
Liste [décimale] |
points temporels de la phase de conduite, phi (t) |
|
Hamiltonian.DrivingFields [] .phase.time_series.values |
Liste [décimale] |
valeurs de la phase de conduite, phi (t) |
|
Hamiltonian.DrivingFields [] .phase.pattern |
str |
schéma spatial de la phase de conduite, phi (t) ; doit être « uniforme » |
|
Hamiltonian.DrivingFields [] .detuning.time_series.times |
Liste [décimale] |
points temporels du désaccordage de conduite, Delta_global (t) |
|
Hamiltonian.DrivingFields [] .detuning.time_series.values |
Liste [décimale] |
valeurs de désaccordage de conduite, Delta_global (t) |
|
Hamiltonian.DrivingFields [] .detuning.pattern |
str |
schéma spatial de désaccordage de conduite, Delta_global (t) ; doit être « uniforme » |
|
Hamiltonian.LocalDeTuning [] .magnitude.time_series.times |
Liste [décimale] |
points temporels du facteur dépendant du temps de l'amplitude de désaccordage locale, Delta_local (t) |
|
Hamiltonian.LocalDeTuning [] .magnitude.time_series.values |
Liste [décimale] |
valeurs du facteur dépendant du temps de l'amplitude de désaccordage locale, Delta_local (t) |
|
Hamiltonian.LocalDeTuning [] .magnitude.pattern |
Liste [décimale] |
facteur dépendant du site de l'amplitude du déréglage local, h_k (les valeurs correspondent aux sites dans setup.ahs_register.sites) |
| Champ du programme | type | description |
|---|---|---|
|
support SchemaHeader.name |
str |
nom du schéma ; doit être « braket.ir.ahs.program » |
|
support SchemaHeader.version |
str |
version du schéma |
Schéma des résultats des tâches Braket AHS
braket.tasks.analog_hamiltonian_simulation_quantum_task_result. AnalogHamiltonianSimulationQuantumTaskResult(exemple)
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 (exemple)
{ "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 } } }
| Champ de résultat de la tâche | type | description |
|---|---|---|
|
mesures [] .shot Result.preSequence |
Liste [int] |
Pre-sequence bits de mesure (un pour chaque site atomique) pour chaque tir : 0 si le site est vide, 1 si le site est plein, mesurés avant les séquences d'impulsions qui exécutent l'évolution quantique |
|
mesures [] .shot Result.postSequence |
Liste [int] |
Post-sequence bits de mesure pour chaque tir : 0 si l'atome est dans l'état de Rydberg ou si le site est vide, 1 si l'atome est dans l'état fondamental, mesuré à la fin des séquences d'impulsions qui exécutent l'évolution quantique |
| Champ de résultat de la tâche | type | description |
|---|---|---|
|
support SchemaHeader.name |
str |
nom du schéma ; doit être « braket.task_result.analog_hamiltonian_simulation_task_result » |
|
support SchemaHeader.version |
str |
version du schéma |
|
tâche Metadata.braketSchemaHeader.name |
str |
nom du schéma ; doit être « braket.task_result.task_metadata » |
|
tâche Metadata.braketSchemaHeader.version |
str |
version du schéma |
|
tâche Metadata.id |
str |
L'identifiant de la tâche quantique. Pour les tâches AWS quantiques, il s'agit de l'ARN des tâches quantiques. |
|
tâche Metadata.shots |
int |
Le nombre de tirs pour la tâche quantique |
|
tâche Metadata.shots.deviceId |
str |
L'identifiant de l'appareil sur lequel la tâche quantique s'est exécutée. Pour les AWS appareils, il s'agit de l'ARN de l'appareil. |
|
tâche Metadata.shots.createdAt |
str |
Horodatage de la création ; le format doit être au format ISO-8601/RFC3339 chaîne. YYYY-MM-DDTHH:mm:ss.sssZ La valeur par défaut est None. |
|
tâche Metadata.shots.endedAt |
str |
Horodatage de la fin de la tâche quantique ; le format doit être au format ISO-8601/RFC3339 chaîne. YYYY-MM-DDTHH:mm:ss.sssZ La valeur par défaut est None. |
|
tâche Metadata.shots.status |
str |
État de la tâche quantique (CREATED, QUEUED, RUNNING, COMPLETED, FAILED). La valeur par défaut est None. |
|
tâche Metadata.shots.failureReason |
str |
La raison de l'échec de la tâche quantique. La valeur par défaut est None. |
|
supplémentaire Metadata.action |
Braket.IR.AHS.Program_V.1 |
(Voir la section sur le schéma du programme Braket AHS) |
|
supplémentaire Metadata.action.braketSchemaHeader.queraMetadata.name |
str |
nom du schéma ; doit être « braket.task_result.quera_metadata » |
|
supplémentaire Metadata.action.braketSchemaHeader.queraMetadata.version |
str |
version du schéma |
|
supplémentaire Metadata.action.numSuccessfulShots |
int |
nombre de prises complètement réussies ; doit être égal au nombre de prises demandé |
|
mesures [] .shot Metadata.shotStatus |
int |
Le statut du tir (succès, succès partiel, échec) doit être « Succès » |
QuEra schéma des propriétés de l'appareil
braket.device_schema.quera.quera_device_capabilities_v1. QueraDeviceCapabilities(exemple)
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 (exemple)
{ "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 ... } }
| Champ des propriétés du service | type | description |
|---|---|---|
|
Service.ExecutionWindows [] .ExecutionDay |
ExecutionDay |
Jours de la fenêtre d'exécution ; doivent être « Tous les jours », « Jours de semaine », « Week-end », « lundi », « mardi », « mercredi », « jeudi », « vendredi », « samedi » ou « dimanche » |
|
Service.ExecutionWindows [] .fenêtre StartHour |
datetime.heure |
Format UTC de 24 heures indiquant l'heure de début de la fenêtre d'exécution |
|
Service.ExecutionWindows [] .fenêtre EndHour |
datetime.heure |
Format UTC de 24 heures indiquant l'heure de fin de la fenêtre d'exécution |
|
service.qpu_capabilities.service.shotsRange |
Tuple [int, int] |
Nombre minimum et maximum de prises de vue pour l'appareil |
|
service.qpu_capabilities.service.device Cost.price |
float |
Prix de l'appareil en dollars américains |
|
service.qpu_capabilities.service.device Cost.unit |
str |
unité pour facturer le prix, par exemple : « minute », « heure », « shot », « task » |
| Champ de métadonnées | type | description |
|---|---|---|
|
action [] .version |
str |
version du schéma du programme AHS |
|
action [] .ActionType |
ActionType |
Nom du schéma du programme AHS ; doit être « braket.ir.ahs.program » |
|
service.braket SchemaHeader.name |
str |
nom du schéma ; doit être « braket.device_schema.device_service_properties » |
|
service.braket SchemaHeader.version |
str |
version du schéma |
|
service.appareil Documentation.imageUrl |
str |
URL de l'image de l'appareil |
|
service.appareil Documentation.summary |
str |
brève description de l'appareil |
|
service.appareil Documentation.externalDocumentationUrl |
str |
URL de documentation externe |
|
Service.Emplacement de l'appareil |
str |
emplacement géographique de l'appareil |
|
Service. Mis à jour à |
datetime |
heure à laquelle les propriétés de l'appareil ont été mises à jour pour la dernière fois |