Envie um programa analógico usando o Aquila QuEra - 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 Aquila QuEra

Esta página fornece uma documentação abrangente sobre os recursos da máquina Aquila a partir de QuEra. Os detalhes abordados aqui são os seguintes:

  1. O hamiltoniano parametrizado simulado por Aquila

  2. Parâmetros do programa AHS

  3. Conteúdo do resultado do AHS

  4. Parâmetro de capacidades Aquila

Hamiltoniano

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

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.

para onde

  • Hdrive,k​(t)=( 1/2 ​Ω(t)eiϕ(t)S−,k​ + 1/2 ​Ω(t)e−iϕ(t) S+,k​) + (−Δglobal​(t)nk​),

    • Ω (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 aumento de spin do átomo k (na base |↓⟩=|g⟩, |↑⟩=|r⟩, 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

  • Vvdw,k,l​=C6​/(dk,l​)6nk​nl​,

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

    • dk,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 (coordenadas xk​ e yk​ de cada átomo k, em unidade de um), que controla as distâncias atômicas entre pares dk,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, operadores S​,S+​, n são fixos) nem a intensidade do coeficiente de interação Rydberg-Rydberg (C6​).

Esquema do programa Braket AHS

braket.ir.ahs.program_v1.Program object (exemplo)

nota

Se o recurso de desajuste local não estiver habilitado para sua conta, use localDetuning=[] no exemplo a seguir.

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

nota

Se o recurso de desajuste local não estiver habilitado para sua conta, use "localDetuning": [] no exemplo a seguir.

{ "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] } } ] } }
Principais campos
Campo do programa type descrição

setup.ahs_register.sites

Lista [Lista [Decimal]]

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

setup.ahs_register.filling

List[int]

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

hamiltonian.drivingFields[].amplitude.time_series.times

List[Decimal]

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

hamiltonian.drivingFields[].amplitude.time_series.values

List[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

List[Decimal]

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

hamiltonian.drivingFields[].phase.time_series.values

List[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

List[Decimal]

pontos temporais de desajuste, Delta_global(t)

hamiltonian.drivingFields[].detuning.time_series.values

List[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

List[Decimal]

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

hamiltonian.localDetuning[].magnitude.time_series.values

List[Decimal]

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

hamiltonian.localDetuning[].magnitude.pattern

List[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 type descrição

braketSchemaHeader.name

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 } } }
Principais campos
Campo de resultado da tarefa type descrição

measurements[].shotResult.preSequence

List[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

measurements[].shotResult.postSequence

List[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 type descrição

braketSchemaHeader.name

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

taskMetadata.id

str

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

taskMetadata.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.createdAt

str

O carimbo de data/hora da criação; o formato deve estar em ISO-8601/string RFC3339 format:MM:SS.SSSZ. YYYY-MM-DDTHH Padrão é Nenhum.

taskMetadata.shots.endedAt

str

A data e hora de quando a tarefa quântica terminou; o formato deve estar em ISO-8601/string format:MM:SS.SSSZRFC3339 . YYYY-MM-DDTHH Padrão é Nenhum.

taskMetadata.shots.status

str

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

taskMetadata.shots.failureReason

str

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

additionalMetadata.action

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

measurements[].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 de serviços
Campo de propriedades do serviço type descrição

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

flutuação

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
Campos de metadados type descrição

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 para a imagem do dispositivo

service.deviceDocumentation.summary

str

breve descrição no dispositivo

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

str

URL de documentação externa

service.deviceLocation

str

localização geográfica do dispositivo

service.updatedAt

datetime

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