Skip to content

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_6b2d7ea5287c406da21be87ce2fcf2d0 Constant Chebyshev FM cluster_4d3c24894d8b4233b0b0946c959d1074 Constant Fourier FM 541c12d1b6494bdc9a589d9346af51b5 0 ff1e34582ba145b9b90c87130a2aba2b RX(phi) 541c12d1b6494bdc9a589d9346af51b5--ff1e34582ba145b9b90c87130a2aba2b a6548984472d4138811ca61490557d37 1 fd9b61142cf94dbbb5c3f1806db188f3 RX(acos(phi)) ff1e34582ba145b9b90c87130a2aba2b--fd9b61142cf94dbbb5c3f1806db188f3 e4e49733ccaa409cb3f9dcbb7273209b fd9b61142cf94dbbb5c3f1806db188f3--e4e49733ccaa409cb3f9dcbb7273209b 9ec1f71badc24e36a199a5325b6889fc 952082e644db41b9807d246321e91e3e RX(phi) a6548984472d4138811ca61490557d37--952082e644db41b9807d246321e91e3e bb910b04aeb54c21847d42232a786b4a 2 d767c498f18b46c5a98301078820e62a RX(acos(phi)) 952082e644db41b9807d246321e91e3e--d767c498f18b46c5a98301078820e62a d767c498f18b46c5a98301078820e62a--9ec1f71badc24e36a199a5325b6889fc f956a93a4b014ef588ad1f6e2c68a5e8 52b8408bf3314a7d9314aed7a5439b3c RX(phi) bb910b04aeb54c21847d42232a786b4a--52b8408bf3314a7d9314aed7a5439b3c 11987af1df464dbf933486bf7e3306af RX(acos(phi)) 52b8408bf3314a7d9314aed7a5439b3c--11987af1df464dbf933486bf7e3306af 11987af1df464dbf933486bf7e3306af--f956a93a4b014ef588ad1f6e2c68a5e8

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 sub-class of Function
class custom_func(Function):
    @classmethod
    def eval(cls, x):
        return asin(x) + x**2

custom_fm_1 = feature_map(n_qubits, fm_type=custom_func)

block = chain(custom_fm_0, custom_fm_1)
%3 cluster_57e92c12e00d4289831c8a0d73d0e1c6 Constant custom_func FM cluster_ec11fd91593d43d2afaaeeed1a9597cf Constant asin FM 2346d6a4227c46e989d612917d278b96 0 4c81194eb53748b9982792d247400ba1 RX(asin(phi)) 2346d6a4227c46e989d612917d278b96--4c81194eb53748b9982792d247400ba1 ece50af8c9f446a384ee8d4617b0f784 1 cd20b72736e648618970695a00b19134 RX(phi**2 + asin(phi)) 4c81194eb53748b9982792d247400ba1--cd20b72736e648618970695a00b19134 ce69c76e83724bdbabecd8f6064c2fb4 cd20b72736e648618970695a00b19134--ce69c76e83724bdbabecd8f6064c2fb4 f5b476fc658b474ea3f590c842bacd41 1a03fc64704a42959c81ce1e7150a082 RX(asin(phi)) ece50af8c9f446a384ee8d4617b0f784--1a03fc64704a42959c81ce1e7150a082 f11a7b2bc8e04029bbc4f4220e7d2722 2 ba91b9da1bbd41969f5b9f1968e16ba3 RX(phi**2 + asin(phi)) 1a03fc64704a42959c81ce1e7150a082--ba91b9da1bbd41969f5b9f1968e16ba3 ba91b9da1bbd41969f5b9f1968e16ba3--f5b476fc658b474ea3f590c842bacd41 32d344801673471db0f8385664b2ef57 987162e0d3644abb9946a4f896b597b3 RX(asin(phi)) f11a7b2bc8e04029bbc4f4220e7d2722--987162e0d3644abb9946a4f896b597b3 60e4ea8a14f14e8bb9cab17ff499b3f0 RX(phi**2 + asin(phi)) 987162e0d3644abb9946a4f896b597b3--60e4ea8a14f14e8bb9cab17ff499b3f0 60e4ea8a14f14e8bb9cab17ff499b3f0--32d344801673471db0f8385664b2ef57

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_a5bea7ab7fac41308a99584a363d6608 Exponential Fourier FM cluster_8fbc9fccd3a945258a112ed85dac5b33 Constant Fourier FM cluster_fc208efd36b84fe99cfe2d2f36a9927e Tower Fourier FM 8379ed94f31c48d4ae9415f9d46c984f 0 a2ffa6d0e738497a848c9b081581be89 RX(phi) 8379ed94f31c48d4ae9415f9d46c984f--a2ffa6d0e738497a848c9b081581be89 c4d0d71ecb324aed9771e3b45939e6ef 1 b031735d2e47489d9c787ee1bbb46f8f RX(1.0*phi) a2ffa6d0e738497a848c9b081581be89--b031735d2e47489d9c787ee1bbb46f8f 2cfcc02a9bf147dc9f38e87f17f2950b RX(1.0*phi) b031735d2e47489d9c787ee1bbb46f8f--2cfcc02a9bf147dc9f38e87f17f2950b d650ced309264a2c96e8feccd4d73a43 2cfcc02a9bf147dc9f38e87f17f2950b--d650ced309264a2c96e8feccd4d73a43 6e01bc237cff40af96049e90c6e060b0 590e74d5645a407ba2243e7fe152fb0c RX(phi) c4d0d71ecb324aed9771e3b45939e6ef--590e74d5645a407ba2243e7fe152fb0c 60532c48d38a46039502695f100bf69d 2 b995cae34a1b48099e5d0195271e16cd RX(2.0*phi) 590e74d5645a407ba2243e7fe152fb0c--b995cae34a1b48099e5d0195271e16cd 4cba462958cd409cb50487378be0210d RX(2.0*phi) b995cae34a1b48099e5d0195271e16cd--4cba462958cd409cb50487378be0210d 4cba462958cd409cb50487378be0210d--6e01bc237cff40af96049e90c6e060b0 0d5e0059b4c1434d88a01bdddb9e07de d37ef2e515334700bb724b8d631b3288 RX(phi) 60532c48d38a46039502695f100bf69d--d37ef2e515334700bb724b8d631b3288 3fbc90cf1cd042669ddca237ea93ab0e 3 d6aced04fae6419e983c44876e9f38f4 RX(3.0*phi) d37ef2e515334700bb724b8d631b3288--d6aced04fae6419e983c44876e9f38f4 529ae8373ef54fc0ae418f317567a239 RX(4.0*phi) d6aced04fae6419e983c44876e9f38f4--529ae8373ef54fc0ae418f317567a239 529ae8373ef54fc0ae418f317567a239--0d5e0059b4c1434d88a01bdddb9e07de a17fce821e8f4514b5698a0332a43b54 7b4eb2d53b60473cb8cebeb96a7defef RX(phi) 3fbc90cf1cd042669ddca237ea93ab0e--7b4eb2d53b60473cb8cebeb96a7defef ff5fb13f0ee5405bb58a9cf1564562a1 4 7d3eff74d98a4c11b26e639b595103ca RX(4.0*phi) 7b4eb2d53b60473cb8cebeb96a7defef--7d3eff74d98a4c11b26e639b595103ca baa4bc2ed70c4b47a29be5116f75c8a6 RX(8.0*phi) 7d3eff74d98a4c11b26e639b595103ca--baa4bc2ed70c4b47a29be5116f75c8a6 baa4bc2ed70c4b47a29be5116f75c8a6--a17fce821e8f4514b5698a0332a43b54 c3a168725d2b4785aa5d980f59878c3f 740ab88dc09142f0a7b42423e18fee7e RX(phi) ff5fb13f0ee5405bb58a9cf1564562a1--740ab88dc09142f0a7b42423e18fee7e 87d5789df1c24bb3ac5aa8bc8a0d60ce RX(5.0*phi) 740ab88dc09142f0a7b42423e18fee7e--87d5789df1c24bb3ac5aa8bc8a0d60ce 0b18994a5cee4bc9837a4582e24d8e1b RX(16.0*phi) 87d5789df1c24bb3ac5aa8bc8a0d60ce--0b18994a5cee4bc9837a4582e24d8e1b 0b18994a5cee4bc9837a4582e24d8e1b--c3a168725d2b4785aa5d980f59878c3f

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 9ed15fa622bd4e5eb6899bfd12e69134 0 47212a6c51784e7689a0bb7118e7b17e RX(1.0*acos(phi)) 9ed15fa622bd4e5eb6899bfd12e69134--47212a6c51784e7689a0bb7118e7b17e 9c030cc139b64930997fa5d29fe9dd35 1 5ee3e36f4e544140bee541ae246a669c 47212a6c51784e7689a0bb7118e7b17e--5ee3e36f4e544140bee541ae246a669c 42312209a4f145dfba73495296e922c5 c682822227014bf18d0ab58618639ccc RX(1.414*acos(phi)) 9c030cc139b64930997fa5d29fe9dd35--c682822227014bf18d0ab58618639ccc 1770d6adfa3445a193b6fd97b4216f2b 2 c682822227014bf18d0ab58618639ccc--42312209a4f145dfba73495296e922c5 de90cb9d74154bc392e2fecce8ec609d f39e1ab53b344bcb840e5d7f5d53323e RX(1.732*acos(phi)) 1770d6adfa3445a193b6fd97b4216f2b--f39e1ab53b344bcb840e5d7f5d53323e 0fab2c1f9fda45e491fdab69e2056a49 3 f39e1ab53b344bcb840e5d7f5d53323e--de90cb9d74154bc392e2fecce8ec609d 41f424daee1d4ca4b5394d194995903f 68c8e9c3a6004e168e558e9f9607f30d RX(2.0*acos(phi)) 0fab2c1f9fda45e491fdab69e2056a49--68c8e9c3a6004e168e558e9f9607f30d 80f98736770a4ff181ce8d7cc6fbf24d 4 68c8e9c3a6004e168e558e9f9607f30d--41f424daee1d4ca4b5394d194995903f 00dae89046a94d4dbc4bfdf6fdecb852 d6f95a8c9ef44369bc0d2ac54f94ada7 RX(2.236*acos(phi)) 80f98736770a4ff181ce8d7cc6fbf24d--d6f95a8c9ef44369bc0d2ac54f94ada7 d6f95a8c9ef44369bc0d2ac54f94ada7--00dae89046a94d4dbc4bfdf6fdecb852

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
)
%3 779b4d8693ce404db557ecd1814a660a 0 0670af6c10324e8ab4c7183843efce9b RY(80.0*acos(0.667*x + 1.667)) 779b4d8693ce404db557ecd1814a660a--0670af6c10324e8ab4c7183843efce9b aa34e6383c9d4ff4a4a45e2759406d9e 1 e3c50c58c97b488b93431c22187c767b 0670af6c10324e8ab4c7183843efce9b--e3c50c58c97b488b93431c22187c767b fe6df05577434589a0c2fe1b21bd473a b998ffa598c145c2b72a5e3648d64657 RY(40.0*acos(0.667*x + 1.667)) aa34e6383c9d4ff4a4a45e2759406d9e--b998ffa598c145c2b72a5e3648d64657 fd9afff5075a416a9ba6c3e856635f38 2 b998ffa598c145c2b72a5e3648d64657--fe6df05577434589a0c2fe1b21bd473a 00ef00eb0ad540d898b898024c86ed4b 7aabd8fc84e2426d8feff3c4ed934a84 RY(20.0*acos(0.667*x + 1.667)) fd9afff5075a416a9ba6c3e856635f38--7aabd8fc84e2426d8feff3c4ed934a84 727e3806572148e9b46503fe2441e58a 3 7aabd8fc84e2426d8feff3c4ed934a84--00ef00eb0ad540d898b898024c86ed4b ee009ed3b88546e49fbe65e25693ebcc db83423f94744c8db2ac548d602445a1 RY(10.0*acos(0.667*x + 1.667)) 727e3806572148e9b46503fe2441e58a--db83423f94744c8db2ac548d602445a1 cc40eba98a254f519a512e6706be9b93 4 db83423f94744c8db2ac548d602445a1--ee009ed3b88546e49fbe65e25693ebcc d81f3c79112d4f699e682c39c3071579 e1081f9d792449238bba499fecb9cf40 RY(5.0*acos(0.667*x + 1.667)) cc40eba98a254f519a512e6706be9b93--e1081f9d792449238bba499fecb9cf40 e1081f9d792449238bba499fecb9cf40--d81f3c79112d4f699e682c39c3071579

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 879fe87f08aa430aacdaca4b6591cf81 0 0800d70493144fd98bbbdba7661757d4 RX(theta₀) 879fe87f08aa430aacdaca4b6591cf81--0800d70493144fd98bbbdba7661757d4 e64e6af1e16f45e2b21258b3b36d84ea 1 645702d28a024a5786bd5e14e60bb9e6 RY(theta₃) 0800d70493144fd98bbbdba7661757d4--645702d28a024a5786bd5e14e60bb9e6 8feea4a3c5eb45d7a547d88f12ea428c RX(theta₆) 645702d28a024a5786bd5e14e60bb9e6--8feea4a3c5eb45d7a547d88f12ea428c 9120652d055b40e392804622636f3ed2 8feea4a3c5eb45d7a547d88f12ea428c--9120652d055b40e392804622636f3ed2 37689c634c1a4154963c0d9b9c1f3048 9120652d055b40e392804622636f3ed2--37689c634c1a4154963c0d9b9c1f3048 0e2f040c1d24492194329fe334b972d1 RX(theta₉) 37689c634c1a4154963c0d9b9c1f3048--0e2f040c1d24492194329fe334b972d1 621302c62c364af8835751549e616376 RY(theta₁₂) 0e2f040c1d24492194329fe334b972d1--621302c62c364af8835751549e616376 d7a37a0458bf4effac50206f28548274 RX(theta₁₅) 621302c62c364af8835751549e616376--d7a37a0458bf4effac50206f28548274 50224908454041d4acdc328ffc4b8013 d7a37a0458bf4effac50206f28548274--50224908454041d4acdc328ffc4b8013 b1e277a8a5ca44769caa06287f8dc1ac 50224908454041d4acdc328ffc4b8013--b1e277a8a5ca44769caa06287f8dc1ac 344c3d43d2094d17915e06ab83e8f825 b1e277a8a5ca44769caa06287f8dc1ac--344c3d43d2094d17915e06ab83e8f825 6c37f787a619492aade6620735ffffa0 e01d9ca9968649d5b0fc56760ac4a240 RX(theta₁) e64e6af1e16f45e2b21258b3b36d84ea--e01d9ca9968649d5b0fc56760ac4a240 3dba7381694f4e059f4ed0ab765d9cc5 2 c810885d0b8b48b19e5eab3f840a42c3 RY(theta₄) e01d9ca9968649d5b0fc56760ac4a240--c810885d0b8b48b19e5eab3f840a42c3 226015a5c7e84f07bc2e57548b0e105f RX(theta₇) c810885d0b8b48b19e5eab3f840a42c3--226015a5c7e84f07bc2e57548b0e105f af0ec7b01b7f414ca751c7bb12f26d4d X 226015a5c7e84f07bc2e57548b0e105f--af0ec7b01b7f414ca751c7bb12f26d4d af0ec7b01b7f414ca751c7bb12f26d4d--9120652d055b40e392804622636f3ed2 2bbeb31f238740c78ca88625053eb6f5 af0ec7b01b7f414ca751c7bb12f26d4d--2bbeb31f238740c78ca88625053eb6f5 20de4400e43546f8975b6c2380bca3ca RX(theta₁₀) 2bbeb31f238740c78ca88625053eb6f5--20de4400e43546f8975b6c2380bca3ca 84c9e1a6901a40e6bb5fe43fbf0a8ba0 RY(theta₁₃) 20de4400e43546f8975b6c2380bca3ca--84c9e1a6901a40e6bb5fe43fbf0a8ba0 b4a709109a76449986dfc726f38efb15 RX(theta₁₆) 84c9e1a6901a40e6bb5fe43fbf0a8ba0--b4a709109a76449986dfc726f38efb15 56cb5ae71b844832af050158dc8805d2 X b4a709109a76449986dfc726f38efb15--56cb5ae71b844832af050158dc8805d2 56cb5ae71b844832af050158dc8805d2--50224908454041d4acdc328ffc4b8013 75c98daa48fa49c39eb690a3643156a8 56cb5ae71b844832af050158dc8805d2--75c98daa48fa49c39eb690a3643156a8 75c98daa48fa49c39eb690a3643156a8--6c37f787a619492aade6620735ffffa0 c942afe910ab4bacb8c656686bb02c49 fd8820a82ad94544913c21a6a805a276 RX(theta₂) 3dba7381694f4e059f4ed0ab765d9cc5--fd8820a82ad94544913c21a6a805a276 418a898e1c064631ab3d15e229c60ac9 RY(theta₅) fd8820a82ad94544913c21a6a805a276--418a898e1c064631ab3d15e229c60ac9 e953754b6fa743a486cb785a2591e439 RX(theta₈) 418a898e1c064631ab3d15e229c60ac9--e953754b6fa743a486cb785a2591e439 508c5d3ef17b4109a3e4319aff988d2b e953754b6fa743a486cb785a2591e439--508c5d3ef17b4109a3e4319aff988d2b 7d2a67d4de354727b552d2744bd14f6b X 508c5d3ef17b4109a3e4319aff988d2b--7d2a67d4de354727b552d2744bd14f6b 7d2a67d4de354727b552d2744bd14f6b--2bbeb31f238740c78ca88625053eb6f5 ac049eb37fd14e85a5765818e593a954 RX(theta₁₁) 7d2a67d4de354727b552d2744bd14f6b--ac049eb37fd14e85a5765818e593a954 257458dbd3bb4e43924057c559929b5d RY(theta₁₄) ac049eb37fd14e85a5765818e593a954--257458dbd3bb4e43924057c559929b5d e713b85e17844565b59e90b708577dc8 RX(theta₁₇) 257458dbd3bb4e43924057c559929b5d--e713b85e17844565b59e90b708577dc8 8cf3ac258b4740c5bb55e8a565aa44e9 e713b85e17844565b59e90b708577dc8--8cf3ac258b4740c5bb55e8a565aa44e9 c5b6f7ea7b424a42a3d47542d00f02af X 8cf3ac258b4740c5bb55e8a565aa44e9--c5b6f7ea7b424a42a3d47542d00f02af c5b6f7ea7b424a42a3d47542d00f02af--75c98daa48fa49c39eb690a3643156a8 c5b6f7ea7b424a42a3d47542d00f02af--c942afe910ab4bacb8c656686bb02c49

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 f4553a58079f45829a44a431f15ed484 0 ac9172bf6146431b989ccf08a8d6a7a3 RX(phi₀) f4553a58079f45829a44a431f15ed484--ac9172bf6146431b989ccf08a8d6a7a3 e53acba97e514b73a75687c9edfcd333 1 1a4cde9882194e26b4efbcf17fbb9330 RY(phi₃) ac9172bf6146431b989ccf08a8d6a7a3--1a4cde9882194e26b4efbcf17fbb9330 e7a0629011144a7a81fba4e113d5cc33 RX(phi₆) 1a4cde9882194e26b4efbcf17fbb9330--e7a0629011144a7a81fba4e113d5cc33 27d86c2d041a418793d728a34f34ee5a e7a0629011144a7a81fba4e113d5cc33--27d86c2d041a418793d728a34f34ee5a ecb7c2d1af4d4a59a2fb780373d31238 27d86c2d041a418793d728a34f34ee5a--ecb7c2d1af4d4a59a2fb780373d31238 5a6d14283d664ff39d8f89eff7ff8cb0 RX(phi₉) ecb7c2d1af4d4a59a2fb780373d31238--5a6d14283d664ff39d8f89eff7ff8cb0 cacc0eec9d3e491c885455b2c05cf253 RY(phi₁₂) 5a6d14283d664ff39d8f89eff7ff8cb0--cacc0eec9d3e491c885455b2c05cf253 ff4c0819cc7943eca9a5bb98764423a2 RX(phi₁₅) cacc0eec9d3e491c885455b2c05cf253--ff4c0819cc7943eca9a5bb98764423a2 2017ac25850b49bf841a0590f5c8d44b ff4c0819cc7943eca9a5bb98764423a2--2017ac25850b49bf841a0590f5c8d44b fb146dedd53c41088644de2e45d8cbf0 2017ac25850b49bf841a0590f5c8d44b--fb146dedd53c41088644de2e45d8cbf0 3ccb04d3fe8746df8624289d8c4885df fb146dedd53c41088644de2e45d8cbf0--3ccb04d3fe8746df8624289d8c4885df 4379643cf9924b4b8b21a50f8950b76f fb84ac49bcf9489d84bb8ee6432b0aee RX(phi₁) e53acba97e514b73a75687c9edfcd333--fb84ac49bcf9489d84bb8ee6432b0aee 81b5b72c52424389b276080ef83caba6 2 00206bfaa91043448233e662502cf01f RY(phi₄) fb84ac49bcf9489d84bb8ee6432b0aee--00206bfaa91043448233e662502cf01f 8d3ead7e977d47eaa8a6e55a62ef86ef RX(phi₇) 00206bfaa91043448233e662502cf01f--8d3ead7e977d47eaa8a6e55a62ef86ef 32968203f8e943fc83c92542c6520937 PHASE(phi_ent₀) 8d3ead7e977d47eaa8a6e55a62ef86ef--32968203f8e943fc83c92542c6520937 32968203f8e943fc83c92542c6520937--27d86c2d041a418793d728a34f34ee5a 3ad0b69acb1a447e96f1d65ff1693da7 32968203f8e943fc83c92542c6520937--3ad0b69acb1a447e96f1d65ff1693da7 fc2f8a7489b943e585db98c7c6c2a836 RX(phi₁₀) 3ad0b69acb1a447e96f1d65ff1693da7--fc2f8a7489b943e585db98c7c6c2a836 770235e357ff45f5bc19799e07d50838 RY(phi₁₃) fc2f8a7489b943e585db98c7c6c2a836--770235e357ff45f5bc19799e07d50838 d17a8c3078284f5d97fe6615d0cd3059 RX(phi₁₆) 770235e357ff45f5bc19799e07d50838--d17a8c3078284f5d97fe6615d0cd3059 413ae32e339142ec8a9e1419b28adb98 PHASE(phi_ent₂) d17a8c3078284f5d97fe6615d0cd3059--413ae32e339142ec8a9e1419b28adb98 413ae32e339142ec8a9e1419b28adb98--2017ac25850b49bf841a0590f5c8d44b 453750ebe4584b1e8a4d3bc058bd6422 413ae32e339142ec8a9e1419b28adb98--453750ebe4584b1e8a4d3bc058bd6422 453750ebe4584b1e8a4d3bc058bd6422--4379643cf9924b4b8b21a50f8950b76f 02e10071c8044c41b6a8243579f7de0b fe83e99ae96640b89ae3dc833531e83f RX(phi₂) 81b5b72c52424389b276080ef83caba6--fe83e99ae96640b89ae3dc833531e83f 48a045b83aae4e158c11b007a2462884 RY(phi₅) fe83e99ae96640b89ae3dc833531e83f--48a045b83aae4e158c11b007a2462884 36217a43e6504709ba6d24d845c034e7 RX(phi₈) 48a045b83aae4e158c11b007a2462884--36217a43e6504709ba6d24d845c034e7 4c09e3b9ee344f3e819f17d69e92a0aa 36217a43e6504709ba6d24d845c034e7--4c09e3b9ee344f3e819f17d69e92a0aa 13c166bb7a11419786189c4f4fa39cbe PHASE(phi_ent₁) 4c09e3b9ee344f3e819f17d69e92a0aa--13c166bb7a11419786189c4f4fa39cbe 13c166bb7a11419786189c4f4fa39cbe--3ad0b69acb1a447e96f1d65ff1693da7 2b35ca18ee5d4e00ad6009439c42cfad RX(phi₁₁) 13c166bb7a11419786189c4f4fa39cbe--2b35ca18ee5d4e00ad6009439c42cfad ad135be4d9c548a9ba4f1cb85616c159 RY(phi₁₄) 2b35ca18ee5d4e00ad6009439c42cfad--ad135be4d9c548a9ba4f1cb85616c159 9869cd5422bd437f9ef2b74d8f46f39c RX(phi₁₇) ad135be4d9c548a9ba4f1cb85616c159--9869cd5422bd437f9ef2b74d8f46f39c 44e37fa39a94495cbd28c6cfc5535dd8 9869cd5422bd437f9ef2b74d8f46f39c--44e37fa39a94495cbd28c6cfc5535dd8 dd72e3ed47b44f4289dd0c631d885a37 PHASE(phi_ent₃) 44e37fa39a94495cbd28c6cfc5535dd8--dd72e3ed47b44f4289dd0c631d885a37 dd72e3ed47b44f4289dd0c631d885a37--453750ebe4584b1e8a4d3bc058bd6422 dd72e3ed47b44f4289dd0c631d885a37--02e10071c8044c41b6a8243579f7de0b

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_e5b8d18418194583a1086912a2119602 cluster_2904af808e7f493ca1107ebc83bbf3d5 e6e9d1c4736644fb985adfc09a152414 0 1309160f0ac544af8a2fde6251fbd65e RX(theta₀) e6e9d1c4736644fb985adfc09a152414--1309160f0ac544af8a2fde6251fbd65e 60296843ce5741d096be808719aecd5a 1 7dfa39d486ed4f8594c7bc7d6ef6070b RY(theta₃) 1309160f0ac544af8a2fde6251fbd65e--7dfa39d486ed4f8594c7bc7d6ef6070b 3db935650f664584bb7db145163240c5 RX(theta₆) 7dfa39d486ed4f8594c7bc7d6ef6070b--3db935650f664584bb7db145163240c5 0362792132b64eaf81d42ebe54db5e2f HamEvo 3db935650f664584bb7db145163240c5--0362792132b64eaf81d42ebe54db5e2f 304ff17eedfc407d8ce1ce35ead75506 RX(theta₉) 0362792132b64eaf81d42ebe54db5e2f--304ff17eedfc407d8ce1ce35ead75506 4d4140acdc1a48d598a67387676e7954 RY(theta₁₂) 304ff17eedfc407d8ce1ce35ead75506--4d4140acdc1a48d598a67387676e7954 729bac9de8d54b6b9b88c6b32fe58f0f RX(theta₁₅) 4d4140acdc1a48d598a67387676e7954--729bac9de8d54b6b9b88c6b32fe58f0f 163322f62c594888ba62dfece0536a4e HamEvo 729bac9de8d54b6b9b88c6b32fe58f0f--163322f62c594888ba62dfece0536a4e 7d5c28c11a45499db80128a8a4a87337 163322f62c594888ba62dfece0536a4e--7d5c28c11a45499db80128a8a4a87337 bd8b67bae2a94562ba59d433924df6d9 39a95c21923f4d3fa03391422c6e3d89 RX(theta₁) 60296843ce5741d096be808719aecd5a--39a95c21923f4d3fa03391422c6e3d89 a6e1ef1fe5cd462795bd44077dd7bbb4 2 dc87a85961d34466ba440ff2e7c4884b RY(theta₄) 39a95c21923f4d3fa03391422c6e3d89--dc87a85961d34466ba440ff2e7c4884b ae108e5c96b24dbb9e343e73a8b9c7df RX(theta₇) dc87a85961d34466ba440ff2e7c4884b--ae108e5c96b24dbb9e343e73a8b9c7df 2dedab57109f49ee98b630192835ce39 t = theta_t₀ ae108e5c96b24dbb9e343e73a8b9c7df--2dedab57109f49ee98b630192835ce39 90b5514d78f149c291f8b8c0aece4441 RX(theta₁₀) 2dedab57109f49ee98b630192835ce39--90b5514d78f149c291f8b8c0aece4441 d18ebc2e2e374471a3c138bdc63fcc61 RY(theta₁₃) 90b5514d78f149c291f8b8c0aece4441--d18ebc2e2e374471a3c138bdc63fcc61 a10be39ce06e4c949655f874d3807fef RX(theta₁₆) d18ebc2e2e374471a3c138bdc63fcc61--a10be39ce06e4c949655f874d3807fef 63a09bacf0824d0fbeffbff27c5dc62d t = theta_t₁ a10be39ce06e4c949655f874d3807fef--63a09bacf0824d0fbeffbff27c5dc62d 63a09bacf0824d0fbeffbff27c5dc62d--bd8b67bae2a94562ba59d433924df6d9 fc1d2f64ff9d4be18122a92ac09a8301 9894f26bca8940d480109166499ef171 RX(theta₂) a6e1ef1fe5cd462795bd44077dd7bbb4--9894f26bca8940d480109166499ef171 3bcf5a45d072455fb3b19781502e857e RY(theta₅) 9894f26bca8940d480109166499ef171--3bcf5a45d072455fb3b19781502e857e f25595d1a920416a93e31de5c2bf7e73 RX(theta₈) 3bcf5a45d072455fb3b19781502e857e--f25595d1a920416a93e31de5c2bf7e73 7ea14133327641c1b8e55941af64faa7 f25595d1a920416a93e31de5c2bf7e73--7ea14133327641c1b8e55941af64faa7 a9b4e98fc6fb47a19a193ac8ccad0029 RX(theta₁₁) 7ea14133327641c1b8e55941af64faa7--a9b4e98fc6fb47a19a193ac8ccad0029 7e94b3b0fd114e8d953f2429cf00bf35 RY(theta₁₄) a9b4e98fc6fb47a19a193ac8ccad0029--7e94b3b0fd114e8d953f2429cf00bf35 bc4d1d9f53e6433e89926fe7f39bf844 RX(theta₁₇) 7e94b3b0fd114e8d953f2429cf00bf35--bc4d1d9f53e6433e89926fe7f39bf844 a35a884f7c3f4c489ee376d0c44543f3 bc4d1d9f53e6433e89926fe7f39bf844--a35a884f7c3f4c489ee376d0c44543f3 a35a884f7c3f4c489ee376d0c44543f3--fc1d2f64ff9d4be18122a92ac09a8301

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_70de25f067f148e18202cdb53460487e cluster_ac38c793cc9c4427a4363ba919a38233 f69076b9fa3141d8a29bca34be3feddb 0 414702b89c30443d987ab0f7976f5f6c RX(theta₀) f69076b9fa3141d8a29bca34be3feddb--414702b89c30443d987ab0f7976f5f6c 8030523c5ce84d36a9bba9419917948b 1 235d9d61cb014b65a764a1423853097e RY(theta₆) 414702b89c30443d987ab0f7976f5f6c--235d9d61cb014b65a764a1423853097e 87e205f238f748099be28198b98153c7 RX(theta₁₂) 235d9d61cb014b65a764a1423853097e--87e205f238f748099be28198b98153c7 2b04a48d8989424ba9216d5c5b277ec6 87e205f238f748099be28198b98153c7--2b04a48d8989424ba9216d5c5b277ec6 555d97bca8674401809647e08449e78a RX(theta₁₈) 2b04a48d8989424ba9216d5c5b277ec6--555d97bca8674401809647e08449e78a 981c725ec2dc4ba88a6838eeac9fe468 RY(theta₂₄) 555d97bca8674401809647e08449e78a--981c725ec2dc4ba88a6838eeac9fe468 dd9c671ef0e740688b6dbb8456454222 RX(theta₃₀) 981c725ec2dc4ba88a6838eeac9fe468--dd9c671ef0e740688b6dbb8456454222 c745463e3fc74535a75ad5fee1fa823a dd9c671ef0e740688b6dbb8456454222--c745463e3fc74535a75ad5fee1fa823a d113a969d1f1495c85546d344363be79 c745463e3fc74535a75ad5fee1fa823a--d113a969d1f1495c85546d344363be79 0e59c5abf57b4ad9b44934a3e174205a 36cd327e765844318d1888d578f0c452 RX(theta₁) 8030523c5ce84d36a9bba9419917948b--36cd327e765844318d1888d578f0c452 97214d612644424991a564c246ea9a1d 2 8c9ca4a1a8f2414cb0d803b5e8fd33e9 RY(theta₇) 36cd327e765844318d1888d578f0c452--8c9ca4a1a8f2414cb0d803b5e8fd33e9 ea20a16a7ddb42509294ba7f284bd720 RX(theta₁₃) 8c9ca4a1a8f2414cb0d803b5e8fd33e9--ea20a16a7ddb42509294ba7f284bd720 f0fd0144a09e47049b41ca9688323add ea20a16a7ddb42509294ba7f284bd720--f0fd0144a09e47049b41ca9688323add 1f63102a9a7c4c40a767edf70cc6d1ad RX(theta₁₉) f0fd0144a09e47049b41ca9688323add--1f63102a9a7c4c40a767edf70cc6d1ad 0bc472fb3f4a4c1bb89802a83a63ad3a RY(theta₂₅) 1f63102a9a7c4c40a767edf70cc6d1ad--0bc472fb3f4a4c1bb89802a83a63ad3a 521643c1e26d4ba5b13a6cb469a7fc17 RX(theta₃₁) 0bc472fb3f4a4c1bb89802a83a63ad3a--521643c1e26d4ba5b13a6cb469a7fc17 060a20046096467992bf534fcc643f38 521643c1e26d4ba5b13a6cb469a7fc17--060a20046096467992bf534fcc643f38 060a20046096467992bf534fcc643f38--0e59c5abf57b4ad9b44934a3e174205a e7641fe6c1154bbdbc8961abeae2feee 8ff9079c1e8a4c83ad30b4482ff8ad36 RX(theta₂) 97214d612644424991a564c246ea9a1d--8ff9079c1e8a4c83ad30b4482ff8ad36 28258f447e5d4b9f9257e40954e22b9a 3 917ceae1fb8041c7b6e4da8f5ee5b949 RY(theta₈) 8ff9079c1e8a4c83ad30b4482ff8ad36--917ceae1fb8041c7b6e4da8f5ee5b949 eb5fe901246a463aa47ec0847eb7d0aa RX(theta₁₄) 917ceae1fb8041c7b6e4da8f5ee5b949--eb5fe901246a463aa47ec0847eb7d0aa 4462bc00a9de47f39e81a02cac303c47 HamEvo eb5fe901246a463aa47ec0847eb7d0aa--4462bc00a9de47f39e81a02cac303c47 925a7ef8efcd4a2293d74e01072383d0 RX(theta₂₀) 4462bc00a9de47f39e81a02cac303c47--925a7ef8efcd4a2293d74e01072383d0 99a559805aac4aff85a4020b0f21e0ff RY(theta₂₆) 925a7ef8efcd4a2293d74e01072383d0--99a559805aac4aff85a4020b0f21e0ff 61d00070ac6c4a5f994085e20d709a90 RX(theta₃₂) 99a559805aac4aff85a4020b0f21e0ff--61d00070ac6c4a5f994085e20d709a90 aa0db7c948774aaa93763f3b3eab950e HamEvo 61d00070ac6c4a5f994085e20d709a90--aa0db7c948774aaa93763f3b3eab950e aa0db7c948774aaa93763f3b3eab950e--e7641fe6c1154bbdbc8961abeae2feee 37b3e26ec99e4a948ad8e3ea62d3173b 51f92c9439da4afca7e30d6ac3bb07d2 RX(theta₃) 28258f447e5d4b9f9257e40954e22b9a--51f92c9439da4afca7e30d6ac3bb07d2 38b28f86478f48eab8a424e7e6148df3 4 81a8cb702d914403a72fc517a601fd5a RY(theta₉) 51f92c9439da4afca7e30d6ac3bb07d2--81a8cb702d914403a72fc517a601fd5a df8bc479d3334f57b5d54763bfb269c8 RX(theta₁₅) 81a8cb702d914403a72fc517a601fd5a--df8bc479d3334f57b5d54763bfb269c8 eed69c6794eb409ba53abe508bb08720 t = theta_t₀ df8bc479d3334f57b5d54763bfb269c8--eed69c6794eb409ba53abe508bb08720 44603ee9a2204c5ebb524e19caf4bd00 RX(theta₂₁) eed69c6794eb409ba53abe508bb08720--44603ee9a2204c5ebb524e19caf4bd00 ac341846fb3b41a7a626336a5849db33 RY(theta₂₇) 44603ee9a2204c5ebb524e19caf4bd00--ac341846fb3b41a7a626336a5849db33 97882eba91e14954b095dfff5298b99f RX(theta₃₃) ac341846fb3b41a7a626336a5849db33--97882eba91e14954b095dfff5298b99f 6fa36b43c6874409a36e4cb51f3e4595 t = theta_t₁ 97882eba91e14954b095dfff5298b99f--6fa36b43c6874409a36e4cb51f3e4595 6fa36b43c6874409a36e4cb51f3e4595--37b3e26ec99e4a948ad8e3ea62d3173b fb3ec63b46e54af7b6ab738df2c4d5f7 ac1615997b254c7a8f0eab952e6fb1af RX(theta₄) 38b28f86478f48eab8a424e7e6148df3--ac1615997b254c7a8f0eab952e6fb1af cf09f63536bf4b4d84d2174cb9fa5e39 5 a6204cf6a651496fa70e04b7fa235f12 RY(theta₁₀) ac1615997b254c7a8f0eab952e6fb1af--a6204cf6a651496fa70e04b7fa235f12 83b263c3d87e456a99f77a753981c0d1 RX(theta₁₆) a6204cf6a651496fa70e04b7fa235f12--83b263c3d87e456a99f77a753981c0d1 e087cfe96ce94644a87534142d55323c 83b263c3d87e456a99f77a753981c0d1--e087cfe96ce94644a87534142d55323c 3c64427d7d3a404296c660081a918300 RX(theta₂₂) e087cfe96ce94644a87534142d55323c--3c64427d7d3a404296c660081a918300 53021248681d418193caac6016fcaa13 RY(theta₂₈) 3c64427d7d3a404296c660081a918300--53021248681d418193caac6016fcaa13 24efdefb96544c86b37202bae43f4ef2 RX(theta₃₄) 53021248681d418193caac6016fcaa13--24efdefb96544c86b37202bae43f4ef2 766a4b0d41b845759e3f0a508711f960 24efdefb96544c86b37202bae43f4ef2--766a4b0d41b845759e3f0a508711f960 766a4b0d41b845759e3f0a508711f960--fb3ec63b46e54af7b6ab738df2c4d5f7 629782e00c8c4943b9d4b43da14c2171 bb928e8440ae4f859aeeb2e44cdcd687 RX(theta₅) cf09f63536bf4b4d84d2174cb9fa5e39--bb928e8440ae4f859aeeb2e44cdcd687 fb5dc6b6b35a4b3ba1aaa560611ba533 RY(theta₁₁) bb928e8440ae4f859aeeb2e44cdcd687--fb5dc6b6b35a4b3ba1aaa560611ba533 2498018e9eda422c93aa7f7fd5abdd01 RX(theta₁₇) fb5dc6b6b35a4b3ba1aaa560611ba533--2498018e9eda422c93aa7f7fd5abdd01 8ccd13b3933c45eb8e67f100abeeeccc 2498018e9eda422c93aa7f7fd5abdd01--8ccd13b3933c45eb8e67f100abeeeccc f1d35d309eab40e8a1a7ca5c2db9a288 RX(theta₂₃) 8ccd13b3933c45eb8e67f100abeeeccc--f1d35d309eab40e8a1a7ca5c2db9a288 805e129d758648f2836ab24ca35096b0 RY(theta₂₉) f1d35d309eab40e8a1a7ca5c2db9a288--805e129d758648f2836ab24ca35096b0 f78d0310828344e3bebcde97f7a0a7b1 RX(theta₃₅) 805e129d758648f2836ab24ca35096b0--f78d0310828344e3bebcde97f7a0a7b1 c1b0e1bce0fa47f7a525fa88c4c30271 f78d0310828344e3bebcde97f7a0a7b1--c1b0e1bce0fa47f7a525fa88c4c30271 c1b0e1bce0fa47f7a525fa88c4c30271--629782e00c8c4943b9d4b43da14c2171

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 QNNs 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_2f569ec9be2b48339131afd3aaabc141 BPMA-1 cluster_11e0a982164d4348acee0bf775f1ec42 BPMA-0 d3fe20798fbe46879285b551fb43e0ff 0 b9ca59ee74014fc0bf5f34022992640e RX(alpha₀₀) d3fe20798fbe46879285b551fb43e0ff--b9ca59ee74014fc0bf5f34022992640e f073748baf8546c99b2e35536763d0cd 1 15e7374b72e944748303de813ca34c2f RY(alpha₀₃) b9ca59ee74014fc0bf5f34022992640e--15e7374b72e944748303de813ca34c2f 114cb13514db4a2b90bde148a7c7e1f1 15e7374b72e944748303de813ca34c2f--114cb13514db4a2b90bde148a7c7e1f1 a2443af61eb24e22afadf1cffc6f56b3 114cb13514db4a2b90bde148a7c7e1f1--a2443af61eb24e22afadf1cffc6f56b3 6c00c62418c64e349234283a324e977c RX(gamma₀₀) a2443af61eb24e22afadf1cffc6f56b3--6c00c62418c64e349234283a324e977c b70ec7ceb3bf4c48b3217ec0d156b0db 6c00c62418c64e349234283a324e977c--b70ec7ceb3bf4c48b3217ec0d156b0db 862b889da70345ff8206fcebe95f5b87 b70ec7ceb3bf4c48b3217ec0d156b0db--862b889da70345ff8206fcebe95f5b87 8dc54564096c4a70879273de1027b58e RY(beta₀₃) 862b889da70345ff8206fcebe95f5b87--8dc54564096c4a70879273de1027b58e 2c25f134b80845b3bd84ed4688d0593d RX(beta₀₀) 8dc54564096c4a70879273de1027b58e--2c25f134b80845b3bd84ed4688d0593d 1fd8e983e47045e090c4b794c6d034d5 RX(alpha₁₀) 2c25f134b80845b3bd84ed4688d0593d--1fd8e983e47045e090c4b794c6d034d5 81a62a9fc19c44e6b7ed8cb74bc24ffe RY(alpha₁₃) 1fd8e983e47045e090c4b794c6d034d5--81a62a9fc19c44e6b7ed8cb74bc24ffe f345303139754e5aa6192ff7edc8c20f 81a62a9fc19c44e6b7ed8cb74bc24ffe--f345303139754e5aa6192ff7edc8c20f 85293017cd9f430791cf38bdfbd7549e f345303139754e5aa6192ff7edc8c20f--85293017cd9f430791cf38bdfbd7549e 54709188ed5f4314a11941133de3213d RX(gamma₁₀) 85293017cd9f430791cf38bdfbd7549e--54709188ed5f4314a11941133de3213d 60fd777074a14ec6964553e645e77ba2 54709188ed5f4314a11941133de3213d--60fd777074a14ec6964553e645e77ba2 1ba300ce6405434888960ac066acbc77 60fd777074a14ec6964553e645e77ba2--1ba300ce6405434888960ac066acbc77 193f7299b2614963990f89fc722ababf RY(beta₁₃) 1ba300ce6405434888960ac066acbc77--193f7299b2614963990f89fc722ababf 29d0b78d6b4d41cabb8e99f10cd00021 RX(beta₁₀) 193f7299b2614963990f89fc722ababf--29d0b78d6b4d41cabb8e99f10cd00021 f683c812d570451b897173e01fa88312 29d0b78d6b4d41cabb8e99f10cd00021--f683c812d570451b897173e01fa88312 0fb07bc9410d4dc89d5b7a57627ecda7 4c520eace77d4ece9c337d399fe31574 RX(alpha₀₁) f073748baf8546c99b2e35536763d0cd--4c520eace77d4ece9c337d399fe31574 93104046eded4ca08db909a993aa4366 2 3ace8a9de3f44abb98a92ef32841c641 RY(alpha₀₄) 4c520eace77d4ece9c337d399fe31574--3ace8a9de3f44abb98a92ef32841c641 b244d834f1704db5b9fbaad657b21484 X 3ace8a9de3f44abb98a92ef32841c641--b244d834f1704db5b9fbaad657b21484 b244d834f1704db5b9fbaad657b21484--114cb13514db4a2b90bde148a7c7e1f1 d985690df99e45f08d0974f4f487517a b244d834f1704db5b9fbaad657b21484--d985690df99e45f08d0974f4f487517a 79faaf7509ae48c3ad35db8ed9b582dc RX(gamma₀₁) d985690df99e45f08d0974f4f487517a--79faaf7509ae48c3ad35db8ed9b582dc 9808cd367e8c42db9dee52c49bf117a4 79faaf7509ae48c3ad35db8ed9b582dc--9808cd367e8c42db9dee52c49bf117a4 a61c591054a14d4f88e2dda94ce19737 X 9808cd367e8c42db9dee52c49bf117a4--a61c591054a14d4f88e2dda94ce19737 a61c591054a14d4f88e2dda94ce19737--862b889da70345ff8206fcebe95f5b87 d8f92553a11d47348006d599e018c559 RY(beta₀₄) a61c591054a14d4f88e2dda94ce19737--d8f92553a11d47348006d599e018c559 42ebd72429c046fbb9ef17ab891ff4a2 RX(beta₀₁) d8f92553a11d47348006d599e018c559--42ebd72429c046fbb9ef17ab891ff4a2 4545af0635d740cbab200efa5ab57d85 RX(alpha₁₁) 42ebd72429c046fbb9ef17ab891ff4a2--4545af0635d740cbab200efa5ab57d85 3cbe2761b3b6477aba7e30522bd26545 RY(alpha₁₄) 4545af0635d740cbab200efa5ab57d85--3cbe2761b3b6477aba7e30522bd26545 a86979b3b483467bbed9b26c0442d7b9 X 3cbe2761b3b6477aba7e30522bd26545--a86979b3b483467bbed9b26c0442d7b9 a86979b3b483467bbed9b26c0442d7b9--f345303139754e5aa6192ff7edc8c20f 9ed1f0b668ee4ebd97fa6954abbd56b2 a86979b3b483467bbed9b26c0442d7b9--9ed1f0b668ee4ebd97fa6954abbd56b2 34653e484ac041dc97ffeac8ff239d76 RX(gamma₁₁) 9ed1f0b668ee4ebd97fa6954abbd56b2--34653e484ac041dc97ffeac8ff239d76 e459a3e950f045459c143d94109a0f4e 34653e484ac041dc97ffeac8ff239d76--e459a3e950f045459c143d94109a0f4e fc75af14d67e424bae8853d51315b4a2 X e459a3e950f045459c143d94109a0f4e--fc75af14d67e424bae8853d51315b4a2 fc75af14d67e424bae8853d51315b4a2--1ba300ce6405434888960ac066acbc77 e5154c3a3ab348d5a27d915acc9f67fc RY(beta₁₄) fc75af14d67e424bae8853d51315b4a2--e5154c3a3ab348d5a27d915acc9f67fc d26e1f1d2b9a45d0a68b1c1becf19295 RX(beta₁₁) e5154c3a3ab348d5a27d915acc9f67fc--d26e1f1d2b9a45d0a68b1c1becf19295 d26e1f1d2b9a45d0a68b1c1becf19295--0fb07bc9410d4dc89d5b7a57627ecda7 baf8c8abd9924eaeb94468ccd5c60a54 21a90f47320f4e7d89ff272a55d960f7 RX(alpha₀₂) 93104046eded4ca08db909a993aa4366--21a90f47320f4e7d89ff272a55d960f7 1ede056ab3a94088a36b4d5e0d5fe16c RY(alpha₀₅) 21a90f47320f4e7d89ff272a55d960f7--1ede056ab3a94088a36b4d5e0d5fe16c e1f2430057804c70a34eae0d61226a9e 1ede056ab3a94088a36b4d5e0d5fe16c--e1f2430057804c70a34eae0d61226a9e 985e23e5bea8488cb42f1a32fb030489 X e1f2430057804c70a34eae0d61226a9e--985e23e5bea8488cb42f1a32fb030489 985e23e5bea8488cb42f1a32fb030489--d985690df99e45f08d0974f4f487517a dcf45a64f6f04d2c8845b6f0b9183877 RX(gamma₀₂) 985e23e5bea8488cb42f1a32fb030489--dcf45a64f6f04d2c8845b6f0b9183877 71c6844dd4aa4a799d0ec4ada0ec8562 X dcf45a64f6f04d2c8845b6f0b9183877--71c6844dd4aa4a799d0ec4ada0ec8562 71c6844dd4aa4a799d0ec4ada0ec8562--9808cd367e8c42db9dee52c49bf117a4 41546b1607d04ae7b6b99c3066e34c76 71c6844dd4aa4a799d0ec4ada0ec8562--41546b1607d04ae7b6b99c3066e34c76 63beddcb335648bc85c928f813c58eb3 RY(beta₀₅) 41546b1607d04ae7b6b99c3066e34c76--63beddcb335648bc85c928f813c58eb3 8b205d4663b74da2ba4a6c856c57e602 RX(beta₀₂) 63beddcb335648bc85c928f813c58eb3--8b205d4663b74da2ba4a6c856c57e602 ae64891ba9c847a383cbd78d46dcc4d4 RX(alpha₁₂) 8b205d4663b74da2ba4a6c856c57e602--ae64891ba9c847a383cbd78d46dcc4d4 c93d2c8006074852b4fab1a38ff42b30 RY(alpha₁₅) ae64891ba9c847a383cbd78d46dcc4d4--c93d2c8006074852b4fab1a38ff42b30 b1362bb1b17b4abb9bf61f9ff631d532 c93d2c8006074852b4fab1a38ff42b30--b1362bb1b17b4abb9bf61f9ff631d532 e7583034930b4d23a14cd5b10f6e6d5c X b1362bb1b17b4abb9bf61f9ff631d532--e7583034930b4d23a14cd5b10f6e6d5c e7583034930b4d23a14cd5b10f6e6d5c--9ed1f0b668ee4ebd97fa6954abbd56b2 762e760cb9d34f899dac895d4f1cd58b RX(gamma₁₂) e7583034930b4d23a14cd5b10f6e6d5c--762e760cb9d34f899dac895d4f1cd58b 1db7ef49dcef4cf99e4062f97c428dcf X 762e760cb9d34f899dac895d4f1cd58b--1db7ef49dcef4cf99e4062f97c428dcf 1db7ef49dcef4cf99e4062f97c428dcf--e459a3e950f045459c143d94109a0f4e 7179f0357dc94fa08ceaf3efffde86c8 1db7ef49dcef4cf99e4062f97c428dcf--7179f0357dc94fa08ceaf3efffde86c8 2225eadbf7d647c99c5cf0ba7edf38b4 RY(beta₁₅) 7179f0357dc94fa08ceaf3efffde86c8--2225eadbf7d647c99c5cf0ba7edf38b4 969314f958a3496fad044cae702a6ece RX(beta₁₂) 2225eadbf7d647c99c5cf0ba7edf38b4--969314f958a3496fad044cae702a6ece 969314f958a3496fad044cae702a6ece--baf8c8abd9924eaeb94468ccd5c60a54