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_034ea06a73d44984a70b45ca828e3783
Constant Chebyshev FM
cluster_ca011a0c06d948e281cc8a85fde00666
Constant Fourier FM
07f3659b2cc54893b925951c372ee960
0
f812f6f491684ead922d0835e01c3275
RX(phi)
07f3659b2cc54893b925951c372ee960--f812f6f491684ead922d0835e01c3275
a108dd05a9c74704a47cf24e22794a4a
1
2c1342f9d9664d2eafd902a5a98f6ba4
RX(acos(phi))
f812f6f491684ead922d0835e01c3275--2c1342f9d9664d2eafd902a5a98f6ba4
92449e418ed04872a7e530c743b7b6bb
2c1342f9d9664d2eafd902a5a98f6ba4--92449e418ed04872a7e530c743b7b6bb
b82744f780d544c1851b92e0b8c11a75
c25599980c3642cbabbbe789f156c3aa
RX(phi)
a108dd05a9c74704a47cf24e22794a4a--c25599980c3642cbabbbe789f156c3aa
49e3a892c0664f4aa5fef4de420e008a
2
a328db6a8e264ddfb377057bfe083d4a
RX(acos(phi))
c25599980c3642cbabbbe789f156c3aa--a328db6a8e264ddfb377057bfe083d4a
a328db6a8e264ddfb377057bfe083d4a--b82744f780d544c1851b92e0b8c11a75
24f3d111198e49f281150e8fe0b7bb70
0ebf8925a60b45c5aeb061ec2ea83325
RX(phi)
49e3a892c0664f4aa5fef4de420e008a--0ebf8925a60b45c5aeb061ec2ea83325
51724cc8f6384793b01ea9a6d4d9bc3c
RX(acos(phi))
0ebf8925a60b45c5aeb061ec2ea83325--51724cc8f6384793b01ea9a6d4d9bc3c
51724cc8f6384793b01ea9a6d4d9bc3c--24f3d111198e49f281150e8fe0b7bb70
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_9a8dfa96f50449c490e1250ad0d884a4
Constant <function custom_fn at 0x7f4f0c695e10> FM
cluster_2e9e8e9c033644108b363db6c5ea821e
Constant asin FM
689a11c7a58a4de8b401172aca031949
0
62b47fb056aa49a8a385c4104d2458da
RX(asin(phi))
689a11c7a58a4de8b401172aca031949--62b47fb056aa49a8a385c4104d2458da
4a3ae45c59cc45328cde54f7147973f3
1
157bbf612f354e9aa91bc07a4a0fb718
RX(phi**2 + asin(phi))
62b47fb056aa49a8a385c4104d2458da--157bbf612f354e9aa91bc07a4a0fb718
cfedc97dc55d43699ef3b4e3f5b3f1fe
157bbf612f354e9aa91bc07a4a0fb718--cfedc97dc55d43699ef3b4e3f5b3f1fe
528042fd44f14423873ab318de081f5f
d29422b6f2d7463d8ef3a2830c5396ec
RX(asin(phi))
4a3ae45c59cc45328cde54f7147973f3--d29422b6f2d7463d8ef3a2830c5396ec
d383ad75ea5a4fb6833f89e57713acff
2
ee793d649c9242b39fa89ee8ab41efb3
RX(phi**2 + asin(phi))
d29422b6f2d7463d8ef3a2830c5396ec--ee793d649c9242b39fa89ee8ab41efb3
ee793d649c9242b39fa89ee8ab41efb3--528042fd44f14423873ab318de081f5f
60d897e131e0414f8c34fa38b1b42ef6
f9ca023f9b254ad2b9d3e7fbaebdd8c9
RX(asin(phi))
d383ad75ea5a4fb6833f89e57713acff--f9ca023f9b254ad2b9d3e7fbaebdd8c9
434dc626eec24e07b96bd15555bd7a0e
RX(phi**2 + asin(phi))
f9ca023f9b254ad2b9d3e7fbaebdd8c9--434dc626eec24e07b96bd15555bd7a0e
434dc626eec24e07b96bd15555bd7a0e--60d897e131e0414f8c34fa38b1b42ef6
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_69dcc7aee35d48cbb7047a27fbad1fd6
Exponential Fourier FM
cluster_b34926d454f04e83893529d1f25bfadf
Constant Fourier FM
cluster_beabc8102d0449158d57deb301f8f2d3
Tower Fourier FM
b48003e62ded4a8283a502c7b7cc6a4d
0
cb90370f1ca447b39a1615fe3396244f
RX(phi)
b48003e62ded4a8283a502c7b7cc6a4d--cb90370f1ca447b39a1615fe3396244f
e131f4293f9d453a93c51a8b997cc174
1
022e43810d7e40d3a10415dec1faa860
RX(1.0*phi)
cb90370f1ca447b39a1615fe3396244f--022e43810d7e40d3a10415dec1faa860
a96d015dd839486eb237f35819eecba2
RX(1.0*phi)
022e43810d7e40d3a10415dec1faa860--a96d015dd839486eb237f35819eecba2
9432bbb36f3d49c5b9c0b9cd1f73e7f2
a96d015dd839486eb237f35819eecba2--9432bbb36f3d49c5b9c0b9cd1f73e7f2
14ce147a089a4a28804b74b5a2abd6bb
8348fec00d4a4533b41ebe7b9831e562
RX(phi)
e131f4293f9d453a93c51a8b997cc174--8348fec00d4a4533b41ebe7b9831e562
08dccbb305c840f387294342a6d29948
2
c75ad15ab1454663a085207e4582c102
RX(2.0*phi)
8348fec00d4a4533b41ebe7b9831e562--c75ad15ab1454663a085207e4582c102
c9f367a9220b4cbbad7f7b334e9109db
RX(2.0*phi)
c75ad15ab1454663a085207e4582c102--c9f367a9220b4cbbad7f7b334e9109db
c9f367a9220b4cbbad7f7b334e9109db--14ce147a089a4a28804b74b5a2abd6bb
c8e17873bc694a279c9c2f6240e21ac4
0ed1053c92e34f1a82ac72919f7d10aa
RX(phi)
08dccbb305c840f387294342a6d29948--0ed1053c92e34f1a82ac72919f7d10aa
40d2e122da2148468d458b7a1e88cc52
3
039cfb109adb48afa305c58369fbcc9a
RX(3.0*phi)
0ed1053c92e34f1a82ac72919f7d10aa--039cfb109adb48afa305c58369fbcc9a
a8cb76157d8841f587a1c593e1f7889c
RX(4.0*phi)
039cfb109adb48afa305c58369fbcc9a--a8cb76157d8841f587a1c593e1f7889c
a8cb76157d8841f587a1c593e1f7889c--c8e17873bc694a279c9c2f6240e21ac4
671a4074508443769ba80231e14534de
e3fef88603da42bba8dc04dce79f1dc3
RX(phi)
40d2e122da2148468d458b7a1e88cc52--e3fef88603da42bba8dc04dce79f1dc3
8386b3c6ab474c86b0c8058d79e407d1
4
54aac8414f8546178b50e1553326fee2
RX(4.0*phi)
e3fef88603da42bba8dc04dce79f1dc3--54aac8414f8546178b50e1553326fee2
2f40e88297894510b6f75780277e812c
RX(8.0*phi)
54aac8414f8546178b50e1553326fee2--2f40e88297894510b6f75780277e812c
2f40e88297894510b6f75780277e812c--671a4074508443769ba80231e14534de
757b0ae4777549208f17e4b1668c9bfd
5a8fd4416c6a4fad9cf5a1d463e074c5
RX(phi)
8386b3c6ab474c86b0c8058d79e407d1--5a8fd4416c6a4fad9cf5a1d463e074c5
0311ae715f574ccea9adc3ccf0c8dced
RX(5.0*phi)
5a8fd4416c6a4fad9cf5a1d463e074c5--0311ae715f574ccea9adc3ccf0c8dced
cddf4c4243cc49d784aa6af5cad49f9a
RX(16.0*phi)
0311ae715f574ccea9adc3ccf0c8dced--cddf4c4243cc49d784aa6af5cad49f9a
cddf4c4243cc49d784aa6af5cad49f9a--757b0ae4777549208f17e4b1668c9bfd
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
91637b41462a43bfaa1064e71d140d4a
0
770b517435e849368b39ed345a64e7d1
RX(1.0*acos(phi))
91637b41462a43bfaa1064e71d140d4a--770b517435e849368b39ed345a64e7d1
44975b0f983349d8828ec38cd0340ec5
1
e125c1261a4a4b2eb693d60fbf3d6270
770b517435e849368b39ed345a64e7d1--e125c1261a4a4b2eb693d60fbf3d6270
2865eaea8f0d4b57b3d6037ba6a3976e
3ef929a3a89e4773abb4c973e4f25663
RX(1.414*acos(phi))
44975b0f983349d8828ec38cd0340ec5--3ef929a3a89e4773abb4c973e4f25663
6c3962df93c34a3fbb3364d6acc0eeb9
2
3ef929a3a89e4773abb4c973e4f25663--2865eaea8f0d4b57b3d6037ba6a3976e
e9ed116beb8f4778a91880dd393aadd7
d440b50dc1174c4abaddde11ba33db5e
RX(1.732*acos(phi))
6c3962df93c34a3fbb3364d6acc0eeb9--d440b50dc1174c4abaddde11ba33db5e
e0b9d11c01a34bb7883ca2a2c3c5331e
3
d440b50dc1174c4abaddde11ba33db5e--e9ed116beb8f4778a91880dd393aadd7
3667d3d78f5c4d298beb1171a2ba8eaf
28585997bb5a4b83b783bfb050588127
RX(2.0*acos(phi))
e0b9d11c01a34bb7883ca2a2c3c5331e--28585997bb5a4b83b783bfb050588127
230e3bd8ca814d2599929887d0e6a989
4
28585997bb5a4b83b783bfb050588127--3667d3d78f5c4d298beb1171a2ba8eaf
6318feb1aef74e629edc0a5eb0e8b2e0
ac578538ab704fcf9ff4a0a28f88c120
RX(2.236*acos(phi))
230e3bd8ca814d2599929887d0e6a989--ac578538ab704fcf9ff4a0a28f88c120
ac578538ab704fcf9ff4a0a28f88c120--6318feb1aef74e629edc0a5eb0e8b2e0
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
afa2c0b762ad4cc585ca1e2f4de55b9d
0
4a733435aa7240cb9868b7e1da0249f9
RX(1.0*phi*w₀)
afa2c0b762ad4cc585ca1e2f4de55b9d--4a733435aa7240cb9868b7e1da0249f9
0f29b141ba8e4cdcaf34aae8feba5f75
1
d4e2a8a8a8074d26930021c09fcdd1d4
4a733435aa7240cb9868b7e1da0249f9--d4e2a8a8a8074d26930021c09fcdd1d4
50856e92672545138cc8993fdd77609e
d635883dca094e9693d558618a06212d
RX(2.0*phi*w₁)
0f29b141ba8e4cdcaf34aae8feba5f75--d635883dca094e9693d558618a06212d
613c8f013a5943e7b89619735568dac4
2
d635883dca094e9693d558618a06212d--50856e92672545138cc8993fdd77609e
a308ff00ad7843b08a67ad9c853930e7
c169502a917047ffb29758f65b1b4667
RX(4.0*phi*w₂)
613c8f013a5943e7b89619735568dac4--c169502a917047ffb29758f65b1b4667
b2af88e47e5e44acbbdb6fe17b971530
3
c169502a917047ffb29758f65b1b4667--a308ff00ad7843b08a67ad9c853930e7
e9ac1c6e966149f5b457e056bba58cf5
4a14a8c1e7b1447fbda5fd7eb2eba5bb
RX(8.0*phi*w₃)
b2af88e47e5e44acbbdb6fe17b971530--4a14a8c1e7b1447fbda5fd7eb2eba5bb
eed4f7fcd3cf4c1487d9364a58c2437f
4
4a14a8c1e7b1447fbda5fd7eb2eba5bb--e9ac1c6e966149f5b457e056bba58cf5
23aa9a39cae7498abdc4e86b68d3883f
9c0989a30cea4da89957d168e19d1a1a
RX(16.0*phi*w₄)
eed4f7fcd3cf4c1487d9364a58c2437f--9c0989a30cea4da89957d168e19d1a1a
9c0989a30cea4da89957d168e19d1a1a--23aa9a39cae7498abdc4e86b68d3883f
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
1eb5c844ed1f4f409c196d5857143f10
0
ca82320a41a04e9388a7b1ece5a60b22
RY(80.0*acos(w₄*(0.667*x + 1.667)))
1eb5c844ed1f4f409c196d5857143f10--ca82320a41a04e9388a7b1ece5a60b22
949098f8b44946fca0e6ad48e8bbbbea
1
85d4d4ae46974a2badce33833ae173bb
ca82320a41a04e9388a7b1ece5a60b22--85d4d4ae46974a2badce33833ae173bb
baa46a87a8164ff69db62f7eeb10d873
8fb82491c44f4d62ad50be637c437474
RY(40.0*acos(w₃*(0.667*x + 1.667)))
949098f8b44946fca0e6ad48e8bbbbea--8fb82491c44f4d62ad50be637c437474
87c05ba7bcc84b6bacffe1ebf3161423
2
8fb82491c44f4d62ad50be637c437474--baa46a87a8164ff69db62f7eeb10d873
ba1efe46360c4746ab4debba5df71171
f6e05f55e1f14266ba8a4a5d71656b87
RY(20.0*acos(w₂*(0.667*x + 1.667)))
87c05ba7bcc84b6bacffe1ebf3161423--f6e05f55e1f14266ba8a4a5d71656b87
93a97f0207554b2d85a30fad76dfd299
3
f6e05f55e1f14266ba8a4a5d71656b87--ba1efe46360c4746ab4debba5df71171
68e1bdcb52cc49af9f7ac7456725345e
23ebf90c75b7431586eac753295a18a9
RY(10.0*acos(w₁*(0.667*x + 1.667)))
93a97f0207554b2d85a30fad76dfd299--23ebf90c75b7431586eac753295a18a9
86c6cd658195459597c9dce3a11d282c
4
23ebf90c75b7431586eac753295a18a9--68e1bdcb52cc49af9f7ac7456725345e
a7634264a1ca4f1f83e76920583afb96
883c2f4878d04d379c5211911223fedb
RY(5.0*acos(w₀*(0.667*x + 1.667)))
86c6cd658195459597c9dce3a11d282c--883c2f4878d04d379c5211911223fedb
883c2f4878d04d379c5211911223fedb--a7634264a1ca4f1f83e76920583afb96
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
50476719b9bc4460bc95e0f5405f7c7b
0
05ebdf4394b34ebcb462ac2455e1880a
RX(theta₀)
50476719b9bc4460bc95e0f5405f7c7b--05ebdf4394b34ebcb462ac2455e1880a
2a812a8ebfc44066aea438775c2fdb3d
1
8cea17b5ebfe481ebd7ab9490097b6f1
RY(theta₃)
05ebdf4394b34ebcb462ac2455e1880a--8cea17b5ebfe481ebd7ab9490097b6f1
ca458c2c556d459bb28a7c938947e301
RX(theta₆)
8cea17b5ebfe481ebd7ab9490097b6f1--ca458c2c556d459bb28a7c938947e301
18a12bed611548fc82b8a5fc6426cc47
ca458c2c556d459bb28a7c938947e301--18a12bed611548fc82b8a5fc6426cc47
71d04c56b1c2437584df141bf526da47
18a12bed611548fc82b8a5fc6426cc47--71d04c56b1c2437584df141bf526da47
62709b77682b42eb92b1d03ffbcfc5e6
RX(theta₉)
71d04c56b1c2437584df141bf526da47--62709b77682b42eb92b1d03ffbcfc5e6
23a673b8006f4f1e9c7b9db3ed289dd2
RY(theta₁₂)
62709b77682b42eb92b1d03ffbcfc5e6--23a673b8006f4f1e9c7b9db3ed289dd2
0a538fdf9c4646198333d8601174d687
RX(theta₁₅)
23a673b8006f4f1e9c7b9db3ed289dd2--0a538fdf9c4646198333d8601174d687
ea3b9aebade84581908627eb8ca460fe
0a538fdf9c4646198333d8601174d687--ea3b9aebade84581908627eb8ca460fe
63b44a6d752241b0817d89edbfc74584
ea3b9aebade84581908627eb8ca460fe--63b44a6d752241b0817d89edbfc74584
5b5c8e71616b4e05ae86abf22d5a0726
63b44a6d752241b0817d89edbfc74584--5b5c8e71616b4e05ae86abf22d5a0726
dd5649c6be8244528a6ce88bff548734
74092972a23740098836176ae367b248
RX(theta₁)
2a812a8ebfc44066aea438775c2fdb3d--74092972a23740098836176ae367b248
57d9dc4781fb4de6b1e5dd0d687a8b78
2
0eb16cff87954c55b5b683d920d133f9
RY(theta₄)
74092972a23740098836176ae367b248--0eb16cff87954c55b5b683d920d133f9
b5ad4505629049c7a944cb793721e281
RX(theta₇)
0eb16cff87954c55b5b683d920d133f9--b5ad4505629049c7a944cb793721e281
5812fb97300849edac8b09258395254e
X
b5ad4505629049c7a944cb793721e281--5812fb97300849edac8b09258395254e
5812fb97300849edac8b09258395254e--18a12bed611548fc82b8a5fc6426cc47
72966174c47d401eaea697fd22ab8b19
5812fb97300849edac8b09258395254e--72966174c47d401eaea697fd22ab8b19
c300245be64a4ce2ac41328f7bef3a4c
RX(theta₁₀)
72966174c47d401eaea697fd22ab8b19--c300245be64a4ce2ac41328f7bef3a4c
31b9510f6e054d878a5d49c83e7aee3b
RY(theta₁₃)
c300245be64a4ce2ac41328f7bef3a4c--31b9510f6e054d878a5d49c83e7aee3b
804c33010889467683308474faea978d
RX(theta₁₆)
31b9510f6e054d878a5d49c83e7aee3b--804c33010889467683308474faea978d
5afbdeff020b4620b9af1a438a746974
X
804c33010889467683308474faea978d--5afbdeff020b4620b9af1a438a746974
5afbdeff020b4620b9af1a438a746974--ea3b9aebade84581908627eb8ca460fe
27d8749a94b74a338a954653062510cf
5afbdeff020b4620b9af1a438a746974--27d8749a94b74a338a954653062510cf
27d8749a94b74a338a954653062510cf--dd5649c6be8244528a6ce88bff548734
fa931ecbe36d4b9e9f6e3994fab9f3ed
73f852532fe846a4b11e0e8ed6e6558d
RX(theta₂)
57d9dc4781fb4de6b1e5dd0d687a8b78--73f852532fe846a4b11e0e8ed6e6558d
abf42bb0fec9491dbc26a6b28106d84c
RY(theta₅)
73f852532fe846a4b11e0e8ed6e6558d--abf42bb0fec9491dbc26a6b28106d84c
3060af5f295c48459007349af4dcfe3b
RX(theta₈)
abf42bb0fec9491dbc26a6b28106d84c--3060af5f295c48459007349af4dcfe3b
1962b4a1ff5e471e90668d779fac708c
3060af5f295c48459007349af4dcfe3b--1962b4a1ff5e471e90668d779fac708c
0b475dc7f550482bb2964b9ea17210b1
X
1962b4a1ff5e471e90668d779fac708c--0b475dc7f550482bb2964b9ea17210b1
0b475dc7f550482bb2964b9ea17210b1--72966174c47d401eaea697fd22ab8b19
3484c7a89f63459fa3c4df0750b470c9
RX(theta₁₁)
0b475dc7f550482bb2964b9ea17210b1--3484c7a89f63459fa3c4df0750b470c9
083a1cd76c6943519b798f05ec59086e
RY(theta₁₄)
3484c7a89f63459fa3c4df0750b470c9--083a1cd76c6943519b798f05ec59086e
b280b689333a418b96b7c80b1be981af
RX(theta₁₇)
083a1cd76c6943519b798f05ec59086e--b280b689333a418b96b7c80b1be981af
ba14966bcb9447598a668db28f14349a
b280b689333a418b96b7c80b1be981af--ba14966bcb9447598a668db28f14349a
4373d0d46ead498bb3efe27db2c3ae05
X
ba14966bcb9447598a668db28f14349a--4373d0d46ead498bb3efe27db2c3ae05
4373d0d46ead498bb3efe27db2c3ae05--27d8749a94b74a338a954653062510cf
4373d0d46ead498bb3efe27db2c3ae05--fa931ecbe36d4b9e9f6e3994fab9f3ed
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
79f3c0ccaa78442d8c52873faa110c8d
0
329e8e8705a44a6a9240d16eaad0ca02
RX(phi₀)
79f3c0ccaa78442d8c52873faa110c8d--329e8e8705a44a6a9240d16eaad0ca02
35a97c0ed2ee4291b6dd2e2fa3ec8422
1
499655cf234d47ada6f5c88d2583ce1a
RY(phi₃)
329e8e8705a44a6a9240d16eaad0ca02--499655cf234d47ada6f5c88d2583ce1a
9983cf61501a46c480dfe217a123e2da
RX(phi₆)
499655cf234d47ada6f5c88d2583ce1a--9983cf61501a46c480dfe217a123e2da
a04b311666a444a5928fe271dca37ab3
9983cf61501a46c480dfe217a123e2da--a04b311666a444a5928fe271dca37ab3
b40e20b58a7a41e4966c051356743081
a04b311666a444a5928fe271dca37ab3--b40e20b58a7a41e4966c051356743081
2fa42d424a10411aad0792fd065c3145
RX(phi₉)
b40e20b58a7a41e4966c051356743081--2fa42d424a10411aad0792fd065c3145
dc8af393bc9647bc817e0f88848b0e41
RY(phi₁₂)
2fa42d424a10411aad0792fd065c3145--dc8af393bc9647bc817e0f88848b0e41
196ddab0d5084df1b746280f10ffb7b6
RX(phi₁₅)
dc8af393bc9647bc817e0f88848b0e41--196ddab0d5084df1b746280f10ffb7b6
8506109226724275b2c44963872e4df4
196ddab0d5084df1b746280f10ffb7b6--8506109226724275b2c44963872e4df4
138099aec7b04af9b040d7b7f9598d4c
8506109226724275b2c44963872e4df4--138099aec7b04af9b040d7b7f9598d4c
256d337613cc4d1fa701ee596a742fc9
138099aec7b04af9b040d7b7f9598d4c--256d337613cc4d1fa701ee596a742fc9
234115a5ee214167a98cdb18d4576763
3f8951d025004dc7afe589debe0fb0f1
RX(phi₁)
35a97c0ed2ee4291b6dd2e2fa3ec8422--3f8951d025004dc7afe589debe0fb0f1
12319a0416b34c6ebfd9d2d0831f3203
2
8a2be3d184c04708a4cb666ee5819ad0
RY(phi₄)
3f8951d025004dc7afe589debe0fb0f1--8a2be3d184c04708a4cb666ee5819ad0
d065b289672d4749960d25e68bb1c8bc
RX(phi₇)
8a2be3d184c04708a4cb666ee5819ad0--d065b289672d4749960d25e68bb1c8bc
6f0cfe004a384d8d8f154a8cee93f5fd
PHASE(phi_ent₀)
d065b289672d4749960d25e68bb1c8bc--6f0cfe004a384d8d8f154a8cee93f5fd
6f0cfe004a384d8d8f154a8cee93f5fd--a04b311666a444a5928fe271dca37ab3
9d92d7c2744a4a498a06827f5f4ac4db
6f0cfe004a384d8d8f154a8cee93f5fd--9d92d7c2744a4a498a06827f5f4ac4db
244550c304714f0cb24c184479c0864d
RX(phi₁₀)
9d92d7c2744a4a498a06827f5f4ac4db--244550c304714f0cb24c184479c0864d
0e32bbfee38242b690fc962a42d6bbd7
RY(phi₁₃)
244550c304714f0cb24c184479c0864d--0e32bbfee38242b690fc962a42d6bbd7
0b0d0b68b01d4124b8301889b854b7c5
RX(phi₁₆)
0e32bbfee38242b690fc962a42d6bbd7--0b0d0b68b01d4124b8301889b854b7c5
90203bfaa154402b8632a78856075fe6
PHASE(phi_ent₂)
0b0d0b68b01d4124b8301889b854b7c5--90203bfaa154402b8632a78856075fe6
90203bfaa154402b8632a78856075fe6--8506109226724275b2c44963872e4df4
c6db30a9132d4dc08ff850607a8eaf02
90203bfaa154402b8632a78856075fe6--c6db30a9132d4dc08ff850607a8eaf02
c6db30a9132d4dc08ff850607a8eaf02--234115a5ee214167a98cdb18d4576763
c88b366dd0d74f2db7b079d91403f717
34cf9678340c4789a67eb65f9ed6d58f
RX(phi₂)
12319a0416b34c6ebfd9d2d0831f3203--34cf9678340c4789a67eb65f9ed6d58f
e907395dc53e4854a89ab65678bdbeec
RY(phi₅)
34cf9678340c4789a67eb65f9ed6d58f--e907395dc53e4854a89ab65678bdbeec
e0feec8912e34aab94855091cec98ff2
RX(phi₈)
e907395dc53e4854a89ab65678bdbeec--e0feec8912e34aab94855091cec98ff2
084a7b518bae41e3aa4ef6fdbb6eebd4
e0feec8912e34aab94855091cec98ff2--084a7b518bae41e3aa4ef6fdbb6eebd4
e0b8744765074e9f883c954340fd8782
PHASE(phi_ent₁)
084a7b518bae41e3aa4ef6fdbb6eebd4--e0b8744765074e9f883c954340fd8782
e0b8744765074e9f883c954340fd8782--9d92d7c2744a4a498a06827f5f4ac4db
36ba9f3c024b4f029c07f6d71ddcc15f
RX(phi₁₁)
e0b8744765074e9f883c954340fd8782--36ba9f3c024b4f029c07f6d71ddcc15f
6ed0eccc27684934ac31979e437ed052
RY(phi₁₄)
36ba9f3c024b4f029c07f6d71ddcc15f--6ed0eccc27684934ac31979e437ed052
af5fc6e2873946839bc66b398d820386
RX(phi₁₇)
6ed0eccc27684934ac31979e437ed052--af5fc6e2873946839bc66b398d820386
b121b01673bf47d7a1f7734cf6d0fd1d
af5fc6e2873946839bc66b398d820386--b121b01673bf47d7a1f7734cf6d0fd1d
07e1a8aa64cc413ea3fda1ad7ff030a9
PHASE(phi_ent₃)
b121b01673bf47d7a1f7734cf6d0fd1d--07e1a8aa64cc413ea3fda1ad7ff030a9
07e1a8aa64cc413ea3fda1ad7ff030a9--c6db30a9132d4dc08ff850607a8eaf02
07e1a8aa64cc413ea3fda1ad7ff030a9--c88b366dd0d74f2db7b079d91403f717
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_4dfba951b85d4a18943ca3321531ad15
cluster_afe23695d9e64f5086bf98e4d86a2991
58667e61d92742a79a783cab6a223113
0
8aa61308400b48e29bb41679b396f7b4
RX(theta₀)
58667e61d92742a79a783cab6a223113--8aa61308400b48e29bb41679b396f7b4
0211bd5d82db45fe97033b8831063861
1
d30e820677c845f6ac47ac1cbd153b68
RY(theta₃)
8aa61308400b48e29bb41679b396f7b4--d30e820677c845f6ac47ac1cbd153b68
ad54ad089b1c4499a6ef55ebc2d33123
RX(theta₆)
d30e820677c845f6ac47ac1cbd153b68--ad54ad089b1c4499a6ef55ebc2d33123
ecd336e495d94c07b403407364b2f324
HamEvo
ad54ad089b1c4499a6ef55ebc2d33123--ecd336e495d94c07b403407364b2f324
76adc4e307e64de08b411112ade50a53
RX(theta₉)
ecd336e495d94c07b403407364b2f324--76adc4e307e64de08b411112ade50a53
2366e23dddc34f94b174e8952a4a064b
RY(theta₁₂)
76adc4e307e64de08b411112ade50a53--2366e23dddc34f94b174e8952a4a064b
daa77e1ad9444d81a90790f053b7e218
RX(theta₁₅)
2366e23dddc34f94b174e8952a4a064b--daa77e1ad9444d81a90790f053b7e218
62ef348fc850407e9d3b709ca7bbdab8
HamEvo
daa77e1ad9444d81a90790f053b7e218--62ef348fc850407e9d3b709ca7bbdab8
3ce88939aef24446997152fb6412d177
62ef348fc850407e9d3b709ca7bbdab8--3ce88939aef24446997152fb6412d177
510d5aa1ded140499b4766acd09fcc12
0bcce0b786584a3281f87f087e630add
RX(theta₁)
0211bd5d82db45fe97033b8831063861--0bcce0b786584a3281f87f087e630add
2f74d2cfb8b248808a13899c286fbec2
2
3f1cae81d4a84e40ae4629fa2462dec5
RY(theta₄)
0bcce0b786584a3281f87f087e630add--3f1cae81d4a84e40ae4629fa2462dec5
bff5d240719a4f24b2c9239611723853
RX(theta₇)
3f1cae81d4a84e40ae4629fa2462dec5--bff5d240719a4f24b2c9239611723853
985841c51a4c4318b4aff7b2fd6d262a
t = theta_t₀
bff5d240719a4f24b2c9239611723853--985841c51a4c4318b4aff7b2fd6d262a
41356851f35f4da4bdc73588b131f0b3
RX(theta₁₀)
985841c51a4c4318b4aff7b2fd6d262a--41356851f35f4da4bdc73588b131f0b3
983a9fa3e4c540bca06638f29c94941f
RY(theta₁₃)
41356851f35f4da4bdc73588b131f0b3--983a9fa3e4c540bca06638f29c94941f
64d9312b41554c9a9870af9e901f7ab1
RX(theta₁₆)
983a9fa3e4c540bca06638f29c94941f--64d9312b41554c9a9870af9e901f7ab1
ca307dbb98244f52a873e4c65391317e
t = theta_t₁
64d9312b41554c9a9870af9e901f7ab1--ca307dbb98244f52a873e4c65391317e
ca307dbb98244f52a873e4c65391317e--510d5aa1ded140499b4766acd09fcc12
1c7a680987d64092ba91af5c3b2fc2dc
aacffe7527cb4f378214e0f8f2a1bf67
RX(theta₂)
2f74d2cfb8b248808a13899c286fbec2--aacffe7527cb4f378214e0f8f2a1bf67
32ecfb8ecc80418a8c31495af201dd09
RY(theta₅)
aacffe7527cb4f378214e0f8f2a1bf67--32ecfb8ecc80418a8c31495af201dd09
1512c1ee3a114f6ca6ce1f0520c65d3f
RX(theta₈)
32ecfb8ecc80418a8c31495af201dd09--1512c1ee3a114f6ca6ce1f0520c65d3f
3c4883cd5cdc448a829aa2d6118d2243
1512c1ee3a114f6ca6ce1f0520c65d3f--3c4883cd5cdc448a829aa2d6118d2243
cc41a9593ef347209c0f8c2cc90619c3
RX(theta₁₁)
3c4883cd5cdc448a829aa2d6118d2243--cc41a9593ef347209c0f8c2cc90619c3
7e6daf9f97d84d20830a861d41e959d6
RY(theta₁₄)
cc41a9593ef347209c0f8c2cc90619c3--7e6daf9f97d84d20830a861d41e959d6
1c6677702521457a90904e060a088a50
RX(theta₁₇)
7e6daf9f97d84d20830a861d41e959d6--1c6677702521457a90904e060a088a50
0f8109a022824b1eb17fea229f75f2aa
1c6677702521457a90904e060a088a50--0f8109a022824b1eb17fea229f75f2aa
0f8109a022824b1eb17fea229f75f2aa--1c7a680987d64092ba91af5c3b2fc2dc
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_885b0ee8ecee44a79e7c850e511b831a
cluster_5069aacf79224211a00703e5e1b95cdb
0377128be36a4d74bee160dc5f9e60ce
0
37344accd4ab436bb08ea398608decb1
RX(theta₀)
0377128be36a4d74bee160dc5f9e60ce--37344accd4ab436bb08ea398608decb1
d15c241d34524aecb7dddf581997c9de
1
31d40b6444b54b49829ab0d4e90a6308
RY(theta₆)
37344accd4ab436bb08ea398608decb1--31d40b6444b54b49829ab0d4e90a6308
7a19d1a7bbed4485879ad72fd3862d50
RX(theta₁₂)
31d40b6444b54b49829ab0d4e90a6308--7a19d1a7bbed4485879ad72fd3862d50
62a987bbc40a4782a6553a7a617e302d
7a19d1a7bbed4485879ad72fd3862d50--62a987bbc40a4782a6553a7a617e302d
95192ead56e64941b6da56832d4f3e07
RX(theta₁₈)
62a987bbc40a4782a6553a7a617e302d--95192ead56e64941b6da56832d4f3e07
007869a661c84a54a0c7bb897d6df1ef
RY(theta₂₄)
95192ead56e64941b6da56832d4f3e07--007869a661c84a54a0c7bb897d6df1ef
9b0b9a2d84874be0afb1913dc98ea3b4
RX(theta₃₀)
007869a661c84a54a0c7bb897d6df1ef--9b0b9a2d84874be0afb1913dc98ea3b4
0551512be9ac4c44ae0ac3c2bd285f45
9b0b9a2d84874be0afb1913dc98ea3b4--0551512be9ac4c44ae0ac3c2bd285f45
045dcd82f95c4a648dad4359b2e693d2
0551512be9ac4c44ae0ac3c2bd285f45--045dcd82f95c4a648dad4359b2e693d2
b001ef83ae3e40bdb9a7961f1922e613
2e36953d7e6c474eae7022f324cafed3
RX(theta₁)
d15c241d34524aecb7dddf581997c9de--2e36953d7e6c474eae7022f324cafed3
4ea6c01d72f74dd6b4d0ba36e98bfb05
2
a9e8d175965341439855de25294b9e07
RY(theta₇)
2e36953d7e6c474eae7022f324cafed3--a9e8d175965341439855de25294b9e07
f0c4538d400f46ecb66e1123eebd30a0
RX(theta₁₃)
a9e8d175965341439855de25294b9e07--f0c4538d400f46ecb66e1123eebd30a0
679644abf4d1464089a7f9b33d3d5187
f0c4538d400f46ecb66e1123eebd30a0--679644abf4d1464089a7f9b33d3d5187
93a8a7478b824e158f8b40b4208ef0e2
RX(theta₁₉)
679644abf4d1464089a7f9b33d3d5187--93a8a7478b824e158f8b40b4208ef0e2
b70e7756f7b24d98b9e99f2a938a851a
RY(theta₂₅)
93a8a7478b824e158f8b40b4208ef0e2--b70e7756f7b24d98b9e99f2a938a851a
a26a4875308b4e8ba44901f8eca5e0a1
RX(theta₃₁)
b70e7756f7b24d98b9e99f2a938a851a--a26a4875308b4e8ba44901f8eca5e0a1
312a2fb9cd824c0dbe5ad25fd9d30089
a26a4875308b4e8ba44901f8eca5e0a1--312a2fb9cd824c0dbe5ad25fd9d30089
312a2fb9cd824c0dbe5ad25fd9d30089--b001ef83ae3e40bdb9a7961f1922e613
06710c0d334846b3a221aa5a2039b94c
d26fcaa336e943e08d4996874cb529a0
RX(theta₂)
4ea6c01d72f74dd6b4d0ba36e98bfb05--d26fcaa336e943e08d4996874cb529a0
0d7c174994ef43b9b4dd19c6fe35d6b8
3
82c659c547bf46a59b5e848974f5931b
RY(theta₈)
d26fcaa336e943e08d4996874cb529a0--82c659c547bf46a59b5e848974f5931b
8b5c836b38734af1955469a3ee643bfc
RX(theta₁₄)
82c659c547bf46a59b5e848974f5931b--8b5c836b38734af1955469a3ee643bfc
b80a850fc94245608607f7d91b30c388
HamEvo
8b5c836b38734af1955469a3ee643bfc--b80a850fc94245608607f7d91b30c388
a7391082cd964e2dbe2fd722a09f154e
RX(theta₂₀)
b80a850fc94245608607f7d91b30c388--a7391082cd964e2dbe2fd722a09f154e
5162943cb43746a0b2536b58b7a3c4be
RY(theta₂₆)
a7391082cd964e2dbe2fd722a09f154e--5162943cb43746a0b2536b58b7a3c4be
9632d18f00da4b2e9c530b2a236ed2e3
RX(theta₃₂)
5162943cb43746a0b2536b58b7a3c4be--9632d18f00da4b2e9c530b2a236ed2e3
66ce33a5b7ab4674a7ec1219bcd007af
HamEvo
9632d18f00da4b2e9c530b2a236ed2e3--66ce33a5b7ab4674a7ec1219bcd007af
66ce33a5b7ab4674a7ec1219bcd007af--06710c0d334846b3a221aa5a2039b94c
8359527e19984ee68a2cc57e09a253d3
2aa2dd70270f48798fc25c1e1f161bd5
RX(theta₃)
0d7c174994ef43b9b4dd19c6fe35d6b8--2aa2dd70270f48798fc25c1e1f161bd5
ba5783319c32455e92701ea938f18e1f
4
4457774fafea4a79b8cb32bdfc5c4e05
RY(theta₉)
2aa2dd70270f48798fc25c1e1f161bd5--4457774fafea4a79b8cb32bdfc5c4e05
b01a1794f18b4861ab3755431cb38d37
RX(theta₁₅)
4457774fafea4a79b8cb32bdfc5c4e05--b01a1794f18b4861ab3755431cb38d37
052b9e530cc54a698baa4d2622d5d5c7
t = theta_t₀
b01a1794f18b4861ab3755431cb38d37--052b9e530cc54a698baa4d2622d5d5c7
ec6f51c22c684195a9d6270c59da8bae
RX(theta₂₁)
052b9e530cc54a698baa4d2622d5d5c7--ec6f51c22c684195a9d6270c59da8bae
52109197ee094d3d8b86965cb16b2f14
RY(theta₂₇)
ec6f51c22c684195a9d6270c59da8bae--52109197ee094d3d8b86965cb16b2f14
9f3d23b7cadb4bcd997f1d0ca85aee3f
RX(theta₃₃)
52109197ee094d3d8b86965cb16b2f14--9f3d23b7cadb4bcd997f1d0ca85aee3f
5adc08e5b68847ac9798673ee462e7a6
t = theta_t₁
9f3d23b7cadb4bcd997f1d0ca85aee3f--5adc08e5b68847ac9798673ee462e7a6
5adc08e5b68847ac9798673ee462e7a6--8359527e19984ee68a2cc57e09a253d3
2bd9fb3741bc4095bd333758dbedf3e5
c809d665de1d459882b712405253ac83
RX(theta₄)
ba5783319c32455e92701ea938f18e1f--c809d665de1d459882b712405253ac83
6ee72a52e35f4d46a175efcbbc2977ef
5
d3addc3c31e24128ae682fb794969435
RY(theta₁₀)
c809d665de1d459882b712405253ac83--d3addc3c31e24128ae682fb794969435
b6fb8814df284c818683c52a097cc2ff
RX(theta₁₆)
d3addc3c31e24128ae682fb794969435--b6fb8814df284c818683c52a097cc2ff
3ba59cda1b904b2082d41ccc59713efe
b6fb8814df284c818683c52a097cc2ff--3ba59cda1b904b2082d41ccc59713efe
0867ccc3fe5d4af694749002a3815f8d
RX(theta₂₂)
3ba59cda1b904b2082d41ccc59713efe--0867ccc3fe5d4af694749002a3815f8d
e9354749c25b448b9dce0154624378ac
RY(theta₂₈)
0867ccc3fe5d4af694749002a3815f8d--e9354749c25b448b9dce0154624378ac
e66807378b8c478aabd5ac1e8ca85df5
RX(theta₃₄)
e9354749c25b448b9dce0154624378ac--e66807378b8c478aabd5ac1e8ca85df5
3f33dc1d52cc47f6b24d91a4b119901f
e66807378b8c478aabd5ac1e8ca85df5--3f33dc1d52cc47f6b24d91a4b119901f
3f33dc1d52cc47f6b24d91a4b119901f--2bd9fb3741bc4095bd333758dbedf3e5
22803fc9a72c407d92cb07f93ff8f32a
6e25f3f36ac74bc0af0292badc7bac48
RX(theta₅)
6ee72a52e35f4d46a175efcbbc2977ef--6e25f3f36ac74bc0af0292badc7bac48
575dc51c2253479c91ab025b44e17d51
RY(theta₁₁)
6e25f3f36ac74bc0af0292badc7bac48--575dc51c2253479c91ab025b44e17d51
e719b08a580b4685962360125329eb41
RX(theta₁₇)
575dc51c2253479c91ab025b44e17d51--e719b08a580b4685962360125329eb41
ee853b7f7c004895920c38dd2c488bd4
e719b08a580b4685962360125329eb41--ee853b7f7c004895920c38dd2c488bd4
d8798e94342e4971beff2211d8517cb8
RX(theta₂₃)
ee853b7f7c004895920c38dd2c488bd4--d8798e94342e4971beff2211d8517cb8
c1622658b35e40ddb5c4b0a4ca508099
RY(theta₂₉)
d8798e94342e4971beff2211d8517cb8--c1622658b35e40ddb5c4b0a4ca508099
40433b44c12a48c5ba5ab9e95b9087e5
RX(theta₃₅)
c1622658b35e40ddb5c4b0a4ca508099--40433b44c12a48c5ba5ab9e95b9087e5
f273d98437b947d0a61c9e553f52ca4e
40433b44c12a48c5ba5ab9e95b9087e5--f273d98437b947d0a61c9e553f52ca4e
f273d98437b947d0a61c9e553f52ca4e--22803fc9a72c407d92cb07f93ff8f32a
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_fb46eaf4bbfc496fb2548091240ed02d
BPMA-1
cluster_8b0e6d89b390401382d0bbe416f5e7a8
BPMA-0
ec28785fdd7e4c56b6678506768fcc42
0
5968fb4f883f45ed86b1ce148196d472
RX(iia_α₀₀)
ec28785fdd7e4c56b6678506768fcc42--5968fb4f883f45ed86b1ce148196d472
267840f413bd4dbb8cb6460cd1286892
1
7f56e31d5c734a02ba439b5e2144562f
RY(iia_α₀₃)
5968fb4f883f45ed86b1ce148196d472--7f56e31d5c734a02ba439b5e2144562f
4a9a75338590496b9d2837d9b3c69de2
7f56e31d5c734a02ba439b5e2144562f--4a9a75338590496b9d2837d9b3c69de2
ea34f77f91c14db5859299e5c0a0328f
4a9a75338590496b9d2837d9b3c69de2--ea34f77f91c14db5859299e5c0a0328f
3194b2fad9a342d19936a1a2197a77c0
RX(iia_γ₀₀)
ea34f77f91c14db5859299e5c0a0328f--3194b2fad9a342d19936a1a2197a77c0
96d7097979204986a01cf6ee9b114bcf
3194b2fad9a342d19936a1a2197a77c0--96d7097979204986a01cf6ee9b114bcf
f4c66d2e1fef44b7ab4019c4e0b807cd
96d7097979204986a01cf6ee9b114bcf--f4c66d2e1fef44b7ab4019c4e0b807cd
521d97bdb2b14b87be27fcf1e9b8cb6e
RY(iia_β₀₃)
f4c66d2e1fef44b7ab4019c4e0b807cd--521d97bdb2b14b87be27fcf1e9b8cb6e
094db9746a98424e9a1beeb26fe99efa
RX(iia_β₀₀)
521d97bdb2b14b87be27fcf1e9b8cb6e--094db9746a98424e9a1beeb26fe99efa
39bfb947196a4c9e9e5c023f358122c6
RX(iia_α₁₀)
094db9746a98424e9a1beeb26fe99efa--39bfb947196a4c9e9e5c023f358122c6
d983b33dbd6347929f529d5ff1dca490
RY(iia_α₁₃)
39bfb947196a4c9e9e5c023f358122c6--d983b33dbd6347929f529d5ff1dca490
fc2e334119b3478a926d38b765021ff5
d983b33dbd6347929f529d5ff1dca490--fc2e334119b3478a926d38b765021ff5
c0e46864410b40a98959d51b4e073704
fc2e334119b3478a926d38b765021ff5--c0e46864410b40a98959d51b4e073704
1be07372a9864bbbaabeb82e26e2602a
RX(iia_γ₁₀)
c0e46864410b40a98959d51b4e073704--1be07372a9864bbbaabeb82e26e2602a
f9120d4ba97a4902b8a587c30b8708f6
1be07372a9864bbbaabeb82e26e2602a--f9120d4ba97a4902b8a587c30b8708f6
268d60a5de01429f85f05748cad1eb83
f9120d4ba97a4902b8a587c30b8708f6--268d60a5de01429f85f05748cad1eb83
44c7ff7b2f104a2ea3ce8b9c4114d590
RY(iia_β₁₃)
268d60a5de01429f85f05748cad1eb83--44c7ff7b2f104a2ea3ce8b9c4114d590
71e124d57ab04d82b5d1c98af1b71cb6
RX(iia_β₁₀)
44c7ff7b2f104a2ea3ce8b9c4114d590--71e124d57ab04d82b5d1c98af1b71cb6
3411fcd493914f9493d543648a73ebf4
71e124d57ab04d82b5d1c98af1b71cb6--3411fcd493914f9493d543648a73ebf4
204dbf038b0a48f7bc52d3d7560efd0b
d9584cbc795248a0a224fc6e125ce921
RX(iia_α₀₁)
267840f413bd4dbb8cb6460cd1286892--d9584cbc795248a0a224fc6e125ce921
4ba4dcb54bb24ad8b0ffe6060842749d
2
7ba2749b2fe74a34ae3c39f7ed40fe6c
RY(iia_α₀₄)
d9584cbc795248a0a224fc6e125ce921--7ba2749b2fe74a34ae3c39f7ed40fe6c
5b2cebfd64db48fea7514c331a2fa9bd
X
7ba2749b2fe74a34ae3c39f7ed40fe6c--5b2cebfd64db48fea7514c331a2fa9bd
5b2cebfd64db48fea7514c331a2fa9bd--4a9a75338590496b9d2837d9b3c69de2
764fc2ff73934dc4a033ccee654442b4
5b2cebfd64db48fea7514c331a2fa9bd--764fc2ff73934dc4a033ccee654442b4
a373c996c8a849e199a72a6a8a0d5fd3
RX(iia_γ₀₁)
764fc2ff73934dc4a033ccee654442b4--a373c996c8a849e199a72a6a8a0d5fd3
d13574f5836149b4801c27d6aad71b42
a373c996c8a849e199a72a6a8a0d5fd3--d13574f5836149b4801c27d6aad71b42
f7fd7dc72d884f5fb172039e1d69b555
X
d13574f5836149b4801c27d6aad71b42--f7fd7dc72d884f5fb172039e1d69b555
f7fd7dc72d884f5fb172039e1d69b555--f4c66d2e1fef44b7ab4019c4e0b807cd
76d50060416a40f08ed5c4a9b550f658
RY(iia_β₀₄)
f7fd7dc72d884f5fb172039e1d69b555--76d50060416a40f08ed5c4a9b550f658
6322e8b19b4740ef9f3fd12b3c492bb5
RX(iia_β₀₁)
76d50060416a40f08ed5c4a9b550f658--6322e8b19b4740ef9f3fd12b3c492bb5
378ec851807046f79518fcfc85e7aa78
RX(iia_α₁₁)
6322e8b19b4740ef9f3fd12b3c492bb5--378ec851807046f79518fcfc85e7aa78
593e999ab4dc46789ccf9bb192d3e3cf
RY(iia_α₁₄)
378ec851807046f79518fcfc85e7aa78--593e999ab4dc46789ccf9bb192d3e3cf
54cc8f279c8b4853a6203b2e55417360
X
593e999ab4dc46789ccf9bb192d3e3cf--54cc8f279c8b4853a6203b2e55417360
54cc8f279c8b4853a6203b2e55417360--fc2e334119b3478a926d38b765021ff5
476c0923619341669e33fe6eb50049f9
54cc8f279c8b4853a6203b2e55417360--476c0923619341669e33fe6eb50049f9
02f7b000a743433f955ced4fb98ee079
RX(iia_γ₁₁)
476c0923619341669e33fe6eb50049f9--02f7b000a743433f955ced4fb98ee079
86157dce4a2c4e4e92801f5176bf1233
02f7b000a743433f955ced4fb98ee079--86157dce4a2c4e4e92801f5176bf1233
3e3735f4e4674166b3438d409a677e77
X
86157dce4a2c4e4e92801f5176bf1233--3e3735f4e4674166b3438d409a677e77
3e3735f4e4674166b3438d409a677e77--268d60a5de01429f85f05748cad1eb83
b2dc6d2643fe4aeb8790c54f86fc2f7d
RY(iia_β₁₄)
3e3735f4e4674166b3438d409a677e77--b2dc6d2643fe4aeb8790c54f86fc2f7d
54b1aa89961140ec93bbaeac2c462afe
RX(iia_β₁₁)
b2dc6d2643fe4aeb8790c54f86fc2f7d--54b1aa89961140ec93bbaeac2c462afe
54b1aa89961140ec93bbaeac2c462afe--204dbf038b0a48f7bc52d3d7560efd0b
d1edff0c970f4434849fe47d618ae1de
a4975739847a4ecda3320cc71fbc81bb
RX(iia_α₀₂)
4ba4dcb54bb24ad8b0ffe6060842749d--a4975739847a4ecda3320cc71fbc81bb
a66fb1ad05cf4ae8b02369253e0e4142
RY(iia_α₀₅)
a4975739847a4ecda3320cc71fbc81bb--a66fb1ad05cf4ae8b02369253e0e4142
e873ae2f6256445abf5ee7659cd97db8
a66fb1ad05cf4ae8b02369253e0e4142--e873ae2f6256445abf5ee7659cd97db8
e4d7be71a6d246498819289d7a597319
X
e873ae2f6256445abf5ee7659cd97db8--e4d7be71a6d246498819289d7a597319
e4d7be71a6d246498819289d7a597319--764fc2ff73934dc4a033ccee654442b4
41293b172bf64e17bdad33e76c72a999
RX(iia_γ₀₂)
e4d7be71a6d246498819289d7a597319--41293b172bf64e17bdad33e76c72a999
349a0fee955d45c69a4647948711b45f
X
41293b172bf64e17bdad33e76c72a999--349a0fee955d45c69a4647948711b45f
349a0fee955d45c69a4647948711b45f--d13574f5836149b4801c27d6aad71b42
d9f3c648b9ad4c429af8a82cd5f9de11
349a0fee955d45c69a4647948711b45f--d9f3c648b9ad4c429af8a82cd5f9de11
cb9e021c3f454cfd8bf24093af4346d1
RY(iia_β₀₅)
d9f3c648b9ad4c429af8a82cd5f9de11--cb9e021c3f454cfd8bf24093af4346d1
787d53da850841c6ba6b8d331b122872
RX(iia_β₀₂)
cb9e021c3f454cfd8bf24093af4346d1--787d53da850841c6ba6b8d331b122872
e57fbc89a2204cc9af41f9cd49cb1ffa
RX(iia_α₁₂)
787d53da850841c6ba6b8d331b122872--e57fbc89a2204cc9af41f9cd49cb1ffa
a296cf0fee6543d7bb279bedf93d535d
RY(iia_α₁₅)
e57fbc89a2204cc9af41f9cd49cb1ffa--a296cf0fee6543d7bb279bedf93d535d
ea9cd8b056a64063bc86cf140b627cfe
a296cf0fee6543d7bb279bedf93d535d--ea9cd8b056a64063bc86cf140b627cfe
c84ac7b049784da3850380dcdac3628c
X
ea9cd8b056a64063bc86cf140b627cfe--c84ac7b049784da3850380dcdac3628c
c84ac7b049784da3850380dcdac3628c--476c0923619341669e33fe6eb50049f9
fd618d52675b41f981f0f72ca20c216a
RX(iia_γ₁₂)
c84ac7b049784da3850380dcdac3628c--fd618d52675b41f981f0f72ca20c216a
9a498126dad540db9a8a24ed36254290
X
fd618d52675b41f981f0f72ca20c216a--9a498126dad540db9a8a24ed36254290
9a498126dad540db9a8a24ed36254290--86157dce4a2c4e4e92801f5176bf1233
e37565f127e649bfa3d1d3badd234fe8
9a498126dad540db9a8a24ed36254290--e37565f127e649bfa3d1d3badd234fe8
0e8068155c1d43529fcccfec85e716de
RY(iia_β₁₅)
e37565f127e649bfa3d1d3badd234fe8--0e8068155c1d43529fcccfec85e716de
799d04693d8941868302686623a901de
RX(iia_β₁₂)
0e8068155c1d43529fcccfec85e716de--799d04693d8941868302686623a901de
799d04693d8941868302686623a901de--d1edff0c970f4434849fe47d618ae1de