Inicio/SDK/Amazon Braket
🟠

Amazon Braket

Servicio de computación cuántica gestionado por AWS. Simulador local gratuito, simuladores en la nube (SV1, DM1, TN1) y acceso a QPU reales de IonQ, Rigetti y Oxford Quantum Circuits.

Gestionado por AWSLocal gratuitoSim en la nubeQPU real

¿Qué es Amazon Braket?

Amazon Braket es un servicio de computación cuántica totalmente gestionado que te permite explorar y experimentar con computadoras cuánticas de múltiples proveedores, todo mediante un SDK de Python coherente. El simulador local es completamente gratuito. Los simuladores en la nube cobran una pequeña tarifa por tarea. Los shots en QPU reales se cobran por shot.

Simulador local
Se ejecuta en tu máquina
Gratis para siempre
Simuladores en la nube
SV1, DM1, TN1
~$0,075/tarea + cómputo
QPU real
Hardware de IonQ, OQC
$0,01–$0,90/shot

Instalación y configuración

terminal
pip install amazon-braket-sdk # AWS credentials (needed for cloud features) # Option 1: AWS CLI aws configure # Option 2: Environment variables export AWS_DEFAULT_REGION=us-east-1 export AWS_ACCESS_KEY_ID=your_key export AWS_SECRET_ACCESS_KEY=your_secret

Simulador local gratuito

El LocalSimulator es completamente gratuito, se ejecuta en tu máquina y no necesita una cuenta de AWS.

braket_local.py
from braket.circuits import Circuit, FreeParameter from braket.devices import LocalSimulator # Free — no AWS credentials needed device = LocalSimulator() # Build a Bell state circuit circuit = Circuit() circuit.h(0) circuit.cnot(0, 1) circuit.probability() # Return outcome probabilities task = device.run(circuit, shots=0) # shots=0 for exact probabilities result = task.result() print(result.values) # [[0.5, 0, 0, 0.5]] # With sampling (shots) circuit2 = Circuit().h(0).cnot(0, 1) task2 = device.run(circuit2, shots=1000) counts = task2.result().measurement_counts print(counts) # {'00': ~500, '11': ~500}

Circuitos paramétricos

braket_parametric.py
from braket.circuits import Circuit, FreeParameter from braket.devices import LocalSimulator # FreeParameters for variational circuits theta = FreeParameter("theta") phi = FreeParameter("phi") circuit = Circuit() circuit.ry(0, theta) circuit.ry(1, phi) circuit.cnot(0, 1) circuit.expectation(observable=braket.Observable.Z() @ braket.Observable.Z(), target=[0, 1]) device = LocalSimulator() # Sweep parameters import numpy as np for t in np.linspace(0, 2 * np.pi, 20): task = device.run(circuit, shots=200, inputs={"theta": t, "phi": 0.5}) result = task.result() print(f"theta={t:.2f}: {result.values}")

Simuladores en la nube (SV1, DM1, TN1)

braket_cloud_sim.py
from braket.aws import AwsDevice from braket.circuits import Circuit # SV1 — Statevector simulator (up to 34 qubits) sv1 = AwsDevice("arn:aws:braket:::device/quantum-simulator/amazon/sv1") # DM1 — Density matrix with noise (up to 17 qubits) dm1 = AwsDevice("arn:aws:braket:::device/quantum-simulator/amazon/dm1") # TN1 — Tensor network (up to 50 qubits, sparse circuits) tn1 = AwsDevice("arn:aws:braket:::device/quantum-simulator/amazon/tn1") circuit = Circuit().h(0).cnot(0, 1) # Note: cloud sims have per-task + compute costs (~$0.075/task) task = sv1.run( circuit, shots=1000, s3_destination_folder=("your-s3-bucket", "results/") ) print(task.result().measurement_counts)

Hardware de QPU real

braket_hardware.py
from braket.aws import AwsDevice from braket.circuits import Circuit # IonQ Aria (trapped-ion, ~$0.01/shot) ionq_device = AwsDevice( "arn:aws:braket:us-east-1::device/qpu/ionq/Aria-1" ) # Oxford Quantum Circuits (superconducting) oqc_device = AwsDevice( "arn:aws:braket:eu-west-2::device/qpu/oqc/Lucy" ) circuit = Circuit().h(0).cnot(0, 1) # Check device availability before submitting print(ionq_device.status) print(ionq_device.properties.paradigm.qubitCount) # Submit (costs apply per shot on real hardware) task = ionq_device.run(circuit, shots=50) print(task.result().measurement_counts)
💡

Also available via HLQuantum

Want to run the same circuit on multiple backends without rewriting your code? HLQuantum abstracts this SDK (and 5 others) behind a single unified API.

python
import hlquantum as hlq qc = hlq.Circuit(2) qc.h(0).cx(0, 1).measure_all() # One line to switch between any backend result = hlq.run(qc, shots=1024) # auto-detect result = hlq.run(qc, shots=1024, backend="braket") # explicit