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_1637d3e2e5544ac69c648f701568807b
Constant Chebyshev FM
cluster_b60e0f215d284570876542d8e8150f89
Constant Fourier FM
71f18f3500fe4c3693fd92a395a535a1
0
00a67d9ff6a14a0da32ec5eac0d9b5dd
RX(phi)
71f18f3500fe4c3693fd92a395a535a1--00a67d9ff6a14a0da32ec5eac0d9b5dd
a677dfca7c7d4665817b39e2497d8396
1
f0d783576da143efab9db8c3d7516cce
RX(acos(phi))
00a67d9ff6a14a0da32ec5eac0d9b5dd--f0d783576da143efab9db8c3d7516cce
802111f6a6994b6aa79ec1c732a6ae1d
f0d783576da143efab9db8c3d7516cce--802111f6a6994b6aa79ec1c732a6ae1d
df054c398235415fa853d11578596dae
822a946f21984277b5f0616f4549af3e
RX(phi)
a677dfca7c7d4665817b39e2497d8396--822a946f21984277b5f0616f4549af3e
a2907f2cf0534723a7d3f861a5ca7391
2
65cc78f674634b788d40f399b35b2431
RX(acos(phi))
822a946f21984277b5f0616f4549af3e--65cc78f674634b788d40f399b35b2431
65cc78f674634b788d40f399b35b2431--df054c398235415fa853d11578596dae
6c4c4168d94249208359c8c3ed3f1f05
61f8ed8c9a7b4283a8648a0dcd6fa388
RX(phi)
a2907f2cf0534723a7d3f861a5ca7391--61f8ed8c9a7b4283a8648a0dcd6fa388
53cfdfa8f5df48449fe856153b88e7e8
RX(acos(phi))
61f8ed8c9a7b4283a8648a0dcd6fa388--53cfdfa8f5df48449fe856153b88e7e8
53cfdfa8f5df48449fe856153b88e7e8--6c4c4168d94249208359c8c3ed3f1f05
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_e8ac70bd1b694cd18947d85621473d97
Constant <function custom_fn at 0x7f35a8e0c4c0> FM
cluster_a30691f5f94e421cbf43d588e3958ca7
Constant asin FM
fb33f168b4494485a288c9895d8217ff
0
bf8f1f0e04bf415090448d9ebb5725e0
RX(asin(phi))
fb33f168b4494485a288c9895d8217ff--bf8f1f0e04bf415090448d9ebb5725e0
c4968fc2bc0a40c790a5d982832724dc
1
97c3e73c40ab4d9887df10d00205eb07
RX(phi**2 + asin(phi))
bf8f1f0e04bf415090448d9ebb5725e0--97c3e73c40ab4d9887df10d00205eb07
c6030d2aa633430f9d70e22661a05f86
97c3e73c40ab4d9887df10d00205eb07--c6030d2aa633430f9d70e22661a05f86
e2f8002c24084c03b5906c14e39321a5
22a7198e4e874a11a4691f40f5d8343b
RX(asin(phi))
c4968fc2bc0a40c790a5d982832724dc--22a7198e4e874a11a4691f40f5d8343b
f169bd9c81fb4aee96b3510bda0cf350
2
d86a5d3debd34110ae2b3d0286e588d2
RX(phi**2 + asin(phi))
22a7198e4e874a11a4691f40f5d8343b--d86a5d3debd34110ae2b3d0286e588d2
d86a5d3debd34110ae2b3d0286e588d2--e2f8002c24084c03b5906c14e39321a5
9eb286952cc24811af64633ceb90f192
076500754fbe43408a6f9c24be4933c7
RX(asin(phi))
f169bd9c81fb4aee96b3510bda0cf350--076500754fbe43408a6f9c24be4933c7
79de3b0185ff4f5092603b4eed5f8de8
RX(phi**2 + asin(phi))
076500754fbe43408a6f9c24be4933c7--79de3b0185ff4f5092603b4eed5f8de8
79de3b0185ff4f5092603b4eed5f8de8--9eb286952cc24811af64633ceb90f192
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_c028da7cc88c47969002931975f6e259
Exponential Fourier FM
cluster_0f891a064f2344f3886061acad7808d6
Constant Fourier FM
cluster_394fa682fb024569bb522771e8392e7b
Tower Fourier FM
7beded06d4204deeb631ded26469c1a2
0
65522487503042f294504a9ced728cd8
RX(phi)
7beded06d4204deeb631ded26469c1a2--65522487503042f294504a9ced728cd8
787cc1dcd4c94d7bb43f8dcecefba2d6
1
07cd362afea2425facdf779ddd644574
RX(1.0*phi)
65522487503042f294504a9ced728cd8--07cd362afea2425facdf779ddd644574
400ccf73347444ef862efc6a24998812
RX(1.0*phi)
07cd362afea2425facdf779ddd644574--400ccf73347444ef862efc6a24998812
e0c2054566af4dada3f049f0fe635e3c
400ccf73347444ef862efc6a24998812--e0c2054566af4dada3f049f0fe635e3c
0b7fcd25b91d4813a30ca50a3decc84b
605fc731e5684a5a97c5e4abf16ebd4b
RX(phi)
787cc1dcd4c94d7bb43f8dcecefba2d6--605fc731e5684a5a97c5e4abf16ebd4b
398d8a1bfd61458f889286cc7e63e868
2
bb956fab264c4cc5a1c0d95c081c3686
RX(2.0*phi)
605fc731e5684a5a97c5e4abf16ebd4b--bb956fab264c4cc5a1c0d95c081c3686
a329d375ea1347aeb706345235e7750f
RX(2.0*phi)
bb956fab264c4cc5a1c0d95c081c3686--a329d375ea1347aeb706345235e7750f
a329d375ea1347aeb706345235e7750f--0b7fcd25b91d4813a30ca50a3decc84b
e6f6b4ef95604d838e501a4d80762729
1059cef0ea3c4bc9b6bc4377668546cd
RX(phi)
398d8a1bfd61458f889286cc7e63e868--1059cef0ea3c4bc9b6bc4377668546cd
99a845762faa4fe8b2b2929473559962
3
52ad34876ff4472eaa7ed028d135133c
RX(3.0*phi)
1059cef0ea3c4bc9b6bc4377668546cd--52ad34876ff4472eaa7ed028d135133c
c4a5a687f646424baee45449993ed8aa
RX(4.0*phi)
52ad34876ff4472eaa7ed028d135133c--c4a5a687f646424baee45449993ed8aa
c4a5a687f646424baee45449993ed8aa--e6f6b4ef95604d838e501a4d80762729
0800f6707acd4d02a439716524d79076
07f41f79535c419cb189b91c4f19f728
RX(phi)
99a845762faa4fe8b2b2929473559962--07f41f79535c419cb189b91c4f19f728
61b6b750a5014c4f80914bffcd244b77
4
6cc7bbe7980842c59501e2e001c3115b
RX(4.0*phi)
07f41f79535c419cb189b91c4f19f728--6cc7bbe7980842c59501e2e001c3115b
f48686c03a2c4fabb77ba6008a1198ad
RX(8.0*phi)
6cc7bbe7980842c59501e2e001c3115b--f48686c03a2c4fabb77ba6008a1198ad
f48686c03a2c4fabb77ba6008a1198ad--0800f6707acd4d02a439716524d79076
e395c1cd1648459fb5b04a50692e1d59
75c1ace794be4712872c94e9f133eb43
RX(phi)
61b6b750a5014c4f80914bffcd244b77--75c1ace794be4712872c94e9f133eb43
5ca15962f40a42eebbb86a97476ba096
RX(5.0*phi)
75c1ace794be4712872c94e9f133eb43--5ca15962f40a42eebbb86a97476ba096
7996751678d443878fe09b2bce93261f
RX(16.0*phi)
5ca15962f40a42eebbb86a97476ba096--7996751678d443878fe09b2bce93261f
7996751678d443878fe09b2bce93261f--e395c1cd1648459fb5b04a50692e1d59
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
6653eac1b018497da485da862f68e3f6
0
58b29fbc942543c0a3febe47ca9553cf
RX(1.0*acos(phi))
6653eac1b018497da485da862f68e3f6--58b29fbc942543c0a3febe47ca9553cf
24dbfd248d264c4da182cd044d0aa3b7
1
fba41a37c759433bbc999439a228d81c
58b29fbc942543c0a3febe47ca9553cf--fba41a37c759433bbc999439a228d81c
31a30cc3f4434c77ad7cc57b97c4213a
9376723d160b4863a5edc7820de20170
RX(1.414*acos(phi))
24dbfd248d264c4da182cd044d0aa3b7--9376723d160b4863a5edc7820de20170
bae02b7abe4d40c4b23cbf2371c4a472
2
9376723d160b4863a5edc7820de20170--31a30cc3f4434c77ad7cc57b97c4213a
82be16d198044bd1963b6b9c7fac1d5a
5743586ec92e459c9384326171338636
RX(1.732*acos(phi))
bae02b7abe4d40c4b23cbf2371c4a472--5743586ec92e459c9384326171338636
d7fcbaca0ee94ac5b907bfb527adf5c1
3
5743586ec92e459c9384326171338636--82be16d198044bd1963b6b9c7fac1d5a
59e5e606ee2a4802b3aabde75346f0f6
a373794ef60c4a48ac1b3ef7fba48179
RX(2.0*acos(phi))
d7fcbaca0ee94ac5b907bfb527adf5c1--a373794ef60c4a48ac1b3ef7fba48179
ed639773db81402d8110f15a763d2002
4
a373794ef60c4a48ac1b3ef7fba48179--59e5e606ee2a4802b3aabde75346f0f6
2fa65c2c098d4eef82b90bf6f81fe179
4e240522ccf8462aaaa97d69d6e93d1d
RX(2.236*acos(phi))
ed639773db81402d8110f15a763d2002--4e240522ccf8462aaaa97d69d6e93d1d
4e240522ccf8462aaaa97d69d6e93d1d--2fa65c2c098d4eef82b90bf6f81fe179
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
b30525562564428bad621c7433f48beb
0
2b03dd43e78846be85072de9cc3b3c72
RX(1.0*phi*w₀)
b30525562564428bad621c7433f48beb--2b03dd43e78846be85072de9cc3b3c72
4e7f919dd2ad42ac8e51ef6a94a0c2af
1
3ff08154e3854c15b2c496ef37c04b84
2b03dd43e78846be85072de9cc3b3c72--3ff08154e3854c15b2c496ef37c04b84
21a26c9453c24bbf9f627bdc3d38eeea
89b546a72ef146dcb1761feee25607ca
RX(2.0*phi*w₁)
4e7f919dd2ad42ac8e51ef6a94a0c2af--89b546a72ef146dcb1761feee25607ca
5a9050cba8e34a81971eb43d54e7758f
2
89b546a72ef146dcb1761feee25607ca--21a26c9453c24bbf9f627bdc3d38eeea
ee554ecc220f48b9be0bb23964f685d3
5855a2e7e6c84ecca6f0937dd153da9a
RX(4.0*phi*w₂)
5a9050cba8e34a81971eb43d54e7758f--5855a2e7e6c84ecca6f0937dd153da9a
f1679976e3764fad8f2ee10b6d0efcb7
3
5855a2e7e6c84ecca6f0937dd153da9a--ee554ecc220f48b9be0bb23964f685d3
1a98b51e425848a1b3b7675a5a3a4b30
5725cd570c5f4369aab132a0ec985bcd
RX(8.0*phi*w₃)
f1679976e3764fad8f2ee10b6d0efcb7--5725cd570c5f4369aab132a0ec985bcd
eb0414929a0943658bc3ce049b91daee
4
5725cd570c5f4369aab132a0ec985bcd--1a98b51e425848a1b3b7675a5a3a4b30
0448be77dede4c02b7d1685b6ca95ee4
84a767f7937c448a80a008b917ba9a30
RX(16.0*phi*w₄)
eb0414929a0943658bc3ce049b91daee--84a767f7937c448a80a008b917ba9a30
84a767f7937c448a80a008b917ba9a30--0448be77dede4c02b7d1685b6ca95ee4
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
b57456fec862412996ea3b88d5e2e1b0
0
ab5e28dd227d432a9c5508f99b9c6eba
RY(80.0*acos(w₄*(0.667*x + 1.667)))
b57456fec862412996ea3b88d5e2e1b0--ab5e28dd227d432a9c5508f99b9c6eba
4d6ed3dd1bde49ae9c201837bfd4918a
1
92c5775bebef4e13b5ffec80edc42ee4
ab5e28dd227d432a9c5508f99b9c6eba--92c5775bebef4e13b5ffec80edc42ee4
7a540018db304646835d136dbf43ba68
855003529d0a41bfaa56cd0eef9557da
RY(40.0*acos(w₃*(0.667*x + 1.667)))
4d6ed3dd1bde49ae9c201837bfd4918a--855003529d0a41bfaa56cd0eef9557da
54556c6f8cc740e6b355f6944465beb8
2
855003529d0a41bfaa56cd0eef9557da--7a540018db304646835d136dbf43ba68
ce181202b21a405fb815f5fc5522855f
44aab1cd7f044cb4bc3bfdc30f03cde9
RY(20.0*acos(w₂*(0.667*x + 1.667)))
54556c6f8cc740e6b355f6944465beb8--44aab1cd7f044cb4bc3bfdc30f03cde9
f29b23222222468f89bdb1395d7c0413
3
44aab1cd7f044cb4bc3bfdc30f03cde9--ce181202b21a405fb815f5fc5522855f
9685f9aa8bf443ffacc7702d12f5fcb2
868488801bf1407a97f2b32ce1acfc40
RY(10.0*acos(w₁*(0.667*x + 1.667)))
f29b23222222468f89bdb1395d7c0413--868488801bf1407a97f2b32ce1acfc40
caf22ef742144e0bac1d97310a952b17
4
868488801bf1407a97f2b32ce1acfc40--9685f9aa8bf443ffacc7702d12f5fcb2
901edc7dce91462fbc1cb43ab5af318b
62abf369d5cf4b03bda9391a87e38406
RY(5.0*acos(w₀*(0.667*x + 1.667)))
caf22ef742144e0bac1d97310a952b17--62abf369d5cf4b03bda9391a87e38406
62abf369d5cf4b03bda9391a87e38406--901edc7dce91462fbc1cb43ab5af318b
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
cbdcfee87bde4951a2866e0e34e0284a
0
0f4458d52ac44eef852c8e48ec7be169
RX(theta₀)
cbdcfee87bde4951a2866e0e34e0284a--0f4458d52ac44eef852c8e48ec7be169
dc0988f6f0f7468cafccf09cf0875d8b
1
d66a929b4c1c48a1ade8d9d9fac5a287
RY(theta₃)
0f4458d52ac44eef852c8e48ec7be169--d66a929b4c1c48a1ade8d9d9fac5a287
d277decc08af4fe0819e15d2926fc776
RX(theta₆)
d66a929b4c1c48a1ade8d9d9fac5a287--d277decc08af4fe0819e15d2926fc776
9d081c0191634aa6b849be08e174ed69
d277decc08af4fe0819e15d2926fc776--9d081c0191634aa6b849be08e174ed69
1bab6047cbce4d8997436a2553423cbc
9d081c0191634aa6b849be08e174ed69--1bab6047cbce4d8997436a2553423cbc
2fc13d34a18341e0a3bcba12280dc016
RX(theta₉)
1bab6047cbce4d8997436a2553423cbc--2fc13d34a18341e0a3bcba12280dc016
e283c9e4c4ea4807a5b3c53da38912dc
RY(theta₁₂)
2fc13d34a18341e0a3bcba12280dc016--e283c9e4c4ea4807a5b3c53da38912dc
d979e3446ec445f0908b257ed0b1bb91
RX(theta₁₅)
e283c9e4c4ea4807a5b3c53da38912dc--d979e3446ec445f0908b257ed0b1bb91
a788bb49331f40a7b8825977a52f8823
d979e3446ec445f0908b257ed0b1bb91--a788bb49331f40a7b8825977a52f8823
431a883bd36e4e7484d941eada24f646
a788bb49331f40a7b8825977a52f8823--431a883bd36e4e7484d941eada24f646
a0a7fbd9b9924fcfa71843ef7f3e2a65
431a883bd36e4e7484d941eada24f646--a0a7fbd9b9924fcfa71843ef7f3e2a65
e3f3aa7607ec43b9acf4d8188f4c6efe
117231781e4049c9a22da261aebb0a0c
RX(theta₁)
dc0988f6f0f7468cafccf09cf0875d8b--117231781e4049c9a22da261aebb0a0c
be422feecdf34484807d0b1a4a4c8bfa
2
971a2f04be664689a626c82583f8c6f5
RY(theta₄)
117231781e4049c9a22da261aebb0a0c--971a2f04be664689a626c82583f8c6f5
79babe269dc348e9b6b23b6bf5d5ce8c
RX(theta₇)
971a2f04be664689a626c82583f8c6f5--79babe269dc348e9b6b23b6bf5d5ce8c
57ca76242ca94c37ab9f98f600d89b60
X
79babe269dc348e9b6b23b6bf5d5ce8c--57ca76242ca94c37ab9f98f600d89b60
57ca76242ca94c37ab9f98f600d89b60--9d081c0191634aa6b849be08e174ed69
bc856b0ffb2043ea8cf25d06a0f6b8a6
57ca76242ca94c37ab9f98f600d89b60--bc856b0ffb2043ea8cf25d06a0f6b8a6
184e27f61ff4478f9a63a5cead7322cb
RX(theta₁₀)
bc856b0ffb2043ea8cf25d06a0f6b8a6--184e27f61ff4478f9a63a5cead7322cb
a7697fdeff9c468bac6061b534f4e3ba
RY(theta₁₃)
184e27f61ff4478f9a63a5cead7322cb--a7697fdeff9c468bac6061b534f4e3ba
822dc8d48426444b97544cf099bc83c1
RX(theta₁₆)
a7697fdeff9c468bac6061b534f4e3ba--822dc8d48426444b97544cf099bc83c1
bfec4401c0d24ab99d5752d404d6732b
X
822dc8d48426444b97544cf099bc83c1--bfec4401c0d24ab99d5752d404d6732b
bfec4401c0d24ab99d5752d404d6732b--a788bb49331f40a7b8825977a52f8823
a68a7222259b440fab11b09479f6e354
bfec4401c0d24ab99d5752d404d6732b--a68a7222259b440fab11b09479f6e354
a68a7222259b440fab11b09479f6e354--e3f3aa7607ec43b9acf4d8188f4c6efe
f6f1707ebd7c4a87947ad02cee9b5f84
4d6d0b8443034a438cc20e426e7ea30d
RX(theta₂)
be422feecdf34484807d0b1a4a4c8bfa--4d6d0b8443034a438cc20e426e7ea30d
f6bce6b8657344f5a6208e79d163acdb
RY(theta₅)
4d6d0b8443034a438cc20e426e7ea30d--f6bce6b8657344f5a6208e79d163acdb
52244f3ebd674b08a6f47e98fa30abb2
RX(theta₈)
f6bce6b8657344f5a6208e79d163acdb--52244f3ebd674b08a6f47e98fa30abb2
6223e6c3f5f94650ad7e52726110f27b
52244f3ebd674b08a6f47e98fa30abb2--6223e6c3f5f94650ad7e52726110f27b
538708629f6d475c83caab62c862a4ba
X
6223e6c3f5f94650ad7e52726110f27b--538708629f6d475c83caab62c862a4ba
538708629f6d475c83caab62c862a4ba--bc856b0ffb2043ea8cf25d06a0f6b8a6
bc63910f344247e1a2e4eb91d73cec24
RX(theta₁₁)
538708629f6d475c83caab62c862a4ba--bc63910f344247e1a2e4eb91d73cec24
9ff963ed5fc44f68ba5da8c13f411954
RY(theta₁₄)
bc63910f344247e1a2e4eb91d73cec24--9ff963ed5fc44f68ba5da8c13f411954
f741240c0fe54a338424b4fae8cfae8a
RX(theta₁₇)
9ff963ed5fc44f68ba5da8c13f411954--f741240c0fe54a338424b4fae8cfae8a
cbe7ff3006734204baa017422c5f17b4
f741240c0fe54a338424b4fae8cfae8a--cbe7ff3006734204baa017422c5f17b4
2383aeff33ce4de4af9842e2c8ad7443
X
cbe7ff3006734204baa017422c5f17b4--2383aeff33ce4de4af9842e2c8ad7443
2383aeff33ce4de4af9842e2c8ad7443--a68a7222259b440fab11b09479f6e354
2383aeff33ce4de4af9842e2c8ad7443--f6f1707ebd7c4a87947ad02cee9b5f84
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
35b7866e53aa4820978dec2f19fc5655
0
05c422b327754688ba5140d3a9159c87
RX(phi₀)
35b7866e53aa4820978dec2f19fc5655--05c422b327754688ba5140d3a9159c87
ed434a28b6fb45ff9ddce24f45148482
1
f6ccd14b50154179847ce6eec498144d
RY(phi₃)
05c422b327754688ba5140d3a9159c87--f6ccd14b50154179847ce6eec498144d
b0d33f3319da4e10ac2852ae7bbf6eb1
RX(phi₆)
f6ccd14b50154179847ce6eec498144d--b0d33f3319da4e10ac2852ae7bbf6eb1
7da095bb8af743fe8cd0dfcc97382096
b0d33f3319da4e10ac2852ae7bbf6eb1--7da095bb8af743fe8cd0dfcc97382096
382790d9981048bdb3e9ad126d61141e
7da095bb8af743fe8cd0dfcc97382096--382790d9981048bdb3e9ad126d61141e
710496185ad44a60ba526b21476d6a0a
RX(phi₉)
382790d9981048bdb3e9ad126d61141e--710496185ad44a60ba526b21476d6a0a
6fea4f5d320540858a4cb7394544e250
RY(phi₁₂)
710496185ad44a60ba526b21476d6a0a--6fea4f5d320540858a4cb7394544e250
8428f6231de44b1b9b5a87f6a006f846
RX(phi₁₅)
6fea4f5d320540858a4cb7394544e250--8428f6231de44b1b9b5a87f6a006f846
0bc43176a0164f3fadd632292f6b1961
8428f6231de44b1b9b5a87f6a006f846--0bc43176a0164f3fadd632292f6b1961
7301930d7dab40548a5287a6b9929997
0bc43176a0164f3fadd632292f6b1961--7301930d7dab40548a5287a6b9929997
9548dc3e37834302b8f692adbfcadae1
7301930d7dab40548a5287a6b9929997--9548dc3e37834302b8f692adbfcadae1
3ad19dd6f89249a6aef6571138eea931
fe6543f7bab04d6486c51b1f8e55b562
RX(phi₁)
ed434a28b6fb45ff9ddce24f45148482--fe6543f7bab04d6486c51b1f8e55b562
dd115d529ec94172adb02a1f969779b2
2
3ca072a18ea14f2fba12014e2d05ceec
RY(phi₄)
fe6543f7bab04d6486c51b1f8e55b562--3ca072a18ea14f2fba12014e2d05ceec
b19a751551ac4f6c812c29e48cdadef4
RX(phi₇)
3ca072a18ea14f2fba12014e2d05ceec--b19a751551ac4f6c812c29e48cdadef4
e134385d452c40188e5a7fbbfd9656a5
PHASE(phi_ent₀)
b19a751551ac4f6c812c29e48cdadef4--e134385d452c40188e5a7fbbfd9656a5
e134385d452c40188e5a7fbbfd9656a5--7da095bb8af743fe8cd0dfcc97382096
23b49f7914484d99bdb142b3c1306b9a
e134385d452c40188e5a7fbbfd9656a5--23b49f7914484d99bdb142b3c1306b9a
3e6a99b3191745d59c80a7d4cb12d8c0
RX(phi₁₀)
23b49f7914484d99bdb142b3c1306b9a--3e6a99b3191745d59c80a7d4cb12d8c0
4018a32d138e47bc8170ea91083e015b
RY(phi₁₃)
3e6a99b3191745d59c80a7d4cb12d8c0--4018a32d138e47bc8170ea91083e015b
47148a6ea49e49ccaa6c50a04eabd893
RX(phi₁₆)
4018a32d138e47bc8170ea91083e015b--47148a6ea49e49ccaa6c50a04eabd893
a2dbbf2c56e94f31bd0f99754e485716
PHASE(phi_ent₂)
47148a6ea49e49ccaa6c50a04eabd893--a2dbbf2c56e94f31bd0f99754e485716
a2dbbf2c56e94f31bd0f99754e485716--0bc43176a0164f3fadd632292f6b1961
3921d7fb5a4343e18fa956fc066a98da
a2dbbf2c56e94f31bd0f99754e485716--3921d7fb5a4343e18fa956fc066a98da
3921d7fb5a4343e18fa956fc066a98da--3ad19dd6f89249a6aef6571138eea931
203185dbfa304554ba611877c02b3d76
205be3f8509343a682ed91bf23ec6d51
RX(phi₂)
dd115d529ec94172adb02a1f969779b2--205be3f8509343a682ed91bf23ec6d51
0aeb292984e04916a55f7c7ebc27f34e
RY(phi₅)
205be3f8509343a682ed91bf23ec6d51--0aeb292984e04916a55f7c7ebc27f34e
992fdb8ff63841a88337cd599c39237a
RX(phi₈)
0aeb292984e04916a55f7c7ebc27f34e--992fdb8ff63841a88337cd599c39237a
15f0d7f210d24dd3a2f39ac84914c7e0
992fdb8ff63841a88337cd599c39237a--15f0d7f210d24dd3a2f39ac84914c7e0
1252ec185203482798d1e786272834c6
PHASE(phi_ent₁)
15f0d7f210d24dd3a2f39ac84914c7e0--1252ec185203482798d1e786272834c6
1252ec185203482798d1e786272834c6--23b49f7914484d99bdb142b3c1306b9a
676266fecbac4ba699e39f4a7256cf6d
RX(phi₁₁)
1252ec185203482798d1e786272834c6--676266fecbac4ba699e39f4a7256cf6d
ed37388981ac4734af50a47029bb18be
RY(phi₁₄)
676266fecbac4ba699e39f4a7256cf6d--ed37388981ac4734af50a47029bb18be
a861f1237ed046d4aeb28ba1e17482c2
RX(phi₁₇)
ed37388981ac4734af50a47029bb18be--a861f1237ed046d4aeb28ba1e17482c2
36f496162d44413eb93eeccee37ca016
a861f1237ed046d4aeb28ba1e17482c2--36f496162d44413eb93eeccee37ca016
96ea845df02f4aa08903ed7b512627cb
PHASE(phi_ent₃)
36f496162d44413eb93eeccee37ca016--96ea845df02f4aa08903ed7b512627cb
96ea845df02f4aa08903ed7b512627cb--3921d7fb5a4343e18fa956fc066a98da
96ea845df02f4aa08903ed7b512627cb--203185dbfa304554ba611877c02b3d76
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_baf907e4e2b643a4b4f10175da9b166f
cluster_ec541257da0c46d28bc657dcbde69080
72551b4234284ba0aec63096a0a62d23
0
95a96c85dedc444aab7d4f3f3bfae061
RX(theta₀)
72551b4234284ba0aec63096a0a62d23--95a96c85dedc444aab7d4f3f3bfae061
d473f1e7bb9646a8979c5f38178c0acb
1
daa2348be7f9409794f837ecf9be2576
RY(theta₃)
95a96c85dedc444aab7d4f3f3bfae061--daa2348be7f9409794f837ecf9be2576
ce9c4b6e1f5e4dbfbfdf23ae3d7934f2
RX(theta₆)
daa2348be7f9409794f837ecf9be2576--ce9c4b6e1f5e4dbfbfdf23ae3d7934f2
7fb307cafa4447919cdb92d1e92314e7
HamEvo
ce9c4b6e1f5e4dbfbfdf23ae3d7934f2--7fb307cafa4447919cdb92d1e92314e7
c768cff8001b4497871a04d2d3df4c33
RX(theta₉)
7fb307cafa4447919cdb92d1e92314e7--c768cff8001b4497871a04d2d3df4c33
f1907a69f6264a15941f49d9a21edf50
RY(theta₁₂)
c768cff8001b4497871a04d2d3df4c33--f1907a69f6264a15941f49d9a21edf50
b18b375fdd224277be6288d4c64df30a
RX(theta₁₅)
f1907a69f6264a15941f49d9a21edf50--b18b375fdd224277be6288d4c64df30a
65397422e60c4c70a0de33f25aadca2d
HamEvo
b18b375fdd224277be6288d4c64df30a--65397422e60c4c70a0de33f25aadca2d
05de1473057b4f48a47304ef4c7b17ce
65397422e60c4c70a0de33f25aadca2d--05de1473057b4f48a47304ef4c7b17ce
dc80702e47494c78a08384d15a09895a
221ae89d0f44481386b74c7745285c16
RX(theta₁)
d473f1e7bb9646a8979c5f38178c0acb--221ae89d0f44481386b74c7745285c16
59e23c997acb455dabf9661a0ad2036a
2
45951450341f4576ab0ae16f828169a6
RY(theta₄)
221ae89d0f44481386b74c7745285c16--45951450341f4576ab0ae16f828169a6
792804dbd07f470a8a8a76960df4e99a
RX(theta₇)
45951450341f4576ab0ae16f828169a6--792804dbd07f470a8a8a76960df4e99a
34a8aeedb6cc4573833d89739eab8b25
t = theta_t₀
792804dbd07f470a8a8a76960df4e99a--34a8aeedb6cc4573833d89739eab8b25
9ad34c5a5f3d4cc7bfdaea05230596d5
RX(theta₁₀)
34a8aeedb6cc4573833d89739eab8b25--9ad34c5a5f3d4cc7bfdaea05230596d5
4f347aef6b06452aae5a0abbdb36188a
RY(theta₁₃)
9ad34c5a5f3d4cc7bfdaea05230596d5--4f347aef6b06452aae5a0abbdb36188a
53232b99a1d34bd1aed1e06d3583aab4
RX(theta₁₆)
4f347aef6b06452aae5a0abbdb36188a--53232b99a1d34bd1aed1e06d3583aab4
f27e6a5b0a714b9096757d4cc049431a
t = theta_t₁
53232b99a1d34bd1aed1e06d3583aab4--f27e6a5b0a714b9096757d4cc049431a
f27e6a5b0a714b9096757d4cc049431a--dc80702e47494c78a08384d15a09895a
e172c7361f1b4c23b984a731c378ea30
3705ddd694a246919bc51db3068508a6
RX(theta₂)
59e23c997acb455dabf9661a0ad2036a--3705ddd694a246919bc51db3068508a6
59ae36074cd549a885e9bc0530eba525
RY(theta₅)
3705ddd694a246919bc51db3068508a6--59ae36074cd549a885e9bc0530eba525
c825b646795b4c92bb81fb0e91cb7ce4
RX(theta₈)
59ae36074cd549a885e9bc0530eba525--c825b646795b4c92bb81fb0e91cb7ce4
980b62a81a32413bb6d3577f364f5725
c825b646795b4c92bb81fb0e91cb7ce4--980b62a81a32413bb6d3577f364f5725
34d5776f82f749538964b89daa3a51c6
RX(theta₁₁)
980b62a81a32413bb6d3577f364f5725--34d5776f82f749538964b89daa3a51c6
6870f0cabe9e445eb8d3df10dd9dcb34
RY(theta₁₄)
34d5776f82f749538964b89daa3a51c6--6870f0cabe9e445eb8d3df10dd9dcb34
38522abd2b7b4dba840cced627709970
RX(theta₁₇)
6870f0cabe9e445eb8d3df10dd9dcb34--38522abd2b7b4dba840cced627709970
2e4c130197874d69ac9f2f6f4cac5539
38522abd2b7b4dba840cced627709970--2e4c130197874d69ac9f2f6f4cac5539
2e4c130197874d69ac9f2f6f4cac5539--e172c7361f1b4c23b984a731c378ea30
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_9045432f7fbd496aae96bbadb22005d5
cluster_92f9518ca7a14dd89319b269b6e3561f
fc07fe27aea9449abc79d49c4f651d5f
0
417595149600401ba76ca2cc449ca80b
RX(theta₀)
fc07fe27aea9449abc79d49c4f651d5f--417595149600401ba76ca2cc449ca80b
50cb6def98844f6f9f888937a1a58f8f
1
331df59734044198a469129bc45378fd
RY(theta₆)
417595149600401ba76ca2cc449ca80b--331df59734044198a469129bc45378fd
83c5f2e3d2844d418fa451b4a89fc37d
RX(theta₁₂)
331df59734044198a469129bc45378fd--83c5f2e3d2844d418fa451b4a89fc37d
7049a15b1f7f4905b4123e421cd42cc1
83c5f2e3d2844d418fa451b4a89fc37d--7049a15b1f7f4905b4123e421cd42cc1
037e15d29e184522bc137d7553202f3e
RX(theta₁₈)
7049a15b1f7f4905b4123e421cd42cc1--037e15d29e184522bc137d7553202f3e
c29991ae6eb242689c82be99fe105dd4
RY(theta₂₄)
037e15d29e184522bc137d7553202f3e--c29991ae6eb242689c82be99fe105dd4
73734442ea074e05b9e0991684f147b2
RX(theta₃₀)
c29991ae6eb242689c82be99fe105dd4--73734442ea074e05b9e0991684f147b2
ab5a490a05aa489a840ceab82b186e22
73734442ea074e05b9e0991684f147b2--ab5a490a05aa489a840ceab82b186e22
66199b793406413092aeef9c654a7b42
ab5a490a05aa489a840ceab82b186e22--66199b793406413092aeef9c654a7b42
b508a5569c974c6c8e1309136a413f09
6b82b6f7b65040db935e6d18269a6e1e
RX(theta₁)
50cb6def98844f6f9f888937a1a58f8f--6b82b6f7b65040db935e6d18269a6e1e
e5807421e4c1492fa3319517b28df458
2
b5de72eb6ddc4d1d807a1549f81b3b47
RY(theta₇)
6b82b6f7b65040db935e6d18269a6e1e--b5de72eb6ddc4d1d807a1549f81b3b47
9e1dc3febea74944b30a19857aadfef8
RX(theta₁₃)
b5de72eb6ddc4d1d807a1549f81b3b47--9e1dc3febea74944b30a19857aadfef8
bcd130df31df4f52a6ec82a0f33493db
9e1dc3febea74944b30a19857aadfef8--bcd130df31df4f52a6ec82a0f33493db
2d9fb61ebb184318ab1760138ae29fef
RX(theta₁₉)
bcd130df31df4f52a6ec82a0f33493db--2d9fb61ebb184318ab1760138ae29fef
cce5444874484970bd95c8866c638073
RY(theta₂₅)
2d9fb61ebb184318ab1760138ae29fef--cce5444874484970bd95c8866c638073
767e57dc03e04fef8cf987854f6da9bb
RX(theta₃₁)
cce5444874484970bd95c8866c638073--767e57dc03e04fef8cf987854f6da9bb
b45481b1bb30484796939c3ca03baa1f
767e57dc03e04fef8cf987854f6da9bb--b45481b1bb30484796939c3ca03baa1f
b45481b1bb30484796939c3ca03baa1f--b508a5569c974c6c8e1309136a413f09
8cc4531b0f3342f3b516bad3f37a756c
8a3f0391bfc84c0b8315906927fc9080
RX(theta₂)
e5807421e4c1492fa3319517b28df458--8a3f0391bfc84c0b8315906927fc9080
a8c0133cf3a14f6bb72958e89a506f78
3
176186e99123413bb3c16c9619884d1b
RY(theta₈)
8a3f0391bfc84c0b8315906927fc9080--176186e99123413bb3c16c9619884d1b
ca4b5d480662410f9fa611b5bc324cbc
RX(theta₁₄)
176186e99123413bb3c16c9619884d1b--ca4b5d480662410f9fa611b5bc324cbc
de5e3170f5a745009917fe38f616dc30
HamEvo
ca4b5d480662410f9fa611b5bc324cbc--de5e3170f5a745009917fe38f616dc30
ee00ebb0223540999306df75944c8dd7
RX(theta₂₀)
de5e3170f5a745009917fe38f616dc30--ee00ebb0223540999306df75944c8dd7
0ba782fa172b43089a198e4004119d67
RY(theta₂₆)
ee00ebb0223540999306df75944c8dd7--0ba782fa172b43089a198e4004119d67
14af967cbd5e4e8aaccfe87fab8a72c2
RX(theta₃₂)
0ba782fa172b43089a198e4004119d67--14af967cbd5e4e8aaccfe87fab8a72c2
4cb40e80076441aeb86637db62c94b4f
HamEvo
14af967cbd5e4e8aaccfe87fab8a72c2--4cb40e80076441aeb86637db62c94b4f
4cb40e80076441aeb86637db62c94b4f--8cc4531b0f3342f3b516bad3f37a756c
8583c4904cd843b9bb80255a0419c957
372d096a76a449be891c45226e99b43a
RX(theta₃)
a8c0133cf3a14f6bb72958e89a506f78--372d096a76a449be891c45226e99b43a
4f8dfcca971340fb95472d56b68bf0f0
4
dda09c42127244679ad1af74e84f8f2f
RY(theta₉)
372d096a76a449be891c45226e99b43a--dda09c42127244679ad1af74e84f8f2f
518e59490fe640aab13f2ceb9f2fd3ae
RX(theta₁₅)
dda09c42127244679ad1af74e84f8f2f--518e59490fe640aab13f2ceb9f2fd3ae
fd5424695f9940c895cb100b82db720c
t = theta_t₀
518e59490fe640aab13f2ceb9f2fd3ae--fd5424695f9940c895cb100b82db720c
60700d5aca194b278908e7129474e052
RX(theta₂₁)
fd5424695f9940c895cb100b82db720c--60700d5aca194b278908e7129474e052
7a9f8c8ee57547579fc494aec4033687
RY(theta₂₇)
60700d5aca194b278908e7129474e052--7a9f8c8ee57547579fc494aec4033687
15201fb226b147758a4673e09e3a9e5b
RX(theta₃₃)
7a9f8c8ee57547579fc494aec4033687--15201fb226b147758a4673e09e3a9e5b
0c37298d07b74853828759dc40bc51a9
t = theta_t₁
15201fb226b147758a4673e09e3a9e5b--0c37298d07b74853828759dc40bc51a9
0c37298d07b74853828759dc40bc51a9--8583c4904cd843b9bb80255a0419c957
81c0b40b559b478193855f2625eaa03e
827a67687bd54fd89212380299403681
RX(theta₄)
4f8dfcca971340fb95472d56b68bf0f0--827a67687bd54fd89212380299403681
88fd039b91ea4c8593ac5376e90b2140
5
b80b7eb8565d4fe78cbefcbb73893945
RY(theta₁₀)
827a67687bd54fd89212380299403681--b80b7eb8565d4fe78cbefcbb73893945
1e85068049f7467eade9465e63de804d
RX(theta₁₆)
b80b7eb8565d4fe78cbefcbb73893945--1e85068049f7467eade9465e63de804d
1080af083fe6442ab2591c66638bfa3e
1e85068049f7467eade9465e63de804d--1080af083fe6442ab2591c66638bfa3e
46ed8798d5db4fc2ab091d1ed80cf466
RX(theta₂₂)
1080af083fe6442ab2591c66638bfa3e--46ed8798d5db4fc2ab091d1ed80cf466
e98ff88004634208814ae15f075e0141
RY(theta₂₈)
46ed8798d5db4fc2ab091d1ed80cf466--e98ff88004634208814ae15f075e0141
ff40f058fa0f4ce285a64f31df2b9926
RX(theta₃₄)
e98ff88004634208814ae15f075e0141--ff40f058fa0f4ce285a64f31df2b9926
465d935de50246edb864b24f688c132b
ff40f058fa0f4ce285a64f31df2b9926--465d935de50246edb864b24f688c132b
465d935de50246edb864b24f688c132b--81c0b40b559b478193855f2625eaa03e
2fa14534a58d4d09a999bd4db47b1566
7a243d12b260411fafac30cf1c8c1daa
RX(theta₅)
88fd039b91ea4c8593ac5376e90b2140--7a243d12b260411fafac30cf1c8c1daa
86b6a55ce2804a25a0e4606e633dd62e
RY(theta₁₁)
7a243d12b260411fafac30cf1c8c1daa--86b6a55ce2804a25a0e4606e633dd62e
a846792748ef42e4b6bb4060314f6b19
RX(theta₁₇)
86b6a55ce2804a25a0e4606e633dd62e--a846792748ef42e4b6bb4060314f6b19
627c078c817e44a5bbb8b1c87353e0d9
a846792748ef42e4b6bb4060314f6b19--627c078c817e44a5bbb8b1c87353e0d9
d956c5f8fb2d454998130db5467908b8
RX(theta₂₃)
627c078c817e44a5bbb8b1c87353e0d9--d956c5f8fb2d454998130db5467908b8
ff1699e3eb2348daa6c25a4ac2f3ee24
RY(theta₂₉)
d956c5f8fb2d454998130db5467908b8--ff1699e3eb2348daa6c25a4ac2f3ee24
e7bda0df38754003a29eb3999aaec526
RX(theta₃₅)
ff1699e3eb2348daa6c25a4ac2f3ee24--e7bda0df38754003a29eb3999aaec526
0553eff44de1405bb1aaeabd76cd3eee
e7bda0df38754003a29eb3999aaec526--0553eff44de1405bb1aaeabd76cd3eee
0553eff44de1405bb1aaeabd76cd3eee--2fa14534a58d4d09a999bd4db47b1566
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_6fab4e7388054da791f42a31d8d8f8fa
BPMA-1
cluster_c5e489b712bd40c29247660b05252320
BPMA-0
8b843941489243ce9b4d8f91ef104c0b
0
ea921c1717b44befa174edb88c1ef48a
RX(iia_α₀₀)
8b843941489243ce9b4d8f91ef104c0b--ea921c1717b44befa174edb88c1ef48a
f1da66f4ab2d4e98be90f7070acdc463
1
9368223d12d940c8bb01db4697afa2b4
RY(iia_α₀₃)
ea921c1717b44befa174edb88c1ef48a--9368223d12d940c8bb01db4697afa2b4
b6844a2d68ea4c1b9553e19390037060
9368223d12d940c8bb01db4697afa2b4--b6844a2d68ea4c1b9553e19390037060
da71dca01fc04f5e8232402d0392b3f7
b6844a2d68ea4c1b9553e19390037060--da71dca01fc04f5e8232402d0392b3f7
e46c8127359d4c2aa692b95df928e761
RX(iia_γ₀₀)
da71dca01fc04f5e8232402d0392b3f7--e46c8127359d4c2aa692b95df928e761
f0edade55bb9431aa425fa750d87c2ca
e46c8127359d4c2aa692b95df928e761--f0edade55bb9431aa425fa750d87c2ca
bcc0f29b975547e7b0c3514dc38b4671
f0edade55bb9431aa425fa750d87c2ca--bcc0f29b975547e7b0c3514dc38b4671
083fa9c4a2284845a9d111af7c35648a
RY(iia_β₀₃)
bcc0f29b975547e7b0c3514dc38b4671--083fa9c4a2284845a9d111af7c35648a
c8d1b4ca4aac4f24bd83b446967de1f0
RX(iia_β₀₀)
083fa9c4a2284845a9d111af7c35648a--c8d1b4ca4aac4f24bd83b446967de1f0
473ee72ba3b94b759c62f93accbe6507
RX(iia_α₁₀)
c8d1b4ca4aac4f24bd83b446967de1f0--473ee72ba3b94b759c62f93accbe6507
15f7f356110a439c9d26ee99f4c9d9ed
RY(iia_α₁₃)
473ee72ba3b94b759c62f93accbe6507--15f7f356110a439c9d26ee99f4c9d9ed
28f78be5debe46d38517d4c538f942b5
15f7f356110a439c9d26ee99f4c9d9ed--28f78be5debe46d38517d4c538f942b5
ae6db42671564f4e81a8e72cd1380b4c
28f78be5debe46d38517d4c538f942b5--ae6db42671564f4e81a8e72cd1380b4c
9be876dbdff34ddfb065e8adf96b2db7
RX(iia_γ₁₀)
ae6db42671564f4e81a8e72cd1380b4c--9be876dbdff34ddfb065e8adf96b2db7
12e82e458c91416190d3464b7db5e753
9be876dbdff34ddfb065e8adf96b2db7--12e82e458c91416190d3464b7db5e753
4b5967f6549249f786162321ef1f283f
12e82e458c91416190d3464b7db5e753--4b5967f6549249f786162321ef1f283f
79f159b95800431591087427b519dc10
RY(iia_β₁₃)
4b5967f6549249f786162321ef1f283f--79f159b95800431591087427b519dc10
7c40e6adf8f34830814d1f7b711c5775
RX(iia_β₁₀)
79f159b95800431591087427b519dc10--7c40e6adf8f34830814d1f7b711c5775
0cd75d6037ca4662bcdad919cebe1353
7c40e6adf8f34830814d1f7b711c5775--0cd75d6037ca4662bcdad919cebe1353
2e22229e4f44433d92f839d329f81ac5
5df725438ba2454eb63a052f1fca80f1
RX(iia_α₀₁)
f1da66f4ab2d4e98be90f7070acdc463--5df725438ba2454eb63a052f1fca80f1
5db220a6bb3541bc93ae0e9dc9627c69
2
72c64aa1bf6c44b9a2e8c644a3d7279d
RY(iia_α₀₄)
5df725438ba2454eb63a052f1fca80f1--72c64aa1bf6c44b9a2e8c644a3d7279d
38c9a07e8a78462f98046ef5241bb9a1
X
72c64aa1bf6c44b9a2e8c644a3d7279d--38c9a07e8a78462f98046ef5241bb9a1
38c9a07e8a78462f98046ef5241bb9a1--b6844a2d68ea4c1b9553e19390037060
c4bc13b5dd754ba589b3e5f055d42154
38c9a07e8a78462f98046ef5241bb9a1--c4bc13b5dd754ba589b3e5f055d42154
7bb70c7cd7064aa1b60d9673d5dca206
RX(iia_γ₀₁)
c4bc13b5dd754ba589b3e5f055d42154--7bb70c7cd7064aa1b60d9673d5dca206
6a1ccf4c89544b6390269411423255e7
7bb70c7cd7064aa1b60d9673d5dca206--6a1ccf4c89544b6390269411423255e7
ab6c831b8ae3417cbdc7245a76656801
X
6a1ccf4c89544b6390269411423255e7--ab6c831b8ae3417cbdc7245a76656801
ab6c831b8ae3417cbdc7245a76656801--bcc0f29b975547e7b0c3514dc38b4671
d04735fc160c4a76934b94e2b820a1dc
RY(iia_β₀₄)
ab6c831b8ae3417cbdc7245a76656801--d04735fc160c4a76934b94e2b820a1dc
7c4332a27a67432288057cb05c139390
RX(iia_β₀₁)
d04735fc160c4a76934b94e2b820a1dc--7c4332a27a67432288057cb05c139390
83811e4ee8e14e24a3f24b858291854d
RX(iia_α₁₁)
7c4332a27a67432288057cb05c139390--83811e4ee8e14e24a3f24b858291854d
5e76f684019e40649037e7a7dc45b7a6
RY(iia_α₁₄)
83811e4ee8e14e24a3f24b858291854d--5e76f684019e40649037e7a7dc45b7a6
0ce22686830b460e8ad24e2e333154ca
X
5e76f684019e40649037e7a7dc45b7a6--0ce22686830b460e8ad24e2e333154ca
0ce22686830b460e8ad24e2e333154ca--28f78be5debe46d38517d4c538f942b5
219347dcfe72431a87b213255dd3986f
0ce22686830b460e8ad24e2e333154ca--219347dcfe72431a87b213255dd3986f
536d2ffce5d6489bbdec09f90b53efdc
RX(iia_γ₁₁)
219347dcfe72431a87b213255dd3986f--536d2ffce5d6489bbdec09f90b53efdc
da5e547d058944a9a883a9fa09822a13
536d2ffce5d6489bbdec09f90b53efdc--da5e547d058944a9a883a9fa09822a13
179b87e85f2a460aa053a77bee7a2556
X
da5e547d058944a9a883a9fa09822a13--179b87e85f2a460aa053a77bee7a2556
179b87e85f2a460aa053a77bee7a2556--4b5967f6549249f786162321ef1f283f
310364ba59e545b6843bd3c1fc2c522b
RY(iia_β₁₄)
179b87e85f2a460aa053a77bee7a2556--310364ba59e545b6843bd3c1fc2c522b
50144dab7b01475081e241ae8381f311
RX(iia_β₁₁)
310364ba59e545b6843bd3c1fc2c522b--50144dab7b01475081e241ae8381f311
50144dab7b01475081e241ae8381f311--2e22229e4f44433d92f839d329f81ac5
4a1c86d15f3e461dab499614d8da6f12
49bff5fd86264d5fae65319bba089faa
RX(iia_α₀₂)
5db220a6bb3541bc93ae0e9dc9627c69--49bff5fd86264d5fae65319bba089faa
c6d2d9d2635748e69fea642bab97f262
RY(iia_α₀₅)
49bff5fd86264d5fae65319bba089faa--c6d2d9d2635748e69fea642bab97f262
bd2f91d0199747ed8704b5c95b35d9d5
c6d2d9d2635748e69fea642bab97f262--bd2f91d0199747ed8704b5c95b35d9d5
36d3166e544b43deb2bdb2b52d18915b
X
bd2f91d0199747ed8704b5c95b35d9d5--36d3166e544b43deb2bdb2b52d18915b
36d3166e544b43deb2bdb2b52d18915b--c4bc13b5dd754ba589b3e5f055d42154
61cfa10236d045ed8d64497a375d35d9
RX(iia_γ₀₂)
36d3166e544b43deb2bdb2b52d18915b--61cfa10236d045ed8d64497a375d35d9
047a1f263b354f5db411b96d900401d1
X
61cfa10236d045ed8d64497a375d35d9--047a1f263b354f5db411b96d900401d1
047a1f263b354f5db411b96d900401d1--6a1ccf4c89544b6390269411423255e7
7c7e9ad8a8274fa0858a32d80cf2a57f
047a1f263b354f5db411b96d900401d1--7c7e9ad8a8274fa0858a32d80cf2a57f
8feea367c7c643269b9cb0d218206042
RY(iia_β₀₅)
7c7e9ad8a8274fa0858a32d80cf2a57f--8feea367c7c643269b9cb0d218206042
75e1055564f444409120c946cb00aa89
RX(iia_β₀₂)
8feea367c7c643269b9cb0d218206042--75e1055564f444409120c946cb00aa89
5b1fd17fb920495889d82353e3cea645
RX(iia_α₁₂)
75e1055564f444409120c946cb00aa89--5b1fd17fb920495889d82353e3cea645
bb834dccb8e5488db4a604526946729a
RY(iia_α₁₅)
5b1fd17fb920495889d82353e3cea645--bb834dccb8e5488db4a604526946729a
371b84027f7447b89e0040c8fe850470
bb834dccb8e5488db4a604526946729a--371b84027f7447b89e0040c8fe850470
7d26d85f746b4f9088fb277b2f42ddd7
X
371b84027f7447b89e0040c8fe850470--7d26d85f746b4f9088fb277b2f42ddd7
7d26d85f746b4f9088fb277b2f42ddd7--219347dcfe72431a87b213255dd3986f
ede682e41f1c4e0b87c8a189b52b03f1
RX(iia_γ₁₂)
7d26d85f746b4f9088fb277b2f42ddd7--ede682e41f1c4e0b87c8a189b52b03f1
2596511e4f064231ab765d1061e1c1e6
X
ede682e41f1c4e0b87c8a189b52b03f1--2596511e4f064231ab765d1061e1c1e6
2596511e4f064231ab765d1061e1c1e6--da5e547d058944a9a883a9fa09822a13
81baa15c0a6f4cd2bc3d19bc98c56b38
2596511e4f064231ab765d1061e1c1e6--81baa15c0a6f4cd2bc3d19bc98c56b38
56afa3ef1d7940e4b7a6af4571bb4df8
RY(iia_β₁₅)
81baa15c0a6f4cd2bc3d19bc98c56b38--56afa3ef1d7940e4b7a6af4571bb4df8
7fd5f15a58a34e82ad2d7562ee3184e3
RX(iia_β₁₂)
56afa3ef1d7940e4b7a6af4571bb4df8--7fd5f15a58a34e82ad2d7562ee3184e3
7fd5f15a58a34e82ad2d7562ee3184e3--4a1c86d15f3e461dab499614d8da6f12