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_cc56f6d225e04437b867170dd806de27
Constant Chebyshev FM
cluster_de5df18abd37473d91724c61659cdea1
Constant Fourier FM
4b9cb394ec994c03bc1b29d85b0eb9bf
0
5160d178c1cd46e6b2b4c5e01306dbfa
RX(phi)
4b9cb394ec994c03bc1b29d85b0eb9bf--5160d178c1cd46e6b2b4c5e01306dbfa
ec8955c94b614ec6ba283370bcb5027d
1
68faff697ef0440b8099537b5a6d75b5
RX(acos(phi))
5160d178c1cd46e6b2b4c5e01306dbfa--68faff697ef0440b8099537b5a6d75b5
586d1672b0f6495ba49edd8f4e11952a
68faff697ef0440b8099537b5a6d75b5--586d1672b0f6495ba49edd8f4e11952a
ccd91323b4e94613bdb896fee4d04ff3
5301b30c6bf941d3afb4a89a1dc561cf
RX(phi)
ec8955c94b614ec6ba283370bcb5027d--5301b30c6bf941d3afb4a89a1dc561cf
b899ab9aaf854dcb9a273932116a8b57
2
99a18011a78a4c7cb1bf4f20cbcd6094
RX(acos(phi))
5301b30c6bf941d3afb4a89a1dc561cf--99a18011a78a4c7cb1bf4f20cbcd6094
99a18011a78a4c7cb1bf4f20cbcd6094--ccd91323b4e94613bdb896fee4d04ff3
71df1327b36d4e1d85c6fd3fa4947421
7ad18c13b9f54938a6191d315d5775df
RX(phi)
b899ab9aaf854dcb9a273932116a8b57--7ad18c13b9f54938a6191d315d5775df
1adeb2586e49439490a9e9a2567eb0c4
RX(acos(phi))
7ad18c13b9f54938a6191d315d5775df--1adeb2586e49439490a9e9a2567eb0c4
1adeb2586e49439490a9e9a2567eb0c4--71df1327b36d4e1d85c6fd3fa4947421
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_aeb9cd6e7aaf4f69b9ec4a31d4fcbb6f
Constant <function custom_fn at 0x7f01156775b0> FM
cluster_4f0f28ca4d474e04904b2cff444e98ad
Constant asin FM
a34194e4000c465d971f99b22c5ff59a
0
b3d547889acb45ba95886f8ca155ecc1
RX(asin(phi))
a34194e4000c465d971f99b22c5ff59a--b3d547889acb45ba95886f8ca155ecc1
208ec4e3b1d14b03b79e6d66ed1eecda
1
c4afc1266ace4eb89ae873a55818b3e3
RX(phi**2 + asin(phi))
b3d547889acb45ba95886f8ca155ecc1--c4afc1266ace4eb89ae873a55818b3e3
54c00f3bbae54d88b62f6cd26b3139fd
c4afc1266ace4eb89ae873a55818b3e3--54c00f3bbae54d88b62f6cd26b3139fd
d67d4b194c834688b22304997958cf5c
69ec90f159d142889994f9c2aa7562eb
RX(asin(phi))
208ec4e3b1d14b03b79e6d66ed1eecda--69ec90f159d142889994f9c2aa7562eb
9a1fb9511fd44f9fa8dd2e6bebf4bc8e
2
ae5d0ead6d504cd183a83d6f5d56de1a
RX(phi**2 + asin(phi))
69ec90f159d142889994f9c2aa7562eb--ae5d0ead6d504cd183a83d6f5d56de1a
ae5d0ead6d504cd183a83d6f5d56de1a--d67d4b194c834688b22304997958cf5c
67620553da8a487ba8410a1541e9ce2d
d34a45fad84947559e5a0f94a355239d
RX(asin(phi))
9a1fb9511fd44f9fa8dd2e6bebf4bc8e--d34a45fad84947559e5a0f94a355239d
efcc33eaa75c4ed58e82c8abd3e8085c
RX(phi**2 + asin(phi))
d34a45fad84947559e5a0f94a355239d--efcc33eaa75c4ed58e82c8abd3e8085c
efcc33eaa75c4ed58e82c8abd3e8085c--67620553da8a487ba8410a1541e9ce2d
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_cbcbce9c610842ea99078093ad22d9d1
Exponential Fourier FM
cluster_8c8d2334781b446a91b3c6b6e0c419bb
Constant Fourier FM
cluster_b8812923503c429099ca1a374fe903eb
Tower Fourier FM
ee5df4451fea4888ac574eb903205894
0
022c61e11d5e4a7da119ac86368fd133
RX(phi)
ee5df4451fea4888ac574eb903205894--022c61e11d5e4a7da119ac86368fd133
ebc2649941084d2f8e4c6f803943f594
1
221b7e6a94f9468db43168206434e875
RX(1.0*phi)
022c61e11d5e4a7da119ac86368fd133--221b7e6a94f9468db43168206434e875
db6e11e98de4455094695387e0aa3b2d
RX(1.0*phi)
221b7e6a94f9468db43168206434e875--db6e11e98de4455094695387e0aa3b2d
00a388b236c94671b3fa38dccb0476cd
db6e11e98de4455094695387e0aa3b2d--00a388b236c94671b3fa38dccb0476cd
0309226b4ef143238139d7d2bc3d38e2
7aafb2abfb9b492a8ac8691f48d39cb4
RX(phi)
ebc2649941084d2f8e4c6f803943f594--7aafb2abfb9b492a8ac8691f48d39cb4
57f6f368fd004491ad1e39d01b0520b8
2
6792f6293ae44575afb734ad53ec37d1
RX(2.0*phi)
7aafb2abfb9b492a8ac8691f48d39cb4--6792f6293ae44575afb734ad53ec37d1
306e6ecddef14a41b3e79d163a80da3d
RX(2.0*phi)
6792f6293ae44575afb734ad53ec37d1--306e6ecddef14a41b3e79d163a80da3d
306e6ecddef14a41b3e79d163a80da3d--0309226b4ef143238139d7d2bc3d38e2
d43b95609fa84eb088330bd2c0cee656
0d53ef324f3e46d8937559f0d189afd2
RX(phi)
57f6f368fd004491ad1e39d01b0520b8--0d53ef324f3e46d8937559f0d189afd2
806d925759424f9abba63783a92f0339
3
c991e5926ed04d76a0d88b695005921e
RX(3.0*phi)
0d53ef324f3e46d8937559f0d189afd2--c991e5926ed04d76a0d88b695005921e
1d69435907174d19880d0d1f97db9b26
RX(4.0*phi)
c991e5926ed04d76a0d88b695005921e--1d69435907174d19880d0d1f97db9b26
1d69435907174d19880d0d1f97db9b26--d43b95609fa84eb088330bd2c0cee656
f0eb7625adf4414fa281072b569f3f9a
11762baf30f1400997202378c909a21e
RX(phi)
806d925759424f9abba63783a92f0339--11762baf30f1400997202378c909a21e
3ade3b7f64374c37ae1a0de1b782d29a
4
11dc822efed94458b9e4c59763a830a7
RX(4.0*phi)
11762baf30f1400997202378c909a21e--11dc822efed94458b9e4c59763a830a7
23fef8657c2a4ae886c154fecead61e0
RX(8.0*phi)
11dc822efed94458b9e4c59763a830a7--23fef8657c2a4ae886c154fecead61e0
23fef8657c2a4ae886c154fecead61e0--f0eb7625adf4414fa281072b569f3f9a
2ab2827264184fd496479f5e4d790f8d
e52c5fb1c5b14557be147335feaad6c9
RX(phi)
3ade3b7f64374c37ae1a0de1b782d29a--e52c5fb1c5b14557be147335feaad6c9
f9836ba4862949bea6dd0a215ac06a94
RX(5.0*phi)
e52c5fb1c5b14557be147335feaad6c9--f9836ba4862949bea6dd0a215ac06a94
b9635857da964b4ca87e981148923e30
RX(16.0*phi)
f9836ba4862949bea6dd0a215ac06a94--b9635857da964b4ca87e981148923e30
b9635857da964b4ca87e981148923e30--2ab2827264184fd496479f5e4d790f8d
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
817db277da964ec98cfe3e9dc10b6d36
0
2bb766e454b44fd8b052d8fd13de1aed
RX(1.0*acos(phi))
817db277da964ec98cfe3e9dc10b6d36--2bb766e454b44fd8b052d8fd13de1aed
023ba04f527b4a919f5a0e55b6151ed2
1
7e4eb16640b9443788bb100a667766f6
2bb766e454b44fd8b052d8fd13de1aed--7e4eb16640b9443788bb100a667766f6
c4afe22c33ca43059931ab75cff45f95
bd995283c1dc4184bd0c4709755a3fca
RX(1.414*acos(phi))
023ba04f527b4a919f5a0e55b6151ed2--bd995283c1dc4184bd0c4709755a3fca
0c16fad91c2847b9aed98cf5688ad679
2
bd995283c1dc4184bd0c4709755a3fca--c4afe22c33ca43059931ab75cff45f95
43e8b8ebeb5243d68aed405b6bb19706
b0398439e83e44a7b62fdef1ec0dd643
RX(1.732*acos(phi))
0c16fad91c2847b9aed98cf5688ad679--b0398439e83e44a7b62fdef1ec0dd643
30864330f1ec46f4b3d740c0dcb768c8
3
b0398439e83e44a7b62fdef1ec0dd643--43e8b8ebeb5243d68aed405b6bb19706
04c6b80181204a6d8e4884d997b89bd0
e42505f5ed9d421d935ac9d6dcffa7d3
RX(2.0*acos(phi))
30864330f1ec46f4b3d740c0dcb768c8--e42505f5ed9d421d935ac9d6dcffa7d3
569a30273bf141ae8d7ff8adbba1e794
4
e42505f5ed9d421d935ac9d6dcffa7d3--04c6b80181204a6d8e4884d997b89bd0
d01ed83e6f7148f1917eb257dffeba35
96a1262a7fb043cdbdc564b86663becb
RX(2.236*acos(phi))
569a30273bf141ae8d7ff8adbba1e794--96a1262a7fb043cdbdc564b86663becb
96a1262a7fb043cdbdc564b86663becb--d01ed83e6f7148f1917eb257dffeba35
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
529786b0f79b4eae98c5b3fbdaffe9db
0
528bfa83bc524960a3ad3c53b096c31d
RX(1.0*phi*w₀)
529786b0f79b4eae98c5b3fbdaffe9db--528bfa83bc524960a3ad3c53b096c31d
c280546cd7fd4e40bcc715dd24980fa4
1
791bd310d9ce4f9d82d32e21d520dc04
528bfa83bc524960a3ad3c53b096c31d--791bd310d9ce4f9d82d32e21d520dc04
1fa5d7aff83f403993ca94b9b6a24ea2
ed7157babcf04746b8d145e2a49a9822
RX(2.0*phi*w₁)
c280546cd7fd4e40bcc715dd24980fa4--ed7157babcf04746b8d145e2a49a9822
8d6131873a8541fb81e31b5369e21985
2
ed7157babcf04746b8d145e2a49a9822--1fa5d7aff83f403993ca94b9b6a24ea2
751db978612a4fbead59b65b081b25db
53fd60c5b264462899073d3ba09a716c
RX(4.0*phi*w₂)
8d6131873a8541fb81e31b5369e21985--53fd60c5b264462899073d3ba09a716c
17cbb26ba58b44c4ad431c22c359c339
3
53fd60c5b264462899073d3ba09a716c--751db978612a4fbead59b65b081b25db
93b578ae60f54fa9ae5c569352fff731
054d2d8af25c47c7be91ebc334b0fb60
RX(8.0*phi*w₃)
17cbb26ba58b44c4ad431c22c359c339--054d2d8af25c47c7be91ebc334b0fb60
19cb7000bfaf4f22a67dceadec8cafbc
4
054d2d8af25c47c7be91ebc334b0fb60--93b578ae60f54fa9ae5c569352fff731
3ff26dfe845b46dd8f0f05256bbc9b68
1df54b7f81824e3795d82d809550a6e5
RX(16.0*phi*w₄)
19cb7000bfaf4f22a67dceadec8cafbc--1df54b7f81824e3795d82d809550a6e5
1df54b7f81824e3795d82d809550a6e5--3ff26dfe845b46dd8f0f05256bbc9b68
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
5444ef63b27c4e849db263e045fc0501
0
4daf705f490a467d8466655afd8cc32c
RY(80.0*acos(w₄*(0.667*x + 1.667)))
5444ef63b27c4e849db263e045fc0501--4daf705f490a467d8466655afd8cc32c
c4f7d176cdb1460e89c073016c9687a7
1
fe8892303dd1443992d67845d57e0938
4daf705f490a467d8466655afd8cc32c--fe8892303dd1443992d67845d57e0938
a90ff9ba0f994125b4e4dca722be1e39
2b702d6785714d49ade92878f027435f
RY(40.0*acos(w₃*(0.667*x + 1.667)))
c4f7d176cdb1460e89c073016c9687a7--2b702d6785714d49ade92878f027435f
064acf85f7464b59b79420b187504154
2
2b702d6785714d49ade92878f027435f--a90ff9ba0f994125b4e4dca722be1e39
3bf95517b05d498dad013683871a0a57
223b1480a23f4f16bae89e4186f7ad33
RY(20.0*acos(w₂*(0.667*x + 1.667)))
064acf85f7464b59b79420b187504154--223b1480a23f4f16bae89e4186f7ad33
9592fddcacf2463681713e748c7f7cd3
3
223b1480a23f4f16bae89e4186f7ad33--3bf95517b05d498dad013683871a0a57
1c4eeed5dfed41af9e509701af6d8fe9
cb6b6abb79b6406c977af95a7df93199
RY(10.0*acos(w₁*(0.667*x + 1.667)))
9592fddcacf2463681713e748c7f7cd3--cb6b6abb79b6406c977af95a7df93199
db95158527f6465bb276b4da6dc91954
4
cb6b6abb79b6406c977af95a7df93199--1c4eeed5dfed41af9e509701af6d8fe9
0fc510d0bcff42ad939f477f3ea0ae50
8966a8b9c30540788c92a7854cc4577c
RY(5.0*acos(w₀*(0.667*x + 1.667)))
db95158527f6465bb276b4da6dc91954--8966a8b9c30540788c92a7854cc4577c
8966a8b9c30540788c92a7854cc4577c--0fc510d0bcff42ad939f477f3ea0ae50
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
e4c61c2a6d8a4c7ba26c506e9b50a930
0
2200f4f6efd04c639cef502f50b2104e
RX(theta₀)
e4c61c2a6d8a4c7ba26c506e9b50a930--2200f4f6efd04c639cef502f50b2104e
49aadf73e19c47699352d1aa37b71fd3
1
5f864c906c814959b93218a8794c5760
RY(theta₃)
2200f4f6efd04c639cef502f50b2104e--5f864c906c814959b93218a8794c5760
cf90bef7e09d4523adba2a3b9aeb6d4b
RX(theta₆)
5f864c906c814959b93218a8794c5760--cf90bef7e09d4523adba2a3b9aeb6d4b
42f24899596946d2aa0c92f32cd8029a
cf90bef7e09d4523adba2a3b9aeb6d4b--42f24899596946d2aa0c92f32cd8029a
540f99bdf2b0427cab0150c3fd8401de
42f24899596946d2aa0c92f32cd8029a--540f99bdf2b0427cab0150c3fd8401de
f836acc3d36e4faaa890c6309ef12051
RX(theta₉)
540f99bdf2b0427cab0150c3fd8401de--f836acc3d36e4faaa890c6309ef12051
efe287b455c7403da7f3f0b3122c375b
RY(theta₁₂)
f836acc3d36e4faaa890c6309ef12051--efe287b455c7403da7f3f0b3122c375b
9832f8744af944dcba29afdcbe46e614
RX(theta₁₅)
efe287b455c7403da7f3f0b3122c375b--9832f8744af944dcba29afdcbe46e614
afe31a2909cb476eaf849d30aed29185
9832f8744af944dcba29afdcbe46e614--afe31a2909cb476eaf849d30aed29185
66a6c42b38884affb152b73c7e38d497
afe31a2909cb476eaf849d30aed29185--66a6c42b38884affb152b73c7e38d497
beaf5e461c444aa1be446899738269a3
66a6c42b38884affb152b73c7e38d497--beaf5e461c444aa1be446899738269a3
d98f45f216bf424eb0ecab341d36b0d4
629bb1cf71674d40b1f56d24fda1aeea
RX(theta₁)
49aadf73e19c47699352d1aa37b71fd3--629bb1cf71674d40b1f56d24fda1aeea
4b398c170446466190a2cc1dc6523b22
2
5d2251e7cc804925bd2015ab9d2b9142
RY(theta₄)
629bb1cf71674d40b1f56d24fda1aeea--5d2251e7cc804925bd2015ab9d2b9142
0414f620dc2a4a29ab8f532dc984d614
RX(theta₇)
5d2251e7cc804925bd2015ab9d2b9142--0414f620dc2a4a29ab8f532dc984d614
f31e187774744162ae1377496b1725b0
X
0414f620dc2a4a29ab8f532dc984d614--f31e187774744162ae1377496b1725b0
f31e187774744162ae1377496b1725b0--42f24899596946d2aa0c92f32cd8029a
383d8308cd234bf985733fe1d8e95ff1
f31e187774744162ae1377496b1725b0--383d8308cd234bf985733fe1d8e95ff1
91596fc6c4f047f49287bf9ff06b60ac
RX(theta₁₀)
383d8308cd234bf985733fe1d8e95ff1--91596fc6c4f047f49287bf9ff06b60ac
9623bcd0c6e143b7ae63b9853132ea0e
RY(theta₁₃)
91596fc6c4f047f49287bf9ff06b60ac--9623bcd0c6e143b7ae63b9853132ea0e
c9fec6e8429a43c5bc36fb37b71ce240
RX(theta₁₆)
9623bcd0c6e143b7ae63b9853132ea0e--c9fec6e8429a43c5bc36fb37b71ce240
a046280e85b7446e80b9e955bb197c24
X
c9fec6e8429a43c5bc36fb37b71ce240--a046280e85b7446e80b9e955bb197c24
a046280e85b7446e80b9e955bb197c24--afe31a2909cb476eaf849d30aed29185
0538b3dfdb6546c3bf113394764bbe3b
a046280e85b7446e80b9e955bb197c24--0538b3dfdb6546c3bf113394764bbe3b
0538b3dfdb6546c3bf113394764bbe3b--d98f45f216bf424eb0ecab341d36b0d4
0a350deb4e3d499abd03e6bbd96b48c0
26d0bb96df3f46ee822f692293ca6c17
RX(theta₂)
4b398c170446466190a2cc1dc6523b22--26d0bb96df3f46ee822f692293ca6c17
c278bc16299b49758d46929447ef0378
RY(theta₅)
26d0bb96df3f46ee822f692293ca6c17--c278bc16299b49758d46929447ef0378
00b9d02e6c0a4f248d3a894ed8a90c9f
RX(theta₈)
c278bc16299b49758d46929447ef0378--00b9d02e6c0a4f248d3a894ed8a90c9f
d75eb6d948194f2f835697967fb51561
00b9d02e6c0a4f248d3a894ed8a90c9f--d75eb6d948194f2f835697967fb51561
76395e0c677d4320832634a272b9363e
X
d75eb6d948194f2f835697967fb51561--76395e0c677d4320832634a272b9363e
76395e0c677d4320832634a272b9363e--383d8308cd234bf985733fe1d8e95ff1
adbc7a508c374096a96b16121d203e06
RX(theta₁₁)
76395e0c677d4320832634a272b9363e--adbc7a508c374096a96b16121d203e06
5344e6909312481495e745c29991e59d
RY(theta₁₄)
adbc7a508c374096a96b16121d203e06--5344e6909312481495e745c29991e59d
799ef82a824f48c8b8a275f4cf8ccbbc
RX(theta₁₇)
5344e6909312481495e745c29991e59d--799ef82a824f48c8b8a275f4cf8ccbbc
41bfa3de5d2b4311b4391522555f0f57
799ef82a824f48c8b8a275f4cf8ccbbc--41bfa3de5d2b4311b4391522555f0f57
7c5c19050fbb4d2ab3d26d5c3556a26c
X
41bfa3de5d2b4311b4391522555f0f57--7c5c19050fbb4d2ab3d26d5c3556a26c
7c5c19050fbb4d2ab3d26d5c3556a26c--0538b3dfdb6546c3bf113394764bbe3b
7c5c19050fbb4d2ab3d26d5c3556a26c--0a350deb4e3d499abd03e6bbd96b48c0
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
abfece3c83434348ac2171635b77cc75
0
440f9d4cbecb427caea4c6dbfba3200f
RX(phi₀)
abfece3c83434348ac2171635b77cc75--440f9d4cbecb427caea4c6dbfba3200f
8bfa86b7ba3c4efaa2b7e468947767f4
1
f8ba786459c74e319271b62ea86d27ad
RY(phi₃)
440f9d4cbecb427caea4c6dbfba3200f--f8ba786459c74e319271b62ea86d27ad
01a28e16a785410283973e679969b926
RX(phi₆)
f8ba786459c74e319271b62ea86d27ad--01a28e16a785410283973e679969b926
5b935502969f4c678cab98106ddfb089
01a28e16a785410283973e679969b926--5b935502969f4c678cab98106ddfb089
618c307df417454e915a3c7fec49ed65
5b935502969f4c678cab98106ddfb089--618c307df417454e915a3c7fec49ed65
c37f84cf69cd4335954b39959e01a1f2
RX(phi₉)
618c307df417454e915a3c7fec49ed65--c37f84cf69cd4335954b39959e01a1f2
ea3b829e065d4a7eae4b51e57f60bc4e
RY(phi₁₂)
c37f84cf69cd4335954b39959e01a1f2--ea3b829e065d4a7eae4b51e57f60bc4e
a4fdece4d30b4833a4208228a38ae116
RX(phi₁₅)
ea3b829e065d4a7eae4b51e57f60bc4e--a4fdece4d30b4833a4208228a38ae116
edec9afeb17f4ad2b7b9ef30ec0f2bab
a4fdece4d30b4833a4208228a38ae116--edec9afeb17f4ad2b7b9ef30ec0f2bab
37fa0b969d0c44e2b037330ec700256a
edec9afeb17f4ad2b7b9ef30ec0f2bab--37fa0b969d0c44e2b037330ec700256a
63b5ffc01d6c45e88b52073a36dc761f
37fa0b969d0c44e2b037330ec700256a--63b5ffc01d6c45e88b52073a36dc761f
8afec026d331413f98e0cf3a17cf55e3
e8d3f636ce47410fadd629267bbfa656
RX(phi₁)
8bfa86b7ba3c4efaa2b7e468947767f4--e8d3f636ce47410fadd629267bbfa656
0b22481b782940f580ec82bad2fd4999
2
b99bf6a3467642f9babe7ced259f52b8
RY(phi₄)
e8d3f636ce47410fadd629267bbfa656--b99bf6a3467642f9babe7ced259f52b8
fb7e16503128401ab5bc93e0c94f7c3d
RX(phi₇)
b99bf6a3467642f9babe7ced259f52b8--fb7e16503128401ab5bc93e0c94f7c3d
4b1b443b772a4f64be2963d6c429dfcc
PHASE(phi_ent₀)
fb7e16503128401ab5bc93e0c94f7c3d--4b1b443b772a4f64be2963d6c429dfcc
4b1b443b772a4f64be2963d6c429dfcc--5b935502969f4c678cab98106ddfb089
9febf0850c3740cc8f6fbad3b40ee458
4b1b443b772a4f64be2963d6c429dfcc--9febf0850c3740cc8f6fbad3b40ee458
0a418a7d97104562bb3f2dc9ec34e29e
RX(phi₁₀)
9febf0850c3740cc8f6fbad3b40ee458--0a418a7d97104562bb3f2dc9ec34e29e
b1a5449f3dcc41e5a26b6a512f0c4cb7
RY(phi₁₃)
0a418a7d97104562bb3f2dc9ec34e29e--b1a5449f3dcc41e5a26b6a512f0c4cb7
ad7050c99526427b925ffc1291551167
RX(phi₁₆)
b1a5449f3dcc41e5a26b6a512f0c4cb7--ad7050c99526427b925ffc1291551167
9d68739375f544c1b7f4a3c6e6a33a02
PHASE(phi_ent₂)
ad7050c99526427b925ffc1291551167--9d68739375f544c1b7f4a3c6e6a33a02
9d68739375f544c1b7f4a3c6e6a33a02--edec9afeb17f4ad2b7b9ef30ec0f2bab
5a4d7bce4a614d828bcd772466231953
9d68739375f544c1b7f4a3c6e6a33a02--5a4d7bce4a614d828bcd772466231953
5a4d7bce4a614d828bcd772466231953--8afec026d331413f98e0cf3a17cf55e3
74dfe751246841ab93d0b18f01a52b28
b0d2afde58d747f980c74031752b5f28
RX(phi₂)
0b22481b782940f580ec82bad2fd4999--b0d2afde58d747f980c74031752b5f28
c23711efb4fe488ba298fdaac3b9cff3
RY(phi₅)
b0d2afde58d747f980c74031752b5f28--c23711efb4fe488ba298fdaac3b9cff3
e6bd5345656546919287480bf73da403
RX(phi₈)
c23711efb4fe488ba298fdaac3b9cff3--e6bd5345656546919287480bf73da403
313f08237fc44e96aaa5db503d9ccdbe
e6bd5345656546919287480bf73da403--313f08237fc44e96aaa5db503d9ccdbe
c6a89be1896e41bb809c9e3dd94c56ee
PHASE(phi_ent₁)
313f08237fc44e96aaa5db503d9ccdbe--c6a89be1896e41bb809c9e3dd94c56ee
c6a89be1896e41bb809c9e3dd94c56ee--9febf0850c3740cc8f6fbad3b40ee458
1ba3b1fb6a8843238cc8bcb4a10fa47f
RX(phi₁₁)
c6a89be1896e41bb809c9e3dd94c56ee--1ba3b1fb6a8843238cc8bcb4a10fa47f
3568df94e2fa4152b5b4f7123aa07128
RY(phi₁₄)
1ba3b1fb6a8843238cc8bcb4a10fa47f--3568df94e2fa4152b5b4f7123aa07128
4ee42115b57546d997bf65e1b10b0f06
RX(phi₁₇)
3568df94e2fa4152b5b4f7123aa07128--4ee42115b57546d997bf65e1b10b0f06
d623faf72e8c4e0cbda3c003077eaf6c
4ee42115b57546d997bf65e1b10b0f06--d623faf72e8c4e0cbda3c003077eaf6c
74e80f5a5c0e42c99350459576dcb44e
PHASE(phi_ent₃)
d623faf72e8c4e0cbda3c003077eaf6c--74e80f5a5c0e42c99350459576dcb44e
74e80f5a5c0e42c99350459576dcb44e--5a4d7bce4a614d828bcd772466231953
74e80f5a5c0e42c99350459576dcb44e--74dfe751246841ab93d0b18f01a52b28
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_a03575d68eb34103875fb8734877f05a
cluster_7495c59a485f4ff2b3521e4e7191d238
ffc34d511e384a1497c3b0f96c80ad44
0
4d936630b4ad40f9889df0c6109b168b
RX(theta₀)
ffc34d511e384a1497c3b0f96c80ad44--4d936630b4ad40f9889df0c6109b168b
201f146a27f346488750f7a5f9fc5428
1
36069adb4af1434a86956f5b457dd2c7
RY(theta₃)
4d936630b4ad40f9889df0c6109b168b--36069adb4af1434a86956f5b457dd2c7
3375b725a939431292a2b42e82375d05
RX(theta₆)
36069adb4af1434a86956f5b457dd2c7--3375b725a939431292a2b42e82375d05
814214d4387741728634345b221eb639
HamEvo
3375b725a939431292a2b42e82375d05--814214d4387741728634345b221eb639
25704641f608427ba3550d5349512add
RX(theta₉)
814214d4387741728634345b221eb639--25704641f608427ba3550d5349512add
9e4a6a301b44447cae5a7b895748f850
RY(theta₁₂)
25704641f608427ba3550d5349512add--9e4a6a301b44447cae5a7b895748f850
9a3a6eb8c38e448584cd3c735bd0aede
RX(theta₁₅)
9e4a6a301b44447cae5a7b895748f850--9a3a6eb8c38e448584cd3c735bd0aede
a426a0236ade4c2296ddaff272a44d71
HamEvo
9a3a6eb8c38e448584cd3c735bd0aede--a426a0236ade4c2296ddaff272a44d71
5d11d031209a4184b5d2493f8aa8d566
a426a0236ade4c2296ddaff272a44d71--5d11d031209a4184b5d2493f8aa8d566
5acf3a9d303247a2a4f49c091a4c89a3
dc4b59fe454448b0979110c95fbeab4f
RX(theta₁)
201f146a27f346488750f7a5f9fc5428--dc4b59fe454448b0979110c95fbeab4f
de618d1aa02944648778edfb45c87408
2
c5964b630a7f4011868e7d65e4c0af7c
RY(theta₄)
dc4b59fe454448b0979110c95fbeab4f--c5964b630a7f4011868e7d65e4c0af7c
37a9a9e429b04fa3828e71546952d900
RX(theta₇)
c5964b630a7f4011868e7d65e4c0af7c--37a9a9e429b04fa3828e71546952d900
33b540ee644e405b91fe1a3ce274870a
t = theta_t₀
37a9a9e429b04fa3828e71546952d900--33b540ee644e405b91fe1a3ce274870a
a8bf8dff0d944c0088704d352c0ab571
RX(theta₁₀)
33b540ee644e405b91fe1a3ce274870a--a8bf8dff0d944c0088704d352c0ab571
c5c3dd4cc63e4cd1b94e5b446d53a4ce
RY(theta₁₃)
a8bf8dff0d944c0088704d352c0ab571--c5c3dd4cc63e4cd1b94e5b446d53a4ce
8e041c02ca994b69be9c534541020768
RX(theta₁₆)
c5c3dd4cc63e4cd1b94e5b446d53a4ce--8e041c02ca994b69be9c534541020768
201d63223600479db508de6bb0ba741e
t = theta_t₁
8e041c02ca994b69be9c534541020768--201d63223600479db508de6bb0ba741e
201d63223600479db508de6bb0ba741e--5acf3a9d303247a2a4f49c091a4c89a3
0245305f78104e93a88b66c531447535
e04c175cd84e410bb918cc948d2cb646
RX(theta₂)
de618d1aa02944648778edfb45c87408--e04c175cd84e410bb918cc948d2cb646
24628763f6dd411784efcd46b2bf685b
RY(theta₅)
e04c175cd84e410bb918cc948d2cb646--24628763f6dd411784efcd46b2bf685b
723a2775652843edb111140fd932dd67
RX(theta₈)
24628763f6dd411784efcd46b2bf685b--723a2775652843edb111140fd932dd67
328229a2a76746cda60cd97acc61e7e8
723a2775652843edb111140fd932dd67--328229a2a76746cda60cd97acc61e7e8
9c9819ef123047ecbc3a384c9d1601f4
RX(theta₁₁)
328229a2a76746cda60cd97acc61e7e8--9c9819ef123047ecbc3a384c9d1601f4
7e66b5412c744fb88b5b85f806b5f6b6
RY(theta₁₄)
9c9819ef123047ecbc3a384c9d1601f4--7e66b5412c744fb88b5b85f806b5f6b6
bd2de560f6c447c78f125364194d4466
RX(theta₁₇)
7e66b5412c744fb88b5b85f806b5f6b6--bd2de560f6c447c78f125364194d4466
f2726bf340e74be085e9ad6fe0aae053
bd2de560f6c447c78f125364194d4466--f2726bf340e74be085e9ad6fe0aae053
f2726bf340e74be085e9ad6fe0aae053--0245305f78104e93a88b66c531447535
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_e2f29236b28d41b09cd9541fb46d9a5b
cluster_5600f86d9be14f219634b8e5db12273e
8b260aa0d59d41bbbdb5f087e9df362c
0
b76927ce7bf14731a3d5a93c3ddec9f5
RX(theta₀)
8b260aa0d59d41bbbdb5f087e9df362c--b76927ce7bf14731a3d5a93c3ddec9f5
a98ff604f6724f1f8c85ab90a34d60f8
1
17a4aa662fc5461e9fdd357e12f73ba2
RY(theta₆)
b76927ce7bf14731a3d5a93c3ddec9f5--17a4aa662fc5461e9fdd357e12f73ba2
ea762fc4bd184e8780cf91f0fbfd8567
RX(theta₁₂)
17a4aa662fc5461e9fdd357e12f73ba2--ea762fc4bd184e8780cf91f0fbfd8567
3f6e355b7ed34d9dbc43ced325da15ac
ea762fc4bd184e8780cf91f0fbfd8567--3f6e355b7ed34d9dbc43ced325da15ac
44575bcfca9c415a9dfdcbda143a3a47
RX(theta₁₈)
3f6e355b7ed34d9dbc43ced325da15ac--44575bcfca9c415a9dfdcbda143a3a47
b021169c62634812b7fd7221cd4aa03a
RY(theta₂₄)
44575bcfca9c415a9dfdcbda143a3a47--b021169c62634812b7fd7221cd4aa03a
fe8d5ed1207348fab40cb98ce90e5ad5
RX(theta₃₀)
b021169c62634812b7fd7221cd4aa03a--fe8d5ed1207348fab40cb98ce90e5ad5
fcb87da544b34092879c86d13bf976a9
fe8d5ed1207348fab40cb98ce90e5ad5--fcb87da544b34092879c86d13bf976a9
91e0623fd2ac42109330cf6be117ba97
fcb87da544b34092879c86d13bf976a9--91e0623fd2ac42109330cf6be117ba97
298c6432cb274359ab58080d020e7634
a40905a29cd1467c9f2af7d361aa8002
RX(theta₁)
a98ff604f6724f1f8c85ab90a34d60f8--a40905a29cd1467c9f2af7d361aa8002
6c1a7c5bcf8741e4b03523a1f2906724
2
5d94757eaed547ea941f6c586a7b84b9
RY(theta₇)
a40905a29cd1467c9f2af7d361aa8002--5d94757eaed547ea941f6c586a7b84b9
a88d678eb8db4d91a07783d196ff8c20
RX(theta₁₃)
5d94757eaed547ea941f6c586a7b84b9--a88d678eb8db4d91a07783d196ff8c20
24f8e7eb385c498391ceddd8d0c6ebc1
a88d678eb8db4d91a07783d196ff8c20--24f8e7eb385c498391ceddd8d0c6ebc1
c67d5e5fa792432fbbeaa668de137cf3
RX(theta₁₉)
24f8e7eb385c498391ceddd8d0c6ebc1--c67d5e5fa792432fbbeaa668de137cf3
1df88da395c7489d80e9089d167fe270
RY(theta₂₅)
c67d5e5fa792432fbbeaa668de137cf3--1df88da395c7489d80e9089d167fe270
ffab5a0654804df39c933da3ab722cee
RX(theta₃₁)
1df88da395c7489d80e9089d167fe270--ffab5a0654804df39c933da3ab722cee
78606383b89744578a5ff4753e421805
ffab5a0654804df39c933da3ab722cee--78606383b89744578a5ff4753e421805
78606383b89744578a5ff4753e421805--298c6432cb274359ab58080d020e7634
b36e7bae8e844dadab7a1a75b2a40578
e6a68e1d49aa47048aebf228a81a3183
RX(theta₂)
6c1a7c5bcf8741e4b03523a1f2906724--e6a68e1d49aa47048aebf228a81a3183
3637fcce41b04e0cb1ab7b4f5a2d0da3
3
b0cc61a7521c48d6989e67065ccf8a4a
RY(theta₈)
e6a68e1d49aa47048aebf228a81a3183--b0cc61a7521c48d6989e67065ccf8a4a
b898b26296c64a0f81479b81feb4f5bf
RX(theta₁₄)
b0cc61a7521c48d6989e67065ccf8a4a--b898b26296c64a0f81479b81feb4f5bf
f17e4a38b422477a9da778aac849b313
HamEvo
b898b26296c64a0f81479b81feb4f5bf--f17e4a38b422477a9da778aac849b313
5d0d3b31eb3c401ca6adb307b816d162
RX(theta₂₀)
f17e4a38b422477a9da778aac849b313--5d0d3b31eb3c401ca6adb307b816d162
57880ac707cc4b2f9cbe60970f499348
RY(theta₂₆)
5d0d3b31eb3c401ca6adb307b816d162--57880ac707cc4b2f9cbe60970f499348
66aa367e5b994acf98606831df564e98
RX(theta₃₂)
57880ac707cc4b2f9cbe60970f499348--66aa367e5b994acf98606831df564e98
87a65ebe65334b3984ecc7ae9d205e5f
HamEvo
66aa367e5b994acf98606831df564e98--87a65ebe65334b3984ecc7ae9d205e5f
87a65ebe65334b3984ecc7ae9d205e5f--b36e7bae8e844dadab7a1a75b2a40578
2f1d3d88d5244011baf4fd5426d78f2d
143cb68a4b2f480a8d38a1ecbd3c2589
RX(theta₃)
3637fcce41b04e0cb1ab7b4f5a2d0da3--143cb68a4b2f480a8d38a1ecbd3c2589
b830af8767044e3eb36a077baeb8fbe2
4
0f2308335df0451497a13b14f58b543f
RY(theta₉)
143cb68a4b2f480a8d38a1ecbd3c2589--0f2308335df0451497a13b14f58b543f
70730ba0495f432895f25d3464e59c4b
RX(theta₁₅)
0f2308335df0451497a13b14f58b543f--70730ba0495f432895f25d3464e59c4b
4cb4cae2772f43da8ec25f5f043dde18
t = theta_t₀
70730ba0495f432895f25d3464e59c4b--4cb4cae2772f43da8ec25f5f043dde18
9bd736e02bee4069b7b0965344aded8a
RX(theta₂₁)
4cb4cae2772f43da8ec25f5f043dde18--9bd736e02bee4069b7b0965344aded8a
65ddb118c7df4dbfbd2ccae488c2bf33
RY(theta₂₇)
9bd736e02bee4069b7b0965344aded8a--65ddb118c7df4dbfbd2ccae488c2bf33
6b23d54f112348dfb9d5360e0679f02c
RX(theta₃₃)
65ddb118c7df4dbfbd2ccae488c2bf33--6b23d54f112348dfb9d5360e0679f02c
564203ffa22947758d4e0290346cde18
t = theta_t₁
6b23d54f112348dfb9d5360e0679f02c--564203ffa22947758d4e0290346cde18
564203ffa22947758d4e0290346cde18--2f1d3d88d5244011baf4fd5426d78f2d
50911d8e06be41b796ddcb5fb4f166f6
2221cd32b9ee4d85861cba4e46568b02
RX(theta₄)
b830af8767044e3eb36a077baeb8fbe2--2221cd32b9ee4d85861cba4e46568b02
51ac9632b05748f585b761d409327bff
5
22752233e97c4bd9885ca50833c8e814
RY(theta₁₀)
2221cd32b9ee4d85861cba4e46568b02--22752233e97c4bd9885ca50833c8e814
ef4d8b97e2124945b03b2f06c5c61e24
RX(theta₁₆)
22752233e97c4bd9885ca50833c8e814--ef4d8b97e2124945b03b2f06c5c61e24
2b68fb1f222d4b889cb1e9b4c7b39a8e
ef4d8b97e2124945b03b2f06c5c61e24--2b68fb1f222d4b889cb1e9b4c7b39a8e
bb1a5630c6204a0bbc9084bd322793ae
RX(theta₂₂)
2b68fb1f222d4b889cb1e9b4c7b39a8e--bb1a5630c6204a0bbc9084bd322793ae
4000c72538f74b1a96075bd3b96faaa4
RY(theta₂₈)
bb1a5630c6204a0bbc9084bd322793ae--4000c72538f74b1a96075bd3b96faaa4
7f776411b9264fca8ef7341dd15149cf
RX(theta₃₄)
4000c72538f74b1a96075bd3b96faaa4--7f776411b9264fca8ef7341dd15149cf
70e53a10a02b4d28bababdb68d23ce72
7f776411b9264fca8ef7341dd15149cf--70e53a10a02b4d28bababdb68d23ce72
70e53a10a02b4d28bababdb68d23ce72--50911d8e06be41b796ddcb5fb4f166f6
286ede67f05043f98e393b9cc6b5febb
a86737a6097e4bb9a7c4ea370b17d95b
RX(theta₅)
51ac9632b05748f585b761d409327bff--a86737a6097e4bb9a7c4ea370b17d95b
0ad1d7748b5244fd9ecb3bc0cbf12a08
RY(theta₁₁)
a86737a6097e4bb9a7c4ea370b17d95b--0ad1d7748b5244fd9ecb3bc0cbf12a08
bae19369b1e14f5c8961de1708625fce
RX(theta₁₇)
0ad1d7748b5244fd9ecb3bc0cbf12a08--bae19369b1e14f5c8961de1708625fce
b38ae841a28d425b83b9c87c24d86fd0
bae19369b1e14f5c8961de1708625fce--b38ae841a28d425b83b9c87c24d86fd0
d576a8c7ae634471aa5bec65e90b9041
RX(theta₂₃)
b38ae841a28d425b83b9c87c24d86fd0--d576a8c7ae634471aa5bec65e90b9041
4a11afbda07f4a4a8866b3b431b64bf0
RY(theta₂₉)
d576a8c7ae634471aa5bec65e90b9041--4a11afbda07f4a4a8866b3b431b64bf0
ebae7238e3d4401aa3d6b79b29634e86
RX(theta₃₅)
4a11afbda07f4a4a8866b3b431b64bf0--ebae7238e3d4401aa3d6b79b29634e86
17c8a8a4777249959be40e6386042cc9
ebae7238e3d4401aa3d6b79b29634e86--17c8a8a4777249959be40e6386042cc9
17c8a8a4777249959be40e6386042cc9--286ede67f05043f98e393b9cc6b5febb
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_1de2ddfd76f849bea0236d61118075e9
BPMA-1
cluster_22264212f9114f95b69a5d3dbe5e9bfb
BPMA-0
bbbbe191186b404081db3349776bae77
0
161aabc2e85c44f293f5664e4d7297eb
RX(iia_α₀₀)
bbbbe191186b404081db3349776bae77--161aabc2e85c44f293f5664e4d7297eb
a849b93293d34d58a4eb6ede725c86a3
1
33233b2ea8d84547a319766a5f92e321
RY(iia_α₀₃)
161aabc2e85c44f293f5664e4d7297eb--33233b2ea8d84547a319766a5f92e321
96020b2b28f541a69638cc224cac287c
33233b2ea8d84547a319766a5f92e321--96020b2b28f541a69638cc224cac287c
08031dbdaa2244e68625ed60da9c3f06
96020b2b28f541a69638cc224cac287c--08031dbdaa2244e68625ed60da9c3f06
7f25e6fe654a40da8efc6ce1f4620867
RX(iia_γ₀₀)
08031dbdaa2244e68625ed60da9c3f06--7f25e6fe654a40da8efc6ce1f4620867
2284a8833b6d4cd7baece25a5f824c4e
7f25e6fe654a40da8efc6ce1f4620867--2284a8833b6d4cd7baece25a5f824c4e
cb4146bf6cf44977b9bbab33ef4a185b
2284a8833b6d4cd7baece25a5f824c4e--cb4146bf6cf44977b9bbab33ef4a185b
45f5be9563114cf6be084859888984e7
RY(iia_β₀₃)
cb4146bf6cf44977b9bbab33ef4a185b--45f5be9563114cf6be084859888984e7
383b9eef5db94505bdf200530c2f7a52
RX(iia_β₀₀)
45f5be9563114cf6be084859888984e7--383b9eef5db94505bdf200530c2f7a52
a245d2f991ad48b2ac80a10338095023
RX(iia_α₁₀)
383b9eef5db94505bdf200530c2f7a52--a245d2f991ad48b2ac80a10338095023
51f4c1c27be0441eac96a8fef5bdaf95
RY(iia_α₁₃)
a245d2f991ad48b2ac80a10338095023--51f4c1c27be0441eac96a8fef5bdaf95
70452e370356461180f1785330dbca79
51f4c1c27be0441eac96a8fef5bdaf95--70452e370356461180f1785330dbca79
823e177fe04a4398bc5045c5628ae05a
70452e370356461180f1785330dbca79--823e177fe04a4398bc5045c5628ae05a
fb85a87e4e144a52bbca74033c2c0b97
RX(iia_γ₁₀)
823e177fe04a4398bc5045c5628ae05a--fb85a87e4e144a52bbca74033c2c0b97
eeab318659444dc6be574f74227d1804
fb85a87e4e144a52bbca74033c2c0b97--eeab318659444dc6be574f74227d1804
6f48b00fa162424ea9f8ddbfdb54d1e8
eeab318659444dc6be574f74227d1804--6f48b00fa162424ea9f8ddbfdb54d1e8
6e6b159900774bcfb7af5571ab8727a6
RY(iia_β₁₃)
6f48b00fa162424ea9f8ddbfdb54d1e8--6e6b159900774bcfb7af5571ab8727a6
682e77817b34499297ac4812e0255bd5
RX(iia_β₁₀)
6e6b159900774bcfb7af5571ab8727a6--682e77817b34499297ac4812e0255bd5
ea30455df8aa4a12a3dadf5fe26cd5e5
682e77817b34499297ac4812e0255bd5--ea30455df8aa4a12a3dadf5fe26cd5e5
96ea105a735a4725a047885a88adef93
7f34124398914a1eac7be2ce1f713093
RX(iia_α₀₁)
a849b93293d34d58a4eb6ede725c86a3--7f34124398914a1eac7be2ce1f713093
09deb97cd99d44a7bb8a5e80cca0e3e8
2
e15e9223f4f647e997ac3c66c4a2ca20
RY(iia_α₀₄)
7f34124398914a1eac7be2ce1f713093--e15e9223f4f647e997ac3c66c4a2ca20
a044d57922bf4e1898481a6a8769603e
X
e15e9223f4f647e997ac3c66c4a2ca20--a044d57922bf4e1898481a6a8769603e
a044d57922bf4e1898481a6a8769603e--96020b2b28f541a69638cc224cac287c
da2f7678df11423eba8de5405f67c576
a044d57922bf4e1898481a6a8769603e--da2f7678df11423eba8de5405f67c576
ef259cc57c41414d8a73e8c834b762a9
RX(iia_γ₀₁)
da2f7678df11423eba8de5405f67c576--ef259cc57c41414d8a73e8c834b762a9
525fd183585a4453aac9c7603ef08eb8
ef259cc57c41414d8a73e8c834b762a9--525fd183585a4453aac9c7603ef08eb8
2ae49d6fbc424c26a2405026a5f5cd49
X
525fd183585a4453aac9c7603ef08eb8--2ae49d6fbc424c26a2405026a5f5cd49
2ae49d6fbc424c26a2405026a5f5cd49--cb4146bf6cf44977b9bbab33ef4a185b
aafc7f0902fa47e7a107c7b1065030a1
RY(iia_β₀₄)
2ae49d6fbc424c26a2405026a5f5cd49--aafc7f0902fa47e7a107c7b1065030a1
e06ec064131d49d789a4225350592bdc
RX(iia_β₀₁)
aafc7f0902fa47e7a107c7b1065030a1--e06ec064131d49d789a4225350592bdc
f80f261dbf93416fa7ddc7f8c4ba181b
RX(iia_α₁₁)
e06ec064131d49d789a4225350592bdc--f80f261dbf93416fa7ddc7f8c4ba181b
04e97a1a50424f63a9880f683ef57bf4
RY(iia_α₁₄)
f80f261dbf93416fa7ddc7f8c4ba181b--04e97a1a50424f63a9880f683ef57bf4
8f5fae3cb4e0432b867b46e207565c22
X
04e97a1a50424f63a9880f683ef57bf4--8f5fae3cb4e0432b867b46e207565c22
8f5fae3cb4e0432b867b46e207565c22--70452e370356461180f1785330dbca79
b4467c7a044c4c659190e31661e3bee3
8f5fae3cb4e0432b867b46e207565c22--b4467c7a044c4c659190e31661e3bee3
16d90770b69442739c40f8d8254d0b6d
RX(iia_γ₁₁)
b4467c7a044c4c659190e31661e3bee3--16d90770b69442739c40f8d8254d0b6d
55ef3c362b8c4f2e8aeb6418ed00b996
16d90770b69442739c40f8d8254d0b6d--55ef3c362b8c4f2e8aeb6418ed00b996
fe467a60f7474c56b2ef72dabf6c9e53
X
55ef3c362b8c4f2e8aeb6418ed00b996--fe467a60f7474c56b2ef72dabf6c9e53
fe467a60f7474c56b2ef72dabf6c9e53--6f48b00fa162424ea9f8ddbfdb54d1e8
812aaa09bd5145c18c4980e2d67a896d
RY(iia_β₁₄)
fe467a60f7474c56b2ef72dabf6c9e53--812aaa09bd5145c18c4980e2d67a896d
68a4b684a5c7492ea54250c1555918d7
RX(iia_β₁₁)
812aaa09bd5145c18c4980e2d67a896d--68a4b684a5c7492ea54250c1555918d7
68a4b684a5c7492ea54250c1555918d7--96ea105a735a4725a047885a88adef93
ce9ef8ab9cc74d749098fd2262f373b4
38f8f2d86d4741a3813f5d9b14452953
RX(iia_α₀₂)
09deb97cd99d44a7bb8a5e80cca0e3e8--38f8f2d86d4741a3813f5d9b14452953
6d0a76fcd59d4dcfaf6041db4fa7228f
RY(iia_α₀₅)
38f8f2d86d4741a3813f5d9b14452953--6d0a76fcd59d4dcfaf6041db4fa7228f
aef16c96c0dd423f85faf8d10088b922
6d0a76fcd59d4dcfaf6041db4fa7228f--aef16c96c0dd423f85faf8d10088b922
9803cf9401f14f299b87ac2553afdb83
X
aef16c96c0dd423f85faf8d10088b922--9803cf9401f14f299b87ac2553afdb83
9803cf9401f14f299b87ac2553afdb83--da2f7678df11423eba8de5405f67c576
427ec2fff629477096eeecf95d39bda7
RX(iia_γ₀₂)
9803cf9401f14f299b87ac2553afdb83--427ec2fff629477096eeecf95d39bda7
8edba5f906c54426a16b5ed656ae8be9
X
427ec2fff629477096eeecf95d39bda7--8edba5f906c54426a16b5ed656ae8be9
8edba5f906c54426a16b5ed656ae8be9--525fd183585a4453aac9c7603ef08eb8
a2fbb5ce8e1b46c482fcd76a26ac526b
8edba5f906c54426a16b5ed656ae8be9--a2fbb5ce8e1b46c482fcd76a26ac526b
892ba3dae2e549dbbbb2b808c344db8b
RY(iia_β₀₅)
a2fbb5ce8e1b46c482fcd76a26ac526b--892ba3dae2e549dbbbb2b808c344db8b
a249722efeee402c9e03b3c6afbb86ec
RX(iia_β₀₂)
892ba3dae2e549dbbbb2b808c344db8b--a249722efeee402c9e03b3c6afbb86ec
651b0c8037f8482db9b6768713a9de95
RX(iia_α₁₂)
a249722efeee402c9e03b3c6afbb86ec--651b0c8037f8482db9b6768713a9de95
1d7284c93b254514a597ed4fcd79ef38
RY(iia_α₁₅)
651b0c8037f8482db9b6768713a9de95--1d7284c93b254514a597ed4fcd79ef38
3c24f39f760f469ca24a0217ea41a75c
1d7284c93b254514a597ed4fcd79ef38--3c24f39f760f469ca24a0217ea41a75c
670c7ea1024c4ad9970766d491843952
X
3c24f39f760f469ca24a0217ea41a75c--670c7ea1024c4ad9970766d491843952
670c7ea1024c4ad9970766d491843952--b4467c7a044c4c659190e31661e3bee3
9cbcaa43b1234c3eb9c980d31fc8328f
RX(iia_γ₁₂)
670c7ea1024c4ad9970766d491843952--9cbcaa43b1234c3eb9c980d31fc8328f
c3522fc33ae249258ce4d8475091f320
X
9cbcaa43b1234c3eb9c980d31fc8328f--c3522fc33ae249258ce4d8475091f320
c3522fc33ae249258ce4d8475091f320--55ef3c362b8c4f2e8aeb6418ed00b996
7c8c350a83b94daeab6191075d7f257b
c3522fc33ae249258ce4d8475091f320--7c8c350a83b94daeab6191075d7f257b
ab99dab9bc8b45b9ad62cbe6a7b5fbfe
RY(iia_β₁₅)
7c8c350a83b94daeab6191075d7f257b--ab99dab9bc8b45b9ad62cbe6a7b5fbfe
8213dbf1f8dc49bba0f69d43a5813bf9
RX(iia_β₁₂)
ab99dab9bc8b45b9ad62cbe6a7b5fbfe--8213dbf1f8dc49bba0f69d43a5813bf9
8213dbf1f8dc49bba0f69d43a5813bf9--ce9ef8ab9cc74d749098fd2262f373b4