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_a01d77cbab5f44f182281af5258bc052
Constant Chebyshev FM
cluster_7f2cbf4c4da548f581f014529bc22097
Constant Fourier FM
a77258677bd6490fbe4d69815575de28
0
bd6e9ac71d814f0ca4ea526d604efc50
RX(phi)
a77258677bd6490fbe4d69815575de28--bd6e9ac71d814f0ca4ea526d604efc50
3b769d6c6c594313bc388d87bc55e431
1
505a35bd1b6048d9861549dd9a3e64f9
RX(acos(phi))
bd6e9ac71d814f0ca4ea526d604efc50--505a35bd1b6048d9861549dd9a3e64f9
ccd939ce92be41bb8be0762c1a54aea9
505a35bd1b6048d9861549dd9a3e64f9--ccd939ce92be41bb8be0762c1a54aea9
9cc0ed3decae43ddaebc5afac729a750
c1940c4516a14e58be5e6757607e3643
RX(phi)
3b769d6c6c594313bc388d87bc55e431--c1940c4516a14e58be5e6757607e3643
1cd49376d2554e6391de4f3697edc584
2
a81b1742c6014efa9bf88fcfce67d36e
RX(acos(phi))
c1940c4516a14e58be5e6757607e3643--a81b1742c6014efa9bf88fcfce67d36e
a81b1742c6014efa9bf88fcfce67d36e--9cc0ed3decae43ddaebc5afac729a750
3f2b488ed7b54016ab2da4eec4e69d20
f47271448b4141148f1fc32153673607
RX(phi)
1cd49376d2554e6391de4f3697edc584--f47271448b4141148f1fc32153673607
03e633ca3504442f85be0755d9daaa69
RX(acos(phi))
f47271448b4141148f1fc32153673607--03e633ca3504442f85be0755d9daaa69
03e633ca3504442f85be0755d9daaa69--3f2b488ed7b54016ab2da4eec4e69d20
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_eb3ab0d52f734ed49d6cb0f31cd117f1
Constant <function custom_fn at 0x7ff8e732f130> FM
cluster_4ac4c05f88774026950b13993b7e86e0
Constant asin FM
d2e47e68ab8b4d4d90cb28670a4aa711
0
3524a4a19deb4a2c86311228f25a237f
RX(asin(phi))
d2e47e68ab8b4d4d90cb28670a4aa711--3524a4a19deb4a2c86311228f25a237f
d2ebc6115ed14110b2dd0e6a8f9aad57
1
48e391115f96486d9e6ee38638f5a2b6
RX(phi**2 + asin(phi))
3524a4a19deb4a2c86311228f25a237f--48e391115f96486d9e6ee38638f5a2b6
4c385a0f5b574d908f7e989b19537660
48e391115f96486d9e6ee38638f5a2b6--4c385a0f5b574d908f7e989b19537660
66c9a67892cc4b45924ada9c56539084
7e2dcd676b9a4faa91f7efad7eebd1c0
RX(asin(phi))
d2ebc6115ed14110b2dd0e6a8f9aad57--7e2dcd676b9a4faa91f7efad7eebd1c0
2a4574cb65cb4fb187b68c619cc699fb
2
5e59cbfaf055410e947bc0d78bef0dd2
RX(phi**2 + asin(phi))
7e2dcd676b9a4faa91f7efad7eebd1c0--5e59cbfaf055410e947bc0d78bef0dd2
5e59cbfaf055410e947bc0d78bef0dd2--66c9a67892cc4b45924ada9c56539084
0ee030624cb9419d8cd867ac43dcfb70
829d3a5c60934984a8169fbc1cfc2a01
RX(asin(phi))
2a4574cb65cb4fb187b68c619cc699fb--829d3a5c60934984a8169fbc1cfc2a01
650219d7b48c4937af2a8c7fbb6ea9dd
RX(phi**2 + asin(phi))
829d3a5c60934984a8169fbc1cfc2a01--650219d7b48c4937af2a8c7fbb6ea9dd
650219d7b48c4937af2a8c7fbb6ea9dd--0ee030624cb9419d8cd867ac43dcfb70
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_6943bea763e84460835fdb91693999cc
Exponential Fourier FM
cluster_cae628987b6b44f99070bcf5b0f454bd
Constant Fourier FM
cluster_62d07e02fd9c4cac862f4936c3dd6ba2
Tower Fourier FM
06138e893a604b31b50482edad643929
0
f23ec2f32f234a5da8665dad4e0feaf9
RX(phi)
06138e893a604b31b50482edad643929--f23ec2f32f234a5da8665dad4e0feaf9
15bfe2c11fa841c785d5e226647399e3
1
31dabec33b3d4d13afc212736c87c7d3
RX(1.0*phi)
f23ec2f32f234a5da8665dad4e0feaf9--31dabec33b3d4d13afc212736c87c7d3
a84a6749e85a4d08b2c53f31e12756fb
RX(1.0*phi)
31dabec33b3d4d13afc212736c87c7d3--a84a6749e85a4d08b2c53f31e12756fb
c9521fff60dc412e9680db91b7e82627
a84a6749e85a4d08b2c53f31e12756fb--c9521fff60dc412e9680db91b7e82627
103b71cc2fd845f58c5d381eeffe2d19
1a34ecabecc344708f7987fe79133396
RX(phi)
15bfe2c11fa841c785d5e226647399e3--1a34ecabecc344708f7987fe79133396
f862ccadddba49779f2f7aa6d84a7c60
2
238c0f8de06244e284e2560aba06b74e
RX(2.0*phi)
1a34ecabecc344708f7987fe79133396--238c0f8de06244e284e2560aba06b74e
8a63cf76e87a453e8297d564e5a294ac
RX(2.0*phi)
238c0f8de06244e284e2560aba06b74e--8a63cf76e87a453e8297d564e5a294ac
8a63cf76e87a453e8297d564e5a294ac--103b71cc2fd845f58c5d381eeffe2d19
d0715306f5054bca85724cb9f2809e12
4e9212d8367d482ea58db7758f67da56
RX(phi)
f862ccadddba49779f2f7aa6d84a7c60--4e9212d8367d482ea58db7758f67da56
163883b054e0415e9faa0bd644a178ce
3
52dd5015ccf64224b8b2a26af3631014
RX(3.0*phi)
4e9212d8367d482ea58db7758f67da56--52dd5015ccf64224b8b2a26af3631014
b68ffbbad98543b09936dee2c957fb8f
RX(4.0*phi)
52dd5015ccf64224b8b2a26af3631014--b68ffbbad98543b09936dee2c957fb8f
b68ffbbad98543b09936dee2c957fb8f--d0715306f5054bca85724cb9f2809e12
3ac899b379314afebe43b4e024b83d0e
d3498cf36cd74b128b3a22564bd1f230
RX(phi)
163883b054e0415e9faa0bd644a178ce--d3498cf36cd74b128b3a22564bd1f230
70c3c510c1a645d3b78bb3f2c22b8efd
4
f2d7fe60635e4590b9e114365d4ed393
RX(4.0*phi)
d3498cf36cd74b128b3a22564bd1f230--f2d7fe60635e4590b9e114365d4ed393
2c2a2112c64d40739143f6e232e9d452
RX(8.0*phi)
f2d7fe60635e4590b9e114365d4ed393--2c2a2112c64d40739143f6e232e9d452
2c2a2112c64d40739143f6e232e9d452--3ac899b379314afebe43b4e024b83d0e
95567bbe2b5b4e1eaa8b196ddf011858
7a819b2d359143c88a5df1edda001c19
RX(phi)
70c3c510c1a645d3b78bb3f2c22b8efd--7a819b2d359143c88a5df1edda001c19
424884e9473e4583bc99858cc224fc91
RX(5.0*phi)
7a819b2d359143c88a5df1edda001c19--424884e9473e4583bc99858cc224fc91
30cffcd333e441d3b19b616948fb2464
RX(16.0*phi)
424884e9473e4583bc99858cc224fc91--30cffcd333e441d3b19b616948fb2464
30cffcd333e441d3b19b616948fb2464--95567bbe2b5b4e1eaa8b196ddf011858
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
9780ad9b941546ca806c5dd980dc7b2b
0
588ba8b33dc84d8c8ce4954bc972a840
RX(1.0*acos(phi))
9780ad9b941546ca806c5dd980dc7b2b--588ba8b33dc84d8c8ce4954bc972a840
7b852cbce5af48e487ad5893b25226c9
1
a88ab5aa1fea405487d96b168f0e5a2c
588ba8b33dc84d8c8ce4954bc972a840--a88ab5aa1fea405487d96b168f0e5a2c
3b7895e967a248d88a9ae742fd6bb570
3c1081d7617a440d8c5f436145b5a45d
RX(1.414*acos(phi))
7b852cbce5af48e487ad5893b25226c9--3c1081d7617a440d8c5f436145b5a45d
2cf3eab5548846a084060b70f98487c7
2
3c1081d7617a440d8c5f436145b5a45d--3b7895e967a248d88a9ae742fd6bb570
e031b58f21e447338720c2b5a4e39d73
40fa31934eb34f78ae8ad387c8d70757
RX(1.732*acos(phi))
2cf3eab5548846a084060b70f98487c7--40fa31934eb34f78ae8ad387c8d70757
f2511e4bdfbd42578585352cf6cc8b4c
3
40fa31934eb34f78ae8ad387c8d70757--e031b58f21e447338720c2b5a4e39d73
3215af52a36446ddb2ac4563bb1b948c
e3004141409d423fb3898b011dbc7f6a
RX(2.0*acos(phi))
f2511e4bdfbd42578585352cf6cc8b4c--e3004141409d423fb3898b011dbc7f6a
7091e842238640878ea577bd2a1fa3f6
4
e3004141409d423fb3898b011dbc7f6a--3215af52a36446ddb2ac4563bb1b948c
ab699ef5649641508ea42874aeafe769
0591587508864955b1423b31559f2905
RX(2.236*acos(phi))
7091e842238640878ea577bd2a1fa3f6--0591587508864955b1423b31559f2905
0591587508864955b1423b31559f2905--ab699ef5649641508ea42874aeafe769
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
cfa7a8721c7a4228a3e6ed7aadd349f8
0
cf8115dcfb804ef7b82d9bfc152f2e4e
RX(1.0*phi*w₀)
cfa7a8721c7a4228a3e6ed7aadd349f8--cf8115dcfb804ef7b82d9bfc152f2e4e
631548f5b3d445739d64b8682aacf2dd
1
5edbea27a0934b2c8d256b6378c7ba7a
cf8115dcfb804ef7b82d9bfc152f2e4e--5edbea27a0934b2c8d256b6378c7ba7a
b466cd532303477ebea4dd0909bc94b2
eb5f85f7465244f2b92e9b1f75d18200
RX(2.0*phi*w₁)
631548f5b3d445739d64b8682aacf2dd--eb5f85f7465244f2b92e9b1f75d18200
56b9311f1bf2475a9ce8afbc7dca43e1
2
eb5f85f7465244f2b92e9b1f75d18200--b466cd532303477ebea4dd0909bc94b2
90398aea4b7640bb8ae9aee099e0b0ed
59e92d6cb6c74a4f887e239d49e926a0
RX(4.0*phi*w₂)
56b9311f1bf2475a9ce8afbc7dca43e1--59e92d6cb6c74a4f887e239d49e926a0
26c9394084264097b2c5816fd8a91cd3
3
59e92d6cb6c74a4f887e239d49e926a0--90398aea4b7640bb8ae9aee099e0b0ed
3d54e8c6ba194833a640567c6eb4291a
dd7d19a92f6147079a6f9363b38adc33
RX(8.0*phi*w₃)
26c9394084264097b2c5816fd8a91cd3--dd7d19a92f6147079a6f9363b38adc33
ef89c20d5df34ac3aaa9778b72e7105d
4
dd7d19a92f6147079a6f9363b38adc33--3d54e8c6ba194833a640567c6eb4291a
d7cbf2fec6894c1eb2b83c38899348d8
8cf699a4536b4a6cb4c029f960057447
RX(16.0*phi*w₄)
ef89c20d5df34ac3aaa9778b72e7105d--8cf699a4536b4a6cb4c029f960057447
8cf699a4536b4a6cb4c029f960057447--d7cbf2fec6894c1eb2b83c38899348d8
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
d5d16e22e1cf4bb6bad81b1ae2d26c83
0
e1d02fe854ac4393aced4eda8cb0a43f
RY(80.0*acos(w₄*(0.667*x + 1.667)))
d5d16e22e1cf4bb6bad81b1ae2d26c83--e1d02fe854ac4393aced4eda8cb0a43f
f459f99b912142c69e9d49c9d7c5ddf7
1
db1cfff9a34b41cd90160e8613632fae
e1d02fe854ac4393aced4eda8cb0a43f--db1cfff9a34b41cd90160e8613632fae
aa5ec6c71e7d4f6ab8c468d7e33410dc
fa0a998cda334e4db041bb3d97719461
RY(40.0*acos(w₃*(0.667*x + 1.667)))
f459f99b912142c69e9d49c9d7c5ddf7--fa0a998cda334e4db041bb3d97719461
79058c1d4c6d464aa99d8990ebfb46ce
2
fa0a998cda334e4db041bb3d97719461--aa5ec6c71e7d4f6ab8c468d7e33410dc
fdef466d00314e068349e767dccc1f88
de83469fc0ac459394bf2fdf6948af4d
RY(20.0*acos(w₂*(0.667*x + 1.667)))
79058c1d4c6d464aa99d8990ebfb46ce--de83469fc0ac459394bf2fdf6948af4d
00db2d885ba4490494dd4312438a1696
3
de83469fc0ac459394bf2fdf6948af4d--fdef466d00314e068349e767dccc1f88
cad613a7e0f34d899fda20e810f9ce19
974f9a9a03ed420bb1e126e7a7eb339f
RY(10.0*acos(w₁*(0.667*x + 1.667)))
00db2d885ba4490494dd4312438a1696--974f9a9a03ed420bb1e126e7a7eb339f
bda7a7198f134c8ba6ffbc70067827f6
4
974f9a9a03ed420bb1e126e7a7eb339f--cad613a7e0f34d899fda20e810f9ce19
1836b4d35d66432db3fa9f8b9b0105f1
7ba1da1568534da29aa4bea9f5d9e0b0
RY(5.0*acos(w₀*(0.667*x + 1.667)))
bda7a7198f134c8ba6ffbc70067827f6--7ba1da1568534da29aa4bea9f5d9e0b0
7ba1da1568534da29aa4bea9f5d9e0b0--1836b4d35d66432db3fa9f8b9b0105f1
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
670653760ba44d3db5792c7c55e87028
0
96aabf493a804532a7b45a4414d52a04
RX(theta₀)
670653760ba44d3db5792c7c55e87028--96aabf493a804532a7b45a4414d52a04
62fd1edd708c451986bf293ba8326a84
1
a5abb2902af443999e79b5ccb139460b
RY(theta₃)
96aabf493a804532a7b45a4414d52a04--a5abb2902af443999e79b5ccb139460b
d5f59c4748954a8e8a75440922e23d9e
RX(theta₆)
a5abb2902af443999e79b5ccb139460b--d5f59c4748954a8e8a75440922e23d9e
0d5e97191f9240efbaa2c77121855a1e
d5f59c4748954a8e8a75440922e23d9e--0d5e97191f9240efbaa2c77121855a1e
ecbc32c34c2a4d89b185346efc1f0216
0d5e97191f9240efbaa2c77121855a1e--ecbc32c34c2a4d89b185346efc1f0216
03f284a1d6964e0b940e48f715499fcc
RX(theta₉)
ecbc32c34c2a4d89b185346efc1f0216--03f284a1d6964e0b940e48f715499fcc
240340b428214cfda94a312e19fc4d04
RY(theta₁₂)
03f284a1d6964e0b940e48f715499fcc--240340b428214cfda94a312e19fc4d04
c2316d67c5474932bd00aef2e7cc7396
RX(theta₁₅)
240340b428214cfda94a312e19fc4d04--c2316d67c5474932bd00aef2e7cc7396
11db2fce240c43039ac4f9514fcf6fec
c2316d67c5474932bd00aef2e7cc7396--11db2fce240c43039ac4f9514fcf6fec
354ebcc44f384920aae8eae518c75d02
11db2fce240c43039ac4f9514fcf6fec--354ebcc44f384920aae8eae518c75d02
b0d5ec8939654f76a4c34ba58ba02fca
354ebcc44f384920aae8eae518c75d02--b0d5ec8939654f76a4c34ba58ba02fca
66fefd07668b48be87f5bcae12ecaebc
4b3940cc63a046a1aa437782906e4c0d
RX(theta₁)
62fd1edd708c451986bf293ba8326a84--4b3940cc63a046a1aa437782906e4c0d
118b14e3efd74f4cba7f96a48bb438d2
2
b9140f02b4f44c2dbec9e817c6edfe48
RY(theta₄)
4b3940cc63a046a1aa437782906e4c0d--b9140f02b4f44c2dbec9e817c6edfe48
286032110a654762a76f40bc894ab5e0
RX(theta₇)
b9140f02b4f44c2dbec9e817c6edfe48--286032110a654762a76f40bc894ab5e0
ac524c6a45ff42baa9613971b41d7a3e
X
286032110a654762a76f40bc894ab5e0--ac524c6a45ff42baa9613971b41d7a3e
ac524c6a45ff42baa9613971b41d7a3e--0d5e97191f9240efbaa2c77121855a1e
4373593b01d8491cac4c13ff45cb5244
ac524c6a45ff42baa9613971b41d7a3e--4373593b01d8491cac4c13ff45cb5244
9993164f57664c7b881c3eea2dfb0562
RX(theta₁₀)
4373593b01d8491cac4c13ff45cb5244--9993164f57664c7b881c3eea2dfb0562
cc16832760b24cc7a123d6a8185d77a7
RY(theta₁₃)
9993164f57664c7b881c3eea2dfb0562--cc16832760b24cc7a123d6a8185d77a7
969cc9fc999c416d99425a5f4efd623d
RX(theta₁₆)
cc16832760b24cc7a123d6a8185d77a7--969cc9fc999c416d99425a5f4efd623d
b5897ce6e8df41a3b6d2084c14bc2564
X
969cc9fc999c416d99425a5f4efd623d--b5897ce6e8df41a3b6d2084c14bc2564
b5897ce6e8df41a3b6d2084c14bc2564--11db2fce240c43039ac4f9514fcf6fec
6ca4712bd9e74650a6006af2c74c58e9
b5897ce6e8df41a3b6d2084c14bc2564--6ca4712bd9e74650a6006af2c74c58e9
6ca4712bd9e74650a6006af2c74c58e9--66fefd07668b48be87f5bcae12ecaebc
fae65e8662f3405ea5d78664557eed72
81461467498e4a63bf8b4695b0623ecd
RX(theta₂)
118b14e3efd74f4cba7f96a48bb438d2--81461467498e4a63bf8b4695b0623ecd
eb902316697d49d9b3d10788de587178
RY(theta₅)
81461467498e4a63bf8b4695b0623ecd--eb902316697d49d9b3d10788de587178
9d4b12a1fef44bf0a3b44669424f9b76
RX(theta₈)
eb902316697d49d9b3d10788de587178--9d4b12a1fef44bf0a3b44669424f9b76
d629f5fcc523424a970b0e2b83a6cf2f
9d4b12a1fef44bf0a3b44669424f9b76--d629f5fcc523424a970b0e2b83a6cf2f
29f0d992a26740008dff0eb1fbfda36f
X
d629f5fcc523424a970b0e2b83a6cf2f--29f0d992a26740008dff0eb1fbfda36f
29f0d992a26740008dff0eb1fbfda36f--4373593b01d8491cac4c13ff45cb5244
dde0ca9602af46c3929d0f43cbef5fcd
RX(theta₁₁)
29f0d992a26740008dff0eb1fbfda36f--dde0ca9602af46c3929d0f43cbef5fcd
155228b4b7124283800e03bf99d95833
RY(theta₁₄)
dde0ca9602af46c3929d0f43cbef5fcd--155228b4b7124283800e03bf99d95833
0d917fd15b6c4f27a7149efb95f4825d
RX(theta₁₇)
155228b4b7124283800e03bf99d95833--0d917fd15b6c4f27a7149efb95f4825d
6c05cf41cbcd48fab270047727863065
0d917fd15b6c4f27a7149efb95f4825d--6c05cf41cbcd48fab270047727863065
9552f590c7c9446ebe8582444bec38a1
X
6c05cf41cbcd48fab270047727863065--9552f590c7c9446ebe8582444bec38a1
9552f590c7c9446ebe8582444bec38a1--6ca4712bd9e74650a6006af2c74c58e9
9552f590c7c9446ebe8582444bec38a1--fae65e8662f3405ea5d78664557eed72
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
11aea1435518446c91889537516c91d8
0
727883dc01254158b9314408918a2133
RX(phi₀)
11aea1435518446c91889537516c91d8--727883dc01254158b9314408918a2133
f20f7b504003477c9d76c1a6bee440fb
1
a9a3cfc6c90e4583b9336604fe102459
RY(phi₃)
727883dc01254158b9314408918a2133--a9a3cfc6c90e4583b9336604fe102459
55a21b452e854f5089a407a15bf10cd0
RX(phi₆)
a9a3cfc6c90e4583b9336604fe102459--55a21b452e854f5089a407a15bf10cd0
1591d4a0f38e4e0d8d74952848704f45
55a21b452e854f5089a407a15bf10cd0--1591d4a0f38e4e0d8d74952848704f45
f5aa470db14e4396956a4e66645b8cfe
1591d4a0f38e4e0d8d74952848704f45--f5aa470db14e4396956a4e66645b8cfe
1e5573b4843344208bcc466b266cd096
RX(phi₉)
f5aa470db14e4396956a4e66645b8cfe--1e5573b4843344208bcc466b266cd096
e0c5871b73d548aea17e54e6e328890c
RY(phi₁₂)
1e5573b4843344208bcc466b266cd096--e0c5871b73d548aea17e54e6e328890c
c1e508fb4c9e4dbeb0078e356aafbe18
RX(phi₁₅)
e0c5871b73d548aea17e54e6e328890c--c1e508fb4c9e4dbeb0078e356aafbe18
d210b7608cf04e7599c31456ddd06ae9
c1e508fb4c9e4dbeb0078e356aafbe18--d210b7608cf04e7599c31456ddd06ae9
fa0969e051f940f0ab6ba2f0ef500bb9
d210b7608cf04e7599c31456ddd06ae9--fa0969e051f940f0ab6ba2f0ef500bb9
e9aceaa5dd824f89b88629458ae31715
fa0969e051f940f0ab6ba2f0ef500bb9--e9aceaa5dd824f89b88629458ae31715
01824c86dd2e40b2bd72adecaae368cb
e9d8f7d02d244801b04db780d3fbd83a
RX(phi₁)
f20f7b504003477c9d76c1a6bee440fb--e9d8f7d02d244801b04db780d3fbd83a
a037ad7de5e847619fdc2f7064a143d8
2
4c2330a5ec5c423fbe1c4579df781799
RY(phi₄)
e9d8f7d02d244801b04db780d3fbd83a--4c2330a5ec5c423fbe1c4579df781799
e531796f5d904cc3ac76d6602855f5be
RX(phi₇)
4c2330a5ec5c423fbe1c4579df781799--e531796f5d904cc3ac76d6602855f5be
526868869b8b4cb4a1567ad05a7cd10a
PHASE(phi_ent₀)
e531796f5d904cc3ac76d6602855f5be--526868869b8b4cb4a1567ad05a7cd10a
526868869b8b4cb4a1567ad05a7cd10a--1591d4a0f38e4e0d8d74952848704f45
c7afbb5f27034b7c8598a4297024c95f
526868869b8b4cb4a1567ad05a7cd10a--c7afbb5f27034b7c8598a4297024c95f
a47ef196b7f442b295402d0102e5bff2
RX(phi₁₀)
c7afbb5f27034b7c8598a4297024c95f--a47ef196b7f442b295402d0102e5bff2
09b7876a7047400687d8e779a88d8aa2
RY(phi₁₃)
a47ef196b7f442b295402d0102e5bff2--09b7876a7047400687d8e779a88d8aa2
a60e979e35524a5587d0fbde5f11751f
RX(phi₁₆)
09b7876a7047400687d8e779a88d8aa2--a60e979e35524a5587d0fbde5f11751f
211a61e3a3c6475aab4460141a847254
PHASE(phi_ent₂)
a60e979e35524a5587d0fbde5f11751f--211a61e3a3c6475aab4460141a847254
211a61e3a3c6475aab4460141a847254--d210b7608cf04e7599c31456ddd06ae9
950147df611b47589c74bcc3f7887929
211a61e3a3c6475aab4460141a847254--950147df611b47589c74bcc3f7887929
950147df611b47589c74bcc3f7887929--01824c86dd2e40b2bd72adecaae368cb
da9257150d814685a21ac6de99ee8325
4f0048557555466183af973dddffd3bb
RX(phi₂)
a037ad7de5e847619fdc2f7064a143d8--4f0048557555466183af973dddffd3bb
7e6bfec6d67e4a0b9675682a47688b31
RY(phi₅)
4f0048557555466183af973dddffd3bb--7e6bfec6d67e4a0b9675682a47688b31
4cd134b5c7ca4ba68ab72388a5a4177d
RX(phi₈)
7e6bfec6d67e4a0b9675682a47688b31--4cd134b5c7ca4ba68ab72388a5a4177d
9c9e79e5717c456da8de473f9f408fbe
4cd134b5c7ca4ba68ab72388a5a4177d--9c9e79e5717c456da8de473f9f408fbe
4253df03973443d685d4f6c44a0d61ae
PHASE(phi_ent₁)
9c9e79e5717c456da8de473f9f408fbe--4253df03973443d685d4f6c44a0d61ae
4253df03973443d685d4f6c44a0d61ae--c7afbb5f27034b7c8598a4297024c95f
0cfe98ba7efc4b2c9818f2ae7c2ba419
RX(phi₁₁)
4253df03973443d685d4f6c44a0d61ae--0cfe98ba7efc4b2c9818f2ae7c2ba419
454f771aeb964084a1ac5cf5c0554bfa
RY(phi₁₄)
0cfe98ba7efc4b2c9818f2ae7c2ba419--454f771aeb964084a1ac5cf5c0554bfa
5fb6edffcc894992bf7919ae35b27bbc
RX(phi₁₇)
454f771aeb964084a1ac5cf5c0554bfa--5fb6edffcc894992bf7919ae35b27bbc
f16c8e13cb6846d6b65ca8f0fba9f1fd
5fb6edffcc894992bf7919ae35b27bbc--f16c8e13cb6846d6b65ca8f0fba9f1fd
a32c594e494e44ad80604fdf588bc1dd
PHASE(phi_ent₃)
f16c8e13cb6846d6b65ca8f0fba9f1fd--a32c594e494e44ad80604fdf588bc1dd
a32c594e494e44ad80604fdf588bc1dd--950147df611b47589c74bcc3f7887929
a32c594e494e44ad80604fdf588bc1dd--da9257150d814685a21ac6de99ee8325
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_4eeb64b5ddcb44aa84b7c0236e6be4f0
cluster_261f33b0d3df45b9946c1fcbf89d179a
e034452c1fd84b3aaaa267df7e9c9b38
0
def744dec5e843d18440467f064990f9
RX(theta₀)
e034452c1fd84b3aaaa267df7e9c9b38--def744dec5e843d18440467f064990f9
2cdb000eaf904740b57830c26c889542
1
c9789ab4db1547f7b0ff8cea5dc9fd4e
RY(theta₃)
def744dec5e843d18440467f064990f9--c9789ab4db1547f7b0ff8cea5dc9fd4e
09795f0c978d4cce95c04e52c4788efa
RX(theta₆)
c9789ab4db1547f7b0ff8cea5dc9fd4e--09795f0c978d4cce95c04e52c4788efa
9344978b75064087b34a020163aafd5f
HamEvo
09795f0c978d4cce95c04e52c4788efa--9344978b75064087b34a020163aafd5f
5ae450204d0f42d896414cec9d4131e7
RX(theta₉)
9344978b75064087b34a020163aafd5f--5ae450204d0f42d896414cec9d4131e7
dc77e8ce29274905ba7ff9442a9f5daa
RY(theta₁₂)
5ae450204d0f42d896414cec9d4131e7--dc77e8ce29274905ba7ff9442a9f5daa
eaf0b869bfb34b73ae5635808db83cff
RX(theta₁₅)
dc77e8ce29274905ba7ff9442a9f5daa--eaf0b869bfb34b73ae5635808db83cff
0453265196ae493090d0b305d125f44f
HamEvo
eaf0b869bfb34b73ae5635808db83cff--0453265196ae493090d0b305d125f44f
ac0a4045c1184a2ba5c6faf4ddfbeeed
0453265196ae493090d0b305d125f44f--ac0a4045c1184a2ba5c6faf4ddfbeeed
12ec117db9c34a4eb51b12faaf446c5c
8f46392af1644e13a3d2bfbd4c8edb65
RX(theta₁)
2cdb000eaf904740b57830c26c889542--8f46392af1644e13a3d2bfbd4c8edb65
1411c90722244da080b6480b4831b882
2
6d098eff857747dcad1cb50aa6c241c3
RY(theta₄)
8f46392af1644e13a3d2bfbd4c8edb65--6d098eff857747dcad1cb50aa6c241c3
e20b9c679b2d413285696b67c2dadda1
RX(theta₇)
6d098eff857747dcad1cb50aa6c241c3--e20b9c679b2d413285696b67c2dadda1
eb4b9f8604dd49aab7d6719a7375bb9c
t = theta_t₀
e20b9c679b2d413285696b67c2dadda1--eb4b9f8604dd49aab7d6719a7375bb9c
153f007f0c6045199f6cc77d68e16031
RX(theta₁₀)
eb4b9f8604dd49aab7d6719a7375bb9c--153f007f0c6045199f6cc77d68e16031
7107e13db799445aba124f77d36cfbda
RY(theta₁₃)
153f007f0c6045199f6cc77d68e16031--7107e13db799445aba124f77d36cfbda
4b87be0283064527985349ecf7f3cfda
RX(theta₁₆)
7107e13db799445aba124f77d36cfbda--4b87be0283064527985349ecf7f3cfda
83976e44ea5440acbeb60a504f7ab3bd
t = theta_t₁
4b87be0283064527985349ecf7f3cfda--83976e44ea5440acbeb60a504f7ab3bd
83976e44ea5440acbeb60a504f7ab3bd--12ec117db9c34a4eb51b12faaf446c5c
6fe97c334a274a1abc4e6832ad733ac2
6989698c71f442af82418452268a4228
RX(theta₂)
1411c90722244da080b6480b4831b882--6989698c71f442af82418452268a4228
1c1237c0a22742708fe7432d71f7612b
RY(theta₅)
6989698c71f442af82418452268a4228--1c1237c0a22742708fe7432d71f7612b
36188d30877e4167a3fa26e11cfab8ed
RX(theta₈)
1c1237c0a22742708fe7432d71f7612b--36188d30877e4167a3fa26e11cfab8ed
c472e9dc5f3c4f96a9db4a55d52a317a
36188d30877e4167a3fa26e11cfab8ed--c472e9dc5f3c4f96a9db4a55d52a317a
b9be27498ce14b939e0cbb5229b1d430
RX(theta₁₁)
c472e9dc5f3c4f96a9db4a55d52a317a--b9be27498ce14b939e0cbb5229b1d430
ec80aae2276047c787a327ab4eb80aec
RY(theta₁₄)
b9be27498ce14b939e0cbb5229b1d430--ec80aae2276047c787a327ab4eb80aec
a1673700ec6a4ec2a93b26f9f9bf4af0
RX(theta₁₇)
ec80aae2276047c787a327ab4eb80aec--a1673700ec6a4ec2a93b26f9f9bf4af0
5971e6c55eee417aa6c6f902c9dd5eee
a1673700ec6a4ec2a93b26f9f9bf4af0--5971e6c55eee417aa6c6f902c9dd5eee
5971e6c55eee417aa6c6f902c9dd5eee--6fe97c334a274a1abc4e6832ad733ac2
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_771852f2d2494c68be51cbc1eb9d2f17
cluster_ce9e99fb90bb46928732b53d33681ab8
9b3b6d89c0144282b01af3312038966e
0
5590ff50da8d409787010d0cbfc7cdb5
RX(theta₀)
9b3b6d89c0144282b01af3312038966e--5590ff50da8d409787010d0cbfc7cdb5
c31c434907594ba4a0c7bb276b0aae1c
1
832e4fa43a0046b6a960a1f165638157
RY(theta₆)
5590ff50da8d409787010d0cbfc7cdb5--832e4fa43a0046b6a960a1f165638157
f5533adae6e444b89842ebb93ce2f736
RX(theta₁₂)
832e4fa43a0046b6a960a1f165638157--f5533adae6e444b89842ebb93ce2f736
9cefdef6a6ae4ce3a10def286b924bef
f5533adae6e444b89842ebb93ce2f736--9cefdef6a6ae4ce3a10def286b924bef
255abbf6606d4f55bf0a631c9d72d83b
RX(theta₁₈)
9cefdef6a6ae4ce3a10def286b924bef--255abbf6606d4f55bf0a631c9d72d83b
964192453a00491a8ba28f7cfe8813e3
RY(theta₂₄)
255abbf6606d4f55bf0a631c9d72d83b--964192453a00491a8ba28f7cfe8813e3
da40eb4d345d481a93c68cfba9416a3d
RX(theta₃₀)
964192453a00491a8ba28f7cfe8813e3--da40eb4d345d481a93c68cfba9416a3d
8a7f4db4b00844f58c932430b3571edd
da40eb4d345d481a93c68cfba9416a3d--8a7f4db4b00844f58c932430b3571edd
e1ef52e85e774b56ae070286b3b9b784
8a7f4db4b00844f58c932430b3571edd--e1ef52e85e774b56ae070286b3b9b784
b671f36564944463898a4fcd4fe80671
e10a19eb369841a7900206659dd1146c
RX(theta₁)
c31c434907594ba4a0c7bb276b0aae1c--e10a19eb369841a7900206659dd1146c
0c958f8c58a347aa964ea86d29d9e1bb
2
f66e8da6835c4707baff89752f6b511c
RY(theta₇)
e10a19eb369841a7900206659dd1146c--f66e8da6835c4707baff89752f6b511c
9242cf3607894e5f84d3bd362355a605
RX(theta₁₃)
f66e8da6835c4707baff89752f6b511c--9242cf3607894e5f84d3bd362355a605
14ff5d8c959d41ceac640b1ff098f600
9242cf3607894e5f84d3bd362355a605--14ff5d8c959d41ceac640b1ff098f600
743eee8040e14adb80847ce3ef196362
RX(theta₁₉)
14ff5d8c959d41ceac640b1ff098f600--743eee8040e14adb80847ce3ef196362
90187b34f603464db8298e818eb5049e
RY(theta₂₅)
743eee8040e14adb80847ce3ef196362--90187b34f603464db8298e818eb5049e
a5c158a260584406ae02401add363038
RX(theta₃₁)
90187b34f603464db8298e818eb5049e--a5c158a260584406ae02401add363038
b7b3ee5fda984b2aa71e0926cb27a18b
a5c158a260584406ae02401add363038--b7b3ee5fda984b2aa71e0926cb27a18b
b7b3ee5fda984b2aa71e0926cb27a18b--b671f36564944463898a4fcd4fe80671
2de4eb46c3b3462e80571ca8868654c5
868c89fd7e95495a88486c1946cc54c8
RX(theta₂)
0c958f8c58a347aa964ea86d29d9e1bb--868c89fd7e95495a88486c1946cc54c8
9635e892ecde48b3a556a8d686ca9b8b
3
8ade1652f2fe4186a81c0d71ecc69751
RY(theta₈)
868c89fd7e95495a88486c1946cc54c8--8ade1652f2fe4186a81c0d71ecc69751
60ffe4fe0065412da3f9c9fe14ea9402
RX(theta₁₄)
8ade1652f2fe4186a81c0d71ecc69751--60ffe4fe0065412da3f9c9fe14ea9402
8c42fd2ff1dd4071bb45eb759af18451
HamEvo
60ffe4fe0065412da3f9c9fe14ea9402--8c42fd2ff1dd4071bb45eb759af18451
848d46ab21f54cbf8725ae9b7854bffd
RX(theta₂₀)
8c42fd2ff1dd4071bb45eb759af18451--848d46ab21f54cbf8725ae9b7854bffd
3340a8b4be7244c09e9f0f9ef3545bc9
RY(theta₂₆)
848d46ab21f54cbf8725ae9b7854bffd--3340a8b4be7244c09e9f0f9ef3545bc9
e1c4a431584041b3a501268516f08b6f
RX(theta₃₂)
3340a8b4be7244c09e9f0f9ef3545bc9--e1c4a431584041b3a501268516f08b6f
442e34df95f5480f9556d815651cf182
HamEvo
e1c4a431584041b3a501268516f08b6f--442e34df95f5480f9556d815651cf182
442e34df95f5480f9556d815651cf182--2de4eb46c3b3462e80571ca8868654c5
c24fde860b3e4e6baada1398e595701c
e6111ace6d98405c9d9720bc28f0e885
RX(theta₃)
9635e892ecde48b3a556a8d686ca9b8b--e6111ace6d98405c9d9720bc28f0e885
50987744659947a89c080a449f1f00ac
4
26ac5986213d46b6b76a129293125119
RY(theta₉)
e6111ace6d98405c9d9720bc28f0e885--26ac5986213d46b6b76a129293125119
fe6581b717fd406cace215cf7030a030
RX(theta₁₅)
26ac5986213d46b6b76a129293125119--fe6581b717fd406cace215cf7030a030
fda64a2a6f9446b4b7f433d6a67650e7
t = theta_t₀
fe6581b717fd406cace215cf7030a030--fda64a2a6f9446b4b7f433d6a67650e7
37d6ea742f574d3b85b0c0647f151125
RX(theta₂₁)
fda64a2a6f9446b4b7f433d6a67650e7--37d6ea742f574d3b85b0c0647f151125
0bef5f811cb64824b263e7c7c4aec461
RY(theta₂₇)
37d6ea742f574d3b85b0c0647f151125--0bef5f811cb64824b263e7c7c4aec461
40ac6e70946c431fb498d4d9344c7c83
RX(theta₃₃)
0bef5f811cb64824b263e7c7c4aec461--40ac6e70946c431fb498d4d9344c7c83
89bdcc5c8273457bad869cca443065d0
t = theta_t₁
40ac6e70946c431fb498d4d9344c7c83--89bdcc5c8273457bad869cca443065d0
89bdcc5c8273457bad869cca443065d0--c24fde860b3e4e6baada1398e595701c
d81d71644b624518839d6993d8030fb6
35b6f6d237054533ab75363b3566fb4c
RX(theta₄)
50987744659947a89c080a449f1f00ac--35b6f6d237054533ab75363b3566fb4c
2c7e9874c9164ac5a02e1e9d36bbda61
5
91db015202974432b3c67834e1566f19
RY(theta₁₀)
35b6f6d237054533ab75363b3566fb4c--91db015202974432b3c67834e1566f19
bebdf576e84c42f99fe4ab96a751db08
RX(theta₁₆)
91db015202974432b3c67834e1566f19--bebdf576e84c42f99fe4ab96a751db08
ba0693bb676e47eca98adc4e4620d792
bebdf576e84c42f99fe4ab96a751db08--ba0693bb676e47eca98adc4e4620d792
237ec5a34fc6450687a98b7bdfbac108
RX(theta₂₂)
ba0693bb676e47eca98adc4e4620d792--237ec5a34fc6450687a98b7bdfbac108
657ad305df4e4ba0b29fbdfa6b03a5c2
RY(theta₂₈)
237ec5a34fc6450687a98b7bdfbac108--657ad305df4e4ba0b29fbdfa6b03a5c2
77cb3449b36d42ddbe20250bb0f58760
RX(theta₃₄)
657ad305df4e4ba0b29fbdfa6b03a5c2--77cb3449b36d42ddbe20250bb0f58760
2d9bd4ca24674ede86e582b5b8de7aca
77cb3449b36d42ddbe20250bb0f58760--2d9bd4ca24674ede86e582b5b8de7aca
2d9bd4ca24674ede86e582b5b8de7aca--d81d71644b624518839d6993d8030fb6
1321b8cc70904491a222e80abf91d3ed
fea6294cb5764f52a4952fad4ab85f22
RX(theta₅)
2c7e9874c9164ac5a02e1e9d36bbda61--fea6294cb5764f52a4952fad4ab85f22
0dcf005b960b48d2969014577b7ad673
RY(theta₁₁)
fea6294cb5764f52a4952fad4ab85f22--0dcf005b960b48d2969014577b7ad673
baf46d13a7c54d0db45bfb0ab939dba8
RX(theta₁₇)
0dcf005b960b48d2969014577b7ad673--baf46d13a7c54d0db45bfb0ab939dba8
2df71671bb114100902ad9917c5524a2
baf46d13a7c54d0db45bfb0ab939dba8--2df71671bb114100902ad9917c5524a2
1daebf39a9974b5aa192fcf029008e28
RX(theta₂₃)
2df71671bb114100902ad9917c5524a2--1daebf39a9974b5aa192fcf029008e28
1ec78582780a4a218bf4797f1a1c357a
RY(theta₂₉)
1daebf39a9974b5aa192fcf029008e28--1ec78582780a4a218bf4797f1a1c357a
7b1832b7dcc74dd9b6075e122acb1f4b
RX(theta₃₅)
1ec78582780a4a218bf4797f1a1c357a--7b1832b7dcc74dd9b6075e122acb1f4b
c4f9ad90be234926b80c28165031388a
7b1832b7dcc74dd9b6075e122acb1f4b--c4f9ad90be234926b80c28165031388a
c4f9ad90be234926b80c28165031388a--1321b8cc70904491a222e80abf91d3ed
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_40771e4e68bc4c00a72bd371c3ed8b5b
BPMA-1
cluster_48e76593b98b41e0b611edb9f215f130
BPMA-0
3a92cbcf0fdf42d9b4dc706e9b8a12e1
0
4e24e84cbcca495096aaf3777f9b588d
RX(iia_α₀₀)
3a92cbcf0fdf42d9b4dc706e9b8a12e1--4e24e84cbcca495096aaf3777f9b588d
e6b166c343c84696b1a6a3994edc4ace
1
bc902ec8f02a4aad971e9a4725a8aed9
RY(iia_α₀₃)
4e24e84cbcca495096aaf3777f9b588d--bc902ec8f02a4aad971e9a4725a8aed9
dacbde53a22c48f79fe60ec13951151a
bc902ec8f02a4aad971e9a4725a8aed9--dacbde53a22c48f79fe60ec13951151a
9464e52c9613422e8ebd92922bad648f
dacbde53a22c48f79fe60ec13951151a--9464e52c9613422e8ebd92922bad648f
4c3b2fb9d7cc47a1ae12339675379d17
RX(iia_γ₀₀)
9464e52c9613422e8ebd92922bad648f--4c3b2fb9d7cc47a1ae12339675379d17
a76dd6977ee84ab9a3e68f62d8270f19
4c3b2fb9d7cc47a1ae12339675379d17--a76dd6977ee84ab9a3e68f62d8270f19
8d7db060377e46de9743373762267808
a76dd6977ee84ab9a3e68f62d8270f19--8d7db060377e46de9743373762267808
448202e6d6f642948e1801fa9b4a330f
RY(iia_β₀₃)
8d7db060377e46de9743373762267808--448202e6d6f642948e1801fa9b4a330f
40d5844bae36408282f1f50bda135261
RX(iia_β₀₀)
448202e6d6f642948e1801fa9b4a330f--40d5844bae36408282f1f50bda135261
0090409183824fb3a498ac3fcc45f240
RX(iia_α₁₀)
40d5844bae36408282f1f50bda135261--0090409183824fb3a498ac3fcc45f240
87609fd3bba04307ae9ec1ac5e659d08
RY(iia_α₁₃)
0090409183824fb3a498ac3fcc45f240--87609fd3bba04307ae9ec1ac5e659d08
2c0e4fb8c09d4b098c6d1fe23059498b
87609fd3bba04307ae9ec1ac5e659d08--2c0e4fb8c09d4b098c6d1fe23059498b
55d4b9f674974bd19c8edf7f6f2a5c9f
2c0e4fb8c09d4b098c6d1fe23059498b--55d4b9f674974bd19c8edf7f6f2a5c9f
c7ea74926b8441f1848030123e976822
RX(iia_γ₁₀)
55d4b9f674974bd19c8edf7f6f2a5c9f--c7ea74926b8441f1848030123e976822
1d11a3a1a4654002b055dd6b280011b5
c7ea74926b8441f1848030123e976822--1d11a3a1a4654002b055dd6b280011b5
98771bc9d3044e8aa1a598fe3be27fe3
1d11a3a1a4654002b055dd6b280011b5--98771bc9d3044e8aa1a598fe3be27fe3
41225dbb97c14135943d80d45f3b3678
RY(iia_β₁₃)
98771bc9d3044e8aa1a598fe3be27fe3--41225dbb97c14135943d80d45f3b3678
63126ce36b81496cb7920778a3f0c2ed
RX(iia_β₁₀)
41225dbb97c14135943d80d45f3b3678--63126ce36b81496cb7920778a3f0c2ed
35f09e1c62df4131ab2a62206821890d
63126ce36b81496cb7920778a3f0c2ed--35f09e1c62df4131ab2a62206821890d
4be7965ce53b4c28a479aa888de70bc8
eaa568aa9a5948e8ba2708dce78d69ff
RX(iia_α₀₁)
e6b166c343c84696b1a6a3994edc4ace--eaa568aa9a5948e8ba2708dce78d69ff
bf0ab2a0378d45fd8eed69d8f2f4cbe6
2
0a9549e94fdd4a238e0a20a3211e2616
RY(iia_α₀₄)
eaa568aa9a5948e8ba2708dce78d69ff--0a9549e94fdd4a238e0a20a3211e2616
f6af7c656c5f4e489bbd14c25c76172a
X
0a9549e94fdd4a238e0a20a3211e2616--f6af7c656c5f4e489bbd14c25c76172a
f6af7c656c5f4e489bbd14c25c76172a--dacbde53a22c48f79fe60ec13951151a
ec4841bda8994e96b0a6f633bdd514eb
f6af7c656c5f4e489bbd14c25c76172a--ec4841bda8994e96b0a6f633bdd514eb
bdcc1224e3104dbb89a78b772e101756
RX(iia_γ₀₁)
ec4841bda8994e96b0a6f633bdd514eb--bdcc1224e3104dbb89a78b772e101756
9dbeb549c924484788d73516396c982c
bdcc1224e3104dbb89a78b772e101756--9dbeb549c924484788d73516396c982c
02c9b754ad4b451f8b011fe998d7cc45
X
9dbeb549c924484788d73516396c982c--02c9b754ad4b451f8b011fe998d7cc45
02c9b754ad4b451f8b011fe998d7cc45--8d7db060377e46de9743373762267808
88c1755a25da4a9584b3484c0b40c01e
RY(iia_β₀₄)
02c9b754ad4b451f8b011fe998d7cc45--88c1755a25da4a9584b3484c0b40c01e
f41e60582c624533a52b76476fa110a4
RX(iia_β₀₁)
88c1755a25da4a9584b3484c0b40c01e--f41e60582c624533a52b76476fa110a4
a12e35ce1a9b4ffebeea28fe74f6f456
RX(iia_α₁₁)
f41e60582c624533a52b76476fa110a4--a12e35ce1a9b4ffebeea28fe74f6f456
5fcefdf4c1354d3697128e1f520db66e
RY(iia_α₁₄)
a12e35ce1a9b4ffebeea28fe74f6f456--5fcefdf4c1354d3697128e1f520db66e
380c3afefa77487a993c5e6ac55a3106
X
5fcefdf4c1354d3697128e1f520db66e--380c3afefa77487a993c5e6ac55a3106
380c3afefa77487a993c5e6ac55a3106--2c0e4fb8c09d4b098c6d1fe23059498b
d368cae96a9e415d93953f783a88f722
380c3afefa77487a993c5e6ac55a3106--d368cae96a9e415d93953f783a88f722
7653199d26d74cb2a7881284458283b9
RX(iia_γ₁₁)
d368cae96a9e415d93953f783a88f722--7653199d26d74cb2a7881284458283b9
aab93b3c343546dabc814e927a6a1de2
7653199d26d74cb2a7881284458283b9--aab93b3c343546dabc814e927a6a1de2
f2151f0107014d119d6e284223e6da32
X
aab93b3c343546dabc814e927a6a1de2--f2151f0107014d119d6e284223e6da32
f2151f0107014d119d6e284223e6da32--98771bc9d3044e8aa1a598fe3be27fe3
5680bec9beb54e439045a3a10838073a
RY(iia_β₁₄)
f2151f0107014d119d6e284223e6da32--5680bec9beb54e439045a3a10838073a
cb25269c71054d34b45269bb5d8ee14f
RX(iia_β₁₁)
5680bec9beb54e439045a3a10838073a--cb25269c71054d34b45269bb5d8ee14f
cb25269c71054d34b45269bb5d8ee14f--4be7965ce53b4c28a479aa888de70bc8
4b078464a884409ba31ddd1076898866
a5c7dbc6fe6e47a6992a0ca1d62630d8
RX(iia_α₀₂)
bf0ab2a0378d45fd8eed69d8f2f4cbe6--a5c7dbc6fe6e47a6992a0ca1d62630d8
1c52fff534064db4be45da85a5776b83
RY(iia_α₀₅)
a5c7dbc6fe6e47a6992a0ca1d62630d8--1c52fff534064db4be45da85a5776b83
fe9bad1b814f4b19928d19f462a97e3a
1c52fff534064db4be45da85a5776b83--fe9bad1b814f4b19928d19f462a97e3a
2001f0296230497884959b9680f2a53d
X
fe9bad1b814f4b19928d19f462a97e3a--2001f0296230497884959b9680f2a53d
2001f0296230497884959b9680f2a53d--ec4841bda8994e96b0a6f633bdd514eb
f02ebbf0ff42421db5faca04ad2d9ab4
RX(iia_γ₀₂)
2001f0296230497884959b9680f2a53d--f02ebbf0ff42421db5faca04ad2d9ab4
76bbc957418f47c59ae460f7dfdf4744
X
f02ebbf0ff42421db5faca04ad2d9ab4--76bbc957418f47c59ae460f7dfdf4744
76bbc957418f47c59ae460f7dfdf4744--9dbeb549c924484788d73516396c982c
d63bdecf571c4b84ad48cba8a56fa879
76bbc957418f47c59ae460f7dfdf4744--d63bdecf571c4b84ad48cba8a56fa879
44d5b9ea1dae4e90826e21a3eb854a90
RY(iia_β₀₅)
d63bdecf571c4b84ad48cba8a56fa879--44d5b9ea1dae4e90826e21a3eb854a90
18f0539001ba48f9baee3a457ff96ab9
RX(iia_β₀₂)
44d5b9ea1dae4e90826e21a3eb854a90--18f0539001ba48f9baee3a457ff96ab9
4b2b88a0fba743099156db90c10ce822
RX(iia_α₁₂)
18f0539001ba48f9baee3a457ff96ab9--4b2b88a0fba743099156db90c10ce822
f3fd2c3f900a445986a90986c5fb0dc3
RY(iia_α₁₅)
4b2b88a0fba743099156db90c10ce822--f3fd2c3f900a445986a90986c5fb0dc3
d3ab4dc3fa5b4a74b38b5fabc2033d5a
f3fd2c3f900a445986a90986c5fb0dc3--d3ab4dc3fa5b4a74b38b5fabc2033d5a
97d9b9f951154e35a966be01bf75ac02
X
d3ab4dc3fa5b4a74b38b5fabc2033d5a--97d9b9f951154e35a966be01bf75ac02
97d9b9f951154e35a966be01bf75ac02--d368cae96a9e415d93953f783a88f722
d88dde6fa1dd4c2bbb41ed66679f671f
RX(iia_γ₁₂)
97d9b9f951154e35a966be01bf75ac02--d88dde6fa1dd4c2bbb41ed66679f671f
ceb9a21768b549ad85e9d004698e4436
X
d88dde6fa1dd4c2bbb41ed66679f671f--ceb9a21768b549ad85e9d004698e4436
ceb9a21768b549ad85e9d004698e4436--aab93b3c343546dabc814e927a6a1de2
02339f6075a34973bd6d4e094b3d0341
ceb9a21768b549ad85e9d004698e4436--02339f6075a34973bd6d4e094b3d0341
296cf1fb869048cc94827443380f9137
RY(iia_β₁₅)
02339f6075a34973bd6d4e094b3d0341--296cf1fb869048cc94827443380f9137
9c638c7406a64a7fabeec358f8c4a8d4
RX(iia_β₁₂)
296cf1fb869048cc94827443380f9137--9c638c7406a64a7fabeec358f8c4a8d4
9c638c7406a64a7fabeec358f8c4a8d4--4b078464a884409ba31ddd1076898866