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_b7ed7686728c4f97a6c4fd5e9db1be83
Constant Chebyshev FM
cluster_60416f4e6290424c8e194b195b1b29c5
Constant Fourier FM
552787c661ef4d45b0c5ddcdfda629b8
0
57df58b962b841038795d2b6478fe80e
RX(phi)
552787c661ef4d45b0c5ddcdfda629b8--57df58b962b841038795d2b6478fe80e
a636d682c9514f198f6a971f7e888205
1
58ee037182d045528588b397fce1bf70
RX(acos(phi))
57df58b962b841038795d2b6478fe80e--58ee037182d045528588b397fce1bf70
b58ee08a15b34a2cb725cdc68b9bd241
58ee037182d045528588b397fce1bf70--b58ee08a15b34a2cb725cdc68b9bd241
618d3b2ff22c4896806c5750ad408c46
20b5182bc1014214898c4205ddcb2ee5
RX(phi)
a636d682c9514f198f6a971f7e888205--20b5182bc1014214898c4205ddcb2ee5
cf29dce7623e45b482392471a8afbf01
2
c9facedee7504047b3ba8759a3a32989
RX(acos(phi))
20b5182bc1014214898c4205ddcb2ee5--c9facedee7504047b3ba8759a3a32989
c9facedee7504047b3ba8759a3a32989--618d3b2ff22c4896806c5750ad408c46
851d09e83d5045a7802e27f18f1a674e
3d215929b5f24949b2d585719fb5dc3b
RX(phi)
cf29dce7623e45b482392471a8afbf01--3d215929b5f24949b2d585719fb5dc3b
7c1e6c6cf23646ba8a5af5ea6db63a1c
RX(acos(phi))
3d215929b5f24949b2d585719fb5dc3b--7c1e6c6cf23646ba8a5af5ea6db63a1c
7c1e6c6cf23646ba8a5af5ea6db63a1c--851d09e83d5045a7802e27f18f1a674e
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_8d16e023827744d7b4f6311560de9613
Constant <function custom_fn at 0x7ff868b6aef0> FM
cluster_ebc01aaee0004d3fa3d25c213aa299c4
Constant asin FM
ccfd6dca1c95476f8cf2f324f26d1b00
0
dd858c8fb78f4968bfd4ffe9089021b8
RX(asin(phi))
ccfd6dca1c95476f8cf2f324f26d1b00--dd858c8fb78f4968bfd4ffe9089021b8
bf69f0709cc640dabf8a914cce04333c
1
d54b43107ce8455f97eaee09d2367df3
RX(phi**2 + asin(phi))
dd858c8fb78f4968bfd4ffe9089021b8--d54b43107ce8455f97eaee09d2367df3
4c47036b40ba47328451218ef2734758
d54b43107ce8455f97eaee09d2367df3--4c47036b40ba47328451218ef2734758
a980c2160cfc41299b2cbbeb3661d0cb
702cd7c30471429f8075b78a65f2df61
RX(asin(phi))
bf69f0709cc640dabf8a914cce04333c--702cd7c30471429f8075b78a65f2df61
cee1da72523649589123a42c99bdb97a
2
bc3d94db8d914091ada09bde5f50abcf
RX(phi**2 + asin(phi))
702cd7c30471429f8075b78a65f2df61--bc3d94db8d914091ada09bde5f50abcf
bc3d94db8d914091ada09bde5f50abcf--a980c2160cfc41299b2cbbeb3661d0cb
6b14cd9944ff424293f4e5136db0f9df
378075c13fe54870b1e2a2d807ab391e
RX(asin(phi))
cee1da72523649589123a42c99bdb97a--378075c13fe54870b1e2a2d807ab391e
d8bd9d7344814fbbbe0d2e68329b6fa9
RX(phi**2 + asin(phi))
378075c13fe54870b1e2a2d807ab391e--d8bd9d7344814fbbbe0d2e68329b6fa9
d8bd9d7344814fbbbe0d2e68329b6fa9--6b14cd9944ff424293f4e5136db0f9df
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_fc1f6cb4fdd8405f99a8a58c6094f089
Exponential Fourier FM
cluster_cd70103ff833419e9099ed0eb4553c5f
Constant Fourier FM
cluster_dac9d4c577e24856be9ff37bd7d139ed
Tower Fourier FM
5acf2363f48841c1b6ae2eca11566403
0
557d3bf227e44960b3177412104be1eb
RX(phi)
5acf2363f48841c1b6ae2eca11566403--557d3bf227e44960b3177412104be1eb
370c116b72a246219991684c75da8449
1
12edf27e1f9e4552866a4b8d525da528
RX(1.0*phi)
557d3bf227e44960b3177412104be1eb--12edf27e1f9e4552866a4b8d525da528
adee5c0fce124c1ca8589cb418880c77
RX(1.0*phi)
12edf27e1f9e4552866a4b8d525da528--adee5c0fce124c1ca8589cb418880c77
3d523b74b38445c39d8738385495d2ce
adee5c0fce124c1ca8589cb418880c77--3d523b74b38445c39d8738385495d2ce
3ea7fb13f80f410fa8badb0354c15de2
aacbc327c3b24dc9b3d3b7f301d14d13
RX(phi)
370c116b72a246219991684c75da8449--aacbc327c3b24dc9b3d3b7f301d14d13
e3908c93688c4c108c7abcdea338716f
2
c7e78d7aaa9645d0ac43acc4d51f47d5
RX(2.0*phi)
aacbc327c3b24dc9b3d3b7f301d14d13--c7e78d7aaa9645d0ac43acc4d51f47d5
46111da40f594436987710c1beda1e50
RX(2.0*phi)
c7e78d7aaa9645d0ac43acc4d51f47d5--46111da40f594436987710c1beda1e50
46111da40f594436987710c1beda1e50--3ea7fb13f80f410fa8badb0354c15de2
d8c7b9f593634a338c160d199c172691
4cca80b870aa44f8be40005d938e8cfd
RX(phi)
e3908c93688c4c108c7abcdea338716f--4cca80b870aa44f8be40005d938e8cfd
2e2a4abf14904c7dac27f99b42395a97
3
90e0898aaf2844d8bb641d7435c6df8c
RX(3.0*phi)
4cca80b870aa44f8be40005d938e8cfd--90e0898aaf2844d8bb641d7435c6df8c
93a88a1e659f4234b5714788459984c3
RX(4.0*phi)
90e0898aaf2844d8bb641d7435c6df8c--93a88a1e659f4234b5714788459984c3
93a88a1e659f4234b5714788459984c3--d8c7b9f593634a338c160d199c172691
d8921a7fa71d424c8a5427c4e0ebd924
d358cfd19d7543679365f4d4b78bc7a8
RX(phi)
2e2a4abf14904c7dac27f99b42395a97--d358cfd19d7543679365f4d4b78bc7a8
7ff3bcc579d248669fbd785d8b29a734
4
a67f37b6ea854edbaa51ff65ea2d653e
RX(4.0*phi)
d358cfd19d7543679365f4d4b78bc7a8--a67f37b6ea854edbaa51ff65ea2d653e
c873f44f3c8e4b8b9b36c22fa4b86c3f
RX(8.0*phi)
a67f37b6ea854edbaa51ff65ea2d653e--c873f44f3c8e4b8b9b36c22fa4b86c3f
c873f44f3c8e4b8b9b36c22fa4b86c3f--d8921a7fa71d424c8a5427c4e0ebd924
790f36ba9b5c4f8e8334bd09cbfe7676
827af752ff04406e916a6431fbcfdb70
RX(phi)
7ff3bcc579d248669fbd785d8b29a734--827af752ff04406e916a6431fbcfdb70
6dc73156dda14688b19619d2f0e0a952
RX(5.0*phi)
827af752ff04406e916a6431fbcfdb70--6dc73156dda14688b19619d2f0e0a952
330841284a6b4aa4bed187623811873f
RX(16.0*phi)
6dc73156dda14688b19619d2f0e0a952--330841284a6b4aa4bed187623811873f
330841284a6b4aa4bed187623811873f--790f36ba9b5c4f8e8334bd09cbfe7676
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
70c1ba6139004e8098767b4b1735be64
0
556f9ce322dc453487933aa99c4e0357
RX(1.0*acos(phi))
70c1ba6139004e8098767b4b1735be64--556f9ce322dc453487933aa99c4e0357
0e8ebe17abb6486db64c73e016f7b701
1
614cf1fd8f304ed280b28fa5a0802102
556f9ce322dc453487933aa99c4e0357--614cf1fd8f304ed280b28fa5a0802102
43e31220359a4a36900ab2877abb41b1
5cdfb17e205e47b7a7b622f896e5593d
RX(1.414*acos(phi))
0e8ebe17abb6486db64c73e016f7b701--5cdfb17e205e47b7a7b622f896e5593d
3b52b4aa4f0b4687b0cb3ba863ef3058
2
5cdfb17e205e47b7a7b622f896e5593d--43e31220359a4a36900ab2877abb41b1
86eada34555946b0bacfe7776b478593
d16beb494ce0440fa08fa64dbbb83a72
RX(1.732*acos(phi))
3b52b4aa4f0b4687b0cb3ba863ef3058--d16beb494ce0440fa08fa64dbbb83a72
160041ce1ea74aa292ccfaf270cde9b7
3
d16beb494ce0440fa08fa64dbbb83a72--86eada34555946b0bacfe7776b478593
e57cc5c73b08441db9e0baa92e64a481
448095c0e4c245da8002d17fa2289316
RX(2.0*acos(phi))
160041ce1ea74aa292ccfaf270cde9b7--448095c0e4c245da8002d17fa2289316
232f95c52cc44b779836cbb1501fdd3b
4
448095c0e4c245da8002d17fa2289316--e57cc5c73b08441db9e0baa92e64a481
31363c1538cc458e9691c4f8004ed914
616ba47ceaf246669a8f0ea56bbb5fe3
RX(2.236*acos(phi))
232f95c52cc44b779836cbb1501fdd3b--616ba47ceaf246669a8f0ea56bbb5fe3
616ba47ceaf246669a8f0ea56bbb5fe3--31363c1538cc458e9691c4f8004ed914
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
61dc866eb9cb472c84a452df37c0d162
0
0024068fdfe44010a5ea7c0a2f81cec9
RX(1.0*phi*w₀)
61dc866eb9cb472c84a452df37c0d162--0024068fdfe44010a5ea7c0a2f81cec9
7ae3b31a02f14d978885ea96ccf6420b
1
6bbb7fa7f1364788afba685e912ab56a
0024068fdfe44010a5ea7c0a2f81cec9--6bbb7fa7f1364788afba685e912ab56a
8767fe720df0437fac43f4d2bf6132e4
8d40d67fe60641f597701e4998609895
RX(2.0*phi*w₁)
7ae3b31a02f14d978885ea96ccf6420b--8d40d67fe60641f597701e4998609895
b87304d85302408a837744a7d85722ae
2
8d40d67fe60641f597701e4998609895--8767fe720df0437fac43f4d2bf6132e4
4459795c44e84ff8b0c8cb1e8ecbc8b1
68514c07e4b345a18e61f2f908db16f7
RX(4.0*phi*w₂)
b87304d85302408a837744a7d85722ae--68514c07e4b345a18e61f2f908db16f7
483c095af0314ce79bad2d26a7770af3
3
68514c07e4b345a18e61f2f908db16f7--4459795c44e84ff8b0c8cb1e8ecbc8b1
55b4d7a84c4c409f9dcb1868aea9b80e
f93a23bb48df4c39911e19c43f32ecc8
RX(8.0*phi*w₃)
483c095af0314ce79bad2d26a7770af3--f93a23bb48df4c39911e19c43f32ecc8
0380c9a627ed444b81427bc9d141295e
4
f93a23bb48df4c39911e19c43f32ecc8--55b4d7a84c4c409f9dcb1868aea9b80e
ad8cecd8678c44a98403ed8b455689e6
cc69b3b79bec4c4896c90af11ac42c03
RX(16.0*phi*w₄)
0380c9a627ed444b81427bc9d141295e--cc69b3b79bec4c4896c90af11ac42c03
cc69b3b79bec4c4896c90af11ac42c03--ad8cecd8678c44a98403ed8b455689e6
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
f2074109afa747de9d15ed22b2d8f562
0
5332636081144f109addc74e23d7c4d9
RY(80.0*acos(w₄*(0.667*x + 1.667)))
f2074109afa747de9d15ed22b2d8f562--5332636081144f109addc74e23d7c4d9
db89c63fce694807bcd36513312ab254
1
c6d282bd3f5c4ffd90d22a30fc6d226d
5332636081144f109addc74e23d7c4d9--c6d282bd3f5c4ffd90d22a30fc6d226d
0d95e0261ab743bebb3672002a6c45cb
20b2b5a5bc22470b9999c8255db431bb
RY(40.0*acos(w₃*(0.667*x + 1.667)))
db89c63fce694807bcd36513312ab254--20b2b5a5bc22470b9999c8255db431bb
9e0598af09ee42b39cf0a862c0d89335
2
20b2b5a5bc22470b9999c8255db431bb--0d95e0261ab743bebb3672002a6c45cb
c4f6eb98c948424d88411bf31825b897
4f89cb82f4804aeb89d01e91bd056e9c
RY(20.0*acos(w₂*(0.667*x + 1.667)))
9e0598af09ee42b39cf0a862c0d89335--4f89cb82f4804aeb89d01e91bd056e9c
7253d284117e4f11a7c4ffec2e444660
3
4f89cb82f4804aeb89d01e91bd056e9c--c4f6eb98c948424d88411bf31825b897
6e71badffaf94ef89bc0f4ddb5ad2bc4
7096a7b52a3541c192a37fb79a6e28f5
RY(10.0*acos(w₁*(0.667*x + 1.667)))
7253d284117e4f11a7c4ffec2e444660--7096a7b52a3541c192a37fb79a6e28f5
1347e59edfaf4bf4864c25579b37e35b
4
7096a7b52a3541c192a37fb79a6e28f5--6e71badffaf94ef89bc0f4ddb5ad2bc4
70ef67013006408ba6b50a6c3b2718c2
d1f3d9cfa6a5489989cc5cb590dafb1c
RY(5.0*acos(w₀*(0.667*x + 1.667)))
1347e59edfaf4bf4864c25579b37e35b--d1f3d9cfa6a5489989cc5cb590dafb1c
d1f3d9cfa6a5489989cc5cb590dafb1c--70ef67013006408ba6b50a6c3b2718c2
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
dd6b1471cc89439b85a7927d31bc88b4
0
8fdaa6bb785f4833ad13be993c394bbb
RX(theta₀)
dd6b1471cc89439b85a7927d31bc88b4--8fdaa6bb785f4833ad13be993c394bbb
7b162357230045e1b569d8f62f96c6fb
1
43dce8e850bf4dc9bc83d3cf53f08f5e
RY(theta₃)
8fdaa6bb785f4833ad13be993c394bbb--43dce8e850bf4dc9bc83d3cf53f08f5e
9fb10088da8d468ba38a7edf45525254
RX(theta₆)
43dce8e850bf4dc9bc83d3cf53f08f5e--9fb10088da8d468ba38a7edf45525254
3372fa5b50914395a269aa5fece50415
9fb10088da8d468ba38a7edf45525254--3372fa5b50914395a269aa5fece50415
7851773a91064384a3fcc0ef8cee00a4
3372fa5b50914395a269aa5fece50415--7851773a91064384a3fcc0ef8cee00a4
3adad79e086c4949948b13b37c9cc070
RX(theta₉)
7851773a91064384a3fcc0ef8cee00a4--3adad79e086c4949948b13b37c9cc070
ee3648f91bbc484e910d61c1123fa683
RY(theta₁₂)
3adad79e086c4949948b13b37c9cc070--ee3648f91bbc484e910d61c1123fa683
43e6b9ee3c9043aa9cdc1041242f1bad
RX(theta₁₅)
ee3648f91bbc484e910d61c1123fa683--43e6b9ee3c9043aa9cdc1041242f1bad
032ee92a802144f1977f2be2e84dd3a6
43e6b9ee3c9043aa9cdc1041242f1bad--032ee92a802144f1977f2be2e84dd3a6
74b76c9194d74e11b8321d49600cd05d
032ee92a802144f1977f2be2e84dd3a6--74b76c9194d74e11b8321d49600cd05d
98a6f33568494a18811e69b2045cbd35
74b76c9194d74e11b8321d49600cd05d--98a6f33568494a18811e69b2045cbd35
f9b25c786063416b8bb22afb8831f583
ab06f520270c474cb0ebdba4bba231a5
RX(theta₁)
7b162357230045e1b569d8f62f96c6fb--ab06f520270c474cb0ebdba4bba231a5
c80daaa889744df1a3f2f0c435d5e498
2
5c80f4b6229e441b8dd9132468c2f64c
RY(theta₄)
ab06f520270c474cb0ebdba4bba231a5--5c80f4b6229e441b8dd9132468c2f64c
327110bc173c409b82117b7410b55f9b
RX(theta₇)
5c80f4b6229e441b8dd9132468c2f64c--327110bc173c409b82117b7410b55f9b
09bc4bbee3ad4926892ee2b73303a77c
X
327110bc173c409b82117b7410b55f9b--09bc4bbee3ad4926892ee2b73303a77c
09bc4bbee3ad4926892ee2b73303a77c--3372fa5b50914395a269aa5fece50415
b3eb323eeebc4eab92ab6f4ac38030a8
09bc4bbee3ad4926892ee2b73303a77c--b3eb323eeebc4eab92ab6f4ac38030a8
ee4a50472be6446b81222262817991fb
RX(theta₁₀)
b3eb323eeebc4eab92ab6f4ac38030a8--ee4a50472be6446b81222262817991fb
207cd71293894e4aab6b28614ba49729
RY(theta₁₃)
ee4a50472be6446b81222262817991fb--207cd71293894e4aab6b28614ba49729
29d1184126d243eab1b99e6c81c3a906
RX(theta₁₆)
207cd71293894e4aab6b28614ba49729--29d1184126d243eab1b99e6c81c3a906
33bfed87c518438a9b03d686592ec37d
X
29d1184126d243eab1b99e6c81c3a906--33bfed87c518438a9b03d686592ec37d
33bfed87c518438a9b03d686592ec37d--032ee92a802144f1977f2be2e84dd3a6
000b6eaa13d84ce988a131bc7a812cf1
33bfed87c518438a9b03d686592ec37d--000b6eaa13d84ce988a131bc7a812cf1
000b6eaa13d84ce988a131bc7a812cf1--f9b25c786063416b8bb22afb8831f583
5436e8d70324423bbf04088710a794a7
b6025cc581a441d7acafa1736a80b8ea
RX(theta₂)
c80daaa889744df1a3f2f0c435d5e498--b6025cc581a441d7acafa1736a80b8ea
592e7e16fc224db7a411641362da94a7
RY(theta₅)
b6025cc581a441d7acafa1736a80b8ea--592e7e16fc224db7a411641362da94a7
9134da77751e43a5888a02b7a4081e8d
RX(theta₈)
592e7e16fc224db7a411641362da94a7--9134da77751e43a5888a02b7a4081e8d
a19d286d149c4b7f8820ff32f4d9d66c
9134da77751e43a5888a02b7a4081e8d--a19d286d149c4b7f8820ff32f4d9d66c
eedbbeb56de34bbfbeb7ce93749d6780
X
a19d286d149c4b7f8820ff32f4d9d66c--eedbbeb56de34bbfbeb7ce93749d6780
eedbbeb56de34bbfbeb7ce93749d6780--b3eb323eeebc4eab92ab6f4ac38030a8
e81fd6fd5447478390d43ecd84695bc3
RX(theta₁₁)
eedbbeb56de34bbfbeb7ce93749d6780--e81fd6fd5447478390d43ecd84695bc3
dd5c54afd1f44f3c84e42ef34e7769c5
RY(theta₁₄)
e81fd6fd5447478390d43ecd84695bc3--dd5c54afd1f44f3c84e42ef34e7769c5
489ed0e0374b4cbbbd16a8ca17efe67e
RX(theta₁₇)
dd5c54afd1f44f3c84e42ef34e7769c5--489ed0e0374b4cbbbd16a8ca17efe67e
3375146e696c4a7997c0c3f191036a55
489ed0e0374b4cbbbd16a8ca17efe67e--3375146e696c4a7997c0c3f191036a55
4a4e12e491db4e4dac94d4c8cab787b0
X
3375146e696c4a7997c0c3f191036a55--4a4e12e491db4e4dac94d4c8cab787b0
4a4e12e491db4e4dac94d4c8cab787b0--000b6eaa13d84ce988a131bc7a812cf1
4a4e12e491db4e4dac94d4c8cab787b0--5436e8d70324423bbf04088710a794a7
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
b94632f14de74f1e8db3c3c75f7eb9a1
0
52b7e0d622844928bccf31662b61a6eb
RX(phi₀)
b94632f14de74f1e8db3c3c75f7eb9a1--52b7e0d622844928bccf31662b61a6eb
74fbb70b86fd484e832eca6f94a57c52
1
b63777df2b684ea69d417e9a1ca27752
RY(phi₃)
52b7e0d622844928bccf31662b61a6eb--b63777df2b684ea69d417e9a1ca27752
e94b80a6ad35479eadbc788fb16fb144
RX(phi₆)
b63777df2b684ea69d417e9a1ca27752--e94b80a6ad35479eadbc788fb16fb144
ba4b43d698e244b789847643077d582b
e94b80a6ad35479eadbc788fb16fb144--ba4b43d698e244b789847643077d582b
7db3feffec344aa099f09fbac79c1fb9
ba4b43d698e244b789847643077d582b--7db3feffec344aa099f09fbac79c1fb9
b100c36258e149b9a19d299179ba4a68
RX(phi₉)
7db3feffec344aa099f09fbac79c1fb9--b100c36258e149b9a19d299179ba4a68
c830c6e14b224b48a023cef4533f790b
RY(phi₁₂)
b100c36258e149b9a19d299179ba4a68--c830c6e14b224b48a023cef4533f790b
f36da3b7a5fd47a1a53bc1cb63e51280
RX(phi₁₅)
c830c6e14b224b48a023cef4533f790b--f36da3b7a5fd47a1a53bc1cb63e51280
2d5f664eec144ac7b19d00f0778a7c16
f36da3b7a5fd47a1a53bc1cb63e51280--2d5f664eec144ac7b19d00f0778a7c16
cef2f15c88c14d1c898ba7a948ef108e
2d5f664eec144ac7b19d00f0778a7c16--cef2f15c88c14d1c898ba7a948ef108e
56d73fa1003f47ea8d60c2e730f52ce0
cef2f15c88c14d1c898ba7a948ef108e--56d73fa1003f47ea8d60c2e730f52ce0
7041a37292f5430290df8f5f3f21096e
50961b1b7b324a84a71558c483878114
RX(phi₁)
74fbb70b86fd484e832eca6f94a57c52--50961b1b7b324a84a71558c483878114
28dc324012704b85b41687e992cb1e7d
2
047e4e5e10f440f7b9def4d8fef1f5e8
RY(phi₄)
50961b1b7b324a84a71558c483878114--047e4e5e10f440f7b9def4d8fef1f5e8
9c5d75a0d93c4859a9d9f61d49945afc
RX(phi₇)
047e4e5e10f440f7b9def4d8fef1f5e8--9c5d75a0d93c4859a9d9f61d49945afc
b2c221de56df42ae937cd4dd8d757dad
PHASE(phi_ent₀)
9c5d75a0d93c4859a9d9f61d49945afc--b2c221de56df42ae937cd4dd8d757dad
b2c221de56df42ae937cd4dd8d757dad--ba4b43d698e244b789847643077d582b
f57d2a37afd24814834fb46ec42feca2
b2c221de56df42ae937cd4dd8d757dad--f57d2a37afd24814834fb46ec42feca2
91482f8492d34baaad8e86499785abdf
RX(phi₁₀)
f57d2a37afd24814834fb46ec42feca2--91482f8492d34baaad8e86499785abdf
eb711253fcf849e28f5c4429aa30f160
RY(phi₁₃)
91482f8492d34baaad8e86499785abdf--eb711253fcf849e28f5c4429aa30f160
6035e6a433df41d88ab2a0f2ae3216e9
RX(phi₁₆)
eb711253fcf849e28f5c4429aa30f160--6035e6a433df41d88ab2a0f2ae3216e9
6107b161b6394fd2ac58add468f2dfc8
PHASE(phi_ent₂)
6035e6a433df41d88ab2a0f2ae3216e9--6107b161b6394fd2ac58add468f2dfc8
6107b161b6394fd2ac58add468f2dfc8--2d5f664eec144ac7b19d00f0778a7c16
5525290fe0fb412d9c36fbf840a190e6
6107b161b6394fd2ac58add468f2dfc8--5525290fe0fb412d9c36fbf840a190e6
5525290fe0fb412d9c36fbf840a190e6--7041a37292f5430290df8f5f3f21096e
f49a2501f2b549128ce84c6ef1c00467
372059109a644cb5adf369728fce909e
RX(phi₂)
28dc324012704b85b41687e992cb1e7d--372059109a644cb5adf369728fce909e
598e3b9ab87f43098327f70c9e866693
RY(phi₅)
372059109a644cb5adf369728fce909e--598e3b9ab87f43098327f70c9e866693
44ec28b0c9824d73a77aed04284f3a07
RX(phi₈)
598e3b9ab87f43098327f70c9e866693--44ec28b0c9824d73a77aed04284f3a07
9546c49631ec40248693c448b2d34083
44ec28b0c9824d73a77aed04284f3a07--9546c49631ec40248693c448b2d34083
21f4dd287f9e44e18bb8354a67844e0c
PHASE(phi_ent₁)
9546c49631ec40248693c448b2d34083--21f4dd287f9e44e18bb8354a67844e0c
21f4dd287f9e44e18bb8354a67844e0c--f57d2a37afd24814834fb46ec42feca2
8f2451252641471da13b797125ca4364
RX(phi₁₁)
21f4dd287f9e44e18bb8354a67844e0c--8f2451252641471da13b797125ca4364
0eb0f6b48c904cf1ba7036edbb2117eb
RY(phi₁₄)
8f2451252641471da13b797125ca4364--0eb0f6b48c904cf1ba7036edbb2117eb
de1e20910397438880e307866a4909f4
RX(phi₁₇)
0eb0f6b48c904cf1ba7036edbb2117eb--de1e20910397438880e307866a4909f4
6b996c834f664938b2626dbd9d081d29
de1e20910397438880e307866a4909f4--6b996c834f664938b2626dbd9d081d29
d903152a441244dba05cffd26377359b
PHASE(phi_ent₃)
6b996c834f664938b2626dbd9d081d29--d903152a441244dba05cffd26377359b
d903152a441244dba05cffd26377359b--5525290fe0fb412d9c36fbf840a190e6
d903152a441244dba05cffd26377359b--f49a2501f2b549128ce84c6ef1c00467
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_dee5f8cd7eaf468fbc412593c7b067c5
cluster_ab68a7dea864404fbf09bf0b3be1db0d
e479345038bb401bbb8a1333adb01dc3
0
95cdfa7c104b4403b1dd923141ed98a8
RX(theta₀)
e479345038bb401bbb8a1333adb01dc3--95cdfa7c104b4403b1dd923141ed98a8
0ee751c8409e46a098d352043b218a21
1
cd6fd3f750674d0d96d8be29322e48f6
RY(theta₃)
95cdfa7c104b4403b1dd923141ed98a8--cd6fd3f750674d0d96d8be29322e48f6
ee78b7af192044ceaf26df507cea9079
RX(theta₆)
cd6fd3f750674d0d96d8be29322e48f6--ee78b7af192044ceaf26df507cea9079
8df9b55cb10a4874904d11542088cfb9
HamEvo
ee78b7af192044ceaf26df507cea9079--8df9b55cb10a4874904d11542088cfb9
22162fca8e024c1b8c7695ef8b64648a
RX(theta₉)
8df9b55cb10a4874904d11542088cfb9--22162fca8e024c1b8c7695ef8b64648a
228040e15efc4dd09e64ceb47a10d45d
RY(theta₁₂)
22162fca8e024c1b8c7695ef8b64648a--228040e15efc4dd09e64ceb47a10d45d
c715339afbc341b7b95659e8f8a811aa
RX(theta₁₅)
228040e15efc4dd09e64ceb47a10d45d--c715339afbc341b7b95659e8f8a811aa
0df7f8d71e19405babeba45a8645cf07
HamEvo
c715339afbc341b7b95659e8f8a811aa--0df7f8d71e19405babeba45a8645cf07
8579edeab4534cc784ac17bc4c6fd3bd
0df7f8d71e19405babeba45a8645cf07--8579edeab4534cc784ac17bc4c6fd3bd
486daa0d2d114cefbb725a36767e0fd5
86f5d4960cc840d7b5c68f944345e495
RX(theta₁)
0ee751c8409e46a098d352043b218a21--86f5d4960cc840d7b5c68f944345e495
ac68910a10554460b7e8044bdd5a66b3
2
c79013ae3fef4ed5b9f855ce7f12f26e
RY(theta₄)
86f5d4960cc840d7b5c68f944345e495--c79013ae3fef4ed5b9f855ce7f12f26e
e0d08f43c6a84f7ca28582a20247fe92
RX(theta₇)
c79013ae3fef4ed5b9f855ce7f12f26e--e0d08f43c6a84f7ca28582a20247fe92
8372d523f2fb41048d0418f4951e5c05
t = theta_t₀
e0d08f43c6a84f7ca28582a20247fe92--8372d523f2fb41048d0418f4951e5c05
20b005bb406c4c4b982496af8202ff86
RX(theta₁₀)
8372d523f2fb41048d0418f4951e5c05--20b005bb406c4c4b982496af8202ff86
87f31d2e6fec4973b510bca9b3e48a8d
RY(theta₁₃)
20b005bb406c4c4b982496af8202ff86--87f31d2e6fec4973b510bca9b3e48a8d
413bc59e9b674d60bbb79b3d0dbe6447
RX(theta₁₆)
87f31d2e6fec4973b510bca9b3e48a8d--413bc59e9b674d60bbb79b3d0dbe6447
f432864e54be431d9108e83bfa3e9a05
t = theta_t₁
413bc59e9b674d60bbb79b3d0dbe6447--f432864e54be431d9108e83bfa3e9a05
f432864e54be431d9108e83bfa3e9a05--486daa0d2d114cefbb725a36767e0fd5
37b4960c2a0b48f7acb778699c5a2a49
ad0e149aa7494e3cae418f0c14451bde
RX(theta₂)
ac68910a10554460b7e8044bdd5a66b3--ad0e149aa7494e3cae418f0c14451bde
ea57a8a56cf141908b5991c23d83625d
RY(theta₅)
ad0e149aa7494e3cae418f0c14451bde--ea57a8a56cf141908b5991c23d83625d
84905a545b9b4d298dc04666a39b2ae8
RX(theta₈)
ea57a8a56cf141908b5991c23d83625d--84905a545b9b4d298dc04666a39b2ae8
2bd37cb847da4671afeeac00002b91fd
84905a545b9b4d298dc04666a39b2ae8--2bd37cb847da4671afeeac00002b91fd
dfa2264b0c674acc96660b3e69adc60f
RX(theta₁₁)
2bd37cb847da4671afeeac00002b91fd--dfa2264b0c674acc96660b3e69adc60f
dc6d2b9eca744a23a9be8f48f2cc9f07
RY(theta₁₄)
dfa2264b0c674acc96660b3e69adc60f--dc6d2b9eca744a23a9be8f48f2cc9f07
3ce2a05fcc0e42a1a32e2529a8fdd2fc
RX(theta₁₇)
dc6d2b9eca744a23a9be8f48f2cc9f07--3ce2a05fcc0e42a1a32e2529a8fdd2fc
88c6a43d8964479098da8e514db3579d
3ce2a05fcc0e42a1a32e2529a8fdd2fc--88c6a43d8964479098da8e514db3579d
88c6a43d8964479098da8e514db3579d--37b4960c2a0b48f7acb778699c5a2a49
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_d7b334e4e26e42289ee030cfaae84584
cluster_adcc0b9782ef4bec96cae12e3f891435
b1d1bdedd08c463da9d42f340ef29fe1
0
e550ac1bc4fd4f6b874b2979c7c7d017
RX(theta₀)
b1d1bdedd08c463da9d42f340ef29fe1--e550ac1bc4fd4f6b874b2979c7c7d017
2b549469cc2f4d408c8ba0caa931157e
1
bc08b30bfb434e6db4c4fcffc56c7633
RY(theta₆)
e550ac1bc4fd4f6b874b2979c7c7d017--bc08b30bfb434e6db4c4fcffc56c7633
db352540730c457799b4a88f59449a23
RX(theta₁₂)
bc08b30bfb434e6db4c4fcffc56c7633--db352540730c457799b4a88f59449a23
ba03865cfa524ff3a6256cd63c5a3809
db352540730c457799b4a88f59449a23--ba03865cfa524ff3a6256cd63c5a3809
e681e92f58014f918f8bd25e34940887
RX(theta₁₈)
ba03865cfa524ff3a6256cd63c5a3809--e681e92f58014f918f8bd25e34940887
97955489b772456ebbdcafa736e35aa4
RY(theta₂₄)
e681e92f58014f918f8bd25e34940887--97955489b772456ebbdcafa736e35aa4
b1470aa214b64d9cb78b9b558fcdbcaa
RX(theta₃₀)
97955489b772456ebbdcafa736e35aa4--b1470aa214b64d9cb78b9b558fcdbcaa
d2cf01a0ebe64d01b70e01a50f53cabb
b1470aa214b64d9cb78b9b558fcdbcaa--d2cf01a0ebe64d01b70e01a50f53cabb
410edeeb4b8e46c9aae56e5097aceb7f
d2cf01a0ebe64d01b70e01a50f53cabb--410edeeb4b8e46c9aae56e5097aceb7f
48285cde82e74edc8dcd4f3e59dfcf97
b8d79cb483c347fa8f4f0f11248e187b
RX(theta₁)
2b549469cc2f4d408c8ba0caa931157e--b8d79cb483c347fa8f4f0f11248e187b
fbee6833efb14bd392a8141223a7532e
2
d8cbcce4dca2493da2b3168cd9b18916
RY(theta₇)
b8d79cb483c347fa8f4f0f11248e187b--d8cbcce4dca2493da2b3168cd9b18916
6bc9227599344b8bae4232e5ca04f0bc
RX(theta₁₃)
d8cbcce4dca2493da2b3168cd9b18916--6bc9227599344b8bae4232e5ca04f0bc
204afb8d237f41e997d3c97478e515b5
6bc9227599344b8bae4232e5ca04f0bc--204afb8d237f41e997d3c97478e515b5
234a2d37efde410d8ae4386e68b54cfa
RX(theta₁₉)
204afb8d237f41e997d3c97478e515b5--234a2d37efde410d8ae4386e68b54cfa
89535f7210ca4f0aa5f24cb5d90f715e
RY(theta₂₅)
234a2d37efde410d8ae4386e68b54cfa--89535f7210ca4f0aa5f24cb5d90f715e
9ba6d48f757f4728b3cacecd3aefaab4
RX(theta₃₁)
89535f7210ca4f0aa5f24cb5d90f715e--9ba6d48f757f4728b3cacecd3aefaab4
2fe298d04a774dcd8dddb0faa31881d5
9ba6d48f757f4728b3cacecd3aefaab4--2fe298d04a774dcd8dddb0faa31881d5
2fe298d04a774dcd8dddb0faa31881d5--48285cde82e74edc8dcd4f3e59dfcf97
48befff59f244b0997a1cdda24bf665b
681cc2219a5542a9abe578517bde38a9
RX(theta₂)
fbee6833efb14bd392a8141223a7532e--681cc2219a5542a9abe578517bde38a9
901cf6f6d5f44fd5bab76ca3e13e676c
3
f758240a43f647c8b3879eaff6a7bb82
RY(theta₈)
681cc2219a5542a9abe578517bde38a9--f758240a43f647c8b3879eaff6a7bb82
806dde0c1525482ea37140742787ff5e
RX(theta₁₄)
f758240a43f647c8b3879eaff6a7bb82--806dde0c1525482ea37140742787ff5e
faa25ea7f12c4be688d0f5aa6fb406d0
HamEvo
806dde0c1525482ea37140742787ff5e--faa25ea7f12c4be688d0f5aa6fb406d0
0407ef7b97cd4323b3b98ced26728a3b
RX(theta₂₀)
faa25ea7f12c4be688d0f5aa6fb406d0--0407ef7b97cd4323b3b98ced26728a3b
8b96fb83e4574d3181ba959129bd25f4
RY(theta₂₆)
0407ef7b97cd4323b3b98ced26728a3b--8b96fb83e4574d3181ba959129bd25f4
3d11bc03f1a2416e905fc0b13dde5594
RX(theta₃₂)
8b96fb83e4574d3181ba959129bd25f4--3d11bc03f1a2416e905fc0b13dde5594
e029015a5d7d4e51b56c4599f9e1112c
HamEvo
3d11bc03f1a2416e905fc0b13dde5594--e029015a5d7d4e51b56c4599f9e1112c
e029015a5d7d4e51b56c4599f9e1112c--48befff59f244b0997a1cdda24bf665b
cf7b97fc85d149cf862c392f8cea06c3
d3af68aaf79b469e8672e60cacc71f43
RX(theta₃)
901cf6f6d5f44fd5bab76ca3e13e676c--d3af68aaf79b469e8672e60cacc71f43
82bcf5b7bcf8495882cc9a85fe319f8c
4
f9ec22b562cc4664ae9c719091677683
RY(theta₉)
d3af68aaf79b469e8672e60cacc71f43--f9ec22b562cc4664ae9c719091677683
00aa833c660f41a69f94c737fad6b346
RX(theta₁₅)
f9ec22b562cc4664ae9c719091677683--00aa833c660f41a69f94c737fad6b346
885a121c4f554f0bbf5bc97fbd82054f
t = theta_t₀
00aa833c660f41a69f94c737fad6b346--885a121c4f554f0bbf5bc97fbd82054f
b8405f73928740e79cc591b31fca8c5e
RX(theta₂₁)
885a121c4f554f0bbf5bc97fbd82054f--b8405f73928740e79cc591b31fca8c5e
deb59685dbc744b2a86ee61742a1f18e
RY(theta₂₇)
b8405f73928740e79cc591b31fca8c5e--deb59685dbc744b2a86ee61742a1f18e
0924464f9bfa4be0beb11b7c79e42f5d
RX(theta₃₃)
deb59685dbc744b2a86ee61742a1f18e--0924464f9bfa4be0beb11b7c79e42f5d
b0aa540686ad4dce881e82bc69b7e185
t = theta_t₁
0924464f9bfa4be0beb11b7c79e42f5d--b0aa540686ad4dce881e82bc69b7e185
b0aa540686ad4dce881e82bc69b7e185--cf7b97fc85d149cf862c392f8cea06c3
2ab77c62987d4dab8b768f4fac5c102b
811b66a01a06408c95d05928aa5a9a1f
RX(theta₄)
82bcf5b7bcf8495882cc9a85fe319f8c--811b66a01a06408c95d05928aa5a9a1f
96f79e28ffd648ba9dc6e38ce7cb9e68
5
2e07ab933eb84489972aa057e2715ea8
RY(theta₁₀)
811b66a01a06408c95d05928aa5a9a1f--2e07ab933eb84489972aa057e2715ea8
bcd555ccda424542995f0d11e6226cf3
RX(theta₁₆)
2e07ab933eb84489972aa057e2715ea8--bcd555ccda424542995f0d11e6226cf3
6130243b0def462c88694b5709c202ed
bcd555ccda424542995f0d11e6226cf3--6130243b0def462c88694b5709c202ed
b1bed4d297db4f8285a993a6481af87a
RX(theta₂₂)
6130243b0def462c88694b5709c202ed--b1bed4d297db4f8285a993a6481af87a
9cd0ae9736a14b99ab82f10917191b7e
RY(theta₂₈)
b1bed4d297db4f8285a993a6481af87a--9cd0ae9736a14b99ab82f10917191b7e
720d283cc6f7493d90a62c1010c78f6c
RX(theta₃₄)
9cd0ae9736a14b99ab82f10917191b7e--720d283cc6f7493d90a62c1010c78f6c
76f33797dfb6475584188dc9bf2cd136
720d283cc6f7493d90a62c1010c78f6c--76f33797dfb6475584188dc9bf2cd136
76f33797dfb6475584188dc9bf2cd136--2ab77c62987d4dab8b768f4fac5c102b
53c2346ca41c43a08038e1613fc6e9d1
e2128377f0d0458da608615c2d420ae1
RX(theta₅)
96f79e28ffd648ba9dc6e38ce7cb9e68--e2128377f0d0458da608615c2d420ae1
330b15fc132543e5814ba149c8f5469b
RY(theta₁₁)
e2128377f0d0458da608615c2d420ae1--330b15fc132543e5814ba149c8f5469b
9d140f5da84245d49a9a3e0194bbad4d
RX(theta₁₇)
330b15fc132543e5814ba149c8f5469b--9d140f5da84245d49a9a3e0194bbad4d
ed5c0d29b46c413cbaad1e27b8d9a9b3
9d140f5da84245d49a9a3e0194bbad4d--ed5c0d29b46c413cbaad1e27b8d9a9b3
90770e9926e14f9389309dd0058d3439
RX(theta₂₃)
ed5c0d29b46c413cbaad1e27b8d9a9b3--90770e9926e14f9389309dd0058d3439
df37f6dbe1a24c39975f5aa0eb7aeb5b
RY(theta₂₉)
90770e9926e14f9389309dd0058d3439--df37f6dbe1a24c39975f5aa0eb7aeb5b
3d8c51cb218945fb988ca11d804ec625
RX(theta₃₅)
df37f6dbe1a24c39975f5aa0eb7aeb5b--3d8c51cb218945fb988ca11d804ec625
e5e07bcf04e4478c901fa0ccefb87f02
3d8c51cb218945fb988ca11d804ec625--e5e07bcf04e4478c901fa0ccefb87f02
e5e07bcf04e4478c901fa0ccefb87f02--53c2346ca41c43a08038e1613fc6e9d1
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_054dab048ea742bf8b8af0a1ce40025f
BPMA-1
cluster_4874dafbfb194750b70673e0740a2e8e
BPMA-0
2e3ddb0029f148a28684e60166cff066
0
0d8a5e3d66a84eb4844d075041d2d73f
RX(iia_α₀₀)
2e3ddb0029f148a28684e60166cff066--0d8a5e3d66a84eb4844d075041d2d73f
d83858e702b54a119f25811858d31247
1
a0877119999e4aba9d9885fcbdeaf65c
RY(iia_α₀₃)
0d8a5e3d66a84eb4844d075041d2d73f--a0877119999e4aba9d9885fcbdeaf65c
8df728dafc0144988a8b552ccc13ff2a
a0877119999e4aba9d9885fcbdeaf65c--8df728dafc0144988a8b552ccc13ff2a
2152ec362fc14b7783b71759f495e327
8df728dafc0144988a8b552ccc13ff2a--2152ec362fc14b7783b71759f495e327
58899be43e894a0e8379449b7565c951
RX(iia_γ₀₀)
2152ec362fc14b7783b71759f495e327--58899be43e894a0e8379449b7565c951
d615b47c4e11424aa4545e4546d70283
58899be43e894a0e8379449b7565c951--d615b47c4e11424aa4545e4546d70283
5ad02ff8371d44dd8aafa3cc66c79858
d615b47c4e11424aa4545e4546d70283--5ad02ff8371d44dd8aafa3cc66c79858
7708b37c1bae41d7a95f6220e51dbf27
RY(iia_β₀₃)
5ad02ff8371d44dd8aafa3cc66c79858--7708b37c1bae41d7a95f6220e51dbf27
87ea098bdd464291b0a5d4b32cd2c6cf
RX(iia_β₀₀)
7708b37c1bae41d7a95f6220e51dbf27--87ea098bdd464291b0a5d4b32cd2c6cf
2263bce2a3e049ee8754a3c1359d0988
RX(iia_α₁₀)
87ea098bdd464291b0a5d4b32cd2c6cf--2263bce2a3e049ee8754a3c1359d0988
481b1c017fae41cca95826cf19e78a85
RY(iia_α₁₃)
2263bce2a3e049ee8754a3c1359d0988--481b1c017fae41cca95826cf19e78a85
49edc92548f54ef082b85d1aa055d02b
481b1c017fae41cca95826cf19e78a85--49edc92548f54ef082b85d1aa055d02b
13f47742c575469d8fa1c31ffc5329ff
49edc92548f54ef082b85d1aa055d02b--13f47742c575469d8fa1c31ffc5329ff
8a0ebdaec4334d57b317c72fce53f2d9
RX(iia_γ₁₀)
13f47742c575469d8fa1c31ffc5329ff--8a0ebdaec4334d57b317c72fce53f2d9
930a4c5fc235468ab21d373399f49f94
8a0ebdaec4334d57b317c72fce53f2d9--930a4c5fc235468ab21d373399f49f94
33a5ac3f7524423c808d3b3c1b7f0d49
930a4c5fc235468ab21d373399f49f94--33a5ac3f7524423c808d3b3c1b7f0d49
30bd7c39edd040f0b23c519e17b8a9c6
RY(iia_β₁₃)
33a5ac3f7524423c808d3b3c1b7f0d49--30bd7c39edd040f0b23c519e17b8a9c6
a1deed59d0514faa9c4bd84a0e7123f2
RX(iia_β₁₀)
30bd7c39edd040f0b23c519e17b8a9c6--a1deed59d0514faa9c4bd84a0e7123f2
9f3ccdcb27484bf2be54ccdfec1a8aac
a1deed59d0514faa9c4bd84a0e7123f2--9f3ccdcb27484bf2be54ccdfec1a8aac
6d675009fa3341089a6626df2713ec69
67b14a582c414fcb885a35719511f799
RX(iia_α₀₁)
d83858e702b54a119f25811858d31247--67b14a582c414fcb885a35719511f799
a464aa10a1ad4c78a9c0d1db9d80d766
2
fcc186db886548ecb6a007983544fd9a
RY(iia_α₀₄)
67b14a582c414fcb885a35719511f799--fcc186db886548ecb6a007983544fd9a
5d01e9445f764dbba49dccaf6c11f40c
X
fcc186db886548ecb6a007983544fd9a--5d01e9445f764dbba49dccaf6c11f40c
5d01e9445f764dbba49dccaf6c11f40c--8df728dafc0144988a8b552ccc13ff2a
ac08298332cc40a88c94d16e1d664c9b
5d01e9445f764dbba49dccaf6c11f40c--ac08298332cc40a88c94d16e1d664c9b
2023b567d75b4488bca8fcdc72081166
RX(iia_γ₀₁)
ac08298332cc40a88c94d16e1d664c9b--2023b567d75b4488bca8fcdc72081166
28dcedf7f71143bb904a534730fb8abc
2023b567d75b4488bca8fcdc72081166--28dcedf7f71143bb904a534730fb8abc
9f2d17e8c7c14bb5bbb899ffda5db85a
X
28dcedf7f71143bb904a534730fb8abc--9f2d17e8c7c14bb5bbb899ffda5db85a
9f2d17e8c7c14bb5bbb899ffda5db85a--5ad02ff8371d44dd8aafa3cc66c79858
bb1be5c49b15437393411373fdcb7658
RY(iia_β₀₄)
9f2d17e8c7c14bb5bbb899ffda5db85a--bb1be5c49b15437393411373fdcb7658
60f83fecb74c4fbabc70ad2b8d3dd14c
RX(iia_β₀₁)
bb1be5c49b15437393411373fdcb7658--60f83fecb74c4fbabc70ad2b8d3dd14c
dc26a6b87afe4819a1c614f6ed801e0e
RX(iia_α₁₁)
60f83fecb74c4fbabc70ad2b8d3dd14c--dc26a6b87afe4819a1c614f6ed801e0e
041e67f4f44b4bac80f5d6e4521daf9c
RY(iia_α₁₄)
dc26a6b87afe4819a1c614f6ed801e0e--041e67f4f44b4bac80f5d6e4521daf9c
50322d93e66e4fee83e589f2edd4cd7a
X
041e67f4f44b4bac80f5d6e4521daf9c--50322d93e66e4fee83e589f2edd4cd7a
50322d93e66e4fee83e589f2edd4cd7a--49edc92548f54ef082b85d1aa055d02b
23b0337cae234c65bbd2bedd7dad1db8
50322d93e66e4fee83e589f2edd4cd7a--23b0337cae234c65bbd2bedd7dad1db8
f56a06e0d08d45a5bcff063e24ec8267
RX(iia_γ₁₁)
23b0337cae234c65bbd2bedd7dad1db8--f56a06e0d08d45a5bcff063e24ec8267
575cbf73a90b45258c49333139049910
f56a06e0d08d45a5bcff063e24ec8267--575cbf73a90b45258c49333139049910
356ebe5b8f874e30b3d0fdccab16aa4d
X
575cbf73a90b45258c49333139049910--356ebe5b8f874e30b3d0fdccab16aa4d
356ebe5b8f874e30b3d0fdccab16aa4d--33a5ac3f7524423c808d3b3c1b7f0d49
a9da3f4d7a8940f797dfbf575053f341
RY(iia_β₁₄)
356ebe5b8f874e30b3d0fdccab16aa4d--a9da3f4d7a8940f797dfbf575053f341
e337e6e8df16484c9fd39b5d04486b5d
RX(iia_β₁₁)
a9da3f4d7a8940f797dfbf575053f341--e337e6e8df16484c9fd39b5d04486b5d
e337e6e8df16484c9fd39b5d04486b5d--6d675009fa3341089a6626df2713ec69
47f6c4bde4724fd789969f25977a6aaf
9365be862ca3405bbcf81386ea1cbcb0
RX(iia_α₀₂)
a464aa10a1ad4c78a9c0d1db9d80d766--9365be862ca3405bbcf81386ea1cbcb0
7c50b7fd178a4613b1f08c3672f0148f
RY(iia_α₀₅)
9365be862ca3405bbcf81386ea1cbcb0--7c50b7fd178a4613b1f08c3672f0148f
2f98a51d016a45ea80ade063de0d323d
7c50b7fd178a4613b1f08c3672f0148f--2f98a51d016a45ea80ade063de0d323d
5e8765572e9c4e5888cbe17026d384b1
X
2f98a51d016a45ea80ade063de0d323d--5e8765572e9c4e5888cbe17026d384b1
5e8765572e9c4e5888cbe17026d384b1--ac08298332cc40a88c94d16e1d664c9b
72adde706a1d4c5c8758cad8254e9080
RX(iia_γ₀₂)
5e8765572e9c4e5888cbe17026d384b1--72adde706a1d4c5c8758cad8254e9080
4e182fbb70f84caa8000390e8d02a986
X
72adde706a1d4c5c8758cad8254e9080--4e182fbb70f84caa8000390e8d02a986
4e182fbb70f84caa8000390e8d02a986--28dcedf7f71143bb904a534730fb8abc
4290229965504f3fbbf42a6d9bd16071
4e182fbb70f84caa8000390e8d02a986--4290229965504f3fbbf42a6d9bd16071
475fb8c64121409bb1d6675a2097d968
RY(iia_β₀₅)
4290229965504f3fbbf42a6d9bd16071--475fb8c64121409bb1d6675a2097d968
549b9475c25341a59335d8bbd3157c29
RX(iia_β₀₂)
475fb8c64121409bb1d6675a2097d968--549b9475c25341a59335d8bbd3157c29
18541382f29943a8896dbc6d084c4dff
RX(iia_α₁₂)
549b9475c25341a59335d8bbd3157c29--18541382f29943a8896dbc6d084c4dff
5c88f2b95e4146b3a32ae64d155859e4
RY(iia_α₁₅)
18541382f29943a8896dbc6d084c4dff--5c88f2b95e4146b3a32ae64d155859e4
a39527340ffb465c9248c349f6e51ecb
5c88f2b95e4146b3a32ae64d155859e4--a39527340ffb465c9248c349f6e51ecb
693c235a11b84f2a9976c22a451c51a8
X
a39527340ffb465c9248c349f6e51ecb--693c235a11b84f2a9976c22a451c51a8
693c235a11b84f2a9976c22a451c51a8--23b0337cae234c65bbd2bedd7dad1db8
c4a2c9c473c14c05b8faa3f7e4270ded
RX(iia_γ₁₂)
693c235a11b84f2a9976c22a451c51a8--c4a2c9c473c14c05b8faa3f7e4270ded
6cea6fdfa225460bb33c1959bc8947fe
X
c4a2c9c473c14c05b8faa3f7e4270ded--6cea6fdfa225460bb33c1959bc8947fe
6cea6fdfa225460bb33c1959bc8947fe--575cbf73a90b45258c49333139049910
23d7d8ca52514a928f09db7c3cb4a474
6cea6fdfa225460bb33c1959bc8947fe--23d7d8ca52514a928f09db7c3cb4a474
04f3da1fb11349958196b8e3b9888fb1
RY(iia_β₁₅)
23d7d8ca52514a928f09db7c3cb4a474--04f3da1fb11349958196b8e3b9888fb1
b731d1308aa44e0a8cde5b5b3265ba88
RX(iia_β₁₂)
04f3da1fb11349958196b8e3b9888fb1--b731d1308aa44e0a8cde5b5b3265ba88
b731d1308aa44e0a8cde5b5b3265ba88--47f6c4bde4724fd789969f25977a6aaf