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_1e9a08cc6ade4f3eb1908f37963b72f8 Constant Chebyshev FM cluster_51af759c4bde4f978c666f421b0220cf Constant Fourier FM 82eb0ea0a7ee4bfcab9235aef4796b8e 0 7f5599e5e2274dd6aa849ad73ea897a8 RX(phi) 82eb0ea0a7ee4bfcab9235aef4796b8e--7f5599e5e2274dd6aa849ad73ea897a8 a0aea83ca182433dbf7d092af02fdd16 1 4fb57c4d8a7545d7bcacf0267020ff40 RX(acos(phi)) 7f5599e5e2274dd6aa849ad73ea897a8--4fb57c4d8a7545d7bcacf0267020ff40 da8cb7b97b6046d8a50ea9501e2845a6 4fb57c4d8a7545d7bcacf0267020ff40--da8cb7b97b6046d8a50ea9501e2845a6 f7be71f5614b44ef86522e6e709aca13 ec099600b0e44fcf968af9ced30c6c7c RX(phi) a0aea83ca182433dbf7d092af02fdd16--ec099600b0e44fcf968af9ced30c6c7c 37a4556d0b0841168874455fac2484ae 2 c1d73895d66848b3b533767dd361665a RX(acos(phi)) ec099600b0e44fcf968af9ced30c6c7c--c1d73895d66848b3b533767dd361665a c1d73895d66848b3b533767dd361665a--f7be71f5614b44ef86522e6e709aca13 5da37886d64f41d1b9c78dbf0aab85ef d5db96e9700b4e8d8f7fc4cacc3dacca RX(phi) 37a4556d0b0841168874455fac2484ae--d5db96e9700b4e8d8f7fc4cacc3dacca ee914920d40c41f39ec5e46da07486f7 RX(acos(phi)) d5db96e9700b4e8d8f7fc4cacc3dacca--ee914920d40c41f39ec5e46da07486f7 ee914920d40c41f39ec5e46da07486f7--5da37886d64f41d1b9c78dbf0aab85ef

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_03ca21a4b9c6417eb0e60343c9b27f82 Constant custom_func FM cluster_794066e5196541ff84f71703a7aecc4a Constant asin FM 6d49b54ac3a14034bd8f63c0fe0a1033 0 46fe25048a744c7d90afe94901be06b4 RX(asin(phi)) 6d49b54ac3a14034bd8f63c0fe0a1033--46fe25048a744c7d90afe94901be06b4 691fc37846784c13828eb9e9431811ad 1 3a3cbfe86b074a8da208733ccb147c07 RX(phi**2 + asin(phi)) 46fe25048a744c7d90afe94901be06b4--3a3cbfe86b074a8da208733ccb147c07 22b6a590aadd49efaddbab7445eda566 3a3cbfe86b074a8da208733ccb147c07--22b6a590aadd49efaddbab7445eda566 b2d4ff3b1aeb4f7cb47ad1f5b8b007c1 91a8ce6e8cb64938a8e2333a20bae0db RX(asin(phi)) 691fc37846784c13828eb9e9431811ad--91a8ce6e8cb64938a8e2333a20bae0db a97d625b52904d98b492d7b9c8eb0876 2 182f89f0cfc749ee8c725f700b2bf458 RX(phi**2 + asin(phi)) 91a8ce6e8cb64938a8e2333a20bae0db--182f89f0cfc749ee8c725f700b2bf458 182f89f0cfc749ee8c725f700b2bf458--b2d4ff3b1aeb4f7cb47ad1f5b8b007c1 634eb84c73e14ef0b1865e03697e5911 4a9b5341a58144c8bccc120e5f9bca93 RX(asin(phi)) a97d625b52904d98b492d7b9c8eb0876--4a9b5341a58144c8bccc120e5f9bca93 cd70217c36264990966a5e91977d9996 RX(phi**2 + asin(phi)) 4a9b5341a58144c8bccc120e5f9bca93--cd70217c36264990966a5e91977d9996 cd70217c36264990966a5e91977d9996--634eb84c73e14ef0b1865e03697e5911

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_6d8d67a86bcf404e8b476cecc56a7dd3 Exponential Fourier FM cluster_5b6193daf9f44d66b677d08727709d17 Constant Fourier FM cluster_b759ec7036cb41a4a7849588ebe8626a Tower Fourier FM b57aa53fd45f4e9082b85bd476f51a51 0 daa73389890b4c85a62c45d028360d6c RX(phi) b57aa53fd45f4e9082b85bd476f51a51--daa73389890b4c85a62c45d028360d6c 9975ca337475416cacf517dd20f894bd 1 428ac8e624ab4a60a9ab5ff2a384ce76 RX(1.0*phi) daa73389890b4c85a62c45d028360d6c--428ac8e624ab4a60a9ab5ff2a384ce76 991b9c6140a44f7fb4ede358927c312f RX(1.0*phi) 428ac8e624ab4a60a9ab5ff2a384ce76--991b9c6140a44f7fb4ede358927c312f 39fb62f7b64444b18b525fe6c37ee1a2 991b9c6140a44f7fb4ede358927c312f--39fb62f7b64444b18b525fe6c37ee1a2 d964fc97d7e24ee294815f90e5b35f79 118def6b3c18499cb41df42e7d2c0991 RX(phi) 9975ca337475416cacf517dd20f894bd--118def6b3c18499cb41df42e7d2c0991 630e0a651c6243c989532dac70f9f146 2 9c39cab71e9d450bb6c854dd63fe3576 RX(2.0*phi) 118def6b3c18499cb41df42e7d2c0991--9c39cab71e9d450bb6c854dd63fe3576 e67998ee98d248129b22232ac75e32ba RX(2.0*phi) 9c39cab71e9d450bb6c854dd63fe3576--e67998ee98d248129b22232ac75e32ba e67998ee98d248129b22232ac75e32ba--d964fc97d7e24ee294815f90e5b35f79 0e959467b2c844018d2fc0b3bdec546b 725805004ae04d74bf716d2012d2b80a RX(phi) 630e0a651c6243c989532dac70f9f146--725805004ae04d74bf716d2012d2b80a e90b50e58abf464ebe556c8c11caf55c 3 f1b4cecb33e34a1b94de5b5b703e41a8 RX(3.0*phi) 725805004ae04d74bf716d2012d2b80a--f1b4cecb33e34a1b94de5b5b703e41a8 1a99d7bf0e4d468881245eec7545a396 RX(4.0*phi) f1b4cecb33e34a1b94de5b5b703e41a8--1a99d7bf0e4d468881245eec7545a396 1a99d7bf0e4d468881245eec7545a396--0e959467b2c844018d2fc0b3bdec546b 42b757d04d504ee583d5b954fa46d5b6 f499ce5dcfad4cebb63953140ca79980 RX(phi) e90b50e58abf464ebe556c8c11caf55c--f499ce5dcfad4cebb63953140ca79980 ca5db714c9bb46ddac32dff9c4a6b627 4 c3f7286dd3fe415388f5d8ded1fcfeeb RX(4.0*phi) f499ce5dcfad4cebb63953140ca79980--c3f7286dd3fe415388f5d8ded1fcfeeb 6100b2cdafa1455ebf18d0d879422684 RX(8.0*phi) c3f7286dd3fe415388f5d8ded1fcfeeb--6100b2cdafa1455ebf18d0d879422684 6100b2cdafa1455ebf18d0d879422684--42b757d04d504ee583d5b954fa46d5b6 b60506cc3dcd40eeb5a5f8c91082ad18 87ee4bc14b404d13876d958d1e099834 RX(phi) ca5db714c9bb46ddac32dff9c4a6b627--87ee4bc14b404d13876d958d1e099834 f3197cced51d476abe7f96afb2c66ce4 RX(5.0*phi) 87ee4bc14b404d13876d958d1e099834--f3197cced51d476abe7f96afb2c66ce4 6c19caad99cd48f9880b852d8d0d7417 RX(16.0*phi) f3197cced51d476abe7f96afb2c66ce4--6c19caad99cd48f9880b852d8d0d7417 6c19caad99cd48f9880b852d8d0d7417--b60506cc3dcd40eeb5a5f8c91082ad18

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 6b5ffc8ac59b4fa68b87ff22195c477b 0 e8599dcbec1f40dfa37aa7ba0cc06dc4 RX(1.0*acos(phi)) 6b5ffc8ac59b4fa68b87ff22195c477b--e8599dcbec1f40dfa37aa7ba0cc06dc4 3e921829f9994c7e9b13233ef118303c 1 1364f456f4ce4f97aa2e39fbbb1122c0 e8599dcbec1f40dfa37aa7ba0cc06dc4--1364f456f4ce4f97aa2e39fbbb1122c0 ac95e39b4c6747f68777bfa7db97ca69 087ae46a8a2d497c87983e768e7daa82 RX(1.414*acos(phi)) 3e921829f9994c7e9b13233ef118303c--087ae46a8a2d497c87983e768e7daa82 a8224d9c689b4715a8ce63bc593f5c82 2 087ae46a8a2d497c87983e768e7daa82--ac95e39b4c6747f68777bfa7db97ca69 856cd770878d44738f8679a3a5094b44 244f68a72d40473cae12179dadf1362c RX(1.732*acos(phi)) a8224d9c689b4715a8ce63bc593f5c82--244f68a72d40473cae12179dadf1362c 5d76a23baec44fd8a0fd02665d6b2120 3 244f68a72d40473cae12179dadf1362c--856cd770878d44738f8679a3a5094b44 9a6f098950be48a8a216400cdb1380c2 4ccbc8e9c91c4fef9c7f3c9503f74d64 RX(2.0*acos(phi)) 5d76a23baec44fd8a0fd02665d6b2120--4ccbc8e9c91c4fef9c7f3c9503f74d64 0c15e0e2606e4f19809b74ffd30a09fd 4 4ccbc8e9c91c4fef9c7f3c9503f74d64--9a6f098950be48a8a216400cdb1380c2 b61278cdf44e45a99faf5c68b1da9ca4 e9beb791cfc846e8a2821a0c795f36d6 RX(2.236*acos(phi)) 0c15e0e2606e4f19809b74ffd30a09fd--e9beb791cfc846e8a2821a0c795f36d6 e9beb791cfc846e8a2821a0c795f36d6--b61278cdf44e45a99faf5c68b1da9ca4

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 c5e79596def64dd38c3cae65f607fffc 0 33670cfb072d41dcbb8574314037c6f3 RY(80.0*acos(0.667*x + 1.667)) c5e79596def64dd38c3cae65f607fffc--33670cfb072d41dcbb8574314037c6f3 4faff9011067408296d8acdd8e0d9028 1 18f7934d39064ac9b97b96841a289725 33670cfb072d41dcbb8574314037c6f3--18f7934d39064ac9b97b96841a289725 6a0b7e0524ac4a4e984c156c462f3a1f b5e5d6846dc949c795866c67282f91a7 RY(40.0*acos(0.667*x + 1.667)) 4faff9011067408296d8acdd8e0d9028--b5e5d6846dc949c795866c67282f91a7 769b25be35fe49c08934f358d4222e64 2 b5e5d6846dc949c795866c67282f91a7--6a0b7e0524ac4a4e984c156c462f3a1f 2656cfa1bf2f4a4ea5f679b21a2f1cdc 7c6024d78cc74279b4f3615a55d6c4f0 RY(20.0*acos(0.667*x + 1.667)) 769b25be35fe49c08934f358d4222e64--7c6024d78cc74279b4f3615a55d6c4f0 e004d2cf137f4d9d86436caf867505ea 3 7c6024d78cc74279b4f3615a55d6c4f0--2656cfa1bf2f4a4ea5f679b21a2f1cdc d40487908b1c4629a49f6f77ae248190 572a43f5b4844f8fb2f92c7c5633cbb0 RY(10.0*acos(0.667*x + 1.667)) e004d2cf137f4d9d86436caf867505ea--572a43f5b4844f8fb2f92c7c5633cbb0 b7a9d9dac33447b590bd8a32de93ff17 4 572a43f5b4844f8fb2f92c7c5633cbb0--d40487908b1c4629a49f6f77ae248190 9c191ac1af5646e8b544a20fe897305a a6ddfc0b0abc4ad7b1ee8f4db9e83168 RY(5.0*acos(0.667*x + 1.667)) b7a9d9dac33447b590bd8a32de93ff17--a6ddfc0b0abc4ad7b1ee8f4db9e83168 a6ddfc0b0abc4ad7b1ee8f4db9e83168--9c191ac1af5646e8b544a20fe897305a

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 6995d35613fd40d68e46622961a5aa37 0 09380df27f9f4a0bb03f579a89152652 RX(theta₀) 6995d35613fd40d68e46622961a5aa37--09380df27f9f4a0bb03f579a89152652 7e200a57e5884bc7840ac31f81856e0a 1 35c3da000f464346b3424436df3e762b RY(theta₃) 09380df27f9f4a0bb03f579a89152652--35c3da000f464346b3424436df3e762b 613a727cd0e049269ac7d046403cdbf1 RX(theta₆) 35c3da000f464346b3424436df3e762b--613a727cd0e049269ac7d046403cdbf1 acfb249e09c04dff9d53d184432f16bb 613a727cd0e049269ac7d046403cdbf1--acfb249e09c04dff9d53d184432f16bb ad427ac56968446882f205e5cececf70 acfb249e09c04dff9d53d184432f16bb--ad427ac56968446882f205e5cececf70 bd5b8bbaad414057918e3fea839c739e RX(theta₉) ad427ac56968446882f205e5cececf70--bd5b8bbaad414057918e3fea839c739e fdf170dba3e64d3cbe84eb869f92f20f RY(theta₁₂) bd5b8bbaad414057918e3fea839c739e--fdf170dba3e64d3cbe84eb869f92f20f 5d670825daf7487e9662e99ccee03860 RX(theta₁₅) fdf170dba3e64d3cbe84eb869f92f20f--5d670825daf7487e9662e99ccee03860 42d4157b832546f4abde37584caf85bd 5d670825daf7487e9662e99ccee03860--42d4157b832546f4abde37584caf85bd 9aa6d6d6a4b94837b76cd642e88b2295 42d4157b832546f4abde37584caf85bd--9aa6d6d6a4b94837b76cd642e88b2295 737add4191a2481b833816a09ace53e1 9aa6d6d6a4b94837b76cd642e88b2295--737add4191a2481b833816a09ace53e1 58e20f193377413cb2e1396b19711b4e 7a41504db7b344faabc4b12d4bb90e8d RX(theta₁) 7e200a57e5884bc7840ac31f81856e0a--7a41504db7b344faabc4b12d4bb90e8d 66de8a6ee66f4b7d86e6fc10e9ee9f66 2 f49a2f038133463690e3baf443f0d6a9 RY(theta₄) 7a41504db7b344faabc4b12d4bb90e8d--f49a2f038133463690e3baf443f0d6a9 d00a1087787a4091ada35129d22da798 RX(theta₇) f49a2f038133463690e3baf443f0d6a9--d00a1087787a4091ada35129d22da798 aa74309a43514567bc66588c428f2578 X d00a1087787a4091ada35129d22da798--aa74309a43514567bc66588c428f2578 aa74309a43514567bc66588c428f2578--acfb249e09c04dff9d53d184432f16bb 07c244c8068d42229b63633f90a11e01 aa74309a43514567bc66588c428f2578--07c244c8068d42229b63633f90a11e01 a66e1ccb31324c828822892b2173156f RX(theta₁₀) 07c244c8068d42229b63633f90a11e01--a66e1ccb31324c828822892b2173156f e3b3ce10e73d4bb4aedff7189a448073 RY(theta₁₃) a66e1ccb31324c828822892b2173156f--e3b3ce10e73d4bb4aedff7189a448073 7ef9bbdcc4204741829d8ed0ac79eb49 RX(theta₁₆) e3b3ce10e73d4bb4aedff7189a448073--7ef9bbdcc4204741829d8ed0ac79eb49 3b6b443cbca24f8ba14d72d3974c05a5 X 7ef9bbdcc4204741829d8ed0ac79eb49--3b6b443cbca24f8ba14d72d3974c05a5 3b6b443cbca24f8ba14d72d3974c05a5--42d4157b832546f4abde37584caf85bd 80d4ee8ce6a843e5856deb7caa4fbc89 3b6b443cbca24f8ba14d72d3974c05a5--80d4ee8ce6a843e5856deb7caa4fbc89 80d4ee8ce6a843e5856deb7caa4fbc89--58e20f193377413cb2e1396b19711b4e 1d903356e923458fa59fcccf99f5fe26 fddf4d7ea07549259764c55b5e1e1245 RX(theta₂) 66de8a6ee66f4b7d86e6fc10e9ee9f66--fddf4d7ea07549259764c55b5e1e1245 958691b439824c85993ae5613c347f8f RY(theta₅) fddf4d7ea07549259764c55b5e1e1245--958691b439824c85993ae5613c347f8f 992a3b59b1e7419986d4d91b1ce6e9e4 RX(theta₈) 958691b439824c85993ae5613c347f8f--992a3b59b1e7419986d4d91b1ce6e9e4 eabc91192c72418d9d9f5c9032936afd 992a3b59b1e7419986d4d91b1ce6e9e4--eabc91192c72418d9d9f5c9032936afd c48d0b2456704b6eae6465dc5a6796ad X eabc91192c72418d9d9f5c9032936afd--c48d0b2456704b6eae6465dc5a6796ad c48d0b2456704b6eae6465dc5a6796ad--07c244c8068d42229b63633f90a11e01 03dc7abd535f4415aa888635a64aec08 RX(theta₁₁) c48d0b2456704b6eae6465dc5a6796ad--03dc7abd535f4415aa888635a64aec08 d58e3c529a4242148addab3c3aeebb3a RY(theta₁₄) 03dc7abd535f4415aa888635a64aec08--d58e3c529a4242148addab3c3aeebb3a 34f2c57c802647ea8a04a638cac9d76e RX(theta₁₇) d58e3c529a4242148addab3c3aeebb3a--34f2c57c802647ea8a04a638cac9d76e b4cd32aed6cd44d9912d4157f9c39d47 34f2c57c802647ea8a04a638cac9d76e--b4cd32aed6cd44d9912d4157f9c39d47 164ec3d61093411f9b5debdc4ce9097e X b4cd32aed6cd44d9912d4157f9c39d47--164ec3d61093411f9b5debdc4ce9097e 164ec3d61093411f9b5debdc4ce9097e--80d4ee8ce6a843e5856deb7caa4fbc89 164ec3d61093411f9b5debdc4ce9097e--1d903356e923458fa59fcccf99f5fe26

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 cbb8edc6d5ca4b6a8219b22a701092ed 0 7608df2cf4624503898d1a24061ef4a6 RX(phi₀) cbb8edc6d5ca4b6a8219b22a701092ed--7608df2cf4624503898d1a24061ef4a6 50c812ef29ac402999df3f57f1bd7d6c 1 9ecf9ca93c504d7b80ff2e7f05e47112 RY(phi₃) 7608df2cf4624503898d1a24061ef4a6--9ecf9ca93c504d7b80ff2e7f05e47112 0d17d58c69d34b9db8669bf892f21b89 RX(phi₆) 9ecf9ca93c504d7b80ff2e7f05e47112--0d17d58c69d34b9db8669bf892f21b89 30eed80745d941c08c81aba8f2d7b69a 0d17d58c69d34b9db8669bf892f21b89--30eed80745d941c08c81aba8f2d7b69a 0ebba8d374c54024916c42274da97f86 30eed80745d941c08c81aba8f2d7b69a--0ebba8d374c54024916c42274da97f86 6971b0877fc9452986f747a5da94a269 RX(phi₉) 0ebba8d374c54024916c42274da97f86--6971b0877fc9452986f747a5da94a269 2c30fa01a2fe47bdb36cb4060d352c61 RY(phi₁₂) 6971b0877fc9452986f747a5da94a269--2c30fa01a2fe47bdb36cb4060d352c61 fc2677b0d1934a9ba64489c491ecd00c RX(phi₁₅) 2c30fa01a2fe47bdb36cb4060d352c61--fc2677b0d1934a9ba64489c491ecd00c 18d544af14fe4c81b73021d711f0ca12 fc2677b0d1934a9ba64489c491ecd00c--18d544af14fe4c81b73021d711f0ca12 31be4714d02e43ce88758dc079bb3812 18d544af14fe4c81b73021d711f0ca12--31be4714d02e43ce88758dc079bb3812 ff6df7a63214444eb7f6f7b04127956a 31be4714d02e43ce88758dc079bb3812--ff6df7a63214444eb7f6f7b04127956a ccbf78241cdc482a99f3b480fb4b5141 4fc6bf8a3ef649458ec347f0801f095b RX(phi₁) 50c812ef29ac402999df3f57f1bd7d6c--4fc6bf8a3ef649458ec347f0801f095b 82fa91dd85ab4a3e85916402bd022a18 2 05a90a211ea3499ea2d2d99c82ce3d98 RY(phi₄) 4fc6bf8a3ef649458ec347f0801f095b--05a90a211ea3499ea2d2d99c82ce3d98 121f4281d49b4dff849777ed134c0971 RX(phi₇) 05a90a211ea3499ea2d2d99c82ce3d98--121f4281d49b4dff849777ed134c0971 b4190cdea2f64afaa92ef4e061d757c6 PHASE(phi_ent₀) 121f4281d49b4dff849777ed134c0971--b4190cdea2f64afaa92ef4e061d757c6 b4190cdea2f64afaa92ef4e061d757c6--30eed80745d941c08c81aba8f2d7b69a 713f48b637c24d628b0ab6e676e980db b4190cdea2f64afaa92ef4e061d757c6--713f48b637c24d628b0ab6e676e980db 9f41cbc4349d471a97cb7e396a359102 RX(phi₁₀) 713f48b637c24d628b0ab6e676e980db--9f41cbc4349d471a97cb7e396a359102 f1aa1cf697a64307a7b85dc38f64a532 RY(phi₁₃) 9f41cbc4349d471a97cb7e396a359102--f1aa1cf697a64307a7b85dc38f64a532 234e4c8ea6f241b5a9319b54b52fc9ec RX(phi₁₆) f1aa1cf697a64307a7b85dc38f64a532--234e4c8ea6f241b5a9319b54b52fc9ec fa9eab96e009404687fa92550cd2982d PHASE(phi_ent₂) 234e4c8ea6f241b5a9319b54b52fc9ec--fa9eab96e009404687fa92550cd2982d fa9eab96e009404687fa92550cd2982d--18d544af14fe4c81b73021d711f0ca12 6bb7d7466ae4402d82b2e89b1d7169e2 fa9eab96e009404687fa92550cd2982d--6bb7d7466ae4402d82b2e89b1d7169e2 6bb7d7466ae4402d82b2e89b1d7169e2--ccbf78241cdc482a99f3b480fb4b5141 cf1812b3210a4518b3dc247655a89058 69b250b2e7ca45cea1d86ccb00cdd252 RX(phi₂) 82fa91dd85ab4a3e85916402bd022a18--69b250b2e7ca45cea1d86ccb00cdd252 4d261f3eb40043589dea111d7f7d6f22 RY(phi₅) 69b250b2e7ca45cea1d86ccb00cdd252--4d261f3eb40043589dea111d7f7d6f22 641f849ccfc547d494b2b9e2712febbf RX(phi₈) 4d261f3eb40043589dea111d7f7d6f22--641f849ccfc547d494b2b9e2712febbf c1d3ddc99f9f473b9a22411abaae340c 641f849ccfc547d494b2b9e2712febbf--c1d3ddc99f9f473b9a22411abaae340c 5681796fdf044def9b60953321c5a7d1 PHASE(phi_ent₁) c1d3ddc99f9f473b9a22411abaae340c--5681796fdf044def9b60953321c5a7d1 5681796fdf044def9b60953321c5a7d1--713f48b637c24d628b0ab6e676e980db bf00ebecc36241b2ac8eebc4b623cb9e RX(phi₁₁) 5681796fdf044def9b60953321c5a7d1--bf00ebecc36241b2ac8eebc4b623cb9e 8aa3775a87b74fdf94385e431efcd3f7 RY(phi₁₄) bf00ebecc36241b2ac8eebc4b623cb9e--8aa3775a87b74fdf94385e431efcd3f7 91fcb2c990a04e96b7191387478efd24 RX(phi₁₇) 8aa3775a87b74fdf94385e431efcd3f7--91fcb2c990a04e96b7191387478efd24 cebb1b317faf4a1b9cac6de5e32249f4 91fcb2c990a04e96b7191387478efd24--cebb1b317faf4a1b9cac6de5e32249f4 a75b33f5624e48deadc6abe4d9b248ab PHASE(phi_ent₃) cebb1b317faf4a1b9cac6de5e32249f4--a75b33f5624e48deadc6abe4d9b248ab a75b33f5624e48deadc6abe4d9b248ab--6bb7d7466ae4402d82b2e89b1d7169e2 a75b33f5624e48deadc6abe4d9b248ab--cf1812b3210a4518b3dc247655a89058

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_3c2525660ad64251a2de1933371c8857 cluster_1672897efcd1436a9f2b3f4eb473bd3c 350cc0a27a8343d0b2d26d6a8e42c475 0 e8ad1f20868e47cd93e4eb1c6bdf2389 RX(theta₀) 350cc0a27a8343d0b2d26d6a8e42c475--e8ad1f20868e47cd93e4eb1c6bdf2389 8e251c2eee564831aac347607c5f7735 1 7d1ba564f55340179f22a477b1362000 RY(theta₃) e8ad1f20868e47cd93e4eb1c6bdf2389--7d1ba564f55340179f22a477b1362000 e103c5ef909c433e8dc35171d118a14f RX(theta₆) 7d1ba564f55340179f22a477b1362000--e103c5ef909c433e8dc35171d118a14f cf49252bf71043c5b561ac02f0ef361c HamEvo e103c5ef909c433e8dc35171d118a14f--cf49252bf71043c5b561ac02f0ef361c 5333a505211e47b6b4baf0974cef9373 RX(theta₉) cf49252bf71043c5b561ac02f0ef361c--5333a505211e47b6b4baf0974cef9373 dd77ba4131984f2c84badd98b77c97f8 RY(theta₁₂) 5333a505211e47b6b4baf0974cef9373--dd77ba4131984f2c84badd98b77c97f8 7cd726851f5a465fbdb4e72d92b165df RX(theta₁₅) dd77ba4131984f2c84badd98b77c97f8--7cd726851f5a465fbdb4e72d92b165df aeb5865fcf334776b539999fadc32b5a HamEvo 7cd726851f5a465fbdb4e72d92b165df--aeb5865fcf334776b539999fadc32b5a 81e60b91988d48448c6bba008503136b aeb5865fcf334776b539999fadc32b5a--81e60b91988d48448c6bba008503136b 47b2f7aed9334690a9790b15e959186e d1c1d583312c4997aab57bea8387be1d RX(theta₁) 8e251c2eee564831aac347607c5f7735--d1c1d583312c4997aab57bea8387be1d 7d8d8ea1ce2844ebbf8ee3874c0c37e5 2 794de0e909e54f60873826fdfe6ca361 RY(theta₄) d1c1d583312c4997aab57bea8387be1d--794de0e909e54f60873826fdfe6ca361 5a99a466d36e4d0d8341864dd7762139 RX(theta₇) 794de0e909e54f60873826fdfe6ca361--5a99a466d36e4d0d8341864dd7762139 1ef489252c6942e8af743c201e8eb650 t = theta_t₀ 5a99a466d36e4d0d8341864dd7762139--1ef489252c6942e8af743c201e8eb650 17b3749a53754bf28310077a72b87be4 RX(theta₁₀) 1ef489252c6942e8af743c201e8eb650--17b3749a53754bf28310077a72b87be4 3b50ad793c9f45f28e6dba49e50e1ed7 RY(theta₁₃) 17b3749a53754bf28310077a72b87be4--3b50ad793c9f45f28e6dba49e50e1ed7 eeba7833fd894874bb92a41d4c329aec RX(theta₁₆) 3b50ad793c9f45f28e6dba49e50e1ed7--eeba7833fd894874bb92a41d4c329aec fa74818ead0341adb7c466c4e6280321 t = theta_t₁ eeba7833fd894874bb92a41d4c329aec--fa74818ead0341adb7c466c4e6280321 fa74818ead0341adb7c466c4e6280321--47b2f7aed9334690a9790b15e959186e e685a0af33d749e6944489f649a044ca af7fd7f2e0b84876b2b6aac0885701ff RX(theta₂) 7d8d8ea1ce2844ebbf8ee3874c0c37e5--af7fd7f2e0b84876b2b6aac0885701ff c0895767e5a2400c99653197ee2218b7 RY(theta₅) af7fd7f2e0b84876b2b6aac0885701ff--c0895767e5a2400c99653197ee2218b7 b1e3dd138fb3469a95528af07bb469c3 RX(theta₈) c0895767e5a2400c99653197ee2218b7--b1e3dd138fb3469a95528af07bb469c3 0638ac33e6984bfba8a2231ac75addfe b1e3dd138fb3469a95528af07bb469c3--0638ac33e6984bfba8a2231ac75addfe 8adddcd06e354b2895cebec8181c85af RX(theta₁₁) 0638ac33e6984bfba8a2231ac75addfe--8adddcd06e354b2895cebec8181c85af 0f1659fef5974e0fbc4072da3a9b3fe0 RY(theta₁₄) 8adddcd06e354b2895cebec8181c85af--0f1659fef5974e0fbc4072da3a9b3fe0 8ee9d7f5982842aa943e896fac21c5e5 RX(theta₁₇) 0f1659fef5974e0fbc4072da3a9b3fe0--8ee9d7f5982842aa943e896fac21c5e5 a38f4be605f64f4eb62cb75c940e3c57 8ee9d7f5982842aa943e896fac21c5e5--a38f4be605f64f4eb62cb75c940e3c57 a38f4be605f64f4eb62cb75c940e3c57--e685a0af33d749e6944489f649a044ca

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_0695bcc5e64f4d6f99475eee8e2b3125 cluster_8be37f0dce5d4c0a956a095b242cc947 c80dfce0709442609bbeb773a5c22020 0 de65721bf809401c86baaf7a77593d80 RX(theta₀) c80dfce0709442609bbeb773a5c22020--de65721bf809401c86baaf7a77593d80 6048e2241420444784c92ef8b4c28ad7 1 81185a00dd7e4284aecf7e5082e03bdd RY(theta₆) de65721bf809401c86baaf7a77593d80--81185a00dd7e4284aecf7e5082e03bdd bceefe323ab44b9a9fbc2e7007bc0906 RX(theta₁₂) 81185a00dd7e4284aecf7e5082e03bdd--bceefe323ab44b9a9fbc2e7007bc0906 267ca25cc099428db7660f9ad02d79a1 bceefe323ab44b9a9fbc2e7007bc0906--267ca25cc099428db7660f9ad02d79a1 c2385ce1ba2d4524b1aa3f8562b2f60e RX(theta₁₈) 267ca25cc099428db7660f9ad02d79a1--c2385ce1ba2d4524b1aa3f8562b2f60e c4c970ea4ae84091bcd4f7570a337fb0 RY(theta₂₄) c2385ce1ba2d4524b1aa3f8562b2f60e--c4c970ea4ae84091bcd4f7570a337fb0 195929c527b94148bfcb80de5a4ca4a1 RX(theta₃₀) c4c970ea4ae84091bcd4f7570a337fb0--195929c527b94148bfcb80de5a4ca4a1 a56463ff521a4e809eb1279b9b2cfdbb 195929c527b94148bfcb80de5a4ca4a1--a56463ff521a4e809eb1279b9b2cfdbb a14d1bb0787d4b7eac449d985596d608 a56463ff521a4e809eb1279b9b2cfdbb--a14d1bb0787d4b7eac449d985596d608 4b08640d78734528b6769405057209fa 1b1b050fb736411ba5fc0c3d7f165b75 RX(theta₁) 6048e2241420444784c92ef8b4c28ad7--1b1b050fb736411ba5fc0c3d7f165b75 db6c9afed54f4e3eb94131bffd00b5d7 2 45e9138961c649469065fde57bddb1bc RY(theta₇) 1b1b050fb736411ba5fc0c3d7f165b75--45e9138961c649469065fde57bddb1bc f9215840b5ab4a20b53b3751061617ab RX(theta₁₃) 45e9138961c649469065fde57bddb1bc--f9215840b5ab4a20b53b3751061617ab 86692a73b7c643208cc70ab05703a498 f9215840b5ab4a20b53b3751061617ab--86692a73b7c643208cc70ab05703a498 3efefa19cff7442b95501a68db9dfbe1 RX(theta₁₉) 86692a73b7c643208cc70ab05703a498--3efefa19cff7442b95501a68db9dfbe1 729cd4f6ff5345049263bdf76b83bdb9 RY(theta₂₅) 3efefa19cff7442b95501a68db9dfbe1--729cd4f6ff5345049263bdf76b83bdb9 8c65c9174dad4f2b8c2ea5d7fd7fe1e7 RX(theta₃₁) 729cd4f6ff5345049263bdf76b83bdb9--8c65c9174dad4f2b8c2ea5d7fd7fe1e7 3331a080d5144c5c91a9f775b70bd70f 8c65c9174dad4f2b8c2ea5d7fd7fe1e7--3331a080d5144c5c91a9f775b70bd70f 3331a080d5144c5c91a9f775b70bd70f--4b08640d78734528b6769405057209fa 99a99232e9a44fc1b9d1aa7399596028 c85e025188804997b12a344553605b41 RX(theta₂) db6c9afed54f4e3eb94131bffd00b5d7--c85e025188804997b12a344553605b41 3b9348b146a14bfd994b06770080c91c 3 6511291892484edb8c5b1934b22a3b9a RY(theta₈) c85e025188804997b12a344553605b41--6511291892484edb8c5b1934b22a3b9a c72bc6bdc70d4a178dc91a91d4779ba1 RX(theta₁₄) 6511291892484edb8c5b1934b22a3b9a--c72bc6bdc70d4a178dc91a91d4779ba1 500e96e1daf24a09bb3b6939e20d4c4c HamEvo c72bc6bdc70d4a178dc91a91d4779ba1--500e96e1daf24a09bb3b6939e20d4c4c 4cc988aba2e44c75ae0a0e724e30aefb RX(theta₂₀) 500e96e1daf24a09bb3b6939e20d4c4c--4cc988aba2e44c75ae0a0e724e30aefb afa4374ad4f0424fbbc806c9eb5bb585 RY(theta₂₆) 4cc988aba2e44c75ae0a0e724e30aefb--afa4374ad4f0424fbbc806c9eb5bb585 7dd92b0bb13d4a55992c6fb801b1cf93 RX(theta₃₂) afa4374ad4f0424fbbc806c9eb5bb585--7dd92b0bb13d4a55992c6fb801b1cf93 92e53c7845d94abbbe3dac2bde281b40 HamEvo 7dd92b0bb13d4a55992c6fb801b1cf93--92e53c7845d94abbbe3dac2bde281b40 92e53c7845d94abbbe3dac2bde281b40--99a99232e9a44fc1b9d1aa7399596028 a3f59de32ba14c48b9a10a786ba1e1e8 3a4b865ecf3445e49e98386cbc1ed5e0 RX(theta₃) 3b9348b146a14bfd994b06770080c91c--3a4b865ecf3445e49e98386cbc1ed5e0 8fdc3f7b8fa74837b894a132db10bb58 4 5a7db74078624918bdba3c2c9b4c4b0b RY(theta₉) 3a4b865ecf3445e49e98386cbc1ed5e0--5a7db74078624918bdba3c2c9b4c4b0b 825085cc3d5e4b2bb7bef637a71b9abf RX(theta₁₅) 5a7db74078624918bdba3c2c9b4c4b0b--825085cc3d5e4b2bb7bef637a71b9abf 10cc75c99a6f44f5ad2257f80d23fbce t = theta_t₀ 825085cc3d5e4b2bb7bef637a71b9abf--10cc75c99a6f44f5ad2257f80d23fbce 8bf1607bd856438d890a24ccc477caec RX(theta₂₁) 10cc75c99a6f44f5ad2257f80d23fbce--8bf1607bd856438d890a24ccc477caec c095c8e0945f4199a7db4da584068104 RY(theta₂₇) 8bf1607bd856438d890a24ccc477caec--c095c8e0945f4199a7db4da584068104 85da97f63d2d437ca92cf554033b7434 RX(theta₃₃) c095c8e0945f4199a7db4da584068104--85da97f63d2d437ca92cf554033b7434 6c230a9e704d4cb39b6e96904f961993 t = theta_t₁ 85da97f63d2d437ca92cf554033b7434--6c230a9e704d4cb39b6e96904f961993 6c230a9e704d4cb39b6e96904f961993--a3f59de32ba14c48b9a10a786ba1e1e8 97f24f28e12347549ecb9e2ebf92160a 8aef7ce2f1fe49eba7c68034f2120080 RX(theta₄) 8fdc3f7b8fa74837b894a132db10bb58--8aef7ce2f1fe49eba7c68034f2120080 e963178d88794a04be562c38b896b7eb 5 a9aa6d36427741e4a37c830d01a7188f RY(theta₁₀) 8aef7ce2f1fe49eba7c68034f2120080--a9aa6d36427741e4a37c830d01a7188f d260149cc4f54f098717f8b2c96a62ea RX(theta₁₆) a9aa6d36427741e4a37c830d01a7188f--d260149cc4f54f098717f8b2c96a62ea 04d2522e9acb4508aa10b5ce2f8c5b9a d260149cc4f54f098717f8b2c96a62ea--04d2522e9acb4508aa10b5ce2f8c5b9a fe7942b229d14e52a378212584d2bf15 RX(theta₂₂) 04d2522e9acb4508aa10b5ce2f8c5b9a--fe7942b229d14e52a378212584d2bf15 307291cbccb744d982a50f626efcaf25 RY(theta₂₈) fe7942b229d14e52a378212584d2bf15--307291cbccb744d982a50f626efcaf25 4a09f7ddfda74a54bee9b33d53c3f123 RX(theta₃₄) 307291cbccb744d982a50f626efcaf25--4a09f7ddfda74a54bee9b33d53c3f123 584a2215fbe74e08975737391168c42c 4a09f7ddfda74a54bee9b33d53c3f123--584a2215fbe74e08975737391168c42c 584a2215fbe74e08975737391168c42c--97f24f28e12347549ecb9e2ebf92160a abf5eee635c1453eb50898ac8b451a2e a98e78bde7db4ebc9a36d0d544a1ad7b RX(theta₅) e963178d88794a04be562c38b896b7eb--a98e78bde7db4ebc9a36d0d544a1ad7b 60974cd4249d4f7bb33b1ec3f5fabfb2 RY(theta₁₁) a98e78bde7db4ebc9a36d0d544a1ad7b--60974cd4249d4f7bb33b1ec3f5fabfb2 fa074a9ba51440388354dfc8545afb5e RX(theta₁₇) 60974cd4249d4f7bb33b1ec3f5fabfb2--fa074a9ba51440388354dfc8545afb5e a70e60ff791f4e4886b7476b4f773eab fa074a9ba51440388354dfc8545afb5e--a70e60ff791f4e4886b7476b4f773eab bedc2629ec034188a287c3a898676142 RX(theta₂₃) a70e60ff791f4e4886b7476b4f773eab--bedc2629ec034188a287c3a898676142 4d0f55eb3be34aa1b7b0a2bd755f8c86 RY(theta₂₉) bedc2629ec034188a287c3a898676142--4d0f55eb3be34aa1b7b0a2bd755f8c86 85226da7c38c493b8fa4fd840fcf8b77 RX(theta₃₅) 4d0f55eb3be34aa1b7b0a2bd755f8c86--85226da7c38c493b8fa4fd840fcf8b77 c78060edae3b4730ba87328c25b32bea 85226da7c38c493b8fa4fd840fcf8b77--c78060edae3b4730ba87328c25b32bea c78060edae3b4730ba87328c25b32bea--abf5eee635c1453eb50898ac8b451a2e

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_f1c3fd2379344d10976203bafa7c419f BPMA-1 cluster_4ed1c0d7ea414c3ea334732d25ba2fc8 BPMA-0 00529e3ae1e946bcbf2ef99d02a42536 0 f2808bd48e624e86b6877c2129a83548 RX(alpha₀₀) 00529e3ae1e946bcbf2ef99d02a42536--f2808bd48e624e86b6877c2129a83548 19714666e2324bd9841b2a2550edc070 1 80624f58025941eabedbe3f3d0e9bfed RY(alpha₀₃) f2808bd48e624e86b6877c2129a83548--80624f58025941eabedbe3f3d0e9bfed cc4edda15a964666a4218df5be9598eb 80624f58025941eabedbe3f3d0e9bfed--cc4edda15a964666a4218df5be9598eb 3fb1241c25e445feafb3e342f4cf5622 cc4edda15a964666a4218df5be9598eb--3fb1241c25e445feafb3e342f4cf5622 81baf6379a424e6390423e1625e32aba RX(gamma₀₀) 3fb1241c25e445feafb3e342f4cf5622--81baf6379a424e6390423e1625e32aba 2caf110adf784b23a25c78265adad6f9 81baf6379a424e6390423e1625e32aba--2caf110adf784b23a25c78265adad6f9 e071cdc6ab224ec9b52cfb4dac8f1d0f 2caf110adf784b23a25c78265adad6f9--e071cdc6ab224ec9b52cfb4dac8f1d0f f99c9f34c2d742f3917de97bfba1ed80 RY(beta₀₃) e071cdc6ab224ec9b52cfb4dac8f1d0f--f99c9f34c2d742f3917de97bfba1ed80 1d8caf297d3941118b79c7d8367f79cd RX(beta₀₀) f99c9f34c2d742f3917de97bfba1ed80--1d8caf297d3941118b79c7d8367f79cd ee8faf27c67d4f07a88fbc7705274bae RX(alpha₁₀) 1d8caf297d3941118b79c7d8367f79cd--ee8faf27c67d4f07a88fbc7705274bae 8678bbe739c142b1baeeaffb4d1953aa RY(alpha₁₃) ee8faf27c67d4f07a88fbc7705274bae--8678bbe739c142b1baeeaffb4d1953aa b8d177b0b32645f59951ede264616942 8678bbe739c142b1baeeaffb4d1953aa--b8d177b0b32645f59951ede264616942 edb750492aac4051b084668e3fc802d4 b8d177b0b32645f59951ede264616942--edb750492aac4051b084668e3fc802d4 68b9c014bbc341b7bd50ee484524b081 RX(gamma₁₀) edb750492aac4051b084668e3fc802d4--68b9c014bbc341b7bd50ee484524b081 63fa17587c044a61b2420dc32327f5e3 68b9c014bbc341b7bd50ee484524b081--63fa17587c044a61b2420dc32327f5e3 3c31fe8aee5249359f71e96d0f49999b 63fa17587c044a61b2420dc32327f5e3--3c31fe8aee5249359f71e96d0f49999b eb866fd13672426aaed5118d080392b1 RY(beta₁₃) 3c31fe8aee5249359f71e96d0f49999b--eb866fd13672426aaed5118d080392b1 6540392ed18b4a0fb674f3fe6d90a351 RX(beta₁₀) eb866fd13672426aaed5118d080392b1--6540392ed18b4a0fb674f3fe6d90a351 7eef3c81373f43fca5e9f1dd2c047ee0 6540392ed18b4a0fb674f3fe6d90a351--7eef3c81373f43fca5e9f1dd2c047ee0 058f18bcf74941c3b1949884745c3e3c c9d3d8550ff14019bf3cef3e1cbc43f9 RX(alpha₀₁) 19714666e2324bd9841b2a2550edc070--c9d3d8550ff14019bf3cef3e1cbc43f9 0e4eac0ec1774525a3d42315255c3d5b 2 3a77f80130cc4e23bbe050b62f35803e RY(alpha₀₄) c9d3d8550ff14019bf3cef3e1cbc43f9--3a77f80130cc4e23bbe050b62f35803e c38507fa2b4548abb235d8d0527b4e2f X 3a77f80130cc4e23bbe050b62f35803e--c38507fa2b4548abb235d8d0527b4e2f c38507fa2b4548abb235d8d0527b4e2f--cc4edda15a964666a4218df5be9598eb 11d6ecb5f4ac444bafad45553d1aa91d c38507fa2b4548abb235d8d0527b4e2f--11d6ecb5f4ac444bafad45553d1aa91d 620cf5b0154c45c5bebf4e647d393feb RX(gamma₀₁) 11d6ecb5f4ac444bafad45553d1aa91d--620cf5b0154c45c5bebf4e647d393feb 8c0f9d1dfce547578addee96b46e122a 620cf5b0154c45c5bebf4e647d393feb--8c0f9d1dfce547578addee96b46e122a be640405a98e4386b6039fe03e7a3628 X 8c0f9d1dfce547578addee96b46e122a--be640405a98e4386b6039fe03e7a3628 be640405a98e4386b6039fe03e7a3628--e071cdc6ab224ec9b52cfb4dac8f1d0f 21c2ddc916a34e85834966ce6061522b RY(beta₀₄) be640405a98e4386b6039fe03e7a3628--21c2ddc916a34e85834966ce6061522b 49f88541d4a64e4ba47726b14ef00f68 RX(beta₀₁) 21c2ddc916a34e85834966ce6061522b--49f88541d4a64e4ba47726b14ef00f68 6e85e8d376634f41a3988a7b2283f2b4 RX(alpha₁₁) 49f88541d4a64e4ba47726b14ef00f68--6e85e8d376634f41a3988a7b2283f2b4 075a6efc245345acb5a4d3621f9c3243 RY(alpha₁₄) 6e85e8d376634f41a3988a7b2283f2b4--075a6efc245345acb5a4d3621f9c3243 f7f28ad5961e4b2dbb01ae500560aff6 X 075a6efc245345acb5a4d3621f9c3243--f7f28ad5961e4b2dbb01ae500560aff6 f7f28ad5961e4b2dbb01ae500560aff6--b8d177b0b32645f59951ede264616942 de8561eacc2c4ce1b68e5712241f9a3f f7f28ad5961e4b2dbb01ae500560aff6--de8561eacc2c4ce1b68e5712241f9a3f db22bd5079354016bf58aff19f36f141 RX(gamma₁₁) de8561eacc2c4ce1b68e5712241f9a3f--db22bd5079354016bf58aff19f36f141 8248a58c3f1e484b99b0747d96bb1bb5 db22bd5079354016bf58aff19f36f141--8248a58c3f1e484b99b0747d96bb1bb5 601655d0f2c64b10beee0f83f4c0b83c X 8248a58c3f1e484b99b0747d96bb1bb5--601655d0f2c64b10beee0f83f4c0b83c 601655d0f2c64b10beee0f83f4c0b83c--3c31fe8aee5249359f71e96d0f49999b 07430f358158425d85f00aaeb0cc6a47 RY(beta₁₄) 601655d0f2c64b10beee0f83f4c0b83c--07430f358158425d85f00aaeb0cc6a47 b64d4c7683024d0796d67f86d0dbb38e RX(beta₁₁) 07430f358158425d85f00aaeb0cc6a47--b64d4c7683024d0796d67f86d0dbb38e b64d4c7683024d0796d67f86d0dbb38e--058f18bcf74941c3b1949884745c3e3c 1b3c18d90b784c99bb293e61bc67e1ce 5a865f4066b8449a970b31e503aad41f RX(alpha₀₂) 0e4eac0ec1774525a3d42315255c3d5b--5a865f4066b8449a970b31e503aad41f 47344108432d426895bb5b54b8d63aac RY(alpha₀₅) 5a865f4066b8449a970b31e503aad41f--47344108432d426895bb5b54b8d63aac 8b83e7e25403440da59ebc95525efc06 47344108432d426895bb5b54b8d63aac--8b83e7e25403440da59ebc95525efc06 d914256a91a64c5b801624627cd26075 X 8b83e7e25403440da59ebc95525efc06--d914256a91a64c5b801624627cd26075 d914256a91a64c5b801624627cd26075--11d6ecb5f4ac444bafad45553d1aa91d 4ad0cefea6054ca1ba9d7b288fc43f04 RX(gamma₀₂) d914256a91a64c5b801624627cd26075--4ad0cefea6054ca1ba9d7b288fc43f04 8d60d59d63be45b5bbba957b3ffa8150 X 4ad0cefea6054ca1ba9d7b288fc43f04--8d60d59d63be45b5bbba957b3ffa8150 8d60d59d63be45b5bbba957b3ffa8150--8c0f9d1dfce547578addee96b46e122a e9aa665d65714dfa9e61193cf8b05140 8d60d59d63be45b5bbba957b3ffa8150--e9aa665d65714dfa9e61193cf8b05140 3939d733bfd241a6bca914465de0232d RY(beta₀₅) e9aa665d65714dfa9e61193cf8b05140--3939d733bfd241a6bca914465de0232d 28ab65a65a1e44a1908c61fb07cd40e2 RX(beta₀₂) 3939d733bfd241a6bca914465de0232d--28ab65a65a1e44a1908c61fb07cd40e2 638d41348a4e48c6ba37643df105975c RX(alpha₁₂) 28ab65a65a1e44a1908c61fb07cd40e2--638d41348a4e48c6ba37643df105975c 81665203ce434253ad0b516d0975fbed RY(alpha₁₅) 638d41348a4e48c6ba37643df105975c--81665203ce434253ad0b516d0975fbed 6cfa33fed8404920912a1c4d1b0da5c0 81665203ce434253ad0b516d0975fbed--6cfa33fed8404920912a1c4d1b0da5c0 c5ae91a147294724913a546af6f5cb28 X 6cfa33fed8404920912a1c4d1b0da5c0--c5ae91a147294724913a546af6f5cb28 c5ae91a147294724913a546af6f5cb28--de8561eacc2c4ce1b68e5712241f9a3f 37f7e70bedfb4b2394230decea644d9a RX(gamma₁₂) c5ae91a147294724913a546af6f5cb28--37f7e70bedfb4b2394230decea644d9a a2ff05e603c046549f9d3a416b9a7191 X 37f7e70bedfb4b2394230decea644d9a--a2ff05e603c046549f9d3a416b9a7191 a2ff05e603c046549f9d3a416b9a7191--8248a58c3f1e484b99b0747d96bb1bb5 fb3066282aa34bfca3bc642a6acef3b2 a2ff05e603c046549f9d3a416b9a7191--fb3066282aa34bfca3bc642a6acef3b2 5c57b953ec9e4b8eb954394a639c0088 RY(beta₁₅) fb3066282aa34bfca3bc642a6acef3b2--5c57b953ec9e4b8eb954394a639c0088 6b98815142b042b5a333cc65cacdd2a6 RX(beta₁₂) 5c57b953ec9e4b8eb954394a639c0088--6b98815142b042b5a333cc65cacdd2a6 6b98815142b042b5a333cc65cacdd2a6--1b3c18d90b784c99bb293e61bc67e1ce