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_dfceec7b925746a78f2130b0787640bc
Constant Chebyshev FM
cluster_430190f4762a4a7c90a4157cd1ab9527
Constant Fourier FM
f0aaefe6b22b4ca487aceb02ee4b033c
0
3200081ad2ec42ffb4b93bce16072946
RX(phi)
f0aaefe6b22b4ca487aceb02ee4b033c--3200081ad2ec42ffb4b93bce16072946
853a959373c548ee91948eba168b297f
1
3408b0b88f79480886bcb48cee197cf5
RX(acos(phi))
3200081ad2ec42ffb4b93bce16072946--3408b0b88f79480886bcb48cee197cf5
b777cd973dbd45b29f934d6c1f1f5a44
3408b0b88f79480886bcb48cee197cf5--b777cd973dbd45b29f934d6c1f1f5a44
e638b7aa6e534045bcaf47f837892868
6c497c31f35043c5a0849c429133cb1b
RX(phi)
853a959373c548ee91948eba168b297f--6c497c31f35043c5a0849c429133cb1b
0461c8f878e84a4d8c8ad11155a8f059
2
11f5aa87691348d9a8279ffd77adf663
RX(acos(phi))
6c497c31f35043c5a0849c429133cb1b--11f5aa87691348d9a8279ffd77adf663
11f5aa87691348d9a8279ffd77adf663--e638b7aa6e534045bcaf47f837892868
8775e0cc50854ccdbeba475b87e39d1f
097a4582dd994218bc6dc01dfd45e7c8
RX(phi)
0461c8f878e84a4d8c8ad11155a8f059--097a4582dd994218bc6dc01dfd45e7c8
6a78adc731284a6abe44296332261153
RX(acos(phi))
097a4582dd994218bc6dc01dfd45e7c8--6a78adc731284a6abe44296332261153
6a78adc731284a6abe44296332261153--8775e0cc50854ccdbeba475b87e39d1f
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_38a551f4e014435197d33a8f82c4765b
Constant <function custom_fn at 0x7fe433f7f0a0> FM
cluster_f862590d269245eeb3bf328b7edcebdf
Constant asin FM
81dce4aa0fcc4d1680a6919bbc0da300
0
000ff16ef1e04420819a7df5ca861be2
RX(asin(phi))
81dce4aa0fcc4d1680a6919bbc0da300--000ff16ef1e04420819a7df5ca861be2
b64ff39c9bac40c783e46df10c532969
1
00127f9345a94da3ba2c8c8046a3f36e
RX(phi**2 + asin(phi))
000ff16ef1e04420819a7df5ca861be2--00127f9345a94da3ba2c8c8046a3f36e
5d2025bd0b9342e69b769a350f523b4e
00127f9345a94da3ba2c8c8046a3f36e--5d2025bd0b9342e69b769a350f523b4e
ecbc098b208e4aa29baaf7f20a25948b
52fea6c52a574939abc00944bc880f2f
RX(asin(phi))
b64ff39c9bac40c783e46df10c532969--52fea6c52a574939abc00944bc880f2f
191ad33ac7ec44e3aefbe7f652ac20bb
2
0c1c24721341401da15caa8adb649577
RX(phi**2 + asin(phi))
52fea6c52a574939abc00944bc880f2f--0c1c24721341401da15caa8adb649577
0c1c24721341401da15caa8adb649577--ecbc098b208e4aa29baaf7f20a25948b
0fe164ee2bbc4b059fa366a832f27a23
e8ae7958e7ca43398d5ffacdc507f56d
RX(asin(phi))
191ad33ac7ec44e3aefbe7f652ac20bb--e8ae7958e7ca43398d5ffacdc507f56d
64270f1126c24b4eb8adb0933874223a
RX(phi**2 + asin(phi))
e8ae7958e7ca43398d5ffacdc507f56d--64270f1126c24b4eb8adb0933874223a
64270f1126c24b4eb8adb0933874223a--0fe164ee2bbc4b059fa366a832f27a23
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_64fdffbce4b049c4835926e3c0ea6c56
Exponential Fourier FM
cluster_a658dee083c549729ad594db54e2cf96
Constant Fourier FM
cluster_36bca2bf33fd4e78ac19ebacfc69f9e2
Tower Fourier FM
3125f8e38fc54b59b8bd6a46d45c7f95
0
0679c05fa4bb489a8ec2ab4372a6f973
RX(phi)
3125f8e38fc54b59b8bd6a46d45c7f95--0679c05fa4bb489a8ec2ab4372a6f973
c58c99fb2abd42ae9c2dbf4f7f0e9464
1
981e65550905435caa2289f3e4c82044
RX(1.0*phi)
0679c05fa4bb489a8ec2ab4372a6f973--981e65550905435caa2289f3e4c82044
be84585e4d4e4a009a82d4f610e2a2f0
RX(1.0*phi)
981e65550905435caa2289f3e4c82044--be84585e4d4e4a009a82d4f610e2a2f0
1154f89634294498b3f07fecd340ed82
be84585e4d4e4a009a82d4f610e2a2f0--1154f89634294498b3f07fecd340ed82
06f9500d7137405d9823c6f8afd3cef8
39b45ede9d0e4c05989fc5bf14a1caa6
RX(phi)
c58c99fb2abd42ae9c2dbf4f7f0e9464--39b45ede9d0e4c05989fc5bf14a1caa6
f328e844bf7a4589bb8c815da8bbc1d7
2
736327b332504dc2bc195b8d7a0a9fe8
RX(2.0*phi)
39b45ede9d0e4c05989fc5bf14a1caa6--736327b332504dc2bc195b8d7a0a9fe8
b70df604c71048b6a61b05931836ca26
RX(2.0*phi)
736327b332504dc2bc195b8d7a0a9fe8--b70df604c71048b6a61b05931836ca26
b70df604c71048b6a61b05931836ca26--06f9500d7137405d9823c6f8afd3cef8
53842918a6e04bcdb037cbd300b641f0
2f886fb1e5f64292a53b3b69d4fb0675
RX(phi)
f328e844bf7a4589bb8c815da8bbc1d7--2f886fb1e5f64292a53b3b69d4fb0675
00bebf43d9184ed4af2a6f1d71e147de
3
fcd046108f684f0cb9258e4a24d89bb1
RX(3.0*phi)
2f886fb1e5f64292a53b3b69d4fb0675--fcd046108f684f0cb9258e4a24d89bb1
3f8c5b5dd82a4207ac8fdc9c56699aab
RX(4.0*phi)
fcd046108f684f0cb9258e4a24d89bb1--3f8c5b5dd82a4207ac8fdc9c56699aab
3f8c5b5dd82a4207ac8fdc9c56699aab--53842918a6e04bcdb037cbd300b641f0
1af90750c6c7497bbdbe662e7b079406
20eedb6f4ae24c1089528697c3b13d58
RX(phi)
00bebf43d9184ed4af2a6f1d71e147de--20eedb6f4ae24c1089528697c3b13d58
76643c73f5434d6e95bfd71366a22fd0
4
4e9d0957239b49d7a15882ed5cc4ec2c
RX(4.0*phi)
20eedb6f4ae24c1089528697c3b13d58--4e9d0957239b49d7a15882ed5cc4ec2c
263620b6aad548ae883ab92dc816b11c
RX(8.0*phi)
4e9d0957239b49d7a15882ed5cc4ec2c--263620b6aad548ae883ab92dc816b11c
263620b6aad548ae883ab92dc816b11c--1af90750c6c7497bbdbe662e7b079406
b8da334ffd5b4ae98e338a3d97fc9c13
f576c6d4ac4544bb8d1cc2b57983e229
RX(phi)
76643c73f5434d6e95bfd71366a22fd0--f576c6d4ac4544bb8d1cc2b57983e229
e2236b91fbe344c59bd5f632bf48473c
RX(5.0*phi)
f576c6d4ac4544bb8d1cc2b57983e229--e2236b91fbe344c59bd5f632bf48473c
33996d6f299042ac958054e0052272a1
RX(16.0*phi)
e2236b91fbe344c59bd5f632bf48473c--33996d6f299042ac958054e0052272a1
33996d6f299042ac958054e0052272a1--b8da334ffd5b4ae98e338a3d97fc9c13
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
2c1a592229794d30aca8c8fa4d5be62e
0
d8761bdd52dc40f095eea9f15fa68a51
RX(1.0*acos(phi))
2c1a592229794d30aca8c8fa4d5be62e--d8761bdd52dc40f095eea9f15fa68a51
1b04ecd95ed14764819ac35d2db0b25e
1
b18fcb8998234e61960ba3b8c1e7a6f2
d8761bdd52dc40f095eea9f15fa68a51--b18fcb8998234e61960ba3b8c1e7a6f2
cfcb4a14ac8b4c48856f1cbd975a6b74
97da2e77045c43b18a735adc0921d78a
RX(1.414*acos(phi))
1b04ecd95ed14764819ac35d2db0b25e--97da2e77045c43b18a735adc0921d78a
78c0b142fcce4dbbae2db7475278d69c
2
97da2e77045c43b18a735adc0921d78a--cfcb4a14ac8b4c48856f1cbd975a6b74
4d72789c49f5466fba97831e2a1b0d38
60186141376b4e589c35bb62b2430edb
RX(1.732*acos(phi))
78c0b142fcce4dbbae2db7475278d69c--60186141376b4e589c35bb62b2430edb
dd90d22712aa4519a804b756a3aa40f2
3
60186141376b4e589c35bb62b2430edb--4d72789c49f5466fba97831e2a1b0d38
bc3e55dea60344fc8d5609def47a1f9d
fda87f12dbba4ce59877b675df52a162
RX(2.0*acos(phi))
dd90d22712aa4519a804b756a3aa40f2--fda87f12dbba4ce59877b675df52a162
108fc1dc89d5425a8862cc6ff6d4b0a1
4
fda87f12dbba4ce59877b675df52a162--bc3e55dea60344fc8d5609def47a1f9d
ac415a0226b34457838d0ea7bfc48603
f4b388f96baa4df8aceb0f92a290cfd2
RX(2.236*acos(phi))
108fc1dc89d5425a8862cc6ff6d4b0a1--f4b388f96baa4df8aceb0f92a290cfd2
f4b388f96baa4df8aceb0f92a290cfd2--ac415a0226b34457838d0ea7bfc48603
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
ebb71570accf405da4983305e89a5095
0
032bdc4c37ee45beac006b25e2cf0e85
RX(1.0*phi*w₀)
ebb71570accf405da4983305e89a5095--032bdc4c37ee45beac006b25e2cf0e85
ca39e87c87c547cfa138dd0d6abcccdf
1
37f7b178410e49219200b6decab994fb
032bdc4c37ee45beac006b25e2cf0e85--37f7b178410e49219200b6decab994fb
a7427304512f42888b7f04df0ceab911
cb3ef439cc144dbf9a4687149bf3a0be
RX(2.0*phi*w₁)
ca39e87c87c547cfa138dd0d6abcccdf--cb3ef439cc144dbf9a4687149bf3a0be
0080e300da24440f8fe3ad8dec98a459
2
cb3ef439cc144dbf9a4687149bf3a0be--a7427304512f42888b7f04df0ceab911
3115c77fe52043c1bf86cea5b003adeb
eda30d038ab54d8ab6624678cb7f62e1
RX(4.0*phi*w₂)
0080e300da24440f8fe3ad8dec98a459--eda30d038ab54d8ab6624678cb7f62e1
5f3b08027e454d20af3d59025af2d19c
3
eda30d038ab54d8ab6624678cb7f62e1--3115c77fe52043c1bf86cea5b003adeb
ff93630588d44a93a4851fc4eadd7165
ef8cd3c746214054adf2db66415736ae
RX(8.0*phi*w₃)
5f3b08027e454d20af3d59025af2d19c--ef8cd3c746214054adf2db66415736ae
8d10eb94959b4067b7beaf4866e4e3d6
4
ef8cd3c746214054adf2db66415736ae--ff93630588d44a93a4851fc4eadd7165
e0236244d95e4db28b2a2a296d5270e8
4f75d068293044c894557a2261faed37
RX(16.0*phi*w₄)
8d10eb94959b4067b7beaf4866e4e3d6--4f75d068293044c894557a2261faed37
4f75d068293044c894557a2261faed37--e0236244d95e4db28b2a2a296d5270e8
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
296033f4436c4ba39a69e5e49a5eda19
0
71b245260c474accbdeb6992ed6c9aa1
RY(80.0*acos(w₄*(0.667*x + 1.667)))
296033f4436c4ba39a69e5e49a5eda19--71b245260c474accbdeb6992ed6c9aa1
ffeece40019942a08e69c631859ee2b5
1
7051590dee404eb38cd72801b4e1a70c
71b245260c474accbdeb6992ed6c9aa1--7051590dee404eb38cd72801b4e1a70c
d03a0f92a89e415f8f77f16cad057642
e53f9cb814d24bd489af5bbeedffb5ae
RY(40.0*acos(w₃*(0.667*x + 1.667)))
ffeece40019942a08e69c631859ee2b5--e53f9cb814d24bd489af5bbeedffb5ae
c2b711dc43a64418be36a74f2462ebec
2
e53f9cb814d24bd489af5bbeedffb5ae--d03a0f92a89e415f8f77f16cad057642
88ccac34674047e69efb20bc9d6cb29f
bb7b517281e644e48d9ff4dc8f777237
RY(20.0*acos(w₂*(0.667*x + 1.667)))
c2b711dc43a64418be36a74f2462ebec--bb7b517281e644e48d9ff4dc8f777237
861d6cd2ef6642eca46c3620d87dbe86
3
bb7b517281e644e48d9ff4dc8f777237--88ccac34674047e69efb20bc9d6cb29f
4e5742551db4450c844aeb1f46ef9f1e
a8c64a235b704ea8aa87bb59c410f0fc
RY(10.0*acos(w₁*(0.667*x + 1.667)))
861d6cd2ef6642eca46c3620d87dbe86--a8c64a235b704ea8aa87bb59c410f0fc
247f504f95e5404387cd0d3f4dab657a
4
a8c64a235b704ea8aa87bb59c410f0fc--4e5742551db4450c844aeb1f46ef9f1e
4d59e6ee40a34ad78bd4518cbe24b29b
c48afefbd7be41fda0ac13204700f9fd
RY(5.0*acos(w₀*(0.667*x + 1.667)))
247f504f95e5404387cd0d3f4dab657a--c48afefbd7be41fda0ac13204700f9fd
c48afefbd7be41fda0ac13204700f9fd--4d59e6ee40a34ad78bd4518cbe24b29b
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
d9f3deb908ef43dcaf64ed1e73d6923d
0
103dd447a79647359c028b44c5335ba4
RX(theta₀)
d9f3deb908ef43dcaf64ed1e73d6923d--103dd447a79647359c028b44c5335ba4
7607cf823a024f5e908ba7e63a60562a
1
21ba19139f97438b96879e4342344b84
RY(theta₃)
103dd447a79647359c028b44c5335ba4--21ba19139f97438b96879e4342344b84
94d7a53eb14541b8b630cb646803a528
RX(theta₆)
21ba19139f97438b96879e4342344b84--94d7a53eb14541b8b630cb646803a528
f62918bdbc0241ab8bc231ff8fa58cc2
94d7a53eb14541b8b630cb646803a528--f62918bdbc0241ab8bc231ff8fa58cc2
46e2435ced3e40ba9abed369ca861bdd
f62918bdbc0241ab8bc231ff8fa58cc2--46e2435ced3e40ba9abed369ca861bdd
91dd783cef704832a9b4b9de33898985
RX(theta₉)
46e2435ced3e40ba9abed369ca861bdd--91dd783cef704832a9b4b9de33898985
ddd1a3a480a6441782a394d789bdbd20
RY(theta₁₂)
91dd783cef704832a9b4b9de33898985--ddd1a3a480a6441782a394d789bdbd20
cd3e566122d64f52a18c5101c30e3d4d
RX(theta₁₅)
ddd1a3a480a6441782a394d789bdbd20--cd3e566122d64f52a18c5101c30e3d4d
590064ba62774607853d1fd14aeb6a01
cd3e566122d64f52a18c5101c30e3d4d--590064ba62774607853d1fd14aeb6a01
feee3cfb760d41689d98dd8e4f506adb
590064ba62774607853d1fd14aeb6a01--feee3cfb760d41689d98dd8e4f506adb
c78f8811220e4991a3358dc1370296f6
feee3cfb760d41689d98dd8e4f506adb--c78f8811220e4991a3358dc1370296f6
616043cc15b14a88bbbbc7ee5cf0a291
034660528d634c54b4ca9c50df38f7ff
RX(theta₁)
7607cf823a024f5e908ba7e63a60562a--034660528d634c54b4ca9c50df38f7ff
4e501f3bc0a14d1bb141a5254658e2a9
2
40e87d7a65a14031ab2be8a82abdb2fb
RY(theta₄)
034660528d634c54b4ca9c50df38f7ff--40e87d7a65a14031ab2be8a82abdb2fb
2dcdd77947b946298c3218dd2fd298d1
RX(theta₇)
40e87d7a65a14031ab2be8a82abdb2fb--2dcdd77947b946298c3218dd2fd298d1
112a6dcad2f34a09ab1004672ab75970
X
2dcdd77947b946298c3218dd2fd298d1--112a6dcad2f34a09ab1004672ab75970
112a6dcad2f34a09ab1004672ab75970--f62918bdbc0241ab8bc231ff8fa58cc2
e23019d2bc6a4596865d92ab276c679f
112a6dcad2f34a09ab1004672ab75970--e23019d2bc6a4596865d92ab276c679f
022bcc2bed064b409a6df322e6e50055
RX(theta₁₀)
e23019d2bc6a4596865d92ab276c679f--022bcc2bed064b409a6df322e6e50055
423de07e107849648de93bf1fb23b3d2
RY(theta₁₃)
022bcc2bed064b409a6df322e6e50055--423de07e107849648de93bf1fb23b3d2
d55317c9fc944c31abe8c50b32bd6a4c
RX(theta₁₆)
423de07e107849648de93bf1fb23b3d2--d55317c9fc944c31abe8c50b32bd6a4c
e192176db1894eaf95a263e228661070
X
d55317c9fc944c31abe8c50b32bd6a4c--e192176db1894eaf95a263e228661070
e192176db1894eaf95a263e228661070--590064ba62774607853d1fd14aeb6a01
02de5659d3264c83a7291e77d6fb2c38
e192176db1894eaf95a263e228661070--02de5659d3264c83a7291e77d6fb2c38
02de5659d3264c83a7291e77d6fb2c38--616043cc15b14a88bbbbc7ee5cf0a291
6fd9eb6a9c8e452f80dbae3143a1e903
065e78f9c8024dbb87b1344da5bfdd2d
RX(theta₂)
4e501f3bc0a14d1bb141a5254658e2a9--065e78f9c8024dbb87b1344da5bfdd2d
4428f510b8b846979b13b4f317f8db13
RY(theta₅)
065e78f9c8024dbb87b1344da5bfdd2d--4428f510b8b846979b13b4f317f8db13
b9a5ea61d8ae424ab4038f3df4706535
RX(theta₈)
4428f510b8b846979b13b4f317f8db13--b9a5ea61d8ae424ab4038f3df4706535
679ffc5830174f7988950f104ead8bb2
b9a5ea61d8ae424ab4038f3df4706535--679ffc5830174f7988950f104ead8bb2
50416aea493e468daac6429a587800d8
X
679ffc5830174f7988950f104ead8bb2--50416aea493e468daac6429a587800d8
50416aea493e468daac6429a587800d8--e23019d2bc6a4596865d92ab276c679f
6836e509195644389608bdf6bbd4d529
RX(theta₁₁)
50416aea493e468daac6429a587800d8--6836e509195644389608bdf6bbd4d529
b23966813b0c47bcabf0891afd850308
RY(theta₁₄)
6836e509195644389608bdf6bbd4d529--b23966813b0c47bcabf0891afd850308
5426ce9bf4674e58b3f495151baec4ce
RX(theta₁₇)
b23966813b0c47bcabf0891afd850308--5426ce9bf4674e58b3f495151baec4ce
54bfae795e8845259524c3bb2fbcc3e7
5426ce9bf4674e58b3f495151baec4ce--54bfae795e8845259524c3bb2fbcc3e7
bd7da1a3824f49f4b321051bb717d6dc
X
54bfae795e8845259524c3bb2fbcc3e7--bd7da1a3824f49f4b321051bb717d6dc
bd7da1a3824f49f4b321051bb717d6dc--02de5659d3264c83a7291e77d6fb2c38
bd7da1a3824f49f4b321051bb717d6dc--6fd9eb6a9c8e452f80dbae3143a1e903
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
7f76bfbcc4b545ec853f9bdf2ad8dab0
0
2e0dfa37c797432da989f024ea624df3
RX(phi₀)
7f76bfbcc4b545ec853f9bdf2ad8dab0--2e0dfa37c797432da989f024ea624df3
b48be208a26b4d89a32788fd8e8f4b02
1
3a5559a9be9346e8a7632a6465402c95
RY(phi₃)
2e0dfa37c797432da989f024ea624df3--3a5559a9be9346e8a7632a6465402c95
0501cede20c94025bf185ceaf5a89e85
RX(phi₆)
3a5559a9be9346e8a7632a6465402c95--0501cede20c94025bf185ceaf5a89e85
f47056bf5e0d4ec794c96af0e71a7f23
0501cede20c94025bf185ceaf5a89e85--f47056bf5e0d4ec794c96af0e71a7f23
d774bf863fd04831a7f9238fa2bc7663
f47056bf5e0d4ec794c96af0e71a7f23--d774bf863fd04831a7f9238fa2bc7663
e9d331e05f3746cfbd7e5d9f3348cc78
RX(phi₉)
d774bf863fd04831a7f9238fa2bc7663--e9d331e05f3746cfbd7e5d9f3348cc78
3528b3d79a0e444f9a0b95de89488898
RY(phi₁₂)
e9d331e05f3746cfbd7e5d9f3348cc78--3528b3d79a0e444f9a0b95de89488898
706deaab77d74f00bff459da9e78a5c4
RX(phi₁₅)
3528b3d79a0e444f9a0b95de89488898--706deaab77d74f00bff459da9e78a5c4
92a8ebb6df574d94a67d004266afdb5c
706deaab77d74f00bff459da9e78a5c4--92a8ebb6df574d94a67d004266afdb5c
d7755edec96a4cc2bf0b7011d619e4d2
92a8ebb6df574d94a67d004266afdb5c--d7755edec96a4cc2bf0b7011d619e4d2
b1e7c8b152ac44c8975709e83bf385e4
d7755edec96a4cc2bf0b7011d619e4d2--b1e7c8b152ac44c8975709e83bf385e4
8a4f1191425d44a794d459ca3b53f867
08d19878c7ba4f2cb4b1f0c0853a04f9
RX(phi₁)
b48be208a26b4d89a32788fd8e8f4b02--08d19878c7ba4f2cb4b1f0c0853a04f9
21e396a176a042bdb919b50023a1a22c
2
33ade8616b2842638ac1ff1c0051c37b
RY(phi₄)
08d19878c7ba4f2cb4b1f0c0853a04f9--33ade8616b2842638ac1ff1c0051c37b
9cff754763fa42d3b2b8bfae97883680
RX(phi₇)
33ade8616b2842638ac1ff1c0051c37b--9cff754763fa42d3b2b8bfae97883680
7bbfca2802b44d33b030e4565a59159d
PHASE(phi_ent₀)
9cff754763fa42d3b2b8bfae97883680--7bbfca2802b44d33b030e4565a59159d
7bbfca2802b44d33b030e4565a59159d--f47056bf5e0d4ec794c96af0e71a7f23
2a67178659d84e0b8a67532ca0378104
7bbfca2802b44d33b030e4565a59159d--2a67178659d84e0b8a67532ca0378104
8a7dd9b9407445c6b8492124695f53a9
RX(phi₁₀)
2a67178659d84e0b8a67532ca0378104--8a7dd9b9407445c6b8492124695f53a9
80f08cd06ecc4fc4812e4a9b31f2b8ab
RY(phi₁₃)
8a7dd9b9407445c6b8492124695f53a9--80f08cd06ecc4fc4812e4a9b31f2b8ab
c150e53051084ac782546e6d788a0083
RX(phi₁₆)
80f08cd06ecc4fc4812e4a9b31f2b8ab--c150e53051084ac782546e6d788a0083
735830d649214cae9047e83c699103b4
PHASE(phi_ent₂)
c150e53051084ac782546e6d788a0083--735830d649214cae9047e83c699103b4
735830d649214cae9047e83c699103b4--92a8ebb6df574d94a67d004266afdb5c
3a4f706bf66f4900a45d56538c014fc1
735830d649214cae9047e83c699103b4--3a4f706bf66f4900a45d56538c014fc1
3a4f706bf66f4900a45d56538c014fc1--8a4f1191425d44a794d459ca3b53f867
2f0795611e7847cfb0e90053fb808287
54868f602b8a4d18b85bfdfd485aaf73
RX(phi₂)
21e396a176a042bdb919b50023a1a22c--54868f602b8a4d18b85bfdfd485aaf73
4e95cb4c06d14ac3b123fb16ca8c47ec
RY(phi₅)
54868f602b8a4d18b85bfdfd485aaf73--4e95cb4c06d14ac3b123fb16ca8c47ec
513dd385b74e4cae86a85807c1cb2b32
RX(phi₈)
4e95cb4c06d14ac3b123fb16ca8c47ec--513dd385b74e4cae86a85807c1cb2b32
08b5aa498e17468ebd6bf032aa91cf70
513dd385b74e4cae86a85807c1cb2b32--08b5aa498e17468ebd6bf032aa91cf70
b867faa22d0c407eab0e4496014a6515
PHASE(phi_ent₁)
08b5aa498e17468ebd6bf032aa91cf70--b867faa22d0c407eab0e4496014a6515
b867faa22d0c407eab0e4496014a6515--2a67178659d84e0b8a67532ca0378104
d24d3b93d75e413eb36c1b4ac6a3f352
RX(phi₁₁)
b867faa22d0c407eab0e4496014a6515--d24d3b93d75e413eb36c1b4ac6a3f352
229c50e068fd41c584a3b4dd9c23e0f1
RY(phi₁₄)
d24d3b93d75e413eb36c1b4ac6a3f352--229c50e068fd41c584a3b4dd9c23e0f1
eb5ab3b36a8b456c9a67bc5949d40b2a
RX(phi₁₇)
229c50e068fd41c584a3b4dd9c23e0f1--eb5ab3b36a8b456c9a67bc5949d40b2a
eba26a44e7294303ab32bc2a35e9b11f
eb5ab3b36a8b456c9a67bc5949d40b2a--eba26a44e7294303ab32bc2a35e9b11f
1430abf3c165410a9478443647943f57
PHASE(phi_ent₃)
eba26a44e7294303ab32bc2a35e9b11f--1430abf3c165410a9478443647943f57
1430abf3c165410a9478443647943f57--3a4f706bf66f4900a45d56538c014fc1
1430abf3c165410a9478443647943f57--2f0795611e7847cfb0e90053fb808287
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_1c634b88fd4d40208c0bce734b974aab
cluster_0ebee49eaa4d4f7baebba01841f77daf
e2008a08b72c4059b2c5c3979c9e0eff
0
1d9c3f12eb9f40d2b8f0624ffdd84fba
RX(theta₀)
e2008a08b72c4059b2c5c3979c9e0eff--1d9c3f12eb9f40d2b8f0624ffdd84fba
91d9a9ba492946fc902b9f41fbdccdc7
1
04b2f023206448ebbfc587d7d9d06678
RY(theta₃)
1d9c3f12eb9f40d2b8f0624ffdd84fba--04b2f023206448ebbfc587d7d9d06678
a839a8e1b65b432194e9de61e91ab5e8
RX(theta₆)
04b2f023206448ebbfc587d7d9d06678--a839a8e1b65b432194e9de61e91ab5e8
2d643426673045ac8f7b3a64c31eb023
HamEvo
a839a8e1b65b432194e9de61e91ab5e8--2d643426673045ac8f7b3a64c31eb023
cc11992be2db480e9a4a467f95e8e8c7
RX(theta₉)
2d643426673045ac8f7b3a64c31eb023--cc11992be2db480e9a4a467f95e8e8c7
1352a3e5392b4325b13d5cfcaa638d07
RY(theta₁₂)
cc11992be2db480e9a4a467f95e8e8c7--1352a3e5392b4325b13d5cfcaa638d07
4e5e03fdb31b48ddae806997b0935df4
RX(theta₁₅)
1352a3e5392b4325b13d5cfcaa638d07--4e5e03fdb31b48ddae806997b0935df4
31192db2cb1545a295b2c7efa763fd4b
HamEvo
4e5e03fdb31b48ddae806997b0935df4--31192db2cb1545a295b2c7efa763fd4b
cad5b70f01574e80bcee7cfe7c38841a
31192db2cb1545a295b2c7efa763fd4b--cad5b70f01574e80bcee7cfe7c38841a
e6c3ab86c0c34573abafafa41cf85db2
4749b5a8f7d847ccaa82d57af8a31a6e
RX(theta₁)
91d9a9ba492946fc902b9f41fbdccdc7--4749b5a8f7d847ccaa82d57af8a31a6e
260e0214dd164fe7b051282c20c154dc
2
75cda4fa70e64a25a05d71e2874c26a1
RY(theta₄)
4749b5a8f7d847ccaa82d57af8a31a6e--75cda4fa70e64a25a05d71e2874c26a1
e329f2a97ca24db49e4480c3bc6082dc
RX(theta₇)
75cda4fa70e64a25a05d71e2874c26a1--e329f2a97ca24db49e4480c3bc6082dc
13a6ee5a35b5483dba25d121003e6a96
t = theta_t₀
e329f2a97ca24db49e4480c3bc6082dc--13a6ee5a35b5483dba25d121003e6a96
fa7635c0a1524765afd8deda25011773
RX(theta₁₀)
13a6ee5a35b5483dba25d121003e6a96--fa7635c0a1524765afd8deda25011773
834ac4d9b1204717a3b95c4f03b3ed92
RY(theta₁₃)
fa7635c0a1524765afd8deda25011773--834ac4d9b1204717a3b95c4f03b3ed92
bc044292849241e99602ccb04d03e6ba
RX(theta₁₆)
834ac4d9b1204717a3b95c4f03b3ed92--bc044292849241e99602ccb04d03e6ba
68d2e472790242408cfdf2983ae1f540
t = theta_t₁
bc044292849241e99602ccb04d03e6ba--68d2e472790242408cfdf2983ae1f540
68d2e472790242408cfdf2983ae1f540--e6c3ab86c0c34573abafafa41cf85db2
47a4a483363d41f4a7c5e05ed4a0a047
def6cda1a9ae40b89347d3a8e765e6e7
RX(theta₂)
260e0214dd164fe7b051282c20c154dc--def6cda1a9ae40b89347d3a8e765e6e7
d9d1129695174f059b1e0cbac2999ccb
RY(theta₅)
def6cda1a9ae40b89347d3a8e765e6e7--d9d1129695174f059b1e0cbac2999ccb
65daf5b62ce04c308f6115e6998bbf8e
RX(theta₈)
d9d1129695174f059b1e0cbac2999ccb--65daf5b62ce04c308f6115e6998bbf8e
61de8f42a2d44ea08eb75e21e0d60f56
65daf5b62ce04c308f6115e6998bbf8e--61de8f42a2d44ea08eb75e21e0d60f56
7b915a50372447988fe9dd05b58995a6
RX(theta₁₁)
61de8f42a2d44ea08eb75e21e0d60f56--7b915a50372447988fe9dd05b58995a6
f3ee5eac18d549bd80fa7cad0006c00c
RY(theta₁₄)
7b915a50372447988fe9dd05b58995a6--f3ee5eac18d549bd80fa7cad0006c00c
8be609a09b4c4804bb6cac9fe09acb27
RX(theta₁₇)
f3ee5eac18d549bd80fa7cad0006c00c--8be609a09b4c4804bb6cac9fe09acb27
a1a15a487190458eb18256dd829eaa29
8be609a09b4c4804bb6cac9fe09acb27--a1a15a487190458eb18256dd829eaa29
a1a15a487190458eb18256dd829eaa29--47a4a483363d41f4a7c5e05ed4a0a047
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_303be4a6a0a441818fa0026a5e618271
cluster_99c07b5d07f6404d9a14e0551f48ba20
bf030659d5eb4b599cc9c1811e698cb7
0
3e39780ff751435bbae2d25d03c49485
RX(theta₀)
bf030659d5eb4b599cc9c1811e698cb7--3e39780ff751435bbae2d25d03c49485
881494cd8db049929b73249d1bd9e4fe
1
61139f966fa342d4aa0db677aba6fb49
RY(theta₆)
3e39780ff751435bbae2d25d03c49485--61139f966fa342d4aa0db677aba6fb49
d1767ea4a34349f38fd15d30966ed304
RX(theta₁₂)
61139f966fa342d4aa0db677aba6fb49--d1767ea4a34349f38fd15d30966ed304
bdf1e6780ac146e984f62d7a9aeb3c48
d1767ea4a34349f38fd15d30966ed304--bdf1e6780ac146e984f62d7a9aeb3c48
66addd16577946cb997b8a223038995f
RX(theta₁₈)
bdf1e6780ac146e984f62d7a9aeb3c48--66addd16577946cb997b8a223038995f
98001bbfa1844553a894d2e7253f55a3
RY(theta₂₄)
66addd16577946cb997b8a223038995f--98001bbfa1844553a894d2e7253f55a3
333ed345db4b439ea52e74b9f356a0c8
RX(theta₃₀)
98001bbfa1844553a894d2e7253f55a3--333ed345db4b439ea52e74b9f356a0c8
0f55ad6feb7d484eb8ada1a5a645837f
333ed345db4b439ea52e74b9f356a0c8--0f55ad6feb7d484eb8ada1a5a645837f
ac44f2776c88426ba5e94cd362ba6347
0f55ad6feb7d484eb8ada1a5a645837f--ac44f2776c88426ba5e94cd362ba6347
b8e8c080ffc740d5b501c2453a15dc1c
09086bafb8ee4dd6a24ab839e0cde7c1
RX(theta₁)
881494cd8db049929b73249d1bd9e4fe--09086bafb8ee4dd6a24ab839e0cde7c1
7d22c6b560eb41e8b9a0c24e64dc31be
2
b4ab88d864c04d52ab2b309c2bab69e3
RY(theta₇)
09086bafb8ee4dd6a24ab839e0cde7c1--b4ab88d864c04d52ab2b309c2bab69e3
88dd6f9d272649e6b895fe68f24c8b71
RX(theta₁₃)
b4ab88d864c04d52ab2b309c2bab69e3--88dd6f9d272649e6b895fe68f24c8b71
996be771947145d7872757631679c9eb
88dd6f9d272649e6b895fe68f24c8b71--996be771947145d7872757631679c9eb
eca9dbcdd6fe4b8eb30b0b7c3351d087
RX(theta₁₉)
996be771947145d7872757631679c9eb--eca9dbcdd6fe4b8eb30b0b7c3351d087
927ce2b9ecf44902af56d0d769fc66f1
RY(theta₂₅)
eca9dbcdd6fe4b8eb30b0b7c3351d087--927ce2b9ecf44902af56d0d769fc66f1
ef73d41ceafd4c0881b8c20c58f305e8
RX(theta₃₁)
927ce2b9ecf44902af56d0d769fc66f1--ef73d41ceafd4c0881b8c20c58f305e8
445a237e454742d4ac4117fd7487411d
ef73d41ceafd4c0881b8c20c58f305e8--445a237e454742d4ac4117fd7487411d
445a237e454742d4ac4117fd7487411d--b8e8c080ffc740d5b501c2453a15dc1c
c22a5adfa5b0465ca2e189a2f233cf0e
d7afb6aa15df404fb79d656c30d948fb
RX(theta₂)
7d22c6b560eb41e8b9a0c24e64dc31be--d7afb6aa15df404fb79d656c30d948fb
6fb92adfa4024c018018256884b39c76
3
8bcdccc648e24948b517469a940c2963
RY(theta₈)
d7afb6aa15df404fb79d656c30d948fb--8bcdccc648e24948b517469a940c2963
39d2743d76d34b088ad6e1bf316487c4
RX(theta₁₄)
8bcdccc648e24948b517469a940c2963--39d2743d76d34b088ad6e1bf316487c4
dfb8e27208244eda8863a965a3de3725
HamEvo
39d2743d76d34b088ad6e1bf316487c4--dfb8e27208244eda8863a965a3de3725
474e26e8726041dab767b51bb0610e04
RX(theta₂₀)
dfb8e27208244eda8863a965a3de3725--474e26e8726041dab767b51bb0610e04
f9b62b4712434184afe77afd5e066ca0
RY(theta₂₆)
474e26e8726041dab767b51bb0610e04--f9b62b4712434184afe77afd5e066ca0
45a5e43a065f4ef8aedaf790f4e4197b
RX(theta₃₂)
f9b62b4712434184afe77afd5e066ca0--45a5e43a065f4ef8aedaf790f4e4197b
675104cab2b24dfeb819d2cc2f4dccc2
HamEvo
45a5e43a065f4ef8aedaf790f4e4197b--675104cab2b24dfeb819d2cc2f4dccc2
675104cab2b24dfeb819d2cc2f4dccc2--c22a5adfa5b0465ca2e189a2f233cf0e
7a3d77b25f9748209eba6ddd873bea64
3eac154f0fc84c83ac545d0dea1e6d39
RX(theta₃)
6fb92adfa4024c018018256884b39c76--3eac154f0fc84c83ac545d0dea1e6d39
c5cd33dc46314cd58c3065e9c5496063
4
80c43d77bb4d4e1ab31769946e19efab
RY(theta₉)
3eac154f0fc84c83ac545d0dea1e6d39--80c43d77bb4d4e1ab31769946e19efab
ecc9112c7fc84268879f02855ca5b8eb
RX(theta₁₅)
80c43d77bb4d4e1ab31769946e19efab--ecc9112c7fc84268879f02855ca5b8eb
af57da02010b47f68285b7220908ac65
t = theta_t₀
ecc9112c7fc84268879f02855ca5b8eb--af57da02010b47f68285b7220908ac65
f2c237b27d3c4fefb7c7a0601111999f
RX(theta₂₁)
af57da02010b47f68285b7220908ac65--f2c237b27d3c4fefb7c7a0601111999f
65800090246447808d7f09175899b232
RY(theta₂₇)
f2c237b27d3c4fefb7c7a0601111999f--65800090246447808d7f09175899b232
b041051ca9134af9868f21c01f532020
RX(theta₃₃)
65800090246447808d7f09175899b232--b041051ca9134af9868f21c01f532020
12b77c57b92942baa454993034751879
t = theta_t₁
b041051ca9134af9868f21c01f532020--12b77c57b92942baa454993034751879
12b77c57b92942baa454993034751879--7a3d77b25f9748209eba6ddd873bea64
d367172824f14b85b489b4f2b7bde6ce
cb6a1ade65f74cc49ae2d671c90e23c4
RX(theta₄)
c5cd33dc46314cd58c3065e9c5496063--cb6a1ade65f74cc49ae2d671c90e23c4
3b5d396cc19b4afcb2aa7277138c84b5
5
2f70d35ae064439f9e51733dec318de9
RY(theta₁₀)
cb6a1ade65f74cc49ae2d671c90e23c4--2f70d35ae064439f9e51733dec318de9
5e17da1c67604ece8bf832e4ca2e3710
RX(theta₁₆)
2f70d35ae064439f9e51733dec318de9--5e17da1c67604ece8bf832e4ca2e3710
5c64f9e5f20c4116ba90ec98b5542b9c
5e17da1c67604ece8bf832e4ca2e3710--5c64f9e5f20c4116ba90ec98b5542b9c
d8ae65632acf4bc58e7b5a2217f87bb1
RX(theta₂₂)
5c64f9e5f20c4116ba90ec98b5542b9c--d8ae65632acf4bc58e7b5a2217f87bb1
b654ff50ebed468f946932eeef4bd8a8
RY(theta₂₈)
d8ae65632acf4bc58e7b5a2217f87bb1--b654ff50ebed468f946932eeef4bd8a8
99910405fff54cf3933bc2c3c3bff4f7
RX(theta₃₄)
b654ff50ebed468f946932eeef4bd8a8--99910405fff54cf3933bc2c3c3bff4f7
cbcb73aebf794c00a09869f365a45c43
99910405fff54cf3933bc2c3c3bff4f7--cbcb73aebf794c00a09869f365a45c43
cbcb73aebf794c00a09869f365a45c43--d367172824f14b85b489b4f2b7bde6ce
9d570bd4ef134d00801d3f6f0da61df7
9c092553c7814df4ac0c4ad0cfb92490
RX(theta₅)
3b5d396cc19b4afcb2aa7277138c84b5--9c092553c7814df4ac0c4ad0cfb92490
bc59aa09179e465089d87023e2b409b2
RY(theta₁₁)
9c092553c7814df4ac0c4ad0cfb92490--bc59aa09179e465089d87023e2b409b2
00b651c903c04275aa7915933a956758
RX(theta₁₇)
bc59aa09179e465089d87023e2b409b2--00b651c903c04275aa7915933a956758
a7f20f191f1f4077985ecd617aba7222
00b651c903c04275aa7915933a956758--a7f20f191f1f4077985ecd617aba7222
6150276872d8402094fbff6d4512f5fb
RX(theta₂₃)
a7f20f191f1f4077985ecd617aba7222--6150276872d8402094fbff6d4512f5fb
e6f9cd31f65d4d458ea7c62c394e53b8
RY(theta₂₉)
6150276872d8402094fbff6d4512f5fb--e6f9cd31f65d4d458ea7c62c394e53b8
151d0cad16dd4a8abf9b40875135a45c
RX(theta₃₅)
e6f9cd31f65d4d458ea7c62c394e53b8--151d0cad16dd4a8abf9b40875135a45c
689f8ede5ba94626bf4fc818ba39c203
151d0cad16dd4a8abf9b40875135a45c--689f8ede5ba94626bf4fc818ba39c203
689f8ede5ba94626bf4fc818ba39c203--9d570bd4ef134d00801d3f6f0da61df7
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_9e26924fc28f4d7cbdb99e2091e2dc36
BPMA-1
cluster_c5de5e9ef65246418011d5aa144914c6
BPMA-0
81228504711549d7a5d6417e6eca541b
0
259e2cbefb39461590793827254a6b16
RX(iia_α₀₀)
81228504711549d7a5d6417e6eca541b--259e2cbefb39461590793827254a6b16
789aacab9f6640a1b173e5dcfea86c62
1
c795a70e2a3c45ab9297736417a3a94e
RY(iia_α₀₃)
259e2cbefb39461590793827254a6b16--c795a70e2a3c45ab9297736417a3a94e
134e3cc66e0f498eb917caedf561665d
c795a70e2a3c45ab9297736417a3a94e--134e3cc66e0f498eb917caedf561665d
f5d7528eacdf4b32aeeb0f409cc43528
134e3cc66e0f498eb917caedf561665d--f5d7528eacdf4b32aeeb0f409cc43528
4440f40ed19f4782a60180ed2ba2b711
RX(iia_γ₀₀)
f5d7528eacdf4b32aeeb0f409cc43528--4440f40ed19f4782a60180ed2ba2b711
74b0c73b3e394eb3b4771e63aaa7027c
4440f40ed19f4782a60180ed2ba2b711--74b0c73b3e394eb3b4771e63aaa7027c
bed831163c8449cfa6b11bd1ba1bf035
74b0c73b3e394eb3b4771e63aaa7027c--bed831163c8449cfa6b11bd1ba1bf035
4ba9cbbd5e0f42acafc3341a5a7189c1
RY(iia_β₀₃)
bed831163c8449cfa6b11bd1ba1bf035--4ba9cbbd5e0f42acafc3341a5a7189c1
3cb8f06b8e5c4a269e99e4d139fd2a98
RX(iia_β₀₀)
4ba9cbbd5e0f42acafc3341a5a7189c1--3cb8f06b8e5c4a269e99e4d139fd2a98
ff99f417844947919d2efe38a8698771
RX(iia_α₁₀)
3cb8f06b8e5c4a269e99e4d139fd2a98--ff99f417844947919d2efe38a8698771
e0426b38a12b4905842cca703e56a47a
RY(iia_α₁₃)
ff99f417844947919d2efe38a8698771--e0426b38a12b4905842cca703e56a47a
183517b1d14d45ffba43453ccef1819f
e0426b38a12b4905842cca703e56a47a--183517b1d14d45ffba43453ccef1819f
9f050a08432c473ab8f09426f3d9b38b
183517b1d14d45ffba43453ccef1819f--9f050a08432c473ab8f09426f3d9b38b
a41873e4bbb448619f2b2f6e9653b7da
RX(iia_γ₁₀)
9f050a08432c473ab8f09426f3d9b38b--a41873e4bbb448619f2b2f6e9653b7da
84406e1a696c44cf949b4e4f081fecce
a41873e4bbb448619f2b2f6e9653b7da--84406e1a696c44cf949b4e4f081fecce
beae7054171e4523bc9933766e9758c0
84406e1a696c44cf949b4e4f081fecce--beae7054171e4523bc9933766e9758c0
7af265715b154f7d86bc0c1ba4301776
RY(iia_β₁₃)
beae7054171e4523bc9933766e9758c0--7af265715b154f7d86bc0c1ba4301776
20eab53546764bf58b65566b76ba66b0
RX(iia_β₁₀)
7af265715b154f7d86bc0c1ba4301776--20eab53546764bf58b65566b76ba66b0
03cae83c303b4522a9ec7eb5465cdcd7
20eab53546764bf58b65566b76ba66b0--03cae83c303b4522a9ec7eb5465cdcd7
2363e2c9635e4c718dc375a2fae5343b
c6500f1302ad44148cf65076d33c1f6a
RX(iia_α₀₁)
789aacab9f6640a1b173e5dcfea86c62--c6500f1302ad44148cf65076d33c1f6a
57c3ba081e38476caf9fd6ac1e1f5268
2
95345b38f67841fc8b4c094933614ddb
RY(iia_α₀₄)
c6500f1302ad44148cf65076d33c1f6a--95345b38f67841fc8b4c094933614ddb
1822791027d14d8bace291947e440366
X
95345b38f67841fc8b4c094933614ddb--1822791027d14d8bace291947e440366
1822791027d14d8bace291947e440366--134e3cc66e0f498eb917caedf561665d
f68b7e98ba824ef7b4a85395c7902c38
1822791027d14d8bace291947e440366--f68b7e98ba824ef7b4a85395c7902c38
aef01eca3f0a4c128cfb39683e332a10
RX(iia_γ₀₁)
f68b7e98ba824ef7b4a85395c7902c38--aef01eca3f0a4c128cfb39683e332a10
ab47e6f882c647749698b14cebf75ce2
aef01eca3f0a4c128cfb39683e332a10--ab47e6f882c647749698b14cebf75ce2
55506b066bae4f4d87ef13a06ecee4e1
X
ab47e6f882c647749698b14cebf75ce2--55506b066bae4f4d87ef13a06ecee4e1
55506b066bae4f4d87ef13a06ecee4e1--bed831163c8449cfa6b11bd1ba1bf035
e4320974ffc24e528ab041aa5d833762
RY(iia_β₀₄)
55506b066bae4f4d87ef13a06ecee4e1--e4320974ffc24e528ab041aa5d833762
890451bab16b402cb14107486fd48a91
RX(iia_β₀₁)
e4320974ffc24e528ab041aa5d833762--890451bab16b402cb14107486fd48a91
61a7737ebfd14a4c812dd1709a33868f
RX(iia_α₁₁)
890451bab16b402cb14107486fd48a91--61a7737ebfd14a4c812dd1709a33868f
47b5982969334b9d9e128880084fd75c
RY(iia_α₁₄)
61a7737ebfd14a4c812dd1709a33868f--47b5982969334b9d9e128880084fd75c
79d98e0b2aa344f9ae9fe50944aab623
X
47b5982969334b9d9e128880084fd75c--79d98e0b2aa344f9ae9fe50944aab623
79d98e0b2aa344f9ae9fe50944aab623--183517b1d14d45ffba43453ccef1819f
d574e8ebe84f4b37a37c342898ccff5c
79d98e0b2aa344f9ae9fe50944aab623--d574e8ebe84f4b37a37c342898ccff5c
8c19e192e89e421c98ab2b0d276e277a
RX(iia_γ₁₁)
d574e8ebe84f4b37a37c342898ccff5c--8c19e192e89e421c98ab2b0d276e277a
e768de027a3f4d8c9c0446fa7f48f078
8c19e192e89e421c98ab2b0d276e277a--e768de027a3f4d8c9c0446fa7f48f078
638a0984e0f14ef295b0600c9a0d7334
X
e768de027a3f4d8c9c0446fa7f48f078--638a0984e0f14ef295b0600c9a0d7334
638a0984e0f14ef295b0600c9a0d7334--beae7054171e4523bc9933766e9758c0
37c95dbf7d6a4929af450fdfaf414cbc
RY(iia_β₁₄)
638a0984e0f14ef295b0600c9a0d7334--37c95dbf7d6a4929af450fdfaf414cbc
da598ed651654e298e06375360da658b
RX(iia_β₁₁)
37c95dbf7d6a4929af450fdfaf414cbc--da598ed651654e298e06375360da658b
da598ed651654e298e06375360da658b--2363e2c9635e4c718dc375a2fae5343b
eceabaf05c83481e97c494ad3826891d
6c8d16c9c0e349c5a38513b2a2cdb5e8
RX(iia_α₀₂)
57c3ba081e38476caf9fd6ac1e1f5268--6c8d16c9c0e349c5a38513b2a2cdb5e8
d1bde85199024d539cfee88e4a991423
RY(iia_α₀₅)
6c8d16c9c0e349c5a38513b2a2cdb5e8--d1bde85199024d539cfee88e4a991423
eb20d87f6eb347c087fedba1f1aeedc3
d1bde85199024d539cfee88e4a991423--eb20d87f6eb347c087fedba1f1aeedc3
9894a4eaf7a1400499303e00cbd785db
X
eb20d87f6eb347c087fedba1f1aeedc3--9894a4eaf7a1400499303e00cbd785db
9894a4eaf7a1400499303e00cbd785db--f68b7e98ba824ef7b4a85395c7902c38
b76547042f5a43808341753a0a1dd678
RX(iia_γ₀₂)
9894a4eaf7a1400499303e00cbd785db--b76547042f5a43808341753a0a1dd678
a9b5c2c2216143e8b515d7056d5ee6d7
X
b76547042f5a43808341753a0a1dd678--a9b5c2c2216143e8b515d7056d5ee6d7
a9b5c2c2216143e8b515d7056d5ee6d7--ab47e6f882c647749698b14cebf75ce2
ca8378d34aa14c67a9b0c7e86c1d4465
a9b5c2c2216143e8b515d7056d5ee6d7--ca8378d34aa14c67a9b0c7e86c1d4465
07e232341a074a02b053a8715ec75c68
RY(iia_β₀₅)
ca8378d34aa14c67a9b0c7e86c1d4465--07e232341a074a02b053a8715ec75c68
65d7058cff9d494ab44ed3ac2e9aea9b
RX(iia_β₀₂)
07e232341a074a02b053a8715ec75c68--65d7058cff9d494ab44ed3ac2e9aea9b
b78880e2e3354cb3bb5c6ac457a199b1
RX(iia_α₁₂)
65d7058cff9d494ab44ed3ac2e9aea9b--b78880e2e3354cb3bb5c6ac457a199b1
dbf98033b86443db90d4f7b593fd8478
RY(iia_α₁₅)
b78880e2e3354cb3bb5c6ac457a199b1--dbf98033b86443db90d4f7b593fd8478
0ffed9d1b5ff4e5288a694be630f31c9
dbf98033b86443db90d4f7b593fd8478--0ffed9d1b5ff4e5288a694be630f31c9
de9bacd3ce2e48fcbb8aab6193a4ef5d
X
0ffed9d1b5ff4e5288a694be630f31c9--de9bacd3ce2e48fcbb8aab6193a4ef5d
de9bacd3ce2e48fcbb8aab6193a4ef5d--d574e8ebe84f4b37a37c342898ccff5c
10efe4999cfb42b4bfba9afd55423ab1
RX(iia_γ₁₂)
de9bacd3ce2e48fcbb8aab6193a4ef5d--10efe4999cfb42b4bfba9afd55423ab1
a64c4fc2d63b42d4b18ffea9d11f08af
X
10efe4999cfb42b4bfba9afd55423ab1--a64c4fc2d63b42d4b18ffea9d11f08af
a64c4fc2d63b42d4b18ffea9d11f08af--e768de027a3f4d8c9c0446fa7f48f078
b7ef84fa99424bc592abaad1fd48ecbb
a64c4fc2d63b42d4b18ffea9d11f08af--b7ef84fa99424bc592abaad1fd48ecbb
330c46fd79974d178bee7d64fa4b4191
RY(iia_β₁₅)
b7ef84fa99424bc592abaad1fd48ecbb--330c46fd79974d178bee7d64fa4b4191
0b995d55a56c4b29b4212a609de25626
RX(iia_β₁₂)
330c46fd79974d178bee7d64fa4b4191--0b995d55a56c4b29b4212a609de25626
0b995d55a56c4b29b4212a609de25626--eceabaf05c83481e97c494ad3826891d