qiskit-community / qiskit-braket-provider

Qiskit-Braket provider to execute Qiskit programs on quantum computing hardware devices through Amazon Braket.
https://qiskit-community.github.io/qiskit-braket-provider/
Apache License 2.0
58 stars 45 forks source link

Enable use of qiskit ParameterExpressions for circuit conversion: qiskit to braket #139

Closed lukasvoss closed 7 months ago

lukasvoss commented 8 months ago

Summary

Details

This could look something like this for a parametrized CNOT gate in qiskit:

from qiskit.circuit import QuantumCircuit, QuantumRegister
from qiskit_braket_provider.providers import adapter

q_reg = QuantumRegister(2)
my_qc = QuantumCircuit(q_reg, name="custom_cx")

baseline = np.pi * np.array([0.1, 0.3, 0.7, 0.3, -0.4, 0.4, -0.3])
params = ParameterVector(name='a', length=7)

my_qc.u(
    baseline[0] + params[0], # This 'sum' constitutes a qiskit ParameterExpression
    baseline[1] + params[1],
    baseline[2] + params[2],
    q_reg[0],
)
my_qc.u(
    baseline[3] + params[3],
    baseline[4] + params[4],
    baseline[5] + params[5],
    q_reg[1],
)
my_qc.rzx(baseline[6] + params[6], q_reg[0], q_reg[1])

braket_circuit = adapter.convert_qiskit_to_braket_circuit(my_qc)
CLAassistant commented 8 months ago

CLA assistant check
All committers have signed the CLA.

laurencap commented 8 months ago

Hi @lukasvoss, thank you for the contribution! This is a great feature. Please add some tests that cover the lines you've added and show that your changes work correctly.

lukasvoss commented 8 months ago

Dear Lauren, dear Jean-Christophe, I have implement some changes that are solving the errors arising from the qiskit naming convention of ParameterVector elements by removing the squared-parenthesis from the parameter name.

jcjaskula-aws commented 7 months ago

@lukasvoss I took the liberty to push commits to your PR. Let me know if you are satisfied with the current implementation.

lukasvoss commented 7 months ago

@jcjaskula-aws Thanks for your contribution, looks good to me!

lukasvoss commented 7 months ago

@all: Thanks for all your contributions!