Envie um programa analógico usando o QuEra Aquila - Amazon Braket

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Envie um programa analógico usando o QuEra Aquila

Esta página fornece uma documentação abrangente sobre os recursos da Aquila máquina a partir deQuEra. Os detalhes abordados aqui são os seguintes: 1) O hamiltoniano parametrizado simulado porAquila, 2) parâmetros do programa AHS, 3) conteúdo do resultado do AHS, 4) parâmetro de capacidades. Aquila Sugerimos usar a pesquisa de texto Ctrl+F para encontrar parâmetros relevantes para suas perguntas.

hamiltoniano

A Aquila máquina QuEra simula nativamente o seguinte hamiltoniano (dependente do tempo):

Equação matemática com somatórios representando o hamiltoniano de um sistema, envolvendo termos de acionamento, desajuste local e acoplamento entre pontos.
nota

O acesso ao desajuste local é um recurso experimental e está disponível mediante solicitação por meio do Braket Direct.

where

  • 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) é a amplitude de condução global dependente do tempo (também conhecida como frequência Rabi), em unidades de (rad/s)

    • θ (t) é a fase global dependente do tempo, medida em radianos

    • S −,k​ e S +,k são os operadores de redução e elevação do spin do átomo k (na base |↓⟩ =|g⟩, |↑ ․ =|r⟩, eles são S =|g․ ⟨r|, S =( S) † =|r․ ⟨g|) +

    • Δ global (t) é o desajuste global dependente do tempo

    • n k é o operador de projeção no estado de Rydberg do átomo k (ou seja, n=|r⟨r|)

  • H local detuning,k (t) =-Δ local (t) h n k k

    • Δ local (t) é o fator dependente do tempo da mudança de frequência local, em unidades de (rad/ s)

    • h k é o fator dependente do local, um número adimensional entre 0,0 e 1,0

  • V vdw,k,l = C6​/(dk,l) 6 n k n, l

    • C 6 é o coeficiente de van der Waals, em unidades de (rad/s) * (m) ^6

    • d k,l é a distância euclidiana entre os átomos k e l, medida em metros.

Os usuários têm controle sobre os seguintes parâmetros por meio do esquema do programa Braket AHS.

  • Arranjo de átomos 2-d (kcoordenadas x k e y de cada átomo k, em unidades de um), que controla as distâncias atômicas pares d k,l​ com k, l=1,2,... N

  • Ω (t), a frequência Rabi global dependente do tempo, em unidades de (rad/ s)

  • θ (t), a fase global dependente do tempo, em unidades de (rad)

  • Δ global (t), o desajuste global dependente do tempo, em unidades de (rad/ s)

  • Δ local (t), o fator (global) dependente do tempo da magnitude do desajuste local, em unidades de (rad/ s)

  • hk, o fator (estático) dependente do local da magnitude do desajuste local, um número adimensional entre 0,0 e 1,0

nota

O usuário não pode controlar quais níveis estão envolvidos (ou seja, os operadores S, S+​, n são fixos) nem a força do coeficiente de interação de Rydberg-Rydberg (C). 6

Esquema do programa Braket AHS

objeto braket.ir.ahs.Program_v1.Program (exemplo)

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.000001')] ), pattern='uniform' ), detuning=PhysicalField( time_series=TimeSeries( values=[Decimal('-54000000.0'), Decimal('54000000.0')], times=[Decimal('0'), Decimal('0.000001')] ), 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 (exemplo)

{ "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.000001000] }, "pattern": "uniform" }, "detuning": { "time_series": { "values": [-54000000.0, 54000000.0], "times": [0E-9, 0.000001000] }, "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] } } ] } }
Campos principais
Campo do programa tipo description

setup.ahs_register.sites

Lista [Lista [Decimal]]

Lista de coordenadas 2-d em que as pinças capturam átomos

setup.ahs_register.filling

Lista [int]

Marca os átomos que ocupam os locais da armadilha com 1 e os locais vazios com 0

hamiltonian.drivingFields [] .amplitude.time_series.times

Lista [Decimal]

pontos de tempo da amplitude de condução, Omega (t)

hamiltonian.drivingFields [] .amplitude.time_series.values

Lista [Decimal]

valores de amplitude de condução, Omega (t)

hamiltonian.drivingFields [] .amplitude.pattern

str

padrão espacial de amplitude de condução, Omega (t); deve ser “uniforme”

hamiltonian.DrivingFields [] .phase.time_series.times

Lista [Decimal]

pontos temporais da fase de condução, phi (t)

hamiltonian.drivingFields [] .phase.time_series.values

Lista [Decimal]

valores da fase de condução, phi (t)

hamiltonian.DrivingFields [] .phase.pattern

str

padrão espacial da fase de condução, phi (t); deve ser “uniforme”

hamiltonian.drivingFields [] .detuning.time_series.times

Lista [Decimal]

pontos de tempo do desajuste de direção, delta_global (t)

hamiltonian.drivingFields [] .detuning.time_series.values

Lista [Decimal]

valores do desajuste de direção, delta_global (t)

hamiltonian.drivingFields [] .detuning.pattern

str

padrão espacial de desajuste de direção, delta_global (t); deve ser 'uniforme'

hamiltonian.localDetuning [] .magnitude.time_series.times

Lista [Decimal]

pontos temporais do fator dependente do tempo da magnitude de desajuste local, delta_local (t)

hamiltonian.localDetuning [] .magnitude.time_series.values

Lista [Decimal]

valores do fator dependente do tempo da magnitude de desajuste local, delta_local (t)

hamiltonian.localDetuning [] .magnitude.pattern

Lista [Decimal]

fator dependente do site da magnitude de desajuste local, h_k (os valores correspondem aos sites em setup.ahs_register.sites)

Campos de metadados
Campo do programa tipo description

braketSchemaHeader.nome

str

nome do esquema; deve ser 'braket.ir.ahs.program'

braketSchemaHeader.versão

str

versão do esquema

Esquema de resultados de tarefas do Braket AHS

braket.tasks.analog_hamiltonian_simulation_quantum_task_result. AnalogHamiltonianSimulationQuantumTaskResult(exemplo)

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 (exemplo)

{ "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 } } }
Campos principais
Campo de resultado da tarefa tipo description

medições [] .shotResult.Presequence

Lista [int]

Bits de medição de pré-sequência (um para cada local atômico) para cada disparo: 0 se o local estiver vazio, 1 se o local estiver cheio, medidos antes das sequências de pulsos que executam a evolução quântica

medições [] .shotResult.postSequence

Lista [int]

Bits de medição pós-sequência para cada disparo: 0 se o átomo estiver no estado de Rydberg ou o local estiver vazio, 1 se o átomo estiver no estado fundamental, medidos no final das sequências de pulsos que executam a evolução quântica

Campos de metadados
Campo de resultado da tarefa tipo description

braketSchemaHeader.nome

str

nome do esquema; deve ser 'braket.task_result.analog_hamiltonian_simulation_task_result'

braketSchemaHeader.versão

str

versão do esquema

Metadados da tarefa. braketSchemaHeader.nome

str

nome do esquema; deve ser 'braket.task_result.task_metadata'

Metadados da tarefa. braketSchemaHeader.versão

str

versão do esquema

ID de metadados da tarefa

str

A identificação da tarefa quântica. Para tarefas AWS quânticas, essa é a tarefa quântica ARN.

Metadados da tarefa. Shots

int

O número de disparos para a tarefa quântica

taskmetadata.shots.deviceID

str

O ID do dispositivo no qual a tarefa quântica foi executada. Para AWS dispositivos, esse é o ARN do dispositivo.

taskmetadata.shots.Criado em

str

O timestamp da criação; o formato deve estar no formato de string ISO-8601/RFC3339 YYYY-MM-DDTHH:mm:ss.sssz. O padrão é Nenhum.

TaskMetadata.shots.EndedAt

str

O registro de data e hora de quando a tarefa quântica terminou; o formato deve estar no formato de string ISO-8601/RFC3339 YYYY-MM-DDTHH:mm:ss.sssz. O padrão é Nenhum.

TaskMetadata.shots.status

str

O status da tarefa quântica (CRIADA, ENFILEIRADA, EM EXECUÇÃO, CONCLUÍDA, FALHA). O padrão é Nenhum.

taskmetadata.shots.Motivo da falha

str

O motivo da falha da tarefa quântica. O padrão é Nenhum.

Metadados adicionais. Ação

braket.ir.ahs.program_v1.Programa

(Consulte a seção Esquema do programa Braket AHS)

Metadados adicionais. Ação. braketSchemaHeader.querametadata.name

str

nome do esquema; deve ser 'braket.task_result.quera_metadata'

Metadados adicionais. Ação. braketSchemaHeader.queraMetadata.Versão

str

versão do esquema

Metadados adicionais. Ação. numSuccessfulShots

int

número de disparos completamente bem-sucedidos; deve ser igual ao número solicitado de disparos

medições [] .shotMetadata.shotStatus

int

O status da foto (sucesso, sucesso parcial, falha); deve ser “Sucesso”

QuEra esquema de propriedades do dispositivo

braket.device_schema.quera.quera_device_capabilities_v1. QueraDeviceCapabilities(exemplo)

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 (exemplo)

{ "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 ... } }
Campos de propriedades do serviço
Campo de propriedades do serviço tipo description

service.executionWindows [] .ExecutionDay

ExecutionDay

Dias da janela de execução; devem ser 'Todos os dias', 'Dias úteis', 'Fim de semana', 'Segunda-feira', 'Terça', 'Quarta', Quinta-feira ',' Sexta ',' Sábado 'ou' Domingo '

Service.ExecutionWindows []. windowStartHour

datetime.time

Formato UTC de 24 horas da hora em que a janela de execução começa

Service.ExecutionWindows []. windowEndHour

datetime.time

Formato UTC de 24 horas da hora em que a janela de execução termina

service.qpu_capabilities.service.shotsRange

Tupla [int, int]

Número mínimo e máximo de fotos para o dispositivo

service.qpu_capabilities.service.deviceCost.price

float

Preço do aparelho em dólares americanos

service.qpu_capabilities.service.deviceCost.unit

str

unidade para cobrar o preço, por exemplo: 'minuto', 'hora', 'tiro', 'tarefa'

Campos de metadados
Campo de metadados tipo description

ação [] .versão

str

versão do esquema do programa AHS

ação [] .actionType

ActionType

Nome do esquema do programa AHS; deve ser 'braket.ir.ahs.program'

serviço. braketSchemaHeader.nome

str

nome do esquema; deve ser 'braket.device_schema.device_service_properties'

serviço. braketSchemaHeader.versão

str

versão do esquema

service.deviceDocumentation.ImageURL

str

URL da imagem do dispositivo

service.DeviceDocumentation.Resumo

str

breve descrição no dispositivo

Documentação do serviço.dispositivo. externalDocumentationUrl

str

URL de documentação externa

Serviço. Localização do dispositivo

str

localização geográfica do dispositivo

Serviço. Atualizado em

datetime

hora em que as propriedades do dispositivo foram atualizadas pela última vez