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_14f6b590ff2941298f42c67ae7470cb3
Constant Chebyshev FM
cluster_92328fac64dd46e0bb6c207a29224d5c
Constant Fourier FM
1791de53183b4821b8e07890e4640a56
0
30eb1b663fcf47ff8745a4028fdc4ee5
RX(phi)
1791de53183b4821b8e07890e4640a56--30eb1b663fcf47ff8745a4028fdc4ee5
e78c9af10591440ab78fc3e80a9db80b
1
dbfb2d90ef714f9eb1faf1e24fc5e93f
RX(acos(phi))
30eb1b663fcf47ff8745a4028fdc4ee5--dbfb2d90ef714f9eb1faf1e24fc5e93f
aaf04984be464dda8c64690dcd858456
dbfb2d90ef714f9eb1faf1e24fc5e93f--aaf04984be464dda8c64690dcd858456
d9324f1607a94cc8af066f10027146b5
5d6cdae01f0f48e3ac78b229fae67d57
RX(phi)
e78c9af10591440ab78fc3e80a9db80b--5d6cdae01f0f48e3ac78b229fae67d57
09dd27abac4948ca9f60d65cdab872a5
2
ab011143ca2749acae92974b83747509
RX(acos(phi))
5d6cdae01f0f48e3ac78b229fae67d57--ab011143ca2749acae92974b83747509
ab011143ca2749acae92974b83747509--d9324f1607a94cc8af066f10027146b5
acddc9befe894b18a78441e2b6c40a65
c4e7d241dd1145f5830d79abf21f01e7
RX(phi)
09dd27abac4948ca9f60d65cdab872a5--c4e7d241dd1145f5830d79abf21f01e7
a5e713494a594c6c903cfca3738a65c0
RX(acos(phi))
c4e7d241dd1145f5830d79abf21f01e7--a5e713494a594c6c903cfca3738a65c0
a5e713494a594c6c903cfca3738a65c0--acddc9befe894b18a78441e2b6c40a65
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_02f18673560f470892035672cf41a6fb
Constant <function custom_fn at 0x7fa5712ec9d0> FM
cluster_a4d3ef299dc4429ba78dbde80cf95a4b
Constant asin FM
b1b3e22958d540978d0bd4f2251c0d80
0
3568413b94054a7da4aa4b6dd19389f8
RX(asin(phi))
b1b3e22958d540978d0bd4f2251c0d80--3568413b94054a7da4aa4b6dd19389f8
1d1b120001ec4958b43660c0f667ec08
1
1087d6f1a7984a90b34d894e5876d931
RX(phi**2 + asin(phi))
3568413b94054a7da4aa4b6dd19389f8--1087d6f1a7984a90b34d894e5876d931
e41c2e7d867e4248bb7dd7a82bcc3275
1087d6f1a7984a90b34d894e5876d931--e41c2e7d867e4248bb7dd7a82bcc3275
a840b8917d9c4bb58908e024b02142b1
985e70fa5b0d497999a8cf82ac3dac5c
RX(asin(phi))
1d1b120001ec4958b43660c0f667ec08--985e70fa5b0d497999a8cf82ac3dac5c
ed0814620f234315bfde9d64b64a4f92
2
08230fa2caad4d7caf3b8883914642f2
RX(phi**2 + asin(phi))
985e70fa5b0d497999a8cf82ac3dac5c--08230fa2caad4d7caf3b8883914642f2
08230fa2caad4d7caf3b8883914642f2--a840b8917d9c4bb58908e024b02142b1
e5186f50bae0410d862fabd67407c543
f1181c34758e49c79ccc2896ff9f6f01
RX(asin(phi))
ed0814620f234315bfde9d64b64a4f92--f1181c34758e49c79ccc2896ff9f6f01
7ef9dafd5b574389a30ccf8945443b81
RX(phi**2 + asin(phi))
f1181c34758e49c79ccc2896ff9f6f01--7ef9dafd5b574389a30ccf8945443b81
7ef9dafd5b574389a30ccf8945443b81--e5186f50bae0410d862fabd67407c543
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_ad68f74fb56f400e906a6e712e149946
Exponential Fourier FM
cluster_4a8c4807e4d44716afc61a3fad854ba3
Constant Fourier FM
cluster_5e0baef3681d483dbdc7b2d4c425ba51
Tower Fourier FM
8812a663954a4fbf85aa452765334591
0
f4c4621976744608a6e7877ab7f98050
RX(phi)
8812a663954a4fbf85aa452765334591--f4c4621976744608a6e7877ab7f98050
edaf5d331fc340eb8326aec769f8e139
1
ece1058ba56c41f7a90d03a0744f7319
RX(1.0*phi)
f4c4621976744608a6e7877ab7f98050--ece1058ba56c41f7a90d03a0744f7319
05ea6cf58b5e4b04be41e62d3f7120a5
RX(1.0*phi)
ece1058ba56c41f7a90d03a0744f7319--05ea6cf58b5e4b04be41e62d3f7120a5
4130d03dcd8a4cb99c1c427f5077e5da
05ea6cf58b5e4b04be41e62d3f7120a5--4130d03dcd8a4cb99c1c427f5077e5da
2f3290701e4745f0b83be9c0f567083f
c32d66558e3a4cef8886332164385069
RX(phi)
edaf5d331fc340eb8326aec769f8e139--c32d66558e3a4cef8886332164385069
7098de06045a48a5bcec27a66636e493
2
f7fb6b0dea914e429d7e0dc25bdfd632
RX(2.0*phi)
c32d66558e3a4cef8886332164385069--f7fb6b0dea914e429d7e0dc25bdfd632
d95c6dcb37284b22996e56a52de61376
RX(2.0*phi)
f7fb6b0dea914e429d7e0dc25bdfd632--d95c6dcb37284b22996e56a52de61376
d95c6dcb37284b22996e56a52de61376--2f3290701e4745f0b83be9c0f567083f
3044aca9788243abb5fe13cea0437afc
6212542378d3402fae5b7169bba09f70
RX(phi)
7098de06045a48a5bcec27a66636e493--6212542378d3402fae5b7169bba09f70
db63c9eaad9b4fefb6a8e166ec4dd678
3
ddc46f604d2a499bad90a13bf8e1a89b
RX(3.0*phi)
6212542378d3402fae5b7169bba09f70--ddc46f604d2a499bad90a13bf8e1a89b
1163b0d01866499dbfe2a4602e8b5788
RX(4.0*phi)
ddc46f604d2a499bad90a13bf8e1a89b--1163b0d01866499dbfe2a4602e8b5788
1163b0d01866499dbfe2a4602e8b5788--3044aca9788243abb5fe13cea0437afc
b54b7e772d7c4dfb920a2a724c9e0b1d
134ad906dee446cba5859812634717d6
RX(phi)
db63c9eaad9b4fefb6a8e166ec4dd678--134ad906dee446cba5859812634717d6
7db35cd8a27f488194d1380b9161cb1f
4
092fa2a110da4df696b0518dae62b519
RX(4.0*phi)
134ad906dee446cba5859812634717d6--092fa2a110da4df696b0518dae62b519
6d9f21eb0f5a43dfba53c3175fc33de1
RX(8.0*phi)
092fa2a110da4df696b0518dae62b519--6d9f21eb0f5a43dfba53c3175fc33de1
6d9f21eb0f5a43dfba53c3175fc33de1--b54b7e772d7c4dfb920a2a724c9e0b1d
bbef7c3f8a40433885309ed66ab54dea
9c5a7bb067f141d5b961f435bb919395
RX(phi)
7db35cd8a27f488194d1380b9161cb1f--9c5a7bb067f141d5b961f435bb919395
25df2266392a4f94a978d0b16769b513
RX(5.0*phi)
9c5a7bb067f141d5b961f435bb919395--25df2266392a4f94a978d0b16769b513
0f7720302e0c400983068373c9dc1ba6
RX(16.0*phi)
25df2266392a4f94a978d0b16769b513--0f7720302e0c400983068373c9dc1ba6
0f7720302e0c400983068373c9dc1ba6--bbef7c3f8a40433885309ed66ab54dea
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
d1a9df5dec344f599daae14b4cafd725
0
efd7176ecec34eb4a0e53e9b2924f41f
RX(1.0*acos(phi))
d1a9df5dec344f599daae14b4cafd725--efd7176ecec34eb4a0e53e9b2924f41f
fef5dbbebabb4490835a48f7dbe9302c
1
c3a2ffa22b844cf59180f3538150c8df
efd7176ecec34eb4a0e53e9b2924f41f--c3a2ffa22b844cf59180f3538150c8df
19ebce16f6bc4ab1abb160dcf90c0333
b4677a40d5734efca25028cd0b2e420c
RX(1.414*acos(phi))
fef5dbbebabb4490835a48f7dbe9302c--b4677a40d5734efca25028cd0b2e420c
7e9a7f49ca334984ab1bd2343db669e8
2
b4677a40d5734efca25028cd0b2e420c--19ebce16f6bc4ab1abb160dcf90c0333
8ee7b706c8f046dbab46c9ac8dfa6ad8
1145a18a19b7473a92e9b59051ed8874
RX(1.732*acos(phi))
7e9a7f49ca334984ab1bd2343db669e8--1145a18a19b7473a92e9b59051ed8874
7df517b2a4d642e4b2c43a2cf85e667d
3
1145a18a19b7473a92e9b59051ed8874--8ee7b706c8f046dbab46c9ac8dfa6ad8
a0d0ac4ab0854779a5a05bc58f671bea
c3fee1fb850d4dbeb5097f1103a70222
RX(2.0*acos(phi))
7df517b2a4d642e4b2c43a2cf85e667d--c3fee1fb850d4dbeb5097f1103a70222
cdc20fa7ee034d498ac4f7996cd96f0a
4
c3fee1fb850d4dbeb5097f1103a70222--a0d0ac4ab0854779a5a05bc58f671bea
943d834e714b49c4a114986231270abf
87ab2c7b93324e27bbbccf1237f90e52
RX(2.236*acos(phi))
cdc20fa7ee034d498ac4f7996cd96f0a--87ab2c7b93324e27bbbccf1237f90e52
87ab2c7b93324e27bbbccf1237f90e52--943d834e714b49c4a114986231270abf
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
4cf758099c3a427d945a455541aadb92
0
d3640a9fa5a646e9ba2c4755c0e2d955
RX(1.0*phi*w₀)
4cf758099c3a427d945a455541aadb92--d3640a9fa5a646e9ba2c4755c0e2d955
6dc75369468d426994472fc01414d9a9
1
3d5cc239c46b4d6fb346da0a1ffb8b8a
d3640a9fa5a646e9ba2c4755c0e2d955--3d5cc239c46b4d6fb346da0a1ffb8b8a
bb666ed8e2484aa0964c554a1fe30569
61184cea43cc4c37a9b0c6f111cfad49
RX(2.0*phi*w₁)
6dc75369468d426994472fc01414d9a9--61184cea43cc4c37a9b0c6f111cfad49
1b4b285041474daeafbb4f69b61667d5
2
61184cea43cc4c37a9b0c6f111cfad49--bb666ed8e2484aa0964c554a1fe30569
8ba3af7761614c169ce6c4971b326547
c2b422cd652f41b68b0d62c6647ff5b6
RX(4.0*phi*w₂)
1b4b285041474daeafbb4f69b61667d5--c2b422cd652f41b68b0d62c6647ff5b6
a322eb4289534adcbcd364e2799f965e
3
c2b422cd652f41b68b0d62c6647ff5b6--8ba3af7761614c169ce6c4971b326547
bcca91bb806a42e3a47ebc3f010472fa
d29404ed12034e358d9c4ad0215843ce
RX(8.0*phi*w₃)
a322eb4289534adcbcd364e2799f965e--d29404ed12034e358d9c4ad0215843ce
74e7fefb2d484b9a8842e91e2b99f64f
4
d29404ed12034e358d9c4ad0215843ce--bcca91bb806a42e3a47ebc3f010472fa
8d621c01551c4ec5a589af3fec43e2a1
a96baecabe2841ee9377d6c73e65e4ea
RX(16.0*phi*w₄)
74e7fefb2d484b9a8842e91e2b99f64f--a96baecabe2841ee9377d6c73e65e4ea
a96baecabe2841ee9377d6c73e65e4ea--8d621c01551c4ec5a589af3fec43e2a1
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
48819c1a380d4b5e863581c78b707a54
0
ff61bb1eb1444642a3a5bbabbc6720a2
RY(80.0*acos(w₄*(0.667*x + 1.667)))
48819c1a380d4b5e863581c78b707a54--ff61bb1eb1444642a3a5bbabbc6720a2
6776c481372f4c368abc6603d03a162a
1
b693914d72964bd68e7c5ee2041638de
ff61bb1eb1444642a3a5bbabbc6720a2--b693914d72964bd68e7c5ee2041638de
62878bdc37f94a6e9178dd7b46c58e9a
22c6fc54a91d42f49bb3106cb3dd41c2
RY(40.0*acos(w₃*(0.667*x + 1.667)))
6776c481372f4c368abc6603d03a162a--22c6fc54a91d42f49bb3106cb3dd41c2
39a7bf361b1b42d4abdde501f68dcf04
2
22c6fc54a91d42f49bb3106cb3dd41c2--62878bdc37f94a6e9178dd7b46c58e9a
1c615d8151314ddc91b296012c6a03e2
88bbc38c3d9741808d33d58df244b00d
RY(20.0*acos(w₂*(0.667*x + 1.667)))
39a7bf361b1b42d4abdde501f68dcf04--88bbc38c3d9741808d33d58df244b00d
8dcc2fad38db403eafcaae306d9c952b
3
88bbc38c3d9741808d33d58df244b00d--1c615d8151314ddc91b296012c6a03e2
ffbbb8f6d512486aa8a45b02187f0f54
0414175d84ee44beabf67b0a892858cc
RY(10.0*acos(w₁*(0.667*x + 1.667)))
8dcc2fad38db403eafcaae306d9c952b--0414175d84ee44beabf67b0a892858cc
a695d48ba9e34804bec720dc18d0dc07
4
0414175d84ee44beabf67b0a892858cc--ffbbb8f6d512486aa8a45b02187f0f54
d51ad2254e114fef83840c1ffa62cbfe
f0a95e8852104d389426eda009e05a30
RY(5.0*acos(w₀*(0.667*x + 1.667)))
a695d48ba9e34804bec720dc18d0dc07--f0a95e8852104d389426eda009e05a30
f0a95e8852104d389426eda009e05a30--d51ad2254e114fef83840c1ffa62cbfe
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
e4684996b20d4d2abf425c758df9ad5a
0
8dc6543fa98743dc997d7065a4f397a0
RX(theta₀)
e4684996b20d4d2abf425c758df9ad5a--8dc6543fa98743dc997d7065a4f397a0
b755fef93e6540ad969e085134aa4343
1
1c3fcdce43ea45449f25eb595f63d20d
RY(theta₃)
8dc6543fa98743dc997d7065a4f397a0--1c3fcdce43ea45449f25eb595f63d20d
ea9c99e2b7df4272b2cc372517d97461
RX(theta₆)
1c3fcdce43ea45449f25eb595f63d20d--ea9c99e2b7df4272b2cc372517d97461
30d538ade96040bfbc3859d467370900
ea9c99e2b7df4272b2cc372517d97461--30d538ade96040bfbc3859d467370900
149fb4ce46ac43d1b4aaf70b8bb8b29a
30d538ade96040bfbc3859d467370900--149fb4ce46ac43d1b4aaf70b8bb8b29a
c7deb27fe45641039892ee037fc70533
RX(theta₉)
149fb4ce46ac43d1b4aaf70b8bb8b29a--c7deb27fe45641039892ee037fc70533
7d62bcf5901744b5a621a2b07c2b94e5
RY(theta₁₂)
c7deb27fe45641039892ee037fc70533--7d62bcf5901744b5a621a2b07c2b94e5
2870db7fcd49433d8d72b86d172db1a8
RX(theta₁₅)
7d62bcf5901744b5a621a2b07c2b94e5--2870db7fcd49433d8d72b86d172db1a8
d16510111e714e11acfa6d195e6f896d
2870db7fcd49433d8d72b86d172db1a8--d16510111e714e11acfa6d195e6f896d
1a3337de182e49c0a592d937a25826d8
d16510111e714e11acfa6d195e6f896d--1a3337de182e49c0a592d937a25826d8
c111e1636e2745f1bc1a96a5bd31da36
1a3337de182e49c0a592d937a25826d8--c111e1636e2745f1bc1a96a5bd31da36
84bc4193a2194950a2413a384e424129
dcc47898f8dd4110b81e5ab4e591a714
RX(theta₁)
b755fef93e6540ad969e085134aa4343--dcc47898f8dd4110b81e5ab4e591a714
961504bb4bd44c8da5bf5f727887fc64
2
d543fdf5ad9349abb536d9fef12d5121
RY(theta₄)
dcc47898f8dd4110b81e5ab4e591a714--d543fdf5ad9349abb536d9fef12d5121
5faf71fc2572462887ca8451800dd999
RX(theta₇)
d543fdf5ad9349abb536d9fef12d5121--5faf71fc2572462887ca8451800dd999
00b983363ea74ec28c796bf3af0a0a9b
X
5faf71fc2572462887ca8451800dd999--00b983363ea74ec28c796bf3af0a0a9b
00b983363ea74ec28c796bf3af0a0a9b--30d538ade96040bfbc3859d467370900
42fd71eb07fe4f349b426a96fd92695e
00b983363ea74ec28c796bf3af0a0a9b--42fd71eb07fe4f349b426a96fd92695e
afb7307676004302a5ecfce734cb2b36
RX(theta₁₀)
42fd71eb07fe4f349b426a96fd92695e--afb7307676004302a5ecfce734cb2b36
594141048ae9453890a078f9556e1627
RY(theta₁₃)
afb7307676004302a5ecfce734cb2b36--594141048ae9453890a078f9556e1627
0d257cd5551c42edab3c3b70c1aaca41
RX(theta₁₆)
594141048ae9453890a078f9556e1627--0d257cd5551c42edab3c3b70c1aaca41
c1e03c19e9fe459a881b0cbcb7c4ad6d
X
0d257cd5551c42edab3c3b70c1aaca41--c1e03c19e9fe459a881b0cbcb7c4ad6d
c1e03c19e9fe459a881b0cbcb7c4ad6d--d16510111e714e11acfa6d195e6f896d
5a265036ba364c01a26f04777c61c5bf
c1e03c19e9fe459a881b0cbcb7c4ad6d--5a265036ba364c01a26f04777c61c5bf
5a265036ba364c01a26f04777c61c5bf--84bc4193a2194950a2413a384e424129
7c30279e805d43a6900c3ce55fc7ce99
777ea7b5107443aa9d87d60dddef6bb1
RX(theta₂)
961504bb4bd44c8da5bf5f727887fc64--777ea7b5107443aa9d87d60dddef6bb1
32309645b6b24f7c9c66654980e09647
RY(theta₅)
777ea7b5107443aa9d87d60dddef6bb1--32309645b6b24f7c9c66654980e09647
dce6a7468c9a44cf8ccabe58ada5e52a
RX(theta₈)
32309645b6b24f7c9c66654980e09647--dce6a7468c9a44cf8ccabe58ada5e52a
4d7a2bfcb3c04aeaa4fed282e4085818
dce6a7468c9a44cf8ccabe58ada5e52a--4d7a2bfcb3c04aeaa4fed282e4085818
cb62e80ffbfe4f1e98d3d46812fe230e
X
4d7a2bfcb3c04aeaa4fed282e4085818--cb62e80ffbfe4f1e98d3d46812fe230e
cb62e80ffbfe4f1e98d3d46812fe230e--42fd71eb07fe4f349b426a96fd92695e
a232f1d8a6174982aa4ca20a18c1d747
RX(theta₁₁)
cb62e80ffbfe4f1e98d3d46812fe230e--a232f1d8a6174982aa4ca20a18c1d747
df1b1cebd8fe42c1984d38b53bec3350
RY(theta₁₄)
a232f1d8a6174982aa4ca20a18c1d747--df1b1cebd8fe42c1984d38b53bec3350
5a4c4b84882c456189521ede7ce943d7
RX(theta₁₇)
df1b1cebd8fe42c1984d38b53bec3350--5a4c4b84882c456189521ede7ce943d7
5796afc5a6c14f85be54fd6a1374e4ad
5a4c4b84882c456189521ede7ce943d7--5796afc5a6c14f85be54fd6a1374e4ad
22208059565e4a829da9349a104f1e51
X
5796afc5a6c14f85be54fd6a1374e4ad--22208059565e4a829da9349a104f1e51
22208059565e4a829da9349a104f1e51--5a265036ba364c01a26f04777c61c5bf
22208059565e4a829da9349a104f1e51--7c30279e805d43a6900c3ce55fc7ce99
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
eceb2b1c11ce4f579aea7dfb488f93e4
0
7c81b9d330a747799afed2695c8549f9
RX(phi₀)
eceb2b1c11ce4f579aea7dfb488f93e4--7c81b9d330a747799afed2695c8549f9
f0b350144df64d3c93c19487ce76f50a
1
4f3373e6203a45999de11ffaaf6dee25
RY(phi₃)
7c81b9d330a747799afed2695c8549f9--4f3373e6203a45999de11ffaaf6dee25
2ffcd7c843964ab2b54c950b3845b9a6
RX(phi₆)
4f3373e6203a45999de11ffaaf6dee25--2ffcd7c843964ab2b54c950b3845b9a6
6b275b2acaab4560a3304ba6d16e1ddf
2ffcd7c843964ab2b54c950b3845b9a6--6b275b2acaab4560a3304ba6d16e1ddf
bb5dc28a5e7f4c98adc09d2089744b1a
6b275b2acaab4560a3304ba6d16e1ddf--bb5dc28a5e7f4c98adc09d2089744b1a
4de000cace084f59b190751135c60e89
RX(phi₉)
bb5dc28a5e7f4c98adc09d2089744b1a--4de000cace084f59b190751135c60e89
cd46e12c64754b24948d3b7c265d0dbc
RY(phi₁₂)
4de000cace084f59b190751135c60e89--cd46e12c64754b24948d3b7c265d0dbc
7104b82892e04805aa0020dbc436c56f
RX(phi₁₅)
cd46e12c64754b24948d3b7c265d0dbc--7104b82892e04805aa0020dbc436c56f
a37cd502920f40d3b540e55a4dbb2f47
7104b82892e04805aa0020dbc436c56f--a37cd502920f40d3b540e55a4dbb2f47
d7d8246b4c5444fc82e8bd852de609bd
a37cd502920f40d3b540e55a4dbb2f47--d7d8246b4c5444fc82e8bd852de609bd
1b50e523b0a044af8d0bf8dfa1e79ee5
d7d8246b4c5444fc82e8bd852de609bd--1b50e523b0a044af8d0bf8dfa1e79ee5
7ac3742e7e754dd49c253e206a482b18
23db7ddca8e34e4e8766b38d496905ee
RX(phi₁)
f0b350144df64d3c93c19487ce76f50a--23db7ddca8e34e4e8766b38d496905ee
9e52236fb02f4c5cbef835990c7a3054
2
3070af6b3bd64c85aabb7e1fadc31432
RY(phi₄)
23db7ddca8e34e4e8766b38d496905ee--3070af6b3bd64c85aabb7e1fadc31432
c2c0f31e00694ab0b244a89a405271d1
RX(phi₇)
3070af6b3bd64c85aabb7e1fadc31432--c2c0f31e00694ab0b244a89a405271d1
2c9f8027c10a4a32ae712854ab0dfdab
PHASE(phi_ent₀)
c2c0f31e00694ab0b244a89a405271d1--2c9f8027c10a4a32ae712854ab0dfdab
2c9f8027c10a4a32ae712854ab0dfdab--6b275b2acaab4560a3304ba6d16e1ddf
07db74a553df41a99da737f322ed6a6d
2c9f8027c10a4a32ae712854ab0dfdab--07db74a553df41a99da737f322ed6a6d
bb47bddc2a9b43d1b638b26430a53801
RX(phi₁₀)
07db74a553df41a99da737f322ed6a6d--bb47bddc2a9b43d1b638b26430a53801
7a995406c2ff4d5c9626f7f19f181ed1
RY(phi₁₃)
bb47bddc2a9b43d1b638b26430a53801--7a995406c2ff4d5c9626f7f19f181ed1
1ceca3860652426681007f66a432fa32
RX(phi₁₆)
7a995406c2ff4d5c9626f7f19f181ed1--1ceca3860652426681007f66a432fa32
3d8ce914bb9549248ac4d3261f65e027
PHASE(phi_ent₂)
1ceca3860652426681007f66a432fa32--3d8ce914bb9549248ac4d3261f65e027
3d8ce914bb9549248ac4d3261f65e027--a37cd502920f40d3b540e55a4dbb2f47
12bc1effd3ca4f39a0571dff0707cd03
3d8ce914bb9549248ac4d3261f65e027--12bc1effd3ca4f39a0571dff0707cd03
12bc1effd3ca4f39a0571dff0707cd03--7ac3742e7e754dd49c253e206a482b18
2b22d317f84e4f87b84007bc5a699872
26b56f2fee2a48a2b4c7f57b6e76d965
RX(phi₂)
9e52236fb02f4c5cbef835990c7a3054--26b56f2fee2a48a2b4c7f57b6e76d965
f785281f0ce34535b407ef4dab33f6b9
RY(phi₅)
26b56f2fee2a48a2b4c7f57b6e76d965--f785281f0ce34535b407ef4dab33f6b9
857f7031200f499cbfa9f1855d8eec67
RX(phi₈)
f785281f0ce34535b407ef4dab33f6b9--857f7031200f499cbfa9f1855d8eec67
ebb3224ac8c54052a1bcddde156f0651
857f7031200f499cbfa9f1855d8eec67--ebb3224ac8c54052a1bcddde156f0651
9ce272a2a7214da0b1a4111718cd79ae
PHASE(phi_ent₁)
ebb3224ac8c54052a1bcddde156f0651--9ce272a2a7214da0b1a4111718cd79ae
9ce272a2a7214da0b1a4111718cd79ae--07db74a553df41a99da737f322ed6a6d
5f4145ee48c64829874809223516750e
RX(phi₁₁)
9ce272a2a7214da0b1a4111718cd79ae--5f4145ee48c64829874809223516750e
c22e140a78824cc08bfd31d5835273a7
RY(phi₁₄)
5f4145ee48c64829874809223516750e--c22e140a78824cc08bfd31d5835273a7
4fa9cdbe133c45b7bf806308f5160066
RX(phi₁₇)
c22e140a78824cc08bfd31d5835273a7--4fa9cdbe133c45b7bf806308f5160066
0b6fdc877dae4623afd150a340f77f16
4fa9cdbe133c45b7bf806308f5160066--0b6fdc877dae4623afd150a340f77f16
19fa989fb77440389ce541cd6cad0b32
PHASE(phi_ent₃)
0b6fdc877dae4623afd150a340f77f16--19fa989fb77440389ce541cd6cad0b32
19fa989fb77440389ce541cd6cad0b32--12bc1effd3ca4f39a0571dff0707cd03
19fa989fb77440389ce541cd6cad0b32--2b22d317f84e4f87b84007bc5a699872
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_371b71362f11481e9ad17c96a15b2b1c
cluster_6c796a4f60f945819bd93535451cb37b
c117cde2e5d447debd4e4f8c61a6cb97
0
57968abb2cc743dd8898900d9b09635f
RX(theta₀)
c117cde2e5d447debd4e4f8c61a6cb97--57968abb2cc743dd8898900d9b09635f
dab1bffbe8024934b85c0439fc4b6480
1
173bd6c2c868447886ad5eee830f8de7
RY(theta₃)
57968abb2cc743dd8898900d9b09635f--173bd6c2c868447886ad5eee830f8de7
5716b2ffc9a34d87ac4779d5a5071a8d
RX(theta₆)
173bd6c2c868447886ad5eee830f8de7--5716b2ffc9a34d87ac4779d5a5071a8d
ed7deae7071446be9bf5197d5e780065
HamEvo
5716b2ffc9a34d87ac4779d5a5071a8d--ed7deae7071446be9bf5197d5e780065
ce3c99d78ae946aa82bd6b4d1b2732e8
RX(theta₉)
ed7deae7071446be9bf5197d5e780065--ce3c99d78ae946aa82bd6b4d1b2732e8
5aa84c2412d24d4589386ad054f03015
RY(theta₁₂)
ce3c99d78ae946aa82bd6b4d1b2732e8--5aa84c2412d24d4589386ad054f03015
447b0703163342b0b153c6e12854c144
RX(theta₁₅)
5aa84c2412d24d4589386ad054f03015--447b0703163342b0b153c6e12854c144
7bfea05847474850b9114efb41bd926f
HamEvo
447b0703163342b0b153c6e12854c144--7bfea05847474850b9114efb41bd926f
f6ddd30517fd4d33a5dfab93500dbf4a
7bfea05847474850b9114efb41bd926f--f6ddd30517fd4d33a5dfab93500dbf4a
d286259044604febaa20f0f9ed3359c0
67593f3593614e2abc796f711984fea4
RX(theta₁)
dab1bffbe8024934b85c0439fc4b6480--67593f3593614e2abc796f711984fea4
67da8e72c5254f8bbe5be6c568f9f01f
2
159b24fffab74ea7b76b3c47cc45bddd
RY(theta₄)
67593f3593614e2abc796f711984fea4--159b24fffab74ea7b76b3c47cc45bddd
2d2dd3bcf36b404b9226e4d9ba8a79b3
RX(theta₇)
159b24fffab74ea7b76b3c47cc45bddd--2d2dd3bcf36b404b9226e4d9ba8a79b3
5fb9d3cfd70c4a16a88cac2e0c5650a8
t = theta_t₀
2d2dd3bcf36b404b9226e4d9ba8a79b3--5fb9d3cfd70c4a16a88cac2e0c5650a8
79d4db16b08d425195447af0c92f07d8
RX(theta₁₀)
5fb9d3cfd70c4a16a88cac2e0c5650a8--79d4db16b08d425195447af0c92f07d8
19bcb89b6d834b13958f2f9332c3e988
RY(theta₁₃)
79d4db16b08d425195447af0c92f07d8--19bcb89b6d834b13958f2f9332c3e988
ea89da8948754b2a8c0453e17e9a2157
RX(theta₁₆)
19bcb89b6d834b13958f2f9332c3e988--ea89da8948754b2a8c0453e17e9a2157
9ec0a7bf566c44f5bb885546f7960e3a
t = theta_t₁
ea89da8948754b2a8c0453e17e9a2157--9ec0a7bf566c44f5bb885546f7960e3a
9ec0a7bf566c44f5bb885546f7960e3a--d286259044604febaa20f0f9ed3359c0
097860a9459347cc8e5442eec9353e54
a41b936d3d0a4862b26cb16c8e54f88f
RX(theta₂)
67da8e72c5254f8bbe5be6c568f9f01f--a41b936d3d0a4862b26cb16c8e54f88f
81c5d9618c154358936cb392cd7303b2
RY(theta₅)
a41b936d3d0a4862b26cb16c8e54f88f--81c5d9618c154358936cb392cd7303b2
2d1ad737abd646e289984c0db50da98c
RX(theta₈)
81c5d9618c154358936cb392cd7303b2--2d1ad737abd646e289984c0db50da98c
aed2c04ad86044fba5631112adbfbba7
2d1ad737abd646e289984c0db50da98c--aed2c04ad86044fba5631112adbfbba7
934a5e3e5e494156a4a7966df3b18585
RX(theta₁₁)
aed2c04ad86044fba5631112adbfbba7--934a5e3e5e494156a4a7966df3b18585
c2113a6d899b496ba019f03781f2e4f0
RY(theta₁₄)
934a5e3e5e494156a4a7966df3b18585--c2113a6d899b496ba019f03781f2e4f0
b59756dd393548d78368f5c578bb1d3b
RX(theta₁₇)
c2113a6d899b496ba019f03781f2e4f0--b59756dd393548d78368f5c578bb1d3b
4f1946f897cd4fc78cd9ce25b7d4c11d
b59756dd393548d78368f5c578bb1d3b--4f1946f897cd4fc78cd9ce25b7d4c11d
4f1946f897cd4fc78cd9ce25b7d4c11d--097860a9459347cc8e5442eec9353e54
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_7616f914257b48159056574041775389
cluster_6705cb3328074f498d7a4ff0aac91c6b
b1cd1a61f24a4b849037e45772e2e2a7
0
1aa8adc8e9174e288ed869368ce3d57e
RX(theta₀)
b1cd1a61f24a4b849037e45772e2e2a7--1aa8adc8e9174e288ed869368ce3d57e
522bfb996b794e319f9798f7474ada03
1
5ffe8b08922241bb8a82ad8e821f75c2
RY(theta₆)
1aa8adc8e9174e288ed869368ce3d57e--5ffe8b08922241bb8a82ad8e821f75c2
c592b23779b3459fb9d8e59d2861900e
RX(theta₁₂)
5ffe8b08922241bb8a82ad8e821f75c2--c592b23779b3459fb9d8e59d2861900e
4b52785863634f199aa315c0dfb63a99
c592b23779b3459fb9d8e59d2861900e--4b52785863634f199aa315c0dfb63a99
02c8bfe45fc44d35a2bf0a912eb7a9e1
RX(theta₁₈)
4b52785863634f199aa315c0dfb63a99--02c8bfe45fc44d35a2bf0a912eb7a9e1
0f1df06637e44f78b1f7be59bd645cea
RY(theta₂₄)
02c8bfe45fc44d35a2bf0a912eb7a9e1--0f1df06637e44f78b1f7be59bd645cea
a1ddb91a85804cd394e448ac324cfe60
RX(theta₃₀)
0f1df06637e44f78b1f7be59bd645cea--a1ddb91a85804cd394e448ac324cfe60
f00f0d13258f4fe3899951f635dfd279
a1ddb91a85804cd394e448ac324cfe60--f00f0d13258f4fe3899951f635dfd279
d1c849c110054df5ad848dadeac6046d
f00f0d13258f4fe3899951f635dfd279--d1c849c110054df5ad848dadeac6046d
48d9cb656a124bb5a77a5a351c112288
64a3bf80cabb49b483eef700d4d5bc0c
RX(theta₁)
522bfb996b794e319f9798f7474ada03--64a3bf80cabb49b483eef700d4d5bc0c
f81716a371e14fbaa0c95e92e484390d
2
35ed5f5929cd4559a5371473559cacd3
RY(theta₇)
64a3bf80cabb49b483eef700d4d5bc0c--35ed5f5929cd4559a5371473559cacd3
98907aab734a48c3956b7f450f1df352
RX(theta₁₃)
35ed5f5929cd4559a5371473559cacd3--98907aab734a48c3956b7f450f1df352
3d13c3c4b279437aba1eb4d2ea783d2b
98907aab734a48c3956b7f450f1df352--3d13c3c4b279437aba1eb4d2ea783d2b
c9e9a322017d431cab23f2eb2b33d53f
RX(theta₁₉)
3d13c3c4b279437aba1eb4d2ea783d2b--c9e9a322017d431cab23f2eb2b33d53f
5ffa26b71e2d4cbfb2a77f2f4e55f14c
RY(theta₂₅)
c9e9a322017d431cab23f2eb2b33d53f--5ffa26b71e2d4cbfb2a77f2f4e55f14c
76b5a0be7f66408c9b118e973ea8f3de
RX(theta₃₁)
5ffa26b71e2d4cbfb2a77f2f4e55f14c--76b5a0be7f66408c9b118e973ea8f3de
cccbcdb94c5144d0813f06857d0bf459
76b5a0be7f66408c9b118e973ea8f3de--cccbcdb94c5144d0813f06857d0bf459
cccbcdb94c5144d0813f06857d0bf459--48d9cb656a124bb5a77a5a351c112288
5b463fbee3d646b2b90b15e70caf4b4d
f85ec54d7cd14fefb508f6c9bdcde773
RX(theta₂)
f81716a371e14fbaa0c95e92e484390d--f85ec54d7cd14fefb508f6c9bdcde773
5df50d0a82914622917491c4dede5026
3
beb5b370a8404336bc38bf0bd19545aa
RY(theta₈)
f85ec54d7cd14fefb508f6c9bdcde773--beb5b370a8404336bc38bf0bd19545aa
28b5df3c87a94802beeaa9883ce29aaf
RX(theta₁₄)
beb5b370a8404336bc38bf0bd19545aa--28b5df3c87a94802beeaa9883ce29aaf
e84d72da191644719e4324002ee8bfe7
HamEvo
28b5df3c87a94802beeaa9883ce29aaf--e84d72da191644719e4324002ee8bfe7
f88e02ba44874053a64bfaeb6b65f47d
RX(theta₂₀)
e84d72da191644719e4324002ee8bfe7--f88e02ba44874053a64bfaeb6b65f47d
be9e9407e6d8454da88787848815416c
RY(theta₂₆)
f88e02ba44874053a64bfaeb6b65f47d--be9e9407e6d8454da88787848815416c
f2de745dde2d4a08aae69e72d82dedc4
RX(theta₃₂)
be9e9407e6d8454da88787848815416c--f2de745dde2d4a08aae69e72d82dedc4
cf9fc625f8fc4e3ea4eeff81d763ad5b
HamEvo
f2de745dde2d4a08aae69e72d82dedc4--cf9fc625f8fc4e3ea4eeff81d763ad5b
cf9fc625f8fc4e3ea4eeff81d763ad5b--5b463fbee3d646b2b90b15e70caf4b4d
f660eff36f6e4380b31c973231ac85ab
be2540ef1b6744c39d0c6f886b4f7ab7
RX(theta₃)
5df50d0a82914622917491c4dede5026--be2540ef1b6744c39d0c6f886b4f7ab7
5d3f6d90a5d242deba574de430a65d19
4
af3b76f5cfae465ca619fbe45fad2189
RY(theta₉)
be2540ef1b6744c39d0c6f886b4f7ab7--af3b76f5cfae465ca619fbe45fad2189
4aa8d17d43044bd4840eba8f7e70430b
RX(theta₁₅)
af3b76f5cfae465ca619fbe45fad2189--4aa8d17d43044bd4840eba8f7e70430b
fcc8f21e207f4257b47f66c21e630e28
t = theta_t₀
4aa8d17d43044bd4840eba8f7e70430b--fcc8f21e207f4257b47f66c21e630e28
fbf0cf752a334bea9dcda893fcfc29e6
RX(theta₂₁)
fcc8f21e207f4257b47f66c21e630e28--fbf0cf752a334bea9dcda893fcfc29e6
3a56f52832194cddbe7fe7b91ad1151f
RY(theta₂₇)
fbf0cf752a334bea9dcda893fcfc29e6--3a56f52832194cddbe7fe7b91ad1151f
3a14a92105f84684bd2593e4e7b403d9
RX(theta₃₃)
3a56f52832194cddbe7fe7b91ad1151f--3a14a92105f84684bd2593e4e7b403d9
06bd9aa04f6c450dafd7f790e6248841
t = theta_t₁
3a14a92105f84684bd2593e4e7b403d9--06bd9aa04f6c450dafd7f790e6248841
06bd9aa04f6c450dafd7f790e6248841--f660eff36f6e4380b31c973231ac85ab
2273275da153464e8beb6320eaa1b266
72edea4d34f24b35848d053da2325c89
RX(theta₄)
5d3f6d90a5d242deba574de430a65d19--72edea4d34f24b35848d053da2325c89
2fe02a6f87844da4aec0e311b20cd959
5
46667b75366347ebb98e7a22bd7c0e0f
RY(theta₁₀)
72edea4d34f24b35848d053da2325c89--46667b75366347ebb98e7a22bd7c0e0f
47cddf0752e945919527cbd8902d538d
RX(theta₁₆)
46667b75366347ebb98e7a22bd7c0e0f--47cddf0752e945919527cbd8902d538d
6368f0fe30b34aa7b5400b77dc7f017a
47cddf0752e945919527cbd8902d538d--6368f0fe30b34aa7b5400b77dc7f017a
31ffb99ef58648dcbf207c8bdf23cf67
RX(theta₂₂)
6368f0fe30b34aa7b5400b77dc7f017a--31ffb99ef58648dcbf207c8bdf23cf67
af2d285fa4494f07880944c695b55e61
RY(theta₂₈)
31ffb99ef58648dcbf207c8bdf23cf67--af2d285fa4494f07880944c695b55e61
a792719a111c4137b8a755fd8eec0696
RX(theta₃₄)
af2d285fa4494f07880944c695b55e61--a792719a111c4137b8a755fd8eec0696
c75a33ace86e4de1972d9fc3c1f565ed
a792719a111c4137b8a755fd8eec0696--c75a33ace86e4de1972d9fc3c1f565ed
c75a33ace86e4de1972d9fc3c1f565ed--2273275da153464e8beb6320eaa1b266
267baf8fef47483aa0e8d083cb3f5892
43312f68a7964664a053b18aa3c5dffa
RX(theta₅)
2fe02a6f87844da4aec0e311b20cd959--43312f68a7964664a053b18aa3c5dffa
9ccac246d2ec4f688fae7a91d016a891
RY(theta₁₁)
43312f68a7964664a053b18aa3c5dffa--9ccac246d2ec4f688fae7a91d016a891
182c990cedd44aaea8907fe521087a05
RX(theta₁₇)
9ccac246d2ec4f688fae7a91d016a891--182c990cedd44aaea8907fe521087a05
bc3611c0774c4c68b87563c9aea04f0c
182c990cedd44aaea8907fe521087a05--bc3611c0774c4c68b87563c9aea04f0c
527a8811fd8340659dad0f777c5b03de
RX(theta₂₃)
bc3611c0774c4c68b87563c9aea04f0c--527a8811fd8340659dad0f777c5b03de
3eaa391402d94eb6af3bf83e846de96f
RY(theta₂₉)
527a8811fd8340659dad0f777c5b03de--3eaa391402d94eb6af3bf83e846de96f
0b21b24010444a6185fcf7cb8cc71d63
RX(theta₃₅)
3eaa391402d94eb6af3bf83e846de96f--0b21b24010444a6185fcf7cb8cc71d63
09d6b18e16fd4e6f82c6a1905c0285e2
0b21b24010444a6185fcf7cb8cc71d63--09d6b18e16fd4e6f82c6a1905c0285e2
09d6b18e16fd4e6f82c6a1905c0285e2--267baf8fef47483aa0e8d083cb3f5892
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_2eb594990e64418dbe9549ca2e307c47
BPMA-1
cluster_0b4df50244634e21bf5cfc393ebdc4ca
BPMA-0
8fddd4dfae77470fae5351c405d8dc64
0
91105245f050487e8467af8d9fdf51ea
RX(iia_α₀₀)
8fddd4dfae77470fae5351c405d8dc64--91105245f050487e8467af8d9fdf51ea
3b347b5e6b8c4a1e8b01c382a61b5a24
1
9b73dd7a996b4f098da4549646f3f63d
RY(iia_α₀₃)
91105245f050487e8467af8d9fdf51ea--9b73dd7a996b4f098da4549646f3f63d
bfd344449abb45bdbb2d012627ab016a
9b73dd7a996b4f098da4549646f3f63d--bfd344449abb45bdbb2d012627ab016a
aa377404996c477c8641b90fd1fa23be
bfd344449abb45bdbb2d012627ab016a--aa377404996c477c8641b90fd1fa23be
52e7bee9de7749539543ce7771eee3be
RX(iia_γ₀₀)
aa377404996c477c8641b90fd1fa23be--52e7bee9de7749539543ce7771eee3be
c6301c08f70d4dde883cea46550e5a7b
52e7bee9de7749539543ce7771eee3be--c6301c08f70d4dde883cea46550e5a7b
69f06bafc7cb4d3a9ab0715460a1f33f
c6301c08f70d4dde883cea46550e5a7b--69f06bafc7cb4d3a9ab0715460a1f33f
b8025a2f964c4dc8a9e51369435e06e8
RY(iia_β₀₃)
69f06bafc7cb4d3a9ab0715460a1f33f--b8025a2f964c4dc8a9e51369435e06e8
0edcf49313314cf5a7281384e88c978e
RX(iia_β₀₀)
b8025a2f964c4dc8a9e51369435e06e8--0edcf49313314cf5a7281384e88c978e
6ee00497f6c542f08a057021b5caf9e1
RX(iia_α₁₀)
0edcf49313314cf5a7281384e88c978e--6ee00497f6c542f08a057021b5caf9e1
7423609bcc184cc5944dea4d39fac94f
RY(iia_α₁₃)
6ee00497f6c542f08a057021b5caf9e1--7423609bcc184cc5944dea4d39fac94f
2e00237830d44810b54522b29c869433
7423609bcc184cc5944dea4d39fac94f--2e00237830d44810b54522b29c869433
ac9b7b1166484795ad31e6843c003960
2e00237830d44810b54522b29c869433--ac9b7b1166484795ad31e6843c003960
5a6993c355e84b1d9ab2fa4aa51060a2
RX(iia_γ₁₀)
ac9b7b1166484795ad31e6843c003960--5a6993c355e84b1d9ab2fa4aa51060a2
54acaa44c4d94f878a9ddc7bad3b0862
5a6993c355e84b1d9ab2fa4aa51060a2--54acaa44c4d94f878a9ddc7bad3b0862
4eff23f016fa42e99a1b2d3accac2849
54acaa44c4d94f878a9ddc7bad3b0862--4eff23f016fa42e99a1b2d3accac2849
54a6f68e15fe424a822a3c22f0232088
RY(iia_β₁₃)
4eff23f016fa42e99a1b2d3accac2849--54a6f68e15fe424a822a3c22f0232088
1c451622a7c04461839dc8d838dd129b
RX(iia_β₁₀)
54a6f68e15fe424a822a3c22f0232088--1c451622a7c04461839dc8d838dd129b
8ff6e617f9d846ecb42b249a4d5fe37b
1c451622a7c04461839dc8d838dd129b--8ff6e617f9d846ecb42b249a4d5fe37b
bcfb2aaa65814935b524a8c73af33acc
dbc2d4c3c20245538032302a594d35ec
RX(iia_α₀₁)
3b347b5e6b8c4a1e8b01c382a61b5a24--dbc2d4c3c20245538032302a594d35ec
ca0ca6a8708348aea1b0d62ee7642c8a
2
155c9bae6a704bafb0a70b2e739229dc
RY(iia_α₀₄)
dbc2d4c3c20245538032302a594d35ec--155c9bae6a704bafb0a70b2e739229dc
26db92fc5f5141afaefd9d7a982f0a75
X
155c9bae6a704bafb0a70b2e739229dc--26db92fc5f5141afaefd9d7a982f0a75
26db92fc5f5141afaefd9d7a982f0a75--bfd344449abb45bdbb2d012627ab016a
02cab97ea5d04b208a5c7dcbf42eb6bf
26db92fc5f5141afaefd9d7a982f0a75--02cab97ea5d04b208a5c7dcbf42eb6bf
a50b1fbdc6ee487ebe1aebd6280c51c2
RX(iia_γ₀₁)
02cab97ea5d04b208a5c7dcbf42eb6bf--a50b1fbdc6ee487ebe1aebd6280c51c2
00beadbd3a6a40a0b7d8a3c68a0cfc20
a50b1fbdc6ee487ebe1aebd6280c51c2--00beadbd3a6a40a0b7d8a3c68a0cfc20
c059b73feb094436bcde75cc111715ba
X
00beadbd3a6a40a0b7d8a3c68a0cfc20--c059b73feb094436bcde75cc111715ba
c059b73feb094436bcde75cc111715ba--69f06bafc7cb4d3a9ab0715460a1f33f
160c80cc613343809518f3533d411b6c
RY(iia_β₀₄)
c059b73feb094436bcde75cc111715ba--160c80cc613343809518f3533d411b6c
178c4ff49e2a4722aa661ba365428be9
RX(iia_β₀₁)
160c80cc613343809518f3533d411b6c--178c4ff49e2a4722aa661ba365428be9
f9e675308ee049cd866f04a7b692d051
RX(iia_α₁₁)
178c4ff49e2a4722aa661ba365428be9--f9e675308ee049cd866f04a7b692d051
9bc296bf0718493c8beea6d8c933ed4e
RY(iia_α₁₄)
f9e675308ee049cd866f04a7b692d051--9bc296bf0718493c8beea6d8c933ed4e
35898f65fba84d3aa1ce523a0dbd8409
X
9bc296bf0718493c8beea6d8c933ed4e--35898f65fba84d3aa1ce523a0dbd8409
35898f65fba84d3aa1ce523a0dbd8409--2e00237830d44810b54522b29c869433
69a87f0fa53d4deb86050161254f6948
35898f65fba84d3aa1ce523a0dbd8409--69a87f0fa53d4deb86050161254f6948
23e0c30fa2494a7987d8c0dd45ce6c30
RX(iia_γ₁₁)
69a87f0fa53d4deb86050161254f6948--23e0c30fa2494a7987d8c0dd45ce6c30
1e1e2ec765714ee58cb3cb14938d7d39
23e0c30fa2494a7987d8c0dd45ce6c30--1e1e2ec765714ee58cb3cb14938d7d39
ecf766cbcfb146afab7df31ce2da7cf9
X
1e1e2ec765714ee58cb3cb14938d7d39--ecf766cbcfb146afab7df31ce2da7cf9
ecf766cbcfb146afab7df31ce2da7cf9--4eff23f016fa42e99a1b2d3accac2849
03df270d6b4e4611a5275e1943d5b5ce
RY(iia_β₁₄)
ecf766cbcfb146afab7df31ce2da7cf9--03df270d6b4e4611a5275e1943d5b5ce
28f184ace3a34a1b8eea2dca82dc6aa9
RX(iia_β₁₁)
03df270d6b4e4611a5275e1943d5b5ce--28f184ace3a34a1b8eea2dca82dc6aa9
28f184ace3a34a1b8eea2dca82dc6aa9--bcfb2aaa65814935b524a8c73af33acc
f601b951e1704259bd5081b26c61f97a
1720f2af268542b3a934816aa4952ac7
RX(iia_α₀₂)
ca0ca6a8708348aea1b0d62ee7642c8a--1720f2af268542b3a934816aa4952ac7
4ba14463b9cf4cb3bfe80ee13d8e81c9
RY(iia_α₀₅)
1720f2af268542b3a934816aa4952ac7--4ba14463b9cf4cb3bfe80ee13d8e81c9
b7fdf0ff540b4f6bad8a68416c36675e
4ba14463b9cf4cb3bfe80ee13d8e81c9--b7fdf0ff540b4f6bad8a68416c36675e
22e211985298439eb6280d1b81208f28
X
b7fdf0ff540b4f6bad8a68416c36675e--22e211985298439eb6280d1b81208f28
22e211985298439eb6280d1b81208f28--02cab97ea5d04b208a5c7dcbf42eb6bf
c048972c66694e11ae07902c285c7cd2
RX(iia_γ₀₂)
22e211985298439eb6280d1b81208f28--c048972c66694e11ae07902c285c7cd2
8d382e3ad9c343d084a9fba702fb9485
X
c048972c66694e11ae07902c285c7cd2--8d382e3ad9c343d084a9fba702fb9485
8d382e3ad9c343d084a9fba702fb9485--00beadbd3a6a40a0b7d8a3c68a0cfc20
3b102feea59e41e99f95fb038e73307c
8d382e3ad9c343d084a9fba702fb9485--3b102feea59e41e99f95fb038e73307c
facdef90283d4978adb17befe1b06f9a
RY(iia_β₀₅)
3b102feea59e41e99f95fb038e73307c--facdef90283d4978adb17befe1b06f9a
713ed92ab96f40319f12e7f24a8d33d7
RX(iia_β₀₂)
facdef90283d4978adb17befe1b06f9a--713ed92ab96f40319f12e7f24a8d33d7
646138fd3b3a433a95080a3c4ad5511c
RX(iia_α₁₂)
713ed92ab96f40319f12e7f24a8d33d7--646138fd3b3a433a95080a3c4ad5511c
19b517bb22f9423892ca2b32765e2adb
RY(iia_α₁₅)
646138fd3b3a433a95080a3c4ad5511c--19b517bb22f9423892ca2b32765e2adb
1897165a52d24f02a2d166b39178727b
19b517bb22f9423892ca2b32765e2adb--1897165a52d24f02a2d166b39178727b
68ed58c257a94d96b5f96a208da3d03b
X
1897165a52d24f02a2d166b39178727b--68ed58c257a94d96b5f96a208da3d03b
68ed58c257a94d96b5f96a208da3d03b--69a87f0fa53d4deb86050161254f6948
ef2ac27785124f97a0e56ec06cdfba0d
RX(iia_γ₁₂)
68ed58c257a94d96b5f96a208da3d03b--ef2ac27785124f97a0e56ec06cdfba0d
a3972deb936d49f2b1724d871b4209ad
X
ef2ac27785124f97a0e56ec06cdfba0d--a3972deb936d49f2b1724d871b4209ad
a3972deb936d49f2b1724d871b4209ad--1e1e2ec765714ee58cb3cb14938d7d39
cfb50eb242314d0691aedbe59c7b5fc7
a3972deb936d49f2b1724d871b4209ad--cfb50eb242314d0691aedbe59c7b5fc7
a39dacfb29b1448fac7434421c7b59d0
RY(iia_β₁₅)
cfb50eb242314d0691aedbe59c7b5fc7--a39dacfb29b1448fac7434421c7b59d0
7987d484ed504d8da2bff271d8e92b56
RX(iia_β₁₂)
a39dacfb29b1448fac7434421c7b59d0--7987d484ed504d8da2bff271d8e92b56
7987d484ed504d8da2bff271d8e92b56--f601b951e1704259bd5081b26c61f97a