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_40052a95004b46309c7243abd4cbaf8a
Constant Chebyshev FM
cluster_5c1d4acc47df4b539911bba16c264714
Constant Fourier FM
6e071bd6d4b841c7b1c67c199666540e
0
d9f6dad08f814e1691970ef8e1861a3a
RX(phi)
6e071bd6d4b841c7b1c67c199666540e--d9f6dad08f814e1691970ef8e1861a3a
5144a63eaaab4165a6c4b95755bd305f
1
6143732584b14a9e95ce62f7ca0f2f5f
RX(acos(phi))
d9f6dad08f814e1691970ef8e1861a3a--6143732584b14a9e95ce62f7ca0f2f5f
fc388284e0264213b00d57abff674f65
6143732584b14a9e95ce62f7ca0f2f5f--fc388284e0264213b00d57abff674f65
49b3f583cb7f46fb8d74937abe832d98
2af55981251e41f29b4c606e81dde2e9
RX(phi)
5144a63eaaab4165a6c4b95755bd305f--2af55981251e41f29b4c606e81dde2e9
21f5ef5cdbae41a5a2a4d51a647db105
2
85e65dae0d954d249cf4f03c33f07abe
RX(acos(phi))
2af55981251e41f29b4c606e81dde2e9--85e65dae0d954d249cf4f03c33f07abe
85e65dae0d954d249cf4f03c33f07abe--49b3f583cb7f46fb8d74937abe832d98
8845a56fecf648ab91b5e7ddd726a6bf
cd1882bb63144d988b6ce22a3055c787
RX(phi)
21f5ef5cdbae41a5a2a4d51a647db105--cd1882bb63144d988b6ce22a3055c787
5b3ea98015674340915e6672091cacd5
RX(acos(phi))
cd1882bb63144d988b6ce22a3055c787--5b3ea98015674340915e6672091cacd5
5b3ea98015674340915e6672091cacd5--8845a56fecf648ab91b5e7ddd726a6bf
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_04efb5e852b1420abfb0087e27ccfbf5
Constant <function custom_fn at 0x7f26e01da170> FM
cluster_b937d639eca24b24ad8eba2652d84a92
Constant asin FM
dea0c7e666ed40c6b2cecddb2978b5b5
0
a70e14ad2283420ea8cd0baf831d0dff
RX(asin(phi))
dea0c7e666ed40c6b2cecddb2978b5b5--a70e14ad2283420ea8cd0baf831d0dff
8d55a4b6cb4340c2aa1dc58f1e151124
1
a890bb96f6f84cffb4fcdfdb80ac404d
RX(phi**2 + asin(phi))
a70e14ad2283420ea8cd0baf831d0dff--a890bb96f6f84cffb4fcdfdb80ac404d
766c73a4980241b7a82cbba71287079a
a890bb96f6f84cffb4fcdfdb80ac404d--766c73a4980241b7a82cbba71287079a
38d58803a85f495cb8a7dd65a639353b
079e113d75bc42009df9b31b67754c3a
RX(asin(phi))
8d55a4b6cb4340c2aa1dc58f1e151124--079e113d75bc42009df9b31b67754c3a
aadf4aa930bc4a1d99853490c1fc683f
2
45891d28ff5349169d628ffc90c6b2e4
RX(phi**2 + asin(phi))
079e113d75bc42009df9b31b67754c3a--45891d28ff5349169d628ffc90c6b2e4
45891d28ff5349169d628ffc90c6b2e4--38d58803a85f495cb8a7dd65a639353b
5cf443b6ac9d4ad09642c5255ae45077
a5afcfbd4c8d43f3a1218a5917ae1062
RX(asin(phi))
aadf4aa930bc4a1d99853490c1fc683f--a5afcfbd4c8d43f3a1218a5917ae1062
7df0d5f2905e4629a9ba652ab429022a
RX(phi**2 + asin(phi))
a5afcfbd4c8d43f3a1218a5917ae1062--7df0d5f2905e4629a9ba652ab429022a
7df0d5f2905e4629a9ba652ab429022a--5cf443b6ac9d4ad09642c5255ae45077
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_185dc033bdb949f0a5e9e04275bc5f2e
Exponential Fourier FM
cluster_6b57439134aa4f2ea85d829f88dc7ac9
Constant Fourier FM
cluster_31b4796881c64a5e8e3fc3a0617373d4
Tower Fourier FM
e00dae57e539432c88911b69920ea0f3
0
ad352e725a9d4cc3877f132b46374edc
RX(phi)
e00dae57e539432c88911b69920ea0f3--ad352e725a9d4cc3877f132b46374edc
639def433a024ebca2b6bd1889ffad67
1
a9accd3b77a34913a5a997c80a38bc4e
RX(1.0*phi)
ad352e725a9d4cc3877f132b46374edc--a9accd3b77a34913a5a997c80a38bc4e
149c32518420426495787bd6d351dc3b
RX(1.0*phi)
a9accd3b77a34913a5a997c80a38bc4e--149c32518420426495787bd6d351dc3b
1164728673d348cda606ca9f87dfcb0b
149c32518420426495787bd6d351dc3b--1164728673d348cda606ca9f87dfcb0b
c3dbf34467984844ad1c66b452d5ecf2
155e4e3c78a84edcbf25d5cf162be6c3
RX(phi)
639def433a024ebca2b6bd1889ffad67--155e4e3c78a84edcbf25d5cf162be6c3
6bbee8acf3d3473381b3fffff0668b4f
2
45decfca65664f749049746dc91b9fb2
RX(2.0*phi)
155e4e3c78a84edcbf25d5cf162be6c3--45decfca65664f749049746dc91b9fb2
806e56f4e44e420c9cad81b2c37b9a8d
RX(2.0*phi)
45decfca65664f749049746dc91b9fb2--806e56f4e44e420c9cad81b2c37b9a8d
806e56f4e44e420c9cad81b2c37b9a8d--c3dbf34467984844ad1c66b452d5ecf2
0f62d3d098094a93a979a0a3c9c9c6f1
181eba4410104ff793018793803b7735
RX(phi)
6bbee8acf3d3473381b3fffff0668b4f--181eba4410104ff793018793803b7735
131544e4b519415fb3d645c4bc3927f8
3
bf2d6a603d0a46a6a496358053ea7be7
RX(3.0*phi)
181eba4410104ff793018793803b7735--bf2d6a603d0a46a6a496358053ea7be7
92d4edb4ba9b46b0a8c92d5ee6674ac9
RX(4.0*phi)
bf2d6a603d0a46a6a496358053ea7be7--92d4edb4ba9b46b0a8c92d5ee6674ac9
92d4edb4ba9b46b0a8c92d5ee6674ac9--0f62d3d098094a93a979a0a3c9c9c6f1
2c66074e2ed24d928d396bbd72aeeaeb
bd7f76dff38045ae87f6f7f7ee7d3bae
RX(phi)
131544e4b519415fb3d645c4bc3927f8--bd7f76dff38045ae87f6f7f7ee7d3bae
576febb53a2047438077106fba730bcc
4
3ab22e2a7c0745fab2d04d1ab75bddf0
RX(4.0*phi)
bd7f76dff38045ae87f6f7f7ee7d3bae--3ab22e2a7c0745fab2d04d1ab75bddf0
33a22e894a6341309f42036ebfd8a4d4
RX(8.0*phi)
3ab22e2a7c0745fab2d04d1ab75bddf0--33a22e894a6341309f42036ebfd8a4d4
33a22e894a6341309f42036ebfd8a4d4--2c66074e2ed24d928d396bbd72aeeaeb
f68f9dec5c16442881200d0fdd136fe7
77b48ee4bf9c436da426611e92dae2fb
RX(phi)
576febb53a2047438077106fba730bcc--77b48ee4bf9c436da426611e92dae2fb
ea363c31bc214ab39c96f87b8736a187
RX(5.0*phi)
77b48ee4bf9c436da426611e92dae2fb--ea363c31bc214ab39c96f87b8736a187
41447d46dbbe45748553382c013f6bd5
RX(16.0*phi)
ea363c31bc214ab39c96f87b8736a187--41447d46dbbe45748553382c013f6bd5
41447d46dbbe45748553382c013f6bd5--f68f9dec5c16442881200d0fdd136fe7
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
ec70e0a7e6ca47e6b499a7fbf085ea98
0
2b785049faf8476688bb9cfaeb347555
RX(1.0*acos(phi))
ec70e0a7e6ca47e6b499a7fbf085ea98--2b785049faf8476688bb9cfaeb347555
08a8df013bf847639812897626363887
1
a424c4821e30473281cf3b2158fc4873
2b785049faf8476688bb9cfaeb347555--a424c4821e30473281cf3b2158fc4873
fa7955ccd91941dca4369cadd1972432
2e836fb2ecdf48fb973bde7dcc74e7be
RX(1.414*acos(phi))
08a8df013bf847639812897626363887--2e836fb2ecdf48fb973bde7dcc74e7be
3d19fa4f7cf5408d9076da00d4dc1f9f
2
2e836fb2ecdf48fb973bde7dcc74e7be--fa7955ccd91941dca4369cadd1972432
bc81b88eb0214413ba79e103241214b1
f75882a194744b65a5bf6d0bdff93f1f
RX(1.732*acos(phi))
3d19fa4f7cf5408d9076da00d4dc1f9f--f75882a194744b65a5bf6d0bdff93f1f
36c7103ac9244744bd9287b5e1f97071
3
f75882a194744b65a5bf6d0bdff93f1f--bc81b88eb0214413ba79e103241214b1
f9990cbb328940b5832dd59a6a2ddf7d
ca211d97ea0d42469b760d204fae2b12
RX(2.0*acos(phi))
36c7103ac9244744bd9287b5e1f97071--ca211d97ea0d42469b760d204fae2b12
55e6509a4fd5421a95ad01d85de18cd4
4
ca211d97ea0d42469b760d204fae2b12--f9990cbb328940b5832dd59a6a2ddf7d
14e46d381206456f9fd62c16daa631cd
2bb9bf6e711445deb5d76638840a66f0
RX(2.236*acos(phi))
55e6509a4fd5421a95ad01d85de18cd4--2bb9bf6e711445deb5d76638840a66f0
2bb9bf6e711445deb5d76638840a66f0--14e46d381206456f9fd62c16daa631cd
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
f62a3fb3fbaa4f8cb2999dc3b693ccdc
0
ebcabba6dcd342b1933981b1a1fd4468
RX(1.0*phi*w₀)
f62a3fb3fbaa4f8cb2999dc3b693ccdc--ebcabba6dcd342b1933981b1a1fd4468
86043db75c7644a9be424156de71c3ab
1
6a46179b402e4a74813be0306b098430
ebcabba6dcd342b1933981b1a1fd4468--6a46179b402e4a74813be0306b098430
eb5e1617df224689a1cb9507ed3ae6be
45a83ed1458a40feaa29090a8693d0da
RX(2.0*phi*w₁)
86043db75c7644a9be424156de71c3ab--45a83ed1458a40feaa29090a8693d0da
e85518255127490b9222d4aecc2abfea
2
45a83ed1458a40feaa29090a8693d0da--eb5e1617df224689a1cb9507ed3ae6be
d5c91538d24f421b80baba9f5af6e6c9
30a805176c3c4bc6ab492e05c714ac3f
RX(4.0*phi*w₂)
e85518255127490b9222d4aecc2abfea--30a805176c3c4bc6ab492e05c714ac3f
a6d63f442ced44768e81b3e0cb72f5b8
3
30a805176c3c4bc6ab492e05c714ac3f--d5c91538d24f421b80baba9f5af6e6c9
f34e64b36c1244a88366029c21f81277
054c600746bf4a7a85da4524d4802872
RX(8.0*phi*w₃)
a6d63f442ced44768e81b3e0cb72f5b8--054c600746bf4a7a85da4524d4802872
e51c6a9c7c1443d986adec42b283fc09
4
054c600746bf4a7a85da4524d4802872--f34e64b36c1244a88366029c21f81277
cfc1a754b06c4174b062f52391639a09
abc49f2806ad436cb9c0e95b28c2d085
RX(16.0*phi*w₄)
e51c6a9c7c1443d986adec42b283fc09--abc49f2806ad436cb9c0e95b28c2d085
abc49f2806ad436cb9c0e95b28c2d085--cfc1a754b06c4174b062f52391639a09
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
0d8aa614dc2448e7a6165fd16e2e9d26
0
34bd3d861ca343a09e19e790c3b74236
RY(80.0*acos(w₄*(0.667*x + 1.667)))
0d8aa614dc2448e7a6165fd16e2e9d26--34bd3d861ca343a09e19e790c3b74236
c7db9cfa2b2944c0b3601fcf57d39e21
1
729976ed1f3e4b5bbade03effc509cfb
34bd3d861ca343a09e19e790c3b74236--729976ed1f3e4b5bbade03effc509cfb
352874f091454887b913a46a7dd720ea
3c39d0f063ea4b84b4059840ee738c20
RY(40.0*acos(w₃*(0.667*x + 1.667)))
c7db9cfa2b2944c0b3601fcf57d39e21--3c39d0f063ea4b84b4059840ee738c20
0b0d7a4d91404e0aaff2d7943084d0a2
2
3c39d0f063ea4b84b4059840ee738c20--352874f091454887b913a46a7dd720ea
760206a338d4468493f70199ee183bc2
099465450da4491185ef4a48e06fd3c3
RY(20.0*acos(w₂*(0.667*x + 1.667)))
0b0d7a4d91404e0aaff2d7943084d0a2--099465450da4491185ef4a48e06fd3c3
5321165e14a5412fbb34ac3c67916ad1
3
099465450da4491185ef4a48e06fd3c3--760206a338d4468493f70199ee183bc2
4d01cd264cba4f8dbb39fa4ec441f702
7b26efd70e2243d1955aff8e86486604
RY(10.0*acos(w₁*(0.667*x + 1.667)))
5321165e14a5412fbb34ac3c67916ad1--7b26efd70e2243d1955aff8e86486604
286686bec96f45689b6a5ae39c2a23c7
4
7b26efd70e2243d1955aff8e86486604--4d01cd264cba4f8dbb39fa4ec441f702
30d6cfdd820c4a17aa607915471a401e
ad0dd17124854beea2600499bf406c18
RY(5.0*acos(w₀*(0.667*x + 1.667)))
286686bec96f45689b6a5ae39c2a23c7--ad0dd17124854beea2600499bf406c18
ad0dd17124854beea2600499bf406c18--30d6cfdd820c4a17aa607915471a401e
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
498693a8f9cd4e14b9ca8c5ba42c0b5b
0
cdd4a95e4a01455d948eabc6ed9cea63
RX(theta₀)
498693a8f9cd4e14b9ca8c5ba42c0b5b--cdd4a95e4a01455d948eabc6ed9cea63
6f055dd3969c4597add066bc552bdee4
1
ce75071afea4466aae8a1e8ef1d15f3b
RY(theta₃)
cdd4a95e4a01455d948eabc6ed9cea63--ce75071afea4466aae8a1e8ef1d15f3b
317483427825425ab3cf72087519504d
RX(theta₆)
ce75071afea4466aae8a1e8ef1d15f3b--317483427825425ab3cf72087519504d
2a4ed64cb5bc4b42a5e4953d7dc34524
317483427825425ab3cf72087519504d--2a4ed64cb5bc4b42a5e4953d7dc34524
cda02d6ea25f48c283d4c7e0a18a4fbe
2a4ed64cb5bc4b42a5e4953d7dc34524--cda02d6ea25f48c283d4c7e0a18a4fbe
9e3f6ce5f0ed4c0eb4fcab874bb67836
RX(theta₉)
cda02d6ea25f48c283d4c7e0a18a4fbe--9e3f6ce5f0ed4c0eb4fcab874bb67836
fd3cc52dbfac4674b4641a96862dcb8b
RY(theta₁₂)
9e3f6ce5f0ed4c0eb4fcab874bb67836--fd3cc52dbfac4674b4641a96862dcb8b
a404be3b1a9746d89441fe405fd087fe
RX(theta₁₅)
fd3cc52dbfac4674b4641a96862dcb8b--a404be3b1a9746d89441fe405fd087fe
f4619a7fa2594a4a828c351375c31150
a404be3b1a9746d89441fe405fd087fe--f4619a7fa2594a4a828c351375c31150
96dd04ac0ba543d5ac49a7977495b2f0
f4619a7fa2594a4a828c351375c31150--96dd04ac0ba543d5ac49a7977495b2f0
69d8dd94f0d84f15b67cb9acd9528310
96dd04ac0ba543d5ac49a7977495b2f0--69d8dd94f0d84f15b67cb9acd9528310
8799f00ab2624570a8ce139edb73108a
dd6d7334dea543eea75bf7b945e99891
RX(theta₁)
6f055dd3969c4597add066bc552bdee4--dd6d7334dea543eea75bf7b945e99891
1e7a7e83e7ca426c937a3dd8a9bc03ea
2
22e065acd6db49889b8da8ba59fa660b
RY(theta₄)
dd6d7334dea543eea75bf7b945e99891--22e065acd6db49889b8da8ba59fa660b
0710bd5c93f94e07ba68b60a418492c9
RX(theta₇)
22e065acd6db49889b8da8ba59fa660b--0710bd5c93f94e07ba68b60a418492c9
9153b623dc5b449bba578cac946a6c1a
X
0710bd5c93f94e07ba68b60a418492c9--9153b623dc5b449bba578cac946a6c1a
9153b623dc5b449bba578cac946a6c1a--2a4ed64cb5bc4b42a5e4953d7dc34524
b12af4501871403a85a515e12b9456e2
9153b623dc5b449bba578cac946a6c1a--b12af4501871403a85a515e12b9456e2
7f85f6a6504c45298f4dd024469f48d4
RX(theta₁₀)
b12af4501871403a85a515e12b9456e2--7f85f6a6504c45298f4dd024469f48d4
3dda4818ce46472ca6cef0a7422706c2
RY(theta₁₃)
7f85f6a6504c45298f4dd024469f48d4--3dda4818ce46472ca6cef0a7422706c2
1ace17d42fb54da684d060793c3be596
RX(theta₁₆)
3dda4818ce46472ca6cef0a7422706c2--1ace17d42fb54da684d060793c3be596
b7ef0b60ca684831bbec5a202cc38953
X
1ace17d42fb54da684d060793c3be596--b7ef0b60ca684831bbec5a202cc38953
b7ef0b60ca684831bbec5a202cc38953--f4619a7fa2594a4a828c351375c31150
5cd1bb5f62e340b29820be858dc956e9
b7ef0b60ca684831bbec5a202cc38953--5cd1bb5f62e340b29820be858dc956e9
5cd1bb5f62e340b29820be858dc956e9--8799f00ab2624570a8ce139edb73108a
2c7dfd070c2948e28e040bc39767c731
830c36ade9314288a5defb8ce1e4ca38
RX(theta₂)
1e7a7e83e7ca426c937a3dd8a9bc03ea--830c36ade9314288a5defb8ce1e4ca38
fdd4fd76992a4dc28145f1e17b164b92
RY(theta₅)
830c36ade9314288a5defb8ce1e4ca38--fdd4fd76992a4dc28145f1e17b164b92
72524ff1509d4ee2bbb7b8b00d5c103c
RX(theta₈)
fdd4fd76992a4dc28145f1e17b164b92--72524ff1509d4ee2bbb7b8b00d5c103c
331fa55d192c45009aa9c17cf0f23909
72524ff1509d4ee2bbb7b8b00d5c103c--331fa55d192c45009aa9c17cf0f23909
1761fa0aaca240b7a4feb9e610606b8c
X
331fa55d192c45009aa9c17cf0f23909--1761fa0aaca240b7a4feb9e610606b8c
1761fa0aaca240b7a4feb9e610606b8c--b12af4501871403a85a515e12b9456e2
eefd0cefac06423d9b9dce7551f55815
RX(theta₁₁)
1761fa0aaca240b7a4feb9e610606b8c--eefd0cefac06423d9b9dce7551f55815
2ddba2ea6fa7465ab4a4be8a6d3d7553
RY(theta₁₄)
eefd0cefac06423d9b9dce7551f55815--2ddba2ea6fa7465ab4a4be8a6d3d7553
ac18637905d745368064b1e984ac7fcf
RX(theta₁₇)
2ddba2ea6fa7465ab4a4be8a6d3d7553--ac18637905d745368064b1e984ac7fcf
6d8e732a1862478bb52936a7deb3ca87
ac18637905d745368064b1e984ac7fcf--6d8e732a1862478bb52936a7deb3ca87
e0cdcb11fa414b01833b3ebbf28b5beb
X
6d8e732a1862478bb52936a7deb3ca87--e0cdcb11fa414b01833b3ebbf28b5beb
e0cdcb11fa414b01833b3ebbf28b5beb--5cd1bb5f62e340b29820be858dc956e9
e0cdcb11fa414b01833b3ebbf28b5beb--2c7dfd070c2948e28e040bc39767c731
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
c12beb8443e8484b9ce8afe2a7230af6
0
00e4f3706c314dd59e5f6cbce6e6518e
RX(phi₀)
c12beb8443e8484b9ce8afe2a7230af6--00e4f3706c314dd59e5f6cbce6e6518e
a6d37523c55243a595ed5b98616f2d63
1
a432941dd35b4af0be0a62cddcd29da7
RY(phi₃)
00e4f3706c314dd59e5f6cbce6e6518e--a432941dd35b4af0be0a62cddcd29da7
d40040162aed486082e0f18c58ff7b24
RX(phi₆)
a432941dd35b4af0be0a62cddcd29da7--d40040162aed486082e0f18c58ff7b24
abadb32a872646868247118d779e7f12
d40040162aed486082e0f18c58ff7b24--abadb32a872646868247118d779e7f12
af510f3959974ba1a3ce709d3e177cfb
abadb32a872646868247118d779e7f12--af510f3959974ba1a3ce709d3e177cfb
d8a208d1072c4a27ba3665749884cf31
RX(phi₉)
af510f3959974ba1a3ce709d3e177cfb--d8a208d1072c4a27ba3665749884cf31
af765e7cad8f40a387acfec5afb658d7
RY(phi₁₂)
d8a208d1072c4a27ba3665749884cf31--af765e7cad8f40a387acfec5afb658d7
28dc86259af347e8ada87cf060386736
RX(phi₁₅)
af765e7cad8f40a387acfec5afb658d7--28dc86259af347e8ada87cf060386736
fc5e866f56114f91bf3c1e7fa1643578
28dc86259af347e8ada87cf060386736--fc5e866f56114f91bf3c1e7fa1643578
1ce51a3adf364a808bb76d8a42e85170
fc5e866f56114f91bf3c1e7fa1643578--1ce51a3adf364a808bb76d8a42e85170
5cd127cfae0448589ed9b70670d3d3ce
1ce51a3adf364a808bb76d8a42e85170--5cd127cfae0448589ed9b70670d3d3ce
919a57cb9b724c4fbbfbdfda249da788
3afc87ca22964a5e95d7d84a60e89a34
RX(phi₁)
a6d37523c55243a595ed5b98616f2d63--3afc87ca22964a5e95d7d84a60e89a34
1a74c864ad704cc9b8f74a1c9fe87293
2
2a9aa17b89b0432c9308fd76c667e9bd
RY(phi₄)
3afc87ca22964a5e95d7d84a60e89a34--2a9aa17b89b0432c9308fd76c667e9bd
6a6c0376fa7649a0aeeb02b16c1a4c43
RX(phi₇)
2a9aa17b89b0432c9308fd76c667e9bd--6a6c0376fa7649a0aeeb02b16c1a4c43
c8ef9c5979ee4e8f92855721726791bc
PHASE(phi_ent₀)
6a6c0376fa7649a0aeeb02b16c1a4c43--c8ef9c5979ee4e8f92855721726791bc
c8ef9c5979ee4e8f92855721726791bc--abadb32a872646868247118d779e7f12
761f9932ee664c88b8079062d628f416
c8ef9c5979ee4e8f92855721726791bc--761f9932ee664c88b8079062d628f416
d311b30d3ac0477d9b587ca4e09e46e3
RX(phi₁₀)
761f9932ee664c88b8079062d628f416--d311b30d3ac0477d9b587ca4e09e46e3
9df74d550056470c989bd92a0a04a7be
RY(phi₁₃)
d311b30d3ac0477d9b587ca4e09e46e3--9df74d550056470c989bd92a0a04a7be
a05a8c28aedc4d02bf145c0c089d8411
RX(phi₁₆)
9df74d550056470c989bd92a0a04a7be--a05a8c28aedc4d02bf145c0c089d8411
a0e8fba1f6e24775b7ad9b43ca09e954
PHASE(phi_ent₂)
a05a8c28aedc4d02bf145c0c089d8411--a0e8fba1f6e24775b7ad9b43ca09e954
a0e8fba1f6e24775b7ad9b43ca09e954--fc5e866f56114f91bf3c1e7fa1643578
f7c604600bd047fb8913a4fa1fb4b1ef
a0e8fba1f6e24775b7ad9b43ca09e954--f7c604600bd047fb8913a4fa1fb4b1ef
f7c604600bd047fb8913a4fa1fb4b1ef--919a57cb9b724c4fbbfbdfda249da788
0095f4bc2a06436a8d49ce56e8656c3e
deab147f6b684728acfa62a1b0831454
RX(phi₂)
1a74c864ad704cc9b8f74a1c9fe87293--deab147f6b684728acfa62a1b0831454
356aa1fac56a4475b37af8973db298d5
RY(phi₅)
deab147f6b684728acfa62a1b0831454--356aa1fac56a4475b37af8973db298d5
fbd87ae0ae724796918fceceab2cf100
RX(phi₈)
356aa1fac56a4475b37af8973db298d5--fbd87ae0ae724796918fceceab2cf100
26c9301ec9254ddba8511974f1232770
fbd87ae0ae724796918fceceab2cf100--26c9301ec9254ddba8511974f1232770
322c5e6cde1a4f2eae97d535e6f55da3
PHASE(phi_ent₁)
26c9301ec9254ddba8511974f1232770--322c5e6cde1a4f2eae97d535e6f55da3
322c5e6cde1a4f2eae97d535e6f55da3--761f9932ee664c88b8079062d628f416
df29ed76ae81444595eeac2bb23081bc
RX(phi₁₁)
322c5e6cde1a4f2eae97d535e6f55da3--df29ed76ae81444595eeac2bb23081bc
9934952a851545a9ab1c5c346a215ad2
RY(phi₁₄)
df29ed76ae81444595eeac2bb23081bc--9934952a851545a9ab1c5c346a215ad2
6ea00bf357644cba826ff2ef525063af
RX(phi₁₇)
9934952a851545a9ab1c5c346a215ad2--6ea00bf357644cba826ff2ef525063af
b5faac5e240b4bd9adb27295a9a1427c
6ea00bf357644cba826ff2ef525063af--b5faac5e240b4bd9adb27295a9a1427c
688b39209a0e430c9decbb049f5a5f16
PHASE(phi_ent₃)
b5faac5e240b4bd9adb27295a9a1427c--688b39209a0e430c9decbb049f5a5f16
688b39209a0e430c9decbb049f5a5f16--f7c604600bd047fb8913a4fa1fb4b1ef
688b39209a0e430c9decbb049f5a5f16--0095f4bc2a06436a8d49ce56e8656c3e
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_57d266ae1a18456dbe7abc1bc36e5acc
cluster_c0ae3ef342df402180f1315b52381a26
09164bb99df742ffaf8210d489b56180
0
1cb86c5193a447c8bc6704d43a5ab1c2
RX(theta₀)
09164bb99df742ffaf8210d489b56180--1cb86c5193a447c8bc6704d43a5ab1c2
6f483b32cf294e4eb36b996a293df155
1
82fbb16d347045f9a1d50791b9184f03
RY(theta₃)
1cb86c5193a447c8bc6704d43a5ab1c2--82fbb16d347045f9a1d50791b9184f03
1d3dc35b6550475996d9d36f32e4977b
RX(theta₆)
82fbb16d347045f9a1d50791b9184f03--1d3dc35b6550475996d9d36f32e4977b
ec29cfe3bced41b68402e653b4097b05
HamEvo
1d3dc35b6550475996d9d36f32e4977b--ec29cfe3bced41b68402e653b4097b05
fc3aa6685ab34ca3a2a8bdfe01b5945c
RX(theta₉)
ec29cfe3bced41b68402e653b4097b05--fc3aa6685ab34ca3a2a8bdfe01b5945c
d501080642524617b4759ee30a316353
RY(theta₁₂)
fc3aa6685ab34ca3a2a8bdfe01b5945c--d501080642524617b4759ee30a316353
864e8d7653d14420bfbc94da7baef8a7
RX(theta₁₅)
d501080642524617b4759ee30a316353--864e8d7653d14420bfbc94da7baef8a7
4acc01849bfe404998e0fb8f16095254
HamEvo
864e8d7653d14420bfbc94da7baef8a7--4acc01849bfe404998e0fb8f16095254
41d5898dc4de4620a054f9fef8a10a9d
4acc01849bfe404998e0fb8f16095254--41d5898dc4de4620a054f9fef8a10a9d
7b8d6fba01bf45fdb94d7f2240b71618
b76be5ba08ff4a60b8eb3afa897f9f97
RX(theta₁)
6f483b32cf294e4eb36b996a293df155--b76be5ba08ff4a60b8eb3afa897f9f97
3159218fe970442f8b5d5bfffa94ae67
2
bad11f910d294498ad3af7adcf902c70
RY(theta₄)
b76be5ba08ff4a60b8eb3afa897f9f97--bad11f910d294498ad3af7adcf902c70
ae483317dd2b464b852a12ef3782ef2d
RX(theta₇)
bad11f910d294498ad3af7adcf902c70--ae483317dd2b464b852a12ef3782ef2d
ef6803925d304bcd99c54cb4a4f57b34
t = theta_t₀
ae483317dd2b464b852a12ef3782ef2d--ef6803925d304bcd99c54cb4a4f57b34
0bbb56ce16ec4230adfa2f32b395be7b
RX(theta₁₀)
ef6803925d304bcd99c54cb4a4f57b34--0bbb56ce16ec4230adfa2f32b395be7b
3529cea6016b459caac9cbbd53dabee3
RY(theta₁₃)
0bbb56ce16ec4230adfa2f32b395be7b--3529cea6016b459caac9cbbd53dabee3
f27f6722ec494ae1898887d3103d59da
RX(theta₁₆)
3529cea6016b459caac9cbbd53dabee3--f27f6722ec494ae1898887d3103d59da
87e52963a6fd43f7bdc558f6f37c6e65
t = theta_t₁
f27f6722ec494ae1898887d3103d59da--87e52963a6fd43f7bdc558f6f37c6e65
87e52963a6fd43f7bdc558f6f37c6e65--7b8d6fba01bf45fdb94d7f2240b71618
81a20fe2b53a482bbd79139a0964fbc4
2f7dbfd8af6640db944abb5db39dfa85
RX(theta₂)
3159218fe970442f8b5d5bfffa94ae67--2f7dbfd8af6640db944abb5db39dfa85
a00cf79f430a4918878377c1b23c761c
RY(theta₅)
2f7dbfd8af6640db944abb5db39dfa85--a00cf79f430a4918878377c1b23c761c
b717e51a4cbd409fbdee525c313194e8
RX(theta₈)
a00cf79f430a4918878377c1b23c761c--b717e51a4cbd409fbdee525c313194e8
3f1323500a814b83a35e4172078de50f
b717e51a4cbd409fbdee525c313194e8--3f1323500a814b83a35e4172078de50f
c2512fa9cc334fa9b9ca37c05d96ba6f
RX(theta₁₁)
3f1323500a814b83a35e4172078de50f--c2512fa9cc334fa9b9ca37c05d96ba6f
39aacf687e2942fdb15437364198b698
RY(theta₁₄)
c2512fa9cc334fa9b9ca37c05d96ba6f--39aacf687e2942fdb15437364198b698
304882c1acb64d4fb17ee1f42d998c1d
RX(theta₁₇)
39aacf687e2942fdb15437364198b698--304882c1acb64d4fb17ee1f42d998c1d
6acea56f11f143fe914079c1faac38b7
304882c1acb64d4fb17ee1f42d998c1d--6acea56f11f143fe914079c1faac38b7
6acea56f11f143fe914079c1faac38b7--81a20fe2b53a482bbd79139a0964fbc4
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_697177587b7e40d0918a34bc2a2cfc62
cluster_b93ef049eda34c1e965701607fa5fdc5
d117f333abf14deba73b17b5c01abb06
0
0ab7ce7ca6f14a42968c73378198fb55
RX(theta₀)
d117f333abf14deba73b17b5c01abb06--0ab7ce7ca6f14a42968c73378198fb55
2020f4282b4048828a00daa3de87799a
1
e74cf231434a4996955ec6e67bc19cd9
RY(theta₆)
0ab7ce7ca6f14a42968c73378198fb55--e74cf231434a4996955ec6e67bc19cd9
82da75ff55564b8c9df8f1818642fab3
RX(theta₁₂)
e74cf231434a4996955ec6e67bc19cd9--82da75ff55564b8c9df8f1818642fab3
ffe37d4030bd4f28a9eb742410218616
82da75ff55564b8c9df8f1818642fab3--ffe37d4030bd4f28a9eb742410218616
1e0c5abdc92640d8a5f025c707bb4edc
RX(theta₁₈)
ffe37d4030bd4f28a9eb742410218616--1e0c5abdc92640d8a5f025c707bb4edc
5d6e405c49cb41dcb16420e781735bb2
RY(theta₂₄)
1e0c5abdc92640d8a5f025c707bb4edc--5d6e405c49cb41dcb16420e781735bb2
532489c67128499080ef0b2754bc07a4
RX(theta₃₀)
5d6e405c49cb41dcb16420e781735bb2--532489c67128499080ef0b2754bc07a4
acdd9ea74d04403dbd83588bb14e3186
532489c67128499080ef0b2754bc07a4--acdd9ea74d04403dbd83588bb14e3186
d8f30f63882e471fb0f7c94fc0074192
acdd9ea74d04403dbd83588bb14e3186--d8f30f63882e471fb0f7c94fc0074192
5fa327ec151e4c5088ef0b805b08f57f
763ce4fa96204b58a7ee612b8abcc059
RX(theta₁)
2020f4282b4048828a00daa3de87799a--763ce4fa96204b58a7ee612b8abcc059
bd61163a46ad4a878b69347a455d7170
2
2cf86e45ee474f46aad446819ab7dbb0
RY(theta₇)
763ce4fa96204b58a7ee612b8abcc059--2cf86e45ee474f46aad446819ab7dbb0
cff96977a00a4e63a7dafae49deed7c0
RX(theta₁₃)
2cf86e45ee474f46aad446819ab7dbb0--cff96977a00a4e63a7dafae49deed7c0
98d0748f28cb44d99701420ae9f6ebd0
cff96977a00a4e63a7dafae49deed7c0--98d0748f28cb44d99701420ae9f6ebd0
ecca990fcb49479f82a85cbffc8e8804
RX(theta₁₉)
98d0748f28cb44d99701420ae9f6ebd0--ecca990fcb49479f82a85cbffc8e8804
1a08ccde136e4d50935057c6d61467ee
RY(theta₂₅)
ecca990fcb49479f82a85cbffc8e8804--1a08ccde136e4d50935057c6d61467ee
47c073c4a4224e0d8de27340bac49b73
RX(theta₃₁)
1a08ccde136e4d50935057c6d61467ee--47c073c4a4224e0d8de27340bac49b73
48ab3e9bc12b45718f54c38c7d1c88bb
47c073c4a4224e0d8de27340bac49b73--48ab3e9bc12b45718f54c38c7d1c88bb
48ab3e9bc12b45718f54c38c7d1c88bb--5fa327ec151e4c5088ef0b805b08f57f
ba1ca1ed695341c891ec1bd4b24e6a6d
87965c37c60548039b5e13266490492b
RX(theta₂)
bd61163a46ad4a878b69347a455d7170--87965c37c60548039b5e13266490492b
29ec7b64e7704ca881a13566c109a58d
3
5b407142a8144e6da544fd9c72d73b2d
RY(theta₈)
87965c37c60548039b5e13266490492b--5b407142a8144e6da544fd9c72d73b2d
7892c6f8cc8c4ae4bd757e930a1b8ec0
RX(theta₁₄)
5b407142a8144e6da544fd9c72d73b2d--7892c6f8cc8c4ae4bd757e930a1b8ec0
19b7d42ffe514449934da0bda09b86cd
HamEvo
7892c6f8cc8c4ae4bd757e930a1b8ec0--19b7d42ffe514449934da0bda09b86cd
ac53959c1fe74588a0f65616e6779a91
RX(theta₂₀)
19b7d42ffe514449934da0bda09b86cd--ac53959c1fe74588a0f65616e6779a91
5b851dba89aa46be8f5a4afda19aca29
RY(theta₂₆)
ac53959c1fe74588a0f65616e6779a91--5b851dba89aa46be8f5a4afda19aca29
dafeb47e65e5442684b954e8f7992c60
RX(theta₃₂)
5b851dba89aa46be8f5a4afda19aca29--dafeb47e65e5442684b954e8f7992c60
f91efe90fb3e44059a0b82846e0cf2a0
HamEvo
dafeb47e65e5442684b954e8f7992c60--f91efe90fb3e44059a0b82846e0cf2a0
f91efe90fb3e44059a0b82846e0cf2a0--ba1ca1ed695341c891ec1bd4b24e6a6d
14c3799b901a4f94b52b01dfafb17fc9
776f11cabe98417fa6f1497d305f6102
RX(theta₃)
29ec7b64e7704ca881a13566c109a58d--776f11cabe98417fa6f1497d305f6102
f6f0b69fdc1d486e9a6772e577187f46
4
d6944fc236f14fd2a3efac5748984468
RY(theta₉)
776f11cabe98417fa6f1497d305f6102--d6944fc236f14fd2a3efac5748984468
2768aca0dc0f4522aea0f3817d412676
RX(theta₁₅)
d6944fc236f14fd2a3efac5748984468--2768aca0dc0f4522aea0f3817d412676
23b429ab5c96498da51bb53b999a0e8d
t = theta_t₀
2768aca0dc0f4522aea0f3817d412676--23b429ab5c96498da51bb53b999a0e8d
cada046bd3654f0f9d2d32da21e13981
RX(theta₂₁)
23b429ab5c96498da51bb53b999a0e8d--cada046bd3654f0f9d2d32da21e13981
b50d945b11774635b74de034762498d5
RY(theta₂₇)
cada046bd3654f0f9d2d32da21e13981--b50d945b11774635b74de034762498d5
1bd41bb7bf464d24afd7c611db103c00
RX(theta₃₃)
b50d945b11774635b74de034762498d5--1bd41bb7bf464d24afd7c611db103c00
f9dde5c44ad544248d968a1d4608b4fa
t = theta_t₁
1bd41bb7bf464d24afd7c611db103c00--f9dde5c44ad544248d968a1d4608b4fa
f9dde5c44ad544248d968a1d4608b4fa--14c3799b901a4f94b52b01dfafb17fc9
66c081354e3b4e7aa310a6ad2ea9ffc9
e3b00d1e048a41248e3402f4e7366fd6
RX(theta₄)
f6f0b69fdc1d486e9a6772e577187f46--e3b00d1e048a41248e3402f4e7366fd6
c29ac191b0f846498823056ea9680133
5
a2a878133a1c40bdb735b11cbf56496e
RY(theta₁₀)
e3b00d1e048a41248e3402f4e7366fd6--a2a878133a1c40bdb735b11cbf56496e
161246820d80453ab1c82e0e4addcbe8
RX(theta₁₆)
a2a878133a1c40bdb735b11cbf56496e--161246820d80453ab1c82e0e4addcbe8
348d242e3ee148b5a87e8e2b3a3876a6
161246820d80453ab1c82e0e4addcbe8--348d242e3ee148b5a87e8e2b3a3876a6
2264b7ebfc57434fbfafa382d5b73df4
RX(theta₂₂)
348d242e3ee148b5a87e8e2b3a3876a6--2264b7ebfc57434fbfafa382d5b73df4
8cad7818cb134c958aeb1df99d6b7558
RY(theta₂₈)
2264b7ebfc57434fbfafa382d5b73df4--8cad7818cb134c958aeb1df99d6b7558
91a392fdb9844281b37aa8b913360d15
RX(theta₃₄)
8cad7818cb134c958aeb1df99d6b7558--91a392fdb9844281b37aa8b913360d15
c3aacd19c44e4166a0880748179253fe
91a392fdb9844281b37aa8b913360d15--c3aacd19c44e4166a0880748179253fe
c3aacd19c44e4166a0880748179253fe--66c081354e3b4e7aa310a6ad2ea9ffc9
77424770edeb427cb91d35e72d4214c5
9eb2e89b23e241cdbb517b862674026c
RX(theta₅)
c29ac191b0f846498823056ea9680133--9eb2e89b23e241cdbb517b862674026c
797441e0fc9f4b7692faf70863fead21
RY(theta₁₁)
9eb2e89b23e241cdbb517b862674026c--797441e0fc9f4b7692faf70863fead21
97c2a40ef2744f50aa19c65b59c0571e
RX(theta₁₇)
797441e0fc9f4b7692faf70863fead21--97c2a40ef2744f50aa19c65b59c0571e
678546e1ed9d4f018f575ea5172beab7
97c2a40ef2744f50aa19c65b59c0571e--678546e1ed9d4f018f575ea5172beab7
d035957ea18442348b3c992718b1e446
RX(theta₂₃)
678546e1ed9d4f018f575ea5172beab7--d035957ea18442348b3c992718b1e446
945dd3e6002e4be5b96ebbb360873cc7
RY(theta₂₉)
d035957ea18442348b3c992718b1e446--945dd3e6002e4be5b96ebbb360873cc7
21652c88a9a2489492e4dc5476cd1031
RX(theta₃₅)
945dd3e6002e4be5b96ebbb360873cc7--21652c88a9a2489492e4dc5476cd1031
248fc8f40a704ab79e65df4a819e82f2
21652c88a9a2489492e4dc5476cd1031--248fc8f40a704ab79e65df4a819e82f2
248fc8f40a704ab79e65df4a819e82f2--77424770edeb427cb91d35e72d4214c5
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_1cf7275cc8474893aa9a097756702124
BPMA-1
cluster_268737dea345489684b67b74bea3cc5d
BPMA-0
3f09612f28424ef5a44968bd3c55dee3
0
6badb72790df40d2a413a834cf168131
RX(iia_α₀₀)
3f09612f28424ef5a44968bd3c55dee3--6badb72790df40d2a413a834cf168131
397c4fca84a746758d386935548b7204
1
cd63b017a6a34348b6bac328f159b0a0
RY(iia_α₀₃)
6badb72790df40d2a413a834cf168131--cd63b017a6a34348b6bac328f159b0a0
905cb1ada58c4ff786a871457dcaad8e
cd63b017a6a34348b6bac328f159b0a0--905cb1ada58c4ff786a871457dcaad8e
f0cec608e3fe495593f0409859e9bc51
905cb1ada58c4ff786a871457dcaad8e--f0cec608e3fe495593f0409859e9bc51
aa2cfaf8b15f4f36b1ccf10775b9fc5d
RX(iia_γ₀₀)
f0cec608e3fe495593f0409859e9bc51--aa2cfaf8b15f4f36b1ccf10775b9fc5d
6029d304dcaa46b3a8a70b10185aa70b
aa2cfaf8b15f4f36b1ccf10775b9fc5d--6029d304dcaa46b3a8a70b10185aa70b
c32f2ab90a424cdea4b088ef84366825
6029d304dcaa46b3a8a70b10185aa70b--c32f2ab90a424cdea4b088ef84366825
fa853d8ac0914ad3b1decd2f1e85844a
RY(iia_β₀₃)
c32f2ab90a424cdea4b088ef84366825--fa853d8ac0914ad3b1decd2f1e85844a
d27a93059d204cf68ad39ff6481b2a51
RX(iia_β₀₀)
fa853d8ac0914ad3b1decd2f1e85844a--d27a93059d204cf68ad39ff6481b2a51
2e64da3356324d2a9ca36be631d50c52
RX(iia_α₁₀)
d27a93059d204cf68ad39ff6481b2a51--2e64da3356324d2a9ca36be631d50c52
f39313b5e6aa41fbb5d6c7bc5da2b1d1
RY(iia_α₁₃)
2e64da3356324d2a9ca36be631d50c52--f39313b5e6aa41fbb5d6c7bc5da2b1d1
4f15f5149898404e9a8d65024e01a9d8
f39313b5e6aa41fbb5d6c7bc5da2b1d1--4f15f5149898404e9a8d65024e01a9d8
95caf232e75e447ebfe846ac43c47a51
4f15f5149898404e9a8d65024e01a9d8--95caf232e75e447ebfe846ac43c47a51
976e52fb73a1440fab73c15c4de8fdca
RX(iia_γ₁₀)
95caf232e75e447ebfe846ac43c47a51--976e52fb73a1440fab73c15c4de8fdca
98bc3280125544399a5fccc04f71a1c8
976e52fb73a1440fab73c15c4de8fdca--98bc3280125544399a5fccc04f71a1c8
651c72294eed439aaae7c18881118096
98bc3280125544399a5fccc04f71a1c8--651c72294eed439aaae7c18881118096
dbfbd4434d564a17a8817c20f7c02d6f
RY(iia_β₁₃)
651c72294eed439aaae7c18881118096--dbfbd4434d564a17a8817c20f7c02d6f
785ef0d270e04d50b1af9ee711d697bb
RX(iia_β₁₀)
dbfbd4434d564a17a8817c20f7c02d6f--785ef0d270e04d50b1af9ee711d697bb
26aad44290f74d92bb5787805fbd082e
785ef0d270e04d50b1af9ee711d697bb--26aad44290f74d92bb5787805fbd082e
e7220c5cd15946ec8a9d2f502c6d455c
fdafb429da254c87a2f66b3464c7ab73
RX(iia_α₀₁)
397c4fca84a746758d386935548b7204--fdafb429da254c87a2f66b3464c7ab73
274e9f7b27854c208c84246433677db4
2
fd9cd5fedc9b45048f92f5c74f7f3232
RY(iia_α₀₄)
fdafb429da254c87a2f66b3464c7ab73--fd9cd5fedc9b45048f92f5c74f7f3232
ae9c9372b35c4196a28bb7a2f729d95c
X
fd9cd5fedc9b45048f92f5c74f7f3232--ae9c9372b35c4196a28bb7a2f729d95c
ae9c9372b35c4196a28bb7a2f729d95c--905cb1ada58c4ff786a871457dcaad8e
9193a771d9154b9ba3e33e882d933757
ae9c9372b35c4196a28bb7a2f729d95c--9193a771d9154b9ba3e33e882d933757
4bfdee5b509b468d8fe8d7aa73d90a5f
RX(iia_γ₀₁)
9193a771d9154b9ba3e33e882d933757--4bfdee5b509b468d8fe8d7aa73d90a5f
12cab1bfb3b6492baf0e772992ca2495
4bfdee5b509b468d8fe8d7aa73d90a5f--12cab1bfb3b6492baf0e772992ca2495
3ba7b30d937d49df8e906dbe989f7211
X
12cab1bfb3b6492baf0e772992ca2495--3ba7b30d937d49df8e906dbe989f7211
3ba7b30d937d49df8e906dbe989f7211--c32f2ab90a424cdea4b088ef84366825
329af505e4a14627be77d6b211894356
RY(iia_β₀₄)
3ba7b30d937d49df8e906dbe989f7211--329af505e4a14627be77d6b211894356
263a7941f8374af6855f920df8a5da1b
RX(iia_β₀₁)
329af505e4a14627be77d6b211894356--263a7941f8374af6855f920df8a5da1b
4d880331acc74ae4a47bc37f01e3ff93
RX(iia_α₁₁)
263a7941f8374af6855f920df8a5da1b--4d880331acc74ae4a47bc37f01e3ff93
64d1a0c8a5394ddda30dc99472d5bc82
RY(iia_α₁₄)
4d880331acc74ae4a47bc37f01e3ff93--64d1a0c8a5394ddda30dc99472d5bc82
73ecc63b175c4808b3da60f35b02b3fb
X
64d1a0c8a5394ddda30dc99472d5bc82--73ecc63b175c4808b3da60f35b02b3fb
73ecc63b175c4808b3da60f35b02b3fb--4f15f5149898404e9a8d65024e01a9d8
7e1102f4f33c4894ac76a34248b75813
73ecc63b175c4808b3da60f35b02b3fb--7e1102f4f33c4894ac76a34248b75813
2e0f54457e3e486381a90d1d8a1f3d75
RX(iia_γ₁₁)
7e1102f4f33c4894ac76a34248b75813--2e0f54457e3e486381a90d1d8a1f3d75
eb965b79f5714796840fc95be79fc9ca
2e0f54457e3e486381a90d1d8a1f3d75--eb965b79f5714796840fc95be79fc9ca
219e35b36d0746229cf0e4b7aee55cb1
X
eb965b79f5714796840fc95be79fc9ca--219e35b36d0746229cf0e4b7aee55cb1
219e35b36d0746229cf0e4b7aee55cb1--651c72294eed439aaae7c18881118096
26651fd78ab844d5b210bc32ec8140d5
RY(iia_β₁₄)
219e35b36d0746229cf0e4b7aee55cb1--26651fd78ab844d5b210bc32ec8140d5
f9c2fc8d659a440dbd94b0a772962b8e
RX(iia_β₁₁)
26651fd78ab844d5b210bc32ec8140d5--f9c2fc8d659a440dbd94b0a772962b8e
f9c2fc8d659a440dbd94b0a772962b8e--e7220c5cd15946ec8a9d2f502c6d455c
aadcc3d0e6074103bf6f82f46d35284e
0ad938cf698943efb23397864a0c06dc
RX(iia_α₀₂)
274e9f7b27854c208c84246433677db4--0ad938cf698943efb23397864a0c06dc
65200b49c253476494179f91c4864951
RY(iia_α₀₅)
0ad938cf698943efb23397864a0c06dc--65200b49c253476494179f91c4864951
4e92c0579fa34e82a36cb9b785d1448b
65200b49c253476494179f91c4864951--4e92c0579fa34e82a36cb9b785d1448b
6958feae0112453d81bb1e87b92b9cca
X
4e92c0579fa34e82a36cb9b785d1448b--6958feae0112453d81bb1e87b92b9cca
6958feae0112453d81bb1e87b92b9cca--9193a771d9154b9ba3e33e882d933757
1c4503a4f1764cb8940fb6eb220da39c
RX(iia_γ₀₂)
6958feae0112453d81bb1e87b92b9cca--1c4503a4f1764cb8940fb6eb220da39c
bab5c0cf1a1241a59f13e1cf381436d4
X
1c4503a4f1764cb8940fb6eb220da39c--bab5c0cf1a1241a59f13e1cf381436d4
bab5c0cf1a1241a59f13e1cf381436d4--12cab1bfb3b6492baf0e772992ca2495
5d18dc02e68849f6ae5c842c2657c8ca
bab5c0cf1a1241a59f13e1cf381436d4--5d18dc02e68849f6ae5c842c2657c8ca
b655ddce384046cd882e8295b7592b0a
RY(iia_β₀₅)
5d18dc02e68849f6ae5c842c2657c8ca--b655ddce384046cd882e8295b7592b0a
3babdfb2f626448ea2f8da7cbdfbd479
RX(iia_β₀₂)
b655ddce384046cd882e8295b7592b0a--3babdfb2f626448ea2f8da7cbdfbd479
04d4e3464c3d4f998315934563aea093
RX(iia_α₁₂)
3babdfb2f626448ea2f8da7cbdfbd479--04d4e3464c3d4f998315934563aea093
fe6623b812f64d7bb8643822638cff3e
RY(iia_α₁₅)
04d4e3464c3d4f998315934563aea093--fe6623b812f64d7bb8643822638cff3e
ff40283a596643b68569752b6e5456e4
fe6623b812f64d7bb8643822638cff3e--ff40283a596643b68569752b6e5456e4
82b54ea56c8f4e94a36e74e6727d00e1
X
ff40283a596643b68569752b6e5456e4--82b54ea56c8f4e94a36e74e6727d00e1
82b54ea56c8f4e94a36e74e6727d00e1--7e1102f4f33c4894ac76a34248b75813
714db2118cd84ca9bde3b11f3a5d323a
RX(iia_γ₁₂)
82b54ea56c8f4e94a36e74e6727d00e1--714db2118cd84ca9bde3b11f3a5d323a
2dde60c87f094a9bb181b19136e11c66
X
714db2118cd84ca9bde3b11f3a5d323a--2dde60c87f094a9bb181b19136e11c66
2dde60c87f094a9bb181b19136e11c66--eb965b79f5714796840fc95be79fc9ca
969827493cf64200b6eddda2172f94d6
2dde60c87f094a9bb181b19136e11c66--969827493cf64200b6eddda2172f94d6
dc0e581f483d4f3b8cef88d7934dccbe
RY(iia_β₁₅)
969827493cf64200b6eddda2172f94d6--dc0e581f483d4f3b8cef88d7934dccbe
dd081827ebfc43f496fed9c9bbdebdb6
RX(iia_β₁₂)
dc0e581f483d4f3b8cef88d7934dccbe--dd081827ebfc43f496fed9c9bbdebdb6
dd081827ebfc43f496fed9c9bbdebdb6--aadcc3d0e6074103bf6f82f46d35284e