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_0917276791dc4dac8b23a3a3e26d872a
Constant Chebyshev FM
cluster_fc96214a27f544248245caf7a8dc3000
Constant Fourier FM
2f813eec35ee47568801aed0b1bcac89
0
a365487990bf46328c6717a53005249b
RX(phi)
2f813eec35ee47568801aed0b1bcac89--a365487990bf46328c6717a53005249b
3add67d1b7bc4894b33a163284e4b796
1
238917dffdcd4a3eade12a743744d871
RX(acos(phi))
a365487990bf46328c6717a53005249b--238917dffdcd4a3eade12a743744d871
f043c4671f004fcca1fff389bdf028de
238917dffdcd4a3eade12a743744d871--f043c4671f004fcca1fff389bdf028de
ac3d918de2a64d2cbf7d3de06384343e
abd9a6ca803e49eb8f87fa1ec7dbae5d
RX(phi)
3add67d1b7bc4894b33a163284e4b796--abd9a6ca803e49eb8f87fa1ec7dbae5d
f1a5477a29e1444e9e6ccedbef109194
2
9151a978321f4c009e73c5103ecda385
RX(acos(phi))
abd9a6ca803e49eb8f87fa1ec7dbae5d--9151a978321f4c009e73c5103ecda385
9151a978321f4c009e73c5103ecda385--ac3d918de2a64d2cbf7d3de06384343e
547d93a4920e44beb3926781cf35b4be
1f73422922f142e3ad07740a055bbbde
RX(phi)
f1a5477a29e1444e9e6ccedbef109194--1f73422922f142e3ad07740a055bbbde
240f996f4a8c4ae4a3a3e72fba552124
RX(acos(phi))
1f73422922f142e3ad07740a055bbbde--240f996f4a8c4ae4a3a3e72fba552124
240f996f4a8c4ae4a3a3e72fba552124--547d93a4920e44beb3926781cf35b4be
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_79db4f32a589482296049edf74db2394
Constant <function custom_fn at 0x7f15750d0280> FM
cluster_f3dde1898f4f4c4bbdac3ff2ae03c2fd
Constant asin FM
941a23c1063747408d9be91a57676eae
0
4ac61c6b38d747009508cdf82cb3311c
RX(asin(phi))
941a23c1063747408d9be91a57676eae--4ac61c6b38d747009508cdf82cb3311c
c5bba4b4e5f74e54b841290a840ce6a4
1
d73c401aea8844c1975d58511ff7ca58
RX(phi**2 + asin(phi))
4ac61c6b38d747009508cdf82cb3311c--d73c401aea8844c1975d58511ff7ca58
77fd7af537864705bfeacae386441dfb
d73c401aea8844c1975d58511ff7ca58--77fd7af537864705bfeacae386441dfb
1f97367a68c945ba98dfc406171efd9b
3fea608469c14821a4fb8bf9406eca05
RX(asin(phi))
c5bba4b4e5f74e54b841290a840ce6a4--3fea608469c14821a4fb8bf9406eca05
ae34d348fc024db1bb6d10007555857d
2
c512492bda0a4808a2dea6f1cab98802
RX(phi**2 + asin(phi))
3fea608469c14821a4fb8bf9406eca05--c512492bda0a4808a2dea6f1cab98802
c512492bda0a4808a2dea6f1cab98802--1f97367a68c945ba98dfc406171efd9b
c3330da8a9a24d55afed22636bb6e4b9
3955349e3cbe4ddab86a13a169c083ee
RX(asin(phi))
ae34d348fc024db1bb6d10007555857d--3955349e3cbe4ddab86a13a169c083ee
6e80cb6f987f4da3a8ab37edfce504fd
RX(phi**2 + asin(phi))
3955349e3cbe4ddab86a13a169c083ee--6e80cb6f987f4da3a8ab37edfce504fd
6e80cb6f987f4da3a8ab37edfce504fd--c3330da8a9a24d55afed22636bb6e4b9
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_1560cba37ca640f0ad6cb626add77b51
Exponential Fourier FM
cluster_d4d27b4579184601afdd6e2ba8cd94d7
Constant Fourier FM
cluster_f9c5d6c95b77494bb4b7d285d7308e17
Tower Fourier FM
1c838c7031834426a68b85abaa0c844e
0
62f9081d8eac44c88c0a425f720cfc35
RX(phi)
1c838c7031834426a68b85abaa0c844e--62f9081d8eac44c88c0a425f720cfc35
5dfc69529456400a82db7cf5bec01922
1
bbeab2a6016a4c61a38fa28e3644b718
RX(1.0*phi)
62f9081d8eac44c88c0a425f720cfc35--bbeab2a6016a4c61a38fa28e3644b718
bfdca5f4df3449169ee24d236ed35226
RX(1.0*phi)
bbeab2a6016a4c61a38fa28e3644b718--bfdca5f4df3449169ee24d236ed35226
109dea2903144232bd6e0548c399d558
bfdca5f4df3449169ee24d236ed35226--109dea2903144232bd6e0548c399d558
e8874a4d1d694d03b9b173ae4b7f4cb5
879bd669df5242f88b49edcc7a27e75e
RX(phi)
5dfc69529456400a82db7cf5bec01922--879bd669df5242f88b49edcc7a27e75e
b9708535ea9a4dcd900aacd5c00d5d36
2
8158941aede745279bfed363dea3c715
RX(2.0*phi)
879bd669df5242f88b49edcc7a27e75e--8158941aede745279bfed363dea3c715
b92cfbe375534903a958ce7e3f55e1d5
RX(2.0*phi)
8158941aede745279bfed363dea3c715--b92cfbe375534903a958ce7e3f55e1d5
b92cfbe375534903a958ce7e3f55e1d5--e8874a4d1d694d03b9b173ae4b7f4cb5
49ccafab2d9a470e87e0fbcb031b8ea5
28d53cd076ea496ba2dea5872edc2865
RX(phi)
b9708535ea9a4dcd900aacd5c00d5d36--28d53cd076ea496ba2dea5872edc2865
d143f21abfd74309a0c020ac83b460c0
3
5e9b27cfe1a04ccc931b15d4ddebab63
RX(3.0*phi)
28d53cd076ea496ba2dea5872edc2865--5e9b27cfe1a04ccc931b15d4ddebab63
ed41f8ccb00a48afb19f8f7ca3c89d7a
RX(4.0*phi)
5e9b27cfe1a04ccc931b15d4ddebab63--ed41f8ccb00a48afb19f8f7ca3c89d7a
ed41f8ccb00a48afb19f8f7ca3c89d7a--49ccafab2d9a470e87e0fbcb031b8ea5
8c690ab3529f43269f49ce47c61d757c
4c372d87e2cd47a892f452215ab63233
RX(phi)
d143f21abfd74309a0c020ac83b460c0--4c372d87e2cd47a892f452215ab63233
d685e3830ebf47e38c7ef3e23a93ed40
4
b95ddfbecc8a49e78e1405943c14b3d4
RX(4.0*phi)
4c372d87e2cd47a892f452215ab63233--b95ddfbecc8a49e78e1405943c14b3d4
33366284509d450c89ff32dd32a5bc56
RX(8.0*phi)
b95ddfbecc8a49e78e1405943c14b3d4--33366284509d450c89ff32dd32a5bc56
33366284509d450c89ff32dd32a5bc56--8c690ab3529f43269f49ce47c61d757c
dd9c630b5a604e2cbb138125067f7868
410ee718287445d982bb38853378de83
RX(phi)
d685e3830ebf47e38c7ef3e23a93ed40--410ee718287445d982bb38853378de83
c37b4a7d00bd4b9488b0cae14b4230b5
RX(5.0*phi)
410ee718287445d982bb38853378de83--c37b4a7d00bd4b9488b0cae14b4230b5
7ab296aa1d0549c6aa5c3fb9feab5693
RX(16.0*phi)
c37b4a7d00bd4b9488b0cae14b4230b5--7ab296aa1d0549c6aa5c3fb9feab5693
7ab296aa1d0549c6aa5c3fb9feab5693--dd9c630b5a604e2cbb138125067f7868
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
8cbadfb2a044407b8a785112a7aad144
0
0a5185c45eb14f79ae5453c8e998cb27
RX(1.0*acos(phi))
8cbadfb2a044407b8a785112a7aad144--0a5185c45eb14f79ae5453c8e998cb27
048121277f094fa79ac9aa54a8fbcf4a
1
a2cef0450956471db6664b17a21d9bbe
0a5185c45eb14f79ae5453c8e998cb27--a2cef0450956471db6664b17a21d9bbe
bb601016823f4b038eaa4fd764fef4a5
d93b7711fc534857bbe179db687f9520
RX(1.414*acos(phi))
048121277f094fa79ac9aa54a8fbcf4a--d93b7711fc534857bbe179db687f9520
2929525fc98c4939b92b1f80d283bd27
2
d93b7711fc534857bbe179db687f9520--bb601016823f4b038eaa4fd764fef4a5
231940bbd186411f8afdea02dc15f597
2e8e679bd5fe46dcaaab03320dab93a0
RX(1.732*acos(phi))
2929525fc98c4939b92b1f80d283bd27--2e8e679bd5fe46dcaaab03320dab93a0
81fe69f61bcb452db485d2c7d397c465
3
2e8e679bd5fe46dcaaab03320dab93a0--231940bbd186411f8afdea02dc15f597
09a44333d35049ed8369601e36bd5adb
3ecfdc4aee6345d19ab8217d1a2b75c3
RX(2.0*acos(phi))
81fe69f61bcb452db485d2c7d397c465--3ecfdc4aee6345d19ab8217d1a2b75c3
a0dd10100ead4fd8915fddbcf086f763
4
3ecfdc4aee6345d19ab8217d1a2b75c3--09a44333d35049ed8369601e36bd5adb
facfe3b78ded46fba54f22d11d3162a1
8171db3db7b44937859749883f81f0b9
RX(2.236*acos(phi))
a0dd10100ead4fd8915fddbcf086f763--8171db3db7b44937859749883f81f0b9
8171db3db7b44937859749883f81f0b9--facfe3b78ded46fba54f22d11d3162a1
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
6790b5f2e0434a1fabb43d4b7c10571c
0
459925192bdd431391cfd4973cf1b580
RX(1.0*phi*w₀)
6790b5f2e0434a1fabb43d4b7c10571c--459925192bdd431391cfd4973cf1b580
d9bfe7713be84bd38bef8336fb03cbe1
1
0c72edf3f0674d40a8184a10b1f208a7
459925192bdd431391cfd4973cf1b580--0c72edf3f0674d40a8184a10b1f208a7
7daddbc885fc4a3d945f56b82b227a37
d764c7be5d054784a50eeccb41e3acce
RX(2.0*phi*w₁)
d9bfe7713be84bd38bef8336fb03cbe1--d764c7be5d054784a50eeccb41e3acce
89f4ccc82346439e88bf67321c760c62
2
d764c7be5d054784a50eeccb41e3acce--7daddbc885fc4a3d945f56b82b227a37
a7614031f8ab4aba9301f40653ec584e
37c3902b796d49bcb6a1a7c6eb93a702
RX(4.0*phi*w₂)
89f4ccc82346439e88bf67321c760c62--37c3902b796d49bcb6a1a7c6eb93a702
4cc94385109445d2a0b046034e8cd5e5
3
37c3902b796d49bcb6a1a7c6eb93a702--a7614031f8ab4aba9301f40653ec584e
a745bb5f1ba64ea28fcde9340ae027e0
45b8502fa63d487f8af8af07793babea
RX(8.0*phi*w₃)
4cc94385109445d2a0b046034e8cd5e5--45b8502fa63d487f8af8af07793babea
e1e7205497ab475886df323488679415
4
45b8502fa63d487f8af8af07793babea--a745bb5f1ba64ea28fcde9340ae027e0
a685b2e98bb14106afd4f3b5eaf66c21
d159d17881a24644bfc9b25cc5f0b5e8
RX(16.0*phi*w₄)
e1e7205497ab475886df323488679415--d159d17881a24644bfc9b25cc5f0b5e8
d159d17881a24644bfc9b25cc5f0b5e8--a685b2e98bb14106afd4f3b5eaf66c21
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
32e850d2af634848bb37bfb52258518a
0
89754395eff54c2d9e9f753092fd46bd
RY(80.0*acos(w₄*(0.667*x + 1.667)))
32e850d2af634848bb37bfb52258518a--89754395eff54c2d9e9f753092fd46bd
11ff6b6ae3464009bbbfcf0e67164f89
1
25682354c24b4c37b2aa950bc7b6baa8
89754395eff54c2d9e9f753092fd46bd--25682354c24b4c37b2aa950bc7b6baa8
397f70cd64df4552b6e8aa50a8eb2ef0
23cc2ef27b714daba78147534cce540e
RY(40.0*acos(w₃*(0.667*x + 1.667)))
11ff6b6ae3464009bbbfcf0e67164f89--23cc2ef27b714daba78147534cce540e
5f0995bf54d74a2c96aa869e8b954213
2
23cc2ef27b714daba78147534cce540e--397f70cd64df4552b6e8aa50a8eb2ef0
91b90c132d4a4e6eb4b187578306ffdc
2ae818a9f7424ee6a60071808f6ac9c9
RY(20.0*acos(w₂*(0.667*x + 1.667)))
5f0995bf54d74a2c96aa869e8b954213--2ae818a9f7424ee6a60071808f6ac9c9
cdde8237bc974803b79e040e2d832375
3
2ae818a9f7424ee6a60071808f6ac9c9--91b90c132d4a4e6eb4b187578306ffdc
cfbe319d57294ce19365b2024d9b99c3
8a739a8198864e91a0d3b24d286f5dcd
RY(10.0*acos(w₁*(0.667*x + 1.667)))
cdde8237bc974803b79e040e2d832375--8a739a8198864e91a0d3b24d286f5dcd
451c8b1cd1b1400e80501fd4fc2e727f
4
8a739a8198864e91a0d3b24d286f5dcd--cfbe319d57294ce19365b2024d9b99c3
edb83d36d6c34a389333adf696527d40
ccacf225b38841b9959ea188836f764a
RY(5.0*acos(w₀*(0.667*x + 1.667)))
451c8b1cd1b1400e80501fd4fc2e727f--ccacf225b38841b9959ea188836f764a
ccacf225b38841b9959ea188836f764a--edb83d36d6c34a389333adf696527d40
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
859ecbed05294c25aa02296f897c889f
0
432e69f1328f4961be4971840bfe1216
RX(theta₀)
859ecbed05294c25aa02296f897c889f--432e69f1328f4961be4971840bfe1216
4d6c18b57e004e5da8f4a4c5f16c8e8f
1
c34575ba3ea247c69e1278e685b6a5f5
RY(theta₃)
432e69f1328f4961be4971840bfe1216--c34575ba3ea247c69e1278e685b6a5f5
0cb448fe23954a79a0f6ca72c980bc31
RX(theta₆)
c34575ba3ea247c69e1278e685b6a5f5--0cb448fe23954a79a0f6ca72c980bc31
f0ba6dd0619845b6a539962f604740d0
0cb448fe23954a79a0f6ca72c980bc31--f0ba6dd0619845b6a539962f604740d0
8b2e50df965a4743ab4de26c7299bf7f
f0ba6dd0619845b6a539962f604740d0--8b2e50df965a4743ab4de26c7299bf7f
99bd0f9601c84ba4aee8fe06db314aba
RX(theta₉)
8b2e50df965a4743ab4de26c7299bf7f--99bd0f9601c84ba4aee8fe06db314aba
92fa0489c33c48e29060789ac7c1be0c
RY(theta₁₂)
99bd0f9601c84ba4aee8fe06db314aba--92fa0489c33c48e29060789ac7c1be0c
54eccd76095b4b4e9949369445504a5d
RX(theta₁₅)
92fa0489c33c48e29060789ac7c1be0c--54eccd76095b4b4e9949369445504a5d
7125e7d957f0476d8014fbebe8996d2d
54eccd76095b4b4e9949369445504a5d--7125e7d957f0476d8014fbebe8996d2d
07986a91cbc647f794602152cf8bb4b7
7125e7d957f0476d8014fbebe8996d2d--07986a91cbc647f794602152cf8bb4b7
a4b87ea6ab9347cb8f3cfd7b9eb41cc2
07986a91cbc647f794602152cf8bb4b7--a4b87ea6ab9347cb8f3cfd7b9eb41cc2
7008a91b96644926a212701cb00e1cb2
b25da305dfa848dabd5bb12cbf611cee
RX(theta₁)
4d6c18b57e004e5da8f4a4c5f16c8e8f--b25da305dfa848dabd5bb12cbf611cee
0a5078bf2afb48a6ab978f308c19ccd6
2
d75805bfce3a418f92ee2bf581c839f0
RY(theta₄)
b25da305dfa848dabd5bb12cbf611cee--d75805bfce3a418f92ee2bf581c839f0
371b11f2dfb3421f96b8da4d184ead7c
RX(theta₇)
d75805bfce3a418f92ee2bf581c839f0--371b11f2dfb3421f96b8da4d184ead7c
56dd12c0a2c64f409117a2edc575c3d5
X
371b11f2dfb3421f96b8da4d184ead7c--56dd12c0a2c64f409117a2edc575c3d5
56dd12c0a2c64f409117a2edc575c3d5--f0ba6dd0619845b6a539962f604740d0
644631644f1645f58ac2d00c36591c94
56dd12c0a2c64f409117a2edc575c3d5--644631644f1645f58ac2d00c36591c94
a7002c802fbc4a21b4c1d9b46d401421
RX(theta₁₀)
644631644f1645f58ac2d00c36591c94--a7002c802fbc4a21b4c1d9b46d401421
efced1831ed640e5b499514545976cbb
RY(theta₁₃)
a7002c802fbc4a21b4c1d9b46d401421--efced1831ed640e5b499514545976cbb
1de6a9097ed14f8f9f346b2e6131d3da
RX(theta₁₆)
efced1831ed640e5b499514545976cbb--1de6a9097ed14f8f9f346b2e6131d3da
ee7b44d780fc4a42a6a53e97741c6803
X
1de6a9097ed14f8f9f346b2e6131d3da--ee7b44d780fc4a42a6a53e97741c6803
ee7b44d780fc4a42a6a53e97741c6803--7125e7d957f0476d8014fbebe8996d2d
ccb3bb58fbfe4f13bf7d62a25a6fc6ea
ee7b44d780fc4a42a6a53e97741c6803--ccb3bb58fbfe4f13bf7d62a25a6fc6ea
ccb3bb58fbfe4f13bf7d62a25a6fc6ea--7008a91b96644926a212701cb00e1cb2
9f807e9edbf94bb2a86761489b7c3d38
fae337e9e7d643a4b01226fc66a13e4a
RX(theta₂)
0a5078bf2afb48a6ab978f308c19ccd6--fae337e9e7d643a4b01226fc66a13e4a
4f53d602e9ad4cd8a0dc91332b2b17e7
RY(theta₅)
fae337e9e7d643a4b01226fc66a13e4a--4f53d602e9ad4cd8a0dc91332b2b17e7
3c309937859b417da400071dcbe57a9f
RX(theta₈)
4f53d602e9ad4cd8a0dc91332b2b17e7--3c309937859b417da400071dcbe57a9f
32accdfdfe6044d9b59a24f27d09bba6
3c309937859b417da400071dcbe57a9f--32accdfdfe6044d9b59a24f27d09bba6
f043f1730df7423ea9c21c7f670eda6e
X
32accdfdfe6044d9b59a24f27d09bba6--f043f1730df7423ea9c21c7f670eda6e
f043f1730df7423ea9c21c7f670eda6e--644631644f1645f58ac2d00c36591c94
94e04e1ef0d946b89ba65f8838b10e85
RX(theta₁₁)
f043f1730df7423ea9c21c7f670eda6e--94e04e1ef0d946b89ba65f8838b10e85
24d4184af6154735958f5a0a50861a9c
RY(theta₁₄)
94e04e1ef0d946b89ba65f8838b10e85--24d4184af6154735958f5a0a50861a9c
2ff4ea5ea5754fc1b685cafcd8cd2eb9
RX(theta₁₇)
24d4184af6154735958f5a0a50861a9c--2ff4ea5ea5754fc1b685cafcd8cd2eb9
cdc12a0ccd154846a1ce7c366343cd14
2ff4ea5ea5754fc1b685cafcd8cd2eb9--cdc12a0ccd154846a1ce7c366343cd14
4c6a9500e9e34cbcbeae3109797e62e7
X
cdc12a0ccd154846a1ce7c366343cd14--4c6a9500e9e34cbcbeae3109797e62e7
4c6a9500e9e34cbcbeae3109797e62e7--ccb3bb58fbfe4f13bf7d62a25a6fc6ea
4c6a9500e9e34cbcbeae3109797e62e7--9f807e9edbf94bb2a86761489b7c3d38
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
446e078c6b3a4b748620985dc0cb0274
0
149be61189764c249ce5bd0a3028ba95
RX(phi₀)
446e078c6b3a4b748620985dc0cb0274--149be61189764c249ce5bd0a3028ba95
9e775bfb38864f04ae20bf7324cd0823
1
c511b6b04db041e5a1a41197cb4dbbb2
RY(phi₃)
149be61189764c249ce5bd0a3028ba95--c511b6b04db041e5a1a41197cb4dbbb2
94995513c3c440f6ad2f54e496cfe486
RX(phi₆)
c511b6b04db041e5a1a41197cb4dbbb2--94995513c3c440f6ad2f54e496cfe486
162807d1ad9c452097981f05daec7c52
94995513c3c440f6ad2f54e496cfe486--162807d1ad9c452097981f05daec7c52
78e965fa4a754414a0f0d3ba17884c34
162807d1ad9c452097981f05daec7c52--78e965fa4a754414a0f0d3ba17884c34
2f09eca360834acbac49bc1c8b9b19e3
RX(phi₉)
78e965fa4a754414a0f0d3ba17884c34--2f09eca360834acbac49bc1c8b9b19e3
7635d615cbd34ea3ac358d14c65f8a1e
RY(phi₁₂)
2f09eca360834acbac49bc1c8b9b19e3--7635d615cbd34ea3ac358d14c65f8a1e
0ee8b975a51e4ff2884dd567b3011e1c
RX(phi₁₅)
7635d615cbd34ea3ac358d14c65f8a1e--0ee8b975a51e4ff2884dd567b3011e1c
1d5ea10b8220496f82fa6a3c374cf200
0ee8b975a51e4ff2884dd567b3011e1c--1d5ea10b8220496f82fa6a3c374cf200
6cb3e9970569428fa23fad0b5208a439
1d5ea10b8220496f82fa6a3c374cf200--6cb3e9970569428fa23fad0b5208a439
cd11ebea5e0d4b0cb941a7505c713a4d
6cb3e9970569428fa23fad0b5208a439--cd11ebea5e0d4b0cb941a7505c713a4d
1d91755510854b7a9253fdbc52a8de97
c143d6aa0f4d4059b4d4dcf456f51d12
RX(phi₁)
9e775bfb38864f04ae20bf7324cd0823--c143d6aa0f4d4059b4d4dcf456f51d12
fd674b235bd64aad9085e855f166d2d7
2
3a077e5d25674502a42d2b99cde2fafd
RY(phi₄)
c143d6aa0f4d4059b4d4dcf456f51d12--3a077e5d25674502a42d2b99cde2fafd
6c7bf0606c3548069f905176d83d3d19
RX(phi₇)
3a077e5d25674502a42d2b99cde2fafd--6c7bf0606c3548069f905176d83d3d19
164f65a180864624adebab18269d2bef
PHASE(phi_ent₀)
6c7bf0606c3548069f905176d83d3d19--164f65a180864624adebab18269d2bef
164f65a180864624adebab18269d2bef--162807d1ad9c452097981f05daec7c52
fded0f1380914a48803103c699211769
164f65a180864624adebab18269d2bef--fded0f1380914a48803103c699211769
833b1fda350f4b4abac6d36a0d84822f
RX(phi₁₀)
fded0f1380914a48803103c699211769--833b1fda350f4b4abac6d36a0d84822f
0172ccb75e4145d4a7945598565dcdb9
RY(phi₁₃)
833b1fda350f4b4abac6d36a0d84822f--0172ccb75e4145d4a7945598565dcdb9
7842a7ca2d404ffb962fe1d69c28df2f
RX(phi₁₆)
0172ccb75e4145d4a7945598565dcdb9--7842a7ca2d404ffb962fe1d69c28df2f
ce3fce8e0b2049ff8b0723c44a095f19
PHASE(phi_ent₂)
7842a7ca2d404ffb962fe1d69c28df2f--ce3fce8e0b2049ff8b0723c44a095f19
ce3fce8e0b2049ff8b0723c44a095f19--1d5ea10b8220496f82fa6a3c374cf200
fb1734d9016746c4b0987a06d93f9bb2
ce3fce8e0b2049ff8b0723c44a095f19--fb1734d9016746c4b0987a06d93f9bb2
fb1734d9016746c4b0987a06d93f9bb2--1d91755510854b7a9253fdbc52a8de97
93dca9288e25433784044aee1f36a160
b5e9ece2168b49a487828387226f516e
RX(phi₂)
fd674b235bd64aad9085e855f166d2d7--b5e9ece2168b49a487828387226f516e
57f41f2c1f98410c93cacce6e44e816f
RY(phi₅)
b5e9ece2168b49a487828387226f516e--57f41f2c1f98410c93cacce6e44e816f
9c881bece7eb46b4bfe51040b23561a4
RX(phi₈)
57f41f2c1f98410c93cacce6e44e816f--9c881bece7eb46b4bfe51040b23561a4
03a82794f23241a09a7c4cb526d2837f
9c881bece7eb46b4bfe51040b23561a4--03a82794f23241a09a7c4cb526d2837f
7c96f09990d94bfda509a8bb91cf1fd5
PHASE(phi_ent₁)
03a82794f23241a09a7c4cb526d2837f--7c96f09990d94bfda509a8bb91cf1fd5
7c96f09990d94bfda509a8bb91cf1fd5--fded0f1380914a48803103c699211769
5549fdcbed1f4b1c94b95e3cfc73ca86
RX(phi₁₁)
7c96f09990d94bfda509a8bb91cf1fd5--5549fdcbed1f4b1c94b95e3cfc73ca86
fb863b5009a949b38c52f0df942d9db0
RY(phi₁₄)
5549fdcbed1f4b1c94b95e3cfc73ca86--fb863b5009a949b38c52f0df942d9db0
1a04ba9fe5804676a0a99d8aca091f7e
RX(phi₁₇)
fb863b5009a949b38c52f0df942d9db0--1a04ba9fe5804676a0a99d8aca091f7e
921899346b0346bd8ff2f3634aed3f0a
1a04ba9fe5804676a0a99d8aca091f7e--921899346b0346bd8ff2f3634aed3f0a
956e6c384019462cb4c4f29e208965fe
PHASE(phi_ent₃)
921899346b0346bd8ff2f3634aed3f0a--956e6c384019462cb4c4f29e208965fe
956e6c384019462cb4c4f29e208965fe--fb1734d9016746c4b0987a06d93f9bb2
956e6c384019462cb4c4f29e208965fe--93dca9288e25433784044aee1f36a160
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_e3a0f57aa2f84740b44eee6f22fd7456
cluster_11fa6def8e2e48d4a5c28810fe69829d
86d6e89d466047a8ac0225675fbd3420
0
e9284d517c544eba8ba0135cfef23524
RX(theta₀)
86d6e89d466047a8ac0225675fbd3420--e9284d517c544eba8ba0135cfef23524
e85f3d9222d04462a4983d4087ad600b
1
e063a0c8f16549a88fbbd843d871dfe4
RY(theta₃)
e9284d517c544eba8ba0135cfef23524--e063a0c8f16549a88fbbd843d871dfe4
871b43ef86864fc989b38ddd85db0f09
RX(theta₆)
e063a0c8f16549a88fbbd843d871dfe4--871b43ef86864fc989b38ddd85db0f09
04c188cab597477abd7b265692975561
HamEvo
871b43ef86864fc989b38ddd85db0f09--04c188cab597477abd7b265692975561
05bad2d9cd8646d6a10915c729714a32
RX(theta₉)
04c188cab597477abd7b265692975561--05bad2d9cd8646d6a10915c729714a32
8bf000ef2abc4261bb47bc5f18ae541f
RY(theta₁₂)
05bad2d9cd8646d6a10915c729714a32--8bf000ef2abc4261bb47bc5f18ae541f
b37a46ccd3404b198a709326a9a009e4
RX(theta₁₅)
8bf000ef2abc4261bb47bc5f18ae541f--b37a46ccd3404b198a709326a9a009e4
aedbb141c2ff44c8968eecf503c2290f
HamEvo
b37a46ccd3404b198a709326a9a009e4--aedbb141c2ff44c8968eecf503c2290f
9c9154b1559c4dc9b1c409ede942430f
aedbb141c2ff44c8968eecf503c2290f--9c9154b1559c4dc9b1c409ede942430f
114ec343c82a4b1bba2f6a1999bc5c06
b593c817ec9145a5b6cd695896fb86ce
RX(theta₁)
e85f3d9222d04462a4983d4087ad600b--b593c817ec9145a5b6cd695896fb86ce
b44eeaa8745145e88f6144903101eb10
2
4a3791a481004651b164195b0798678a
RY(theta₄)
b593c817ec9145a5b6cd695896fb86ce--4a3791a481004651b164195b0798678a
cb2421487e1a4019abaea3282bff3194
RX(theta₇)
4a3791a481004651b164195b0798678a--cb2421487e1a4019abaea3282bff3194
5c9ce3b9d8174be1bb2e8c7a1ab96d39
t = theta_t₀
cb2421487e1a4019abaea3282bff3194--5c9ce3b9d8174be1bb2e8c7a1ab96d39
25891fb2b7ba4b1abf79ec9e78618fa5
RX(theta₁₀)
5c9ce3b9d8174be1bb2e8c7a1ab96d39--25891fb2b7ba4b1abf79ec9e78618fa5
e23b12d0e4734681afe32c28c4c2add2
RY(theta₁₃)
25891fb2b7ba4b1abf79ec9e78618fa5--e23b12d0e4734681afe32c28c4c2add2
a81508b733ae4f87991032192ea7be0f
RX(theta₁₆)
e23b12d0e4734681afe32c28c4c2add2--a81508b733ae4f87991032192ea7be0f
5c282420a40e4554a4f31bd81e744f2b
t = theta_t₁
a81508b733ae4f87991032192ea7be0f--5c282420a40e4554a4f31bd81e744f2b
5c282420a40e4554a4f31bd81e744f2b--114ec343c82a4b1bba2f6a1999bc5c06
e76ba1ec1fd24177bc5fc6a56e9df957
efaf2ac0ab9c492782a03a056170dec6
RX(theta₂)
b44eeaa8745145e88f6144903101eb10--efaf2ac0ab9c492782a03a056170dec6
742d54da32ef42e8b878d64c4b581a79
RY(theta₅)
efaf2ac0ab9c492782a03a056170dec6--742d54da32ef42e8b878d64c4b581a79
f064d50a6d4e4d4f98e02b478e1fe6b3
RX(theta₈)
742d54da32ef42e8b878d64c4b581a79--f064d50a6d4e4d4f98e02b478e1fe6b3
71f2323df51e4ec887f4520cc5d69d8f
f064d50a6d4e4d4f98e02b478e1fe6b3--71f2323df51e4ec887f4520cc5d69d8f
e798fc6a345a4af4982bcaacb9554efb
RX(theta₁₁)
71f2323df51e4ec887f4520cc5d69d8f--e798fc6a345a4af4982bcaacb9554efb
b8a68594a1714aac995b7115eda0d052
RY(theta₁₄)
e798fc6a345a4af4982bcaacb9554efb--b8a68594a1714aac995b7115eda0d052
25c038a1ff3d43b59ffcb1c601437cf9
RX(theta₁₇)
b8a68594a1714aac995b7115eda0d052--25c038a1ff3d43b59ffcb1c601437cf9
521cc06dc7da4236baa4ac361b25ab56
25c038a1ff3d43b59ffcb1c601437cf9--521cc06dc7da4236baa4ac361b25ab56
521cc06dc7da4236baa4ac361b25ab56--e76ba1ec1fd24177bc5fc6a56e9df957
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_64f1a80c0d6144e0a208cace0f309434
cluster_40e2454eba424b058453790db5caab71
24866a96b80f453db9470bfa41cda7b5
0
046e152cd0894a71a2dc54dc6514684f
RX(theta₀)
24866a96b80f453db9470bfa41cda7b5--046e152cd0894a71a2dc54dc6514684f
c5ec78a4a5a8469eb6997ae59ecdc965
1
86e7b25097a54832ba78db4d971a1944
RY(theta₆)
046e152cd0894a71a2dc54dc6514684f--86e7b25097a54832ba78db4d971a1944
7c7282a5367c4434a5957279e319785b
RX(theta₁₂)
86e7b25097a54832ba78db4d971a1944--7c7282a5367c4434a5957279e319785b
b8ebe795e3894a59a5144e4c2e943916
7c7282a5367c4434a5957279e319785b--b8ebe795e3894a59a5144e4c2e943916
41a4f8f28e784ba5b0ff886af55d6f55
RX(theta₁₈)
b8ebe795e3894a59a5144e4c2e943916--41a4f8f28e784ba5b0ff886af55d6f55
6d8c13990d5a4c6c8c232647681b4228
RY(theta₂₄)
41a4f8f28e784ba5b0ff886af55d6f55--6d8c13990d5a4c6c8c232647681b4228
85bee9742ad844afbff5ae441e1a0ad9
RX(theta₃₀)
6d8c13990d5a4c6c8c232647681b4228--85bee9742ad844afbff5ae441e1a0ad9
1ed2ae85ffe44934ae1291eb23e1e093
85bee9742ad844afbff5ae441e1a0ad9--1ed2ae85ffe44934ae1291eb23e1e093
c4cc4e7f55f74b75ab3aa9fa33ceada6
1ed2ae85ffe44934ae1291eb23e1e093--c4cc4e7f55f74b75ab3aa9fa33ceada6
51cac1c977c14e3885761756eeeebcba
a360c575826846f59045a0e0201f4ee3
RX(theta₁)
c5ec78a4a5a8469eb6997ae59ecdc965--a360c575826846f59045a0e0201f4ee3
eeb31f7f7eab499a8d1f386211c0ae62
2
f38e786f116d4ca3a840760adc4145f5
RY(theta₇)
a360c575826846f59045a0e0201f4ee3--f38e786f116d4ca3a840760adc4145f5
b79f5468301b4c2ab8a6a88ce3ca3fa9
RX(theta₁₃)
f38e786f116d4ca3a840760adc4145f5--b79f5468301b4c2ab8a6a88ce3ca3fa9
2efefa48b14d4f12b514f2d74d30a03c
b79f5468301b4c2ab8a6a88ce3ca3fa9--2efefa48b14d4f12b514f2d74d30a03c
601fddb2545e4d8db41d5bea84ae769d
RX(theta₁₉)
2efefa48b14d4f12b514f2d74d30a03c--601fddb2545e4d8db41d5bea84ae769d
e22ab7c315a74a09be4dc72c2eb7628e
RY(theta₂₅)
601fddb2545e4d8db41d5bea84ae769d--e22ab7c315a74a09be4dc72c2eb7628e
a5aebf2903d747faa588ea833f330eb0
RX(theta₃₁)
e22ab7c315a74a09be4dc72c2eb7628e--a5aebf2903d747faa588ea833f330eb0
d90d2863891443738494f442ad3bb3e4
a5aebf2903d747faa588ea833f330eb0--d90d2863891443738494f442ad3bb3e4
d90d2863891443738494f442ad3bb3e4--51cac1c977c14e3885761756eeeebcba
e3653e430e794e64bc91ae2681d96bab
53a9f9ac6e6443919faa60756e96ae51
RX(theta₂)
eeb31f7f7eab499a8d1f386211c0ae62--53a9f9ac6e6443919faa60756e96ae51
0ba8a8efe88e476998befbed1f4c6594
3
5bbf8aacbbf34e8b813d7b38479f2c7e
RY(theta₈)
53a9f9ac6e6443919faa60756e96ae51--5bbf8aacbbf34e8b813d7b38479f2c7e
f5c24d4c0f4f43428786dc47c2a61d28
RX(theta₁₄)
5bbf8aacbbf34e8b813d7b38479f2c7e--f5c24d4c0f4f43428786dc47c2a61d28
4e660af840b3468d8054574fbf33123f
HamEvo
f5c24d4c0f4f43428786dc47c2a61d28--4e660af840b3468d8054574fbf33123f
e4726a52d5c94668bed4d653f1bd89ff
RX(theta₂₀)
4e660af840b3468d8054574fbf33123f--e4726a52d5c94668bed4d653f1bd89ff
9daa9ca879dc4952b7bc756b6cf81ecf
RY(theta₂₆)
e4726a52d5c94668bed4d653f1bd89ff--9daa9ca879dc4952b7bc756b6cf81ecf
6d81595ce0f844ecbbacc0c122fa3384
RX(theta₃₂)
9daa9ca879dc4952b7bc756b6cf81ecf--6d81595ce0f844ecbbacc0c122fa3384
dd6442cac5504c789b05fe87e5128261
HamEvo
6d81595ce0f844ecbbacc0c122fa3384--dd6442cac5504c789b05fe87e5128261
dd6442cac5504c789b05fe87e5128261--e3653e430e794e64bc91ae2681d96bab
1b9291fb748e4c1ba1c1dc2a53f2ed97
ffc7f1d4221043c68ce41f24323cdeb7
RX(theta₃)
0ba8a8efe88e476998befbed1f4c6594--ffc7f1d4221043c68ce41f24323cdeb7
ec9d020ecc2d4248a8ec020db2a16021
4
e21a8be861a94556a07ae13e6fa299f9
RY(theta₉)
ffc7f1d4221043c68ce41f24323cdeb7--e21a8be861a94556a07ae13e6fa299f9
f9cdcd387dbc4e25964e4fcc6d5b25be
RX(theta₁₅)
e21a8be861a94556a07ae13e6fa299f9--f9cdcd387dbc4e25964e4fcc6d5b25be
c38c26f6e2544433aadd08f06fe6ccd4
t = theta_t₀
f9cdcd387dbc4e25964e4fcc6d5b25be--c38c26f6e2544433aadd08f06fe6ccd4
a8576ca699a44da187c9fe9ad7038eb4
RX(theta₂₁)
c38c26f6e2544433aadd08f06fe6ccd4--a8576ca699a44da187c9fe9ad7038eb4
a810d33af2164cf7ac4862c5571a3d43
RY(theta₂₇)
a8576ca699a44da187c9fe9ad7038eb4--a810d33af2164cf7ac4862c5571a3d43
7d22606869e34b64a0d754262e339bb0
RX(theta₃₃)
a810d33af2164cf7ac4862c5571a3d43--7d22606869e34b64a0d754262e339bb0
bca5d527533846168682778d432dc2de
t = theta_t₁
7d22606869e34b64a0d754262e339bb0--bca5d527533846168682778d432dc2de
bca5d527533846168682778d432dc2de--1b9291fb748e4c1ba1c1dc2a53f2ed97
025ad23bb984425ba0ca8e3b40697875
ed750b87aa214d8fa3c017655cb9cf53
RX(theta₄)
ec9d020ecc2d4248a8ec020db2a16021--ed750b87aa214d8fa3c017655cb9cf53
c67df8e1be48492f8265c2be0cd11b7f
5
d3cf212d31c2436db453a6104818738c
RY(theta₁₀)
ed750b87aa214d8fa3c017655cb9cf53--d3cf212d31c2436db453a6104818738c
53a5a0b1a9a7458e9e8829849b370e46
RX(theta₁₆)
d3cf212d31c2436db453a6104818738c--53a5a0b1a9a7458e9e8829849b370e46
5fc04a5aaed741b789ae61cb1ba53bae
53a5a0b1a9a7458e9e8829849b370e46--5fc04a5aaed741b789ae61cb1ba53bae
038b5d62be0545afba23e8a7d23ae202
RX(theta₂₂)
5fc04a5aaed741b789ae61cb1ba53bae--038b5d62be0545afba23e8a7d23ae202
2253928247744440b1d088b3e988ea75
RY(theta₂₈)
038b5d62be0545afba23e8a7d23ae202--2253928247744440b1d088b3e988ea75
5114bf8ff1194c1bb9407d450050f9d8
RX(theta₃₄)
2253928247744440b1d088b3e988ea75--5114bf8ff1194c1bb9407d450050f9d8
f274915b43284e55aac17adf834e140d
5114bf8ff1194c1bb9407d450050f9d8--f274915b43284e55aac17adf834e140d
f274915b43284e55aac17adf834e140d--025ad23bb984425ba0ca8e3b40697875
2119571f1ddc498d974b3321d697953a
68cfe79d43de4675bca0125c75fa4bb2
RX(theta₅)
c67df8e1be48492f8265c2be0cd11b7f--68cfe79d43de4675bca0125c75fa4bb2
43ef967f571b4d708459ca9469f2ee6b
RY(theta₁₁)
68cfe79d43de4675bca0125c75fa4bb2--43ef967f571b4d708459ca9469f2ee6b
8447179a6c0b4a76aaa699d8099aed0c
RX(theta₁₇)
43ef967f571b4d708459ca9469f2ee6b--8447179a6c0b4a76aaa699d8099aed0c
df7f421b72c1465097444f98c3885a58
8447179a6c0b4a76aaa699d8099aed0c--df7f421b72c1465097444f98c3885a58
0008c8c7e6ac49bbb19c17afd4ea3657
RX(theta₂₃)
df7f421b72c1465097444f98c3885a58--0008c8c7e6ac49bbb19c17afd4ea3657
e612ae1f3aba46c19529c9f2c3cb7a20
RY(theta₂₉)
0008c8c7e6ac49bbb19c17afd4ea3657--e612ae1f3aba46c19529c9f2c3cb7a20
b0eb18b5126c4bfa8df021b9d9af1ecc
RX(theta₃₅)
e612ae1f3aba46c19529c9f2c3cb7a20--b0eb18b5126c4bfa8df021b9d9af1ecc
0deb22aab4d5463389433b2aab6b1467
b0eb18b5126c4bfa8df021b9d9af1ecc--0deb22aab4d5463389433b2aab6b1467
0deb22aab4d5463389433b2aab6b1467--2119571f1ddc498d974b3321d697953a
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_82d45f968ebd4e7eba52e6b2c928ab48
BPMA-1
cluster_51a5a10bac724aba802ed8d97e30af4e
BPMA-0
214e62e686834cdfb2e15fca3d2f15f2
0
8e02fa86ecce474bb84809b6e7cb718c
RX(iia_α₀₀)
214e62e686834cdfb2e15fca3d2f15f2--8e02fa86ecce474bb84809b6e7cb718c
4f805de46f264a0c8b9f7af7c2700eed
1
4676b9096376431ca4cfc231e7e0b3df
RY(iia_α₀₃)
8e02fa86ecce474bb84809b6e7cb718c--4676b9096376431ca4cfc231e7e0b3df
d490b2569cbb4bf4ae29ee3252606c46
4676b9096376431ca4cfc231e7e0b3df--d490b2569cbb4bf4ae29ee3252606c46
ee2515a10ca64cf494f77d572694ebb7
d490b2569cbb4bf4ae29ee3252606c46--ee2515a10ca64cf494f77d572694ebb7
87b9729178da44cdbe82eabdb1c77706
RX(iia_γ₀₀)
ee2515a10ca64cf494f77d572694ebb7--87b9729178da44cdbe82eabdb1c77706
29907455f3b145c18c8793a433dd979f
87b9729178da44cdbe82eabdb1c77706--29907455f3b145c18c8793a433dd979f
68c711799c35489492ce991b506e27e1
29907455f3b145c18c8793a433dd979f--68c711799c35489492ce991b506e27e1
132ebc042bd54a5c9d4a40099c6106e1
RY(iia_β₀₃)
68c711799c35489492ce991b506e27e1--132ebc042bd54a5c9d4a40099c6106e1
17eaeff8b2c6474a85681ac2e292e721
RX(iia_β₀₀)
132ebc042bd54a5c9d4a40099c6106e1--17eaeff8b2c6474a85681ac2e292e721
860e394094fc435f94ebc4aecbfdc2f0
RX(iia_α₁₀)
17eaeff8b2c6474a85681ac2e292e721--860e394094fc435f94ebc4aecbfdc2f0
2bb127a52e754fa6878825e472cdb9a8
RY(iia_α₁₃)
860e394094fc435f94ebc4aecbfdc2f0--2bb127a52e754fa6878825e472cdb9a8
f0f5b09d00b744e38af448af5c05a41b
2bb127a52e754fa6878825e472cdb9a8--f0f5b09d00b744e38af448af5c05a41b
a8d7bd81a6b14fb2a75a37c41c86a93d
f0f5b09d00b744e38af448af5c05a41b--a8d7bd81a6b14fb2a75a37c41c86a93d
e30c7fed20b84798a7d33e49d2828cfc
RX(iia_γ₁₀)
a8d7bd81a6b14fb2a75a37c41c86a93d--e30c7fed20b84798a7d33e49d2828cfc
4d00aec0830d45a28ad9d990eb3841ed
e30c7fed20b84798a7d33e49d2828cfc--4d00aec0830d45a28ad9d990eb3841ed
a2328e521f51486ca6e5fb46b27bd634
4d00aec0830d45a28ad9d990eb3841ed--a2328e521f51486ca6e5fb46b27bd634
bc8a390006104f888b9dfe479a884d64
RY(iia_β₁₃)
a2328e521f51486ca6e5fb46b27bd634--bc8a390006104f888b9dfe479a884d64
512e8f271882405e921ce72b8f1311b0
RX(iia_β₁₀)
bc8a390006104f888b9dfe479a884d64--512e8f271882405e921ce72b8f1311b0
2883d87b28064215808a6e9dcb8fc84d
512e8f271882405e921ce72b8f1311b0--2883d87b28064215808a6e9dcb8fc84d
40d97eda04154cedb83dfac34846271a
9a02e87f1ce6462ea8f70adaf517d3e9
RX(iia_α₀₁)
4f805de46f264a0c8b9f7af7c2700eed--9a02e87f1ce6462ea8f70adaf517d3e9
25a841fe5a2b4264b9407c76f33ecbf3
2
83290990cf3e41dda898b0cd7d7952d4
RY(iia_α₀₄)
9a02e87f1ce6462ea8f70adaf517d3e9--83290990cf3e41dda898b0cd7d7952d4
69e4b396eb9c4412886e723d5fd69765
X
83290990cf3e41dda898b0cd7d7952d4--69e4b396eb9c4412886e723d5fd69765
69e4b396eb9c4412886e723d5fd69765--d490b2569cbb4bf4ae29ee3252606c46
8e52b58cba9149d2a416fd302bce282a
69e4b396eb9c4412886e723d5fd69765--8e52b58cba9149d2a416fd302bce282a
774b00a1e9ed4a0985a1a0d94138e53e
RX(iia_γ₀₁)
8e52b58cba9149d2a416fd302bce282a--774b00a1e9ed4a0985a1a0d94138e53e
4711f440fc5d4cb4a4c5ec476500c12d
774b00a1e9ed4a0985a1a0d94138e53e--4711f440fc5d4cb4a4c5ec476500c12d
d413c8b11f1a40f1a6049537635f2f6e
X
4711f440fc5d4cb4a4c5ec476500c12d--d413c8b11f1a40f1a6049537635f2f6e
d413c8b11f1a40f1a6049537635f2f6e--68c711799c35489492ce991b506e27e1
b6a5853060764ebb8a512587b67f0375
RY(iia_β₀₄)
d413c8b11f1a40f1a6049537635f2f6e--b6a5853060764ebb8a512587b67f0375
d0e7f85353634853ae87aae9c40fa13e
RX(iia_β₀₁)
b6a5853060764ebb8a512587b67f0375--d0e7f85353634853ae87aae9c40fa13e
f4b32a81903847cf841f21b8025306cd
RX(iia_α₁₁)
d0e7f85353634853ae87aae9c40fa13e--f4b32a81903847cf841f21b8025306cd
9a79dd7c9b4d455ebaadfa0a5fe227e5
RY(iia_α₁₄)
f4b32a81903847cf841f21b8025306cd--9a79dd7c9b4d455ebaadfa0a5fe227e5
f95ea96e11e34ad69589c2141ab9e3bd
X
9a79dd7c9b4d455ebaadfa0a5fe227e5--f95ea96e11e34ad69589c2141ab9e3bd
f95ea96e11e34ad69589c2141ab9e3bd--f0f5b09d00b744e38af448af5c05a41b
3ad3454212bf4ccaa7b906e471899aaf
f95ea96e11e34ad69589c2141ab9e3bd--3ad3454212bf4ccaa7b906e471899aaf
951b79d8b6014765a3e15ca5da53aa5a
RX(iia_γ₁₁)
3ad3454212bf4ccaa7b906e471899aaf--951b79d8b6014765a3e15ca5da53aa5a
eea5054b669c4252947522f63c9bf302
951b79d8b6014765a3e15ca5da53aa5a--eea5054b669c4252947522f63c9bf302
fb186dcedf1f4010afa2d7dba7082b67
X
eea5054b669c4252947522f63c9bf302--fb186dcedf1f4010afa2d7dba7082b67
fb186dcedf1f4010afa2d7dba7082b67--a2328e521f51486ca6e5fb46b27bd634
f9bcd0f6730e4a1a905ac6f44930ad89
RY(iia_β₁₄)
fb186dcedf1f4010afa2d7dba7082b67--f9bcd0f6730e4a1a905ac6f44930ad89
e5ae1f309e394de99bcbf0acb8d82c62
RX(iia_β₁₁)
f9bcd0f6730e4a1a905ac6f44930ad89--e5ae1f309e394de99bcbf0acb8d82c62
e5ae1f309e394de99bcbf0acb8d82c62--40d97eda04154cedb83dfac34846271a
73d2601f666e43c58bb0328ff70915d9
627398ad462c4fe497d363aaf55d9672
RX(iia_α₀₂)
25a841fe5a2b4264b9407c76f33ecbf3--627398ad462c4fe497d363aaf55d9672
a285e7ebbc504f0082e9f54998eb611e
RY(iia_α₀₅)
627398ad462c4fe497d363aaf55d9672--a285e7ebbc504f0082e9f54998eb611e
6f7fc6a64e304f669358a4c8688412f6
a285e7ebbc504f0082e9f54998eb611e--6f7fc6a64e304f669358a4c8688412f6
16fc3ab1a4004a9097fe2b17bdfd04e2
X
6f7fc6a64e304f669358a4c8688412f6--16fc3ab1a4004a9097fe2b17bdfd04e2
16fc3ab1a4004a9097fe2b17bdfd04e2--8e52b58cba9149d2a416fd302bce282a
22ea723e97524be0af4aacbf844569d5
RX(iia_γ₀₂)
16fc3ab1a4004a9097fe2b17bdfd04e2--22ea723e97524be0af4aacbf844569d5
0f090b6395a64fb2ade2737992659a9b
X
22ea723e97524be0af4aacbf844569d5--0f090b6395a64fb2ade2737992659a9b
0f090b6395a64fb2ade2737992659a9b--4711f440fc5d4cb4a4c5ec476500c12d
e71afadb6720455db530f364b11cf3ce
0f090b6395a64fb2ade2737992659a9b--e71afadb6720455db530f364b11cf3ce
35accaa686884ab994c6b2821ee44a7c
RY(iia_β₀₅)
e71afadb6720455db530f364b11cf3ce--35accaa686884ab994c6b2821ee44a7c
804e5268485a4edaaa028767ab2bab4f
RX(iia_β₀₂)
35accaa686884ab994c6b2821ee44a7c--804e5268485a4edaaa028767ab2bab4f
974b58afa4184a2d9d5434f40316c119
RX(iia_α₁₂)
804e5268485a4edaaa028767ab2bab4f--974b58afa4184a2d9d5434f40316c119
efd953ad41a441c1baf20551fb8c9e9f
RY(iia_α₁₅)
974b58afa4184a2d9d5434f40316c119--efd953ad41a441c1baf20551fb8c9e9f
8528e121971c4ca0b29dc55c00bc80de
efd953ad41a441c1baf20551fb8c9e9f--8528e121971c4ca0b29dc55c00bc80de
a3683b70e82d475d8cc61c4b8202ddb2
X
8528e121971c4ca0b29dc55c00bc80de--a3683b70e82d475d8cc61c4b8202ddb2
a3683b70e82d475d8cc61c4b8202ddb2--3ad3454212bf4ccaa7b906e471899aaf
b09fe45c72e3474984201ebee639631a
RX(iia_γ₁₂)
a3683b70e82d475d8cc61c4b8202ddb2--b09fe45c72e3474984201ebee639631a
b1f6c479db344915a404ab3064093cb3
X
b09fe45c72e3474984201ebee639631a--b1f6c479db344915a404ab3064093cb3
b1f6c479db344915a404ab3064093cb3--eea5054b669c4252947522f63c9bf302
15770e3f249349ddba3cb904c8dc24d1
b1f6c479db344915a404ab3064093cb3--15770e3f249349ddba3cb904c8dc24d1
fa80027a68b0455e8a26effa73179681
RY(iia_β₁₅)
15770e3f249349ddba3cb904c8dc24d1--fa80027a68b0455e8a26effa73179681
595e97909c124d6ea87426102a8b39c1
RX(iia_β₁₂)
fa80027a68b0455e8a26effa73179681--595e97909c124d6ea87426102a8b39c1
595e97909c124d6ea87426102a8b39c1--73d2601f666e43c58bb0328ff70915d9