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_01bf6b270de74a1d88f9fe79637175ce
Constant Chebyshev FM
cluster_07e911d2557c4b73ac18f0ec0dd4802e
Constant Fourier FM
d5cddf54507c466c8e1fc7ed98f1e4f9
0
6867ddaabae841319da742c0a5a3d664
RX(phi)
d5cddf54507c466c8e1fc7ed98f1e4f9--6867ddaabae841319da742c0a5a3d664
ec25d65e6b0645e78a396e509d49e7c6
1
51a6ceedb95643d5b0922bbdbc4bf9c2
RX(acos(phi))
6867ddaabae841319da742c0a5a3d664--51a6ceedb95643d5b0922bbdbc4bf9c2
0ab82b837ed74b56a674b59b39f9abdb
51a6ceedb95643d5b0922bbdbc4bf9c2--0ab82b837ed74b56a674b59b39f9abdb
0075ce2fd8284b5391f7fc5cd4c52390
3bd38570a5514f988cf5006ea35f0319
RX(phi)
ec25d65e6b0645e78a396e509d49e7c6--3bd38570a5514f988cf5006ea35f0319
ff45fc3c2512474aa021f35c1d6d4031
2
5e04aae287244e419524d76ddb41cd94
RX(acos(phi))
3bd38570a5514f988cf5006ea35f0319--5e04aae287244e419524d76ddb41cd94
5e04aae287244e419524d76ddb41cd94--0075ce2fd8284b5391f7fc5cd4c52390
32ac1a0277b740a590748b426adb470d
299e9e1d518d4858a83337c444723796
RX(phi)
ff45fc3c2512474aa021f35c1d6d4031--299e9e1d518d4858a83337c444723796
9bd7e453d9ad40f685a7f4e67be1404d
RX(acos(phi))
299e9e1d518d4858a83337c444723796--9bd7e453d9ad40f685a7f4e67be1404d
9bd7e453d9ad40f685a7f4e67be1404d--32ac1a0277b740a590748b426adb470d
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_9a924a84d1564e89ba339700341aac75
Constant <function custom_fn at 0x7f926859bf40> FM
cluster_b0cbeca295ee45d19c1f9f1544a7b462
Constant asin FM
679958688a5941769f4027b4c544be12
0
391c72213af44132b7d8158d22bc764d
RX(asin(phi))
679958688a5941769f4027b4c544be12--391c72213af44132b7d8158d22bc764d
b3a5fca180b54a308d94baf09291ecb1
1
b7bcd98cc01c45a792e77aedb7159832
RX(phi**2 + asin(phi))
391c72213af44132b7d8158d22bc764d--b7bcd98cc01c45a792e77aedb7159832
412ae9878c1e4aa7a90b1ec4f72899de
b7bcd98cc01c45a792e77aedb7159832--412ae9878c1e4aa7a90b1ec4f72899de
cfad3bef01f942fd81225113aee9c56e
70343e782beb494fb23974af043e16fb
RX(asin(phi))
b3a5fca180b54a308d94baf09291ecb1--70343e782beb494fb23974af043e16fb
c238a62b0e1149b3a6676ec51ee75e21
2
061cc647c9ef43a39f6e95032a39d94b
RX(phi**2 + asin(phi))
70343e782beb494fb23974af043e16fb--061cc647c9ef43a39f6e95032a39d94b
061cc647c9ef43a39f6e95032a39d94b--cfad3bef01f942fd81225113aee9c56e
78f4a8571f584a369a057ce8c287a236
1589f81c4f8c41e68b54edb1a0956126
RX(asin(phi))
c238a62b0e1149b3a6676ec51ee75e21--1589f81c4f8c41e68b54edb1a0956126
65b62d2192554741a2e260e1f012d0be
RX(phi**2 + asin(phi))
1589f81c4f8c41e68b54edb1a0956126--65b62d2192554741a2e260e1f012d0be
65b62d2192554741a2e260e1f012d0be--78f4a8571f584a369a057ce8c287a236
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_a7bdbd487dfd4c089855dc610bf1349d
Exponential Fourier FM
cluster_5c1d35a98d3f4361ac179ebcbecf2a3d
Constant Fourier FM
cluster_bd4c934407ec44f9b486068f2dcf8204
Tower Fourier FM
d6523501bd4841bb923f3760d6d3174f
0
80d5cb7497ca45d2b420e3b130de72e1
RX(phi)
d6523501bd4841bb923f3760d6d3174f--80d5cb7497ca45d2b420e3b130de72e1
3f07dc3f73f844228af8ff17daa091b5
1
19701a9507f545bb91e79235b30368ca
RX(1.0*phi)
80d5cb7497ca45d2b420e3b130de72e1--19701a9507f545bb91e79235b30368ca
d37a5e52f9374b67bb6f066d0bb70c7b
RX(1.0*phi)
19701a9507f545bb91e79235b30368ca--d37a5e52f9374b67bb6f066d0bb70c7b
6bd6594093854815b1f4c06989b5ddd6
d37a5e52f9374b67bb6f066d0bb70c7b--6bd6594093854815b1f4c06989b5ddd6
6753013b14f349bda6e96a6cd3a0f419
37be58de61a74eea94da2624e3ef5be4
RX(phi)
3f07dc3f73f844228af8ff17daa091b5--37be58de61a74eea94da2624e3ef5be4
575d74621f4747b293db090d60277c6a
2
0fef373236ff40ed8f659879c9141942
RX(2.0*phi)
37be58de61a74eea94da2624e3ef5be4--0fef373236ff40ed8f659879c9141942
fbd30a98de3b40c081e559bab14b9e68
RX(2.0*phi)
0fef373236ff40ed8f659879c9141942--fbd30a98de3b40c081e559bab14b9e68
fbd30a98de3b40c081e559bab14b9e68--6753013b14f349bda6e96a6cd3a0f419
f2b274ee402647188261863a7caf5f82
10f0ef7cf43c4effb1ad1b7e91e5ca85
RX(phi)
575d74621f4747b293db090d60277c6a--10f0ef7cf43c4effb1ad1b7e91e5ca85
0afa2e50d6e840d9960809996eb837c9
3
c12e5686abee4b3ab68db77b53590c50
RX(3.0*phi)
10f0ef7cf43c4effb1ad1b7e91e5ca85--c12e5686abee4b3ab68db77b53590c50
c689e4713652475e80ee7635fc7a7fa7
RX(4.0*phi)
c12e5686abee4b3ab68db77b53590c50--c689e4713652475e80ee7635fc7a7fa7
c689e4713652475e80ee7635fc7a7fa7--f2b274ee402647188261863a7caf5f82
9b76b401bbc24b91b767df052b8c1ae0
2fdf9ffbdf704057a9de91e3a48e5a51
RX(phi)
0afa2e50d6e840d9960809996eb837c9--2fdf9ffbdf704057a9de91e3a48e5a51
72b8a2d43f32421ab3a185a7a25b595e
4
f974c75f835a40a39a3972f9f52ef324
RX(4.0*phi)
2fdf9ffbdf704057a9de91e3a48e5a51--f974c75f835a40a39a3972f9f52ef324
659b10e4629c469a99b47ba5d30dec48
RX(8.0*phi)
f974c75f835a40a39a3972f9f52ef324--659b10e4629c469a99b47ba5d30dec48
659b10e4629c469a99b47ba5d30dec48--9b76b401bbc24b91b767df052b8c1ae0
1eacb2a8cd304b19aecd135893dd02b1
bf643382d3774eae863caa003a0e32d0
RX(phi)
72b8a2d43f32421ab3a185a7a25b595e--bf643382d3774eae863caa003a0e32d0
0fac07ec8fb34d29b984fb14293f5314
RX(5.0*phi)
bf643382d3774eae863caa003a0e32d0--0fac07ec8fb34d29b984fb14293f5314
e33838ce8bd549d9ba656aae7afb05e1
RX(16.0*phi)
0fac07ec8fb34d29b984fb14293f5314--e33838ce8bd549d9ba656aae7afb05e1
e33838ce8bd549d9ba656aae7afb05e1--1eacb2a8cd304b19aecd135893dd02b1
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
1a7301e37f0e475bafb810a955d026ce
0
b1b3ba51314949a8aed52c26021996a3
RX(1.0*acos(phi))
1a7301e37f0e475bafb810a955d026ce--b1b3ba51314949a8aed52c26021996a3
cbf9b3203be24ad1b74cb4c8eac847ca
1
7a52f3a8de8a48c8bb9ff1582094364b
b1b3ba51314949a8aed52c26021996a3--7a52f3a8de8a48c8bb9ff1582094364b
209ba0abacbd477a86be9fe6541d468f
21b9784d3f904c7abb274ae8e61e132d
RX(1.414*acos(phi))
cbf9b3203be24ad1b74cb4c8eac847ca--21b9784d3f904c7abb274ae8e61e132d
f39d277f01664c9991c7f62b5e2429b5
2
21b9784d3f904c7abb274ae8e61e132d--209ba0abacbd477a86be9fe6541d468f
f0aeb484918e4eada99d14d3d1008b48
2bdca2924bab4d428a8bdd6b9366e2a9
RX(1.732*acos(phi))
f39d277f01664c9991c7f62b5e2429b5--2bdca2924bab4d428a8bdd6b9366e2a9
fe822dbc47514839a670175efaa5fb63
3
2bdca2924bab4d428a8bdd6b9366e2a9--f0aeb484918e4eada99d14d3d1008b48
5f97562310394935a1e4e42a6a23df08
20e3ba92f7e848e2bea566acaf1dff8c
RX(2.0*acos(phi))
fe822dbc47514839a670175efaa5fb63--20e3ba92f7e848e2bea566acaf1dff8c
f22f793e25334076996b22666133998e
4
20e3ba92f7e848e2bea566acaf1dff8c--5f97562310394935a1e4e42a6a23df08
3106befbe88f4bab914fe6be516b1ff8
3fc32cf7845f425fbf1c57e92b4fd944
RX(2.236*acos(phi))
f22f793e25334076996b22666133998e--3fc32cf7845f425fbf1c57e92b4fd944
3fc32cf7845f425fbf1c57e92b4fd944--3106befbe88f4bab914fe6be516b1ff8
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
dfc97c9a284c4d4cbafb10df14479cbc
0
5391d102fde7495eb22ae9dab951acad
RX(1.0*phi*w₀)
dfc97c9a284c4d4cbafb10df14479cbc--5391d102fde7495eb22ae9dab951acad
4e4d9d7c9e4b470fa49e1d684ba34cf3
1
471c148be6354d5a97d9b53f2c2b05d3
5391d102fde7495eb22ae9dab951acad--471c148be6354d5a97d9b53f2c2b05d3
424a682a08864409b97938331d55e0b6
6546d4c498a8439997c9f915d7dafd3b
RX(2.0*phi*w₁)
4e4d9d7c9e4b470fa49e1d684ba34cf3--6546d4c498a8439997c9f915d7dafd3b
ec7fa4bd4dc74ef79b1bd0b83f3b0f53
2
6546d4c498a8439997c9f915d7dafd3b--424a682a08864409b97938331d55e0b6
362f9746860844ca9969114d2d8d31b3
a3c35ebd30ac4a7ba562a0ca4f0f886e
RX(4.0*phi*w₂)
ec7fa4bd4dc74ef79b1bd0b83f3b0f53--a3c35ebd30ac4a7ba562a0ca4f0f886e
9193f80a44b940109a93d908981d5f41
3
a3c35ebd30ac4a7ba562a0ca4f0f886e--362f9746860844ca9969114d2d8d31b3
3eb4dfd75a7945499ae6cb10f8306a74
eb560b5333e44c4b9dff6e3187947d83
RX(8.0*phi*w₃)
9193f80a44b940109a93d908981d5f41--eb560b5333e44c4b9dff6e3187947d83
d3a11bc6ae9e4c1499e59d0ef6d20953
4
eb560b5333e44c4b9dff6e3187947d83--3eb4dfd75a7945499ae6cb10f8306a74
d9421027227b4265b163420aca2fce14
ac5a621628db4b9fa2fe67e370772e04
RX(16.0*phi*w₄)
d3a11bc6ae9e4c1499e59d0ef6d20953--ac5a621628db4b9fa2fe67e370772e04
ac5a621628db4b9fa2fe67e370772e04--d9421027227b4265b163420aca2fce14
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
9e4efaad676245ccb97cb7136273596d
0
30de73993afd48a09c246d0179a67950
RY(80.0*acos(w₄*(0.667*x + 1.667)))
9e4efaad676245ccb97cb7136273596d--30de73993afd48a09c246d0179a67950
934416ea027f4eeaa1a990c784b49858
1
a70e8ae35a234694a82f4e910c12a9df
30de73993afd48a09c246d0179a67950--a70e8ae35a234694a82f4e910c12a9df
65b58695de6849ae9fe3e96a9f20a7e5
ce49e0806d6d4aae8f28c14f2fab8454
RY(40.0*acos(w₃*(0.667*x + 1.667)))
934416ea027f4eeaa1a990c784b49858--ce49e0806d6d4aae8f28c14f2fab8454
efaf3fedf895437f9c67efe083c9e47d
2
ce49e0806d6d4aae8f28c14f2fab8454--65b58695de6849ae9fe3e96a9f20a7e5
d877e93be6bb4c4aa2cfb46e9903347a
a09020e45d0946d086231d2ae12b91a0
RY(20.0*acos(w₂*(0.667*x + 1.667)))
efaf3fedf895437f9c67efe083c9e47d--a09020e45d0946d086231d2ae12b91a0
ed89aa1444834b9da719d482595d2ea0
3
a09020e45d0946d086231d2ae12b91a0--d877e93be6bb4c4aa2cfb46e9903347a
913465f9c3d14a28aa9c83da3865ca78
494c93e0c73d46f4a0559b1dfc15cc79
RY(10.0*acos(w₁*(0.667*x + 1.667)))
ed89aa1444834b9da719d482595d2ea0--494c93e0c73d46f4a0559b1dfc15cc79
3b98b9c5182c49ce82fdc0966fd9fcdc
4
494c93e0c73d46f4a0559b1dfc15cc79--913465f9c3d14a28aa9c83da3865ca78
ea70345f001545e5a7b5381c0d491abc
71893b0cf1b84c9cb2a33f61f4ea10e3
RY(5.0*acos(w₀*(0.667*x + 1.667)))
3b98b9c5182c49ce82fdc0966fd9fcdc--71893b0cf1b84c9cb2a33f61f4ea10e3
71893b0cf1b84c9cb2a33f61f4ea10e3--ea70345f001545e5a7b5381c0d491abc
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
35f3b2d320e044219230516ab738b82e
0
25e87002980e453ab427e91cb87062a0
RX(theta₀)
35f3b2d320e044219230516ab738b82e--25e87002980e453ab427e91cb87062a0
ad8d1307c703452a81562789c66d44b9
1
004a1ff2815b40428aa7f30ba7b415a4
RY(theta₃)
25e87002980e453ab427e91cb87062a0--004a1ff2815b40428aa7f30ba7b415a4
4b6002276708466090a913a938f19fcf
RX(theta₆)
004a1ff2815b40428aa7f30ba7b415a4--4b6002276708466090a913a938f19fcf
9c3cb6271f0e425ab162438eda47ec3c
4b6002276708466090a913a938f19fcf--9c3cb6271f0e425ab162438eda47ec3c
2de3974e4f924e04be3180982e60d5e0
9c3cb6271f0e425ab162438eda47ec3c--2de3974e4f924e04be3180982e60d5e0
ccb1404b5c7044598765da27e0d61956
RX(theta₉)
2de3974e4f924e04be3180982e60d5e0--ccb1404b5c7044598765da27e0d61956
4612e2094fef4891926f6fabca7be4c3
RY(theta₁₂)
ccb1404b5c7044598765da27e0d61956--4612e2094fef4891926f6fabca7be4c3
39f9e42f1e554956813b621771edfdfc
RX(theta₁₅)
4612e2094fef4891926f6fabca7be4c3--39f9e42f1e554956813b621771edfdfc
17696e1058444aac9b4b9db0e914c437
39f9e42f1e554956813b621771edfdfc--17696e1058444aac9b4b9db0e914c437
73f24224eda94f6fb2cc6a8ef2cfa94b
17696e1058444aac9b4b9db0e914c437--73f24224eda94f6fb2cc6a8ef2cfa94b
0a30c1bd92904463bd5ae58ae4372a3b
73f24224eda94f6fb2cc6a8ef2cfa94b--0a30c1bd92904463bd5ae58ae4372a3b
fe65b878e1c84a36a528cda08f9876ac
dbc99ebc616f42e88bd9c9e6140307cc
RX(theta₁)
ad8d1307c703452a81562789c66d44b9--dbc99ebc616f42e88bd9c9e6140307cc
5300d278b4c441ce99078c1196d16da9
2
f49dfe21950845e7ba087c3a7345c26c
RY(theta₄)
dbc99ebc616f42e88bd9c9e6140307cc--f49dfe21950845e7ba087c3a7345c26c
cf8c3457809741958e6213a12f2ba796
RX(theta₇)
f49dfe21950845e7ba087c3a7345c26c--cf8c3457809741958e6213a12f2ba796
ea9f27172b0a4891b8ec0b906a623f31
X
cf8c3457809741958e6213a12f2ba796--ea9f27172b0a4891b8ec0b906a623f31
ea9f27172b0a4891b8ec0b906a623f31--9c3cb6271f0e425ab162438eda47ec3c
29c2306860c34f9da9a7546df3efee4d
ea9f27172b0a4891b8ec0b906a623f31--29c2306860c34f9da9a7546df3efee4d
5d8ea486229b4b66a7321b8e790e444e
RX(theta₁₀)
29c2306860c34f9da9a7546df3efee4d--5d8ea486229b4b66a7321b8e790e444e
d1be8f6d9d2741d3a3e78f98ec5cdd9f
RY(theta₁₃)
5d8ea486229b4b66a7321b8e790e444e--d1be8f6d9d2741d3a3e78f98ec5cdd9f
15b9a00ffdd6486b911489938a332780
RX(theta₁₆)
d1be8f6d9d2741d3a3e78f98ec5cdd9f--15b9a00ffdd6486b911489938a332780
ba447882aff64037b3389b114a1a8da7
X
15b9a00ffdd6486b911489938a332780--ba447882aff64037b3389b114a1a8da7
ba447882aff64037b3389b114a1a8da7--17696e1058444aac9b4b9db0e914c437
136ab67e0c8349de9f6b722c20535073
ba447882aff64037b3389b114a1a8da7--136ab67e0c8349de9f6b722c20535073
136ab67e0c8349de9f6b722c20535073--fe65b878e1c84a36a528cda08f9876ac
a5d9e48f6bd1430a84522158a3d49851
a3ab2883d03c445b9dc2e2f395050a86
RX(theta₂)
5300d278b4c441ce99078c1196d16da9--a3ab2883d03c445b9dc2e2f395050a86
eeec9abb37204e93aeebcec698f13047
RY(theta₅)
a3ab2883d03c445b9dc2e2f395050a86--eeec9abb37204e93aeebcec698f13047
6712ff01c0484ce29bc2884f5e44d5e8
RX(theta₈)
eeec9abb37204e93aeebcec698f13047--6712ff01c0484ce29bc2884f5e44d5e8
bd035b91f40e4d6c8c05780b516acfb1
6712ff01c0484ce29bc2884f5e44d5e8--bd035b91f40e4d6c8c05780b516acfb1
a76ad3b2e0c847c6bbca4e62e55834ad
X
bd035b91f40e4d6c8c05780b516acfb1--a76ad3b2e0c847c6bbca4e62e55834ad
a76ad3b2e0c847c6bbca4e62e55834ad--29c2306860c34f9da9a7546df3efee4d
90d77fd9af2d4cc29169dbc5686a5914
RX(theta₁₁)
a76ad3b2e0c847c6bbca4e62e55834ad--90d77fd9af2d4cc29169dbc5686a5914
ee08010978494459ace07c17b5c468ef
RY(theta₁₄)
90d77fd9af2d4cc29169dbc5686a5914--ee08010978494459ace07c17b5c468ef
467e3bf5c47d4bbbbd7592453b716bd6
RX(theta₁₇)
ee08010978494459ace07c17b5c468ef--467e3bf5c47d4bbbbd7592453b716bd6
482e0bb387f94757939f0f45ac877dd8
467e3bf5c47d4bbbbd7592453b716bd6--482e0bb387f94757939f0f45ac877dd8
12a14542cdcb4254aafee0021b57493b
X
482e0bb387f94757939f0f45ac877dd8--12a14542cdcb4254aafee0021b57493b
12a14542cdcb4254aafee0021b57493b--136ab67e0c8349de9f6b722c20535073
12a14542cdcb4254aafee0021b57493b--a5d9e48f6bd1430a84522158a3d49851
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
5c67e4e9a59740a499302b768f66d907
0
b5053811d72f4751b7d445b4ce039b1a
RX(phi₀)
5c67e4e9a59740a499302b768f66d907--b5053811d72f4751b7d445b4ce039b1a
9e818d456e904e669f66d25ac80e3129
1
cb9cf1ab2b4d4bf1b5adc8d1cb1d9c95
RY(phi₃)
b5053811d72f4751b7d445b4ce039b1a--cb9cf1ab2b4d4bf1b5adc8d1cb1d9c95
732c64b6fe774462bdb2d13a0b903510
RX(phi₆)
cb9cf1ab2b4d4bf1b5adc8d1cb1d9c95--732c64b6fe774462bdb2d13a0b903510
88fe865ae96c4ccfb428369b4e54cbe3
732c64b6fe774462bdb2d13a0b903510--88fe865ae96c4ccfb428369b4e54cbe3
a7eb28785fa1420aada3611787eeeac0
88fe865ae96c4ccfb428369b4e54cbe3--a7eb28785fa1420aada3611787eeeac0
e459765101c34232a1068f0e5ebb20fe
RX(phi₉)
a7eb28785fa1420aada3611787eeeac0--e459765101c34232a1068f0e5ebb20fe
b2e42857186a409aa3641c9d1eb345fb
RY(phi₁₂)
e459765101c34232a1068f0e5ebb20fe--b2e42857186a409aa3641c9d1eb345fb
1fda1db57a8b428b99abd4d8fd44ad9a
RX(phi₁₅)
b2e42857186a409aa3641c9d1eb345fb--1fda1db57a8b428b99abd4d8fd44ad9a
de6e7721749a47af8013b60a0a8ccc6b
1fda1db57a8b428b99abd4d8fd44ad9a--de6e7721749a47af8013b60a0a8ccc6b
1c308a5b0e844228a7e413da4348c89a
de6e7721749a47af8013b60a0a8ccc6b--1c308a5b0e844228a7e413da4348c89a
8af5fb958be9482fadb5966801a85925
1c308a5b0e844228a7e413da4348c89a--8af5fb958be9482fadb5966801a85925
509ff3c87166498cb99d43a7ab7eaf04
201e4c0b1a3c47ecaabb19fccfaf56bf
RX(phi₁)
9e818d456e904e669f66d25ac80e3129--201e4c0b1a3c47ecaabb19fccfaf56bf
41e4755b30a544ce81057fe7caadeddc
2
8da994077cc0465c9b21d82daf13f699
RY(phi₄)
201e4c0b1a3c47ecaabb19fccfaf56bf--8da994077cc0465c9b21d82daf13f699
5398aa9c9c2048e88bb59da6273aadd5
RX(phi₇)
8da994077cc0465c9b21d82daf13f699--5398aa9c9c2048e88bb59da6273aadd5
da2347dd15254e8d9bb7dfcd459325d2
PHASE(phi_ent₀)
5398aa9c9c2048e88bb59da6273aadd5--da2347dd15254e8d9bb7dfcd459325d2
da2347dd15254e8d9bb7dfcd459325d2--88fe865ae96c4ccfb428369b4e54cbe3
b017e30ff82d40e68e7032e37375cdbc
da2347dd15254e8d9bb7dfcd459325d2--b017e30ff82d40e68e7032e37375cdbc
f100a3db3826490c95a7ddc733079f97
RX(phi₁₀)
b017e30ff82d40e68e7032e37375cdbc--f100a3db3826490c95a7ddc733079f97
45fb3c9604ce4d4faeece645ad0e6279
RY(phi₁₃)
f100a3db3826490c95a7ddc733079f97--45fb3c9604ce4d4faeece645ad0e6279
b629a0db73ce446ab34d89793f04b1c2
RX(phi₁₆)
45fb3c9604ce4d4faeece645ad0e6279--b629a0db73ce446ab34d89793f04b1c2
7279fe774b9146ef9313a60f645a4e5a
PHASE(phi_ent₂)
b629a0db73ce446ab34d89793f04b1c2--7279fe774b9146ef9313a60f645a4e5a
7279fe774b9146ef9313a60f645a4e5a--de6e7721749a47af8013b60a0a8ccc6b
4503a94e2d6a466fb56785384808572c
7279fe774b9146ef9313a60f645a4e5a--4503a94e2d6a466fb56785384808572c
4503a94e2d6a466fb56785384808572c--509ff3c87166498cb99d43a7ab7eaf04
63087ec39e19472589fb4cdbf4df1fe3
4712d263cac7462b99ee384f108b3342
RX(phi₂)
41e4755b30a544ce81057fe7caadeddc--4712d263cac7462b99ee384f108b3342
3243acc6596b429b933d071cb0e6b54a
RY(phi₅)
4712d263cac7462b99ee384f108b3342--3243acc6596b429b933d071cb0e6b54a
277eb881912644b4b57f1a3231c1decf
RX(phi₈)
3243acc6596b429b933d071cb0e6b54a--277eb881912644b4b57f1a3231c1decf
6af352cee4b64676ae3ea56bf07dbe0a
277eb881912644b4b57f1a3231c1decf--6af352cee4b64676ae3ea56bf07dbe0a
48f76b189d22424293fd9a63ba80f673
PHASE(phi_ent₁)
6af352cee4b64676ae3ea56bf07dbe0a--48f76b189d22424293fd9a63ba80f673
48f76b189d22424293fd9a63ba80f673--b017e30ff82d40e68e7032e37375cdbc
1d58871d28614da780842a24060ac264
RX(phi₁₁)
48f76b189d22424293fd9a63ba80f673--1d58871d28614da780842a24060ac264
069699f8c08f4faebb9651370c8f4b15
RY(phi₁₄)
1d58871d28614da780842a24060ac264--069699f8c08f4faebb9651370c8f4b15
6762e815c8fa49ff96d730e48be00d7c
RX(phi₁₇)
069699f8c08f4faebb9651370c8f4b15--6762e815c8fa49ff96d730e48be00d7c
45b2ed307f6043368ca38e65e4139c4c
6762e815c8fa49ff96d730e48be00d7c--45b2ed307f6043368ca38e65e4139c4c
fe6e115e6644489392ce61cb8a5ae93e
PHASE(phi_ent₃)
45b2ed307f6043368ca38e65e4139c4c--fe6e115e6644489392ce61cb8a5ae93e
fe6e115e6644489392ce61cb8a5ae93e--4503a94e2d6a466fb56785384808572c
fe6e115e6644489392ce61cb8a5ae93e--63087ec39e19472589fb4cdbf4df1fe3
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_2c506fc5ac624554a6f667d12b8c545b
cluster_a3cd96b5ec324fe89aca4fd3eb2c2f20
a63d9ba704144eaf911278b637722130
0
9587aff8e2524926bd96af1cd303c150
RX(theta₀)
a63d9ba704144eaf911278b637722130--9587aff8e2524926bd96af1cd303c150
be02e90c9bdc4fb6906f4c43d11930ad
1
b8b317b67eb64ab197bf87b9903219f0
RY(theta₃)
9587aff8e2524926bd96af1cd303c150--b8b317b67eb64ab197bf87b9903219f0
fca1c66289984debbe3884cf76d4c8bb
RX(theta₆)
b8b317b67eb64ab197bf87b9903219f0--fca1c66289984debbe3884cf76d4c8bb
a455102b6b604f7db84d9cea79cb2769
HamEvo
fca1c66289984debbe3884cf76d4c8bb--a455102b6b604f7db84d9cea79cb2769
9a3a963856e446d69cb8667f1f10292d
RX(theta₉)
a455102b6b604f7db84d9cea79cb2769--9a3a963856e446d69cb8667f1f10292d
ddee2857789b4a5a84260830fa39199c
RY(theta₁₂)
9a3a963856e446d69cb8667f1f10292d--ddee2857789b4a5a84260830fa39199c
23fedd2144c241c1b06eacaccfc8a80f
RX(theta₁₅)
ddee2857789b4a5a84260830fa39199c--23fedd2144c241c1b06eacaccfc8a80f
f8101ea2c0544fd0999c6b5b39e0bbb3
HamEvo
23fedd2144c241c1b06eacaccfc8a80f--f8101ea2c0544fd0999c6b5b39e0bbb3
32c40a26ce8a44629908334379d7ca65
f8101ea2c0544fd0999c6b5b39e0bbb3--32c40a26ce8a44629908334379d7ca65
555a2b8c052c4a938030beabc222bf67
a382e0bb1b244efcbfb8e97db538bc5b
RX(theta₁)
be02e90c9bdc4fb6906f4c43d11930ad--a382e0bb1b244efcbfb8e97db538bc5b
d34845e512b745d49ccdc413e43cef42
2
d5828faf6219417d8f1d9e449773faae
RY(theta₄)
a382e0bb1b244efcbfb8e97db538bc5b--d5828faf6219417d8f1d9e449773faae
a478413de75349c0a71e7da98a951605
RX(theta₇)
d5828faf6219417d8f1d9e449773faae--a478413de75349c0a71e7da98a951605
510d38d7102e4b229dffc80f009cdc9d
t = theta_t₀
a478413de75349c0a71e7da98a951605--510d38d7102e4b229dffc80f009cdc9d
a49525db37024fbfb5146f090c0b03df
RX(theta₁₀)
510d38d7102e4b229dffc80f009cdc9d--a49525db37024fbfb5146f090c0b03df
cb66a96ddc744f76b6184aef42b55e98
RY(theta₁₃)
a49525db37024fbfb5146f090c0b03df--cb66a96ddc744f76b6184aef42b55e98
efdca06481b549e9af4fa5086a16d26b
RX(theta₁₆)
cb66a96ddc744f76b6184aef42b55e98--efdca06481b549e9af4fa5086a16d26b
73fd777f00fc49dc9fca3f3c93e92669
t = theta_t₁
efdca06481b549e9af4fa5086a16d26b--73fd777f00fc49dc9fca3f3c93e92669
73fd777f00fc49dc9fca3f3c93e92669--555a2b8c052c4a938030beabc222bf67
4b4acddd78f741af9d0d27509c997b26
05c964f315ec4808876a1dae4992999e
RX(theta₂)
d34845e512b745d49ccdc413e43cef42--05c964f315ec4808876a1dae4992999e
e992e33b830447b9838996e1a49e8600
RY(theta₅)
05c964f315ec4808876a1dae4992999e--e992e33b830447b9838996e1a49e8600
e90c2a7734e34fc6a87fff813fe09d41
RX(theta₈)
e992e33b830447b9838996e1a49e8600--e90c2a7734e34fc6a87fff813fe09d41
46ae9dd09b7e48d8ada8c4ef65275a98
e90c2a7734e34fc6a87fff813fe09d41--46ae9dd09b7e48d8ada8c4ef65275a98
118e479019c94cccb98af37e60da3609
RX(theta₁₁)
46ae9dd09b7e48d8ada8c4ef65275a98--118e479019c94cccb98af37e60da3609
e1a78e40285947a6aceac31913c400a4
RY(theta₁₄)
118e479019c94cccb98af37e60da3609--e1a78e40285947a6aceac31913c400a4
20562bd877ec4abe9ead6be34a889f5d
RX(theta₁₇)
e1a78e40285947a6aceac31913c400a4--20562bd877ec4abe9ead6be34a889f5d
6bffa3c2a89d4012a8ac91d9ddff735a
20562bd877ec4abe9ead6be34a889f5d--6bffa3c2a89d4012a8ac91d9ddff735a
6bffa3c2a89d4012a8ac91d9ddff735a--4b4acddd78f741af9d0d27509c997b26
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_69dfd3c3c04e49c690ba4ef2e889019f
cluster_409916617cbf40f488766d89a3d3a156
f2ae81238136487fb1153bcc5e5bf88a
0
5ec814c9129940b58bfc2b7761d84074
RX(theta₀)
f2ae81238136487fb1153bcc5e5bf88a--5ec814c9129940b58bfc2b7761d84074
cdd7ef53e8124cdab51eef1b4093527d
1
95ab3e28579c4f4f926d68f3f5feadf3
RY(theta₆)
5ec814c9129940b58bfc2b7761d84074--95ab3e28579c4f4f926d68f3f5feadf3
142939886c6743a897f5c89d08aaa02b
RX(theta₁₂)
95ab3e28579c4f4f926d68f3f5feadf3--142939886c6743a897f5c89d08aaa02b
e3847d98eb1f43928ef366e835e54bbf
142939886c6743a897f5c89d08aaa02b--e3847d98eb1f43928ef366e835e54bbf
041cad404f0a449382c68f95ff4f39c0
RX(theta₁₈)
e3847d98eb1f43928ef366e835e54bbf--041cad404f0a449382c68f95ff4f39c0
b74c5c09e9454816a0ab96340885b185
RY(theta₂₄)
041cad404f0a449382c68f95ff4f39c0--b74c5c09e9454816a0ab96340885b185
d634f4b9d4fd4959ac4e1cfdb9c015d9
RX(theta₃₀)
b74c5c09e9454816a0ab96340885b185--d634f4b9d4fd4959ac4e1cfdb9c015d9
ab9c8f0429b647029d85d17516c88a81
d634f4b9d4fd4959ac4e1cfdb9c015d9--ab9c8f0429b647029d85d17516c88a81
0a19f5cd742c4428902745009243ba9a
ab9c8f0429b647029d85d17516c88a81--0a19f5cd742c4428902745009243ba9a
8d9f8619168c4bc0baabfa5b013fb0e8
596b5d01ccd045229da78d4883287630
RX(theta₁)
cdd7ef53e8124cdab51eef1b4093527d--596b5d01ccd045229da78d4883287630
4fc17586c8ab4c4cb533c6126cf53e67
2
bfd38b4a94a54aa188c699542ea83cd5
RY(theta₇)
596b5d01ccd045229da78d4883287630--bfd38b4a94a54aa188c699542ea83cd5
4b2269ccec9147b187de279190c0cea2
RX(theta₁₃)
bfd38b4a94a54aa188c699542ea83cd5--4b2269ccec9147b187de279190c0cea2
f756a88a44ab4049b25b02fe1de663b9
4b2269ccec9147b187de279190c0cea2--f756a88a44ab4049b25b02fe1de663b9
a5844dae8dd14c2ab5c08f0ef1f98597
RX(theta₁₉)
f756a88a44ab4049b25b02fe1de663b9--a5844dae8dd14c2ab5c08f0ef1f98597
3a24698665c2431c916c9128166b0115
RY(theta₂₅)
a5844dae8dd14c2ab5c08f0ef1f98597--3a24698665c2431c916c9128166b0115
afca3f1ff6454421a9bfb5975ad52c6f
RX(theta₃₁)
3a24698665c2431c916c9128166b0115--afca3f1ff6454421a9bfb5975ad52c6f
6c297755e5a24787b6a0cb99ff0115c2
afca3f1ff6454421a9bfb5975ad52c6f--6c297755e5a24787b6a0cb99ff0115c2
6c297755e5a24787b6a0cb99ff0115c2--8d9f8619168c4bc0baabfa5b013fb0e8
7661df3cb65b403897ad89f8289c3445
ba0dd593a0934b0fb0a25c2f4080884f
RX(theta₂)
4fc17586c8ab4c4cb533c6126cf53e67--ba0dd593a0934b0fb0a25c2f4080884f
64e4446b0a304d52be2f30f0296a8dc7
3
3ffdb322a62e41b19ae9804b1832fac2
RY(theta₈)
ba0dd593a0934b0fb0a25c2f4080884f--3ffdb322a62e41b19ae9804b1832fac2
bddbe98db65e405086cc27a83e3e9ae6
RX(theta₁₄)
3ffdb322a62e41b19ae9804b1832fac2--bddbe98db65e405086cc27a83e3e9ae6
ba2109fbaf504ba9ab977eba4d54d60f
HamEvo
bddbe98db65e405086cc27a83e3e9ae6--ba2109fbaf504ba9ab977eba4d54d60f
16b23f6b5cad4eb29350c68dfde8c994
RX(theta₂₀)
ba2109fbaf504ba9ab977eba4d54d60f--16b23f6b5cad4eb29350c68dfde8c994
58edaad6fd8344229d043dc2d37d32ec
RY(theta₂₆)
16b23f6b5cad4eb29350c68dfde8c994--58edaad6fd8344229d043dc2d37d32ec
c00e2d57b5824dd8aaf5fb0a58ef0397
RX(theta₃₂)
58edaad6fd8344229d043dc2d37d32ec--c00e2d57b5824dd8aaf5fb0a58ef0397
6a00a3260d67487e86e6b019b3a23bfa
HamEvo
c00e2d57b5824dd8aaf5fb0a58ef0397--6a00a3260d67487e86e6b019b3a23bfa
6a00a3260d67487e86e6b019b3a23bfa--7661df3cb65b403897ad89f8289c3445
033cac10327946128560199885f8fb9f
da0c5514d93b48808eec120874954459
RX(theta₃)
64e4446b0a304d52be2f30f0296a8dc7--da0c5514d93b48808eec120874954459
6487577059eb439eb762883cc88f5341
4
ca342c56b1424d96a8e17543c5b2d9d2
RY(theta₉)
da0c5514d93b48808eec120874954459--ca342c56b1424d96a8e17543c5b2d9d2
4c8ebf2d5abd4e58907f752f89a8a1e0
RX(theta₁₅)
ca342c56b1424d96a8e17543c5b2d9d2--4c8ebf2d5abd4e58907f752f89a8a1e0
d038041cc6164260b0aaae85d76096dc
t = theta_t₀
4c8ebf2d5abd4e58907f752f89a8a1e0--d038041cc6164260b0aaae85d76096dc
a0855a7fb6114c3a8a913fc6f00e1008
RX(theta₂₁)
d038041cc6164260b0aaae85d76096dc--a0855a7fb6114c3a8a913fc6f00e1008
7c5dca13ef5a41dbac7be39f339e1c08
RY(theta₂₇)
a0855a7fb6114c3a8a913fc6f00e1008--7c5dca13ef5a41dbac7be39f339e1c08
0d80e9c4e629427082b3bad7e2c9c2b1
RX(theta₃₃)
7c5dca13ef5a41dbac7be39f339e1c08--0d80e9c4e629427082b3bad7e2c9c2b1
ec4dc0c4498047a58eabfd86f5ea9297
t = theta_t₁
0d80e9c4e629427082b3bad7e2c9c2b1--ec4dc0c4498047a58eabfd86f5ea9297
ec4dc0c4498047a58eabfd86f5ea9297--033cac10327946128560199885f8fb9f
b4fbb988af1542dfa52daf4271e0cb2a
a8535f551311425b9761427ebc6b023c
RX(theta₄)
6487577059eb439eb762883cc88f5341--a8535f551311425b9761427ebc6b023c
c100a37feee94852b489ca5d10378869
5
e602ae5c144c4812b4cdcaee8bb2be3d
RY(theta₁₀)
a8535f551311425b9761427ebc6b023c--e602ae5c144c4812b4cdcaee8bb2be3d
8f9a8b0b8dd341038fd8ce813f046116
RX(theta₁₆)
e602ae5c144c4812b4cdcaee8bb2be3d--8f9a8b0b8dd341038fd8ce813f046116
c587137b534543fdb9d9f03b4ed1eed7
8f9a8b0b8dd341038fd8ce813f046116--c587137b534543fdb9d9f03b4ed1eed7
85e602bfe8b94d44974cc75d695a57ec
RX(theta₂₂)
c587137b534543fdb9d9f03b4ed1eed7--85e602bfe8b94d44974cc75d695a57ec
f9b576957a834ba29dcf3647ab210501
RY(theta₂₈)
85e602bfe8b94d44974cc75d695a57ec--f9b576957a834ba29dcf3647ab210501
2e0a189de1da417785d26f1fc8dafa2d
RX(theta₃₄)
f9b576957a834ba29dcf3647ab210501--2e0a189de1da417785d26f1fc8dafa2d
8f7846c8a54c495db5100e09ee0b2f20
2e0a189de1da417785d26f1fc8dafa2d--8f7846c8a54c495db5100e09ee0b2f20
8f7846c8a54c495db5100e09ee0b2f20--b4fbb988af1542dfa52daf4271e0cb2a
a24f721acf154e0eaaf29db48ffa3d95
ecf17030344f435cb951d049967c6abb
RX(theta₅)
c100a37feee94852b489ca5d10378869--ecf17030344f435cb951d049967c6abb
43d21e3ba19649edb026a3bc71265fb6
RY(theta₁₁)
ecf17030344f435cb951d049967c6abb--43d21e3ba19649edb026a3bc71265fb6
0e28a5c3be94416296717973de3b7929
RX(theta₁₇)
43d21e3ba19649edb026a3bc71265fb6--0e28a5c3be94416296717973de3b7929
e82a27d58f4740d185e1f6ae9d5876ab
0e28a5c3be94416296717973de3b7929--e82a27d58f4740d185e1f6ae9d5876ab
fc2efeb0b5f94f0aa68ce874bc4fe332
RX(theta₂₃)
e82a27d58f4740d185e1f6ae9d5876ab--fc2efeb0b5f94f0aa68ce874bc4fe332
13d16d00c157427d91a134a23f3bd631
RY(theta₂₉)
fc2efeb0b5f94f0aa68ce874bc4fe332--13d16d00c157427d91a134a23f3bd631
aecca43575b94e6c8ba874887c3d38ff
RX(theta₃₅)
13d16d00c157427d91a134a23f3bd631--aecca43575b94e6c8ba874887c3d38ff
627fb47a82394db7a37c27af11b05627
aecca43575b94e6c8ba874887c3d38ff--627fb47a82394db7a37c27af11b05627
627fb47a82394db7a37c27af11b05627--a24f721acf154e0eaaf29db48ffa3d95
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_7afabbcbbf5d4f75b4dd48c3cbf85450
BPMA-1
cluster_98b4d495b7e0404ab80a27ad8454fc6b
BPMA-0
25c261a8541b412c9106d6b3597e9d03
0
c51bd0e9a91c4aab8c980cc85c83b9f3
RX(iia_α₀₀)
25c261a8541b412c9106d6b3597e9d03--c51bd0e9a91c4aab8c980cc85c83b9f3
a8d07ca27348400fadc32b408b17da36
1
90cd54f805ff4e369536435a497302b3
RY(iia_α₀₃)
c51bd0e9a91c4aab8c980cc85c83b9f3--90cd54f805ff4e369536435a497302b3
a2402c7d7a4e401796fc78925ab76878
90cd54f805ff4e369536435a497302b3--a2402c7d7a4e401796fc78925ab76878
0fea457566274009a1e3a7c77711735f
a2402c7d7a4e401796fc78925ab76878--0fea457566274009a1e3a7c77711735f
a0732551d1d7420da06fb747b0513e05
RX(iia_γ₀₀)
0fea457566274009a1e3a7c77711735f--a0732551d1d7420da06fb747b0513e05
23698804aa6f4c928ea9dbf35a96187b
a0732551d1d7420da06fb747b0513e05--23698804aa6f4c928ea9dbf35a96187b
9762b0f49bc044c792ac3b9200999cfa
23698804aa6f4c928ea9dbf35a96187b--9762b0f49bc044c792ac3b9200999cfa
04931bc92160471babf8ec07dd940a9f
RY(iia_β₀₃)
9762b0f49bc044c792ac3b9200999cfa--04931bc92160471babf8ec07dd940a9f
00e21466fc0440fdbaecb626e68298fb
RX(iia_β₀₀)
04931bc92160471babf8ec07dd940a9f--00e21466fc0440fdbaecb626e68298fb
de09002e66624468a59ed9517fd0db5f
RX(iia_α₁₀)
00e21466fc0440fdbaecb626e68298fb--de09002e66624468a59ed9517fd0db5f
2565c1470376490b8104def4c5a82f23
RY(iia_α₁₃)
de09002e66624468a59ed9517fd0db5f--2565c1470376490b8104def4c5a82f23
06c09c7c6b0f4b07b494be16e00d3577
2565c1470376490b8104def4c5a82f23--06c09c7c6b0f4b07b494be16e00d3577
ff1070aa259042bd8a824eab4e8f7102
06c09c7c6b0f4b07b494be16e00d3577--ff1070aa259042bd8a824eab4e8f7102
faab3efddbb34ae884daf7cefbc97037
RX(iia_γ₁₀)
ff1070aa259042bd8a824eab4e8f7102--faab3efddbb34ae884daf7cefbc97037
a9a14dbe82de4732a33492bbd0e869c4
faab3efddbb34ae884daf7cefbc97037--a9a14dbe82de4732a33492bbd0e869c4
b038db3df94b43e894fe8a532a3c5f9f
a9a14dbe82de4732a33492bbd0e869c4--b038db3df94b43e894fe8a532a3c5f9f
cd2d9cca5490422298e2fa083f889576
RY(iia_β₁₃)
b038db3df94b43e894fe8a532a3c5f9f--cd2d9cca5490422298e2fa083f889576
a32c6f5097714a368415d0de30d91617
RX(iia_β₁₀)
cd2d9cca5490422298e2fa083f889576--a32c6f5097714a368415d0de30d91617
6d57a58c8191445c98e15a3b0e994225
a32c6f5097714a368415d0de30d91617--6d57a58c8191445c98e15a3b0e994225
1ed1dc65a6614d1684f6b9e608b3acc4
cb8ec3fd46984b5eb9ee24cadf9f87eb
RX(iia_α₀₁)
a8d07ca27348400fadc32b408b17da36--cb8ec3fd46984b5eb9ee24cadf9f87eb
edd107e34e404a23bd19ad3320bb06d7
2
e3de032a22324378a90959a23963df62
RY(iia_α₀₄)
cb8ec3fd46984b5eb9ee24cadf9f87eb--e3de032a22324378a90959a23963df62
a2a1d429632945bcb9ec00a16d74cf5e
X
e3de032a22324378a90959a23963df62--a2a1d429632945bcb9ec00a16d74cf5e
a2a1d429632945bcb9ec00a16d74cf5e--a2402c7d7a4e401796fc78925ab76878
0090f4db42dc4ab1a22741b5832be22b
a2a1d429632945bcb9ec00a16d74cf5e--0090f4db42dc4ab1a22741b5832be22b
00f14253909f4fcdb5802563fb5a577c
RX(iia_γ₀₁)
0090f4db42dc4ab1a22741b5832be22b--00f14253909f4fcdb5802563fb5a577c
b8f70df9b7f443e48e9ac00032ad258f
00f14253909f4fcdb5802563fb5a577c--b8f70df9b7f443e48e9ac00032ad258f
a67fa4fb9e884f2fbc97317d03e74118
X
b8f70df9b7f443e48e9ac00032ad258f--a67fa4fb9e884f2fbc97317d03e74118
a67fa4fb9e884f2fbc97317d03e74118--9762b0f49bc044c792ac3b9200999cfa
50faf18262ef47b08334f132ba53da21
RY(iia_β₀₄)
a67fa4fb9e884f2fbc97317d03e74118--50faf18262ef47b08334f132ba53da21
7b4c78802ec242e79180e5a81b565f87
RX(iia_β₀₁)
50faf18262ef47b08334f132ba53da21--7b4c78802ec242e79180e5a81b565f87
0de7ef6c65344d6b872f0712938aea15
RX(iia_α₁₁)
7b4c78802ec242e79180e5a81b565f87--0de7ef6c65344d6b872f0712938aea15
a0ee69342ba148c1a53172645b4d5b07
RY(iia_α₁₄)
0de7ef6c65344d6b872f0712938aea15--a0ee69342ba148c1a53172645b4d5b07
0427744279a6456e952005d1a3ed1e53
X
a0ee69342ba148c1a53172645b4d5b07--0427744279a6456e952005d1a3ed1e53
0427744279a6456e952005d1a3ed1e53--06c09c7c6b0f4b07b494be16e00d3577
3dd4aeaa30ad4e38939ad92728a4ca56
0427744279a6456e952005d1a3ed1e53--3dd4aeaa30ad4e38939ad92728a4ca56
d83c1626be784666996ab5f6de6d2115
RX(iia_γ₁₁)
3dd4aeaa30ad4e38939ad92728a4ca56--d83c1626be784666996ab5f6de6d2115
2233eaa4662e4544b435d465babd9a46
d83c1626be784666996ab5f6de6d2115--2233eaa4662e4544b435d465babd9a46
90f5d0a4e5dd41cd8095fce01c7e0359
X
2233eaa4662e4544b435d465babd9a46--90f5d0a4e5dd41cd8095fce01c7e0359
90f5d0a4e5dd41cd8095fce01c7e0359--b038db3df94b43e894fe8a532a3c5f9f
1b1f696a6f0d4076b7c308f79824b585
RY(iia_β₁₄)
90f5d0a4e5dd41cd8095fce01c7e0359--1b1f696a6f0d4076b7c308f79824b585
110924ded1134609bcd1d2bfd95e62e0
RX(iia_β₁₁)
1b1f696a6f0d4076b7c308f79824b585--110924ded1134609bcd1d2bfd95e62e0
110924ded1134609bcd1d2bfd95e62e0--1ed1dc65a6614d1684f6b9e608b3acc4
b54b792c240b483e9393290a92f7574e
bee007eb1b4d409b83df84edb7131b3d
RX(iia_α₀₂)
edd107e34e404a23bd19ad3320bb06d7--bee007eb1b4d409b83df84edb7131b3d
e00efc7dcdbc4b0bac667ab840ed7bde
RY(iia_α₀₅)
bee007eb1b4d409b83df84edb7131b3d--e00efc7dcdbc4b0bac667ab840ed7bde
90dec8fba29a46cab521de130b568f44
e00efc7dcdbc4b0bac667ab840ed7bde--90dec8fba29a46cab521de130b568f44
aa0fcc6130c344d6956c313e61d6e898
X
90dec8fba29a46cab521de130b568f44--aa0fcc6130c344d6956c313e61d6e898
aa0fcc6130c344d6956c313e61d6e898--0090f4db42dc4ab1a22741b5832be22b
d2b0bd83c819453faa54853a103075d1
RX(iia_γ₀₂)
aa0fcc6130c344d6956c313e61d6e898--d2b0bd83c819453faa54853a103075d1
06181c3afef64dd4be9eb6c56355fef7
X
d2b0bd83c819453faa54853a103075d1--06181c3afef64dd4be9eb6c56355fef7
06181c3afef64dd4be9eb6c56355fef7--b8f70df9b7f443e48e9ac00032ad258f
7e6ac499c8ed4e778bb23f717b18647d
06181c3afef64dd4be9eb6c56355fef7--7e6ac499c8ed4e778bb23f717b18647d
554eee82331546a2b680d04adb2d79c2
RY(iia_β₀₅)
7e6ac499c8ed4e778bb23f717b18647d--554eee82331546a2b680d04adb2d79c2
eed5d473ef7f4c73bd307687677bc702
RX(iia_β₀₂)
554eee82331546a2b680d04adb2d79c2--eed5d473ef7f4c73bd307687677bc702
64e91c387ad745c8836e2573230edd13
RX(iia_α₁₂)
eed5d473ef7f4c73bd307687677bc702--64e91c387ad745c8836e2573230edd13
c725566b79ea45c48d92607997ec063b
RY(iia_α₁₅)
64e91c387ad745c8836e2573230edd13--c725566b79ea45c48d92607997ec063b
2a49498788d14025a02434687db53b57
c725566b79ea45c48d92607997ec063b--2a49498788d14025a02434687db53b57
f9c0fd0abee24a60a8b5e68c170d45d8
X
2a49498788d14025a02434687db53b57--f9c0fd0abee24a60a8b5e68c170d45d8
f9c0fd0abee24a60a8b5e68c170d45d8--3dd4aeaa30ad4e38939ad92728a4ca56
06d1ed38eb2d49c7af2eebb961ae2f1a
RX(iia_γ₁₂)
f9c0fd0abee24a60a8b5e68c170d45d8--06d1ed38eb2d49c7af2eebb961ae2f1a
59bf026623cd4ea18dddcf0b25fe3822
X
06d1ed38eb2d49c7af2eebb961ae2f1a--59bf026623cd4ea18dddcf0b25fe3822
59bf026623cd4ea18dddcf0b25fe3822--2233eaa4662e4544b435d465babd9a46
18c53914582e48799ce968453aec0ed9
59bf026623cd4ea18dddcf0b25fe3822--18c53914582e48799ce968453aec0ed9
839eb51a1c344338b20049fee8accebe
RY(iia_β₁₅)
18c53914582e48799ce968453aec0ed9--839eb51a1c344338b20049fee8accebe
06be2224bec94d86b3a01400193c8c89
RX(iia_β₁₂)
839eb51a1c344338b20049fee8accebe--06be2224bec94d86b3a01400193c8c89
06be2224bec94d86b3a01400193c8c89--b54b792c240b483e9393290a92f7574e