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_79398bf899124129a151cd3c455057d2
Constant Chebyshev FM
cluster_3065aa526938479d8e9c910dbf8a93be
Constant Fourier FM
416321d7d67b414c90a2b55840825f6e
0
09865386c5704693b1393ae7c248266c
RX(phi)
416321d7d67b414c90a2b55840825f6e--09865386c5704693b1393ae7c248266c
d75b036cc4544f7f8a0bd9bb855f66ae
1
a1b353ce7e6f4998a36dd94460c8d01a
RX(acos(phi))
09865386c5704693b1393ae7c248266c--a1b353ce7e6f4998a36dd94460c8d01a
b8e901d40ce54e83b0a53997bafe1fbc
a1b353ce7e6f4998a36dd94460c8d01a--b8e901d40ce54e83b0a53997bafe1fbc
35a914bdd3ee4d669ea960f47cbdbd15
5eeee7e437704648b277a6926bbcebd1
RX(phi)
d75b036cc4544f7f8a0bd9bb855f66ae--5eeee7e437704648b277a6926bbcebd1
aec841de5885462fb20a9c94e5efc687
2
f48a2e0fe0714c188b35630e7f7a8b66
RX(acos(phi))
5eeee7e437704648b277a6926bbcebd1--f48a2e0fe0714c188b35630e7f7a8b66
f48a2e0fe0714c188b35630e7f7a8b66--35a914bdd3ee4d669ea960f47cbdbd15
1a0e1e230f074d2880b6f43c055c2363
0ec0f4987ce54ae5bd9fc5e5567f75be
RX(phi)
aec841de5885462fb20a9c94e5efc687--0ec0f4987ce54ae5bd9fc5e5567f75be
a249b12456094c6c9d6640edcc27b47b
RX(acos(phi))
0ec0f4987ce54ae5bd9fc5e5567f75be--a249b12456094c6c9d6640edcc27b47b
a249b12456094c6c9d6640edcc27b47b--1a0e1e230f074d2880b6f43c055c2363
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_983dc0889f9344deacd940527d01c6f1
Constant <function custom_fn at 0x7ff03df97910> FM
cluster_c73896c765134b1e8eeedb186b24fd27
Constant asin FM
2337badf32e04759b8300a09a15410e9
0
9803ebd184574244a3d7e0edadc1521d
RX(asin(phi))
2337badf32e04759b8300a09a15410e9--9803ebd184574244a3d7e0edadc1521d
c7393f52e15f436b9b004fe52d095b3c
1
fc6d6aa333634f4b81b1c9f9f3a32eea
RX(phi**2 + asin(phi))
9803ebd184574244a3d7e0edadc1521d--fc6d6aa333634f4b81b1c9f9f3a32eea
0946a9db2e704e1ca0249ddccb3b8b1b
fc6d6aa333634f4b81b1c9f9f3a32eea--0946a9db2e704e1ca0249ddccb3b8b1b
fa55eb482db849b281359a42997eeb33
c30c61bae0bb43ee888c96af317b0493
RX(asin(phi))
c7393f52e15f436b9b004fe52d095b3c--c30c61bae0bb43ee888c96af317b0493
a8d73bb0b782444780897d684390ec4c
2
00f74f48b51e424d9d724f8497d40d28
RX(phi**2 + asin(phi))
c30c61bae0bb43ee888c96af317b0493--00f74f48b51e424d9d724f8497d40d28
00f74f48b51e424d9d724f8497d40d28--fa55eb482db849b281359a42997eeb33
4cfbe7374d024fb5b6fcba8a57fded55
ae669170896e42a69e609322a8741b5a
RX(asin(phi))
a8d73bb0b782444780897d684390ec4c--ae669170896e42a69e609322a8741b5a
f863fc07d3394056bac7b416c31e657b
RX(phi**2 + asin(phi))
ae669170896e42a69e609322a8741b5a--f863fc07d3394056bac7b416c31e657b
f863fc07d3394056bac7b416c31e657b--4cfbe7374d024fb5b6fcba8a57fded55
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_dfea6cb6ff264e26aa4c79468000a75b
Exponential Fourier FM
cluster_4a333aa7411c47aba862b520d5e01b67
Constant Fourier FM
cluster_a01710f7804d406191620281d661f682
Tower Fourier FM
a597fc5cf0704d31a60906ad768e09aa
0
df731f336922453099bc19b6a9566a02
RX(phi)
a597fc5cf0704d31a60906ad768e09aa--df731f336922453099bc19b6a9566a02
1f18637d45a344ddb01c4c89ce5ec9e1
1
2cb3572bea1c4556a12de3a1dc833434
RX(1.0*phi)
df731f336922453099bc19b6a9566a02--2cb3572bea1c4556a12de3a1dc833434
63a7731a981a40dcbe545818bf52ff17
RX(1.0*phi)
2cb3572bea1c4556a12de3a1dc833434--63a7731a981a40dcbe545818bf52ff17
2d4f89ddf6c547aa93127ceb44a14955
63a7731a981a40dcbe545818bf52ff17--2d4f89ddf6c547aa93127ceb44a14955
ccb718b9ec0f4245a56a557313432e76
8268661c19e2489f99e0d6f034f38945
RX(phi)
1f18637d45a344ddb01c4c89ce5ec9e1--8268661c19e2489f99e0d6f034f38945
fa5d556eaaa046c3995e383dbfab838a
2
657aae6054bb4d84b5dd7763250acbeb
RX(2.0*phi)
8268661c19e2489f99e0d6f034f38945--657aae6054bb4d84b5dd7763250acbeb
507a7ba710964041996fb705c59232d1
RX(2.0*phi)
657aae6054bb4d84b5dd7763250acbeb--507a7ba710964041996fb705c59232d1
507a7ba710964041996fb705c59232d1--ccb718b9ec0f4245a56a557313432e76
4d594eba25234738aad33c4686f41c33
b10c91be71934aeb89f465182c886deb
RX(phi)
fa5d556eaaa046c3995e383dbfab838a--b10c91be71934aeb89f465182c886deb
82dac58be9fc4d2abb4d2a8aaab11b79
3
0d4575fa437a491ba4c374b5739d3dd3
RX(3.0*phi)
b10c91be71934aeb89f465182c886deb--0d4575fa437a491ba4c374b5739d3dd3
b276971f1cf84d8b99def812dde48e30
RX(4.0*phi)
0d4575fa437a491ba4c374b5739d3dd3--b276971f1cf84d8b99def812dde48e30
b276971f1cf84d8b99def812dde48e30--4d594eba25234738aad33c4686f41c33
4d420105d63649ed8199832d5d069e8b
b0af2504cf824b058d093fe5beaebe3c
RX(phi)
82dac58be9fc4d2abb4d2a8aaab11b79--b0af2504cf824b058d093fe5beaebe3c
29a48a914610414f9bf2c86b6f33060c
4
e3d5f5e84d1f4a948a964b23e739b5b0
RX(4.0*phi)
b0af2504cf824b058d093fe5beaebe3c--e3d5f5e84d1f4a948a964b23e739b5b0
788b0af2cad54212b8d5a9be0dbd818c
RX(8.0*phi)
e3d5f5e84d1f4a948a964b23e739b5b0--788b0af2cad54212b8d5a9be0dbd818c
788b0af2cad54212b8d5a9be0dbd818c--4d420105d63649ed8199832d5d069e8b
35a28beb3a1a4b3aa19aac4fb3f2a73c
4bac4833ecf3461b828ebb73c65a45f1
RX(phi)
29a48a914610414f9bf2c86b6f33060c--4bac4833ecf3461b828ebb73c65a45f1
073018acc6784cdcaf46b80d233c38ad
RX(5.0*phi)
4bac4833ecf3461b828ebb73c65a45f1--073018acc6784cdcaf46b80d233c38ad
cc27a6a62e9c42d6a527c9ee8105f50d
RX(16.0*phi)
073018acc6784cdcaf46b80d233c38ad--cc27a6a62e9c42d6a527c9ee8105f50d
cc27a6a62e9c42d6a527c9ee8105f50d--35a28beb3a1a4b3aa19aac4fb3f2a73c
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
3eb982198161493687839c2f313765ab
0
7b2b3d7fd4514bacbfcd4b61b6815422
RX(1.0*acos(phi))
3eb982198161493687839c2f313765ab--7b2b3d7fd4514bacbfcd4b61b6815422
4676db33d31348e498651a0b30d9823f
1
abec8899b70c4a40aaeaf2882c472e19
7b2b3d7fd4514bacbfcd4b61b6815422--abec8899b70c4a40aaeaf2882c472e19
2030ef1b5bd242a4a1201287c12b1193
2d2ba8437f554c0dbd74cabfa40fc867
RX(1.414*acos(phi))
4676db33d31348e498651a0b30d9823f--2d2ba8437f554c0dbd74cabfa40fc867
bfd342aa6bbc4bbeb08d7e13215a4c05
2
2d2ba8437f554c0dbd74cabfa40fc867--2030ef1b5bd242a4a1201287c12b1193
aab800be98e14e9caf9da937e699d3a8
f280bf74232a48ed9a0c81eb83a0d730
RX(1.732*acos(phi))
bfd342aa6bbc4bbeb08d7e13215a4c05--f280bf74232a48ed9a0c81eb83a0d730
4a645341897f464ca0778d7d1607723d
3
f280bf74232a48ed9a0c81eb83a0d730--aab800be98e14e9caf9da937e699d3a8
d0ffeb86ae7d417084d482d15f6d0111
525a87326c2841cdb23f1d413f18c384
RX(2.0*acos(phi))
4a645341897f464ca0778d7d1607723d--525a87326c2841cdb23f1d413f18c384
3b9b6b487dc74002b1d91e6de1f9c349
4
525a87326c2841cdb23f1d413f18c384--d0ffeb86ae7d417084d482d15f6d0111
cdf0f48b5f9e479db26cc8a43747efd4
009baedb131b45bb897992e0f7c75e4e
RX(2.236*acos(phi))
3b9b6b487dc74002b1d91e6de1f9c349--009baedb131b45bb897992e0f7c75e4e
009baedb131b45bb897992e0f7c75e4e--cdf0f48b5f9e479db26cc8a43747efd4
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
c3abf4395bff4b83927c9d3aaf61d135
0
2bae966daf66423688e959e90142bde1
RX(1.0*phi*w₀)
c3abf4395bff4b83927c9d3aaf61d135--2bae966daf66423688e959e90142bde1
d5dcfd84f85042f0b554b7585c26fdf9
1
6a7f6ce2041945f8b23b5e4503095559
2bae966daf66423688e959e90142bde1--6a7f6ce2041945f8b23b5e4503095559
41ec9659c341485fbef67c1b10e85527
d56f2588057a467e898ca0f67fd81418
RX(2.0*phi*w₁)
d5dcfd84f85042f0b554b7585c26fdf9--d56f2588057a467e898ca0f67fd81418
d9aef5bc4d1d43328ff0b9333f30b3cb
2
d56f2588057a467e898ca0f67fd81418--41ec9659c341485fbef67c1b10e85527
80f8ff078e994ff6a3e288716d8b8654
6d9859ee53674af0ae8233b9d040c147
RX(4.0*phi*w₂)
d9aef5bc4d1d43328ff0b9333f30b3cb--6d9859ee53674af0ae8233b9d040c147
df144f0811fe48099e4186e78b37e27e
3
6d9859ee53674af0ae8233b9d040c147--80f8ff078e994ff6a3e288716d8b8654
22fc92ffdbc24b54933d089b1ec3343d
1665276768714801afbebf0f2b74800a
RX(8.0*phi*w₃)
df144f0811fe48099e4186e78b37e27e--1665276768714801afbebf0f2b74800a
29193ba7e75b42b1b54fcd6d61737865
4
1665276768714801afbebf0f2b74800a--22fc92ffdbc24b54933d089b1ec3343d
a653986b42464e9bbc63d659c462dbf0
de46812f08bf48a39412232392c01d67
RX(16.0*phi*w₄)
29193ba7e75b42b1b54fcd6d61737865--de46812f08bf48a39412232392c01d67
de46812f08bf48a39412232392c01d67--a653986b42464e9bbc63d659c462dbf0
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
3615109e76f645b0b6e2510c9d405229
0
7b6b73c7c7644b0b8414e548a6f9463f
RY(80.0*acos(w₄*(0.667*x + 1.667)))
3615109e76f645b0b6e2510c9d405229--7b6b73c7c7644b0b8414e548a6f9463f
e10b1dbfc1284659a0e4ea1f39d1d3b5
1
2ceca252652f4418b502483c0473b102
7b6b73c7c7644b0b8414e548a6f9463f--2ceca252652f4418b502483c0473b102
dd1a4a83a9a949878b5822a369213808
ac3013fc1020420f968a3a3e83d2a9e2
RY(40.0*acos(w₃*(0.667*x + 1.667)))
e10b1dbfc1284659a0e4ea1f39d1d3b5--ac3013fc1020420f968a3a3e83d2a9e2
f3aabb9e7a9c4aceb6efd1ee7265543f
2
ac3013fc1020420f968a3a3e83d2a9e2--dd1a4a83a9a949878b5822a369213808
777f7103655848c68fa242984d3032ce
70c8ed8067294da6b0164595960fb4c0
RY(20.0*acos(w₂*(0.667*x + 1.667)))
f3aabb9e7a9c4aceb6efd1ee7265543f--70c8ed8067294da6b0164595960fb4c0
d5a164995dc74aff9043190debe6cfeb
3
70c8ed8067294da6b0164595960fb4c0--777f7103655848c68fa242984d3032ce
703010dead7840ec9329404d2ba17cce
73abb5ef3baf4d8685955c5347c32204
RY(10.0*acos(w₁*(0.667*x + 1.667)))
d5a164995dc74aff9043190debe6cfeb--73abb5ef3baf4d8685955c5347c32204
d72a33a75c6c4ada8620f70705d85184
4
73abb5ef3baf4d8685955c5347c32204--703010dead7840ec9329404d2ba17cce
096bcb34d53d491e851f0ada00c78d74
0a3b471ba70e4235b185134e012419c8
RY(5.0*acos(w₀*(0.667*x + 1.667)))
d72a33a75c6c4ada8620f70705d85184--0a3b471ba70e4235b185134e012419c8
0a3b471ba70e4235b185134e012419c8--096bcb34d53d491e851f0ada00c78d74
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
d81338df5c7b4237985521e3ff23f2a8
0
22b7f4d4ba304063bee337e1bca1fd3b
RX(theta₀)
d81338df5c7b4237985521e3ff23f2a8--22b7f4d4ba304063bee337e1bca1fd3b
1f0d4629dd3a448aab9ff5e0c351c774
1
acf48d535f6e45279f83b393a9a38559
RY(theta₃)
22b7f4d4ba304063bee337e1bca1fd3b--acf48d535f6e45279f83b393a9a38559
d01f9be925b84e1e8aa1a5c549ab13ea
RX(theta₆)
acf48d535f6e45279f83b393a9a38559--d01f9be925b84e1e8aa1a5c549ab13ea
14f3cb34499042d586fb3035941fcca2
d01f9be925b84e1e8aa1a5c549ab13ea--14f3cb34499042d586fb3035941fcca2
bf19a4ad2f724419a26dc3ccf4c091f3
14f3cb34499042d586fb3035941fcca2--bf19a4ad2f724419a26dc3ccf4c091f3
f983886845594ee2bf4e4549d62bffd7
RX(theta₉)
bf19a4ad2f724419a26dc3ccf4c091f3--f983886845594ee2bf4e4549d62bffd7
b0b973cc1d3e4434ba27d63ea70a64bf
RY(theta₁₂)
f983886845594ee2bf4e4549d62bffd7--b0b973cc1d3e4434ba27d63ea70a64bf
61d8635b7d0440a2a8908521fd5fa207
RX(theta₁₅)
b0b973cc1d3e4434ba27d63ea70a64bf--61d8635b7d0440a2a8908521fd5fa207
0d59f081a2d34c5781d3e4c20c4a7ccf
61d8635b7d0440a2a8908521fd5fa207--0d59f081a2d34c5781d3e4c20c4a7ccf
cad5407a03ce45958f38a40c0ac31ef2
0d59f081a2d34c5781d3e4c20c4a7ccf--cad5407a03ce45958f38a40c0ac31ef2
d1f5ee7849d34ebfb5a78eb21879304a
cad5407a03ce45958f38a40c0ac31ef2--d1f5ee7849d34ebfb5a78eb21879304a
7c8c33fde5cf42adb0982fe5cf02dca1
edabb40a28124dd3a697d44b93571e1f
RX(theta₁)
1f0d4629dd3a448aab9ff5e0c351c774--edabb40a28124dd3a697d44b93571e1f
424f987ee90b4e758cd2fdd96c4263e5
2
c1e86fdd76a94202a9eb6ad8dd9f2f90
RY(theta₄)
edabb40a28124dd3a697d44b93571e1f--c1e86fdd76a94202a9eb6ad8dd9f2f90
30e7ce0da4ba403b9050ab4a3ed72f7f
RX(theta₇)
c1e86fdd76a94202a9eb6ad8dd9f2f90--30e7ce0da4ba403b9050ab4a3ed72f7f
5dadc108c9fb4c579a13e6441937d993
X
30e7ce0da4ba403b9050ab4a3ed72f7f--5dadc108c9fb4c579a13e6441937d993
5dadc108c9fb4c579a13e6441937d993--14f3cb34499042d586fb3035941fcca2
20db1fd9d8c1488d9675d99dbf47f044
5dadc108c9fb4c579a13e6441937d993--20db1fd9d8c1488d9675d99dbf47f044
6d110eff94514bafbc838e8063cb8c12
RX(theta₁₀)
20db1fd9d8c1488d9675d99dbf47f044--6d110eff94514bafbc838e8063cb8c12
b8381bc74a444ef6a21d7e7372a384ce
RY(theta₁₃)
6d110eff94514bafbc838e8063cb8c12--b8381bc74a444ef6a21d7e7372a384ce
986c951809b74e0c8fcadf38c9e3ab0d
RX(theta₁₆)
b8381bc74a444ef6a21d7e7372a384ce--986c951809b74e0c8fcadf38c9e3ab0d
2d0877c18879432a8ae0b0e35bada556
X
986c951809b74e0c8fcadf38c9e3ab0d--2d0877c18879432a8ae0b0e35bada556
2d0877c18879432a8ae0b0e35bada556--0d59f081a2d34c5781d3e4c20c4a7ccf
d8db7e4984d4436b9c07196d772ab004
2d0877c18879432a8ae0b0e35bada556--d8db7e4984d4436b9c07196d772ab004
d8db7e4984d4436b9c07196d772ab004--7c8c33fde5cf42adb0982fe5cf02dca1
c22e8141fd2b43328371dfa3a075e261
88b3f27c2d8747298424f078940ec1e3
RX(theta₂)
424f987ee90b4e758cd2fdd96c4263e5--88b3f27c2d8747298424f078940ec1e3
e170a6ac89d34fb2afe6803cb1fc83f5
RY(theta₅)
88b3f27c2d8747298424f078940ec1e3--e170a6ac89d34fb2afe6803cb1fc83f5
e4591c7b922c42319e75c90d34e83845
RX(theta₈)
e170a6ac89d34fb2afe6803cb1fc83f5--e4591c7b922c42319e75c90d34e83845
16c3e665dffc4cf9933b8566ab8015a2
e4591c7b922c42319e75c90d34e83845--16c3e665dffc4cf9933b8566ab8015a2
c9daf6866065450b87dddd6132bce111
X
16c3e665dffc4cf9933b8566ab8015a2--c9daf6866065450b87dddd6132bce111
c9daf6866065450b87dddd6132bce111--20db1fd9d8c1488d9675d99dbf47f044
bad3893c2b7a4ba28e1a703c05ac844c
RX(theta₁₁)
c9daf6866065450b87dddd6132bce111--bad3893c2b7a4ba28e1a703c05ac844c
aa2e92d546df40e1ad2f8625e6e60edf
RY(theta₁₄)
bad3893c2b7a4ba28e1a703c05ac844c--aa2e92d546df40e1ad2f8625e6e60edf
45613871eeeb44a99d817588366e6730
RX(theta₁₇)
aa2e92d546df40e1ad2f8625e6e60edf--45613871eeeb44a99d817588366e6730
65abc450ed7545749f9b104a0f9a673b
45613871eeeb44a99d817588366e6730--65abc450ed7545749f9b104a0f9a673b
43c7f9514d8749f3aa5bd7221d31349a
X
65abc450ed7545749f9b104a0f9a673b--43c7f9514d8749f3aa5bd7221d31349a
43c7f9514d8749f3aa5bd7221d31349a--d8db7e4984d4436b9c07196d772ab004
43c7f9514d8749f3aa5bd7221d31349a--c22e8141fd2b43328371dfa3a075e261
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
fb170b1d4e9b4bd8b9c34d93469cfd5a
0
966d1924c61f410dbc9fa4afd76dcdf1
RX(phi₀)
fb170b1d4e9b4bd8b9c34d93469cfd5a--966d1924c61f410dbc9fa4afd76dcdf1
a345af49c8e243b99de5f0eaa5d10fee
1
d8011d1f7c2b4c6faeb8db7cee485355
RY(phi₃)
966d1924c61f410dbc9fa4afd76dcdf1--d8011d1f7c2b4c6faeb8db7cee485355
5c2c31326084446795a49064be547d8d
RX(phi₆)
d8011d1f7c2b4c6faeb8db7cee485355--5c2c31326084446795a49064be547d8d
48e29a45193941b4a83d7b033044a01d
5c2c31326084446795a49064be547d8d--48e29a45193941b4a83d7b033044a01d
41b6aee6deff4efaa8218024f156c0e4
48e29a45193941b4a83d7b033044a01d--41b6aee6deff4efaa8218024f156c0e4
991dd8f03b09464faa205bf0600f5386
RX(phi₉)
41b6aee6deff4efaa8218024f156c0e4--991dd8f03b09464faa205bf0600f5386
233625aed2fc4188951a65999c71aab9
RY(phi₁₂)
991dd8f03b09464faa205bf0600f5386--233625aed2fc4188951a65999c71aab9
d4cd2e3d25914402bc9566193a134016
RX(phi₁₅)
233625aed2fc4188951a65999c71aab9--d4cd2e3d25914402bc9566193a134016
d792c3a43135414cb4429259fc7e2c89
d4cd2e3d25914402bc9566193a134016--d792c3a43135414cb4429259fc7e2c89
b609bf357ac04ded824841f3dfe11b9e
d792c3a43135414cb4429259fc7e2c89--b609bf357ac04ded824841f3dfe11b9e
00b86b47797c44f696958dbd586bb1c3
b609bf357ac04ded824841f3dfe11b9e--00b86b47797c44f696958dbd586bb1c3
70ad197ccc1f456ba1db7b0000d7e900
2bace85d1cf449709fd80256f9b52ccf
RX(phi₁)
a345af49c8e243b99de5f0eaa5d10fee--2bace85d1cf449709fd80256f9b52ccf
9cefb25aff21466fb7857448842d521f
2
10affda53bb4407081607522a06abe1c
RY(phi₄)
2bace85d1cf449709fd80256f9b52ccf--10affda53bb4407081607522a06abe1c
e26d8516d1f144cdb5e2b2fd09507d66
RX(phi₇)
10affda53bb4407081607522a06abe1c--e26d8516d1f144cdb5e2b2fd09507d66
007a2d94b6884f2086ae2aff14dd9cd4
PHASE(phi_ent₀)
e26d8516d1f144cdb5e2b2fd09507d66--007a2d94b6884f2086ae2aff14dd9cd4
007a2d94b6884f2086ae2aff14dd9cd4--48e29a45193941b4a83d7b033044a01d
849e927e2d5849b1bb75b62aca9a70ea
007a2d94b6884f2086ae2aff14dd9cd4--849e927e2d5849b1bb75b62aca9a70ea
ab8ec54e771a49398764f75be0bc2a24
RX(phi₁₀)
849e927e2d5849b1bb75b62aca9a70ea--ab8ec54e771a49398764f75be0bc2a24
aa1b97dca4eb44948fc0dbe0051e8d79
RY(phi₁₃)
ab8ec54e771a49398764f75be0bc2a24--aa1b97dca4eb44948fc0dbe0051e8d79
91026893b0464df18a656ab67806a7dc
RX(phi₁₆)
aa1b97dca4eb44948fc0dbe0051e8d79--91026893b0464df18a656ab67806a7dc
4402cd695b9d40b59868c65c39edbbda
PHASE(phi_ent₂)
91026893b0464df18a656ab67806a7dc--4402cd695b9d40b59868c65c39edbbda
4402cd695b9d40b59868c65c39edbbda--d792c3a43135414cb4429259fc7e2c89
e7690c27e7ce4f73972c4780ea627ac7
4402cd695b9d40b59868c65c39edbbda--e7690c27e7ce4f73972c4780ea627ac7
e7690c27e7ce4f73972c4780ea627ac7--70ad197ccc1f456ba1db7b0000d7e900
3dd0a62c1de44fb18f80464f5967882c
dd5529cc54e54f4fb1dd9f1a99ef9442
RX(phi₂)
9cefb25aff21466fb7857448842d521f--dd5529cc54e54f4fb1dd9f1a99ef9442
fc75977eb227447d8d4f3830c8ed533e
RY(phi₅)
dd5529cc54e54f4fb1dd9f1a99ef9442--fc75977eb227447d8d4f3830c8ed533e
bd227cc6c5654cb3806c808fc73a693c
RX(phi₈)
fc75977eb227447d8d4f3830c8ed533e--bd227cc6c5654cb3806c808fc73a693c
cb0ba4f7df364ddd9bb6318f4f6ea825
bd227cc6c5654cb3806c808fc73a693c--cb0ba4f7df364ddd9bb6318f4f6ea825
062b6b02874e4c5381b093067b88ec6b
PHASE(phi_ent₁)
cb0ba4f7df364ddd9bb6318f4f6ea825--062b6b02874e4c5381b093067b88ec6b
062b6b02874e4c5381b093067b88ec6b--849e927e2d5849b1bb75b62aca9a70ea
e244a527cad04a5c81e46a4261a9969f
RX(phi₁₁)
062b6b02874e4c5381b093067b88ec6b--e244a527cad04a5c81e46a4261a9969f
627e7d290d2043299bb7bedda3484355
RY(phi₁₄)
e244a527cad04a5c81e46a4261a9969f--627e7d290d2043299bb7bedda3484355
47687577a43442e782e4b0714caa08dd
RX(phi₁₇)
627e7d290d2043299bb7bedda3484355--47687577a43442e782e4b0714caa08dd
009c9376592a4280922821b6f2a81c35
47687577a43442e782e4b0714caa08dd--009c9376592a4280922821b6f2a81c35
9d4ac1bbd35b4269b49671f321b48d01
PHASE(phi_ent₃)
009c9376592a4280922821b6f2a81c35--9d4ac1bbd35b4269b49671f321b48d01
9d4ac1bbd35b4269b49671f321b48d01--e7690c27e7ce4f73972c4780ea627ac7
9d4ac1bbd35b4269b49671f321b48d01--3dd0a62c1de44fb18f80464f5967882c
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_d83d17020d88431dab9d1fd07d737490
cluster_2d7600f903f64b4c8d6171183e498b4c
f6f60c9f45d8428391983269f0f059e9
0
0442f9c096e7410e9584ba5e861c7b55
RX(theta₀)
f6f60c9f45d8428391983269f0f059e9--0442f9c096e7410e9584ba5e861c7b55
ad45cbed5c6641279ebd32d6ce476f1b
1
edbd8f3fe0024ccd996db13e7d0ba490
RY(theta₃)
0442f9c096e7410e9584ba5e861c7b55--edbd8f3fe0024ccd996db13e7d0ba490
ac2f72b7e39c462bbf908a2da8892ebb
RX(theta₆)
edbd8f3fe0024ccd996db13e7d0ba490--ac2f72b7e39c462bbf908a2da8892ebb
c4bd6af8b4174616b8ff2dccfe95c1c9
HamEvo
ac2f72b7e39c462bbf908a2da8892ebb--c4bd6af8b4174616b8ff2dccfe95c1c9
f80b99c5438c43078d5ee4eda9161887
RX(theta₉)
c4bd6af8b4174616b8ff2dccfe95c1c9--f80b99c5438c43078d5ee4eda9161887
741a15c4e0ca4c72b6160357282e7732
RY(theta₁₂)
f80b99c5438c43078d5ee4eda9161887--741a15c4e0ca4c72b6160357282e7732
857de58e33b748cdb6e731ea14f5e0c6
RX(theta₁₅)
741a15c4e0ca4c72b6160357282e7732--857de58e33b748cdb6e731ea14f5e0c6
39311a50d5a940e896875e283899ff0b
HamEvo
857de58e33b748cdb6e731ea14f5e0c6--39311a50d5a940e896875e283899ff0b
06582ed69c744597a107b4daaaaa3ac1
39311a50d5a940e896875e283899ff0b--06582ed69c744597a107b4daaaaa3ac1
004e1c457a264a548b43dd324e9ec04e
da733b84ace9476898c2b857968c7d22
RX(theta₁)
ad45cbed5c6641279ebd32d6ce476f1b--da733b84ace9476898c2b857968c7d22
f09a71ffd0864627ba79ef1d25869725
2
b7751870542a49d087ccb8eb05f73f14
RY(theta₄)
da733b84ace9476898c2b857968c7d22--b7751870542a49d087ccb8eb05f73f14
cf54d96249fa4a4abe76830cce43ec27
RX(theta₇)
b7751870542a49d087ccb8eb05f73f14--cf54d96249fa4a4abe76830cce43ec27
ee1e44dbaa074f69b8c19ad3faf304a4
t = theta_t₀
cf54d96249fa4a4abe76830cce43ec27--ee1e44dbaa074f69b8c19ad3faf304a4
fdd3bc2b973d456390cb9c15872b01af
RX(theta₁₀)
ee1e44dbaa074f69b8c19ad3faf304a4--fdd3bc2b973d456390cb9c15872b01af
deb97473c03f4e39a8cd202ec97144a5
RY(theta₁₃)
fdd3bc2b973d456390cb9c15872b01af--deb97473c03f4e39a8cd202ec97144a5
a2e0ecb23f034e34b23a5570ac92ab09
RX(theta₁₆)
deb97473c03f4e39a8cd202ec97144a5--a2e0ecb23f034e34b23a5570ac92ab09
1bc75734625249f6b7cf1726c0fc9211
t = theta_t₁
a2e0ecb23f034e34b23a5570ac92ab09--1bc75734625249f6b7cf1726c0fc9211
1bc75734625249f6b7cf1726c0fc9211--004e1c457a264a548b43dd324e9ec04e
386fd1b6fca744ef96e513dd032d979f
1169990e79a14e2e954ac401fbe6cab4
RX(theta₂)
f09a71ffd0864627ba79ef1d25869725--1169990e79a14e2e954ac401fbe6cab4
03089947560746f485b39bb192f1a9a9
RY(theta₅)
1169990e79a14e2e954ac401fbe6cab4--03089947560746f485b39bb192f1a9a9
d9aa5d311f174af08b431c7ebf39c99d
RX(theta₈)
03089947560746f485b39bb192f1a9a9--d9aa5d311f174af08b431c7ebf39c99d
e3a0175e880b49288ea11226858ef1aa
d9aa5d311f174af08b431c7ebf39c99d--e3a0175e880b49288ea11226858ef1aa
3d3d8fbd23f441b1968e4388f7e38cf9
RX(theta₁₁)
e3a0175e880b49288ea11226858ef1aa--3d3d8fbd23f441b1968e4388f7e38cf9
90ea48567f6242eaa9ce80a3e3d467dd
RY(theta₁₄)
3d3d8fbd23f441b1968e4388f7e38cf9--90ea48567f6242eaa9ce80a3e3d467dd
227e54fb0c534858ab81c4738b5dda82
RX(theta₁₇)
90ea48567f6242eaa9ce80a3e3d467dd--227e54fb0c534858ab81c4738b5dda82
c8c3abe9adb7460d8d2a6b64dc4b708f
227e54fb0c534858ab81c4738b5dda82--c8c3abe9adb7460d8d2a6b64dc4b708f
c8c3abe9adb7460d8d2a6b64dc4b708f--386fd1b6fca744ef96e513dd032d979f
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_87915b4bf15c4d68a739c02e7ba714bf
cluster_4647ee04be084b0db96fb9b7139527b1
1cb46dcb60e547bfb0855ba5bb20a85f
0
cf5c84f4242b4ba98275235e5fec6ad0
RX(theta₀)
1cb46dcb60e547bfb0855ba5bb20a85f--cf5c84f4242b4ba98275235e5fec6ad0
57244bae1d2a48678a0e9ae9c5def047
1
81c998d57f714a34a06444d36feff183
RY(theta₆)
cf5c84f4242b4ba98275235e5fec6ad0--81c998d57f714a34a06444d36feff183
c22972b53c974901b4198e741d2762f8
RX(theta₁₂)
81c998d57f714a34a06444d36feff183--c22972b53c974901b4198e741d2762f8
5b31111f24cb4221b23aefdf6d82bc6c
c22972b53c974901b4198e741d2762f8--5b31111f24cb4221b23aefdf6d82bc6c
dfcba9f8542440f1a336eaa812dd4f41
RX(theta₁₈)
5b31111f24cb4221b23aefdf6d82bc6c--dfcba9f8542440f1a336eaa812dd4f41
8f06bff96e5f4c1a85d479449d3a182c
RY(theta₂₄)
dfcba9f8542440f1a336eaa812dd4f41--8f06bff96e5f4c1a85d479449d3a182c
8106aea6138c441eb5e08b2eb0793127
RX(theta₃₀)
8f06bff96e5f4c1a85d479449d3a182c--8106aea6138c441eb5e08b2eb0793127
150ab4dbe0044b9791cba09f21a15a25
8106aea6138c441eb5e08b2eb0793127--150ab4dbe0044b9791cba09f21a15a25
95cca07a6a6b4a63a11fc5a5783a331d
150ab4dbe0044b9791cba09f21a15a25--95cca07a6a6b4a63a11fc5a5783a331d
c52e69cf5e2d4918a23b975f8bb1fb5b
9524d5d862be4346a9ec1e63ed7f1bbc
RX(theta₁)
57244bae1d2a48678a0e9ae9c5def047--9524d5d862be4346a9ec1e63ed7f1bbc
67a4ced3d82a4c7ba422ec4fe826fe6e
2
164d5bbe2bd142738a4fb8384e8e75ee
RY(theta₇)
9524d5d862be4346a9ec1e63ed7f1bbc--164d5bbe2bd142738a4fb8384e8e75ee
c99361560a8c4185b6053f95031d0793
RX(theta₁₃)
164d5bbe2bd142738a4fb8384e8e75ee--c99361560a8c4185b6053f95031d0793
8b86b68369f4444a9d92b3099b7f8033
c99361560a8c4185b6053f95031d0793--8b86b68369f4444a9d92b3099b7f8033
39c3d2d090d448168f132f301b74b266
RX(theta₁₉)
8b86b68369f4444a9d92b3099b7f8033--39c3d2d090d448168f132f301b74b266
8d8a912c4bf44219bacfa9af21508ba4
RY(theta₂₅)
39c3d2d090d448168f132f301b74b266--8d8a912c4bf44219bacfa9af21508ba4
42626198cbc945fca7651e2850c5c23a
RX(theta₃₁)
8d8a912c4bf44219bacfa9af21508ba4--42626198cbc945fca7651e2850c5c23a
79fa8c28478c46c1af3d41966827a7d7
42626198cbc945fca7651e2850c5c23a--79fa8c28478c46c1af3d41966827a7d7
79fa8c28478c46c1af3d41966827a7d7--c52e69cf5e2d4918a23b975f8bb1fb5b
8e773a9d37d54ae6924cb78eca31def8
881e6264c25c4b00a957b94c482d5dcf
RX(theta₂)
67a4ced3d82a4c7ba422ec4fe826fe6e--881e6264c25c4b00a957b94c482d5dcf
6b47175a025443c49d5f10b5dede801e
3
209d0bc273ca40efb484e28f1641b99b
RY(theta₈)
881e6264c25c4b00a957b94c482d5dcf--209d0bc273ca40efb484e28f1641b99b
28508567b44349d3aff4360547bfe5c8
RX(theta₁₄)
209d0bc273ca40efb484e28f1641b99b--28508567b44349d3aff4360547bfe5c8
f3b6478637b74d848edc80542700bf18
HamEvo
28508567b44349d3aff4360547bfe5c8--f3b6478637b74d848edc80542700bf18
3771a76261e143de8682b16000ec51b1
RX(theta₂₀)
f3b6478637b74d848edc80542700bf18--3771a76261e143de8682b16000ec51b1
d707ecee85ae49dcb1e1da3456e8b0c7
RY(theta₂₆)
3771a76261e143de8682b16000ec51b1--d707ecee85ae49dcb1e1da3456e8b0c7
d00fb94c1c3e46459ad7f22c1f0bf661
RX(theta₃₂)
d707ecee85ae49dcb1e1da3456e8b0c7--d00fb94c1c3e46459ad7f22c1f0bf661
cf1c9e440a3248738e332da0983dc67c
HamEvo
d00fb94c1c3e46459ad7f22c1f0bf661--cf1c9e440a3248738e332da0983dc67c
cf1c9e440a3248738e332da0983dc67c--8e773a9d37d54ae6924cb78eca31def8
8f156b26e4924178aefe64e58e599fe1
e517d3eeb3e14a4bbe5e1c4799107794
RX(theta₃)
6b47175a025443c49d5f10b5dede801e--e517d3eeb3e14a4bbe5e1c4799107794
4e11f45d739244f2bc2582f95008bc6b
4
cd6895b156594eef803dda5694475bb5
RY(theta₉)
e517d3eeb3e14a4bbe5e1c4799107794--cd6895b156594eef803dda5694475bb5
155d03358b834cb7b0b6f0d8c298c3a2
RX(theta₁₅)
cd6895b156594eef803dda5694475bb5--155d03358b834cb7b0b6f0d8c298c3a2
c1e9a2675ad74d04a2adb66eedf2da0f
t = theta_t₀
155d03358b834cb7b0b6f0d8c298c3a2--c1e9a2675ad74d04a2adb66eedf2da0f
75730edf3adf4e86a4c1bac484ac7749
RX(theta₂₁)
c1e9a2675ad74d04a2adb66eedf2da0f--75730edf3adf4e86a4c1bac484ac7749
eacd653cb57b48afb4cdada82605c09e
RY(theta₂₇)
75730edf3adf4e86a4c1bac484ac7749--eacd653cb57b48afb4cdada82605c09e
ce532d2a36f743a2b346619d9481c4ee
RX(theta₃₃)
eacd653cb57b48afb4cdada82605c09e--ce532d2a36f743a2b346619d9481c4ee
c3c50ed6e430472392b9f152c165b0e2
t = theta_t₁
ce532d2a36f743a2b346619d9481c4ee--c3c50ed6e430472392b9f152c165b0e2
c3c50ed6e430472392b9f152c165b0e2--8f156b26e4924178aefe64e58e599fe1
14ea6f76874d44d7918b06c68689f3cb
2a46ff2fc62c4a259f4a288dbb39f477
RX(theta₄)
4e11f45d739244f2bc2582f95008bc6b--2a46ff2fc62c4a259f4a288dbb39f477
0434c28800c74a94b71491dadda9d499
5
fc31f57d2cd149c983956d00c0f5b773
RY(theta₁₀)
2a46ff2fc62c4a259f4a288dbb39f477--fc31f57d2cd149c983956d00c0f5b773
0fffdb83eb844cc8a55d8e3ee9c7e9c1
RX(theta₁₆)
fc31f57d2cd149c983956d00c0f5b773--0fffdb83eb844cc8a55d8e3ee9c7e9c1
df94a66db46a4dafb9b8b9ebb5789023
0fffdb83eb844cc8a55d8e3ee9c7e9c1--df94a66db46a4dafb9b8b9ebb5789023
de2df7447abc42beb6895d6407e7a641
RX(theta₂₂)
df94a66db46a4dafb9b8b9ebb5789023--de2df7447abc42beb6895d6407e7a641
9a65911af036450588cd85eec9c0febd
RY(theta₂₈)
de2df7447abc42beb6895d6407e7a641--9a65911af036450588cd85eec9c0febd
685a1158bdf845f9a82f2ef31c13da92
RX(theta₃₄)
9a65911af036450588cd85eec9c0febd--685a1158bdf845f9a82f2ef31c13da92
bf56f199e941438691e5e94120865153
685a1158bdf845f9a82f2ef31c13da92--bf56f199e941438691e5e94120865153
bf56f199e941438691e5e94120865153--14ea6f76874d44d7918b06c68689f3cb
b7a01fd14c2a4946b530c2229e7d54f0
713cd581dc344747bbe7e34e906b91e5
RX(theta₅)
0434c28800c74a94b71491dadda9d499--713cd581dc344747bbe7e34e906b91e5
4c759d4c84d84dab87cacb9936893a45
RY(theta₁₁)
713cd581dc344747bbe7e34e906b91e5--4c759d4c84d84dab87cacb9936893a45
83358313fe114df1831640bf460a1649
RX(theta₁₇)
4c759d4c84d84dab87cacb9936893a45--83358313fe114df1831640bf460a1649
70c7d69ab8904dba8e9ca93c5e2ae1a4
83358313fe114df1831640bf460a1649--70c7d69ab8904dba8e9ca93c5e2ae1a4
ec5f7ca36bc54df6a921b41518e758ed
RX(theta₂₃)
70c7d69ab8904dba8e9ca93c5e2ae1a4--ec5f7ca36bc54df6a921b41518e758ed
49f18e811d4b427a961a5dbb00c42a72
RY(theta₂₉)
ec5f7ca36bc54df6a921b41518e758ed--49f18e811d4b427a961a5dbb00c42a72
f258c486de1049c3b5005d30b285eb64
RX(theta₃₅)
49f18e811d4b427a961a5dbb00c42a72--f258c486de1049c3b5005d30b285eb64
d0cbbe169c1b437a9a47a4ec24ef7aee
f258c486de1049c3b5005d30b285eb64--d0cbbe169c1b437a9a47a4ec24ef7aee
d0cbbe169c1b437a9a47a4ec24ef7aee--b7a01fd14c2a4946b530c2229e7d54f0
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_2230b37ae654412fbd24118ba042e5dc
BPMA-1
cluster_5979a327c7c2498bbfc1e90c69c9ab96
BPMA-0
1f237d0ceb03428bae4d2d9ea5ca758e
0
1d3916611f5847849d458a66012180c4
RX(iia_α₀₀)
1f237d0ceb03428bae4d2d9ea5ca758e--1d3916611f5847849d458a66012180c4
c887a45862244e189f27d486e32a97c6
1
247498cce4f543dc9062b08cff2e090f
RY(iia_α₀₃)
1d3916611f5847849d458a66012180c4--247498cce4f543dc9062b08cff2e090f
4ca2878246f34c668c100b81104de29b
247498cce4f543dc9062b08cff2e090f--4ca2878246f34c668c100b81104de29b
b4fe9d21906d4bb6badf664dc8f5b23e
4ca2878246f34c668c100b81104de29b--b4fe9d21906d4bb6badf664dc8f5b23e
9f48edd12b3e489c9a71b737864e52a4
RX(iia_γ₀₀)
b4fe9d21906d4bb6badf664dc8f5b23e--9f48edd12b3e489c9a71b737864e52a4
489fde47404a405996b1b96c0b376c86
9f48edd12b3e489c9a71b737864e52a4--489fde47404a405996b1b96c0b376c86
b3649dbc6207481f952c4fb1acc55523
489fde47404a405996b1b96c0b376c86--b3649dbc6207481f952c4fb1acc55523
550ae85b564344a796118e94a80e4ba0
RY(iia_β₀₃)
b3649dbc6207481f952c4fb1acc55523--550ae85b564344a796118e94a80e4ba0
566a6db3fd654f71ac0d01e154f876d8
RX(iia_β₀₀)
550ae85b564344a796118e94a80e4ba0--566a6db3fd654f71ac0d01e154f876d8
eef295e7c1da49e29f173a11f638073e
RX(iia_α₁₀)
566a6db3fd654f71ac0d01e154f876d8--eef295e7c1da49e29f173a11f638073e
ae566b40bbb34bf7a724aee67b8da3c1
RY(iia_α₁₃)
eef295e7c1da49e29f173a11f638073e--ae566b40bbb34bf7a724aee67b8da3c1
9fe4c28829064d10830b86ff47ba316f
ae566b40bbb34bf7a724aee67b8da3c1--9fe4c28829064d10830b86ff47ba316f
891563fc11ca47f78453f0de97e803ea
9fe4c28829064d10830b86ff47ba316f--891563fc11ca47f78453f0de97e803ea
2db7890cc7d04bd0afb7133327a6c67e
RX(iia_γ₁₀)
891563fc11ca47f78453f0de97e803ea--2db7890cc7d04bd0afb7133327a6c67e
b663ada7c812419984d4758310febd02
2db7890cc7d04bd0afb7133327a6c67e--b663ada7c812419984d4758310febd02
2a049c311ab542b3970f31b1687d22d8
b663ada7c812419984d4758310febd02--2a049c311ab542b3970f31b1687d22d8
1bd3581017a1470cac2772f8fed686ac
RY(iia_β₁₃)
2a049c311ab542b3970f31b1687d22d8--1bd3581017a1470cac2772f8fed686ac
6330fc732e904c18ab0b5864f347168b
RX(iia_β₁₀)
1bd3581017a1470cac2772f8fed686ac--6330fc732e904c18ab0b5864f347168b
e2229a5d605744adb11d13bbe962e1f9
6330fc732e904c18ab0b5864f347168b--e2229a5d605744adb11d13bbe962e1f9
c94f60b79c6a40c9b3eef82534606ecb
72c4663dc5574e1eba03fc01a1abf549
RX(iia_α₀₁)
c887a45862244e189f27d486e32a97c6--72c4663dc5574e1eba03fc01a1abf549
327b2bf18b0849358327ea10389bf590
2
e671181b5834496a953d568feaf514c8
RY(iia_α₀₄)
72c4663dc5574e1eba03fc01a1abf549--e671181b5834496a953d568feaf514c8
5de5e580fd614079ae65de55037650fb
X
e671181b5834496a953d568feaf514c8--5de5e580fd614079ae65de55037650fb
5de5e580fd614079ae65de55037650fb--4ca2878246f34c668c100b81104de29b
4490510c4f034b87bb54267a64887745
5de5e580fd614079ae65de55037650fb--4490510c4f034b87bb54267a64887745
9f7f88513330479993965de8a5afa338
RX(iia_γ₀₁)
4490510c4f034b87bb54267a64887745--9f7f88513330479993965de8a5afa338
8dbd9d438a3a43ce8c0ce21ebfd92130
9f7f88513330479993965de8a5afa338--8dbd9d438a3a43ce8c0ce21ebfd92130
44d6b40d8f2241c3bb4849a5dca291c2
X
8dbd9d438a3a43ce8c0ce21ebfd92130--44d6b40d8f2241c3bb4849a5dca291c2
44d6b40d8f2241c3bb4849a5dca291c2--b3649dbc6207481f952c4fb1acc55523
4887e77a5cb544aab9530edfc100bafb
RY(iia_β₀₄)
44d6b40d8f2241c3bb4849a5dca291c2--4887e77a5cb544aab9530edfc100bafb
e721822c0c9c4796a1f6ba529dde79e9
RX(iia_β₀₁)
4887e77a5cb544aab9530edfc100bafb--e721822c0c9c4796a1f6ba529dde79e9
e641d9739f95499693460a09aafd4b1c
RX(iia_α₁₁)
e721822c0c9c4796a1f6ba529dde79e9--e641d9739f95499693460a09aafd4b1c
3bf69dba2f5848a18f1050dbec2a40e3
RY(iia_α₁₄)
e641d9739f95499693460a09aafd4b1c--3bf69dba2f5848a18f1050dbec2a40e3
f76936a6998740778ea4eaed73105299
X
3bf69dba2f5848a18f1050dbec2a40e3--f76936a6998740778ea4eaed73105299
f76936a6998740778ea4eaed73105299--9fe4c28829064d10830b86ff47ba316f
02677acb320c4daea61ba68a5397ecca
f76936a6998740778ea4eaed73105299--02677acb320c4daea61ba68a5397ecca
e29ce84c219948668f50470ef38cd883
RX(iia_γ₁₁)
02677acb320c4daea61ba68a5397ecca--e29ce84c219948668f50470ef38cd883
e095075c32024766b2e1c7e677b9a92c
e29ce84c219948668f50470ef38cd883--e095075c32024766b2e1c7e677b9a92c
f866046b438143ae81b369990ab0dc1a
X
e095075c32024766b2e1c7e677b9a92c--f866046b438143ae81b369990ab0dc1a
f866046b438143ae81b369990ab0dc1a--2a049c311ab542b3970f31b1687d22d8
532b46d5a1dd40278308fd5ee874c840
RY(iia_β₁₄)
f866046b438143ae81b369990ab0dc1a--532b46d5a1dd40278308fd5ee874c840
d7de53e0310e41f98582966208d59b10
RX(iia_β₁₁)
532b46d5a1dd40278308fd5ee874c840--d7de53e0310e41f98582966208d59b10
d7de53e0310e41f98582966208d59b10--c94f60b79c6a40c9b3eef82534606ecb
d9166cdcac404bbf97e98c6ef35c1bc0
efa44d4eab46493084307daebfa0626d
RX(iia_α₀₂)
327b2bf18b0849358327ea10389bf590--efa44d4eab46493084307daebfa0626d
81984ce5564e4f51918d65193a162f30
RY(iia_α₀₅)
efa44d4eab46493084307daebfa0626d--81984ce5564e4f51918d65193a162f30
e2ad4e20fda64a4ea972ffe57556ad0c
81984ce5564e4f51918d65193a162f30--e2ad4e20fda64a4ea972ffe57556ad0c
b65364d5fd0c4c31a6cc25ec08f4cf85
X
e2ad4e20fda64a4ea972ffe57556ad0c--b65364d5fd0c4c31a6cc25ec08f4cf85
b65364d5fd0c4c31a6cc25ec08f4cf85--4490510c4f034b87bb54267a64887745
af55b431b39643d0803da553efafdedd
RX(iia_γ₀₂)
b65364d5fd0c4c31a6cc25ec08f4cf85--af55b431b39643d0803da553efafdedd
b00b30521192489492e12f85e4946694
X
af55b431b39643d0803da553efafdedd--b00b30521192489492e12f85e4946694
b00b30521192489492e12f85e4946694--8dbd9d438a3a43ce8c0ce21ebfd92130
d0459feed0bd4617817a7ed5a22bed41
b00b30521192489492e12f85e4946694--d0459feed0bd4617817a7ed5a22bed41
be9beb3b44d24007804a298555f3a4bd
RY(iia_β₀₅)
d0459feed0bd4617817a7ed5a22bed41--be9beb3b44d24007804a298555f3a4bd
4c72ba7380fc401d816bc73aff07f104
RX(iia_β₀₂)
be9beb3b44d24007804a298555f3a4bd--4c72ba7380fc401d816bc73aff07f104
6de7387212e6407b99720b8d4cddf6bf
RX(iia_α₁₂)
4c72ba7380fc401d816bc73aff07f104--6de7387212e6407b99720b8d4cddf6bf
60a393b74e164da3b15af783356c8861
RY(iia_α₁₅)
6de7387212e6407b99720b8d4cddf6bf--60a393b74e164da3b15af783356c8861
2a8cf302b75944149726f4db9dd40ac4
60a393b74e164da3b15af783356c8861--2a8cf302b75944149726f4db9dd40ac4
fd84af6ecf354189a42b6e73aa284084
X
2a8cf302b75944149726f4db9dd40ac4--fd84af6ecf354189a42b6e73aa284084
fd84af6ecf354189a42b6e73aa284084--02677acb320c4daea61ba68a5397ecca
cb2bb28f2c8f4e2c89cb9d2e2f0bbce9
RX(iia_γ₁₂)
fd84af6ecf354189a42b6e73aa284084--cb2bb28f2c8f4e2c89cb9d2e2f0bbce9
3c0880bc535645fea9bbdf3ac7266746
X
cb2bb28f2c8f4e2c89cb9d2e2f0bbce9--3c0880bc535645fea9bbdf3ac7266746
3c0880bc535645fea9bbdf3ac7266746--e095075c32024766b2e1c7e677b9a92c
839846042b774371bd6e8c01db2aef45
3c0880bc535645fea9bbdf3ac7266746--839846042b774371bd6e8c01db2aef45
fbaa47965283428b8d9db9e37c9dc3f0
RY(iia_β₁₅)
839846042b774371bd6e8c01db2aef45--fbaa47965283428b8d9db9e37c9dc3f0
e662d985593845ad908805aada3cb539
RX(iia_β₁₂)
fbaa47965283428b8d9db9e37c9dc3f0--e662d985593845ad908805aada3cb539
e662d985593845ad908805aada3cb539--d9166cdcac404bbf97e98c6ef35c1bc0