Quantum machine learning constructors
Besides the arbitrary Hamiltonian constructors , Qadence also provides a complete set of program constructors useful for digital-analog quantum machine learning programs.
Feature maps
The feature_map
function can easily create several types of data-encoding blocks. The
two main types of feature maps use a Fourier basis or a Chebyshev basis.
from qadence import feature_map , BasisSet , chain
from qadence.draw import display
n_qubits = 3
fourier_fm = feature_map ( n_qubits , fm_type = BasisSet . FOURIER )
chebyshev_fm = feature_map ( n_qubits , fm_type = BasisSet . CHEBYSHEV )
block = chain ( fourier_fm , chebyshev_fm )
%3
cluster_54a7376bcfb943e7ba8dc7009aa6af64
Constant Chebyshev FM
cluster_93cfc1e1d7f9411791b1e7dfbefa7e3c
Constant Fourier FM
5ed678d2500d447cb3ceb685149278bc
0
ce254edeb3804b7dae62cfe45a2ca6f8
RX(phi)
5ed678d2500d447cb3ceb685149278bc--ce254edeb3804b7dae62cfe45a2ca6f8
397a30676aeb4dc385a27cc91f447a0c
1
e639035019db437d80a9df741cd6c452
RX(acos(phi))
ce254edeb3804b7dae62cfe45a2ca6f8--e639035019db437d80a9df741cd6c452
f935dd5d128f471aae6aa1f23b991dc2
e639035019db437d80a9df741cd6c452--f935dd5d128f471aae6aa1f23b991dc2
0f7115f384964ea9a5f58455847b4180
4fa510edc751434fb22cf98e8e832908
RX(phi)
397a30676aeb4dc385a27cc91f447a0c--4fa510edc751434fb22cf98e8e832908
70a609fb5f804b00ba9e5493512cf33d
2
355911e535dd4caf9d88a9d3dbdd6a19
RX(acos(phi))
4fa510edc751434fb22cf98e8e832908--355911e535dd4caf9d88a9d3dbdd6a19
355911e535dd4caf9d88a9d3dbdd6a19--0f7115f384964ea9a5f58455847b4180
006ced19272d497d8cd664c0daa127f1
09612fafc2fa4553bb80b7fae4aa9379
RX(phi)
70a609fb5f804b00ba9e5493512cf33d--09612fafc2fa4553bb80b7fae4aa9379
d9abda921934409a9efa557c623bb5ba
RX(acos(phi))
09612fafc2fa4553bb80b7fae4aa9379--d9abda921934409a9efa557c623bb5ba
d9abda921934409a9efa557c623bb5ba--006ced19272d497d8cd664c0daa127f1
A custom encoding function can also be passed with sympy
from sympy import asin , Function
n_qubits = 3
# Using a pre-defined sympy Function
custom_fm_0 = feature_map ( n_qubits , fm_type = asin )
# Creating a custom function
def custom_fn ( x ):
return asin ( x ) + x ** 2
custom_fm_1 = feature_map ( n_qubits , fm_type = custom_fn )
block = chain ( custom_fm_0 , custom_fm_1 )
%3
cluster_d1c9c9f34ca540d292faf492527b9922
Constant <function custom_fn at 0x7fe4d0e56830> FM
cluster_36963cb7fcc54306a6567d7dce637737
Constant asin FM
eb7a851ef55247a3be9df44203836b76
0
6137e00a87144ebfb92622ac5e3389b4
RX(asin(phi))
eb7a851ef55247a3be9df44203836b76--6137e00a87144ebfb92622ac5e3389b4
fb7e75dc96e747cb9d692ee6e0eb937c
1
61cbe2a806c446539e9fb1ce5b180d35
RX(phi**2 + asin(phi))
6137e00a87144ebfb92622ac5e3389b4--61cbe2a806c446539e9fb1ce5b180d35
53aa531ee8bd4dbda336cf25a0bbeac5
61cbe2a806c446539e9fb1ce5b180d35--53aa531ee8bd4dbda336cf25a0bbeac5
974b91b1f9d540c7b87a373a88a06450
be02dfd9f67042e68b191aa01f12e28d
RX(asin(phi))
fb7e75dc96e747cb9d692ee6e0eb937c--be02dfd9f67042e68b191aa01f12e28d
adb0a31e2fc14656acefa8a22548627b
2
a9065748060e4c3da0c06ab6baa96836
RX(phi**2 + asin(phi))
be02dfd9f67042e68b191aa01f12e28d--a9065748060e4c3da0c06ab6baa96836
a9065748060e4c3da0c06ab6baa96836--974b91b1f9d540c7b87a373a88a06450
f9685f896d9c401f8152c351a15342bd
c09d324df5e542b48c3119db782ad519
RX(asin(phi))
adb0a31e2fc14656acefa8a22548627b--c09d324df5e542b48c3119db782ad519
0fb22ca346014b0b928d2450811889ed
RX(phi**2 + asin(phi))
c09d324df5e542b48c3119db782ad519--0fb22ca346014b0b928d2450811889ed
0fb22ca346014b0b928d2450811889ed--f9685f896d9c401f8152c351a15342bd
Furthermore, the reupload_scaling
argument can be used to change the scaling applied to each qubit
in the support of the feature map. The default scalings can be chosen from the ReuploadScaling
enumeration.
from qadence import ReuploadScaling
from qadence.draw import display
n_qubits = 5
# Default constant value
fm_constant = feature_map ( n_qubits , fm_type = BasisSet . FOURIER , reupload_scaling = ReuploadScaling . CONSTANT )
# Linearly increasing scaling
fm_tower = feature_map ( n_qubits , fm_type = BasisSet . FOURIER , reupload_scaling = ReuploadScaling . TOWER )
# Exponentially increasing scaling
fm_exp = feature_map ( n_qubits , fm_type = BasisSet . FOURIER , reupload_scaling = ReuploadScaling . EXP )
block = chain ( fm_constant , fm_tower , fm_exp )
%3
cluster_12883108e95046c1b53eb4c8ac45ef11
Exponential Fourier FM
cluster_5a546ed4329742fc977a1c74bee42c57
Constant Fourier FM
cluster_a7d5cc9020ff405d8471b34d6cffbba3
Tower Fourier FM
5a7bfe30208344d1829a9ef7d22086be
0
00e7ddfc91e04c0e958fa115075d21e6
RX(phi)
5a7bfe30208344d1829a9ef7d22086be--00e7ddfc91e04c0e958fa115075d21e6
d6636f13e2164682b586dbf1a1811716
1
456991b920174de2acf1ab38c9ca62aa
RX(1.0*phi)
00e7ddfc91e04c0e958fa115075d21e6--456991b920174de2acf1ab38c9ca62aa
c74be082cd2c4076ac949c7d22e1d26d
RX(1.0*phi)
456991b920174de2acf1ab38c9ca62aa--c74be082cd2c4076ac949c7d22e1d26d
c3af8b0bc8cf421aa6c601576df079b3
c74be082cd2c4076ac949c7d22e1d26d--c3af8b0bc8cf421aa6c601576df079b3
c4158be7bed949d0b66afbae2095d2fc
6112fb9588bd41f5b940b04bdbffc508
RX(phi)
d6636f13e2164682b586dbf1a1811716--6112fb9588bd41f5b940b04bdbffc508
03d66d8141e044a6bb260b0d931a576c
2
93d2ed25c0c84fc0911f9519ad5a1fcf
RX(2.0*phi)
6112fb9588bd41f5b940b04bdbffc508--93d2ed25c0c84fc0911f9519ad5a1fcf
58a27468a68f46a79be6bcaa68219bad
RX(2.0*phi)
93d2ed25c0c84fc0911f9519ad5a1fcf--58a27468a68f46a79be6bcaa68219bad
58a27468a68f46a79be6bcaa68219bad--c4158be7bed949d0b66afbae2095d2fc
11c59d99cf7e4ba8884de5f194a27b45
c3b30384c9794315b288d72f341fa467
RX(phi)
03d66d8141e044a6bb260b0d931a576c--c3b30384c9794315b288d72f341fa467
d1f2a15b355a4e349263d43f62f28515
3
8468ccaca27245e3a5ca7ce5b5eb15b1
RX(3.0*phi)
c3b30384c9794315b288d72f341fa467--8468ccaca27245e3a5ca7ce5b5eb15b1
b0358208d3fa4ed887a7bfaee69eaecc
RX(4.0*phi)
8468ccaca27245e3a5ca7ce5b5eb15b1--b0358208d3fa4ed887a7bfaee69eaecc
b0358208d3fa4ed887a7bfaee69eaecc--11c59d99cf7e4ba8884de5f194a27b45
6f2c4a0becd845c4a261e41c09f0724a
a1fd0f7137db4dbeb69bfec296978c07
RX(phi)
d1f2a15b355a4e349263d43f62f28515--a1fd0f7137db4dbeb69bfec296978c07
951d8d65445e4af792e2aa42dfa15463
4
aaaa905742da45078773fab019d1790d
RX(4.0*phi)
a1fd0f7137db4dbeb69bfec296978c07--aaaa905742da45078773fab019d1790d
8544b0f8b8ff49e58f06e7f77c338572
RX(8.0*phi)
aaaa905742da45078773fab019d1790d--8544b0f8b8ff49e58f06e7f77c338572
8544b0f8b8ff49e58f06e7f77c338572--6f2c4a0becd845c4a261e41c09f0724a
c71f32c14c874752b694007368da24a9
693f7d35fa1d488cacf8dcf062e0acbf
RX(phi)
951d8d65445e4af792e2aa42dfa15463--693f7d35fa1d488cacf8dcf062e0acbf
c9c0b74c698549baac83e285815d6756
RX(5.0*phi)
693f7d35fa1d488cacf8dcf062e0acbf--c9c0b74c698549baac83e285815d6756
790fcb7cccee43e59f25c5c95b835cbb
RX(16.0*phi)
c9c0b74c698549baac83e285815d6756--790fcb7cccee43e59f25c5c95b835cbb
790fcb7cccee43e59f25c5c95b835cbb--c71f32c14c874752b694007368da24a9
A custom scaling can also be defined with a function with an int
input and int
or float
output.
n_qubits = 5
def custom_scaling ( i : int ) -> int | float :
"""Sqrt(i+1)"""
return ( i + 1 ) ** ( 0.5 )
# Custom scaling function
fm_custom = feature_map ( n_qubits , fm_type = BasisSet . CHEBYSHEV , reupload_scaling = custom_scaling )
%3
8381d3992fac4f1f8e8474ec1f320f66
0
acb02fcdbe1a4ccebfc57697f77c376c
RX(1.0*acos(phi))
8381d3992fac4f1f8e8474ec1f320f66--acb02fcdbe1a4ccebfc57697f77c376c
2c9c7cc861344f90b9cbef4b421131d6
1
a2945105c92a452896973c85ec72edc5
acb02fcdbe1a4ccebfc57697f77c376c--a2945105c92a452896973c85ec72edc5
6dd86a0602ca4618960ed28cc9a0849d
f899fd22c80f4f77a775ec4f58bfe79d
RX(1.414*acos(phi))
2c9c7cc861344f90b9cbef4b421131d6--f899fd22c80f4f77a775ec4f58bfe79d
5f45663fca024145bf30be8468770ef9
2
f899fd22c80f4f77a775ec4f58bfe79d--6dd86a0602ca4618960ed28cc9a0849d
c9121aa1a557455ca107a8839510e933
11afa8c6b88c4d098066243c350a5873
RX(1.732*acos(phi))
5f45663fca024145bf30be8468770ef9--11afa8c6b88c4d098066243c350a5873
4555b8f990844eb1997aa159d283cca1
3
11afa8c6b88c4d098066243c350a5873--c9121aa1a557455ca107a8839510e933
0fa67163537841acb04aaee462c5f4d1
c658de57f87a41949d5bae54c56fc9e3
RX(2.0*acos(phi))
4555b8f990844eb1997aa159d283cca1--c658de57f87a41949d5bae54c56fc9e3
653143e6a9a84380acb9b341be79d3cf
4
c658de57f87a41949d5bae54c56fc9e3--0fa67163537841acb04aaee462c5f4d1
330b5bb18eb045b49e55874e7bb7a257
877923ead2024866b9b8f0fbcc88fffd
RX(2.236*acos(phi))
653143e6a9a84380acb9b341be79d3cf--877923ead2024866b9b8f0fbcc88fffd
877923ead2024866b9b8f0fbcc88fffd--330b5bb18eb045b49e55874e7bb7a257
To add a trainable parameter that multiplies the feature parameter inside the encoding function,
simply pass a param_prefix
string:
n_qubits = 5
fm_trainable = feature_map (
n_qubits ,
fm_type = BasisSet . FOURIER ,
reupload_scaling = ReuploadScaling . EXP ,
param_prefix = "w" ,
)
%3
79ae4d39bfca4bed926c4dec3f3efbb1
0
7f9a213cfc3c457aa5ee2147a5ca49aa
RX(1.0*phi*w₀)
79ae4d39bfca4bed926c4dec3f3efbb1--7f9a213cfc3c457aa5ee2147a5ca49aa
30ba1e60e66a4c099b97bb0acf863ddd
1
6a97fcb67b22423882d2fe3632e29d1b
7f9a213cfc3c457aa5ee2147a5ca49aa--6a97fcb67b22423882d2fe3632e29d1b
d141d1d43cbb47c4bc71e54ec4bfd883
886d5072204d4a6b92efc969ea005852
RX(2.0*phi*w₁)
30ba1e60e66a4c099b97bb0acf863ddd--886d5072204d4a6b92efc969ea005852
4aad82851a1e40febad9be032dbd0c7c
2
886d5072204d4a6b92efc969ea005852--d141d1d43cbb47c4bc71e54ec4bfd883
a4ebce7059bd472cbad0b8fbef864549
46446fa0c44c48a89e6ab31a75fc16c8
RX(4.0*phi*w₂)
4aad82851a1e40febad9be032dbd0c7c--46446fa0c44c48a89e6ab31a75fc16c8
a58efbd5a687449c8eb9dc786ade7f2d
3
46446fa0c44c48a89e6ab31a75fc16c8--a4ebce7059bd472cbad0b8fbef864549
c2eaef4a5dce464db13b8cbfa93ff51c
a13b1f4cf10c4b98896a226fbd93dc18
RX(8.0*phi*w₃)
a58efbd5a687449c8eb9dc786ade7f2d--a13b1f4cf10c4b98896a226fbd93dc18
43e0af26744a409f918c93c3df85af77
4
a13b1f4cf10c4b98896a226fbd93dc18--c2eaef4a5dce464db13b8cbfa93ff51c
26c32af20fb5415b9a79741105a65f6d
df0dd056d54148eeb91df7b138177a6e
RX(16.0*phi*w₄)
43e0af26744a409f918c93c3df85af77--df0dd056d54148eeb91df7b138177a6e
df0dd056d54148eeb91df7b138177a6e--26c32af20fb5415b9a79741105a65f6d
Note that for the Fourier feature map, the encoding function is simply \(f(x)=x\) . For other cases, like the Chebyshev acos()
encoding,
the trainable parameter may cause the feature value to be outside the domain of the encoding function. This will eventually be fixed
by adding range constraints to trainable parameters in Qadence.
A full description of the remaining arguments can be found in the feature_map
API reference . We provide an example below.
from qadence import RY
n_qubits = 5
# Custom scaling function
fm_full = feature_map (
n_qubits = n_qubits ,
support = tuple ( reversed ( range ( n_qubits ))), # Reverse the qubit support to run the scaling from bottom to top
param = "x" , # Change the name of the parameter
op = RY , # Change the rotation gate between RX, RY, RZ or PHASE
fm_type = BasisSet . CHEBYSHEV ,
reupload_scaling = ReuploadScaling . EXP ,
feature_range = ( - 1.0 , 2.0 ), # Range from which the input data comes from
target_range = ( 1.0 , 3.0 ), # Range the encoder assumes as the natural range
multiplier = 5.0 , # Extra multiplier, which can also be a Parameter
param_prefix = "w" , # Add trainable parameters
)
%3
053072be6357412f928af6bd863398c8
0
94c0ec53a43748b0a97bc68aef0bfc78
RY(80.0*acos(w₄*(0.667*x + 1.667)))
053072be6357412f928af6bd863398c8--94c0ec53a43748b0a97bc68aef0bfc78
8f609eaee1b446b3b6f9616c021c9e0a
1
209c1a172ea245f0b5702e2cc5acc703
94c0ec53a43748b0a97bc68aef0bfc78--209c1a172ea245f0b5702e2cc5acc703
dc16471b412a4d3bba59abd677d5d22b
a10b52ae41b94fa79db66c02d77380d1
RY(40.0*acos(w₃*(0.667*x + 1.667)))
8f609eaee1b446b3b6f9616c021c9e0a--a10b52ae41b94fa79db66c02d77380d1
0132063d971f46c9a6350ef81e35ab1b
2
a10b52ae41b94fa79db66c02d77380d1--dc16471b412a4d3bba59abd677d5d22b
7bcd6cd5c677402d9e9fd910a8d7b5ed
2795240952704b1586749221ff9d9a88
RY(20.0*acos(w₂*(0.667*x + 1.667)))
0132063d971f46c9a6350ef81e35ab1b--2795240952704b1586749221ff9d9a88
f8a873bf219f4e1c8db81793bc362931
3
2795240952704b1586749221ff9d9a88--7bcd6cd5c677402d9e9fd910a8d7b5ed
11464eb4312e4477b15c3764cdd5eff5
9c4da0bdd96d45d3b589161a6ad02706
RY(10.0*acos(w₁*(0.667*x + 1.667)))
f8a873bf219f4e1c8db81793bc362931--9c4da0bdd96d45d3b589161a6ad02706
48f8a88986df4b84b949654de9b60246
4
9c4da0bdd96d45d3b589161a6ad02706--11464eb4312e4477b15c3764cdd5eff5
8697d1e0084c45dc9d1f9deb8a6bee70
8446837a889a4b1c99f96b6b0f75d7b6
RY(5.0*acos(w₀*(0.667*x + 1.667)))
48f8a88986df4b84b949654de9b60246--8446837a889a4b1c99f96b6b0f75d7b6
8446837a889a4b1c99f96b6b0f75d7b6--8697d1e0084c45dc9d1f9deb8a6bee70
Hardware-efficient ansatz
Ansatze blocks for quantum machine-learning are typically built following the Hardware-Efficient Ansatz formalism (HEA).
Both fully digital and digital-analog HEAs can easily be built with the hea
function. By default,
the digital version is returned:
from qadence import hea
from qadence.draw import display
n_qubits = 3
depth = 2
ansatz = hea ( n_qubits , depth )
%3
480e7911f1d24ddbaa78deecd333d8f3
0
90739fe9489b4034bd5224b4e08129e1
RX(theta₀)
480e7911f1d24ddbaa78deecd333d8f3--90739fe9489b4034bd5224b4e08129e1
5f1faff9197d446cbc3293bb1f71db29
1
be999a32833d458e996c0f905f866f16
RY(theta₃)
90739fe9489b4034bd5224b4e08129e1--be999a32833d458e996c0f905f866f16
1c44ef6541644a5e9851bc42c379a0d8
RX(theta₆)
be999a32833d458e996c0f905f866f16--1c44ef6541644a5e9851bc42c379a0d8
e8de95177bcb4402af34203a6b5806e3
1c44ef6541644a5e9851bc42c379a0d8--e8de95177bcb4402af34203a6b5806e3
e7c5292e8b414239b1caebfc1e6a2858
e8de95177bcb4402af34203a6b5806e3--e7c5292e8b414239b1caebfc1e6a2858
ea991c69e9064ec391e3425a75a53cfd
RX(theta₉)
e7c5292e8b414239b1caebfc1e6a2858--ea991c69e9064ec391e3425a75a53cfd
1b8a88a44c0a47f7ad98f7c1bced411a
RY(theta₁₂)
ea991c69e9064ec391e3425a75a53cfd--1b8a88a44c0a47f7ad98f7c1bced411a
76f9ec8ed3aa4e2a867f088e28b7d809
RX(theta₁₅)
1b8a88a44c0a47f7ad98f7c1bced411a--76f9ec8ed3aa4e2a867f088e28b7d809
84d8743a67bb430bb053e25e9b0e2b85
76f9ec8ed3aa4e2a867f088e28b7d809--84d8743a67bb430bb053e25e9b0e2b85
c877ad654dd74311918f88f04549efe4
84d8743a67bb430bb053e25e9b0e2b85--c877ad654dd74311918f88f04549efe4
3771f6536f384518a6664fd6c7a9bd40
c877ad654dd74311918f88f04549efe4--3771f6536f384518a6664fd6c7a9bd40
bd2b6cbe0bc545eeb7084f2389139dc3
cea6149b7409461b9f0690d461fb2af4
RX(theta₁)
5f1faff9197d446cbc3293bb1f71db29--cea6149b7409461b9f0690d461fb2af4
d69798e157c54277a5b3c6ae2fce3fe6
2
f1ac1059a2984512bc9388d27244a18d
RY(theta₄)
cea6149b7409461b9f0690d461fb2af4--f1ac1059a2984512bc9388d27244a18d
6fc51f9ecea84b0b974d474bb6ceb7ad
RX(theta₇)
f1ac1059a2984512bc9388d27244a18d--6fc51f9ecea84b0b974d474bb6ceb7ad
4a71071a4af940b5923f77742ec51904
X
6fc51f9ecea84b0b974d474bb6ceb7ad--4a71071a4af940b5923f77742ec51904
4a71071a4af940b5923f77742ec51904--e8de95177bcb4402af34203a6b5806e3
dbb9d1d99eed4ec9870db02568479a02
4a71071a4af940b5923f77742ec51904--dbb9d1d99eed4ec9870db02568479a02
20fd3f98f9bb4658b9c00f40f053b193
RX(theta₁₀)
dbb9d1d99eed4ec9870db02568479a02--20fd3f98f9bb4658b9c00f40f053b193
1d37d97c515d49658638f301a8c7228a
RY(theta₁₃)
20fd3f98f9bb4658b9c00f40f053b193--1d37d97c515d49658638f301a8c7228a
144cdb53082641e19459b9f5ffe82afb
RX(theta₁₆)
1d37d97c515d49658638f301a8c7228a--144cdb53082641e19459b9f5ffe82afb
b15d31b7ebc84db99e0d53720d178912
X
144cdb53082641e19459b9f5ffe82afb--b15d31b7ebc84db99e0d53720d178912
b15d31b7ebc84db99e0d53720d178912--84d8743a67bb430bb053e25e9b0e2b85
b91365b80f6c4cf8b15a4db435f09e62
b15d31b7ebc84db99e0d53720d178912--b91365b80f6c4cf8b15a4db435f09e62
b91365b80f6c4cf8b15a4db435f09e62--bd2b6cbe0bc545eeb7084f2389139dc3
d2b715aa50d34dc49cdfd518f30c926c
71f4e464baf04542b2f4d6c68ca38bf1
RX(theta₂)
d69798e157c54277a5b3c6ae2fce3fe6--71f4e464baf04542b2f4d6c68ca38bf1
c1aa1ba9d9a64f698ecfa86810507758
RY(theta₅)
71f4e464baf04542b2f4d6c68ca38bf1--c1aa1ba9d9a64f698ecfa86810507758
ff7248aec00849c3b783345b654da2d1
RX(theta₈)
c1aa1ba9d9a64f698ecfa86810507758--ff7248aec00849c3b783345b654da2d1
baf0bf5fdaa74978960b4a270dbfb82b
ff7248aec00849c3b783345b654da2d1--baf0bf5fdaa74978960b4a270dbfb82b
b65a933950db41a286616dfa4f2c4614
X
baf0bf5fdaa74978960b4a270dbfb82b--b65a933950db41a286616dfa4f2c4614
b65a933950db41a286616dfa4f2c4614--dbb9d1d99eed4ec9870db02568479a02
09a3d884187e499b89a139e5cfb282a3
RX(theta₁₁)
b65a933950db41a286616dfa4f2c4614--09a3d884187e499b89a139e5cfb282a3
352e387b9c554d7faf74028bbb75b407
RY(theta₁₄)
09a3d884187e499b89a139e5cfb282a3--352e387b9c554d7faf74028bbb75b407
01060c0fe7a34ada91d669dcaed43f49
RX(theta₁₇)
352e387b9c554d7faf74028bbb75b407--01060c0fe7a34ada91d669dcaed43f49
ca4fc1395bb54a26be0b0fc3779fde2e
01060c0fe7a34ada91d669dcaed43f49--ca4fc1395bb54a26be0b0fc3779fde2e
d69bb173f4b0499cbfba5770b43b38b3
X
ca4fc1395bb54a26be0b0fc3779fde2e--d69bb173f4b0499cbfba5770b43b38b3
d69bb173f4b0499cbfba5770b43b38b3--b91365b80f6c4cf8b15a4db435f09e62
d69bb173f4b0499cbfba5770b43b38b3--d2b715aa50d34dc49cdfd518f30c926c
As seen above, the rotation layers are automatically parameterized, and the prefix "theta"
can be changed with the param_prefix
argument.
Furthermore, both the single-qubit rotations and the two-qubit entangler can be customized with the operations
and entangler
argument. The operations can be passed as a list of single-qubit rotations, while the entangler should be either CNOT
, CZ
, CRX
, CRY
, CRZ
or CPHASE
.
from qadence import RX , RY , CPHASE
ansatz = hea (
n_qubits = n_qubits ,
depth = depth ,
param_prefix = "phi" ,
operations = [ RX , RY , RX ],
entangler = CPHASE
)
%3
1ca5ccaa9f4e46679fa864ff34d9d036
0
cf3ce336943a4a26b6efc5bb3151bff7
RX(phi₀)
1ca5ccaa9f4e46679fa864ff34d9d036--cf3ce336943a4a26b6efc5bb3151bff7
071201ef4e344dd9bfcd0ecb131f0234
1
acf1d6f0f5a04d9bbfb2779db3097195
RY(phi₃)
cf3ce336943a4a26b6efc5bb3151bff7--acf1d6f0f5a04d9bbfb2779db3097195
e987e707c6cd4950a762eeb9450bea0c
RX(phi₆)
acf1d6f0f5a04d9bbfb2779db3097195--e987e707c6cd4950a762eeb9450bea0c
d91916edddd245a098763a6126aa118a
e987e707c6cd4950a762eeb9450bea0c--d91916edddd245a098763a6126aa118a
3fbe70ca4709495cae279198c71e7155
d91916edddd245a098763a6126aa118a--3fbe70ca4709495cae279198c71e7155
a409a5e535cd43b0bcd01688d9be7699
RX(phi₉)
3fbe70ca4709495cae279198c71e7155--a409a5e535cd43b0bcd01688d9be7699
9a0506133f2142c9b787fa29ab3bf2e4
RY(phi₁₂)
a409a5e535cd43b0bcd01688d9be7699--9a0506133f2142c9b787fa29ab3bf2e4
f00a085fb36f459285323d5bce90ff3c
RX(phi₁₅)
9a0506133f2142c9b787fa29ab3bf2e4--f00a085fb36f459285323d5bce90ff3c
68da151ca7dd43dea3401b03daeccae0
f00a085fb36f459285323d5bce90ff3c--68da151ca7dd43dea3401b03daeccae0
a8ff4a3a59c448a0b60b35e4197cb230
68da151ca7dd43dea3401b03daeccae0--a8ff4a3a59c448a0b60b35e4197cb230
1aed2060f99d453489d778e23a9b979d
a8ff4a3a59c448a0b60b35e4197cb230--1aed2060f99d453489d778e23a9b979d
4ce2d2f4f6ff4032b9c342851ce0f03a
cb1dea383b5c4d78a9ce83a6b0da89a1
RX(phi₁)
071201ef4e344dd9bfcd0ecb131f0234--cb1dea383b5c4d78a9ce83a6b0da89a1
8916ecb2bd634103ad916d1d2aff5d12
2
eb3dee14cc0b4fe0a88eb5b402740d6b
RY(phi₄)
cb1dea383b5c4d78a9ce83a6b0da89a1--eb3dee14cc0b4fe0a88eb5b402740d6b
a2469e4c77a84563a04d67d1afff7f9a
RX(phi₇)
eb3dee14cc0b4fe0a88eb5b402740d6b--a2469e4c77a84563a04d67d1afff7f9a
a9d22cf6c13d4109ad0ddb4de58e3c95
PHASE(phi_ent₀)
a2469e4c77a84563a04d67d1afff7f9a--a9d22cf6c13d4109ad0ddb4de58e3c95
a9d22cf6c13d4109ad0ddb4de58e3c95--d91916edddd245a098763a6126aa118a
d811e0039790485fb6991a401a6ee872
a9d22cf6c13d4109ad0ddb4de58e3c95--d811e0039790485fb6991a401a6ee872
d83dfc4f9b17466ca23bcd79be7fc7d6
RX(phi₁₀)
d811e0039790485fb6991a401a6ee872--d83dfc4f9b17466ca23bcd79be7fc7d6
3555b0f2d4424922988681f0f7f9442e
RY(phi₁₃)
d83dfc4f9b17466ca23bcd79be7fc7d6--3555b0f2d4424922988681f0f7f9442e
ca6a54c5ce0c448a9fa15a7b6950c45e
RX(phi₁₆)
3555b0f2d4424922988681f0f7f9442e--ca6a54c5ce0c448a9fa15a7b6950c45e
f077877cf16a4610a4e8a4848bac48fb
PHASE(phi_ent₂)
ca6a54c5ce0c448a9fa15a7b6950c45e--f077877cf16a4610a4e8a4848bac48fb
f077877cf16a4610a4e8a4848bac48fb--68da151ca7dd43dea3401b03daeccae0
5e551f656e8d4135a0553ff19c4439eb
f077877cf16a4610a4e8a4848bac48fb--5e551f656e8d4135a0553ff19c4439eb
5e551f656e8d4135a0553ff19c4439eb--4ce2d2f4f6ff4032b9c342851ce0f03a
5148ddf6fc494ef8b6eacd8b069297aa
5b1f8add462c491d8e6677642fcb8f1f
RX(phi₂)
8916ecb2bd634103ad916d1d2aff5d12--5b1f8add462c491d8e6677642fcb8f1f
3a25932e6c594c0d95323ba5fb53ccb2
RY(phi₅)
5b1f8add462c491d8e6677642fcb8f1f--3a25932e6c594c0d95323ba5fb53ccb2
121bd3b46cbb469d9f4f5e887cdda0d2
RX(phi₈)
3a25932e6c594c0d95323ba5fb53ccb2--121bd3b46cbb469d9f4f5e887cdda0d2
9ae49dd127214e76a1747518c306109f
121bd3b46cbb469d9f4f5e887cdda0d2--9ae49dd127214e76a1747518c306109f
29cddd95edfa4f29b5a89eedb3d5ecc9
PHASE(phi_ent₁)
9ae49dd127214e76a1747518c306109f--29cddd95edfa4f29b5a89eedb3d5ecc9
29cddd95edfa4f29b5a89eedb3d5ecc9--d811e0039790485fb6991a401a6ee872
a6948621b63942be8c0c8e49397b65fc
RX(phi₁₁)
29cddd95edfa4f29b5a89eedb3d5ecc9--a6948621b63942be8c0c8e49397b65fc
86c0d4f588db405da827b843aef7d693
RY(phi₁₄)
a6948621b63942be8c0c8e49397b65fc--86c0d4f588db405da827b843aef7d693
93005bd3e7d24fc4a5e50b3d4d70821f
RX(phi₁₇)
86c0d4f588db405da827b843aef7d693--93005bd3e7d24fc4a5e50b3d4d70821f
e4946c3fc50b4f919a10b2296d67f112
93005bd3e7d24fc4a5e50b3d4d70821f--e4946c3fc50b4f919a10b2296d67f112
ea87c8d6666d43739317660c920bdba7
PHASE(phi_ent₃)
e4946c3fc50b4f919a10b2296d67f112--ea87c8d6666d43739317660c920bdba7
ea87c8d6666d43739317660c920bdba7--5e551f656e8d4135a0553ff19c4439eb
ea87c8d6666d43739317660c920bdba7--5148ddf6fc494ef8b6eacd8b069297aa
Having a truly hardware-efficient ansatz means that the entangling operation can be chosen according to each device's native interactions. Besides digital operations, in Qadence it is also possible to build digital-analog HEAs with the entanglement produced by the natural evolution of a set of interacting qubits, as natively implemented in neutral atom devices. As with other digital-analog functions, this can be controlled with the strategy
argument which can be chosen from the Strategy
enum type. Currently, only Strategy.DIGITAL
and Strategy.SDAQC
are available. By default, calling strategy = Strategy.SDAQC
will use a global entangling Hamiltonian with Ising-like \(NN\) interactions and constant interaction strength,
from qadence import Strategy
ansatz = hea (
n_qubits ,
depth = depth ,
strategy = Strategy . SDAQC
)
%3
cluster_2412a6f8471741b899b7d66164dab67d
cluster_f5ef4edacf2d4e7da4e50e4b495fde8d
b798147045704e758808767d80c65f38
0
d201f191c7d84e3fbdb3555223254456
RX(theta₀)
b798147045704e758808767d80c65f38--d201f191c7d84e3fbdb3555223254456
110371cb56c946a9b04f33b81755fb9b
1
7e54d3a275894cae8ce31ef44bb9f292
RY(theta₃)
d201f191c7d84e3fbdb3555223254456--7e54d3a275894cae8ce31ef44bb9f292
0b8cbcdd8ee74a81ad126c5f04794b09
RX(theta₆)
7e54d3a275894cae8ce31ef44bb9f292--0b8cbcdd8ee74a81ad126c5f04794b09
66239fe51b2d45c58f8e564e1ca76e30
HamEvo
0b8cbcdd8ee74a81ad126c5f04794b09--66239fe51b2d45c58f8e564e1ca76e30
3f6ac6d2f0404d79bad9615e4dc39df3
RX(theta₉)
66239fe51b2d45c58f8e564e1ca76e30--3f6ac6d2f0404d79bad9615e4dc39df3
60fadee23ba04de988bed9175720ff0f
RY(theta₁₂)
3f6ac6d2f0404d79bad9615e4dc39df3--60fadee23ba04de988bed9175720ff0f
0607284954964abcabd5ce68dd1e23fb
RX(theta₁₅)
60fadee23ba04de988bed9175720ff0f--0607284954964abcabd5ce68dd1e23fb
f37f82c6a68247589847b6a0a9b4d0e1
HamEvo
0607284954964abcabd5ce68dd1e23fb--f37f82c6a68247589847b6a0a9b4d0e1
eb655787abfc4cf58d6e1535fa6fe2e3
f37f82c6a68247589847b6a0a9b4d0e1--eb655787abfc4cf58d6e1535fa6fe2e3
7a1c71e7bc2c40cfa572399bf3d71f23
944f355f5bac4ac3adbd5b034286cfbf
RX(theta₁)
110371cb56c946a9b04f33b81755fb9b--944f355f5bac4ac3adbd5b034286cfbf
91d4c5b0033c4355bcba31f53ea31ffa
2
8cafc68fbcc54a87b87becb7afd121ac
RY(theta₄)
944f355f5bac4ac3adbd5b034286cfbf--8cafc68fbcc54a87b87becb7afd121ac
8c21399ad3d74631816184b1834b524a
RX(theta₇)
8cafc68fbcc54a87b87becb7afd121ac--8c21399ad3d74631816184b1834b524a
ab13e36cd3204d6eb9f74a377ddf8d70
t = theta_t₀
8c21399ad3d74631816184b1834b524a--ab13e36cd3204d6eb9f74a377ddf8d70
e8ac3e0a83da4b71a65763eb41663ee0
RX(theta₁₀)
ab13e36cd3204d6eb9f74a377ddf8d70--e8ac3e0a83da4b71a65763eb41663ee0
6879230013b14990b2b7dc72074b57b3
RY(theta₁₃)
e8ac3e0a83da4b71a65763eb41663ee0--6879230013b14990b2b7dc72074b57b3
f0545b9dc4684e2d9dcc01b9fef9e4e1
RX(theta₁₆)
6879230013b14990b2b7dc72074b57b3--f0545b9dc4684e2d9dcc01b9fef9e4e1
8fd46355b85140adacbb762a790dce10
t = theta_t₁
f0545b9dc4684e2d9dcc01b9fef9e4e1--8fd46355b85140adacbb762a790dce10
8fd46355b85140adacbb762a790dce10--7a1c71e7bc2c40cfa572399bf3d71f23
40e247cb0c2947d5a6f5a300ac76fc4f
ff11f318e95c4c218fc64e9f3b6c1eb9
RX(theta₂)
91d4c5b0033c4355bcba31f53ea31ffa--ff11f318e95c4c218fc64e9f3b6c1eb9
21949a6097b14b70bb97b04799120325
RY(theta₅)
ff11f318e95c4c218fc64e9f3b6c1eb9--21949a6097b14b70bb97b04799120325
3c16f29183144e048ed923b64a139b7c
RX(theta₈)
21949a6097b14b70bb97b04799120325--3c16f29183144e048ed923b64a139b7c
6fbaa6cffbae4741a9f27bd3d0fd2363
3c16f29183144e048ed923b64a139b7c--6fbaa6cffbae4741a9f27bd3d0fd2363
9b9b5ada60324ea59a342d71245f8c52
RX(theta₁₁)
6fbaa6cffbae4741a9f27bd3d0fd2363--9b9b5ada60324ea59a342d71245f8c52
9d49058482e94601b5dbc4f333d492ef
RY(theta₁₄)
9b9b5ada60324ea59a342d71245f8c52--9d49058482e94601b5dbc4f333d492ef
00907a8f71e1424fb0b05244d1ec8998
RX(theta₁₇)
9d49058482e94601b5dbc4f333d492ef--00907a8f71e1424fb0b05244d1ec8998
ef4f7b65a68f442daf408f9062766693
00907a8f71e1424fb0b05244d1ec8998--ef4f7b65a68f442daf408f9062766693
ef4f7b65a68f442daf408f9062766693--40e247cb0c2947d5a6f5a300ac76fc4f
Note that, by default, only the time-parameter is automatically parameterized when building a digital-analog HEA. However, as described in the Hamiltonians tutorial , arbitrary interaction Hamiltonians can be easily built with the hamiltonian_factory
function, with both customized or fully parameterized interactions, and these can be directly passed as the entangler
for a customizable digital-analog HEA.
from qadence import hamiltonian_factory , Interaction , N , Register , hea
# Build a parameterized neutral-atom Hamiltonian following a honeycomb_lattice:
register = Register . honeycomb_lattice ( 1 , 1 )
entangler = hamiltonian_factory (
register ,
interaction = Interaction . NN ,
detuning = N ,
interaction_strength = "e" ,
detuning_strength = "n"
)
# Build a fully parameterized Digital-Analog HEA:
n_qubits = register . n_qubits
depth = 2
ansatz = hea (
n_qubits = register . n_qubits ,
depth = depth ,
operations = [ RX , RY , RX ],
entangler = entangler ,
strategy = Strategy . SDAQC
)
%3
cluster_77b97177b8ce4671bb70fa286ead71e4
cluster_1d97d0a6466847a6a1adb3cf5e740dd9
8cbc43c400554443becac499f6dd229e
0
1064ce9f24b34474a42e58cfab792e55
RX(theta₀)
8cbc43c400554443becac499f6dd229e--1064ce9f24b34474a42e58cfab792e55
9b9056c822024ed1b83673db33da66e9
1
1e6dc0759aa44faca1499f0f8faeb39b
RY(theta₆)
1064ce9f24b34474a42e58cfab792e55--1e6dc0759aa44faca1499f0f8faeb39b
937bfeec86ae41f5a46bb206f20e5582
RX(theta₁₂)
1e6dc0759aa44faca1499f0f8faeb39b--937bfeec86ae41f5a46bb206f20e5582
6b4ba5f6ea434f519050644101403771
937bfeec86ae41f5a46bb206f20e5582--6b4ba5f6ea434f519050644101403771
cd96d42527ea48d0b4fed71db11005bd
RX(theta₁₈)
6b4ba5f6ea434f519050644101403771--cd96d42527ea48d0b4fed71db11005bd
87d7d7e506bd487ebe75e2d0e82dea06
RY(theta₂₄)
cd96d42527ea48d0b4fed71db11005bd--87d7d7e506bd487ebe75e2d0e82dea06
2ff2c06b2e45406dae116c0b17de96a7
RX(theta₃₀)
87d7d7e506bd487ebe75e2d0e82dea06--2ff2c06b2e45406dae116c0b17de96a7
91095d4d70c046cdafcb3ea1cfd750de
2ff2c06b2e45406dae116c0b17de96a7--91095d4d70c046cdafcb3ea1cfd750de
ce684c5432e3400ab6f4cabda6e9d145
91095d4d70c046cdafcb3ea1cfd750de--ce684c5432e3400ab6f4cabda6e9d145
34b4f371eaa84ede82554ad2561ee8d3
c73c6d110c1e4f5cb6222fd632143809
RX(theta₁)
9b9056c822024ed1b83673db33da66e9--c73c6d110c1e4f5cb6222fd632143809
2767c563947d46fc9e6821f6002bf768
2
0c412c426a4a4906b26256239815f7b4
RY(theta₇)
c73c6d110c1e4f5cb6222fd632143809--0c412c426a4a4906b26256239815f7b4
aeb5972cac94420689bf5a8afb91d30a
RX(theta₁₃)
0c412c426a4a4906b26256239815f7b4--aeb5972cac94420689bf5a8afb91d30a
8f7a52ce8ae349d5bf5883c91eb6099d
aeb5972cac94420689bf5a8afb91d30a--8f7a52ce8ae349d5bf5883c91eb6099d
a93e7389e4084b8f8834e301526a94b4
RX(theta₁₉)
8f7a52ce8ae349d5bf5883c91eb6099d--a93e7389e4084b8f8834e301526a94b4
7b1b66c7cc2b470ca351d6f3cb3076c9
RY(theta₂₅)
a93e7389e4084b8f8834e301526a94b4--7b1b66c7cc2b470ca351d6f3cb3076c9
0947cd7b0bec494fa09e653ea6ecec79
RX(theta₃₁)
7b1b66c7cc2b470ca351d6f3cb3076c9--0947cd7b0bec494fa09e653ea6ecec79
281d95626e884545b9976e8bc1cf8269
0947cd7b0bec494fa09e653ea6ecec79--281d95626e884545b9976e8bc1cf8269
281d95626e884545b9976e8bc1cf8269--34b4f371eaa84ede82554ad2561ee8d3
a7584014672c4e87b15acc59f37cb2b9
2991747114db45fca34cbb5f450f05ef
RX(theta₂)
2767c563947d46fc9e6821f6002bf768--2991747114db45fca34cbb5f450f05ef
df980f969ac943259a1788f4cb322675
3
0be0a6a101e1420189adc7c8bd4ba5ac
RY(theta₈)
2991747114db45fca34cbb5f450f05ef--0be0a6a101e1420189adc7c8bd4ba5ac
5131b4fadf9842f182d5835eb42ed62c
RX(theta₁₄)
0be0a6a101e1420189adc7c8bd4ba5ac--5131b4fadf9842f182d5835eb42ed62c
ba0d9571543a4c74b34186d6c6833c37
HamEvo
5131b4fadf9842f182d5835eb42ed62c--ba0d9571543a4c74b34186d6c6833c37
4bda672e7d0746519a1c90116ae5f232
RX(theta₂₀)
ba0d9571543a4c74b34186d6c6833c37--4bda672e7d0746519a1c90116ae5f232
60141d9aa0424caab80081bd62998672
RY(theta₂₆)
4bda672e7d0746519a1c90116ae5f232--60141d9aa0424caab80081bd62998672
7d6810a3f78a4810aaf922e32dcc8f56
RX(theta₃₂)
60141d9aa0424caab80081bd62998672--7d6810a3f78a4810aaf922e32dcc8f56
9ba96c86365b477992daab6bdd18e52d
HamEvo
7d6810a3f78a4810aaf922e32dcc8f56--9ba96c86365b477992daab6bdd18e52d
9ba96c86365b477992daab6bdd18e52d--a7584014672c4e87b15acc59f37cb2b9
5183c175c10b4218a5c1d49cf989a2ed
89c7f6879d25487bb6bf90b89ba69d14
RX(theta₃)
df980f969ac943259a1788f4cb322675--89c7f6879d25487bb6bf90b89ba69d14
6e754edcf8ec4eb6bd97aaac07331b7d
4
9e58e3b764364b27a65d87526b7f9324
RY(theta₉)
89c7f6879d25487bb6bf90b89ba69d14--9e58e3b764364b27a65d87526b7f9324
e62cef7e814f494884822b3cc30f4e5d
RX(theta₁₅)
9e58e3b764364b27a65d87526b7f9324--e62cef7e814f494884822b3cc30f4e5d
ed2ac65a1c924c43ad41365410908d00
t = theta_t₀
e62cef7e814f494884822b3cc30f4e5d--ed2ac65a1c924c43ad41365410908d00
1ed8d56b04ba45dd82cba84245e3d763
RX(theta₂₁)
ed2ac65a1c924c43ad41365410908d00--1ed8d56b04ba45dd82cba84245e3d763
1fb3fa80b59346a4bc677334857ecd95
RY(theta₂₇)
1ed8d56b04ba45dd82cba84245e3d763--1fb3fa80b59346a4bc677334857ecd95
958c7d9d0eac49e982f56ff917c68a61
RX(theta₃₃)
1fb3fa80b59346a4bc677334857ecd95--958c7d9d0eac49e982f56ff917c68a61
37582376d99140c092f5d7313d319435
t = theta_t₁
958c7d9d0eac49e982f56ff917c68a61--37582376d99140c092f5d7313d319435
37582376d99140c092f5d7313d319435--5183c175c10b4218a5c1d49cf989a2ed
684c511a0ee14865bc11e60c031dba78
d05de16c64cc4d439f6cadc669b27d8b
RX(theta₄)
6e754edcf8ec4eb6bd97aaac07331b7d--d05de16c64cc4d439f6cadc669b27d8b
8043bcc4975a49c6b3d24ce8f01445ec
5
1e25bdf9a40f4157b4ff105a04d0a60d
RY(theta₁₀)
d05de16c64cc4d439f6cadc669b27d8b--1e25bdf9a40f4157b4ff105a04d0a60d
5d31b98834814df38ee87d98cf7f468a
RX(theta₁₆)
1e25bdf9a40f4157b4ff105a04d0a60d--5d31b98834814df38ee87d98cf7f468a
1524152eed8648ad92e95a48ba212f61
5d31b98834814df38ee87d98cf7f468a--1524152eed8648ad92e95a48ba212f61
c0b98630395f4fbb9f5e5a2daacb8e07
RX(theta₂₂)
1524152eed8648ad92e95a48ba212f61--c0b98630395f4fbb9f5e5a2daacb8e07
458fc943ccb748dd9ef8bf07149f96b2
RY(theta₂₈)
c0b98630395f4fbb9f5e5a2daacb8e07--458fc943ccb748dd9ef8bf07149f96b2
9f5cc56f4804460da84bdac5e55f49b6
RX(theta₃₄)
458fc943ccb748dd9ef8bf07149f96b2--9f5cc56f4804460da84bdac5e55f49b6
fd2566e1415e44739824663040184a57
9f5cc56f4804460da84bdac5e55f49b6--fd2566e1415e44739824663040184a57
fd2566e1415e44739824663040184a57--684c511a0ee14865bc11e60c031dba78
a3cde74f0c13474c9dae26567570b31d
981a9059cc9c4462a02fff1e7380a49d
RX(theta₅)
8043bcc4975a49c6b3d24ce8f01445ec--981a9059cc9c4462a02fff1e7380a49d
ce082df566a2417c85ac68ba5e10dc96
RY(theta₁₁)
981a9059cc9c4462a02fff1e7380a49d--ce082df566a2417c85ac68ba5e10dc96
1f1ce1504b624c71b2f960751c275a0b
RX(theta₁₇)
ce082df566a2417c85ac68ba5e10dc96--1f1ce1504b624c71b2f960751c275a0b
9610c30b3ffc4e59825955610cacba22
1f1ce1504b624c71b2f960751c275a0b--9610c30b3ffc4e59825955610cacba22
24a62eccc97840c0b391a8d4f6d76383
RX(theta₂₃)
9610c30b3ffc4e59825955610cacba22--24a62eccc97840c0b391a8d4f6d76383
9aeffe95f84646b8937a45354e1acf88
RY(theta₂₉)
24a62eccc97840c0b391a8d4f6d76383--9aeffe95f84646b8937a45354e1acf88
a1413d781c104920b5fa9a15ae427c48
RX(theta₃₅)
9aeffe95f84646b8937a45354e1acf88--a1413d781c104920b5fa9a15ae427c48
0066dc6296f94b808f33267e31ecd005
a1413d781c104920b5fa9a15ae427c48--0066dc6296f94b808f33267e31ecd005
0066dc6296f94b808f33267e31ecd005--a3cde74f0c13474c9dae26567570b31d
Identity-initialized ansatz
It is widely known that parametrized quantum circuits are characterized by barren plateaus, where the gradient becomes exponentially small in the number of qubits. Here we include one of many techniques that have been proposed in recent years to mitigate this effect and facilitate QNN
s training: Grant et al. showed that initializing the weights of a QNN
so that each block of the circuit evaluates to identity reduces the effect of barren plateaus in the initial stage of training. In a similar fashion to hea
, such circuit can be created via calling the associated function, identity_initialized_ansatz
:
from qadence.constructors import identity_initialized_ansatz
from qadence.draw import display
n_qubits = 3
depth = 2
ansatz = identity_initialized_ansatz ( n_qubits , depth )
%3
cluster_a95b6aa3d7f547879f67960272f153c4
BPMA-1
cluster_9cce5f71ea654c04950f59931b117c5f
BPMA-0
dab9faecc8fc46ab94af9cfb2b8c1993
0
0ea5b02e239e4d0c8855218770d0d189
RX(iia_α₀₀)
dab9faecc8fc46ab94af9cfb2b8c1993--0ea5b02e239e4d0c8855218770d0d189
d7149dfe39174eb5804cebb60372f0cc
1
c468b5b0035041daaf9b4474c9ccbd5d
RY(iia_α₀₃)
0ea5b02e239e4d0c8855218770d0d189--c468b5b0035041daaf9b4474c9ccbd5d
88e1c3f9d74d4c71860d538e595a8a4a
c468b5b0035041daaf9b4474c9ccbd5d--88e1c3f9d74d4c71860d538e595a8a4a
10721ceff494420ebc3921e8caab0456
88e1c3f9d74d4c71860d538e595a8a4a--10721ceff494420ebc3921e8caab0456
ea741ec3c1db4631b0f330a55db855d2
RX(iia_γ₀₀)
10721ceff494420ebc3921e8caab0456--ea741ec3c1db4631b0f330a55db855d2
538f21be4528461d9b7a57c37e16950b
ea741ec3c1db4631b0f330a55db855d2--538f21be4528461d9b7a57c37e16950b
ee2b0f5fe32349d58d0a97ff39ae7055
538f21be4528461d9b7a57c37e16950b--ee2b0f5fe32349d58d0a97ff39ae7055
0c249b6fbe4b4dee9f03c5c8c5d2eb86
RY(iia_β₀₃)
ee2b0f5fe32349d58d0a97ff39ae7055--0c249b6fbe4b4dee9f03c5c8c5d2eb86
43c733f0a3674178904a5d2670e1c704
RX(iia_β₀₀)
0c249b6fbe4b4dee9f03c5c8c5d2eb86--43c733f0a3674178904a5d2670e1c704
60a266c22c6649adaf81a999735991e7
RX(iia_α₁₀)
43c733f0a3674178904a5d2670e1c704--60a266c22c6649adaf81a999735991e7
2db073bb368f483a969fb4a87e6c3dc1
RY(iia_α₁₃)
60a266c22c6649adaf81a999735991e7--2db073bb368f483a969fb4a87e6c3dc1
ea4f3c28808b43929d75711d54c3d7a5
2db073bb368f483a969fb4a87e6c3dc1--ea4f3c28808b43929d75711d54c3d7a5
114663254ce145829f517bc22969a654
ea4f3c28808b43929d75711d54c3d7a5--114663254ce145829f517bc22969a654
8a1c5f76a8b64e5ea15362c035dfbb33
RX(iia_γ₁₀)
114663254ce145829f517bc22969a654--8a1c5f76a8b64e5ea15362c035dfbb33
55767d1daeea4fe2b397fbfa2d9ed247
8a1c5f76a8b64e5ea15362c035dfbb33--55767d1daeea4fe2b397fbfa2d9ed247
d896dd8a3e924bbda2dd8abe1a8a5d25
55767d1daeea4fe2b397fbfa2d9ed247--d896dd8a3e924bbda2dd8abe1a8a5d25
61b94090a5bd4ecb8344987e2414855f
RY(iia_β₁₃)
d896dd8a3e924bbda2dd8abe1a8a5d25--61b94090a5bd4ecb8344987e2414855f
62aec967d02240d78035e60615df0cec
RX(iia_β₁₀)
61b94090a5bd4ecb8344987e2414855f--62aec967d02240d78035e60615df0cec
2c2aabd884e64f86ae07e9695ecd4e78
62aec967d02240d78035e60615df0cec--2c2aabd884e64f86ae07e9695ecd4e78
8b6ff98450a9417b9afb57176c262238
4e6408e79d75477eb02310c0b9f9f5df
RX(iia_α₀₁)
d7149dfe39174eb5804cebb60372f0cc--4e6408e79d75477eb02310c0b9f9f5df
a28106dbf4a84dd1ab3abe6bb7b900b6
2
77c5f114f2af463abb38b633e9c8249e
RY(iia_α₀₄)
4e6408e79d75477eb02310c0b9f9f5df--77c5f114f2af463abb38b633e9c8249e
22bc87c42f1f42a5904a6afe682abf4b
X
77c5f114f2af463abb38b633e9c8249e--22bc87c42f1f42a5904a6afe682abf4b
22bc87c42f1f42a5904a6afe682abf4b--88e1c3f9d74d4c71860d538e595a8a4a
c6549e19f387409a911445af46cb86a1
22bc87c42f1f42a5904a6afe682abf4b--c6549e19f387409a911445af46cb86a1
4d91293824534555b449056b4c658290
RX(iia_γ₀₁)
c6549e19f387409a911445af46cb86a1--4d91293824534555b449056b4c658290
6911758eb8f44ba6a7468e17817d4831
4d91293824534555b449056b4c658290--6911758eb8f44ba6a7468e17817d4831
647f4239ad1a4e58a2b758cfb8541687
X
6911758eb8f44ba6a7468e17817d4831--647f4239ad1a4e58a2b758cfb8541687
647f4239ad1a4e58a2b758cfb8541687--ee2b0f5fe32349d58d0a97ff39ae7055
ac0eafa090cc4f02a417d73458c082bd
RY(iia_β₀₄)
647f4239ad1a4e58a2b758cfb8541687--ac0eafa090cc4f02a417d73458c082bd
94e7f25730614616ad03f59efd0dba76
RX(iia_β₀₁)
ac0eafa090cc4f02a417d73458c082bd--94e7f25730614616ad03f59efd0dba76
22c61de7d5d649f8b71b243483cebb73
RX(iia_α₁₁)
94e7f25730614616ad03f59efd0dba76--22c61de7d5d649f8b71b243483cebb73
98769d75f29049a4a8bf3cf2e1e79759
RY(iia_α₁₄)
22c61de7d5d649f8b71b243483cebb73--98769d75f29049a4a8bf3cf2e1e79759
ae0023dd962847aca4fc9d1789c01bab
X
98769d75f29049a4a8bf3cf2e1e79759--ae0023dd962847aca4fc9d1789c01bab
ae0023dd962847aca4fc9d1789c01bab--ea4f3c28808b43929d75711d54c3d7a5
bbf46878fbfe4d30851b3ed9a67e4cc7
ae0023dd962847aca4fc9d1789c01bab--bbf46878fbfe4d30851b3ed9a67e4cc7
d497ee944cc6425fb7dffa4ed90cd13b
RX(iia_γ₁₁)
bbf46878fbfe4d30851b3ed9a67e4cc7--d497ee944cc6425fb7dffa4ed90cd13b
fef496acdf524c6c8c39f1a87253d497
d497ee944cc6425fb7dffa4ed90cd13b--fef496acdf524c6c8c39f1a87253d497
b4fbdb870a20443ebb940bf6e03686ad
X
fef496acdf524c6c8c39f1a87253d497--b4fbdb870a20443ebb940bf6e03686ad
b4fbdb870a20443ebb940bf6e03686ad--d896dd8a3e924bbda2dd8abe1a8a5d25
23f59df9500d408297d9beacc09b0b26
RY(iia_β₁₄)
b4fbdb870a20443ebb940bf6e03686ad--23f59df9500d408297d9beacc09b0b26
57e21fee2d8748879a7a1242852ec08b
RX(iia_β₁₁)
23f59df9500d408297d9beacc09b0b26--57e21fee2d8748879a7a1242852ec08b
57e21fee2d8748879a7a1242852ec08b--8b6ff98450a9417b9afb57176c262238
1887e5c1cfb3479e9c8413dbf5ee5632
47cba81107c94cb68f43d67d6c4dab47
RX(iia_α₀₂)
a28106dbf4a84dd1ab3abe6bb7b900b6--47cba81107c94cb68f43d67d6c4dab47
bfa66efcea284de68860d3fcf887af12
RY(iia_α₀₅)
47cba81107c94cb68f43d67d6c4dab47--bfa66efcea284de68860d3fcf887af12
0c7de81ee30e41269da161380d3d475a
bfa66efcea284de68860d3fcf887af12--0c7de81ee30e41269da161380d3d475a
493e7877f78448f997760593aea64b99
X
0c7de81ee30e41269da161380d3d475a--493e7877f78448f997760593aea64b99
493e7877f78448f997760593aea64b99--c6549e19f387409a911445af46cb86a1
3b72916580c7467699f32dba2ec0102f
RX(iia_γ₀₂)
493e7877f78448f997760593aea64b99--3b72916580c7467699f32dba2ec0102f
e32f514e925e4a83b68e92aaec6cc293
X
3b72916580c7467699f32dba2ec0102f--e32f514e925e4a83b68e92aaec6cc293
e32f514e925e4a83b68e92aaec6cc293--6911758eb8f44ba6a7468e17817d4831
22c39623806e41e6897f26c8fee8481a
e32f514e925e4a83b68e92aaec6cc293--22c39623806e41e6897f26c8fee8481a
2d5b094e352a410392df142092a54588
RY(iia_β₀₅)
22c39623806e41e6897f26c8fee8481a--2d5b094e352a410392df142092a54588
98b543e05c6b40d3b63e4b2cefe76f5f
RX(iia_β₀₂)
2d5b094e352a410392df142092a54588--98b543e05c6b40d3b63e4b2cefe76f5f
bc9daea9a88e4658a1035f3540d9e70f
RX(iia_α₁₂)
98b543e05c6b40d3b63e4b2cefe76f5f--bc9daea9a88e4658a1035f3540d9e70f
3192051ed4c548f6bc8f8eb0118d5b69
RY(iia_α₁₅)
bc9daea9a88e4658a1035f3540d9e70f--3192051ed4c548f6bc8f8eb0118d5b69
fe44deac8e4445fb8b33947831a8276f
3192051ed4c548f6bc8f8eb0118d5b69--fe44deac8e4445fb8b33947831a8276f
1286c447848d4268a75ddc1a55ab5d52
X
fe44deac8e4445fb8b33947831a8276f--1286c447848d4268a75ddc1a55ab5d52
1286c447848d4268a75ddc1a55ab5d52--bbf46878fbfe4d30851b3ed9a67e4cc7
6ddcfbbe31a44006b904837c65b5e660
RX(iia_γ₁₂)
1286c447848d4268a75ddc1a55ab5d52--6ddcfbbe31a44006b904837c65b5e660
860c660c5703469aa2b92445d500f0a6
X
6ddcfbbe31a44006b904837c65b5e660--860c660c5703469aa2b92445d500f0a6
860c660c5703469aa2b92445d500f0a6--fef496acdf524c6c8c39f1a87253d497
122818e52b0d4c57af9e07803eba292f
860c660c5703469aa2b92445d500f0a6--122818e52b0d4c57af9e07803eba292f
7fa575cb0cc24d4282463bff90317626
RY(iia_β₁₅)
122818e52b0d4c57af9e07803eba292f--7fa575cb0cc24d4282463bff90317626
0816fc81b30744f8aed207dd507a877e
RX(iia_β₁₂)
7fa575cb0cc24d4282463bff90317626--0816fc81b30744f8aed207dd507a877e
0816fc81b30744f8aed207dd507a877e--1887e5c1cfb3479e9c8413dbf5ee5632