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_d164f77e6268451985386f0700e1f6ee
Constant Chebyshev FM
cluster_bbd85d04461f42b5a766c26676df9c46
Constant Fourier FM
e652cb02251546e59728c36e3fdcf5de
0
3083b54d6206413dade27779f4863c08
RX(phi)
e652cb02251546e59728c36e3fdcf5de--3083b54d6206413dade27779f4863c08
e062e4a41ea8469d9ecc866c27d79738
1
e6e1869c86ad4201a63e7c069bc6f272
RX(acos(phi))
3083b54d6206413dade27779f4863c08--e6e1869c86ad4201a63e7c069bc6f272
3c0d4c38b0394a3fa8287057f699a14d
e6e1869c86ad4201a63e7c069bc6f272--3c0d4c38b0394a3fa8287057f699a14d
ea4a7dd5bd21428484c8a1a1f53fe108
08070c2aa67141b9902bb09cfcdaa1d5
RX(phi)
e062e4a41ea8469d9ecc866c27d79738--08070c2aa67141b9902bb09cfcdaa1d5
9425f3f9e7b44d9da944749a3949d9a6
2
a2c58b84c8394fcb8f03587e85981e6c
RX(acos(phi))
08070c2aa67141b9902bb09cfcdaa1d5--a2c58b84c8394fcb8f03587e85981e6c
a2c58b84c8394fcb8f03587e85981e6c--ea4a7dd5bd21428484c8a1a1f53fe108
f0e34ca6ef114cfd83aaaaeb2c8b59fd
dbef91e6743c47c49ab27aa8af1b5690
RX(phi)
9425f3f9e7b44d9da944749a3949d9a6--dbef91e6743c47c49ab27aa8af1b5690
2a8ad882de5144b5a1ef621005028a46
RX(acos(phi))
dbef91e6743c47c49ab27aa8af1b5690--2a8ad882de5144b5a1ef621005028a46
2a8ad882de5144b5a1ef621005028a46--f0e34ca6ef114cfd83aaaaeb2c8b59fd
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_999e410a900c40698aad64766a5e690c
Constant <function custom_fn at 0x7f815936c430> FM
cluster_6ec05e7cb5d94e64b97fa869e7cf4256
Constant asin FM
814551105abb42bbaee843044fe27173
0
df0765f94f324f4e80cfd08b81755633
RX(asin(phi))
814551105abb42bbaee843044fe27173--df0765f94f324f4e80cfd08b81755633
fb45bf6faa8d4e02b53cd307213d4e47
1
19d78e5b1114433e8fb27377de20440c
RX(phi**2 + asin(phi))
df0765f94f324f4e80cfd08b81755633--19d78e5b1114433e8fb27377de20440c
df810461dc4343b0827413676f05212b
19d78e5b1114433e8fb27377de20440c--df810461dc4343b0827413676f05212b
04796345cc02454cbda1d0a499a19b7b
1ed2d03d660041e4808139a17c8e58fa
RX(asin(phi))
fb45bf6faa8d4e02b53cd307213d4e47--1ed2d03d660041e4808139a17c8e58fa
2abbbbccfb624199be6a335792f52650
2
5466887317044a8b90ba32cbff77b903
RX(phi**2 + asin(phi))
1ed2d03d660041e4808139a17c8e58fa--5466887317044a8b90ba32cbff77b903
5466887317044a8b90ba32cbff77b903--04796345cc02454cbda1d0a499a19b7b
39e7d6220c0442f4b3908bbe283bdb76
853c5df493074c6598015b65139f9495
RX(asin(phi))
2abbbbccfb624199be6a335792f52650--853c5df493074c6598015b65139f9495
54ffcbaf0a334f248c03ad797426086a
RX(phi**2 + asin(phi))
853c5df493074c6598015b65139f9495--54ffcbaf0a334f248c03ad797426086a
54ffcbaf0a334f248c03ad797426086a--39e7d6220c0442f4b3908bbe283bdb76
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_5bae8a25e09a45efb9b7adbf0ccfc6bb
Exponential Fourier FM
cluster_184ace91209443af97de06c5399f43bb
Constant Fourier FM
cluster_65da035f64cc4c30bacb027741230fcb
Tower Fourier FM
474272789dbf467496ffa5b185fc5ba9
0
5b7a6beb6b29467592c026875782e56b
RX(phi)
474272789dbf467496ffa5b185fc5ba9--5b7a6beb6b29467592c026875782e56b
05fe295a08b14345aa1a8e489300b4a2
1
1c6825e03f9f4ec7a6e5682086ca86a7
RX(1.0*phi)
5b7a6beb6b29467592c026875782e56b--1c6825e03f9f4ec7a6e5682086ca86a7
76845bbc47d941a6b4e69caa3c6d148b
RX(1.0*phi)
1c6825e03f9f4ec7a6e5682086ca86a7--76845bbc47d941a6b4e69caa3c6d148b
3a2f84ce46304bd5be13ce95d7542d35
76845bbc47d941a6b4e69caa3c6d148b--3a2f84ce46304bd5be13ce95d7542d35
5b2ad77078314d9e8b03e81b9e1ac935
23c71e77b46c4041a3f952fca19ee6ab
RX(phi)
05fe295a08b14345aa1a8e489300b4a2--23c71e77b46c4041a3f952fca19ee6ab
1d949e3bc5eb4a4a87b3d21e8b862adc
2
0be2ed8c453d49e6aa49bd30faae8942
RX(2.0*phi)
23c71e77b46c4041a3f952fca19ee6ab--0be2ed8c453d49e6aa49bd30faae8942
d4a3206744cb4e2db4dd99e08d2940f1
RX(2.0*phi)
0be2ed8c453d49e6aa49bd30faae8942--d4a3206744cb4e2db4dd99e08d2940f1
d4a3206744cb4e2db4dd99e08d2940f1--5b2ad77078314d9e8b03e81b9e1ac935
8d3e3779aafa4d17b384a15dee2776ac
e5bbc8627ce14fa5b33d94c51382c79d
RX(phi)
1d949e3bc5eb4a4a87b3d21e8b862adc--e5bbc8627ce14fa5b33d94c51382c79d
6da3bb5c927848e3aeb5344875c2a003
3
9be5b62d879b49348da6fd7994714337
RX(3.0*phi)
e5bbc8627ce14fa5b33d94c51382c79d--9be5b62d879b49348da6fd7994714337
eec16c10f7b44b569eb653d88e65881e
RX(4.0*phi)
9be5b62d879b49348da6fd7994714337--eec16c10f7b44b569eb653d88e65881e
eec16c10f7b44b569eb653d88e65881e--8d3e3779aafa4d17b384a15dee2776ac
71375855ad5244c58d07c023a513721d
ef947ecb6be7486fb360d8a00be74d6d
RX(phi)
6da3bb5c927848e3aeb5344875c2a003--ef947ecb6be7486fb360d8a00be74d6d
1077d58498be40e09eb361b83b34201c
4
b5ae839d15074354a0a2a5f3140538ac
RX(4.0*phi)
ef947ecb6be7486fb360d8a00be74d6d--b5ae839d15074354a0a2a5f3140538ac
e2c968aa146049bb98e6237645f2af18
RX(8.0*phi)
b5ae839d15074354a0a2a5f3140538ac--e2c968aa146049bb98e6237645f2af18
e2c968aa146049bb98e6237645f2af18--71375855ad5244c58d07c023a513721d
af579d605af54fafb2643f3304609452
42c61f1915ad43dfb6c97dd929c257b6
RX(phi)
1077d58498be40e09eb361b83b34201c--42c61f1915ad43dfb6c97dd929c257b6
27c4a2850ee6454b86afc93d35eb329a
RX(5.0*phi)
42c61f1915ad43dfb6c97dd929c257b6--27c4a2850ee6454b86afc93d35eb329a
9efde9b521484e949faac301b2220999
RX(16.0*phi)
27c4a2850ee6454b86afc93d35eb329a--9efde9b521484e949faac301b2220999
9efde9b521484e949faac301b2220999--af579d605af54fafb2643f3304609452
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
06a7b34e1dd44600a211ab4a7f8a5846
0
9e8155c20ae54a6aa017daf1aa4b9f8f
RX(1.0*acos(phi))
06a7b34e1dd44600a211ab4a7f8a5846--9e8155c20ae54a6aa017daf1aa4b9f8f
52e2b48da27746238fc864fd1fea1988
1
cd4626d50d8941c481942b5d31bfe356
9e8155c20ae54a6aa017daf1aa4b9f8f--cd4626d50d8941c481942b5d31bfe356
fe4fcf3b51054b92840333e100c0cd44
3f92bf82673a48e4ac1404dfad9999ab
RX(1.414*acos(phi))
52e2b48da27746238fc864fd1fea1988--3f92bf82673a48e4ac1404dfad9999ab
e6fd11846757422d893d7b4e9c629540
2
3f92bf82673a48e4ac1404dfad9999ab--fe4fcf3b51054b92840333e100c0cd44
375d0dd18afa4d9d911dcb577f1ff9cc
3e01e6c95f9d45a787896f848d7afd83
RX(1.732*acos(phi))
e6fd11846757422d893d7b4e9c629540--3e01e6c95f9d45a787896f848d7afd83
529afea665e842758c728dd7b2629259
3
3e01e6c95f9d45a787896f848d7afd83--375d0dd18afa4d9d911dcb577f1ff9cc
b1671dcd90e84510888b1002e8cbfc78
48e107a59fc64a238093fb845e1f0fa1
RX(2.0*acos(phi))
529afea665e842758c728dd7b2629259--48e107a59fc64a238093fb845e1f0fa1
04f13a7f1ed04497ad1b5d56568fbb1e
4
48e107a59fc64a238093fb845e1f0fa1--b1671dcd90e84510888b1002e8cbfc78
47d92959b6e2465b95a6e66719c76c56
a7ac2e75e91643488491878ba1c9af2f
RX(2.236*acos(phi))
04f13a7f1ed04497ad1b5d56568fbb1e--a7ac2e75e91643488491878ba1c9af2f
a7ac2e75e91643488491878ba1c9af2f--47d92959b6e2465b95a6e66719c76c56
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
cacf773dd3944c53858eabc904408ac0
0
0876aade797346f39923dfd9ba86ff54
RX(1.0*phi*w₀)
cacf773dd3944c53858eabc904408ac0--0876aade797346f39923dfd9ba86ff54
33562748217e487f85090797fd592fb7
1
355d198d63af4d1abd87b510dd3e9007
0876aade797346f39923dfd9ba86ff54--355d198d63af4d1abd87b510dd3e9007
b5579fc337db45cabf238f5dacd274a2
76424cc8efe246b6be931948be40aca8
RX(2.0*phi*w₁)
33562748217e487f85090797fd592fb7--76424cc8efe246b6be931948be40aca8
f3374448a0324fea820ab9684a0a349a
2
76424cc8efe246b6be931948be40aca8--b5579fc337db45cabf238f5dacd274a2
79fe502fe30e43b391345574ed8bd422
dfd4e2b84c5047a3a7d1737d9b4539cb
RX(4.0*phi*w₂)
f3374448a0324fea820ab9684a0a349a--dfd4e2b84c5047a3a7d1737d9b4539cb
0126582997174e0499387160a0090f41
3
dfd4e2b84c5047a3a7d1737d9b4539cb--79fe502fe30e43b391345574ed8bd422
ebb2df1c8d2f47b6ac4f8d3ec546d7a1
d3476b3a487549dda6da4ac6b3e21e59
RX(8.0*phi*w₃)
0126582997174e0499387160a0090f41--d3476b3a487549dda6da4ac6b3e21e59
de8691aecd834e0fb74a3a8471cf4dfe
4
d3476b3a487549dda6da4ac6b3e21e59--ebb2df1c8d2f47b6ac4f8d3ec546d7a1
008dba9276bb414087991b46f1ab4beb
58f1c6bf173d4a55b4661d677911fc38
RX(16.0*phi*w₄)
de8691aecd834e0fb74a3a8471cf4dfe--58f1c6bf173d4a55b4661d677911fc38
58f1c6bf173d4a55b4661d677911fc38--008dba9276bb414087991b46f1ab4beb
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
c185553aee014f978aed234908dde394
0
885b3db8834d453bac19e8a53e8321b6
RY(80.0*acos(w₄*(0.667*x + 1.667)))
c185553aee014f978aed234908dde394--885b3db8834d453bac19e8a53e8321b6
f6d7a5b6b64b412ba634858b2f19fe94
1
76e22c06110f432c9d14f5ee7d7fed26
885b3db8834d453bac19e8a53e8321b6--76e22c06110f432c9d14f5ee7d7fed26
a943cbf0ab0e4925a2bfed2ed3e883dd
5b441faa358d47d4b4040ea1e7113a88
RY(40.0*acos(w₃*(0.667*x + 1.667)))
f6d7a5b6b64b412ba634858b2f19fe94--5b441faa358d47d4b4040ea1e7113a88
9e5abf302a8e40fa9f76807f1b16d63a
2
5b441faa358d47d4b4040ea1e7113a88--a943cbf0ab0e4925a2bfed2ed3e883dd
f3cf118b39304e4cbe00a5115b65dd89
6498a0ee8ac84bc9865f12e20155ad25
RY(20.0*acos(w₂*(0.667*x + 1.667)))
9e5abf302a8e40fa9f76807f1b16d63a--6498a0ee8ac84bc9865f12e20155ad25
5c38f0b1d1c446ad98abecb59b59a41b
3
6498a0ee8ac84bc9865f12e20155ad25--f3cf118b39304e4cbe00a5115b65dd89
77623452b4ee462c93ba472cefb9aa91
bf0db1e5e81e479bbf9c7814e1ce9fcb
RY(10.0*acos(w₁*(0.667*x + 1.667)))
5c38f0b1d1c446ad98abecb59b59a41b--bf0db1e5e81e479bbf9c7814e1ce9fcb
145bd20b05f0457b8ba5e7ba61930118
4
bf0db1e5e81e479bbf9c7814e1ce9fcb--77623452b4ee462c93ba472cefb9aa91
fddc4e9e9cfb452ca518d537f7d223c6
1e556ae8e9414ccb9bc2c1836b088a35
RY(5.0*acos(w₀*(0.667*x + 1.667)))
145bd20b05f0457b8ba5e7ba61930118--1e556ae8e9414ccb9bc2c1836b088a35
1e556ae8e9414ccb9bc2c1836b088a35--fddc4e9e9cfb452ca518d537f7d223c6
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
f216bb1cf13a4ab8bb246dc09f4dab7d
0
0f084dcc58fd40e0b307f614c89562e5
RX(theta₀)
f216bb1cf13a4ab8bb246dc09f4dab7d--0f084dcc58fd40e0b307f614c89562e5
90ca9f6a44494e428dabdcdbef60cd62
1
bf09afb0052f43e0a6650358f2c9dba1
RY(theta₃)
0f084dcc58fd40e0b307f614c89562e5--bf09afb0052f43e0a6650358f2c9dba1
6e901d3027f14e78a9f489a7c3ecc2d4
RX(theta₆)
bf09afb0052f43e0a6650358f2c9dba1--6e901d3027f14e78a9f489a7c3ecc2d4
f9b02f4024264b06b4defb699c89d198
6e901d3027f14e78a9f489a7c3ecc2d4--f9b02f4024264b06b4defb699c89d198
adcd69d591704530866c20b874843157
f9b02f4024264b06b4defb699c89d198--adcd69d591704530866c20b874843157
999548ac1fa74d8aba14dcd6d57f0b89
RX(theta₉)
adcd69d591704530866c20b874843157--999548ac1fa74d8aba14dcd6d57f0b89
9d21af9c794047058b2624cdd9d11bc3
RY(theta₁₂)
999548ac1fa74d8aba14dcd6d57f0b89--9d21af9c794047058b2624cdd9d11bc3
524c7434444e497eaac6748c17838966
RX(theta₁₅)
9d21af9c794047058b2624cdd9d11bc3--524c7434444e497eaac6748c17838966
d45bb094f9f94fc19bd7dd880279e5fe
524c7434444e497eaac6748c17838966--d45bb094f9f94fc19bd7dd880279e5fe
a8f5e6fc3fe8469c919593208a82a42a
d45bb094f9f94fc19bd7dd880279e5fe--a8f5e6fc3fe8469c919593208a82a42a
0509f970c3ae4ddabcd95f90c5e6bbfd
a8f5e6fc3fe8469c919593208a82a42a--0509f970c3ae4ddabcd95f90c5e6bbfd
79c1afb306b74f0db83d91af4183459b
153796fe5df14fe4a6cf1a7539176335
RX(theta₁)
90ca9f6a44494e428dabdcdbef60cd62--153796fe5df14fe4a6cf1a7539176335
3b0e07bf4b934378b4690fa6685f3136
2
ccca1589629a4b189453bfc00c46c57d
RY(theta₄)
153796fe5df14fe4a6cf1a7539176335--ccca1589629a4b189453bfc00c46c57d
1a1cf859e3704962b9ed5ad1826971a7
RX(theta₇)
ccca1589629a4b189453bfc00c46c57d--1a1cf859e3704962b9ed5ad1826971a7
bee7fed56f0644848f7ba3749b68ca9b
X
1a1cf859e3704962b9ed5ad1826971a7--bee7fed56f0644848f7ba3749b68ca9b
bee7fed56f0644848f7ba3749b68ca9b--f9b02f4024264b06b4defb699c89d198
0047421e7dd64000b9dc1027e2f809da
bee7fed56f0644848f7ba3749b68ca9b--0047421e7dd64000b9dc1027e2f809da
9a21918948394fb5b102c2fbebf3fd34
RX(theta₁₀)
0047421e7dd64000b9dc1027e2f809da--9a21918948394fb5b102c2fbebf3fd34
6a64802e83a94939bab14aead486ece1
RY(theta₁₃)
9a21918948394fb5b102c2fbebf3fd34--6a64802e83a94939bab14aead486ece1
8b1d5e299f234f1fabb56b386d8d0507
RX(theta₁₆)
6a64802e83a94939bab14aead486ece1--8b1d5e299f234f1fabb56b386d8d0507
4f671b4f41fd422caa78e908b7dae8b6
X
8b1d5e299f234f1fabb56b386d8d0507--4f671b4f41fd422caa78e908b7dae8b6
4f671b4f41fd422caa78e908b7dae8b6--d45bb094f9f94fc19bd7dd880279e5fe
b5823ee61b22467d9ecc79af9de0cc33
4f671b4f41fd422caa78e908b7dae8b6--b5823ee61b22467d9ecc79af9de0cc33
b5823ee61b22467d9ecc79af9de0cc33--79c1afb306b74f0db83d91af4183459b
0ff759f980da492cb074d4ce9f2ac56f
5cadb3d97e4b4ce09cd9f1a512dd9b02
RX(theta₂)
3b0e07bf4b934378b4690fa6685f3136--5cadb3d97e4b4ce09cd9f1a512dd9b02
64710232422242b4ad8e323a9efced26
RY(theta₅)
5cadb3d97e4b4ce09cd9f1a512dd9b02--64710232422242b4ad8e323a9efced26
1347634baa8f494db96a984fc55f6e1e
RX(theta₈)
64710232422242b4ad8e323a9efced26--1347634baa8f494db96a984fc55f6e1e
212b656366d842a2b8da53cf48b15a1e
1347634baa8f494db96a984fc55f6e1e--212b656366d842a2b8da53cf48b15a1e
b3d08d81aef2460ca5f137a55f05791c
X
212b656366d842a2b8da53cf48b15a1e--b3d08d81aef2460ca5f137a55f05791c
b3d08d81aef2460ca5f137a55f05791c--0047421e7dd64000b9dc1027e2f809da
998e39717fe648f3911acbc060ec7cb0
RX(theta₁₁)
b3d08d81aef2460ca5f137a55f05791c--998e39717fe648f3911acbc060ec7cb0
6b63ccaf04d447dba046980381e361cb
RY(theta₁₄)
998e39717fe648f3911acbc060ec7cb0--6b63ccaf04d447dba046980381e361cb
1592c2f91ca64a4db802e8985cb6f33a
RX(theta₁₇)
6b63ccaf04d447dba046980381e361cb--1592c2f91ca64a4db802e8985cb6f33a
bd22594e1e4643e4b44ebc1d6c6ca59a
1592c2f91ca64a4db802e8985cb6f33a--bd22594e1e4643e4b44ebc1d6c6ca59a
4b82e2ee23df4bf5939f79f03daf84ff
X
bd22594e1e4643e4b44ebc1d6c6ca59a--4b82e2ee23df4bf5939f79f03daf84ff
4b82e2ee23df4bf5939f79f03daf84ff--b5823ee61b22467d9ecc79af9de0cc33
4b82e2ee23df4bf5939f79f03daf84ff--0ff759f980da492cb074d4ce9f2ac56f
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
132790f2ca054aeab70e3e7e0d9da034
0
23493b1e49ad46e89a44e6cda932248c
RX(phi₀)
132790f2ca054aeab70e3e7e0d9da034--23493b1e49ad46e89a44e6cda932248c
a3f3d97b29194a59b8cdf8ac008cd960
1
5cbb2991dc6b48a8baa066b704c7f0b8
RY(phi₃)
23493b1e49ad46e89a44e6cda932248c--5cbb2991dc6b48a8baa066b704c7f0b8
568546f1a89a43cfbd62b4416586a744
RX(phi₆)
5cbb2991dc6b48a8baa066b704c7f0b8--568546f1a89a43cfbd62b4416586a744
e53f61e2975047e5a5652dff7423d4d8
568546f1a89a43cfbd62b4416586a744--e53f61e2975047e5a5652dff7423d4d8
136393cb5c23423ebf52c11932c89444
e53f61e2975047e5a5652dff7423d4d8--136393cb5c23423ebf52c11932c89444
aff4d189e56845669137a096580e8fe8
RX(phi₉)
136393cb5c23423ebf52c11932c89444--aff4d189e56845669137a096580e8fe8
c22e0b63b3c84722b3a6393d5755be24
RY(phi₁₂)
aff4d189e56845669137a096580e8fe8--c22e0b63b3c84722b3a6393d5755be24
385ad0886089421a973e6b9c7d1d42b1
RX(phi₁₅)
c22e0b63b3c84722b3a6393d5755be24--385ad0886089421a973e6b9c7d1d42b1
2cde1bdad94d485db6dfd7f6f597eaf0
385ad0886089421a973e6b9c7d1d42b1--2cde1bdad94d485db6dfd7f6f597eaf0
4066e94a95954fe5852650ecbcba539e
2cde1bdad94d485db6dfd7f6f597eaf0--4066e94a95954fe5852650ecbcba539e
0cda8776cd764b8781109ea474ed6e46
4066e94a95954fe5852650ecbcba539e--0cda8776cd764b8781109ea474ed6e46
5775b5e664d649a0b9c5bf5d9fa3d437
e677cd78244c43698c6173dae1e2f64e
RX(phi₁)
a3f3d97b29194a59b8cdf8ac008cd960--e677cd78244c43698c6173dae1e2f64e
c23fa3de07ae4c459edef11ab4a03d8f
2
0d0600d5f7724e07ad39e3f1f53dbe63
RY(phi₄)
e677cd78244c43698c6173dae1e2f64e--0d0600d5f7724e07ad39e3f1f53dbe63
0f06856a330b48dca0c68a8a14ca2330
RX(phi₇)
0d0600d5f7724e07ad39e3f1f53dbe63--0f06856a330b48dca0c68a8a14ca2330
33323ef5a1894644bbb7ad5f74c6f453
PHASE(phi_ent₀)
0f06856a330b48dca0c68a8a14ca2330--33323ef5a1894644bbb7ad5f74c6f453
33323ef5a1894644bbb7ad5f74c6f453--e53f61e2975047e5a5652dff7423d4d8
1798c28296e744809e45eee125f5864f
33323ef5a1894644bbb7ad5f74c6f453--1798c28296e744809e45eee125f5864f
e0fdf855e7e544e4b6e630a34de63f90
RX(phi₁₀)
1798c28296e744809e45eee125f5864f--e0fdf855e7e544e4b6e630a34de63f90
5a5355f643d946ee98a56c7a2b6a0283
RY(phi₁₃)
e0fdf855e7e544e4b6e630a34de63f90--5a5355f643d946ee98a56c7a2b6a0283
cb91dfa610294fb795ee6f37997c3148
RX(phi₁₆)
5a5355f643d946ee98a56c7a2b6a0283--cb91dfa610294fb795ee6f37997c3148
ddc7b2329f104ae68eb3fb198d1847d5
PHASE(phi_ent₂)
cb91dfa610294fb795ee6f37997c3148--ddc7b2329f104ae68eb3fb198d1847d5
ddc7b2329f104ae68eb3fb198d1847d5--2cde1bdad94d485db6dfd7f6f597eaf0
30cfa347f7f44a4eab93b3c590e34fc6
ddc7b2329f104ae68eb3fb198d1847d5--30cfa347f7f44a4eab93b3c590e34fc6
30cfa347f7f44a4eab93b3c590e34fc6--5775b5e664d649a0b9c5bf5d9fa3d437
af56b4cc6497432383e447fa7b6f143a
c67bb102e43e4294af63c158456d6a7b
RX(phi₂)
c23fa3de07ae4c459edef11ab4a03d8f--c67bb102e43e4294af63c158456d6a7b
c0983f0a0c7f4c3cbbf15f53dcbc89b5
RY(phi₅)
c67bb102e43e4294af63c158456d6a7b--c0983f0a0c7f4c3cbbf15f53dcbc89b5
2fc0af0d16b54008aadfcc36a9ad4882
RX(phi₈)
c0983f0a0c7f4c3cbbf15f53dcbc89b5--2fc0af0d16b54008aadfcc36a9ad4882
5c1c7d70156746ef82d888528ce13f95
2fc0af0d16b54008aadfcc36a9ad4882--5c1c7d70156746ef82d888528ce13f95
061443d0008c4d07ad4e3feb245a2dba
PHASE(phi_ent₁)
5c1c7d70156746ef82d888528ce13f95--061443d0008c4d07ad4e3feb245a2dba
061443d0008c4d07ad4e3feb245a2dba--1798c28296e744809e45eee125f5864f
6ac9123b5da24c508bcbf12cacb6dfac
RX(phi₁₁)
061443d0008c4d07ad4e3feb245a2dba--6ac9123b5da24c508bcbf12cacb6dfac
0c99173bd34048369c59faee42500039
RY(phi₁₄)
6ac9123b5da24c508bcbf12cacb6dfac--0c99173bd34048369c59faee42500039
aa447066daea453dba2e8a8a9ff193c0
RX(phi₁₇)
0c99173bd34048369c59faee42500039--aa447066daea453dba2e8a8a9ff193c0
06ba8c21a30d4796a86cd4d03498bdd8
aa447066daea453dba2e8a8a9ff193c0--06ba8c21a30d4796a86cd4d03498bdd8
d601657444544069a8a0aebb64a79c7c
PHASE(phi_ent₃)
06ba8c21a30d4796a86cd4d03498bdd8--d601657444544069a8a0aebb64a79c7c
d601657444544069a8a0aebb64a79c7c--30cfa347f7f44a4eab93b3c590e34fc6
d601657444544069a8a0aebb64a79c7c--af56b4cc6497432383e447fa7b6f143a
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_32a2dea361eb4a2f8a4fdcaf3cd0b25d
cluster_1d73a078015a44499e21f476532d7797
e84e3eeb35a443b3a9651a955b25b879
0
3e44a2fb941c4dcf800591db6d1cf4f1
RX(theta₀)
e84e3eeb35a443b3a9651a955b25b879--3e44a2fb941c4dcf800591db6d1cf4f1
0cf6dbbeda1d4821a9b3c34ce6f3cf7c
1
afc913bac5a04c8199ca034267efa3ba
RY(theta₃)
3e44a2fb941c4dcf800591db6d1cf4f1--afc913bac5a04c8199ca034267efa3ba
60be0d5b6ac64bb1b10e59261dcee30e
RX(theta₆)
afc913bac5a04c8199ca034267efa3ba--60be0d5b6ac64bb1b10e59261dcee30e
aaa4a27b14e845a19376d63736ffdfe8
HamEvo
60be0d5b6ac64bb1b10e59261dcee30e--aaa4a27b14e845a19376d63736ffdfe8
15c8a4be4d5540f682ae10ab8a3bd4df
RX(theta₉)
aaa4a27b14e845a19376d63736ffdfe8--15c8a4be4d5540f682ae10ab8a3bd4df
737c969965f3439487f2dd5748940ffe
RY(theta₁₂)
15c8a4be4d5540f682ae10ab8a3bd4df--737c969965f3439487f2dd5748940ffe
1180fafd4b9c4e43b2aa36a59fc1e919
RX(theta₁₅)
737c969965f3439487f2dd5748940ffe--1180fafd4b9c4e43b2aa36a59fc1e919
4776bb384e7947dda120095103c2a6fa
HamEvo
1180fafd4b9c4e43b2aa36a59fc1e919--4776bb384e7947dda120095103c2a6fa
b9b802602a4e4c8ba8bc472b3a608fec
4776bb384e7947dda120095103c2a6fa--b9b802602a4e4c8ba8bc472b3a608fec
04fb6d3934044df3b26f00d0ed3366f9
06beea953b884658abf87990fcf04d80
RX(theta₁)
0cf6dbbeda1d4821a9b3c34ce6f3cf7c--06beea953b884658abf87990fcf04d80
b905f1dbe7224e7a82dd741f7e0728c8
2
e7e84220449f43ee821b20e0b8420943
RY(theta₄)
06beea953b884658abf87990fcf04d80--e7e84220449f43ee821b20e0b8420943
0f1af4c9d0f64c40aa212509548429b8
RX(theta₇)
e7e84220449f43ee821b20e0b8420943--0f1af4c9d0f64c40aa212509548429b8
bc29962a225d4f9998b784d31f716a76
t = theta_t₀
0f1af4c9d0f64c40aa212509548429b8--bc29962a225d4f9998b784d31f716a76
0c0b470a68f04c9d991c72d71ab4ba11
RX(theta₁₀)
bc29962a225d4f9998b784d31f716a76--0c0b470a68f04c9d991c72d71ab4ba11
de6ef843eec44c1fb9d9037c5207e351
RY(theta₁₃)
0c0b470a68f04c9d991c72d71ab4ba11--de6ef843eec44c1fb9d9037c5207e351
6c9bf4ec046249479e12925fed5aed2c
RX(theta₁₆)
de6ef843eec44c1fb9d9037c5207e351--6c9bf4ec046249479e12925fed5aed2c
1035f4780d624cc6b684576974271799
t = theta_t₁
6c9bf4ec046249479e12925fed5aed2c--1035f4780d624cc6b684576974271799
1035f4780d624cc6b684576974271799--04fb6d3934044df3b26f00d0ed3366f9
6ada83d72e264612a8748397180999f9
5b9832cb433140dab0c3730770af4b9d
RX(theta₂)
b905f1dbe7224e7a82dd741f7e0728c8--5b9832cb433140dab0c3730770af4b9d
26dc66ecafaa4302940fe9eff522226f
RY(theta₅)
5b9832cb433140dab0c3730770af4b9d--26dc66ecafaa4302940fe9eff522226f
b373c5e0b51c459daafcc509d7c4e7d7
RX(theta₈)
26dc66ecafaa4302940fe9eff522226f--b373c5e0b51c459daafcc509d7c4e7d7
a0920df12ddc4e1faed61e577fc6c476
b373c5e0b51c459daafcc509d7c4e7d7--a0920df12ddc4e1faed61e577fc6c476
10c52240f9774f01bf48b592e6b0badc
RX(theta₁₁)
a0920df12ddc4e1faed61e577fc6c476--10c52240f9774f01bf48b592e6b0badc
969ea84fb5d94a25977a568e6a4d98ff
RY(theta₁₄)
10c52240f9774f01bf48b592e6b0badc--969ea84fb5d94a25977a568e6a4d98ff
b5827c58ad784bccb924e63a1a0908d7
RX(theta₁₇)
969ea84fb5d94a25977a568e6a4d98ff--b5827c58ad784bccb924e63a1a0908d7
897f7cfc5f0b4b958c2bbd0d10690678
b5827c58ad784bccb924e63a1a0908d7--897f7cfc5f0b4b958c2bbd0d10690678
897f7cfc5f0b4b958c2bbd0d10690678--6ada83d72e264612a8748397180999f9
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_1a9916179af044559489af9f56eca406
cluster_cd2dba71725a47abb7d7bd09b991e895
f0e7b4d001f647cc93e7582763871ecf
0
06ec1f4c2a9a4db18ae70fc6719432ce
RX(theta₀)
f0e7b4d001f647cc93e7582763871ecf--06ec1f4c2a9a4db18ae70fc6719432ce
10ccdb619689459e967b52fdd5778554
1
4fff3efab2004fdd9720cdd911f5f346
RY(theta₆)
06ec1f4c2a9a4db18ae70fc6719432ce--4fff3efab2004fdd9720cdd911f5f346
3b916e21e9de4266b099a827e3cd3179
RX(theta₁₂)
4fff3efab2004fdd9720cdd911f5f346--3b916e21e9de4266b099a827e3cd3179
c728f7f1da25432bab61fbcd8291b218
3b916e21e9de4266b099a827e3cd3179--c728f7f1da25432bab61fbcd8291b218
02849fe4490648268b070d6abbebf0d7
RX(theta₁₈)
c728f7f1da25432bab61fbcd8291b218--02849fe4490648268b070d6abbebf0d7
a66f97f81ff6449db4067e3dea560528
RY(theta₂₄)
02849fe4490648268b070d6abbebf0d7--a66f97f81ff6449db4067e3dea560528
6f6341d0a36f4587b8d51c5e72a1b677
RX(theta₃₀)
a66f97f81ff6449db4067e3dea560528--6f6341d0a36f4587b8d51c5e72a1b677
56cd7ddee5cb4ebf85fd58ca99269d2c
6f6341d0a36f4587b8d51c5e72a1b677--56cd7ddee5cb4ebf85fd58ca99269d2c
78a22b0711a842a49ba7d412cb592c0e
56cd7ddee5cb4ebf85fd58ca99269d2c--78a22b0711a842a49ba7d412cb592c0e
3cb22f902d9c42b1b21f4666b3885c3f
6930c4ffbb5b441c8eb262a8207a5638
RX(theta₁)
10ccdb619689459e967b52fdd5778554--6930c4ffbb5b441c8eb262a8207a5638
ae333d3352d849d0aee0ad55afd72e05
2
f7c181f9a16a48db86eb56b79c1eca91
RY(theta₇)
6930c4ffbb5b441c8eb262a8207a5638--f7c181f9a16a48db86eb56b79c1eca91
a9d008278c404af0861e7b3b05e9a661
RX(theta₁₃)
f7c181f9a16a48db86eb56b79c1eca91--a9d008278c404af0861e7b3b05e9a661
48389d12e1004d67a148f4835a6232fb
a9d008278c404af0861e7b3b05e9a661--48389d12e1004d67a148f4835a6232fb
58c8c803d5304dfc978b2b5735487355
RX(theta₁₉)
48389d12e1004d67a148f4835a6232fb--58c8c803d5304dfc978b2b5735487355
f24b7b31d1714a939b2f8d851b5318fb
RY(theta₂₅)
58c8c803d5304dfc978b2b5735487355--f24b7b31d1714a939b2f8d851b5318fb
7f239b6d41f844cdbd03e782034872a3
RX(theta₃₁)
f24b7b31d1714a939b2f8d851b5318fb--7f239b6d41f844cdbd03e782034872a3
c88b47abd1ff4276bb7e86588f367c88
7f239b6d41f844cdbd03e782034872a3--c88b47abd1ff4276bb7e86588f367c88
c88b47abd1ff4276bb7e86588f367c88--3cb22f902d9c42b1b21f4666b3885c3f
dba45901dbf241e5b12907d0ad718ee1
7574d473768b496295cc86f6aa4cd66c
RX(theta₂)
ae333d3352d849d0aee0ad55afd72e05--7574d473768b496295cc86f6aa4cd66c
4bf2ce3cb29e49f288704b5f98cf2526
3
ac7dc0f7a7d64c989bf49a5349b870d8
RY(theta₈)
7574d473768b496295cc86f6aa4cd66c--ac7dc0f7a7d64c989bf49a5349b870d8
9e5443acd1364668aaf938fd1988971e
RX(theta₁₄)
ac7dc0f7a7d64c989bf49a5349b870d8--9e5443acd1364668aaf938fd1988971e
54bdeb788fbf406f86906380850e9e45
HamEvo
9e5443acd1364668aaf938fd1988971e--54bdeb788fbf406f86906380850e9e45
f585eb42d207408ebe9c91dbe08413e9
RX(theta₂₀)
54bdeb788fbf406f86906380850e9e45--f585eb42d207408ebe9c91dbe08413e9
8d426e99bfee4b9a8ab7871d377b39d4
RY(theta₂₆)
f585eb42d207408ebe9c91dbe08413e9--8d426e99bfee4b9a8ab7871d377b39d4
680e626a97f047e48c41a7f722941bd3
RX(theta₃₂)
8d426e99bfee4b9a8ab7871d377b39d4--680e626a97f047e48c41a7f722941bd3
dc0b16022d054891b8afed2690644609
HamEvo
680e626a97f047e48c41a7f722941bd3--dc0b16022d054891b8afed2690644609
dc0b16022d054891b8afed2690644609--dba45901dbf241e5b12907d0ad718ee1
de99f62895334579b35de7ceef8c7e6e
30e506308c1f48b49b0053f8cf1cec96
RX(theta₃)
4bf2ce3cb29e49f288704b5f98cf2526--30e506308c1f48b49b0053f8cf1cec96
861359f7dd49478eb7ef454e8f9ce9a5
4
2e846808f0414dbd96ca6fe4a65e515e
RY(theta₉)
30e506308c1f48b49b0053f8cf1cec96--2e846808f0414dbd96ca6fe4a65e515e
3a95e2413c7f4af7846e67cb0f8ccc6f
RX(theta₁₅)
2e846808f0414dbd96ca6fe4a65e515e--3a95e2413c7f4af7846e67cb0f8ccc6f
105375a1407e4b1693411eba0fdfc2b3
t = theta_t₀
3a95e2413c7f4af7846e67cb0f8ccc6f--105375a1407e4b1693411eba0fdfc2b3
fbc899a0fcdb487c8347856e27eef176
RX(theta₂₁)
105375a1407e4b1693411eba0fdfc2b3--fbc899a0fcdb487c8347856e27eef176
abbe00c5dfda41fdb560765ff5a0d71a
RY(theta₂₇)
fbc899a0fcdb487c8347856e27eef176--abbe00c5dfda41fdb560765ff5a0d71a
5cafba00c04149d5b3fbea88c6c4e621
RX(theta₃₃)
abbe00c5dfda41fdb560765ff5a0d71a--5cafba00c04149d5b3fbea88c6c4e621
3f758551edf4432f836ed996e5466f23
t = theta_t₁
5cafba00c04149d5b3fbea88c6c4e621--3f758551edf4432f836ed996e5466f23
3f758551edf4432f836ed996e5466f23--de99f62895334579b35de7ceef8c7e6e
75ccb25c13be4bf98d32ee7599575679
37c6b5e1c8d948a0b500a7600d73af62
RX(theta₄)
861359f7dd49478eb7ef454e8f9ce9a5--37c6b5e1c8d948a0b500a7600d73af62
e958c8fbeea142a696d7b557cf90763d
5
ba4037f191f74253978a94b0ef576347
RY(theta₁₀)
37c6b5e1c8d948a0b500a7600d73af62--ba4037f191f74253978a94b0ef576347
3e80bce156d941e499b076a921844ab7
RX(theta₁₆)
ba4037f191f74253978a94b0ef576347--3e80bce156d941e499b076a921844ab7
7a26b902d0a6478c99d279ac024d431c
3e80bce156d941e499b076a921844ab7--7a26b902d0a6478c99d279ac024d431c
786fa2d5f12741c29485206537e8857a
RX(theta₂₂)
7a26b902d0a6478c99d279ac024d431c--786fa2d5f12741c29485206537e8857a
327a53ad20bf458286fa82f7156b53ec
RY(theta₂₈)
786fa2d5f12741c29485206537e8857a--327a53ad20bf458286fa82f7156b53ec
a097a1d269bf4de4bba39b0cfea392a9
RX(theta₃₄)
327a53ad20bf458286fa82f7156b53ec--a097a1d269bf4de4bba39b0cfea392a9
4e3ad5371e3e4b30a87b3c52f492c3f4
a097a1d269bf4de4bba39b0cfea392a9--4e3ad5371e3e4b30a87b3c52f492c3f4
4e3ad5371e3e4b30a87b3c52f492c3f4--75ccb25c13be4bf98d32ee7599575679
957e00c8c1a24ee4b5994e1caf9a0565
679647f7c3e64d02b0e02175468812dc
RX(theta₅)
e958c8fbeea142a696d7b557cf90763d--679647f7c3e64d02b0e02175468812dc
fe2a06a9a9324bfd89e16a18cc7b3e62
RY(theta₁₁)
679647f7c3e64d02b0e02175468812dc--fe2a06a9a9324bfd89e16a18cc7b3e62
01983c9006af4010b11e86dbafdb0c70
RX(theta₁₇)
fe2a06a9a9324bfd89e16a18cc7b3e62--01983c9006af4010b11e86dbafdb0c70
058d4c9f14b9407fb33a8ea6209a3680
01983c9006af4010b11e86dbafdb0c70--058d4c9f14b9407fb33a8ea6209a3680
41608f413c09456e8acf8598f78c26c1
RX(theta₂₃)
058d4c9f14b9407fb33a8ea6209a3680--41608f413c09456e8acf8598f78c26c1
ba6e1e16c18d4ecc9b3720813f7fa3b0
RY(theta₂₉)
41608f413c09456e8acf8598f78c26c1--ba6e1e16c18d4ecc9b3720813f7fa3b0
f04c95a1d0e140bc89c816e9e98568e3
RX(theta₃₅)
ba6e1e16c18d4ecc9b3720813f7fa3b0--f04c95a1d0e140bc89c816e9e98568e3
ba6bcac141744a498a4a19c365882f70
f04c95a1d0e140bc89c816e9e98568e3--ba6bcac141744a498a4a19c365882f70
ba6bcac141744a498a4a19c365882f70--957e00c8c1a24ee4b5994e1caf9a0565
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_ce3175735bf44eb0a54c146f010c430c
BPMA-1
cluster_e3596b10c39c454b8af999883e202d79
BPMA-0
d14faee63b40469b8d18cc26e22dbf80
0
4b929124f4884d4e9abd73e123ed0ea2
RX(iia_α₀₀)
d14faee63b40469b8d18cc26e22dbf80--4b929124f4884d4e9abd73e123ed0ea2
ed0897d6b2984e3db8c0012d9cfdfa92
1
554bd86e6e7c488f9053be911cfe4fa3
RY(iia_α₀₃)
4b929124f4884d4e9abd73e123ed0ea2--554bd86e6e7c488f9053be911cfe4fa3
40cbe02ac476404cbf86924f2010bb1f
554bd86e6e7c488f9053be911cfe4fa3--40cbe02ac476404cbf86924f2010bb1f
5d296e70d1da45adac954ad7b29f2dc6
40cbe02ac476404cbf86924f2010bb1f--5d296e70d1da45adac954ad7b29f2dc6
24043de3ffe340eda268b49a3e1ad34c
RX(iia_γ₀₀)
5d296e70d1da45adac954ad7b29f2dc6--24043de3ffe340eda268b49a3e1ad34c
66f7bd62b94b45b98baae28441d4b4b7
24043de3ffe340eda268b49a3e1ad34c--66f7bd62b94b45b98baae28441d4b4b7
6bb8e42f6d794d7687f1918edbe49c69
66f7bd62b94b45b98baae28441d4b4b7--6bb8e42f6d794d7687f1918edbe49c69
2c1c15f5bddc4536be716fad7680e1a8
RY(iia_β₀₃)
6bb8e42f6d794d7687f1918edbe49c69--2c1c15f5bddc4536be716fad7680e1a8
2f774d3a850d438c8e329eaa03be2b21
RX(iia_β₀₀)
2c1c15f5bddc4536be716fad7680e1a8--2f774d3a850d438c8e329eaa03be2b21
f2fc2018a28346cc835dcecae8747901
RX(iia_α₁₀)
2f774d3a850d438c8e329eaa03be2b21--f2fc2018a28346cc835dcecae8747901
0f46755f4b1a49aea768103c6615f259
RY(iia_α₁₃)
f2fc2018a28346cc835dcecae8747901--0f46755f4b1a49aea768103c6615f259
2fd18d8a921148b4876a54de4455ba1a
0f46755f4b1a49aea768103c6615f259--2fd18d8a921148b4876a54de4455ba1a
20832c71093041128eccd8e042ad304a
2fd18d8a921148b4876a54de4455ba1a--20832c71093041128eccd8e042ad304a
2a57d26686ce4cb98d0feb3229b7673a
RX(iia_γ₁₀)
20832c71093041128eccd8e042ad304a--2a57d26686ce4cb98d0feb3229b7673a
6c7766190af84ff7bbd0d8ea1e387d1e
2a57d26686ce4cb98d0feb3229b7673a--6c7766190af84ff7bbd0d8ea1e387d1e
954b7cf90eb04826a5f87ef16662f5f9
6c7766190af84ff7bbd0d8ea1e387d1e--954b7cf90eb04826a5f87ef16662f5f9
2c4d9ad4508e4f70a0af3f5fd8f420bd
RY(iia_β₁₃)
954b7cf90eb04826a5f87ef16662f5f9--2c4d9ad4508e4f70a0af3f5fd8f420bd
edc107da54334f9195cc39100d562825
RX(iia_β₁₀)
2c4d9ad4508e4f70a0af3f5fd8f420bd--edc107da54334f9195cc39100d562825
80329be6fb0f4c4e882d6ca53a6c620f
edc107da54334f9195cc39100d562825--80329be6fb0f4c4e882d6ca53a6c620f
48cb51a6264440518732ba4791afa45a
328ec120813641a6a86cc273d013acd1
RX(iia_α₀₁)
ed0897d6b2984e3db8c0012d9cfdfa92--328ec120813641a6a86cc273d013acd1
9858b26b45e1442fa2c1d38d0d42e0df
2
1444d873232c413abcc400e939bc690a
RY(iia_α₀₄)
328ec120813641a6a86cc273d013acd1--1444d873232c413abcc400e939bc690a
721efa8a5a924f1bad99e9b82f6e7a51
X
1444d873232c413abcc400e939bc690a--721efa8a5a924f1bad99e9b82f6e7a51
721efa8a5a924f1bad99e9b82f6e7a51--40cbe02ac476404cbf86924f2010bb1f
7a9c70a31dbf4de6a1c438d9f79c38e7
721efa8a5a924f1bad99e9b82f6e7a51--7a9c70a31dbf4de6a1c438d9f79c38e7
690e2fb0d3754e67a127545cf5d20e74
RX(iia_γ₀₁)
7a9c70a31dbf4de6a1c438d9f79c38e7--690e2fb0d3754e67a127545cf5d20e74
aec87928ccaa4260b4608a422606dbc8
690e2fb0d3754e67a127545cf5d20e74--aec87928ccaa4260b4608a422606dbc8
58d6f5c2778d4761a77bb19c8fac0eec
X
aec87928ccaa4260b4608a422606dbc8--58d6f5c2778d4761a77bb19c8fac0eec
58d6f5c2778d4761a77bb19c8fac0eec--6bb8e42f6d794d7687f1918edbe49c69
3a8c24a2fd4545c8ba115a0bb034b47a
RY(iia_β₀₄)
58d6f5c2778d4761a77bb19c8fac0eec--3a8c24a2fd4545c8ba115a0bb034b47a
f4be912c610146ab99fb2ae1ea59a3ae
RX(iia_β₀₁)
3a8c24a2fd4545c8ba115a0bb034b47a--f4be912c610146ab99fb2ae1ea59a3ae
4053f9fa58fd4aa8b0dd891d630f878e
RX(iia_α₁₁)
f4be912c610146ab99fb2ae1ea59a3ae--4053f9fa58fd4aa8b0dd891d630f878e
9c53e5e8be03444aae9f1005f8fbbfc3
RY(iia_α₁₄)
4053f9fa58fd4aa8b0dd891d630f878e--9c53e5e8be03444aae9f1005f8fbbfc3
3a445c820f09430a81e0eecfdcab4de6
X
9c53e5e8be03444aae9f1005f8fbbfc3--3a445c820f09430a81e0eecfdcab4de6
3a445c820f09430a81e0eecfdcab4de6--2fd18d8a921148b4876a54de4455ba1a
5fbb55aa5d4447ae8ceff02d093bf54b
3a445c820f09430a81e0eecfdcab4de6--5fbb55aa5d4447ae8ceff02d093bf54b
dfeb468974f740d3899dd4b211f8a8b4
RX(iia_γ₁₁)
5fbb55aa5d4447ae8ceff02d093bf54b--dfeb468974f740d3899dd4b211f8a8b4
9266a21b7d084244b2d958dab6d5dac5
dfeb468974f740d3899dd4b211f8a8b4--9266a21b7d084244b2d958dab6d5dac5
2738a7e12e30494fa7637eb99fe6cc85
X
9266a21b7d084244b2d958dab6d5dac5--2738a7e12e30494fa7637eb99fe6cc85
2738a7e12e30494fa7637eb99fe6cc85--954b7cf90eb04826a5f87ef16662f5f9
90e97e11932a48a9b73781d3438d2506
RY(iia_β₁₄)
2738a7e12e30494fa7637eb99fe6cc85--90e97e11932a48a9b73781d3438d2506
b61379a8521d432c99b64445c5fe2970
RX(iia_β₁₁)
90e97e11932a48a9b73781d3438d2506--b61379a8521d432c99b64445c5fe2970
b61379a8521d432c99b64445c5fe2970--48cb51a6264440518732ba4791afa45a
e63fd7d0374c40f1b6d1e9633e143f82
cfaeb882dae04f1990d0ff5f76f045c8
RX(iia_α₀₂)
9858b26b45e1442fa2c1d38d0d42e0df--cfaeb882dae04f1990d0ff5f76f045c8
15f85a5ce2cf46cb93af4bb14800291a
RY(iia_α₀₅)
cfaeb882dae04f1990d0ff5f76f045c8--15f85a5ce2cf46cb93af4bb14800291a
d1fb7332dcc044c4b3a71930fafd8292
15f85a5ce2cf46cb93af4bb14800291a--d1fb7332dcc044c4b3a71930fafd8292
4d40884046fc416980d83fdc52f362d2
X
d1fb7332dcc044c4b3a71930fafd8292--4d40884046fc416980d83fdc52f362d2
4d40884046fc416980d83fdc52f362d2--7a9c70a31dbf4de6a1c438d9f79c38e7
5d21a9ba293d45d6892854d384e272ba
RX(iia_γ₀₂)
4d40884046fc416980d83fdc52f362d2--5d21a9ba293d45d6892854d384e272ba
33dd11e1009f4eb9baab38a4abf1f41d
X
5d21a9ba293d45d6892854d384e272ba--33dd11e1009f4eb9baab38a4abf1f41d
33dd11e1009f4eb9baab38a4abf1f41d--aec87928ccaa4260b4608a422606dbc8
0dc20dbad71b4e21858b58fc9cd2f37e
33dd11e1009f4eb9baab38a4abf1f41d--0dc20dbad71b4e21858b58fc9cd2f37e
945304a1d03f45db9bcee2ebeadcd40a
RY(iia_β₀₅)
0dc20dbad71b4e21858b58fc9cd2f37e--945304a1d03f45db9bcee2ebeadcd40a
573f1ffb23b644efb5d7b52610e91373
RX(iia_β₀₂)
945304a1d03f45db9bcee2ebeadcd40a--573f1ffb23b644efb5d7b52610e91373
d1b7db0090234d498cf67af7fe7fd57a
RX(iia_α₁₂)
573f1ffb23b644efb5d7b52610e91373--d1b7db0090234d498cf67af7fe7fd57a
1281b999b25c4361b97144527d499585
RY(iia_α₁₅)
d1b7db0090234d498cf67af7fe7fd57a--1281b999b25c4361b97144527d499585
425e65528a7146b3b90aca686c2944cd
1281b999b25c4361b97144527d499585--425e65528a7146b3b90aca686c2944cd
d7f9c9f5a9f14681ba09773fb0dbaad8
X
425e65528a7146b3b90aca686c2944cd--d7f9c9f5a9f14681ba09773fb0dbaad8
d7f9c9f5a9f14681ba09773fb0dbaad8--5fbb55aa5d4447ae8ceff02d093bf54b
17ab3f2ee5a24597b13b8447d39bedab
RX(iia_γ₁₂)
d7f9c9f5a9f14681ba09773fb0dbaad8--17ab3f2ee5a24597b13b8447d39bedab
2432a98d2f2b4dc8b45c7c465946f4d9
X
17ab3f2ee5a24597b13b8447d39bedab--2432a98d2f2b4dc8b45c7c465946f4d9
2432a98d2f2b4dc8b45c7c465946f4d9--9266a21b7d084244b2d958dab6d5dac5
93b4d323db0d40fdaabfff0d94fa3c02
2432a98d2f2b4dc8b45c7c465946f4d9--93b4d323db0d40fdaabfff0d94fa3c02
abd9c297ba4a4a538a0f583f926b2f55
RY(iia_β₁₅)
93b4d323db0d40fdaabfff0d94fa3c02--abd9c297ba4a4a538a0f583f926b2f55
0f75c23a3a1c4d058e45deae241c2abf
RX(iia_β₁₂)
abd9c297ba4a4a538a0f583f926b2f55--0f75c23a3a1c4d058e45deae241c2abf
0f75c23a3a1c4d058e45deae241c2abf--e63fd7d0374c40f1b6d1e9633e143f82