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_df2f4a99531247c18a65a20b761f92e0 Constant Chebyshev FM cluster_b8aeb4a0052b4a9b82326dde3d9c8dc8 Constant Fourier FM 3daca02a57124b188c2cf009db4bc007 0 782b7e8a3fd7484188f8cfec1daa2b7a RX(phi) 3daca02a57124b188c2cf009db4bc007--782b7e8a3fd7484188f8cfec1daa2b7a 1739c7b9f6dd4a8d806295d79df27bab 1 46ea2d9780f549ff9c599922892baede RX(acos(phi)) 782b7e8a3fd7484188f8cfec1daa2b7a--46ea2d9780f549ff9c599922892baede 693bd15ea2114ab8b082a9c3c270c5e7 46ea2d9780f549ff9c599922892baede--693bd15ea2114ab8b082a9c3c270c5e7 9d61c9b9c9624d18bab4513e7e40a51a de71eaa2773d448fa21d82e184d1c2ca RX(phi) 1739c7b9f6dd4a8d806295d79df27bab--de71eaa2773d448fa21d82e184d1c2ca 5fac9104c20047719452f9ab601bdae9 2 9b0e21e3f9df4a9cbe6c4acb83ff0870 RX(acos(phi)) de71eaa2773d448fa21d82e184d1c2ca--9b0e21e3f9df4a9cbe6c4acb83ff0870 9b0e21e3f9df4a9cbe6c4acb83ff0870--9d61c9b9c9624d18bab4513e7e40a51a f5f4449a1a4442b183b7d99c100d5353 64047b1f3ff84f1ca826faf9794e5f32 RX(phi) 5fac9104c20047719452f9ab601bdae9--64047b1f3ff84f1ca826faf9794e5f32 d7b5f02da5004795b46ea3830e008077 RX(acos(phi)) 64047b1f3ff84f1ca826faf9794e5f32--d7b5f02da5004795b46ea3830e008077 d7b5f02da5004795b46ea3830e008077--f5f4449a1a4442b183b7d99c100d5353

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_81646814eb3e489fbfbc6f49e69e0ae1 Constant custom_func FM cluster_08fa473087814e188d2bcdd19430575e Constant asin FM 2d2bedf730c544db977094818eb8f3f1 0 257e7909033748a78c401bbb4ba29039 RX(asin(phi)) 2d2bedf730c544db977094818eb8f3f1--257e7909033748a78c401bbb4ba29039 38e21bff6aa04397bef9c6d587c2873b 1 3eaafa9bbda846aeb8901ae42f542f39 RX(phi**2 + asin(phi)) 257e7909033748a78c401bbb4ba29039--3eaafa9bbda846aeb8901ae42f542f39 4486cd5275f149e3825c231b1ea9550f 3eaafa9bbda846aeb8901ae42f542f39--4486cd5275f149e3825c231b1ea9550f c1f675c574c14be9b3fabe6316c7ed1b cf16edbefaec406db3b59bb2287b7429 RX(asin(phi)) 38e21bff6aa04397bef9c6d587c2873b--cf16edbefaec406db3b59bb2287b7429 28fd9d692f204e12b1b3ef04cada80bf 2 cfd54b54f6f84cd68c2ea44f41019a73 RX(phi**2 + asin(phi)) cf16edbefaec406db3b59bb2287b7429--cfd54b54f6f84cd68c2ea44f41019a73 cfd54b54f6f84cd68c2ea44f41019a73--c1f675c574c14be9b3fabe6316c7ed1b fa0123ef32714b7f846d4cbe295595ce 5bdc9756293d4e5fad912990503b75f4 RX(asin(phi)) 28fd9d692f204e12b1b3ef04cada80bf--5bdc9756293d4e5fad912990503b75f4 302f3872ddc743618a0855acd9246d5b RX(phi**2 + asin(phi)) 5bdc9756293d4e5fad912990503b75f4--302f3872ddc743618a0855acd9246d5b 302f3872ddc743618a0855acd9246d5b--fa0123ef32714b7f846d4cbe295595ce

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_5292d16e62134521958e9ca375f8e76c Exponential Fourier FM cluster_29570887be714929a5b4a7f4291c59a0 Constant Fourier FM cluster_5bf9c55496f64adc9e3c75bbb938ddb3 Tower Fourier FM 45e4bd16699e4d69bfc67d12c3ef46cf 0 0cbabea9f3504c25afe24035c4056a3e RX(phi) 45e4bd16699e4d69bfc67d12c3ef46cf--0cbabea9f3504c25afe24035c4056a3e 39f1399000cf477c9c121a1029e8c9ed 1 72abeea1f3c643d3bf6265bd5c96fb6f RX(1.0*phi) 0cbabea9f3504c25afe24035c4056a3e--72abeea1f3c643d3bf6265bd5c96fb6f 228d38dda1f44f439b98ad2d0ae52f6f RX(1.0*phi) 72abeea1f3c643d3bf6265bd5c96fb6f--228d38dda1f44f439b98ad2d0ae52f6f eab0e787df85492b99ad2e2e77f0761a 228d38dda1f44f439b98ad2d0ae52f6f--eab0e787df85492b99ad2e2e77f0761a dec6eeb7fd3943e7ac8bce4d77f50906 7e0edbcd05af46868c48c605ac58c400 RX(phi) 39f1399000cf477c9c121a1029e8c9ed--7e0edbcd05af46868c48c605ac58c400 e3e4c074529e44baa83f2d2bebe1619c 2 e6e5fe390ad44f82826be1976ded8ba2 RX(2.0*phi) 7e0edbcd05af46868c48c605ac58c400--e6e5fe390ad44f82826be1976ded8ba2 749e4b2b71884f8d8f43493d2213788c RX(2.0*phi) e6e5fe390ad44f82826be1976ded8ba2--749e4b2b71884f8d8f43493d2213788c 749e4b2b71884f8d8f43493d2213788c--dec6eeb7fd3943e7ac8bce4d77f50906 526a0c35f7654238bec71456b4d0f3ff ebd70667ff5248cb888dae58d0757bf8 RX(phi) e3e4c074529e44baa83f2d2bebe1619c--ebd70667ff5248cb888dae58d0757bf8 102cb219b0aa4bb8b14400471d31ea1a 3 e210d481339d47dfa448f6ebfca55f06 RX(3.0*phi) ebd70667ff5248cb888dae58d0757bf8--e210d481339d47dfa448f6ebfca55f06 282fc098c7df4daebdf98374e4f6ff8e RX(4.0*phi) e210d481339d47dfa448f6ebfca55f06--282fc098c7df4daebdf98374e4f6ff8e 282fc098c7df4daebdf98374e4f6ff8e--526a0c35f7654238bec71456b4d0f3ff a57ec3d57c2e4f4fa781e9f57199a29b dd9178db303b4e429b80004777af876f RX(phi) 102cb219b0aa4bb8b14400471d31ea1a--dd9178db303b4e429b80004777af876f a65be922b9d44d32b54e9ad2ad1d0026 4 121a408ab36f4b6fab04965576ff606b RX(4.0*phi) dd9178db303b4e429b80004777af876f--121a408ab36f4b6fab04965576ff606b 7080b096ead6498fa64295fa65929174 RX(8.0*phi) 121a408ab36f4b6fab04965576ff606b--7080b096ead6498fa64295fa65929174 7080b096ead6498fa64295fa65929174--a57ec3d57c2e4f4fa781e9f57199a29b eaddc75175bf4ec0882a4d25641cf96d 1a690f1bbeb94ba1bc75d77db7f54ef6 RX(phi) a65be922b9d44d32b54e9ad2ad1d0026--1a690f1bbeb94ba1bc75d77db7f54ef6 4adf7b84a94545b1b0409dc0d57dff7a RX(5.0*phi) 1a690f1bbeb94ba1bc75d77db7f54ef6--4adf7b84a94545b1b0409dc0d57dff7a 080b1147c8014291b8f55ccaba244ce2 RX(16.0*phi) 4adf7b84a94545b1b0409dc0d57dff7a--080b1147c8014291b8f55ccaba244ce2 080b1147c8014291b8f55ccaba244ce2--eaddc75175bf4ec0882a4d25641cf96d

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 22467f27b61745e7b9f62279793e3135 0 c3d96e14ac8d44f897025ae9fcc94b4b RX(1.0*acos(phi)) 22467f27b61745e7b9f62279793e3135--c3d96e14ac8d44f897025ae9fcc94b4b 81f6d5b0f2c94f978604589d967763f5 1 d5308b74ac5a4e12870ec2a9ddbb4ffc c3d96e14ac8d44f897025ae9fcc94b4b--d5308b74ac5a4e12870ec2a9ddbb4ffc 5270f76ddc0344f8ace3b5ded1c2dee9 fb9ec636784e413e9d7389b208e1ac1e RX(1.414*acos(phi)) 81f6d5b0f2c94f978604589d967763f5--fb9ec636784e413e9d7389b208e1ac1e bb2af327d0874d86842268b6d53fd069 2 fb9ec636784e413e9d7389b208e1ac1e--5270f76ddc0344f8ace3b5ded1c2dee9 6fada0eebed94915932f60c51694de29 08093477d0ea45afb69ba6378b7672aa RX(1.732*acos(phi)) bb2af327d0874d86842268b6d53fd069--08093477d0ea45afb69ba6378b7672aa f47d50ae86474a02a697ea7c452f38ba 3 08093477d0ea45afb69ba6378b7672aa--6fada0eebed94915932f60c51694de29 eeb9f5452ffd4818907584217fa0f446 db21d73855a44a2cb0d73162a6b26372 RX(2.0*acos(phi)) f47d50ae86474a02a697ea7c452f38ba--db21d73855a44a2cb0d73162a6b26372 66311988134b46759e7a0fb240926b07 4 db21d73855a44a2cb0d73162a6b26372--eeb9f5452ffd4818907584217fa0f446 b1f88a5c53734a87a08a797c0ddf5c0c 9c63733bd361452dbfef2f220577f5e3 RX(2.236*acos(phi)) 66311988134b46759e7a0fb240926b07--9c63733bd361452dbfef2f220577f5e3 9c63733bd361452dbfef2f220577f5e3--b1f88a5c53734a87a08a797c0ddf5c0c

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 e2a18187704042a4956e86fd2833c482 0 3d697a08c4794421b71ce7e0f92baed0 RY(80.0*acos(0.667*x + 1.667)) e2a18187704042a4956e86fd2833c482--3d697a08c4794421b71ce7e0f92baed0 394246b1aaee4d90b36bb5f58215322d 1 d37660320c654fe1854f2e36cda06bf3 3d697a08c4794421b71ce7e0f92baed0--d37660320c654fe1854f2e36cda06bf3 5d188d8b088140698f009a8e25bad55d d208559b4eb84ef585d9c004df340837 RY(40.0*acos(0.667*x + 1.667)) 394246b1aaee4d90b36bb5f58215322d--d208559b4eb84ef585d9c004df340837 94b174eedb9540a4a3b520f7d7baac08 2 d208559b4eb84ef585d9c004df340837--5d188d8b088140698f009a8e25bad55d 57e366c22be94b0c94957fb1aa000e2b 89d9c3bb7a1d4d52ad559fe65890e6c2 RY(20.0*acos(0.667*x + 1.667)) 94b174eedb9540a4a3b520f7d7baac08--89d9c3bb7a1d4d52ad559fe65890e6c2 07bf0a9114f6414db6a18b314a0cb0f0 3 89d9c3bb7a1d4d52ad559fe65890e6c2--57e366c22be94b0c94957fb1aa000e2b 10f82573b70f4026810fc79e5f443bbf f0c283745b8442389e33e95346ec689b RY(10.0*acos(0.667*x + 1.667)) 07bf0a9114f6414db6a18b314a0cb0f0--f0c283745b8442389e33e95346ec689b 8dce57291ca54e2a8ad5f8863cdc75c3 4 f0c283745b8442389e33e95346ec689b--10f82573b70f4026810fc79e5f443bbf 91f4a719ee464ca9af53d3263c48f635 dc69afcd586a4f1387b957a477ae038c RY(5.0*acos(0.667*x + 1.667)) 8dce57291ca54e2a8ad5f8863cdc75c3--dc69afcd586a4f1387b957a477ae038c dc69afcd586a4f1387b957a477ae038c--91f4a719ee464ca9af53d3263c48f635

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 925467e314a845bb832e71c9fe84b26a 0 e1547389ff3a4a22b450f5b6d67c37e6 RX(theta₀) 925467e314a845bb832e71c9fe84b26a--e1547389ff3a4a22b450f5b6d67c37e6 02deb979941946f581cfe84f507c1000 1 44737c51eeb3454c9130ee82fd72f7da RY(theta₃) e1547389ff3a4a22b450f5b6d67c37e6--44737c51eeb3454c9130ee82fd72f7da b8dc955c6fb746e1916651e83908c4bc RX(theta₆) 44737c51eeb3454c9130ee82fd72f7da--b8dc955c6fb746e1916651e83908c4bc c87e762852c8447989bf36a587d784dd b8dc955c6fb746e1916651e83908c4bc--c87e762852c8447989bf36a587d784dd 450b34a569ed48eb998e52df4071fc8d c87e762852c8447989bf36a587d784dd--450b34a569ed48eb998e52df4071fc8d 4c9d3e1ab49e4c018f0ba6928a8ad15a RX(theta₉) 450b34a569ed48eb998e52df4071fc8d--4c9d3e1ab49e4c018f0ba6928a8ad15a c3bb7d6928c549d28820fb7b49a3fdb5 RY(theta₁₂) 4c9d3e1ab49e4c018f0ba6928a8ad15a--c3bb7d6928c549d28820fb7b49a3fdb5 13ea508cccb54f4d98af4700df703c0b RX(theta₁₅) c3bb7d6928c549d28820fb7b49a3fdb5--13ea508cccb54f4d98af4700df703c0b 24f58e5dcc854981b490e60be2436a2a 13ea508cccb54f4d98af4700df703c0b--24f58e5dcc854981b490e60be2436a2a 1ea8aea51a714e47ba5270a131c83a40 24f58e5dcc854981b490e60be2436a2a--1ea8aea51a714e47ba5270a131c83a40 463ab688861e43629f6915595c977a94 1ea8aea51a714e47ba5270a131c83a40--463ab688861e43629f6915595c977a94 8511c3594c574e4e9c64f9c5fc11ee7c fe35272a694a46d0ac21c5eb088c11f6 RX(theta₁) 02deb979941946f581cfe84f507c1000--fe35272a694a46d0ac21c5eb088c11f6 232fd153a3f64144b348175d4272b2fa 2 46813465d74545dfb1646bf499c74855 RY(theta₄) fe35272a694a46d0ac21c5eb088c11f6--46813465d74545dfb1646bf499c74855 b357b48b84dd420b8a494ef58b2d9f87 RX(theta₇) 46813465d74545dfb1646bf499c74855--b357b48b84dd420b8a494ef58b2d9f87 85036c2ecfe349a3a48d0f3aff0cbfb4 X b357b48b84dd420b8a494ef58b2d9f87--85036c2ecfe349a3a48d0f3aff0cbfb4 85036c2ecfe349a3a48d0f3aff0cbfb4--c87e762852c8447989bf36a587d784dd d88b2a7d173041b69635888cad82caa4 85036c2ecfe349a3a48d0f3aff0cbfb4--d88b2a7d173041b69635888cad82caa4 db1a4d8f2f7a48f68e7b13e73a0ef543 RX(theta₁₀) d88b2a7d173041b69635888cad82caa4--db1a4d8f2f7a48f68e7b13e73a0ef543 9b0f1535456b499b8997e8039cb71958 RY(theta₁₃) db1a4d8f2f7a48f68e7b13e73a0ef543--9b0f1535456b499b8997e8039cb71958 b9c1aaa63a9640d08b7e6a821a32c919 RX(theta₁₆) 9b0f1535456b499b8997e8039cb71958--b9c1aaa63a9640d08b7e6a821a32c919 73e4690dd5d74408a859da51a08eddbf X b9c1aaa63a9640d08b7e6a821a32c919--73e4690dd5d74408a859da51a08eddbf 73e4690dd5d74408a859da51a08eddbf--24f58e5dcc854981b490e60be2436a2a 34c766da0fa64576b39005a4d30239bc 73e4690dd5d74408a859da51a08eddbf--34c766da0fa64576b39005a4d30239bc 34c766da0fa64576b39005a4d30239bc--8511c3594c574e4e9c64f9c5fc11ee7c 0c68b854919843379df9fd2289b334db 3b9ab9e3ed774301bbeeec69bdedf00b RX(theta₂) 232fd153a3f64144b348175d4272b2fa--3b9ab9e3ed774301bbeeec69bdedf00b f6ff5e0812264ecebc3e923be4c238b3 RY(theta₅) 3b9ab9e3ed774301bbeeec69bdedf00b--f6ff5e0812264ecebc3e923be4c238b3 4f7a0401b86446fe89eb8437778cc746 RX(theta₈) f6ff5e0812264ecebc3e923be4c238b3--4f7a0401b86446fe89eb8437778cc746 a5f06483bd3e45bab73d7186c2559b04 4f7a0401b86446fe89eb8437778cc746--a5f06483bd3e45bab73d7186c2559b04 1791f85730154de484d49527aa280f6f X a5f06483bd3e45bab73d7186c2559b04--1791f85730154de484d49527aa280f6f 1791f85730154de484d49527aa280f6f--d88b2a7d173041b69635888cad82caa4 44a89b17cd9c4897b1d347497c9d55b5 RX(theta₁₁) 1791f85730154de484d49527aa280f6f--44a89b17cd9c4897b1d347497c9d55b5 9f783dc3e8e041fda48d98ee871fb80b RY(theta₁₄) 44a89b17cd9c4897b1d347497c9d55b5--9f783dc3e8e041fda48d98ee871fb80b 50451603ded94748895ebf95445baf02 RX(theta₁₇) 9f783dc3e8e041fda48d98ee871fb80b--50451603ded94748895ebf95445baf02 a43f4aa69a654974a4f79534b6387e89 50451603ded94748895ebf95445baf02--a43f4aa69a654974a4f79534b6387e89 b3553d0436bb4bed86dd03e99ce16740 X a43f4aa69a654974a4f79534b6387e89--b3553d0436bb4bed86dd03e99ce16740 b3553d0436bb4bed86dd03e99ce16740--34c766da0fa64576b39005a4d30239bc b3553d0436bb4bed86dd03e99ce16740--0c68b854919843379df9fd2289b334db

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 a5fe966a19c34ee298f724f9651a6936 0 f8128b98e93b462cbe711e797216ecac RX(phi₀) a5fe966a19c34ee298f724f9651a6936--f8128b98e93b462cbe711e797216ecac d301887e8fa84b19afc49800d48f3f15 1 afb792f840c049c096f4069c8806b730 RY(phi₃) f8128b98e93b462cbe711e797216ecac--afb792f840c049c096f4069c8806b730 91471e29390b49ebb9d6659433b6971c RX(phi₆) afb792f840c049c096f4069c8806b730--91471e29390b49ebb9d6659433b6971c 0ac1748444644d91a2abc0ef9ccfe9ba 91471e29390b49ebb9d6659433b6971c--0ac1748444644d91a2abc0ef9ccfe9ba d7554d8d638244659117da121b12b1fc 0ac1748444644d91a2abc0ef9ccfe9ba--d7554d8d638244659117da121b12b1fc 7974b65d0ae0489290215a643063d452 RX(phi₉) d7554d8d638244659117da121b12b1fc--7974b65d0ae0489290215a643063d452 a2ad07b7c9de4d0e899c233833fabb75 RY(phi₁₂) 7974b65d0ae0489290215a643063d452--a2ad07b7c9de4d0e899c233833fabb75 e89b8adb22ba4ab7b9f7883422bad91f RX(phi₁₅) a2ad07b7c9de4d0e899c233833fabb75--e89b8adb22ba4ab7b9f7883422bad91f 0cf94099931245e488f20c1a6ce4ce58 e89b8adb22ba4ab7b9f7883422bad91f--0cf94099931245e488f20c1a6ce4ce58 07659cab19b144f38100ffc9d1103403 0cf94099931245e488f20c1a6ce4ce58--07659cab19b144f38100ffc9d1103403 64c81950084c4652b553d8dcdc042be3 07659cab19b144f38100ffc9d1103403--64c81950084c4652b553d8dcdc042be3 1290c25e972b457f87941219c172f770 28e7163695a54542a22e01bca869a1ea RX(phi₁) d301887e8fa84b19afc49800d48f3f15--28e7163695a54542a22e01bca869a1ea af49f652167d451d8c13cd33a663454c 2 5815bc52e6fd411fbcc4da9ff76f253b RY(phi₄) 28e7163695a54542a22e01bca869a1ea--5815bc52e6fd411fbcc4da9ff76f253b 1a2ca3ce1c2946f88b78bf3d2468155e RX(phi₇) 5815bc52e6fd411fbcc4da9ff76f253b--1a2ca3ce1c2946f88b78bf3d2468155e ec093298a5254f2cb3876b442e856bb1 PHASE(phi_ent₀) 1a2ca3ce1c2946f88b78bf3d2468155e--ec093298a5254f2cb3876b442e856bb1 ec093298a5254f2cb3876b442e856bb1--0ac1748444644d91a2abc0ef9ccfe9ba 74ee800d90ac4d7cb9e565c92f7a16c1 ec093298a5254f2cb3876b442e856bb1--74ee800d90ac4d7cb9e565c92f7a16c1 595e8b5eb21744bfa80287fba3944b1e RX(phi₁₀) 74ee800d90ac4d7cb9e565c92f7a16c1--595e8b5eb21744bfa80287fba3944b1e 80577b34b7b64c159eaa8cf8d10a9483 RY(phi₁₃) 595e8b5eb21744bfa80287fba3944b1e--80577b34b7b64c159eaa8cf8d10a9483 4d0460d00f2f48eeb559be3f2042fd3b RX(phi₁₆) 80577b34b7b64c159eaa8cf8d10a9483--4d0460d00f2f48eeb559be3f2042fd3b 98f57b8f55004bf4aedb3044da0f3cf1 PHASE(phi_ent₂) 4d0460d00f2f48eeb559be3f2042fd3b--98f57b8f55004bf4aedb3044da0f3cf1 98f57b8f55004bf4aedb3044da0f3cf1--0cf94099931245e488f20c1a6ce4ce58 9ba918aa57214390aa67cbac8f8bd4f7 98f57b8f55004bf4aedb3044da0f3cf1--9ba918aa57214390aa67cbac8f8bd4f7 9ba918aa57214390aa67cbac8f8bd4f7--1290c25e972b457f87941219c172f770 d71341abe42d43f2be1d5464032a3bf6 7a29fc58866a41738ea73a23ff4efac4 RX(phi₂) af49f652167d451d8c13cd33a663454c--7a29fc58866a41738ea73a23ff4efac4 520ded886bab4822885c68c472c573b5 RY(phi₅) 7a29fc58866a41738ea73a23ff4efac4--520ded886bab4822885c68c472c573b5 c2736354357244ac911312c1df3d35bb RX(phi₈) 520ded886bab4822885c68c472c573b5--c2736354357244ac911312c1df3d35bb 7cebed1129034a6cbde653313305361f c2736354357244ac911312c1df3d35bb--7cebed1129034a6cbde653313305361f 91275ffe5aee45e1bd64eb08e92eae79 PHASE(phi_ent₁) 7cebed1129034a6cbde653313305361f--91275ffe5aee45e1bd64eb08e92eae79 91275ffe5aee45e1bd64eb08e92eae79--74ee800d90ac4d7cb9e565c92f7a16c1 f79af113b9bd496c8217f8488ec19825 RX(phi₁₁) 91275ffe5aee45e1bd64eb08e92eae79--f79af113b9bd496c8217f8488ec19825 6d4fa095101d41da84e99443f9822864 RY(phi₁₄) f79af113b9bd496c8217f8488ec19825--6d4fa095101d41da84e99443f9822864 cf6884d65dca416ab170654026b932b5 RX(phi₁₇) 6d4fa095101d41da84e99443f9822864--cf6884d65dca416ab170654026b932b5 beca0e6ab4a246b3aa7faaeb80fea1b7 cf6884d65dca416ab170654026b932b5--beca0e6ab4a246b3aa7faaeb80fea1b7 1bad9d66ab2d4a0ca26dd82d3171123d PHASE(phi_ent₃) beca0e6ab4a246b3aa7faaeb80fea1b7--1bad9d66ab2d4a0ca26dd82d3171123d 1bad9d66ab2d4a0ca26dd82d3171123d--9ba918aa57214390aa67cbac8f8bd4f7 1bad9d66ab2d4a0ca26dd82d3171123d--d71341abe42d43f2be1d5464032a3bf6

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_17835b77a1474bafa275ddae30aa42c6 cluster_92d300d408334b53bb86baa217056cc6 c5ed0ee376934b75998417198017edb0 0 436b0731e5924918bff46f58ca63d20f RX(theta₀) c5ed0ee376934b75998417198017edb0--436b0731e5924918bff46f58ca63d20f 9dfde0d58e0e4881b1885cab16c5a3b3 1 e017d28df02d4697a18b8ce1c13d532c RY(theta₃) 436b0731e5924918bff46f58ca63d20f--e017d28df02d4697a18b8ce1c13d532c 0f2b317d16a34f9594e2207bded5e44b RX(theta₆) e017d28df02d4697a18b8ce1c13d532c--0f2b317d16a34f9594e2207bded5e44b ba19528721e84907b9b4865c1fed5f85 HamEvo 0f2b317d16a34f9594e2207bded5e44b--ba19528721e84907b9b4865c1fed5f85 e847eee02bff41dfa528e4e722cc6083 RX(theta₉) ba19528721e84907b9b4865c1fed5f85--e847eee02bff41dfa528e4e722cc6083 624d62da4b93445497fecb1c08951334 RY(theta₁₂) e847eee02bff41dfa528e4e722cc6083--624d62da4b93445497fecb1c08951334 14c6038dd43f491aa4018395cfb05707 RX(theta₁₅) 624d62da4b93445497fecb1c08951334--14c6038dd43f491aa4018395cfb05707 ce1a569b6eac4c4f8f1bd47661f478c2 HamEvo 14c6038dd43f491aa4018395cfb05707--ce1a569b6eac4c4f8f1bd47661f478c2 6a3f8f348e5b427e8a3b2f0568466f74 ce1a569b6eac4c4f8f1bd47661f478c2--6a3f8f348e5b427e8a3b2f0568466f74 ecefc3ca24b64381979193855b629aee d8355d6a3ee6479a9189349b0cb11a81 RX(theta₁) 9dfde0d58e0e4881b1885cab16c5a3b3--d8355d6a3ee6479a9189349b0cb11a81 9fcac3e0ea4e456a954d3b5fb7e6c121 2 ceb5a169ed414908bda875cc039ac913 RY(theta₄) d8355d6a3ee6479a9189349b0cb11a81--ceb5a169ed414908bda875cc039ac913 97759a9929e749a885fcfd876f03445d RX(theta₇) ceb5a169ed414908bda875cc039ac913--97759a9929e749a885fcfd876f03445d 1b636210586c4e6fa4d6a9b1adc0bbfd t = theta_t₀ 97759a9929e749a885fcfd876f03445d--1b636210586c4e6fa4d6a9b1adc0bbfd ed7be39bd66947f9b19a6b5c25f614a5 RX(theta₁₀) 1b636210586c4e6fa4d6a9b1adc0bbfd--ed7be39bd66947f9b19a6b5c25f614a5 2ad18901f2134d9baab407421a1a1971 RY(theta₁₃) ed7be39bd66947f9b19a6b5c25f614a5--2ad18901f2134d9baab407421a1a1971 9c7444ac2b6c41639ac1c5ef20981331 RX(theta₁₆) 2ad18901f2134d9baab407421a1a1971--9c7444ac2b6c41639ac1c5ef20981331 353cd9c5af13442590ff378a23c10068 t = theta_t₁ 9c7444ac2b6c41639ac1c5ef20981331--353cd9c5af13442590ff378a23c10068 353cd9c5af13442590ff378a23c10068--ecefc3ca24b64381979193855b629aee 3008c6448b434a5abc375dcd43784d00 b67a2f0efc4a49d19f65132d8c5be156 RX(theta₂) 9fcac3e0ea4e456a954d3b5fb7e6c121--b67a2f0efc4a49d19f65132d8c5be156 a37f8b13395e44ac989411e6009d24e8 RY(theta₅) b67a2f0efc4a49d19f65132d8c5be156--a37f8b13395e44ac989411e6009d24e8 70b39b5deae24ddea91ec21cb70f9552 RX(theta₈) a37f8b13395e44ac989411e6009d24e8--70b39b5deae24ddea91ec21cb70f9552 cec756d6764144738785788326b503bf 70b39b5deae24ddea91ec21cb70f9552--cec756d6764144738785788326b503bf f4ddc0fbbf284e7aa1d05f35c3cc4a07 RX(theta₁₁) cec756d6764144738785788326b503bf--f4ddc0fbbf284e7aa1d05f35c3cc4a07 9f775efec38d4cf5bb76c8b84e673447 RY(theta₁₄) f4ddc0fbbf284e7aa1d05f35c3cc4a07--9f775efec38d4cf5bb76c8b84e673447 5af9a827ea9e440bb478750d8895ab92 RX(theta₁₇) 9f775efec38d4cf5bb76c8b84e673447--5af9a827ea9e440bb478750d8895ab92 5b9aa770f20a44d7b70e7bd0b2657354 5af9a827ea9e440bb478750d8895ab92--5b9aa770f20a44d7b70e7bd0b2657354 5b9aa770f20a44d7b70e7bd0b2657354--3008c6448b434a5abc375dcd43784d00

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_addd5c55ffce42e4a7d581b326954038 cluster_824a246d8ba143aebb865096a090d12a b480087d397946e188e8dc04e8f16183 0 8df76b79f82943058cbdb57d13ff0e1e RX(theta₀) b480087d397946e188e8dc04e8f16183--8df76b79f82943058cbdb57d13ff0e1e af8cad87265b4665aaefc6a7f8e35946 1 e240bd9fbd164cecae3ad61197fda4a6 RY(theta₆) 8df76b79f82943058cbdb57d13ff0e1e--e240bd9fbd164cecae3ad61197fda4a6 a49af30fbe284786a71cc411fca62a05 RX(theta₁₂) e240bd9fbd164cecae3ad61197fda4a6--a49af30fbe284786a71cc411fca62a05 dc14fd5f033e412486699784159d3d8f a49af30fbe284786a71cc411fca62a05--dc14fd5f033e412486699784159d3d8f 3d927a3b5f314096a464ea9c665359cd RX(theta₁₈) dc14fd5f033e412486699784159d3d8f--3d927a3b5f314096a464ea9c665359cd 3c044b5747e14b7ca95cc879266016d6 RY(theta₂₄) 3d927a3b5f314096a464ea9c665359cd--3c044b5747e14b7ca95cc879266016d6 b247d98d7b214421a1485d922b669811 RX(theta₃₀) 3c044b5747e14b7ca95cc879266016d6--b247d98d7b214421a1485d922b669811 b2a4289361b34e6da9c31d4e4b174b72 b247d98d7b214421a1485d922b669811--b2a4289361b34e6da9c31d4e4b174b72 eb2da7ac751744c0b7650403595a3f56 b2a4289361b34e6da9c31d4e4b174b72--eb2da7ac751744c0b7650403595a3f56 8b9e619715fb411b9835bd7ce96ebdb2 80521fb5e6ad4e509a095d76fbb2004a RX(theta₁) af8cad87265b4665aaefc6a7f8e35946--80521fb5e6ad4e509a095d76fbb2004a ad7882a7c2a6485e98f80905e446efec 2 7a5611478ce04d538ec919a8dca5eee0 RY(theta₇) 80521fb5e6ad4e509a095d76fbb2004a--7a5611478ce04d538ec919a8dca5eee0 771cb9e667414faf8b9717dfadf31fa9 RX(theta₁₃) 7a5611478ce04d538ec919a8dca5eee0--771cb9e667414faf8b9717dfadf31fa9 54a05eab98fb4290a461a0ff015f56a7 771cb9e667414faf8b9717dfadf31fa9--54a05eab98fb4290a461a0ff015f56a7 0165c356c68d49c9b07ee8908e6afdc0 RX(theta₁₉) 54a05eab98fb4290a461a0ff015f56a7--0165c356c68d49c9b07ee8908e6afdc0 e9a55a41bb924acca59b924f26fe92c5 RY(theta₂₅) 0165c356c68d49c9b07ee8908e6afdc0--e9a55a41bb924acca59b924f26fe92c5 ff6cbffe4e5841dbafa6d8a52315f487 RX(theta₃₁) e9a55a41bb924acca59b924f26fe92c5--ff6cbffe4e5841dbafa6d8a52315f487 74d21d54d8364f84a4fa22af25588b88 ff6cbffe4e5841dbafa6d8a52315f487--74d21d54d8364f84a4fa22af25588b88 74d21d54d8364f84a4fa22af25588b88--8b9e619715fb411b9835bd7ce96ebdb2 61722aa412194979bdbde236bc7c534d 7dd9476e3f2c45d89a7e30f8b935a32c RX(theta₂) ad7882a7c2a6485e98f80905e446efec--7dd9476e3f2c45d89a7e30f8b935a32c 0826c1c3ad6243b8b5e99aada5518df2 3 e4e6b79e6c6f43caa1f6cc9a6c285351 RY(theta₈) 7dd9476e3f2c45d89a7e30f8b935a32c--e4e6b79e6c6f43caa1f6cc9a6c285351 8be86a19def94155932649b94a4ddeeb RX(theta₁₄) e4e6b79e6c6f43caa1f6cc9a6c285351--8be86a19def94155932649b94a4ddeeb 193c6d92937c4994b8f9d98924c8595b HamEvo 8be86a19def94155932649b94a4ddeeb--193c6d92937c4994b8f9d98924c8595b 94d8e32ff6c54d70b40bbd8f78bcb717 RX(theta₂₀) 193c6d92937c4994b8f9d98924c8595b--94d8e32ff6c54d70b40bbd8f78bcb717 e8cbcf20a2ec4cb2b20e7994a2bf8711 RY(theta₂₆) 94d8e32ff6c54d70b40bbd8f78bcb717--e8cbcf20a2ec4cb2b20e7994a2bf8711 b8d2c1268c5b43bebbb084ac61f1021d RX(theta₃₂) e8cbcf20a2ec4cb2b20e7994a2bf8711--b8d2c1268c5b43bebbb084ac61f1021d 01a4dd680dbe41bab97ca34ff6911eb9 HamEvo b8d2c1268c5b43bebbb084ac61f1021d--01a4dd680dbe41bab97ca34ff6911eb9 01a4dd680dbe41bab97ca34ff6911eb9--61722aa412194979bdbde236bc7c534d fc6b179d74e94b6aa1bf7661f0a1f2e4 b4d7034a41974763b94d728d3613aae1 RX(theta₃) 0826c1c3ad6243b8b5e99aada5518df2--b4d7034a41974763b94d728d3613aae1 33f7e2f0b88749048f7e8d3e1b136a94 4 1406aa2f7da54f8b8d2710768738231c RY(theta₉) b4d7034a41974763b94d728d3613aae1--1406aa2f7da54f8b8d2710768738231c 72a158f0c87449d78ba7cfe2dcafa8b0 RX(theta₁₅) 1406aa2f7da54f8b8d2710768738231c--72a158f0c87449d78ba7cfe2dcafa8b0 ae04c1ab2cd940ce9236abb429422a17 t = theta_t₀ 72a158f0c87449d78ba7cfe2dcafa8b0--ae04c1ab2cd940ce9236abb429422a17 7fe7aa56fa3449979fb601b3db8eb637 RX(theta₂₁) ae04c1ab2cd940ce9236abb429422a17--7fe7aa56fa3449979fb601b3db8eb637 e88d21dd37b7481182f3acde22d38ce5 RY(theta₂₇) 7fe7aa56fa3449979fb601b3db8eb637--e88d21dd37b7481182f3acde22d38ce5 48f4b52ac7874cd79474645fe2bfda48 RX(theta₃₃) e88d21dd37b7481182f3acde22d38ce5--48f4b52ac7874cd79474645fe2bfda48 5061f3ded36b40dc82c7f51d52f24c81 t = theta_t₁ 48f4b52ac7874cd79474645fe2bfda48--5061f3ded36b40dc82c7f51d52f24c81 5061f3ded36b40dc82c7f51d52f24c81--fc6b179d74e94b6aa1bf7661f0a1f2e4 4b96bbd4b373401b842f2155ee6f2f8d e8633e427a064efd9512811a71d3a3c5 RX(theta₄) 33f7e2f0b88749048f7e8d3e1b136a94--e8633e427a064efd9512811a71d3a3c5 4c75fb0bd3874180825b84f4b64bba37 5 250548637d874619b558c5ab9dbdf866 RY(theta₁₀) e8633e427a064efd9512811a71d3a3c5--250548637d874619b558c5ab9dbdf866 faa8f490cec0489f8b1b900799fe8159 RX(theta₁₆) 250548637d874619b558c5ab9dbdf866--faa8f490cec0489f8b1b900799fe8159 5e130fa4228447268c29bf3b3ba57f1a faa8f490cec0489f8b1b900799fe8159--5e130fa4228447268c29bf3b3ba57f1a 61f4b31ba6f0472893b6d1db40b140f9 RX(theta₂₂) 5e130fa4228447268c29bf3b3ba57f1a--61f4b31ba6f0472893b6d1db40b140f9 b88f1111e33442cdad69a0b24de0462a RY(theta₂₈) 61f4b31ba6f0472893b6d1db40b140f9--b88f1111e33442cdad69a0b24de0462a be662b5188fb4342afe9b7242a5cfd13 RX(theta₃₄) b88f1111e33442cdad69a0b24de0462a--be662b5188fb4342afe9b7242a5cfd13 abd2ef74bd4a4fbcaf1874b30fd33843 be662b5188fb4342afe9b7242a5cfd13--abd2ef74bd4a4fbcaf1874b30fd33843 abd2ef74bd4a4fbcaf1874b30fd33843--4b96bbd4b373401b842f2155ee6f2f8d 8f015990985a472b99c1e65b310939e0 c3180c9b179f486997a4112f939b91f4 RX(theta₅) 4c75fb0bd3874180825b84f4b64bba37--c3180c9b179f486997a4112f939b91f4 843232376d354bbb8b3ab43f9b13e207 RY(theta₁₁) c3180c9b179f486997a4112f939b91f4--843232376d354bbb8b3ab43f9b13e207 8ac329b782334dd3bed248a49516aa74 RX(theta₁₇) 843232376d354bbb8b3ab43f9b13e207--8ac329b782334dd3bed248a49516aa74 59d6ea437e2c4ce29390120529416752 8ac329b782334dd3bed248a49516aa74--59d6ea437e2c4ce29390120529416752 003b0194c2454a1581ffacb256f69bac RX(theta₂₃) 59d6ea437e2c4ce29390120529416752--003b0194c2454a1581ffacb256f69bac 38548c0286ce4b62bbe9e053798f7163 RY(theta₂₉) 003b0194c2454a1581ffacb256f69bac--38548c0286ce4b62bbe9e053798f7163 628e188c85a545ce9a318e6faa0cbb4c RX(theta₃₅) 38548c0286ce4b62bbe9e053798f7163--628e188c85a545ce9a318e6faa0cbb4c 5b68a22e61f24eeda1d61e0f1e60fef7 628e188c85a545ce9a318e6faa0cbb4c--5b68a22e61f24eeda1d61e0f1e60fef7 5b68a22e61f24eeda1d61e0f1e60fef7--8f015990985a472b99c1e65b310939e0

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_355e299521194e46939e71be5249fe44 BPMA-1 cluster_aa853ba6ecac4b4b9e37b798465ba6d1 BPMA-0 c5eb023b617d493aac8e7b33a1b44474 0 a8b395a3e77e4763978ec4f3bdfd0081 RX(alpha₀₀) c5eb023b617d493aac8e7b33a1b44474--a8b395a3e77e4763978ec4f3bdfd0081 720cb4efb7cf41f381ddd2a47f05367d 1 0219481b03784829adab62357c072ae6 RY(alpha₀₃) a8b395a3e77e4763978ec4f3bdfd0081--0219481b03784829adab62357c072ae6 3dcc0f3b71694e69b0036eaa55794a05 0219481b03784829adab62357c072ae6--3dcc0f3b71694e69b0036eaa55794a05 b138dbfd41e6491995c2c75e3b995c95 3dcc0f3b71694e69b0036eaa55794a05--b138dbfd41e6491995c2c75e3b995c95 bf3b9750a73b4ac8bbea574e14f21ebe RX(gamma₀₀) b138dbfd41e6491995c2c75e3b995c95--bf3b9750a73b4ac8bbea574e14f21ebe 42434b54fb4444449335472a8508cfac bf3b9750a73b4ac8bbea574e14f21ebe--42434b54fb4444449335472a8508cfac 1dc03b0a5ef44c0b94c2bfe6016ad975 42434b54fb4444449335472a8508cfac--1dc03b0a5ef44c0b94c2bfe6016ad975 2b029a4d860648a684ed554749f70998 RY(beta₀₃) 1dc03b0a5ef44c0b94c2bfe6016ad975--2b029a4d860648a684ed554749f70998 7de0314c7ff54cbf9b54ba0a860951c6 RX(beta₀₀) 2b029a4d860648a684ed554749f70998--7de0314c7ff54cbf9b54ba0a860951c6 ea50acfec48b4a0f8b4cb705287fef9f RX(alpha₁₀) 7de0314c7ff54cbf9b54ba0a860951c6--ea50acfec48b4a0f8b4cb705287fef9f f6c9cc69f92d4875951c9827446ff841 RY(alpha₁₃) ea50acfec48b4a0f8b4cb705287fef9f--f6c9cc69f92d4875951c9827446ff841 16d6f22d51bc4f59b96be41827223f65 f6c9cc69f92d4875951c9827446ff841--16d6f22d51bc4f59b96be41827223f65 dcf2209fd094488fb9598974836e5e25 16d6f22d51bc4f59b96be41827223f65--dcf2209fd094488fb9598974836e5e25 ceadd292408543029363765a1a1e1117 RX(gamma₁₀) dcf2209fd094488fb9598974836e5e25--ceadd292408543029363765a1a1e1117 b510e97ed9d0460aa8e46a9101850daf ceadd292408543029363765a1a1e1117--b510e97ed9d0460aa8e46a9101850daf a1d938276d4146febca581e0e304394d b510e97ed9d0460aa8e46a9101850daf--a1d938276d4146febca581e0e304394d ea7d45b71a214e33afe491a41f90029c RY(beta₁₃) a1d938276d4146febca581e0e304394d--ea7d45b71a214e33afe491a41f90029c 5cfa42e1731f4258be2cc4aea1e30f84 RX(beta₁₀) ea7d45b71a214e33afe491a41f90029c--5cfa42e1731f4258be2cc4aea1e30f84 01466e4dba9744f8869aa7d1dde26296 5cfa42e1731f4258be2cc4aea1e30f84--01466e4dba9744f8869aa7d1dde26296 94ed6753c9c54dee828bcaad8d75f8b5 f3157498fae44203a592b98d11ca1769 RX(alpha₀₁) 720cb4efb7cf41f381ddd2a47f05367d--f3157498fae44203a592b98d11ca1769 abb5bae7414c42839a9741d1a4192ac2 2 c576e3f7cfcc464b9accae98fc4ee371 RY(alpha₀₄) f3157498fae44203a592b98d11ca1769--c576e3f7cfcc464b9accae98fc4ee371 7c19b0e169634fa6a6d3908d5717aeb7 X c576e3f7cfcc464b9accae98fc4ee371--7c19b0e169634fa6a6d3908d5717aeb7 7c19b0e169634fa6a6d3908d5717aeb7--3dcc0f3b71694e69b0036eaa55794a05 d65a2121895743dba8131835be2a01b2 7c19b0e169634fa6a6d3908d5717aeb7--d65a2121895743dba8131835be2a01b2 eed7a0c1ca354cda9b5c980b6d9d8827 RX(gamma₀₁) d65a2121895743dba8131835be2a01b2--eed7a0c1ca354cda9b5c980b6d9d8827 e5b7aced719f4b92961efc632ed702f0 eed7a0c1ca354cda9b5c980b6d9d8827--e5b7aced719f4b92961efc632ed702f0 6451c720d672428f8b592690a1ea7e8f X e5b7aced719f4b92961efc632ed702f0--6451c720d672428f8b592690a1ea7e8f 6451c720d672428f8b592690a1ea7e8f--1dc03b0a5ef44c0b94c2bfe6016ad975 78b4620675fa40dc9005edf5f19bcaa6 RY(beta₀₄) 6451c720d672428f8b592690a1ea7e8f--78b4620675fa40dc9005edf5f19bcaa6 bd265edc6b0049fba59ad42c146c3e87 RX(beta₀₁) 78b4620675fa40dc9005edf5f19bcaa6--bd265edc6b0049fba59ad42c146c3e87 f26d789f795744f79d2f4e206824bc22 RX(alpha₁₁) bd265edc6b0049fba59ad42c146c3e87--f26d789f795744f79d2f4e206824bc22 b23803c9825a4638ac143459ae8115ef RY(alpha₁₄) f26d789f795744f79d2f4e206824bc22--b23803c9825a4638ac143459ae8115ef 9e128fcfebe9427f9ecc766e98f68a0b X b23803c9825a4638ac143459ae8115ef--9e128fcfebe9427f9ecc766e98f68a0b 9e128fcfebe9427f9ecc766e98f68a0b--16d6f22d51bc4f59b96be41827223f65 8c5c5a1aae974eb093456df3ae32fc1a 9e128fcfebe9427f9ecc766e98f68a0b--8c5c5a1aae974eb093456df3ae32fc1a 5f010d06db11427d9b84b2043fc9fef7 RX(gamma₁₁) 8c5c5a1aae974eb093456df3ae32fc1a--5f010d06db11427d9b84b2043fc9fef7 7d825917b89c4c1486cf4e99dbfe99c1 5f010d06db11427d9b84b2043fc9fef7--7d825917b89c4c1486cf4e99dbfe99c1 bfd484bcbfee40778f25aa89d2cdafc8 X 7d825917b89c4c1486cf4e99dbfe99c1--bfd484bcbfee40778f25aa89d2cdafc8 bfd484bcbfee40778f25aa89d2cdafc8--a1d938276d4146febca581e0e304394d 7d6ed5a87c0a48058db716605c082f83 RY(beta₁₄) bfd484bcbfee40778f25aa89d2cdafc8--7d6ed5a87c0a48058db716605c082f83 29b8b3305bdb4a27872e5d371c47cb3f RX(beta₁₁) 7d6ed5a87c0a48058db716605c082f83--29b8b3305bdb4a27872e5d371c47cb3f 29b8b3305bdb4a27872e5d371c47cb3f--94ed6753c9c54dee828bcaad8d75f8b5 0b7576ffb55641c6af11b57106e96f98 ff8f2864625c42df9248ab3ff0192aaf RX(alpha₀₂) abb5bae7414c42839a9741d1a4192ac2--ff8f2864625c42df9248ab3ff0192aaf 44130d902e6d457793525173b6f6d4b9 RY(alpha₀₅) ff8f2864625c42df9248ab3ff0192aaf--44130d902e6d457793525173b6f6d4b9 fa45ab058bb24919938d0524e3ac66cd 44130d902e6d457793525173b6f6d4b9--fa45ab058bb24919938d0524e3ac66cd c04023d98eb54844b9c69c7ecc53983b X fa45ab058bb24919938d0524e3ac66cd--c04023d98eb54844b9c69c7ecc53983b c04023d98eb54844b9c69c7ecc53983b--d65a2121895743dba8131835be2a01b2 a8d0aee407ae40ea97631449550c413b RX(gamma₀₂) c04023d98eb54844b9c69c7ecc53983b--a8d0aee407ae40ea97631449550c413b 436d4c6352ab4b99b0ccfdff71135cf1 X a8d0aee407ae40ea97631449550c413b--436d4c6352ab4b99b0ccfdff71135cf1 436d4c6352ab4b99b0ccfdff71135cf1--e5b7aced719f4b92961efc632ed702f0 976540343efa466cb5617368b1fec6b2 436d4c6352ab4b99b0ccfdff71135cf1--976540343efa466cb5617368b1fec6b2 280be3758e494ed9aad0db6c959d623f RY(beta₀₅) 976540343efa466cb5617368b1fec6b2--280be3758e494ed9aad0db6c959d623f 846961abde214c74a5315b2edafd3964 RX(beta₀₂) 280be3758e494ed9aad0db6c959d623f--846961abde214c74a5315b2edafd3964 2161a226add04660a81ed430ddf3b188 RX(alpha₁₂) 846961abde214c74a5315b2edafd3964--2161a226add04660a81ed430ddf3b188 2ef190efd3714ec7bd6e1666d8433765 RY(alpha₁₅) 2161a226add04660a81ed430ddf3b188--2ef190efd3714ec7bd6e1666d8433765 cf68f315c9334e908ef9f7c7d022793d 2ef190efd3714ec7bd6e1666d8433765--cf68f315c9334e908ef9f7c7d022793d 532fd22f86b7465ba9a154fe2250cea7 X cf68f315c9334e908ef9f7c7d022793d--532fd22f86b7465ba9a154fe2250cea7 532fd22f86b7465ba9a154fe2250cea7--8c5c5a1aae974eb093456df3ae32fc1a 90178ec7cd6d437ba601752cc73c7607 RX(gamma₁₂) 532fd22f86b7465ba9a154fe2250cea7--90178ec7cd6d437ba601752cc73c7607 c1c838ae3574479a9e6a382555520dbb X 90178ec7cd6d437ba601752cc73c7607--c1c838ae3574479a9e6a382555520dbb c1c838ae3574479a9e6a382555520dbb--7d825917b89c4c1486cf4e99dbfe99c1 cea7592d090a4975b9f4305db9f0a48c c1c838ae3574479a9e6a382555520dbb--cea7592d090a4975b9f4305db9f0a48c 4b994d5511a44edf872e0db2cb277032 RY(beta₁₅) cea7592d090a4975b9f4305db9f0a48c--4b994d5511a44edf872e0db2cb277032 82f7fb71850a4d7197cb98f5987757b2 RX(beta₁₂) 4b994d5511a44edf872e0db2cb277032--82f7fb71850a4d7197cb98f5987757b2 82f7fb71850a4d7197cb98f5987757b2--0b7576ffb55641c6af11b57106e96f98