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_e5436b6ae2cf462cbc3df277c3cbad4b
Constant Chebyshev FM
cluster_6a0d9f321f5a4409b37d644a6d9bbba3
Constant Fourier FM
43d9a86306764cd491c57eab6f13864e
0
c77e45737d8247d497df26c30be6ab7e
RX(phi)
43d9a86306764cd491c57eab6f13864e--c77e45737d8247d497df26c30be6ab7e
188e22bd81054cb6a49299515143b840
1
adaa9b9e101b41a69bcfa8e094879bba
RX(acos(phi))
c77e45737d8247d497df26c30be6ab7e--adaa9b9e101b41a69bcfa8e094879bba
6b31cba7f0bf44a4ab4b5b54850cda00
adaa9b9e101b41a69bcfa8e094879bba--6b31cba7f0bf44a4ab4b5b54850cda00
8e801dcc15754a27958041c214401019
b2c329e61e5745fcb96f707fae8619e2
RX(phi)
188e22bd81054cb6a49299515143b840--b2c329e61e5745fcb96f707fae8619e2
01abe672d8734605a47ff208d4c34a8b
2
146cd1ee7cb04f8e969841a801857bb5
RX(acos(phi))
b2c329e61e5745fcb96f707fae8619e2--146cd1ee7cb04f8e969841a801857bb5
146cd1ee7cb04f8e969841a801857bb5--8e801dcc15754a27958041c214401019
70c205c0a5804296b91fbaafc10e5e84
b43f113c3dfa4f70813c713aa1bd8948
RX(phi)
01abe672d8734605a47ff208d4c34a8b--b43f113c3dfa4f70813c713aa1bd8948
0dd17bee36914693b1d29ad970f22958
RX(acos(phi))
b43f113c3dfa4f70813c713aa1bd8948--0dd17bee36914693b1d29ad970f22958
0dd17bee36914693b1d29ad970f22958--70c205c0a5804296b91fbaafc10e5e84
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_0079e68bfff3491a8b416faedee66086
Constant <function custom_fn at 0x7f5f982df6d0> FM
cluster_f2699fbbfdfe44c4a3bf4ab1b0dcc5b9
Constant asin FM
91e867812621444787f119e0d9202467
0
d92a78e2cd5d4486ab6db0e5672d1d71
RX(asin(phi))
91e867812621444787f119e0d9202467--d92a78e2cd5d4486ab6db0e5672d1d71
9ac97a32cd754d288605799cebf8e5ee
1
decf200c77fa4494bd586fa6821c9590
RX(phi**2 + asin(phi))
d92a78e2cd5d4486ab6db0e5672d1d71--decf200c77fa4494bd586fa6821c9590
ae5f2e0c53314d368c3f1515d67f1b6f
decf200c77fa4494bd586fa6821c9590--ae5f2e0c53314d368c3f1515d67f1b6f
93579e63c33240deae8ee3feebc1737f
c0fa220e29654cadbc90928dda8f1c8a
RX(asin(phi))
9ac97a32cd754d288605799cebf8e5ee--c0fa220e29654cadbc90928dda8f1c8a
6cab22a662e6486ea1be83a46bc17a58
2
65c0a4978b544ea9bb03acdc48eb1464
RX(phi**2 + asin(phi))
c0fa220e29654cadbc90928dda8f1c8a--65c0a4978b544ea9bb03acdc48eb1464
65c0a4978b544ea9bb03acdc48eb1464--93579e63c33240deae8ee3feebc1737f
2713550be72044e2a5a9c678216a7ca7
03642194d80f4fb296c27cbf71b543d6
RX(asin(phi))
6cab22a662e6486ea1be83a46bc17a58--03642194d80f4fb296c27cbf71b543d6
038d7c04b5a3406890f52d06ce852b2e
RX(phi**2 + asin(phi))
03642194d80f4fb296c27cbf71b543d6--038d7c04b5a3406890f52d06ce852b2e
038d7c04b5a3406890f52d06ce852b2e--2713550be72044e2a5a9c678216a7ca7
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_640f1f2a47f242b08382a9b14b1edabe
Exponential Fourier FM
cluster_47f418a5253246809282e93ead2a2aa2
Constant Fourier FM
cluster_a66ad0e390b740879fe41b1b9b96c1e5
Tower Fourier FM
47618d1df5dd4862afbbd4b5bd89bfa2
0
a5d9dbcf95964662bd4fd241e03cb382
RX(phi)
47618d1df5dd4862afbbd4b5bd89bfa2--a5d9dbcf95964662bd4fd241e03cb382
b7ced7a2494a4a2da7550b64e1ace786
1
1d77cc48ad3f4addaa0d90122d470bab
RX(1.0*phi)
a5d9dbcf95964662bd4fd241e03cb382--1d77cc48ad3f4addaa0d90122d470bab
a8a71dc6774646ae8026e3901cc508ab
RX(1.0*phi)
1d77cc48ad3f4addaa0d90122d470bab--a8a71dc6774646ae8026e3901cc508ab
7b852d7b9edb46009d515757e6579977
a8a71dc6774646ae8026e3901cc508ab--7b852d7b9edb46009d515757e6579977
25aac1df16f24fd3a120b725ff6fc67d
a6240b5c41d24b5796279b32c11dcdb1
RX(phi)
b7ced7a2494a4a2da7550b64e1ace786--a6240b5c41d24b5796279b32c11dcdb1
f0cd1337bc4c400f82e721ea65d009ab
2
972f24c082fe46edacaee9f5e2cd9b95
RX(2.0*phi)
a6240b5c41d24b5796279b32c11dcdb1--972f24c082fe46edacaee9f5e2cd9b95
7b8f9432e39549a59e60e4bd82812291
RX(2.0*phi)
972f24c082fe46edacaee9f5e2cd9b95--7b8f9432e39549a59e60e4bd82812291
7b8f9432e39549a59e60e4bd82812291--25aac1df16f24fd3a120b725ff6fc67d
2079d7cfba9645a386f87fe68b7f01d4
e00a5298764047c19f1cc3d1ac6962d6
RX(phi)
f0cd1337bc4c400f82e721ea65d009ab--e00a5298764047c19f1cc3d1ac6962d6
b430a998798f426d982a7d7241da6d4e
3
9245f1921de0456fb12651a9ccaf3b34
RX(3.0*phi)
e00a5298764047c19f1cc3d1ac6962d6--9245f1921de0456fb12651a9ccaf3b34
3407be51a87649099d384de486f81bb8
RX(4.0*phi)
9245f1921de0456fb12651a9ccaf3b34--3407be51a87649099d384de486f81bb8
3407be51a87649099d384de486f81bb8--2079d7cfba9645a386f87fe68b7f01d4
b3bd3e7de7814124b3e08986bee13054
edc440cdecaa4628b868e18bb76db430
RX(phi)
b430a998798f426d982a7d7241da6d4e--edc440cdecaa4628b868e18bb76db430
1755a982ab0447d2a9c0182e6a51d206
4
561da876fb8d46e0a8401eea1118bf83
RX(4.0*phi)
edc440cdecaa4628b868e18bb76db430--561da876fb8d46e0a8401eea1118bf83
d51e90a554074a0fa51bb509d52e0840
RX(8.0*phi)
561da876fb8d46e0a8401eea1118bf83--d51e90a554074a0fa51bb509d52e0840
d51e90a554074a0fa51bb509d52e0840--b3bd3e7de7814124b3e08986bee13054
4fedf6da037a4a20927ded65d89233d0
aea3bdd88e0646cf9b17efe74f07e388
RX(phi)
1755a982ab0447d2a9c0182e6a51d206--aea3bdd88e0646cf9b17efe74f07e388
569a0521e9324c7181e7bb56c274b057
RX(5.0*phi)
aea3bdd88e0646cf9b17efe74f07e388--569a0521e9324c7181e7bb56c274b057
5669a643ed3143b19cf26a2c7870cebe
RX(16.0*phi)
569a0521e9324c7181e7bb56c274b057--5669a643ed3143b19cf26a2c7870cebe
5669a643ed3143b19cf26a2c7870cebe--4fedf6da037a4a20927ded65d89233d0
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
5de69acd9088458ca6168ea5b05d77c2
0
1e5aa2f4a9204451907d0abcef7c5624
RX(1.0*acos(phi))
5de69acd9088458ca6168ea5b05d77c2--1e5aa2f4a9204451907d0abcef7c5624
02e45664dfa747eaa8292456ec48a65b
1
f293d63ab13e4258841a001600f505a9
1e5aa2f4a9204451907d0abcef7c5624--f293d63ab13e4258841a001600f505a9
bc28708b1be4402da8e0114fe4f501b8
d7b7a147b8de4813989a6ad9a5f68f31
RX(1.414*acos(phi))
02e45664dfa747eaa8292456ec48a65b--d7b7a147b8de4813989a6ad9a5f68f31
7c2cb286674a4615bd9a64044a2e3753
2
d7b7a147b8de4813989a6ad9a5f68f31--bc28708b1be4402da8e0114fe4f501b8
3dc855af6ad540e492cb1597a8599c67
b9308e09d59d42d0a93c7e07ea3197e1
RX(1.732*acos(phi))
7c2cb286674a4615bd9a64044a2e3753--b9308e09d59d42d0a93c7e07ea3197e1
3b472348bb6b467789d40533b18488b3
3
b9308e09d59d42d0a93c7e07ea3197e1--3dc855af6ad540e492cb1597a8599c67
4f3bf4b529f3470a919e8305b647eceb
438ab3ea6c16428a92e24a67ceb4cd73
RX(2.0*acos(phi))
3b472348bb6b467789d40533b18488b3--438ab3ea6c16428a92e24a67ceb4cd73
c8121969a7924e91b17231732417640d
4
438ab3ea6c16428a92e24a67ceb4cd73--4f3bf4b529f3470a919e8305b647eceb
e6e9a8035d8b49008cb38661dde29f28
de49b36f02ef4c11ab90fe4f26b3708f
RX(2.236*acos(phi))
c8121969a7924e91b17231732417640d--de49b36f02ef4c11ab90fe4f26b3708f
de49b36f02ef4c11ab90fe4f26b3708f--e6e9a8035d8b49008cb38661dde29f28
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
751f669301f84ed2974a20ec1a519e8b
0
9efcd1c01dc4428bab98da595f09247b
RX(1.0*phi*w₀)
751f669301f84ed2974a20ec1a519e8b--9efcd1c01dc4428bab98da595f09247b
f3897027296549f79d500e17fdf18b90
1
ab8e57328c994b6c90b14ade94ecda8f
9efcd1c01dc4428bab98da595f09247b--ab8e57328c994b6c90b14ade94ecda8f
fb2a08cbf93e4c76876a43016e17d2db
c37f9d01f23948c190d0252540f6b01e
RX(2.0*phi*w₁)
f3897027296549f79d500e17fdf18b90--c37f9d01f23948c190d0252540f6b01e
2ddabeaf173647a8ba4f3ebb45370a41
2
c37f9d01f23948c190d0252540f6b01e--fb2a08cbf93e4c76876a43016e17d2db
d21ea4d514514612b369e0e91f76a560
0a700170a39142288c55b32d11607353
RX(4.0*phi*w₂)
2ddabeaf173647a8ba4f3ebb45370a41--0a700170a39142288c55b32d11607353
36316b2a5e6b470689d49a3915d7ff20
3
0a700170a39142288c55b32d11607353--d21ea4d514514612b369e0e91f76a560
993d5967cbe843aaaf9b8dc1a3fbc08b
408a086d1b014085aeb25103a687ae23
RX(8.0*phi*w₃)
36316b2a5e6b470689d49a3915d7ff20--408a086d1b014085aeb25103a687ae23
79872c3d8f02476eab2b7f3d46bc5875
4
408a086d1b014085aeb25103a687ae23--993d5967cbe843aaaf9b8dc1a3fbc08b
6d79eb573aa7480ea3e943fb6c7c1035
d3a0307c88fd403f947b3df742ba51d2
RX(16.0*phi*w₄)
79872c3d8f02476eab2b7f3d46bc5875--d3a0307c88fd403f947b3df742ba51d2
d3a0307c88fd403f947b3df742ba51d2--6d79eb573aa7480ea3e943fb6c7c1035
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
42cf23a1d9f740f89ee1f9b76cf42109
0
e66977cdccd642ebbd1a24a97853f827
RY(80.0*acos(w₄*(0.667*x + 1.667)))
42cf23a1d9f740f89ee1f9b76cf42109--e66977cdccd642ebbd1a24a97853f827
c1acfad53d22486fa48293f13880dc95
1
25d0bce6f6eb4cb9aad2906263b08460
e66977cdccd642ebbd1a24a97853f827--25d0bce6f6eb4cb9aad2906263b08460
2ce5eb36b0b24e0f908838f08c150f77
ce9b1c2cebaf442c97978d2018996b3c
RY(40.0*acos(w₃*(0.667*x + 1.667)))
c1acfad53d22486fa48293f13880dc95--ce9b1c2cebaf442c97978d2018996b3c
48cf4001c9a3498b812c7429510f6a02
2
ce9b1c2cebaf442c97978d2018996b3c--2ce5eb36b0b24e0f908838f08c150f77
1298af0dd3004cf28debbd2474f58c0d
8450b624aca94fbea320988a5bd82783
RY(20.0*acos(w₂*(0.667*x + 1.667)))
48cf4001c9a3498b812c7429510f6a02--8450b624aca94fbea320988a5bd82783
d91b0b58a30548bcb7887d6528b5c534
3
8450b624aca94fbea320988a5bd82783--1298af0dd3004cf28debbd2474f58c0d
9b37785a53ab467bb25471eeddf5f2a1
ba5698efec1f44a4a41291e6c9e2f97a
RY(10.0*acos(w₁*(0.667*x + 1.667)))
d91b0b58a30548bcb7887d6528b5c534--ba5698efec1f44a4a41291e6c9e2f97a
f4c36d12294e433d9586da2ccd51101f
4
ba5698efec1f44a4a41291e6c9e2f97a--9b37785a53ab467bb25471eeddf5f2a1
25828a38783c4d13bf75cc5646a78310
c87789f0985848c68c1c8191d244dd48
RY(5.0*acos(w₀*(0.667*x + 1.667)))
f4c36d12294e433d9586da2ccd51101f--c87789f0985848c68c1c8191d244dd48
c87789f0985848c68c1c8191d244dd48--25828a38783c4d13bf75cc5646a78310
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
9cd550f80dab41ceaa0d2a10004948c7
0
26e4c2268954462e96ca7fba730954dd
RX(theta₀)
9cd550f80dab41ceaa0d2a10004948c7--26e4c2268954462e96ca7fba730954dd
ed7cb7d9a84a433e9406c09baca04252
1
9641b4a56c9a4dd4a7ac93ad8334a67f
RY(theta₃)
26e4c2268954462e96ca7fba730954dd--9641b4a56c9a4dd4a7ac93ad8334a67f
ba44008c7e71400980e6ffc85202442e
RX(theta₆)
9641b4a56c9a4dd4a7ac93ad8334a67f--ba44008c7e71400980e6ffc85202442e
e7610b48c0814e37a3ca83a5a558836e
ba44008c7e71400980e6ffc85202442e--e7610b48c0814e37a3ca83a5a558836e
cc0f8d3505854afca5a2e9b4b8bcf9bd
e7610b48c0814e37a3ca83a5a558836e--cc0f8d3505854afca5a2e9b4b8bcf9bd
f92e1c5ce4114206b80464ff4701a5ea
RX(theta₉)
cc0f8d3505854afca5a2e9b4b8bcf9bd--f92e1c5ce4114206b80464ff4701a5ea
f43e296badc54f598c69c1e9dc909533
RY(theta₁₂)
f92e1c5ce4114206b80464ff4701a5ea--f43e296badc54f598c69c1e9dc909533
fbf61bd78f5c4c7b9858b825f74d1837
RX(theta₁₅)
f43e296badc54f598c69c1e9dc909533--fbf61bd78f5c4c7b9858b825f74d1837
45e0bdfc431c47539c2f718bb429c8dc
fbf61bd78f5c4c7b9858b825f74d1837--45e0bdfc431c47539c2f718bb429c8dc
6852c248ed7846debc1f6b61803f781f
45e0bdfc431c47539c2f718bb429c8dc--6852c248ed7846debc1f6b61803f781f
9f9f27eaa0a04a7b8dc3edc0ca6d7f19
6852c248ed7846debc1f6b61803f781f--9f9f27eaa0a04a7b8dc3edc0ca6d7f19
96e13272e2dd419e8bff792905006286
b3a3ca4b4d1d4ad3881ac76a94e382ec
RX(theta₁)
ed7cb7d9a84a433e9406c09baca04252--b3a3ca4b4d1d4ad3881ac76a94e382ec
7b60c1fd0479459bb9898040033b6184
2
56bb063743794f779f751ce7caf699de
RY(theta₄)
b3a3ca4b4d1d4ad3881ac76a94e382ec--56bb063743794f779f751ce7caf699de
03f800e61c474389aecc9b8bedc15d94
RX(theta₇)
56bb063743794f779f751ce7caf699de--03f800e61c474389aecc9b8bedc15d94
5260480a14884317b1a962f7beda0f9f
X
03f800e61c474389aecc9b8bedc15d94--5260480a14884317b1a962f7beda0f9f
5260480a14884317b1a962f7beda0f9f--e7610b48c0814e37a3ca83a5a558836e
91b261a984a04cd0b4829b67f01fe6e5
5260480a14884317b1a962f7beda0f9f--91b261a984a04cd0b4829b67f01fe6e5
ba2a76f8f3c34fb8a146432831855e5d
RX(theta₁₀)
91b261a984a04cd0b4829b67f01fe6e5--ba2a76f8f3c34fb8a146432831855e5d
eb540f5464e64594b42dc97389c23f54
RY(theta₁₃)
ba2a76f8f3c34fb8a146432831855e5d--eb540f5464e64594b42dc97389c23f54
2c53526b8ae54e0f9d0ef58e040222a6
RX(theta₁₆)
eb540f5464e64594b42dc97389c23f54--2c53526b8ae54e0f9d0ef58e040222a6
44cd8da1f7924682b0a22a9378c3c65f
X
2c53526b8ae54e0f9d0ef58e040222a6--44cd8da1f7924682b0a22a9378c3c65f
44cd8da1f7924682b0a22a9378c3c65f--45e0bdfc431c47539c2f718bb429c8dc
42e45263275d43eb87e6a75e619352a5
44cd8da1f7924682b0a22a9378c3c65f--42e45263275d43eb87e6a75e619352a5
42e45263275d43eb87e6a75e619352a5--96e13272e2dd419e8bff792905006286
7e693ce8f1c14c019111d9f02dbdbe30
292516bb3e0b4c9bae3d5ed0f7535950
RX(theta₂)
7b60c1fd0479459bb9898040033b6184--292516bb3e0b4c9bae3d5ed0f7535950
943f88924d8a4b1596c3949d7281ce74
RY(theta₅)
292516bb3e0b4c9bae3d5ed0f7535950--943f88924d8a4b1596c3949d7281ce74
9d8edf6b0ed64b8785ed247c1cce31a5
RX(theta₈)
943f88924d8a4b1596c3949d7281ce74--9d8edf6b0ed64b8785ed247c1cce31a5
cc08f99ce4d54e8fbf12dbb4fa61baff
9d8edf6b0ed64b8785ed247c1cce31a5--cc08f99ce4d54e8fbf12dbb4fa61baff
41b32262b24b482aafe4302318f1835b
X
cc08f99ce4d54e8fbf12dbb4fa61baff--41b32262b24b482aafe4302318f1835b
41b32262b24b482aafe4302318f1835b--91b261a984a04cd0b4829b67f01fe6e5
9f0dae86add8482e97bd05d1b3380db5
RX(theta₁₁)
41b32262b24b482aafe4302318f1835b--9f0dae86add8482e97bd05d1b3380db5
2632ceea11e5451c880ac9381512169c
RY(theta₁₄)
9f0dae86add8482e97bd05d1b3380db5--2632ceea11e5451c880ac9381512169c
4cd6557617f748299e9fee1656b1942a
RX(theta₁₇)
2632ceea11e5451c880ac9381512169c--4cd6557617f748299e9fee1656b1942a
30fecd21780e49c99448d7dbc2aad095
4cd6557617f748299e9fee1656b1942a--30fecd21780e49c99448d7dbc2aad095
bf291345461b42ce851c96546a7d3b78
X
30fecd21780e49c99448d7dbc2aad095--bf291345461b42ce851c96546a7d3b78
bf291345461b42ce851c96546a7d3b78--42e45263275d43eb87e6a75e619352a5
bf291345461b42ce851c96546a7d3b78--7e693ce8f1c14c019111d9f02dbdbe30
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
3ee19ffe97ba4485882d82f49fa77960
0
3646ef6153404e399742ac3d94290fb0
RX(phi₀)
3ee19ffe97ba4485882d82f49fa77960--3646ef6153404e399742ac3d94290fb0
8d9415d564b74f53bfe736676c5174e0
1
27facb281011414f8d671b8ac8f853c2
RY(phi₃)
3646ef6153404e399742ac3d94290fb0--27facb281011414f8d671b8ac8f853c2
777f5c7397a84836a370328592f08139
RX(phi₆)
27facb281011414f8d671b8ac8f853c2--777f5c7397a84836a370328592f08139
29a94a8fd4cf4daaa4566b94f15812f7
777f5c7397a84836a370328592f08139--29a94a8fd4cf4daaa4566b94f15812f7
86ef688858c14137aa3b8832dd29de9c
29a94a8fd4cf4daaa4566b94f15812f7--86ef688858c14137aa3b8832dd29de9c
53f23c5bc7a440419ac3e3d6cb0a4bfb
RX(phi₉)
86ef688858c14137aa3b8832dd29de9c--53f23c5bc7a440419ac3e3d6cb0a4bfb
81e37778d39547b89a86fac0b8ffb3d0
RY(phi₁₂)
53f23c5bc7a440419ac3e3d6cb0a4bfb--81e37778d39547b89a86fac0b8ffb3d0
132fd23b49154fe4b716fd847df98749
RX(phi₁₅)
81e37778d39547b89a86fac0b8ffb3d0--132fd23b49154fe4b716fd847df98749
b998b11016c44e6e80f3ba9357dfb6c3
132fd23b49154fe4b716fd847df98749--b998b11016c44e6e80f3ba9357dfb6c3
baadd841006c43d5b15b8e40039ee46c
b998b11016c44e6e80f3ba9357dfb6c3--baadd841006c43d5b15b8e40039ee46c
1217d12a19af4073bbd1119dfbde2a3b
baadd841006c43d5b15b8e40039ee46c--1217d12a19af4073bbd1119dfbde2a3b
74ace20f8e2449c4b0ca44000edeecf7
1aaca3a9ef6049a9a5e1774bfd699df9
RX(phi₁)
8d9415d564b74f53bfe736676c5174e0--1aaca3a9ef6049a9a5e1774bfd699df9
867fd2098ee64206bbe21c9cd4ce1c0f
2
f59a579a0868413680df188e959d314b
RY(phi₄)
1aaca3a9ef6049a9a5e1774bfd699df9--f59a579a0868413680df188e959d314b
3206049320ff45e897ec50c5be28e038
RX(phi₇)
f59a579a0868413680df188e959d314b--3206049320ff45e897ec50c5be28e038
ffb083cb0d8649f8aa6fe4460cee3a0f
PHASE(phi_ent₀)
3206049320ff45e897ec50c5be28e038--ffb083cb0d8649f8aa6fe4460cee3a0f
ffb083cb0d8649f8aa6fe4460cee3a0f--29a94a8fd4cf4daaa4566b94f15812f7
b418a8daa80249e0bbe62f5c3a004d17
ffb083cb0d8649f8aa6fe4460cee3a0f--b418a8daa80249e0bbe62f5c3a004d17
7f7092f79373495abef941cc9ce17ef4
RX(phi₁₀)
b418a8daa80249e0bbe62f5c3a004d17--7f7092f79373495abef941cc9ce17ef4
9bf6d835ff124afbb2a69deb152e8313
RY(phi₁₃)
7f7092f79373495abef941cc9ce17ef4--9bf6d835ff124afbb2a69deb152e8313
8b9b527c43804e568ee4e75c39918c68
RX(phi₁₆)
9bf6d835ff124afbb2a69deb152e8313--8b9b527c43804e568ee4e75c39918c68
ca6667f079394db3a8bde0691d0986a8
PHASE(phi_ent₂)
8b9b527c43804e568ee4e75c39918c68--ca6667f079394db3a8bde0691d0986a8
ca6667f079394db3a8bde0691d0986a8--b998b11016c44e6e80f3ba9357dfb6c3
c1c1eb6772404687bb4290655e0e2281
ca6667f079394db3a8bde0691d0986a8--c1c1eb6772404687bb4290655e0e2281
c1c1eb6772404687bb4290655e0e2281--74ace20f8e2449c4b0ca44000edeecf7
cda4d4e7e050453bbebdd0f02283570e
72be390791a64b46a97b8cf6331c7657
RX(phi₂)
867fd2098ee64206bbe21c9cd4ce1c0f--72be390791a64b46a97b8cf6331c7657
94f17ceea9a24f8694dea56432e19e62
RY(phi₅)
72be390791a64b46a97b8cf6331c7657--94f17ceea9a24f8694dea56432e19e62
bbde0d63d7cd415b9e0b7a5b00faf7c6
RX(phi₈)
94f17ceea9a24f8694dea56432e19e62--bbde0d63d7cd415b9e0b7a5b00faf7c6
df242f8e5749470cae72b7a71c4331a6
bbde0d63d7cd415b9e0b7a5b00faf7c6--df242f8e5749470cae72b7a71c4331a6
64242dec0264479e87735089df2bd102
PHASE(phi_ent₁)
df242f8e5749470cae72b7a71c4331a6--64242dec0264479e87735089df2bd102
64242dec0264479e87735089df2bd102--b418a8daa80249e0bbe62f5c3a004d17
9772195d4d7b4a3ea9cc5b24c00fee1b
RX(phi₁₁)
64242dec0264479e87735089df2bd102--9772195d4d7b4a3ea9cc5b24c00fee1b
5f505b7b97bb44c1b513f4a3722a4ced
RY(phi₁₄)
9772195d4d7b4a3ea9cc5b24c00fee1b--5f505b7b97bb44c1b513f4a3722a4ced
c1420d4c2cfc464ba82edef017798022
RX(phi₁₇)
5f505b7b97bb44c1b513f4a3722a4ced--c1420d4c2cfc464ba82edef017798022
aadb6424edca41b3906601a8d7baa730
c1420d4c2cfc464ba82edef017798022--aadb6424edca41b3906601a8d7baa730
a40bf38f8cc84234adcf225ddf1d32d3
PHASE(phi_ent₃)
aadb6424edca41b3906601a8d7baa730--a40bf38f8cc84234adcf225ddf1d32d3
a40bf38f8cc84234adcf225ddf1d32d3--c1c1eb6772404687bb4290655e0e2281
a40bf38f8cc84234adcf225ddf1d32d3--cda4d4e7e050453bbebdd0f02283570e
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_6dffd1c8f5264ffdbc9d6441b8119be3
cluster_8528e53e2e0d492b839319b1d8794e17
f8fedeb78c6f41d28cac336286b182c5
0
ef704dba82c745dca2ad179445017537
RX(theta₀)
f8fedeb78c6f41d28cac336286b182c5--ef704dba82c745dca2ad179445017537
68fca6d7fa7044ee827decc1c11f2867
1
bfb1113da56b428f83998ea60340334a
RY(theta₃)
ef704dba82c745dca2ad179445017537--bfb1113da56b428f83998ea60340334a
b48b933ed67e40efa25dab5a1cd9111e
RX(theta₆)
bfb1113da56b428f83998ea60340334a--b48b933ed67e40efa25dab5a1cd9111e
b15dc60a4b714767b875d6e83b1c7f41
HamEvo
b48b933ed67e40efa25dab5a1cd9111e--b15dc60a4b714767b875d6e83b1c7f41
465bc77a0fda4e9b9d5135f095773179
RX(theta₉)
b15dc60a4b714767b875d6e83b1c7f41--465bc77a0fda4e9b9d5135f095773179
79544fc7995843208c6bae6f0b381a93
RY(theta₁₂)
465bc77a0fda4e9b9d5135f095773179--79544fc7995843208c6bae6f0b381a93
d2d2d2e96caf4f8b9e84d48044dda1a1
RX(theta₁₅)
79544fc7995843208c6bae6f0b381a93--d2d2d2e96caf4f8b9e84d48044dda1a1
16e3d2872a34455097c183c03478dd52
HamEvo
d2d2d2e96caf4f8b9e84d48044dda1a1--16e3d2872a34455097c183c03478dd52
ab1c021ddbe246e6b9f3b5028912b00c
16e3d2872a34455097c183c03478dd52--ab1c021ddbe246e6b9f3b5028912b00c
979594530ab74805a190094e90e9b87b
ca3acb32064c49ffab7ed2db197a6385
RX(theta₁)
68fca6d7fa7044ee827decc1c11f2867--ca3acb32064c49ffab7ed2db197a6385
9f5f90ae9ff442b4a54fff853f4988af
2
484c05f5eb8a4a3b94192494ec9c42e6
RY(theta₄)
ca3acb32064c49ffab7ed2db197a6385--484c05f5eb8a4a3b94192494ec9c42e6
a650e545b9ab419d81868cfbfb37da72
RX(theta₇)
484c05f5eb8a4a3b94192494ec9c42e6--a650e545b9ab419d81868cfbfb37da72
a5199829237c4ddbbf9e010560340299
t = theta_t₀
a650e545b9ab419d81868cfbfb37da72--a5199829237c4ddbbf9e010560340299
4ddb202d78874f848e1f3c263df7c945
RX(theta₁₀)
a5199829237c4ddbbf9e010560340299--4ddb202d78874f848e1f3c263df7c945
8a1de87ea0a940168093b3acfa7733ba
RY(theta₁₃)
4ddb202d78874f848e1f3c263df7c945--8a1de87ea0a940168093b3acfa7733ba
225d6f07bff04e19855b65123ddb5b66
RX(theta₁₆)
8a1de87ea0a940168093b3acfa7733ba--225d6f07bff04e19855b65123ddb5b66
5510511ff91a483fa73f1dce3331a2f7
t = theta_t₁
225d6f07bff04e19855b65123ddb5b66--5510511ff91a483fa73f1dce3331a2f7
5510511ff91a483fa73f1dce3331a2f7--979594530ab74805a190094e90e9b87b
a838b34131de428fa91a1161993d3244
13273a2b1f3f4ced81ff7e9b00d90fab
RX(theta₂)
9f5f90ae9ff442b4a54fff853f4988af--13273a2b1f3f4ced81ff7e9b00d90fab
b999f9d8f09e42aeb90c6675e5e2c76b
RY(theta₅)
13273a2b1f3f4ced81ff7e9b00d90fab--b999f9d8f09e42aeb90c6675e5e2c76b
e50c4ebd20e84b878b23d309767928f3
RX(theta₈)
b999f9d8f09e42aeb90c6675e5e2c76b--e50c4ebd20e84b878b23d309767928f3
a2efb31044684af096e1f1cd534655c3
e50c4ebd20e84b878b23d309767928f3--a2efb31044684af096e1f1cd534655c3
c079753c1bfa479ebd51b32748c36f2b
RX(theta₁₁)
a2efb31044684af096e1f1cd534655c3--c079753c1bfa479ebd51b32748c36f2b
48b542e519b3478d95d85f858506db7e
RY(theta₁₄)
c079753c1bfa479ebd51b32748c36f2b--48b542e519b3478d95d85f858506db7e
9b3a34345ca1457793c2edbc136c52ef
RX(theta₁₇)
48b542e519b3478d95d85f858506db7e--9b3a34345ca1457793c2edbc136c52ef
a67722001ae44d9b9e4a91f8638d9157
9b3a34345ca1457793c2edbc136c52ef--a67722001ae44d9b9e4a91f8638d9157
a67722001ae44d9b9e4a91f8638d9157--a838b34131de428fa91a1161993d3244
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_74937167723040e8acd860ab96435b3d
cluster_a25de5b1c9c2492b856c9b250752af30
60a0f0f1c59e4faaaea49dba4e2a47c8
0
ec9a70991dfc4aff9a8045d73dd7ef17
RX(theta₀)
60a0f0f1c59e4faaaea49dba4e2a47c8--ec9a70991dfc4aff9a8045d73dd7ef17
eeea23fcf9044d1b8e9210e93433ce71
1
22d2f86e4b11489bb25cfbad70f02d23
RY(theta₆)
ec9a70991dfc4aff9a8045d73dd7ef17--22d2f86e4b11489bb25cfbad70f02d23
e9a561ecdda04aab946d546d66c1558d
RX(theta₁₂)
22d2f86e4b11489bb25cfbad70f02d23--e9a561ecdda04aab946d546d66c1558d
81a02c5da2f446df99065df9735dceda
e9a561ecdda04aab946d546d66c1558d--81a02c5da2f446df99065df9735dceda
0f06ca1e6f2a4b9d8022d1f2007ed71a
RX(theta₁₈)
81a02c5da2f446df99065df9735dceda--0f06ca1e6f2a4b9d8022d1f2007ed71a
0a4e46656cea46919cb2a436e1a9ba41
RY(theta₂₄)
0f06ca1e6f2a4b9d8022d1f2007ed71a--0a4e46656cea46919cb2a436e1a9ba41
85428fead2354ae2aa2024c4adef2224
RX(theta₃₀)
0a4e46656cea46919cb2a436e1a9ba41--85428fead2354ae2aa2024c4adef2224
5bc67abc845f449f8bf89a184ab98fd0
85428fead2354ae2aa2024c4adef2224--5bc67abc845f449f8bf89a184ab98fd0
714dd3b46d82466d958da24ee2d46c76
5bc67abc845f449f8bf89a184ab98fd0--714dd3b46d82466d958da24ee2d46c76
bfe8e8687be44649977f3c8273fc1b74
67f0f9292de441ad95d24df84c5d8de3
RX(theta₁)
eeea23fcf9044d1b8e9210e93433ce71--67f0f9292de441ad95d24df84c5d8de3
43cafba56da346a9903d6f8cb3ee5f4a
2
0cd3aaf726a64d05a8e7cfdb87459396
RY(theta₇)
67f0f9292de441ad95d24df84c5d8de3--0cd3aaf726a64d05a8e7cfdb87459396
4552285116da4103a59b5d7edaac1984
RX(theta₁₃)
0cd3aaf726a64d05a8e7cfdb87459396--4552285116da4103a59b5d7edaac1984
cb5fd382839c4f96a9ccd0a1faed51d8
4552285116da4103a59b5d7edaac1984--cb5fd382839c4f96a9ccd0a1faed51d8
faa989a9d4de44859700b3578bce5ef0
RX(theta₁₉)
cb5fd382839c4f96a9ccd0a1faed51d8--faa989a9d4de44859700b3578bce5ef0
3d9ae14a61ff4c5a943a08ce5c4ab7ca
RY(theta₂₅)
faa989a9d4de44859700b3578bce5ef0--3d9ae14a61ff4c5a943a08ce5c4ab7ca
92d4d20b97d04928b88221f9ba0e5b71
RX(theta₃₁)
3d9ae14a61ff4c5a943a08ce5c4ab7ca--92d4d20b97d04928b88221f9ba0e5b71
a1b38e865a0240d0ac87c820cef87447
92d4d20b97d04928b88221f9ba0e5b71--a1b38e865a0240d0ac87c820cef87447
a1b38e865a0240d0ac87c820cef87447--bfe8e8687be44649977f3c8273fc1b74
b39b74c54adc46c9875b0fa0ba8dc617
57417cb2653e43cda1697d443d52910d
RX(theta₂)
43cafba56da346a9903d6f8cb3ee5f4a--57417cb2653e43cda1697d443d52910d
8aa52a1543214aed903b639f27a90d49
3
a2f5ea6058ef4740bcdb78bf390adcdd
RY(theta₈)
57417cb2653e43cda1697d443d52910d--a2f5ea6058ef4740bcdb78bf390adcdd
b7da19c3474447409c7a5ea4dec02449
RX(theta₁₄)
a2f5ea6058ef4740bcdb78bf390adcdd--b7da19c3474447409c7a5ea4dec02449
ee43268790f647eabdc26086c1c4dd35
HamEvo
b7da19c3474447409c7a5ea4dec02449--ee43268790f647eabdc26086c1c4dd35
43fe7e50daeb487598acdeb32dae5899
RX(theta₂₀)
ee43268790f647eabdc26086c1c4dd35--43fe7e50daeb487598acdeb32dae5899
8dd074b504594c50b958563ea7e3ff30
RY(theta₂₆)
43fe7e50daeb487598acdeb32dae5899--8dd074b504594c50b958563ea7e3ff30
ddfb050dc36546aba9f623b6895f67ca
RX(theta₃₂)
8dd074b504594c50b958563ea7e3ff30--ddfb050dc36546aba9f623b6895f67ca
6e0d4513a7054a259392aba33d9f4af5
HamEvo
ddfb050dc36546aba9f623b6895f67ca--6e0d4513a7054a259392aba33d9f4af5
6e0d4513a7054a259392aba33d9f4af5--b39b74c54adc46c9875b0fa0ba8dc617
48cb379fea344ba58215fb2c0aa54f2d
3cf00f2a0ca34622b9d6d68d4cb61610
RX(theta₃)
8aa52a1543214aed903b639f27a90d49--3cf00f2a0ca34622b9d6d68d4cb61610
530d3586fd0b4a1ead1e039b4eb7ff77
4
d5ef723177514abeaeaa2709182e630d
RY(theta₉)
3cf00f2a0ca34622b9d6d68d4cb61610--d5ef723177514abeaeaa2709182e630d
5014dc2a65f146f39763457ed62b9257
RX(theta₁₅)
d5ef723177514abeaeaa2709182e630d--5014dc2a65f146f39763457ed62b9257
a769fec316f141b68e7c77f05881be21
t = theta_t₀
5014dc2a65f146f39763457ed62b9257--a769fec316f141b68e7c77f05881be21
58efa220d9014bcaa332b1acd6e35449
RX(theta₂₁)
a769fec316f141b68e7c77f05881be21--58efa220d9014bcaa332b1acd6e35449
4291307cbfa441e38eef064ae4da77e9
RY(theta₂₇)
58efa220d9014bcaa332b1acd6e35449--4291307cbfa441e38eef064ae4da77e9
f85161f7e36f4aafa96ca6a2ca514c39
RX(theta₃₃)
4291307cbfa441e38eef064ae4da77e9--f85161f7e36f4aafa96ca6a2ca514c39
2cf446ae847a409eb454655cbd4eeda5
t = theta_t₁
f85161f7e36f4aafa96ca6a2ca514c39--2cf446ae847a409eb454655cbd4eeda5
2cf446ae847a409eb454655cbd4eeda5--48cb379fea344ba58215fb2c0aa54f2d
4601ef222eb84266af0ca017a24efaaf
1b664f72d858422f8e2242ce4588985c
RX(theta₄)
530d3586fd0b4a1ead1e039b4eb7ff77--1b664f72d858422f8e2242ce4588985c
1467745cf77c42ff90485156d41ba174
5
8d8ee173dd964960801c2f8994c4675c
RY(theta₁₀)
1b664f72d858422f8e2242ce4588985c--8d8ee173dd964960801c2f8994c4675c
0552aba2744642d5afd52e735491c22c
RX(theta₁₆)
8d8ee173dd964960801c2f8994c4675c--0552aba2744642d5afd52e735491c22c
d8f384cae2864454a376d69ca2124138
0552aba2744642d5afd52e735491c22c--d8f384cae2864454a376d69ca2124138
9f8a23eb15604156ad0e9ff596963da6
RX(theta₂₂)
d8f384cae2864454a376d69ca2124138--9f8a23eb15604156ad0e9ff596963da6
2f06b349257e49ac8274b72a1fc069de
RY(theta₂₈)
9f8a23eb15604156ad0e9ff596963da6--2f06b349257e49ac8274b72a1fc069de
15a12923f4f5498f835ebae9d7e00c26
RX(theta₃₄)
2f06b349257e49ac8274b72a1fc069de--15a12923f4f5498f835ebae9d7e00c26
25a3684bbe9b4d6493813647665386d4
15a12923f4f5498f835ebae9d7e00c26--25a3684bbe9b4d6493813647665386d4
25a3684bbe9b4d6493813647665386d4--4601ef222eb84266af0ca017a24efaaf
7079feccd16b4f049fdfaba5a80198c6
1d53b7be1b2749c998abde4985925c20
RX(theta₅)
1467745cf77c42ff90485156d41ba174--1d53b7be1b2749c998abde4985925c20
9f14650af55446508ee1bbe0c33ad86b
RY(theta₁₁)
1d53b7be1b2749c998abde4985925c20--9f14650af55446508ee1bbe0c33ad86b
05dbe2147017443f930666e5f4ed7ce3
RX(theta₁₇)
9f14650af55446508ee1bbe0c33ad86b--05dbe2147017443f930666e5f4ed7ce3
c87dbfc843bf44da8c4555bded0190bb
05dbe2147017443f930666e5f4ed7ce3--c87dbfc843bf44da8c4555bded0190bb
e43d7d69f6d0425e9c5fd396b6b51067
RX(theta₂₃)
c87dbfc843bf44da8c4555bded0190bb--e43d7d69f6d0425e9c5fd396b6b51067
a874cf324122457ba111783e31081282
RY(theta₂₉)
e43d7d69f6d0425e9c5fd396b6b51067--a874cf324122457ba111783e31081282
281119b34de640f18147095426fcd048
RX(theta₃₅)
a874cf324122457ba111783e31081282--281119b34de640f18147095426fcd048
43d596dd6f7e4a00a57d26b1cd5dcfb9
281119b34de640f18147095426fcd048--43d596dd6f7e4a00a57d26b1cd5dcfb9
43d596dd6f7e4a00a57d26b1cd5dcfb9--7079feccd16b4f049fdfaba5a80198c6
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_264f25f173ab46a69c3fc8e7fa1235cb
BPMA-1
cluster_f4bab094bdaf4ddcad2fffece4dd613d
BPMA-0
b1bc960ff0c34cf88098a8ab58d3c523
0
bfaa7587b9e9424ea2eea7a04f103b02
RX(iia_α₀₀)
b1bc960ff0c34cf88098a8ab58d3c523--bfaa7587b9e9424ea2eea7a04f103b02
d515b0d730a1480a8e3857e6fde8541d
1
3b76cb4dcdcc498f830d07cb9dc2814d
RY(iia_α₀₃)
bfaa7587b9e9424ea2eea7a04f103b02--3b76cb4dcdcc498f830d07cb9dc2814d
069796f0a7344c6d83aa4c01a9ced772
3b76cb4dcdcc498f830d07cb9dc2814d--069796f0a7344c6d83aa4c01a9ced772
f7d7ce01cc4948b7977ba80b271218ce
069796f0a7344c6d83aa4c01a9ced772--f7d7ce01cc4948b7977ba80b271218ce
83ecc4b321fa45baae711ee61daeee5a
RX(iia_γ₀₀)
f7d7ce01cc4948b7977ba80b271218ce--83ecc4b321fa45baae711ee61daeee5a
3cbe25aad20b438ebe52d842cff251e8
83ecc4b321fa45baae711ee61daeee5a--3cbe25aad20b438ebe52d842cff251e8
5fb19d48fce54c25b087586667f95b46
3cbe25aad20b438ebe52d842cff251e8--5fb19d48fce54c25b087586667f95b46
b458e1a716224e5385886fde369be6e5
RY(iia_β₀₃)
5fb19d48fce54c25b087586667f95b46--b458e1a716224e5385886fde369be6e5
7069ff68b9c04e329e3f967ed1a41dd9
RX(iia_β₀₀)
b458e1a716224e5385886fde369be6e5--7069ff68b9c04e329e3f967ed1a41dd9
63ed9aef77a54de68cdd2284ada7524b
RX(iia_α₁₀)
7069ff68b9c04e329e3f967ed1a41dd9--63ed9aef77a54de68cdd2284ada7524b
8d75e97d8e314eeb9393d3b51a475cbe
RY(iia_α₁₃)
63ed9aef77a54de68cdd2284ada7524b--8d75e97d8e314eeb9393d3b51a475cbe
f946fab675024b9e885b02d8d064d7ea
8d75e97d8e314eeb9393d3b51a475cbe--f946fab675024b9e885b02d8d064d7ea
a888cb06e59e49308451f81cc3c34216
f946fab675024b9e885b02d8d064d7ea--a888cb06e59e49308451f81cc3c34216
958de95162454eb990b92f753c84e2a0
RX(iia_γ₁₀)
a888cb06e59e49308451f81cc3c34216--958de95162454eb990b92f753c84e2a0
396d8241988f426ca208ae220829a044
958de95162454eb990b92f753c84e2a0--396d8241988f426ca208ae220829a044
f9db3a4bd6864a2c91cbf5b488a50169
396d8241988f426ca208ae220829a044--f9db3a4bd6864a2c91cbf5b488a50169
a4a0d32b33b040639452c446402ae52f
RY(iia_β₁₃)
f9db3a4bd6864a2c91cbf5b488a50169--a4a0d32b33b040639452c446402ae52f
707e68220abb4010b0ccb3fea0bd15a8
RX(iia_β₁₀)
a4a0d32b33b040639452c446402ae52f--707e68220abb4010b0ccb3fea0bd15a8
292d2142f05645549a2c86bed6bd3b30
707e68220abb4010b0ccb3fea0bd15a8--292d2142f05645549a2c86bed6bd3b30
da5d7df3b4b64a55ac32cd4ad36dcc16
62c848a968754b0b815c13fda5f71cf4
RX(iia_α₀₁)
d515b0d730a1480a8e3857e6fde8541d--62c848a968754b0b815c13fda5f71cf4
9ad7786e680447b3a751ea75b631b7de
2
0545c68d24484b0a9adbdd531afac15e
RY(iia_α₀₄)
62c848a968754b0b815c13fda5f71cf4--0545c68d24484b0a9adbdd531afac15e
82ac567702c04ad6a68db7a6d60be2b9
X
0545c68d24484b0a9adbdd531afac15e--82ac567702c04ad6a68db7a6d60be2b9
82ac567702c04ad6a68db7a6d60be2b9--069796f0a7344c6d83aa4c01a9ced772
2f2b257ba7904d218d6a7cfd7200e4e2
82ac567702c04ad6a68db7a6d60be2b9--2f2b257ba7904d218d6a7cfd7200e4e2
0312bf9a6b204c59b4a37174ac540cb6
RX(iia_γ₀₁)
2f2b257ba7904d218d6a7cfd7200e4e2--0312bf9a6b204c59b4a37174ac540cb6
127a7afc593c4e08894b3fc1032ff7f6
0312bf9a6b204c59b4a37174ac540cb6--127a7afc593c4e08894b3fc1032ff7f6
c572e679516c4f6b9e8ffce76e07ec6c
X
127a7afc593c4e08894b3fc1032ff7f6--c572e679516c4f6b9e8ffce76e07ec6c
c572e679516c4f6b9e8ffce76e07ec6c--5fb19d48fce54c25b087586667f95b46
f18de8c50d834410a77bc6d8d9c8c83f
RY(iia_β₀₄)
c572e679516c4f6b9e8ffce76e07ec6c--f18de8c50d834410a77bc6d8d9c8c83f
cd19c1444c3a406999cc4f6976800e72
RX(iia_β₀₁)
f18de8c50d834410a77bc6d8d9c8c83f--cd19c1444c3a406999cc4f6976800e72
f4289b6f825a43aa9b31f83bae25c979
RX(iia_α₁₁)
cd19c1444c3a406999cc4f6976800e72--f4289b6f825a43aa9b31f83bae25c979
b65c9ec4e7744fa2874002fd1fc16b84
RY(iia_α₁₄)
f4289b6f825a43aa9b31f83bae25c979--b65c9ec4e7744fa2874002fd1fc16b84
b1ba4aa49aca40f494babe25325b82c5
X
b65c9ec4e7744fa2874002fd1fc16b84--b1ba4aa49aca40f494babe25325b82c5
b1ba4aa49aca40f494babe25325b82c5--f946fab675024b9e885b02d8d064d7ea
f597c56722064092ae093a704c560410
b1ba4aa49aca40f494babe25325b82c5--f597c56722064092ae093a704c560410
4d7f4ba9c99d4977a7848a85e1ad9e15
RX(iia_γ₁₁)
f597c56722064092ae093a704c560410--4d7f4ba9c99d4977a7848a85e1ad9e15
ecab3d8a4ac64fde8c9a98328066c19e
4d7f4ba9c99d4977a7848a85e1ad9e15--ecab3d8a4ac64fde8c9a98328066c19e
0b8d35e50fe34d3693907b1c7381cb03
X
ecab3d8a4ac64fde8c9a98328066c19e--0b8d35e50fe34d3693907b1c7381cb03
0b8d35e50fe34d3693907b1c7381cb03--f9db3a4bd6864a2c91cbf5b488a50169
46d11b0be09044ac87b75437003ebc3b
RY(iia_β₁₄)
0b8d35e50fe34d3693907b1c7381cb03--46d11b0be09044ac87b75437003ebc3b
f1899b7a900546598006fc285cd826b3
RX(iia_β₁₁)
46d11b0be09044ac87b75437003ebc3b--f1899b7a900546598006fc285cd826b3
f1899b7a900546598006fc285cd826b3--da5d7df3b4b64a55ac32cd4ad36dcc16
a4435697774c457ea8fe2ac1f0d01fee
1e76785140af4f24aebcfb15c37c328b
RX(iia_α₀₂)
9ad7786e680447b3a751ea75b631b7de--1e76785140af4f24aebcfb15c37c328b
034ae51fb7244d94bd063abce1be53de
RY(iia_α₀₅)
1e76785140af4f24aebcfb15c37c328b--034ae51fb7244d94bd063abce1be53de
104e729775884e09a30e77bba3fbb7d8
034ae51fb7244d94bd063abce1be53de--104e729775884e09a30e77bba3fbb7d8
6ffcc0d98b77430f997341d507422e5c
X
104e729775884e09a30e77bba3fbb7d8--6ffcc0d98b77430f997341d507422e5c
6ffcc0d98b77430f997341d507422e5c--2f2b257ba7904d218d6a7cfd7200e4e2
9896811cc74042879191e3cc69868772
RX(iia_γ₀₂)
6ffcc0d98b77430f997341d507422e5c--9896811cc74042879191e3cc69868772
43dfa6d5fa7e4d11a520ac47f106e626
X
9896811cc74042879191e3cc69868772--43dfa6d5fa7e4d11a520ac47f106e626
43dfa6d5fa7e4d11a520ac47f106e626--127a7afc593c4e08894b3fc1032ff7f6
37eddd3060ba4b93914f8918749cc3ab
43dfa6d5fa7e4d11a520ac47f106e626--37eddd3060ba4b93914f8918749cc3ab
cd9e0ffa48c2431b989c7d6ebbfe6184
RY(iia_β₀₅)
37eddd3060ba4b93914f8918749cc3ab--cd9e0ffa48c2431b989c7d6ebbfe6184
5bc237a76e43476badaa858ff2edf2f4
RX(iia_β₀₂)
cd9e0ffa48c2431b989c7d6ebbfe6184--5bc237a76e43476badaa858ff2edf2f4
45de906186e943cd828147e3ca3d632d
RX(iia_α₁₂)
5bc237a76e43476badaa858ff2edf2f4--45de906186e943cd828147e3ca3d632d
1afbcd183ca4496891df30ac2b2e75a7
RY(iia_α₁₅)
45de906186e943cd828147e3ca3d632d--1afbcd183ca4496891df30ac2b2e75a7
29ac60a2bb894373b1bb47e1c09ac45a
1afbcd183ca4496891df30ac2b2e75a7--29ac60a2bb894373b1bb47e1c09ac45a
0ebdea14e8fe4e8b9dfee02b0d1f01b2
X
29ac60a2bb894373b1bb47e1c09ac45a--0ebdea14e8fe4e8b9dfee02b0d1f01b2
0ebdea14e8fe4e8b9dfee02b0d1f01b2--f597c56722064092ae093a704c560410
df18f73b0e37400f9f45304818c337e3
RX(iia_γ₁₂)
0ebdea14e8fe4e8b9dfee02b0d1f01b2--df18f73b0e37400f9f45304818c337e3
b65c03fbc81e4bcca14d19bc7ec181c9
X
df18f73b0e37400f9f45304818c337e3--b65c03fbc81e4bcca14d19bc7ec181c9
b65c03fbc81e4bcca14d19bc7ec181c9--ecab3d8a4ac64fde8c9a98328066c19e
03ecf46c25bd413d850c63901094eb49
b65c03fbc81e4bcca14d19bc7ec181c9--03ecf46c25bd413d850c63901094eb49
fd7ecacea09147878b8b886a0e3b00af
RY(iia_β₁₅)
03ecf46c25bd413d850c63901094eb49--fd7ecacea09147878b8b886a0e3b00af
07e7ab092287445589f7c19eebeb2167
RX(iia_β₁₂)
fd7ecacea09147878b8b886a0e3b00af--07e7ab092287445589f7c19eebeb2167
07e7ab092287445589f7c19eebeb2167--a4435697774c457ea8fe2ac1f0d01fee