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_7e69318d9f404449b39393b9ee2d3d83
Constant Chebyshev FM
cluster_efbd2e579c0e40c989aac8a2ded2ca7d
Constant Fourier FM
6d3897c495384fc09c49fa8438a3baf8
0
c3e615a3bda144618a5f7c4275c2d989
RX(phi)
6d3897c495384fc09c49fa8438a3baf8--c3e615a3bda144618a5f7c4275c2d989
b896f704a2fc445182a1604c07c42cb8
1
e43e380e4557499b9155ff03bd2118de
RX(acos(phi))
c3e615a3bda144618a5f7c4275c2d989--e43e380e4557499b9155ff03bd2118de
f02befbf4dc14ea9aded9fbd94b34229
e43e380e4557499b9155ff03bd2118de--f02befbf4dc14ea9aded9fbd94b34229
eadacf7807584b38b47117f50bdccabf
a16c716dcfda4d1f8954674129561230
RX(phi)
b896f704a2fc445182a1604c07c42cb8--a16c716dcfda4d1f8954674129561230
a7264b23eac04951a82f8fb473bfc6fb
2
f23936cbd5b94be8956dcc3b23719ec0
RX(acos(phi))
a16c716dcfda4d1f8954674129561230--f23936cbd5b94be8956dcc3b23719ec0
f23936cbd5b94be8956dcc3b23719ec0--eadacf7807584b38b47117f50bdccabf
66b334b2dd594151af5669e6e49a4e3f
4f847e501f1647ae84e835d29574b299
RX(phi)
a7264b23eac04951a82f8fb473bfc6fb--4f847e501f1647ae84e835d29574b299
b9dbb918759545a085d31f1d8d7ee0e3
RX(acos(phi))
4f847e501f1647ae84e835d29574b299--b9dbb918759545a085d31f1d8d7ee0e3
b9dbb918759545a085d31f1d8d7ee0e3--66b334b2dd594151af5669e6e49a4e3f
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_6feb4508b4da459bbdbcebfbb77de30f
Constant <function custom_fn at 0x7f51cd3f5630> FM
cluster_6ff131aed2154295a6d1bbe2ca6cdfb7
Constant asin FM
add8bbe6714241aa9adfb5e40bf18075
0
b93d08e4e12b41979faa1c2d33a10a9b
RX(asin(phi))
add8bbe6714241aa9adfb5e40bf18075--b93d08e4e12b41979faa1c2d33a10a9b
b6846ca2e63d44648ce049ef70cf9ace
1
1238fadafaf14a90ba96700f04c9501c
RX(phi**2 + asin(phi))
b93d08e4e12b41979faa1c2d33a10a9b--1238fadafaf14a90ba96700f04c9501c
bffc12fddde249ed9fccd0cde96fb89a
1238fadafaf14a90ba96700f04c9501c--bffc12fddde249ed9fccd0cde96fb89a
e2a37f06d22e490e86a266e92f47442d
d90c396fcbcd4bdf94c24c7a7c0b9474
RX(asin(phi))
b6846ca2e63d44648ce049ef70cf9ace--d90c396fcbcd4bdf94c24c7a7c0b9474
931cc77548ff48408cabc74dac160174
2
7347dc9fc6e445d69545b14e0aea78cc
RX(phi**2 + asin(phi))
d90c396fcbcd4bdf94c24c7a7c0b9474--7347dc9fc6e445d69545b14e0aea78cc
7347dc9fc6e445d69545b14e0aea78cc--e2a37f06d22e490e86a266e92f47442d
40bd7c92ff5c44caa347ef815d5744fc
20112c817ebe43ce8cbd8e8727306829
RX(asin(phi))
931cc77548ff48408cabc74dac160174--20112c817ebe43ce8cbd8e8727306829
98faff6f7d1a46ff87568cec3483a320
RX(phi**2 + asin(phi))
20112c817ebe43ce8cbd8e8727306829--98faff6f7d1a46ff87568cec3483a320
98faff6f7d1a46ff87568cec3483a320--40bd7c92ff5c44caa347ef815d5744fc
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_19f80d0e0f134a3685845bf99cab2de5
Exponential Fourier FM
cluster_82ae22449d38402eb69dc039fee6afd1
Constant Fourier FM
cluster_8130d27aaaac4184b30474ff3ec02bf1
Tower Fourier FM
33c708ca444e4447aa7ddf04795d66a4
0
7ee4521ba93c4d6794bdde06eede3377
RX(phi)
33c708ca444e4447aa7ddf04795d66a4--7ee4521ba93c4d6794bdde06eede3377
ac811fa9aedb4a9e824525b1a23ada6b
1
3277d609052648b3a944f50694dcb8d3
RX(1.0*phi)
7ee4521ba93c4d6794bdde06eede3377--3277d609052648b3a944f50694dcb8d3
519ea05b9dbc45bfbbbc14187f38925d
RX(1.0*phi)
3277d609052648b3a944f50694dcb8d3--519ea05b9dbc45bfbbbc14187f38925d
687f697001c54281a0eacb12d6c6c143
519ea05b9dbc45bfbbbc14187f38925d--687f697001c54281a0eacb12d6c6c143
28cc01edf12d4225afc7ac30112500b5
9f826c886d25435aa55ad82e926bbbad
RX(phi)
ac811fa9aedb4a9e824525b1a23ada6b--9f826c886d25435aa55ad82e926bbbad
80dd478a288449418d5f1bedbe0773fd
2
a44729661ea94d75b9f79efb097192e3
RX(2.0*phi)
9f826c886d25435aa55ad82e926bbbad--a44729661ea94d75b9f79efb097192e3
d176cd36010a486f9ecc1c72967455bf
RX(2.0*phi)
a44729661ea94d75b9f79efb097192e3--d176cd36010a486f9ecc1c72967455bf
d176cd36010a486f9ecc1c72967455bf--28cc01edf12d4225afc7ac30112500b5
919700b7e00b4eb28fff5c31935a0f6e
47e1069f867e43f1a927bad624e029df
RX(phi)
80dd478a288449418d5f1bedbe0773fd--47e1069f867e43f1a927bad624e029df
4aa42f0f796c458498b68684810b96cc
3
34537170140240fab8174ceb0b1c8bda
RX(3.0*phi)
47e1069f867e43f1a927bad624e029df--34537170140240fab8174ceb0b1c8bda
1265d3f6609a4a8e904f4923db3af87c
RX(4.0*phi)
34537170140240fab8174ceb0b1c8bda--1265d3f6609a4a8e904f4923db3af87c
1265d3f6609a4a8e904f4923db3af87c--919700b7e00b4eb28fff5c31935a0f6e
72bdfaca72534dfaa429c02b83e34f4e
ad9902f8a5764c4981bb19491bf29958
RX(phi)
4aa42f0f796c458498b68684810b96cc--ad9902f8a5764c4981bb19491bf29958
dda5ac7839464342b9e19a3c48c30e07
4
bfe187e64468460a9ce644003669366b
RX(4.0*phi)
ad9902f8a5764c4981bb19491bf29958--bfe187e64468460a9ce644003669366b
e19baef7d9a04324ba4728699119b9b7
RX(8.0*phi)
bfe187e64468460a9ce644003669366b--e19baef7d9a04324ba4728699119b9b7
e19baef7d9a04324ba4728699119b9b7--72bdfaca72534dfaa429c02b83e34f4e
b27bde737c6244b2a3ffa7c4101f78cd
ad7fdd51d22949fdbad26bc9b22ad93c
RX(phi)
dda5ac7839464342b9e19a3c48c30e07--ad7fdd51d22949fdbad26bc9b22ad93c
2c07ad2c236640da845b024e020e1054
RX(5.0*phi)
ad7fdd51d22949fdbad26bc9b22ad93c--2c07ad2c236640da845b024e020e1054
847ee99f145b49adbe6678df0cbcf59a
RX(16.0*phi)
2c07ad2c236640da845b024e020e1054--847ee99f145b49adbe6678df0cbcf59a
847ee99f145b49adbe6678df0cbcf59a--b27bde737c6244b2a3ffa7c4101f78cd
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
7dac997f97564940bee215acc319cd92
0
c0c80b0637284ea49e51a624f387c4ad
RX(1.0*acos(phi))
7dac997f97564940bee215acc319cd92--c0c80b0637284ea49e51a624f387c4ad
3580549526234e26aad6c85ffcc90e27
1
cbd96976456f430bad745c2835a704f1
c0c80b0637284ea49e51a624f387c4ad--cbd96976456f430bad745c2835a704f1
78d6081ac6044e498a6717bb3dfe2ad9
ddbfed2cde8047e6a8bba6073a3e7d3d
RX(1.414*acos(phi))
3580549526234e26aad6c85ffcc90e27--ddbfed2cde8047e6a8bba6073a3e7d3d
353984f5590b4fa8acfef45df1501f6e
2
ddbfed2cde8047e6a8bba6073a3e7d3d--78d6081ac6044e498a6717bb3dfe2ad9
501fb44959074b8ab8d0df189bf8d7f8
5e4a4a7597ad43c58dbf52663727531f
RX(1.732*acos(phi))
353984f5590b4fa8acfef45df1501f6e--5e4a4a7597ad43c58dbf52663727531f
3e96f8c260d04b5dafe4646bc9b1ddd5
3
5e4a4a7597ad43c58dbf52663727531f--501fb44959074b8ab8d0df189bf8d7f8
1cdea95f39b14094b61f697d6570f8f2
e2f461c0351e443ead3052bb74c82734
RX(2.0*acos(phi))
3e96f8c260d04b5dafe4646bc9b1ddd5--e2f461c0351e443ead3052bb74c82734
657a2502567f422fbe6a5d2614a2f499
4
e2f461c0351e443ead3052bb74c82734--1cdea95f39b14094b61f697d6570f8f2
ee96196fee6348f592bb9287a7e8c99e
0cf7012e17b14479a90634dad510cb1a
RX(2.236*acos(phi))
657a2502567f422fbe6a5d2614a2f499--0cf7012e17b14479a90634dad510cb1a
0cf7012e17b14479a90634dad510cb1a--ee96196fee6348f592bb9287a7e8c99e
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
3c30414bd69d424da44acfe5aaba82cf
0
4d4db7133917403e9cafe53b2e14156f
RX(1.0*phi*w₀)
3c30414bd69d424da44acfe5aaba82cf--4d4db7133917403e9cafe53b2e14156f
3513d927e0e24d96a9b8c536dc6ef847
1
5020dbd032284725a4594ac464428d39
4d4db7133917403e9cafe53b2e14156f--5020dbd032284725a4594ac464428d39
057e5a982e714c5eb69e622ae3a21bd0
24257d34083440328676fadc1532ea3f
RX(2.0*phi*w₁)
3513d927e0e24d96a9b8c536dc6ef847--24257d34083440328676fadc1532ea3f
9fb0e5fe44b248828397efa0efbc4172
2
24257d34083440328676fadc1532ea3f--057e5a982e714c5eb69e622ae3a21bd0
69b3507e2ea14eb59159b4fb2c989cb0
4e303d7fc5dd460b997bc426cc910015
RX(4.0*phi*w₂)
9fb0e5fe44b248828397efa0efbc4172--4e303d7fc5dd460b997bc426cc910015
e16824f1a50f4ae28f3ce2803bc6995b
3
4e303d7fc5dd460b997bc426cc910015--69b3507e2ea14eb59159b4fb2c989cb0
3b54544a9418408599845e2c12230597
5eeb0b0faa1b4c44bea3ae1309b1a2ad
RX(8.0*phi*w₃)
e16824f1a50f4ae28f3ce2803bc6995b--5eeb0b0faa1b4c44bea3ae1309b1a2ad
f4e20c4eaf5f458a96ab7c3ac8aa748d
4
5eeb0b0faa1b4c44bea3ae1309b1a2ad--3b54544a9418408599845e2c12230597
c2c39551ece84826aa805d908c95defd
39d0e4ce47a8426fab32b14986741a46
RX(16.0*phi*w₄)
f4e20c4eaf5f458a96ab7c3ac8aa748d--39d0e4ce47a8426fab32b14986741a46
39d0e4ce47a8426fab32b14986741a46--c2c39551ece84826aa805d908c95defd
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
e389874fc7a3476bbc134725fec29cb9
0
2eddc536f3ee4662ab61d0f664f851a8
RY(80.0*acos(w₄*(0.667*x + 1.667)))
e389874fc7a3476bbc134725fec29cb9--2eddc536f3ee4662ab61d0f664f851a8
80ab1bbed7254e5e8ec037683bf5976c
1
80c17e73081343f39940273a0463b156
2eddc536f3ee4662ab61d0f664f851a8--80c17e73081343f39940273a0463b156
aa1ec590dc9a40708f1a3509f8d32dcb
60ca7fe4039c4eadb4800ffdd280ecc1
RY(40.0*acos(w₃*(0.667*x + 1.667)))
80ab1bbed7254e5e8ec037683bf5976c--60ca7fe4039c4eadb4800ffdd280ecc1
711ba80c09cd49049fa26581e7e9892a
2
60ca7fe4039c4eadb4800ffdd280ecc1--aa1ec590dc9a40708f1a3509f8d32dcb
48ae67e83bb2432c9ebd91d136515187
667530a0cef345e4ae327286c74149fb
RY(20.0*acos(w₂*(0.667*x + 1.667)))
711ba80c09cd49049fa26581e7e9892a--667530a0cef345e4ae327286c74149fb
e24a316f889c4ba4863c6ff78508c91b
3
667530a0cef345e4ae327286c74149fb--48ae67e83bb2432c9ebd91d136515187
656e029a679d43479c90498f28eaa173
5ef79edbc9204f19848575fb5ab70d38
RY(10.0*acos(w₁*(0.667*x + 1.667)))
e24a316f889c4ba4863c6ff78508c91b--5ef79edbc9204f19848575fb5ab70d38
8466fd969de0440fa0effc2f887ce0a1
4
5ef79edbc9204f19848575fb5ab70d38--656e029a679d43479c90498f28eaa173
e79fe7189ee34d7d8d0bb7520f05c06e
52d27eac3f9b41608cd2ca911338cb72
RY(5.0*acos(w₀*(0.667*x + 1.667)))
8466fd969de0440fa0effc2f887ce0a1--52d27eac3f9b41608cd2ca911338cb72
52d27eac3f9b41608cd2ca911338cb72--e79fe7189ee34d7d8d0bb7520f05c06e
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
83e3da2e56364f78bcb803e6ebd90b75
0
cc5bf4403eac434ab7eeec440317281e
RX(theta₀)
83e3da2e56364f78bcb803e6ebd90b75--cc5bf4403eac434ab7eeec440317281e
93cd37186468498ba221efc00a0d1daa
1
7679f2404b504ccba5d85107003ed888
RY(theta₃)
cc5bf4403eac434ab7eeec440317281e--7679f2404b504ccba5d85107003ed888
926bdbd3c50d4775918ccef4463dfe95
RX(theta₆)
7679f2404b504ccba5d85107003ed888--926bdbd3c50d4775918ccef4463dfe95
eb3fe8d884414ae3a247965757854f34
926bdbd3c50d4775918ccef4463dfe95--eb3fe8d884414ae3a247965757854f34
287480fc1ff2484a8c1b58a9509d2564
eb3fe8d884414ae3a247965757854f34--287480fc1ff2484a8c1b58a9509d2564
f2b1a87444084fa0bcf9572f0499b333
RX(theta₉)
287480fc1ff2484a8c1b58a9509d2564--f2b1a87444084fa0bcf9572f0499b333
ffb4c3c0919f427fa6f7682397da0f2d
RY(theta₁₂)
f2b1a87444084fa0bcf9572f0499b333--ffb4c3c0919f427fa6f7682397da0f2d
0e058077ec62410b8551ff2caf479420
RX(theta₁₅)
ffb4c3c0919f427fa6f7682397da0f2d--0e058077ec62410b8551ff2caf479420
94d9884eb7fa4a63b001174c96238bbf
0e058077ec62410b8551ff2caf479420--94d9884eb7fa4a63b001174c96238bbf
adb62669b8cd492b83fa4100986de306
94d9884eb7fa4a63b001174c96238bbf--adb62669b8cd492b83fa4100986de306
fc3ee3c4e6274001ac44e49013fc7fb7
adb62669b8cd492b83fa4100986de306--fc3ee3c4e6274001ac44e49013fc7fb7
d763346e5c764f4cb3cd2ada3fb6e469
da803a0bc6174334a527e6e7aa684765
RX(theta₁)
93cd37186468498ba221efc00a0d1daa--da803a0bc6174334a527e6e7aa684765
6184fb09cb564f179c143eb1cb15dbfd
2
27f5a8e2ca57415cba1224e83bce8815
RY(theta₄)
da803a0bc6174334a527e6e7aa684765--27f5a8e2ca57415cba1224e83bce8815
0552518fc9624058a0fc041882d3cb79
RX(theta₇)
27f5a8e2ca57415cba1224e83bce8815--0552518fc9624058a0fc041882d3cb79
96053e3f143b4f87920264b2fb99eb28
X
0552518fc9624058a0fc041882d3cb79--96053e3f143b4f87920264b2fb99eb28
96053e3f143b4f87920264b2fb99eb28--eb3fe8d884414ae3a247965757854f34
c77e717d656c4dfeb7b4ec1858de6821
96053e3f143b4f87920264b2fb99eb28--c77e717d656c4dfeb7b4ec1858de6821
4b69373c34f8466daae1c68222890b41
RX(theta₁₀)
c77e717d656c4dfeb7b4ec1858de6821--4b69373c34f8466daae1c68222890b41
c92a2927957f45ea81d5ae58f85f98d3
RY(theta₁₃)
4b69373c34f8466daae1c68222890b41--c92a2927957f45ea81d5ae58f85f98d3
4b3975c4d09d4e0ab8d3f58ac385fc1b
RX(theta₁₆)
c92a2927957f45ea81d5ae58f85f98d3--4b3975c4d09d4e0ab8d3f58ac385fc1b
776b4f5078c14be6a6a4dd1cd1f1a31b
X
4b3975c4d09d4e0ab8d3f58ac385fc1b--776b4f5078c14be6a6a4dd1cd1f1a31b
776b4f5078c14be6a6a4dd1cd1f1a31b--94d9884eb7fa4a63b001174c96238bbf
4cbe629fa09949008fbf0fc9a0d4b967
776b4f5078c14be6a6a4dd1cd1f1a31b--4cbe629fa09949008fbf0fc9a0d4b967
4cbe629fa09949008fbf0fc9a0d4b967--d763346e5c764f4cb3cd2ada3fb6e469
ed9980093c724c7d9f97685cb03568ea
b73451ee62d243f4913280a68dd98772
RX(theta₂)
6184fb09cb564f179c143eb1cb15dbfd--b73451ee62d243f4913280a68dd98772
b10878bf5cd64babbd3bd8ed29b7aa75
RY(theta₅)
b73451ee62d243f4913280a68dd98772--b10878bf5cd64babbd3bd8ed29b7aa75
27991fa11cd144fba4be23535e82cf3f
RX(theta₈)
b10878bf5cd64babbd3bd8ed29b7aa75--27991fa11cd144fba4be23535e82cf3f
d918923a27f04bd2a5236d76842cbfdc
27991fa11cd144fba4be23535e82cf3f--d918923a27f04bd2a5236d76842cbfdc
771e415ec43c4260b38d8fd7cc82611b
X
d918923a27f04bd2a5236d76842cbfdc--771e415ec43c4260b38d8fd7cc82611b
771e415ec43c4260b38d8fd7cc82611b--c77e717d656c4dfeb7b4ec1858de6821
ef9a2fdbf77d4a57b63abbb10d36984f
RX(theta₁₁)
771e415ec43c4260b38d8fd7cc82611b--ef9a2fdbf77d4a57b63abbb10d36984f
4d546bf91a544212895b437db7704ce2
RY(theta₁₄)
ef9a2fdbf77d4a57b63abbb10d36984f--4d546bf91a544212895b437db7704ce2
75954f019e804a72a8d5d3f322567177
RX(theta₁₇)
4d546bf91a544212895b437db7704ce2--75954f019e804a72a8d5d3f322567177
4d8c3806ae4242069ede64f522112ee7
75954f019e804a72a8d5d3f322567177--4d8c3806ae4242069ede64f522112ee7
ba25f32370c54ba3ae84136cc90ec9bc
X
4d8c3806ae4242069ede64f522112ee7--ba25f32370c54ba3ae84136cc90ec9bc
ba25f32370c54ba3ae84136cc90ec9bc--4cbe629fa09949008fbf0fc9a0d4b967
ba25f32370c54ba3ae84136cc90ec9bc--ed9980093c724c7d9f97685cb03568ea
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
f75adafda2414938ac4cf2b725aa95b7
0
8c12c255255144458ef8fa078f005232
RX(phi₀)
f75adafda2414938ac4cf2b725aa95b7--8c12c255255144458ef8fa078f005232
9bbd9f429e5c48e0889cf05cbe80f656
1
13376e281a3642c0962a188d0d5a86a7
RY(phi₃)
8c12c255255144458ef8fa078f005232--13376e281a3642c0962a188d0d5a86a7
7b64439bd3a146c4b3c78af2944545f9
RX(phi₆)
13376e281a3642c0962a188d0d5a86a7--7b64439bd3a146c4b3c78af2944545f9
3bd02a85d01e4c3f88d1fd5a9f368b27
7b64439bd3a146c4b3c78af2944545f9--3bd02a85d01e4c3f88d1fd5a9f368b27
d072ac49b89944f99d9842d2c1176fca
3bd02a85d01e4c3f88d1fd5a9f368b27--d072ac49b89944f99d9842d2c1176fca
e2e44c10c8da4b569f107fb9f0d8106d
RX(phi₉)
d072ac49b89944f99d9842d2c1176fca--e2e44c10c8da4b569f107fb9f0d8106d
2da1654b7fbe4ff1a21ade32869174e4
RY(phi₁₂)
e2e44c10c8da4b569f107fb9f0d8106d--2da1654b7fbe4ff1a21ade32869174e4
2941861bab4b4688b3399666d6e9e36b
RX(phi₁₅)
2da1654b7fbe4ff1a21ade32869174e4--2941861bab4b4688b3399666d6e9e36b
5bfae0f0bac04747bb9a57928c7b4c57
2941861bab4b4688b3399666d6e9e36b--5bfae0f0bac04747bb9a57928c7b4c57
e18867cf541d4326be03b6d694ab90d0
5bfae0f0bac04747bb9a57928c7b4c57--e18867cf541d4326be03b6d694ab90d0
161f0361a5124114b483395ca1328c10
e18867cf541d4326be03b6d694ab90d0--161f0361a5124114b483395ca1328c10
e6659dc85cfc4692983acbe3e5366357
c0975bcb9b1f483ab97fbe4cdd7f1683
RX(phi₁)
9bbd9f429e5c48e0889cf05cbe80f656--c0975bcb9b1f483ab97fbe4cdd7f1683
633e1f87ae82449d97df50128a929904
2
1fad4c0cb35245ebbf6e93407e51441d
RY(phi₄)
c0975bcb9b1f483ab97fbe4cdd7f1683--1fad4c0cb35245ebbf6e93407e51441d
5882c568cabf423093a9300e28a8eb45
RX(phi₇)
1fad4c0cb35245ebbf6e93407e51441d--5882c568cabf423093a9300e28a8eb45
f6325f30afd54b0a932979fd99c33e94
PHASE(phi_ent₀)
5882c568cabf423093a9300e28a8eb45--f6325f30afd54b0a932979fd99c33e94
f6325f30afd54b0a932979fd99c33e94--3bd02a85d01e4c3f88d1fd5a9f368b27
ce93db20c0c349b8b45364302af1aeda
f6325f30afd54b0a932979fd99c33e94--ce93db20c0c349b8b45364302af1aeda
943175380daa42e8a0cf324910b7725e
RX(phi₁₀)
ce93db20c0c349b8b45364302af1aeda--943175380daa42e8a0cf324910b7725e
284f340dbcb94fc789d3891aed0806b8
RY(phi₁₃)
943175380daa42e8a0cf324910b7725e--284f340dbcb94fc789d3891aed0806b8
cf6eeb630a434d63a505ce68ca3eb67f
RX(phi₁₆)
284f340dbcb94fc789d3891aed0806b8--cf6eeb630a434d63a505ce68ca3eb67f
b3dbcf6208364449a84cf9412e0c33dd
PHASE(phi_ent₂)
cf6eeb630a434d63a505ce68ca3eb67f--b3dbcf6208364449a84cf9412e0c33dd
b3dbcf6208364449a84cf9412e0c33dd--5bfae0f0bac04747bb9a57928c7b4c57
f56d9f32e3344da384164ac307cabfa2
b3dbcf6208364449a84cf9412e0c33dd--f56d9f32e3344da384164ac307cabfa2
f56d9f32e3344da384164ac307cabfa2--e6659dc85cfc4692983acbe3e5366357
12bcf8f663654783a0c91fe95dce0b8f
b9710e6b891649e88fa5d28ccb042fc9
RX(phi₂)
633e1f87ae82449d97df50128a929904--b9710e6b891649e88fa5d28ccb042fc9
e272c00583244a1482841f335f518bc6
RY(phi₅)
b9710e6b891649e88fa5d28ccb042fc9--e272c00583244a1482841f335f518bc6
964e6ddab37048cfa34a3dcfcfde79be
RX(phi₈)
e272c00583244a1482841f335f518bc6--964e6ddab37048cfa34a3dcfcfde79be
c8fa386c969e46cdaf02b155dfab8843
964e6ddab37048cfa34a3dcfcfde79be--c8fa386c969e46cdaf02b155dfab8843
a6adf168a9ed4b4fa2db00b1623616b9
PHASE(phi_ent₁)
c8fa386c969e46cdaf02b155dfab8843--a6adf168a9ed4b4fa2db00b1623616b9
a6adf168a9ed4b4fa2db00b1623616b9--ce93db20c0c349b8b45364302af1aeda
5827250b819d4b2a811bc5fbb55426d5
RX(phi₁₁)
a6adf168a9ed4b4fa2db00b1623616b9--5827250b819d4b2a811bc5fbb55426d5
929eaf534e9c4f0bbdbd5fc5f2c7c5b5
RY(phi₁₄)
5827250b819d4b2a811bc5fbb55426d5--929eaf534e9c4f0bbdbd5fc5f2c7c5b5
5462efef0310484fad9f640bed72f141
RX(phi₁₇)
929eaf534e9c4f0bbdbd5fc5f2c7c5b5--5462efef0310484fad9f640bed72f141
61154d7a495544baa3c06c2340f7e434
5462efef0310484fad9f640bed72f141--61154d7a495544baa3c06c2340f7e434
599cf09a837945718200dee0e3f7824c
PHASE(phi_ent₃)
61154d7a495544baa3c06c2340f7e434--599cf09a837945718200dee0e3f7824c
599cf09a837945718200dee0e3f7824c--f56d9f32e3344da384164ac307cabfa2
599cf09a837945718200dee0e3f7824c--12bcf8f663654783a0c91fe95dce0b8f
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_1a8ddda9c30c4e1ab64e47dcf69d4248
cluster_7d73768003464eb69687d68784d35672
500d1c6a664b4c408648fcb93bfaeee5
0
dbb45b57ee5e4201a6704a92a75706fc
RX(theta₀)
500d1c6a664b4c408648fcb93bfaeee5--dbb45b57ee5e4201a6704a92a75706fc
5ae33bc0757d4fd19a9364a95ffc38ce
1
08f966c4993647699ce8be0d1cd432ff
RY(theta₃)
dbb45b57ee5e4201a6704a92a75706fc--08f966c4993647699ce8be0d1cd432ff
79b624c50eaf4553a2784acf1d82a248
RX(theta₆)
08f966c4993647699ce8be0d1cd432ff--79b624c50eaf4553a2784acf1d82a248
303845176795494eab0206c3b62cd4d2
HamEvo
79b624c50eaf4553a2784acf1d82a248--303845176795494eab0206c3b62cd4d2
b5970ed12f724caea70fd105eb94d4c2
RX(theta₉)
303845176795494eab0206c3b62cd4d2--b5970ed12f724caea70fd105eb94d4c2
59f7bbf359dc47b4ac3578c8fc2a126d
RY(theta₁₂)
b5970ed12f724caea70fd105eb94d4c2--59f7bbf359dc47b4ac3578c8fc2a126d
1585e6e1b38c4731ac90879eaef918ca
RX(theta₁₅)
59f7bbf359dc47b4ac3578c8fc2a126d--1585e6e1b38c4731ac90879eaef918ca
dc6b4df5b33a4857bc960c98e2cce8a6
HamEvo
1585e6e1b38c4731ac90879eaef918ca--dc6b4df5b33a4857bc960c98e2cce8a6
ac4f704042464522ba5fc5f2df7cbdf1
dc6b4df5b33a4857bc960c98e2cce8a6--ac4f704042464522ba5fc5f2df7cbdf1
276cc15041f14d2787dcf8a01655a818
c1f8da75599f4e85bf0da1ca6155bc5b
RX(theta₁)
5ae33bc0757d4fd19a9364a95ffc38ce--c1f8da75599f4e85bf0da1ca6155bc5b
5b10db867e274384a6b70bfba291e239
2
aeb6f447761248439597120c453c67a3
RY(theta₄)
c1f8da75599f4e85bf0da1ca6155bc5b--aeb6f447761248439597120c453c67a3
26eb13867318493ca4a2c963279252c7
RX(theta₇)
aeb6f447761248439597120c453c67a3--26eb13867318493ca4a2c963279252c7
d971ff1026764b84bf7d7f4efe623a90
t = theta_t₀
26eb13867318493ca4a2c963279252c7--d971ff1026764b84bf7d7f4efe623a90
e76d9f6e010446698d2955873cc5e597
RX(theta₁₀)
d971ff1026764b84bf7d7f4efe623a90--e76d9f6e010446698d2955873cc5e597
7c1e3243da5c4976ba863e645ac109d5
RY(theta₁₃)
e76d9f6e010446698d2955873cc5e597--7c1e3243da5c4976ba863e645ac109d5
43d8bd5812dc4de99382bd99bf2ab3ed
RX(theta₁₆)
7c1e3243da5c4976ba863e645ac109d5--43d8bd5812dc4de99382bd99bf2ab3ed
da8796dc5c6d4a9cba5ad377fe72cdea
t = theta_t₁
43d8bd5812dc4de99382bd99bf2ab3ed--da8796dc5c6d4a9cba5ad377fe72cdea
da8796dc5c6d4a9cba5ad377fe72cdea--276cc15041f14d2787dcf8a01655a818
01c8c3cff4384958a2923d0c072ec618
f8779bdf66cf4cd3a1dcd11e5a0c955a
RX(theta₂)
5b10db867e274384a6b70bfba291e239--f8779bdf66cf4cd3a1dcd11e5a0c955a
f60298cd1a2e4739a87c5979657265d5
RY(theta₅)
f8779bdf66cf4cd3a1dcd11e5a0c955a--f60298cd1a2e4739a87c5979657265d5
11eefb195039405e9f8174e0d49bb053
RX(theta₈)
f60298cd1a2e4739a87c5979657265d5--11eefb195039405e9f8174e0d49bb053
1f29f8949471463eacd2f22b7d5c4b27
11eefb195039405e9f8174e0d49bb053--1f29f8949471463eacd2f22b7d5c4b27
f28fa0638661472eb1d03e69f21ea63c
RX(theta₁₁)
1f29f8949471463eacd2f22b7d5c4b27--f28fa0638661472eb1d03e69f21ea63c
30e45ab994254fa89e9e669144b18321
RY(theta₁₄)
f28fa0638661472eb1d03e69f21ea63c--30e45ab994254fa89e9e669144b18321
b6928cfb503849acbd9f36130ca4342f
RX(theta₁₇)
30e45ab994254fa89e9e669144b18321--b6928cfb503849acbd9f36130ca4342f
a1f9d3d7e89b42fd96c0fc0b13eaccc3
b6928cfb503849acbd9f36130ca4342f--a1f9d3d7e89b42fd96c0fc0b13eaccc3
a1f9d3d7e89b42fd96c0fc0b13eaccc3--01c8c3cff4384958a2923d0c072ec618
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_d83dfddc94f5441c8cb63b764755e2b3
cluster_0f4b31708883481ca01183e770f96fb4
86cbc0e0aa5545009ce3b06de2064230
0
909718207fe5470c9501f2b57145f91b
RX(theta₀)
86cbc0e0aa5545009ce3b06de2064230--909718207fe5470c9501f2b57145f91b
ea3bc56dea054765be7c704d7a9232d3
1
62c38f797da64e418c0535dc9e143484
RY(theta₆)
909718207fe5470c9501f2b57145f91b--62c38f797da64e418c0535dc9e143484
184eedb8e89a4d21aa441c36dd5a8cb0
RX(theta₁₂)
62c38f797da64e418c0535dc9e143484--184eedb8e89a4d21aa441c36dd5a8cb0
2e482002a3f241dfab11f46b1d71ae92
184eedb8e89a4d21aa441c36dd5a8cb0--2e482002a3f241dfab11f46b1d71ae92
2be510e202ed4b1a9407a7ebc6b34568
RX(theta₁₈)
2e482002a3f241dfab11f46b1d71ae92--2be510e202ed4b1a9407a7ebc6b34568
c0a48baba2904760aa9247467b228715
RY(theta₂₄)
2be510e202ed4b1a9407a7ebc6b34568--c0a48baba2904760aa9247467b228715
49da8523f6e442efba3d6a560d5b719c
RX(theta₃₀)
c0a48baba2904760aa9247467b228715--49da8523f6e442efba3d6a560d5b719c
4c92507c938347b2befe82f1a884a727
49da8523f6e442efba3d6a560d5b719c--4c92507c938347b2befe82f1a884a727
409b9f68ace24e419b3a1b70c8addb2b
4c92507c938347b2befe82f1a884a727--409b9f68ace24e419b3a1b70c8addb2b
9f2e7c687227429c9c08e0b36573abed
978c1d6ce93643b7875950c202a36b2b
RX(theta₁)
ea3bc56dea054765be7c704d7a9232d3--978c1d6ce93643b7875950c202a36b2b
42d60194f6f046d891cc48198c74eb7c
2
6bdfd4f094924296a3f0c1399270ab7d
RY(theta₇)
978c1d6ce93643b7875950c202a36b2b--6bdfd4f094924296a3f0c1399270ab7d
7afb0a6c0c344cb28d4396327804d60f
RX(theta₁₃)
6bdfd4f094924296a3f0c1399270ab7d--7afb0a6c0c344cb28d4396327804d60f
47e1de3bdf3246bdba39891e717b3357
7afb0a6c0c344cb28d4396327804d60f--47e1de3bdf3246bdba39891e717b3357
3296c2b3f9dc4fe092c7a7af134dc7a9
RX(theta₁₉)
47e1de3bdf3246bdba39891e717b3357--3296c2b3f9dc4fe092c7a7af134dc7a9
ff6d82ab90484a4db237ae644c7870f1
RY(theta₂₅)
3296c2b3f9dc4fe092c7a7af134dc7a9--ff6d82ab90484a4db237ae644c7870f1
0e35c9d85eb0445bae4ff417f884b4c3
RX(theta₃₁)
ff6d82ab90484a4db237ae644c7870f1--0e35c9d85eb0445bae4ff417f884b4c3
8fa0139d08684eed9e8fb879002aa2aa
0e35c9d85eb0445bae4ff417f884b4c3--8fa0139d08684eed9e8fb879002aa2aa
8fa0139d08684eed9e8fb879002aa2aa--9f2e7c687227429c9c08e0b36573abed
82b7566ec9e44a35b213b098a6e05bc4
7518ff60c39543bfbbaff01bcb8fc2f3
RX(theta₂)
42d60194f6f046d891cc48198c74eb7c--7518ff60c39543bfbbaff01bcb8fc2f3
a655d44f56ce415f8f2288e5fb284229
3
29d7420019094c41ac9bdcf0c9d9f320
RY(theta₈)
7518ff60c39543bfbbaff01bcb8fc2f3--29d7420019094c41ac9bdcf0c9d9f320
d5341346744847bea8e1ca883626d50f
RX(theta₁₄)
29d7420019094c41ac9bdcf0c9d9f320--d5341346744847bea8e1ca883626d50f
27ee644d904646ea852aee54b54150a4
HamEvo
d5341346744847bea8e1ca883626d50f--27ee644d904646ea852aee54b54150a4
46afb918b96145bdb4e068dff1e5ef04
RX(theta₂₀)
27ee644d904646ea852aee54b54150a4--46afb918b96145bdb4e068dff1e5ef04
df36ed45182247f5ba8a72bebee0b7b4
RY(theta₂₆)
46afb918b96145bdb4e068dff1e5ef04--df36ed45182247f5ba8a72bebee0b7b4
716e483dd4b84046b39c1a7729e507ed
RX(theta₃₂)
df36ed45182247f5ba8a72bebee0b7b4--716e483dd4b84046b39c1a7729e507ed
97fe04ea29224605adcbb38874fceb94
HamEvo
716e483dd4b84046b39c1a7729e507ed--97fe04ea29224605adcbb38874fceb94
97fe04ea29224605adcbb38874fceb94--82b7566ec9e44a35b213b098a6e05bc4
709dad9884f44b86a3d20d93af4e8eda
ad5b1959e44e4ef09accd21aff081b55
RX(theta₃)
a655d44f56ce415f8f2288e5fb284229--ad5b1959e44e4ef09accd21aff081b55
07c348cd2c8f436d810d1d6489a573c8
4
e331af5f18a94cbaabfd7ff0a499922b
RY(theta₉)
ad5b1959e44e4ef09accd21aff081b55--e331af5f18a94cbaabfd7ff0a499922b
36e898e6bd754fe18aaee5cd132f36b1
RX(theta₁₅)
e331af5f18a94cbaabfd7ff0a499922b--36e898e6bd754fe18aaee5cd132f36b1
eda3af3b5cd44592bf7d5fcfe91d27a5
t = theta_t₀
36e898e6bd754fe18aaee5cd132f36b1--eda3af3b5cd44592bf7d5fcfe91d27a5
2e1d909a654746c49ca105e2abadded3
RX(theta₂₁)
eda3af3b5cd44592bf7d5fcfe91d27a5--2e1d909a654746c49ca105e2abadded3
e6281a162afd4a4e80c9ce59a7cec781
RY(theta₂₇)
2e1d909a654746c49ca105e2abadded3--e6281a162afd4a4e80c9ce59a7cec781
cd4d6410ed174ce59fb28b2061d7f831
RX(theta₃₃)
e6281a162afd4a4e80c9ce59a7cec781--cd4d6410ed174ce59fb28b2061d7f831
d8da232d70804e258b48449c4df9699c
t = theta_t₁
cd4d6410ed174ce59fb28b2061d7f831--d8da232d70804e258b48449c4df9699c
d8da232d70804e258b48449c4df9699c--709dad9884f44b86a3d20d93af4e8eda
dba6e09db96346cf9f2d03fc8c5a7e9a
70fc8815fc6e42e0927e5b6e7eb61bd8
RX(theta₄)
07c348cd2c8f436d810d1d6489a573c8--70fc8815fc6e42e0927e5b6e7eb61bd8
39f56a47e832406b8609740fc6b98c0e
5
78280e4655ea4ecb96a132917514fb53
RY(theta₁₀)
70fc8815fc6e42e0927e5b6e7eb61bd8--78280e4655ea4ecb96a132917514fb53
2535c067420345749c54eb38c081ccc2
RX(theta₁₆)
78280e4655ea4ecb96a132917514fb53--2535c067420345749c54eb38c081ccc2
67254f9c98174450b3c3de8d11de8c94
2535c067420345749c54eb38c081ccc2--67254f9c98174450b3c3de8d11de8c94
b87826343068416d830ca32a0fbb9d3b
RX(theta₂₂)
67254f9c98174450b3c3de8d11de8c94--b87826343068416d830ca32a0fbb9d3b
373d1d89c9d543ac9a3e5d573e0359ac
RY(theta₂₈)
b87826343068416d830ca32a0fbb9d3b--373d1d89c9d543ac9a3e5d573e0359ac
1e7abfa873504599968c35c77b3d7a49
RX(theta₃₄)
373d1d89c9d543ac9a3e5d573e0359ac--1e7abfa873504599968c35c77b3d7a49
86433c33a3254587a7ce461d02226ec8
1e7abfa873504599968c35c77b3d7a49--86433c33a3254587a7ce461d02226ec8
86433c33a3254587a7ce461d02226ec8--dba6e09db96346cf9f2d03fc8c5a7e9a
1577b311e4e44ff59aaf9ee089d00e92
572eeb4cd52241a4ad3a3ebf1de893a9
RX(theta₅)
39f56a47e832406b8609740fc6b98c0e--572eeb4cd52241a4ad3a3ebf1de893a9
fcf5a9bc372a4a3a8ea1eb2292162855
RY(theta₁₁)
572eeb4cd52241a4ad3a3ebf1de893a9--fcf5a9bc372a4a3a8ea1eb2292162855
4923878b71444a55acf9f8903528b8bb
RX(theta₁₇)
fcf5a9bc372a4a3a8ea1eb2292162855--4923878b71444a55acf9f8903528b8bb
8a6de21a80c44dcb9fff50ad4469f420
4923878b71444a55acf9f8903528b8bb--8a6de21a80c44dcb9fff50ad4469f420
b56822aa40a644cd91f8e91fdd733509
RX(theta₂₃)
8a6de21a80c44dcb9fff50ad4469f420--b56822aa40a644cd91f8e91fdd733509
8ba8d94a8de6410cbd4821f9be11220d
RY(theta₂₉)
b56822aa40a644cd91f8e91fdd733509--8ba8d94a8de6410cbd4821f9be11220d
8e90f3e3adeb43c29d9548def8c9c37b
RX(theta₃₅)
8ba8d94a8de6410cbd4821f9be11220d--8e90f3e3adeb43c29d9548def8c9c37b
7d89b1700c2a48baba70ab801c7d9243
8e90f3e3adeb43c29d9548def8c9c37b--7d89b1700c2a48baba70ab801c7d9243
7d89b1700c2a48baba70ab801c7d9243--1577b311e4e44ff59aaf9ee089d00e92
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_f86427560e7a485c92ae71a2f3608451
BPMA-1
cluster_bbace832c7114d5ea13b7450f67cc4b3
BPMA-0
3f1b9b9b025e4069bbe55771379d8704
0
c153ffa6b032462eb1f9e7994f3b0b8f
RX(iia_α₀₀)
3f1b9b9b025e4069bbe55771379d8704--c153ffa6b032462eb1f9e7994f3b0b8f
a0d7218cbc6447bb9ab70c2c0987f948
1
12e0bc152498479783b1a47a75626199
RY(iia_α₀₃)
c153ffa6b032462eb1f9e7994f3b0b8f--12e0bc152498479783b1a47a75626199
7ee0bc41b0e74665a9e7ec8adb14214c
12e0bc152498479783b1a47a75626199--7ee0bc41b0e74665a9e7ec8adb14214c
0133e751213849adb969226dab5efe2e
7ee0bc41b0e74665a9e7ec8adb14214c--0133e751213849adb969226dab5efe2e
3d1e09dbbbad42f699a89abd28a62d0c
RX(iia_γ₀₀)
0133e751213849adb969226dab5efe2e--3d1e09dbbbad42f699a89abd28a62d0c
ddd92beaf5f44be19d4a685712c17e6b
3d1e09dbbbad42f699a89abd28a62d0c--ddd92beaf5f44be19d4a685712c17e6b
ed0d8cc1426e469ebb4b830e28bbd96b
ddd92beaf5f44be19d4a685712c17e6b--ed0d8cc1426e469ebb4b830e28bbd96b
cb76390de85142b085a98dd2bedde431
RY(iia_β₀₃)
ed0d8cc1426e469ebb4b830e28bbd96b--cb76390de85142b085a98dd2bedde431
854115da95424bf6a9315598eb0f863b
RX(iia_β₀₀)
cb76390de85142b085a98dd2bedde431--854115da95424bf6a9315598eb0f863b
79a6ae4c058b48fcb501cfa8e1c6ed72
RX(iia_α₁₀)
854115da95424bf6a9315598eb0f863b--79a6ae4c058b48fcb501cfa8e1c6ed72
20bbbe84d8b8444db7e843e411cd7b53
RY(iia_α₁₃)
79a6ae4c058b48fcb501cfa8e1c6ed72--20bbbe84d8b8444db7e843e411cd7b53
d8ec5de036eb48949259da7242f814ea
20bbbe84d8b8444db7e843e411cd7b53--d8ec5de036eb48949259da7242f814ea
04f463a66d9f4fc1906b77a992c2aeb0
d8ec5de036eb48949259da7242f814ea--04f463a66d9f4fc1906b77a992c2aeb0
941a759e1c3d4b38974082c12960ba0f
RX(iia_γ₁₀)
04f463a66d9f4fc1906b77a992c2aeb0--941a759e1c3d4b38974082c12960ba0f
9f2d57e49f11461e88bab9f9d7fe166f
941a759e1c3d4b38974082c12960ba0f--9f2d57e49f11461e88bab9f9d7fe166f
4c6decc5aef442daa5f6fcff58d3c0cd
9f2d57e49f11461e88bab9f9d7fe166f--4c6decc5aef442daa5f6fcff58d3c0cd
e7c4bd26af5948e68ebf859007ad3ff9
RY(iia_β₁₃)
4c6decc5aef442daa5f6fcff58d3c0cd--e7c4bd26af5948e68ebf859007ad3ff9
d9e00de9e8684ee4acc5d3f6fef29a15
RX(iia_β₁₀)
e7c4bd26af5948e68ebf859007ad3ff9--d9e00de9e8684ee4acc5d3f6fef29a15
12769e0df085465bab361c2f92b3543a
d9e00de9e8684ee4acc5d3f6fef29a15--12769e0df085465bab361c2f92b3543a
f12abf4c7ac34d158dd92dc77d2e7319
77acf8ce0ee54766b23e34391784d2ce
RX(iia_α₀₁)
a0d7218cbc6447bb9ab70c2c0987f948--77acf8ce0ee54766b23e34391784d2ce
80d3a4168d1a4db58b26146097f43c0f
2
1d44d54388814841ac14b73f0313e5a5
RY(iia_α₀₄)
77acf8ce0ee54766b23e34391784d2ce--1d44d54388814841ac14b73f0313e5a5
b44a9c17858b4313bd6d6d9003bb93ab
X
1d44d54388814841ac14b73f0313e5a5--b44a9c17858b4313bd6d6d9003bb93ab
b44a9c17858b4313bd6d6d9003bb93ab--7ee0bc41b0e74665a9e7ec8adb14214c
efa81104025c470daa4805ae6b31db9d
b44a9c17858b4313bd6d6d9003bb93ab--efa81104025c470daa4805ae6b31db9d
e247b7b92f5446468963fdf9fb88ba59
RX(iia_γ₀₁)
efa81104025c470daa4805ae6b31db9d--e247b7b92f5446468963fdf9fb88ba59
0ce55d2d9b9947ceb2bc3480fd01f7c8
e247b7b92f5446468963fdf9fb88ba59--0ce55d2d9b9947ceb2bc3480fd01f7c8
27bf3cf6671a4eb0aae737af9ac8a604
X
0ce55d2d9b9947ceb2bc3480fd01f7c8--27bf3cf6671a4eb0aae737af9ac8a604
27bf3cf6671a4eb0aae737af9ac8a604--ed0d8cc1426e469ebb4b830e28bbd96b
6d8b94b9a57b4707b2954932de8024f0
RY(iia_β₀₄)
27bf3cf6671a4eb0aae737af9ac8a604--6d8b94b9a57b4707b2954932de8024f0
fbd373dab863408ab38d168aaaa5b476
RX(iia_β₀₁)
6d8b94b9a57b4707b2954932de8024f0--fbd373dab863408ab38d168aaaa5b476
b9b914fefe714b459999860769ec1aba
RX(iia_α₁₁)
fbd373dab863408ab38d168aaaa5b476--b9b914fefe714b459999860769ec1aba
3927a10a32404fe2b8fe8a0a4acc45e0
RY(iia_α₁₄)
b9b914fefe714b459999860769ec1aba--3927a10a32404fe2b8fe8a0a4acc45e0
18bb4cf90a234fb482cef67752cb72c2
X
3927a10a32404fe2b8fe8a0a4acc45e0--18bb4cf90a234fb482cef67752cb72c2
18bb4cf90a234fb482cef67752cb72c2--d8ec5de036eb48949259da7242f814ea
25f1a6f1e5cc43ea99bb563396d6e501
18bb4cf90a234fb482cef67752cb72c2--25f1a6f1e5cc43ea99bb563396d6e501
253ccb9d09d94052b9cc09b7c98094f9
RX(iia_γ₁₁)
25f1a6f1e5cc43ea99bb563396d6e501--253ccb9d09d94052b9cc09b7c98094f9
6c7e596cf40742aeb9af7d861da2a3b2
253ccb9d09d94052b9cc09b7c98094f9--6c7e596cf40742aeb9af7d861da2a3b2
9269d738b7844d53b6e67abd9ac54e02
X
6c7e596cf40742aeb9af7d861da2a3b2--9269d738b7844d53b6e67abd9ac54e02
9269d738b7844d53b6e67abd9ac54e02--4c6decc5aef442daa5f6fcff58d3c0cd
b7dde63744244899b90b8f75b714d6ec
RY(iia_β₁₄)
9269d738b7844d53b6e67abd9ac54e02--b7dde63744244899b90b8f75b714d6ec
c0891f5f071b4620a50e0c1a84d1b551
RX(iia_β₁₁)
b7dde63744244899b90b8f75b714d6ec--c0891f5f071b4620a50e0c1a84d1b551
c0891f5f071b4620a50e0c1a84d1b551--f12abf4c7ac34d158dd92dc77d2e7319
842cbe589c234464a129d1559c7b4dd4
0eba66ef9ece475fa3b3c05e67adff33
RX(iia_α₀₂)
80d3a4168d1a4db58b26146097f43c0f--0eba66ef9ece475fa3b3c05e67adff33
6bb123f22051480da957e78246b7d1a1
RY(iia_α₀₅)
0eba66ef9ece475fa3b3c05e67adff33--6bb123f22051480da957e78246b7d1a1
3348aa001c5d4841b1d141b7a22bb311
6bb123f22051480da957e78246b7d1a1--3348aa001c5d4841b1d141b7a22bb311
b50240e5d5dd4330a5d6c83247a3cb12
X
3348aa001c5d4841b1d141b7a22bb311--b50240e5d5dd4330a5d6c83247a3cb12
b50240e5d5dd4330a5d6c83247a3cb12--efa81104025c470daa4805ae6b31db9d
9bcb353a065d4afe802966d81f08a869
RX(iia_γ₀₂)
b50240e5d5dd4330a5d6c83247a3cb12--9bcb353a065d4afe802966d81f08a869
46308f56d82540f69af38372d2f84ebd
X
9bcb353a065d4afe802966d81f08a869--46308f56d82540f69af38372d2f84ebd
46308f56d82540f69af38372d2f84ebd--0ce55d2d9b9947ceb2bc3480fd01f7c8
952fffc2e2a14a47b451ffe01e2ba6dc
46308f56d82540f69af38372d2f84ebd--952fffc2e2a14a47b451ffe01e2ba6dc
72d4599c908144679c4c6b332d4cbefc
RY(iia_β₀₅)
952fffc2e2a14a47b451ffe01e2ba6dc--72d4599c908144679c4c6b332d4cbefc
a43fb92f33ea42d1a8573b347726a2a4
RX(iia_β₀₂)
72d4599c908144679c4c6b332d4cbefc--a43fb92f33ea42d1a8573b347726a2a4
300fc16b69614427bcb9d3e545021abe
RX(iia_α₁₂)
a43fb92f33ea42d1a8573b347726a2a4--300fc16b69614427bcb9d3e545021abe
9438dfac0b4d484699032c83b0356280
RY(iia_α₁₅)
300fc16b69614427bcb9d3e545021abe--9438dfac0b4d484699032c83b0356280
d79b57ef2df043fba21e47cae78d2627
9438dfac0b4d484699032c83b0356280--d79b57ef2df043fba21e47cae78d2627
25d6a170eaee4bffbe880ea984583685
X
d79b57ef2df043fba21e47cae78d2627--25d6a170eaee4bffbe880ea984583685
25d6a170eaee4bffbe880ea984583685--25f1a6f1e5cc43ea99bb563396d6e501
8917af56434749d6adfa925a9ebfb418
RX(iia_γ₁₂)
25d6a170eaee4bffbe880ea984583685--8917af56434749d6adfa925a9ebfb418
a161b667f686414fb002e25b707ad63b
X
8917af56434749d6adfa925a9ebfb418--a161b667f686414fb002e25b707ad63b
a161b667f686414fb002e25b707ad63b--6c7e596cf40742aeb9af7d861da2a3b2
b264bf05cc1c424f9ec5483fbfe2ef67
a161b667f686414fb002e25b707ad63b--b264bf05cc1c424f9ec5483fbfe2ef67
1b5a55816f4942779de406f9d7a52805
RY(iia_β₁₅)
b264bf05cc1c424f9ec5483fbfe2ef67--1b5a55816f4942779de406f9d7a52805
71eadf55fd834911afa80ade2b0b5f84
RX(iia_β₁₂)
1b5a55816f4942779de406f9d7a52805--71eadf55fd834911afa80ade2b0b5f84
71eadf55fd834911afa80ade2b0b5f84--842cbe589c234464a129d1559c7b4dd4