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_70759a15f7b541ba968fa1a95ed346ad
Constant Chebyshev FM
cluster_ec37f93286f84165bc027f4a57ba2098
Constant Fourier FM
df30d47eff0a450fa4bee27ded1fbd8c
0
ab5e1f6c5bd545c5a10586015b0253e7
RX(phi)
df30d47eff0a450fa4bee27ded1fbd8c--ab5e1f6c5bd545c5a10586015b0253e7
cd131ce0bc3d4ca38ecff398996cd900
1
4ec415a9cee04d3b911221ece418644b
RX(acos(phi))
ab5e1f6c5bd545c5a10586015b0253e7--4ec415a9cee04d3b911221ece418644b
19adeb508cdf413b9588791a7992d606
4ec415a9cee04d3b911221ece418644b--19adeb508cdf413b9588791a7992d606
4254c43c40b148cc8b4e92e7b1cdca5d
34a1dfd1f2444cbd97e9b3ad1da66698
RX(phi)
cd131ce0bc3d4ca38ecff398996cd900--34a1dfd1f2444cbd97e9b3ad1da66698
646073a27788456eb5e40b03420217cf
2
d730d8de64f84dd4a5f8f75dd1110c02
RX(acos(phi))
34a1dfd1f2444cbd97e9b3ad1da66698--d730d8de64f84dd4a5f8f75dd1110c02
d730d8de64f84dd4a5f8f75dd1110c02--4254c43c40b148cc8b4e92e7b1cdca5d
88b39a0d6f50444e823cd75f23a88afb
51659df67c314f1f8ea98007a7066b71
RX(phi)
646073a27788456eb5e40b03420217cf--51659df67c314f1f8ea98007a7066b71
8582959b143f4298a632532d5132ea84
RX(acos(phi))
51659df67c314f1f8ea98007a7066b71--8582959b143f4298a632532d5132ea84
8582959b143f4298a632532d5132ea84--88b39a0d6f50444e823cd75f23a88afb
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_63f4f6e37dfb40f0a3984b3acaaea4c4
Constant <function custom_fn at 0x7fa95bd1b9a0> FM
cluster_9fba9a5b07d940b181c74bc910e88516
Constant asin FM
95e82857bb6746068d424e4a9dc25c8e
0
23a5befc273a41ce88dda7c675158670
RX(asin(phi))
95e82857bb6746068d424e4a9dc25c8e--23a5befc273a41ce88dda7c675158670
bdb629a1695440e7b82f6b39b96de200
1
cb222f9059154e02a0db7883ef432a0d
RX(phi**2 + asin(phi))
23a5befc273a41ce88dda7c675158670--cb222f9059154e02a0db7883ef432a0d
ee80d0102752485c8d9cd4ba4d9b9aa6
cb222f9059154e02a0db7883ef432a0d--ee80d0102752485c8d9cd4ba4d9b9aa6
6d2999d8e65a431786c1b4c2c7cd6121
3f38214b6d0e493da58b1fc467824642
RX(asin(phi))
bdb629a1695440e7b82f6b39b96de200--3f38214b6d0e493da58b1fc467824642
a2732d4772544aef99376016c8907ab0
2
1ae98cf3e11a4974ab42b1e9335fe60d
RX(phi**2 + asin(phi))
3f38214b6d0e493da58b1fc467824642--1ae98cf3e11a4974ab42b1e9335fe60d
1ae98cf3e11a4974ab42b1e9335fe60d--6d2999d8e65a431786c1b4c2c7cd6121
46a5aa0a22cf476eae0bebd500abaec9
6c1f7ebc67d943088731a0b0eec9fa78
RX(asin(phi))
a2732d4772544aef99376016c8907ab0--6c1f7ebc67d943088731a0b0eec9fa78
99fe1e31cae1422fbec39e9f0061e250
RX(phi**2 + asin(phi))
6c1f7ebc67d943088731a0b0eec9fa78--99fe1e31cae1422fbec39e9f0061e250
99fe1e31cae1422fbec39e9f0061e250--46a5aa0a22cf476eae0bebd500abaec9
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_ac0ab80d2f02456dbc3746216d1a309d
Exponential Fourier FM
cluster_bf970cf827494d49b7b785c88941d5c9
Constant Fourier FM
cluster_b22eed5cdbaf430a9a463f3f5fac7718
Tower Fourier FM
315f50fca82f4c57acf7dbea2192d4db
0
2ce1475ba4844e9380e89299d37a8e6d
RX(phi)
315f50fca82f4c57acf7dbea2192d4db--2ce1475ba4844e9380e89299d37a8e6d
1bb4bc504ec0499496e2360a3aec60cf
1
cfa0bd5d7b794885998303c5d88d7554
RX(1.0*phi)
2ce1475ba4844e9380e89299d37a8e6d--cfa0bd5d7b794885998303c5d88d7554
f9ef39338ce44e07a4707cfa108975d0
RX(1.0*phi)
cfa0bd5d7b794885998303c5d88d7554--f9ef39338ce44e07a4707cfa108975d0
98aee60b727f4b25bf449d460abba9bd
f9ef39338ce44e07a4707cfa108975d0--98aee60b727f4b25bf449d460abba9bd
e041cfb6e4054bf0b4a546109901de1d
75f6b3e87eee4cdc9661b96b5eecb7e6
RX(phi)
1bb4bc504ec0499496e2360a3aec60cf--75f6b3e87eee4cdc9661b96b5eecb7e6
e4ecd23a654044caa5e5e4ccff01a0f6
2
2727a0625a744f00b1290ccf0e4d5be3
RX(2.0*phi)
75f6b3e87eee4cdc9661b96b5eecb7e6--2727a0625a744f00b1290ccf0e4d5be3
0c3d32cd36674859a705fc37b25a10b4
RX(2.0*phi)
2727a0625a744f00b1290ccf0e4d5be3--0c3d32cd36674859a705fc37b25a10b4
0c3d32cd36674859a705fc37b25a10b4--e041cfb6e4054bf0b4a546109901de1d
f9c530649a2144e58ace9036bdb7cb4e
a355c46cc0154ba883d1fadd7596ae90
RX(phi)
e4ecd23a654044caa5e5e4ccff01a0f6--a355c46cc0154ba883d1fadd7596ae90
0aeab37ae1054bc1a385c43e8fcfecb7
3
f0e21f33bb5f4e10b63dc69752c81130
RX(3.0*phi)
a355c46cc0154ba883d1fadd7596ae90--f0e21f33bb5f4e10b63dc69752c81130
22e3252634bc4791907623c625d87c26
RX(4.0*phi)
f0e21f33bb5f4e10b63dc69752c81130--22e3252634bc4791907623c625d87c26
22e3252634bc4791907623c625d87c26--f9c530649a2144e58ace9036bdb7cb4e
bbd0658735d6452fb8a73c1cab4e9fea
45b51fced9854b5c8d174572b9697243
RX(phi)
0aeab37ae1054bc1a385c43e8fcfecb7--45b51fced9854b5c8d174572b9697243
af21e7a2301448688d5c2993937982d1
4
4a0436187c6e49a38493556c5fc15fcc
RX(4.0*phi)
45b51fced9854b5c8d174572b9697243--4a0436187c6e49a38493556c5fc15fcc
e49100b9c7c047c4ae9fd5aa72589983
RX(8.0*phi)
4a0436187c6e49a38493556c5fc15fcc--e49100b9c7c047c4ae9fd5aa72589983
e49100b9c7c047c4ae9fd5aa72589983--bbd0658735d6452fb8a73c1cab4e9fea
f541f3cc8f3b46d5838fdb2226c03e05
eda9f2c74653431a9874eaaf14e319b3
RX(phi)
af21e7a2301448688d5c2993937982d1--eda9f2c74653431a9874eaaf14e319b3
0abc12f8888a49f6bd1de345d0dec3fb
RX(5.0*phi)
eda9f2c74653431a9874eaaf14e319b3--0abc12f8888a49f6bd1de345d0dec3fb
cb25a55f8f014fb0babac909cb97c7d5
RX(16.0*phi)
0abc12f8888a49f6bd1de345d0dec3fb--cb25a55f8f014fb0babac909cb97c7d5
cb25a55f8f014fb0babac909cb97c7d5--f541f3cc8f3b46d5838fdb2226c03e05
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
86378aac4ea64af7a2d68e9ccc0c0335
0
67e602d0bc5740ac9a1bd7a6b47b10e4
RX(1.0*acos(phi))
86378aac4ea64af7a2d68e9ccc0c0335--67e602d0bc5740ac9a1bd7a6b47b10e4
4c41db90d437428cbf5a98fdcf23a5b6
1
08540c2878fc48929b953365c82d7ffa
67e602d0bc5740ac9a1bd7a6b47b10e4--08540c2878fc48929b953365c82d7ffa
74a94c0700c142ffbbf67226ff59e5ee
5b0b92663d104b93beeeea87ebd7cbd6
RX(1.414*acos(phi))
4c41db90d437428cbf5a98fdcf23a5b6--5b0b92663d104b93beeeea87ebd7cbd6
054551ae1c1d4e23b2fe33fdfdd44e67
2
5b0b92663d104b93beeeea87ebd7cbd6--74a94c0700c142ffbbf67226ff59e5ee
4cbc9e14a27c45de81199f4342ae9351
0a960d0674934982953585e94e18a0e9
RX(1.732*acos(phi))
054551ae1c1d4e23b2fe33fdfdd44e67--0a960d0674934982953585e94e18a0e9
2721a8e528a54bc193eedcf7390152d1
3
0a960d0674934982953585e94e18a0e9--4cbc9e14a27c45de81199f4342ae9351
7ebc082ce39447dcb0ff6822b3c0cca7
b57043ad8c064fbf9f0bf299d334e33d
RX(2.0*acos(phi))
2721a8e528a54bc193eedcf7390152d1--b57043ad8c064fbf9f0bf299d334e33d
6abb19dc34964233a76c84da08a6b7f5
4
b57043ad8c064fbf9f0bf299d334e33d--7ebc082ce39447dcb0ff6822b3c0cca7
e9df0f452d4a4f32a516a649060c7247
80d9da3c45e942c1867f6c45d2855583
RX(2.236*acos(phi))
6abb19dc34964233a76c84da08a6b7f5--80d9da3c45e942c1867f6c45d2855583
80d9da3c45e942c1867f6c45d2855583--e9df0f452d4a4f32a516a649060c7247
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
24dcefa30e36428e85103bcb217eff7a
0
a3ca17fc3cd84f3e8316fff4772e9641
RX(1.0*phi*w₀)
24dcefa30e36428e85103bcb217eff7a--a3ca17fc3cd84f3e8316fff4772e9641
82091263097841e3935ca44bf296c323
1
9e814eadc40f4e13a9e3f327d83dc238
a3ca17fc3cd84f3e8316fff4772e9641--9e814eadc40f4e13a9e3f327d83dc238
9cb690ca654041579b0855f588f0165e
9951fbc7640048b68c1185b928cbd5e0
RX(2.0*phi*w₁)
82091263097841e3935ca44bf296c323--9951fbc7640048b68c1185b928cbd5e0
06b9791944634c6899b07d1e97747170
2
9951fbc7640048b68c1185b928cbd5e0--9cb690ca654041579b0855f588f0165e
fb0b621a808c4c07b4b4e05d42d46de5
9eea5bd6614448b2956786c17a8ec50b
RX(4.0*phi*w₂)
06b9791944634c6899b07d1e97747170--9eea5bd6614448b2956786c17a8ec50b
5cf6f4b8573c4ebd9c25326f792512e8
3
9eea5bd6614448b2956786c17a8ec50b--fb0b621a808c4c07b4b4e05d42d46de5
61a2c125b42f4bb8802390ab34549909
546249580d9b417081cd02f92bd03b42
RX(8.0*phi*w₃)
5cf6f4b8573c4ebd9c25326f792512e8--546249580d9b417081cd02f92bd03b42
14dff316e6bb44be9a65ccfa444654ec
4
546249580d9b417081cd02f92bd03b42--61a2c125b42f4bb8802390ab34549909
eb4b66cab3ab48a39799eec3c0b01f51
88d7aa01b01e40bbb59029a9412aa968
RX(16.0*phi*w₄)
14dff316e6bb44be9a65ccfa444654ec--88d7aa01b01e40bbb59029a9412aa968
88d7aa01b01e40bbb59029a9412aa968--eb4b66cab3ab48a39799eec3c0b01f51
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
160c0cc08c0a4e5eb793765350ea360f
0
3799b1bc9151408a843b68b55f65c7cc
RY(80.0*acos(w₄*(0.667*x + 1.667)))
160c0cc08c0a4e5eb793765350ea360f--3799b1bc9151408a843b68b55f65c7cc
76f3a1c92e634cd4ad1c8f1c6805aff9
1
e4f1b5e0dae34fed9b17a336052e88c3
3799b1bc9151408a843b68b55f65c7cc--e4f1b5e0dae34fed9b17a336052e88c3
92eb864e2ba545908e9b427de052d1b7
a3aa3621c03e4d1bab516b49cec1f241
RY(40.0*acos(w₃*(0.667*x + 1.667)))
76f3a1c92e634cd4ad1c8f1c6805aff9--a3aa3621c03e4d1bab516b49cec1f241
6129b6e10d6c4527afc93cb17c614150
2
a3aa3621c03e4d1bab516b49cec1f241--92eb864e2ba545908e9b427de052d1b7
4a315f6899a242cda7a2c6f5659b5d3a
bd5b0fcbfb9f4bde9aead8e2143363b9
RY(20.0*acos(w₂*(0.667*x + 1.667)))
6129b6e10d6c4527afc93cb17c614150--bd5b0fcbfb9f4bde9aead8e2143363b9
077bc08c159e428fa7e5020770b68a09
3
bd5b0fcbfb9f4bde9aead8e2143363b9--4a315f6899a242cda7a2c6f5659b5d3a
f30cf73713bf469f86fcdf285064e280
112e6aba33764a49adf18110d5c41116
RY(10.0*acos(w₁*(0.667*x + 1.667)))
077bc08c159e428fa7e5020770b68a09--112e6aba33764a49adf18110d5c41116
729db48b12274b5789866a74103c64c4
4
112e6aba33764a49adf18110d5c41116--f30cf73713bf469f86fcdf285064e280
595b4e645c8849ff9707438d9bba4368
393c2df2c9b54c9d8a34f81b9f2bbc2e
RY(5.0*acos(w₀*(0.667*x + 1.667)))
729db48b12274b5789866a74103c64c4--393c2df2c9b54c9d8a34f81b9f2bbc2e
393c2df2c9b54c9d8a34f81b9f2bbc2e--595b4e645c8849ff9707438d9bba4368
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
87e26f1900ab4f91a741dd609e7afbe8
0
d45df327a2d24085b7781de05baed308
RX(theta₀)
87e26f1900ab4f91a741dd609e7afbe8--d45df327a2d24085b7781de05baed308
379f11f69f8d415eac1285e556d5db63
1
d5ec6d8f021c49fe8264d31facd6c602
RY(theta₃)
d45df327a2d24085b7781de05baed308--d5ec6d8f021c49fe8264d31facd6c602
48d25e638fed4226a69c7c1452d49379
RX(theta₆)
d5ec6d8f021c49fe8264d31facd6c602--48d25e638fed4226a69c7c1452d49379
8d0c51a300ae4635ac503019b47dcc41
48d25e638fed4226a69c7c1452d49379--8d0c51a300ae4635ac503019b47dcc41
573915ae04e441a185f3297def484c23
8d0c51a300ae4635ac503019b47dcc41--573915ae04e441a185f3297def484c23
517b93f674a247fda9297862505faebd
RX(theta₉)
573915ae04e441a185f3297def484c23--517b93f674a247fda9297862505faebd
065c4acb7b13460e81c1a5c95c24b203
RY(theta₁₂)
517b93f674a247fda9297862505faebd--065c4acb7b13460e81c1a5c95c24b203
0ce545b1272347edbbcacf089be32bee
RX(theta₁₅)
065c4acb7b13460e81c1a5c95c24b203--0ce545b1272347edbbcacf089be32bee
76fd639e367f49409b42bcdd53844d71
0ce545b1272347edbbcacf089be32bee--76fd639e367f49409b42bcdd53844d71
750306c08d1d477291571a65d0fe49fc
76fd639e367f49409b42bcdd53844d71--750306c08d1d477291571a65d0fe49fc
c23aa6e8ca0d457487e5904b5d93b1a6
750306c08d1d477291571a65d0fe49fc--c23aa6e8ca0d457487e5904b5d93b1a6
50f2c8a10e7d48cd8a64c7628c920de9
6c36cfb3cb2b446c81f9ce9cd0cefe28
RX(theta₁)
379f11f69f8d415eac1285e556d5db63--6c36cfb3cb2b446c81f9ce9cd0cefe28
724a8e7e047047778a88e5ad4447cda3
2
7bf6d3d8044e4b2a8c25881af72cacff
RY(theta₄)
6c36cfb3cb2b446c81f9ce9cd0cefe28--7bf6d3d8044e4b2a8c25881af72cacff
8831e90407e04f598992d7bbec903cde
RX(theta₇)
7bf6d3d8044e4b2a8c25881af72cacff--8831e90407e04f598992d7bbec903cde
4a0aef29752f4f98b90218550a202281
X
8831e90407e04f598992d7bbec903cde--4a0aef29752f4f98b90218550a202281
4a0aef29752f4f98b90218550a202281--8d0c51a300ae4635ac503019b47dcc41
3078ef0293e548ccbde8396856c3a0ec
4a0aef29752f4f98b90218550a202281--3078ef0293e548ccbde8396856c3a0ec
2085445f8d0047c2871d9a8a42330b0a
RX(theta₁₀)
3078ef0293e548ccbde8396856c3a0ec--2085445f8d0047c2871d9a8a42330b0a
950b5a65124d470f84a8a61b00fbc71d
RY(theta₁₃)
2085445f8d0047c2871d9a8a42330b0a--950b5a65124d470f84a8a61b00fbc71d
e30ab41e994e479cbac1dde9c06eeafc
RX(theta₁₆)
950b5a65124d470f84a8a61b00fbc71d--e30ab41e994e479cbac1dde9c06eeafc
0a3fee6ccd214346a23ecae07ea45a0c
X
e30ab41e994e479cbac1dde9c06eeafc--0a3fee6ccd214346a23ecae07ea45a0c
0a3fee6ccd214346a23ecae07ea45a0c--76fd639e367f49409b42bcdd53844d71
f7a60b1f102647d8acc76f1a236989fe
0a3fee6ccd214346a23ecae07ea45a0c--f7a60b1f102647d8acc76f1a236989fe
f7a60b1f102647d8acc76f1a236989fe--50f2c8a10e7d48cd8a64c7628c920de9
ab4c0a9e2edf45899b5ed600340ff5cb
0a19365e7ea14278afbd95987b317a85
RX(theta₂)
724a8e7e047047778a88e5ad4447cda3--0a19365e7ea14278afbd95987b317a85
5dd206cbe1004f929a707409785764a7
RY(theta₅)
0a19365e7ea14278afbd95987b317a85--5dd206cbe1004f929a707409785764a7
11868c2047434d2e838bb1550435e70e
RX(theta₈)
5dd206cbe1004f929a707409785764a7--11868c2047434d2e838bb1550435e70e
c86911634a2e4e68b2f95f22e9750971
11868c2047434d2e838bb1550435e70e--c86911634a2e4e68b2f95f22e9750971
67d4c1a0d4604643bb17b792ed0b2610
X
c86911634a2e4e68b2f95f22e9750971--67d4c1a0d4604643bb17b792ed0b2610
67d4c1a0d4604643bb17b792ed0b2610--3078ef0293e548ccbde8396856c3a0ec
7965dd3bccaa4f9da2f808f64df0467f
RX(theta₁₁)
67d4c1a0d4604643bb17b792ed0b2610--7965dd3bccaa4f9da2f808f64df0467f
8f4f8c28b1ec4e74acc0fa9d30f9322e
RY(theta₁₄)
7965dd3bccaa4f9da2f808f64df0467f--8f4f8c28b1ec4e74acc0fa9d30f9322e
3431f80a34b043cc84e7880028c64cdb
RX(theta₁₇)
8f4f8c28b1ec4e74acc0fa9d30f9322e--3431f80a34b043cc84e7880028c64cdb
09a90345b4b849eaba2245152ea60292
3431f80a34b043cc84e7880028c64cdb--09a90345b4b849eaba2245152ea60292
97bfac7b168640a299b4f520fea9d651
X
09a90345b4b849eaba2245152ea60292--97bfac7b168640a299b4f520fea9d651
97bfac7b168640a299b4f520fea9d651--f7a60b1f102647d8acc76f1a236989fe
97bfac7b168640a299b4f520fea9d651--ab4c0a9e2edf45899b5ed600340ff5cb
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
94ccc9dfcf3147a09b0b4739849a1c4f
0
a856c499bd09468092a53aac5c3accd6
RX(phi₀)
94ccc9dfcf3147a09b0b4739849a1c4f--a856c499bd09468092a53aac5c3accd6
473a1ec183ac4cb4a98fce8c824adc99
1
866dcac307df470582e51a52607c9006
RY(phi₃)
a856c499bd09468092a53aac5c3accd6--866dcac307df470582e51a52607c9006
2bdb67bfc07445a7a84fb57a277206da
RX(phi₆)
866dcac307df470582e51a52607c9006--2bdb67bfc07445a7a84fb57a277206da
4f8b206562994438a5501942f21758fb
2bdb67bfc07445a7a84fb57a277206da--4f8b206562994438a5501942f21758fb
6dfbeb30902d418e9e64229680fd5760
4f8b206562994438a5501942f21758fb--6dfbeb30902d418e9e64229680fd5760
2e4a46b04ef340b98841046f7498a644
RX(phi₉)
6dfbeb30902d418e9e64229680fd5760--2e4a46b04ef340b98841046f7498a644
4a6381343e614273b24c02a4cc923ed1
RY(phi₁₂)
2e4a46b04ef340b98841046f7498a644--4a6381343e614273b24c02a4cc923ed1
fb5705b3215946d4b30e81c7b553f41b
RX(phi₁₅)
4a6381343e614273b24c02a4cc923ed1--fb5705b3215946d4b30e81c7b553f41b
8ad3248ed33e4933b0e9c1ecf6ac05c6
fb5705b3215946d4b30e81c7b553f41b--8ad3248ed33e4933b0e9c1ecf6ac05c6
efd053d8e09d43b1afd477ca26145a32
8ad3248ed33e4933b0e9c1ecf6ac05c6--efd053d8e09d43b1afd477ca26145a32
74466c98f16a4d56a9a67cceea07fb41
efd053d8e09d43b1afd477ca26145a32--74466c98f16a4d56a9a67cceea07fb41
cd1e0f93b2164a3682af330b070a13ed
1b8cc26353a940c3bfb50b2fb891db7a
RX(phi₁)
473a1ec183ac4cb4a98fce8c824adc99--1b8cc26353a940c3bfb50b2fb891db7a
9404ca30cb624f8ea8a9cc031424ce09
2
fb6c4f0fc66443abbcbbd921a6ca1ebe
RY(phi₄)
1b8cc26353a940c3bfb50b2fb891db7a--fb6c4f0fc66443abbcbbd921a6ca1ebe
cc1cb6eff0ce4ceaad787a143a1b13b7
RX(phi₇)
fb6c4f0fc66443abbcbbd921a6ca1ebe--cc1cb6eff0ce4ceaad787a143a1b13b7
d59af3602c954c2598518b82bac88220
PHASE(phi_ent₀)
cc1cb6eff0ce4ceaad787a143a1b13b7--d59af3602c954c2598518b82bac88220
d59af3602c954c2598518b82bac88220--4f8b206562994438a5501942f21758fb
03660a1620fc492c8c9ce3e8be347318
d59af3602c954c2598518b82bac88220--03660a1620fc492c8c9ce3e8be347318
943321c73d194610bc6faa61ea95d73c
RX(phi₁₀)
03660a1620fc492c8c9ce3e8be347318--943321c73d194610bc6faa61ea95d73c
468a4e96df9f43f3b93c3846abde1ecd
RY(phi₁₃)
943321c73d194610bc6faa61ea95d73c--468a4e96df9f43f3b93c3846abde1ecd
f366b184b16146d3ba08ede5bb4f3ea7
RX(phi₁₆)
468a4e96df9f43f3b93c3846abde1ecd--f366b184b16146d3ba08ede5bb4f3ea7
1497f353965046e09de7cda4e000e78a
PHASE(phi_ent₂)
f366b184b16146d3ba08ede5bb4f3ea7--1497f353965046e09de7cda4e000e78a
1497f353965046e09de7cda4e000e78a--8ad3248ed33e4933b0e9c1ecf6ac05c6
d39c10d176514174a1c3d9332c045db5
1497f353965046e09de7cda4e000e78a--d39c10d176514174a1c3d9332c045db5
d39c10d176514174a1c3d9332c045db5--cd1e0f93b2164a3682af330b070a13ed
c053c23767f047af815e97f944bc4a8e
986505b1667b40029ca2b269863cd7e7
RX(phi₂)
9404ca30cb624f8ea8a9cc031424ce09--986505b1667b40029ca2b269863cd7e7
69c85ee4b26b436a868d0e7e8c13b4e2
RY(phi₅)
986505b1667b40029ca2b269863cd7e7--69c85ee4b26b436a868d0e7e8c13b4e2
4f02c5aae4474aa296318d07f167c227
RX(phi₈)
69c85ee4b26b436a868d0e7e8c13b4e2--4f02c5aae4474aa296318d07f167c227
847be7a087e54a07abf4c1d6d38a2629
4f02c5aae4474aa296318d07f167c227--847be7a087e54a07abf4c1d6d38a2629
e57bdb294f814420b2b42d003248838e
PHASE(phi_ent₁)
847be7a087e54a07abf4c1d6d38a2629--e57bdb294f814420b2b42d003248838e
e57bdb294f814420b2b42d003248838e--03660a1620fc492c8c9ce3e8be347318
4e97e953a8b5407db7fa4623c4fcdf9c
RX(phi₁₁)
e57bdb294f814420b2b42d003248838e--4e97e953a8b5407db7fa4623c4fcdf9c
5fb1d65413614479897f416290970202
RY(phi₁₄)
4e97e953a8b5407db7fa4623c4fcdf9c--5fb1d65413614479897f416290970202
1f8aa3129ec84c1f953c216c730206a3
RX(phi₁₇)
5fb1d65413614479897f416290970202--1f8aa3129ec84c1f953c216c730206a3
2ede78234a7e4584be51126b17474439
1f8aa3129ec84c1f953c216c730206a3--2ede78234a7e4584be51126b17474439
e0955b1e3a21404b91d12787b0ef3c45
PHASE(phi_ent₃)
2ede78234a7e4584be51126b17474439--e0955b1e3a21404b91d12787b0ef3c45
e0955b1e3a21404b91d12787b0ef3c45--d39c10d176514174a1c3d9332c045db5
e0955b1e3a21404b91d12787b0ef3c45--c053c23767f047af815e97f944bc4a8e
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_90bbb123a8c84f66a6af9dd5dd938b55
cluster_e001db1282a44d68b593a822b806c777
80d06fb77d76484ebc3eab6863f1e560
0
954d0ce676df45499d6daa1f6c8c6d90
RX(theta₀)
80d06fb77d76484ebc3eab6863f1e560--954d0ce676df45499d6daa1f6c8c6d90
b0777dd35e2348b4847300bdc9426ab1
1
50ed206a705a422fadcae1e1d5d86650
RY(theta₃)
954d0ce676df45499d6daa1f6c8c6d90--50ed206a705a422fadcae1e1d5d86650
8c32b021909e4bb189619add27198923
RX(theta₆)
50ed206a705a422fadcae1e1d5d86650--8c32b021909e4bb189619add27198923
f0e171ac89ce402595933de51c1d1cc3
HamEvo
8c32b021909e4bb189619add27198923--f0e171ac89ce402595933de51c1d1cc3
e05eec5a9320419d98d478a0e6eb1247
RX(theta₉)
f0e171ac89ce402595933de51c1d1cc3--e05eec5a9320419d98d478a0e6eb1247
af7074b2cac74c0f8260e29f603dfc52
RY(theta₁₂)
e05eec5a9320419d98d478a0e6eb1247--af7074b2cac74c0f8260e29f603dfc52
4494612d7fa943e6b28ce6d959397bd4
RX(theta₁₅)
af7074b2cac74c0f8260e29f603dfc52--4494612d7fa943e6b28ce6d959397bd4
22da7b7b32a84afeb4d56bc424e0fd3f
HamEvo
4494612d7fa943e6b28ce6d959397bd4--22da7b7b32a84afeb4d56bc424e0fd3f
3ea1cdbcc3a54ceb984844639eb4b856
22da7b7b32a84afeb4d56bc424e0fd3f--3ea1cdbcc3a54ceb984844639eb4b856
392952b41b394f80a228e75d5346d26d
7cae968acf4c4b2d917416d0183f3467
RX(theta₁)
b0777dd35e2348b4847300bdc9426ab1--7cae968acf4c4b2d917416d0183f3467
2f2a2a1cf9b94f36ba862a06382cae1c
2
118a36650524496f8fd490e55419ee0e
RY(theta₄)
7cae968acf4c4b2d917416d0183f3467--118a36650524496f8fd490e55419ee0e
44eef4b9476f4f03ac91016d93b21684
RX(theta₇)
118a36650524496f8fd490e55419ee0e--44eef4b9476f4f03ac91016d93b21684
e22ab3e0a14b400e853bdbf3dcb476dd
t = theta_t₀
44eef4b9476f4f03ac91016d93b21684--e22ab3e0a14b400e853bdbf3dcb476dd
96bf7fd5f51b4b7e856ed4a218bbb47f
RX(theta₁₀)
e22ab3e0a14b400e853bdbf3dcb476dd--96bf7fd5f51b4b7e856ed4a218bbb47f
39a95292a4bb4da589cb58af6e005a32
RY(theta₁₃)
96bf7fd5f51b4b7e856ed4a218bbb47f--39a95292a4bb4da589cb58af6e005a32
ac4bac55c5534ceea735dc6bb1657a9d
RX(theta₁₆)
39a95292a4bb4da589cb58af6e005a32--ac4bac55c5534ceea735dc6bb1657a9d
c7bdcfd2d0414215b272a0c4d81a13dd
t = theta_t₁
ac4bac55c5534ceea735dc6bb1657a9d--c7bdcfd2d0414215b272a0c4d81a13dd
c7bdcfd2d0414215b272a0c4d81a13dd--392952b41b394f80a228e75d5346d26d
0d805eeae53540e090665b5daa44a202
8518b27cea66445ba0bb2026b0c49aa2
RX(theta₂)
2f2a2a1cf9b94f36ba862a06382cae1c--8518b27cea66445ba0bb2026b0c49aa2
fa7991544f184d95b85ff2b5a80356cd
RY(theta₅)
8518b27cea66445ba0bb2026b0c49aa2--fa7991544f184d95b85ff2b5a80356cd
c48abfc99a10426593b4d096ce402bca
RX(theta₈)
fa7991544f184d95b85ff2b5a80356cd--c48abfc99a10426593b4d096ce402bca
e6cf595a681e492d9ad9e9fa5fca3476
c48abfc99a10426593b4d096ce402bca--e6cf595a681e492d9ad9e9fa5fca3476
8ae205c78b634af1ba5e8809b7dd450b
RX(theta₁₁)
e6cf595a681e492d9ad9e9fa5fca3476--8ae205c78b634af1ba5e8809b7dd450b
05964090798247af95c6904b9cb9ddf1
RY(theta₁₄)
8ae205c78b634af1ba5e8809b7dd450b--05964090798247af95c6904b9cb9ddf1
863093ff24ea401b91720c7a528377c1
RX(theta₁₇)
05964090798247af95c6904b9cb9ddf1--863093ff24ea401b91720c7a528377c1
e9859f0fec6c4f3fb8ef04abd70a4362
863093ff24ea401b91720c7a528377c1--e9859f0fec6c4f3fb8ef04abd70a4362
e9859f0fec6c4f3fb8ef04abd70a4362--0d805eeae53540e090665b5daa44a202
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_9ab2d68ff1554978898fcba4200f988f
cluster_a7f62477e669425b97ea7be359b6fb49
b42e17e3643d4c29a2a80954acdd9512
0
41a9543075d046e7921215fec4e1b267
RX(theta₀)
b42e17e3643d4c29a2a80954acdd9512--41a9543075d046e7921215fec4e1b267
f2bc9c0bfc6f4880b8a984d55594259e
1
1d80a32470e34dff89b4a236d581a433
RY(theta₆)
41a9543075d046e7921215fec4e1b267--1d80a32470e34dff89b4a236d581a433
f0d0d050029a40c5b1199d95f2da1e6e
RX(theta₁₂)
1d80a32470e34dff89b4a236d581a433--f0d0d050029a40c5b1199d95f2da1e6e
ad4e4cddd8924ecc83f671b4e3c34f21
f0d0d050029a40c5b1199d95f2da1e6e--ad4e4cddd8924ecc83f671b4e3c34f21
104fb609b34a4d7b91be6cf77e186e58
RX(theta₁₈)
ad4e4cddd8924ecc83f671b4e3c34f21--104fb609b34a4d7b91be6cf77e186e58
f4e5fbda81324d16a6f392382ac1aacd
RY(theta₂₄)
104fb609b34a4d7b91be6cf77e186e58--f4e5fbda81324d16a6f392382ac1aacd
d1084d89d4c342fabbfaf74aded9b807
RX(theta₃₀)
f4e5fbda81324d16a6f392382ac1aacd--d1084d89d4c342fabbfaf74aded9b807
256c13334b2a49cb8968bb635acc644b
d1084d89d4c342fabbfaf74aded9b807--256c13334b2a49cb8968bb635acc644b
f078c4257975480cb73c1f41f95f9aa2
256c13334b2a49cb8968bb635acc644b--f078c4257975480cb73c1f41f95f9aa2
bfe2e0fee8b24881a9f97c81eea3ec2b
68966f600ecb48e09836ed4988b19cc6
RX(theta₁)
f2bc9c0bfc6f4880b8a984d55594259e--68966f600ecb48e09836ed4988b19cc6
dcb356cabedf424e861d99d4cfc5edec
2
f014d938d73b44f897b7a07274a6d336
RY(theta₇)
68966f600ecb48e09836ed4988b19cc6--f014d938d73b44f897b7a07274a6d336
4fa658deb0d14a89b8643a05b8cbc625
RX(theta₁₃)
f014d938d73b44f897b7a07274a6d336--4fa658deb0d14a89b8643a05b8cbc625
afc4aa63cb614a399532da46fdd7ec44
4fa658deb0d14a89b8643a05b8cbc625--afc4aa63cb614a399532da46fdd7ec44
b3e40a97181744ca8f8d3c8f6ca21624
RX(theta₁₉)
afc4aa63cb614a399532da46fdd7ec44--b3e40a97181744ca8f8d3c8f6ca21624
c75e1da9e7c140b8bcfe23b948c6b0d5
RY(theta₂₅)
b3e40a97181744ca8f8d3c8f6ca21624--c75e1da9e7c140b8bcfe23b948c6b0d5
2e12b6d51e5e4efeac7e61a6e5a504df
RX(theta₃₁)
c75e1da9e7c140b8bcfe23b948c6b0d5--2e12b6d51e5e4efeac7e61a6e5a504df
51aa61f7f40f4f1ca62a397a2533b91d
2e12b6d51e5e4efeac7e61a6e5a504df--51aa61f7f40f4f1ca62a397a2533b91d
51aa61f7f40f4f1ca62a397a2533b91d--bfe2e0fee8b24881a9f97c81eea3ec2b
a2d2944c18e24e8bb8dbac6e7ee3df0d
608ff2cd5a104d5aa6f1878871cdd2fe
RX(theta₂)
dcb356cabedf424e861d99d4cfc5edec--608ff2cd5a104d5aa6f1878871cdd2fe
0a2b17f2a574479691babc27a498a7da
3
1a089ba9d3024ff88cfbb0f4c49b1e0d
RY(theta₈)
608ff2cd5a104d5aa6f1878871cdd2fe--1a089ba9d3024ff88cfbb0f4c49b1e0d
b7d36a99f4194750876d45904e2e81d8
RX(theta₁₄)
1a089ba9d3024ff88cfbb0f4c49b1e0d--b7d36a99f4194750876d45904e2e81d8
b91afc66cf7b45a892192c2b366421b6
HamEvo
b7d36a99f4194750876d45904e2e81d8--b91afc66cf7b45a892192c2b366421b6
1d3ca6e9a48945a99952813ec8ff40e4
RX(theta₂₀)
b91afc66cf7b45a892192c2b366421b6--1d3ca6e9a48945a99952813ec8ff40e4
a42fd600d1fa44ffbe98946dfd0d9135
RY(theta₂₆)
1d3ca6e9a48945a99952813ec8ff40e4--a42fd600d1fa44ffbe98946dfd0d9135
b3a2990c4f7f46caa4cf56218486a3b4
RX(theta₃₂)
a42fd600d1fa44ffbe98946dfd0d9135--b3a2990c4f7f46caa4cf56218486a3b4
80f7d4eacd5b4a9097cae54513205ba0
HamEvo
b3a2990c4f7f46caa4cf56218486a3b4--80f7d4eacd5b4a9097cae54513205ba0
80f7d4eacd5b4a9097cae54513205ba0--a2d2944c18e24e8bb8dbac6e7ee3df0d
04d532c38595473283e8dd455bc1c083
0453759e2c16484e93edeae04db54612
RX(theta₃)
0a2b17f2a574479691babc27a498a7da--0453759e2c16484e93edeae04db54612
a698d37eb71246fb96a17968c198d7b3
4
301edb7612b44dbc893b4a40485fb31b
RY(theta₉)
0453759e2c16484e93edeae04db54612--301edb7612b44dbc893b4a40485fb31b
3a4239d8069d4023b24e948b0ab3e432
RX(theta₁₅)
301edb7612b44dbc893b4a40485fb31b--3a4239d8069d4023b24e948b0ab3e432
da580f001e2a4e5a8907ef92551f3651
t = theta_t₀
3a4239d8069d4023b24e948b0ab3e432--da580f001e2a4e5a8907ef92551f3651
77764db506794532bdaaf1a326f2b05e
RX(theta₂₁)
da580f001e2a4e5a8907ef92551f3651--77764db506794532bdaaf1a326f2b05e
dedf9a142eaf401cac756b47b5bb8759
RY(theta₂₇)
77764db506794532bdaaf1a326f2b05e--dedf9a142eaf401cac756b47b5bb8759
041f96a46ddf45a1839abb3f989f2444
RX(theta₃₃)
dedf9a142eaf401cac756b47b5bb8759--041f96a46ddf45a1839abb3f989f2444
c8052936438d484d9b414f50703e1ec4
t = theta_t₁
041f96a46ddf45a1839abb3f989f2444--c8052936438d484d9b414f50703e1ec4
c8052936438d484d9b414f50703e1ec4--04d532c38595473283e8dd455bc1c083
0f77c02bebdd44368ddb576a5e47cfbd
6694b53b1cdd4caea6420a03a66f6624
RX(theta₄)
a698d37eb71246fb96a17968c198d7b3--6694b53b1cdd4caea6420a03a66f6624
7128345a02e84703a0b3e924f564bffb
5
20f14693a3a8466d81f47dcccfb20b05
RY(theta₁₀)
6694b53b1cdd4caea6420a03a66f6624--20f14693a3a8466d81f47dcccfb20b05
e14e62cd31f44e3bbd5dbced2f370cb3
RX(theta₁₆)
20f14693a3a8466d81f47dcccfb20b05--e14e62cd31f44e3bbd5dbced2f370cb3
584b6c1ac7b14708bf9198fe2f87e4f5
e14e62cd31f44e3bbd5dbced2f370cb3--584b6c1ac7b14708bf9198fe2f87e4f5
ad925395e7c64620bc1ea63152609f55
RX(theta₂₂)
584b6c1ac7b14708bf9198fe2f87e4f5--ad925395e7c64620bc1ea63152609f55
50bb2e50fd8843ee9ed294f51e8758a4
RY(theta₂₈)
ad925395e7c64620bc1ea63152609f55--50bb2e50fd8843ee9ed294f51e8758a4
28deea3563eb4480a2278f38bab4c863
RX(theta₃₄)
50bb2e50fd8843ee9ed294f51e8758a4--28deea3563eb4480a2278f38bab4c863
87942503d9554e468b1e49f4ccde885a
28deea3563eb4480a2278f38bab4c863--87942503d9554e468b1e49f4ccde885a
87942503d9554e468b1e49f4ccde885a--0f77c02bebdd44368ddb576a5e47cfbd
353fd256dcbc4db5bfc3afcb580eeea9
055e73f1278b4910b1096b28511f2bf1
RX(theta₅)
7128345a02e84703a0b3e924f564bffb--055e73f1278b4910b1096b28511f2bf1
d6b93285c6b543398f91b8b45844480c
RY(theta₁₁)
055e73f1278b4910b1096b28511f2bf1--d6b93285c6b543398f91b8b45844480c
fb62211b2599451392ec9dbd922c2d0b
RX(theta₁₇)
d6b93285c6b543398f91b8b45844480c--fb62211b2599451392ec9dbd922c2d0b
cc40286a30574796b30015ab1945d1d5
fb62211b2599451392ec9dbd922c2d0b--cc40286a30574796b30015ab1945d1d5
523d519dc3e145d29e41a739000d9e10
RX(theta₂₃)
cc40286a30574796b30015ab1945d1d5--523d519dc3e145d29e41a739000d9e10
a112fa8c5e2d4483b9cfbac4f721a51c
RY(theta₂₉)
523d519dc3e145d29e41a739000d9e10--a112fa8c5e2d4483b9cfbac4f721a51c
1d794eb62c1f4661a687577f828b39be
RX(theta₃₅)
a112fa8c5e2d4483b9cfbac4f721a51c--1d794eb62c1f4661a687577f828b39be
71cde6d6c26345a0b9fcbc3f19409d51
1d794eb62c1f4661a687577f828b39be--71cde6d6c26345a0b9fcbc3f19409d51
71cde6d6c26345a0b9fcbc3f19409d51--353fd256dcbc4db5bfc3afcb580eeea9
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_00724589234d4c8d8cd6eb243ced8779
BPMA-1
cluster_5e0f4feb884f48e085247cf7ab1e3595
BPMA-0
02c80b238de8419abb6315d5d4741e2d
0
99ae27fb9f5f47dbbe4c297a52f83307
RX(iia_α₀₀)
02c80b238de8419abb6315d5d4741e2d--99ae27fb9f5f47dbbe4c297a52f83307
c19b15c0cae849199236ce0ca73dcec5
1
52da5d0321744d0abfe025eab94aa9f5
RY(iia_α₀₃)
99ae27fb9f5f47dbbe4c297a52f83307--52da5d0321744d0abfe025eab94aa9f5
e3d8f1a7a6294f58bbdcf996c3a18cc5
52da5d0321744d0abfe025eab94aa9f5--e3d8f1a7a6294f58bbdcf996c3a18cc5
d667b68dfe2f4964beda8610e01689d2
e3d8f1a7a6294f58bbdcf996c3a18cc5--d667b68dfe2f4964beda8610e01689d2
725c9a70b5e0425197a62fbd6d279d85
RX(iia_γ₀₀)
d667b68dfe2f4964beda8610e01689d2--725c9a70b5e0425197a62fbd6d279d85
e443c94be5ce4ceca18584ebaea088dd
725c9a70b5e0425197a62fbd6d279d85--e443c94be5ce4ceca18584ebaea088dd
0148269ff9ad464c9b947e74d37eecc2
e443c94be5ce4ceca18584ebaea088dd--0148269ff9ad464c9b947e74d37eecc2
f8f9c982ae1e49faa887c5c58205fd1f
RY(iia_β₀₃)
0148269ff9ad464c9b947e74d37eecc2--f8f9c982ae1e49faa887c5c58205fd1f
6a6b4ff81b2c49829c5df0fb4bffc2fb
RX(iia_β₀₀)
f8f9c982ae1e49faa887c5c58205fd1f--6a6b4ff81b2c49829c5df0fb4bffc2fb
6c56abf0aab5496ba88f7b860d1497e9
RX(iia_α₁₀)
6a6b4ff81b2c49829c5df0fb4bffc2fb--6c56abf0aab5496ba88f7b860d1497e9
55f3e5978dc548ee8c0aa679ca47b8c0
RY(iia_α₁₃)
6c56abf0aab5496ba88f7b860d1497e9--55f3e5978dc548ee8c0aa679ca47b8c0
9960df0fad814a198219487f30264846
55f3e5978dc548ee8c0aa679ca47b8c0--9960df0fad814a198219487f30264846
750d1a7654624ebe96be4c6aea63fdd2
9960df0fad814a198219487f30264846--750d1a7654624ebe96be4c6aea63fdd2
681e77aab3df441287c81ca72ac0e82f
RX(iia_γ₁₀)
750d1a7654624ebe96be4c6aea63fdd2--681e77aab3df441287c81ca72ac0e82f
6c73b161f8f844f3a7c056958aa45908
681e77aab3df441287c81ca72ac0e82f--6c73b161f8f844f3a7c056958aa45908
21cc749ac90544e19ccb7ff8d86bef2d
6c73b161f8f844f3a7c056958aa45908--21cc749ac90544e19ccb7ff8d86bef2d
b744b565daaa4ae2adabf3ee8e63781c
RY(iia_β₁₃)
21cc749ac90544e19ccb7ff8d86bef2d--b744b565daaa4ae2adabf3ee8e63781c
0ddc6f4978fc49668d4e4f7489197490
RX(iia_β₁₀)
b744b565daaa4ae2adabf3ee8e63781c--0ddc6f4978fc49668d4e4f7489197490
ee24ed97758e4f689965ad360567a047
0ddc6f4978fc49668d4e4f7489197490--ee24ed97758e4f689965ad360567a047
baad225ea75c4e7fb060de2b049ca784
c758f3c403444fe6b9f1585813fdb743
RX(iia_α₀₁)
c19b15c0cae849199236ce0ca73dcec5--c758f3c403444fe6b9f1585813fdb743
8ee3a80f55e547659e612f92fb3f3b0f
2
0d2f9cabeb4f4165928e3ff3718ee2c2
RY(iia_α₀₄)
c758f3c403444fe6b9f1585813fdb743--0d2f9cabeb4f4165928e3ff3718ee2c2
f8f32be696dc4ff6bd8f1c86264d4575
X
0d2f9cabeb4f4165928e3ff3718ee2c2--f8f32be696dc4ff6bd8f1c86264d4575
f8f32be696dc4ff6bd8f1c86264d4575--e3d8f1a7a6294f58bbdcf996c3a18cc5
8f1c0c2e764f4c0d9fb0c71555fefca1
f8f32be696dc4ff6bd8f1c86264d4575--8f1c0c2e764f4c0d9fb0c71555fefca1
6db41d90fa4b4725a32711a9282820c8
RX(iia_γ₀₁)
8f1c0c2e764f4c0d9fb0c71555fefca1--6db41d90fa4b4725a32711a9282820c8
d8ba82f7fb2545a5878e8d669caf2e81
6db41d90fa4b4725a32711a9282820c8--d8ba82f7fb2545a5878e8d669caf2e81
8ee617b12b0d49b4ac96101b2bbb4f57
X
d8ba82f7fb2545a5878e8d669caf2e81--8ee617b12b0d49b4ac96101b2bbb4f57
8ee617b12b0d49b4ac96101b2bbb4f57--0148269ff9ad464c9b947e74d37eecc2
fbb5cdcdaab542babb47a208cfdf2315
RY(iia_β₀₄)
8ee617b12b0d49b4ac96101b2bbb4f57--fbb5cdcdaab542babb47a208cfdf2315
133976236074470ab07f0c19d7918850
RX(iia_β₀₁)
fbb5cdcdaab542babb47a208cfdf2315--133976236074470ab07f0c19d7918850
f4e98da62abb4714a10980a5761f271b
RX(iia_α₁₁)
133976236074470ab07f0c19d7918850--f4e98da62abb4714a10980a5761f271b
c829c885ab3c44f4aeb20ff8926c5be3
RY(iia_α₁₄)
f4e98da62abb4714a10980a5761f271b--c829c885ab3c44f4aeb20ff8926c5be3
cbc20b3f5f954cf5a6e635f3db7c2c23
X
c829c885ab3c44f4aeb20ff8926c5be3--cbc20b3f5f954cf5a6e635f3db7c2c23
cbc20b3f5f954cf5a6e635f3db7c2c23--9960df0fad814a198219487f30264846
ff90cf10bbc1471997da857eef99ce65
cbc20b3f5f954cf5a6e635f3db7c2c23--ff90cf10bbc1471997da857eef99ce65
bdcd0b9d6d454a43ae1c62b6a55be971
RX(iia_γ₁₁)
ff90cf10bbc1471997da857eef99ce65--bdcd0b9d6d454a43ae1c62b6a55be971
68231e96ad1042298307dbff6e583ff8
bdcd0b9d6d454a43ae1c62b6a55be971--68231e96ad1042298307dbff6e583ff8
ecf44e02240448da98213d7ff0c49f3f
X
68231e96ad1042298307dbff6e583ff8--ecf44e02240448da98213d7ff0c49f3f
ecf44e02240448da98213d7ff0c49f3f--21cc749ac90544e19ccb7ff8d86bef2d
ca97aa36e08c4f46b85087060f4446cc
RY(iia_β₁₄)
ecf44e02240448da98213d7ff0c49f3f--ca97aa36e08c4f46b85087060f4446cc
66f625b30717417396bfb281295e1ae8
RX(iia_β₁₁)
ca97aa36e08c4f46b85087060f4446cc--66f625b30717417396bfb281295e1ae8
66f625b30717417396bfb281295e1ae8--baad225ea75c4e7fb060de2b049ca784
0b68b9aec9d74c1dbee743ebc0e7f5c4
23d71885e98d49efb4216d04f33a9e34
RX(iia_α₀₂)
8ee3a80f55e547659e612f92fb3f3b0f--23d71885e98d49efb4216d04f33a9e34
944d39c1374443698ff79f4910968828
RY(iia_α₀₅)
23d71885e98d49efb4216d04f33a9e34--944d39c1374443698ff79f4910968828
d38e55d15fea432fa6377f18bb56c912
944d39c1374443698ff79f4910968828--d38e55d15fea432fa6377f18bb56c912
69cc59579c9a4b2593118214a18fa5a1
X
d38e55d15fea432fa6377f18bb56c912--69cc59579c9a4b2593118214a18fa5a1
69cc59579c9a4b2593118214a18fa5a1--8f1c0c2e764f4c0d9fb0c71555fefca1
a33307c43251445a990d226a455f020b
RX(iia_γ₀₂)
69cc59579c9a4b2593118214a18fa5a1--a33307c43251445a990d226a455f020b
b89fbf7c2cf14d079fbff2710614adc3
X
a33307c43251445a990d226a455f020b--b89fbf7c2cf14d079fbff2710614adc3
b89fbf7c2cf14d079fbff2710614adc3--d8ba82f7fb2545a5878e8d669caf2e81
f963a1ae9cf940cab28e2d7fb0e5b733
b89fbf7c2cf14d079fbff2710614adc3--f963a1ae9cf940cab28e2d7fb0e5b733
f9989d2b034c4e02a762b29e0cc0ca77
RY(iia_β₀₅)
f963a1ae9cf940cab28e2d7fb0e5b733--f9989d2b034c4e02a762b29e0cc0ca77
bc3b2bdbd11640e4826df14ba780ae27
RX(iia_β₀₂)
f9989d2b034c4e02a762b29e0cc0ca77--bc3b2bdbd11640e4826df14ba780ae27
03c38e789ff44000a9513fc07c220ba7
RX(iia_α₁₂)
bc3b2bdbd11640e4826df14ba780ae27--03c38e789ff44000a9513fc07c220ba7
7ebef395dbcb483ebf43d6131d62fa7f
RY(iia_α₁₅)
03c38e789ff44000a9513fc07c220ba7--7ebef395dbcb483ebf43d6131d62fa7f
1ac0ee22ed9d401587e07130982df4fe
7ebef395dbcb483ebf43d6131d62fa7f--1ac0ee22ed9d401587e07130982df4fe
d090ff3d20d84092bbccd1a02a8c2bcf
X
1ac0ee22ed9d401587e07130982df4fe--d090ff3d20d84092bbccd1a02a8c2bcf
d090ff3d20d84092bbccd1a02a8c2bcf--ff90cf10bbc1471997da857eef99ce65
1087433a22974aa1b9deddfc84a23bf9
RX(iia_γ₁₂)
d090ff3d20d84092bbccd1a02a8c2bcf--1087433a22974aa1b9deddfc84a23bf9
f50eea4c76cf49bc866c1190e2313b08
X
1087433a22974aa1b9deddfc84a23bf9--f50eea4c76cf49bc866c1190e2313b08
f50eea4c76cf49bc866c1190e2313b08--68231e96ad1042298307dbff6e583ff8
1460c19fb8554aab8f07fb192b43ee5e
f50eea4c76cf49bc866c1190e2313b08--1460c19fb8554aab8f07fb192b43ee5e
60d872d53f24474088c56a1e2577fbff
RY(iia_β₁₅)
1460c19fb8554aab8f07fb192b43ee5e--60d872d53f24474088c56a1e2577fbff
4cc90e19e824473ebe5c9c5367b9104d
RX(iia_β₁₂)
60d872d53f24474088c56a1e2577fbff--4cc90e19e824473ebe5c9c5367b9104d
4cc90e19e824473ebe5c9c5367b9104d--0b68b9aec9d74c1dbee743ebc0e7f5c4