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_b5c5696cf32440e98bfe284cd4ac5377
Constant Chebyshev FM
cluster_53c83e2683944ea89bfc87164eb42b85
Constant Fourier FM
3fd4b8fbb0d54338a291196802c6b137
0
857d99847ccf46e38d457ebc04b2f4cd
RX(phi)
3fd4b8fbb0d54338a291196802c6b137--857d99847ccf46e38d457ebc04b2f4cd
8a3ddff21e4844ecb9131d35fbb4fb64
1
279c986e184d45b3aaf8a4fedc8cf64f
RX(acos(phi))
857d99847ccf46e38d457ebc04b2f4cd--279c986e184d45b3aaf8a4fedc8cf64f
8c7f4049f7ca49a4ba3383f01e057ebd
279c986e184d45b3aaf8a4fedc8cf64f--8c7f4049f7ca49a4ba3383f01e057ebd
c9ae67c6c1644e8894ddd1b839066427
79aa74ae2e304500b5ad7f0202b26d9e
RX(phi)
8a3ddff21e4844ecb9131d35fbb4fb64--79aa74ae2e304500b5ad7f0202b26d9e
bbc5eff7317e4a118b7f0ea491a66c85
2
b7a893c862374eae99344957402ecdc8
RX(acos(phi))
79aa74ae2e304500b5ad7f0202b26d9e--b7a893c862374eae99344957402ecdc8
b7a893c862374eae99344957402ecdc8--c9ae67c6c1644e8894ddd1b839066427
d0aeb515bdb44bf0b5ef8b4d54ba4d39
9d8a1b645059461f8aeff870f390bf03
RX(phi)
bbc5eff7317e4a118b7f0ea491a66c85--9d8a1b645059461f8aeff870f390bf03
af27d82a0b3348e6839763552218ebcf
RX(acos(phi))
9d8a1b645059461f8aeff870f390bf03--af27d82a0b3348e6839763552218ebcf
af27d82a0b3348e6839763552218ebcf--d0aeb515bdb44bf0b5ef8b4d54ba4d39
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_846aade74136488eadfc295742a498b6
Constant <function custom_fn at 0x7fd73c256dd0> FM
cluster_090d2e775dd14f6aa004c8d2a3ca2655
Constant asin FM
99139bc734f247fe8a965d79114eab88
0
218b91ec94674644a1f3278411cd8cfe
RX(asin(phi))
99139bc734f247fe8a965d79114eab88--218b91ec94674644a1f3278411cd8cfe
df7e560d88f64c11a8a8cea89ef28dc1
1
5aab0a03404142e580fff6f9766193a1
RX(phi**2 + asin(phi))
218b91ec94674644a1f3278411cd8cfe--5aab0a03404142e580fff6f9766193a1
70f278017e8b4cabbef174d7b7ed5cbd
5aab0a03404142e580fff6f9766193a1--70f278017e8b4cabbef174d7b7ed5cbd
92b9902f45a34392b674f9be9281f4a6
d76a696fdf7c4930997e30d3a3fd0b73
RX(asin(phi))
df7e560d88f64c11a8a8cea89ef28dc1--d76a696fdf7c4930997e30d3a3fd0b73
3069276d39234b50ae9ca568e78cdd0f
2
97bf7cf5b619421db768a3348902e8f2
RX(phi**2 + asin(phi))
d76a696fdf7c4930997e30d3a3fd0b73--97bf7cf5b619421db768a3348902e8f2
97bf7cf5b619421db768a3348902e8f2--92b9902f45a34392b674f9be9281f4a6
b0d36303d58e4d119503983f2550f201
220015c55e354ab382da1e5636a883e7
RX(asin(phi))
3069276d39234b50ae9ca568e78cdd0f--220015c55e354ab382da1e5636a883e7
47bbd1bf8a3e4da5bd5ddfe1c594bd0e
RX(phi**2 + asin(phi))
220015c55e354ab382da1e5636a883e7--47bbd1bf8a3e4da5bd5ddfe1c594bd0e
47bbd1bf8a3e4da5bd5ddfe1c594bd0e--b0d36303d58e4d119503983f2550f201
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_480091a5833343b99b4362b5b620aea2
Exponential Fourier FM
cluster_8a0673b6cc5b4c32b2b11cc00c28bda3
Constant Fourier FM
cluster_278bc2705f2e49fda981bcd9e30d0ed9
Tower Fourier FM
a286381e07da4e82a1843c744ebb7184
0
f363021c2306449a831d5f28220ffbe4
RX(phi)
a286381e07da4e82a1843c744ebb7184--f363021c2306449a831d5f28220ffbe4
b4952329a4524b919e5398e8b09ca6d3
1
93af2cf2455f4337ba84646e14692998
RX(1.0*phi)
f363021c2306449a831d5f28220ffbe4--93af2cf2455f4337ba84646e14692998
703e288ae4d6408e8eb0ab70eabc66eb
RX(1.0*phi)
93af2cf2455f4337ba84646e14692998--703e288ae4d6408e8eb0ab70eabc66eb
62142730c3bb4f7e945761e326479c44
703e288ae4d6408e8eb0ab70eabc66eb--62142730c3bb4f7e945761e326479c44
05088909aad647bb8a82614b6666ca90
fe5aacadd6db43d0b68fe26823034b34
RX(phi)
b4952329a4524b919e5398e8b09ca6d3--fe5aacadd6db43d0b68fe26823034b34
480ff8d7c04e4a53b1862cbd402abce6
2
0298fbaac9094e228e600ef7dca8dbf1
RX(2.0*phi)
fe5aacadd6db43d0b68fe26823034b34--0298fbaac9094e228e600ef7dca8dbf1
64ca84eaca0641ea9d6c3e333be8fbea
RX(2.0*phi)
0298fbaac9094e228e600ef7dca8dbf1--64ca84eaca0641ea9d6c3e333be8fbea
64ca84eaca0641ea9d6c3e333be8fbea--05088909aad647bb8a82614b6666ca90
fb19bc380c7c4b3c841afe3030372256
4ffadb18ffe443e3b1434272e727f793
RX(phi)
480ff8d7c04e4a53b1862cbd402abce6--4ffadb18ffe443e3b1434272e727f793
84cd6915fc154dc781a49b01c55d3838
3
33cd9bd7be0940429f0ace0b2f5917e3
RX(3.0*phi)
4ffadb18ffe443e3b1434272e727f793--33cd9bd7be0940429f0ace0b2f5917e3
04ab1e9702814cf696560f46b8340dd9
RX(4.0*phi)
33cd9bd7be0940429f0ace0b2f5917e3--04ab1e9702814cf696560f46b8340dd9
04ab1e9702814cf696560f46b8340dd9--fb19bc380c7c4b3c841afe3030372256
913e9a42589b41a7a3de68ebe9d7d00d
1ce83dd3e821429d9d6d1af6824ad73a
RX(phi)
84cd6915fc154dc781a49b01c55d3838--1ce83dd3e821429d9d6d1af6824ad73a
e10351e5171b4bc28a6653101ad705ce
4
d23da51e25c04154894b429add49bc31
RX(4.0*phi)
1ce83dd3e821429d9d6d1af6824ad73a--d23da51e25c04154894b429add49bc31
e213b573c92c4fc38fddf9582d925968
RX(8.0*phi)
d23da51e25c04154894b429add49bc31--e213b573c92c4fc38fddf9582d925968
e213b573c92c4fc38fddf9582d925968--913e9a42589b41a7a3de68ebe9d7d00d
34541191a95041d39191f10bcd888e9c
96d52792e9d74753984312593ae5f6fa
RX(phi)
e10351e5171b4bc28a6653101ad705ce--96d52792e9d74753984312593ae5f6fa
2f2bc477891249b3a90885b7e630a40a
RX(5.0*phi)
96d52792e9d74753984312593ae5f6fa--2f2bc477891249b3a90885b7e630a40a
416655b05fc64a39a55571a101d07860
RX(16.0*phi)
2f2bc477891249b3a90885b7e630a40a--416655b05fc64a39a55571a101d07860
416655b05fc64a39a55571a101d07860--34541191a95041d39191f10bcd888e9c
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
b65b7de209dd4026b4140ec8dc6f4364
0
7beea971e0c64819b6a4bc7eee6dc97c
RX(1.0*acos(phi))
b65b7de209dd4026b4140ec8dc6f4364--7beea971e0c64819b6a4bc7eee6dc97c
8ee43fb8fb704a1c90aebc270e7bb99b
1
d7c00c457ea84cd58f05d37b67466cb7
7beea971e0c64819b6a4bc7eee6dc97c--d7c00c457ea84cd58f05d37b67466cb7
37d62624324f4910981e19e29e22efb3
8e2fdc63190941698ffce747ef755cea
RX(1.414*acos(phi))
8ee43fb8fb704a1c90aebc270e7bb99b--8e2fdc63190941698ffce747ef755cea
ea40dd3c11444a099b028f25068582bf
2
8e2fdc63190941698ffce747ef755cea--37d62624324f4910981e19e29e22efb3
fee753f0f9a941e0bc71862987143c16
6e79c383f2894b5596d7464cc04cef0d
RX(1.732*acos(phi))
ea40dd3c11444a099b028f25068582bf--6e79c383f2894b5596d7464cc04cef0d
a4d821bea35746a5b43b289c19a83d06
3
6e79c383f2894b5596d7464cc04cef0d--fee753f0f9a941e0bc71862987143c16
246a66ad834e4470abe303c5c1451ff0
1d9cf879bc304a5f93824f5269d8ec8d
RX(2.0*acos(phi))
a4d821bea35746a5b43b289c19a83d06--1d9cf879bc304a5f93824f5269d8ec8d
0626ff1e2d5446adbd4058a0cca2fd64
4
1d9cf879bc304a5f93824f5269d8ec8d--246a66ad834e4470abe303c5c1451ff0
f897b7d6e02840338ab83de60a411764
ff7856c2938f4849a285b7186ef87281
RX(2.236*acos(phi))
0626ff1e2d5446adbd4058a0cca2fd64--ff7856c2938f4849a285b7186ef87281
ff7856c2938f4849a285b7186ef87281--f897b7d6e02840338ab83de60a411764
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
b8ffb4f1236c449cb4354d65776946ec
0
d688bd8869d7496fb50ffb17a1fe7baf
RX(1.0*phi*w₀)
b8ffb4f1236c449cb4354d65776946ec--d688bd8869d7496fb50ffb17a1fe7baf
b9d44395fe7c41669aca8502bf8853ce
1
abc2979e644f4594b82c1a2f10060c2f
d688bd8869d7496fb50ffb17a1fe7baf--abc2979e644f4594b82c1a2f10060c2f
6aaae806b35a4224a1f3702df28b1568
71132043eb4749af8a810af790d3a4b5
RX(2.0*phi*w₁)
b9d44395fe7c41669aca8502bf8853ce--71132043eb4749af8a810af790d3a4b5
f5f9590093064be8acef0337e64419f6
2
71132043eb4749af8a810af790d3a4b5--6aaae806b35a4224a1f3702df28b1568
e8e9585bb54f407389c560f5511060e3
11d3ab5ba6e4422ab56ff9ddefe8d30d
RX(4.0*phi*w₂)
f5f9590093064be8acef0337e64419f6--11d3ab5ba6e4422ab56ff9ddefe8d30d
74a4badcfb17496f8fc25d63b3501f08
3
11d3ab5ba6e4422ab56ff9ddefe8d30d--e8e9585bb54f407389c560f5511060e3
035517503dbc4381b7b0e2c2b24f40e7
751db616ac7540a095320e67f6ae8b99
RX(8.0*phi*w₃)
74a4badcfb17496f8fc25d63b3501f08--751db616ac7540a095320e67f6ae8b99
d5a1066847c34c579cf47755cc63956e
4
751db616ac7540a095320e67f6ae8b99--035517503dbc4381b7b0e2c2b24f40e7
cb733017dfdb4336ab145172eef0793f
47617262401641b8882aeca35347c74a
RX(16.0*phi*w₄)
d5a1066847c34c579cf47755cc63956e--47617262401641b8882aeca35347c74a
47617262401641b8882aeca35347c74a--cb733017dfdb4336ab145172eef0793f
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
726e17229c6a4769a6a979d759279884
0
8cfb871fdcb34edc9393e36d240a432c
RY(80.0*acos(w₄*(0.667*x + 1.667)))
726e17229c6a4769a6a979d759279884--8cfb871fdcb34edc9393e36d240a432c
305fe5b415e5497b981795a1ada499e0
1
2635327008e14c7aae1c64930d70fe92
8cfb871fdcb34edc9393e36d240a432c--2635327008e14c7aae1c64930d70fe92
87f8f11cc43a41f3b9e6de358a1a0ebf
8e6edd7d7b504e0db8f5bebb6fc85047
RY(40.0*acos(w₃*(0.667*x + 1.667)))
305fe5b415e5497b981795a1ada499e0--8e6edd7d7b504e0db8f5bebb6fc85047
0bdde6bfdb9f4513a959c9c9e1610960
2
8e6edd7d7b504e0db8f5bebb6fc85047--87f8f11cc43a41f3b9e6de358a1a0ebf
38eb41f2ae9249b797a3338bf6a732dd
5aa37492789040a3878fc98ec2856ab0
RY(20.0*acos(w₂*(0.667*x + 1.667)))
0bdde6bfdb9f4513a959c9c9e1610960--5aa37492789040a3878fc98ec2856ab0
ad1da223d4fb48458801edf4c2c0e08b
3
5aa37492789040a3878fc98ec2856ab0--38eb41f2ae9249b797a3338bf6a732dd
25624f42270a49f8931dc9851d6aa292
8d67e412b0014514ba62dbcc8d9fe481
RY(10.0*acos(w₁*(0.667*x + 1.667)))
ad1da223d4fb48458801edf4c2c0e08b--8d67e412b0014514ba62dbcc8d9fe481
eeff11c5bc884f5b8038f793f14b12fe
4
8d67e412b0014514ba62dbcc8d9fe481--25624f42270a49f8931dc9851d6aa292
e78eb1cd3e954082ab3c936aa8a7bf03
b65d4238c3bb44cc95f71a2c71596376
RY(5.0*acos(w₀*(0.667*x + 1.667)))
eeff11c5bc884f5b8038f793f14b12fe--b65d4238c3bb44cc95f71a2c71596376
b65d4238c3bb44cc95f71a2c71596376--e78eb1cd3e954082ab3c936aa8a7bf03
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
25f55d04cdc149899a7f1c102f07bc8a
0
ffbe225c0da1421bb251ed9b4aa8975c
RX(theta₀)
25f55d04cdc149899a7f1c102f07bc8a--ffbe225c0da1421bb251ed9b4aa8975c
46c02121102f448cb2e76d379768a1f5
1
526a6db1808846c0afedc7412bffb532
RY(theta₃)
ffbe225c0da1421bb251ed9b4aa8975c--526a6db1808846c0afedc7412bffb532
405e7746495a48e3b7f31a26771e6106
RX(theta₆)
526a6db1808846c0afedc7412bffb532--405e7746495a48e3b7f31a26771e6106
e7832b3774624ae5a850b70d14faa278
405e7746495a48e3b7f31a26771e6106--e7832b3774624ae5a850b70d14faa278
843c5b7b90c74ab688008d2d6447804c
e7832b3774624ae5a850b70d14faa278--843c5b7b90c74ab688008d2d6447804c
9b51ed90c04e4896b4f982caa4af97d8
RX(theta₉)
843c5b7b90c74ab688008d2d6447804c--9b51ed90c04e4896b4f982caa4af97d8
8e4f8f3366eb4c5da79cbee026996b1c
RY(theta₁₂)
9b51ed90c04e4896b4f982caa4af97d8--8e4f8f3366eb4c5da79cbee026996b1c
b61a3fdabfc941f5a8495b4d69b262a0
RX(theta₁₅)
8e4f8f3366eb4c5da79cbee026996b1c--b61a3fdabfc941f5a8495b4d69b262a0
07b3bc20975a4f26971707af636de863
b61a3fdabfc941f5a8495b4d69b262a0--07b3bc20975a4f26971707af636de863
9cf2815ed6e6462ca43ad68f79d45306
07b3bc20975a4f26971707af636de863--9cf2815ed6e6462ca43ad68f79d45306
6041be00444049ff82ff001b452cc84f
9cf2815ed6e6462ca43ad68f79d45306--6041be00444049ff82ff001b452cc84f
fdd007edfdae4c6fbd098e6d505ab949
5f5ccad78eab44938bbecc7c76e4d09b
RX(theta₁)
46c02121102f448cb2e76d379768a1f5--5f5ccad78eab44938bbecc7c76e4d09b
e7b957f3ce3b4b6eb620b8ab188f3de9
2
9498f6a7d4db4a778c3f7009a06e3e65
RY(theta₄)
5f5ccad78eab44938bbecc7c76e4d09b--9498f6a7d4db4a778c3f7009a06e3e65
1040971065494e47a4127227b3e42606
RX(theta₇)
9498f6a7d4db4a778c3f7009a06e3e65--1040971065494e47a4127227b3e42606
2f67e08d1b0440b99e96a300918a9f89
X
1040971065494e47a4127227b3e42606--2f67e08d1b0440b99e96a300918a9f89
2f67e08d1b0440b99e96a300918a9f89--e7832b3774624ae5a850b70d14faa278
c05b5ff388a1404092fa3d01ea4be592
2f67e08d1b0440b99e96a300918a9f89--c05b5ff388a1404092fa3d01ea4be592
c2bb50afa1114dab9b6ec68d83f7b5fd
RX(theta₁₀)
c05b5ff388a1404092fa3d01ea4be592--c2bb50afa1114dab9b6ec68d83f7b5fd
80edf50a49f34fa490b6faee84fbc571
RY(theta₁₃)
c2bb50afa1114dab9b6ec68d83f7b5fd--80edf50a49f34fa490b6faee84fbc571
96324e9bd01a465da01194c910e52f5b
RX(theta₁₆)
80edf50a49f34fa490b6faee84fbc571--96324e9bd01a465da01194c910e52f5b
53d3884700d84cee8740c3de3924e46b
X
96324e9bd01a465da01194c910e52f5b--53d3884700d84cee8740c3de3924e46b
53d3884700d84cee8740c3de3924e46b--07b3bc20975a4f26971707af636de863
7371444df5604d1793e9e437dbc927e1
53d3884700d84cee8740c3de3924e46b--7371444df5604d1793e9e437dbc927e1
7371444df5604d1793e9e437dbc927e1--fdd007edfdae4c6fbd098e6d505ab949
3d0b66982afe477581184be8e7e7be77
9143b379725d491e9f4d36099fd7f341
RX(theta₂)
e7b957f3ce3b4b6eb620b8ab188f3de9--9143b379725d491e9f4d36099fd7f341
2aa2702608214fa4add8814e5712ccd7
RY(theta₅)
9143b379725d491e9f4d36099fd7f341--2aa2702608214fa4add8814e5712ccd7
4b3a171c773e48a5b2f214b1ad86d95e
RX(theta₈)
2aa2702608214fa4add8814e5712ccd7--4b3a171c773e48a5b2f214b1ad86d95e
ad05dc7c94fc4368ad288a53645b07bf
4b3a171c773e48a5b2f214b1ad86d95e--ad05dc7c94fc4368ad288a53645b07bf
a9c57b33237644a3bc3ef3ded7d8e13d
X
ad05dc7c94fc4368ad288a53645b07bf--a9c57b33237644a3bc3ef3ded7d8e13d
a9c57b33237644a3bc3ef3ded7d8e13d--c05b5ff388a1404092fa3d01ea4be592
b7e296b1fab1420ca0b1124e324333bf
RX(theta₁₁)
a9c57b33237644a3bc3ef3ded7d8e13d--b7e296b1fab1420ca0b1124e324333bf
6801dcdd40194ce1bcddcf841182f3a3
RY(theta₁₄)
b7e296b1fab1420ca0b1124e324333bf--6801dcdd40194ce1bcddcf841182f3a3
b9c0e6f7edcf43018137864d455a9328
RX(theta₁₇)
6801dcdd40194ce1bcddcf841182f3a3--b9c0e6f7edcf43018137864d455a9328
9ed2e71cecc64476983e0e61653fd072
b9c0e6f7edcf43018137864d455a9328--9ed2e71cecc64476983e0e61653fd072
d296e1b37b5e426d9f2f36fd309a66cc
X
9ed2e71cecc64476983e0e61653fd072--d296e1b37b5e426d9f2f36fd309a66cc
d296e1b37b5e426d9f2f36fd309a66cc--7371444df5604d1793e9e437dbc927e1
d296e1b37b5e426d9f2f36fd309a66cc--3d0b66982afe477581184be8e7e7be77
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
1ffab9e7c2cb4c9e9796835ec482ce40
0
1784acb2d55a4318b95b01271c406e4e
RX(phi₀)
1ffab9e7c2cb4c9e9796835ec482ce40--1784acb2d55a4318b95b01271c406e4e
9816aefa5a314c6697e8c1f203faf92f
1
eb6a37c608874e44991dfbad72c3a780
RY(phi₃)
1784acb2d55a4318b95b01271c406e4e--eb6a37c608874e44991dfbad72c3a780
98ccf3f3d9934b42bee1538014ca3ce3
RX(phi₆)
eb6a37c608874e44991dfbad72c3a780--98ccf3f3d9934b42bee1538014ca3ce3
174d10175d3d418db51b6dbe4ca63ee6
98ccf3f3d9934b42bee1538014ca3ce3--174d10175d3d418db51b6dbe4ca63ee6
b4df0fea961b4052ad3d6ecb12bed836
174d10175d3d418db51b6dbe4ca63ee6--b4df0fea961b4052ad3d6ecb12bed836
dc457e866dc244ef9419eca2a370c199
RX(phi₉)
b4df0fea961b4052ad3d6ecb12bed836--dc457e866dc244ef9419eca2a370c199
2eba34f673954e4aa386ec7f15512d10
RY(phi₁₂)
dc457e866dc244ef9419eca2a370c199--2eba34f673954e4aa386ec7f15512d10
6b43c588e90140969cc2109cdfe257cb
RX(phi₁₅)
2eba34f673954e4aa386ec7f15512d10--6b43c588e90140969cc2109cdfe257cb
c112cdc9ccaf41ddb15604cbf6d6155d
6b43c588e90140969cc2109cdfe257cb--c112cdc9ccaf41ddb15604cbf6d6155d
4eabe4a76a2e4055aa9ed16d46f35d9a
c112cdc9ccaf41ddb15604cbf6d6155d--4eabe4a76a2e4055aa9ed16d46f35d9a
bb81bb99a3e540328456348502b733cc
4eabe4a76a2e4055aa9ed16d46f35d9a--bb81bb99a3e540328456348502b733cc
9d18322b92c7432bb28c3b07e6df1d1f
949aa245e3254700b7af624c34a4b9ec
RX(phi₁)
9816aefa5a314c6697e8c1f203faf92f--949aa245e3254700b7af624c34a4b9ec
074a3d37dead43f2aa277668675926ce
2
248c66a941ad485a919d466effc658c9
RY(phi₄)
949aa245e3254700b7af624c34a4b9ec--248c66a941ad485a919d466effc658c9
8188f1e17c4d43f1bd4042a7425adba5
RX(phi₇)
248c66a941ad485a919d466effc658c9--8188f1e17c4d43f1bd4042a7425adba5
d75b0d048a28486f8fc45b33cb24c0e6
PHASE(phi_ent₀)
8188f1e17c4d43f1bd4042a7425adba5--d75b0d048a28486f8fc45b33cb24c0e6
d75b0d048a28486f8fc45b33cb24c0e6--174d10175d3d418db51b6dbe4ca63ee6
0b3b1486cf7844ff88ab5015e9ab37c4
d75b0d048a28486f8fc45b33cb24c0e6--0b3b1486cf7844ff88ab5015e9ab37c4
6ff02ec1c4ab488dab412373006f5bd5
RX(phi₁₀)
0b3b1486cf7844ff88ab5015e9ab37c4--6ff02ec1c4ab488dab412373006f5bd5
4fcef3ecf5874afd986cc6946d8b0c00
RY(phi₁₃)
6ff02ec1c4ab488dab412373006f5bd5--4fcef3ecf5874afd986cc6946d8b0c00
8aa227869e3247b799754939604eafa4
RX(phi₁₆)
4fcef3ecf5874afd986cc6946d8b0c00--8aa227869e3247b799754939604eafa4
03d42e244acd439192159cf205fb9b68
PHASE(phi_ent₂)
8aa227869e3247b799754939604eafa4--03d42e244acd439192159cf205fb9b68
03d42e244acd439192159cf205fb9b68--c112cdc9ccaf41ddb15604cbf6d6155d
09725e67164c4c1b9ec9588a66379089
03d42e244acd439192159cf205fb9b68--09725e67164c4c1b9ec9588a66379089
09725e67164c4c1b9ec9588a66379089--9d18322b92c7432bb28c3b07e6df1d1f
4656cb1a6b6c42c59d776b7207f24a8f
c54d1fe2c4d84909860bd316112149c2
RX(phi₂)
074a3d37dead43f2aa277668675926ce--c54d1fe2c4d84909860bd316112149c2
f6fa9fc8337b4270908d64b664af50db
RY(phi₅)
c54d1fe2c4d84909860bd316112149c2--f6fa9fc8337b4270908d64b664af50db
e82ceb0ed75a4d8888de4fad2cc96516
RX(phi₈)
f6fa9fc8337b4270908d64b664af50db--e82ceb0ed75a4d8888de4fad2cc96516
5d558d80a3f54775a40c843e0027ff0c
e82ceb0ed75a4d8888de4fad2cc96516--5d558d80a3f54775a40c843e0027ff0c
c9383462d5574804a20b4878c34752a5
PHASE(phi_ent₁)
5d558d80a3f54775a40c843e0027ff0c--c9383462d5574804a20b4878c34752a5
c9383462d5574804a20b4878c34752a5--0b3b1486cf7844ff88ab5015e9ab37c4
9a0ba7739b994415b0052b7958f42edd
RX(phi₁₁)
c9383462d5574804a20b4878c34752a5--9a0ba7739b994415b0052b7958f42edd
282643fec73f455a9cb04872f393d972
RY(phi₁₄)
9a0ba7739b994415b0052b7958f42edd--282643fec73f455a9cb04872f393d972
eb98fa12706444de87ee4e321be8d099
RX(phi₁₇)
282643fec73f455a9cb04872f393d972--eb98fa12706444de87ee4e321be8d099
1cf36dfe86ae454bbec615abe4da411e
eb98fa12706444de87ee4e321be8d099--1cf36dfe86ae454bbec615abe4da411e
f28ca5d1ab1445619305a3ccfe96d208
PHASE(phi_ent₃)
1cf36dfe86ae454bbec615abe4da411e--f28ca5d1ab1445619305a3ccfe96d208
f28ca5d1ab1445619305a3ccfe96d208--09725e67164c4c1b9ec9588a66379089
f28ca5d1ab1445619305a3ccfe96d208--4656cb1a6b6c42c59d776b7207f24a8f
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_e3629457de8946268e9700b1855e42cf
cluster_c9d50f81b318493db793c21b3fde7e7b
06bb70f9c30e4d92b2e3fa87741df89b
0
cb447981ee164ed8813046cd50fd4c67
RX(theta₀)
06bb70f9c30e4d92b2e3fa87741df89b--cb447981ee164ed8813046cd50fd4c67
ff65898d8dc84d96b0556a9f03f33a92
1
d21505d5e42d449c92ee43511dfc47b0
RY(theta₃)
cb447981ee164ed8813046cd50fd4c67--d21505d5e42d449c92ee43511dfc47b0
817bcb3d2d9541faab4e73aa3db5a3ca
RX(theta₆)
d21505d5e42d449c92ee43511dfc47b0--817bcb3d2d9541faab4e73aa3db5a3ca
0f850b1fc8334bf1b3f3dbd79a35ada0
HamEvo
817bcb3d2d9541faab4e73aa3db5a3ca--0f850b1fc8334bf1b3f3dbd79a35ada0
8ada52855d6146deacfbba362d9c558e
RX(theta₉)
0f850b1fc8334bf1b3f3dbd79a35ada0--8ada52855d6146deacfbba362d9c558e
b823547daa9f48a2b60080b0b65f9ba1
RY(theta₁₂)
8ada52855d6146deacfbba362d9c558e--b823547daa9f48a2b60080b0b65f9ba1
063393dc9296437b806ca5ca18ff6a23
RX(theta₁₅)
b823547daa9f48a2b60080b0b65f9ba1--063393dc9296437b806ca5ca18ff6a23
0418f118f0154795b04280d9f9f1b516
HamEvo
063393dc9296437b806ca5ca18ff6a23--0418f118f0154795b04280d9f9f1b516
27c724d39225459983db012a8ba8f25d
0418f118f0154795b04280d9f9f1b516--27c724d39225459983db012a8ba8f25d
46d9c53b89ba4e4bb6bc30fee75f8f5c
8a2adcf8ff4b40db9feb933404b6b9ed
RX(theta₁)
ff65898d8dc84d96b0556a9f03f33a92--8a2adcf8ff4b40db9feb933404b6b9ed
27caee36d6c64400b9f5dd46b431f69b
2
69d20d0a1a8f4ead8996e9bbea19fda3
RY(theta₄)
8a2adcf8ff4b40db9feb933404b6b9ed--69d20d0a1a8f4ead8996e9bbea19fda3
a4d73553454f4299bf45c4dc76a91073
RX(theta₇)
69d20d0a1a8f4ead8996e9bbea19fda3--a4d73553454f4299bf45c4dc76a91073
f7dd4621436e41fa81f8f5eb1cb537fa
t = theta_t₀
a4d73553454f4299bf45c4dc76a91073--f7dd4621436e41fa81f8f5eb1cb537fa
ff4296de1b624749b6bc3a8b17c438f2
RX(theta₁₀)
f7dd4621436e41fa81f8f5eb1cb537fa--ff4296de1b624749b6bc3a8b17c438f2
6d7af2f680b4412aac6ac0282414743e
RY(theta₁₃)
ff4296de1b624749b6bc3a8b17c438f2--6d7af2f680b4412aac6ac0282414743e
98326bf74b284733aa8bd3a6719c317e
RX(theta₁₆)
6d7af2f680b4412aac6ac0282414743e--98326bf74b284733aa8bd3a6719c317e
0b4a7f82b96244ea8ca9362def2a14aa
t = theta_t₁
98326bf74b284733aa8bd3a6719c317e--0b4a7f82b96244ea8ca9362def2a14aa
0b4a7f82b96244ea8ca9362def2a14aa--46d9c53b89ba4e4bb6bc30fee75f8f5c
f681f50f66be4e999dd8bab26859a598
0fd5390f6af049b89b78a972b6a80e04
RX(theta₂)
27caee36d6c64400b9f5dd46b431f69b--0fd5390f6af049b89b78a972b6a80e04
2ac70e39847d4161872db3008d5b5bed
RY(theta₅)
0fd5390f6af049b89b78a972b6a80e04--2ac70e39847d4161872db3008d5b5bed
610980f49c5a4d41a6f6528af1ca679d
RX(theta₈)
2ac70e39847d4161872db3008d5b5bed--610980f49c5a4d41a6f6528af1ca679d
f276fb594414457c849db3ec3d29091f
610980f49c5a4d41a6f6528af1ca679d--f276fb594414457c849db3ec3d29091f
e75b32b493ec4ead850e8cd00ece5924
RX(theta₁₁)
f276fb594414457c849db3ec3d29091f--e75b32b493ec4ead850e8cd00ece5924
bfcb3c26b63842d18a39e133b6144cd1
RY(theta₁₄)
e75b32b493ec4ead850e8cd00ece5924--bfcb3c26b63842d18a39e133b6144cd1
e1995f86b4f444c3aa822f626bcda379
RX(theta₁₇)
bfcb3c26b63842d18a39e133b6144cd1--e1995f86b4f444c3aa822f626bcda379
b7669785f4c049988581068f08e6a7eb
e1995f86b4f444c3aa822f626bcda379--b7669785f4c049988581068f08e6a7eb
b7669785f4c049988581068f08e6a7eb--f681f50f66be4e999dd8bab26859a598
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_1ecb31dbb9b842a5b0e26b630665510c
cluster_a089edd0f01d4ca8945502302335d94d
800ce8c315024c4ab341f967ec95d654
0
5caacec104574b9daec1a0195962fde6
RX(theta₀)
800ce8c315024c4ab341f967ec95d654--5caacec104574b9daec1a0195962fde6
a23e466894ec43aabc9d68c4f082bea1
1
1c4c67d400d04a3e87d2655271175707
RY(theta₆)
5caacec104574b9daec1a0195962fde6--1c4c67d400d04a3e87d2655271175707
972d6ac3b43846c8ab493a25263ebb50
RX(theta₁₂)
1c4c67d400d04a3e87d2655271175707--972d6ac3b43846c8ab493a25263ebb50
7ba8614698a541c09f887358588ce023
972d6ac3b43846c8ab493a25263ebb50--7ba8614698a541c09f887358588ce023
7db83d6d46b84b20aa38b7dc7dd799f7
RX(theta₁₈)
7ba8614698a541c09f887358588ce023--7db83d6d46b84b20aa38b7dc7dd799f7
b714124b63c34cbd93502b313dd10f18
RY(theta₂₄)
7db83d6d46b84b20aa38b7dc7dd799f7--b714124b63c34cbd93502b313dd10f18
219572d9856b41b09d480ab5a54135ba
RX(theta₃₀)
b714124b63c34cbd93502b313dd10f18--219572d9856b41b09d480ab5a54135ba
01c2931e12a74758937be83be1f97da1
219572d9856b41b09d480ab5a54135ba--01c2931e12a74758937be83be1f97da1
d658f543774f4a87bbf6934e483810df
01c2931e12a74758937be83be1f97da1--d658f543774f4a87bbf6934e483810df
5d3881f42c6645bda98e607b55975fd9
e8b6f13cf2494ea595a100b8f6beccf2
RX(theta₁)
a23e466894ec43aabc9d68c4f082bea1--e8b6f13cf2494ea595a100b8f6beccf2
53dc5bd3d195486a9a2eefe243a860e8
2
cf9323c6825e4c9d871666963e2fbff6
RY(theta₇)
e8b6f13cf2494ea595a100b8f6beccf2--cf9323c6825e4c9d871666963e2fbff6
aea064d5210340e4948caeae787361c0
RX(theta₁₃)
cf9323c6825e4c9d871666963e2fbff6--aea064d5210340e4948caeae787361c0
432218463ff249859c07107bec0564af
aea064d5210340e4948caeae787361c0--432218463ff249859c07107bec0564af
6b58fb6313de49cda0a49e1701deccbf
RX(theta₁₉)
432218463ff249859c07107bec0564af--6b58fb6313de49cda0a49e1701deccbf
d8bfae65e495427cb915d3c82a719336
RY(theta₂₅)
6b58fb6313de49cda0a49e1701deccbf--d8bfae65e495427cb915d3c82a719336
491e46e2087c42cfb046c134b34e6348
RX(theta₃₁)
d8bfae65e495427cb915d3c82a719336--491e46e2087c42cfb046c134b34e6348
90a86176a92f49729f4811fa403c96d7
491e46e2087c42cfb046c134b34e6348--90a86176a92f49729f4811fa403c96d7
90a86176a92f49729f4811fa403c96d7--5d3881f42c6645bda98e607b55975fd9
65c908523c50483f981792fa3d3974cd
9b5d8e01d67b41b0acc4f4146dc7b401
RX(theta₂)
53dc5bd3d195486a9a2eefe243a860e8--9b5d8e01d67b41b0acc4f4146dc7b401
186cbeb2ec904e3b89d8540a567a1f29
3
b9a3b54d8ec54f38b52e3d8b2e52f107
RY(theta₈)
9b5d8e01d67b41b0acc4f4146dc7b401--b9a3b54d8ec54f38b52e3d8b2e52f107
e27bb18f5aaf41409e07a3d27ac79fa1
RX(theta₁₄)
b9a3b54d8ec54f38b52e3d8b2e52f107--e27bb18f5aaf41409e07a3d27ac79fa1
436b56aa90a64a5eb730b87a12962290
HamEvo
e27bb18f5aaf41409e07a3d27ac79fa1--436b56aa90a64a5eb730b87a12962290
7b417e232dda4e2686362b50d64ce510
RX(theta₂₀)
436b56aa90a64a5eb730b87a12962290--7b417e232dda4e2686362b50d64ce510
c363b24d268e4d9788d85a999505b10c
RY(theta₂₆)
7b417e232dda4e2686362b50d64ce510--c363b24d268e4d9788d85a999505b10c
02ea70f0f2a24ca299144d7f3e8dcb89
RX(theta₃₂)
c363b24d268e4d9788d85a999505b10c--02ea70f0f2a24ca299144d7f3e8dcb89
5e50dd770e8f40608ddb1c3e2b8fe1a7
HamEvo
02ea70f0f2a24ca299144d7f3e8dcb89--5e50dd770e8f40608ddb1c3e2b8fe1a7
5e50dd770e8f40608ddb1c3e2b8fe1a7--65c908523c50483f981792fa3d3974cd
36e1bdc6da604152bfda537e971713a7
2076619466cf40b089b82fff81675cc3
RX(theta₃)
186cbeb2ec904e3b89d8540a567a1f29--2076619466cf40b089b82fff81675cc3
91009ec2767e45469d9e8e520e5b4642
4
91931840d63049f789470ec23112e852
RY(theta₉)
2076619466cf40b089b82fff81675cc3--91931840d63049f789470ec23112e852
a360ebbc5a184ee58077617807f7dae8
RX(theta₁₅)
91931840d63049f789470ec23112e852--a360ebbc5a184ee58077617807f7dae8
e6841b6cfe1c44a9bb2a29276acfa17f
t = theta_t₀
a360ebbc5a184ee58077617807f7dae8--e6841b6cfe1c44a9bb2a29276acfa17f
ebdcd364f9344077b26a29988e8f72ef
RX(theta₂₁)
e6841b6cfe1c44a9bb2a29276acfa17f--ebdcd364f9344077b26a29988e8f72ef
d25daafbc0c64e9a83e450149c3ca5a0
RY(theta₂₇)
ebdcd364f9344077b26a29988e8f72ef--d25daafbc0c64e9a83e450149c3ca5a0
39d2f801fdbb49e683392c1c81d9285d
RX(theta₃₃)
d25daafbc0c64e9a83e450149c3ca5a0--39d2f801fdbb49e683392c1c81d9285d
6fa7ebd2218c4ac7b82527613d116860
t = theta_t₁
39d2f801fdbb49e683392c1c81d9285d--6fa7ebd2218c4ac7b82527613d116860
6fa7ebd2218c4ac7b82527613d116860--36e1bdc6da604152bfda537e971713a7
4aea5050ac3144cf8eff1c079b66d4d5
7c7d2bffe380463ab6a2089a0092f6d8
RX(theta₄)
91009ec2767e45469d9e8e520e5b4642--7c7d2bffe380463ab6a2089a0092f6d8
cc656c4565514dab955f4ab62fa6e36a
5
d9f5e4fcc9ae4bdaa2d70c9a9ef19b80
RY(theta₁₀)
7c7d2bffe380463ab6a2089a0092f6d8--d9f5e4fcc9ae4bdaa2d70c9a9ef19b80
b1ce8e4a977d47bb9200279843bf6449
RX(theta₁₆)
d9f5e4fcc9ae4bdaa2d70c9a9ef19b80--b1ce8e4a977d47bb9200279843bf6449
e69cf96b9987440594a7ecc9b67d750a
b1ce8e4a977d47bb9200279843bf6449--e69cf96b9987440594a7ecc9b67d750a
4c890709edd145a580a585ea31176d08
RX(theta₂₂)
e69cf96b9987440594a7ecc9b67d750a--4c890709edd145a580a585ea31176d08
31a0730f63784842802109eda29e9216
RY(theta₂₈)
4c890709edd145a580a585ea31176d08--31a0730f63784842802109eda29e9216
c7d9e8de0eee4ff292c0bce0929912ea
RX(theta₃₄)
31a0730f63784842802109eda29e9216--c7d9e8de0eee4ff292c0bce0929912ea
83e54518f192468caf49293b71a683d2
c7d9e8de0eee4ff292c0bce0929912ea--83e54518f192468caf49293b71a683d2
83e54518f192468caf49293b71a683d2--4aea5050ac3144cf8eff1c079b66d4d5
bcd0435e2edc4e749e869aa100020965
323d19d2b69f405bb93f29c776c91dca
RX(theta₅)
cc656c4565514dab955f4ab62fa6e36a--323d19d2b69f405bb93f29c776c91dca
a2b67c0f4beb4c4185afecc42dd4d4b7
RY(theta₁₁)
323d19d2b69f405bb93f29c776c91dca--a2b67c0f4beb4c4185afecc42dd4d4b7
3977d72bf57642c68afd955df73650df
RX(theta₁₇)
a2b67c0f4beb4c4185afecc42dd4d4b7--3977d72bf57642c68afd955df73650df
085ebe651d424c6c9649525fd17043cd
3977d72bf57642c68afd955df73650df--085ebe651d424c6c9649525fd17043cd
e802dbc679194494b164d26f4979961d
RX(theta₂₃)
085ebe651d424c6c9649525fd17043cd--e802dbc679194494b164d26f4979961d
5fac4e2b9bfb4d3ebc0cb4040ba038bd
RY(theta₂₉)
e802dbc679194494b164d26f4979961d--5fac4e2b9bfb4d3ebc0cb4040ba038bd
1d5073eb496c4dedb2b5f9e0153fce7d
RX(theta₃₅)
5fac4e2b9bfb4d3ebc0cb4040ba038bd--1d5073eb496c4dedb2b5f9e0153fce7d
5cbd104dec88473db3fe2bdadc6c1176
1d5073eb496c4dedb2b5f9e0153fce7d--5cbd104dec88473db3fe2bdadc6c1176
5cbd104dec88473db3fe2bdadc6c1176--bcd0435e2edc4e749e869aa100020965
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_131a3ee2735942bda03ea71d35a081ef
BPMA-1
cluster_d2c15c3eeae24e2e86bb632588344251
BPMA-0
02892ff1b4d04ce1ada0eddefc93513b
0
d39cfd192acb482ab914be99112f66c3
RX(iia_α₀₀)
02892ff1b4d04ce1ada0eddefc93513b--d39cfd192acb482ab914be99112f66c3
f58d6efeec994c18b6802e3238915b5a
1
fad6ef4ff0f94974b27dbff483f4952d
RY(iia_α₀₃)
d39cfd192acb482ab914be99112f66c3--fad6ef4ff0f94974b27dbff483f4952d
25f2937d3e7944efbe47c22d3706f0e7
fad6ef4ff0f94974b27dbff483f4952d--25f2937d3e7944efbe47c22d3706f0e7
3c699a7d2b8344acb6bc926f9931e3c6
25f2937d3e7944efbe47c22d3706f0e7--3c699a7d2b8344acb6bc926f9931e3c6
b4e411918ecf43ba928c647530fd292a
RX(iia_γ₀₀)
3c699a7d2b8344acb6bc926f9931e3c6--b4e411918ecf43ba928c647530fd292a
e8345e9b1d63468cab98f13106bc0a96
b4e411918ecf43ba928c647530fd292a--e8345e9b1d63468cab98f13106bc0a96
6db69027e1874ce4b88a1572869a5dc7
e8345e9b1d63468cab98f13106bc0a96--6db69027e1874ce4b88a1572869a5dc7
99da1dc90f40472582c936c697ccb057
RY(iia_β₀₃)
6db69027e1874ce4b88a1572869a5dc7--99da1dc90f40472582c936c697ccb057
71bba7f69a284e75abc61012a611d117
RX(iia_β₀₀)
99da1dc90f40472582c936c697ccb057--71bba7f69a284e75abc61012a611d117
111defafbe1e41aeb3ab7bdb0af1cc19
RX(iia_α₁₀)
71bba7f69a284e75abc61012a611d117--111defafbe1e41aeb3ab7bdb0af1cc19
46b11d1fb6b142ca84f713662d8a86ed
RY(iia_α₁₃)
111defafbe1e41aeb3ab7bdb0af1cc19--46b11d1fb6b142ca84f713662d8a86ed
be0a18b7777e47829ccc22c62c6fd752
46b11d1fb6b142ca84f713662d8a86ed--be0a18b7777e47829ccc22c62c6fd752
fb3ab2bf3b24434384fc0585837c0f2e
be0a18b7777e47829ccc22c62c6fd752--fb3ab2bf3b24434384fc0585837c0f2e
6f72394e2c214a7c86da47a214371ade
RX(iia_γ₁₀)
fb3ab2bf3b24434384fc0585837c0f2e--6f72394e2c214a7c86da47a214371ade
a797a06b514442288cc65ebdd5743dd0
6f72394e2c214a7c86da47a214371ade--a797a06b514442288cc65ebdd5743dd0
ceb60c2e675d4a1c95370f276153e521
a797a06b514442288cc65ebdd5743dd0--ceb60c2e675d4a1c95370f276153e521
fecbc3011a3a4e09a5865ae5c21401b2
RY(iia_β₁₃)
ceb60c2e675d4a1c95370f276153e521--fecbc3011a3a4e09a5865ae5c21401b2
28aae94fa96249e98f11405d91007c6c
RX(iia_β₁₀)
fecbc3011a3a4e09a5865ae5c21401b2--28aae94fa96249e98f11405d91007c6c
04b9de6f62974ea28116440b8a167a2c
28aae94fa96249e98f11405d91007c6c--04b9de6f62974ea28116440b8a167a2c
34a80aaf4ac644548cae243aba01e1a4
e81f2dfcf2c348c59a7044e6243f3020
RX(iia_α₀₁)
f58d6efeec994c18b6802e3238915b5a--e81f2dfcf2c348c59a7044e6243f3020
3b732e5051164f70b724d3e02162e3c5
2
332f2eb7d84f43ba9dd082edac958b1f
RY(iia_α₀₄)
e81f2dfcf2c348c59a7044e6243f3020--332f2eb7d84f43ba9dd082edac958b1f
aa4a3b8a562645c99ff0fbedf4c15539
X
332f2eb7d84f43ba9dd082edac958b1f--aa4a3b8a562645c99ff0fbedf4c15539
aa4a3b8a562645c99ff0fbedf4c15539--25f2937d3e7944efbe47c22d3706f0e7
b77b848e2d4a445cb9a82fe4c10e1bbb
aa4a3b8a562645c99ff0fbedf4c15539--b77b848e2d4a445cb9a82fe4c10e1bbb
bd037789405a410b95c8e167f0feb47e
RX(iia_γ₀₁)
b77b848e2d4a445cb9a82fe4c10e1bbb--bd037789405a410b95c8e167f0feb47e
82fbcdb8063b4fd3aaf2edf9dce6c755
bd037789405a410b95c8e167f0feb47e--82fbcdb8063b4fd3aaf2edf9dce6c755
a4b72884cd894b7da121249547c4819d
X
82fbcdb8063b4fd3aaf2edf9dce6c755--a4b72884cd894b7da121249547c4819d
a4b72884cd894b7da121249547c4819d--6db69027e1874ce4b88a1572869a5dc7
dbbe18cb9c85491587a461ed8e491051
RY(iia_β₀₄)
a4b72884cd894b7da121249547c4819d--dbbe18cb9c85491587a461ed8e491051
789461d7f0f541ea8b56b9f4a3ad594e
RX(iia_β₀₁)
dbbe18cb9c85491587a461ed8e491051--789461d7f0f541ea8b56b9f4a3ad594e
6286b0a781bc4ee1a47333300d73bde2
RX(iia_α₁₁)
789461d7f0f541ea8b56b9f4a3ad594e--6286b0a781bc4ee1a47333300d73bde2
705347a74e9645fb84bf3bb2c10dcb92
RY(iia_α₁₄)
6286b0a781bc4ee1a47333300d73bde2--705347a74e9645fb84bf3bb2c10dcb92
ac5a613e4b144391bf2c996406c6981e
X
705347a74e9645fb84bf3bb2c10dcb92--ac5a613e4b144391bf2c996406c6981e
ac5a613e4b144391bf2c996406c6981e--be0a18b7777e47829ccc22c62c6fd752
6789e0f30f414b1bb2dbe94d9b3ed08c
ac5a613e4b144391bf2c996406c6981e--6789e0f30f414b1bb2dbe94d9b3ed08c
681d501f45fe4a8e93dc4de8e3296733
RX(iia_γ₁₁)
6789e0f30f414b1bb2dbe94d9b3ed08c--681d501f45fe4a8e93dc4de8e3296733
ae7e65d1680e4660ba05c5aaa26ea559
681d501f45fe4a8e93dc4de8e3296733--ae7e65d1680e4660ba05c5aaa26ea559
f2e4197578454df4bb3e5f117f11d3e2
X
ae7e65d1680e4660ba05c5aaa26ea559--f2e4197578454df4bb3e5f117f11d3e2
f2e4197578454df4bb3e5f117f11d3e2--ceb60c2e675d4a1c95370f276153e521
41c31dbb2489453a995e507109da928e
RY(iia_β₁₄)
f2e4197578454df4bb3e5f117f11d3e2--41c31dbb2489453a995e507109da928e
fa940534784e4fac86fc390c6c40a9ea
RX(iia_β₁₁)
41c31dbb2489453a995e507109da928e--fa940534784e4fac86fc390c6c40a9ea
fa940534784e4fac86fc390c6c40a9ea--34a80aaf4ac644548cae243aba01e1a4
6f63a0f7a6fa468799162273d164841d
d9569614b5e243ce9402df6e1345b217
RX(iia_α₀₂)
3b732e5051164f70b724d3e02162e3c5--d9569614b5e243ce9402df6e1345b217
cacd19ca48854d22bbaac03235157a66
RY(iia_α₀₅)
d9569614b5e243ce9402df6e1345b217--cacd19ca48854d22bbaac03235157a66
9cc0351c4cfd49e79f16f1f88ee419a7
cacd19ca48854d22bbaac03235157a66--9cc0351c4cfd49e79f16f1f88ee419a7
c9e0633f674c44d280b3f78c40ada67a
X
9cc0351c4cfd49e79f16f1f88ee419a7--c9e0633f674c44d280b3f78c40ada67a
c9e0633f674c44d280b3f78c40ada67a--b77b848e2d4a445cb9a82fe4c10e1bbb
18914248be994671a1014003138b4e0e
RX(iia_γ₀₂)
c9e0633f674c44d280b3f78c40ada67a--18914248be994671a1014003138b4e0e
daff16ee6ed94dfbbc831d949866f759
X
18914248be994671a1014003138b4e0e--daff16ee6ed94dfbbc831d949866f759
daff16ee6ed94dfbbc831d949866f759--82fbcdb8063b4fd3aaf2edf9dce6c755
d6ad94d2d0464db89078165d069e4e25
daff16ee6ed94dfbbc831d949866f759--d6ad94d2d0464db89078165d069e4e25
06c90085ed454fd7a865f1b5a19d633e
RY(iia_β₀₅)
d6ad94d2d0464db89078165d069e4e25--06c90085ed454fd7a865f1b5a19d633e
8243b9b06f1448f0b1bfd09bc3514c06
RX(iia_β₀₂)
06c90085ed454fd7a865f1b5a19d633e--8243b9b06f1448f0b1bfd09bc3514c06
97f33bd2032848f9b12e4737178fe91e
RX(iia_α₁₂)
8243b9b06f1448f0b1bfd09bc3514c06--97f33bd2032848f9b12e4737178fe91e
e89ec1599d6145a4848942459bc7b339
RY(iia_α₁₅)
97f33bd2032848f9b12e4737178fe91e--e89ec1599d6145a4848942459bc7b339
b71525e40e5f41a880638b25a2d45cc7
e89ec1599d6145a4848942459bc7b339--b71525e40e5f41a880638b25a2d45cc7
7fd5e1431a7b4d21af43ec80a7789fab
X
b71525e40e5f41a880638b25a2d45cc7--7fd5e1431a7b4d21af43ec80a7789fab
7fd5e1431a7b4d21af43ec80a7789fab--6789e0f30f414b1bb2dbe94d9b3ed08c
21e13a200f114399ae0ba9794a922b5e
RX(iia_γ₁₂)
7fd5e1431a7b4d21af43ec80a7789fab--21e13a200f114399ae0ba9794a922b5e
13362bf4b05c420a9c097a8807d3f7ec
X
21e13a200f114399ae0ba9794a922b5e--13362bf4b05c420a9c097a8807d3f7ec
13362bf4b05c420a9c097a8807d3f7ec--ae7e65d1680e4660ba05c5aaa26ea559
88031b8bc026492da98f3b8aa6f08f76
13362bf4b05c420a9c097a8807d3f7ec--88031b8bc026492da98f3b8aa6f08f76
a5e0c4e979b74872ad5c51ffb67f85da
RY(iia_β₁₅)
88031b8bc026492da98f3b8aa6f08f76--a5e0c4e979b74872ad5c51ffb67f85da
c9aec9907b9747c1826788c4bbe0d26a
RX(iia_β₁₂)
a5e0c4e979b74872ad5c51ffb67f85da--c9aec9907b9747c1826788c4bbe0d26a
c9aec9907b9747c1826788c4bbe0d26a--6f63a0f7a6fa468799162273d164841d