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_06f49c1441b64c688263f869512aca29
Constant Chebyshev FM
cluster_204f749a976549c7b6840fad18312792
Constant Fourier FM
02f4947c7fbb47c5bdfba3514cc54e7c
0
df83de08d7bc4db8a77e2b928b03be6d
RX(phi)
02f4947c7fbb47c5bdfba3514cc54e7c--df83de08d7bc4db8a77e2b928b03be6d
b2378aaf37004705839abf73072ed882
1
99f53f1134174e18a4b68bc1308f3c3e
RX(acos(phi))
df83de08d7bc4db8a77e2b928b03be6d--99f53f1134174e18a4b68bc1308f3c3e
3fa61505fefa41baae346e8919801c4f
99f53f1134174e18a4b68bc1308f3c3e--3fa61505fefa41baae346e8919801c4f
fa868d4ffa994d5fa93b8a992c4f3b30
ecf85b59fed942769b8e351fa84c17b2
RX(phi)
b2378aaf37004705839abf73072ed882--ecf85b59fed942769b8e351fa84c17b2
63a3223a90d1475ca8b74e6818dbe34b
2
9134de866eb04562ae84e6f04c9241f4
RX(acos(phi))
ecf85b59fed942769b8e351fa84c17b2--9134de866eb04562ae84e6f04c9241f4
9134de866eb04562ae84e6f04c9241f4--fa868d4ffa994d5fa93b8a992c4f3b30
6ebd88f8860545cf894c904526c4e334
202f8a3463dd444d85dc6a7ee3d7f6d4
RX(phi)
63a3223a90d1475ca8b74e6818dbe34b--202f8a3463dd444d85dc6a7ee3d7f6d4
cab5ee74bd7243068fbd7debf5cd26ec
RX(acos(phi))
202f8a3463dd444d85dc6a7ee3d7f6d4--cab5ee74bd7243068fbd7debf5cd26ec
cab5ee74bd7243068fbd7debf5cd26ec--6ebd88f8860545cf894c904526c4e334
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_90be046c1e0a4663b412ba4a78cc0bf5
Constant <function custom_fn at 0x7f9696ba0e50> FM
cluster_7798dfee267b4bd1b9e58c210af66c99
Constant asin FM
9d48708216f1482d8410a87384503959
0
a545a1e4ffff44488075d753812b319b
RX(asin(phi))
9d48708216f1482d8410a87384503959--a545a1e4ffff44488075d753812b319b
8022199fb7114e5593e015abceb38d05
1
86f6135cf9b3475baea5002a78c7ef6d
RX(phi**2 + asin(phi))
a545a1e4ffff44488075d753812b319b--86f6135cf9b3475baea5002a78c7ef6d
31d1347985e94939bcbf934175104820
86f6135cf9b3475baea5002a78c7ef6d--31d1347985e94939bcbf934175104820
62e57ea7a65649b9a41caf207320de0f
9570598f50494888ad4b9545fba212c4
RX(asin(phi))
8022199fb7114e5593e015abceb38d05--9570598f50494888ad4b9545fba212c4
9a2a8f39e0c34f79bf86fb0f5148f45c
2
37e26089264e46389c665fede0fe5e6e
RX(phi**2 + asin(phi))
9570598f50494888ad4b9545fba212c4--37e26089264e46389c665fede0fe5e6e
37e26089264e46389c665fede0fe5e6e--62e57ea7a65649b9a41caf207320de0f
cfeafd317ea94af885b258477c91f04a
4edfe228712f4bbcb1cac3f4d6a6977a
RX(asin(phi))
9a2a8f39e0c34f79bf86fb0f5148f45c--4edfe228712f4bbcb1cac3f4d6a6977a
871a3f7000c540268daab582205656d4
RX(phi**2 + asin(phi))
4edfe228712f4bbcb1cac3f4d6a6977a--871a3f7000c540268daab582205656d4
871a3f7000c540268daab582205656d4--cfeafd317ea94af885b258477c91f04a
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_bf9e9f6486ca4bf8a4e4a3f3172e286c
Exponential Fourier FM
cluster_30abb6a71ebc42f0b1d25ea50d7de87a
Constant Fourier FM
cluster_633b8cfa0d9a4f478e90f76e02583783
Tower Fourier FM
17d0e30ac20c4de484f1ab3f099758f9
0
abbe5bf8ccf4459eb36cc930bf3bd281
RX(phi)
17d0e30ac20c4de484f1ab3f099758f9--abbe5bf8ccf4459eb36cc930bf3bd281
f5847c3e96a34e3a93201f30435aae5c
1
99168c7433ff4e629b12762c495b8358
RX(1.0*phi)
abbe5bf8ccf4459eb36cc930bf3bd281--99168c7433ff4e629b12762c495b8358
17534fa9a802469481b20952636bac7e
RX(1.0*phi)
99168c7433ff4e629b12762c495b8358--17534fa9a802469481b20952636bac7e
a8bf4189c4ce4997a1f540307b238bbe
17534fa9a802469481b20952636bac7e--a8bf4189c4ce4997a1f540307b238bbe
46375d2fda9d41569be512242ed33be5
2acb5e7be157495fa9df3b7b33d2d46d
RX(phi)
f5847c3e96a34e3a93201f30435aae5c--2acb5e7be157495fa9df3b7b33d2d46d
a83819dea73249c482980b818a81f6c9
2
d26fe344e6bf45e5932eca11af4104e7
RX(2.0*phi)
2acb5e7be157495fa9df3b7b33d2d46d--d26fe344e6bf45e5932eca11af4104e7
dd133e0d633e4717ac5010d15a0d5ea0
RX(2.0*phi)
d26fe344e6bf45e5932eca11af4104e7--dd133e0d633e4717ac5010d15a0d5ea0
dd133e0d633e4717ac5010d15a0d5ea0--46375d2fda9d41569be512242ed33be5
268cfc92236c41d68b2343345cde62aa
4dff4f166570488bbc1ccf94c00ef480
RX(phi)
a83819dea73249c482980b818a81f6c9--4dff4f166570488bbc1ccf94c00ef480
550237fba0d14043a0d5a30cec4de549
3
16a0e9e300c9467481707f1c8a2b6ba4
RX(3.0*phi)
4dff4f166570488bbc1ccf94c00ef480--16a0e9e300c9467481707f1c8a2b6ba4
896dd024c83b4f62aad799f987a7f8ff
RX(4.0*phi)
16a0e9e300c9467481707f1c8a2b6ba4--896dd024c83b4f62aad799f987a7f8ff
896dd024c83b4f62aad799f987a7f8ff--268cfc92236c41d68b2343345cde62aa
216c891a405a4805a2aeaf0c84a39314
52c4f336145d4229a0a8741b4998dc0d
RX(phi)
550237fba0d14043a0d5a30cec4de549--52c4f336145d4229a0a8741b4998dc0d
bcf9951bba704732a07e657558fc7b83
4
80d7ea44d85a4bb38cd577b89c980c1e
RX(4.0*phi)
52c4f336145d4229a0a8741b4998dc0d--80d7ea44d85a4bb38cd577b89c980c1e
ff1facf891f84226a0493c3191a325a1
RX(8.0*phi)
80d7ea44d85a4bb38cd577b89c980c1e--ff1facf891f84226a0493c3191a325a1
ff1facf891f84226a0493c3191a325a1--216c891a405a4805a2aeaf0c84a39314
f8097757092c40ef800ab00ead51d649
7191e178f5ae43d98d2872d919a277b9
RX(phi)
bcf9951bba704732a07e657558fc7b83--7191e178f5ae43d98d2872d919a277b9
9fe5fbba8cde4a2eba6d3a696b2225e4
RX(5.0*phi)
7191e178f5ae43d98d2872d919a277b9--9fe5fbba8cde4a2eba6d3a696b2225e4
bdc1258fcb5b4ed3b7f927a7c12f17a4
RX(16.0*phi)
9fe5fbba8cde4a2eba6d3a696b2225e4--bdc1258fcb5b4ed3b7f927a7c12f17a4
bdc1258fcb5b4ed3b7f927a7c12f17a4--f8097757092c40ef800ab00ead51d649
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
23109b8331474df59310970893c8d428
0
f294e86e45d94ed890d3c21d5a4932fb
RX(1.0*acos(phi))
23109b8331474df59310970893c8d428--f294e86e45d94ed890d3c21d5a4932fb
8a90aeda62a74ce6b836126a41ad4deb
1
fe1fc9a0b18e4c2a840a3b570d326504
f294e86e45d94ed890d3c21d5a4932fb--fe1fc9a0b18e4c2a840a3b570d326504
556df0eaab7b4cf8b1c15839d1ad6d98
bf94f7444ecb424390d00704a87a1a07
RX(1.414*acos(phi))
8a90aeda62a74ce6b836126a41ad4deb--bf94f7444ecb424390d00704a87a1a07
607cb037c1994fe3a065a66f7433ea54
2
bf94f7444ecb424390d00704a87a1a07--556df0eaab7b4cf8b1c15839d1ad6d98
a549c2877bea49b2b39eb2d4ccabd31b
2edeefe1490443efb15be8fe7f339947
RX(1.732*acos(phi))
607cb037c1994fe3a065a66f7433ea54--2edeefe1490443efb15be8fe7f339947
f907c860bf2c43a88a4a066e5e15fd36
3
2edeefe1490443efb15be8fe7f339947--a549c2877bea49b2b39eb2d4ccabd31b
cbe2e88a07ab4b85974398a8bed5a713
fb71056ef8764decbe98238a51e09681
RX(2.0*acos(phi))
f907c860bf2c43a88a4a066e5e15fd36--fb71056ef8764decbe98238a51e09681
dd535dbfa2444e16b4708afa21ae760e
4
fb71056ef8764decbe98238a51e09681--cbe2e88a07ab4b85974398a8bed5a713
18b955f10fa143a0bc695fb53e8eefb2
242617e53cd24a70a324828942759df8
RX(2.236*acos(phi))
dd535dbfa2444e16b4708afa21ae760e--242617e53cd24a70a324828942759df8
242617e53cd24a70a324828942759df8--18b955f10fa143a0bc695fb53e8eefb2
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
70d0bf7a6a3c4714b5cbf96bf61a140b
0
afe1171b1a114f49bb7bb3f770bbf39e
RX(1.0*phi*w₀)
70d0bf7a6a3c4714b5cbf96bf61a140b--afe1171b1a114f49bb7bb3f770bbf39e
e97a1eaab96e42ce8e6a90c37dad45e9
1
d575896f1903499193d3ce2a613b1048
afe1171b1a114f49bb7bb3f770bbf39e--d575896f1903499193d3ce2a613b1048
383f230f166d4a938887bb9081356569
3093eb177d2b4beebf2216982b8defc5
RX(2.0*phi*w₁)
e97a1eaab96e42ce8e6a90c37dad45e9--3093eb177d2b4beebf2216982b8defc5
a776a0dd21804302a3fbf4e4b9ffd99f
2
3093eb177d2b4beebf2216982b8defc5--383f230f166d4a938887bb9081356569
6168dffac4a54633a50344c16afec8af
eb54b57dd12248bdb666758d9ba6c8c2
RX(4.0*phi*w₂)
a776a0dd21804302a3fbf4e4b9ffd99f--eb54b57dd12248bdb666758d9ba6c8c2
d952c8238f98403a8906216f9a27e274
3
eb54b57dd12248bdb666758d9ba6c8c2--6168dffac4a54633a50344c16afec8af
8ca114f06c244f94ac28e7609b915882
6ec9a606ac88499abfc55da45622766d
RX(8.0*phi*w₃)
d952c8238f98403a8906216f9a27e274--6ec9a606ac88499abfc55da45622766d
102ebd5fd5ed41b29433a962fc863dc9
4
6ec9a606ac88499abfc55da45622766d--8ca114f06c244f94ac28e7609b915882
d291250c68d44fd0b55722d731bf3040
3049459d33a847598a9f4e8a0a04a8b7
RX(16.0*phi*w₄)
102ebd5fd5ed41b29433a962fc863dc9--3049459d33a847598a9f4e8a0a04a8b7
3049459d33a847598a9f4e8a0a04a8b7--d291250c68d44fd0b55722d731bf3040
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
bd0fecec6c4f4a3abd4f927525741d13
0
fb10e0d2640040d5b8d695a4d9f067d0
RY(80.0*acos(w₄*(0.667*x + 1.667)))
bd0fecec6c4f4a3abd4f927525741d13--fb10e0d2640040d5b8d695a4d9f067d0
921898a305b74801b4e979bb7a66fd36
1
baf0128e56944a318e24fd15952ec35b
fb10e0d2640040d5b8d695a4d9f067d0--baf0128e56944a318e24fd15952ec35b
653f25993ffc4c94a56b35c32e1a1c99
d5763baafb584317bbf1bf5d9e4814f5
RY(40.0*acos(w₃*(0.667*x + 1.667)))
921898a305b74801b4e979bb7a66fd36--d5763baafb584317bbf1bf5d9e4814f5
215a28912f1f4c24ab17417e6decc38d
2
d5763baafb584317bbf1bf5d9e4814f5--653f25993ffc4c94a56b35c32e1a1c99
5c79c24fcb3040958e7ef86982d31b9c
2aa9440b435b4a78a8a2007a80340f3b
RY(20.0*acos(w₂*(0.667*x + 1.667)))
215a28912f1f4c24ab17417e6decc38d--2aa9440b435b4a78a8a2007a80340f3b
853762dfaec64bd2a13902e1e795453b
3
2aa9440b435b4a78a8a2007a80340f3b--5c79c24fcb3040958e7ef86982d31b9c
98278077c3e048df8b2952505bcac069
0aa016f18c8a4ec6984940c54997eddd
RY(10.0*acos(w₁*(0.667*x + 1.667)))
853762dfaec64bd2a13902e1e795453b--0aa016f18c8a4ec6984940c54997eddd
364eda2c5e174c3dbe79ab7070e295f8
4
0aa016f18c8a4ec6984940c54997eddd--98278077c3e048df8b2952505bcac069
99e7524a56104dc484a56570aa1d0b95
c27d4449fe204695afd3c3a380bbfc69
RY(5.0*acos(w₀*(0.667*x + 1.667)))
364eda2c5e174c3dbe79ab7070e295f8--c27d4449fe204695afd3c3a380bbfc69
c27d4449fe204695afd3c3a380bbfc69--99e7524a56104dc484a56570aa1d0b95
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
a66e4e3661d5409a96ab15c38c70e745
0
9e2fcdbfdf4044dc863b1b3544306446
RX(theta₀)
a66e4e3661d5409a96ab15c38c70e745--9e2fcdbfdf4044dc863b1b3544306446
05a89ebbb5084043bcc04aa8ca66cf93
1
dece8af6f04142ab94acc43bd7909223
RY(theta₃)
9e2fcdbfdf4044dc863b1b3544306446--dece8af6f04142ab94acc43bd7909223
17bac57ec4bd4b35a79ac5deae35f754
RX(theta₆)
dece8af6f04142ab94acc43bd7909223--17bac57ec4bd4b35a79ac5deae35f754
6e5dff789826473eb42565f64d210b2b
17bac57ec4bd4b35a79ac5deae35f754--6e5dff789826473eb42565f64d210b2b
baffc56b4bec4c23b1d9eadcab130643
6e5dff789826473eb42565f64d210b2b--baffc56b4bec4c23b1d9eadcab130643
2ef287e3556d4d7ba8780c17e182e240
RX(theta₉)
baffc56b4bec4c23b1d9eadcab130643--2ef287e3556d4d7ba8780c17e182e240
2ae4d89b5fb64622ae46567ad31d3dda
RY(theta₁₂)
2ef287e3556d4d7ba8780c17e182e240--2ae4d89b5fb64622ae46567ad31d3dda
b0e81ad5f6b04d298de092751b5f51d4
RX(theta₁₅)
2ae4d89b5fb64622ae46567ad31d3dda--b0e81ad5f6b04d298de092751b5f51d4
36ba4aa79532463c9f9ae48ef61be396
b0e81ad5f6b04d298de092751b5f51d4--36ba4aa79532463c9f9ae48ef61be396
e12ead1c961e409bb6244226697f8fca
36ba4aa79532463c9f9ae48ef61be396--e12ead1c961e409bb6244226697f8fca
4c16e27b9232461fb7e8c6ab4ecf1d4c
e12ead1c961e409bb6244226697f8fca--4c16e27b9232461fb7e8c6ab4ecf1d4c
0640add7d0d54675ad4a38e384ff3a6a
a46b7b067ee84cb084be4ec7369d46d1
RX(theta₁)
05a89ebbb5084043bcc04aa8ca66cf93--a46b7b067ee84cb084be4ec7369d46d1
8f74c639eeef4033a9f0653ce733d414
2
69867c18aea24b6caeb79e57ec50180b
RY(theta₄)
a46b7b067ee84cb084be4ec7369d46d1--69867c18aea24b6caeb79e57ec50180b
62c300ef3bad44a88f62fb43b814efdb
RX(theta₇)
69867c18aea24b6caeb79e57ec50180b--62c300ef3bad44a88f62fb43b814efdb
4389168dd58448598dccc8f5cbc5c51c
X
62c300ef3bad44a88f62fb43b814efdb--4389168dd58448598dccc8f5cbc5c51c
4389168dd58448598dccc8f5cbc5c51c--6e5dff789826473eb42565f64d210b2b
c89ed2cfabc240edb8a85a34f4460b3d
4389168dd58448598dccc8f5cbc5c51c--c89ed2cfabc240edb8a85a34f4460b3d
ea7ecc0a1b05445694b04f7f9b21c900
RX(theta₁₀)
c89ed2cfabc240edb8a85a34f4460b3d--ea7ecc0a1b05445694b04f7f9b21c900
1faef6de640f4c0f90d56b1c2f88eeeb
RY(theta₁₃)
ea7ecc0a1b05445694b04f7f9b21c900--1faef6de640f4c0f90d56b1c2f88eeeb
95f299b40511499a819a13faddafb2c6
RX(theta₁₆)
1faef6de640f4c0f90d56b1c2f88eeeb--95f299b40511499a819a13faddafb2c6
5e913485b0e44fddb7323ec2a5c40f0d
X
95f299b40511499a819a13faddafb2c6--5e913485b0e44fddb7323ec2a5c40f0d
5e913485b0e44fddb7323ec2a5c40f0d--36ba4aa79532463c9f9ae48ef61be396
6663210bd32f47468a7dbd30588764f4
5e913485b0e44fddb7323ec2a5c40f0d--6663210bd32f47468a7dbd30588764f4
6663210bd32f47468a7dbd30588764f4--0640add7d0d54675ad4a38e384ff3a6a
f63e5988f0974cd1a0b4e3b74624e902
affbddb5800341d9868c0f6dc4879b7a
RX(theta₂)
8f74c639eeef4033a9f0653ce733d414--affbddb5800341d9868c0f6dc4879b7a
14826e5e10494a2c8ea51ddbda706929
RY(theta₅)
affbddb5800341d9868c0f6dc4879b7a--14826e5e10494a2c8ea51ddbda706929
b120903de24944739e47fb68954762a0
RX(theta₈)
14826e5e10494a2c8ea51ddbda706929--b120903de24944739e47fb68954762a0
c2a1b001294c4056b66e6c93d1d1e95a
b120903de24944739e47fb68954762a0--c2a1b001294c4056b66e6c93d1d1e95a
d28c002b7e9c4cee8f5cf51abb900217
X
c2a1b001294c4056b66e6c93d1d1e95a--d28c002b7e9c4cee8f5cf51abb900217
d28c002b7e9c4cee8f5cf51abb900217--c89ed2cfabc240edb8a85a34f4460b3d
c18f1aaee3d14662ae7615ca59addfff
RX(theta₁₁)
d28c002b7e9c4cee8f5cf51abb900217--c18f1aaee3d14662ae7615ca59addfff
4f19183ffe18454481040c34dc910fb3
RY(theta₁₄)
c18f1aaee3d14662ae7615ca59addfff--4f19183ffe18454481040c34dc910fb3
156b917643734e9bbd3aa144c2266aad
RX(theta₁₇)
4f19183ffe18454481040c34dc910fb3--156b917643734e9bbd3aa144c2266aad
bd08748f7b8b4910aad094c286c73d77
156b917643734e9bbd3aa144c2266aad--bd08748f7b8b4910aad094c286c73d77
484c9dbfcbf044da9e6985aefe189793
X
bd08748f7b8b4910aad094c286c73d77--484c9dbfcbf044da9e6985aefe189793
484c9dbfcbf044da9e6985aefe189793--6663210bd32f47468a7dbd30588764f4
484c9dbfcbf044da9e6985aefe189793--f63e5988f0974cd1a0b4e3b74624e902
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
75a8945389284bf8bb26df171c519d14
0
fbacd10d56674475865c7fc9b074e9ad
RX(phi₀)
75a8945389284bf8bb26df171c519d14--fbacd10d56674475865c7fc9b074e9ad
48f5a0314e3245b0b645443ba34742f6
1
69116d886a164cb7b30cc3f31d3c955e
RY(phi₃)
fbacd10d56674475865c7fc9b074e9ad--69116d886a164cb7b30cc3f31d3c955e
4fc50bb7db04490f9b1d794f8f1bc913
RX(phi₆)
69116d886a164cb7b30cc3f31d3c955e--4fc50bb7db04490f9b1d794f8f1bc913
5ce5c7f02566400b8a51f107895e53e4
4fc50bb7db04490f9b1d794f8f1bc913--5ce5c7f02566400b8a51f107895e53e4
9a2693eda8954bde98417b58335df530
5ce5c7f02566400b8a51f107895e53e4--9a2693eda8954bde98417b58335df530
9010343814644a57ab89524f5e5658db
RX(phi₉)
9a2693eda8954bde98417b58335df530--9010343814644a57ab89524f5e5658db
36caeb649c80481da6696fb7e882c41c
RY(phi₁₂)
9010343814644a57ab89524f5e5658db--36caeb649c80481da6696fb7e882c41c
b9f6ebd63ba1447da02e02739405c400
RX(phi₁₅)
36caeb649c80481da6696fb7e882c41c--b9f6ebd63ba1447da02e02739405c400
c03406f78b9744cdb558a542028d965e
b9f6ebd63ba1447da02e02739405c400--c03406f78b9744cdb558a542028d965e
b5f8f9b0d80741dfbcbe9b76f13d4f2e
c03406f78b9744cdb558a542028d965e--b5f8f9b0d80741dfbcbe9b76f13d4f2e
43620e6e864c49d89017f22d506ff544
b5f8f9b0d80741dfbcbe9b76f13d4f2e--43620e6e864c49d89017f22d506ff544
e0792c3c3eb24b3d942cf331173a67ea
b33497c378f84b1ba114f5eb852cbf51
RX(phi₁)
48f5a0314e3245b0b645443ba34742f6--b33497c378f84b1ba114f5eb852cbf51
70eca1c9fe924c3c8a82a0c4c01e76bc
2
ffdd39b69c634dfdaf876df44bd011b7
RY(phi₄)
b33497c378f84b1ba114f5eb852cbf51--ffdd39b69c634dfdaf876df44bd011b7
a9283a65b0824943af743eddad6184c3
RX(phi₇)
ffdd39b69c634dfdaf876df44bd011b7--a9283a65b0824943af743eddad6184c3
5b93f004e2b047e99effdd45251f173d
PHASE(phi_ent₀)
a9283a65b0824943af743eddad6184c3--5b93f004e2b047e99effdd45251f173d
5b93f004e2b047e99effdd45251f173d--5ce5c7f02566400b8a51f107895e53e4
1ef7a9e7e426456f94a88b7a4bfd4b92
5b93f004e2b047e99effdd45251f173d--1ef7a9e7e426456f94a88b7a4bfd4b92
b4d33de00b3e46c4a886e42655330c73
RX(phi₁₀)
1ef7a9e7e426456f94a88b7a4bfd4b92--b4d33de00b3e46c4a886e42655330c73
d27a192b507f496eaca31ebebb22c7f5
RY(phi₁₃)
b4d33de00b3e46c4a886e42655330c73--d27a192b507f496eaca31ebebb22c7f5
ac7eb62c27c6467eb487100b94e9aff5
RX(phi₁₆)
d27a192b507f496eaca31ebebb22c7f5--ac7eb62c27c6467eb487100b94e9aff5
df6b20cee0c34f9c9efe14201477c768
PHASE(phi_ent₂)
ac7eb62c27c6467eb487100b94e9aff5--df6b20cee0c34f9c9efe14201477c768
df6b20cee0c34f9c9efe14201477c768--c03406f78b9744cdb558a542028d965e
0ec3de93a6a347d3954850dc80d0ab3f
df6b20cee0c34f9c9efe14201477c768--0ec3de93a6a347d3954850dc80d0ab3f
0ec3de93a6a347d3954850dc80d0ab3f--e0792c3c3eb24b3d942cf331173a67ea
691155d5a9f940e79989eb540f434b2f
574a785162ec4f5ea3815602f07ef652
RX(phi₂)
70eca1c9fe924c3c8a82a0c4c01e76bc--574a785162ec4f5ea3815602f07ef652
4be0b6ad08134bb8a3753e5f6cce4681
RY(phi₅)
574a785162ec4f5ea3815602f07ef652--4be0b6ad08134bb8a3753e5f6cce4681
bd511d107f554e648c1e7cec25572537
RX(phi₈)
4be0b6ad08134bb8a3753e5f6cce4681--bd511d107f554e648c1e7cec25572537
4735527b90134bb3b8a8f1042f62aac7
bd511d107f554e648c1e7cec25572537--4735527b90134bb3b8a8f1042f62aac7
1232762f023344e592e2e44608fb8f49
PHASE(phi_ent₁)
4735527b90134bb3b8a8f1042f62aac7--1232762f023344e592e2e44608fb8f49
1232762f023344e592e2e44608fb8f49--1ef7a9e7e426456f94a88b7a4bfd4b92
6aa917f7ba884eeea412b63c40faf669
RX(phi₁₁)
1232762f023344e592e2e44608fb8f49--6aa917f7ba884eeea412b63c40faf669
19ff753a6c5e4e0da09085a6176366c6
RY(phi₁₄)
6aa917f7ba884eeea412b63c40faf669--19ff753a6c5e4e0da09085a6176366c6
b72d07c249b44ba1a1386f63a364dd06
RX(phi₁₇)
19ff753a6c5e4e0da09085a6176366c6--b72d07c249b44ba1a1386f63a364dd06
09be187ef91a48b998e219125e94b43c
b72d07c249b44ba1a1386f63a364dd06--09be187ef91a48b998e219125e94b43c
d65ee66c395740d7a7b6c9629e3528f2
PHASE(phi_ent₃)
09be187ef91a48b998e219125e94b43c--d65ee66c395740d7a7b6c9629e3528f2
d65ee66c395740d7a7b6c9629e3528f2--0ec3de93a6a347d3954850dc80d0ab3f
d65ee66c395740d7a7b6c9629e3528f2--691155d5a9f940e79989eb540f434b2f
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_452bcfbbbf2b4ceaaa3ae15fb62a0b13
cluster_9172add0f156465490da54d5f45da626
90b170abcd384c7d8336c57e47370e65
0
8d3ce21b922b4766a7097bb775ed15cf
RX(theta₀)
90b170abcd384c7d8336c57e47370e65--8d3ce21b922b4766a7097bb775ed15cf
aa3584cd733e453495f039529ceca1e8
1
4d361d4623764cdbb816c672cdec4cec
RY(theta₃)
8d3ce21b922b4766a7097bb775ed15cf--4d361d4623764cdbb816c672cdec4cec
458e4df9a62e455687d09a3bcba8605c
RX(theta₆)
4d361d4623764cdbb816c672cdec4cec--458e4df9a62e455687d09a3bcba8605c
c7993e58aa7c4e6785a94cba5e18bbf3
HamEvo
458e4df9a62e455687d09a3bcba8605c--c7993e58aa7c4e6785a94cba5e18bbf3
7560a36782b941dcacd3c4837dd033c2
RX(theta₉)
c7993e58aa7c4e6785a94cba5e18bbf3--7560a36782b941dcacd3c4837dd033c2
b19bee20f73140fb8cad56cc8b9dd23b
RY(theta₁₂)
7560a36782b941dcacd3c4837dd033c2--b19bee20f73140fb8cad56cc8b9dd23b
4fc21323c23d4fefa5be4eaaee2bf93a
RX(theta₁₅)
b19bee20f73140fb8cad56cc8b9dd23b--4fc21323c23d4fefa5be4eaaee2bf93a
93aff62949c54b43a3b55b2019a4d98e
HamEvo
4fc21323c23d4fefa5be4eaaee2bf93a--93aff62949c54b43a3b55b2019a4d98e
a1a6130abc5a421381ddc0a045c7a44b
93aff62949c54b43a3b55b2019a4d98e--a1a6130abc5a421381ddc0a045c7a44b
a04c98965a4e4f1e961367dae340e387
a887092c2abc4da5bef58a3bc09ec500
RX(theta₁)
aa3584cd733e453495f039529ceca1e8--a887092c2abc4da5bef58a3bc09ec500
6d4c08b2d70a4b77b270368211c49df2
2
c18ff08a6a1244ab98f264ddaaf4ba6b
RY(theta₄)
a887092c2abc4da5bef58a3bc09ec500--c18ff08a6a1244ab98f264ddaaf4ba6b
db69211295ef42249b4987367101d884
RX(theta₇)
c18ff08a6a1244ab98f264ddaaf4ba6b--db69211295ef42249b4987367101d884
d4aca3546e564dc68f1a988f9bbc8724
t = theta_t₀
db69211295ef42249b4987367101d884--d4aca3546e564dc68f1a988f9bbc8724
5295566712e2401387610c458b4e4985
RX(theta₁₀)
d4aca3546e564dc68f1a988f9bbc8724--5295566712e2401387610c458b4e4985
ecf81b7b37de4e6087df9d82d2464500
RY(theta₁₃)
5295566712e2401387610c458b4e4985--ecf81b7b37de4e6087df9d82d2464500
e3cbc4354e4e439593e47f2145d0795c
RX(theta₁₆)
ecf81b7b37de4e6087df9d82d2464500--e3cbc4354e4e439593e47f2145d0795c
399af9a327404ce8a21d8387023a13bc
t = theta_t₁
e3cbc4354e4e439593e47f2145d0795c--399af9a327404ce8a21d8387023a13bc
399af9a327404ce8a21d8387023a13bc--a04c98965a4e4f1e961367dae340e387
315f30a28ba445ddb01225c197edf65a
ed51714130344c7a841264cb7ced04a6
RX(theta₂)
6d4c08b2d70a4b77b270368211c49df2--ed51714130344c7a841264cb7ced04a6
70eab57ade15470088dad68ef669eee6
RY(theta₅)
ed51714130344c7a841264cb7ced04a6--70eab57ade15470088dad68ef669eee6
5d4809489b0f41d6bec38b4bdd8c9208
RX(theta₈)
70eab57ade15470088dad68ef669eee6--5d4809489b0f41d6bec38b4bdd8c9208
0a420744b99247efbb8cab8dfa0db3cb
5d4809489b0f41d6bec38b4bdd8c9208--0a420744b99247efbb8cab8dfa0db3cb
a1bfbed397ae4c70b1397a695aa2c53c
RX(theta₁₁)
0a420744b99247efbb8cab8dfa0db3cb--a1bfbed397ae4c70b1397a695aa2c53c
c51470a5a1b2438a939f27e3032df2f7
RY(theta₁₄)
a1bfbed397ae4c70b1397a695aa2c53c--c51470a5a1b2438a939f27e3032df2f7
9d6a6fbd680c44e69a2f37f9abde0628
RX(theta₁₇)
c51470a5a1b2438a939f27e3032df2f7--9d6a6fbd680c44e69a2f37f9abde0628
9ba3d78073e14f499779ef6ebd9ebd0e
9d6a6fbd680c44e69a2f37f9abde0628--9ba3d78073e14f499779ef6ebd9ebd0e
9ba3d78073e14f499779ef6ebd9ebd0e--315f30a28ba445ddb01225c197edf65a
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_5e663a3c77154ca7aae2195846efbda0
cluster_e0774a93a34548afbb1e3239bf0adc68
21ec3ba7ee4146e181bb1d01c7f90b92
0
48251b762be8473789258402e70f1b6f
RX(theta₀)
21ec3ba7ee4146e181bb1d01c7f90b92--48251b762be8473789258402e70f1b6f
860c533069a0420bbce63026e4568ee4
1
18a059a905534611bd83523f6eca84aa
RY(theta₆)
48251b762be8473789258402e70f1b6f--18a059a905534611bd83523f6eca84aa
7def61190bc54258af6e7d1870f7e968
RX(theta₁₂)
18a059a905534611bd83523f6eca84aa--7def61190bc54258af6e7d1870f7e968
c65edb99579242b38b29c8632e088284
7def61190bc54258af6e7d1870f7e968--c65edb99579242b38b29c8632e088284
53d7294a8ec246138f9dd47e5fd194dd
RX(theta₁₈)
c65edb99579242b38b29c8632e088284--53d7294a8ec246138f9dd47e5fd194dd
dc70c5903433477f8d3a67910ee2a835
RY(theta₂₄)
53d7294a8ec246138f9dd47e5fd194dd--dc70c5903433477f8d3a67910ee2a835
8bbe6e4130224ddb8644985aab1cc97c
RX(theta₃₀)
dc70c5903433477f8d3a67910ee2a835--8bbe6e4130224ddb8644985aab1cc97c
2176aa539ac44fa790c388338195da9c
8bbe6e4130224ddb8644985aab1cc97c--2176aa539ac44fa790c388338195da9c
649945f5e7364bc8aedfe258fe5d8f17
2176aa539ac44fa790c388338195da9c--649945f5e7364bc8aedfe258fe5d8f17
e6d2eab385d54870a6b206edd282ea37
3b5d3e45212f470f8a5ad12489456aa5
RX(theta₁)
860c533069a0420bbce63026e4568ee4--3b5d3e45212f470f8a5ad12489456aa5
63c3b76915a34a368962ff6781362c6a
2
c10e3539366d4ec7aa6f2582787ee973
RY(theta₇)
3b5d3e45212f470f8a5ad12489456aa5--c10e3539366d4ec7aa6f2582787ee973
0e6e2e5435a64406b31c770b6793ae69
RX(theta₁₃)
c10e3539366d4ec7aa6f2582787ee973--0e6e2e5435a64406b31c770b6793ae69
5f31e37fc06d4356aecccd4399452342
0e6e2e5435a64406b31c770b6793ae69--5f31e37fc06d4356aecccd4399452342
6bf5b97dae394623a5c4d8e0e29fef0a
RX(theta₁₉)
5f31e37fc06d4356aecccd4399452342--6bf5b97dae394623a5c4d8e0e29fef0a
9ecdfb8a2d1b4fc18c0eb82a8e5bf78d
RY(theta₂₅)
6bf5b97dae394623a5c4d8e0e29fef0a--9ecdfb8a2d1b4fc18c0eb82a8e5bf78d
076a3502e09a460c8ddca626c8da4f92
RX(theta₃₁)
9ecdfb8a2d1b4fc18c0eb82a8e5bf78d--076a3502e09a460c8ddca626c8da4f92
c03ccdcc3def4fa985d4a8cc02990891
076a3502e09a460c8ddca626c8da4f92--c03ccdcc3def4fa985d4a8cc02990891
c03ccdcc3def4fa985d4a8cc02990891--e6d2eab385d54870a6b206edd282ea37
3fe85dbdb60d4b95abeaf41d2210e599
71d557e61ded42a1a06ddbb27d528733
RX(theta₂)
63c3b76915a34a368962ff6781362c6a--71d557e61ded42a1a06ddbb27d528733
b4ea90e00a5747dd9193843f2466fbbc
3
c2cf7cb7c5d34d28b0f0441edc0db6b8
RY(theta₈)
71d557e61ded42a1a06ddbb27d528733--c2cf7cb7c5d34d28b0f0441edc0db6b8
11efebd984ae4ab0a965d65e1a1b745d
RX(theta₁₄)
c2cf7cb7c5d34d28b0f0441edc0db6b8--11efebd984ae4ab0a965d65e1a1b745d
a5d2628acb4e48bf9aa262f17f80d673
HamEvo
11efebd984ae4ab0a965d65e1a1b745d--a5d2628acb4e48bf9aa262f17f80d673
b8526161a0014d4498b335c2445cebcd
RX(theta₂₀)
a5d2628acb4e48bf9aa262f17f80d673--b8526161a0014d4498b335c2445cebcd
db5b0d0a7c9b43c5874f4acd94e033ec
RY(theta₂₆)
b8526161a0014d4498b335c2445cebcd--db5b0d0a7c9b43c5874f4acd94e033ec
9053eee09a994e01bca0124bcaa0d581
RX(theta₃₂)
db5b0d0a7c9b43c5874f4acd94e033ec--9053eee09a994e01bca0124bcaa0d581
128ab76900b3462baa75a101ef98ae9e
HamEvo
9053eee09a994e01bca0124bcaa0d581--128ab76900b3462baa75a101ef98ae9e
128ab76900b3462baa75a101ef98ae9e--3fe85dbdb60d4b95abeaf41d2210e599
34669fbd04a84132aab0e8c559b55ef9
e777c0ee2dd64e67809002a408109ee7
RX(theta₃)
b4ea90e00a5747dd9193843f2466fbbc--e777c0ee2dd64e67809002a408109ee7
cce928910508409eb927d736e03c056b
4
4bf4608152dc48479e242287965b0139
RY(theta₉)
e777c0ee2dd64e67809002a408109ee7--4bf4608152dc48479e242287965b0139
f787c2c4235d4f2290ee867180397f9e
RX(theta₁₅)
4bf4608152dc48479e242287965b0139--f787c2c4235d4f2290ee867180397f9e
4dc6a1cfbc514efd854c158b565857da
t = theta_t₀
f787c2c4235d4f2290ee867180397f9e--4dc6a1cfbc514efd854c158b565857da
c77234a7736a43ca876b51eb59deb89a
RX(theta₂₁)
4dc6a1cfbc514efd854c158b565857da--c77234a7736a43ca876b51eb59deb89a
c6a37bab5cce481094b6da466b72e6ed
RY(theta₂₇)
c77234a7736a43ca876b51eb59deb89a--c6a37bab5cce481094b6da466b72e6ed
83f94333fb874bf68f36d8b5f8eb250f
RX(theta₃₃)
c6a37bab5cce481094b6da466b72e6ed--83f94333fb874bf68f36d8b5f8eb250f
ed35de19d0d54ac6a66c07c312ceb292
t = theta_t₁
83f94333fb874bf68f36d8b5f8eb250f--ed35de19d0d54ac6a66c07c312ceb292
ed35de19d0d54ac6a66c07c312ceb292--34669fbd04a84132aab0e8c559b55ef9
8fa3641397fd46b381244f6f726985ed
85fb1c6c283d4440ae9de9de0f6bc3c6
RX(theta₄)
cce928910508409eb927d736e03c056b--85fb1c6c283d4440ae9de9de0f6bc3c6
a22c996c5f994a528be79a7160cb38fb
5
2dc2d1956c1f4383b32cf4b6f4f6c50d
RY(theta₁₀)
85fb1c6c283d4440ae9de9de0f6bc3c6--2dc2d1956c1f4383b32cf4b6f4f6c50d
e010b0702ff7460ba744904a3375035f
RX(theta₁₆)
2dc2d1956c1f4383b32cf4b6f4f6c50d--e010b0702ff7460ba744904a3375035f
229a17215c3149dea649bb7fe82c8402
e010b0702ff7460ba744904a3375035f--229a17215c3149dea649bb7fe82c8402
1fddc51299924e4ba6b8359584958d00
RX(theta₂₂)
229a17215c3149dea649bb7fe82c8402--1fddc51299924e4ba6b8359584958d00
db26945e458f4719ae3ab0cb7c07cd9e
RY(theta₂₈)
1fddc51299924e4ba6b8359584958d00--db26945e458f4719ae3ab0cb7c07cd9e
7370262bfc2d44f9a4ad6e47f47f83e4
RX(theta₃₄)
db26945e458f4719ae3ab0cb7c07cd9e--7370262bfc2d44f9a4ad6e47f47f83e4
9d6aca3261cb4e42a17dac50289b8ba8
7370262bfc2d44f9a4ad6e47f47f83e4--9d6aca3261cb4e42a17dac50289b8ba8
9d6aca3261cb4e42a17dac50289b8ba8--8fa3641397fd46b381244f6f726985ed
b7834c06feae4f79aeb95e76f9d639d8
fcb4dfaf405240a0a7bcb215abd22168
RX(theta₅)
a22c996c5f994a528be79a7160cb38fb--fcb4dfaf405240a0a7bcb215abd22168
19b9c29bb5574c4a93bdde265752155e
RY(theta₁₁)
fcb4dfaf405240a0a7bcb215abd22168--19b9c29bb5574c4a93bdde265752155e
4df4a543646a49bb9b5cba9192fd2a4f
RX(theta₁₇)
19b9c29bb5574c4a93bdde265752155e--4df4a543646a49bb9b5cba9192fd2a4f
6f9d62ac32214dd5957516f30d4c36be
4df4a543646a49bb9b5cba9192fd2a4f--6f9d62ac32214dd5957516f30d4c36be
5a0351be18b34d249f2c131f6d7bdfe0
RX(theta₂₃)
6f9d62ac32214dd5957516f30d4c36be--5a0351be18b34d249f2c131f6d7bdfe0
17bb5e227a21476ea783033cb049aba1
RY(theta₂₉)
5a0351be18b34d249f2c131f6d7bdfe0--17bb5e227a21476ea783033cb049aba1
980ca7c6a19048f398bf8bba532f77b8
RX(theta₃₅)
17bb5e227a21476ea783033cb049aba1--980ca7c6a19048f398bf8bba532f77b8
8044b18c4eca4f62a1c4310cb187d2ce
980ca7c6a19048f398bf8bba532f77b8--8044b18c4eca4f62a1c4310cb187d2ce
8044b18c4eca4f62a1c4310cb187d2ce--b7834c06feae4f79aeb95e76f9d639d8
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_ed399fbf815443dc862691cc8c31f757
BPMA-1
cluster_21c44480043c4a8e860fc4d5f4f18e93
BPMA-0
79449180a5f14d4db0ed560b2e43fae4
0
97c67236f5054631ac1244e5ba759c1e
RX(iia_α₀₀)
79449180a5f14d4db0ed560b2e43fae4--97c67236f5054631ac1244e5ba759c1e
43d1ed9eef7246f1a4a92169c461f570
1
13387d6578b1445fae9aedbfddea29f8
RY(iia_α₀₃)
97c67236f5054631ac1244e5ba759c1e--13387d6578b1445fae9aedbfddea29f8
37394205378b46e2b5c14d975fc88872
13387d6578b1445fae9aedbfddea29f8--37394205378b46e2b5c14d975fc88872
1aeeb00e9fdc4e90b9cd941d68341993
37394205378b46e2b5c14d975fc88872--1aeeb00e9fdc4e90b9cd941d68341993
92b6014ccc3d4392a7a1bbf1ea3cf7a3
RX(iia_γ₀₀)
1aeeb00e9fdc4e90b9cd941d68341993--92b6014ccc3d4392a7a1bbf1ea3cf7a3
cb834abbfbcd4f1ca4123fccd2b628c6
92b6014ccc3d4392a7a1bbf1ea3cf7a3--cb834abbfbcd4f1ca4123fccd2b628c6
2e8442f67746481babbfdf8974e1a08a
cb834abbfbcd4f1ca4123fccd2b628c6--2e8442f67746481babbfdf8974e1a08a
8a7bb4b99f054aff862cdc69c42714c0
RY(iia_β₀₃)
2e8442f67746481babbfdf8974e1a08a--8a7bb4b99f054aff862cdc69c42714c0
fa24a904d9cf43738ba638c1e450ae88
RX(iia_β₀₀)
8a7bb4b99f054aff862cdc69c42714c0--fa24a904d9cf43738ba638c1e450ae88
009bc634eafb407783f190c2ba24e05e
RX(iia_α₁₀)
fa24a904d9cf43738ba638c1e450ae88--009bc634eafb407783f190c2ba24e05e
10b3fe6f93094896a3cb43cc6971762c
RY(iia_α₁₃)
009bc634eafb407783f190c2ba24e05e--10b3fe6f93094896a3cb43cc6971762c
fe264029d525406bbb2a8d8428a8663b
10b3fe6f93094896a3cb43cc6971762c--fe264029d525406bbb2a8d8428a8663b
ba0559f545354df9a8494c8bd57e94f1
fe264029d525406bbb2a8d8428a8663b--ba0559f545354df9a8494c8bd57e94f1
7b26cd6a5c7b4d158ce812869cc5bf37
RX(iia_γ₁₀)
ba0559f545354df9a8494c8bd57e94f1--7b26cd6a5c7b4d158ce812869cc5bf37
f42c7c3f884d49efb48730c0859a6bc4
7b26cd6a5c7b4d158ce812869cc5bf37--f42c7c3f884d49efb48730c0859a6bc4
8f1d9136b6a7464b9c28ea7c05013d91
f42c7c3f884d49efb48730c0859a6bc4--8f1d9136b6a7464b9c28ea7c05013d91
35c3885e9513406683517e98e369babc
RY(iia_β₁₃)
8f1d9136b6a7464b9c28ea7c05013d91--35c3885e9513406683517e98e369babc
64e3341cff0d463dab5775b3fa2418dd
RX(iia_β₁₀)
35c3885e9513406683517e98e369babc--64e3341cff0d463dab5775b3fa2418dd
7de18518b9af4c698b1ef09b2a8d1e35
64e3341cff0d463dab5775b3fa2418dd--7de18518b9af4c698b1ef09b2a8d1e35
8a73a9eeea004ccd99fa1c05bff50eba
96a6660c99c64018bb74d1e84402d3fd
RX(iia_α₀₁)
43d1ed9eef7246f1a4a92169c461f570--96a6660c99c64018bb74d1e84402d3fd
840d01c0b11e4a43821c2f4d2329d5b2
2
d767b03cface4cfbb9bd5110a1993391
RY(iia_α₀₄)
96a6660c99c64018bb74d1e84402d3fd--d767b03cface4cfbb9bd5110a1993391
3104cd83b0774222a830f7e76326fde4
X
d767b03cface4cfbb9bd5110a1993391--3104cd83b0774222a830f7e76326fde4
3104cd83b0774222a830f7e76326fde4--37394205378b46e2b5c14d975fc88872
cd42a11b6ee143bf87478e759b9c18fb
3104cd83b0774222a830f7e76326fde4--cd42a11b6ee143bf87478e759b9c18fb
0136e36d737b4807946df43b6e479033
RX(iia_γ₀₁)
cd42a11b6ee143bf87478e759b9c18fb--0136e36d737b4807946df43b6e479033
bc5bd241e6df4630b39e3c95207e5261
0136e36d737b4807946df43b6e479033--bc5bd241e6df4630b39e3c95207e5261
42b23b031b7e4dcfb622a22e8be3c1ae
X
bc5bd241e6df4630b39e3c95207e5261--42b23b031b7e4dcfb622a22e8be3c1ae
42b23b031b7e4dcfb622a22e8be3c1ae--2e8442f67746481babbfdf8974e1a08a
a31e8db8a3c34198ab604a6d24a4188e
RY(iia_β₀₄)
42b23b031b7e4dcfb622a22e8be3c1ae--a31e8db8a3c34198ab604a6d24a4188e
966179cbf7dc4522ba92ae1579fab42e
RX(iia_β₀₁)
a31e8db8a3c34198ab604a6d24a4188e--966179cbf7dc4522ba92ae1579fab42e
a1b4467640bd4441a5331ced9fb1e1f7
RX(iia_α₁₁)
966179cbf7dc4522ba92ae1579fab42e--a1b4467640bd4441a5331ced9fb1e1f7
3c6eebe6bcb7493bb7be1eb8a9742b89
RY(iia_α₁₄)
a1b4467640bd4441a5331ced9fb1e1f7--3c6eebe6bcb7493bb7be1eb8a9742b89
fb3f337e959342f1b7440b2c96d7b4bd
X
3c6eebe6bcb7493bb7be1eb8a9742b89--fb3f337e959342f1b7440b2c96d7b4bd
fb3f337e959342f1b7440b2c96d7b4bd--fe264029d525406bbb2a8d8428a8663b
2f2314341f0044018f81fe28e29ccfff
fb3f337e959342f1b7440b2c96d7b4bd--2f2314341f0044018f81fe28e29ccfff
e0e627204cc4432499e58cfec4b37dba
RX(iia_γ₁₁)
2f2314341f0044018f81fe28e29ccfff--e0e627204cc4432499e58cfec4b37dba
271de2b052804e8a99b8359b6613417f
e0e627204cc4432499e58cfec4b37dba--271de2b052804e8a99b8359b6613417f
1d7c52969c1943208fd4f7d9814b462b
X
271de2b052804e8a99b8359b6613417f--1d7c52969c1943208fd4f7d9814b462b
1d7c52969c1943208fd4f7d9814b462b--8f1d9136b6a7464b9c28ea7c05013d91
910d3f04c752482e83cdc782774838b8
RY(iia_β₁₄)
1d7c52969c1943208fd4f7d9814b462b--910d3f04c752482e83cdc782774838b8
62e7a846de394597acc9e7f1f5c2854d
RX(iia_β₁₁)
910d3f04c752482e83cdc782774838b8--62e7a846de394597acc9e7f1f5c2854d
62e7a846de394597acc9e7f1f5c2854d--8a73a9eeea004ccd99fa1c05bff50eba
37a49702b5144ad786cc1180353f4e46
66cf61b4fbfb46598d1539c2e80db760
RX(iia_α₀₂)
840d01c0b11e4a43821c2f4d2329d5b2--66cf61b4fbfb46598d1539c2e80db760
5e0e43aa8e164a5297e3d9c7b3d22f87
RY(iia_α₀₅)
66cf61b4fbfb46598d1539c2e80db760--5e0e43aa8e164a5297e3d9c7b3d22f87
511ea09101864013bc12cac4996487f2
5e0e43aa8e164a5297e3d9c7b3d22f87--511ea09101864013bc12cac4996487f2
2db4258bf07848f5be56111a18f59fa7
X
511ea09101864013bc12cac4996487f2--2db4258bf07848f5be56111a18f59fa7
2db4258bf07848f5be56111a18f59fa7--cd42a11b6ee143bf87478e759b9c18fb
73ec911b330749328548a951b9fddc7f
RX(iia_γ₀₂)
2db4258bf07848f5be56111a18f59fa7--73ec911b330749328548a951b9fddc7f
df501b35e1f9451e9f12ff31af6fa690
X
73ec911b330749328548a951b9fddc7f--df501b35e1f9451e9f12ff31af6fa690
df501b35e1f9451e9f12ff31af6fa690--bc5bd241e6df4630b39e3c95207e5261
c4a5d7d70e2b495286291deff238bc6d
df501b35e1f9451e9f12ff31af6fa690--c4a5d7d70e2b495286291deff238bc6d
44ff8145f806441d86605dcc468de108
RY(iia_β₀₅)
c4a5d7d70e2b495286291deff238bc6d--44ff8145f806441d86605dcc468de108
e85f2eef491d4a74ab1436c84f6108da
RX(iia_β₀₂)
44ff8145f806441d86605dcc468de108--e85f2eef491d4a74ab1436c84f6108da
ac523dd65ec54ddd88bc7de39ef842d7
RX(iia_α₁₂)
e85f2eef491d4a74ab1436c84f6108da--ac523dd65ec54ddd88bc7de39ef842d7
46dd895a508e4b9c864db6dcc8090688
RY(iia_α₁₅)
ac523dd65ec54ddd88bc7de39ef842d7--46dd895a508e4b9c864db6dcc8090688
a82bc52b0d934e7481bf0bc99a145cfa
46dd895a508e4b9c864db6dcc8090688--a82bc52b0d934e7481bf0bc99a145cfa
14302d4bcf8a4369bc989b7c35efed44
X
a82bc52b0d934e7481bf0bc99a145cfa--14302d4bcf8a4369bc989b7c35efed44
14302d4bcf8a4369bc989b7c35efed44--2f2314341f0044018f81fe28e29ccfff
2d8b38cfd36b4bbd945f6d5d20a99cd7
RX(iia_γ₁₂)
14302d4bcf8a4369bc989b7c35efed44--2d8b38cfd36b4bbd945f6d5d20a99cd7
539f30931e914399ae92455a1883eda5
X
2d8b38cfd36b4bbd945f6d5d20a99cd7--539f30931e914399ae92455a1883eda5
539f30931e914399ae92455a1883eda5--271de2b052804e8a99b8359b6613417f
bdb5827cda00414e845e51655114566c
539f30931e914399ae92455a1883eda5--bdb5827cda00414e845e51655114566c
cd470e4a27d542219589ae14fc5b5754
RY(iia_β₁₅)
bdb5827cda00414e845e51655114566c--cd470e4a27d542219589ae14fc5b5754
2e138595f0f848d79b5cee83e4168c3f
RX(iia_β₁₂)
cd470e4a27d542219589ae14fc5b5754--2e138595f0f848d79b5cee83e4168c3f
2e138595f0f848d79b5cee83e4168c3f--37a49702b5144ad786cc1180353f4e46