View a markdown version of this page

Envie um programa analógico usando 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 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 força do coeficiente de Rydberg-Rydberg interação (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 desativação da condução, 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 conduçã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

suporte SchemaHeader.name

str

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

suporte SchemaHeader.version

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

medições [] .shot Result.preSequence

List[int]

Pre-sequence bits de medição (um para cada sítio 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 [] .shot Result.postSequence

List[int]

Post-sequence bits de medição 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

suporte SchemaHeader.name

str

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

suporte SchemaHeader.version

str

versão do esquema

tarefa Metadata.braketSchemaHeader.name

str

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

tarefa Metadata.braketSchemaHeader.version

str

versão do esquema

tarefa Metadata.id

str

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

tarefa Metadata.shots

int

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

tarefa Metadata.shots.deviceId

str

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

tarefa Metadata.shots.createdAt

str

O carimbo de data e hora da criação; o formato deve estar no formato de ISO-8601/RFC3339 string. YYYY-MM-DDTHH:mm:ss.sssZ Padrão é Nenhum.

tarefa Metadata.shots.endedAt

str

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

tarefa Metadata.shots.status

str

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

tarefa Metadata.shots.failureReason

str

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

adicional Metadata.action

braket.ir.ahs.program_v1.Programa

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

adicional Metadata.action.braketSchemaHeader.queraMetadata.name

str

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

adicional Metadata.action.braketSchemaHeader.queraMetadata.version

str

versão do esquema

adicional Metadata.action.numSuccessfulShots

int

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

medições [] .shot Metadata.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 [] .window StartHour

datetime.time

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

service.executionWindows [] .window EndHour

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.device Cost.price

flutuação

Preço do aparelho em dólares americanos

service.qpu_capabilities.service.device Cost.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'

suporte de serviço SchemaHeader.name

str

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

suporte de serviço SchemaHeader.version

str

versão do esquema

serviço.dispositivo Documentation.imageUrl

str

URL para a imagem do dispositivo

serviço.dispositivo Documentation.summary

str

breve descrição no dispositivo

serviço.dispositivo Documentation.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