Qiskit devresine birkaç parametre nasıl eklenir?
Sep 02 2020
Qiskit'te bir ansatz devresi inşa etmek istiyorum, bu yüzden kapılar üzerinde hareket etmek için bazı parametrelere ihtiyacım var (örneğin, RX (a), RY (b)). Qiskit öğreticilerinde bir parametre uygulamanın bir yolunu buluyorum:
import numpy as np
theta_range = np.linspace(0, 2 * np.pi, 128)
circuits = [qc.bind_parameters({theta: theta_val})
for theta_val in theta_range]
circuits[-1].draw()
Yalnızca bir parametre vardır theta. Bazı aralıkta daha fazla parametre istiyorum. Bunu nasıl başarabilirim?
Yanıtlar
2 Cryoris Sep 02 2020 at 16:03
qiskit.circuit.ParameterSınıfı kullanarak devrenizde rastgele sayıda parametre oluşturabilirsiniz . İşte kısa bir örnek
from qiskit.circuit import Parameter, QuantumCircuit
# define your parameters
a, b, c = Parameter('a'), Parameter('b'), Parameter('c')
circuit = QuantumCircuit(2)
circuit.rx(a, 0) # RX(a) on qubit 0
circuit.ry(b, 0) # RY(b) on qubit 1
circuit.crz(c, 0, 1) # CRZ(c) controlled on qubit 0, acting on qubit 1
# bind the values
bound_circuit = circuit.bind_parameters({a: 0, b: 1, c: 2})
# or if you have a list of values
a_vals = [0, 1, 2, 3]
b_vals = [1, 2, 3, 4]
c_vals = [2, 3, 4, 5]
bound_circuits = [circuit.bind_parameters(
{a: a_val, b: b_val, c: c_val})
for (a_val, b_val, c_val) in zip(a_vals, b_vals, c_vals)]
Kolaylık sağlamak için aynı ParameterVectoranda birden fazla parametre oluşturacak sınıf da vardır . Yukarıdaki örnek şu şekilde de görünebilir:
from qiskit.circuit import ParameterVector, QuantumCircuit
# define your parameters
p = ParameterVector('p', 3)
circuit = QuantumCircuit(2)
circuit.rx(p[0], 0) # RX(p[0]) on qubit 0
circuit.ry(p[1], 0) # RY(p[1]) on qubit 1
circuit.crz(p[2], 0, 1) # CRZ(p[2]) controlled on qubit 0, acting on qubit 1
# bind the values
bound_circuit = circuit.bind_parameters({p: [0, 1, 2]})
# or for a list of values
values = [ [0, 1, 2], [1, 2, 3], [2, 3, 4] ]
bounds_circuits = [circuit.bind_parameters({p: val} for val in values})
Gene Simmons, KISS Çizgi Romanlarının Potansiyel Olarak "İnsanlığı Yeniden Yaratabileceğini" Söyledi
Donovan, Şarkılarından 1'ini The Beatles'ın "Lucy in the Sky with Diamonds" şarkısıyla karşılaştırdı
Tom Girardi Dolandırıcılık Suçlamalarından Yargılanma Yetkisinin Belirlenmesi İçin Duruşmaya Katıldı
Charly Reynolds Yakın Zamandaki Vokal Kord Ameliyatını Açıkladı: 'Şarkı Söylemekte Sorun Yaşıyordum'