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_af3e56141cd442a78660fc8f2244ebd7
Constant Chebyshev FM
cluster_9d6c4b6abacd4c448588583810050a0c
Constant Fourier FM
c8f7ed78de80406d8cb160c01090a25a
0
0783c55ebd954a94a46ff7a07ffc85c6
RX(phi)
c8f7ed78de80406d8cb160c01090a25a--0783c55ebd954a94a46ff7a07ffc85c6
dc522e54e3ad4c9a97d9e19d50aebeb3
1
281c7fadfb464e18873e531556236a54
RX(acos(phi))
0783c55ebd954a94a46ff7a07ffc85c6--281c7fadfb464e18873e531556236a54
c3c8093e1529480f91d8654d4099176b
281c7fadfb464e18873e531556236a54--c3c8093e1529480f91d8654d4099176b
881b705a8d2f4f9f8e369f9f4b917ea7
2b91dc6b9e404961895bcda7222732e9
RX(phi)
dc522e54e3ad4c9a97d9e19d50aebeb3--2b91dc6b9e404961895bcda7222732e9
3ee05afdef554d6184e2e8811eff934c
2
2a9d7ad6e7834437988c40d6666413e5
RX(acos(phi))
2b91dc6b9e404961895bcda7222732e9--2a9d7ad6e7834437988c40d6666413e5
2a9d7ad6e7834437988c40d6666413e5--881b705a8d2f4f9f8e369f9f4b917ea7
d879d3a68e42408095fcb7e30359c1e6
0e1ece74feb04dc6a326a4c8b2bef20f
RX(phi)
3ee05afdef554d6184e2e8811eff934c--0e1ece74feb04dc6a326a4c8b2bef20f
2e318393f93f43c3bac4dee0bc960f17
RX(acos(phi))
0e1ece74feb04dc6a326a4c8b2bef20f--2e318393f93f43c3bac4dee0bc960f17
2e318393f93f43c3bac4dee0bc960f17--d879d3a68e42408095fcb7e30359c1e6
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_0b1a9bf4403a462b816d21cdca26213a
Constant <function custom_fn at 0x7efc804dfd00> FM
cluster_661a908fe71847378971da202732a848
Constant asin FM
c5b94cb361dc44c4941a2ac1c27098c9
0
b30aca662a6043bb8e6e79db7fbe464d
RX(asin(phi))
c5b94cb361dc44c4941a2ac1c27098c9--b30aca662a6043bb8e6e79db7fbe464d
dc2a035b81e44576aa1287db5dfe2232
1
549cf6f2f60248949b29c0b4bbe892be
RX(phi**2 + asin(phi))
b30aca662a6043bb8e6e79db7fbe464d--549cf6f2f60248949b29c0b4bbe892be
c9ddeabb6cd1427da33e32cbdb12ac8e
549cf6f2f60248949b29c0b4bbe892be--c9ddeabb6cd1427da33e32cbdb12ac8e
2f5c53f59e434816a29bbf38b9d85a7b
2606f830346e4279b9075b9fb6139fb8
RX(asin(phi))
dc2a035b81e44576aa1287db5dfe2232--2606f830346e4279b9075b9fb6139fb8
eae9ce69d00f4d15bd1b4f583e130ed0
2
bc65b6944c5c49068cad8dab3855dfea
RX(phi**2 + asin(phi))
2606f830346e4279b9075b9fb6139fb8--bc65b6944c5c49068cad8dab3855dfea
bc65b6944c5c49068cad8dab3855dfea--2f5c53f59e434816a29bbf38b9d85a7b
55e0dc42dbd444c3adca4190fb034c5a
3a5d6f2a348f48faaf767b0efdaff7b3
RX(asin(phi))
eae9ce69d00f4d15bd1b4f583e130ed0--3a5d6f2a348f48faaf767b0efdaff7b3
02279e1c176046159098b7c785cadc88
RX(phi**2 + asin(phi))
3a5d6f2a348f48faaf767b0efdaff7b3--02279e1c176046159098b7c785cadc88
02279e1c176046159098b7c785cadc88--55e0dc42dbd444c3adca4190fb034c5a
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_067eb07035f344bbbd3d97e68e94f59d
Exponential Fourier FM
cluster_7ed1a849c1e84d22a064059e14c14a94
Constant Fourier FM
cluster_b35bf537b8db4610812336c4f82ece61
Tower Fourier FM
09e7e47f1c5c42b1a67228f243429b2d
0
967d83e2a8c24c098c1bea0ff0a1f1ea
RX(phi)
09e7e47f1c5c42b1a67228f243429b2d--967d83e2a8c24c098c1bea0ff0a1f1ea
4d3c4e5dbc3b4073b34cea40e859069e
1
8c7b0ca487f04758a9ef0436dc00fd48
RX(1.0*phi)
967d83e2a8c24c098c1bea0ff0a1f1ea--8c7b0ca487f04758a9ef0436dc00fd48
1973d9483cc94d879736e9f16ebfe2d3
RX(1.0*phi)
8c7b0ca487f04758a9ef0436dc00fd48--1973d9483cc94d879736e9f16ebfe2d3
f7d779aa13ac492f8f6976f602e3d829
1973d9483cc94d879736e9f16ebfe2d3--f7d779aa13ac492f8f6976f602e3d829
6c1b4de338604f10965befc3f8be44df
46b25e3e9b7246f0a096a98a46356aa8
RX(phi)
4d3c4e5dbc3b4073b34cea40e859069e--46b25e3e9b7246f0a096a98a46356aa8
e06a799a052a433fa7908d1e30297371
2
e79e65a33ff540a491025b306cd8c6cc
RX(2.0*phi)
46b25e3e9b7246f0a096a98a46356aa8--e79e65a33ff540a491025b306cd8c6cc
25c3cb81eee444c583b5239f592d173c
RX(2.0*phi)
e79e65a33ff540a491025b306cd8c6cc--25c3cb81eee444c583b5239f592d173c
25c3cb81eee444c583b5239f592d173c--6c1b4de338604f10965befc3f8be44df
67bbe2c1bfbe4bdeb8ab6be5310a091a
9e67cb1f5b1d4809b159274cbd5b22e8
RX(phi)
e06a799a052a433fa7908d1e30297371--9e67cb1f5b1d4809b159274cbd5b22e8
c8dab028f8d6400d8c345a14569c5c1c
3
af4c22cf63654abe95be1da3aa65b6c2
RX(3.0*phi)
9e67cb1f5b1d4809b159274cbd5b22e8--af4c22cf63654abe95be1da3aa65b6c2
3474c7efe6914b7e9f06d429a9b6c84f
RX(4.0*phi)
af4c22cf63654abe95be1da3aa65b6c2--3474c7efe6914b7e9f06d429a9b6c84f
3474c7efe6914b7e9f06d429a9b6c84f--67bbe2c1bfbe4bdeb8ab6be5310a091a
60a4224c1b4844aa9836e3a77fa8e7a2
29d52f6f6a3f47d3a6a7d7fc15bdc6ea
RX(phi)
c8dab028f8d6400d8c345a14569c5c1c--29d52f6f6a3f47d3a6a7d7fc15bdc6ea
36d8e650bc894307811e9ce6790563e1
4
d547e07182fb4f3f8f42670dc5759dea
RX(4.0*phi)
29d52f6f6a3f47d3a6a7d7fc15bdc6ea--d547e07182fb4f3f8f42670dc5759dea
83de174622224d3699bb2c6e6e320dc0
RX(8.0*phi)
d547e07182fb4f3f8f42670dc5759dea--83de174622224d3699bb2c6e6e320dc0
83de174622224d3699bb2c6e6e320dc0--60a4224c1b4844aa9836e3a77fa8e7a2
83405de9b4fa473db2d0a00a68f7cebc
88725873cbd14fdcb1843599d1264e96
RX(phi)
36d8e650bc894307811e9ce6790563e1--88725873cbd14fdcb1843599d1264e96
078c099c1997450696f2ee52e372cad5
RX(5.0*phi)
88725873cbd14fdcb1843599d1264e96--078c099c1997450696f2ee52e372cad5
af43b874bebd467b84eb045303cf1ce4
RX(16.0*phi)
078c099c1997450696f2ee52e372cad5--af43b874bebd467b84eb045303cf1ce4
af43b874bebd467b84eb045303cf1ce4--83405de9b4fa473db2d0a00a68f7cebc
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
867e909ef88c4840b0d5bcd2201cdbd8
0
d650aff87b3144069aa25b90034f9b2b
RX(1.0*acos(phi))
867e909ef88c4840b0d5bcd2201cdbd8--d650aff87b3144069aa25b90034f9b2b
a9fafe1032a24454bfaa456864d737a4
1
5ac3677715e648eebabae949dddee60d
d650aff87b3144069aa25b90034f9b2b--5ac3677715e648eebabae949dddee60d
87c257ca86214bcabacba84755734b87
76abc66cf22d4eefb9456b0811d8a697
RX(1.414*acos(phi))
a9fafe1032a24454bfaa456864d737a4--76abc66cf22d4eefb9456b0811d8a697
4bfa237acc2a45b3a02f5ba0d3a00c57
2
76abc66cf22d4eefb9456b0811d8a697--87c257ca86214bcabacba84755734b87
086a10439ea24838aa966d1392778ac1
04945455029645e1b6882170ba462c96
RX(1.732*acos(phi))
4bfa237acc2a45b3a02f5ba0d3a00c57--04945455029645e1b6882170ba462c96
310bac8259664d6c9745d3e9ca57e46c
3
04945455029645e1b6882170ba462c96--086a10439ea24838aa966d1392778ac1
79ea74f00b3d47dda43827716a22cd42
19822ee5f07e4b4c9ee399894ddfdeb6
RX(2.0*acos(phi))
310bac8259664d6c9745d3e9ca57e46c--19822ee5f07e4b4c9ee399894ddfdeb6
dc4d9fb683e146148f597eb437de8769
4
19822ee5f07e4b4c9ee399894ddfdeb6--79ea74f00b3d47dda43827716a22cd42
cee0c63db9f34900843f13d1ebb2fd7b
f92682b4d27a4ebf907f0249894a427d
RX(2.236*acos(phi))
dc4d9fb683e146148f597eb437de8769--f92682b4d27a4ebf907f0249894a427d
f92682b4d27a4ebf907f0249894a427d--cee0c63db9f34900843f13d1ebb2fd7b
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
d986edae0b5142f59a05a9c1d2638e01
0
e21ca3f3f515425eb4dc1ac11566cd92
RX(1.0*phi*w₀)
d986edae0b5142f59a05a9c1d2638e01--e21ca3f3f515425eb4dc1ac11566cd92
31f06d0a34b14c96b46dd68ae8512ac2
1
9dab312386ef4e69a8c91ce3c3f13961
e21ca3f3f515425eb4dc1ac11566cd92--9dab312386ef4e69a8c91ce3c3f13961
7b2b2ae7ec6c4dfd887af7602c443a91
7e6a8dbabcc24de4a7888c596c27fa44
RX(2.0*phi*w₁)
31f06d0a34b14c96b46dd68ae8512ac2--7e6a8dbabcc24de4a7888c596c27fa44
67814ad4f9f44a5997c1ce06412a548f
2
7e6a8dbabcc24de4a7888c596c27fa44--7b2b2ae7ec6c4dfd887af7602c443a91
ebba9fb87a1241178322202fa8a60d85
12664bf8dbb745e3b2ad7a0f275e8ec0
RX(4.0*phi*w₂)
67814ad4f9f44a5997c1ce06412a548f--12664bf8dbb745e3b2ad7a0f275e8ec0
e7c5639eb01e4437986f16708e2d9b67
3
12664bf8dbb745e3b2ad7a0f275e8ec0--ebba9fb87a1241178322202fa8a60d85
76cc849f82334b33bab1c08fa2f35e11
2dfffe4478ed4b80a272473f25a0b58b
RX(8.0*phi*w₃)
e7c5639eb01e4437986f16708e2d9b67--2dfffe4478ed4b80a272473f25a0b58b
403191ffb4134462b8a6c6a58adca4b6
4
2dfffe4478ed4b80a272473f25a0b58b--76cc849f82334b33bab1c08fa2f35e11
9bf2ade8fcbd4e55bbbe312383e71803
6e6158e788db4666828e404d199d17ce
RX(16.0*phi*w₄)
403191ffb4134462b8a6c6a58adca4b6--6e6158e788db4666828e404d199d17ce
6e6158e788db4666828e404d199d17ce--9bf2ade8fcbd4e55bbbe312383e71803
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
94a996a2048743a98bcb64c3e81ef2ea
0
99a416e7f3314c7baeac1b3c4647841f
RY(80.0*acos(w₄*(0.667*x + 1.667)))
94a996a2048743a98bcb64c3e81ef2ea--99a416e7f3314c7baeac1b3c4647841f
909fa36dad04444b82d563756c85395f
1
b3ef937774ca42d9857fb86ea7fc0294
99a416e7f3314c7baeac1b3c4647841f--b3ef937774ca42d9857fb86ea7fc0294
6ce0d2d937324f65b56ac3aa37326ebc
2615da7c0d7248d58be035c4029ec49e
RY(40.0*acos(w₃*(0.667*x + 1.667)))
909fa36dad04444b82d563756c85395f--2615da7c0d7248d58be035c4029ec49e
a3876910a3c54e739c8171bdd045d40a
2
2615da7c0d7248d58be035c4029ec49e--6ce0d2d937324f65b56ac3aa37326ebc
d106750114bd45bbb3575aaf4d49bfc7
aba45be9943340588ece3e2cd6d76671
RY(20.0*acos(w₂*(0.667*x + 1.667)))
a3876910a3c54e739c8171bdd045d40a--aba45be9943340588ece3e2cd6d76671
2300b57d018847c5ae2efecc7665bd7f
3
aba45be9943340588ece3e2cd6d76671--d106750114bd45bbb3575aaf4d49bfc7
fe6de3b1e2264bf4b88e237df1f8fedf
3c58e842b44146e3b2bc61ade5c4f54b
RY(10.0*acos(w₁*(0.667*x + 1.667)))
2300b57d018847c5ae2efecc7665bd7f--3c58e842b44146e3b2bc61ade5c4f54b
100de8a15c5c489caa6b2098a6571609
4
3c58e842b44146e3b2bc61ade5c4f54b--fe6de3b1e2264bf4b88e237df1f8fedf
9ea97abefce248659e1d1db3d506e87a
dee04d3c244b4884959402a0bf67a0d8
RY(5.0*acos(w₀*(0.667*x + 1.667)))
100de8a15c5c489caa6b2098a6571609--dee04d3c244b4884959402a0bf67a0d8
dee04d3c244b4884959402a0bf67a0d8--9ea97abefce248659e1d1db3d506e87a
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
a19bcb9ff8fb4d5e99cc2e7ca265bac2
0
a466b6126cc7475b85cfc1cd58eb5a2b
RX(theta₀)
a19bcb9ff8fb4d5e99cc2e7ca265bac2--a466b6126cc7475b85cfc1cd58eb5a2b
cd3b7f3bd3ba433cb23b2d25e0684a77
1
77d1eb372d604d709a6c9ae929a4e2a4
RY(theta₃)
a466b6126cc7475b85cfc1cd58eb5a2b--77d1eb372d604d709a6c9ae929a4e2a4
45c4766c75924adfb736fa1a0c069509
RX(theta₆)
77d1eb372d604d709a6c9ae929a4e2a4--45c4766c75924adfb736fa1a0c069509
24cff01931854c228515efb8860c5c66
45c4766c75924adfb736fa1a0c069509--24cff01931854c228515efb8860c5c66
8347bbf6d861443c90972052d45bb20d
24cff01931854c228515efb8860c5c66--8347bbf6d861443c90972052d45bb20d
456c7e87cd004094966282b9b50693bc
RX(theta₉)
8347bbf6d861443c90972052d45bb20d--456c7e87cd004094966282b9b50693bc
fb98ca9a878e43fc8ab8978183ec28bb
RY(theta₁₂)
456c7e87cd004094966282b9b50693bc--fb98ca9a878e43fc8ab8978183ec28bb
ff57fe8c327a4a6ca127ae0f6ba6d759
RX(theta₁₅)
fb98ca9a878e43fc8ab8978183ec28bb--ff57fe8c327a4a6ca127ae0f6ba6d759
1592fc25e61a4d82a86e463eb5c1f961
ff57fe8c327a4a6ca127ae0f6ba6d759--1592fc25e61a4d82a86e463eb5c1f961
da4a72567a404a6a9061714ffccce1f1
1592fc25e61a4d82a86e463eb5c1f961--da4a72567a404a6a9061714ffccce1f1
5fd12941b27f48d9b6128bd9f78acc91
da4a72567a404a6a9061714ffccce1f1--5fd12941b27f48d9b6128bd9f78acc91
d2e577c38fa345328f44f3b73abadcee
6b156678eb804b1aa612796312437014
RX(theta₁)
cd3b7f3bd3ba433cb23b2d25e0684a77--6b156678eb804b1aa612796312437014
d5f4327f616c48a9bf16bd61eba84690
2
27d7517f358143f1b5c05e0205b2dbe4
RY(theta₄)
6b156678eb804b1aa612796312437014--27d7517f358143f1b5c05e0205b2dbe4
336bed1dab984562a63773113c991a10
RX(theta₇)
27d7517f358143f1b5c05e0205b2dbe4--336bed1dab984562a63773113c991a10
3ea9b733bbc04c2a9111e8bef541054e
X
336bed1dab984562a63773113c991a10--3ea9b733bbc04c2a9111e8bef541054e
3ea9b733bbc04c2a9111e8bef541054e--24cff01931854c228515efb8860c5c66
d0044852c1b14ff1a9e0d50b2687cfda
3ea9b733bbc04c2a9111e8bef541054e--d0044852c1b14ff1a9e0d50b2687cfda
29cfd44d44204093b6dcb742a0354e0d
RX(theta₁₀)
d0044852c1b14ff1a9e0d50b2687cfda--29cfd44d44204093b6dcb742a0354e0d
494fa83eb9364c26a0a30b4b4d16636c
RY(theta₁₃)
29cfd44d44204093b6dcb742a0354e0d--494fa83eb9364c26a0a30b4b4d16636c
eb48f472d5754e39af59e7c2db8f31be
RX(theta₁₆)
494fa83eb9364c26a0a30b4b4d16636c--eb48f472d5754e39af59e7c2db8f31be
f7a7a7b5958a4b2a8e5dea75a13218ee
X
eb48f472d5754e39af59e7c2db8f31be--f7a7a7b5958a4b2a8e5dea75a13218ee
f7a7a7b5958a4b2a8e5dea75a13218ee--1592fc25e61a4d82a86e463eb5c1f961
7d39af92869c408cb50dec06b4a7fb8e
f7a7a7b5958a4b2a8e5dea75a13218ee--7d39af92869c408cb50dec06b4a7fb8e
7d39af92869c408cb50dec06b4a7fb8e--d2e577c38fa345328f44f3b73abadcee
2eb007e99f5544f884efef62c6db1249
008c2c2adffb49acb73b8beab7503b39
RX(theta₂)
d5f4327f616c48a9bf16bd61eba84690--008c2c2adffb49acb73b8beab7503b39
8d5b8cd594aa4c4d9410c629625ea691
RY(theta₅)
008c2c2adffb49acb73b8beab7503b39--8d5b8cd594aa4c4d9410c629625ea691
f26426c018154aae92b4130270acbd1d
RX(theta₈)
8d5b8cd594aa4c4d9410c629625ea691--f26426c018154aae92b4130270acbd1d
e43984e18cb34c8cad83a71fca30432c
f26426c018154aae92b4130270acbd1d--e43984e18cb34c8cad83a71fca30432c
452075d807134e0089ab5006ee2a4863
X
e43984e18cb34c8cad83a71fca30432c--452075d807134e0089ab5006ee2a4863
452075d807134e0089ab5006ee2a4863--d0044852c1b14ff1a9e0d50b2687cfda
1fb0cfd2c2414ab5b3379247562eabed
RX(theta₁₁)
452075d807134e0089ab5006ee2a4863--1fb0cfd2c2414ab5b3379247562eabed
93b1257740804413926a47a51433705d
RY(theta₁₄)
1fb0cfd2c2414ab5b3379247562eabed--93b1257740804413926a47a51433705d
59868f8ec2734b0baceb97ec653c6b7c
RX(theta₁₇)
93b1257740804413926a47a51433705d--59868f8ec2734b0baceb97ec653c6b7c
eeb899e197e243e6b0d2636c99d1613f
59868f8ec2734b0baceb97ec653c6b7c--eeb899e197e243e6b0d2636c99d1613f
e26ce398e99e46458c35f7c83712a463
X
eeb899e197e243e6b0d2636c99d1613f--e26ce398e99e46458c35f7c83712a463
e26ce398e99e46458c35f7c83712a463--7d39af92869c408cb50dec06b4a7fb8e
e26ce398e99e46458c35f7c83712a463--2eb007e99f5544f884efef62c6db1249
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
73e5aeefdfa04a49bc14026ec8273f94
0
94a513cd8fd447ce9b7d82de42a05092
RX(phi₀)
73e5aeefdfa04a49bc14026ec8273f94--94a513cd8fd447ce9b7d82de42a05092
13d183ed8bac4f4186f9733c88c6d90c
1
ad9cd0bb07144fe9988682298b79646e
RY(phi₃)
94a513cd8fd447ce9b7d82de42a05092--ad9cd0bb07144fe9988682298b79646e
5e5f00aed0a241a983e8a296b8ccffc1
RX(phi₆)
ad9cd0bb07144fe9988682298b79646e--5e5f00aed0a241a983e8a296b8ccffc1
5fe67263df044b7bb8e9783a81ff0002
5e5f00aed0a241a983e8a296b8ccffc1--5fe67263df044b7bb8e9783a81ff0002
0b3ef280c4f142f9b352e4d4af74f492
5fe67263df044b7bb8e9783a81ff0002--0b3ef280c4f142f9b352e4d4af74f492
5430e4e82b36435e9be22096a478495c
RX(phi₉)
0b3ef280c4f142f9b352e4d4af74f492--5430e4e82b36435e9be22096a478495c
5a3eba02e7bc4d5e86f3b2ec10040800
RY(phi₁₂)
5430e4e82b36435e9be22096a478495c--5a3eba02e7bc4d5e86f3b2ec10040800
b81ace1b5ae7427f842978343f5f9a17
RX(phi₁₅)
5a3eba02e7bc4d5e86f3b2ec10040800--b81ace1b5ae7427f842978343f5f9a17
12d139db85e446bdb94ba04a4485034b
b81ace1b5ae7427f842978343f5f9a17--12d139db85e446bdb94ba04a4485034b
e4de6605bd67486ca624fc009f06aa3e
12d139db85e446bdb94ba04a4485034b--e4de6605bd67486ca624fc009f06aa3e
6046025463df48c8aedc0140acb4431a
e4de6605bd67486ca624fc009f06aa3e--6046025463df48c8aedc0140acb4431a
3a8969c314494e84bae1eb806ca908fa
c32b0caf91a54dcd8a2e2e2ec288e67b
RX(phi₁)
13d183ed8bac4f4186f9733c88c6d90c--c32b0caf91a54dcd8a2e2e2ec288e67b
f068de7cf484490baddc52675f944910
2
35d4857dce6748a5a9b7123bdaecf8d0
RY(phi₄)
c32b0caf91a54dcd8a2e2e2ec288e67b--35d4857dce6748a5a9b7123bdaecf8d0
f14ab730333d47558672832b8693659b
RX(phi₇)
35d4857dce6748a5a9b7123bdaecf8d0--f14ab730333d47558672832b8693659b
705af651fe0d46068aaa7493cc83cc65
PHASE(phi_ent₀)
f14ab730333d47558672832b8693659b--705af651fe0d46068aaa7493cc83cc65
705af651fe0d46068aaa7493cc83cc65--5fe67263df044b7bb8e9783a81ff0002
65372742fabf4215b81aac443a61d210
705af651fe0d46068aaa7493cc83cc65--65372742fabf4215b81aac443a61d210
3c7c14e12aa94e36a639faadacb25b59
RX(phi₁₀)
65372742fabf4215b81aac443a61d210--3c7c14e12aa94e36a639faadacb25b59
7dfbf2e6c85045b6afce8c0e6ca8c5f4
RY(phi₁₃)
3c7c14e12aa94e36a639faadacb25b59--7dfbf2e6c85045b6afce8c0e6ca8c5f4
0b143649c5234272b384846cd5885c0a
RX(phi₁₆)
7dfbf2e6c85045b6afce8c0e6ca8c5f4--0b143649c5234272b384846cd5885c0a
934c0f23b5d04df09fdd542bd66cb014
PHASE(phi_ent₂)
0b143649c5234272b384846cd5885c0a--934c0f23b5d04df09fdd542bd66cb014
934c0f23b5d04df09fdd542bd66cb014--12d139db85e446bdb94ba04a4485034b
86038bfc67fe45efa783eec3ebddcd2b
934c0f23b5d04df09fdd542bd66cb014--86038bfc67fe45efa783eec3ebddcd2b
86038bfc67fe45efa783eec3ebddcd2b--3a8969c314494e84bae1eb806ca908fa
f7666cbd8d814e92ae68db13288b8c2f
c52fc99099d44686be09d299c857a13b
RX(phi₂)
f068de7cf484490baddc52675f944910--c52fc99099d44686be09d299c857a13b
c03e8e91615041c6902b611f5976afbb
RY(phi₅)
c52fc99099d44686be09d299c857a13b--c03e8e91615041c6902b611f5976afbb
246af20e5c2440be8a9c42b47f32eb10
RX(phi₈)
c03e8e91615041c6902b611f5976afbb--246af20e5c2440be8a9c42b47f32eb10
e1ecb9eaf09c41b3a705e60ab30a2cb1
246af20e5c2440be8a9c42b47f32eb10--e1ecb9eaf09c41b3a705e60ab30a2cb1
c6c4f7add237416586f163e7130015aa
PHASE(phi_ent₁)
e1ecb9eaf09c41b3a705e60ab30a2cb1--c6c4f7add237416586f163e7130015aa
c6c4f7add237416586f163e7130015aa--65372742fabf4215b81aac443a61d210
2292857dd6d64a209fdd7a072a7f73e6
RX(phi₁₁)
c6c4f7add237416586f163e7130015aa--2292857dd6d64a209fdd7a072a7f73e6
707dcefd0ae7463f809da20b5cabbc8d
RY(phi₁₄)
2292857dd6d64a209fdd7a072a7f73e6--707dcefd0ae7463f809da20b5cabbc8d
ed69b4255141476b98688cc99dbf5efb
RX(phi₁₇)
707dcefd0ae7463f809da20b5cabbc8d--ed69b4255141476b98688cc99dbf5efb
13ea4963a53348009b9733298dee98f8
ed69b4255141476b98688cc99dbf5efb--13ea4963a53348009b9733298dee98f8
dd883aa4ea694735bc22b60cc16e27bd
PHASE(phi_ent₃)
13ea4963a53348009b9733298dee98f8--dd883aa4ea694735bc22b60cc16e27bd
dd883aa4ea694735bc22b60cc16e27bd--86038bfc67fe45efa783eec3ebddcd2b
dd883aa4ea694735bc22b60cc16e27bd--f7666cbd8d814e92ae68db13288b8c2f
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_87900bf3084549df90058b6af0fe2c3b
cluster_c5d7dc6cf9b7418fbb635ec71e935fc4
4ecb9e2670c2440d978a0b59320c35d6
0
783d89cbe95d4436b50ffe4b72f624f7
RX(theta₀)
4ecb9e2670c2440d978a0b59320c35d6--783d89cbe95d4436b50ffe4b72f624f7
7f76d29700ce40f8818391caf956467f
1
c9366e4d723f42cbacf433095e630e85
RY(theta₃)
783d89cbe95d4436b50ffe4b72f624f7--c9366e4d723f42cbacf433095e630e85
237824318fe54492a9570fcc3da39c4b
RX(theta₆)
c9366e4d723f42cbacf433095e630e85--237824318fe54492a9570fcc3da39c4b
be3f821cc4f74041b6bcbabb5a760b26
HamEvo
237824318fe54492a9570fcc3da39c4b--be3f821cc4f74041b6bcbabb5a760b26
e3c456fcf2824f3ab286d0ffb9a759a5
RX(theta₉)
be3f821cc4f74041b6bcbabb5a760b26--e3c456fcf2824f3ab286d0ffb9a759a5
199f015c8d2741a482552ed11e3ad7b0
RY(theta₁₂)
e3c456fcf2824f3ab286d0ffb9a759a5--199f015c8d2741a482552ed11e3ad7b0
62f7ad11c78b40ceacac705b2b16e4f5
RX(theta₁₅)
199f015c8d2741a482552ed11e3ad7b0--62f7ad11c78b40ceacac705b2b16e4f5
e4613a3a47914a8fa81a8e81e4ba0e18
HamEvo
62f7ad11c78b40ceacac705b2b16e4f5--e4613a3a47914a8fa81a8e81e4ba0e18
f435f710297b41f3b14697f9f57284a9
e4613a3a47914a8fa81a8e81e4ba0e18--f435f710297b41f3b14697f9f57284a9
b915da0d01a846ce926cdbcad04e63a6
09c1237b4ff9464eb71ceffd29e4f807
RX(theta₁)
7f76d29700ce40f8818391caf956467f--09c1237b4ff9464eb71ceffd29e4f807
f99cdbf8602149dea1afcf349421c76a
2
dcd2268b04d140c1847ff4a35c2bf099
RY(theta₄)
09c1237b4ff9464eb71ceffd29e4f807--dcd2268b04d140c1847ff4a35c2bf099
6867a66dcd4340418df23c5f3c91341c
RX(theta₇)
dcd2268b04d140c1847ff4a35c2bf099--6867a66dcd4340418df23c5f3c91341c
15e6ad2b8a3444048b2c07447108e0a0
t = theta_t₀
6867a66dcd4340418df23c5f3c91341c--15e6ad2b8a3444048b2c07447108e0a0
743d9e18a9b84a91a70cdf86f8921b56
RX(theta₁₀)
15e6ad2b8a3444048b2c07447108e0a0--743d9e18a9b84a91a70cdf86f8921b56
471c4aa6369149518dd7d065938caa7c
RY(theta₁₃)
743d9e18a9b84a91a70cdf86f8921b56--471c4aa6369149518dd7d065938caa7c
abb27f276ebd4bf8b89706753daf5207
RX(theta₁₆)
471c4aa6369149518dd7d065938caa7c--abb27f276ebd4bf8b89706753daf5207
c3db926d95ab43829b9677b568c4243c
t = theta_t₁
abb27f276ebd4bf8b89706753daf5207--c3db926d95ab43829b9677b568c4243c
c3db926d95ab43829b9677b568c4243c--b915da0d01a846ce926cdbcad04e63a6
237ccd9df0b04af29ee664223d232ae1
8aa828f5dbf1441abbf66207508f0e74
RX(theta₂)
f99cdbf8602149dea1afcf349421c76a--8aa828f5dbf1441abbf66207508f0e74
cc28d7e86c264a36bc9f81cdc6a614cc
RY(theta₅)
8aa828f5dbf1441abbf66207508f0e74--cc28d7e86c264a36bc9f81cdc6a614cc
bb562adddc394e408c647f54a560e72d
RX(theta₈)
cc28d7e86c264a36bc9f81cdc6a614cc--bb562adddc394e408c647f54a560e72d
b12842d8dfea4e7ea4552f8d8be41102
bb562adddc394e408c647f54a560e72d--b12842d8dfea4e7ea4552f8d8be41102
0e2e687b5e4c4faa932761f8ae10fa70
RX(theta₁₁)
b12842d8dfea4e7ea4552f8d8be41102--0e2e687b5e4c4faa932761f8ae10fa70
79e70324824547b98831a9313f51d7f3
RY(theta₁₄)
0e2e687b5e4c4faa932761f8ae10fa70--79e70324824547b98831a9313f51d7f3
d0406c510c44493180291eeaccd90a58
RX(theta₁₇)
79e70324824547b98831a9313f51d7f3--d0406c510c44493180291eeaccd90a58
93c93d82a912435dabd42bedd3ea5b1e
d0406c510c44493180291eeaccd90a58--93c93d82a912435dabd42bedd3ea5b1e
93c93d82a912435dabd42bedd3ea5b1e--237ccd9df0b04af29ee664223d232ae1
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_eebf1ca7e2d74e7da44bc1ceccc26d33
cluster_0c2c0baf0ccc4dd7839b3476a4978de1
cdc74d5e967f46528632b070f6b83202
0
1da6530c99604354affe56a806da159f
RX(theta₀)
cdc74d5e967f46528632b070f6b83202--1da6530c99604354affe56a806da159f
ec6b0ce77b584d078bc2b34e6c210a51
1
832c66f1be9b4e16a8237f141187842c
RY(theta₆)
1da6530c99604354affe56a806da159f--832c66f1be9b4e16a8237f141187842c
70cb8340665049859d9d0573df6ff835
RX(theta₁₂)
832c66f1be9b4e16a8237f141187842c--70cb8340665049859d9d0573df6ff835
eb657600b3a94791a5bf057b7aaf9d8f
70cb8340665049859d9d0573df6ff835--eb657600b3a94791a5bf057b7aaf9d8f
f60f8a1bb2314e10b980138d0a333949
RX(theta₁₈)
eb657600b3a94791a5bf057b7aaf9d8f--f60f8a1bb2314e10b980138d0a333949
9683997f5d8d448a8ae1396b523b62c7
RY(theta₂₄)
f60f8a1bb2314e10b980138d0a333949--9683997f5d8d448a8ae1396b523b62c7
83450ec34b384f0189b3bae8fb0c9654
RX(theta₃₀)
9683997f5d8d448a8ae1396b523b62c7--83450ec34b384f0189b3bae8fb0c9654
6d98cdccadcc4506926ffc3bab9a3fc0
83450ec34b384f0189b3bae8fb0c9654--6d98cdccadcc4506926ffc3bab9a3fc0
084bbcf035864a079c4940efa1af3e2c
6d98cdccadcc4506926ffc3bab9a3fc0--084bbcf035864a079c4940efa1af3e2c
f7955c065b3d48c5bf175e6227658285
1d18da3dc0d840dfa084daa6b444b9f2
RX(theta₁)
ec6b0ce77b584d078bc2b34e6c210a51--1d18da3dc0d840dfa084daa6b444b9f2
519752a7f0fc4a22bb18c1e9709ffc9e
2
cbd5290256144897bc283f5c985cb9ff
RY(theta₇)
1d18da3dc0d840dfa084daa6b444b9f2--cbd5290256144897bc283f5c985cb9ff
32773f62fe3f4386936682b178dbafe0
RX(theta₁₃)
cbd5290256144897bc283f5c985cb9ff--32773f62fe3f4386936682b178dbafe0
37b3d99d6a7e490a99cb560513c150a8
32773f62fe3f4386936682b178dbafe0--37b3d99d6a7e490a99cb560513c150a8
4d760e144a6d4d69ab40060bbaa309e3
RX(theta₁₉)
37b3d99d6a7e490a99cb560513c150a8--4d760e144a6d4d69ab40060bbaa309e3
20c0c4b249034602bb4eef1e0021d76e
RY(theta₂₅)
4d760e144a6d4d69ab40060bbaa309e3--20c0c4b249034602bb4eef1e0021d76e
4d49ca2848ae469eb121c7c7f95f3950
RX(theta₃₁)
20c0c4b249034602bb4eef1e0021d76e--4d49ca2848ae469eb121c7c7f95f3950
ba7cacd98a0744f9b026aa5223840a50
4d49ca2848ae469eb121c7c7f95f3950--ba7cacd98a0744f9b026aa5223840a50
ba7cacd98a0744f9b026aa5223840a50--f7955c065b3d48c5bf175e6227658285
7e10f80bd1824f688a31e3bba43a8ed5
ba215b70132845aa8f32a5570a4cb6dd
RX(theta₂)
519752a7f0fc4a22bb18c1e9709ffc9e--ba215b70132845aa8f32a5570a4cb6dd
9020425fe5f743f39e0eeac634e871f6
3
452d9e69e6b240b6ae34b36ca50c7598
RY(theta₈)
ba215b70132845aa8f32a5570a4cb6dd--452d9e69e6b240b6ae34b36ca50c7598
cc323fa364d647018076b4d769db6975
RX(theta₁₄)
452d9e69e6b240b6ae34b36ca50c7598--cc323fa364d647018076b4d769db6975
9aa542ed9e9d4692bb6efa3f748f19e5
HamEvo
cc323fa364d647018076b4d769db6975--9aa542ed9e9d4692bb6efa3f748f19e5
2e1a42f09e384c7eb435ce7191c8f0a5
RX(theta₂₀)
9aa542ed9e9d4692bb6efa3f748f19e5--2e1a42f09e384c7eb435ce7191c8f0a5
408a3bf66b9440f6a9dfd62485c1ca28
RY(theta₂₆)
2e1a42f09e384c7eb435ce7191c8f0a5--408a3bf66b9440f6a9dfd62485c1ca28
9f05726d717341f58c679633770f8f42
RX(theta₃₂)
408a3bf66b9440f6a9dfd62485c1ca28--9f05726d717341f58c679633770f8f42
3bb2ef0e25f74e168b840784f2cd3a68
HamEvo
9f05726d717341f58c679633770f8f42--3bb2ef0e25f74e168b840784f2cd3a68
3bb2ef0e25f74e168b840784f2cd3a68--7e10f80bd1824f688a31e3bba43a8ed5
90b6f022f4564c4795282d0937333229
43ef04dc6a5e4253a59d7dee169695b1
RX(theta₃)
9020425fe5f743f39e0eeac634e871f6--43ef04dc6a5e4253a59d7dee169695b1
73b72ecf2a0549cc8aa8897f50421f11
4
0a97810c04f14472a25edf0cddf2bc10
RY(theta₉)
43ef04dc6a5e4253a59d7dee169695b1--0a97810c04f14472a25edf0cddf2bc10
7ee4e0a638f949c094cde916e66cb8a2
RX(theta₁₅)
0a97810c04f14472a25edf0cddf2bc10--7ee4e0a638f949c094cde916e66cb8a2
fc13a780745d46088773ccf046c43aa5
t = theta_t₀
7ee4e0a638f949c094cde916e66cb8a2--fc13a780745d46088773ccf046c43aa5
9f444d5cd110408ab37054208df59189
RX(theta₂₁)
fc13a780745d46088773ccf046c43aa5--9f444d5cd110408ab37054208df59189
42f830f558cc4d1a91c0b5f4116302e0
RY(theta₂₇)
9f444d5cd110408ab37054208df59189--42f830f558cc4d1a91c0b5f4116302e0
2edce6fa705a401cbbf97f4eb5cca29e
RX(theta₃₃)
42f830f558cc4d1a91c0b5f4116302e0--2edce6fa705a401cbbf97f4eb5cca29e
bb236b2eea794fce8ad1b43a1adb4f6b
t = theta_t₁
2edce6fa705a401cbbf97f4eb5cca29e--bb236b2eea794fce8ad1b43a1adb4f6b
bb236b2eea794fce8ad1b43a1adb4f6b--90b6f022f4564c4795282d0937333229
fe06fa3cc57b4707be4e93dd7ede61d8
4b5bd2d567a44034959798e7f6159bb8
RX(theta₄)
73b72ecf2a0549cc8aa8897f50421f11--4b5bd2d567a44034959798e7f6159bb8
e637df5ce83e49a2b3e5a6a9239b32eb
5
c331ebf78d2f475c9f693384ba031c34
RY(theta₁₀)
4b5bd2d567a44034959798e7f6159bb8--c331ebf78d2f475c9f693384ba031c34
1770629ccf8e49eaa59b2a84467f4365
RX(theta₁₆)
c331ebf78d2f475c9f693384ba031c34--1770629ccf8e49eaa59b2a84467f4365
21f585b97476415587fa04dd19322420
1770629ccf8e49eaa59b2a84467f4365--21f585b97476415587fa04dd19322420
2e6f90625ca84a0796dd49bac1014409
RX(theta₂₂)
21f585b97476415587fa04dd19322420--2e6f90625ca84a0796dd49bac1014409
6478cd759bdb4a66899e28730d7d3729
RY(theta₂₈)
2e6f90625ca84a0796dd49bac1014409--6478cd759bdb4a66899e28730d7d3729
0c9c4dc42fca42b4b867421ddbaca68e
RX(theta₃₄)
6478cd759bdb4a66899e28730d7d3729--0c9c4dc42fca42b4b867421ddbaca68e
ecfeb29711df4b0eadac674434041506
0c9c4dc42fca42b4b867421ddbaca68e--ecfeb29711df4b0eadac674434041506
ecfeb29711df4b0eadac674434041506--fe06fa3cc57b4707be4e93dd7ede61d8
ee304360bcaf4519a47b20f60b5b5596
eb4c9814d3ce446eb604736b83af5eaf
RX(theta₅)
e637df5ce83e49a2b3e5a6a9239b32eb--eb4c9814d3ce446eb604736b83af5eaf
9b629e54e0cc48fdaef6a78db152fcd9
RY(theta₁₁)
eb4c9814d3ce446eb604736b83af5eaf--9b629e54e0cc48fdaef6a78db152fcd9
f95d80069a234b1f9383fb810509f272
RX(theta₁₇)
9b629e54e0cc48fdaef6a78db152fcd9--f95d80069a234b1f9383fb810509f272
cdad3b155bb1456d99e9ad158786acbc
f95d80069a234b1f9383fb810509f272--cdad3b155bb1456d99e9ad158786acbc
207c328350e1444d8f429b5261b9e2ab
RX(theta₂₃)
cdad3b155bb1456d99e9ad158786acbc--207c328350e1444d8f429b5261b9e2ab
4d1ea298ef3540efa8aa3ca737ee0864
RY(theta₂₉)
207c328350e1444d8f429b5261b9e2ab--4d1ea298ef3540efa8aa3ca737ee0864
ffb76daec2174398a7722277e8b201ea
RX(theta₃₅)
4d1ea298ef3540efa8aa3ca737ee0864--ffb76daec2174398a7722277e8b201ea
dfd5b6bccec64808bc1306f3f1db884e
ffb76daec2174398a7722277e8b201ea--dfd5b6bccec64808bc1306f3f1db884e
dfd5b6bccec64808bc1306f3f1db884e--ee304360bcaf4519a47b20f60b5b5596
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_d2a530c5c7754d249ede83301cc503cf
BPMA-1
cluster_f1a8824a02c34517915c336d033031ac
BPMA-0
8a808c65d4aa4a4f97e45269b405fb0c
0
5317c940ba2f4314a30d8d4a03ccfef8
RX(iia_α₀₀)
8a808c65d4aa4a4f97e45269b405fb0c--5317c940ba2f4314a30d8d4a03ccfef8
8981c0971f854e91a1afbea1e388145e
1
a8dcde1f6e214897af445e59d36a6cb6
RY(iia_α₀₃)
5317c940ba2f4314a30d8d4a03ccfef8--a8dcde1f6e214897af445e59d36a6cb6
8cedf52ab834467d8b084d39fa30408a
a8dcde1f6e214897af445e59d36a6cb6--8cedf52ab834467d8b084d39fa30408a
ee76ca6db6c14108a075b233ebe32639
8cedf52ab834467d8b084d39fa30408a--ee76ca6db6c14108a075b233ebe32639
9c7be0f93ca042199f693759d06a4445
RX(iia_γ₀₀)
ee76ca6db6c14108a075b233ebe32639--9c7be0f93ca042199f693759d06a4445
9be6fa070f634a47b8fd431b0b54bb6c
9c7be0f93ca042199f693759d06a4445--9be6fa070f634a47b8fd431b0b54bb6c
7b4a98e2cae048b4bb40d620f3ec0861
9be6fa070f634a47b8fd431b0b54bb6c--7b4a98e2cae048b4bb40d620f3ec0861
41d45a80c0a34337aa131263dda7d2cd
RY(iia_β₀₃)
7b4a98e2cae048b4bb40d620f3ec0861--41d45a80c0a34337aa131263dda7d2cd
37f25d318fd74bf2bc26d9207b0fb6f1
RX(iia_β₀₀)
41d45a80c0a34337aa131263dda7d2cd--37f25d318fd74bf2bc26d9207b0fb6f1
2cd1ff38896d4dccbcd7c4f35544bf3b
RX(iia_α₁₀)
37f25d318fd74bf2bc26d9207b0fb6f1--2cd1ff38896d4dccbcd7c4f35544bf3b
eb268809ecec4c7ead59de6b6e7062a8
RY(iia_α₁₃)
2cd1ff38896d4dccbcd7c4f35544bf3b--eb268809ecec4c7ead59de6b6e7062a8
6199da861a6d4cb5be035dae3601b3fa
eb268809ecec4c7ead59de6b6e7062a8--6199da861a6d4cb5be035dae3601b3fa
205abe5c6265422ea898c07801b578ff
6199da861a6d4cb5be035dae3601b3fa--205abe5c6265422ea898c07801b578ff
fafb7d21cdcf47168f01c189b8a79ea1
RX(iia_γ₁₀)
205abe5c6265422ea898c07801b578ff--fafb7d21cdcf47168f01c189b8a79ea1
29b24cff29254f2aa7a5ca5d72ad4872
fafb7d21cdcf47168f01c189b8a79ea1--29b24cff29254f2aa7a5ca5d72ad4872
9bf167862ed449cba2b2dba712b27923
29b24cff29254f2aa7a5ca5d72ad4872--9bf167862ed449cba2b2dba712b27923
62ecfc2785ef4875992460ce709e0cdd
RY(iia_β₁₃)
9bf167862ed449cba2b2dba712b27923--62ecfc2785ef4875992460ce709e0cdd
b1cc91c0cdfa4be4861403a53d88c106
RX(iia_β₁₀)
62ecfc2785ef4875992460ce709e0cdd--b1cc91c0cdfa4be4861403a53d88c106
04e46c826ae6495685f5bf6832cf7077
b1cc91c0cdfa4be4861403a53d88c106--04e46c826ae6495685f5bf6832cf7077
c5a371ab0a0a4583b821b71b3e5adddc
9342594b479048d99cfe4255b711af13
RX(iia_α₀₁)
8981c0971f854e91a1afbea1e388145e--9342594b479048d99cfe4255b711af13
0479c43b732145238a869ec8a72bbfed
2
194e0bb01f40413c8ba446d698a134bf
RY(iia_α₀₄)
9342594b479048d99cfe4255b711af13--194e0bb01f40413c8ba446d698a134bf
9d0da7551ee247329d3bda4145ed6fd9
X
194e0bb01f40413c8ba446d698a134bf--9d0da7551ee247329d3bda4145ed6fd9
9d0da7551ee247329d3bda4145ed6fd9--8cedf52ab834467d8b084d39fa30408a
6744a2ef0cea409b91b8f83f4043de2a
9d0da7551ee247329d3bda4145ed6fd9--6744a2ef0cea409b91b8f83f4043de2a
aa9f8eb2d9e14c3e9052eed2cc30848f
RX(iia_γ₀₁)
6744a2ef0cea409b91b8f83f4043de2a--aa9f8eb2d9e14c3e9052eed2cc30848f
cbd3699f04644a6a99b41d6153190279
aa9f8eb2d9e14c3e9052eed2cc30848f--cbd3699f04644a6a99b41d6153190279
886f8ceda1c741a2b755989da6ce2ce6
X
cbd3699f04644a6a99b41d6153190279--886f8ceda1c741a2b755989da6ce2ce6
886f8ceda1c741a2b755989da6ce2ce6--7b4a98e2cae048b4bb40d620f3ec0861
279964b88919417d899d798e79a89491
RY(iia_β₀₄)
886f8ceda1c741a2b755989da6ce2ce6--279964b88919417d899d798e79a89491
76d9f781e0434a5cb7d87746a3cad6cb
RX(iia_β₀₁)
279964b88919417d899d798e79a89491--76d9f781e0434a5cb7d87746a3cad6cb
58a92efa9e5d4d01b7ea146a2f5d684c
RX(iia_α₁₁)
76d9f781e0434a5cb7d87746a3cad6cb--58a92efa9e5d4d01b7ea146a2f5d684c
186a8d14ae334dd8b53dde5dca1410fc
RY(iia_α₁₄)
58a92efa9e5d4d01b7ea146a2f5d684c--186a8d14ae334dd8b53dde5dca1410fc
e3213edbaafa4891b4e7af12984676ae
X
186a8d14ae334dd8b53dde5dca1410fc--e3213edbaafa4891b4e7af12984676ae
e3213edbaafa4891b4e7af12984676ae--6199da861a6d4cb5be035dae3601b3fa
7b8b107cebf746f38346906556c6394a
e3213edbaafa4891b4e7af12984676ae--7b8b107cebf746f38346906556c6394a
74dcf638e5a7487da1832dbf08bca58d
RX(iia_γ₁₁)
7b8b107cebf746f38346906556c6394a--74dcf638e5a7487da1832dbf08bca58d
03c1df20d2264d9ca4cd7c47712233cc
74dcf638e5a7487da1832dbf08bca58d--03c1df20d2264d9ca4cd7c47712233cc
7af7294ae57d481e8846d098ee6963d1
X
03c1df20d2264d9ca4cd7c47712233cc--7af7294ae57d481e8846d098ee6963d1
7af7294ae57d481e8846d098ee6963d1--9bf167862ed449cba2b2dba712b27923
da0043ec684549b49e254f606f93e2b8
RY(iia_β₁₄)
7af7294ae57d481e8846d098ee6963d1--da0043ec684549b49e254f606f93e2b8
632d25833ea84ac480399f11302ca0a1
RX(iia_β₁₁)
da0043ec684549b49e254f606f93e2b8--632d25833ea84ac480399f11302ca0a1
632d25833ea84ac480399f11302ca0a1--c5a371ab0a0a4583b821b71b3e5adddc
9feac6380d9947838cf01b79171770ea
0e690bfbf29e434fb8f17a5b2adf25fa
RX(iia_α₀₂)
0479c43b732145238a869ec8a72bbfed--0e690bfbf29e434fb8f17a5b2adf25fa
ab4c0ef093844365976a6e31f515d50b
RY(iia_α₀₅)
0e690bfbf29e434fb8f17a5b2adf25fa--ab4c0ef093844365976a6e31f515d50b
510924a3e6d54a9b99f91af657cfd6c0
ab4c0ef093844365976a6e31f515d50b--510924a3e6d54a9b99f91af657cfd6c0
a4edb68ba65041bbac129f5470f2756c
X
510924a3e6d54a9b99f91af657cfd6c0--a4edb68ba65041bbac129f5470f2756c
a4edb68ba65041bbac129f5470f2756c--6744a2ef0cea409b91b8f83f4043de2a
c5f0a3e6cf404add90d614669bc8b160
RX(iia_γ₀₂)
a4edb68ba65041bbac129f5470f2756c--c5f0a3e6cf404add90d614669bc8b160
b066f3e9ad3040c99bcae376ec6a8e98
X
c5f0a3e6cf404add90d614669bc8b160--b066f3e9ad3040c99bcae376ec6a8e98
b066f3e9ad3040c99bcae376ec6a8e98--cbd3699f04644a6a99b41d6153190279
562b0646d2424471bb3056c912ce7f99
b066f3e9ad3040c99bcae376ec6a8e98--562b0646d2424471bb3056c912ce7f99
d9fb7a7d819c413cbf16ec315f99963d
RY(iia_β₀₅)
562b0646d2424471bb3056c912ce7f99--d9fb7a7d819c413cbf16ec315f99963d
78fd524f18bd4859badce6fdd4db1980
RX(iia_β₀₂)
d9fb7a7d819c413cbf16ec315f99963d--78fd524f18bd4859badce6fdd4db1980
43203b5470be41bdb8e120b2d84323da
RX(iia_α₁₂)
78fd524f18bd4859badce6fdd4db1980--43203b5470be41bdb8e120b2d84323da
8f39655001a44e7c8e3e11be90af0786
RY(iia_α₁₅)
43203b5470be41bdb8e120b2d84323da--8f39655001a44e7c8e3e11be90af0786
050c4e2b37734bc994207aabf414fe26
8f39655001a44e7c8e3e11be90af0786--050c4e2b37734bc994207aabf414fe26
be39b04ac0444572b36e70e48643bac9
X
050c4e2b37734bc994207aabf414fe26--be39b04ac0444572b36e70e48643bac9
be39b04ac0444572b36e70e48643bac9--7b8b107cebf746f38346906556c6394a
a055b876bc644d0e9aee9e241b2309a0
RX(iia_γ₁₂)
be39b04ac0444572b36e70e48643bac9--a055b876bc644d0e9aee9e241b2309a0
226b783b2dec4d9b8ff894d119e3e363
X
a055b876bc644d0e9aee9e241b2309a0--226b783b2dec4d9b8ff894d119e3e363
226b783b2dec4d9b8ff894d119e3e363--03c1df20d2264d9ca4cd7c47712233cc
678a0cc4e5f44aaf9abc35e1a7fd69cd
226b783b2dec4d9b8ff894d119e3e363--678a0cc4e5f44aaf9abc35e1a7fd69cd
aee8af2dfc4a4c878ab086ffd79f711f
RY(iia_β₁₅)
678a0cc4e5f44aaf9abc35e1a7fd69cd--aee8af2dfc4a4c878ab086ffd79f711f
7398f25e330549848050a32d995547c2
RX(iia_β₁₂)
aee8af2dfc4a4c878ab086ffd79f711f--7398f25e330549848050a32d995547c2
7398f25e330549848050a32d995547c2--9feac6380d9947838cf01b79171770ea