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_df88a59fa8134fafa1d4ff3c9782e950 Constant Chebyshev FM cluster_2c81cfd2facf417da03c905b4a1d886b Constant Fourier FM ea4f866fa40049cb8087302fc809f810 0 cb66d551b9d74e2c93a898a9f60e2946 RX(phi) ea4f866fa40049cb8087302fc809f810--cb66d551b9d74e2c93a898a9f60e2946 54bde8a5f1d944449089e27e6692a002 1 0db3797480614442b71a721eb9b53b45 RX(acos(phi)) cb66d551b9d74e2c93a898a9f60e2946--0db3797480614442b71a721eb9b53b45 e6250e8152c04164b220e8ddcba45d0f 0db3797480614442b71a721eb9b53b45--e6250e8152c04164b220e8ddcba45d0f 85400b3bca7e4bba88ed5ec17b6b103c ea7f60af5ebb4d30841203790f02b87c RX(phi) 54bde8a5f1d944449089e27e6692a002--ea7f60af5ebb4d30841203790f02b87c c686c4a5f1854007a41be6b756e14b6d 2 0a580d0934d3498289902c1ae663b14d RX(acos(phi)) ea7f60af5ebb4d30841203790f02b87c--0a580d0934d3498289902c1ae663b14d 0a580d0934d3498289902c1ae663b14d--85400b3bca7e4bba88ed5ec17b6b103c 735747e0f3544e3ea301f26a71ff43c4 0b91e356768e49598e17ee1fa694697e RX(phi) c686c4a5f1854007a41be6b756e14b6d--0b91e356768e49598e17ee1fa694697e 8976a03470c64df795621b400a1de88a RX(acos(phi)) 0b91e356768e49598e17ee1fa694697e--8976a03470c64df795621b400a1de88a 8976a03470c64df795621b400a1de88a--735747e0f3544e3ea301f26a71ff43c4

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_14e86ae22a24461e88a95e1d899e7d46 Constant <function custom_fn at 0x7f957f243520> FM cluster_4e4ea849163541789f632058c3ad000d Constant asin FM df81a32bd55b4ba8b45ed9436426d5e9 0 d6d1b66e66f748ad977d25b8733ddde9 RX(asin(phi)) df81a32bd55b4ba8b45ed9436426d5e9--d6d1b66e66f748ad977d25b8733ddde9 2a55fc2d1a6048d085dd86143295552b 1 8880a4e14bf34e07ae2429ac84f3df74 RX(phi**2 + asin(phi)) d6d1b66e66f748ad977d25b8733ddde9--8880a4e14bf34e07ae2429ac84f3df74 e72e89ee53bc48e58ec48b7a8c663195 8880a4e14bf34e07ae2429ac84f3df74--e72e89ee53bc48e58ec48b7a8c663195 e404f213f77e4a64992ca9c54968d22f ad5def4771474e349f48170122ef4b0b RX(asin(phi)) 2a55fc2d1a6048d085dd86143295552b--ad5def4771474e349f48170122ef4b0b 7515831b02f6495da9da4f35f403f007 2 659d7609a2f341a297ae7e959950f1e5 RX(phi**2 + asin(phi)) ad5def4771474e349f48170122ef4b0b--659d7609a2f341a297ae7e959950f1e5 659d7609a2f341a297ae7e959950f1e5--e404f213f77e4a64992ca9c54968d22f cd037104b7a94d6d8277d5d7f1b8034f 2392048828c1446884c82d68b3f8ea1a RX(asin(phi)) 7515831b02f6495da9da4f35f403f007--2392048828c1446884c82d68b3f8ea1a f7c828f9f0214164b681e72dceb54a3b RX(phi**2 + asin(phi)) 2392048828c1446884c82d68b3f8ea1a--f7c828f9f0214164b681e72dceb54a3b f7c828f9f0214164b681e72dceb54a3b--cd037104b7a94d6d8277d5d7f1b8034f

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_7857398ac7614af889e41d5132ce8801 Exponential Fourier FM cluster_bf6817f622d3400b8e7844d69724a0a6 Constant Fourier FM cluster_2d3566c33a584f92aa1391dabd6075f8 Tower Fourier FM 4d1e2f0e3a2c452ab8e892421e08fbad 0 89478a2780ad46508b6381a3e11efb10 RX(phi) 4d1e2f0e3a2c452ab8e892421e08fbad--89478a2780ad46508b6381a3e11efb10 a55f78766d77426aacd29966a6c5f9e1 1 f82956e7329543ec99fbb774831f34c5 RX(1.0*phi) 89478a2780ad46508b6381a3e11efb10--f82956e7329543ec99fbb774831f34c5 5f3c5b6caf784c9884dc9d1de57258ae RX(1.0*phi) f82956e7329543ec99fbb774831f34c5--5f3c5b6caf784c9884dc9d1de57258ae e00479b13f124f81b32a200f287f63b7 5f3c5b6caf784c9884dc9d1de57258ae--e00479b13f124f81b32a200f287f63b7 5bbc7adffe5e4e159a67e24a97d87604 c2a22428e6104e219452e5f6bb593e88 RX(phi) a55f78766d77426aacd29966a6c5f9e1--c2a22428e6104e219452e5f6bb593e88 c77568aefa8a4b2a83bc583711dc9646 2 d27224302ae0434ba19471b5eafa6f97 RX(2.0*phi) c2a22428e6104e219452e5f6bb593e88--d27224302ae0434ba19471b5eafa6f97 b45cb05828604b7e9840e96ae24639d2 RX(2.0*phi) d27224302ae0434ba19471b5eafa6f97--b45cb05828604b7e9840e96ae24639d2 b45cb05828604b7e9840e96ae24639d2--5bbc7adffe5e4e159a67e24a97d87604 86808d3369724d17983a579363da2e2a 1e4b9fd7b22a4a308b4ba4f75b24fc5e RX(phi) c77568aefa8a4b2a83bc583711dc9646--1e4b9fd7b22a4a308b4ba4f75b24fc5e 2c0186db3caf4298bdbd666cccf5c864 3 74be9d0dad6846d8b5b90083496c7c26 RX(3.0*phi) 1e4b9fd7b22a4a308b4ba4f75b24fc5e--74be9d0dad6846d8b5b90083496c7c26 bd2f05de83984ede85c6de55337d708d RX(4.0*phi) 74be9d0dad6846d8b5b90083496c7c26--bd2f05de83984ede85c6de55337d708d bd2f05de83984ede85c6de55337d708d--86808d3369724d17983a579363da2e2a d6f6f187c1e44a7795700d2087bfa076 747b1aa0f2f14846897647932547c67d RX(phi) 2c0186db3caf4298bdbd666cccf5c864--747b1aa0f2f14846897647932547c67d 4febe32a623342a085ec519e57fddd61 4 825ea0476db14a66ac858cd62664c3fd RX(4.0*phi) 747b1aa0f2f14846897647932547c67d--825ea0476db14a66ac858cd62664c3fd f40446b0316b4f4c804accb2e9ccb7c1 RX(8.0*phi) 825ea0476db14a66ac858cd62664c3fd--f40446b0316b4f4c804accb2e9ccb7c1 f40446b0316b4f4c804accb2e9ccb7c1--d6f6f187c1e44a7795700d2087bfa076 638a91dec8694cbdacc790756445dcf6 730cb3534675433290d4feca9dbc7068 RX(phi) 4febe32a623342a085ec519e57fddd61--730cb3534675433290d4feca9dbc7068 fb785087288c43ffa9090b10966a2ea6 RX(5.0*phi) 730cb3534675433290d4feca9dbc7068--fb785087288c43ffa9090b10966a2ea6 4262a414b453436b9fe497dcdb3dd4aa RX(16.0*phi) fb785087288c43ffa9090b10966a2ea6--4262a414b453436b9fe497dcdb3dd4aa 4262a414b453436b9fe497dcdb3dd4aa--638a91dec8694cbdacc790756445dcf6

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 b05426ad1723474dad94091ed2948a7f 0 2581e98f568046f19f9ef7f2686bcc09 RX(1.0*acos(phi)) b05426ad1723474dad94091ed2948a7f--2581e98f568046f19f9ef7f2686bcc09 3e649536cc944466927d82970027b691 1 647bd5357df640eda222bd3f194fe23a 2581e98f568046f19f9ef7f2686bcc09--647bd5357df640eda222bd3f194fe23a 69261601af7e42f480f650c70c7a3b13 e6ba098a75a847a4bab7fc43076326c0 RX(1.414*acos(phi)) 3e649536cc944466927d82970027b691--e6ba098a75a847a4bab7fc43076326c0 c6512fdf21b34eb89a2c743d32279b66 2 e6ba098a75a847a4bab7fc43076326c0--69261601af7e42f480f650c70c7a3b13 edd14d81b2794b4789f8d1e155e18eba 5234f39f23cd4ac4b1aeabbaa6b597c8 RX(1.732*acos(phi)) c6512fdf21b34eb89a2c743d32279b66--5234f39f23cd4ac4b1aeabbaa6b597c8 7f27b28b6c714fafa6677333af8e021b 3 5234f39f23cd4ac4b1aeabbaa6b597c8--edd14d81b2794b4789f8d1e155e18eba e0193a2777844ae4b14dd7417440faa3 f93dca219d9b479c98ee2992aa8349de RX(2.0*acos(phi)) 7f27b28b6c714fafa6677333af8e021b--f93dca219d9b479c98ee2992aa8349de 2cf5ebb50a944819b1d46ca1e426ce37 4 f93dca219d9b479c98ee2992aa8349de--e0193a2777844ae4b14dd7417440faa3 3c6b1d88f46444c8a57e89f67f99a20e d590bde14dd64b2ba3ca16795b897b5e RX(2.236*acos(phi)) 2cf5ebb50a944819b1d46ca1e426ce37--d590bde14dd64b2ba3ca16795b897b5e d590bde14dd64b2ba3ca16795b897b5e--3c6b1d88f46444c8a57e89f67f99a20e

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 5ed971473684405d893a84ec4a6ffe7c 0 ae3eea41cd5a4d31aef6001c0a4012b4 RX(1.0*phi*w₀) 5ed971473684405d893a84ec4a6ffe7c--ae3eea41cd5a4d31aef6001c0a4012b4 5d97210ff09a47bb9e435108304b1c09 1 73bc995056164fcd99549a05ae0d85d1 ae3eea41cd5a4d31aef6001c0a4012b4--73bc995056164fcd99549a05ae0d85d1 25434561d04e4b21a50fd9d52651622b 5f7bd27e135a4603a2f815a0a3b7a5b4 RX(2.0*phi*w₁) 5d97210ff09a47bb9e435108304b1c09--5f7bd27e135a4603a2f815a0a3b7a5b4 ecf40f5e79fc459cb00fa62a1ab391ab 2 5f7bd27e135a4603a2f815a0a3b7a5b4--25434561d04e4b21a50fd9d52651622b 0af6d6569de2424cb45a7ce7f578d2c3 4913839977fc48f9a9df3f652198b692 RX(4.0*phi*w₂) ecf40f5e79fc459cb00fa62a1ab391ab--4913839977fc48f9a9df3f652198b692 2a51167408f341eaadb601d4773e6148 3 4913839977fc48f9a9df3f652198b692--0af6d6569de2424cb45a7ce7f578d2c3 0e4572e6f90e41b09969f5219be9fa59 c4013e5842624c4a8c102a21f828aa39 RX(8.0*phi*w₃) 2a51167408f341eaadb601d4773e6148--c4013e5842624c4a8c102a21f828aa39 e8a05c1cda4545878a93584db5f2e1ed 4 c4013e5842624c4a8c102a21f828aa39--0e4572e6f90e41b09969f5219be9fa59 2aa47dfb88e34e89b5cc26e5b88c5ce8 f7cada76cfbe4c2ba15617f8dfab26da RX(16.0*phi*w₄) e8a05c1cda4545878a93584db5f2e1ed--f7cada76cfbe4c2ba15617f8dfab26da f7cada76cfbe4c2ba15617f8dfab26da--2aa47dfb88e34e89b5cc26e5b88c5ce8

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 c0cbcc193c0d4efab9bf835a7349a689 0 dcf982862aae4a9997ac5331132c39e2 RY(80.0*acos(w₄*(0.667*x + 1.667))) c0cbcc193c0d4efab9bf835a7349a689--dcf982862aae4a9997ac5331132c39e2 2fc5222462b946de9b4618f102b65a0c 1 9bf8566ffe434eab816644e30b78813f dcf982862aae4a9997ac5331132c39e2--9bf8566ffe434eab816644e30b78813f 49272fa3a01545e785e14ceba4fb81ed 1900405a472e447a95d99ce07ced79dc RY(40.0*acos(w₃*(0.667*x + 1.667))) 2fc5222462b946de9b4618f102b65a0c--1900405a472e447a95d99ce07ced79dc 4fe0113e1f32469c9007f53b76eaea61 2 1900405a472e447a95d99ce07ced79dc--49272fa3a01545e785e14ceba4fb81ed bbec3109e3774aea8801346a9321f8bc d6749544dd6646a69df7be7d983c7ed7 RY(20.0*acos(w₂*(0.667*x + 1.667))) 4fe0113e1f32469c9007f53b76eaea61--d6749544dd6646a69df7be7d983c7ed7 583b7290f9964749a82e7ab9732ce94c 3 d6749544dd6646a69df7be7d983c7ed7--bbec3109e3774aea8801346a9321f8bc 2c76fb60bbfa44ac92ffe87a5666c7f3 c60fc5a83cec4188a87dd2e0e2dbbbca RY(10.0*acos(w₁*(0.667*x + 1.667))) 583b7290f9964749a82e7ab9732ce94c--c60fc5a83cec4188a87dd2e0e2dbbbca e171c86601aa46809a5222a19e140413 4 c60fc5a83cec4188a87dd2e0e2dbbbca--2c76fb60bbfa44ac92ffe87a5666c7f3 6fecb8eccb5a452cb80924c8df90922a 678037b0907c49408ab9f800039a2499 RY(5.0*acos(w₀*(0.667*x + 1.667))) e171c86601aa46809a5222a19e140413--678037b0907c49408ab9f800039a2499 678037b0907c49408ab9f800039a2499--6fecb8eccb5a452cb80924c8df90922a

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 7966b9eb5b6242afa69b6e062946f91c 0 3bdaa0053aa74476ba53844bb6217aaa RX(theta₀) 7966b9eb5b6242afa69b6e062946f91c--3bdaa0053aa74476ba53844bb6217aaa 8b2e85d7fe3e42d7aff642f203dd85f2 1 0875ba1c8b394be391fe2c9ca4776424 RY(theta₃) 3bdaa0053aa74476ba53844bb6217aaa--0875ba1c8b394be391fe2c9ca4776424 f8f7c463b35f48ad88833c280cd90a54 RX(theta₆) 0875ba1c8b394be391fe2c9ca4776424--f8f7c463b35f48ad88833c280cd90a54 9a5122de65e54bb9a410d34d09e52efd f8f7c463b35f48ad88833c280cd90a54--9a5122de65e54bb9a410d34d09e52efd f7233018c4f648b28a2b7d887f5413c2 9a5122de65e54bb9a410d34d09e52efd--f7233018c4f648b28a2b7d887f5413c2 9b0f6af675b84080970afb3e3240ea79 RX(theta₉) f7233018c4f648b28a2b7d887f5413c2--9b0f6af675b84080970afb3e3240ea79 5a1bea2fad824ea6a8658b14cc29ffe7 RY(theta₁₂) 9b0f6af675b84080970afb3e3240ea79--5a1bea2fad824ea6a8658b14cc29ffe7 3f3f1b54cfc84943a844e035d7e27b62 RX(theta₁₅) 5a1bea2fad824ea6a8658b14cc29ffe7--3f3f1b54cfc84943a844e035d7e27b62 436f8f76c2b24c57a03d2ec676e14586 3f3f1b54cfc84943a844e035d7e27b62--436f8f76c2b24c57a03d2ec676e14586 bae3ac5917fa41fd8b49bc14228650d8 436f8f76c2b24c57a03d2ec676e14586--bae3ac5917fa41fd8b49bc14228650d8 b80054103d1b4306aac7feb3c7615596 bae3ac5917fa41fd8b49bc14228650d8--b80054103d1b4306aac7feb3c7615596 ca76cf65820f437081d28a5de122705f 250a1c819e3640c3b8483e0bd638a2c7 RX(theta₁) 8b2e85d7fe3e42d7aff642f203dd85f2--250a1c819e3640c3b8483e0bd638a2c7 8cb4cce0762c4362872f004e82b76c00 2 aacc425b02e746f781fee4a239f30f6f RY(theta₄) 250a1c819e3640c3b8483e0bd638a2c7--aacc425b02e746f781fee4a239f30f6f 6d11b1b111304ac0914fa347e9e5e4ce RX(theta₇) aacc425b02e746f781fee4a239f30f6f--6d11b1b111304ac0914fa347e9e5e4ce f70f0ce1db874426a404fce9b37f3f69 X 6d11b1b111304ac0914fa347e9e5e4ce--f70f0ce1db874426a404fce9b37f3f69 f70f0ce1db874426a404fce9b37f3f69--9a5122de65e54bb9a410d34d09e52efd 6849d384469f434291e58e0a4be59dbc f70f0ce1db874426a404fce9b37f3f69--6849d384469f434291e58e0a4be59dbc 9aa4d9f26f714e939a5dccf2f3f9ec07 RX(theta₁₀) 6849d384469f434291e58e0a4be59dbc--9aa4d9f26f714e939a5dccf2f3f9ec07 79aefc5e240d4ac88090cb9f679ec78a RY(theta₁₃) 9aa4d9f26f714e939a5dccf2f3f9ec07--79aefc5e240d4ac88090cb9f679ec78a 854db175fe8a4ef989909fc1354bd1f3 RX(theta₁₆) 79aefc5e240d4ac88090cb9f679ec78a--854db175fe8a4ef989909fc1354bd1f3 48b41bca1dd64a59a49369e68c76f8b7 X 854db175fe8a4ef989909fc1354bd1f3--48b41bca1dd64a59a49369e68c76f8b7 48b41bca1dd64a59a49369e68c76f8b7--436f8f76c2b24c57a03d2ec676e14586 182806f741414fcebd9b799cfd79f104 48b41bca1dd64a59a49369e68c76f8b7--182806f741414fcebd9b799cfd79f104 182806f741414fcebd9b799cfd79f104--ca76cf65820f437081d28a5de122705f 0f770b90d67e4c5f890aeea6423e6fcd 765ad3d356024a49b1c81526339e5e54 RX(theta₂) 8cb4cce0762c4362872f004e82b76c00--765ad3d356024a49b1c81526339e5e54 34e933b0d1f34404bdae11c5fd0fbe72 RY(theta₅) 765ad3d356024a49b1c81526339e5e54--34e933b0d1f34404bdae11c5fd0fbe72 645d3c8ea79646269ad3af8f11b26519 RX(theta₈) 34e933b0d1f34404bdae11c5fd0fbe72--645d3c8ea79646269ad3af8f11b26519 e938497ae8464c919fcbafc0027bd940 645d3c8ea79646269ad3af8f11b26519--e938497ae8464c919fcbafc0027bd940 e49ffdd6ac0844a8b4ea3b770d946a36 X e938497ae8464c919fcbafc0027bd940--e49ffdd6ac0844a8b4ea3b770d946a36 e49ffdd6ac0844a8b4ea3b770d946a36--6849d384469f434291e58e0a4be59dbc e92ce815ee76433eae67634d814e5145 RX(theta₁₁) e49ffdd6ac0844a8b4ea3b770d946a36--e92ce815ee76433eae67634d814e5145 5e25cdeb15cc4001a63d7cb1497005a7 RY(theta₁₄) e92ce815ee76433eae67634d814e5145--5e25cdeb15cc4001a63d7cb1497005a7 43690c84fc5c44c1a3d65ad0b2d07efe RX(theta₁₇) 5e25cdeb15cc4001a63d7cb1497005a7--43690c84fc5c44c1a3d65ad0b2d07efe 4a28a114d3d9422a9be4aa0f86abac7c 43690c84fc5c44c1a3d65ad0b2d07efe--4a28a114d3d9422a9be4aa0f86abac7c 7f1f47d96f9b419697fdcb48b53042cb X 4a28a114d3d9422a9be4aa0f86abac7c--7f1f47d96f9b419697fdcb48b53042cb 7f1f47d96f9b419697fdcb48b53042cb--182806f741414fcebd9b799cfd79f104 7f1f47d96f9b419697fdcb48b53042cb--0f770b90d67e4c5f890aeea6423e6fcd

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 ea277f473a1348f393082b38b87be089 0 09284face3e144b19dd8cdce78151528 RX(phi₀) ea277f473a1348f393082b38b87be089--09284face3e144b19dd8cdce78151528 3a87c289949a4b4c94c6084f274f45f3 1 ea5512a888ad4aa68c075bce4b02addf RY(phi₃) 09284face3e144b19dd8cdce78151528--ea5512a888ad4aa68c075bce4b02addf 022ab6b577ea482f9794b660fc4f2b1c RX(phi₆) ea5512a888ad4aa68c075bce4b02addf--022ab6b577ea482f9794b660fc4f2b1c f84c93106e64476296bab9a58c5e41fd 022ab6b577ea482f9794b660fc4f2b1c--f84c93106e64476296bab9a58c5e41fd 2a61bf802aaf4dd09708f32dcd06df23 f84c93106e64476296bab9a58c5e41fd--2a61bf802aaf4dd09708f32dcd06df23 ec09da09b4c74a4ea1d7e767a2b0ca7b RX(phi₉) 2a61bf802aaf4dd09708f32dcd06df23--ec09da09b4c74a4ea1d7e767a2b0ca7b 928b9e8e644642e39dbfcab1ebd92d8c RY(phi₁₂) ec09da09b4c74a4ea1d7e767a2b0ca7b--928b9e8e644642e39dbfcab1ebd92d8c 80990c2e4e9e470c95141acaa22a7f66 RX(phi₁₅) 928b9e8e644642e39dbfcab1ebd92d8c--80990c2e4e9e470c95141acaa22a7f66 0d8f001398b74b7b9bf4cee423959339 80990c2e4e9e470c95141acaa22a7f66--0d8f001398b74b7b9bf4cee423959339 3dfdf29fab9c4f509b1496db2a49b378 0d8f001398b74b7b9bf4cee423959339--3dfdf29fab9c4f509b1496db2a49b378 165eac7a8b14437b8773e40cbcff962b 3dfdf29fab9c4f509b1496db2a49b378--165eac7a8b14437b8773e40cbcff962b e15b5464854f412d93ccf876b746bedf cb1093438cec4ccb884838d48e00f918 RX(phi₁) 3a87c289949a4b4c94c6084f274f45f3--cb1093438cec4ccb884838d48e00f918 3e137d29d62c4ad3858927b4d4855177 2 bc8c0b1dc9ea468ebf6be4edd1b04b2a RY(phi₄) cb1093438cec4ccb884838d48e00f918--bc8c0b1dc9ea468ebf6be4edd1b04b2a c17ea3da371d4e7f9d72b7f7bf063115 RX(phi₇) bc8c0b1dc9ea468ebf6be4edd1b04b2a--c17ea3da371d4e7f9d72b7f7bf063115 b0c6e2bef95f44de811299ffbf7aabc4 PHASE(phi_ent₀) c17ea3da371d4e7f9d72b7f7bf063115--b0c6e2bef95f44de811299ffbf7aabc4 b0c6e2bef95f44de811299ffbf7aabc4--f84c93106e64476296bab9a58c5e41fd 56637f59a39443a6bfee04206946f8ed b0c6e2bef95f44de811299ffbf7aabc4--56637f59a39443a6bfee04206946f8ed 69a909688cc5461e95da8bf6214df355 RX(phi₁₀) 56637f59a39443a6bfee04206946f8ed--69a909688cc5461e95da8bf6214df355 b98624fa25164a3991e2b0fc8b0fc31b RY(phi₁₃) 69a909688cc5461e95da8bf6214df355--b98624fa25164a3991e2b0fc8b0fc31b c81ba96ad2774d0f9b99bf1ceb46f83e RX(phi₁₆) b98624fa25164a3991e2b0fc8b0fc31b--c81ba96ad2774d0f9b99bf1ceb46f83e 82d315f7cb6f420396f8fd7df5a43d06 PHASE(phi_ent₂) c81ba96ad2774d0f9b99bf1ceb46f83e--82d315f7cb6f420396f8fd7df5a43d06 82d315f7cb6f420396f8fd7df5a43d06--0d8f001398b74b7b9bf4cee423959339 0f37a568e0b64ca396870dcf8c77dfab 82d315f7cb6f420396f8fd7df5a43d06--0f37a568e0b64ca396870dcf8c77dfab 0f37a568e0b64ca396870dcf8c77dfab--e15b5464854f412d93ccf876b746bedf 27438f0972494c619c3f17a259823200 9151b186b97749bbb532c698a23afa12 RX(phi₂) 3e137d29d62c4ad3858927b4d4855177--9151b186b97749bbb532c698a23afa12 8e61225d1ea0460db29920f9619df570 RY(phi₅) 9151b186b97749bbb532c698a23afa12--8e61225d1ea0460db29920f9619df570 62ec9b64739e48969611a387fc463077 RX(phi₈) 8e61225d1ea0460db29920f9619df570--62ec9b64739e48969611a387fc463077 9b52ac568fb94ff8ba0b6325199904c8 62ec9b64739e48969611a387fc463077--9b52ac568fb94ff8ba0b6325199904c8 ce93e2673ba64d21bd94aa47868464c4 PHASE(phi_ent₁) 9b52ac568fb94ff8ba0b6325199904c8--ce93e2673ba64d21bd94aa47868464c4 ce93e2673ba64d21bd94aa47868464c4--56637f59a39443a6bfee04206946f8ed 7081a6a601b24c70b38ac55592f51dab RX(phi₁₁) ce93e2673ba64d21bd94aa47868464c4--7081a6a601b24c70b38ac55592f51dab 043a0b4e314946ab9ef26df7ce2c63e9 RY(phi₁₄) 7081a6a601b24c70b38ac55592f51dab--043a0b4e314946ab9ef26df7ce2c63e9 35ec02618db245fd9a2b5ca2e6b20ee6 RX(phi₁₇) 043a0b4e314946ab9ef26df7ce2c63e9--35ec02618db245fd9a2b5ca2e6b20ee6 e87f3cf15f3544ae83951fe933337d4d 35ec02618db245fd9a2b5ca2e6b20ee6--e87f3cf15f3544ae83951fe933337d4d 63a00d0b53b7473994aa847e10bfde3b PHASE(phi_ent₃) e87f3cf15f3544ae83951fe933337d4d--63a00d0b53b7473994aa847e10bfde3b 63a00d0b53b7473994aa847e10bfde3b--0f37a568e0b64ca396870dcf8c77dfab 63a00d0b53b7473994aa847e10bfde3b--27438f0972494c619c3f17a259823200

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_3fb178d8d3294c568883bcf03e56bd06 cluster_684a3ec3104942ed99a8ac3099fe2370 47a3cae25e63407d89b2c4fb7e0c4adb 0 2d67bbe4798d46b3a8611593d9ac4cac RX(theta₀) 47a3cae25e63407d89b2c4fb7e0c4adb--2d67bbe4798d46b3a8611593d9ac4cac fc9cc3205d2d4ac7b5157b753a7346b9 1 5c79ff44bc7648188079fb9b150854b8 RY(theta₃) 2d67bbe4798d46b3a8611593d9ac4cac--5c79ff44bc7648188079fb9b150854b8 0bad69fa30b64b27962e96df68a306cd RX(theta₆) 5c79ff44bc7648188079fb9b150854b8--0bad69fa30b64b27962e96df68a306cd cd7312412c514beaabed7a8f205a5c39 HamEvo 0bad69fa30b64b27962e96df68a306cd--cd7312412c514beaabed7a8f205a5c39 d37b3a99288a4233917d5695a569ad8f RX(theta₉) cd7312412c514beaabed7a8f205a5c39--d37b3a99288a4233917d5695a569ad8f 21fdc715988e41aab47097ac0efbe8d3 RY(theta₁₂) d37b3a99288a4233917d5695a569ad8f--21fdc715988e41aab47097ac0efbe8d3 b74f4482c3014d4e821c99673eb28dc4 RX(theta₁₅) 21fdc715988e41aab47097ac0efbe8d3--b74f4482c3014d4e821c99673eb28dc4 a941e69da6bf4692902a7671b482c6df HamEvo b74f4482c3014d4e821c99673eb28dc4--a941e69da6bf4692902a7671b482c6df b7d668ca60dc450f94eb01baffc855c8 a941e69da6bf4692902a7671b482c6df--b7d668ca60dc450f94eb01baffc855c8 62f4b5b8869546bfaeb538cc09f04ea3 3cf9675d64124f5b931ef67f57a3ab15 RX(theta₁) fc9cc3205d2d4ac7b5157b753a7346b9--3cf9675d64124f5b931ef67f57a3ab15 54f4be0dcbdc4a47852eacae35e7a843 2 2de4055f8fd9491ba9e992763ba7a4f3 RY(theta₄) 3cf9675d64124f5b931ef67f57a3ab15--2de4055f8fd9491ba9e992763ba7a4f3 611a1663b3c341baaca0ce5854a1c0c6 RX(theta₇) 2de4055f8fd9491ba9e992763ba7a4f3--611a1663b3c341baaca0ce5854a1c0c6 7f2fc1998b6a4e5fba76aae595adfb99 t = theta_t₀ 611a1663b3c341baaca0ce5854a1c0c6--7f2fc1998b6a4e5fba76aae595adfb99 bf55bce31d0b429185fab5ece2bea938 RX(theta₁₀) 7f2fc1998b6a4e5fba76aae595adfb99--bf55bce31d0b429185fab5ece2bea938 d9e6a9f172c444c7bda4e1213663c4c0 RY(theta₁₃) bf55bce31d0b429185fab5ece2bea938--d9e6a9f172c444c7bda4e1213663c4c0 87d8bf437a824fab96f379918f17b12b RX(theta₁₆) d9e6a9f172c444c7bda4e1213663c4c0--87d8bf437a824fab96f379918f17b12b cc6f40ae09de4417b8a3352ffbcf468b t = theta_t₁ 87d8bf437a824fab96f379918f17b12b--cc6f40ae09de4417b8a3352ffbcf468b cc6f40ae09de4417b8a3352ffbcf468b--62f4b5b8869546bfaeb538cc09f04ea3 27dcafacb30c4510b24600f1af723dbc 375c7895d67a44a393c576f021fd7aa6 RX(theta₂) 54f4be0dcbdc4a47852eacae35e7a843--375c7895d67a44a393c576f021fd7aa6 deba2e972a9f4f1e9b57ff9eec6e7742 RY(theta₅) 375c7895d67a44a393c576f021fd7aa6--deba2e972a9f4f1e9b57ff9eec6e7742 243f885d777f4e829a5acb2bdeb58638 RX(theta₈) deba2e972a9f4f1e9b57ff9eec6e7742--243f885d777f4e829a5acb2bdeb58638 8ce7dca85ec1433ea75da0d28ea5aa49 243f885d777f4e829a5acb2bdeb58638--8ce7dca85ec1433ea75da0d28ea5aa49 150d8e8917864557b327546d854bdfdd RX(theta₁₁) 8ce7dca85ec1433ea75da0d28ea5aa49--150d8e8917864557b327546d854bdfdd 8121b3a5d3e4443aa4190075bd0c086b RY(theta₁₄) 150d8e8917864557b327546d854bdfdd--8121b3a5d3e4443aa4190075bd0c086b ebcdf453215844fa9a905cd78e3a8d67 RX(theta₁₇) 8121b3a5d3e4443aa4190075bd0c086b--ebcdf453215844fa9a905cd78e3a8d67 109aea3c01fb4d3bb8af4decc4807de6 ebcdf453215844fa9a905cd78e3a8d67--109aea3c01fb4d3bb8af4decc4807de6 109aea3c01fb4d3bb8af4decc4807de6--27dcafacb30c4510b24600f1af723dbc

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_07f0cd3e9b834b1d8de7d55e136ecbfb cluster_228dfe7aefd94aeba08a3e442b9dc9cc 34002f4254d34dea9c24355ef35c404d 0 e0dbf8a2ef7d410e91fcb560cfc41a52 RX(theta₀) 34002f4254d34dea9c24355ef35c404d--e0dbf8a2ef7d410e91fcb560cfc41a52 186adfaaa04e489fb6bd67ca8da07476 1 07df9b1d717e4881be834a04772c850d RY(theta₆) e0dbf8a2ef7d410e91fcb560cfc41a52--07df9b1d717e4881be834a04772c850d c3d751d5846f4bb39b3b1d8c1406096f RX(theta₁₂) 07df9b1d717e4881be834a04772c850d--c3d751d5846f4bb39b3b1d8c1406096f 7b28f0a2db064d71aca3bc1290ca57b3 c3d751d5846f4bb39b3b1d8c1406096f--7b28f0a2db064d71aca3bc1290ca57b3 1d27cf48231a428d9112a6071d34be20 RX(theta₁₈) 7b28f0a2db064d71aca3bc1290ca57b3--1d27cf48231a428d9112a6071d34be20 073dd78305144b49b663f4d2a4b26416 RY(theta₂₄) 1d27cf48231a428d9112a6071d34be20--073dd78305144b49b663f4d2a4b26416 fca0765fbaa84aa0b6623be65c9537bb RX(theta₃₀) 073dd78305144b49b663f4d2a4b26416--fca0765fbaa84aa0b6623be65c9537bb 482c62e0e1fc497cb273c8c22f70d241 fca0765fbaa84aa0b6623be65c9537bb--482c62e0e1fc497cb273c8c22f70d241 1d642d9aae73437699e26bdd507a91d0 482c62e0e1fc497cb273c8c22f70d241--1d642d9aae73437699e26bdd507a91d0 c0db34da23fc4ce8927e64974b288ad1 99b1411e152542288e3fbc1abfe2e9bc RX(theta₁) 186adfaaa04e489fb6bd67ca8da07476--99b1411e152542288e3fbc1abfe2e9bc 7e8a759d8df64193a11689274397af68 2 860783038bde4593a6a4451c1c07a0ff RY(theta₇) 99b1411e152542288e3fbc1abfe2e9bc--860783038bde4593a6a4451c1c07a0ff f756b315d02f43f1a80399802a1d5b7b RX(theta₁₃) 860783038bde4593a6a4451c1c07a0ff--f756b315d02f43f1a80399802a1d5b7b ba17a2124ec044ca8b456acac13faf9b f756b315d02f43f1a80399802a1d5b7b--ba17a2124ec044ca8b456acac13faf9b 86673289e48e4ffabd54f04ec2aef653 RX(theta₁₉) ba17a2124ec044ca8b456acac13faf9b--86673289e48e4ffabd54f04ec2aef653 f20069a27e3b4907b1369ddf69aa90f2 RY(theta₂₅) 86673289e48e4ffabd54f04ec2aef653--f20069a27e3b4907b1369ddf69aa90f2 21797f1f6f2944379eddc431fda190ed RX(theta₃₁) f20069a27e3b4907b1369ddf69aa90f2--21797f1f6f2944379eddc431fda190ed e63e035bf66d42999d511c64a2e1fcf6 21797f1f6f2944379eddc431fda190ed--e63e035bf66d42999d511c64a2e1fcf6 e63e035bf66d42999d511c64a2e1fcf6--c0db34da23fc4ce8927e64974b288ad1 cc3a0aaa8bca478e90049d9610ff1a6c 5a1bc96810f34829954fd752a0c570db RX(theta₂) 7e8a759d8df64193a11689274397af68--5a1bc96810f34829954fd752a0c570db 0ee9246157d540c8b9f92e5f1613f85e 3 6e0e6d523eac40c1b62237971ada3629 RY(theta₈) 5a1bc96810f34829954fd752a0c570db--6e0e6d523eac40c1b62237971ada3629 16977a8f453d46e089d23a28ba868d9d RX(theta₁₄) 6e0e6d523eac40c1b62237971ada3629--16977a8f453d46e089d23a28ba868d9d 3cd4a6dac21d450fa6d864a1b6ec493d HamEvo 16977a8f453d46e089d23a28ba868d9d--3cd4a6dac21d450fa6d864a1b6ec493d 4d92bfc9e89f4e15ad10f763a2d5f49a RX(theta₂₀) 3cd4a6dac21d450fa6d864a1b6ec493d--4d92bfc9e89f4e15ad10f763a2d5f49a 431e84dc239d4ae0bd9d4cac802ad364 RY(theta₂₆) 4d92bfc9e89f4e15ad10f763a2d5f49a--431e84dc239d4ae0bd9d4cac802ad364 888bce49c2044b0ab99b7097601b0ac8 RX(theta₃₂) 431e84dc239d4ae0bd9d4cac802ad364--888bce49c2044b0ab99b7097601b0ac8 01ba3cfb24974a89a653c689fffdfc61 HamEvo 888bce49c2044b0ab99b7097601b0ac8--01ba3cfb24974a89a653c689fffdfc61 01ba3cfb24974a89a653c689fffdfc61--cc3a0aaa8bca478e90049d9610ff1a6c d7df6c78217c48bab978c3ea42b3b98b 9ec07402f4ae4ae8907948111a130b58 RX(theta₃) 0ee9246157d540c8b9f92e5f1613f85e--9ec07402f4ae4ae8907948111a130b58 9a8031da8b85485da4cc65f48ffdad4d 4 cdb18b0042294afda8bf8491bd76164b RY(theta₉) 9ec07402f4ae4ae8907948111a130b58--cdb18b0042294afda8bf8491bd76164b 93ed9db4233f40c2a610da896154168c RX(theta₁₅) cdb18b0042294afda8bf8491bd76164b--93ed9db4233f40c2a610da896154168c 565a88ebf4924dc6b3a03cf91c823a0e t = theta_t₀ 93ed9db4233f40c2a610da896154168c--565a88ebf4924dc6b3a03cf91c823a0e 0c78107650614dc096b673b2def85283 RX(theta₂₁) 565a88ebf4924dc6b3a03cf91c823a0e--0c78107650614dc096b673b2def85283 6568f7b5fc8d4f09a5af3f23e436c45d RY(theta₂₇) 0c78107650614dc096b673b2def85283--6568f7b5fc8d4f09a5af3f23e436c45d 69d704cf434f4382a52f7c7cbf20507d RX(theta₃₃) 6568f7b5fc8d4f09a5af3f23e436c45d--69d704cf434f4382a52f7c7cbf20507d f933e52a4db5430684f7397af57aff66 t = theta_t₁ 69d704cf434f4382a52f7c7cbf20507d--f933e52a4db5430684f7397af57aff66 f933e52a4db5430684f7397af57aff66--d7df6c78217c48bab978c3ea42b3b98b 9813059f07374754840aae1aa887c95c b8e2fb28dc5245359151711838f08585 RX(theta₄) 9a8031da8b85485da4cc65f48ffdad4d--b8e2fb28dc5245359151711838f08585 8853b6928114443299c97c5d69c47504 5 9ba5eea33f984facb434a809e444ad57 RY(theta₁₀) b8e2fb28dc5245359151711838f08585--9ba5eea33f984facb434a809e444ad57 091db70aeeb94ad38afb4fd68d7e5bc2 RX(theta₁₆) 9ba5eea33f984facb434a809e444ad57--091db70aeeb94ad38afb4fd68d7e5bc2 da8265592cbb488dbc0d5b75bcedb137 091db70aeeb94ad38afb4fd68d7e5bc2--da8265592cbb488dbc0d5b75bcedb137 42a8e36494524ea3b30e7d628113cf08 RX(theta₂₂) da8265592cbb488dbc0d5b75bcedb137--42a8e36494524ea3b30e7d628113cf08 44634b232d87434aacfc62d6bae88f33 RY(theta₂₈) 42a8e36494524ea3b30e7d628113cf08--44634b232d87434aacfc62d6bae88f33 761ff42002494827bda7077b8eade314 RX(theta₃₄) 44634b232d87434aacfc62d6bae88f33--761ff42002494827bda7077b8eade314 a7395651431644878436b1e4d58979af 761ff42002494827bda7077b8eade314--a7395651431644878436b1e4d58979af a7395651431644878436b1e4d58979af--9813059f07374754840aae1aa887c95c 6cc8c7beaf4f4786ac0cb2d210b7b2cc 082425b11030451bb3b42ab4ba9e2f1b RX(theta₅) 8853b6928114443299c97c5d69c47504--082425b11030451bb3b42ab4ba9e2f1b 86a2c9caa5da49dc8c3fc2a1e13707d8 RY(theta₁₁) 082425b11030451bb3b42ab4ba9e2f1b--86a2c9caa5da49dc8c3fc2a1e13707d8 97bb539acca34f80b6b74ce23be24313 RX(theta₁₇) 86a2c9caa5da49dc8c3fc2a1e13707d8--97bb539acca34f80b6b74ce23be24313 e4b1bf13ed3249829f088ae159a9550b 97bb539acca34f80b6b74ce23be24313--e4b1bf13ed3249829f088ae159a9550b b05ba2be20e64fd197ee709994a28e03 RX(theta₂₃) e4b1bf13ed3249829f088ae159a9550b--b05ba2be20e64fd197ee709994a28e03 1c0bd8edb8654afa80e4cf6554e228a3 RY(theta₂₉) b05ba2be20e64fd197ee709994a28e03--1c0bd8edb8654afa80e4cf6554e228a3 ec86e6361c374f1f9edcaa247461f8b6 RX(theta₃₅) 1c0bd8edb8654afa80e4cf6554e228a3--ec86e6361c374f1f9edcaa247461f8b6 15258c14528e478e8e8b0ccc2971d1df ec86e6361c374f1f9edcaa247461f8b6--15258c14528e478e8e8b0ccc2971d1df 15258c14528e478e8e8b0ccc2971d1df--6cc8c7beaf4f4786ac0cb2d210b7b2cc

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_7bab034d9e3e4d7f9bdd2fa7c221c051 BPMA-1 cluster_0120b2619b4247089fb0bfef25de8653 BPMA-0 888a729c5abf487bb793540e5cd5c68e 0 e3b98b923ad84d4395fca6844e0a33c4 RX(iia_α₀₀) 888a729c5abf487bb793540e5cd5c68e--e3b98b923ad84d4395fca6844e0a33c4 72514ea4cd0d47be8797bc3582a33455 1 bd18fc53c71842d78fcdc17950404315 RY(iia_α₀₃) e3b98b923ad84d4395fca6844e0a33c4--bd18fc53c71842d78fcdc17950404315 9295f7859c854a59899e4349317ec938 bd18fc53c71842d78fcdc17950404315--9295f7859c854a59899e4349317ec938 6fd421ab82314860ae42fc8d8dc340f8 9295f7859c854a59899e4349317ec938--6fd421ab82314860ae42fc8d8dc340f8 d1483410b1d2491194388ec04b0a5714 RX(iia_γ₀₀) 6fd421ab82314860ae42fc8d8dc340f8--d1483410b1d2491194388ec04b0a5714 3b8456d3fb46492995a7a0bb2a1835e1 d1483410b1d2491194388ec04b0a5714--3b8456d3fb46492995a7a0bb2a1835e1 04d1301e330a401ab55e7b825f237f96 3b8456d3fb46492995a7a0bb2a1835e1--04d1301e330a401ab55e7b825f237f96 4ccb1ee618aa451e9f4859637b835494 RY(iia_β₀₃) 04d1301e330a401ab55e7b825f237f96--4ccb1ee618aa451e9f4859637b835494 4b70401dbf03400b8a72a6522253a3b0 RX(iia_β₀₀) 4ccb1ee618aa451e9f4859637b835494--4b70401dbf03400b8a72a6522253a3b0 87781a6bebc44642b26c91cc3c307b40 RX(iia_α₁₀) 4b70401dbf03400b8a72a6522253a3b0--87781a6bebc44642b26c91cc3c307b40 0bc03c0c4f9b4608b9d3fe642fc61add RY(iia_α₁₃) 87781a6bebc44642b26c91cc3c307b40--0bc03c0c4f9b4608b9d3fe642fc61add 263e6e3f222c4206bf5bdae082dc5971 0bc03c0c4f9b4608b9d3fe642fc61add--263e6e3f222c4206bf5bdae082dc5971 659a57811ab946b3ab74adbfdf44bc3e 263e6e3f222c4206bf5bdae082dc5971--659a57811ab946b3ab74adbfdf44bc3e 9a7d10e85060419481e668cc456db6fc RX(iia_γ₁₀) 659a57811ab946b3ab74adbfdf44bc3e--9a7d10e85060419481e668cc456db6fc 0729c59cd0e743b18b1e3513bd544663 9a7d10e85060419481e668cc456db6fc--0729c59cd0e743b18b1e3513bd544663 081d97ac7cb4436a874fdc4ee3566bca 0729c59cd0e743b18b1e3513bd544663--081d97ac7cb4436a874fdc4ee3566bca a83788a68c1d4fe88e00e60c69ec5b62 RY(iia_β₁₃) 081d97ac7cb4436a874fdc4ee3566bca--a83788a68c1d4fe88e00e60c69ec5b62 121f4d6f0c78407688c33d15a0fa9e07 RX(iia_β₁₀) a83788a68c1d4fe88e00e60c69ec5b62--121f4d6f0c78407688c33d15a0fa9e07 0427fd174ace46e08c5943d08e980fe6 121f4d6f0c78407688c33d15a0fa9e07--0427fd174ace46e08c5943d08e980fe6 a5449ae5914d42ea916d22c06536467c afacc89e622d4f519e3153093b86629a RX(iia_α₀₁) 72514ea4cd0d47be8797bc3582a33455--afacc89e622d4f519e3153093b86629a 0debcd7f6d504a2f9d088575b70d5dab 2 a3ba0fdeba0d4516b48bc020d4958251 RY(iia_α₀₄) afacc89e622d4f519e3153093b86629a--a3ba0fdeba0d4516b48bc020d4958251 4c8da10d23f9487eb3e85975c7b2efbf X a3ba0fdeba0d4516b48bc020d4958251--4c8da10d23f9487eb3e85975c7b2efbf 4c8da10d23f9487eb3e85975c7b2efbf--9295f7859c854a59899e4349317ec938 2c63081013a54ec1a45c2b17b602e81c 4c8da10d23f9487eb3e85975c7b2efbf--2c63081013a54ec1a45c2b17b602e81c 1be62305e3ee473c9d8ccfc2b47e31a8 RX(iia_γ₀₁) 2c63081013a54ec1a45c2b17b602e81c--1be62305e3ee473c9d8ccfc2b47e31a8 a9d067c36e784da1817f308862611d43 1be62305e3ee473c9d8ccfc2b47e31a8--a9d067c36e784da1817f308862611d43 4df9cb92c2b340d7b530ae4dfff4f2d4 X a9d067c36e784da1817f308862611d43--4df9cb92c2b340d7b530ae4dfff4f2d4 4df9cb92c2b340d7b530ae4dfff4f2d4--04d1301e330a401ab55e7b825f237f96 582e8668232c4229a5faa1ed18aa2404 RY(iia_β₀₄) 4df9cb92c2b340d7b530ae4dfff4f2d4--582e8668232c4229a5faa1ed18aa2404 7a8b412c8e904a5fa09f3b5859f435dd RX(iia_β₀₁) 582e8668232c4229a5faa1ed18aa2404--7a8b412c8e904a5fa09f3b5859f435dd 5439f17e2abd4ed2ae3b8920789dc516 RX(iia_α₁₁) 7a8b412c8e904a5fa09f3b5859f435dd--5439f17e2abd4ed2ae3b8920789dc516 b08c9fdf9b174e8680000a581b014645 RY(iia_α₁₄) 5439f17e2abd4ed2ae3b8920789dc516--b08c9fdf9b174e8680000a581b014645 cc7d3b235f9949ca8124c60c6465e1ec X b08c9fdf9b174e8680000a581b014645--cc7d3b235f9949ca8124c60c6465e1ec cc7d3b235f9949ca8124c60c6465e1ec--263e6e3f222c4206bf5bdae082dc5971 7a3700735d1446dca373cc3dfd64902c cc7d3b235f9949ca8124c60c6465e1ec--7a3700735d1446dca373cc3dfd64902c 158729178c0c43b0b6f263cb1e743aac RX(iia_γ₁₁) 7a3700735d1446dca373cc3dfd64902c--158729178c0c43b0b6f263cb1e743aac 0ccf5f9db86141eba28cc74b1a4973fc 158729178c0c43b0b6f263cb1e743aac--0ccf5f9db86141eba28cc74b1a4973fc 38eefa2c59034f36a02d3a5d4c4f402e X 0ccf5f9db86141eba28cc74b1a4973fc--38eefa2c59034f36a02d3a5d4c4f402e 38eefa2c59034f36a02d3a5d4c4f402e--081d97ac7cb4436a874fdc4ee3566bca 215e74501c1b4d569f2b20e7ce5510ca RY(iia_β₁₄) 38eefa2c59034f36a02d3a5d4c4f402e--215e74501c1b4d569f2b20e7ce5510ca 2ed329da895148329aa5b40a66ef7489 RX(iia_β₁₁) 215e74501c1b4d569f2b20e7ce5510ca--2ed329da895148329aa5b40a66ef7489 2ed329da895148329aa5b40a66ef7489--a5449ae5914d42ea916d22c06536467c f4e6d679b4bd46c5a125040e6ea54b00 b9aae958305444d2993d96d05b08cc88 RX(iia_α₀₂) 0debcd7f6d504a2f9d088575b70d5dab--b9aae958305444d2993d96d05b08cc88 e92b0cadf30646d39718d0064339b6bb RY(iia_α₀₅) b9aae958305444d2993d96d05b08cc88--e92b0cadf30646d39718d0064339b6bb 33204ec68f224115bceb37886f2d0a6a e92b0cadf30646d39718d0064339b6bb--33204ec68f224115bceb37886f2d0a6a 6487ddb95af84fd5a27b5d176c9d6030 X 33204ec68f224115bceb37886f2d0a6a--6487ddb95af84fd5a27b5d176c9d6030 6487ddb95af84fd5a27b5d176c9d6030--2c63081013a54ec1a45c2b17b602e81c 628b1e7c3afa4fcca3bdce707bc54bb8 RX(iia_γ₀₂) 6487ddb95af84fd5a27b5d176c9d6030--628b1e7c3afa4fcca3bdce707bc54bb8 46d083c961a4416fbf95016b5f52fb30 X 628b1e7c3afa4fcca3bdce707bc54bb8--46d083c961a4416fbf95016b5f52fb30 46d083c961a4416fbf95016b5f52fb30--a9d067c36e784da1817f308862611d43 f06616c13a0c4314be3346836b60a028 46d083c961a4416fbf95016b5f52fb30--f06616c13a0c4314be3346836b60a028 b66abb50c1834b848ee719ce9d42ac9f RY(iia_β₀₅) f06616c13a0c4314be3346836b60a028--b66abb50c1834b848ee719ce9d42ac9f 81a052970de54136a9f8848b4e6c81aa RX(iia_β₀₂) b66abb50c1834b848ee719ce9d42ac9f--81a052970de54136a9f8848b4e6c81aa 5bb230f8184d40e3a98c191d49305fdc RX(iia_α₁₂) 81a052970de54136a9f8848b4e6c81aa--5bb230f8184d40e3a98c191d49305fdc 733b2e6f0ecc45d3afbe64943ff83df3 RY(iia_α₁₅) 5bb230f8184d40e3a98c191d49305fdc--733b2e6f0ecc45d3afbe64943ff83df3 01e116ee367e4fa3a9a53316d3dbc46b 733b2e6f0ecc45d3afbe64943ff83df3--01e116ee367e4fa3a9a53316d3dbc46b d2be39294c4546b19ed28c7bf5451e0a X 01e116ee367e4fa3a9a53316d3dbc46b--d2be39294c4546b19ed28c7bf5451e0a d2be39294c4546b19ed28c7bf5451e0a--7a3700735d1446dca373cc3dfd64902c 404904e3a9b34d1ea9c1ea84e279cfc7 RX(iia_γ₁₂) d2be39294c4546b19ed28c7bf5451e0a--404904e3a9b34d1ea9c1ea84e279cfc7 93270d18fd274afe8d7e9d74eefa6d77 X 404904e3a9b34d1ea9c1ea84e279cfc7--93270d18fd274afe8d7e9d74eefa6d77 93270d18fd274afe8d7e9d74eefa6d77--0ccf5f9db86141eba28cc74b1a4973fc cca7b96aa1a24fed893c75fe15f8b4f2 93270d18fd274afe8d7e9d74eefa6d77--cca7b96aa1a24fed893c75fe15f8b4f2 856cdb35b9d94b53b42a14b0f8c9ec4b RY(iia_β₁₅) cca7b96aa1a24fed893c75fe15f8b4f2--856cdb35b9d94b53b42a14b0f8c9ec4b 9b24cec1922540319f63e10f2910137e RX(iia_β₁₂) 856cdb35b9d94b53b42a14b0f8c9ec4b--9b24cec1922540319f63e10f2910137e 9b24cec1922540319f63e10f2910137e--f4e6d679b4bd46c5a125040e6ea54b00