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_2c47cd317eee4ae1b8b5d3c5719d59fe
Constant Chebyshev FM
cluster_014e40d2e86b45699bae5625bc0fec85
Constant Fourier FM
ff4b192ed5944299b78534a53a1ca17d
0
1cbafa9825a7483294af7dc2923fdbb7
RX(phi)
ff4b192ed5944299b78534a53a1ca17d--1cbafa9825a7483294af7dc2923fdbb7
994c4856dac14473b28e4806f0ee60de
1
ff285e1f23404145b729d2582104b8ba
RX(acos(phi))
1cbafa9825a7483294af7dc2923fdbb7--ff285e1f23404145b729d2582104b8ba
0809b7248274432c99bf184bc7b2735d
ff285e1f23404145b729d2582104b8ba--0809b7248274432c99bf184bc7b2735d
f7a4158acf3b464e9538f6dec7977149
43b74820087441148574b06b69f8f640
RX(phi)
994c4856dac14473b28e4806f0ee60de--43b74820087441148574b06b69f8f640
fc5376525df44a398d40a56c5c4ecbea
2
eeb2c80cbd73415798d740d0cde84e6e
RX(acos(phi))
43b74820087441148574b06b69f8f640--eeb2c80cbd73415798d740d0cde84e6e
eeb2c80cbd73415798d740d0cde84e6e--f7a4158acf3b464e9538f6dec7977149
c7bfcaeb9a4143b3b9393ccdacd94a57
1af229571b834a06abf0c52aa93af96c
RX(phi)
fc5376525df44a398d40a56c5c4ecbea--1af229571b834a06abf0c52aa93af96c
6fd2390c877e412f9e6cb7ea313c3547
RX(acos(phi))
1af229571b834a06abf0c52aa93af96c--6fd2390c877e412f9e6cb7ea313c3547
6fd2390c877e412f9e6cb7ea313c3547--c7bfcaeb9a4143b3b9393ccdacd94a57
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_9e5b3007108d4afb8cfe2e3c28d8fba0
Constant <function custom_fn at 0x7f75c8457250> FM
cluster_7d2c30675c324dfea2f31b9313915f5f
Constant asin FM
a3b7e716577f4d5391d4b1b981f7fac3
0
bf58011e05a643c8ada0c440d2fe0005
RX(asin(phi))
a3b7e716577f4d5391d4b1b981f7fac3--bf58011e05a643c8ada0c440d2fe0005
f1ed5a121c644c3c9681f886f3f5d621
1
67f7d509b666415b9aef8d35df5a87ac
RX(phi**2 + asin(phi))
bf58011e05a643c8ada0c440d2fe0005--67f7d509b666415b9aef8d35df5a87ac
26f8784e1e1e48bda76376664fa058e8
67f7d509b666415b9aef8d35df5a87ac--26f8784e1e1e48bda76376664fa058e8
6b6241a385dc42e38ab7a327b65ed2e7
bfde7469e6cf425ea490bfeb7a1209b7
RX(asin(phi))
f1ed5a121c644c3c9681f886f3f5d621--bfde7469e6cf425ea490bfeb7a1209b7
90d4562a6d20428c9653d345d1be7e20
2
6f513c66266f4a438ea55e18665bd953
RX(phi**2 + asin(phi))
bfde7469e6cf425ea490bfeb7a1209b7--6f513c66266f4a438ea55e18665bd953
6f513c66266f4a438ea55e18665bd953--6b6241a385dc42e38ab7a327b65ed2e7
156e78d6b1ac47f0b533a1f22b37dd6f
9f0045b3e1634d9d9917f992201237e4
RX(asin(phi))
90d4562a6d20428c9653d345d1be7e20--9f0045b3e1634d9d9917f992201237e4
48899293938d493e8eb91571f8bbfffe
RX(phi**2 + asin(phi))
9f0045b3e1634d9d9917f992201237e4--48899293938d493e8eb91571f8bbfffe
48899293938d493e8eb91571f8bbfffe--156e78d6b1ac47f0b533a1f22b37dd6f
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_35374114d99545abb69bdcae303b964c
Exponential Fourier FM
cluster_37f3c24b841a4a6997e5785fd1d5c383
Constant Fourier FM
cluster_762463f8436548a9a1def374f6781551
Tower Fourier FM
7692f1b739324ce0963287bc155663d7
0
f37181ac734d4115801e92bfa653d65e
RX(phi)
7692f1b739324ce0963287bc155663d7--f37181ac734d4115801e92bfa653d65e
03a00471506746e0b5c9f8d816741db0
1
8675ef1b41fe4fbaa8164cf1a3180911
RX(1.0*phi)
f37181ac734d4115801e92bfa653d65e--8675ef1b41fe4fbaa8164cf1a3180911
8f6468f99dcc4885b60df1e41b3d6803
RX(1.0*phi)
8675ef1b41fe4fbaa8164cf1a3180911--8f6468f99dcc4885b60df1e41b3d6803
0dc997e31c69444483afdad243dfb216
8f6468f99dcc4885b60df1e41b3d6803--0dc997e31c69444483afdad243dfb216
8aa033c087ad4d2096490a729a1a3991
e74fd0a18e454eb193541adbadb0e029
RX(phi)
03a00471506746e0b5c9f8d816741db0--e74fd0a18e454eb193541adbadb0e029
321c9cf4a2d24d6989d4eb918dbbb356
2
cd7086c09c1d4480938fe295e774b317
RX(2.0*phi)
e74fd0a18e454eb193541adbadb0e029--cd7086c09c1d4480938fe295e774b317
31b10526f982435a82bfae75fcd6b006
RX(2.0*phi)
cd7086c09c1d4480938fe295e774b317--31b10526f982435a82bfae75fcd6b006
31b10526f982435a82bfae75fcd6b006--8aa033c087ad4d2096490a729a1a3991
6c957802e7aa491888a770d8f916b94f
26a7ea3ffc7d4acc9823820a3deb7602
RX(phi)
321c9cf4a2d24d6989d4eb918dbbb356--26a7ea3ffc7d4acc9823820a3deb7602
22f69e25c0ad4cf8be8f93cbcc2203b0
3
fd6ec159555b410a865b369dd78dde49
RX(3.0*phi)
26a7ea3ffc7d4acc9823820a3deb7602--fd6ec159555b410a865b369dd78dde49
12db41068b93410ebff72e1d65ed119b
RX(4.0*phi)
fd6ec159555b410a865b369dd78dde49--12db41068b93410ebff72e1d65ed119b
12db41068b93410ebff72e1d65ed119b--6c957802e7aa491888a770d8f916b94f
ec39f5defd7643b4b912a2d83cc19e24
a258cef667f444ca946e2b3543f503c0
RX(phi)
22f69e25c0ad4cf8be8f93cbcc2203b0--a258cef667f444ca946e2b3543f503c0
03229c17916547b380b9a89d75a9c2dd
4
4f936502b6a445f7a17965f3f34043de
RX(4.0*phi)
a258cef667f444ca946e2b3543f503c0--4f936502b6a445f7a17965f3f34043de
86f0e6033637466ba3ae7b6a488aec2c
RX(8.0*phi)
4f936502b6a445f7a17965f3f34043de--86f0e6033637466ba3ae7b6a488aec2c
86f0e6033637466ba3ae7b6a488aec2c--ec39f5defd7643b4b912a2d83cc19e24
102a7f15e3f543e0a070f832d7fc6d75
8ba26fb073924190b6fee27dbd0e56fe
RX(phi)
03229c17916547b380b9a89d75a9c2dd--8ba26fb073924190b6fee27dbd0e56fe
59c3025744b34000b435b686ea47a8ce
RX(5.0*phi)
8ba26fb073924190b6fee27dbd0e56fe--59c3025744b34000b435b686ea47a8ce
e8cb9b2a88ee4abaabf6d883f16fab20
RX(16.0*phi)
59c3025744b34000b435b686ea47a8ce--e8cb9b2a88ee4abaabf6d883f16fab20
e8cb9b2a88ee4abaabf6d883f16fab20--102a7f15e3f543e0a070f832d7fc6d75
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
d36c6cf4993c4ad38f7ceddaac7971b9
0
6f8c93b04be544528da81abd89999bf1
RX(1.0*acos(phi))
d36c6cf4993c4ad38f7ceddaac7971b9--6f8c93b04be544528da81abd89999bf1
cf3e8250d5514e289df64d6d422d87a0
1
3e70bd325d2d43009bd3f9a3dc1b7fa7
6f8c93b04be544528da81abd89999bf1--3e70bd325d2d43009bd3f9a3dc1b7fa7
0556e0c99c334428b7419157c7d5fedc
5fb4105dda1740018fa92108a91010ce
RX(1.414*acos(phi))
cf3e8250d5514e289df64d6d422d87a0--5fb4105dda1740018fa92108a91010ce
dbc57ad632514aa78b56d8d122461d08
2
5fb4105dda1740018fa92108a91010ce--0556e0c99c334428b7419157c7d5fedc
361ebde3baae417f9bdf607d5b0653cd
030a92e3fa3e40a48ba9ef77270c91f4
RX(1.732*acos(phi))
dbc57ad632514aa78b56d8d122461d08--030a92e3fa3e40a48ba9ef77270c91f4
de2ec2bd3e4145e1a6f47833f9199e78
3
030a92e3fa3e40a48ba9ef77270c91f4--361ebde3baae417f9bdf607d5b0653cd
61e0bc4371db448f82969e0b47308271
0214a1a6a6d44ece8df463fc08516533
RX(2.0*acos(phi))
de2ec2bd3e4145e1a6f47833f9199e78--0214a1a6a6d44ece8df463fc08516533
091287cc86c148da85767de7322bece2
4
0214a1a6a6d44ece8df463fc08516533--61e0bc4371db448f82969e0b47308271
b0917777f1ec4dbba619383352f9fbac
64b3ff6531144486b39bb043a3538dbe
RX(2.236*acos(phi))
091287cc86c148da85767de7322bece2--64b3ff6531144486b39bb043a3538dbe
64b3ff6531144486b39bb043a3538dbe--b0917777f1ec4dbba619383352f9fbac
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
8e2408c141e249938164a34f62c0e7db
0
593d322fe9434519b7f26cc823f59eaa
RX(1.0*phi*w₀)
8e2408c141e249938164a34f62c0e7db--593d322fe9434519b7f26cc823f59eaa
ad02cc05438c44bbac80ab02e43c4fc5
1
8ce70a8a10b6469e8e615630d2c7d4c0
593d322fe9434519b7f26cc823f59eaa--8ce70a8a10b6469e8e615630d2c7d4c0
92cdfef090444e548b5500430d3decb4
b7a94a56357745d2a061d70c875f4c55
RX(2.0*phi*w₁)
ad02cc05438c44bbac80ab02e43c4fc5--b7a94a56357745d2a061d70c875f4c55
c62f0aaf23e046d7aa9ac3e61e555b6c
2
b7a94a56357745d2a061d70c875f4c55--92cdfef090444e548b5500430d3decb4
bb2009d7363b4ee98c3850004a3d881d
205a29a279424d43af3d1fe3f90e3909
RX(4.0*phi*w₂)
c62f0aaf23e046d7aa9ac3e61e555b6c--205a29a279424d43af3d1fe3f90e3909
e9d00edb47ad4f03bf52926c2f32be34
3
205a29a279424d43af3d1fe3f90e3909--bb2009d7363b4ee98c3850004a3d881d
ba2bb7a9dcd749b0ac3e77409f0011af
99bd3509b72844b1b646587ae9dbead0
RX(8.0*phi*w₃)
e9d00edb47ad4f03bf52926c2f32be34--99bd3509b72844b1b646587ae9dbead0
60f25ed384c6448da29e36a959aef574
4
99bd3509b72844b1b646587ae9dbead0--ba2bb7a9dcd749b0ac3e77409f0011af
c6d136e98a934571a91515e5dd3b9b01
3fa63dd87adf4d74ad616b4cfa977d28
RX(16.0*phi*w₄)
60f25ed384c6448da29e36a959aef574--3fa63dd87adf4d74ad616b4cfa977d28
3fa63dd87adf4d74ad616b4cfa977d28--c6d136e98a934571a91515e5dd3b9b01
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
5320ea9b66a64914a066b3bb302ec391
0
d08ed481770b4aa8839ee4a44d327645
RY(80.0*acos(w₄*(0.667*x + 1.667)))
5320ea9b66a64914a066b3bb302ec391--d08ed481770b4aa8839ee4a44d327645
a84ab78de42349ee9e9bbc9ba2eea8a2
1
d5bc546db69d48e2bad92e7bf5c3c5a4
d08ed481770b4aa8839ee4a44d327645--d5bc546db69d48e2bad92e7bf5c3c5a4
1e326e1572bd4e68845690095cf85e42
d0981268c4b741a2b99ccc695fda5523
RY(40.0*acos(w₃*(0.667*x + 1.667)))
a84ab78de42349ee9e9bbc9ba2eea8a2--d0981268c4b741a2b99ccc695fda5523
8c05768e507a4c1c9fe270fbfafd74d2
2
d0981268c4b741a2b99ccc695fda5523--1e326e1572bd4e68845690095cf85e42
bda5182d0dc145f2a9838abc8b4ce6a7
96cb6ac36e5c4971b82eb5b8fb8d6f73
RY(20.0*acos(w₂*(0.667*x + 1.667)))
8c05768e507a4c1c9fe270fbfafd74d2--96cb6ac36e5c4971b82eb5b8fb8d6f73
d2231370eb614ee2bb6d9f11afdbf67b
3
96cb6ac36e5c4971b82eb5b8fb8d6f73--bda5182d0dc145f2a9838abc8b4ce6a7
b051ea0397794e1ab70592778568bb34
24bec948a2a14a459dec64b91df4354a
RY(10.0*acos(w₁*(0.667*x + 1.667)))
d2231370eb614ee2bb6d9f11afdbf67b--24bec948a2a14a459dec64b91df4354a
ccb53b56e11c4e80aea53b952355fbcf
4
24bec948a2a14a459dec64b91df4354a--b051ea0397794e1ab70592778568bb34
a7dbc4a9d5144f80b71e4a926e55f44a
aaaccd52fc314cf4aae04b5d776a2606
RY(5.0*acos(w₀*(0.667*x + 1.667)))
ccb53b56e11c4e80aea53b952355fbcf--aaaccd52fc314cf4aae04b5d776a2606
aaaccd52fc314cf4aae04b5d776a2606--a7dbc4a9d5144f80b71e4a926e55f44a
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
e8d8c088421e4caaae3d5cb513ae99ec
0
e5a4e0aebfaf44a4b62b91b8fa274295
RX(theta₀)
e8d8c088421e4caaae3d5cb513ae99ec--e5a4e0aebfaf44a4b62b91b8fa274295
86d78846c1554aac91edb06560c004e3
1
1d3363bdceb54b5594bc40fc4b0b8644
RY(theta₃)
e5a4e0aebfaf44a4b62b91b8fa274295--1d3363bdceb54b5594bc40fc4b0b8644
30fd45e5856044c0843f2376dbe6aa24
RX(theta₆)
1d3363bdceb54b5594bc40fc4b0b8644--30fd45e5856044c0843f2376dbe6aa24
b6b011fc938a412b98f175cb1987ee2b
30fd45e5856044c0843f2376dbe6aa24--b6b011fc938a412b98f175cb1987ee2b
26be9be3a89b457fbbcb101c3d9bbb06
b6b011fc938a412b98f175cb1987ee2b--26be9be3a89b457fbbcb101c3d9bbb06
4353d96fc6db4613acd2af32e31f99e0
RX(theta₉)
26be9be3a89b457fbbcb101c3d9bbb06--4353d96fc6db4613acd2af32e31f99e0
1da882fae3c845e4b6456b998e9ddc94
RY(theta₁₂)
4353d96fc6db4613acd2af32e31f99e0--1da882fae3c845e4b6456b998e9ddc94
0468ddb6958041449ae91bb2424ee5fe
RX(theta₁₅)
1da882fae3c845e4b6456b998e9ddc94--0468ddb6958041449ae91bb2424ee5fe
ad046db2e0434252b5f1df4ce8c2fb9f
0468ddb6958041449ae91bb2424ee5fe--ad046db2e0434252b5f1df4ce8c2fb9f
bfaf0e121fc5452baa02ae23f871e746
ad046db2e0434252b5f1df4ce8c2fb9f--bfaf0e121fc5452baa02ae23f871e746
1e28063413434f76a0e982f94c398a09
bfaf0e121fc5452baa02ae23f871e746--1e28063413434f76a0e982f94c398a09
60ff9bbc3ec8473b982b836aea76d5ed
d3238d7648af4e6c9ff1acbd0cbc1059
RX(theta₁)
86d78846c1554aac91edb06560c004e3--d3238d7648af4e6c9ff1acbd0cbc1059
f94e533349874b08bf79a722383472b2
2
f1b4ca28223b47168cb9c37ad5140c2a
RY(theta₄)
d3238d7648af4e6c9ff1acbd0cbc1059--f1b4ca28223b47168cb9c37ad5140c2a
4e0bedf9acd84b91a9674e02885200e7
RX(theta₇)
f1b4ca28223b47168cb9c37ad5140c2a--4e0bedf9acd84b91a9674e02885200e7
646b5868a62b48bf8406cad6fc12b967
X
4e0bedf9acd84b91a9674e02885200e7--646b5868a62b48bf8406cad6fc12b967
646b5868a62b48bf8406cad6fc12b967--b6b011fc938a412b98f175cb1987ee2b
d499a22f8587418b89948f7fa0aade8b
646b5868a62b48bf8406cad6fc12b967--d499a22f8587418b89948f7fa0aade8b
383e01bac17e41bc964a8d8c4f045fa3
RX(theta₁₀)
d499a22f8587418b89948f7fa0aade8b--383e01bac17e41bc964a8d8c4f045fa3
549e8c4952b043e884075a16ba5ac3b9
RY(theta₁₃)
383e01bac17e41bc964a8d8c4f045fa3--549e8c4952b043e884075a16ba5ac3b9
024f113c561746f5a106a48a80fd7dcc
RX(theta₁₆)
549e8c4952b043e884075a16ba5ac3b9--024f113c561746f5a106a48a80fd7dcc
da3bf4c411004829a778079ed856f869
X
024f113c561746f5a106a48a80fd7dcc--da3bf4c411004829a778079ed856f869
da3bf4c411004829a778079ed856f869--ad046db2e0434252b5f1df4ce8c2fb9f
59082e4c0b6f4d5ca18523a74f6d2da6
da3bf4c411004829a778079ed856f869--59082e4c0b6f4d5ca18523a74f6d2da6
59082e4c0b6f4d5ca18523a74f6d2da6--60ff9bbc3ec8473b982b836aea76d5ed
2c5428b5d2b2405d91c4ba0bb9040e50
8538e61bbeb54ff985012d13d5805751
RX(theta₂)
f94e533349874b08bf79a722383472b2--8538e61bbeb54ff985012d13d5805751
c5b871d5e5c949a1b48a61b1dff05116
RY(theta₅)
8538e61bbeb54ff985012d13d5805751--c5b871d5e5c949a1b48a61b1dff05116
74892719f690478c852b44885f3de143
RX(theta₈)
c5b871d5e5c949a1b48a61b1dff05116--74892719f690478c852b44885f3de143
9b7a201dab1e499ab46e4a42c8ba095c
74892719f690478c852b44885f3de143--9b7a201dab1e499ab46e4a42c8ba095c
bbb76f3cbd33425db769b58df3afead4
X
9b7a201dab1e499ab46e4a42c8ba095c--bbb76f3cbd33425db769b58df3afead4
bbb76f3cbd33425db769b58df3afead4--d499a22f8587418b89948f7fa0aade8b
870e3ce967cc4ca8b670cbf6b96cb8e3
RX(theta₁₁)
bbb76f3cbd33425db769b58df3afead4--870e3ce967cc4ca8b670cbf6b96cb8e3
6e7a14ec62f34759848089710dec5e86
RY(theta₁₄)
870e3ce967cc4ca8b670cbf6b96cb8e3--6e7a14ec62f34759848089710dec5e86
6e767c2e085c4a8280cdda3efbed62d9
RX(theta₁₇)
6e7a14ec62f34759848089710dec5e86--6e767c2e085c4a8280cdda3efbed62d9
a210e1a9934f475c98cbed99dd48bf0d
6e767c2e085c4a8280cdda3efbed62d9--a210e1a9934f475c98cbed99dd48bf0d
4607d92fa3f54ab28be2d8940363d2ce
X
a210e1a9934f475c98cbed99dd48bf0d--4607d92fa3f54ab28be2d8940363d2ce
4607d92fa3f54ab28be2d8940363d2ce--59082e4c0b6f4d5ca18523a74f6d2da6
4607d92fa3f54ab28be2d8940363d2ce--2c5428b5d2b2405d91c4ba0bb9040e50
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
db8d6fe1b5864b37ba945ba21ec99a5b
0
fdd5a45bfee24b3baad69ea0b9ea1df1
RX(phi₀)
db8d6fe1b5864b37ba945ba21ec99a5b--fdd5a45bfee24b3baad69ea0b9ea1df1
dc14cbd454694ea2b018321779420e3f
1
18e231e8a4e54e96be5d5e19ff6dc3be
RY(phi₃)
fdd5a45bfee24b3baad69ea0b9ea1df1--18e231e8a4e54e96be5d5e19ff6dc3be
c2cab519bdcf4a7f850de3aad122355c
RX(phi₆)
18e231e8a4e54e96be5d5e19ff6dc3be--c2cab519bdcf4a7f850de3aad122355c
b40c7e1889044d4594d1cbc9443b7e47
c2cab519bdcf4a7f850de3aad122355c--b40c7e1889044d4594d1cbc9443b7e47
e54526b67de14551b4dc60fd290c45c2
b40c7e1889044d4594d1cbc9443b7e47--e54526b67de14551b4dc60fd290c45c2
6a0148d64baa4d4e8bc27959e831cf50
RX(phi₉)
e54526b67de14551b4dc60fd290c45c2--6a0148d64baa4d4e8bc27959e831cf50
d817f1b5507848838519ee3ec0482b8c
RY(phi₁₂)
6a0148d64baa4d4e8bc27959e831cf50--d817f1b5507848838519ee3ec0482b8c
80d3e3d5f92d45bf9578f48f90a4b1fd
RX(phi₁₅)
d817f1b5507848838519ee3ec0482b8c--80d3e3d5f92d45bf9578f48f90a4b1fd
9135a26c6f0240e98f6a43b35a150ea1
80d3e3d5f92d45bf9578f48f90a4b1fd--9135a26c6f0240e98f6a43b35a150ea1
3fd49d32e183440bb5ce6ef7b1be19e2
9135a26c6f0240e98f6a43b35a150ea1--3fd49d32e183440bb5ce6ef7b1be19e2
cb09774d98f64fb3b2f4dffc78a6c573
3fd49d32e183440bb5ce6ef7b1be19e2--cb09774d98f64fb3b2f4dffc78a6c573
d9331460cb8742c381758c426949e939
58bb3e0ff13e4f108c399596aa8d4322
RX(phi₁)
dc14cbd454694ea2b018321779420e3f--58bb3e0ff13e4f108c399596aa8d4322
aac496b68123424cab2a5095de233aa3
2
0592480899fa49039c1a7581e34a609c
RY(phi₄)
58bb3e0ff13e4f108c399596aa8d4322--0592480899fa49039c1a7581e34a609c
cef891a174e94998972349d3054a8ba2
RX(phi₇)
0592480899fa49039c1a7581e34a609c--cef891a174e94998972349d3054a8ba2
0d92c0a3eefc4d8989ddbb6df504f1b7
PHASE(phi_ent₀)
cef891a174e94998972349d3054a8ba2--0d92c0a3eefc4d8989ddbb6df504f1b7
0d92c0a3eefc4d8989ddbb6df504f1b7--b40c7e1889044d4594d1cbc9443b7e47
d84c8a948d4444349029eadbc62f2e63
0d92c0a3eefc4d8989ddbb6df504f1b7--d84c8a948d4444349029eadbc62f2e63
997addaadb5e4afcbce17affeab2bd75
RX(phi₁₀)
d84c8a948d4444349029eadbc62f2e63--997addaadb5e4afcbce17affeab2bd75
8e65064ee02247758807476d856b98ef
RY(phi₁₃)
997addaadb5e4afcbce17affeab2bd75--8e65064ee02247758807476d856b98ef
62323a2a57404c9f9c7bacb9247fe3d4
RX(phi₁₆)
8e65064ee02247758807476d856b98ef--62323a2a57404c9f9c7bacb9247fe3d4
4419dab5a18146e7bae8b637a2975e09
PHASE(phi_ent₂)
62323a2a57404c9f9c7bacb9247fe3d4--4419dab5a18146e7bae8b637a2975e09
4419dab5a18146e7bae8b637a2975e09--9135a26c6f0240e98f6a43b35a150ea1
7cc51e76064341529102b84509e27855
4419dab5a18146e7bae8b637a2975e09--7cc51e76064341529102b84509e27855
7cc51e76064341529102b84509e27855--d9331460cb8742c381758c426949e939
38d8e31261454d79a80c7813149f6ae0
0579f4bf03714c3cb23878d3719fb65b
RX(phi₂)
aac496b68123424cab2a5095de233aa3--0579f4bf03714c3cb23878d3719fb65b
18179b27a7844a9f831d5839e5841ab6
RY(phi₅)
0579f4bf03714c3cb23878d3719fb65b--18179b27a7844a9f831d5839e5841ab6
9faff0d774784477ae093411c4379e11
RX(phi₈)
18179b27a7844a9f831d5839e5841ab6--9faff0d774784477ae093411c4379e11
6306b73ab9e5424a990942d181130339
9faff0d774784477ae093411c4379e11--6306b73ab9e5424a990942d181130339
0de8a54fe8de49fd82f9bd8d62b66632
PHASE(phi_ent₁)
6306b73ab9e5424a990942d181130339--0de8a54fe8de49fd82f9bd8d62b66632
0de8a54fe8de49fd82f9bd8d62b66632--d84c8a948d4444349029eadbc62f2e63
cb3428b5359d47628709e6997f7ce5f1
RX(phi₁₁)
0de8a54fe8de49fd82f9bd8d62b66632--cb3428b5359d47628709e6997f7ce5f1
e8eac508cc3445ba8e614b9d9106e9de
RY(phi₁₄)
cb3428b5359d47628709e6997f7ce5f1--e8eac508cc3445ba8e614b9d9106e9de
e1ef9fd7ea2242a19b8ac16f7925e86f
RX(phi₁₇)
e8eac508cc3445ba8e614b9d9106e9de--e1ef9fd7ea2242a19b8ac16f7925e86f
79689dcf84a14e6b9ff20ec2e8740c86
e1ef9fd7ea2242a19b8ac16f7925e86f--79689dcf84a14e6b9ff20ec2e8740c86
0d4a2708775547628a2a2684f2d2858e
PHASE(phi_ent₃)
79689dcf84a14e6b9ff20ec2e8740c86--0d4a2708775547628a2a2684f2d2858e
0d4a2708775547628a2a2684f2d2858e--7cc51e76064341529102b84509e27855
0d4a2708775547628a2a2684f2d2858e--38d8e31261454d79a80c7813149f6ae0
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_8f140863d749468d99ad12dddce80d9c
cluster_f974b8963f4d4f20921210e0718485e1
16a0e56a5809484bafbb97a914e2e84b
0
0c9b308ad6c5457eab9ce12fc2fadfb6
RX(theta₀)
16a0e56a5809484bafbb97a914e2e84b--0c9b308ad6c5457eab9ce12fc2fadfb6
4de7b68beed445b3a55b713038b550f4
1
cfa5bd50fcc048ef94912a6194d587fd
RY(theta₃)
0c9b308ad6c5457eab9ce12fc2fadfb6--cfa5bd50fcc048ef94912a6194d587fd
3477f5ff849347e4bf3959ba031036f0
RX(theta₆)
cfa5bd50fcc048ef94912a6194d587fd--3477f5ff849347e4bf3959ba031036f0
b42c086cc21b4e8ca59c0b89ca837f8e
HamEvo
3477f5ff849347e4bf3959ba031036f0--b42c086cc21b4e8ca59c0b89ca837f8e
8f9a66b228ec442f8e53f785cdedce17
RX(theta₉)
b42c086cc21b4e8ca59c0b89ca837f8e--8f9a66b228ec442f8e53f785cdedce17
7ab709a5a35c4347972a6f5bfc9a740f
RY(theta₁₂)
8f9a66b228ec442f8e53f785cdedce17--7ab709a5a35c4347972a6f5bfc9a740f
a5c8152539824f918e93091bef3f76ae
RX(theta₁₅)
7ab709a5a35c4347972a6f5bfc9a740f--a5c8152539824f918e93091bef3f76ae
f20b109c8fc744059fe16452ce273c89
HamEvo
a5c8152539824f918e93091bef3f76ae--f20b109c8fc744059fe16452ce273c89
f30567b5c7d64e2aa984fec487df8866
f20b109c8fc744059fe16452ce273c89--f30567b5c7d64e2aa984fec487df8866
4ba520d865f14e5aba18c17b35d35e27
ece8d6192e3b44708b81fe521975671e
RX(theta₁)
4de7b68beed445b3a55b713038b550f4--ece8d6192e3b44708b81fe521975671e
37e8ad8a16ea4ff3bd82161880777dce
2
8312c499e31842f893c4475859bb2725
RY(theta₄)
ece8d6192e3b44708b81fe521975671e--8312c499e31842f893c4475859bb2725
aa67a0238f524cefbb937d4a15605ca7
RX(theta₇)
8312c499e31842f893c4475859bb2725--aa67a0238f524cefbb937d4a15605ca7
e8457aee178046b7ab229939b680972f
t = theta_t₀
aa67a0238f524cefbb937d4a15605ca7--e8457aee178046b7ab229939b680972f
737c9b58ff1c41e89051596b95d00286
RX(theta₁₀)
e8457aee178046b7ab229939b680972f--737c9b58ff1c41e89051596b95d00286
a61c564c6587491b97afb1e4464b6e8e
RY(theta₁₃)
737c9b58ff1c41e89051596b95d00286--a61c564c6587491b97afb1e4464b6e8e
199fdec29ead43ae94457fab031f2c89
RX(theta₁₆)
a61c564c6587491b97afb1e4464b6e8e--199fdec29ead43ae94457fab031f2c89
4891c81db6a6421cb78846bf9dd94149
t = theta_t₁
199fdec29ead43ae94457fab031f2c89--4891c81db6a6421cb78846bf9dd94149
4891c81db6a6421cb78846bf9dd94149--4ba520d865f14e5aba18c17b35d35e27
49c4a631e93348d38285441f63f3e608
7547c92a2af440ac8246a0943fd27697
RX(theta₂)
37e8ad8a16ea4ff3bd82161880777dce--7547c92a2af440ac8246a0943fd27697
bd3441a7ca0b43ec8f6e0adc4ba0f874
RY(theta₅)
7547c92a2af440ac8246a0943fd27697--bd3441a7ca0b43ec8f6e0adc4ba0f874
6fcd777994304319a805d7eca6513e4c
RX(theta₈)
bd3441a7ca0b43ec8f6e0adc4ba0f874--6fcd777994304319a805d7eca6513e4c
fb74a2e045e545148335248f106c18e3
6fcd777994304319a805d7eca6513e4c--fb74a2e045e545148335248f106c18e3
56686b450c104a97ae5984ca45de1c18
RX(theta₁₁)
fb74a2e045e545148335248f106c18e3--56686b450c104a97ae5984ca45de1c18
bc10416dd95249bba50f86fb9d10ad05
RY(theta₁₄)
56686b450c104a97ae5984ca45de1c18--bc10416dd95249bba50f86fb9d10ad05
d366e73975234444b830016deb82c674
RX(theta₁₇)
bc10416dd95249bba50f86fb9d10ad05--d366e73975234444b830016deb82c674
9b06a55c9aee48c5be0ac2e3258c515f
d366e73975234444b830016deb82c674--9b06a55c9aee48c5be0ac2e3258c515f
9b06a55c9aee48c5be0ac2e3258c515f--49c4a631e93348d38285441f63f3e608
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_927c31e458b3401dbcc652629aa4fa5b
cluster_9339c119621b4f398f66c1021642652e
926c71ba04c247f88161d3973e9d591b
0
9cfb8ebb264b43ad89f2ae0068c01ace
RX(theta₀)
926c71ba04c247f88161d3973e9d591b--9cfb8ebb264b43ad89f2ae0068c01ace
e236d4adaa944195ba949fa77306098e
1
e3fe0461b4994f7cb26ba7c82f370371
RY(theta₆)
9cfb8ebb264b43ad89f2ae0068c01ace--e3fe0461b4994f7cb26ba7c82f370371
fde9b6c883c24d608226e88094b93bc8
RX(theta₁₂)
e3fe0461b4994f7cb26ba7c82f370371--fde9b6c883c24d608226e88094b93bc8
962d8167d26d4665a0b1faf9c12fbfea
fde9b6c883c24d608226e88094b93bc8--962d8167d26d4665a0b1faf9c12fbfea
93a6e5943de44896bb2476962706c78f
RX(theta₁₈)
962d8167d26d4665a0b1faf9c12fbfea--93a6e5943de44896bb2476962706c78f
a5ae63398834429e9a08371f099e62b6
RY(theta₂₄)
93a6e5943de44896bb2476962706c78f--a5ae63398834429e9a08371f099e62b6
b8bfff00d01b464c8cd04e5a795a89a8
RX(theta₃₀)
a5ae63398834429e9a08371f099e62b6--b8bfff00d01b464c8cd04e5a795a89a8
c8151ec395e0496b81b13b70ea74249f
b8bfff00d01b464c8cd04e5a795a89a8--c8151ec395e0496b81b13b70ea74249f
b79d0aa268f74512b40c2bd43289a471
c8151ec395e0496b81b13b70ea74249f--b79d0aa268f74512b40c2bd43289a471
a8408bbba0014cf2b850f7a67ded78b2
e4eb98bc9d69442f9c70c770566d299a
RX(theta₁)
e236d4adaa944195ba949fa77306098e--e4eb98bc9d69442f9c70c770566d299a
31af0dcc1c874dd38dd83eee7234abe6
2
8bb3bc74da2b4cfb88120059d0aa6eab
RY(theta₇)
e4eb98bc9d69442f9c70c770566d299a--8bb3bc74da2b4cfb88120059d0aa6eab
a6911b99f6734b0b98d0b59c7830177c
RX(theta₁₃)
8bb3bc74da2b4cfb88120059d0aa6eab--a6911b99f6734b0b98d0b59c7830177c
fa187e6acc4849c1812c46fb6ae781ef
a6911b99f6734b0b98d0b59c7830177c--fa187e6acc4849c1812c46fb6ae781ef
a651fb0a9b6d46079c0910c553b6f199
RX(theta₁₉)
fa187e6acc4849c1812c46fb6ae781ef--a651fb0a9b6d46079c0910c553b6f199
b8f6682407f242629b13456167b11207
RY(theta₂₅)
a651fb0a9b6d46079c0910c553b6f199--b8f6682407f242629b13456167b11207
db575994ba1e44ae81633e1682e7d206
RX(theta₃₁)
b8f6682407f242629b13456167b11207--db575994ba1e44ae81633e1682e7d206
fa642e78fe1c4ce4b0e89a7317e0be84
db575994ba1e44ae81633e1682e7d206--fa642e78fe1c4ce4b0e89a7317e0be84
fa642e78fe1c4ce4b0e89a7317e0be84--a8408bbba0014cf2b850f7a67ded78b2
c29bc80d718a4d4f82a2b108d81d37a0
130e744d0bad4078837677e49019bebd
RX(theta₂)
31af0dcc1c874dd38dd83eee7234abe6--130e744d0bad4078837677e49019bebd
e3214ad5f73a4436b85c525538907483
3
d1bb17357c614fe69fedabd045248ada
RY(theta₈)
130e744d0bad4078837677e49019bebd--d1bb17357c614fe69fedabd045248ada
bfbb0d41327a4f4aae8810e2cccedbfd
RX(theta₁₄)
d1bb17357c614fe69fedabd045248ada--bfbb0d41327a4f4aae8810e2cccedbfd
098706a4d92d49898971e8588038c026
HamEvo
bfbb0d41327a4f4aae8810e2cccedbfd--098706a4d92d49898971e8588038c026
48aa579d5f2240749c9247c94bbe2d11
RX(theta₂₀)
098706a4d92d49898971e8588038c026--48aa579d5f2240749c9247c94bbe2d11
c9c3cb0d01e140b381df68f5b4008b68
RY(theta₂₆)
48aa579d5f2240749c9247c94bbe2d11--c9c3cb0d01e140b381df68f5b4008b68
4ac4997afe234f76afe2e44301e8b4a0
RX(theta₃₂)
c9c3cb0d01e140b381df68f5b4008b68--4ac4997afe234f76afe2e44301e8b4a0
eb0956d255c9426fa14a170fefa89639
HamEvo
4ac4997afe234f76afe2e44301e8b4a0--eb0956d255c9426fa14a170fefa89639
eb0956d255c9426fa14a170fefa89639--c29bc80d718a4d4f82a2b108d81d37a0
1f6d0eca88754a8a8500400bb7560249
8855ed5a338949aa894c96ce82052560
RX(theta₃)
e3214ad5f73a4436b85c525538907483--8855ed5a338949aa894c96ce82052560
ebbb1dd76ae84ae3b7058a60e6e19244
4
f18ffa3a99ab45b9938f5c10eec349cb
RY(theta₉)
8855ed5a338949aa894c96ce82052560--f18ffa3a99ab45b9938f5c10eec349cb
c414ef1d0b0c4065be1184b1ff4e15df
RX(theta₁₅)
f18ffa3a99ab45b9938f5c10eec349cb--c414ef1d0b0c4065be1184b1ff4e15df
8816c73438dd4b978f20fdd465cabf16
t = theta_t₀
c414ef1d0b0c4065be1184b1ff4e15df--8816c73438dd4b978f20fdd465cabf16
5621ec502f7e4f918290ad7733d9bbca
RX(theta₂₁)
8816c73438dd4b978f20fdd465cabf16--5621ec502f7e4f918290ad7733d9bbca
ba8d26fa49cf4e8b867184fe0c483508
RY(theta₂₇)
5621ec502f7e4f918290ad7733d9bbca--ba8d26fa49cf4e8b867184fe0c483508
bcdcf2839281458eaf8598c75c52e7e3
RX(theta₃₃)
ba8d26fa49cf4e8b867184fe0c483508--bcdcf2839281458eaf8598c75c52e7e3
2424e4efc0d9404fa1eb6d41ef3275f8
t = theta_t₁
bcdcf2839281458eaf8598c75c52e7e3--2424e4efc0d9404fa1eb6d41ef3275f8
2424e4efc0d9404fa1eb6d41ef3275f8--1f6d0eca88754a8a8500400bb7560249
a42c62328bea45c5adf3e29a13fa18d7
fb670ece919d4e0e9b81517a543a1dc4
RX(theta₄)
ebbb1dd76ae84ae3b7058a60e6e19244--fb670ece919d4e0e9b81517a543a1dc4
b560ddeab036438fa54ff3187bed1948
5
91648c03347046628cfff4db02e4d58e
RY(theta₁₀)
fb670ece919d4e0e9b81517a543a1dc4--91648c03347046628cfff4db02e4d58e
bbb037e63dcb4ee799a3fe018789db24
RX(theta₁₆)
91648c03347046628cfff4db02e4d58e--bbb037e63dcb4ee799a3fe018789db24
83ec7a5f0ef340b89e377f00fc897a84
bbb037e63dcb4ee799a3fe018789db24--83ec7a5f0ef340b89e377f00fc897a84
86b828d5c3e04434969ad8c1427d6731
RX(theta₂₂)
83ec7a5f0ef340b89e377f00fc897a84--86b828d5c3e04434969ad8c1427d6731
33cb8db354d04fcf8e1c5fbe83bfc3f6
RY(theta₂₈)
86b828d5c3e04434969ad8c1427d6731--33cb8db354d04fcf8e1c5fbe83bfc3f6
b538917978ac43499e7348d6706e97ef
RX(theta₃₄)
33cb8db354d04fcf8e1c5fbe83bfc3f6--b538917978ac43499e7348d6706e97ef
b4634fbed008472a98f18c4a0260b803
b538917978ac43499e7348d6706e97ef--b4634fbed008472a98f18c4a0260b803
b4634fbed008472a98f18c4a0260b803--a42c62328bea45c5adf3e29a13fa18d7
9648049e78794183bc431ac6e282e0e7
96602eb3332a4b859975328a22770f8a
RX(theta₅)
b560ddeab036438fa54ff3187bed1948--96602eb3332a4b859975328a22770f8a
117205a003c841ff8b7ba029546bb94e
RY(theta₁₁)
96602eb3332a4b859975328a22770f8a--117205a003c841ff8b7ba029546bb94e
c7c2bbbb183e4a098f58e64c3e7cc839
RX(theta₁₇)
117205a003c841ff8b7ba029546bb94e--c7c2bbbb183e4a098f58e64c3e7cc839
45eca65c6ce64928b086703e8fd282c0
c7c2bbbb183e4a098f58e64c3e7cc839--45eca65c6ce64928b086703e8fd282c0
6cf95e24cdc847d3a4e8842bd3ec3eff
RX(theta₂₃)
45eca65c6ce64928b086703e8fd282c0--6cf95e24cdc847d3a4e8842bd3ec3eff
34bf40a3bded4a3b90f25ed92584598e
RY(theta₂₉)
6cf95e24cdc847d3a4e8842bd3ec3eff--34bf40a3bded4a3b90f25ed92584598e
4d80ab4562fd4997b24e09f490bcd6a6
RX(theta₃₅)
34bf40a3bded4a3b90f25ed92584598e--4d80ab4562fd4997b24e09f490bcd6a6
36c291682dbd47b88632c2d6cd33e9ab
4d80ab4562fd4997b24e09f490bcd6a6--36c291682dbd47b88632c2d6cd33e9ab
36c291682dbd47b88632c2d6cd33e9ab--9648049e78794183bc431ac6e282e0e7
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_53df082dd2f147289f60f1358af22664
BPMA-1
cluster_e73d1c238abe467d99d77e95394d0cad
BPMA-0
6a72eb002d1243b9bc643e42eafccc62
0
a8ca81fb379a449b96f52f9a25d5fa1c
RX(iia_α₀₀)
6a72eb002d1243b9bc643e42eafccc62--a8ca81fb379a449b96f52f9a25d5fa1c
2c5d9626a61547128151f8bc0aab037b
1
fa84b500853846218d25deae2ab54f7a
RY(iia_α₀₃)
a8ca81fb379a449b96f52f9a25d5fa1c--fa84b500853846218d25deae2ab54f7a
af64d626dce049b0b63b27a4408d9df4
fa84b500853846218d25deae2ab54f7a--af64d626dce049b0b63b27a4408d9df4
4415be447292426e8a44091d8ff6bca0
af64d626dce049b0b63b27a4408d9df4--4415be447292426e8a44091d8ff6bca0
cba8d8659d484d9d945795c83c2dc843
RX(iia_γ₀₀)
4415be447292426e8a44091d8ff6bca0--cba8d8659d484d9d945795c83c2dc843
f1422dfb858c4459996837f0d73657b7
cba8d8659d484d9d945795c83c2dc843--f1422dfb858c4459996837f0d73657b7
71e2dab0d3d84185993dabd5887da974
f1422dfb858c4459996837f0d73657b7--71e2dab0d3d84185993dabd5887da974
9690e7def98b49b6aab24b5e46b6ca51
RY(iia_β₀₃)
71e2dab0d3d84185993dabd5887da974--9690e7def98b49b6aab24b5e46b6ca51
96d69ebe41d5410dbff47b71fbc0d950
RX(iia_β₀₀)
9690e7def98b49b6aab24b5e46b6ca51--96d69ebe41d5410dbff47b71fbc0d950
eb1998129b14462eb34db547a5ee8528
RX(iia_α₁₀)
96d69ebe41d5410dbff47b71fbc0d950--eb1998129b14462eb34db547a5ee8528
59ae720eeec249b49dc6cc22c63118ca
RY(iia_α₁₃)
eb1998129b14462eb34db547a5ee8528--59ae720eeec249b49dc6cc22c63118ca
1324cd5e4ade4c0cb02eefb9d5215b69
59ae720eeec249b49dc6cc22c63118ca--1324cd5e4ade4c0cb02eefb9d5215b69
72b7c66ec96549228a69c8e9f8365b9d
1324cd5e4ade4c0cb02eefb9d5215b69--72b7c66ec96549228a69c8e9f8365b9d
8e69b128235f47bbb0524f3d88d3b9cf
RX(iia_γ₁₀)
72b7c66ec96549228a69c8e9f8365b9d--8e69b128235f47bbb0524f3d88d3b9cf
61118e48182e4967b66ebae95e7b69c1
8e69b128235f47bbb0524f3d88d3b9cf--61118e48182e4967b66ebae95e7b69c1
2842810380714c0b9e5013a68468605a
61118e48182e4967b66ebae95e7b69c1--2842810380714c0b9e5013a68468605a
37cdd980ef00466693fc3e8ed04d3298
RY(iia_β₁₃)
2842810380714c0b9e5013a68468605a--37cdd980ef00466693fc3e8ed04d3298
49cb094fbf4f4c609c8e21bd41d74f71
RX(iia_β₁₀)
37cdd980ef00466693fc3e8ed04d3298--49cb094fbf4f4c609c8e21bd41d74f71
1d8caf4ee25d42fab7030e675275696a
49cb094fbf4f4c609c8e21bd41d74f71--1d8caf4ee25d42fab7030e675275696a
0225fcdb798846889a4afea7577f9409
4599f7abb87e47eeb180e3cb0bceaa3a
RX(iia_α₀₁)
2c5d9626a61547128151f8bc0aab037b--4599f7abb87e47eeb180e3cb0bceaa3a
56ed15dee5634196a03df8bc8eb24e45
2
37526502d7fc4d4bb63820d6b973f2dc
RY(iia_α₀₄)
4599f7abb87e47eeb180e3cb0bceaa3a--37526502d7fc4d4bb63820d6b973f2dc
7dcadeee445445a289ab70deac87dfa4
X
37526502d7fc4d4bb63820d6b973f2dc--7dcadeee445445a289ab70deac87dfa4
7dcadeee445445a289ab70deac87dfa4--af64d626dce049b0b63b27a4408d9df4
c1d21d485ba1442f913b0b9c6f833a31
7dcadeee445445a289ab70deac87dfa4--c1d21d485ba1442f913b0b9c6f833a31
489a6512268c47198bc24df39a12a4bb
RX(iia_γ₀₁)
c1d21d485ba1442f913b0b9c6f833a31--489a6512268c47198bc24df39a12a4bb
8406f47073314613be0d334cc7151e09
489a6512268c47198bc24df39a12a4bb--8406f47073314613be0d334cc7151e09
eba67a8ccf4d4d4faa632ab25cbb09d8
X
8406f47073314613be0d334cc7151e09--eba67a8ccf4d4d4faa632ab25cbb09d8
eba67a8ccf4d4d4faa632ab25cbb09d8--71e2dab0d3d84185993dabd5887da974
283adebff0024b2e92f9775efe5e7c7f
RY(iia_β₀₄)
eba67a8ccf4d4d4faa632ab25cbb09d8--283adebff0024b2e92f9775efe5e7c7f
a392c17db8054f64ac08ae784a258ef5
RX(iia_β₀₁)
283adebff0024b2e92f9775efe5e7c7f--a392c17db8054f64ac08ae784a258ef5
fdb6f20bd36e4f1a81d180970360b06f
RX(iia_α₁₁)
a392c17db8054f64ac08ae784a258ef5--fdb6f20bd36e4f1a81d180970360b06f
2e4edcf7e41f4e4b8970fda19adb71e2
RY(iia_α₁₄)
fdb6f20bd36e4f1a81d180970360b06f--2e4edcf7e41f4e4b8970fda19adb71e2
93b5b7fcc3644cac8ba491fb4a7ecadc
X
2e4edcf7e41f4e4b8970fda19adb71e2--93b5b7fcc3644cac8ba491fb4a7ecadc
93b5b7fcc3644cac8ba491fb4a7ecadc--1324cd5e4ade4c0cb02eefb9d5215b69
76e2b56b489b4fa985a276eb4de8db8f
93b5b7fcc3644cac8ba491fb4a7ecadc--76e2b56b489b4fa985a276eb4de8db8f
d19c01df267440aabcd7ab43ab4210d3
RX(iia_γ₁₁)
76e2b56b489b4fa985a276eb4de8db8f--d19c01df267440aabcd7ab43ab4210d3
9cd62f19b9e5478883d6127f9e0ad729
d19c01df267440aabcd7ab43ab4210d3--9cd62f19b9e5478883d6127f9e0ad729
6bfaee789d1c4c43a4581da01091f23f
X
9cd62f19b9e5478883d6127f9e0ad729--6bfaee789d1c4c43a4581da01091f23f
6bfaee789d1c4c43a4581da01091f23f--2842810380714c0b9e5013a68468605a
6a65fde176734bed9e760f81c63ed984
RY(iia_β₁₄)
6bfaee789d1c4c43a4581da01091f23f--6a65fde176734bed9e760f81c63ed984
2f3e9369c3cf47ac8c8e71135f230394
RX(iia_β₁₁)
6a65fde176734bed9e760f81c63ed984--2f3e9369c3cf47ac8c8e71135f230394
2f3e9369c3cf47ac8c8e71135f230394--0225fcdb798846889a4afea7577f9409
bf5efaf3a5844fc29f06f5685021952c
1b599e5bd69f48bf833d93c02c6a3e35
RX(iia_α₀₂)
56ed15dee5634196a03df8bc8eb24e45--1b599e5bd69f48bf833d93c02c6a3e35
314cce38f65a4f918c0395aec901d583
RY(iia_α₀₅)
1b599e5bd69f48bf833d93c02c6a3e35--314cce38f65a4f918c0395aec901d583
ca3544f5ccdb4b5783498708d2a680c3
314cce38f65a4f918c0395aec901d583--ca3544f5ccdb4b5783498708d2a680c3
7f42222bd9d64f34a73e7f55c9942166
X
ca3544f5ccdb4b5783498708d2a680c3--7f42222bd9d64f34a73e7f55c9942166
7f42222bd9d64f34a73e7f55c9942166--c1d21d485ba1442f913b0b9c6f833a31
5333558974894e2fb1bdb0999a56284b
RX(iia_γ₀₂)
7f42222bd9d64f34a73e7f55c9942166--5333558974894e2fb1bdb0999a56284b
0b1c20c01a894b3c9df2d3534890573a
X
5333558974894e2fb1bdb0999a56284b--0b1c20c01a894b3c9df2d3534890573a
0b1c20c01a894b3c9df2d3534890573a--8406f47073314613be0d334cc7151e09
ec8766d3170247f0bee31d1919c3b82f
0b1c20c01a894b3c9df2d3534890573a--ec8766d3170247f0bee31d1919c3b82f
ffaaf2c2b1524a9cb7a3652cb630d63b
RY(iia_β₀₅)
ec8766d3170247f0bee31d1919c3b82f--ffaaf2c2b1524a9cb7a3652cb630d63b
46aafdee45c842c7859cea54bfc35779
RX(iia_β₀₂)
ffaaf2c2b1524a9cb7a3652cb630d63b--46aafdee45c842c7859cea54bfc35779
e322b444429d484d8e3caabe74de6ff0
RX(iia_α₁₂)
46aafdee45c842c7859cea54bfc35779--e322b444429d484d8e3caabe74de6ff0
a399b26442634e69933cd0087de399b9
RY(iia_α₁₅)
e322b444429d484d8e3caabe74de6ff0--a399b26442634e69933cd0087de399b9
bcaa8fb33e8c4ba1aee6f44c67def59d
a399b26442634e69933cd0087de399b9--bcaa8fb33e8c4ba1aee6f44c67def59d
9dbf086bc55542339d54e3804c50c002
X
bcaa8fb33e8c4ba1aee6f44c67def59d--9dbf086bc55542339d54e3804c50c002
9dbf086bc55542339d54e3804c50c002--76e2b56b489b4fa985a276eb4de8db8f
d263c373b32944d2820e67182ac1b1c0
RX(iia_γ₁₂)
9dbf086bc55542339d54e3804c50c002--d263c373b32944d2820e67182ac1b1c0
32ea094a8fbc456fbd5005f3ef004efa
X
d263c373b32944d2820e67182ac1b1c0--32ea094a8fbc456fbd5005f3ef004efa
32ea094a8fbc456fbd5005f3ef004efa--9cd62f19b9e5478883d6127f9e0ad729
38e792078f0a4127af78b7b0dc2aaa11
32ea094a8fbc456fbd5005f3ef004efa--38e792078f0a4127af78b7b0dc2aaa11
8f6175bfac7a465984dcbc26c29cc489
RY(iia_β₁₅)
38e792078f0a4127af78b7b0dc2aaa11--8f6175bfac7a465984dcbc26c29cc489
321406b860c34b919cdac1e74ce36380
RX(iia_β₁₂)
8f6175bfac7a465984dcbc26c29cc489--321406b860c34b919cdac1e74ce36380
321406b860c34b919cdac1e74ce36380--bf5efaf3a5844fc29f06f5685021952c