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_54a7376bcfb943e7ba8dc7009aa6af64 Constant Chebyshev FM cluster_93cfc1e1d7f9411791b1e7dfbefa7e3c Constant Fourier FM 5ed678d2500d447cb3ceb685149278bc 0 ce254edeb3804b7dae62cfe45a2ca6f8 RX(phi) 5ed678d2500d447cb3ceb685149278bc--ce254edeb3804b7dae62cfe45a2ca6f8 397a30676aeb4dc385a27cc91f447a0c 1 e639035019db437d80a9df741cd6c452 RX(acos(phi)) ce254edeb3804b7dae62cfe45a2ca6f8--e639035019db437d80a9df741cd6c452 f935dd5d128f471aae6aa1f23b991dc2 e639035019db437d80a9df741cd6c452--f935dd5d128f471aae6aa1f23b991dc2 0f7115f384964ea9a5f58455847b4180 4fa510edc751434fb22cf98e8e832908 RX(phi) 397a30676aeb4dc385a27cc91f447a0c--4fa510edc751434fb22cf98e8e832908 70a609fb5f804b00ba9e5493512cf33d 2 355911e535dd4caf9d88a9d3dbdd6a19 RX(acos(phi)) 4fa510edc751434fb22cf98e8e832908--355911e535dd4caf9d88a9d3dbdd6a19 355911e535dd4caf9d88a9d3dbdd6a19--0f7115f384964ea9a5f58455847b4180 006ced19272d497d8cd664c0daa127f1 09612fafc2fa4553bb80b7fae4aa9379 RX(phi) 70a609fb5f804b00ba9e5493512cf33d--09612fafc2fa4553bb80b7fae4aa9379 d9abda921934409a9efa557c623bb5ba RX(acos(phi)) 09612fafc2fa4553bb80b7fae4aa9379--d9abda921934409a9efa557c623bb5ba d9abda921934409a9efa557c623bb5ba--006ced19272d497d8cd664c0daa127f1

A custom encoding function can also be passed with sympy

from sympy import asin, Function

n_qubits = 3

# Using a pre-defined sympy Function
custom_fm_0 = feature_map(n_qubits, fm_type=asin)

# Creating a custom function
def custom_fn(x):
    return asin(x) + x**2

custom_fm_1 = feature_map(n_qubits, fm_type=custom_fn)

block = chain(custom_fm_0, custom_fm_1)
%3 cluster_d1c9c9f34ca540d292faf492527b9922 Constant <function custom_fn at 0x7fe4d0e56830> FM cluster_36963cb7fcc54306a6567d7dce637737 Constant asin FM eb7a851ef55247a3be9df44203836b76 0 6137e00a87144ebfb92622ac5e3389b4 RX(asin(phi)) eb7a851ef55247a3be9df44203836b76--6137e00a87144ebfb92622ac5e3389b4 fb7e75dc96e747cb9d692ee6e0eb937c 1 61cbe2a806c446539e9fb1ce5b180d35 RX(phi**2 + asin(phi)) 6137e00a87144ebfb92622ac5e3389b4--61cbe2a806c446539e9fb1ce5b180d35 53aa531ee8bd4dbda336cf25a0bbeac5 61cbe2a806c446539e9fb1ce5b180d35--53aa531ee8bd4dbda336cf25a0bbeac5 974b91b1f9d540c7b87a373a88a06450 be02dfd9f67042e68b191aa01f12e28d RX(asin(phi)) fb7e75dc96e747cb9d692ee6e0eb937c--be02dfd9f67042e68b191aa01f12e28d adb0a31e2fc14656acefa8a22548627b 2 a9065748060e4c3da0c06ab6baa96836 RX(phi**2 + asin(phi)) be02dfd9f67042e68b191aa01f12e28d--a9065748060e4c3da0c06ab6baa96836 a9065748060e4c3da0c06ab6baa96836--974b91b1f9d540c7b87a373a88a06450 f9685f896d9c401f8152c351a15342bd c09d324df5e542b48c3119db782ad519 RX(asin(phi)) adb0a31e2fc14656acefa8a22548627b--c09d324df5e542b48c3119db782ad519 0fb22ca346014b0b928d2450811889ed RX(phi**2 + asin(phi)) c09d324df5e542b48c3119db782ad519--0fb22ca346014b0b928d2450811889ed 0fb22ca346014b0b928d2450811889ed--f9685f896d9c401f8152c351a15342bd

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_12883108e95046c1b53eb4c8ac45ef11 Exponential Fourier FM cluster_5a546ed4329742fc977a1c74bee42c57 Constant Fourier FM cluster_a7d5cc9020ff405d8471b34d6cffbba3 Tower Fourier FM 5a7bfe30208344d1829a9ef7d22086be 0 00e7ddfc91e04c0e958fa115075d21e6 RX(phi) 5a7bfe30208344d1829a9ef7d22086be--00e7ddfc91e04c0e958fa115075d21e6 d6636f13e2164682b586dbf1a1811716 1 456991b920174de2acf1ab38c9ca62aa RX(1.0*phi) 00e7ddfc91e04c0e958fa115075d21e6--456991b920174de2acf1ab38c9ca62aa c74be082cd2c4076ac949c7d22e1d26d RX(1.0*phi) 456991b920174de2acf1ab38c9ca62aa--c74be082cd2c4076ac949c7d22e1d26d c3af8b0bc8cf421aa6c601576df079b3 c74be082cd2c4076ac949c7d22e1d26d--c3af8b0bc8cf421aa6c601576df079b3 c4158be7bed949d0b66afbae2095d2fc 6112fb9588bd41f5b940b04bdbffc508 RX(phi) d6636f13e2164682b586dbf1a1811716--6112fb9588bd41f5b940b04bdbffc508 03d66d8141e044a6bb260b0d931a576c 2 93d2ed25c0c84fc0911f9519ad5a1fcf RX(2.0*phi) 6112fb9588bd41f5b940b04bdbffc508--93d2ed25c0c84fc0911f9519ad5a1fcf 58a27468a68f46a79be6bcaa68219bad RX(2.0*phi) 93d2ed25c0c84fc0911f9519ad5a1fcf--58a27468a68f46a79be6bcaa68219bad 58a27468a68f46a79be6bcaa68219bad--c4158be7bed949d0b66afbae2095d2fc 11c59d99cf7e4ba8884de5f194a27b45 c3b30384c9794315b288d72f341fa467 RX(phi) 03d66d8141e044a6bb260b0d931a576c--c3b30384c9794315b288d72f341fa467 d1f2a15b355a4e349263d43f62f28515 3 8468ccaca27245e3a5ca7ce5b5eb15b1 RX(3.0*phi) c3b30384c9794315b288d72f341fa467--8468ccaca27245e3a5ca7ce5b5eb15b1 b0358208d3fa4ed887a7bfaee69eaecc RX(4.0*phi) 8468ccaca27245e3a5ca7ce5b5eb15b1--b0358208d3fa4ed887a7bfaee69eaecc b0358208d3fa4ed887a7bfaee69eaecc--11c59d99cf7e4ba8884de5f194a27b45 6f2c4a0becd845c4a261e41c09f0724a a1fd0f7137db4dbeb69bfec296978c07 RX(phi) d1f2a15b355a4e349263d43f62f28515--a1fd0f7137db4dbeb69bfec296978c07 951d8d65445e4af792e2aa42dfa15463 4 aaaa905742da45078773fab019d1790d RX(4.0*phi) a1fd0f7137db4dbeb69bfec296978c07--aaaa905742da45078773fab019d1790d 8544b0f8b8ff49e58f06e7f77c338572 RX(8.0*phi) aaaa905742da45078773fab019d1790d--8544b0f8b8ff49e58f06e7f77c338572 8544b0f8b8ff49e58f06e7f77c338572--6f2c4a0becd845c4a261e41c09f0724a c71f32c14c874752b694007368da24a9 693f7d35fa1d488cacf8dcf062e0acbf RX(phi) 951d8d65445e4af792e2aa42dfa15463--693f7d35fa1d488cacf8dcf062e0acbf c9c0b74c698549baac83e285815d6756 RX(5.0*phi) 693f7d35fa1d488cacf8dcf062e0acbf--c9c0b74c698549baac83e285815d6756 790fcb7cccee43e59f25c5c95b835cbb RX(16.0*phi) c9c0b74c698549baac83e285815d6756--790fcb7cccee43e59f25c5c95b835cbb 790fcb7cccee43e59f25c5c95b835cbb--c71f32c14c874752b694007368da24a9

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 8381d3992fac4f1f8e8474ec1f320f66 0 acb02fcdbe1a4ccebfc57697f77c376c RX(1.0*acos(phi)) 8381d3992fac4f1f8e8474ec1f320f66--acb02fcdbe1a4ccebfc57697f77c376c 2c9c7cc861344f90b9cbef4b421131d6 1 a2945105c92a452896973c85ec72edc5 acb02fcdbe1a4ccebfc57697f77c376c--a2945105c92a452896973c85ec72edc5 6dd86a0602ca4618960ed28cc9a0849d f899fd22c80f4f77a775ec4f58bfe79d RX(1.414*acos(phi)) 2c9c7cc861344f90b9cbef4b421131d6--f899fd22c80f4f77a775ec4f58bfe79d 5f45663fca024145bf30be8468770ef9 2 f899fd22c80f4f77a775ec4f58bfe79d--6dd86a0602ca4618960ed28cc9a0849d c9121aa1a557455ca107a8839510e933 11afa8c6b88c4d098066243c350a5873 RX(1.732*acos(phi)) 5f45663fca024145bf30be8468770ef9--11afa8c6b88c4d098066243c350a5873 4555b8f990844eb1997aa159d283cca1 3 11afa8c6b88c4d098066243c350a5873--c9121aa1a557455ca107a8839510e933 0fa67163537841acb04aaee462c5f4d1 c658de57f87a41949d5bae54c56fc9e3 RX(2.0*acos(phi)) 4555b8f990844eb1997aa159d283cca1--c658de57f87a41949d5bae54c56fc9e3 653143e6a9a84380acb9b341be79d3cf 4 c658de57f87a41949d5bae54c56fc9e3--0fa67163537841acb04aaee462c5f4d1 330b5bb18eb045b49e55874e7bb7a257 877923ead2024866b9b8f0fbcc88fffd RX(2.236*acos(phi)) 653143e6a9a84380acb9b341be79d3cf--877923ead2024866b9b8f0fbcc88fffd 877923ead2024866b9b8f0fbcc88fffd--330b5bb18eb045b49e55874e7bb7a257

To add a trainable parameter that multiplies the feature parameter inside the encoding function, simply pass a param_prefix string:

n_qubits = 5

fm_trainable = feature_map(
    n_qubits,
    fm_type=BasisSet.FOURIER,
    reupload_scaling=ReuploadScaling.EXP,
    param_prefix = "w",
)
%3 79ae4d39bfca4bed926c4dec3f3efbb1 0 7f9a213cfc3c457aa5ee2147a5ca49aa RX(1.0*phi*w₀) 79ae4d39bfca4bed926c4dec3f3efbb1--7f9a213cfc3c457aa5ee2147a5ca49aa 30ba1e60e66a4c099b97bb0acf863ddd 1 6a97fcb67b22423882d2fe3632e29d1b 7f9a213cfc3c457aa5ee2147a5ca49aa--6a97fcb67b22423882d2fe3632e29d1b d141d1d43cbb47c4bc71e54ec4bfd883 886d5072204d4a6b92efc969ea005852 RX(2.0*phi*w₁) 30ba1e60e66a4c099b97bb0acf863ddd--886d5072204d4a6b92efc969ea005852 4aad82851a1e40febad9be032dbd0c7c 2 886d5072204d4a6b92efc969ea005852--d141d1d43cbb47c4bc71e54ec4bfd883 a4ebce7059bd472cbad0b8fbef864549 46446fa0c44c48a89e6ab31a75fc16c8 RX(4.0*phi*w₂) 4aad82851a1e40febad9be032dbd0c7c--46446fa0c44c48a89e6ab31a75fc16c8 a58efbd5a687449c8eb9dc786ade7f2d 3 46446fa0c44c48a89e6ab31a75fc16c8--a4ebce7059bd472cbad0b8fbef864549 c2eaef4a5dce464db13b8cbfa93ff51c a13b1f4cf10c4b98896a226fbd93dc18 RX(8.0*phi*w₃) a58efbd5a687449c8eb9dc786ade7f2d--a13b1f4cf10c4b98896a226fbd93dc18 43e0af26744a409f918c93c3df85af77 4 a13b1f4cf10c4b98896a226fbd93dc18--c2eaef4a5dce464db13b8cbfa93ff51c 26c32af20fb5415b9a79741105a65f6d df0dd056d54148eeb91df7b138177a6e RX(16.0*phi*w₄) 43e0af26744a409f918c93c3df85af77--df0dd056d54148eeb91df7b138177a6e df0dd056d54148eeb91df7b138177a6e--26c32af20fb5415b9a79741105a65f6d

Note that for the Fourier feature map, the encoding function is simply \(f(x)=x\). For other cases, like the Chebyshev acos() encoding, the trainable parameter may cause the feature value to be outside the domain of the encoding function. This will eventually be fixed by adding range constraints to trainable parameters in Qadence.

A full description of the remaining arguments can be found in the feature_map API reference. We provide an example below.

from qadence import RY

n_qubits = 5

# Custom scaling function
fm_full = feature_map(
    n_qubits = n_qubits,
    support = tuple(reversed(range(n_qubits))), # Reverse the qubit support to run the scaling from bottom to top
    param = "x", # Change the name of the parameter
    op = RY, # Change the rotation gate between RX, RY, RZ or PHASE
    fm_type = BasisSet.CHEBYSHEV,
    reupload_scaling = ReuploadScaling.EXP,
    feature_range = (-1.0, 2.0), # Range from which the input data comes from
    target_range = (1.0, 3.0), # Range the encoder assumes as the natural range
    multiplier = 5.0, # Extra multiplier, which can also be a Parameter
    param_prefix = "w", # Add trainable parameters
)
%3 053072be6357412f928af6bd863398c8 0 94c0ec53a43748b0a97bc68aef0bfc78 RY(80.0*acos(w₄*(0.667*x + 1.667))) 053072be6357412f928af6bd863398c8--94c0ec53a43748b0a97bc68aef0bfc78 8f609eaee1b446b3b6f9616c021c9e0a 1 209c1a172ea245f0b5702e2cc5acc703 94c0ec53a43748b0a97bc68aef0bfc78--209c1a172ea245f0b5702e2cc5acc703 dc16471b412a4d3bba59abd677d5d22b a10b52ae41b94fa79db66c02d77380d1 RY(40.0*acos(w₃*(0.667*x + 1.667))) 8f609eaee1b446b3b6f9616c021c9e0a--a10b52ae41b94fa79db66c02d77380d1 0132063d971f46c9a6350ef81e35ab1b 2 a10b52ae41b94fa79db66c02d77380d1--dc16471b412a4d3bba59abd677d5d22b 7bcd6cd5c677402d9e9fd910a8d7b5ed 2795240952704b1586749221ff9d9a88 RY(20.0*acos(w₂*(0.667*x + 1.667))) 0132063d971f46c9a6350ef81e35ab1b--2795240952704b1586749221ff9d9a88 f8a873bf219f4e1c8db81793bc362931 3 2795240952704b1586749221ff9d9a88--7bcd6cd5c677402d9e9fd910a8d7b5ed 11464eb4312e4477b15c3764cdd5eff5 9c4da0bdd96d45d3b589161a6ad02706 RY(10.0*acos(w₁*(0.667*x + 1.667))) f8a873bf219f4e1c8db81793bc362931--9c4da0bdd96d45d3b589161a6ad02706 48f8a88986df4b84b949654de9b60246 4 9c4da0bdd96d45d3b589161a6ad02706--11464eb4312e4477b15c3764cdd5eff5 8697d1e0084c45dc9d1f9deb8a6bee70 8446837a889a4b1c99f96b6b0f75d7b6 RY(5.0*acos(w₀*(0.667*x + 1.667))) 48f8a88986df4b84b949654de9b60246--8446837a889a4b1c99f96b6b0f75d7b6 8446837a889a4b1c99f96b6b0f75d7b6--8697d1e0084c45dc9d1f9deb8a6bee70

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 480e7911f1d24ddbaa78deecd333d8f3 0 90739fe9489b4034bd5224b4e08129e1 RX(theta₀) 480e7911f1d24ddbaa78deecd333d8f3--90739fe9489b4034bd5224b4e08129e1 5f1faff9197d446cbc3293bb1f71db29 1 be999a32833d458e996c0f905f866f16 RY(theta₃) 90739fe9489b4034bd5224b4e08129e1--be999a32833d458e996c0f905f866f16 1c44ef6541644a5e9851bc42c379a0d8 RX(theta₆) be999a32833d458e996c0f905f866f16--1c44ef6541644a5e9851bc42c379a0d8 e8de95177bcb4402af34203a6b5806e3 1c44ef6541644a5e9851bc42c379a0d8--e8de95177bcb4402af34203a6b5806e3 e7c5292e8b414239b1caebfc1e6a2858 e8de95177bcb4402af34203a6b5806e3--e7c5292e8b414239b1caebfc1e6a2858 ea991c69e9064ec391e3425a75a53cfd RX(theta₉) e7c5292e8b414239b1caebfc1e6a2858--ea991c69e9064ec391e3425a75a53cfd 1b8a88a44c0a47f7ad98f7c1bced411a RY(theta₁₂) ea991c69e9064ec391e3425a75a53cfd--1b8a88a44c0a47f7ad98f7c1bced411a 76f9ec8ed3aa4e2a867f088e28b7d809 RX(theta₁₅) 1b8a88a44c0a47f7ad98f7c1bced411a--76f9ec8ed3aa4e2a867f088e28b7d809 84d8743a67bb430bb053e25e9b0e2b85 76f9ec8ed3aa4e2a867f088e28b7d809--84d8743a67bb430bb053e25e9b0e2b85 c877ad654dd74311918f88f04549efe4 84d8743a67bb430bb053e25e9b0e2b85--c877ad654dd74311918f88f04549efe4 3771f6536f384518a6664fd6c7a9bd40 c877ad654dd74311918f88f04549efe4--3771f6536f384518a6664fd6c7a9bd40 bd2b6cbe0bc545eeb7084f2389139dc3 cea6149b7409461b9f0690d461fb2af4 RX(theta₁) 5f1faff9197d446cbc3293bb1f71db29--cea6149b7409461b9f0690d461fb2af4 d69798e157c54277a5b3c6ae2fce3fe6 2 f1ac1059a2984512bc9388d27244a18d RY(theta₄) cea6149b7409461b9f0690d461fb2af4--f1ac1059a2984512bc9388d27244a18d 6fc51f9ecea84b0b974d474bb6ceb7ad RX(theta₇) f1ac1059a2984512bc9388d27244a18d--6fc51f9ecea84b0b974d474bb6ceb7ad 4a71071a4af940b5923f77742ec51904 X 6fc51f9ecea84b0b974d474bb6ceb7ad--4a71071a4af940b5923f77742ec51904 4a71071a4af940b5923f77742ec51904--e8de95177bcb4402af34203a6b5806e3 dbb9d1d99eed4ec9870db02568479a02 4a71071a4af940b5923f77742ec51904--dbb9d1d99eed4ec9870db02568479a02 20fd3f98f9bb4658b9c00f40f053b193 RX(theta₁₀) dbb9d1d99eed4ec9870db02568479a02--20fd3f98f9bb4658b9c00f40f053b193 1d37d97c515d49658638f301a8c7228a RY(theta₁₃) 20fd3f98f9bb4658b9c00f40f053b193--1d37d97c515d49658638f301a8c7228a 144cdb53082641e19459b9f5ffe82afb RX(theta₁₆) 1d37d97c515d49658638f301a8c7228a--144cdb53082641e19459b9f5ffe82afb b15d31b7ebc84db99e0d53720d178912 X 144cdb53082641e19459b9f5ffe82afb--b15d31b7ebc84db99e0d53720d178912 b15d31b7ebc84db99e0d53720d178912--84d8743a67bb430bb053e25e9b0e2b85 b91365b80f6c4cf8b15a4db435f09e62 b15d31b7ebc84db99e0d53720d178912--b91365b80f6c4cf8b15a4db435f09e62 b91365b80f6c4cf8b15a4db435f09e62--bd2b6cbe0bc545eeb7084f2389139dc3 d2b715aa50d34dc49cdfd518f30c926c 71f4e464baf04542b2f4d6c68ca38bf1 RX(theta₂) d69798e157c54277a5b3c6ae2fce3fe6--71f4e464baf04542b2f4d6c68ca38bf1 c1aa1ba9d9a64f698ecfa86810507758 RY(theta₅) 71f4e464baf04542b2f4d6c68ca38bf1--c1aa1ba9d9a64f698ecfa86810507758 ff7248aec00849c3b783345b654da2d1 RX(theta₈) c1aa1ba9d9a64f698ecfa86810507758--ff7248aec00849c3b783345b654da2d1 baf0bf5fdaa74978960b4a270dbfb82b ff7248aec00849c3b783345b654da2d1--baf0bf5fdaa74978960b4a270dbfb82b b65a933950db41a286616dfa4f2c4614 X baf0bf5fdaa74978960b4a270dbfb82b--b65a933950db41a286616dfa4f2c4614 b65a933950db41a286616dfa4f2c4614--dbb9d1d99eed4ec9870db02568479a02 09a3d884187e499b89a139e5cfb282a3 RX(theta₁₁) b65a933950db41a286616dfa4f2c4614--09a3d884187e499b89a139e5cfb282a3 352e387b9c554d7faf74028bbb75b407 RY(theta₁₄) 09a3d884187e499b89a139e5cfb282a3--352e387b9c554d7faf74028bbb75b407 01060c0fe7a34ada91d669dcaed43f49 RX(theta₁₇) 352e387b9c554d7faf74028bbb75b407--01060c0fe7a34ada91d669dcaed43f49 ca4fc1395bb54a26be0b0fc3779fde2e 01060c0fe7a34ada91d669dcaed43f49--ca4fc1395bb54a26be0b0fc3779fde2e d69bb173f4b0499cbfba5770b43b38b3 X ca4fc1395bb54a26be0b0fc3779fde2e--d69bb173f4b0499cbfba5770b43b38b3 d69bb173f4b0499cbfba5770b43b38b3--b91365b80f6c4cf8b15a4db435f09e62 d69bb173f4b0499cbfba5770b43b38b3--d2b715aa50d34dc49cdfd518f30c926c

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 1ca5ccaa9f4e46679fa864ff34d9d036 0 cf3ce336943a4a26b6efc5bb3151bff7 RX(phi₀) 1ca5ccaa9f4e46679fa864ff34d9d036--cf3ce336943a4a26b6efc5bb3151bff7 071201ef4e344dd9bfcd0ecb131f0234 1 acf1d6f0f5a04d9bbfb2779db3097195 RY(phi₃) cf3ce336943a4a26b6efc5bb3151bff7--acf1d6f0f5a04d9bbfb2779db3097195 e987e707c6cd4950a762eeb9450bea0c RX(phi₆) acf1d6f0f5a04d9bbfb2779db3097195--e987e707c6cd4950a762eeb9450bea0c d91916edddd245a098763a6126aa118a e987e707c6cd4950a762eeb9450bea0c--d91916edddd245a098763a6126aa118a 3fbe70ca4709495cae279198c71e7155 d91916edddd245a098763a6126aa118a--3fbe70ca4709495cae279198c71e7155 a409a5e535cd43b0bcd01688d9be7699 RX(phi₉) 3fbe70ca4709495cae279198c71e7155--a409a5e535cd43b0bcd01688d9be7699 9a0506133f2142c9b787fa29ab3bf2e4 RY(phi₁₂) a409a5e535cd43b0bcd01688d9be7699--9a0506133f2142c9b787fa29ab3bf2e4 f00a085fb36f459285323d5bce90ff3c RX(phi₁₅) 9a0506133f2142c9b787fa29ab3bf2e4--f00a085fb36f459285323d5bce90ff3c 68da151ca7dd43dea3401b03daeccae0 f00a085fb36f459285323d5bce90ff3c--68da151ca7dd43dea3401b03daeccae0 a8ff4a3a59c448a0b60b35e4197cb230 68da151ca7dd43dea3401b03daeccae0--a8ff4a3a59c448a0b60b35e4197cb230 1aed2060f99d453489d778e23a9b979d a8ff4a3a59c448a0b60b35e4197cb230--1aed2060f99d453489d778e23a9b979d 4ce2d2f4f6ff4032b9c342851ce0f03a cb1dea383b5c4d78a9ce83a6b0da89a1 RX(phi₁) 071201ef4e344dd9bfcd0ecb131f0234--cb1dea383b5c4d78a9ce83a6b0da89a1 8916ecb2bd634103ad916d1d2aff5d12 2 eb3dee14cc0b4fe0a88eb5b402740d6b RY(phi₄) cb1dea383b5c4d78a9ce83a6b0da89a1--eb3dee14cc0b4fe0a88eb5b402740d6b a2469e4c77a84563a04d67d1afff7f9a RX(phi₇) eb3dee14cc0b4fe0a88eb5b402740d6b--a2469e4c77a84563a04d67d1afff7f9a a9d22cf6c13d4109ad0ddb4de58e3c95 PHASE(phi_ent₀) a2469e4c77a84563a04d67d1afff7f9a--a9d22cf6c13d4109ad0ddb4de58e3c95 a9d22cf6c13d4109ad0ddb4de58e3c95--d91916edddd245a098763a6126aa118a d811e0039790485fb6991a401a6ee872 a9d22cf6c13d4109ad0ddb4de58e3c95--d811e0039790485fb6991a401a6ee872 d83dfc4f9b17466ca23bcd79be7fc7d6 RX(phi₁₀) d811e0039790485fb6991a401a6ee872--d83dfc4f9b17466ca23bcd79be7fc7d6 3555b0f2d4424922988681f0f7f9442e RY(phi₁₃) d83dfc4f9b17466ca23bcd79be7fc7d6--3555b0f2d4424922988681f0f7f9442e ca6a54c5ce0c448a9fa15a7b6950c45e RX(phi₁₆) 3555b0f2d4424922988681f0f7f9442e--ca6a54c5ce0c448a9fa15a7b6950c45e f077877cf16a4610a4e8a4848bac48fb PHASE(phi_ent₂) ca6a54c5ce0c448a9fa15a7b6950c45e--f077877cf16a4610a4e8a4848bac48fb f077877cf16a4610a4e8a4848bac48fb--68da151ca7dd43dea3401b03daeccae0 5e551f656e8d4135a0553ff19c4439eb f077877cf16a4610a4e8a4848bac48fb--5e551f656e8d4135a0553ff19c4439eb 5e551f656e8d4135a0553ff19c4439eb--4ce2d2f4f6ff4032b9c342851ce0f03a 5148ddf6fc494ef8b6eacd8b069297aa 5b1f8add462c491d8e6677642fcb8f1f RX(phi₂) 8916ecb2bd634103ad916d1d2aff5d12--5b1f8add462c491d8e6677642fcb8f1f 3a25932e6c594c0d95323ba5fb53ccb2 RY(phi₅) 5b1f8add462c491d8e6677642fcb8f1f--3a25932e6c594c0d95323ba5fb53ccb2 121bd3b46cbb469d9f4f5e887cdda0d2 RX(phi₈) 3a25932e6c594c0d95323ba5fb53ccb2--121bd3b46cbb469d9f4f5e887cdda0d2 9ae49dd127214e76a1747518c306109f 121bd3b46cbb469d9f4f5e887cdda0d2--9ae49dd127214e76a1747518c306109f 29cddd95edfa4f29b5a89eedb3d5ecc9 PHASE(phi_ent₁) 9ae49dd127214e76a1747518c306109f--29cddd95edfa4f29b5a89eedb3d5ecc9 29cddd95edfa4f29b5a89eedb3d5ecc9--d811e0039790485fb6991a401a6ee872 a6948621b63942be8c0c8e49397b65fc RX(phi₁₁) 29cddd95edfa4f29b5a89eedb3d5ecc9--a6948621b63942be8c0c8e49397b65fc 86c0d4f588db405da827b843aef7d693 RY(phi₁₄) a6948621b63942be8c0c8e49397b65fc--86c0d4f588db405da827b843aef7d693 93005bd3e7d24fc4a5e50b3d4d70821f RX(phi₁₇) 86c0d4f588db405da827b843aef7d693--93005bd3e7d24fc4a5e50b3d4d70821f e4946c3fc50b4f919a10b2296d67f112 93005bd3e7d24fc4a5e50b3d4d70821f--e4946c3fc50b4f919a10b2296d67f112 ea87c8d6666d43739317660c920bdba7 PHASE(phi_ent₃) e4946c3fc50b4f919a10b2296d67f112--ea87c8d6666d43739317660c920bdba7 ea87c8d6666d43739317660c920bdba7--5e551f656e8d4135a0553ff19c4439eb ea87c8d6666d43739317660c920bdba7--5148ddf6fc494ef8b6eacd8b069297aa

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_2412a6f8471741b899b7d66164dab67d cluster_f5ef4edacf2d4e7da4e50e4b495fde8d b798147045704e758808767d80c65f38 0 d201f191c7d84e3fbdb3555223254456 RX(theta₀) b798147045704e758808767d80c65f38--d201f191c7d84e3fbdb3555223254456 110371cb56c946a9b04f33b81755fb9b 1 7e54d3a275894cae8ce31ef44bb9f292 RY(theta₃) d201f191c7d84e3fbdb3555223254456--7e54d3a275894cae8ce31ef44bb9f292 0b8cbcdd8ee74a81ad126c5f04794b09 RX(theta₆) 7e54d3a275894cae8ce31ef44bb9f292--0b8cbcdd8ee74a81ad126c5f04794b09 66239fe51b2d45c58f8e564e1ca76e30 HamEvo 0b8cbcdd8ee74a81ad126c5f04794b09--66239fe51b2d45c58f8e564e1ca76e30 3f6ac6d2f0404d79bad9615e4dc39df3 RX(theta₉) 66239fe51b2d45c58f8e564e1ca76e30--3f6ac6d2f0404d79bad9615e4dc39df3 60fadee23ba04de988bed9175720ff0f RY(theta₁₂) 3f6ac6d2f0404d79bad9615e4dc39df3--60fadee23ba04de988bed9175720ff0f 0607284954964abcabd5ce68dd1e23fb RX(theta₁₅) 60fadee23ba04de988bed9175720ff0f--0607284954964abcabd5ce68dd1e23fb f37f82c6a68247589847b6a0a9b4d0e1 HamEvo 0607284954964abcabd5ce68dd1e23fb--f37f82c6a68247589847b6a0a9b4d0e1 eb655787abfc4cf58d6e1535fa6fe2e3 f37f82c6a68247589847b6a0a9b4d0e1--eb655787abfc4cf58d6e1535fa6fe2e3 7a1c71e7bc2c40cfa572399bf3d71f23 944f355f5bac4ac3adbd5b034286cfbf RX(theta₁) 110371cb56c946a9b04f33b81755fb9b--944f355f5bac4ac3adbd5b034286cfbf 91d4c5b0033c4355bcba31f53ea31ffa 2 8cafc68fbcc54a87b87becb7afd121ac RY(theta₄) 944f355f5bac4ac3adbd5b034286cfbf--8cafc68fbcc54a87b87becb7afd121ac 8c21399ad3d74631816184b1834b524a RX(theta₇) 8cafc68fbcc54a87b87becb7afd121ac--8c21399ad3d74631816184b1834b524a ab13e36cd3204d6eb9f74a377ddf8d70 t = theta_t₀ 8c21399ad3d74631816184b1834b524a--ab13e36cd3204d6eb9f74a377ddf8d70 e8ac3e0a83da4b71a65763eb41663ee0 RX(theta₁₀) ab13e36cd3204d6eb9f74a377ddf8d70--e8ac3e0a83da4b71a65763eb41663ee0 6879230013b14990b2b7dc72074b57b3 RY(theta₁₃) e8ac3e0a83da4b71a65763eb41663ee0--6879230013b14990b2b7dc72074b57b3 f0545b9dc4684e2d9dcc01b9fef9e4e1 RX(theta₁₆) 6879230013b14990b2b7dc72074b57b3--f0545b9dc4684e2d9dcc01b9fef9e4e1 8fd46355b85140adacbb762a790dce10 t = theta_t₁ f0545b9dc4684e2d9dcc01b9fef9e4e1--8fd46355b85140adacbb762a790dce10 8fd46355b85140adacbb762a790dce10--7a1c71e7bc2c40cfa572399bf3d71f23 40e247cb0c2947d5a6f5a300ac76fc4f ff11f318e95c4c218fc64e9f3b6c1eb9 RX(theta₂) 91d4c5b0033c4355bcba31f53ea31ffa--ff11f318e95c4c218fc64e9f3b6c1eb9 21949a6097b14b70bb97b04799120325 RY(theta₅) ff11f318e95c4c218fc64e9f3b6c1eb9--21949a6097b14b70bb97b04799120325 3c16f29183144e048ed923b64a139b7c RX(theta₈) 21949a6097b14b70bb97b04799120325--3c16f29183144e048ed923b64a139b7c 6fbaa6cffbae4741a9f27bd3d0fd2363 3c16f29183144e048ed923b64a139b7c--6fbaa6cffbae4741a9f27bd3d0fd2363 9b9b5ada60324ea59a342d71245f8c52 RX(theta₁₁) 6fbaa6cffbae4741a9f27bd3d0fd2363--9b9b5ada60324ea59a342d71245f8c52 9d49058482e94601b5dbc4f333d492ef RY(theta₁₄) 9b9b5ada60324ea59a342d71245f8c52--9d49058482e94601b5dbc4f333d492ef 00907a8f71e1424fb0b05244d1ec8998 RX(theta₁₇) 9d49058482e94601b5dbc4f333d492ef--00907a8f71e1424fb0b05244d1ec8998 ef4f7b65a68f442daf408f9062766693 00907a8f71e1424fb0b05244d1ec8998--ef4f7b65a68f442daf408f9062766693 ef4f7b65a68f442daf408f9062766693--40e247cb0c2947d5a6f5a300ac76fc4f

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_77b97177b8ce4671bb70fa286ead71e4 cluster_1d97d0a6466847a6a1adb3cf5e740dd9 8cbc43c400554443becac499f6dd229e 0 1064ce9f24b34474a42e58cfab792e55 RX(theta₀) 8cbc43c400554443becac499f6dd229e--1064ce9f24b34474a42e58cfab792e55 9b9056c822024ed1b83673db33da66e9 1 1e6dc0759aa44faca1499f0f8faeb39b RY(theta₆) 1064ce9f24b34474a42e58cfab792e55--1e6dc0759aa44faca1499f0f8faeb39b 937bfeec86ae41f5a46bb206f20e5582 RX(theta₁₂) 1e6dc0759aa44faca1499f0f8faeb39b--937bfeec86ae41f5a46bb206f20e5582 6b4ba5f6ea434f519050644101403771 937bfeec86ae41f5a46bb206f20e5582--6b4ba5f6ea434f519050644101403771 cd96d42527ea48d0b4fed71db11005bd RX(theta₁₈) 6b4ba5f6ea434f519050644101403771--cd96d42527ea48d0b4fed71db11005bd 87d7d7e506bd487ebe75e2d0e82dea06 RY(theta₂₄) cd96d42527ea48d0b4fed71db11005bd--87d7d7e506bd487ebe75e2d0e82dea06 2ff2c06b2e45406dae116c0b17de96a7 RX(theta₃₀) 87d7d7e506bd487ebe75e2d0e82dea06--2ff2c06b2e45406dae116c0b17de96a7 91095d4d70c046cdafcb3ea1cfd750de 2ff2c06b2e45406dae116c0b17de96a7--91095d4d70c046cdafcb3ea1cfd750de ce684c5432e3400ab6f4cabda6e9d145 91095d4d70c046cdafcb3ea1cfd750de--ce684c5432e3400ab6f4cabda6e9d145 34b4f371eaa84ede82554ad2561ee8d3 c73c6d110c1e4f5cb6222fd632143809 RX(theta₁) 9b9056c822024ed1b83673db33da66e9--c73c6d110c1e4f5cb6222fd632143809 2767c563947d46fc9e6821f6002bf768 2 0c412c426a4a4906b26256239815f7b4 RY(theta₇) c73c6d110c1e4f5cb6222fd632143809--0c412c426a4a4906b26256239815f7b4 aeb5972cac94420689bf5a8afb91d30a RX(theta₁₃) 0c412c426a4a4906b26256239815f7b4--aeb5972cac94420689bf5a8afb91d30a 8f7a52ce8ae349d5bf5883c91eb6099d aeb5972cac94420689bf5a8afb91d30a--8f7a52ce8ae349d5bf5883c91eb6099d a93e7389e4084b8f8834e301526a94b4 RX(theta₁₉) 8f7a52ce8ae349d5bf5883c91eb6099d--a93e7389e4084b8f8834e301526a94b4 7b1b66c7cc2b470ca351d6f3cb3076c9 RY(theta₂₅) a93e7389e4084b8f8834e301526a94b4--7b1b66c7cc2b470ca351d6f3cb3076c9 0947cd7b0bec494fa09e653ea6ecec79 RX(theta₃₁) 7b1b66c7cc2b470ca351d6f3cb3076c9--0947cd7b0bec494fa09e653ea6ecec79 281d95626e884545b9976e8bc1cf8269 0947cd7b0bec494fa09e653ea6ecec79--281d95626e884545b9976e8bc1cf8269 281d95626e884545b9976e8bc1cf8269--34b4f371eaa84ede82554ad2561ee8d3 a7584014672c4e87b15acc59f37cb2b9 2991747114db45fca34cbb5f450f05ef RX(theta₂) 2767c563947d46fc9e6821f6002bf768--2991747114db45fca34cbb5f450f05ef df980f969ac943259a1788f4cb322675 3 0be0a6a101e1420189adc7c8bd4ba5ac RY(theta₈) 2991747114db45fca34cbb5f450f05ef--0be0a6a101e1420189adc7c8bd4ba5ac 5131b4fadf9842f182d5835eb42ed62c RX(theta₁₄) 0be0a6a101e1420189adc7c8bd4ba5ac--5131b4fadf9842f182d5835eb42ed62c ba0d9571543a4c74b34186d6c6833c37 HamEvo 5131b4fadf9842f182d5835eb42ed62c--ba0d9571543a4c74b34186d6c6833c37 4bda672e7d0746519a1c90116ae5f232 RX(theta₂₀) ba0d9571543a4c74b34186d6c6833c37--4bda672e7d0746519a1c90116ae5f232 60141d9aa0424caab80081bd62998672 RY(theta₂₆) 4bda672e7d0746519a1c90116ae5f232--60141d9aa0424caab80081bd62998672 7d6810a3f78a4810aaf922e32dcc8f56 RX(theta₃₂) 60141d9aa0424caab80081bd62998672--7d6810a3f78a4810aaf922e32dcc8f56 9ba96c86365b477992daab6bdd18e52d HamEvo 7d6810a3f78a4810aaf922e32dcc8f56--9ba96c86365b477992daab6bdd18e52d 9ba96c86365b477992daab6bdd18e52d--a7584014672c4e87b15acc59f37cb2b9 5183c175c10b4218a5c1d49cf989a2ed 89c7f6879d25487bb6bf90b89ba69d14 RX(theta₃) df980f969ac943259a1788f4cb322675--89c7f6879d25487bb6bf90b89ba69d14 6e754edcf8ec4eb6bd97aaac07331b7d 4 9e58e3b764364b27a65d87526b7f9324 RY(theta₉) 89c7f6879d25487bb6bf90b89ba69d14--9e58e3b764364b27a65d87526b7f9324 e62cef7e814f494884822b3cc30f4e5d RX(theta₁₅) 9e58e3b764364b27a65d87526b7f9324--e62cef7e814f494884822b3cc30f4e5d ed2ac65a1c924c43ad41365410908d00 t = theta_t₀ e62cef7e814f494884822b3cc30f4e5d--ed2ac65a1c924c43ad41365410908d00 1ed8d56b04ba45dd82cba84245e3d763 RX(theta₂₁) ed2ac65a1c924c43ad41365410908d00--1ed8d56b04ba45dd82cba84245e3d763 1fb3fa80b59346a4bc677334857ecd95 RY(theta₂₇) 1ed8d56b04ba45dd82cba84245e3d763--1fb3fa80b59346a4bc677334857ecd95 958c7d9d0eac49e982f56ff917c68a61 RX(theta₃₃) 1fb3fa80b59346a4bc677334857ecd95--958c7d9d0eac49e982f56ff917c68a61 37582376d99140c092f5d7313d319435 t = theta_t₁ 958c7d9d0eac49e982f56ff917c68a61--37582376d99140c092f5d7313d319435 37582376d99140c092f5d7313d319435--5183c175c10b4218a5c1d49cf989a2ed 684c511a0ee14865bc11e60c031dba78 d05de16c64cc4d439f6cadc669b27d8b RX(theta₄) 6e754edcf8ec4eb6bd97aaac07331b7d--d05de16c64cc4d439f6cadc669b27d8b 8043bcc4975a49c6b3d24ce8f01445ec 5 1e25bdf9a40f4157b4ff105a04d0a60d RY(theta₁₀) d05de16c64cc4d439f6cadc669b27d8b--1e25bdf9a40f4157b4ff105a04d0a60d 5d31b98834814df38ee87d98cf7f468a RX(theta₁₆) 1e25bdf9a40f4157b4ff105a04d0a60d--5d31b98834814df38ee87d98cf7f468a 1524152eed8648ad92e95a48ba212f61 5d31b98834814df38ee87d98cf7f468a--1524152eed8648ad92e95a48ba212f61 c0b98630395f4fbb9f5e5a2daacb8e07 RX(theta₂₂) 1524152eed8648ad92e95a48ba212f61--c0b98630395f4fbb9f5e5a2daacb8e07 458fc943ccb748dd9ef8bf07149f96b2 RY(theta₂₈) c0b98630395f4fbb9f5e5a2daacb8e07--458fc943ccb748dd9ef8bf07149f96b2 9f5cc56f4804460da84bdac5e55f49b6 RX(theta₃₄) 458fc943ccb748dd9ef8bf07149f96b2--9f5cc56f4804460da84bdac5e55f49b6 fd2566e1415e44739824663040184a57 9f5cc56f4804460da84bdac5e55f49b6--fd2566e1415e44739824663040184a57 fd2566e1415e44739824663040184a57--684c511a0ee14865bc11e60c031dba78 a3cde74f0c13474c9dae26567570b31d 981a9059cc9c4462a02fff1e7380a49d RX(theta₅) 8043bcc4975a49c6b3d24ce8f01445ec--981a9059cc9c4462a02fff1e7380a49d ce082df566a2417c85ac68ba5e10dc96 RY(theta₁₁) 981a9059cc9c4462a02fff1e7380a49d--ce082df566a2417c85ac68ba5e10dc96 1f1ce1504b624c71b2f960751c275a0b RX(theta₁₇) ce082df566a2417c85ac68ba5e10dc96--1f1ce1504b624c71b2f960751c275a0b 9610c30b3ffc4e59825955610cacba22 1f1ce1504b624c71b2f960751c275a0b--9610c30b3ffc4e59825955610cacba22 24a62eccc97840c0b391a8d4f6d76383 RX(theta₂₃) 9610c30b3ffc4e59825955610cacba22--24a62eccc97840c0b391a8d4f6d76383 9aeffe95f84646b8937a45354e1acf88 RY(theta₂₉) 24a62eccc97840c0b391a8d4f6d76383--9aeffe95f84646b8937a45354e1acf88 a1413d781c104920b5fa9a15ae427c48 RX(theta₃₅) 9aeffe95f84646b8937a45354e1acf88--a1413d781c104920b5fa9a15ae427c48 0066dc6296f94b808f33267e31ecd005 a1413d781c104920b5fa9a15ae427c48--0066dc6296f94b808f33267e31ecd005 0066dc6296f94b808f33267e31ecd005--a3cde74f0c13474c9dae26567570b31d

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_a95b6aa3d7f547879f67960272f153c4 BPMA-1 cluster_9cce5f71ea654c04950f59931b117c5f BPMA-0 dab9faecc8fc46ab94af9cfb2b8c1993 0 0ea5b02e239e4d0c8855218770d0d189 RX(iia_α₀₀) dab9faecc8fc46ab94af9cfb2b8c1993--0ea5b02e239e4d0c8855218770d0d189 d7149dfe39174eb5804cebb60372f0cc 1 c468b5b0035041daaf9b4474c9ccbd5d RY(iia_α₀₃) 0ea5b02e239e4d0c8855218770d0d189--c468b5b0035041daaf9b4474c9ccbd5d 88e1c3f9d74d4c71860d538e595a8a4a c468b5b0035041daaf9b4474c9ccbd5d--88e1c3f9d74d4c71860d538e595a8a4a 10721ceff494420ebc3921e8caab0456 88e1c3f9d74d4c71860d538e595a8a4a--10721ceff494420ebc3921e8caab0456 ea741ec3c1db4631b0f330a55db855d2 RX(iia_γ₀₀) 10721ceff494420ebc3921e8caab0456--ea741ec3c1db4631b0f330a55db855d2 538f21be4528461d9b7a57c37e16950b ea741ec3c1db4631b0f330a55db855d2--538f21be4528461d9b7a57c37e16950b ee2b0f5fe32349d58d0a97ff39ae7055 538f21be4528461d9b7a57c37e16950b--ee2b0f5fe32349d58d0a97ff39ae7055 0c249b6fbe4b4dee9f03c5c8c5d2eb86 RY(iia_β₀₃) ee2b0f5fe32349d58d0a97ff39ae7055--0c249b6fbe4b4dee9f03c5c8c5d2eb86 43c733f0a3674178904a5d2670e1c704 RX(iia_β₀₀) 0c249b6fbe4b4dee9f03c5c8c5d2eb86--43c733f0a3674178904a5d2670e1c704 60a266c22c6649adaf81a999735991e7 RX(iia_α₁₀) 43c733f0a3674178904a5d2670e1c704--60a266c22c6649adaf81a999735991e7 2db073bb368f483a969fb4a87e6c3dc1 RY(iia_α₁₃) 60a266c22c6649adaf81a999735991e7--2db073bb368f483a969fb4a87e6c3dc1 ea4f3c28808b43929d75711d54c3d7a5 2db073bb368f483a969fb4a87e6c3dc1--ea4f3c28808b43929d75711d54c3d7a5 114663254ce145829f517bc22969a654 ea4f3c28808b43929d75711d54c3d7a5--114663254ce145829f517bc22969a654 8a1c5f76a8b64e5ea15362c035dfbb33 RX(iia_γ₁₀) 114663254ce145829f517bc22969a654--8a1c5f76a8b64e5ea15362c035dfbb33 55767d1daeea4fe2b397fbfa2d9ed247 8a1c5f76a8b64e5ea15362c035dfbb33--55767d1daeea4fe2b397fbfa2d9ed247 d896dd8a3e924bbda2dd8abe1a8a5d25 55767d1daeea4fe2b397fbfa2d9ed247--d896dd8a3e924bbda2dd8abe1a8a5d25 61b94090a5bd4ecb8344987e2414855f RY(iia_β₁₃) d896dd8a3e924bbda2dd8abe1a8a5d25--61b94090a5bd4ecb8344987e2414855f 62aec967d02240d78035e60615df0cec RX(iia_β₁₀) 61b94090a5bd4ecb8344987e2414855f--62aec967d02240d78035e60615df0cec 2c2aabd884e64f86ae07e9695ecd4e78 62aec967d02240d78035e60615df0cec--2c2aabd884e64f86ae07e9695ecd4e78 8b6ff98450a9417b9afb57176c262238 4e6408e79d75477eb02310c0b9f9f5df RX(iia_α₀₁) d7149dfe39174eb5804cebb60372f0cc--4e6408e79d75477eb02310c0b9f9f5df a28106dbf4a84dd1ab3abe6bb7b900b6 2 77c5f114f2af463abb38b633e9c8249e RY(iia_α₀₄) 4e6408e79d75477eb02310c0b9f9f5df--77c5f114f2af463abb38b633e9c8249e 22bc87c42f1f42a5904a6afe682abf4b X 77c5f114f2af463abb38b633e9c8249e--22bc87c42f1f42a5904a6afe682abf4b 22bc87c42f1f42a5904a6afe682abf4b--88e1c3f9d74d4c71860d538e595a8a4a c6549e19f387409a911445af46cb86a1 22bc87c42f1f42a5904a6afe682abf4b--c6549e19f387409a911445af46cb86a1 4d91293824534555b449056b4c658290 RX(iia_γ₀₁) c6549e19f387409a911445af46cb86a1--4d91293824534555b449056b4c658290 6911758eb8f44ba6a7468e17817d4831 4d91293824534555b449056b4c658290--6911758eb8f44ba6a7468e17817d4831 647f4239ad1a4e58a2b758cfb8541687 X 6911758eb8f44ba6a7468e17817d4831--647f4239ad1a4e58a2b758cfb8541687 647f4239ad1a4e58a2b758cfb8541687--ee2b0f5fe32349d58d0a97ff39ae7055 ac0eafa090cc4f02a417d73458c082bd RY(iia_β₀₄) 647f4239ad1a4e58a2b758cfb8541687--ac0eafa090cc4f02a417d73458c082bd 94e7f25730614616ad03f59efd0dba76 RX(iia_β₀₁) ac0eafa090cc4f02a417d73458c082bd--94e7f25730614616ad03f59efd0dba76 22c61de7d5d649f8b71b243483cebb73 RX(iia_α₁₁) 94e7f25730614616ad03f59efd0dba76--22c61de7d5d649f8b71b243483cebb73 98769d75f29049a4a8bf3cf2e1e79759 RY(iia_α₁₄) 22c61de7d5d649f8b71b243483cebb73--98769d75f29049a4a8bf3cf2e1e79759 ae0023dd962847aca4fc9d1789c01bab X 98769d75f29049a4a8bf3cf2e1e79759--ae0023dd962847aca4fc9d1789c01bab ae0023dd962847aca4fc9d1789c01bab--ea4f3c28808b43929d75711d54c3d7a5 bbf46878fbfe4d30851b3ed9a67e4cc7 ae0023dd962847aca4fc9d1789c01bab--bbf46878fbfe4d30851b3ed9a67e4cc7 d497ee944cc6425fb7dffa4ed90cd13b RX(iia_γ₁₁) bbf46878fbfe4d30851b3ed9a67e4cc7--d497ee944cc6425fb7dffa4ed90cd13b fef496acdf524c6c8c39f1a87253d497 d497ee944cc6425fb7dffa4ed90cd13b--fef496acdf524c6c8c39f1a87253d497 b4fbdb870a20443ebb940bf6e03686ad X fef496acdf524c6c8c39f1a87253d497--b4fbdb870a20443ebb940bf6e03686ad b4fbdb870a20443ebb940bf6e03686ad--d896dd8a3e924bbda2dd8abe1a8a5d25 23f59df9500d408297d9beacc09b0b26 RY(iia_β₁₄) b4fbdb870a20443ebb940bf6e03686ad--23f59df9500d408297d9beacc09b0b26 57e21fee2d8748879a7a1242852ec08b RX(iia_β₁₁) 23f59df9500d408297d9beacc09b0b26--57e21fee2d8748879a7a1242852ec08b 57e21fee2d8748879a7a1242852ec08b--8b6ff98450a9417b9afb57176c262238 1887e5c1cfb3479e9c8413dbf5ee5632 47cba81107c94cb68f43d67d6c4dab47 RX(iia_α₀₂) a28106dbf4a84dd1ab3abe6bb7b900b6--47cba81107c94cb68f43d67d6c4dab47 bfa66efcea284de68860d3fcf887af12 RY(iia_α₀₅) 47cba81107c94cb68f43d67d6c4dab47--bfa66efcea284de68860d3fcf887af12 0c7de81ee30e41269da161380d3d475a bfa66efcea284de68860d3fcf887af12--0c7de81ee30e41269da161380d3d475a 493e7877f78448f997760593aea64b99 X 0c7de81ee30e41269da161380d3d475a--493e7877f78448f997760593aea64b99 493e7877f78448f997760593aea64b99--c6549e19f387409a911445af46cb86a1 3b72916580c7467699f32dba2ec0102f RX(iia_γ₀₂) 493e7877f78448f997760593aea64b99--3b72916580c7467699f32dba2ec0102f e32f514e925e4a83b68e92aaec6cc293 X 3b72916580c7467699f32dba2ec0102f--e32f514e925e4a83b68e92aaec6cc293 e32f514e925e4a83b68e92aaec6cc293--6911758eb8f44ba6a7468e17817d4831 22c39623806e41e6897f26c8fee8481a e32f514e925e4a83b68e92aaec6cc293--22c39623806e41e6897f26c8fee8481a 2d5b094e352a410392df142092a54588 RY(iia_β₀₅) 22c39623806e41e6897f26c8fee8481a--2d5b094e352a410392df142092a54588 98b543e05c6b40d3b63e4b2cefe76f5f RX(iia_β₀₂) 2d5b094e352a410392df142092a54588--98b543e05c6b40d3b63e4b2cefe76f5f bc9daea9a88e4658a1035f3540d9e70f RX(iia_α₁₂) 98b543e05c6b40d3b63e4b2cefe76f5f--bc9daea9a88e4658a1035f3540d9e70f 3192051ed4c548f6bc8f8eb0118d5b69 RY(iia_α₁₅) bc9daea9a88e4658a1035f3540d9e70f--3192051ed4c548f6bc8f8eb0118d5b69 fe44deac8e4445fb8b33947831a8276f 3192051ed4c548f6bc8f8eb0118d5b69--fe44deac8e4445fb8b33947831a8276f 1286c447848d4268a75ddc1a55ab5d52 X fe44deac8e4445fb8b33947831a8276f--1286c447848d4268a75ddc1a55ab5d52 1286c447848d4268a75ddc1a55ab5d52--bbf46878fbfe4d30851b3ed9a67e4cc7 6ddcfbbe31a44006b904837c65b5e660 RX(iia_γ₁₂) 1286c447848d4268a75ddc1a55ab5d52--6ddcfbbe31a44006b904837c65b5e660 860c660c5703469aa2b92445d500f0a6 X 6ddcfbbe31a44006b904837c65b5e660--860c660c5703469aa2b92445d500f0a6 860c660c5703469aa2b92445d500f0a6--fef496acdf524c6c8c39f1a87253d497 122818e52b0d4c57af9e07803eba292f 860c660c5703469aa2b92445d500f0a6--122818e52b0d4c57af9e07803eba292f 7fa575cb0cc24d4282463bff90317626 RY(iia_β₁₅) 122818e52b0d4c57af9e07803eba292f--7fa575cb0cc24d4282463bff90317626 0816fc81b30744f8aed207dd507a877e RX(iia_β₁₂) 7fa575cb0cc24d4282463bff90317626--0816fc81b30744f8aed207dd507a877e 0816fc81b30744f8aed207dd507a877e--1887e5c1cfb3479e9c8413dbf5ee5632