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_d7ff932d45b74f6698f2acd23f32b956
Constant Chebyshev FM
cluster_28ee76c715204d48b8c7b93008a38324
Constant Fourier FM
700b9fcd3fdf4265a33f7b838c7d4ad8
0
09f05f94e99343418fa82a9c4a0349de
RX(phi)
700b9fcd3fdf4265a33f7b838c7d4ad8--09f05f94e99343418fa82a9c4a0349de
a1f228e7e35148aaa2a6a4941e6c5db9
1
d35ce2d55e424a68abea1fd76fe3a2ac
RX(acos(phi))
09f05f94e99343418fa82a9c4a0349de--d35ce2d55e424a68abea1fd76fe3a2ac
dc50ab89d78745eaaef0c592f304f311
d35ce2d55e424a68abea1fd76fe3a2ac--dc50ab89d78745eaaef0c592f304f311
8deb6d73b57e4032bb089ae3891dd823
d447b804d7f64ccc8d1db76a0b0da50d
RX(phi)
a1f228e7e35148aaa2a6a4941e6c5db9--d447b804d7f64ccc8d1db76a0b0da50d
db7bc09a2235432c9de6fdb1232fd3ec
2
eda5269047d04e52b1efca9ac12d6b5e
RX(acos(phi))
d447b804d7f64ccc8d1db76a0b0da50d--eda5269047d04e52b1efca9ac12d6b5e
eda5269047d04e52b1efca9ac12d6b5e--8deb6d73b57e4032bb089ae3891dd823
d9abaf67fe934dd9b8f44b737daa23d2
839c7875a30e4235967eeadd4d534b0f
RX(phi)
db7bc09a2235432c9de6fdb1232fd3ec--839c7875a30e4235967eeadd4d534b0f
535e0a2a0f064fa3881cc3298ffca2af
RX(acos(phi))
839c7875a30e4235967eeadd4d534b0f--535e0a2a0f064fa3881cc3298ffca2af
535e0a2a0f064fa3881cc3298ffca2af--d9abaf67fe934dd9b8f44b737daa23d2
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_623f43fc50224521beb033bd3f0c3f06
Constant <function custom_fn at 0x7ff7b4d6a0e0> FM
cluster_2db56e791df04ef88697fe69391f4051
Constant asin FM
3972873cc3b54f2c81d5af88f61b2d8e
0
e74b39386fa545d186ad49bd57a7ccbf
RX(asin(phi))
3972873cc3b54f2c81d5af88f61b2d8e--e74b39386fa545d186ad49bd57a7ccbf
96c1b9e906574709b41b97a872053eb6
1
398bd692c5f349e6b8f7bf886df8b027
RX(phi**2 + asin(phi))
e74b39386fa545d186ad49bd57a7ccbf--398bd692c5f349e6b8f7bf886df8b027
92030472bbf94217999521f902120c24
398bd692c5f349e6b8f7bf886df8b027--92030472bbf94217999521f902120c24
7d00c95f009544f1a8fe61a5c64df82b
2c7b55246be24e1ca406d9d3603f6caf
RX(asin(phi))
96c1b9e906574709b41b97a872053eb6--2c7b55246be24e1ca406d9d3603f6caf
d2399b61d7eb4caba1d78cf3cf89744d
2
e74681e1c1e54c40993364afd26adfe1
RX(phi**2 + asin(phi))
2c7b55246be24e1ca406d9d3603f6caf--e74681e1c1e54c40993364afd26adfe1
e74681e1c1e54c40993364afd26adfe1--7d00c95f009544f1a8fe61a5c64df82b
1509b0506eac41a7a385d1a2c5f46157
b53cd138714843aab72b698c953828f9
RX(asin(phi))
d2399b61d7eb4caba1d78cf3cf89744d--b53cd138714843aab72b698c953828f9
bc0c9ce6128245a8bda1e8b7b8d8ad8d
RX(phi**2 + asin(phi))
b53cd138714843aab72b698c953828f9--bc0c9ce6128245a8bda1e8b7b8d8ad8d
bc0c9ce6128245a8bda1e8b7b8d8ad8d--1509b0506eac41a7a385d1a2c5f46157
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_0de7d50bfe6945428d5b165d7d593d55
Exponential Fourier FM
cluster_9a58478ae474450f98e21b4ba135fe03
Constant Fourier FM
cluster_a9646dd3464c4b05922850a4859889f6
Tower Fourier FM
f386df6a0f2348cf9d74a5503323128e
0
bb6aa80f5b0a474984a885c7bbcbb906
RX(phi)
f386df6a0f2348cf9d74a5503323128e--bb6aa80f5b0a474984a885c7bbcbb906
7c55bf47c4234c0c8d10b5d1f35ec287
1
9a716d63dcdf4c188f0c5daa73d252e6
RX(1.0*phi)
bb6aa80f5b0a474984a885c7bbcbb906--9a716d63dcdf4c188f0c5daa73d252e6
60d9b055786142869dce9d964ba5c1d5
RX(1.0*phi)
9a716d63dcdf4c188f0c5daa73d252e6--60d9b055786142869dce9d964ba5c1d5
536f4edb41eb4bf48287b6eab8c7fd67
60d9b055786142869dce9d964ba5c1d5--536f4edb41eb4bf48287b6eab8c7fd67
5db11d87e3a64f6a951668a7318025ca
a8201d808db3473db759e73244fb0906
RX(phi)
7c55bf47c4234c0c8d10b5d1f35ec287--a8201d808db3473db759e73244fb0906
d964f452cbec4b929125f999135c1a5c
2
5e3dd9d941ef4a4aa22072b2b8f802e8
RX(2.0*phi)
a8201d808db3473db759e73244fb0906--5e3dd9d941ef4a4aa22072b2b8f802e8
b9d6ca297cf44f7ca310bc80b5692a7c
RX(2.0*phi)
5e3dd9d941ef4a4aa22072b2b8f802e8--b9d6ca297cf44f7ca310bc80b5692a7c
b9d6ca297cf44f7ca310bc80b5692a7c--5db11d87e3a64f6a951668a7318025ca
8857916480014e9dbd9ef58686762ebe
335236dc5374449193204177f0749571
RX(phi)
d964f452cbec4b929125f999135c1a5c--335236dc5374449193204177f0749571
1b52a637144b4d41a61ed6da7f4624cc
3
096ef7cfde324bbfaf4f225605e9df29
RX(3.0*phi)
335236dc5374449193204177f0749571--096ef7cfde324bbfaf4f225605e9df29
b009414a2b5647f9bfe508b2bbfe05c4
RX(4.0*phi)
096ef7cfde324bbfaf4f225605e9df29--b009414a2b5647f9bfe508b2bbfe05c4
b009414a2b5647f9bfe508b2bbfe05c4--8857916480014e9dbd9ef58686762ebe
6166d371d1324f7d9d68afae44843ce8
bed899f25ffd4be9b6f9e1ef7b4ccd6c
RX(phi)
1b52a637144b4d41a61ed6da7f4624cc--bed899f25ffd4be9b6f9e1ef7b4ccd6c
732a487552e04c8ea2b278398edc1f55
4
3cdd710c186b4549802ace9606a0250f
RX(4.0*phi)
bed899f25ffd4be9b6f9e1ef7b4ccd6c--3cdd710c186b4549802ace9606a0250f
e594af9f7b9e4d6a8d3e3cf44db1fe8e
RX(8.0*phi)
3cdd710c186b4549802ace9606a0250f--e594af9f7b9e4d6a8d3e3cf44db1fe8e
e594af9f7b9e4d6a8d3e3cf44db1fe8e--6166d371d1324f7d9d68afae44843ce8
2c6423427df14e068ce59e4aa892104b
d04951eebcf943d5be4b522eff73aa8a
RX(phi)
732a487552e04c8ea2b278398edc1f55--d04951eebcf943d5be4b522eff73aa8a
84431e478649490685de7800cc0fb92d
RX(5.0*phi)
d04951eebcf943d5be4b522eff73aa8a--84431e478649490685de7800cc0fb92d
7ff029ded5c146bb9bae3f42852ec389
RX(16.0*phi)
84431e478649490685de7800cc0fb92d--7ff029ded5c146bb9bae3f42852ec389
7ff029ded5c146bb9bae3f42852ec389--2c6423427df14e068ce59e4aa892104b
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
3a5d98c7ba0f4e18b232c22d1f8b8dcb
0
6945261766434ad38f6d8f236c95b8b2
RX(1.0*acos(phi))
3a5d98c7ba0f4e18b232c22d1f8b8dcb--6945261766434ad38f6d8f236c95b8b2
a6722dc782894449b2c890f96c4625a9
1
61f5e3c348f543698c19a917275df012
6945261766434ad38f6d8f236c95b8b2--61f5e3c348f543698c19a917275df012
33f4b4409c934fd0aecff1aa5cdc6293
43a51464f4084be3bacdc6d5e1ed8a92
RX(1.414*acos(phi))
a6722dc782894449b2c890f96c4625a9--43a51464f4084be3bacdc6d5e1ed8a92
58faa1e1e75d41baa0ef09fb36c56a67
2
43a51464f4084be3bacdc6d5e1ed8a92--33f4b4409c934fd0aecff1aa5cdc6293
4edd2c52c335456ebebb7b69d9e5a639
2943295271c946108af4293e44e169bb
RX(1.732*acos(phi))
58faa1e1e75d41baa0ef09fb36c56a67--2943295271c946108af4293e44e169bb
4e238c010ee14a8aada84005d8b7b4bf
3
2943295271c946108af4293e44e169bb--4edd2c52c335456ebebb7b69d9e5a639
5ff69715a77a43b5a5a9ac9d1194e192
3635b284e5b3470293a8d7e99a84dcb2
RX(2.0*acos(phi))
4e238c010ee14a8aada84005d8b7b4bf--3635b284e5b3470293a8d7e99a84dcb2
1f2912a599f44fb49292485b8df5346b
4
3635b284e5b3470293a8d7e99a84dcb2--5ff69715a77a43b5a5a9ac9d1194e192
c0e10ef8137849f3a9ed68a5d97fdbc3
442e82d04c6d4a6781b9ed652c6a00da
RX(2.236*acos(phi))
1f2912a599f44fb49292485b8df5346b--442e82d04c6d4a6781b9ed652c6a00da
442e82d04c6d4a6781b9ed652c6a00da--c0e10ef8137849f3a9ed68a5d97fdbc3
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
5b6bea4742064b5391fff0d408f14683
0
be9ca40390424691adce2ccc10deac02
RX(1.0*phi*w₀)
5b6bea4742064b5391fff0d408f14683--be9ca40390424691adce2ccc10deac02
3551a60f2b8241139c4f188161e52d44
1
67c76ee9d0074488891427de2181e7f5
be9ca40390424691adce2ccc10deac02--67c76ee9d0074488891427de2181e7f5
1369a1ecadb74b46b4903eda8d8ea1ac
6b29de6aff3f4731876ac232f5e63996
RX(2.0*phi*w₁)
3551a60f2b8241139c4f188161e52d44--6b29de6aff3f4731876ac232f5e63996
f72a58452ce34852b677552d0b601006
2
6b29de6aff3f4731876ac232f5e63996--1369a1ecadb74b46b4903eda8d8ea1ac
e53bc70aef9e46f7b14ef0663f047298
2d10d007e0134eb1bebef5cd686e3497
RX(4.0*phi*w₂)
f72a58452ce34852b677552d0b601006--2d10d007e0134eb1bebef5cd686e3497
125a236ab37c41bb83b7708307d4d8e7
3
2d10d007e0134eb1bebef5cd686e3497--e53bc70aef9e46f7b14ef0663f047298
209798b6e77c4df39b5ef8f22388d895
405ec779c5e04c33ad0da6eec110aff8
RX(8.0*phi*w₃)
125a236ab37c41bb83b7708307d4d8e7--405ec779c5e04c33ad0da6eec110aff8
9e49a77597844882a04da715a057cfc0
4
405ec779c5e04c33ad0da6eec110aff8--209798b6e77c4df39b5ef8f22388d895
e4d821fdae344fb4aa2adba3a714f357
9d4f27e2a26544f6ba7ce003abda414c
RX(16.0*phi*w₄)
9e49a77597844882a04da715a057cfc0--9d4f27e2a26544f6ba7ce003abda414c
9d4f27e2a26544f6ba7ce003abda414c--e4d821fdae344fb4aa2adba3a714f357
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
ea717baf0aa743e0a2afd9480b34fafe
0
bee10117e4ae4cc7bae92e333cc6e61b
RY(80.0*acos(w₄*(0.667*x + 1.667)))
ea717baf0aa743e0a2afd9480b34fafe--bee10117e4ae4cc7bae92e333cc6e61b
4ccc3c2cbbdd436baec0d08645503410
1
e068d479fee541a782274c788acc39bb
bee10117e4ae4cc7bae92e333cc6e61b--e068d479fee541a782274c788acc39bb
36b961e3733d4e4c9584371b9e73382f
39e8daca804341239daae51309699267
RY(40.0*acos(w₃*(0.667*x + 1.667)))
4ccc3c2cbbdd436baec0d08645503410--39e8daca804341239daae51309699267
56dc90d60c3e4b69b08cf6eccf97a44a
2
39e8daca804341239daae51309699267--36b961e3733d4e4c9584371b9e73382f
871bc193168f4807bd93cb88118f3862
c36fc92c05ae4f7aa71bf6ecf55524a0
RY(20.0*acos(w₂*(0.667*x + 1.667)))
56dc90d60c3e4b69b08cf6eccf97a44a--c36fc92c05ae4f7aa71bf6ecf55524a0
eac7a0b8a25242af8c18529669019a4d
3
c36fc92c05ae4f7aa71bf6ecf55524a0--871bc193168f4807bd93cb88118f3862
104ab0a6c71d4574ba872d76aa9c814f
1d5dc5cd8143497d87d406f403b559a9
RY(10.0*acos(w₁*(0.667*x + 1.667)))
eac7a0b8a25242af8c18529669019a4d--1d5dc5cd8143497d87d406f403b559a9
3bd0a0e5146344a790f79047eead620f
4
1d5dc5cd8143497d87d406f403b559a9--104ab0a6c71d4574ba872d76aa9c814f
592b1d72149a4bb58970f0e48230938b
c5f3e91241a541b6a8770e7436cab990
RY(5.0*acos(w₀*(0.667*x + 1.667)))
3bd0a0e5146344a790f79047eead620f--c5f3e91241a541b6a8770e7436cab990
c5f3e91241a541b6a8770e7436cab990--592b1d72149a4bb58970f0e48230938b
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
460540788e2c46418cffdfe25f84d863
0
02473ef4842f4c6790d35e29b4d53769
RX(theta₀)
460540788e2c46418cffdfe25f84d863--02473ef4842f4c6790d35e29b4d53769
59b3dad9832c4e6d820b84a0d27b6818
1
49ddd62deff948ce9e5366f464a2cd67
RY(theta₃)
02473ef4842f4c6790d35e29b4d53769--49ddd62deff948ce9e5366f464a2cd67
eb6129e8d30f455fbf43cc84d0b967b3
RX(theta₆)
49ddd62deff948ce9e5366f464a2cd67--eb6129e8d30f455fbf43cc84d0b967b3
1eac9ad10751498185836ce35fb9b329
eb6129e8d30f455fbf43cc84d0b967b3--1eac9ad10751498185836ce35fb9b329
0011623e25b84891836ec261c2961ebb
1eac9ad10751498185836ce35fb9b329--0011623e25b84891836ec261c2961ebb
2963a8a0595f4547b100d2f11c9d0d0d
RX(theta₉)
0011623e25b84891836ec261c2961ebb--2963a8a0595f4547b100d2f11c9d0d0d
dc75d097077943a69e3069cc50fb5157
RY(theta₁₂)
2963a8a0595f4547b100d2f11c9d0d0d--dc75d097077943a69e3069cc50fb5157
a5a30afd54ca407fbd3f7c402416507c
RX(theta₁₅)
dc75d097077943a69e3069cc50fb5157--a5a30afd54ca407fbd3f7c402416507c
ac6c84b9d2504471a9f20f90a29fe538
a5a30afd54ca407fbd3f7c402416507c--ac6c84b9d2504471a9f20f90a29fe538
a7ed2126168d48179175ef8983c6b20d
ac6c84b9d2504471a9f20f90a29fe538--a7ed2126168d48179175ef8983c6b20d
8b1fc662783044118a3e8c2591dfa69c
a7ed2126168d48179175ef8983c6b20d--8b1fc662783044118a3e8c2591dfa69c
97651ea0015f4690a759c81dd47e7562
e2cdafbcd4a8425387db386e06b7754a
RX(theta₁)
59b3dad9832c4e6d820b84a0d27b6818--e2cdafbcd4a8425387db386e06b7754a
732f939994b64c9d8e4911fc8b901934
2
443ca5964ba14f6a80733c3c3bce1f57
RY(theta₄)
e2cdafbcd4a8425387db386e06b7754a--443ca5964ba14f6a80733c3c3bce1f57
331948fde30941fabb78c3d4e8c1e410
RX(theta₇)
443ca5964ba14f6a80733c3c3bce1f57--331948fde30941fabb78c3d4e8c1e410
4b45288c52f44930b733453921559cef
X
331948fde30941fabb78c3d4e8c1e410--4b45288c52f44930b733453921559cef
4b45288c52f44930b733453921559cef--1eac9ad10751498185836ce35fb9b329
982c0f86831d46229b2353b965f35e7f
4b45288c52f44930b733453921559cef--982c0f86831d46229b2353b965f35e7f
fd9806c43f4c406d8183d3c401258433
RX(theta₁₀)
982c0f86831d46229b2353b965f35e7f--fd9806c43f4c406d8183d3c401258433
369e63e73e074b7789ed81d9500559ca
RY(theta₁₃)
fd9806c43f4c406d8183d3c401258433--369e63e73e074b7789ed81d9500559ca
1f68d80b63844ceb8c3ff09a7ed0d680
RX(theta₁₆)
369e63e73e074b7789ed81d9500559ca--1f68d80b63844ceb8c3ff09a7ed0d680
a27b2ff526a74aca8357565fca3d76e0
X
1f68d80b63844ceb8c3ff09a7ed0d680--a27b2ff526a74aca8357565fca3d76e0
a27b2ff526a74aca8357565fca3d76e0--ac6c84b9d2504471a9f20f90a29fe538
48594ff3732645a885c4b1011b99d6a7
a27b2ff526a74aca8357565fca3d76e0--48594ff3732645a885c4b1011b99d6a7
48594ff3732645a885c4b1011b99d6a7--97651ea0015f4690a759c81dd47e7562
de2219e92da34bfc9b56c449f6dc04fe
73f1c3de59244b4f9e5e9cd0c66dc108
RX(theta₂)
732f939994b64c9d8e4911fc8b901934--73f1c3de59244b4f9e5e9cd0c66dc108
7eabe55d89b640e1816fea79a088a2c4
RY(theta₅)
73f1c3de59244b4f9e5e9cd0c66dc108--7eabe55d89b640e1816fea79a088a2c4
effc77b5fa0a433abfc61e4530eae299
RX(theta₈)
7eabe55d89b640e1816fea79a088a2c4--effc77b5fa0a433abfc61e4530eae299
6b864ac7a71a49fda829eb0f763f9d44
effc77b5fa0a433abfc61e4530eae299--6b864ac7a71a49fda829eb0f763f9d44
653f56c9d9524790a9e2ad805707f3d3
X
6b864ac7a71a49fda829eb0f763f9d44--653f56c9d9524790a9e2ad805707f3d3
653f56c9d9524790a9e2ad805707f3d3--982c0f86831d46229b2353b965f35e7f
d6da2d04c59b47038a500772b284ecd3
RX(theta₁₁)
653f56c9d9524790a9e2ad805707f3d3--d6da2d04c59b47038a500772b284ecd3
e7909cd5ae1d44cfb240f18473a346dc
RY(theta₁₄)
d6da2d04c59b47038a500772b284ecd3--e7909cd5ae1d44cfb240f18473a346dc
88ec68f7f94a41ab8023832c636d701b
RX(theta₁₇)
e7909cd5ae1d44cfb240f18473a346dc--88ec68f7f94a41ab8023832c636d701b
21a82170f0d649e5ad18e8164988e2bc
88ec68f7f94a41ab8023832c636d701b--21a82170f0d649e5ad18e8164988e2bc
b2a56972bd4e46ad978db06fd3bd19c1
X
21a82170f0d649e5ad18e8164988e2bc--b2a56972bd4e46ad978db06fd3bd19c1
b2a56972bd4e46ad978db06fd3bd19c1--48594ff3732645a885c4b1011b99d6a7
b2a56972bd4e46ad978db06fd3bd19c1--de2219e92da34bfc9b56c449f6dc04fe
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
61943e2cb18744b0938e841427b5299c
0
1334d672a62a40fd9aef10644d4f892a
RX(phi₀)
61943e2cb18744b0938e841427b5299c--1334d672a62a40fd9aef10644d4f892a
8991e422240548cbb50d33c70eb7ae52
1
06eeaa3a15bb44d5bf69ff2eeea15def
RY(phi₃)
1334d672a62a40fd9aef10644d4f892a--06eeaa3a15bb44d5bf69ff2eeea15def
893407624eae417e91285fbba1af878b
RX(phi₆)
06eeaa3a15bb44d5bf69ff2eeea15def--893407624eae417e91285fbba1af878b
3a2e681e1627442ca6de67f18a8d1984
893407624eae417e91285fbba1af878b--3a2e681e1627442ca6de67f18a8d1984
6fbff82442e344eea3d2e6ab62e0dec8
3a2e681e1627442ca6de67f18a8d1984--6fbff82442e344eea3d2e6ab62e0dec8
96da3651fa2a43eb880b59c3ca4ce7a3
RX(phi₉)
6fbff82442e344eea3d2e6ab62e0dec8--96da3651fa2a43eb880b59c3ca4ce7a3
e1b8d737f61140b8a08c15887884aeac
RY(phi₁₂)
96da3651fa2a43eb880b59c3ca4ce7a3--e1b8d737f61140b8a08c15887884aeac
f4734f10b40d48b4b9520c29881c6b11
RX(phi₁₅)
e1b8d737f61140b8a08c15887884aeac--f4734f10b40d48b4b9520c29881c6b11
5b476e69eeab4e09a0a5474d286ba3c2
f4734f10b40d48b4b9520c29881c6b11--5b476e69eeab4e09a0a5474d286ba3c2
c967ac92786b4b8c975eb2af0cecc56f
5b476e69eeab4e09a0a5474d286ba3c2--c967ac92786b4b8c975eb2af0cecc56f
b5f17e5db4e84b23ae65475b6f32f885
c967ac92786b4b8c975eb2af0cecc56f--b5f17e5db4e84b23ae65475b6f32f885
da943b0686ba4db687b0c27fd23cb3d4
de076058491f41a994c496521c35b05d
RX(phi₁)
8991e422240548cbb50d33c70eb7ae52--de076058491f41a994c496521c35b05d
ea8d96da4c804a1ab5c2ecf4decca164
2
46fd4ffc70bc4d34a472dc170e15e02a
RY(phi₄)
de076058491f41a994c496521c35b05d--46fd4ffc70bc4d34a472dc170e15e02a
25489e8a21df474991fa02b18a0da181
RX(phi₇)
46fd4ffc70bc4d34a472dc170e15e02a--25489e8a21df474991fa02b18a0da181
686d7a77b85e4212a6a688bf0b17fb23
PHASE(phi_ent₀)
25489e8a21df474991fa02b18a0da181--686d7a77b85e4212a6a688bf0b17fb23
686d7a77b85e4212a6a688bf0b17fb23--3a2e681e1627442ca6de67f18a8d1984
04265aa5314e45038c879fd1dcb93d6d
686d7a77b85e4212a6a688bf0b17fb23--04265aa5314e45038c879fd1dcb93d6d
48a9eb094a764bf08577f5ef3b5de864
RX(phi₁₀)
04265aa5314e45038c879fd1dcb93d6d--48a9eb094a764bf08577f5ef3b5de864
85928f66be21434d98542e1face88408
RY(phi₁₃)
48a9eb094a764bf08577f5ef3b5de864--85928f66be21434d98542e1face88408
9682b87d5e18475abd9837321dfb29cb
RX(phi₁₆)
85928f66be21434d98542e1face88408--9682b87d5e18475abd9837321dfb29cb
78cc532235fe4f5d9f3663986aaa9e08
PHASE(phi_ent₂)
9682b87d5e18475abd9837321dfb29cb--78cc532235fe4f5d9f3663986aaa9e08
78cc532235fe4f5d9f3663986aaa9e08--5b476e69eeab4e09a0a5474d286ba3c2
811624f2296f49589849abe678e5fd1e
78cc532235fe4f5d9f3663986aaa9e08--811624f2296f49589849abe678e5fd1e
811624f2296f49589849abe678e5fd1e--da943b0686ba4db687b0c27fd23cb3d4
546a88bf459949dabceeebb0ed197731
5fffaf7bfe42405b907a2f2e4d497781
RX(phi₂)
ea8d96da4c804a1ab5c2ecf4decca164--5fffaf7bfe42405b907a2f2e4d497781
541ca4b562d548fea2f5e911ae86e2ae
RY(phi₅)
5fffaf7bfe42405b907a2f2e4d497781--541ca4b562d548fea2f5e911ae86e2ae
3ec0fa5eb1414f35b892faf7cad2ad89
RX(phi₈)
541ca4b562d548fea2f5e911ae86e2ae--3ec0fa5eb1414f35b892faf7cad2ad89
4d3d353a913048a582d34cbf96408a4a
3ec0fa5eb1414f35b892faf7cad2ad89--4d3d353a913048a582d34cbf96408a4a
ae9e763240634226913d46804cbbf160
PHASE(phi_ent₁)
4d3d353a913048a582d34cbf96408a4a--ae9e763240634226913d46804cbbf160
ae9e763240634226913d46804cbbf160--04265aa5314e45038c879fd1dcb93d6d
30237d84fb7a4832b21f73fc576bc45b
RX(phi₁₁)
ae9e763240634226913d46804cbbf160--30237d84fb7a4832b21f73fc576bc45b
afe7781dbb05414393e4356aec59a80d
RY(phi₁₄)
30237d84fb7a4832b21f73fc576bc45b--afe7781dbb05414393e4356aec59a80d
3bfafcdfc4dc4fdc83fd3bd7f7b89156
RX(phi₁₇)
afe7781dbb05414393e4356aec59a80d--3bfafcdfc4dc4fdc83fd3bd7f7b89156
19a4ad59d95f47259139868e7b1beeac
3bfafcdfc4dc4fdc83fd3bd7f7b89156--19a4ad59d95f47259139868e7b1beeac
20df186c17b24aecb03293c7833f5f0f
PHASE(phi_ent₃)
19a4ad59d95f47259139868e7b1beeac--20df186c17b24aecb03293c7833f5f0f
20df186c17b24aecb03293c7833f5f0f--811624f2296f49589849abe678e5fd1e
20df186c17b24aecb03293c7833f5f0f--546a88bf459949dabceeebb0ed197731
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_10d1f694cd98442ba676f87cf3cfce84
cluster_1932005d89e241e8bdbbac2520c3eba5
8329f32507fe43d09375b7ca90185a9c
0
46c1b6c00d574b7d9bc63df0f79e88d3
RX(theta₀)
8329f32507fe43d09375b7ca90185a9c--46c1b6c00d574b7d9bc63df0f79e88d3
09e04634a08546ca957ecaf5121994cd
1
1e04690cf3df41a2874fbf4f422e0e38
RY(theta₃)
46c1b6c00d574b7d9bc63df0f79e88d3--1e04690cf3df41a2874fbf4f422e0e38
2ebbf7370870470eba9bd58161f4116c
RX(theta₆)
1e04690cf3df41a2874fbf4f422e0e38--2ebbf7370870470eba9bd58161f4116c
358d222615204f3aaec691e24ea0c139
HamEvo
2ebbf7370870470eba9bd58161f4116c--358d222615204f3aaec691e24ea0c139
8d0112c536cb43619d97983aa5b02176
RX(theta₉)
358d222615204f3aaec691e24ea0c139--8d0112c536cb43619d97983aa5b02176
ae25205f37704fbcafcabf6c8255a8bd
RY(theta₁₂)
8d0112c536cb43619d97983aa5b02176--ae25205f37704fbcafcabf6c8255a8bd
550be3907a364f2690a527fb06edcc25
RX(theta₁₅)
ae25205f37704fbcafcabf6c8255a8bd--550be3907a364f2690a527fb06edcc25
e119f5e87be640f4aadf9b5242a98c93
HamEvo
550be3907a364f2690a527fb06edcc25--e119f5e87be640f4aadf9b5242a98c93
7ca6e1d81b24490196c1026931d4d09f
e119f5e87be640f4aadf9b5242a98c93--7ca6e1d81b24490196c1026931d4d09f
58de6281f8a44cfd923240d9c32b2b6a
092f89b6987e4a6aa73b7344195e5376
RX(theta₁)
09e04634a08546ca957ecaf5121994cd--092f89b6987e4a6aa73b7344195e5376
c4e0fd94411746168740cde708530905
2
7f0c6c4bddd243219d601247b778ead5
RY(theta₄)
092f89b6987e4a6aa73b7344195e5376--7f0c6c4bddd243219d601247b778ead5
6e8b281064f3408ea4f1cf75beb35385
RX(theta₇)
7f0c6c4bddd243219d601247b778ead5--6e8b281064f3408ea4f1cf75beb35385
ea1b333f45dd440184b682b7f242e0d1
t = theta_t₀
6e8b281064f3408ea4f1cf75beb35385--ea1b333f45dd440184b682b7f242e0d1
62d1841e96634309a0c238d47fbc716c
RX(theta₁₀)
ea1b333f45dd440184b682b7f242e0d1--62d1841e96634309a0c238d47fbc716c
7cb4c1107d754987b6fe45063eee7a4e
RY(theta₁₃)
62d1841e96634309a0c238d47fbc716c--7cb4c1107d754987b6fe45063eee7a4e
3abe56696e704644a839fc87d55e3f66
RX(theta₁₆)
7cb4c1107d754987b6fe45063eee7a4e--3abe56696e704644a839fc87d55e3f66
649f969ba471475883510a9fab405841
t = theta_t₁
3abe56696e704644a839fc87d55e3f66--649f969ba471475883510a9fab405841
649f969ba471475883510a9fab405841--58de6281f8a44cfd923240d9c32b2b6a
e1168066695b46ba9694391e2db15131
b8d0e77901394b9ca49a838fbbe390cb
RX(theta₂)
c4e0fd94411746168740cde708530905--b8d0e77901394b9ca49a838fbbe390cb
c0e8d28cc54a44549bb275b7e2fd1818
RY(theta₅)
b8d0e77901394b9ca49a838fbbe390cb--c0e8d28cc54a44549bb275b7e2fd1818
19da767d66a8418cabf9b53603cb2405
RX(theta₈)
c0e8d28cc54a44549bb275b7e2fd1818--19da767d66a8418cabf9b53603cb2405
f310b3ddbd88439e9576d963528e8f3c
19da767d66a8418cabf9b53603cb2405--f310b3ddbd88439e9576d963528e8f3c
69b7ccbb11854d35ad54e43f8ae11f1d
RX(theta₁₁)
f310b3ddbd88439e9576d963528e8f3c--69b7ccbb11854d35ad54e43f8ae11f1d
728b3b24d95944e992da7453b827077e
RY(theta₁₄)
69b7ccbb11854d35ad54e43f8ae11f1d--728b3b24d95944e992da7453b827077e
010bf8d6107945aea1c7d52eac25b44c
RX(theta₁₇)
728b3b24d95944e992da7453b827077e--010bf8d6107945aea1c7d52eac25b44c
ce9fdf282cbb4344a1321f76d6a2144a
010bf8d6107945aea1c7d52eac25b44c--ce9fdf282cbb4344a1321f76d6a2144a
ce9fdf282cbb4344a1321f76d6a2144a--e1168066695b46ba9694391e2db15131
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_157f8c6efc474f7ab4e59df36fd7ad29
cluster_3d55bb0ee2b54dfbbcc4f4bc4b3f9dba
376d9362807e42c59610ac87b84aa3e9
0
aacfd3ac10744a5196e1e05fec04d4d7
RX(theta₀)
376d9362807e42c59610ac87b84aa3e9--aacfd3ac10744a5196e1e05fec04d4d7
ee2618a1d93a44648aad24bc2fa0e1e5
1
f8aa6777545b4aaabf19b63be7845e39
RY(theta₆)
aacfd3ac10744a5196e1e05fec04d4d7--f8aa6777545b4aaabf19b63be7845e39
8d749fc4250f490495d0140aacfa0640
RX(theta₁₂)
f8aa6777545b4aaabf19b63be7845e39--8d749fc4250f490495d0140aacfa0640
0b43ae7dc1164464aa6072515ac5caaf
8d749fc4250f490495d0140aacfa0640--0b43ae7dc1164464aa6072515ac5caaf
1f6b8fd64eb24423af8423362598478c
RX(theta₁₈)
0b43ae7dc1164464aa6072515ac5caaf--1f6b8fd64eb24423af8423362598478c
6733bed9906f4014918fa03d02179827
RY(theta₂₄)
1f6b8fd64eb24423af8423362598478c--6733bed9906f4014918fa03d02179827
d300d3e6c0184b43920356e3b6df02e2
RX(theta₃₀)
6733bed9906f4014918fa03d02179827--d300d3e6c0184b43920356e3b6df02e2
8cb8f103bd59436982ba5d8ee18bdedd
d300d3e6c0184b43920356e3b6df02e2--8cb8f103bd59436982ba5d8ee18bdedd
12a0435b9b904021976a298a20abe2d8
8cb8f103bd59436982ba5d8ee18bdedd--12a0435b9b904021976a298a20abe2d8
235f750ffc36412496795b2e65046b3a
31067c062e704b5abb616ffd0b0408ff
RX(theta₁)
ee2618a1d93a44648aad24bc2fa0e1e5--31067c062e704b5abb616ffd0b0408ff
5b0fb75cf2ff4eb1bb4deb2f1d122fff
2
6d74f209a2454d3ba85b141096f28581
RY(theta₇)
31067c062e704b5abb616ffd0b0408ff--6d74f209a2454d3ba85b141096f28581
463ddef0e31f4f2384fa25db01c083cd
RX(theta₁₃)
6d74f209a2454d3ba85b141096f28581--463ddef0e31f4f2384fa25db01c083cd
7f0e4040056c477786d0996d892f017c
463ddef0e31f4f2384fa25db01c083cd--7f0e4040056c477786d0996d892f017c
15ef618ea28a4adeb331e3c60a98fe58
RX(theta₁₉)
7f0e4040056c477786d0996d892f017c--15ef618ea28a4adeb331e3c60a98fe58
e6a7eca2ae1e442fab25f111fb4147ed
RY(theta₂₅)
15ef618ea28a4adeb331e3c60a98fe58--e6a7eca2ae1e442fab25f111fb4147ed
d1e581dad6bf421795e410547f28cbc8
RX(theta₃₁)
e6a7eca2ae1e442fab25f111fb4147ed--d1e581dad6bf421795e410547f28cbc8
73f07bd9cc5d466f8f1dd7ea681d85b2
d1e581dad6bf421795e410547f28cbc8--73f07bd9cc5d466f8f1dd7ea681d85b2
73f07bd9cc5d466f8f1dd7ea681d85b2--235f750ffc36412496795b2e65046b3a
7231a3da0d964876a3badc64b0e16f4f
ab17dcc326ba41368811409406b6f1f0
RX(theta₂)
5b0fb75cf2ff4eb1bb4deb2f1d122fff--ab17dcc326ba41368811409406b6f1f0
2facfedd0786431394b9759a5bedd428
3
53cf3875a0344b689b5944fcecc37318
RY(theta₈)
ab17dcc326ba41368811409406b6f1f0--53cf3875a0344b689b5944fcecc37318
ce975547e4b54fe19beada1ba4f7c5b7
RX(theta₁₄)
53cf3875a0344b689b5944fcecc37318--ce975547e4b54fe19beada1ba4f7c5b7
9a9208bc5ec54e4a8c49713c0df49152
HamEvo
ce975547e4b54fe19beada1ba4f7c5b7--9a9208bc5ec54e4a8c49713c0df49152
85c846c971ca4c11bbc36c3e01ee77e6
RX(theta₂₀)
9a9208bc5ec54e4a8c49713c0df49152--85c846c971ca4c11bbc36c3e01ee77e6
0c7c2e78fe534d3597be5e6edbb98247
RY(theta₂₆)
85c846c971ca4c11bbc36c3e01ee77e6--0c7c2e78fe534d3597be5e6edbb98247
0ba3fe2d916c44d0b079863ad5ced0db
RX(theta₃₂)
0c7c2e78fe534d3597be5e6edbb98247--0ba3fe2d916c44d0b079863ad5ced0db
d18a3f4bc3bc405b838903964ad19d32
HamEvo
0ba3fe2d916c44d0b079863ad5ced0db--d18a3f4bc3bc405b838903964ad19d32
d18a3f4bc3bc405b838903964ad19d32--7231a3da0d964876a3badc64b0e16f4f
6c7fc3c29039436b9f7b1ad960266029
68cf85216b6549f2a2c2ff71efe1ad3d
RX(theta₃)
2facfedd0786431394b9759a5bedd428--68cf85216b6549f2a2c2ff71efe1ad3d
dc06429cea154f2e98e4f1516f827640
4
14c292c857144b249b085c25679f17b2
RY(theta₉)
68cf85216b6549f2a2c2ff71efe1ad3d--14c292c857144b249b085c25679f17b2
8c2e4a29bcc94219ae087e390a1cdc72
RX(theta₁₅)
14c292c857144b249b085c25679f17b2--8c2e4a29bcc94219ae087e390a1cdc72
220f4dee213f4345ba04a62364f63b96
t = theta_t₀
8c2e4a29bcc94219ae087e390a1cdc72--220f4dee213f4345ba04a62364f63b96
a5a652d6097046399ede882ad274500d
RX(theta₂₁)
220f4dee213f4345ba04a62364f63b96--a5a652d6097046399ede882ad274500d
3a4033b6268b4821b9c5913dd113fc0b
RY(theta₂₇)
a5a652d6097046399ede882ad274500d--3a4033b6268b4821b9c5913dd113fc0b
39749c4ec61a463ca456f9aeae729541
RX(theta₃₃)
3a4033b6268b4821b9c5913dd113fc0b--39749c4ec61a463ca456f9aeae729541
e9e62ab69aa3490895276e08ffa69bc3
t = theta_t₁
39749c4ec61a463ca456f9aeae729541--e9e62ab69aa3490895276e08ffa69bc3
e9e62ab69aa3490895276e08ffa69bc3--6c7fc3c29039436b9f7b1ad960266029
ec79a7721fbe4ace99692e81c7a2ad41
12fe40f46b3b489eae2abbd273e671d5
RX(theta₄)
dc06429cea154f2e98e4f1516f827640--12fe40f46b3b489eae2abbd273e671d5
b0653b3ba4aa48bd8436110faeac6d0e
5
086190605612467dbddad14b2fdc2cd5
RY(theta₁₀)
12fe40f46b3b489eae2abbd273e671d5--086190605612467dbddad14b2fdc2cd5
c0f97a2501d34805820dc7abe1c1cca0
RX(theta₁₆)
086190605612467dbddad14b2fdc2cd5--c0f97a2501d34805820dc7abe1c1cca0
54a22c4b2a40475eb8cb66846f4f03e2
c0f97a2501d34805820dc7abe1c1cca0--54a22c4b2a40475eb8cb66846f4f03e2
03cfff348c5544f6855b66745978a796
RX(theta₂₂)
54a22c4b2a40475eb8cb66846f4f03e2--03cfff348c5544f6855b66745978a796
0c19c3bd06614a048fcb143879945ecd
RY(theta₂₈)
03cfff348c5544f6855b66745978a796--0c19c3bd06614a048fcb143879945ecd
2ccea802133f411bbcdcb69e5007db8e
RX(theta₃₄)
0c19c3bd06614a048fcb143879945ecd--2ccea802133f411bbcdcb69e5007db8e
218d0f4d6f024816a9bc7783ae46e681
2ccea802133f411bbcdcb69e5007db8e--218d0f4d6f024816a9bc7783ae46e681
218d0f4d6f024816a9bc7783ae46e681--ec79a7721fbe4ace99692e81c7a2ad41
e75c4e6812a448f7a6009f3b2f0c1a72
f0319f6da44b4d6cb5a1f4c7522680e6
RX(theta₅)
b0653b3ba4aa48bd8436110faeac6d0e--f0319f6da44b4d6cb5a1f4c7522680e6
e687eb46e26f484ab585543fafa3bfc7
RY(theta₁₁)
f0319f6da44b4d6cb5a1f4c7522680e6--e687eb46e26f484ab585543fafa3bfc7
5109f885d8624f0abe21e2dc7c324089
RX(theta₁₇)
e687eb46e26f484ab585543fafa3bfc7--5109f885d8624f0abe21e2dc7c324089
0e1ebd6c88ed4054ac15332177b7e88f
5109f885d8624f0abe21e2dc7c324089--0e1ebd6c88ed4054ac15332177b7e88f
3580a26a86d043dfa49e50f4fef3a7d2
RX(theta₂₃)
0e1ebd6c88ed4054ac15332177b7e88f--3580a26a86d043dfa49e50f4fef3a7d2
a2ed17781bea4bba90ea95f2189071e8
RY(theta₂₉)
3580a26a86d043dfa49e50f4fef3a7d2--a2ed17781bea4bba90ea95f2189071e8
90c2eb58b9554e25a01e553c4da22ced
RX(theta₃₅)
a2ed17781bea4bba90ea95f2189071e8--90c2eb58b9554e25a01e553c4da22ced
e63d2f18ccef4746ad23454da1416ede
90c2eb58b9554e25a01e553c4da22ced--e63d2f18ccef4746ad23454da1416ede
e63d2f18ccef4746ad23454da1416ede--e75c4e6812a448f7a6009f3b2f0c1a72
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_5a4e45429a0142a5b20eeb81fe8543a1
BPMA-1
cluster_c11e8d954b0d448794e1bf7d52d927ad
BPMA-0
56e3f44ff5124346a655dbfb83d6d5d7
0
956c080b8bd6498e9858aae2b7904643
RX(iia_α₀₀)
56e3f44ff5124346a655dbfb83d6d5d7--956c080b8bd6498e9858aae2b7904643
986cd9ee4633461a94c5f23549debb82
1
71deeb54ae42484db0ae2a81ec2255be
RY(iia_α₀₃)
956c080b8bd6498e9858aae2b7904643--71deeb54ae42484db0ae2a81ec2255be
4ad2dbebb31c4e568e47e09eba8793af
71deeb54ae42484db0ae2a81ec2255be--4ad2dbebb31c4e568e47e09eba8793af
7c2a5b3ac11349edb459d6a681e5b71b
4ad2dbebb31c4e568e47e09eba8793af--7c2a5b3ac11349edb459d6a681e5b71b
ea8b1f7f1a3346658aed5d68f376fc89
RX(iia_γ₀₀)
7c2a5b3ac11349edb459d6a681e5b71b--ea8b1f7f1a3346658aed5d68f376fc89
d56fe77b41c040b2be493f4d5ad3b57a
ea8b1f7f1a3346658aed5d68f376fc89--d56fe77b41c040b2be493f4d5ad3b57a
ff4cd702b5764b92add7982f8944a60a
d56fe77b41c040b2be493f4d5ad3b57a--ff4cd702b5764b92add7982f8944a60a
c4f08a66f2074fab8370ce88fb114a78
RY(iia_β₀₃)
ff4cd702b5764b92add7982f8944a60a--c4f08a66f2074fab8370ce88fb114a78
baaf12b3906343ccbcb22c5b12b5ad3d
RX(iia_β₀₀)
c4f08a66f2074fab8370ce88fb114a78--baaf12b3906343ccbcb22c5b12b5ad3d
8bc98b8b244c4dfdb0b8aaa01beb5261
RX(iia_α₁₀)
baaf12b3906343ccbcb22c5b12b5ad3d--8bc98b8b244c4dfdb0b8aaa01beb5261
5de016b6b3ed447db4cbe7f482a3e933
RY(iia_α₁₃)
8bc98b8b244c4dfdb0b8aaa01beb5261--5de016b6b3ed447db4cbe7f482a3e933
d91b06e98ff242999ddc48157a16d192
5de016b6b3ed447db4cbe7f482a3e933--d91b06e98ff242999ddc48157a16d192
ba41316c07a647b398d7bf33b8a88bdb
d91b06e98ff242999ddc48157a16d192--ba41316c07a647b398d7bf33b8a88bdb
32c915a8430c4f189b19641fe53d9b85
RX(iia_γ₁₀)
ba41316c07a647b398d7bf33b8a88bdb--32c915a8430c4f189b19641fe53d9b85
eb464bbe5cd04ff5abc85afc6955aae2
32c915a8430c4f189b19641fe53d9b85--eb464bbe5cd04ff5abc85afc6955aae2
39c1dab14fa9460abd7e8619b1b66ca4
eb464bbe5cd04ff5abc85afc6955aae2--39c1dab14fa9460abd7e8619b1b66ca4
c42488ebd8d94477bc2d33cffb4101cf
RY(iia_β₁₃)
39c1dab14fa9460abd7e8619b1b66ca4--c42488ebd8d94477bc2d33cffb4101cf
111c250242c240a19cec962763088012
RX(iia_β₁₀)
c42488ebd8d94477bc2d33cffb4101cf--111c250242c240a19cec962763088012
01e3b1ca3b204f8aa4d6ffdcbde5830f
111c250242c240a19cec962763088012--01e3b1ca3b204f8aa4d6ffdcbde5830f
64d1e56648bc4fcaa73c17d2e5bd3112
4cb95b8b484647dcb66c380333f78ff7
RX(iia_α₀₁)
986cd9ee4633461a94c5f23549debb82--4cb95b8b484647dcb66c380333f78ff7
e9b1e964873d4cdb925720945951f2d0
2
af9177a7ec6f47469a03b71da03dd566
RY(iia_α₀₄)
4cb95b8b484647dcb66c380333f78ff7--af9177a7ec6f47469a03b71da03dd566
ee1d476e565f4707a2a3560b2c3aeb50
X
af9177a7ec6f47469a03b71da03dd566--ee1d476e565f4707a2a3560b2c3aeb50
ee1d476e565f4707a2a3560b2c3aeb50--4ad2dbebb31c4e568e47e09eba8793af
d133106f49f04eadbf9a3c81f4a4c4ba
ee1d476e565f4707a2a3560b2c3aeb50--d133106f49f04eadbf9a3c81f4a4c4ba
939df3153273493e8aecbe94de1038b4
RX(iia_γ₀₁)
d133106f49f04eadbf9a3c81f4a4c4ba--939df3153273493e8aecbe94de1038b4
47c251be95864642a1b0ffd430a56a9b
939df3153273493e8aecbe94de1038b4--47c251be95864642a1b0ffd430a56a9b
ada6aeb7f99948e3a4f2dbde9d959d12
X
47c251be95864642a1b0ffd430a56a9b--ada6aeb7f99948e3a4f2dbde9d959d12
ada6aeb7f99948e3a4f2dbde9d959d12--ff4cd702b5764b92add7982f8944a60a
b2214f5f1d1c48259bf24f8b58527ed6
RY(iia_β₀₄)
ada6aeb7f99948e3a4f2dbde9d959d12--b2214f5f1d1c48259bf24f8b58527ed6
eecda8f49c7e4aac853623f3b807a520
RX(iia_β₀₁)
b2214f5f1d1c48259bf24f8b58527ed6--eecda8f49c7e4aac853623f3b807a520
b73cb5d63a024c78a2db737f77f45564
RX(iia_α₁₁)
eecda8f49c7e4aac853623f3b807a520--b73cb5d63a024c78a2db737f77f45564
d8e94a5d22904f44b802738c0df2b328
RY(iia_α₁₄)
b73cb5d63a024c78a2db737f77f45564--d8e94a5d22904f44b802738c0df2b328
f5a3d879aea14988ba17b56597c05e55
X
d8e94a5d22904f44b802738c0df2b328--f5a3d879aea14988ba17b56597c05e55
f5a3d879aea14988ba17b56597c05e55--d91b06e98ff242999ddc48157a16d192
f408150cfb344b21bd9fbe6cf6f68bd6
f5a3d879aea14988ba17b56597c05e55--f408150cfb344b21bd9fbe6cf6f68bd6
c2d4e4f6a420460cb7e5dff73473e1fd
RX(iia_γ₁₁)
f408150cfb344b21bd9fbe6cf6f68bd6--c2d4e4f6a420460cb7e5dff73473e1fd
7375c110906c44b19069aac17b0d2eff
c2d4e4f6a420460cb7e5dff73473e1fd--7375c110906c44b19069aac17b0d2eff
a693d894456245fe8c86a99a19ef5ed4
X
7375c110906c44b19069aac17b0d2eff--a693d894456245fe8c86a99a19ef5ed4
a693d894456245fe8c86a99a19ef5ed4--39c1dab14fa9460abd7e8619b1b66ca4
9410f0dc610b4947be9381cf76aeb2c4
RY(iia_β₁₄)
a693d894456245fe8c86a99a19ef5ed4--9410f0dc610b4947be9381cf76aeb2c4
06249b8fadb74f25baefc7f790fce3aa
RX(iia_β₁₁)
9410f0dc610b4947be9381cf76aeb2c4--06249b8fadb74f25baefc7f790fce3aa
06249b8fadb74f25baefc7f790fce3aa--64d1e56648bc4fcaa73c17d2e5bd3112
d9cbf2a3dca64ce79ba1bb42d6e5184d
0d174c4cdfb84bb5b2e9ba35cd49dc4f
RX(iia_α₀₂)
e9b1e964873d4cdb925720945951f2d0--0d174c4cdfb84bb5b2e9ba35cd49dc4f
e15b81581bc9457797f4e8c7a59f641b
RY(iia_α₀₅)
0d174c4cdfb84bb5b2e9ba35cd49dc4f--e15b81581bc9457797f4e8c7a59f641b
ad36c695b20f43eb96183c06de2d4a7d
e15b81581bc9457797f4e8c7a59f641b--ad36c695b20f43eb96183c06de2d4a7d
e6a44d5f1d464d9781da2dc649b1853b
X
ad36c695b20f43eb96183c06de2d4a7d--e6a44d5f1d464d9781da2dc649b1853b
e6a44d5f1d464d9781da2dc649b1853b--d133106f49f04eadbf9a3c81f4a4c4ba
d204fcf5c0464e66b7189e5e4f08247a
RX(iia_γ₀₂)
e6a44d5f1d464d9781da2dc649b1853b--d204fcf5c0464e66b7189e5e4f08247a
9e51841411524c18a4aded3a14846aa2
X
d204fcf5c0464e66b7189e5e4f08247a--9e51841411524c18a4aded3a14846aa2
9e51841411524c18a4aded3a14846aa2--47c251be95864642a1b0ffd430a56a9b
4029cf72501e4dee84ace60d0acd4669
9e51841411524c18a4aded3a14846aa2--4029cf72501e4dee84ace60d0acd4669
645d9dfe4a524e5d8a89a31edba63f64
RY(iia_β₀₅)
4029cf72501e4dee84ace60d0acd4669--645d9dfe4a524e5d8a89a31edba63f64
e9be64d5e0014de7b4066cdf13e65e65
RX(iia_β₀₂)
645d9dfe4a524e5d8a89a31edba63f64--e9be64d5e0014de7b4066cdf13e65e65
e0ee44f1b32a4f9c9699b75907c4fe98
RX(iia_α₁₂)
e9be64d5e0014de7b4066cdf13e65e65--e0ee44f1b32a4f9c9699b75907c4fe98
c91ad33f578848d59dfa6ce531d9eefd
RY(iia_α₁₅)
e0ee44f1b32a4f9c9699b75907c4fe98--c91ad33f578848d59dfa6ce531d9eefd
a08c18cec76f40d3899b36595bcc92ed
c91ad33f578848d59dfa6ce531d9eefd--a08c18cec76f40d3899b36595bcc92ed
3e574e779c084cca98812be8127fd5ee
X
a08c18cec76f40d3899b36595bcc92ed--3e574e779c084cca98812be8127fd5ee
3e574e779c084cca98812be8127fd5ee--f408150cfb344b21bd9fbe6cf6f68bd6
0415d72cba3a4fe69a15bda37b625e7f
RX(iia_γ₁₂)
3e574e779c084cca98812be8127fd5ee--0415d72cba3a4fe69a15bda37b625e7f
c0915cc64b1e475ca5b2362814218d1b
X
0415d72cba3a4fe69a15bda37b625e7f--c0915cc64b1e475ca5b2362814218d1b
c0915cc64b1e475ca5b2362814218d1b--7375c110906c44b19069aac17b0d2eff
6e071aa759d9492ca7c0d6e826c7ff05
c0915cc64b1e475ca5b2362814218d1b--6e071aa759d9492ca7c0d6e826c7ff05
763da72f83314fadab19cd7f404ce7cb
RY(iia_β₁₅)
6e071aa759d9492ca7c0d6e826c7ff05--763da72f83314fadab19cd7f404ce7cb
0e77fa87f4aa42bf9fa5cc6529e70732
RX(iia_β₁₂)
763da72f83314fadab19cd7f404ce7cb--0e77fa87f4aa42bf9fa5cc6529e70732
0e77fa87f4aa42bf9fa5cc6529e70732--d9cbf2a3dca64ce79ba1bb42d6e5184d