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_7d519e247860467d88eba1ec5b81ab46
Constant Chebyshev FM
cluster_d08197765e604db8b27ec90db2be68a5
Constant Fourier FM
e847a459290f48de98b0b1f0d16b0f02
0
ae5a5dc9d3ce4ea298ce85306f322d1a
RX(phi)
e847a459290f48de98b0b1f0d16b0f02--ae5a5dc9d3ce4ea298ce85306f322d1a
4194332f95064ad6915c82c903cd6f7f
1
3719fc15901844cfb4cf904bf229e36a
RX(acos(phi))
ae5a5dc9d3ce4ea298ce85306f322d1a--3719fc15901844cfb4cf904bf229e36a
f262a22a873449fe82cf59c90e04f056
3719fc15901844cfb4cf904bf229e36a--f262a22a873449fe82cf59c90e04f056
6171347d5378464a816ef2745c3713d5
771132034b58459ea86565100bd38b5b
RX(phi)
4194332f95064ad6915c82c903cd6f7f--771132034b58459ea86565100bd38b5b
2264249bb5664656b55e1d181872f567
2
6a5b84d6541f467aac0adc772b22bbb1
RX(acos(phi))
771132034b58459ea86565100bd38b5b--6a5b84d6541f467aac0adc772b22bbb1
6a5b84d6541f467aac0adc772b22bbb1--6171347d5378464a816ef2745c3713d5
9e38dd7bd4234f3c9af48fbfe6b101b6
62daf4d8dbb24ac98636b78892b1cbe4
RX(phi)
2264249bb5664656b55e1d181872f567--62daf4d8dbb24ac98636b78892b1cbe4
eb52ae166c3947d99a44a43c6d39ac72
RX(acos(phi))
62daf4d8dbb24ac98636b78892b1cbe4--eb52ae166c3947d99a44a43c6d39ac72
eb52ae166c3947d99a44a43c6d39ac72--9e38dd7bd4234f3c9af48fbfe6b101b6
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_46c34881347e4b9eb5b2cb190da55617
Constant <function custom_fn at 0x7f62f318fbe0> FM
cluster_601e8a708cb74900abd523e980149e63
Constant asin FM
0d4a687523204c31a0fdb38f78d1e28b
0
e2930aa95cb5446a8f00a1fea7928201
RX(asin(phi))
0d4a687523204c31a0fdb38f78d1e28b--e2930aa95cb5446a8f00a1fea7928201
b05a6e523fe34c6cb4903c9a3ff13ac8
1
8acc24c9528d41c2a0efcf6769995a16
RX(phi**2 + asin(phi))
e2930aa95cb5446a8f00a1fea7928201--8acc24c9528d41c2a0efcf6769995a16
7be49fa780f149738430e020498702a8
8acc24c9528d41c2a0efcf6769995a16--7be49fa780f149738430e020498702a8
f196d6d669204775b0495a4dd45b93fe
3a2802413f1846038ee3014147ac557f
RX(asin(phi))
b05a6e523fe34c6cb4903c9a3ff13ac8--3a2802413f1846038ee3014147ac557f
e71e19ccf42940c6a5e2f5a1c5b6da92
2
b4da843a828d43f9a47b46038d0ccd20
RX(phi**2 + asin(phi))
3a2802413f1846038ee3014147ac557f--b4da843a828d43f9a47b46038d0ccd20
b4da843a828d43f9a47b46038d0ccd20--f196d6d669204775b0495a4dd45b93fe
3a96ef571c7d441eb176e3be7226f325
6579f13ccc1748999997ff9a9d9e0e82
RX(asin(phi))
e71e19ccf42940c6a5e2f5a1c5b6da92--6579f13ccc1748999997ff9a9d9e0e82
cb46804b1b734c6eb8ce6026993f2cd1
RX(phi**2 + asin(phi))
6579f13ccc1748999997ff9a9d9e0e82--cb46804b1b734c6eb8ce6026993f2cd1
cb46804b1b734c6eb8ce6026993f2cd1--3a96ef571c7d441eb176e3be7226f325
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_259d0cf337804ed088c84934b7db6a5b
Exponential Fourier FM
cluster_195b38e94fb64aa09ac82c22a14dda5c
Constant Fourier FM
cluster_b2e582575b4b46f8911da87f81971f9f
Tower Fourier FM
773ba4bdfc1340829ee1ca09ba40a10e
0
ec6b9aea58da4d3eafe59a775dd30ab7
RX(phi)
773ba4bdfc1340829ee1ca09ba40a10e--ec6b9aea58da4d3eafe59a775dd30ab7
cd3276c543f5446d91979e1d231eb3ac
1
c8a9782266a04ed5871f457f32ba90b5
RX(1.0*phi)
ec6b9aea58da4d3eafe59a775dd30ab7--c8a9782266a04ed5871f457f32ba90b5
94a0029bb08045e2b262ac33b7a638eb
RX(1.0*phi)
c8a9782266a04ed5871f457f32ba90b5--94a0029bb08045e2b262ac33b7a638eb
b619d6796bd44ce385b4ba1ea250d560
94a0029bb08045e2b262ac33b7a638eb--b619d6796bd44ce385b4ba1ea250d560
140160df7f1f4dc1a2af6843c5e03038
019fba474857478caba82c94a4e80e7c
RX(phi)
cd3276c543f5446d91979e1d231eb3ac--019fba474857478caba82c94a4e80e7c
7a752f81c12f4e5c93f23916f785d50e
2
734710b71f27461dabbd46eb0a4d6c86
RX(2.0*phi)
019fba474857478caba82c94a4e80e7c--734710b71f27461dabbd46eb0a4d6c86
a514406eb8764ef6a4a0765d4f27d046
RX(2.0*phi)
734710b71f27461dabbd46eb0a4d6c86--a514406eb8764ef6a4a0765d4f27d046
a514406eb8764ef6a4a0765d4f27d046--140160df7f1f4dc1a2af6843c5e03038
11b62e182323475b9dd4fe3fa5b44bf6
30adda81e3d84f6aa60abf815ebc8a66
RX(phi)
7a752f81c12f4e5c93f23916f785d50e--30adda81e3d84f6aa60abf815ebc8a66
7989685b2fa342ee98a4b9922cf2425a
3
d97858572c66431c86341dff5edcb3f1
RX(3.0*phi)
30adda81e3d84f6aa60abf815ebc8a66--d97858572c66431c86341dff5edcb3f1
ed65b71cf4ff475bbb2fee4b9aedfff3
RX(4.0*phi)
d97858572c66431c86341dff5edcb3f1--ed65b71cf4ff475bbb2fee4b9aedfff3
ed65b71cf4ff475bbb2fee4b9aedfff3--11b62e182323475b9dd4fe3fa5b44bf6
63cf300f7d404ff6ad5d9005fdfc77a0
6a0d2dff380f41cebc3b989ea7a69aee
RX(phi)
7989685b2fa342ee98a4b9922cf2425a--6a0d2dff380f41cebc3b989ea7a69aee
5b033e5712ae4eab94f37266dc56b39f
4
177664c66b34453da8df6a40114e4b96
RX(4.0*phi)
6a0d2dff380f41cebc3b989ea7a69aee--177664c66b34453da8df6a40114e4b96
f4b1c8c38e9b4ce1a22651f524b0f2a0
RX(8.0*phi)
177664c66b34453da8df6a40114e4b96--f4b1c8c38e9b4ce1a22651f524b0f2a0
f4b1c8c38e9b4ce1a22651f524b0f2a0--63cf300f7d404ff6ad5d9005fdfc77a0
34e07846867f426999137462d873c5ca
cac752ba7a5c40aead172b7e77699ecd
RX(phi)
5b033e5712ae4eab94f37266dc56b39f--cac752ba7a5c40aead172b7e77699ecd
760964fb02784965961800b0e3d7385b
RX(5.0*phi)
cac752ba7a5c40aead172b7e77699ecd--760964fb02784965961800b0e3d7385b
73623f12b3b04aae85650d1ed2f93f62
RX(16.0*phi)
760964fb02784965961800b0e3d7385b--73623f12b3b04aae85650d1ed2f93f62
73623f12b3b04aae85650d1ed2f93f62--34e07846867f426999137462d873c5ca
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
241601cc229643049ac595b2d12ded0b
0
a4dc449af1714c8e8581c91c2bcbb24c
RX(1.0*acos(phi))
241601cc229643049ac595b2d12ded0b--a4dc449af1714c8e8581c91c2bcbb24c
19d110f2ef8249708edae481b3959cdb
1
13c49039255245b1b6cc79a8553de000
a4dc449af1714c8e8581c91c2bcbb24c--13c49039255245b1b6cc79a8553de000
35270b95809343b3b1d6609ba42e0bdb
1bcfb8d401924570ae01b698601d1ef5
RX(1.414*acos(phi))
19d110f2ef8249708edae481b3959cdb--1bcfb8d401924570ae01b698601d1ef5
f6581f1d20454f5abfe8f5bcb37274b1
2
1bcfb8d401924570ae01b698601d1ef5--35270b95809343b3b1d6609ba42e0bdb
a37eff0c79f144e0b39b153da7e24b86
82436b28173d43a99550c5dc059035f1
RX(1.732*acos(phi))
f6581f1d20454f5abfe8f5bcb37274b1--82436b28173d43a99550c5dc059035f1
5fdb26472ead44119913d981cbacf651
3
82436b28173d43a99550c5dc059035f1--a37eff0c79f144e0b39b153da7e24b86
225d4a72bf8c4d25b5e93aa63564d845
517fb437e090434facc770b968c3c67e
RX(2.0*acos(phi))
5fdb26472ead44119913d981cbacf651--517fb437e090434facc770b968c3c67e
856df353b5f84effbd7f98c0f9b3ce66
4
517fb437e090434facc770b968c3c67e--225d4a72bf8c4d25b5e93aa63564d845
c87213d845fc40d4b8828f4549811af1
e02a25fae33242339620ca277b4c8b54
RX(2.236*acos(phi))
856df353b5f84effbd7f98c0f9b3ce66--e02a25fae33242339620ca277b4c8b54
e02a25fae33242339620ca277b4c8b54--c87213d845fc40d4b8828f4549811af1
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
c71bfb9e5fb14b31b6e7159674b70a05
0
2eabccafa86c441381093b15c1c82c2e
RX(1.0*phi*w₀)
c71bfb9e5fb14b31b6e7159674b70a05--2eabccafa86c441381093b15c1c82c2e
35a33eb8e45d449fba76f0f11650d560
1
878cef88ea614284a8ecdf8a9646dbbd
2eabccafa86c441381093b15c1c82c2e--878cef88ea614284a8ecdf8a9646dbbd
6f96fe2dc7cc420f80db972cbec3b988
ddaac3cadb1e4abaa0bc0df10d1a6746
RX(2.0*phi*w₁)
35a33eb8e45d449fba76f0f11650d560--ddaac3cadb1e4abaa0bc0df10d1a6746
74cbdb369c0b459aa565efeb1b67b948
2
ddaac3cadb1e4abaa0bc0df10d1a6746--6f96fe2dc7cc420f80db972cbec3b988
4629e2f9fb94451cb22639bd030a4335
0cb4da736cd14d93b0a7c339a5419050
RX(4.0*phi*w₂)
74cbdb369c0b459aa565efeb1b67b948--0cb4da736cd14d93b0a7c339a5419050
5e6d805ee01c4e26b592ded32cc607d0
3
0cb4da736cd14d93b0a7c339a5419050--4629e2f9fb94451cb22639bd030a4335
20a3fe22800645bb9e94491db8a569cc
19c3b16f297b4881b3c2162216313640
RX(8.0*phi*w₃)
5e6d805ee01c4e26b592ded32cc607d0--19c3b16f297b4881b3c2162216313640
dcb9f0acede944b698ee9e44a2cc9e1b
4
19c3b16f297b4881b3c2162216313640--20a3fe22800645bb9e94491db8a569cc
169b773680a24b2c8ab4831a7f62feb5
ff87bfcafd7249aab15d5dae07131bff
RX(16.0*phi*w₄)
dcb9f0acede944b698ee9e44a2cc9e1b--ff87bfcafd7249aab15d5dae07131bff
ff87bfcafd7249aab15d5dae07131bff--169b773680a24b2c8ab4831a7f62feb5
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
6792e7c18bfb4bc0af5bd2f71b85ee03
0
6c78bf5ee2a749f59e5f538209f79813
RY(80.0*acos(w₄*(0.667*x + 1.667)))
6792e7c18bfb4bc0af5bd2f71b85ee03--6c78bf5ee2a749f59e5f538209f79813
e4fde1667f2e4e87919c14061cb9e94b
1
f3321e51e494461da17463f16f88d9e3
6c78bf5ee2a749f59e5f538209f79813--f3321e51e494461da17463f16f88d9e3
f6eded8ded004575a1d19c1d6ca8922e
c1d6f5abdc144357903e809c6cc1c81f
RY(40.0*acos(w₃*(0.667*x + 1.667)))
e4fde1667f2e4e87919c14061cb9e94b--c1d6f5abdc144357903e809c6cc1c81f
c656f97aef834689bdbad30730b61411
2
c1d6f5abdc144357903e809c6cc1c81f--f6eded8ded004575a1d19c1d6ca8922e
99d9fbba7be743faa150b7f3b27eae4d
575e7688e5c148aea9ac81bbf588613e
RY(20.0*acos(w₂*(0.667*x + 1.667)))
c656f97aef834689bdbad30730b61411--575e7688e5c148aea9ac81bbf588613e
a77fb7aaebf0468eb04158269dff4243
3
575e7688e5c148aea9ac81bbf588613e--99d9fbba7be743faa150b7f3b27eae4d
fdb40c7b9c0c470ba10702a7d7710d8b
a0e15327c14b4dc1acbefbbc377b8a2d
RY(10.0*acos(w₁*(0.667*x + 1.667)))
a77fb7aaebf0468eb04158269dff4243--a0e15327c14b4dc1acbefbbc377b8a2d
715443f025dc4388a3e52b8e95ba9785
4
a0e15327c14b4dc1acbefbbc377b8a2d--fdb40c7b9c0c470ba10702a7d7710d8b
57726cab1ce34c34ba5440e218c6b4fb
997f7648bba8420687a797e5d65bc23f
RY(5.0*acos(w₀*(0.667*x + 1.667)))
715443f025dc4388a3e52b8e95ba9785--997f7648bba8420687a797e5d65bc23f
997f7648bba8420687a797e5d65bc23f--57726cab1ce34c34ba5440e218c6b4fb
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
9245744041ff48bea005963810dd8b4a
0
dff405eb1c874f9e9570c0bc3304cf04
RX(theta₀)
9245744041ff48bea005963810dd8b4a--dff405eb1c874f9e9570c0bc3304cf04
75e2163191ef40049aeede85c0a3b4fe
1
66cd1941610d4f0c9d35d0e162a07d1f
RY(theta₃)
dff405eb1c874f9e9570c0bc3304cf04--66cd1941610d4f0c9d35d0e162a07d1f
21bd772a6c7f4e84981eb5c704c43c69
RX(theta₆)
66cd1941610d4f0c9d35d0e162a07d1f--21bd772a6c7f4e84981eb5c704c43c69
c4eabed5655d42e783dad2252da22c24
21bd772a6c7f4e84981eb5c704c43c69--c4eabed5655d42e783dad2252da22c24
2baab582e53e47b6b67d5b8a143bba06
c4eabed5655d42e783dad2252da22c24--2baab582e53e47b6b67d5b8a143bba06
860fb9a5e24844638df67dc41751e560
RX(theta₉)
2baab582e53e47b6b67d5b8a143bba06--860fb9a5e24844638df67dc41751e560
418445d2edb745c2ad84e32268669034
RY(theta₁₂)
860fb9a5e24844638df67dc41751e560--418445d2edb745c2ad84e32268669034
5ded3271a6d442729bcafbc40fee9b3e
RX(theta₁₅)
418445d2edb745c2ad84e32268669034--5ded3271a6d442729bcafbc40fee9b3e
3ad7475dcc994454909570a7b62550ce
5ded3271a6d442729bcafbc40fee9b3e--3ad7475dcc994454909570a7b62550ce
240d08d75f7a4299a05b8a94f1571943
3ad7475dcc994454909570a7b62550ce--240d08d75f7a4299a05b8a94f1571943
72ae0bed80c44ee4a0d39a5a8a7d1067
240d08d75f7a4299a05b8a94f1571943--72ae0bed80c44ee4a0d39a5a8a7d1067
3c0aafeb492543b0ac4937795163c2cd
049f6975c73e46b78e0eb73d74e770c8
RX(theta₁)
75e2163191ef40049aeede85c0a3b4fe--049f6975c73e46b78e0eb73d74e770c8
f110ed0c708745be805fa53be2d436a9
2
e8ea4f33004048ae9a8b59e6d24c858c
RY(theta₄)
049f6975c73e46b78e0eb73d74e770c8--e8ea4f33004048ae9a8b59e6d24c858c
08891d8f4828485284b44a355f29e4f4
RX(theta₇)
e8ea4f33004048ae9a8b59e6d24c858c--08891d8f4828485284b44a355f29e4f4
35c801680a0143e98fabd653375f1103
X
08891d8f4828485284b44a355f29e4f4--35c801680a0143e98fabd653375f1103
35c801680a0143e98fabd653375f1103--c4eabed5655d42e783dad2252da22c24
bd449a282ea7449c90530fe4bf21fe58
35c801680a0143e98fabd653375f1103--bd449a282ea7449c90530fe4bf21fe58
86a3accd34a4491197f09b87ff1cbac5
RX(theta₁₀)
bd449a282ea7449c90530fe4bf21fe58--86a3accd34a4491197f09b87ff1cbac5
f6b01cc13e0a4c42b6cad1d1d3b02ce2
RY(theta₁₃)
86a3accd34a4491197f09b87ff1cbac5--f6b01cc13e0a4c42b6cad1d1d3b02ce2
e965f745ebd64d60816c640597fd4abd
RX(theta₁₆)
f6b01cc13e0a4c42b6cad1d1d3b02ce2--e965f745ebd64d60816c640597fd4abd
aa10feab7a74413fa0b65b19684dfd4f
X
e965f745ebd64d60816c640597fd4abd--aa10feab7a74413fa0b65b19684dfd4f
aa10feab7a74413fa0b65b19684dfd4f--3ad7475dcc994454909570a7b62550ce
9b7de9f9829e4131831ef0ec56b81aeb
aa10feab7a74413fa0b65b19684dfd4f--9b7de9f9829e4131831ef0ec56b81aeb
9b7de9f9829e4131831ef0ec56b81aeb--3c0aafeb492543b0ac4937795163c2cd
88c873c957a2407892ac3033ee7271a8
f8a448a3af574f219a89a02c460bee1f
RX(theta₂)
f110ed0c708745be805fa53be2d436a9--f8a448a3af574f219a89a02c460bee1f
79a91c7a50ec4c64bd91a74da3b12498
RY(theta₅)
f8a448a3af574f219a89a02c460bee1f--79a91c7a50ec4c64bd91a74da3b12498
236ff37bc0454edbbcc0454c639f0eae
RX(theta₈)
79a91c7a50ec4c64bd91a74da3b12498--236ff37bc0454edbbcc0454c639f0eae
beaaf4b7937549e9bd6f2a80f1775d8d
236ff37bc0454edbbcc0454c639f0eae--beaaf4b7937549e9bd6f2a80f1775d8d
8df328d5e5ad4bf69c2167897ff7c54b
X
beaaf4b7937549e9bd6f2a80f1775d8d--8df328d5e5ad4bf69c2167897ff7c54b
8df328d5e5ad4bf69c2167897ff7c54b--bd449a282ea7449c90530fe4bf21fe58
d7d01b0ebce74984b15ebffe525aa2a4
RX(theta₁₁)
8df328d5e5ad4bf69c2167897ff7c54b--d7d01b0ebce74984b15ebffe525aa2a4
5393f6e25ed94dc2a9960ec010432c7f
RY(theta₁₄)
d7d01b0ebce74984b15ebffe525aa2a4--5393f6e25ed94dc2a9960ec010432c7f
142fdfa0134a4a509f604b8da8eb9e3e
RX(theta₁₇)
5393f6e25ed94dc2a9960ec010432c7f--142fdfa0134a4a509f604b8da8eb9e3e
3b149e334290424990ce34232325a41c
142fdfa0134a4a509f604b8da8eb9e3e--3b149e334290424990ce34232325a41c
c42b69e68a8941f5b7d8382e44fa4817
X
3b149e334290424990ce34232325a41c--c42b69e68a8941f5b7d8382e44fa4817
c42b69e68a8941f5b7d8382e44fa4817--9b7de9f9829e4131831ef0ec56b81aeb
c42b69e68a8941f5b7d8382e44fa4817--88c873c957a2407892ac3033ee7271a8
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
32d4bd181c5f422780bad3a082650d7e
0
1fb456a1e178454d927a21f1adfb0c8b
RX(phi₀)
32d4bd181c5f422780bad3a082650d7e--1fb456a1e178454d927a21f1adfb0c8b
557b93587ebb4153bfdb00395ef30a40
1
15ba6ccd0ea2482882a8bc86f2853020
RY(phi₃)
1fb456a1e178454d927a21f1adfb0c8b--15ba6ccd0ea2482882a8bc86f2853020
e1281f7f503f4cf6a79696493e660a2d
RX(phi₆)
15ba6ccd0ea2482882a8bc86f2853020--e1281f7f503f4cf6a79696493e660a2d
ef5f4b528b464e659332c53d5d52bf1a
e1281f7f503f4cf6a79696493e660a2d--ef5f4b528b464e659332c53d5d52bf1a
7efd0d7812aa4eb8a830ec8e04b798a3
ef5f4b528b464e659332c53d5d52bf1a--7efd0d7812aa4eb8a830ec8e04b798a3
9b4f59b56cb145218f829f07230b2c78
RX(phi₉)
7efd0d7812aa4eb8a830ec8e04b798a3--9b4f59b56cb145218f829f07230b2c78
cdf4cc6c81904ddc95bfc8d8390e4aa1
RY(phi₁₂)
9b4f59b56cb145218f829f07230b2c78--cdf4cc6c81904ddc95bfc8d8390e4aa1
45951289263e40948a5fabe71d6c5263
RX(phi₁₅)
cdf4cc6c81904ddc95bfc8d8390e4aa1--45951289263e40948a5fabe71d6c5263
b2420e83b9b545e78482f1eb53d9ba29
45951289263e40948a5fabe71d6c5263--b2420e83b9b545e78482f1eb53d9ba29
f1bc635f8f724f01a9bc3247c322754c
b2420e83b9b545e78482f1eb53d9ba29--f1bc635f8f724f01a9bc3247c322754c
fb5b731f79354a9780f8beb9cad0230f
f1bc635f8f724f01a9bc3247c322754c--fb5b731f79354a9780f8beb9cad0230f
8ccf320b286c448e9ede01c524797519
0fd0d14703d94e8c949f3713c1d9c3f9
RX(phi₁)
557b93587ebb4153bfdb00395ef30a40--0fd0d14703d94e8c949f3713c1d9c3f9
d0d86f0fd73c40a9830c707cdb186044
2
b0b2c1db598443939780af192fcc284e
RY(phi₄)
0fd0d14703d94e8c949f3713c1d9c3f9--b0b2c1db598443939780af192fcc284e
5a0536fe50f54939ac46292803c6ce87
RX(phi₇)
b0b2c1db598443939780af192fcc284e--5a0536fe50f54939ac46292803c6ce87
f989569101df4b709b8c135b32b3afae
PHASE(phi_ent₀)
5a0536fe50f54939ac46292803c6ce87--f989569101df4b709b8c135b32b3afae
f989569101df4b709b8c135b32b3afae--ef5f4b528b464e659332c53d5d52bf1a
c716df32f907459ba615ec2b066426a7
f989569101df4b709b8c135b32b3afae--c716df32f907459ba615ec2b066426a7
29e56bcd86ea4dbf900ee54bd52bc802
RX(phi₁₀)
c716df32f907459ba615ec2b066426a7--29e56bcd86ea4dbf900ee54bd52bc802
637cecd617ed472dbc71668962590f3c
RY(phi₁₃)
29e56bcd86ea4dbf900ee54bd52bc802--637cecd617ed472dbc71668962590f3c
9dbc196a606b426681c46f547af2fd3a
RX(phi₁₆)
637cecd617ed472dbc71668962590f3c--9dbc196a606b426681c46f547af2fd3a
7a1d58b00ff04813af96da61f81ce804
PHASE(phi_ent₂)
9dbc196a606b426681c46f547af2fd3a--7a1d58b00ff04813af96da61f81ce804
7a1d58b00ff04813af96da61f81ce804--b2420e83b9b545e78482f1eb53d9ba29
631ea3a2ca984ed4a2d6ac538a044f93
7a1d58b00ff04813af96da61f81ce804--631ea3a2ca984ed4a2d6ac538a044f93
631ea3a2ca984ed4a2d6ac538a044f93--8ccf320b286c448e9ede01c524797519
07e3d551d9fa4b898710d379f4ba009a
189a68626be94d64a029eb1d9cfd9e14
RX(phi₂)
d0d86f0fd73c40a9830c707cdb186044--189a68626be94d64a029eb1d9cfd9e14
ceb83055ba9f41039446fc141590ec64
RY(phi₅)
189a68626be94d64a029eb1d9cfd9e14--ceb83055ba9f41039446fc141590ec64
ebb46ad3c9de459ca2e484d818244a87
RX(phi₈)
ceb83055ba9f41039446fc141590ec64--ebb46ad3c9de459ca2e484d818244a87
8109fe7fe07242e48c5da9b116b1258c
ebb46ad3c9de459ca2e484d818244a87--8109fe7fe07242e48c5da9b116b1258c
4bb043449b3940f2aabbd8f668a3e3c8
PHASE(phi_ent₁)
8109fe7fe07242e48c5da9b116b1258c--4bb043449b3940f2aabbd8f668a3e3c8
4bb043449b3940f2aabbd8f668a3e3c8--c716df32f907459ba615ec2b066426a7
1639550ec5e144c4b875fc0983756059
RX(phi₁₁)
4bb043449b3940f2aabbd8f668a3e3c8--1639550ec5e144c4b875fc0983756059
6fd6fc1c00674e2ba8e2fc73526a87bd
RY(phi₁₄)
1639550ec5e144c4b875fc0983756059--6fd6fc1c00674e2ba8e2fc73526a87bd
dbf7317b167a4e779a8ba382074796ec
RX(phi₁₇)
6fd6fc1c00674e2ba8e2fc73526a87bd--dbf7317b167a4e779a8ba382074796ec
b4587903901c406d80f970ded9d96daa
dbf7317b167a4e779a8ba382074796ec--b4587903901c406d80f970ded9d96daa
1b219d1d9ac3465eb5b7c629f352ed29
PHASE(phi_ent₃)
b4587903901c406d80f970ded9d96daa--1b219d1d9ac3465eb5b7c629f352ed29
1b219d1d9ac3465eb5b7c629f352ed29--631ea3a2ca984ed4a2d6ac538a044f93
1b219d1d9ac3465eb5b7c629f352ed29--07e3d551d9fa4b898710d379f4ba009a
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_5849f8c2f3c44db4b741e4868c75fc32
cluster_3a6ddfccd8394207ae5e8e4affd6dd73
50b9afc9553446458621fdb6caa75a9a
0
ec5a499bbb744b7fbd0727c0d2ef7a1b
RX(theta₀)
50b9afc9553446458621fdb6caa75a9a--ec5a499bbb744b7fbd0727c0d2ef7a1b
86e04f7663ea439d8003b2fa22c27bb5
1
125b837833c84dfb88140f707c997c74
RY(theta₃)
ec5a499bbb744b7fbd0727c0d2ef7a1b--125b837833c84dfb88140f707c997c74
2474d55679f94c9780e7bbc481d9e8d4
RX(theta₆)
125b837833c84dfb88140f707c997c74--2474d55679f94c9780e7bbc481d9e8d4
cf48c9fa0e3d4bf1ac239ad82d912777
HamEvo
2474d55679f94c9780e7bbc481d9e8d4--cf48c9fa0e3d4bf1ac239ad82d912777
21730ba726944f0caabac14ae5671f94
RX(theta₉)
cf48c9fa0e3d4bf1ac239ad82d912777--21730ba726944f0caabac14ae5671f94
1e3ae29ca3ff4f5f9054d369b1aeeb63
RY(theta₁₂)
21730ba726944f0caabac14ae5671f94--1e3ae29ca3ff4f5f9054d369b1aeeb63
efd5f2dd9835458d95579e386d55d4dc
RX(theta₁₅)
1e3ae29ca3ff4f5f9054d369b1aeeb63--efd5f2dd9835458d95579e386d55d4dc
9ac56d8db5fb4514ae3131abafbe61e0
HamEvo
efd5f2dd9835458d95579e386d55d4dc--9ac56d8db5fb4514ae3131abafbe61e0
14f96742653d4278b709e00e24427c67
9ac56d8db5fb4514ae3131abafbe61e0--14f96742653d4278b709e00e24427c67
2291deb7879a4921abec65bc9412fba1
0bd38e5b46744652bb9f3898d77ca5e8
RX(theta₁)
86e04f7663ea439d8003b2fa22c27bb5--0bd38e5b46744652bb9f3898d77ca5e8
001a94358f364bb8a6469edb35d2f0c1
2
f4684743da2c46bdadd77eb639b5a20a
RY(theta₄)
0bd38e5b46744652bb9f3898d77ca5e8--f4684743da2c46bdadd77eb639b5a20a
5a306bc39b9d4ee79070978d229bf92b
RX(theta₇)
f4684743da2c46bdadd77eb639b5a20a--5a306bc39b9d4ee79070978d229bf92b
a6933f0a13874088a66789711cfb9974
t = theta_t₀
5a306bc39b9d4ee79070978d229bf92b--a6933f0a13874088a66789711cfb9974
9398f1f97f254fc6a50d0a6740808e85
RX(theta₁₀)
a6933f0a13874088a66789711cfb9974--9398f1f97f254fc6a50d0a6740808e85
368e1c58eef44c9589a3b64123326922
RY(theta₁₃)
9398f1f97f254fc6a50d0a6740808e85--368e1c58eef44c9589a3b64123326922
5d76719da8364f2d9686fdaae0684024
RX(theta₁₆)
368e1c58eef44c9589a3b64123326922--5d76719da8364f2d9686fdaae0684024
c279e517c4a04c3391a22a75e8c33ef5
t = theta_t₁
5d76719da8364f2d9686fdaae0684024--c279e517c4a04c3391a22a75e8c33ef5
c279e517c4a04c3391a22a75e8c33ef5--2291deb7879a4921abec65bc9412fba1
be037051d82144ccaebcd600598f7cc0
12ce45e9d7d7452c8ade36e20c787608
RX(theta₂)
001a94358f364bb8a6469edb35d2f0c1--12ce45e9d7d7452c8ade36e20c787608
d06553a794fa4af89ae5afd4fcb9286f
RY(theta₅)
12ce45e9d7d7452c8ade36e20c787608--d06553a794fa4af89ae5afd4fcb9286f
916d68d8d96d472c9eb3549260cea0f1
RX(theta₈)
d06553a794fa4af89ae5afd4fcb9286f--916d68d8d96d472c9eb3549260cea0f1
d82d8f475cc84cb18c0ac65ad00c87b7
916d68d8d96d472c9eb3549260cea0f1--d82d8f475cc84cb18c0ac65ad00c87b7
2881ea50c9c7432ca32ca75d9dea256f
RX(theta₁₁)
d82d8f475cc84cb18c0ac65ad00c87b7--2881ea50c9c7432ca32ca75d9dea256f
12faceb3b65348af9c57888fff76531c
RY(theta₁₄)
2881ea50c9c7432ca32ca75d9dea256f--12faceb3b65348af9c57888fff76531c
c4d59f3348074615b20ffc1cc54a7ac5
RX(theta₁₇)
12faceb3b65348af9c57888fff76531c--c4d59f3348074615b20ffc1cc54a7ac5
4a73aa3a715d487dbe6bcf01ce8f7ea4
c4d59f3348074615b20ffc1cc54a7ac5--4a73aa3a715d487dbe6bcf01ce8f7ea4
4a73aa3a715d487dbe6bcf01ce8f7ea4--be037051d82144ccaebcd600598f7cc0
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_046d9a940733439a980de4d1b0ea0a62
cluster_2861d3cfc1284a898ba7d6af24a68789
67e55efb753f4d8f86103f0f2ddc8d0a
0
49b918a3917b43848fa67ab4ccd522d4
RX(theta₀)
67e55efb753f4d8f86103f0f2ddc8d0a--49b918a3917b43848fa67ab4ccd522d4
c76fef5150b4431aa2cc53537e053020
1
0471653e06e740da89fdd5a5ae4ac921
RY(theta₆)
49b918a3917b43848fa67ab4ccd522d4--0471653e06e740da89fdd5a5ae4ac921
0a2b94b8ce8b4d358ac60852cd4bd62b
RX(theta₁₂)
0471653e06e740da89fdd5a5ae4ac921--0a2b94b8ce8b4d358ac60852cd4bd62b
b4a64a869bbe488895a41db26e6584b9
0a2b94b8ce8b4d358ac60852cd4bd62b--b4a64a869bbe488895a41db26e6584b9
fd1e65daa3fc46aa893e657a89547097
RX(theta₁₈)
b4a64a869bbe488895a41db26e6584b9--fd1e65daa3fc46aa893e657a89547097
2bfa13edff1b4bde8eaadae3f378dcbd
RY(theta₂₄)
fd1e65daa3fc46aa893e657a89547097--2bfa13edff1b4bde8eaadae3f378dcbd
64ea16c7ec7f4509b4452c2e1e920faf
RX(theta₃₀)
2bfa13edff1b4bde8eaadae3f378dcbd--64ea16c7ec7f4509b4452c2e1e920faf
45ce8e98fb304e5284e30be74a8d4e5c
64ea16c7ec7f4509b4452c2e1e920faf--45ce8e98fb304e5284e30be74a8d4e5c
531bc840c6474794a8d13b320682d6e7
45ce8e98fb304e5284e30be74a8d4e5c--531bc840c6474794a8d13b320682d6e7
cda4056488754286a0aae56ef8489830
52f1cc3b65ea459cab13895635f0d290
RX(theta₁)
c76fef5150b4431aa2cc53537e053020--52f1cc3b65ea459cab13895635f0d290
8504dff683064874bd5ff04759db822d
2
a534722271de40e29ca8e939b4100f69
RY(theta₇)
52f1cc3b65ea459cab13895635f0d290--a534722271de40e29ca8e939b4100f69
2caa1a80e37a436c95830a69ed960ba3
RX(theta₁₃)
a534722271de40e29ca8e939b4100f69--2caa1a80e37a436c95830a69ed960ba3
fb33f005ab2541749157840f3de2650f
2caa1a80e37a436c95830a69ed960ba3--fb33f005ab2541749157840f3de2650f
5f9eb12670594de28c9a1ad19e4b051b
RX(theta₁₉)
fb33f005ab2541749157840f3de2650f--5f9eb12670594de28c9a1ad19e4b051b
dca8b445266646dab4b125a54686da59
RY(theta₂₅)
5f9eb12670594de28c9a1ad19e4b051b--dca8b445266646dab4b125a54686da59
3d7abfa5f6e749b38562db9311ba93ff
RX(theta₃₁)
dca8b445266646dab4b125a54686da59--3d7abfa5f6e749b38562db9311ba93ff
543afd1fd00c4d388c3bcb853691506b
3d7abfa5f6e749b38562db9311ba93ff--543afd1fd00c4d388c3bcb853691506b
543afd1fd00c4d388c3bcb853691506b--cda4056488754286a0aae56ef8489830
c15260ce5fbe4bf68e6aa21da853a3bf
062c960982164198a91b98e5df9f091f
RX(theta₂)
8504dff683064874bd5ff04759db822d--062c960982164198a91b98e5df9f091f
745da7beca7c4120a84809bd291db9bc
3
0b1d5996f8384aef9bd591bf07ba5e13
RY(theta₈)
062c960982164198a91b98e5df9f091f--0b1d5996f8384aef9bd591bf07ba5e13
507dd45fc8404bdd8084b9f69715c5d5
RX(theta₁₄)
0b1d5996f8384aef9bd591bf07ba5e13--507dd45fc8404bdd8084b9f69715c5d5
cfe50f54b9584e7187957231572a3936
HamEvo
507dd45fc8404bdd8084b9f69715c5d5--cfe50f54b9584e7187957231572a3936
b66c1832982f4fdc8f3928098e97be51
RX(theta₂₀)
cfe50f54b9584e7187957231572a3936--b66c1832982f4fdc8f3928098e97be51
13eaa5e7c24a49c09ad1d27171466eb1
RY(theta₂₆)
b66c1832982f4fdc8f3928098e97be51--13eaa5e7c24a49c09ad1d27171466eb1
b95eb9254ce24745975e0d48950ff2c9
RX(theta₃₂)
13eaa5e7c24a49c09ad1d27171466eb1--b95eb9254ce24745975e0d48950ff2c9
9e61fec11a494dc6bba1379afdb7da12
HamEvo
b95eb9254ce24745975e0d48950ff2c9--9e61fec11a494dc6bba1379afdb7da12
9e61fec11a494dc6bba1379afdb7da12--c15260ce5fbe4bf68e6aa21da853a3bf
87ce4b9b578e48dbae3ed334f6fef28c
858176e426f848418fed64d54871a68f
RX(theta₃)
745da7beca7c4120a84809bd291db9bc--858176e426f848418fed64d54871a68f
e52bdab3b650441ea6702b0ced4410d3
4
70205c4c837a4a78937bf75d695e0e16
RY(theta₉)
858176e426f848418fed64d54871a68f--70205c4c837a4a78937bf75d695e0e16
3fd9b97b23154125a15e48b357de92d9
RX(theta₁₅)
70205c4c837a4a78937bf75d695e0e16--3fd9b97b23154125a15e48b357de92d9
ce23694be3a444ec8d1ff3e4a1544fd1
t = theta_t₀
3fd9b97b23154125a15e48b357de92d9--ce23694be3a444ec8d1ff3e4a1544fd1
22f3d473bd4b4396b830a0687d6cf815
RX(theta₂₁)
ce23694be3a444ec8d1ff3e4a1544fd1--22f3d473bd4b4396b830a0687d6cf815
55c976bd8fa74fe5abdd6f73d6ce4e37
RY(theta₂₇)
22f3d473bd4b4396b830a0687d6cf815--55c976bd8fa74fe5abdd6f73d6ce4e37
fd1d51b632794dbeb293c4b5c245babe
RX(theta₃₃)
55c976bd8fa74fe5abdd6f73d6ce4e37--fd1d51b632794dbeb293c4b5c245babe
ad9c9549c0c04673b78e1bdd4ca8b9f5
t = theta_t₁
fd1d51b632794dbeb293c4b5c245babe--ad9c9549c0c04673b78e1bdd4ca8b9f5
ad9c9549c0c04673b78e1bdd4ca8b9f5--87ce4b9b578e48dbae3ed334f6fef28c
52294bc87fb645a590490cecdf26032d
0529491cc46c4771a1bc5ebe3fd2722d
RX(theta₄)
e52bdab3b650441ea6702b0ced4410d3--0529491cc46c4771a1bc5ebe3fd2722d
a10037dc8130473b8bff018fff3d04c1
5
8b0232c04bee45c7b7f90af28da37717
RY(theta₁₀)
0529491cc46c4771a1bc5ebe3fd2722d--8b0232c04bee45c7b7f90af28da37717
cd22052c8f4c4637a78ecfad26f9d832
RX(theta₁₆)
8b0232c04bee45c7b7f90af28da37717--cd22052c8f4c4637a78ecfad26f9d832
2d9b64b6a61c4ac8846c9400e7c360d9
cd22052c8f4c4637a78ecfad26f9d832--2d9b64b6a61c4ac8846c9400e7c360d9
67f069aa78aa4e5890885873eb87c2e7
RX(theta₂₂)
2d9b64b6a61c4ac8846c9400e7c360d9--67f069aa78aa4e5890885873eb87c2e7
53149397b26046df97dac2eb614a02c2
RY(theta₂₈)
67f069aa78aa4e5890885873eb87c2e7--53149397b26046df97dac2eb614a02c2
c6e3617629bb46cfb376c23b15db84b1
RX(theta₃₄)
53149397b26046df97dac2eb614a02c2--c6e3617629bb46cfb376c23b15db84b1
b8ef440edfaf42c795af9f4ef5cccbd1
c6e3617629bb46cfb376c23b15db84b1--b8ef440edfaf42c795af9f4ef5cccbd1
b8ef440edfaf42c795af9f4ef5cccbd1--52294bc87fb645a590490cecdf26032d
455e04c4dbff426a9a97b8c1843f0ba9
85830d180b6942e6a6e59698ea3d5b11
RX(theta₅)
a10037dc8130473b8bff018fff3d04c1--85830d180b6942e6a6e59698ea3d5b11
538aa9dda6184fe4b3614cef68427835
RY(theta₁₁)
85830d180b6942e6a6e59698ea3d5b11--538aa9dda6184fe4b3614cef68427835
b0f578dd94d0441dbed6cfbf36cc4a48
RX(theta₁₇)
538aa9dda6184fe4b3614cef68427835--b0f578dd94d0441dbed6cfbf36cc4a48
d9316f4288d04c4899a44b3669416278
b0f578dd94d0441dbed6cfbf36cc4a48--d9316f4288d04c4899a44b3669416278
e6cdd78215e34782b8a5d6efa7d5be7a
RX(theta₂₃)
d9316f4288d04c4899a44b3669416278--e6cdd78215e34782b8a5d6efa7d5be7a
695dfd8120234dd599b7d8fded91f87e
RY(theta₂₉)
e6cdd78215e34782b8a5d6efa7d5be7a--695dfd8120234dd599b7d8fded91f87e
8e1590f7c81b494a94d3946655953fb9
RX(theta₃₅)
695dfd8120234dd599b7d8fded91f87e--8e1590f7c81b494a94d3946655953fb9
6866c87213234bbdb6538084129b5d6c
8e1590f7c81b494a94d3946655953fb9--6866c87213234bbdb6538084129b5d6c
6866c87213234bbdb6538084129b5d6c--455e04c4dbff426a9a97b8c1843f0ba9
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_05e595adc2bb412085699fe3f106fc69
BPMA-1
cluster_b633f885c0224d5e8282434be92be9dd
BPMA-0
6a98226391ad44ed8755b840acffa1c5
0
9c24b2b9957044e4b637be381b1064b0
RX(iia_α₀₀)
6a98226391ad44ed8755b840acffa1c5--9c24b2b9957044e4b637be381b1064b0
1af7612e6b734e6da3aaade5fed99f71
1
e237daa2349b42c8b93f15608e8fde33
RY(iia_α₀₃)
9c24b2b9957044e4b637be381b1064b0--e237daa2349b42c8b93f15608e8fde33
6f67560f31c545ad9d83498b5662e26a
e237daa2349b42c8b93f15608e8fde33--6f67560f31c545ad9d83498b5662e26a
fa5ef76502144074b1e672b7459f112d
6f67560f31c545ad9d83498b5662e26a--fa5ef76502144074b1e672b7459f112d
83875b7b10874af19a93e03d63bf7451
RX(iia_γ₀₀)
fa5ef76502144074b1e672b7459f112d--83875b7b10874af19a93e03d63bf7451
5d85d11ecd8f4ddc820cf9ce972eff0f
83875b7b10874af19a93e03d63bf7451--5d85d11ecd8f4ddc820cf9ce972eff0f
97000c3727d84590a5232ce471d92517
5d85d11ecd8f4ddc820cf9ce972eff0f--97000c3727d84590a5232ce471d92517
1fa62db562de4d1783856c2798ea8f8d
RY(iia_β₀₃)
97000c3727d84590a5232ce471d92517--1fa62db562de4d1783856c2798ea8f8d
9e38b17bac0a4907a54dd06c83a6dab6
RX(iia_β₀₀)
1fa62db562de4d1783856c2798ea8f8d--9e38b17bac0a4907a54dd06c83a6dab6
9f9c9ea2720947c0a7e1dc777992d86a
RX(iia_α₁₀)
9e38b17bac0a4907a54dd06c83a6dab6--9f9c9ea2720947c0a7e1dc777992d86a
9a9ecf28daa94b2ca5ec3cbb31f2aa9a
RY(iia_α₁₃)
9f9c9ea2720947c0a7e1dc777992d86a--9a9ecf28daa94b2ca5ec3cbb31f2aa9a
68e55c12039843118fd425809cae86b3
9a9ecf28daa94b2ca5ec3cbb31f2aa9a--68e55c12039843118fd425809cae86b3
4e6fbb6eaed84dc1baf80463e0ab4c7f
68e55c12039843118fd425809cae86b3--4e6fbb6eaed84dc1baf80463e0ab4c7f
c34d30c06b054259b879ef24b0ef1202
RX(iia_γ₁₀)
4e6fbb6eaed84dc1baf80463e0ab4c7f--c34d30c06b054259b879ef24b0ef1202
364dc3ca341542dbac4336916c714517
c34d30c06b054259b879ef24b0ef1202--364dc3ca341542dbac4336916c714517
7ef3dc4d45f24297af01bb81ed23e7a7
364dc3ca341542dbac4336916c714517--7ef3dc4d45f24297af01bb81ed23e7a7
41e50fcc9817470a8ad69123f755ac96
RY(iia_β₁₃)
7ef3dc4d45f24297af01bb81ed23e7a7--41e50fcc9817470a8ad69123f755ac96
ffcaa4bc9e534ce3a20bea6c640c8ca7
RX(iia_β₁₀)
41e50fcc9817470a8ad69123f755ac96--ffcaa4bc9e534ce3a20bea6c640c8ca7
a1a5f99ea0d94d93aca50f764f780068
ffcaa4bc9e534ce3a20bea6c640c8ca7--a1a5f99ea0d94d93aca50f764f780068
0eaeaac4e6d944b49c1cd9f184afa8e0
048a14257ae44031bc2b21c249099040
RX(iia_α₀₁)
1af7612e6b734e6da3aaade5fed99f71--048a14257ae44031bc2b21c249099040
337da146122941899eae9425480c22d7
2
feaa402a01a941719da2a4906bbec8c5
RY(iia_α₀₄)
048a14257ae44031bc2b21c249099040--feaa402a01a941719da2a4906bbec8c5
985d0786ca234f48bee5a4b74dcf7b28
X
feaa402a01a941719da2a4906bbec8c5--985d0786ca234f48bee5a4b74dcf7b28
985d0786ca234f48bee5a4b74dcf7b28--6f67560f31c545ad9d83498b5662e26a
325093122f6c42c2a6263f04da447087
985d0786ca234f48bee5a4b74dcf7b28--325093122f6c42c2a6263f04da447087
2f53892fa1324d39ab7ed4a1cd1b200a
RX(iia_γ₀₁)
325093122f6c42c2a6263f04da447087--2f53892fa1324d39ab7ed4a1cd1b200a
0cca0516f9bf46fcb961dcbeb52df947
2f53892fa1324d39ab7ed4a1cd1b200a--0cca0516f9bf46fcb961dcbeb52df947
7ce04f8f5c1c4415a164c323a6b01ec8
X
0cca0516f9bf46fcb961dcbeb52df947--7ce04f8f5c1c4415a164c323a6b01ec8
7ce04f8f5c1c4415a164c323a6b01ec8--97000c3727d84590a5232ce471d92517
ba2594246b8948e59e35d7ad0f346daa
RY(iia_β₀₄)
7ce04f8f5c1c4415a164c323a6b01ec8--ba2594246b8948e59e35d7ad0f346daa
16284c58cd684b0384684190ab5e43ba
RX(iia_β₀₁)
ba2594246b8948e59e35d7ad0f346daa--16284c58cd684b0384684190ab5e43ba
07ad32806e104cd68418b35e09d1bd34
RX(iia_α₁₁)
16284c58cd684b0384684190ab5e43ba--07ad32806e104cd68418b35e09d1bd34
6e699b8e770a401d9950eb480d92802e
RY(iia_α₁₄)
07ad32806e104cd68418b35e09d1bd34--6e699b8e770a401d9950eb480d92802e
f6206757edb5497aa506fe3244d2313b
X
6e699b8e770a401d9950eb480d92802e--f6206757edb5497aa506fe3244d2313b
f6206757edb5497aa506fe3244d2313b--68e55c12039843118fd425809cae86b3
ac2918b7bf9346eda0d0c48e9fd5de78
f6206757edb5497aa506fe3244d2313b--ac2918b7bf9346eda0d0c48e9fd5de78
742bbeb9b29d4c569844879dd5a49b23
RX(iia_γ₁₁)
ac2918b7bf9346eda0d0c48e9fd5de78--742bbeb9b29d4c569844879dd5a49b23
2ec075ad9bf340c085cb5516bb41934d
742bbeb9b29d4c569844879dd5a49b23--2ec075ad9bf340c085cb5516bb41934d
261331c15143461586630102034220c9
X
2ec075ad9bf340c085cb5516bb41934d--261331c15143461586630102034220c9
261331c15143461586630102034220c9--7ef3dc4d45f24297af01bb81ed23e7a7
736647f153df41aebbf56ea9a4433c7c
RY(iia_β₁₄)
261331c15143461586630102034220c9--736647f153df41aebbf56ea9a4433c7c
d1330ab88a604e62b28485e150d4aadb
RX(iia_β₁₁)
736647f153df41aebbf56ea9a4433c7c--d1330ab88a604e62b28485e150d4aadb
d1330ab88a604e62b28485e150d4aadb--0eaeaac4e6d944b49c1cd9f184afa8e0
14cd9181b8ba4f5589191ac45c298930
d44513819eb948ec93e3090a27b606d8
RX(iia_α₀₂)
337da146122941899eae9425480c22d7--d44513819eb948ec93e3090a27b606d8
25c67b5ad2d349d6a75d3902d5684c0b
RY(iia_α₀₅)
d44513819eb948ec93e3090a27b606d8--25c67b5ad2d349d6a75d3902d5684c0b
589da59e74a743819cbad3a115099bff
25c67b5ad2d349d6a75d3902d5684c0b--589da59e74a743819cbad3a115099bff
204394ca5c1041b1987c415f508a079d
X
589da59e74a743819cbad3a115099bff--204394ca5c1041b1987c415f508a079d
204394ca5c1041b1987c415f508a079d--325093122f6c42c2a6263f04da447087
477b7d493e80473f85c21a9b49f14271
RX(iia_γ₀₂)
204394ca5c1041b1987c415f508a079d--477b7d493e80473f85c21a9b49f14271
06e28bfccb0a4193ae709f6d8ed0b70a
X
477b7d493e80473f85c21a9b49f14271--06e28bfccb0a4193ae709f6d8ed0b70a
06e28bfccb0a4193ae709f6d8ed0b70a--0cca0516f9bf46fcb961dcbeb52df947
aed9b87f6edd485bbc4f5a745470888f
06e28bfccb0a4193ae709f6d8ed0b70a--aed9b87f6edd485bbc4f5a745470888f
df4e0886aea147359b5b10e0daea0dd3
RY(iia_β₀₅)
aed9b87f6edd485bbc4f5a745470888f--df4e0886aea147359b5b10e0daea0dd3
a3eddc838f114d4ebc9f9f3e3b12c12d
RX(iia_β₀₂)
df4e0886aea147359b5b10e0daea0dd3--a3eddc838f114d4ebc9f9f3e3b12c12d
0764bdf66afe4f4986ede915c8e56af2
RX(iia_α₁₂)
a3eddc838f114d4ebc9f9f3e3b12c12d--0764bdf66afe4f4986ede915c8e56af2
bc15dcdb1ec4476a81a7a82571cb1eac
RY(iia_α₁₅)
0764bdf66afe4f4986ede915c8e56af2--bc15dcdb1ec4476a81a7a82571cb1eac
3ed275b90df0401999a6f8df35e63ed0
bc15dcdb1ec4476a81a7a82571cb1eac--3ed275b90df0401999a6f8df35e63ed0
3552f03573434993b13a6d67d15a5b22
X
3ed275b90df0401999a6f8df35e63ed0--3552f03573434993b13a6d67d15a5b22
3552f03573434993b13a6d67d15a5b22--ac2918b7bf9346eda0d0c48e9fd5de78
c60562a9ae784afbba3e04dbe272d1d7
RX(iia_γ₁₂)
3552f03573434993b13a6d67d15a5b22--c60562a9ae784afbba3e04dbe272d1d7
25a0502c06b1490aac040d7d0da3fe5e
X
c60562a9ae784afbba3e04dbe272d1d7--25a0502c06b1490aac040d7d0da3fe5e
25a0502c06b1490aac040d7d0da3fe5e--2ec075ad9bf340c085cb5516bb41934d
3966e6fd47b04652b5834a49651913cb
25a0502c06b1490aac040d7d0da3fe5e--3966e6fd47b04652b5834a49651913cb
cb7420969d3242deae76965b2fd8c4ea
RY(iia_β₁₅)
3966e6fd47b04652b5834a49651913cb--cb7420969d3242deae76965b2fd8c4ea
3a8f6659e2d14f9e9d62ab9a5bb6d70e
RX(iia_β₁₂)
cb7420969d3242deae76965b2fd8c4ea--3a8f6659e2d14f9e9d62ab9a5bb6d70e
3a8f6659e2d14f9e9d62ab9a5bb6d70e--14cd9181b8ba4f5589191ac45c298930