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_d0f0c761aeb94088b803cefa5bf21d7a
Constant Chebyshev FM
cluster_93f36befa7aa43e3af451d478d96530b
Constant Fourier FM
184c2a857a804c87bbbf2d0646ea87bc
0
793f55b37fd3467da20e5a9f0f3cd92c
RX(phi)
184c2a857a804c87bbbf2d0646ea87bc--793f55b37fd3467da20e5a9f0f3cd92c
3ae2f0c7aefc4466b4160ee09af1d53d
1
2f0d080d9dd8480d8cb3e5a9d8fd32bd
RX(acos(phi))
793f55b37fd3467da20e5a9f0f3cd92c--2f0d080d9dd8480d8cb3e5a9d8fd32bd
f2c951b609e248d098aeb21e3d64d17c
2f0d080d9dd8480d8cb3e5a9d8fd32bd--f2c951b609e248d098aeb21e3d64d17c
2606fd25baab4c6b9806dabfd76d6de4
3eda01db1ede43c0ad37165cf2fae025
RX(phi)
3ae2f0c7aefc4466b4160ee09af1d53d--3eda01db1ede43c0ad37165cf2fae025
94ecd286a232434fa2113689d37b82bb
2
82469c722e754bba953a739bdc876e2d
RX(acos(phi))
3eda01db1ede43c0ad37165cf2fae025--82469c722e754bba953a739bdc876e2d
82469c722e754bba953a739bdc876e2d--2606fd25baab4c6b9806dabfd76d6de4
71d9c9a72b854123a521a0703aa02d1a
81dd1e47b22f49eb80ec7153b60f8b78
RX(phi)
94ecd286a232434fa2113689d37b82bb--81dd1e47b22f49eb80ec7153b60f8b78
8a3da86d288b48ca96db77364906bedc
RX(acos(phi))
81dd1e47b22f49eb80ec7153b60f8b78--8a3da86d288b48ca96db77364906bedc
8a3da86d288b48ca96db77364906bedc--71d9c9a72b854123a521a0703aa02d1a
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_db0f688a890a451398b77a96d7090213
Constant <function custom_fn at 0x7f2680135090> FM
cluster_e42cdb0e471048d1a2b94d2448e22aeb
Constant asin FM
24a64f8f86a4440b8aebd13432013b90
0
2e569d82770d44dc9f22de76112e8edd
RX(asin(phi))
24a64f8f86a4440b8aebd13432013b90--2e569d82770d44dc9f22de76112e8edd
f7755b4116264ae1a3cc60206b211c23
1
7c4d855ea5124f97a42220d865c2e0f6
RX(phi**2 + asin(phi))
2e569d82770d44dc9f22de76112e8edd--7c4d855ea5124f97a42220d865c2e0f6
b0c8171bed924898bec5755be34bb8bb
7c4d855ea5124f97a42220d865c2e0f6--b0c8171bed924898bec5755be34bb8bb
65f62e153fc243f2aca7406632c91a7e
2bd2212b116f478a84f170adaeaba308
RX(asin(phi))
f7755b4116264ae1a3cc60206b211c23--2bd2212b116f478a84f170adaeaba308
493e4f7ed9ad422f958762bcefe599c3
2
67f5c29f13ef4000b82ec9e28f58e358
RX(phi**2 + asin(phi))
2bd2212b116f478a84f170adaeaba308--67f5c29f13ef4000b82ec9e28f58e358
67f5c29f13ef4000b82ec9e28f58e358--65f62e153fc243f2aca7406632c91a7e
4b3733ebe6cc40e58a5e73d7b455615c
b1fc2af06bc044c3a39798653d8fdc04
RX(asin(phi))
493e4f7ed9ad422f958762bcefe599c3--b1fc2af06bc044c3a39798653d8fdc04
cbe025c23565442594fc999c8016f50c
RX(phi**2 + asin(phi))
b1fc2af06bc044c3a39798653d8fdc04--cbe025c23565442594fc999c8016f50c
cbe025c23565442594fc999c8016f50c--4b3733ebe6cc40e58a5e73d7b455615c
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_b73724badd5a420ca84bba77e3eba8e9
Exponential Fourier FM
cluster_7a06056f8b0b46cfbdc221f30e3b7912
Constant Fourier FM
cluster_582cc6d485c243eb894636b01230b17c
Tower Fourier FM
cc4b1c3c95a64ea19cf9ed11f6d8397b
0
f1e678cbbbd54f2abfcde0bf28a43336
RX(phi)
cc4b1c3c95a64ea19cf9ed11f6d8397b--f1e678cbbbd54f2abfcde0bf28a43336
3fc2370c36714c079b292ca9f1520977
1
17c99b38303f4f5399922d9b3437b06a
RX(1.0*phi)
f1e678cbbbd54f2abfcde0bf28a43336--17c99b38303f4f5399922d9b3437b06a
1ae1f9f02d904b39bf9ff29d2c4e9371
RX(1.0*phi)
17c99b38303f4f5399922d9b3437b06a--1ae1f9f02d904b39bf9ff29d2c4e9371
503de52e15b9477995c3fb971f59764b
1ae1f9f02d904b39bf9ff29d2c4e9371--503de52e15b9477995c3fb971f59764b
3b9753aa74184c4a9e76965c129ce754
8b1f99e884e141e88e8d7f02a0674ef1
RX(phi)
3fc2370c36714c079b292ca9f1520977--8b1f99e884e141e88e8d7f02a0674ef1
3d1037764c18418b96a6351e9b386f40
2
b44bfb5cf21e4a86ab77932d71056df2
RX(2.0*phi)
8b1f99e884e141e88e8d7f02a0674ef1--b44bfb5cf21e4a86ab77932d71056df2
487d7becf3024255a7e9dedb7f97ed35
RX(2.0*phi)
b44bfb5cf21e4a86ab77932d71056df2--487d7becf3024255a7e9dedb7f97ed35
487d7becf3024255a7e9dedb7f97ed35--3b9753aa74184c4a9e76965c129ce754
5a69c0e6cdf24fdb9478c981ccdf06d1
a9a4af9abbd14edb9191aba04dfdbc79
RX(phi)
3d1037764c18418b96a6351e9b386f40--a9a4af9abbd14edb9191aba04dfdbc79
4aa3c27c92d94cc788579a8b1f3a9705
3
71fd7125c14841c7a12a436899776b76
RX(3.0*phi)
a9a4af9abbd14edb9191aba04dfdbc79--71fd7125c14841c7a12a436899776b76
86c2f3ac34bb4f8c93448430a252ab41
RX(4.0*phi)
71fd7125c14841c7a12a436899776b76--86c2f3ac34bb4f8c93448430a252ab41
86c2f3ac34bb4f8c93448430a252ab41--5a69c0e6cdf24fdb9478c981ccdf06d1
5ab52809fe13466dab7220330b4b35c8
8fa8b75a3b994bdb89996ce8cf346063
RX(phi)
4aa3c27c92d94cc788579a8b1f3a9705--8fa8b75a3b994bdb89996ce8cf346063
2840af383a1a40d0a20319ae116ae4da
4
80da7696f928430e977206d599b350a8
RX(4.0*phi)
8fa8b75a3b994bdb89996ce8cf346063--80da7696f928430e977206d599b350a8
a76274da0e6844d389d2e3ebf335e195
RX(8.0*phi)
80da7696f928430e977206d599b350a8--a76274da0e6844d389d2e3ebf335e195
a76274da0e6844d389d2e3ebf335e195--5ab52809fe13466dab7220330b4b35c8
2f48672a4228405ca2a105bc79260926
94b8dca300cc4749830cce85c49a38ed
RX(phi)
2840af383a1a40d0a20319ae116ae4da--94b8dca300cc4749830cce85c49a38ed
aa27090a45584a8ba4bd7a66d0651e37
RX(5.0*phi)
94b8dca300cc4749830cce85c49a38ed--aa27090a45584a8ba4bd7a66d0651e37
13f759246aba40c7bbafb346e51d2d2c
RX(16.0*phi)
aa27090a45584a8ba4bd7a66d0651e37--13f759246aba40c7bbafb346e51d2d2c
13f759246aba40c7bbafb346e51d2d2c--2f48672a4228405ca2a105bc79260926
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
a167da9091ea4ae09b8a4d2beb82f65f
0
3f0cb028316a41f6a1a2f254e3219d3b
RX(1.0*acos(phi))
a167da9091ea4ae09b8a4d2beb82f65f--3f0cb028316a41f6a1a2f254e3219d3b
c7d4871627f743b193483fde7e9968cd
1
cc7f90adba574f0996449e3eb6d5f39a
3f0cb028316a41f6a1a2f254e3219d3b--cc7f90adba574f0996449e3eb6d5f39a
e78a7491632e480bab481e8d8ae7e113
10d97f9a695c4e8ba2a602009fa78b00
RX(1.414*acos(phi))
c7d4871627f743b193483fde7e9968cd--10d97f9a695c4e8ba2a602009fa78b00
db25ae1c61944738b2c625df21b457ac
2
10d97f9a695c4e8ba2a602009fa78b00--e78a7491632e480bab481e8d8ae7e113
bd3a76b0cab34eda9e8154c628ce8f22
0771856089ce42bcba711f48f9a0c05d
RX(1.732*acos(phi))
db25ae1c61944738b2c625df21b457ac--0771856089ce42bcba711f48f9a0c05d
431e3e588c2d496e827a1b5e6ba58a86
3
0771856089ce42bcba711f48f9a0c05d--bd3a76b0cab34eda9e8154c628ce8f22
5f03a5dc477b4e04b6721e785e56f712
87f037e8df024cfcb535e93d6d60ef35
RX(2.0*acos(phi))
431e3e588c2d496e827a1b5e6ba58a86--87f037e8df024cfcb535e93d6d60ef35
5cb49c6463dd4bb99657885a997de620
4
87f037e8df024cfcb535e93d6d60ef35--5f03a5dc477b4e04b6721e785e56f712
337a7b6d24b04c48ab98407bbfc7f4a1
994d1e2fa84a4107b8e040968ea87d73
RX(2.236*acos(phi))
5cb49c6463dd4bb99657885a997de620--994d1e2fa84a4107b8e040968ea87d73
994d1e2fa84a4107b8e040968ea87d73--337a7b6d24b04c48ab98407bbfc7f4a1
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
f26e53f146f9456a8cbe2767e5730fc3
0
3204cd4a34974d1880001f5528a51674
RX(1.0*phi*w₀)
f26e53f146f9456a8cbe2767e5730fc3--3204cd4a34974d1880001f5528a51674
620b2468de3143768a712abeb97a39ee
1
e484ee3a532d40e5b76aa34a56b4eba4
3204cd4a34974d1880001f5528a51674--e484ee3a532d40e5b76aa34a56b4eba4
94eddcb85cd14d1197b90aa4800252ad
733cc0e0d20a4a64986504e60711bd91
RX(2.0*phi*w₁)
620b2468de3143768a712abeb97a39ee--733cc0e0d20a4a64986504e60711bd91
4e3eb48f8008467cb1f68cb2642d00e5
2
733cc0e0d20a4a64986504e60711bd91--94eddcb85cd14d1197b90aa4800252ad
5fdafbc388664adaa3f981bef6137a81
57def63de98d46f0a82966e5100a0588
RX(4.0*phi*w₂)
4e3eb48f8008467cb1f68cb2642d00e5--57def63de98d46f0a82966e5100a0588
738ee9ad13aa4a12b8164ef791413a7a
3
57def63de98d46f0a82966e5100a0588--5fdafbc388664adaa3f981bef6137a81
c55841b4c6524e818e17d44322922b62
ac1242dc48954c9cb1938f4dbd2930f1
RX(8.0*phi*w₃)
738ee9ad13aa4a12b8164ef791413a7a--ac1242dc48954c9cb1938f4dbd2930f1
6b72c24cc2e54f39852fd1e4907aafc1
4
ac1242dc48954c9cb1938f4dbd2930f1--c55841b4c6524e818e17d44322922b62
fdb2f15802354847b840ba48e81b2bb8
c75b29ecae1d4823a10dc96bdbca990a
RX(16.0*phi*w₄)
6b72c24cc2e54f39852fd1e4907aafc1--c75b29ecae1d4823a10dc96bdbca990a
c75b29ecae1d4823a10dc96bdbca990a--fdb2f15802354847b840ba48e81b2bb8
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
5d08a6bf8d394a86b7967ce197f04b35
0
719929f1b2c943e0a979008c947ea8ce
RY(80.0*acos(w₄*(0.667*x + 1.667)))
5d08a6bf8d394a86b7967ce197f04b35--719929f1b2c943e0a979008c947ea8ce
5faea69ec50e4d989bbfd6a3e34546e3
1
998d0194eee8432093a9f86b611f069e
719929f1b2c943e0a979008c947ea8ce--998d0194eee8432093a9f86b611f069e
02224a035dc14a13848873aa4974b028
96558155b0084c92ae1f47bbec6e9d34
RY(40.0*acos(w₃*(0.667*x + 1.667)))
5faea69ec50e4d989bbfd6a3e34546e3--96558155b0084c92ae1f47bbec6e9d34
330597dd09fc47e088258a57928853b5
2
96558155b0084c92ae1f47bbec6e9d34--02224a035dc14a13848873aa4974b028
90c3f377d28f4836a9cc7c059b37bfe0
967c3bd7b0e147f1982c3189e92c047e
RY(20.0*acos(w₂*(0.667*x + 1.667)))
330597dd09fc47e088258a57928853b5--967c3bd7b0e147f1982c3189e92c047e
c98f67ce66d948b58b9e6f9c14e7d6d1
3
967c3bd7b0e147f1982c3189e92c047e--90c3f377d28f4836a9cc7c059b37bfe0
618c082abfb34e148b83b5b32054943a
f6d49b2a5a4d4052a7050feadcc85679
RY(10.0*acos(w₁*(0.667*x + 1.667)))
c98f67ce66d948b58b9e6f9c14e7d6d1--f6d49b2a5a4d4052a7050feadcc85679
97f16a926619439f9709f310368ad95e
4
f6d49b2a5a4d4052a7050feadcc85679--618c082abfb34e148b83b5b32054943a
96fd5545471849d28b024c7aafc2287d
979316cddbe94de68a4f6688927a6e1c
RY(5.0*acos(w₀*(0.667*x + 1.667)))
97f16a926619439f9709f310368ad95e--979316cddbe94de68a4f6688927a6e1c
979316cddbe94de68a4f6688927a6e1c--96fd5545471849d28b024c7aafc2287d
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
bd9137f16d9c4ba99a0bb8409c0651a6
0
5cec4601de454c8a9263876638438649
RX(theta₀)
bd9137f16d9c4ba99a0bb8409c0651a6--5cec4601de454c8a9263876638438649
58f1a288242e41ae8850c53a13167ff6
1
7957e0f89ce24cc8839f9ad5dfc04431
RY(theta₃)
5cec4601de454c8a9263876638438649--7957e0f89ce24cc8839f9ad5dfc04431
62b8a24ca32a4e2088136557ab5a62ce
RX(theta₆)
7957e0f89ce24cc8839f9ad5dfc04431--62b8a24ca32a4e2088136557ab5a62ce
178daccfde9f404ca6529665724b9a7d
62b8a24ca32a4e2088136557ab5a62ce--178daccfde9f404ca6529665724b9a7d
4303a0248faf4b47af9f5d2254d77b92
178daccfde9f404ca6529665724b9a7d--4303a0248faf4b47af9f5d2254d77b92
b67892a5e0b84935bb94b065dc556677
RX(theta₉)
4303a0248faf4b47af9f5d2254d77b92--b67892a5e0b84935bb94b065dc556677
272daa47f7dc4b4a8f98078a280b5ed9
RY(theta₁₂)
b67892a5e0b84935bb94b065dc556677--272daa47f7dc4b4a8f98078a280b5ed9
592b84f59ccc46b28d6e05144673163f
RX(theta₁₅)
272daa47f7dc4b4a8f98078a280b5ed9--592b84f59ccc46b28d6e05144673163f
458e3ba4a9404ad5867208af46111fd6
592b84f59ccc46b28d6e05144673163f--458e3ba4a9404ad5867208af46111fd6
d48eb7bb95bc453da07528bdef2b17b6
458e3ba4a9404ad5867208af46111fd6--d48eb7bb95bc453da07528bdef2b17b6
7fd332a195fc47e195aa7b1ff7aa6e30
d48eb7bb95bc453da07528bdef2b17b6--7fd332a195fc47e195aa7b1ff7aa6e30
b578c2397a9f4e468bacf51c8c8a6e48
68d69f67da4244e3ae4b4efd700185c1
RX(theta₁)
58f1a288242e41ae8850c53a13167ff6--68d69f67da4244e3ae4b4efd700185c1
ff020fdede3644eb88ec9e869805920d
2
99de3a06b02f4ad3a5fdd8c66eff0617
RY(theta₄)
68d69f67da4244e3ae4b4efd700185c1--99de3a06b02f4ad3a5fdd8c66eff0617
d45e250e10d74c5aa2688d1e7bbdeaeb
RX(theta₇)
99de3a06b02f4ad3a5fdd8c66eff0617--d45e250e10d74c5aa2688d1e7bbdeaeb
4950c71f847a4f50a3cb51f6c2084abf
X
d45e250e10d74c5aa2688d1e7bbdeaeb--4950c71f847a4f50a3cb51f6c2084abf
4950c71f847a4f50a3cb51f6c2084abf--178daccfde9f404ca6529665724b9a7d
1f0dabb2a9974a32a6a77b18d8687a50
4950c71f847a4f50a3cb51f6c2084abf--1f0dabb2a9974a32a6a77b18d8687a50
61292ef9518d4e2b9830653f1622a23a
RX(theta₁₀)
1f0dabb2a9974a32a6a77b18d8687a50--61292ef9518d4e2b9830653f1622a23a
3a6e83188a1c4d5f98d8484572dddc2d
RY(theta₁₃)
61292ef9518d4e2b9830653f1622a23a--3a6e83188a1c4d5f98d8484572dddc2d
a5a4ec928a7849a7ae866643ec58d002
RX(theta₁₆)
3a6e83188a1c4d5f98d8484572dddc2d--a5a4ec928a7849a7ae866643ec58d002
619bf040aac8440499e899384fa047ad
X
a5a4ec928a7849a7ae866643ec58d002--619bf040aac8440499e899384fa047ad
619bf040aac8440499e899384fa047ad--458e3ba4a9404ad5867208af46111fd6
00e013d6928f429eb2592116121cee05
619bf040aac8440499e899384fa047ad--00e013d6928f429eb2592116121cee05
00e013d6928f429eb2592116121cee05--b578c2397a9f4e468bacf51c8c8a6e48
83d918b6f0e34901814440566182e639
be1fe7dc29f043049e836eca10e192f4
RX(theta₂)
ff020fdede3644eb88ec9e869805920d--be1fe7dc29f043049e836eca10e192f4
91a3fcf6061f4b3ba91931b46c6b46ad
RY(theta₅)
be1fe7dc29f043049e836eca10e192f4--91a3fcf6061f4b3ba91931b46c6b46ad
c5e0009151b647eb9096ebda2668405d
RX(theta₈)
91a3fcf6061f4b3ba91931b46c6b46ad--c5e0009151b647eb9096ebda2668405d
3ee42d6d52664f329fe1e5e2afd1af92
c5e0009151b647eb9096ebda2668405d--3ee42d6d52664f329fe1e5e2afd1af92
a69eb3553523476c9b80d4bf9b245d42
X
3ee42d6d52664f329fe1e5e2afd1af92--a69eb3553523476c9b80d4bf9b245d42
a69eb3553523476c9b80d4bf9b245d42--1f0dabb2a9974a32a6a77b18d8687a50
67ed02c9b553402091943e1744381d18
RX(theta₁₁)
a69eb3553523476c9b80d4bf9b245d42--67ed02c9b553402091943e1744381d18
723b8155fd3f41249417d2dcb2919a22
RY(theta₁₄)
67ed02c9b553402091943e1744381d18--723b8155fd3f41249417d2dcb2919a22
7586f7a88ea246089227cdd358bb9917
RX(theta₁₇)
723b8155fd3f41249417d2dcb2919a22--7586f7a88ea246089227cdd358bb9917
e4f46d297dd849e8b5b32bd148e11113
7586f7a88ea246089227cdd358bb9917--e4f46d297dd849e8b5b32bd148e11113
a6dbf34d82fa4877a3f507714050f9a3
X
e4f46d297dd849e8b5b32bd148e11113--a6dbf34d82fa4877a3f507714050f9a3
a6dbf34d82fa4877a3f507714050f9a3--00e013d6928f429eb2592116121cee05
a6dbf34d82fa4877a3f507714050f9a3--83d918b6f0e34901814440566182e639
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
069fa5d559b94eeaa5b7705e7e49406c
0
5bde0983ef3a43c1a0f5004b90828866
RX(phi₀)
069fa5d559b94eeaa5b7705e7e49406c--5bde0983ef3a43c1a0f5004b90828866
734ff03e51ca47c8a98c06b66b178c60
1
dec26d4721f5421ebc800d36cf42acf7
RY(phi₃)
5bde0983ef3a43c1a0f5004b90828866--dec26d4721f5421ebc800d36cf42acf7
04ca5747109a4a1ba1211042e6606860
RX(phi₆)
dec26d4721f5421ebc800d36cf42acf7--04ca5747109a4a1ba1211042e6606860
1e83c9a97ea646a99639117f60edae3d
04ca5747109a4a1ba1211042e6606860--1e83c9a97ea646a99639117f60edae3d
4d065f56655e49bdbddeea65ccca9624
1e83c9a97ea646a99639117f60edae3d--4d065f56655e49bdbddeea65ccca9624
339db55bd9414f55a1d485c5395dff09
RX(phi₉)
4d065f56655e49bdbddeea65ccca9624--339db55bd9414f55a1d485c5395dff09
475a17f3d24d4ef5bd0d5956eac20f88
RY(phi₁₂)
339db55bd9414f55a1d485c5395dff09--475a17f3d24d4ef5bd0d5956eac20f88
1ed40e47cf6140e5aade508e97849f85
RX(phi₁₅)
475a17f3d24d4ef5bd0d5956eac20f88--1ed40e47cf6140e5aade508e97849f85
056c2cefad4846ec8e41025bf46b5e81
1ed40e47cf6140e5aade508e97849f85--056c2cefad4846ec8e41025bf46b5e81
54c183e65e1946ae928b29da95226043
056c2cefad4846ec8e41025bf46b5e81--54c183e65e1946ae928b29da95226043
eaefb33b61344f74b7c91cc01c3abf7f
54c183e65e1946ae928b29da95226043--eaefb33b61344f74b7c91cc01c3abf7f
51c5277911664beca0b7473d65ff77fd
478f571ec793471cbeef7c471e105dc3
RX(phi₁)
734ff03e51ca47c8a98c06b66b178c60--478f571ec793471cbeef7c471e105dc3
44fb38c8492e48c68312e57a1ecd1cce
2
d39eac6a4050406c9560a97cd4ec6055
RY(phi₄)
478f571ec793471cbeef7c471e105dc3--d39eac6a4050406c9560a97cd4ec6055
f98a9ab9fab14da1b89afacad0efc4f4
RX(phi₇)
d39eac6a4050406c9560a97cd4ec6055--f98a9ab9fab14da1b89afacad0efc4f4
ab84e2253e2642758af1d3c73b8eeb30
PHASE(phi_ent₀)
f98a9ab9fab14da1b89afacad0efc4f4--ab84e2253e2642758af1d3c73b8eeb30
ab84e2253e2642758af1d3c73b8eeb30--1e83c9a97ea646a99639117f60edae3d
b584f2a926d740ffb5964c63da8a276b
ab84e2253e2642758af1d3c73b8eeb30--b584f2a926d740ffb5964c63da8a276b
ef824ecafcab42d28e286c9714e03e78
RX(phi₁₀)
b584f2a926d740ffb5964c63da8a276b--ef824ecafcab42d28e286c9714e03e78
a326fdbde66843e68386f0efcdcf68ea
RY(phi₁₃)
ef824ecafcab42d28e286c9714e03e78--a326fdbde66843e68386f0efcdcf68ea
c81d3485efb8488ebbc039f57c6f703f
RX(phi₁₆)
a326fdbde66843e68386f0efcdcf68ea--c81d3485efb8488ebbc039f57c6f703f
96cd1a0355dc475fb0aa5053da43fbba
PHASE(phi_ent₂)
c81d3485efb8488ebbc039f57c6f703f--96cd1a0355dc475fb0aa5053da43fbba
96cd1a0355dc475fb0aa5053da43fbba--056c2cefad4846ec8e41025bf46b5e81
8ba69ac17af44b36934b1f674016ec7e
96cd1a0355dc475fb0aa5053da43fbba--8ba69ac17af44b36934b1f674016ec7e
8ba69ac17af44b36934b1f674016ec7e--51c5277911664beca0b7473d65ff77fd
f4d1a2939be34c13882212dc8b4b1019
d5c6e6bc57b3452886dbbef0d436c0ec
RX(phi₂)
44fb38c8492e48c68312e57a1ecd1cce--d5c6e6bc57b3452886dbbef0d436c0ec
b6c2bbd69fc4406d96be7514fc7e2e4c
RY(phi₅)
d5c6e6bc57b3452886dbbef0d436c0ec--b6c2bbd69fc4406d96be7514fc7e2e4c
f0ae9c6f469846219311d3a20af4df70
RX(phi₈)
b6c2bbd69fc4406d96be7514fc7e2e4c--f0ae9c6f469846219311d3a20af4df70
3046ab0af71c465cb62a14f6bec47bf7
f0ae9c6f469846219311d3a20af4df70--3046ab0af71c465cb62a14f6bec47bf7
54eca4f69882440f985a5e577a659129
PHASE(phi_ent₁)
3046ab0af71c465cb62a14f6bec47bf7--54eca4f69882440f985a5e577a659129
54eca4f69882440f985a5e577a659129--b584f2a926d740ffb5964c63da8a276b
3102eaa8558c4320a85a6c1ca7d42174
RX(phi₁₁)
54eca4f69882440f985a5e577a659129--3102eaa8558c4320a85a6c1ca7d42174
26e928e2d2104b5c9af8afc4527250f6
RY(phi₁₄)
3102eaa8558c4320a85a6c1ca7d42174--26e928e2d2104b5c9af8afc4527250f6
43409b6a9ab342edbda386a36ab0d989
RX(phi₁₇)
26e928e2d2104b5c9af8afc4527250f6--43409b6a9ab342edbda386a36ab0d989
97f9237affc34d2da34e16e031689b68
43409b6a9ab342edbda386a36ab0d989--97f9237affc34d2da34e16e031689b68
bebca7259b0542ddbc76c72fe332ebde
PHASE(phi_ent₃)
97f9237affc34d2da34e16e031689b68--bebca7259b0542ddbc76c72fe332ebde
bebca7259b0542ddbc76c72fe332ebde--8ba69ac17af44b36934b1f674016ec7e
bebca7259b0542ddbc76c72fe332ebde--f4d1a2939be34c13882212dc8b4b1019
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_fc481792b4b34fbc93a458f148a25a14
cluster_4fd3e77f90e14312bd23c905f132b6f8
0cef6609957e4eada7ac08029d9551e0
0
0719ba19480441c8a89618082fa4fe5d
RX(theta₀)
0cef6609957e4eada7ac08029d9551e0--0719ba19480441c8a89618082fa4fe5d
18d0824487e6431f88969d01d315a616
1
da2643d422e3475ebe0025999600a03e
RY(theta₃)
0719ba19480441c8a89618082fa4fe5d--da2643d422e3475ebe0025999600a03e
90e3095338e54955a55fa3e94722ff9c
RX(theta₆)
da2643d422e3475ebe0025999600a03e--90e3095338e54955a55fa3e94722ff9c
065e6abf09314c279984df22823826b8
HamEvo
90e3095338e54955a55fa3e94722ff9c--065e6abf09314c279984df22823826b8
f264afce665340c99607c625ec36c003
RX(theta₉)
065e6abf09314c279984df22823826b8--f264afce665340c99607c625ec36c003
57598f2f801a40ef91096d8845d8e649
RY(theta₁₂)
f264afce665340c99607c625ec36c003--57598f2f801a40ef91096d8845d8e649
d14575a71b664273a0b919f245a9fbc7
RX(theta₁₅)
57598f2f801a40ef91096d8845d8e649--d14575a71b664273a0b919f245a9fbc7
1a9a3c64017c4478a33783ccde53bd49
HamEvo
d14575a71b664273a0b919f245a9fbc7--1a9a3c64017c4478a33783ccde53bd49
a750929da9164279b1dd9e872bed01f3
1a9a3c64017c4478a33783ccde53bd49--a750929da9164279b1dd9e872bed01f3
95e57a15ae3f4585ac7e61b402c2e1ab
46a7e2274bb2410bae813dbcbe01d9ab
RX(theta₁)
18d0824487e6431f88969d01d315a616--46a7e2274bb2410bae813dbcbe01d9ab
ec36c9897aff4acab92292b495c41262
2
f85eed2a51714b0a9931e088d662de8f
RY(theta₄)
46a7e2274bb2410bae813dbcbe01d9ab--f85eed2a51714b0a9931e088d662de8f
43559234fa244ddab413a8a49b8f17a2
RX(theta₇)
f85eed2a51714b0a9931e088d662de8f--43559234fa244ddab413a8a49b8f17a2
386f5456629b41a48604fb0001a8a346
t = theta_t₀
43559234fa244ddab413a8a49b8f17a2--386f5456629b41a48604fb0001a8a346
436b6a89f915449c94e10ca50677ef30
RX(theta₁₀)
386f5456629b41a48604fb0001a8a346--436b6a89f915449c94e10ca50677ef30
65e11ba39dbf44d3a9cebffe19cc5412
RY(theta₁₃)
436b6a89f915449c94e10ca50677ef30--65e11ba39dbf44d3a9cebffe19cc5412
86e1baa06aa84d1aa82d21ce3b261a31
RX(theta₁₆)
65e11ba39dbf44d3a9cebffe19cc5412--86e1baa06aa84d1aa82d21ce3b261a31
deb048a204ef4d05abffff16d06d3ede
t = theta_t₁
86e1baa06aa84d1aa82d21ce3b261a31--deb048a204ef4d05abffff16d06d3ede
deb048a204ef4d05abffff16d06d3ede--95e57a15ae3f4585ac7e61b402c2e1ab
db9706a9e95c4066a622cf514aec3a81
d984b2a50c2642adb480479fc4cebfc9
RX(theta₂)
ec36c9897aff4acab92292b495c41262--d984b2a50c2642adb480479fc4cebfc9
70df5e1c56fd45ca86ec7d7dcb187c12
RY(theta₅)
d984b2a50c2642adb480479fc4cebfc9--70df5e1c56fd45ca86ec7d7dcb187c12
274053b6345345ca9648cea97f269df1
RX(theta₈)
70df5e1c56fd45ca86ec7d7dcb187c12--274053b6345345ca9648cea97f269df1
f83ce05b57f04bcc86bb915e0a95da79
274053b6345345ca9648cea97f269df1--f83ce05b57f04bcc86bb915e0a95da79
0e14afa69495414ca2a2f6148a7fdfb2
RX(theta₁₁)
f83ce05b57f04bcc86bb915e0a95da79--0e14afa69495414ca2a2f6148a7fdfb2
547a9b0de93b4c7fa747bb749aab20a6
RY(theta₁₄)
0e14afa69495414ca2a2f6148a7fdfb2--547a9b0de93b4c7fa747bb749aab20a6
c1e8ce1d5bb841d083eb17455938cf9d
RX(theta₁₇)
547a9b0de93b4c7fa747bb749aab20a6--c1e8ce1d5bb841d083eb17455938cf9d
e48017f5dd4d4082bf0784f6004d6ef1
c1e8ce1d5bb841d083eb17455938cf9d--e48017f5dd4d4082bf0784f6004d6ef1
e48017f5dd4d4082bf0784f6004d6ef1--db9706a9e95c4066a622cf514aec3a81
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_82b6e1d3b5ea436c8bdfb615c7f8cf7d
cluster_92ff2b5ae4a54725917a4508130b63dd
ead38694255e47a59a0078aecb3d3124
0
77c7f579a96c4ea3ab473cc3dc720180
RX(theta₀)
ead38694255e47a59a0078aecb3d3124--77c7f579a96c4ea3ab473cc3dc720180
c4a54567dddc4e198032658b090ec1f4
1
22651df3746b4e1bb3e97a8d857ae4a3
RY(theta₆)
77c7f579a96c4ea3ab473cc3dc720180--22651df3746b4e1bb3e97a8d857ae4a3
962b4ad91ba64d5783adee5f5ebcc265
RX(theta₁₂)
22651df3746b4e1bb3e97a8d857ae4a3--962b4ad91ba64d5783adee5f5ebcc265
983da2062c954d6bb43d2f983034f366
962b4ad91ba64d5783adee5f5ebcc265--983da2062c954d6bb43d2f983034f366
b000b1c5a9404d9ea5d4421999cffcab
RX(theta₁₈)
983da2062c954d6bb43d2f983034f366--b000b1c5a9404d9ea5d4421999cffcab
1e3286eb00854f428f854bd8f193468a
RY(theta₂₄)
b000b1c5a9404d9ea5d4421999cffcab--1e3286eb00854f428f854bd8f193468a
ffca8279ba31440fbd3d4fa0e366367b
RX(theta₃₀)
1e3286eb00854f428f854bd8f193468a--ffca8279ba31440fbd3d4fa0e366367b
ccd4ee8aea7040cbbc9aa8f51b956aeb
ffca8279ba31440fbd3d4fa0e366367b--ccd4ee8aea7040cbbc9aa8f51b956aeb
4008b5f0b3e448a3867f0eddcd22201b
ccd4ee8aea7040cbbc9aa8f51b956aeb--4008b5f0b3e448a3867f0eddcd22201b
b5234aa8b29b437f8d9c27534eeacc84
79887f1227fd4de6bf8c7ae188f22f0d
RX(theta₁)
c4a54567dddc4e198032658b090ec1f4--79887f1227fd4de6bf8c7ae188f22f0d
dae771bc8f694fcfb1812beae23c00f9
2
2699239912fc474d8efccfbb796ca151
RY(theta₇)
79887f1227fd4de6bf8c7ae188f22f0d--2699239912fc474d8efccfbb796ca151
884c681f1b5a4478ae8c2da8bf852f6b
RX(theta₁₃)
2699239912fc474d8efccfbb796ca151--884c681f1b5a4478ae8c2da8bf852f6b
9421439942a04002ad461868c7228e6c
884c681f1b5a4478ae8c2da8bf852f6b--9421439942a04002ad461868c7228e6c
713393891805467e80d93d4174232665
RX(theta₁₉)
9421439942a04002ad461868c7228e6c--713393891805467e80d93d4174232665
c3580369ebd64ae8824d1efc6351e4c9
RY(theta₂₅)
713393891805467e80d93d4174232665--c3580369ebd64ae8824d1efc6351e4c9
52b7dbf6924e4cc484fff3bc4a5c6697
RX(theta₃₁)
c3580369ebd64ae8824d1efc6351e4c9--52b7dbf6924e4cc484fff3bc4a5c6697
4f7b410350254170946a4e8c6cb71f0e
52b7dbf6924e4cc484fff3bc4a5c6697--4f7b410350254170946a4e8c6cb71f0e
4f7b410350254170946a4e8c6cb71f0e--b5234aa8b29b437f8d9c27534eeacc84
e32913a29b844a4ba352e9fba3964df6
024167bf29eb4ea1879b1109610301f6
RX(theta₂)
dae771bc8f694fcfb1812beae23c00f9--024167bf29eb4ea1879b1109610301f6
284e1ccfd0294082abd2cf743017d9f9
3
5113d45978df441cb40a9f8ff65b826a
RY(theta₈)
024167bf29eb4ea1879b1109610301f6--5113d45978df441cb40a9f8ff65b826a
e9d8d51883b04b8da8c7b94483f5b4f8
RX(theta₁₄)
5113d45978df441cb40a9f8ff65b826a--e9d8d51883b04b8da8c7b94483f5b4f8
3916187f93e1422cbe1f7c54d9d38645
HamEvo
e9d8d51883b04b8da8c7b94483f5b4f8--3916187f93e1422cbe1f7c54d9d38645
c5611c7e097647888528b5961d2412a7
RX(theta₂₀)
3916187f93e1422cbe1f7c54d9d38645--c5611c7e097647888528b5961d2412a7
ec578b20e1df4c88acb7884b04d4d922
RY(theta₂₆)
c5611c7e097647888528b5961d2412a7--ec578b20e1df4c88acb7884b04d4d922
90d2e8c68654489c8b615c8f0f0074ec
RX(theta₃₂)
ec578b20e1df4c88acb7884b04d4d922--90d2e8c68654489c8b615c8f0f0074ec
1365272cc3c64deb803419a0d7eb9159
HamEvo
90d2e8c68654489c8b615c8f0f0074ec--1365272cc3c64deb803419a0d7eb9159
1365272cc3c64deb803419a0d7eb9159--e32913a29b844a4ba352e9fba3964df6
647bc36b41c5447d968088651cbe17f4
e25143fa424a407cb103dffa909080e8
RX(theta₃)
284e1ccfd0294082abd2cf743017d9f9--e25143fa424a407cb103dffa909080e8
6874dcc1ae304657b5fb217f3ea844d4
4
2d60606cc41b4c38b71f776115b03bf0
RY(theta₉)
e25143fa424a407cb103dffa909080e8--2d60606cc41b4c38b71f776115b03bf0
2985db87a55441379c16b64ee0ee22f3
RX(theta₁₅)
2d60606cc41b4c38b71f776115b03bf0--2985db87a55441379c16b64ee0ee22f3
fd3e5bdba7354a80a5319e4493191042
t = theta_t₀
2985db87a55441379c16b64ee0ee22f3--fd3e5bdba7354a80a5319e4493191042
3c1060249e9148779616a25ba5a87d36
RX(theta₂₁)
fd3e5bdba7354a80a5319e4493191042--3c1060249e9148779616a25ba5a87d36
a2c32806c01e461b80748eaaa1858829
RY(theta₂₇)
3c1060249e9148779616a25ba5a87d36--a2c32806c01e461b80748eaaa1858829
d251751d9cbc4484837e3d5382fd2e15
RX(theta₃₃)
a2c32806c01e461b80748eaaa1858829--d251751d9cbc4484837e3d5382fd2e15
129a7217dc5742e3afcf0a94126a82ac
t = theta_t₁
d251751d9cbc4484837e3d5382fd2e15--129a7217dc5742e3afcf0a94126a82ac
129a7217dc5742e3afcf0a94126a82ac--647bc36b41c5447d968088651cbe17f4
5ec737631b2d416b9514ac2681032802
fc380114dc5842eda9bf58bac71c707c
RX(theta₄)
6874dcc1ae304657b5fb217f3ea844d4--fc380114dc5842eda9bf58bac71c707c
df81a38eab004fcd842d10e5284fc629
5
3ce7ba1dead24a97a3590ab219cd2365
RY(theta₁₀)
fc380114dc5842eda9bf58bac71c707c--3ce7ba1dead24a97a3590ab219cd2365
544eccec60d74b90bdc7858586f837f9
RX(theta₁₆)
3ce7ba1dead24a97a3590ab219cd2365--544eccec60d74b90bdc7858586f837f9
9126ec459ee941cb8afe307a260bd3f4
544eccec60d74b90bdc7858586f837f9--9126ec459ee941cb8afe307a260bd3f4
7fed6467c14347ae962f9dd25330be65
RX(theta₂₂)
9126ec459ee941cb8afe307a260bd3f4--7fed6467c14347ae962f9dd25330be65
ac73cadcc78340e8bb852592ca41ca71
RY(theta₂₈)
7fed6467c14347ae962f9dd25330be65--ac73cadcc78340e8bb852592ca41ca71
3181f2c4a12b49c8a538c8f401da1cb3
RX(theta₃₄)
ac73cadcc78340e8bb852592ca41ca71--3181f2c4a12b49c8a538c8f401da1cb3
b896a791bd314d71bd9c12a6944e349d
3181f2c4a12b49c8a538c8f401da1cb3--b896a791bd314d71bd9c12a6944e349d
b896a791bd314d71bd9c12a6944e349d--5ec737631b2d416b9514ac2681032802
e1c8bb392e2e4ee58b356f86e545d533
05c8cb6e42b54f7c8cd42428f7d2cec7
RX(theta₅)
df81a38eab004fcd842d10e5284fc629--05c8cb6e42b54f7c8cd42428f7d2cec7
e38c1855bae54b9594bfab81997897a0
RY(theta₁₁)
05c8cb6e42b54f7c8cd42428f7d2cec7--e38c1855bae54b9594bfab81997897a0
f8f0dd196b284419857f7c1f298ad3cf
RX(theta₁₇)
e38c1855bae54b9594bfab81997897a0--f8f0dd196b284419857f7c1f298ad3cf
6c934da60a7d487fa733dcff419e61cb
f8f0dd196b284419857f7c1f298ad3cf--6c934da60a7d487fa733dcff419e61cb
bd74948669d849ea870ebb1f0e6aeb7d
RX(theta₂₃)
6c934da60a7d487fa733dcff419e61cb--bd74948669d849ea870ebb1f0e6aeb7d
5532d4e3a099439bb5bd21061af74054
RY(theta₂₉)
bd74948669d849ea870ebb1f0e6aeb7d--5532d4e3a099439bb5bd21061af74054
13132027883c44379cd190a819794295
RX(theta₃₅)
5532d4e3a099439bb5bd21061af74054--13132027883c44379cd190a819794295
b134897ebd73476c81276f25a059bc43
13132027883c44379cd190a819794295--b134897ebd73476c81276f25a059bc43
b134897ebd73476c81276f25a059bc43--e1c8bb392e2e4ee58b356f86e545d533
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_fd2f89e488694bb3a5756eae6f157e98
BPMA-1
cluster_32990743eee84c06bca237d22a0f4cb7
BPMA-0
d37e3314578f4ee7af4e071d6193af50
0
995e2c48f3d84e449471fe9b6d141f50
RX(iia_α₀₀)
d37e3314578f4ee7af4e071d6193af50--995e2c48f3d84e449471fe9b6d141f50
d2c5592e5c04408e89042bce696eaf8c
1
6056ef3d2fee47c38028109b7c751883
RY(iia_α₀₃)
995e2c48f3d84e449471fe9b6d141f50--6056ef3d2fee47c38028109b7c751883
aed0ee06b1b4481d886c6622f6797944
6056ef3d2fee47c38028109b7c751883--aed0ee06b1b4481d886c6622f6797944
704f6240e221459f8f06dc4b43ddf0dc
aed0ee06b1b4481d886c6622f6797944--704f6240e221459f8f06dc4b43ddf0dc
14cb5e152c4b47c990e5871ac2d51d9a
RX(iia_γ₀₀)
704f6240e221459f8f06dc4b43ddf0dc--14cb5e152c4b47c990e5871ac2d51d9a
3a11c2c1377e432d812c662431178737
14cb5e152c4b47c990e5871ac2d51d9a--3a11c2c1377e432d812c662431178737
8517c4b1d90e4c7cace3127414aeb2ef
3a11c2c1377e432d812c662431178737--8517c4b1d90e4c7cace3127414aeb2ef
1b853beb4145412699ebbd5ba7debbb4
RY(iia_β₀₃)
8517c4b1d90e4c7cace3127414aeb2ef--1b853beb4145412699ebbd5ba7debbb4
ae404aed9ad74cdbb0a2271b68a583fc
RX(iia_β₀₀)
1b853beb4145412699ebbd5ba7debbb4--ae404aed9ad74cdbb0a2271b68a583fc
e5743245cc4b41969dedad140e3d1983
RX(iia_α₁₀)
ae404aed9ad74cdbb0a2271b68a583fc--e5743245cc4b41969dedad140e3d1983
058d0dd8ce384e898ebb9ece8d7ccb4e
RY(iia_α₁₃)
e5743245cc4b41969dedad140e3d1983--058d0dd8ce384e898ebb9ece8d7ccb4e
bed3dc732946495480c9ea7cb15e03c3
058d0dd8ce384e898ebb9ece8d7ccb4e--bed3dc732946495480c9ea7cb15e03c3
42b5fed6409e4ca2b236829e5142e8a7
bed3dc732946495480c9ea7cb15e03c3--42b5fed6409e4ca2b236829e5142e8a7
3111375853994a4aa8f6b0df8085a38f
RX(iia_γ₁₀)
42b5fed6409e4ca2b236829e5142e8a7--3111375853994a4aa8f6b0df8085a38f
1c297560ff4048f99abdaa5cce140355
3111375853994a4aa8f6b0df8085a38f--1c297560ff4048f99abdaa5cce140355
964cc76b180043f8b025ebe27aa50559
1c297560ff4048f99abdaa5cce140355--964cc76b180043f8b025ebe27aa50559
62e650ee36e5440081c3dd5401aadf2c
RY(iia_β₁₃)
964cc76b180043f8b025ebe27aa50559--62e650ee36e5440081c3dd5401aadf2c
d80b772731784e82ad0467dd26e21741
RX(iia_β₁₀)
62e650ee36e5440081c3dd5401aadf2c--d80b772731784e82ad0467dd26e21741
bc685f1c91b446e3b6c89f515ce3a369
d80b772731784e82ad0467dd26e21741--bc685f1c91b446e3b6c89f515ce3a369
db352fd1b5d04b9a8495ef19ca6fe5a3
9a5c3a5c4e3f4724b990258bad131563
RX(iia_α₀₁)
d2c5592e5c04408e89042bce696eaf8c--9a5c3a5c4e3f4724b990258bad131563
027826585b994b86a2a3277dfff85a78
2
02b1e60292dd4b4583f5b5b64fdddd97
RY(iia_α₀₄)
9a5c3a5c4e3f4724b990258bad131563--02b1e60292dd4b4583f5b5b64fdddd97
efa164e932e5420197a2c75f27b1f1d8
X
02b1e60292dd4b4583f5b5b64fdddd97--efa164e932e5420197a2c75f27b1f1d8
efa164e932e5420197a2c75f27b1f1d8--aed0ee06b1b4481d886c6622f6797944
74dc2a3a86c1493195e75c664d9e25e5
efa164e932e5420197a2c75f27b1f1d8--74dc2a3a86c1493195e75c664d9e25e5
44a391d004834e1d9242be3450ef36a3
RX(iia_γ₀₁)
74dc2a3a86c1493195e75c664d9e25e5--44a391d004834e1d9242be3450ef36a3
f280c6fc7f5d4d61b1a728cff923413f
44a391d004834e1d9242be3450ef36a3--f280c6fc7f5d4d61b1a728cff923413f
a3b74088e1a9419793039de5efb037d1
X
f280c6fc7f5d4d61b1a728cff923413f--a3b74088e1a9419793039de5efb037d1
a3b74088e1a9419793039de5efb037d1--8517c4b1d90e4c7cace3127414aeb2ef
dc8433f8694d44649cc3ec8fadaecdcc
RY(iia_β₀₄)
a3b74088e1a9419793039de5efb037d1--dc8433f8694d44649cc3ec8fadaecdcc
f5d7934bf77b4696a8b0b646c2289f69
RX(iia_β₀₁)
dc8433f8694d44649cc3ec8fadaecdcc--f5d7934bf77b4696a8b0b646c2289f69
0a34b6945c5b47eb9aee0fcfc8f30d77
RX(iia_α₁₁)
f5d7934bf77b4696a8b0b646c2289f69--0a34b6945c5b47eb9aee0fcfc8f30d77
31af0a4f10e448ff9403a202d5ca73c9
RY(iia_α₁₄)
0a34b6945c5b47eb9aee0fcfc8f30d77--31af0a4f10e448ff9403a202d5ca73c9
ad0040a25d4e4d51ad119e7efe3f48b9
X
31af0a4f10e448ff9403a202d5ca73c9--ad0040a25d4e4d51ad119e7efe3f48b9
ad0040a25d4e4d51ad119e7efe3f48b9--bed3dc732946495480c9ea7cb15e03c3
e57770850aa1402da749ba29426f7bd6
ad0040a25d4e4d51ad119e7efe3f48b9--e57770850aa1402da749ba29426f7bd6
b293472496ee42e480371f2165f54dab
RX(iia_γ₁₁)
e57770850aa1402da749ba29426f7bd6--b293472496ee42e480371f2165f54dab
47375037452746b09a74c76e04e0cf04
b293472496ee42e480371f2165f54dab--47375037452746b09a74c76e04e0cf04
fa015e5f446144188547df9f90559cf7
X
47375037452746b09a74c76e04e0cf04--fa015e5f446144188547df9f90559cf7
fa015e5f446144188547df9f90559cf7--964cc76b180043f8b025ebe27aa50559
c5576c2707e14b61849f472110354c20
RY(iia_β₁₄)
fa015e5f446144188547df9f90559cf7--c5576c2707e14b61849f472110354c20
a1f1c2a149a44d91bc65f707f7fb7848
RX(iia_β₁₁)
c5576c2707e14b61849f472110354c20--a1f1c2a149a44d91bc65f707f7fb7848
a1f1c2a149a44d91bc65f707f7fb7848--db352fd1b5d04b9a8495ef19ca6fe5a3
9f7a2d5bff2c4aaaa84372ae63827dfe
11e55838c32a4cc4aabba21a671261b7
RX(iia_α₀₂)
027826585b994b86a2a3277dfff85a78--11e55838c32a4cc4aabba21a671261b7
f89d579b5e4942389690ecef0fe0f8d6
RY(iia_α₀₅)
11e55838c32a4cc4aabba21a671261b7--f89d579b5e4942389690ecef0fe0f8d6
7fb0f30d2d084ff887fb4ff4ad4ee716
f89d579b5e4942389690ecef0fe0f8d6--7fb0f30d2d084ff887fb4ff4ad4ee716
cd8aaed07f20446595bb0a7530cb5dae
X
7fb0f30d2d084ff887fb4ff4ad4ee716--cd8aaed07f20446595bb0a7530cb5dae
cd8aaed07f20446595bb0a7530cb5dae--74dc2a3a86c1493195e75c664d9e25e5
44011d01fdd9425eb288e10000bfc4ff
RX(iia_γ₀₂)
cd8aaed07f20446595bb0a7530cb5dae--44011d01fdd9425eb288e10000bfc4ff
e956920fa31d4410b825384fb0ebad7b
X
44011d01fdd9425eb288e10000bfc4ff--e956920fa31d4410b825384fb0ebad7b
e956920fa31d4410b825384fb0ebad7b--f280c6fc7f5d4d61b1a728cff923413f
3bdc7271a5f64b3ea94d2c1b4d4b1077
e956920fa31d4410b825384fb0ebad7b--3bdc7271a5f64b3ea94d2c1b4d4b1077
b7611d0b92c44637a362d648643ac32f
RY(iia_β₀₅)
3bdc7271a5f64b3ea94d2c1b4d4b1077--b7611d0b92c44637a362d648643ac32f
8d1132c7837f414ca4f743a20f668619
RX(iia_β₀₂)
b7611d0b92c44637a362d648643ac32f--8d1132c7837f414ca4f743a20f668619
f2a2d5b3518d4266b24084d57c256608
RX(iia_α₁₂)
8d1132c7837f414ca4f743a20f668619--f2a2d5b3518d4266b24084d57c256608
42f4b952c1f14768affdeaebdfc7c3b9
RY(iia_α₁₅)
f2a2d5b3518d4266b24084d57c256608--42f4b952c1f14768affdeaebdfc7c3b9
cab08e1e29404662b4d3558fc8b2ee7b
42f4b952c1f14768affdeaebdfc7c3b9--cab08e1e29404662b4d3558fc8b2ee7b
f646ec116696424083d0ab4a55bdbd2e
X
cab08e1e29404662b4d3558fc8b2ee7b--f646ec116696424083d0ab4a55bdbd2e
f646ec116696424083d0ab4a55bdbd2e--e57770850aa1402da749ba29426f7bd6
8a11bf4b36e542c98b0e801ce5665949
RX(iia_γ₁₂)
f646ec116696424083d0ab4a55bdbd2e--8a11bf4b36e542c98b0e801ce5665949
3ecd4653c09e44978bdffca1273b662c
X
8a11bf4b36e542c98b0e801ce5665949--3ecd4653c09e44978bdffca1273b662c
3ecd4653c09e44978bdffca1273b662c--47375037452746b09a74c76e04e0cf04
02da93f0b0554d36a9d05d8ff0d055e1
3ecd4653c09e44978bdffca1273b662c--02da93f0b0554d36a9d05d8ff0d055e1
e2fe6e9185f04c8d93d925cefbcaf15d
RY(iia_β₁₅)
02da93f0b0554d36a9d05d8ff0d055e1--e2fe6e9185f04c8d93d925cefbcaf15d
9e4b8767863e426eb08d367603de7a94
RX(iia_β₁₂)
e2fe6e9185f04c8d93d925cefbcaf15d--9e4b8767863e426eb08d367603de7a94
9e4b8767863e426eb08d367603de7a94--9f7a2d5bff2c4aaaa84372ae63827dfe