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_0fa486a966e4451f9941b75c79a5a5b8
Constant Chebyshev FM
cluster_ec6b1ba57f784d00b2ab1514071a8b9b
Constant Fourier FM
1de7c28925214f96a220e79653cd8384
0
73549c250ab54eabaaee451cb624b7ff
RX(phi)
1de7c28925214f96a220e79653cd8384--73549c250ab54eabaaee451cb624b7ff
ce97348fb6b74727aa0834b412be38e0
1
082ed5d69d114c79bd825a7dd18e7085
RX(acos(phi))
73549c250ab54eabaaee451cb624b7ff--082ed5d69d114c79bd825a7dd18e7085
cd824e5c20cc4ca2bcda466c7982a862
082ed5d69d114c79bd825a7dd18e7085--cd824e5c20cc4ca2bcda466c7982a862
f090b8b6ddb14b9a917be843fdd97042
a5a808d162774ef6816025a058d3be61
RX(phi)
ce97348fb6b74727aa0834b412be38e0--a5a808d162774ef6816025a058d3be61
f6c66a48062c4ea180a03c372e6fea86
2
b78cbbdaf9e9442197bb6acad342e7c6
RX(acos(phi))
a5a808d162774ef6816025a058d3be61--b78cbbdaf9e9442197bb6acad342e7c6
b78cbbdaf9e9442197bb6acad342e7c6--f090b8b6ddb14b9a917be843fdd97042
578b9a5d96ba495388d7769941ca5d3b
4c668b83ccff47378b498a388ca7787a
RX(phi)
f6c66a48062c4ea180a03c372e6fea86--4c668b83ccff47378b498a388ca7787a
6f6f972e85544a87af20921b9e0bbbb2
RX(acos(phi))
4c668b83ccff47378b498a388ca7787a--6f6f972e85544a87af20921b9e0bbbb2
6f6f972e85544a87af20921b9e0bbbb2--578b9a5d96ba495388d7769941ca5d3b
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_926febe0ce384c528515c5adf6e5088f
Constant <function custom_fn at 0x7fcf4ca76680> FM
cluster_d6d66808bf4348ca9400e52b5957fc0e
Constant asin FM
d0bedc3301e64bf0a693ad83cc2c1916
0
1ed4cb4e2d7e4a628a8ca55153eca84f
RX(asin(phi))
d0bedc3301e64bf0a693ad83cc2c1916--1ed4cb4e2d7e4a628a8ca55153eca84f
9c31f5ffbbb64371b60778ef0baa3224
1
b5f6962c11a94b979885baa101999868
RX(phi**2 + asin(phi))
1ed4cb4e2d7e4a628a8ca55153eca84f--b5f6962c11a94b979885baa101999868
475e53d87d4749e586fe574cb9c6d872
b5f6962c11a94b979885baa101999868--475e53d87d4749e586fe574cb9c6d872
ecf7972404b0435dbbf3eea55761665d
458b27ad2f0a4ca2bac5fa2ca36309eb
RX(asin(phi))
9c31f5ffbbb64371b60778ef0baa3224--458b27ad2f0a4ca2bac5fa2ca36309eb
982bb5cf0f8b4de9900c864a9544bfb9
2
f99a6bdf0ede4ff2bb5e9cb4e3b5c6d5
RX(phi**2 + asin(phi))
458b27ad2f0a4ca2bac5fa2ca36309eb--f99a6bdf0ede4ff2bb5e9cb4e3b5c6d5
f99a6bdf0ede4ff2bb5e9cb4e3b5c6d5--ecf7972404b0435dbbf3eea55761665d
a422794284834cfcb468db7508af5749
c3e3a2b6285d4b1cb74651f55a4c1f3d
RX(asin(phi))
982bb5cf0f8b4de9900c864a9544bfb9--c3e3a2b6285d4b1cb74651f55a4c1f3d
c09ca3b2d0284af4a9c6512f234e365f
RX(phi**2 + asin(phi))
c3e3a2b6285d4b1cb74651f55a4c1f3d--c09ca3b2d0284af4a9c6512f234e365f
c09ca3b2d0284af4a9c6512f234e365f--a422794284834cfcb468db7508af5749
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_7c1e569ac8e34247b3d5b69eee5d8781
Exponential Fourier FM
cluster_fd467a1774154cf6892f062d22ea0d50
Constant Fourier FM
cluster_811cd7c584784df7984c6dbd64bb8119
Tower Fourier FM
989f6b933cbe4acca90cac90d4276a12
0
4143763e833840fdbbb9fa9372178f2f
RX(phi)
989f6b933cbe4acca90cac90d4276a12--4143763e833840fdbbb9fa9372178f2f
b48a54526b9d4163b512912bee6f3442
1
44c46ebac4d145ab8726c9c5433ebf1a
RX(1.0*phi)
4143763e833840fdbbb9fa9372178f2f--44c46ebac4d145ab8726c9c5433ebf1a
7ca8a1fa52d64de8972fcf362d57d4c8
RX(1.0*phi)
44c46ebac4d145ab8726c9c5433ebf1a--7ca8a1fa52d64de8972fcf362d57d4c8
8147280081f745d88567ff39d39af2a1
7ca8a1fa52d64de8972fcf362d57d4c8--8147280081f745d88567ff39d39af2a1
bbb792d6779844bfbe9af2360ecb4bec
81ddf966e9504ecabf611a745a319a14
RX(phi)
b48a54526b9d4163b512912bee6f3442--81ddf966e9504ecabf611a745a319a14
12b2acd41cbe49d4afefaf41c059bb74
2
640f5bf0d59043989374193680e6f76f
RX(2.0*phi)
81ddf966e9504ecabf611a745a319a14--640f5bf0d59043989374193680e6f76f
1a95fd311f7241bdb5f7868f231fec84
RX(2.0*phi)
640f5bf0d59043989374193680e6f76f--1a95fd311f7241bdb5f7868f231fec84
1a95fd311f7241bdb5f7868f231fec84--bbb792d6779844bfbe9af2360ecb4bec
3532f646a5f44ef29ac4e96075709378
32bf59dfac0246cabe2964d692d9a6c6
RX(phi)
12b2acd41cbe49d4afefaf41c059bb74--32bf59dfac0246cabe2964d692d9a6c6
8e316292b69647d291cb2b1c81f06d7a
3
ce94308908344990ba0354fe5d1e1ede
RX(3.0*phi)
32bf59dfac0246cabe2964d692d9a6c6--ce94308908344990ba0354fe5d1e1ede
a973dd786a6b4d7e894bd84610f16ae6
RX(4.0*phi)
ce94308908344990ba0354fe5d1e1ede--a973dd786a6b4d7e894bd84610f16ae6
a973dd786a6b4d7e894bd84610f16ae6--3532f646a5f44ef29ac4e96075709378
d8e8c062943043649c97d451822dc6f6
87624da355b14625ae5dc8e98a7c6472
RX(phi)
8e316292b69647d291cb2b1c81f06d7a--87624da355b14625ae5dc8e98a7c6472
b9cc5b4bfbf044e087616376dab8c8e7
4
3914ff36b0024163892f8e03596335bb
RX(4.0*phi)
87624da355b14625ae5dc8e98a7c6472--3914ff36b0024163892f8e03596335bb
2e7b44e3945f4877957d606c826326a9
RX(8.0*phi)
3914ff36b0024163892f8e03596335bb--2e7b44e3945f4877957d606c826326a9
2e7b44e3945f4877957d606c826326a9--d8e8c062943043649c97d451822dc6f6
4201a0651a604f579620a4b4338639c6
964dd49f86514a4bb69bd24fbb7153f9
RX(phi)
b9cc5b4bfbf044e087616376dab8c8e7--964dd49f86514a4bb69bd24fbb7153f9
7a875d2b0bc84ae9ad8cd755ffbd7d2a
RX(5.0*phi)
964dd49f86514a4bb69bd24fbb7153f9--7a875d2b0bc84ae9ad8cd755ffbd7d2a
51695d7e9a63446f909e36ce11ccde9e
RX(16.0*phi)
7a875d2b0bc84ae9ad8cd755ffbd7d2a--51695d7e9a63446f909e36ce11ccde9e
51695d7e9a63446f909e36ce11ccde9e--4201a0651a604f579620a4b4338639c6
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
f29d05770ee842e9936f851ad5b1d341
0
db73f76216034c7eadf03842587c2df2
RX(1.0*acos(phi))
f29d05770ee842e9936f851ad5b1d341--db73f76216034c7eadf03842587c2df2
6360006926e045268687811024ab9be8
1
6cffff1c3442454a95880b742a94677b
db73f76216034c7eadf03842587c2df2--6cffff1c3442454a95880b742a94677b
4b1bc03b3a7e46f99b4226a5fea1749f
7103a1f0e773407c9d67eafd9cf60cc6
RX(1.414*acos(phi))
6360006926e045268687811024ab9be8--7103a1f0e773407c9d67eafd9cf60cc6
e636aa0796754e8f9be16921c856cfff
2
7103a1f0e773407c9d67eafd9cf60cc6--4b1bc03b3a7e46f99b4226a5fea1749f
19082ff801dd420c9f39a88938b5f82b
7006bb6dd6644c86802642f7cce8c345
RX(1.732*acos(phi))
e636aa0796754e8f9be16921c856cfff--7006bb6dd6644c86802642f7cce8c345
114fbac20cf440baadc4ba789e355e80
3
7006bb6dd6644c86802642f7cce8c345--19082ff801dd420c9f39a88938b5f82b
8cdd1f45ad4a479d949cd37825cd0b2f
6a2c3830858743e797e3626dd2f14137
RX(2.0*acos(phi))
114fbac20cf440baadc4ba789e355e80--6a2c3830858743e797e3626dd2f14137
5c1e7c9f9978468eac4da247b0a6d2a2
4
6a2c3830858743e797e3626dd2f14137--8cdd1f45ad4a479d949cd37825cd0b2f
2702a265648342c283958735d09bce05
e738e7462b904105bd2b337805b8d12b
RX(2.236*acos(phi))
5c1e7c9f9978468eac4da247b0a6d2a2--e738e7462b904105bd2b337805b8d12b
e738e7462b904105bd2b337805b8d12b--2702a265648342c283958735d09bce05
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
f0e85824fb1d4615b05f0c46799adb3e
0
979dc2015f0e4f958b73771ac648d117
RX(1.0*phi*w₀)
f0e85824fb1d4615b05f0c46799adb3e--979dc2015f0e4f958b73771ac648d117
34bc6562e7614c598c3c08d032feecfb
1
8125901ca1184fd3a9d038649aa40d2d
979dc2015f0e4f958b73771ac648d117--8125901ca1184fd3a9d038649aa40d2d
47a32b5da983455fbaff11fd69ae7e51
4a14d7ff15d1437b8d60dbf6c20cd498
RX(2.0*phi*w₁)
34bc6562e7614c598c3c08d032feecfb--4a14d7ff15d1437b8d60dbf6c20cd498
11762968778e4fb7ad869139a801a41f
2
4a14d7ff15d1437b8d60dbf6c20cd498--47a32b5da983455fbaff11fd69ae7e51
ac0adaef78ee400d842d9383c5012029
2d02ebcdeb164933b298fe2f2d903eb1
RX(4.0*phi*w₂)
11762968778e4fb7ad869139a801a41f--2d02ebcdeb164933b298fe2f2d903eb1
3caebe68cb8241d6b87e6aa7ce512560
3
2d02ebcdeb164933b298fe2f2d903eb1--ac0adaef78ee400d842d9383c5012029
05f9fbc07efe4ccdacc9004179338ef1
64fe49189c24437c95779d8797742355
RX(8.0*phi*w₃)
3caebe68cb8241d6b87e6aa7ce512560--64fe49189c24437c95779d8797742355
976158e2dc8b4ae4ba3c6ea115e56d50
4
64fe49189c24437c95779d8797742355--05f9fbc07efe4ccdacc9004179338ef1
9380f93edf64413d9b8dde2e062740b7
e559575d5ee84763a753b361c857424a
RX(16.0*phi*w₄)
976158e2dc8b4ae4ba3c6ea115e56d50--e559575d5ee84763a753b361c857424a
e559575d5ee84763a753b361c857424a--9380f93edf64413d9b8dde2e062740b7
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
890aefdad64a4b368ed2cf0d0fd168a8
0
d1977820411e4290bfc68cf4f2fe2113
RY(80.0*acos(w₄*(0.667*x + 1.667)))
890aefdad64a4b368ed2cf0d0fd168a8--d1977820411e4290bfc68cf4f2fe2113
da1bf877b0f8431d8421d6cf21144a78
1
56341025f264485eb4be63268c631e7e
d1977820411e4290bfc68cf4f2fe2113--56341025f264485eb4be63268c631e7e
36f1cf8be2904536becec73dfce07f6f
bc18b0bd665448a1ba3a09a7d54212a0
RY(40.0*acos(w₃*(0.667*x + 1.667)))
da1bf877b0f8431d8421d6cf21144a78--bc18b0bd665448a1ba3a09a7d54212a0
920e0020ce0646d89b1e96d716012b3b
2
bc18b0bd665448a1ba3a09a7d54212a0--36f1cf8be2904536becec73dfce07f6f
dc6b5b43b7264a82ac5209cd98e67a7b
68c2d9c1a3344b4d8bdcc3b51e8a026e
RY(20.0*acos(w₂*(0.667*x + 1.667)))
920e0020ce0646d89b1e96d716012b3b--68c2d9c1a3344b4d8bdcc3b51e8a026e
48c131c3b8994f3e8b11a8245bd0ba38
3
68c2d9c1a3344b4d8bdcc3b51e8a026e--dc6b5b43b7264a82ac5209cd98e67a7b
540cd1048b9c4c9b97a285eeaf0f5a02
fa524f9adf5748f98e59c93476d6d2c5
RY(10.0*acos(w₁*(0.667*x + 1.667)))
48c131c3b8994f3e8b11a8245bd0ba38--fa524f9adf5748f98e59c93476d6d2c5
b06981ae756a4b75b138a7c0c59859c1
4
fa524f9adf5748f98e59c93476d6d2c5--540cd1048b9c4c9b97a285eeaf0f5a02
00cf3b8c232541f093783fa8eece891a
12c70b4298204eea9c03865f60fe7bf0
RY(5.0*acos(w₀*(0.667*x + 1.667)))
b06981ae756a4b75b138a7c0c59859c1--12c70b4298204eea9c03865f60fe7bf0
12c70b4298204eea9c03865f60fe7bf0--00cf3b8c232541f093783fa8eece891a
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
4f96b6eb06ae4e79b40a699e4785c6a2
0
8c4b088c11a34bd68bbeb44c4b1822d1
RX(theta₀)
4f96b6eb06ae4e79b40a699e4785c6a2--8c4b088c11a34bd68bbeb44c4b1822d1
cd87536052bb4a1b8a9bcb5607dfe111
1
f755b1f5543a4ebb8e7242c2fdee5f17
RY(theta₃)
8c4b088c11a34bd68bbeb44c4b1822d1--f755b1f5543a4ebb8e7242c2fdee5f17
a175892caf20449dbdefcf834c8cd759
RX(theta₆)
f755b1f5543a4ebb8e7242c2fdee5f17--a175892caf20449dbdefcf834c8cd759
02f09c52b0244ad48a9f5acc3de42519
a175892caf20449dbdefcf834c8cd759--02f09c52b0244ad48a9f5acc3de42519
b43d721e6a8d4c22b35a5a988ab04561
02f09c52b0244ad48a9f5acc3de42519--b43d721e6a8d4c22b35a5a988ab04561
83c3196864804e1abdc3a4f2dc6c9ecd
RX(theta₉)
b43d721e6a8d4c22b35a5a988ab04561--83c3196864804e1abdc3a4f2dc6c9ecd
6dab748060284a8892d57481d49805db
RY(theta₁₂)
83c3196864804e1abdc3a4f2dc6c9ecd--6dab748060284a8892d57481d49805db
351f317a5518480092fa5680b2eb32e4
RX(theta₁₅)
6dab748060284a8892d57481d49805db--351f317a5518480092fa5680b2eb32e4
a4fcf0a711bd431bb1a00d89f75c472d
351f317a5518480092fa5680b2eb32e4--a4fcf0a711bd431bb1a00d89f75c472d
7620dd3860784372b747b278ea48463a
a4fcf0a711bd431bb1a00d89f75c472d--7620dd3860784372b747b278ea48463a
305a709469874d37a90dbb804bc7c96a
7620dd3860784372b747b278ea48463a--305a709469874d37a90dbb804bc7c96a
b12ae94e089347b294d75022da59fc87
60d56557ba504bc08d039badc52647a8
RX(theta₁)
cd87536052bb4a1b8a9bcb5607dfe111--60d56557ba504bc08d039badc52647a8
3cf246738dd84d29afb27c27de745ecb
2
ae3fee59b08d449ea26b8e5b80188374
RY(theta₄)
60d56557ba504bc08d039badc52647a8--ae3fee59b08d449ea26b8e5b80188374
348d9db18ece421cbea4a619050a21c6
RX(theta₇)
ae3fee59b08d449ea26b8e5b80188374--348d9db18ece421cbea4a619050a21c6
ac3cb03be1d2499fb2125dd8b244aadf
X
348d9db18ece421cbea4a619050a21c6--ac3cb03be1d2499fb2125dd8b244aadf
ac3cb03be1d2499fb2125dd8b244aadf--02f09c52b0244ad48a9f5acc3de42519
eb582c9b49e442c68e0de1ee6773b2b3
ac3cb03be1d2499fb2125dd8b244aadf--eb582c9b49e442c68e0de1ee6773b2b3
9c85aca87f1e4e889acda0e12e976b63
RX(theta₁₀)
eb582c9b49e442c68e0de1ee6773b2b3--9c85aca87f1e4e889acda0e12e976b63
ad6482ba770c479793140564bd1c10e1
RY(theta₁₃)
9c85aca87f1e4e889acda0e12e976b63--ad6482ba770c479793140564bd1c10e1
73101f825f78425a85c33e47334e1818
RX(theta₁₆)
ad6482ba770c479793140564bd1c10e1--73101f825f78425a85c33e47334e1818
a417da33cbe047c8839ea96b453e968c
X
73101f825f78425a85c33e47334e1818--a417da33cbe047c8839ea96b453e968c
a417da33cbe047c8839ea96b453e968c--a4fcf0a711bd431bb1a00d89f75c472d
bb11d2c4248f45c094dafd70a661f5cd
a417da33cbe047c8839ea96b453e968c--bb11d2c4248f45c094dafd70a661f5cd
bb11d2c4248f45c094dafd70a661f5cd--b12ae94e089347b294d75022da59fc87
e9342b454e414d46856da21f618ddfaf
d4c9743f7b284f6eb51689efb6317c1b
RX(theta₂)
3cf246738dd84d29afb27c27de745ecb--d4c9743f7b284f6eb51689efb6317c1b
7e9f2e09a6ed4488ae5416248a220fa7
RY(theta₅)
d4c9743f7b284f6eb51689efb6317c1b--7e9f2e09a6ed4488ae5416248a220fa7
4e06706bced34e0d967c5b49996b7d9e
RX(theta₈)
7e9f2e09a6ed4488ae5416248a220fa7--4e06706bced34e0d967c5b49996b7d9e
d45a9c13f77f4a7d831324944033cbc6
4e06706bced34e0d967c5b49996b7d9e--d45a9c13f77f4a7d831324944033cbc6
eff6c9549da1426eaaf33ae99b90d506
X
d45a9c13f77f4a7d831324944033cbc6--eff6c9549da1426eaaf33ae99b90d506
eff6c9549da1426eaaf33ae99b90d506--eb582c9b49e442c68e0de1ee6773b2b3
207c44345099490b99019763ea6ad46d
RX(theta₁₁)
eff6c9549da1426eaaf33ae99b90d506--207c44345099490b99019763ea6ad46d
4bd8d7eb26d04fac82643104f461abd0
RY(theta₁₄)
207c44345099490b99019763ea6ad46d--4bd8d7eb26d04fac82643104f461abd0
184ce93c71924beeb4effda95ac8c6e4
RX(theta₁₇)
4bd8d7eb26d04fac82643104f461abd0--184ce93c71924beeb4effda95ac8c6e4
6e5ca5a8a70b406d907547c1319ec5b1
184ce93c71924beeb4effda95ac8c6e4--6e5ca5a8a70b406d907547c1319ec5b1
46692beb8d6a475b96aa85bd8cbd8f6b
X
6e5ca5a8a70b406d907547c1319ec5b1--46692beb8d6a475b96aa85bd8cbd8f6b
46692beb8d6a475b96aa85bd8cbd8f6b--bb11d2c4248f45c094dafd70a661f5cd
46692beb8d6a475b96aa85bd8cbd8f6b--e9342b454e414d46856da21f618ddfaf
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
48fdae57e48c4fc3881eac609bbdbf2c
0
d917c6f668fe4daba158d7ff580e6509
RX(phi₀)
48fdae57e48c4fc3881eac609bbdbf2c--d917c6f668fe4daba158d7ff580e6509
c4aa4ee1e0b244e2b50e2dd234379fd0
1
9285a05ecc624217bb06a591a70c813c
RY(phi₃)
d917c6f668fe4daba158d7ff580e6509--9285a05ecc624217bb06a591a70c813c
0bb530411f654d10b2662ff1be6b4e7c
RX(phi₆)
9285a05ecc624217bb06a591a70c813c--0bb530411f654d10b2662ff1be6b4e7c
888f435779254563a93d5a213b992427
0bb530411f654d10b2662ff1be6b4e7c--888f435779254563a93d5a213b992427
4ac4d2819dae4bc6b732a9746b462251
888f435779254563a93d5a213b992427--4ac4d2819dae4bc6b732a9746b462251
bfc0d72f18e346ffbe6f1766eb72ce9f
RX(phi₉)
4ac4d2819dae4bc6b732a9746b462251--bfc0d72f18e346ffbe6f1766eb72ce9f
f7230cc085564585beb5e161e536a1ae
RY(phi₁₂)
bfc0d72f18e346ffbe6f1766eb72ce9f--f7230cc085564585beb5e161e536a1ae
7ed4ec620fad4429aa2536c770dacfa0
RX(phi₁₅)
f7230cc085564585beb5e161e536a1ae--7ed4ec620fad4429aa2536c770dacfa0
adee14eac15741aa9c14585e95c3fbb8
7ed4ec620fad4429aa2536c770dacfa0--adee14eac15741aa9c14585e95c3fbb8
a6fb997041174350a2bbbb240d60aeb1
adee14eac15741aa9c14585e95c3fbb8--a6fb997041174350a2bbbb240d60aeb1
4afc5a57e1ef433bb8821b340d6d5a70
a6fb997041174350a2bbbb240d60aeb1--4afc5a57e1ef433bb8821b340d6d5a70
3362f842d8f543a087960e21908091e8
e0409e0bc11c4b73ba1490043161dc40
RX(phi₁)
c4aa4ee1e0b244e2b50e2dd234379fd0--e0409e0bc11c4b73ba1490043161dc40
d14ffa027ba042ffb3da1522b354d4cd
2
ef3ec181f45f4db8bfff47fe59785ba1
RY(phi₄)
e0409e0bc11c4b73ba1490043161dc40--ef3ec181f45f4db8bfff47fe59785ba1
5e20236cbcd242c1a51788cd420fd147
RX(phi₇)
ef3ec181f45f4db8bfff47fe59785ba1--5e20236cbcd242c1a51788cd420fd147
587ae7c3bfd544f2bb265f8cfc87f1ab
PHASE(phi_ent₀)
5e20236cbcd242c1a51788cd420fd147--587ae7c3bfd544f2bb265f8cfc87f1ab
587ae7c3bfd544f2bb265f8cfc87f1ab--888f435779254563a93d5a213b992427
34ab688740424618a0548d191b3b38c6
587ae7c3bfd544f2bb265f8cfc87f1ab--34ab688740424618a0548d191b3b38c6
b77708af66d1448e8106fa4ba1b300ed
RX(phi₁₀)
34ab688740424618a0548d191b3b38c6--b77708af66d1448e8106fa4ba1b300ed
2bddba35687649fba921765258fc43f0
RY(phi₁₃)
b77708af66d1448e8106fa4ba1b300ed--2bddba35687649fba921765258fc43f0
1240f00805b54c9d98bcf2d7389fcdae
RX(phi₁₆)
2bddba35687649fba921765258fc43f0--1240f00805b54c9d98bcf2d7389fcdae
443cefb90a324047af8f919a2e2f61e7
PHASE(phi_ent₂)
1240f00805b54c9d98bcf2d7389fcdae--443cefb90a324047af8f919a2e2f61e7
443cefb90a324047af8f919a2e2f61e7--adee14eac15741aa9c14585e95c3fbb8
ec6d269d4fc04996be58d066042b780c
443cefb90a324047af8f919a2e2f61e7--ec6d269d4fc04996be58d066042b780c
ec6d269d4fc04996be58d066042b780c--3362f842d8f543a087960e21908091e8
ca1c409aa2e844b9b21fd9a5be2314fb
cadd50fce39a4183b30f102fd45eb4b5
RX(phi₂)
d14ffa027ba042ffb3da1522b354d4cd--cadd50fce39a4183b30f102fd45eb4b5
bf4c7f837b084625b54e9bc50f7fc5df
RY(phi₅)
cadd50fce39a4183b30f102fd45eb4b5--bf4c7f837b084625b54e9bc50f7fc5df
c5d7076d4f12401c9adba3a85d51931a
RX(phi₈)
bf4c7f837b084625b54e9bc50f7fc5df--c5d7076d4f12401c9adba3a85d51931a
db900c0463154ca2be32d63add14458e
c5d7076d4f12401c9adba3a85d51931a--db900c0463154ca2be32d63add14458e
1abafa2ebe274631851751326729db68
PHASE(phi_ent₁)
db900c0463154ca2be32d63add14458e--1abafa2ebe274631851751326729db68
1abafa2ebe274631851751326729db68--34ab688740424618a0548d191b3b38c6
494405c055e54ebd852c949f90d2b8ea
RX(phi₁₁)
1abafa2ebe274631851751326729db68--494405c055e54ebd852c949f90d2b8ea
ef7ca60aceae4704b57cca13e630b64d
RY(phi₁₄)
494405c055e54ebd852c949f90d2b8ea--ef7ca60aceae4704b57cca13e630b64d
d4eb33cbf2bd409fbe3401fcc46c8ff2
RX(phi₁₇)
ef7ca60aceae4704b57cca13e630b64d--d4eb33cbf2bd409fbe3401fcc46c8ff2
7b3585d5504f4ee487f7d294d1653029
d4eb33cbf2bd409fbe3401fcc46c8ff2--7b3585d5504f4ee487f7d294d1653029
7ea876a6e97d485294c805eddfc243df
PHASE(phi_ent₃)
7b3585d5504f4ee487f7d294d1653029--7ea876a6e97d485294c805eddfc243df
7ea876a6e97d485294c805eddfc243df--ec6d269d4fc04996be58d066042b780c
7ea876a6e97d485294c805eddfc243df--ca1c409aa2e844b9b21fd9a5be2314fb
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_5a7d2c4c9d474981ba2a181523e73484
cluster_a7cf5af3c06e43dea234d4a30b69ed0b
89f877713a1341d089008133ee8bae29
0
d578aad02c524697ab7342f1f3201dfa
RX(theta₀)
89f877713a1341d089008133ee8bae29--d578aad02c524697ab7342f1f3201dfa
17d08eb7081d4da5a570885f3e4d1377
1
a81514ae642043e683a6c71f14e9654b
RY(theta₃)
d578aad02c524697ab7342f1f3201dfa--a81514ae642043e683a6c71f14e9654b
64983baa4241448d94c2d192f11f1e86
RX(theta₆)
a81514ae642043e683a6c71f14e9654b--64983baa4241448d94c2d192f11f1e86
24d362e251f849028b4cd8ac69639108
HamEvo
64983baa4241448d94c2d192f11f1e86--24d362e251f849028b4cd8ac69639108
7e96c7b523754d0bbe1ca985cd4f1afb
RX(theta₉)
24d362e251f849028b4cd8ac69639108--7e96c7b523754d0bbe1ca985cd4f1afb
b84e3248601349859f0b0fbb82fe8713
RY(theta₁₂)
7e96c7b523754d0bbe1ca985cd4f1afb--b84e3248601349859f0b0fbb82fe8713
c729148e6ff244858597ff2922633cdc
RX(theta₁₅)
b84e3248601349859f0b0fbb82fe8713--c729148e6ff244858597ff2922633cdc
ff2dc7cfd09f4f9b87f799375c1e0fac
HamEvo
c729148e6ff244858597ff2922633cdc--ff2dc7cfd09f4f9b87f799375c1e0fac
8811d42fa9344f098d100d6e2a7583ef
ff2dc7cfd09f4f9b87f799375c1e0fac--8811d42fa9344f098d100d6e2a7583ef
d81043f6d00a41a4ac1b35b417d1cad4
8218f43ad82640748c178f048eef09c6
RX(theta₁)
17d08eb7081d4da5a570885f3e4d1377--8218f43ad82640748c178f048eef09c6
cdd75e2d53084b8fb356a37d3631a7a2
2
1f4ba04e08824dae90bc63b6f7958d05
RY(theta₄)
8218f43ad82640748c178f048eef09c6--1f4ba04e08824dae90bc63b6f7958d05
4ee3001a5641415cb68020e8ee920553
RX(theta₇)
1f4ba04e08824dae90bc63b6f7958d05--4ee3001a5641415cb68020e8ee920553
ce42cfffca3441a6bd6c03def0029925
t = theta_t₀
4ee3001a5641415cb68020e8ee920553--ce42cfffca3441a6bd6c03def0029925
be6a6b23d5764e469bc4379616364007
RX(theta₁₀)
ce42cfffca3441a6bd6c03def0029925--be6a6b23d5764e469bc4379616364007
9b9711bea9c74d0cb4d81ce04d104d5d
RY(theta₁₃)
be6a6b23d5764e469bc4379616364007--9b9711bea9c74d0cb4d81ce04d104d5d
d32b92dce4734266a9c35df8c4ca8178
RX(theta₁₆)
9b9711bea9c74d0cb4d81ce04d104d5d--d32b92dce4734266a9c35df8c4ca8178
342c7e5a87cd4a8f883a296a8c1ef788
t = theta_t₁
d32b92dce4734266a9c35df8c4ca8178--342c7e5a87cd4a8f883a296a8c1ef788
342c7e5a87cd4a8f883a296a8c1ef788--d81043f6d00a41a4ac1b35b417d1cad4
7f1c25cb14ad49cea5c2e290ca935a1d
805b800b67774a1fba528404aa7e77d5
RX(theta₂)
cdd75e2d53084b8fb356a37d3631a7a2--805b800b67774a1fba528404aa7e77d5
fce158fdf9bf432eac288325857ce90d
RY(theta₅)
805b800b67774a1fba528404aa7e77d5--fce158fdf9bf432eac288325857ce90d
d45b1d796eb641d1be59b6ef03f759b5
RX(theta₈)
fce158fdf9bf432eac288325857ce90d--d45b1d796eb641d1be59b6ef03f759b5
7427a1c8d64347f28daa80c34aff59fb
d45b1d796eb641d1be59b6ef03f759b5--7427a1c8d64347f28daa80c34aff59fb
f196114e5ea741999f1bdc5de8f659c4
RX(theta₁₁)
7427a1c8d64347f28daa80c34aff59fb--f196114e5ea741999f1bdc5de8f659c4
129cc7b14a604bcf8bada04775e12ae8
RY(theta₁₄)
f196114e5ea741999f1bdc5de8f659c4--129cc7b14a604bcf8bada04775e12ae8
a3f51632491f4f4687037507f917fa4e
RX(theta₁₇)
129cc7b14a604bcf8bada04775e12ae8--a3f51632491f4f4687037507f917fa4e
234369791c9e45408247a799b5d38eeb
a3f51632491f4f4687037507f917fa4e--234369791c9e45408247a799b5d38eeb
234369791c9e45408247a799b5d38eeb--7f1c25cb14ad49cea5c2e290ca935a1d
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_ec879d4caf084e938958ecc8e9b6025d
cluster_30a0c0f00edc478587e1db82138c11e6
e06915b13f634dab83ab8a1798a48a46
0
97354ffcf9d8480e9e332898753d8b5f
RX(theta₀)
e06915b13f634dab83ab8a1798a48a46--97354ffcf9d8480e9e332898753d8b5f
671b5c15058c4a4d86781b834991adfa
1
082e025a60dd407ba64d923ca6e6acfa
RY(theta₆)
97354ffcf9d8480e9e332898753d8b5f--082e025a60dd407ba64d923ca6e6acfa
4e7c9d09a04a41b2822fb7d2a6621e4a
RX(theta₁₂)
082e025a60dd407ba64d923ca6e6acfa--4e7c9d09a04a41b2822fb7d2a6621e4a
2bf47042c4a3434aa5e8b6a5467bc2ad
4e7c9d09a04a41b2822fb7d2a6621e4a--2bf47042c4a3434aa5e8b6a5467bc2ad
21f07b937f2e4067a15b2022f8cac23b
RX(theta₁₈)
2bf47042c4a3434aa5e8b6a5467bc2ad--21f07b937f2e4067a15b2022f8cac23b
c2b94c91d2924c0c90c4b031f57923df
RY(theta₂₄)
21f07b937f2e4067a15b2022f8cac23b--c2b94c91d2924c0c90c4b031f57923df
5af6df012bd843db8b9aa0513e66bbf2
RX(theta₃₀)
c2b94c91d2924c0c90c4b031f57923df--5af6df012bd843db8b9aa0513e66bbf2
06fbba17c3824ce1b4e00e8f80c2abf5
5af6df012bd843db8b9aa0513e66bbf2--06fbba17c3824ce1b4e00e8f80c2abf5
581b1edae5324656a98daee52e854692
06fbba17c3824ce1b4e00e8f80c2abf5--581b1edae5324656a98daee52e854692
9a8044ed72e1441aadb12e8d5549f066
da52d90de8e841a580d34d312a2c7fcf
RX(theta₁)
671b5c15058c4a4d86781b834991adfa--da52d90de8e841a580d34d312a2c7fcf
49a6df7b3a14447d81ffbb67310d2afd
2
0dd2249c7f6e451db1a95bc40756c74d
RY(theta₇)
da52d90de8e841a580d34d312a2c7fcf--0dd2249c7f6e451db1a95bc40756c74d
030781ebe5d64c58ba910971c6687d9a
RX(theta₁₃)
0dd2249c7f6e451db1a95bc40756c74d--030781ebe5d64c58ba910971c6687d9a
1209afa22c1340cbbe47971d549e8b17
030781ebe5d64c58ba910971c6687d9a--1209afa22c1340cbbe47971d549e8b17
8ded048de5c74e9f89a743a312e984aa
RX(theta₁₉)
1209afa22c1340cbbe47971d549e8b17--8ded048de5c74e9f89a743a312e984aa
da4c88e3ac694985b2f0a17cc19cea29
RY(theta₂₅)
8ded048de5c74e9f89a743a312e984aa--da4c88e3ac694985b2f0a17cc19cea29
e69a8ac3a5ee49b489cf0e51cf142b87
RX(theta₃₁)
da4c88e3ac694985b2f0a17cc19cea29--e69a8ac3a5ee49b489cf0e51cf142b87
eb4a3f351408421281cfb1fe21b288c1
e69a8ac3a5ee49b489cf0e51cf142b87--eb4a3f351408421281cfb1fe21b288c1
eb4a3f351408421281cfb1fe21b288c1--9a8044ed72e1441aadb12e8d5549f066
c7408a3a0209460eb4db062ef986c5b1
26efeff497e544618477d53095ade47d
RX(theta₂)
49a6df7b3a14447d81ffbb67310d2afd--26efeff497e544618477d53095ade47d
9e86cb92d0dd4f65b18b0d6a3c1721de
3
230be976076e4e00bcd946e4c8e692c0
RY(theta₈)
26efeff497e544618477d53095ade47d--230be976076e4e00bcd946e4c8e692c0
d90efeb4cc5343bf86de69120dd771fa
RX(theta₁₄)
230be976076e4e00bcd946e4c8e692c0--d90efeb4cc5343bf86de69120dd771fa
b2333fc7e1804f1eb0d75354befaebaa
HamEvo
d90efeb4cc5343bf86de69120dd771fa--b2333fc7e1804f1eb0d75354befaebaa
933b76c93a6c499189a2da2f6a858096
RX(theta₂₀)
b2333fc7e1804f1eb0d75354befaebaa--933b76c93a6c499189a2da2f6a858096
6f3708af7acf4f77ab6b054c8fec1f5f
RY(theta₂₆)
933b76c93a6c499189a2da2f6a858096--6f3708af7acf4f77ab6b054c8fec1f5f
846279cabfee41ec8bf27a85418749d2
RX(theta₃₂)
6f3708af7acf4f77ab6b054c8fec1f5f--846279cabfee41ec8bf27a85418749d2
e559f286c5fe46ef86dadd10a25468e0
HamEvo
846279cabfee41ec8bf27a85418749d2--e559f286c5fe46ef86dadd10a25468e0
e559f286c5fe46ef86dadd10a25468e0--c7408a3a0209460eb4db062ef986c5b1
221bcb8ce49c4e62aeca170f4a4acca1
2cde677d70904cc0bb772a51d5912e70
RX(theta₃)
9e86cb92d0dd4f65b18b0d6a3c1721de--2cde677d70904cc0bb772a51d5912e70
8362a20fe15e469eb5dc1d3a1c01f0c4
4
0224e10439fe4946b283af9ead50d0cd
RY(theta₉)
2cde677d70904cc0bb772a51d5912e70--0224e10439fe4946b283af9ead50d0cd
b92cfdb13bcf477aae30a29988d85291
RX(theta₁₅)
0224e10439fe4946b283af9ead50d0cd--b92cfdb13bcf477aae30a29988d85291
ce71eb728fb045819747d1a1b37f1474
t = theta_t₀
b92cfdb13bcf477aae30a29988d85291--ce71eb728fb045819747d1a1b37f1474
262835a879ff400bb72813fcd029d2e3
RX(theta₂₁)
ce71eb728fb045819747d1a1b37f1474--262835a879ff400bb72813fcd029d2e3
277b0b89cc764784ad9b9a13790f602f
RY(theta₂₇)
262835a879ff400bb72813fcd029d2e3--277b0b89cc764784ad9b9a13790f602f
0e667c313330413da2080948c6273f58
RX(theta₃₃)
277b0b89cc764784ad9b9a13790f602f--0e667c313330413da2080948c6273f58
e0c9e4794ef24551b4df3dceac247226
t = theta_t₁
0e667c313330413da2080948c6273f58--e0c9e4794ef24551b4df3dceac247226
e0c9e4794ef24551b4df3dceac247226--221bcb8ce49c4e62aeca170f4a4acca1
8c10e95ab78c4a738f8cb09b4d48a1a8
89efd23d381c49a9b88d423061194340
RX(theta₄)
8362a20fe15e469eb5dc1d3a1c01f0c4--89efd23d381c49a9b88d423061194340
82987ada59bf41659fd436cd39fa963c
5
8d800b66d5294765ae4dfe21db228764
RY(theta₁₀)
89efd23d381c49a9b88d423061194340--8d800b66d5294765ae4dfe21db228764
b8d96de2f26e4e28b80d93fa9c9e26aa
RX(theta₁₆)
8d800b66d5294765ae4dfe21db228764--b8d96de2f26e4e28b80d93fa9c9e26aa
b74136a6925c48d18560cd3d2958e8fa
b8d96de2f26e4e28b80d93fa9c9e26aa--b74136a6925c48d18560cd3d2958e8fa
51042c9dbbec4fc89641d5539ae1a82b
RX(theta₂₂)
b74136a6925c48d18560cd3d2958e8fa--51042c9dbbec4fc89641d5539ae1a82b
10716020095a429295f80641ba9bd11a
RY(theta₂₈)
51042c9dbbec4fc89641d5539ae1a82b--10716020095a429295f80641ba9bd11a
87f67f2c34364fb890d34eab8b521b70
RX(theta₃₄)
10716020095a429295f80641ba9bd11a--87f67f2c34364fb890d34eab8b521b70
30035eb66b504323af09aa07043daae8
87f67f2c34364fb890d34eab8b521b70--30035eb66b504323af09aa07043daae8
30035eb66b504323af09aa07043daae8--8c10e95ab78c4a738f8cb09b4d48a1a8
61dca2e532444c359c2996c6030f2f6f
13337821198b4a55944f4fcec9b45aed
RX(theta₅)
82987ada59bf41659fd436cd39fa963c--13337821198b4a55944f4fcec9b45aed
f2314028ba894d398bd2165d8964d5af
RY(theta₁₁)
13337821198b4a55944f4fcec9b45aed--f2314028ba894d398bd2165d8964d5af
29e9ab30c9124e2486242d863c031ff2
RX(theta₁₇)
f2314028ba894d398bd2165d8964d5af--29e9ab30c9124e2486242d863c031ff2
0f272b4972924a1aaa0a349ac79e124f
29e9ab30c9124e2486242d863c031ff2--0f272b4972924a1aaa0a349ac79e124f
07736834858949c0ad87378fdd9c2835
RX(theta₂₃)
0f272b4972924a1aaa0a349ac79e124f--07736834858949c0ad87378fdd9c2835
9a5c67b6758347bf9f8e2ccc2c03937b
RY(theta₂₉)
07736834858949c0ad87378fdd9c2835--9a5c67b6758347bf9f8e2ccc2c03937b
73a2a07c1e8a4af9bbe71ca8a3e6a95e
RX(theta₃₅)
9a5c67b6758347bf9f8e2ccc2c03937b--73a2a07c1e8a4af9bbe71ca8a3e6a95e
0f4ad6a1b59041958e68160e0d87f1bc
73a2a07c1e8a4af9bbe71ca8a3e6a95e--0f4ad6a1b59041958e68160e0d87f1bc
0f4ad6a1b59041958e68160e0d87f1bc--61dca2e532444c359c2996c6030f2f6f
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_3bba864a77bf49bd870dbafeeec3e539
BPMA-1
cluster_396b03a547f04c16be0a22b18a3333a4
BPMA-0
f66de7718e794f5e9c1af5a0d20be9f7
0
e39107545bda45398e9d954bc6c0ad8e
RX(iia_α₀₀)
f66de7718e794f5e9c1af5a0d20be9f7--e39107545bda45398e9d954bc6c0ad8e
89ab8188efd74e3e8a20d22c442afdf7
1
09f7045df2b84115ae5aa7830339d301
RY(iia_α₀₃)
e39107545bda45398e9d954bc6c0ad8e--09f7045df2b84115ae5aa7830339d301
a78f2fe14f764ccf8d02c3d6f18b65cf
09f7045df2b84115ae5aa7830339d301--a78f2fe14f764ccf8d02c3d6f18b65cf
623958d7bd1a46b7bfaa3f1e91977c93
a78f2fe14f764ccf8d02c3d6f18b65cf--623958d7bd1a46b7bfaa3f1e91977c93
c6ae0b3be3f14aeaa58daaa1f145c2be
RX(iia_γ₀₀)
623958d7bd1a46b7bfaa3f1e91977c93--c6ae0b3be3f14aeaa58daaa1f145c2be
9230c5e71a5c4a60b327c6fff230db7e
c6ae0b3be3f14aeaa58daaa1f145c2be--9230c5e71a5c4a60b327c6fff230db7e
4af1f48ec529449f8b4318c5531a8eac
9230c5e71a5c4a60b327c6fff230db7e--4af1f48ec529449f8b4318c5531a8eac
b72475f9fa3d46c9a373bd8af2c0fb92
RY(iia_β₀₃)
4af1f48ec529449f8b4318c5531a8eac--b72475f9fa3d46c9a373bd8af2c0fb92
0857a3d6fa04499d90e5137c3f48c5b5
RX(iia_β₀₀)
b72475f9fa3d46c9a373bd8af2c0fb92--0857a3d6fa04499d90e5137c3f48c5b5
6465274fc2384cfbb7aa009c56228450
RX(iia_α₁₀)
0857a3d6fa04499d90e5137c3f48c5b5--6465274fc2384cfbb7aa009c56228450
fe9338894abc46cb801862598ccda0f6
RY(iia_α₁₃)
6465274fc2384cfbb7aa009c56228450--fe9338894abc46cb801862598ccda0f6
0e4612d337a34c84bd0f1e124ce1ba1b
fe9338894abc46cb801862598ccda0f6--0e4612d337a34c84bd0f1e124ce1ba1b
8eb3285e90294494a3afb9e40c2a0605
0e4612d337a34c84bd0f1e124ce1ba1b--8eb3285e90294494a3afb9e40c2a0605
55a323061a3f496bb04cfa590bc538d6
RX(iia_γ₁₀)
8eb3285e90294494a3afb9e40c2a0605--55a323061a3f496bb04cfa590bc538d6
625d92e9c61c42ed84ae314ebc0c7278
55a323061a3f496bb04cfa590bc538d6--625d92e9c61c42ed84ae314ebc0c7278
57d4136ec0a54776b41d80493688a479
625d92e9c61c42ed84ae314ebc0c7278--57d4136ec0a54776b41d80493688a479
6c32ad7ca90b41e1ad0b000ba60ca073
RY(iia_β₁₃)
57d4136ec0a54776b41d80493688a479--6c32ad7ca90b41e1ad0b000ba60ca073
cbf3770c1dbf4338a7df1275d8f6542e
RX(iia_β₁₀)
6c32ad7ca90b41e1ad0b000ba60ca073--cbf3770c1dbf4338a7df1275d8f6542e
84d7472c6ec540b7829e799e0b999b29
cbf3770c1dbf4338a7df1275d8f6542e--84d7472c6ec540b7829e799e0b999b29
aef8392d023e470b82ad63d4ecbad4ec
9fc075de700d4bc7a9413bd1b3425bfc
RX(iia_α₀₁)
89ab8188efd74e3e8a20d22c442afdf7--9fc075de700d4bc7a9413bd1b3425bfc
0bde8114d3164460b539f4bc155bdc99
2
11b353c912224af79afacfe3b00f7a3f
RY(iia_α₀₄)
9fc075de700d4bc7a9413bd1b3425bfc--11b353c912224af79afacfe3b00f7a3f
af3c87a6fe65489faea167e6291d0c62
X
11b353c912224af79afacfe3b00f7a3f--af3c87a6fe65489faea167e6291d0c62
af3c87a6fe65489faea167e6291d0c62--a78f2fe14f764ccf8d02c3d6f18b65cf
b9d4aaa6b4b64df9abc3bf062b3894c5
af3c87a6fe65489faea167e6291d0c62--b9d4aaa6b4b64df9abc3bf062b3894c5
d78c949ea86f477ca872b0c2e4958467
RX(iia_γ₀₁)
b9d4aaa6b4b64df9abc3bf062b3894c5--d78c949ea86f477ca872b0c2e4958467
167e50e6ff7b47d5ac03fd653295bf7f
d78c949ea86f477ca872b0c2e4958467--167e50e6ff7b47d5ac03fd653295bf7f
a03d52a7dd8c4ae1ad775cd66111df66
X
167e50e6ff7b47d5ac03fd653295bf7f--a03d52a7dd8c4ae1ad775cd66111df66
a03d52a7dd8c4ae1ad775cd66111df66--4af1f48ec529449f8b4318c5531a8eac
4b9cab5ae18045bcb349981512a1b263
RY(iia_β₀₄)
a03d52a7dd8c4ae1ad775cd66111df66--4b9cab5ae18045bcb349981512a1b263
f1653bfad5934c6ab887591671a404c8
RX(iia_β₀₁)
4b9cab5ae18045bcb349981512a1b263--f1653bfad5934c6ab887591671a404c8
dcdeedba5cc347c4b2eb71b5490cd4b7
RX(iia_α₁₁)
f1653bfad5934c6ab887591671a404c8--dcdeedba5cc347c4b2eb71b5490cd4b7
da9902728517494b82efa305fb3d5a95
RY(iia_α₁₄)
dcdeedba5cc347c4b2eb71b5490cd4b7--da9902728517494b82efa305fb3d5a95
aef2fe071490422d9ef949c9583bf51e
X
da9902728517494b82efa305fb3d5a95--aef2fe071490422d9ef949c9583bf51e
aef2fe071490422d9ef949c9583bf51e--0e4612d337a34c84bd0f1e124ce1ba1b
2320df9093a74e119e09f912f603f1c9
aef2fe071490422d9ef949c9583bf51e--2320df9093a74e119e09f912f603f1c9
109b8c81f419450b81b02b4490b4e25c
RX(iia_γ₁₁)
2320df9093a74e119e09f912f603f1c9--109b8c81f419450b81b02b4490b4e25c
e5399b1f3eca458d8e9b27ba5bce3956
109b8c81f419450b81b02b4490b4e25c--e5399b1f3eca458d8e9b27ba5bce3956
84d364371f5a454c93d64c076d8e98c0
X
e5399b1f3eca458d8e9b27ba5bce3956--84d364371f5a454c93d64c076d8e98c0
84d364371f5a454c93d64c076d8e98c0--57d4136ec0a54776b41d80493688a479
a029236b74514907abf272ae27155123
RY(iia_β₁₄)
84d364371f5a454c93d64c076d8e98c0--a029236b74514907abf272ae27155123
c717e23e9f1d4f0393e7aa36fe0b3266
RX(iia_β₁₁)
a029236b74514907abf272ae27155123--c717e23e9f1d4f0393e7aa36fe0b3266
c717e23e9f1d4f0393e7aa36fe0b3266--aef8392d023e470b82ad63d4ecbad4ec
b4380cd296134dc6a6a129df679209a9
1903dc9b4ab9413585989d26b7752979
RX(iia_α₀₂)
0bde8114d3164460b539f4bc155bdc99--1903dc9b4ab9413585989d26b7752979
f24a012459d345c68a4280bbca6927c8
RY(iia_α₀₅)
1903dc9b4ab9413585989d26b7752979--f24a012459d345c68a4280bbca6927c8
abc007db87cd466d8b4bfdf1460271ad
f24a012459d345c68a4280bbca6927c8--abc007db87cd466d8b4bfdf1460271ad
98ba1c057513452c87c9710b1d1d259d
X
abc007db87cd466d8b4bfdf1460271ad--98ba1c057513452c87c9710b1d1d259d
98ba1c057513452c87c9710b1d1d259d--b9d4aaa6b4b64df9abc3bf062b3894c5
e0d9ed088644437badc870a67889ea14
RX(iia_γ₀₂)
98ba1c057513452c87c9710b1d1d259d--e0d9ed088644437badc870a67889ea14
eaac7f7c7dfd4f508dd4c6ae69d869a8
X
e0d9ed088644437badc870a67889ea14--eaac7f7c7dfd4f508dd4c6ae69d869a8
eaac7f7c7dfd4f508dd4c6ae69d869a8--167e50e6ff7b47d5ac03fd653295bf7f
02424d47be7b44b9b6da1f53eddd122c
eaac7f7c7dfd4f508dd4c6ae69d869a8--02424d47be7b44b9b6da1f53eddd122c
2c83bd2bfc0d4ffaae6d05c743d67175
RY(iia_β₀₅)
02424d47be7b44b9b6da1f53eddd122c--2c83bd2bfc0d4ffaae6d05c743d67175
7ba0c6965ee74ac3bffe0eac6f06a57f
RX(iia_β₀₂)
2c83bd2bfc0d4ffaae6d05c743d67175--7ba0c6965ee74ac3bffe0eac6f06a57f
ac611a2e254b4902b1c9488db8f8a6d6
RX(iia_α₁₂)
7ba0c6965ee74ac3bffe0eac6f06a57f--ac611a2e254b4902b1c9488db8f8a6d6
86f2d404aaf749b68463b1f7edfe4189
RY(iia_α₁₅)
ac611a2e254b4902b1c9488db8f8a6d6--86f2d404aaf749b68463b1f7edfe4189
514567da9ec14464b8d931f738710080
86f2d404aaf749b68463b1f7edfe4189--514567da9ec14464b8d931f738710080
be26c80e2e3f4f3cb0a6a187d989d636
X
514567da9ec14464b8d931f738710080--be26c80e2e3f4f3cb0a6a187d989d636
be26c80e2e3f4f3cb0a6a187d989d636--2320df9093a74e119e09f912f603f1c9
ad5724e5bf5a4cda8a15921e48cddd9e
RX(iia_γ₁₂)
be26c80e2e3f4f3cb0a6a187d989d636--ad5724e5bf5a4cda8a15921e48cddd9e
f2df417ab2eb4b6ab96e7dd2ced051ab
X
ad5724e5bf5a4cda8a15921e48cddd9e--f2df417ab2eb4b6ab96e7dd2ced051ab
f2df417ab2eb4b6ab96e7dd2ced051ab--e5399b1f3eca458d8e9b27ba5bce3956
e5265d5b9fed4a71b92e3eff4726b668
f2df417ab2eb4b6ab96e7dd2ced051ab--e5265d5b9fed4a71b92e3eff4726b668
cbd1184a5c62497c8bb0795986a1adbe
RY(iia_β₁₅)
e5265d5b9fed4a71b92e3eff4726b668--cbd1184a5c62497c8bb0795986a1adbe
05df34c9ad6a44cc96765c3b9f0d56c4
RX(iia_β₁₂)
cbd1184a5c62497c8bb0795986a1adbe--05df34c9ad6a44cc96765c3b9f0d56c4
05df34c9ad6a44cc96765c3b9f0d56c4--b4380cd296134dc6a6a129df679209a9