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_7031ca46bfdd4d869c1b8b94e7a87473
Constant Chebyshev FM
cluster_9299a285fc2a46bca6739b23cfa07974
Constant Fourier FM
ea728b87a68e4a66b063d0725a537382
0
c2397c34b0c94d68bda9bda104945860
RX(phi)
ea728b87a68e4a66b063d0725a537382--c2397c34b0c94d68bda9bda104945860
6a41d588f8374e10a9005df8ea206c2d
1
7ba9c3e70dbb44b79fcbc221c90c676f
RX(acos(phi))
c2397c34b0c94d68bda9bda104945860--7ba9c3e70dbb44b79fcbc221c90c676f
a09f8f7ce23e489caa437d70e9a1caf0
7ba9c3e70dbb44b79fcbc221c90c676f--a09f8f7ce23e489caa437d70e9a1caf0
136e7d354cd64c238602159f01b0665b
4cd90b947c4e4a77b5f5dadd42930dc9
RX(phi)
6a41d588f8374e10a9005df8ea206c2d--4cd90b947c4e4a77b5f5dadd42930dc9
ceccc8fba8184c3d8eca1fae08e05542
2
fa23264c3a8d40e3b0635760da89872a
RX(acos(phi))
4cd90b947c4e4a77b5f5dadd42930dc9--fa23264c3a8d40e3b0635760da89872a
fa23264c3a8d40e3b0635760da89872a--136e7d354cd64c238602159f01b0665b
53fdc4d6e8ca4eff8bbd6a97c87b5c0d
dbc615384b82491691d14982f3d8efa4
RX(phi)
ceccc8fba8184c3d8eca1fae08e05542--dbc615384b82491691d14982f3d8efa4
a2dcb2935f64434f9c33baf97891bc59
RX(acos(phi))
dbc615384b82491691d14982f3d8efa4--a2dcb2935f64434f9c33baf97891bc59
a2dcb2935f64434f9c33baf97891bc59--53fdc4d6e8ca4eff8bbd6a97c87b5c0d
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_5d07f2461c32440a830c1a8ca138eed0
Constant <function custom_fn at 0x7fac58447400> FM
cluster_21c48b9553824fe99120d42daeb96faa
Constant asin FM
230025e3f05a4c558e80376f9dfad52b
0
f5e9843c079647ddbbd50fb6073e5dff
RX(asin(phi))
230025e3f05a4c558e80376f9dfad52b--f5e9843c079647ddbbd50fb6073e5dff
fac14a0ebfa845b3ae3dfb39a4459335
1
4398136f7a404e588246f2e6dd854683
RX(phi**2 + asin(phi))
f5e9843c079647ddbbd50fb6073e5dff--4398136f7a404e588246f2e6dd854683
feadc204136741c9a99829e50bd8c991
4398136f7a404e588246f2e6dd854683--feadc204136741c9a99829e50bd8c991
a2d5c8085ddb4f239c44a71c703c8b4e
5758bc3430c64c7fb4110b3a2430d81d
RX(asin(phi))
fac14a0ebfa845b3ae3dfb39a4459335--5758bc3430c64c7fb4110b3a2430d81d
8cde3191b8204659ba92fbbbab2a58a4
2
4646c6efb07649d088328536e0a00039
RX(phi**2 + asin(phi))
5758bc3430c64c7fb4110b3a2430d81d--4646c6efb07649d088328536e0a00039
4646c6efb07649d088328536e0a00039--a2d5c8085ddb4f239c44a71c703c8b4e
8564fdc86be0402a85f4673c87e131c9
dad2425950b743dc92a0435e584a2c9e
RX(asin(phi))
8cde3191b8204659ba92fbbbab2a58a4--dad2425950b743dc92a0435e584a2c9e
0d70660d694b4204ad508db8d9e29937
RX(phi**2 + asin(phi))
dad2425950b743dc92a0435e584a2c9e--0d70660d694b4204ad508db8d9e29937
0d70660d694b4204ad508db8d9e29937--8564fdc86be0402a85f4673c87e131c9
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_01ca2d81bf0c4337b2f42b505f9ad3d6
Exponential Fourier FM
cluster_7369f9cefadb4feb9d367a99fed5100f
Constant Fourier FM
cluster_3755686027c7440a8168d8861a1c2ce8
Tower Fourier FM
2e9a08b20a704e58bdbf79e3791bef2d
0
0e305557724f403b8446031cf4140ef9
RX(phi)
2e9a08b20a704e58bdbf79e3791bef2d--0e305557724f403b8446031cf4140ef9
a564ed7799a142999146afa2efc5f8e2
1
92880dd623894ffcaae8f931a30fa63a
RX(1.0*phi)
0e305557724f403b8446031cf4140ef9--92880dd623894ffcaae8f931a30fa63a
41f5be0452914359a8314757c30ce560
RX(1.0*phi)
92880dd623894ffcaae8f931a30fa63a--41f5be0452914359a8314757c30ce560
ea0218b09c66431e949a8f46e6f0925a
41f5be0452914359a8314757c30ce560--ea0218b09c66431e949a8f46e6f0925a
2e4639bc6f364349ae15578f92bdd9e1
13fed48f61d549329a8ca38f8dfdad71
RX(phi)
a564ed7799a142999146afa2efc5f8e2--13fed48f61d549329a8ca38f8dfdad71
8d79313868804b90beb583ab953a75a0
2
44c67dac41a1495e8f3895f4681dfdd3
RX(2.0*phi)
13fed48f61d549329a8ca38f8dfdad71--44c67dac41a1495e8f3895f4681dfdd3
983cc3367a734c68afa8e5f9e9199a9c
RX(2.0*phi)
44c67dac41a1495e8f3895f4681dfdd3--983cc3367a734c68afa8e5f9e9199a9c
983cc3367a734c68afa8e5f9e9199a9c--2e4639bc6f364349ae15578f92bdd9e1
841896a3f4264cbbb1eb8db03e30ad7c
b657c19efc0549e9af79b1765c0ed258
RX(phi)
8d79313868804b90beb583ab953a75a0--b657c19efc0549e9af79b1765c0ed258
a3cf688068b24d499378bd2a9bf2f764
3
17fc6107c2834dfb91500a4d88f0f6b2
RX(3.0*phi)
b657c19efc0549e9af79b1765c0ed258--17fc6107c2834dfb91500a4d88f0f6b2
413a24954ab2493aa70ea17e04a3ddab
RX(4.0*phi)
17fc6107c2834dfb91500a4d88f0f6b2--413a24954ab2493aa70ea17e04a3ddab
413a24954ab2493aa70ea17e04a3ddab--841896a3f4264cbbb1eb8db03e30ad7c
3fdd156442ae41ac859eb9d755c58c16
3cf73f427af64e6586ebdca9e78b5315
RX(phi)
a3cf688068b24d499378bd2a9bf2f764--3cf73f427af64e6586ebdca9e78b5315
36e3915998f74de3a70adbf1729beb93
4
1b02967907ab4b1ab971f9a2f944ec72
RX(4.0*phi)
3cf73f427af64e6586ebdca9e78b5315--1b02967907ab4b1ab971f9a2f944ec72
b7230bb4cce846faaf6b2f87d5331acc
RX(8.0*phi)
1b02967907ab4b1ab971f9a2f944ec72--b7230bb4cce846faaf6b2f87d5331acc
b7230bb4cce846faaf6b2f87d5331acc--3fdd156442ae41ac859eb9d755c58c16
7c67e6d9440e464f869d6a0fdad899a7
741d8299bc64461c895a5b005dd08adc
RX(phi)
36e3915998f74de3a70adbf1729beb93--741d8299bc64461c895a5b005dd08adc
db4bb215f2cd4696908797eb489df8ae
RX(5.0*phi)
741d8299bc64461c895a5b005dd08adc--db4bb215f2cd4696908797eb489df8ae
301b54d0e8a1424ebf3bfe66d6a6df9f
RX(16.0*phi)
db4bb215f2cd4696908797eb489df8ae--301b54d0e8a1424ebf3bfe66d6a6df9f
301b54d0e8a1424ebf3bfe66d6a6df9f--7c67e6d9440e464f869d6a0fdad899a7
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
f23a0022bbad4dd1975c5346c78ede90
0
bb39eca600dc43e596be031d21f7cfeb
RX(1.0*acos(phi))
f23a0022bbad4dd1975c5346c78ede90--bb39eca600dc43e596be031d21f7cfeb
8581a39cc62d43c7b93c6f9263d2fb43
1
84c4ec2d2c6d4bbb8f812ac4d4bc8d2d
bb39eca600dc43e596be031d21f7cfeb--84c4ec2d2c6d4bbb8f812ac4d4bc8d2d
97d1686cd03d43519ee3743b42a1cf16
43452175c07c469091893fa512ea4849
RX(1.414*acos(phi))
8581a39cc62d43c7b93c6f9263d2fb43--43452175c07c469091893fa512ea4849
d383c4f21edd4226b7cbfafbb47f35cc
2
43452175c07c469091893fa512ea4849--97d1686cd03d43519ee3743b42a1cf16
f5c424a65bb9460f8a83d8d4f23951db
8fe81e3c8ef04b4d82b4cbabc5d34184
RX(1.732*acos(phi))
d383c4f21edd4226b7cbfafbb47f35cc--8fe81e3c8ef04b4d82b4cbabc5d34184
c8758149a3f8414b9057039f4df6882a
3
8fe81e3c8ef04b4d82b4cbabc5d34184--f5c424a65bb9460f8a83d8d4f23951db
b72d25655ba5483ea6d993e9fe32223f
d1a6c8ac914c43f888b67c3342fc06e0
RX(2.0*acos(phi))
c8758149a3f8414b9057039f4df6882a--d1a6c8ac914c43f888b67c3342fc06e0
61f6ba04770141b3bc72131e8b89fddd
4
d1a6c8ac914c43f888b67c3342fc06e0--b72d25655ba5483ea6d993e9fe32223f
899215525bfb4fe8b90e1237facf9918
85320d74e25e4e3bad9b95cb2683078b
RX(2.236*acos(phi))
61f6ba04770141b3bc72131e8b89fddd--85320d74e25e4e3bad9b95cb2683078b
85320d74e25e4e3bad9b95cb2683078b--899215525bfb4fe8b90e1237facf9918
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
d2a8e92e6ef24a31bcb8342e61b4bea3
0
15e639cd4d0a415b8b5e500e654d9c2b
RX(1.0*phi*w₀)
d2a8e92e6ef24a31bcb8342e61b4bea3--15e639cd4d0a415b8b5e500e654d9c2b
203b28540c944be2ac56c96e673ac2a5
1
476599adee564e8a89580f535a0102f7
15e639cd4d0a415b8b5e500e654d9c2b--476599adee564e8a89580f535a0102f7
6394ba09c6464aedb3a3e7e3036ed19c
9c79ceea77614077a888bd8db33884e7
RX(2.0*phi*w₁)
203b28540c944be2ac56c96e673ac2a5--9c79ceea77614077a888bd8db33884e7
cc38ba84a075408e96488a1a802523c7
2
9c79ceea77614077a888bd8db33884e7--6394ba09c6464aedb3a3e7e3036ed19c
c8816584645d4d9393eb1fcf5d19d322
bcdcd0337b6044c58d1ce474a3287dcd
RX(4.0*phi*w₂)
cc38ba84a075408e96488a1a802523c7--bcdcd0337b6044c58d1ce474a3287dcd
eff6bbaae1cb4ac2a8d61e947c93f0f0
3
bcdcd0337b6044c58d1ce474a3287dcd--c8816584645d4d9393eb1fcf5d19d322
d929088cd1534c3cb3a0b342cfafa25f
058b27d6993040cb83ce7e4494a9de87
RX(8.0*phi*w₃)
eff6bbaae1cb4ac2a8d61e947c93f0f0--058b27d6993040cb83ce7e4494a9de87
c8c5dca2b38d4ce88313cf72cf5d14ca
4
058b27d6993040cb83ce7e4494a9de87--d929088cd1534c3cb3a0b342cfafa25f
991da450efc54d27840e58a3c465ad86
6d9f25b2bb584120bfe0a05ac1812786
RX(16.0*phi*w₄)
c8c5dca2b38d4ce88313cf72cf5d14ca--6d9f25b2bb584120bfe0a05ac1812786
6d9f25b2bb584120bfe0a05ac1812786--991da450efc54d27840e58a3c465ad86
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
2b24e7ef99fa4f948eb822a82e317cdb
0
959c056ebe36475f8a45212113f1ad30
RY(80.0*acos(w₄*(0.667*x + 1.667)))
2b24e7ef99fa4f948eb822a82e317cdb--959c056ebe36475f8a45212113f1ad30
5d7c7d1beabe4c23837714384eb5ee7b
1
b0220102930840ab9e0c46567d3dc6f6
959c056ebe36475f8a45212113f1ad30--b0220102930840ab9e0c46567d3dc6f6
30fbc58890c64ad7a6e84b7d998fc8f0
1d83399a3a8040718135a9ba55ea1c2d
RY(40.0*acos(w₃*(0.667*x + 1.667)))
5d7c7d1beabe4c23837714384eb5ee7b--1d83399a3a8040718135a9ba55ea1c2d
e75a21ac774b403cac5f563b4809d119
2
1d83399a3a8040718135a9ba55ea1c2d--30fbc58890c64ad7a6e84b7d998fc8f0
4b9be8efb58c446981c5b39ac2a1a625
0dd4039eb717420fb20d8ace3b733316
RY(20.0*acos(w₂*(0.667*x + 1.667)))
e75a21ac774b403cac5f563b4809d119--0dd4039eb717420fb20d8ace3b733316
57cd2ee69c35479d85a0580b14d0fdfe
3
0dd4039eb717420fb20d8ace3b733316--4b9be8efb58c446981c5b39ac2a1a625
4352ec26944d4e86bc6d58e3567bc5a8
bf6dcf1c22394377b626f1f21d735549
RY(10.0*acos(w₁*(0.667*x + 1.667)))
57cd2ee69c35479d85a0580b14d0fdfe--bf6dcf1c22394377b626f1f21d735549
a2b7905b88364ab8a6082c4549b2717a
4
bf6dcf1c22394377b626f1f21d735549--4352ec26944d4e86bc6d58e3567bc5a8
bd4905c06beb448c8fdaf083f53458cc
bb51b0dcd3fc4a08a7851a5ac431d9d0
RY(5.0*acos(w₀*(0.667*x + 1.667)))
a2b7905b88364ab8a6082c4549b2717a--bb51b0dcd3fc4a08a7851a5ac431d9d0
bb51b0dcd3fc4a08a7851a5ac431d9d0--bd4905c06beb448c8fdaf083f53458cc
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
8a43f95f63ed4b049e10ec699568a9c5
0
fc91f6a2275d40b79457429236480511
RX(theta₀)
8a43f95f63ed4b049e10ec699568a9c5--fc91f6a2275d40b79457429236480511
a97c835d768e41f3b1681e76597fdeab
1
d6bc181fb5a24c8d85bc8a780e4dab41
RY(theta₃)
fc91f6a2275d40b79457429236480511--d6bc181fb5a24c8d85bc8a780e4dab41
a52b905c2eea44f09a51eedc2aaca6db
RX(theta₆)
d6bc181fb5a24c8d85bc8a780e4dab41--a52b905c2eea44f09a51eedc2aaca6db
8678574d3a1149e4acb4a15575e88ee5
a52b905c2eea44f09a51eedc2aaca6db--8678574d3a1149e4acb4a15575e88ee5
c8382bea77a54dbca31375d37cb7dfd7
8678574d3a1149e4acb4a15575e88ee5--c8382bea77a54dbca31375d37cb7dfd7
26287c164163484791fe85ca81778b10
RX(theta₉)
c8382bea77a54dbca31375d37cb7dfd7--26287c164163484791fe85ca81778b10
255e114950c94bafb7ab13d5b54e85d6
RY(theta₁₂)
26287c164163484791fe85ca81778b10--255e114950c94bafb7ab13d5b54e85d6
349a6e5404e1480591e5f89181746c44
RX(theta₁₅)
255e114950c94bafb7ab13d5b54e85d6--349a6e5404e1480591e5f89181746c44
81c8a15c084e45388e30d377a35625e7
349a6e5404e1480591e5f89181746c44--81c8a15c084e45388e30d377a35625e7
ff77fdb5a4ab4106968f619ece5de2e5
81c8a15c084e45388e30d377a35625e7--ff77fdb5a4ab4106968f619ece5de2e5
b53dd93dbc23459480beb234618b375d
ff77fdb5a4ab4106968f619ece5de2e5--b53dd93dbc23459480beb234618b375d
7b050a4b4a2841e0b55105e589d4456c
df32064bbfaf4749a2e1bb6284b3fb81
RX(theta₁)
a97c835d768e41f3b1681e76597fdeab--df32064bbfaf4749a2e1bb6284b3fb81
4ca2e3e1cdbb49489f5939f686ff456c
2
322adbbf3d474001bfe816f65922f10e
RY(theta₄)
df32064bbfaf4749a2e1bb6284b3fb81--322adbbf3d474001bfe816f65922f10e
2e6b35b6d108445aa4fb49fdef5c8a69
RX(theta₇)
322adbbf3d474001bfe816f65922f10e--2e6b35b6d108445aa4fb49fdef5c8a69
8f11f2264b254089acc66335943e2401
X
2e6b35b6d108445aa4fb49fdef5c8a69--8f11f2264b254089acc66335943e2401
8f11f2264b254089acc66335943e2401--8678574d3a1149e4acb4a15575e88ee5
0519aab726fc44b09f81e8a77def0b6e
8f11f2264b254089acc66335943e2401--0519aab726fc44b09f81e8a77def0b6e
038b6ecf3b5f42e5b9bb4da904acc70d
RX(theta₁₀)
0519aab726fc44b09f81e8a77def0b6e--038b6ecf3b5f42e5b9bb4da904acc70d
9f778410315c47ccb38631fcbcbae005
RY(theta₁₃)
038b6ecf3b5f42e5b9bb4da904acc70d--9f778410315c47ccb38631fcbcbae005
a480cf9d4b574f838a286d738efa5c18
RX(theta₁₆)
9f778410315c47ccb38631fcbcbae005--a480cf9d4b574f838a286d738efa5c18
03ec0a18248e400aab7a1aef441acb01
X
a480cf9d4b574f838a286d738efa5c18--03ec0a18248e400aab7a1aef441acb01
03ec0a18248e400aab7a1aef441acb01--81c8a15c084e45388e30d377a35625e7
c1c6ee10f8004d3aaa5d1e42c13b0e8e
03ec0a18248e400aab7a1aef441acb01--c1c6ee10f8004d3aaa5d1e42c13b0e8e
c1c6ee10f8004d3aaa5d1e42c13b0e8e--7b050a4b4a2841e0b55105e589d4456c
a999603afbf54d13a442a4e9ff20873f
63cfb43cf932469281559e13aabf71a8
RX(theta₂)
4ca2e3e1cdbb49489f5939f686ff456c--63cfb43cf932469281559e13aabf71a8
760976d6cec8464082897e0d39df5a14
RY(theta₅)
63cfb43cf932469281559e13aabf71a8--760976d6cec8464082897e0d39df5a14
a900e06ed53a454aafceab4277251761
RX(theta₈)
760976d6cec8464082897e0d39df5a14--a900e06ed53a454aafceab4277251761
89f5d728f4fa4c09bf1199e8d3e92415
a900e06ed53a454aafceab4277251761--89f5d728f4fa4c09bf1199e8d3e92415
7276392f648b4e34b4138306f5aff4f3
X
89f5d728f4fa4c09bf1199e8d3e92415--7276392f648b4e34b4138306f5aff4f3
7276392f648b4e34b4138306f5aff4f3--0519aab726fc44b09f81e8a77def0b6e
f7d2a9e21c7f4267a4006027cab46afa
RX(theta₁₁)
7276392f648b4e34b4138306f5aff4f3--f7d2a9e21c7f4267a4006027cab46afa
8cfcb0b0e6104887a112fb3189de7543
RY(theta₁₄)
f7d2a9e21c7f4267a4006027cab46afa--8cfcb0b0e6104887a112fb3189de7543
cef2398c7fde458baa41d978834649e4
RX(theta₁₇)
8cfcb0b0e6104887a112fb3189de7543--cef2398c7fde458baa41d978834649e4
7de3baa1e2ba441ca794c96875aaf250
cef2398c7fde458baa41d978834649e4--7de3baa1e2ba441ca794c96875aaf250
da354da6a8f04d9db50e695d82475396
X
7de3baa1e2ba441ca794c96875aaf250--da354da6a8f04d9db50e695d82475396
da354da6a8f04d9db50e695d82475396--c1c6ee10f8004d3aaa5d1e42c13b0e8e
da354da6a8f04d9db50e695d82475396--a999603afbf54d13a442a4e9ff20873f
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
4c24dbb9b9054fe69278c2eecf918faa
0
1751cf4e283a464ca35a1db759805241
RX(phi₀)
4c24dbb9b9054fe69278c2eecf918faa--1751cf4e283a464ca35a1db759805241
dadd585e194f4511992961ac586c8f69
1
5dfc6af601ca4590909d798b2fa2caa3
RY(phi₃)
1751cf4e283a464ca35a1db759805241--5dfc6af601ca4590909d798b2fa2caa3
0274a2ae885f4d80bb97a2f5f88ced0b
RX(phi₆)
5dfc6af601ca4590909d798b2fa2caa3--0274a2ae885f4d80bb97a2f5f88ced0b
3e0137d7c2f34684b84c420b13e333d3
0274a2ae885f4d80bb97a2f5f88ced0b--3e0137d7c2f34684b84c420b13e333d3
22e526ac726844549ef2fd22745fa678
3e0137d7c2f34684b84c420b13e333d3--22e526ac726844549ef2fd22745fa678
8361c4a782144fe9ac10116551462883
RX(phi₉)
22e526ac726844549ef2fd22745fa678--8361c4a782144fe9ac10116551462883
807a77015399453aa3e695a0346eef7d
RY(phi₁₂)
8361c4a782144fe9ac10116551462883--807a77015399453aa3e695a0346eef7d
1533b8a511704c5196345fcc10f6b7a0
RX(phi₁₅)
807a77015399453aa3e695a0346eef7d--1533b8a511704c5196345fcc10f6b7a0
f428d47b3bc84db284b6e9a50726446e
1533b8a511704c5196345fcc10f6b7a0--f428d47b3bc84db284b6e9a50726446e
ec7aa28f6c774b7ab851e21d78adf916
f428d47b3bc84db284b6e9a50726446e--ec7aa28f6c774b7ab851e21d78adf916
8207a8dbabb041c7bf26f458aa7c64b5
ec7aa28f6c774b7ab851e21d78adf916--8207a8dbabb041c7bf26f458aa7c64b5
73c08130d292481b88af53b9fb7659de
cbc0fee7685746c98c9ab02c7d163977
RX(phi₁)
dadd585e194f4511992961ac586c8f69--cbc0fee7685746c98c9ab02c7d163977
4f9d644b91544b669f5076e1b8303e77
2
4cde09a07eb5439192d1c17eeebcf93c
RY(phi₄)
cbc0fee7685746c98c9ab02c7d163977--4cde09a07eb5439192d1c17eeebcf93c
e2bd5e4659d94eb6bf588fba617857ce
RX(phi₇)
4cde09a07eb5439192d1c17eeebcf93c--e2bd5e4659d94eb6bf588fba617857ce
988181c3a85b4a76af8f7a2da580a59b
PHASE(phi_ent₀)
e2bd5e4659d94eb6bf588fba617857ce--988181c3a85b4a76af8f7a2da580a59b
988181c3a85b4a76af8f7a2da580a59b--3e0137d7c2f34684b84c420b13e333d3
da9ebb9abb654c708fc18ab2dc9914a7
988181c3a85b4a76af8f7a2da580a59b--da9ebb9abb654c708fc18ab2dc9914a7
b6e5253f478e46fca3b2e98cdaa92326
RX(phi₁₀)
da9ebb9abb654c708fc18ab2dc9914a7--b6e5253f478e46fca3b2e98cdaa92326
6721580134d248afb1ac6925c9e123ea
RY(phi₁₃)
b6e5253f478e46fca3b2e98cdaa92326--6721580134d248afb1ac6925c9e123ea
24b14b1a43c2431b8fcfa32c30e70609
RX(phi₁₆)
6721580134d248afb1ac6925c9e123ea--24b14b1a43c2431b8fcfa32c30e70609
734e8a8423b54cc190fbb341b9b8424f
PHASE(phi_ent₂)
24b14b1a43c2431b8fcfa32c30e70609--734e8a8423b54cc190fbb341b9b8424f
734e8a8423b54cc190fbb341b9b8424f--f428d47b3bc84db284b6e9a50726446e
178359cf0e7541c68729408b19f83386
734e8a8423b54cc190fbb341b9b8424f--178359cf0e7541c68729408b19f83386
178359cf0e7541c68729408b19f83386--73c08130d292481b88af53b9fb7659de
a0c1ab117e364504b7f6a35b7c781bc0
a7753d9bb9254f87b3cadd24697545dc
RX(phi₂)
4f9d644b91544b669f5076e1b8303e77--a7753d9bb9254f87b3cadd24697545dc
19b74429d18844d98429d09677ea1315
RY(phi₅)
a7753d9bb9254f87b3cadd24697545dc--19b74429d18844d98429d09677ea1315
f24476b529ac4b43b822653ff25841f7
RX(phi₈)
19b74429d18844d98429d09677ea1315--f24476b529ac4b43b822653ff25841f7
27c36546669d42dc819d3c897a0ad40d
f24476b529ac4b43b822653ff25841f7--27c36546669d42dc819d3c897a0ad40d
69e451b88ac34f4ca4ad59120914cbdd
PHASE(phi_ent₁)
27c36546669d42dc819d3c897a0ad40d--69e451b88ac34f4ca4ad59120914cbdd
69e451b88ac34f4ca4ad59120914cbdd--da9ebb9abb654c708fc18ab2dc9914a7
88fa6c8c4ec041fd89754e58e22151bb
RX(phi₁₁)
69e451b88ac34f4ca4ad59120914cbdd--88fa6c8c4ec041fd89754e58e22151bb
f0301844ba50433e8b1fd29ff8787def
RY(phi₁₄)
88fa6c8c4ec041fd89754e58e22151bb--f0301844ba50433e8b1fd29ff8787def
a84aa3d5bf1f4dc6afea43bce058864e
RX(phi₁₇)
f0301844ba50433e8b1fd29ff8787def--a84aa3d5bf1f4dc6afea43bce058864e
999216a94fe34a4599a9a11753fd187d
a84aa3d5bf1f4dc6afea43bce058864e--999216a94fe34a4599a9a11753fd187d
c0189980f47941af8610be0bd57e6fb6
PHASE(phi_ent₃)
999216a94fe34a4599a9a11753fd187d--c0189980f47941af8610be0bd57e6fb6
c0189980f47941af8610be0bd57e6fb6--178359cf0e7541c68729408b19f83386
c0189980f47941af8610be0bd57e6fb6--a0c1ab117e364504b7f6a35b7c781bc0
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_baba2519a18b4bf2baa378415797f93f
cluster_e06867dab0e440fb8192e394f5cb65d4
8d1128c095a94fb3a762c636957e5da3
0
c8d6ef48126c4d66ac8188f23b1b7a0c
RX(theta₀)
8d1128c095a94fb3a762c636957e5da3--c8d6ef48126c4d66ac8188f23b1b7a0c
1794893512854f48bafe721a0ef08eb7
1
fb625a6415b04b65af26cccbb157c076
RY(theta₃)
c8d6ef48126c4d66ac8188f23b1b7a0c--fb625a6415b04b65af26cccbb157c076
b0d3d7ed96ad40bd9988365b966819c7
RX(theta₆)
fb625a6415b04b65af26cccbb157c076--b0d3d7ed96ad40bd9988365b966819c7
5c1045c1e9ab492c9c68d38680800b1f
HamEvo
b0d3d7ed96ad40bd9988365b966819c7--5c1045c1e9ab492c9c68d38680800b1f
8f1ea73668f14654a7438e8572a14657
RX(theta₉)
5c1045c1e9ab492c9c68d38680800b1f--8f1ea73668f14654a7438e8572a14657
3a1aff332b9d4c2e8cc6c7fd31a90cfd
RY(theta₁₂)
8f1ea73668f14654a7438e8572a14657--3a1aff332b9d4c2e8cc6c7fd31a90cfd
6d1f4b344398442ba174391974325ad4
RX(theta₁₅)
3a1aff332b9d4c2e8cc6c7fd31a90cfd--6d1f4b344398442ba174391974325ad4
86fc764f7459444b9ce52c34f0e0045b
HamEvo
6d1f4b344398442ba174391974325ad4--86fc764f7459444b9ce52c34f0e0045b
a19ced8944df4a08b0fd3e301a65cba5
86fc764f7459444b9ce52c34f0e0045b--a19ced8944df4a08b0fd3e301a65cba5
38fb4371eea542f887939f6ab472bb38
19ac3e9276ba4633806a04d653035069
RX(theta₁)
1794893512854f48bafe721a0ef08eb7--19ac3e9276ba4633806a04d653035069
c6b2f38ba8934f1cb379161506b8a548
2
64c4e43c5556449894fffea43b07ca0d
RY(theta₄)
19ac3e9276ba4633806a04d653035069--64c4e43c5556449894fffea43b07ca0d
02831cbccad7425f8a16531a77d73d53
RX(theta₇)
64c4e43c5556449894fffea43b07ca0d--02831cbccad7425f8a16531a77d73d53
3524f715139a4ccc8bb64227ffa8c2ea
t = theta_t₀
02831cbccad7425f8a16531a77d73d53--3524f715139a4ccc8bb64227ffa8c2ea
f8ed0dba5331480092f80e6652121366
RX(theta₁₀)
3524f715139a4ccc8bb64227ffa8c2ea--f8ed0dba5331480092f80e6652121366
c4c812099fac46ff9b0113e2f299dbcb
RY(theta₁₃)
f8ed0dba5331480092f80e6652121366--c4c812099fac46ff9b0113e2f299dbcb
7c376029b543429a8c555e7101747975
RX(theta₁₆)
c4c812099fac46ff9b0113e2f299dbcb--7c376029b543429a8c555e7101747975
d5ada61f61a940cdba1d1bc00c00b05b
t = theta_t₁
7c376029b543429a8c555e7101747975--d5ada61f61a940cdba1d1bc00c00b05b
d5ada61f61a940cdba1d1bc00c00b05b--38fb4371eea542f887939f6ab472bb38
f1748232fdb84aa7890bee25e89cb77a
ef8a429777094fdb829a8ac0333b95ba
RX(theta₂)
c6b2f38ba8934f1cb379161506b8a548--ef8a429777094fdb829a8ac0333b95ba
d1f838f47dba43578d22a08d691551c8
RY(theta₅)
ef8a429777094fdb829a8ac0333b95ba--d1f838f47dba43578d22a08d691551c8
2f369460c0b5457a89e7577645951eac
RX(theta₈)
d1f838f47dba43578d22a08d691551c8--2f369460c0b5457a89e7577645951eac
3fe65eabc632415097a208e2820d4b09
2f369460c0b5457a89e7577645951eac--3fe65eabc632415097a208e2820d4b09
7e751089fa29406fb2a0804bbe8095c6
RX(theta₁₁)
3fe65eabc632415097a208e2820d4b09--7e751089fa29406fb2a0804bbe8095c6
78e88cb9611149d1be9a6bad3c120511
RY(theta₁₄)
7e751089fa29406fb2a0804bbe8095c6--78e88cb9611149d1be9a6bad3c120511
ad57f700ad3a4cbb8a8ac84339588586
RX(theta₁₇)
78e88cb9611149d1be9a6bad3c120511--ad57f700ad3a4cbb8a8ac84339588586
7222cb10f7d742428c3f92d4a518368e
ad57f700ad3a4cbb8a8ac84339588586--7222cb10f7d742428c3f92d4a518368e
7222cb10f7d742428c3f92d4a518368e--f1748232fdb84aa7890bee25e89cb77a
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_bb375f24187f44a5b62afb94cbeb33e8
cluster_4c128a36642a452bb2cfc3b0a30706e1
64fa5decfa2745f689f260a79539c53a
0
17ab1f7cb2d74b7e932e25c9083ae184
RX(theta₀)
64fa5decfa2745f689f260a79539c53a--17ab1f7cb2d74b7e932e25c9083ae184
f90cf73eabf94d1a81a086dc12238e46
1
bc1a4c6af171450499d7468741b302be
RY(theta₆)
17ab1f7cb2d74b7e932e25c9083ae184--bc1a4c6af171450499d7468741b302be
057c6d98ab764da38b01312a63d06123
RX(theta₁₂)
bc1a4c6af171450499d7468741b302be--057c6d98ab764da38b01312a63d06123
920ff48f83a54ce69763314dd33b515f
057c6d98ab764da38b01312a63d06123--920ff48f83a54ce69763314dd33b515f
8fe4e228ff95437bbb0a0586008b2014
RX(theta₁₈)
920ff48f83a54ce69763314dd33b515f--8fe4e228ff95437bbb0a0586008b2014
1a9c2ce98d774a3482713bf570595744
RY(theta₂₄)
8fe4e228ff95437bbb0a0586008b2014--1a9c2ce98d774a3482713bf570595744
a34685c89e834219bb5c066bcb9bccdd
RX(theta₃₀)
1a9c2ce98d774a3482713bf570595744--a34685c89e834219bb5c066bcb9bccdd
44392100e8c840549066ab5d95f25875
a34685c89e834219bb5c066bcb9bccdd--44392100e8c840549066ab5d95f25875
bcf5562d5024467db97bc6910af8977e
44392100e8c840549066ab5d95f25875--bcf5562d5024467db97bc6910af8977e
9f63e1bed3f44c3cb5d1e5dfbe36bc44
188d728e64234fbb9177a978b48b757b
RX(theta₁)
f90cf73eabf94d1a81a086dc12238e46--188d728e64234fbb9177a978b48b757b
3466b0d246a445de96f2a5b51e92a974
2
7a06a76326ec437ba3091c059b736192
RY(theta₇)
188d728e64234fbb9177a978b48b757b--7a06a76326ec437ba3091c059b736192
dc2473a464424b2ca86141eeaafccf47
RX(theta₁₃)
7a06a76326ec437ba3091c059b736192--dc2473a464424b2ca86141eeaafccf47
bf30efc6db19432a9732172643a33a6b
dc2473a464424b2ca86141eeaafccf47--bf30efc6db19432a9732172643a33a6b
1168a0c156c541e8a8f0035ec7f45443
RX(theta₁₉)
bf30efc6db19432a9732172643a33a6b--1168a0c156c541e8a8f0035ec7f45443
f6fe1a29f101478ca2439f6354c99302
RY(theta₂₅)
1168a0c156c541e8a8f0035ec7f45443--f6fe1a29f101478ca2439f6354c99302
a34a64c7ee1545e0bf466bc89720402b
RX(theta₃₁)
f6fe1a29f101478ca2439f6354c99302--a34a64c7ee1545e0bf466bc89720402b
493cb553f1b14b8885dade0860e00f3a
a34a64c7ee1545e0bf466bc89720402b--493cb553f1b14b8885dade0860e00f3a
493cb553f1b14b8885dade0860e00f3a--9f63e1bed3f44c3cb5d1e5dfbe36bc44
094c1bb0f08c44279aebdc8af6498f40
aecdd685add845c5a113aff6612689b1
RX(theta₂)
3466b0d246a445de96f2a5b51e92a974--aecdd685add845c5a113aff6612689b1
43f72e25ed4c44988b7f8abbce520d3f
3
d6301a03f4f742d0a33b02afb96e09d5
RY(theta₈)
aecdd685add845c5a113aff6612689b1--d6301a03f4f742d0a33b02afb96e09d5
c5084a55fc884d4d926a678e7a0954ad
RX(theta₁₄)
d6301a03f4f742d0a33b02afb96e09d5--c5084a55fc884d4d926a678e7a0954ad
a1a85c213a264b84898138247b77534c
HamEvo
c5084a55fc884d4d926a678e7a0954ad--a1a85c213a264b84898138247b77534c
5635549cb1d245f7bc421bc803ae30c6
RX(theta₂₀)
a1a85c213a264b84898138247b77534c--5635549cb1d245f7bc421bc803ae30c6
1199325e7b154e8aa54a5e1651f2cf9b
RY(theta₂₆)
5635549cb1d245f7bc421bc803ae30c6--1199325e7b154e8aa54a5e1651f2cf9b
d36fed8784a34d7892ba544256f7679a
RX(theta₃₂)
1199325e7b154e8aa54a5e1651f2cf9b--d36fed8784a34d7892ba544256f7679a
ebe1211b13974a4eabf55b3cd3df2469
HamEvo
d36fed8784a34d7892ba544256f7679a--ebe1211b13974a4eabf55b3cd3df2469
ebe1211b13974a4eabf55b3cd3df2469--094c1bb0f08c44279aebdc8af6498f40
68415b501b3d4a229e3bd44b0c32b15d
d8d14ee9b9fe4853bd4dab49245679a0
RX(theta₃)
43f72e25ed4c44988b7f8abbce520d3f--d8d14ee9b9fe4853bd4dab49245679a0
6c1dabcf1b5641c4acec517427c74933
4
fe97990b58984f8dae59f991a7b0bef2
RY(theta₉)
d8d14ee9b9fe4853bd4dab49245679a0--fe97990b58984f8dae59f991a7b0bef2
86aaf4b7062d4f46b27034fb08f25eba
RX(theta₁₅)
fe97990b58984f8dae59f991a7b0bef2--86aaf4b7062d4f46b27034fb08f25eba
bb04c730de8e496eae3769d360ea2a2d
t = theta_t₀
86aaf4b7062d4f46b27034fb08f25eba--bb04c730de8e496eae3769d360ea2a2d
b7483da331cd49249d16cf838eea1372
RX(theta₂₁)
bb04c730de8e496eae3769d360ea2a2d--b7483da331cd49249d16cf838eea1372
7280a2d9cd4a451d8e4ad919f92294a7
RY(theta₂₇)
b7483da331cd49249d16cf838eea1372--7280a2d9cd4a451d8e4ad919f92294a7
b5b7989a19fe48a7bf0b952efa62bfa8
RX(theta₃₃)
7280a2d9cd4a451d8e4ad919f92294a7--b5b7989a19fe48a7bf0b952efa62bfa8
a277048d97d14f2ebbe167a4470a154b
t = theta_t₁
b5b7989a19fe48a7bf0b952efa62bfa8--a277048d97d14f2ebbe167a4470a154b
a277048d97d14f2ebbe167a4470a154b--68415b501b3d4a229e3bd44b0c32b15d
a8e54c35b7414750b4435bba2b1f38af
c9d1e57428f943009d5bb00400d78c43
RX(theta₄)
6c1dabcf1b5641c4acec517427c74933--c9d1e57428f943009d5bb00400d78c43
f4c12955301b4fcd8b148e6c3aefe6d7
5
6ed14262e0fb468cae8597d93c18c41d
RY(theta₁₀)
c9d1e57428f943009d5bb00400d78c43--6ed14262e0fb468cae8597d93c18c41d
996d0a13d1714e099c18ab97b8922073
RX(theta₁₆)
6ed14262e0fb468cae8597d93c18c41d--996d0a13d1714e099c18ab97b8922073
344fc5b73d14478d839bc439c2c0e3c1
996d0a13d1714e099c18ab97b8922073--344fc5b73d14478d839bc439c2c0e3c1
f84a0c5f1b604c12a196733b7eaded51
RX(theta₂₂)
344fc5b73d14478d839bc439c2c0e3c1--f84a0c5f1b604c12a196733b7eaded51
aed48eba3ea040b8befc83a4ca682b44
RY(theta₂₈)
f84a0c5f1b604c12a196733b7eaded51--aed48eba3ea040b8befc83a4ca682b44
53fd48a94d1b41d9850c61f651b7d3de
RX(theta₃₄)
aed48eba3ea040b8befc83a4ca682b44--53fd48a94d1b41d9850c61f651b7d3de
9adcfdac40534a85b1cf540524f40e1a
53fd48a94d1b41d9850c61f651b7d3de--9adcfdac40534a85b1cf540524f40e1a
9adcfdac40534a85b1cf540524f40e1a--a8e54c35b7414750b4435bba2b1f38af
3c738f0fc5d7481e9c2c4defb9e7ccd9
a460fb8e0a7140c29941defe0a7f1d33
RX(theta₅)
f4c12955301b4fcd8b148e6c3aefe6d7--a460fb8e0a7140c29941defe0a7f1d33
d3001ec371804c95b444649a192a2394
RY(theta₁₁)
a460fb8e0a7140c29941defe0a7f1d33--d3001ec371804c95b444649a192a2394
872c05c4fdaa4610bd90a97fb0b5ba4c
RX(theta₁₇)
d3001ec371804c95b444649a192a2394--872c05c4fdaa4610bd90a97fb0b5ba4c
82c78c658f9d415c85a6971f6fa0662e
872c05c4fdaa4610bd90a97fb0b5ba4c--82c78c658f9d415c85a6971f6fa0662e
565a179f71a9416793d92c1114f8138e
RX(theta₂₃)
82c78c658f9d415c85a6971f6fa0662e--565a179f71a9416793d92c1114f8138e
94ddf003401842f6a75b8870a052f121
RY(theta₂₉)
565a179f71a9416793d92c1114f8138e--94ddf003401842f6a75b8870a052f121
16163e7cf22c4bcb9c6ca072fc0e3a0e
RX(theta₃₅)
94ddf003401842f6a75b8870a052f121--16163e7cf22c4bcb9c6ca072fc0e3a0e
a03bdd21538d4ff3867795fe5b1cedc4
16163e7cf22c4bcb9c6ca072fc0e3a0e--a03bdd21538d4ff3867795fe5b1cedc4
a03bdd21538d4ff3867795fe5b1cedc4--3c738f0fc5d7481e9c2c4defb9e7ccd9
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_99b3a8236b184eaf85842670f80a09f3
BPMA-1
cluster_023b6ccd028a451f93766100f52a60a2
BPMA-0
283ae9b9c11d453295ee312bff0c06fb
0
8a37e28bd50247539cc11bedafde2a05
RX(iia_α₀₀)
283ae9b9c11d453295ee312bff0c06fb--8a37e28bd50247539cc11bedafde2a05
607e90ef6068418caf285d79c39808d9
1
a490d70effee47cf86b8c2194808aae5
RY(iia_α₀₃)
8a37e28bd50247539cc11bedafde2a05--a490d70effee47cf86b8c2194808aae5
bf371beddd9c490bbda180dc77813c21
a490d70effee47cf86b8c2194808aae5--bf371beddd9c490bbda180dc77813c21
efd86a445a0846b9a704191df680d636
bf371beddd9c490bbda180dc77813c21--efd86a445a0846b9a704191df680d636
db268c998223460d96b226244831fee7
RX(iia_γ₀₀)
efd86a445a0846b9a704191df680d636--db268c998223460d96b226244831fee7
8a65e93034d14182be412d40b53b62b1
db268c998223460d96b226244831fee7--8a65e93034d14182be412d40b53b62b1
d2ccb44097b84e65ae91ea282f01577b
8a65e93034d14182be412d40b53b62b1--d2ccb44097b84e65ae91ea282f01577b
a060bb5de28a41689e4852b26215183f
RY(iia_β₀₃)
d2ccb44097b84e65ae91ea282f01577b--a060bb5de28a41689e4852b26215183f
ef56f6f64e95407b9a35bb07cc2093ef
RX(iia_β₀₀)
a060bb5de28a41689e4852b26215183f--ef56f6f64e95407b9a35bb07cc2093ef
3f7dae48713240d3a96c7cdd666ddd4c
RX(iia_α₁₀)
ef56f6f64e95407b9a35bb07cc2093ef--3f7dae48713240d3a96c7cdd666ddd4c
6e2bb07e952f420fa501f7ec539e118d
RY(iia_α₁₃)
3f7dae48713240d3a96c7cdd666ddd4c--6e2bb07e952f420fa501f7ec539e118d
a73eec21e18340e7860b4ae0c8b389fc
6e2bb07e952f420fa501f7ec539e118d--a73eec21e18340e7860b4ae0c8b389fc
26dd6c27c683402c937893e74709e3b7
a73eec21e18340e7860b4ae0c8b389fc--26dd6c27c683402c937893e74709e3b7
50d6bd43a41c4143a358a8412bb1718d
RX(iia_γ₁₀)
26dd6c27c683402c937893e74709e3b7--50d6bd43a41c4143a358a8412bb1718d
6385ac0e8c0c43619401c17c02c1085e
50d6bd43a41c4143a358a8412bb1718d--6385ac0e8c0c43619401c17c02c1085e
0b6b511a51e94a5b8efdd5929982ba8f
6385ac0e8c0c43619401c17c02c1085e--0b6b511a51e94a5b8efdd5929982ba8f
aae2f7dcbc8e48968b5b276130d836dd
RY(iia_β₁₃)
0b6b511a51e94a5b8efdd5929982ba8f--aae2f7dcbc8e48968b5b276130d836dd
a3ac39acc57c461bbfdbb0aa4fff70a2
RX(iia_β₁₀)
aae2f7dcbc8e48968b5b276130d836dd--a3ac39acc57c461bbfdbb0aa4fff70a2
c3215225680b44a5b036554d6ae0c1b8
a3ac39acc57c461bbfdbb0aa4fff70a2--c3215225680b44a5b036554d6ae0c1b8
06460b3cedc243bca1fb43e8b852e193
f21f7d0b74d94a1897a569bc50173439
RX(iia_α₀₁)
607e90ef6068418caf285d79c39808d9--f21f7d0b74d94a1897a569bc50173439
49b446a1fb4f42d7b6e6b04b08ab1ff9
2
779d38b81b9c4d23ba05c1375e3d8267
RY(iia_α₀₄)
f21f7d0b74d94a1897a569bc50173439--779d38b81b9c4d23ba05c1375e3d8267
c1311c899eb44da3a0b4151e84d695a3
X
779d38b81b9c4d23ba05c1375e3d8267--c1311c899eb44da3a0b4151e84d695a3
c1311c899eb44da3a0b4151e84d695a3--bf371beddd9c490bbda180dc77813c21
7f66a25ac4f84603bea706a99121b37b
c1311c899eb44da3a0b4151e84d695a3--7f66a25ac4f84603bea706a99121b37b
ca58c2452b5642aca4af886a62f43216
RX(iia_γ₀₁)
7f66a25ac4f84603bea706a99121b37b--ca58c2452b5642aca4af886a62f43216
70fc7bc272494b9dbe108b7daa52f620
ca58c2452b5642aca4af886a62f43216--70fc7bc272494b9dbe108b7daa52f620
263ff5dcf7e343789c0f919c6a6a711f
X
70fc7bc272494b9dbe108b7daa52f620--263ff5dcf7e343789c0f919c6a6a711f
263ff5dcf7e343789c0f919c6a6a711f--d2ccb44097b84e65ae91ea282f01577b
2b0546e978a44ce2a69860931c0f8003
RY(iia_β₀₄)
263ff5dcf7e343789c0f919c6a6a711f--2b0546e978a44ce2a69860931c0f8003
abaecce21d3a48d182efe41c89891d1d
RX(iia_β₀₁)
2b0546e978a44ce2a69860931c0f8003--abaecce21d3a48d182efe41c89891d1d
e3f1a67b23f947febb46ffa4f2d031cf
RX(iia_α₁₁)
abaecce21d3a48d182efe41c89891d1d--e3f1a67b23f947febb46ffa4f2d031cf
8e59b4318e9b45c09ef6add5616a3c20
RY(iia_α₁₄)
e3f1a67b23f947febb46ffa4f2d031cf--8e59b4318e9b45c09ef6add5616a3c20
15232ed341fe431f87aa93fdfb6a55c7
X
8e59b4318e9b45c09ef6add5616a3c20--15232ed341fe431f87aa93fdfb6a55c7
15232ed341fe431f87aa93fdfb6a55c7--a73eec21e18340e7860b4ae0c8b389fc
3a212645e8444d7aa3948a9c04a3ac07
15232ed341fe431f87aa93fdfb6a55c7--3a212645e8444d7aa3948a9c04a3ac07
ad1d4332e3c9447fbd00fc1f8877e745
RX(iia_γ₁₁)
3a212645e8444d7aa3948a9c04a3ac07--ad1d4332e3c9447fbd00fc1f8877e745
e133f22b67824d19a0be8cdf9fd8c60d
ad1d4332e3c9447fbd00fc1f8877e745--e133f22b67824d19a0be8cdf9fd8c60d
e4cf340a57bd46b3b7918609748c3c1d
X
e133f22b67824d19a0be8cdf9fd8c60d--e4cf340a57bd46b3b7918609748c3c1d
e4cf340a57bd46b3b7918609748c3c1d--0b6b511a51e94a5b8efdd5929982ba8f
0300dc3f1a974190b6fc4455989e635f
RY(iia_β₁₄)
e4cf340a57bd46b3b7918609748c3c1d--0300dc3f1a974190b6fc4455989e635f
f4b86ae5c14646ad847c83b8c0da71be
RX(iia_β₁₁)
0300dc3f1a974190b6fc4455989e635f--f4b86ae5c14646ad847c83b8c0da71be
f4b86ae5c14646ad847c83b8c0da71be--06460b3cedc243bca1fb43e8b852e193
6c2a19ff6e054028b1cb2dd0498bf991
f2509b7b62cf4e269fab0f3cc7cbec79
RX(iia_α₀₂)
49b446a1fb4f42d7b6e6b04b08ab1ff9--f2509b7b62cf4e269fab0f3cc7cbec79
47ac19da361e498a967fee4cd72aa608
RY(iia_α₀₅)
f2509b7b62cf4e269fab0f3cc7cbec79--47ac19da361e498a967fee4cd72aa608
1b2a2778b2904f7085beeca1d2556d3c
47ac19da361e498a967fee4cd72aa608--1b2a2778b2904f7085beeca1d2556d3c
feac445681d34c009d9289f3994a3558
X
1b2a2778b2904f7085beeca1d2556d3c--feac445681d34c009d9289f3994a3558
feac445681d34c009d9289f3994a3558--7f66a25ac4f84603bea706a99121b37b
e4440ba3c4d645c797b9d2d6c78c630a
RX(iia_γ₀₂)
feac445681d34c009d9289f3994a3558--e4440ba3c4d645c797b9d2d6c78c630a
743895791d0d4100b083dcbeef4b33ce
X
e4440ba3c4d645c797b9d2d6c78c630a--743895791d0d4100b083dcbeef4b33ce
743895791d0d4100b083dcbeef4b33ce--70fc7bc272494b9dbe108b7daa52f620
7f1dd4401b924b9aba93e8fed8240814
743895791d0d4100b083dcbeef4b33ce--7f1dd4401b924b9aba93e8fed8240814
3043b1c630a1492a9927f7b64e4b54f5
RY(iia_β₀₅)
7f1dd4401b924b9aba93e8fed8240814--3043b1c630a1492a9927f7b64e4b54f5
a33533fe076d45adb032fd10405e3e1a
RX(iia_β₀₂)
3043b1c630a1492a9927f7b64e4b54f5--a33533fe076d45adb032fd10405e3e1a
c22dbee1dca14193b53698c44004ca26
RX(iia_α₁₂)
a33533fe076d45adb032fd10405e3e1a--c22dbee1dca14193b53698c44004ca26
9466651880dc4510aa4c56b82803af14
RY(iia_α₁₅)
c22dbee1dca14193b53698c44004ca26--9466651880dc4510aa4c56b82803af14
29f6e6c1343043b782729bd638ffac93
9466651880dc4510aa4c56b82803af14--29f6e6c1343043b782729bd638ffac93
0b3774d48e714314be099e7489b1f158
X
29f6e6c1343043b782729bd638ffac93--0b3774d48e714314be099e7489b1f158
0b3774d48e714314be099e7489b1f158--3a212645e8444d7aa3948a9c04a3ac07
266e917f15ea4580bf2a9c4ff91ed521
RX(iia_γ₁₂)
0b3774d48e714314be099e7489b1f158--266e917f15ea4580bf2a9c4ff91ed521
c8c297d382eb4542848733d6f7daf99b
X
266e917f15ea4580bf2a9c4ff91ed521--c8c297d382eb4542848733d6f7daf99b
c8c297d382eb4542848733d6f7daf99b--e133f22b67824d19a0be8cdf9fd8c60d
c74053f9f6db4905942d37c98beae9fa
c8c297d382eb4542848733d6f7daf99b--c74053f9f6db4905942d37c98beae9fa
52435ab9cf874dcbb2156d449ed0578a
RY(iia_β₁₅)
c74053f9f6db4905942d37c98beae9fa--52435ab9cf874dcbb2156d449ed0578a
fbc73a400b3f4e84ac6f004c450ff0b1
RX(iia_β₁₂)
52435ab9cf874dcbb2156d449ed0578a--fbc73a400b3f4e84ac6f004c450ff0b1
fbc73a400b3f4e84ac6f004c450ff0b1--6c2a19ff6e054028b1cb2dd0498bf991