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_e99cfbb1e7ba49939b3fbe49a8aef524
Constant Chebyshev FM
cluster_fd2c4703a4ea4f97860f4fcd2425d82a
Constant Fourier FM
d8228367d64346b3a6e9a720b4fc4234
0
4f5add0485824ce1bb2011ddfe61e34f
RX(phi)
d8228367d64346b3a6e9a720b4fc4234--4f5add0485824ce1bb2011ddfe61e34f
f0dd1145fe3c4931935a1aa9ec6dce3b
1
f1c163b0dc8147feaf94d91d4a9b35fa
RX(acos(phi))
4f5add0485824ce1bb2011ddfe61e34f--f1c163b0dc8147feaf94d91d4a9b35fa
4b44b57dad60491fb14b44dab83d9c31
f1c163b0dc8147feaf94d91d4a9b35fa--4b44b57dad60491fb14b44dab83d9c31
ef12a6eeb9854cf6bcb9e535dc6ef3c7
72bf9d92d4c04975836ba373c546bb55
RX(phi)
f0dd1145fe3c4931935a1aa9ec6dce3b--72bf9d92d4c04975836ba373c546bb55
f1014363872f45dfb222c9011bd0275e
2
8a7f6cd5790b40dda74930f8ed3dfd4d
RX(acos(phi))
72bf9d92d4c04975836ba373c546bb55--8a7f6cd5790b40dda74930f8ed3dfd4d
8a7f6cd5790b40dda74930f8ed3dfd4d--ef12a6eeb9854cf6bcb9e535dc6ef3c7
4668b2d9c3f54f41b6a64852d714b1ce
65bdbf0acfed4b3a805ed8461ceb5147
RX(phi)
f1014363872f45dfb222c9011bd0275e--65bdbf0acfed4b3a805ed8461ceb5147
dd4a250e4e164c5598405744354219a8
RX(acos(phi))
65bdbf0acfed4b3a805ed8461ceb5147--dd4a250e4e164c5598405744354219a8
dd4a250e4e164c5598405744354219a8--4668b2d9c3f54f41b6a64852d714b1ce
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_b1947099b7f341d28eba891b1c1fe982
Constant <function custom_fn at 0x7f2891ca5cf0> FM
cluster_49275e0cefa34fd3aa1c47a3a86fd378
Constant asin FM
57be726585dd4498bc4f8dcecdeb4708
0
ee256f52c56241e78ff91c14b2cf040d
RX(asin(phi))
57be726585dd4498bc4f8dcecdeb4708--ee256f52c56241e78ff91c14b2cf040d
ff1f0298b2744c60b8589ce65174847f
1
cec3f2f7a72e49bda42f803bc8e31b97
RX(phi**2 + asin(phi))
ee256f52c56241e78ff91c14b2cf040d--cec3f2f7a72e49bda42f803bc8e31b97
2a1561ed217d47b5a6f000b8a34183f7
cec3f2f7a72e49bda42f803bc8e31b97--2a1561ed217d47b5a6f000b8a34183f7
064b6efb17bb4ab3a3f12b5c29ce7a92
d2967a62cbfb4d53a52b04d73992e89f
RX(asin(phi))
ff1f0298b2744c60b8589ce65174847f--d2967a62cbfb4d53a52b04d73992e89f
af34eeba94864474b09d64b93896d8b8
2
182bc0cd29d247ef932ef2d57c6a12d2
RX(phi**2 + asin(phi))
d2967a62cbfb4d53a52b04d73992e89f--182bc0cd29d247ef932ef2d57c6a12d2
182bc0cd29d247ef932ef2d57c6a12d2--064b6efb17bb4ab3a3f12b5c29ce7a92
fb2bf1b9a93e4ea0afc87c14572593bf
7f5739108b204924bd3f016869ed0ac6
RX(asin(phi))
af34eeba94864474b09d64b93896d8b8--7f5739108b204924bd3f016869ed0ac6
2757382f53df4c618fc1cd716535ebda
RX(phi**2 + asin(phi))
7f5739108b204924bd3f016869ed0ac6--2757382f53df4c618fc1cd716535ebda
2757382f53df4c618fc1cd716535ebda--fb2bf1b9a93e4ea0afc87c14572593bf
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_9e2b177f8c984012955170282d5a96b1
Exponential Fourier FM
cluster_622633c86fda4855aa4b91f31a1f9658
Constant Fourier FM
cluster_3d58e3715bce410181d4bf18ff712519
Tower Fourier FM
d51a262fce3c400d91ad8dbe795e0ae6
0
fbf0f28ea23f4f018b54ec2a7a8958f2
RX(phi)
d51a262fce3c400d91ad8dbe795e0ae6--fbf0f28ea23f4f018b54ec2a7a8958f2
90873ac8073144b5b19a7439148c0a92
1
db237097e2be4ba0aa8c7fcb2069fccc
RX(1.0*phi)
fbf0f28ea23f4f018b54ec2a7a8958f2--db237097e2be4ba0aa8c7fcb2069fccc
f0f04dc659914bb39b1d7b2fecc9880d
RX(1.0*phi)
db237097e2be4ba0aa8c7fcb2069fccc--f0f04dc659914bb39b1d7b2fecc9880d
e68fcde3e70d44cb9927bfe98c03eb77
f0f04dc659914bb39b1d7b2fecc9880d--e68fcde3e70d44cb9927bfe98c03eb77
376ccdab666d4f66b8a7e2e3b1c0f101
85f0eed4b64c4650814c5950701c2aae
RX(phi)
90873ac8073144b5b19a7439148c0a92--85f0eed4b64c4650814c5950701c2aae
aacfeb2ed7624f07aa3bc80c5ddbb42e
2
50bc8eeb9ffd4209b4e0927094f6cad8
RX(2.0*phi)
85f0eed4b64c4650814c5950701c2aae--50bc8eeb9ffd4209b4e0927094f6cad8
f4b632cc7ddf4555a4f5b71d7d8bbd60
RX(2.0*phi)
50bc8eeb9ffd4209b4e0927094f6cad8--f4b632cc7ddf4555a4f5b71d7d8bbd60
f4b632cc7ddf4555a4f5b71d7d8bbd60--376ccdab666d4f66b8a7e2e3b1c0f101
c0b05c28bf4d4e6ab5d53ab4c67229ec
d53bc812590b42f0964eb08e902a6702
RX(phi)
aacfeb2ed7624f07aa3bc80c5ddbb42e--d53bc812590b42f0964eb08e902a6702
475820f0d3164512b48a661f755c3717
3
f173b89863d34d55aaa2cf618fabbda3
RX(3.0*phi)
d53bc812590b42f0964eb08e902a6702--f173b89863d34d55aaa2cf618fabbda3
1a8dce6b20384cae975bdc162ccfc123
RX(4.0*phi)
f173b89863d34d55aaa2cf618fabbda3--1a8dce6b20384cae975bdc162ccfc123
1a8dce6b20384cae975bdc162ccfc123--c0b05c28bf4d4e6ab5d53ab4c67229ec
1c7db2bca18b49e1ae6cf541103f7769
2b26f5d2390f4010bc38f539110ccb8e
RX(phi)
475820f0d3164512b48a661f755c3717--2b26f5d2390f4010bc38f539110ccb8e
d0d0d5e339f243bdbbc22df396a13e35
4
3ae1e82bf98045a39545e421fbe9ab09
RX(4.0*phi)
2b26f5d2390f4010bc38f539110ccb8e--3ae1e82bf98045a39545e421fbe9ab09
80db265a95c442a8804ee1241e945ddd
RX(8.0*phi)
3ae1e82bf98045a39545e421fbe9ab09--80db265a95c442a8804ee1241e945ddd
80db265a95c442a8804ee1241e945ddd--1c7db2bca18b49e1ae6cf541103f7769
6ec61e03599347f18c53f09243bcfd14
332745afc75c4ffa80370814d5ef428a
RX(phi)
d0d0d5e339f243bdbbc22df396a13e35--332745afc75c4ffa80370814d5ef428a
7141c4f18a944323b0683a0ea6dccb02
RX(5.0*phi)
332745afc75c4ffa80370814d5ef428a--7141c4f18a944323b0683a0ea6dccb02
6621979251224111b6d963d9d1a4ad75
RX(16.0*phi)
7141c4f18a944323b0683a0ea6dccb02--6621979251224111b6d963d9d1a4ad75
6621979251224111b6d963d9d1a4ad75--6ec61e03599347f18c53f09243bcfd14
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
f8740ed4c90240d3ac2fac9c8d14b2c1
0
2dac68a9d7e742d4b133ee8c6c68d7ea
RX(1.0*acos(phi))
f8740ed4c90240d3ac2fac9c8d14b2c1--2dac68a9d7e742d4b133ee8c6c68d7ea
3d8044a95abb48e4a8b64741e34e904a
1
aec4d3d091954a0c828da9a43f6e704b
2dac68a9d7e742d4b133ee8c6c68d7ea--aec4d3d091954a0c828da9a43f6e704b
823f7a9312f94f1aa31e08e651fbf0f9
27d9cd0ea0d44adfac40fa439a0d102c
RX(1.414*acos(phi))
3d8044a95abb48e4a8b64741e34e904a--27d9cd0ea0d44adfac40fa439a0d102c
7cf41a486d0f405389c7c09f4438efe3
2
27d9cd0ea0d44adfac40fa439a0d102c--823f7a9312f94f1aa31e08e651fbf0f9
6f174b29da654c5ab6e5021117165d7c
881c5f0c0b06469688d8ba3771e4ac49
RX(1.732*acos(phi))
7cf41a486d0f405389c7c09f4438efe3--881c5f0c0b06469688d8ba3771e4ac49
4f2479c6886949cdb71dc35542ac436c
3
881c5f0c0b06469688d8ba3771e4ac49--6f174b29da654c5ab6e5021117165d7c
54bd0a46e0ed475581b5af2927073dc4
0ed8f601626442f286f85be5305bed95
RX(2.0*acos(phi))
4f2479c6886949cdb71dc35542ac436c--0ed8f601626442f286f85be5305bed95
5df3567728974478bd848e7e56f771cf
4
0ed8f601626442f286f85be5305bed95--54bd0a46e0ed475581b5af2927073dc4
bd1124e0880b4ca796bf9ac1ff05ed7c
30047dbf3ef54aa68c38de3f6af2a2b8
RX(2.236*acos(phi))
5df3567728974478bd848e7e56f771cf--30047dbf3ef54aa68c38de3f6af2a2b8
30047dbf3ef54aa68c38de3f6af2a2b8--bd1124e0880b4ca796bf9ac1ff05ed7c
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
f3475d0f57244ea4b430bbb488e4e0fa
0
6dc1f4464a6948a6af3c2d9b50f14b48
RX(1.0*phi*w₀)
f3475d0f57244ea4b430bbb488e4e0fa--6dc1f4464a6948a6af3c2d9b50f14b48
66e14b38be504b10a345f9b5a5e35525
1
7c7d764c3af842458894440bee9db67a
6dc1f4464a6948a6af3c2d9b50f14b48--7c7d764c3af842458894440bee9db67a
feb9993b113e4140802c41ef37ab4452
77cdf747d748455c8d836bbf8a43aa04
RX(2.0*phi*w₁)
66e14b38be504b10a345f9b5a5e35525--77cdf747d748455c8d836bbf8a43aa04
3b37f652b70c420696feaa1eb612dc82
2
77cdf747d748455c8d836bbf8a43aa04--feb9993b113e4140802c41ef37ab4452
c11fbea3d1f44c50bab9bf7d966d396d
98daf8ae911b4c66b2610350b107b841
RX(4.0*phi*w₂)
3b37f652b70c420696feaa1eb612dc82--98daf8ae911b4c66b2610350b107b841
55fd05fe321149768fda753181b6af3f
3
98daf8ae911b4c66b2610350b107b841--c11fbea3d1f44c50bab9bf7d966d396d
86233a975c5e40ae9aadf39651f8c653
abaf9943a3e746ac9141e4d700fd6f18
RX(8.0*phi*w₃)
55fd05fe321149768fda753181b6af3f--abaf9943a3e746ac9141e4d700fd6f18
e3d81a6456c1456d88c82fb472cb8499
4
abaf9943a3e746ac9141e4d700fd6f18--86233a975c5e40ae9aadf39651f8c653
a7bc561dda1f46b1b06659e131225e1f
8d82f7311e8540769aaa2d60b2ce7db8
RX(16.0*phi*w₄)
e3d81a6456c1456d88c82fb472cb8499--8d82f7311e8540769aaa2d60b2ce7db8
8d82f7311e8540769aaa2d60b2ce7db8--a7bc561dda1f46b1b06659e131225e1f
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
f8b2e89ca5aa4ac0b8e3fb494fff71ea
0
a0b1c0d0e0764099a0730f1b412a788a
RY(80.0*acos(w₄*(0.667*x + 1.667)))
f8b2e89ca5aa4ac0b8e3fb494fff71ea--a0b1c0d0e0764099a0730f1b412a788a
81ca0f6e744c469f8cd3d1458b16974a
1
97fdf11a12b7425fa867b2449aa0f87a
a0b1c0d0e0764099a0730f1b412a788a--97fdf11a12b7425fa867b2449aa0f87a
e90895a8efc8463e91cbab1234738633
eaed4066e46243da86bada22c55a2415
RY(40.0*acos(w₃*(0.667*x + 1.667)))
81ca0f6e744c469f8cd3d1458b16974a--eaed4066e46243da86bada22c55a2415
511831a487b7453cbdcfcfa909ec90fd
2
eaed4066e46243da86bada22c55a2415--e90895a8efc8463e91cbab1234738633
735a41b578c246389dc8770eb6745d23
93a98e607a1044d0bb1c9a46844c6d05
RY(20.0*acos(w₂*(0.667*x + 1.667)))
511831a487b7453cbdcfcfa909ec90fd--93a98e607a1044d0bb1c9a46844c6d05
e0085e74fb4f4f69bad59835d9bf815d
3
93a98e607a1044d0bb1c9a46844c6d05--735a41b578c246389dc8770eb6745d23
7c6eccc762304e79b84aec108ddd5883
858aff6de34b45d39672ddb71943b582
RY(10.0*acos(w₁*(0.667*x + 1.667)))
e0085e74fb4f4f69bad59835d9bf815d--858aff6de34b45d39672ddb71943b582
1cbcc566afdd4a2b9f0184686502c2e0
4
858aff6de34b45d39672ddb71943b582--7c6eccc762304e79b84aec108ddd5883
9cdcc20ad6354da49b426dc9a0a40a30
b1ed84923f1f4d8d9d98d2d5bc5cc8ac
RY(5.0*acos(w₀*(0.667*x + 1.667)))
1cbcc566afdd4a2b9f0184686502c2e0--b1ed84923f1f4d8d9d98d2d5bc5cc8ac
b1ed84923f1f4d8d9d98d2d5bc5cc8ac--9cdcc20ad6354da49b426dc9a0a40a30
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
09e9b3c4058d4a20944f9617f2ff93f4
0
5b83230cd2f94340ae7562dd85c4e902
RX(theta₀)
09e9b3c4058d4a20944f9617f2ff93f4--5b83230cd2f94340ae7562dd85c4e902
82c66028f7ab42c39800c965222c6106
1
7976d2d8638b4a4ca85924e39c3732e2
RY(theta₃)
5b83230cd2f94340ae7562dd85c4e902--7976d2d8638b4a4ca85924e39c3732e2
f7a630068f704ffca57efb31d3a36868
RX(theta₆)
7976d2d8638b4a4ca85924e39c3732e2--f7a630068f704ffca57efb31d3a36868
c5d06e3775a54b4986379e9b5f3d3803
f7a630068f704ffca57efb31d3a36868--c5d06e3775a54b4986379e9b5f3d3803
a5193cb40c6a407ba9928ad35523cab8
c5d06e3775a54b4986379e9b5f3d3803--a5193cb40c6a407ba9928ad35523cab8
9af42abc7d054a9480df1cb9d81b6c85
RX(theta₉)
a5193cb40c6a407ba9928ad35523cab8--9af42abc7d054a9480df1cb9d81b6c85
30a94b54f6e6442a819d1608e201210a
RY(theta₁₂)
9af42abc7d054a9480df1cb9d81b6c85--30a94b54f6e6442a819d1608e201210a
a26f0a6d33aa473caf594c5d5d7da636
RX(theta₁₅)
30a94b54f6e6442a819d1608e201210a--a26f0a6d33aa473caf594c5d5d7da636
ab7ebd4e84344a7e953ca318697abe83
a26f0a6d33aa473caf594c5d5d7da636--ab7ebd4e84344a7e953ca318697abe83
bf23011f2ee047edab0c2648b5b810ed
ab7ebd4e84344a7e953ca318697abe83--bf23011f2ee047edab0c2648b5b810ed
daaaceca287e4152bee9beeaa9f4cb27
bf23011f2ee047edab0c2648b5b810ed--daaaceca287e4152bee9beeaa9f4cb27
41e45ced78924df7957dcda3ffa494b4
4a548635fadd49278a9fa7082bb4ceb0
RX(theta₁)
82c66028f7ab42c39800c965222c6106--4a548635fadd49278a9fa7082bb4ceb0
16dae5dc92c74c9d80269793284585c8
2
f214fe2786a9408d8e9178fc853d0e89
RY(theta₄)
4a548635fadd49278a9fa7082bb4ceb0--f214fe2786a9408d8e9178fc853d0e89
f72a849cd2b74cada27f46d7509ef2f1
RX(theta₇)
f214fe2786a9408d8e9178fc853d0e89--f72a849cd2b74cada27f46d7509ef2f1
448982b0321949ed93b53cc4a4534760
X
f72a849cd2b74cada27f46d7509ef2f1--448982b0321949ed93b53cc4a4534760
448982b0321949ed93b53cc4a4534760--c5d06e3775a54b4986379e9b5f3d3803
5c295a70f4924e3baf1a4d6e84568894
448982b0321949ed93b53cc4a4534760--5c295a70f4924e3baf1a4d6e84568894
2088a6970c864a12a52f04f525e0bdf9
RX(theta₁₀)
5c295a70f4924e3baf1a4d6e84568894--2088a6970c864a12a52f04f525e0bdf9
a5fb02a63f9b442cb4e0efc5c707c9c8
RY(theta₁₃)
2088a6970c864a12a52f04f525e0bdf9--a5fb02a63f9b442cb4e0efc5c707c9c8
6d19d95f7e464049980a1bb094f225af
RX(theta₁₆)
a5fb02a63f9b442cb4e0efc5c707c9c8--6d19d95f7e464049980a1bb094f225af
82760fbbf4d24182988472f9ff0b847a
X
6d19d95f7e464049980a1bb094f225af--82760fbbf4d24182988472f9ff0b847a
82760fbbf4d24182988472f9ff0b847a--ab7ebd4e84344a7e953ca318697abe83
67b46b16b7374524afa0b396fb13ca8c
82760fbbf4d24182988472f9ff0b847a--67b46b16b7374524afa0b396fb13ca8c
67b46b16b7374524afa0b396fb13ca8c--41e45ced78924df7957dcda3ffa494b4
43952195f3974c97ac515693748e8750
5b9c928a97e74b4b81f4b9dca726a040
RX(theta₂)
16dae5dc92c74c9d80269793284585c8--5b9c928a97e74b4b81f4b9dca726a040
e0c8d7534ab24ab69fa0fff9c22434a6
RY(theta₅)
5b9c928a97e74b4b81f4b9dca726a040--e0c8d7534ab24ab69fa0fff9c22434a6
63fa74509f654f589b757c9c957c8322
RX(theta₈)
e0c8d7534ab24ab69fa0fff9c22434a6--63fa74509f654f589b757c9c957c8322
9785f62179c840a7a8dad4df1c3a0140
63fa74509f654f589b757c9c957c8322--9785f62179c840a7a8dad4df1c3a0140
e1232424c0a24608ae8c8c1f72b5a59a
X
9785f62179c840a7a8dad4df1c3a0140--e1232424c0a24608ae8c8c1f72b5a59a
e1232424c0a24608ae8c8c1f72b5a59a--5c295a70f4924e3baf1a4d6e84568894
031c744d3e1e4331b4d8c2f985c9bbc4
RX(theta₁₁)
e1232424c0a24608ae8c8c1f72b5a59a--031c744d3e1e4331b4d8c2f985c9bbc4
fc67fefa55bb4ce48d4d5b08ce9f488d
RY(theta₁₄)
031c744d3e1e4331b4d8c2f985c9bbc4--fc67fefa55bb4ce48d4d5b08ce9f488d
0663b80143b44fc8bce92c90cdbd58ee
RX(theta₁₇)
fc67fefa55bb4ce48d4d5b08ce9f488d--0663b80143b44fc8bce92c90cdbd58ee
8fcba17a7f564331b2e54b5065108487
0663b80143b44fc8bce92c90cdbd58ee--8fcba17a7f564331b2e54b5065108487
fc9b31e47005430997382c02f4250d12
X
8fcba17a7f564331b2e54b5065108487--fc9b31e47005430997382c02f4250d12
fc9b31e47005430997382c02f4250d12--67b46b16b7374524afa0b396fb13ca8c
fc9b31e47005430997382c02f4250d12--43952195f3974c97ac515693748e8750
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
23d0b51b295e4a0d8153db81f472e290
0
0139284209b441d88a549919920b9168
RX(phi₀)
23d0b51b295e4a0d8153db81f472e290--0139284209b441d88a549919920b9168
ab934d25cd0e4569b17702dce235d3df
1
ef1218912257482e8b0a727b1b8a36b4
RY(phi₃)
0139284209b441d88a549919920b9168--ef1218912257482e8b0a727b1b8a36b4
6b534c3016d84ce99ccd7256089600db
RX(phi₆)
ef1218912257482e8b0a727b1b8a36b4--6b534c3016d84ce99ccd7256089600db
d796c5f90d6c47b4ba7f7eda5b6fd6e5
6b534c3016d84ce99ccd7256089600db--d796c5f90d6c47b4ba7f7eda5b6fd6e5
b868b457e5fc4c328f8727b011728229
d796c5f90d6c47b4ba7f7eda5b6fd6e5--b868b457e5fc4c328f8727b011728229
537d91ae51c146d8b37e29e95310cbf4
RX(phi₉)
b868b457e5fc4c328f8727b011728229--537d91ae51c146d8b37e29e95310cbf4
13e4b5b271294eb1b713d393cea3c41d
RY(phi₁₂)
537d91ae51c146d8b37e29e95310cbf4--13e4b5b271294eb1b713d393cea3c41d
3cf6c330a40f446d95c13468998469df
RX(phi₁₅)
13e4b5b271294eb1b713d393cea3c41d--3cf6c330a40f446d95c13468998469df
2e36b8f6788d4cc3bf62d81762ef796a
3cf6c330a40f446d95c13468998469df--2e36b8f6788d4cc3bf62d81762ef796a
34d583296fce4f75ad59ea1322c46f9e
2e36b8f6788d4cc3bf62d81762ef796a--34d583296fce4f75ad59ea1322c46f9e
bb47945c363a45e4bf1fc2fcb12aeb29
34d583296fce4f75ad59ea1322c46f9e--bb47945c363a45e4bf1fc2fcb12aeb29
c7cdb6c2a27d4276851a182441b8f844
756ef61f0ee74aecac33ea3c6e413fa7
RX(phi₁)
ab934d25cd0e4569b17702dce235d3df--756ef61f0ee74aecac33ea3c6e413fa7
f8008124b1114e3599abcd7d81c5033f
2
6b57f44dcaed4195ace26b8be167a0d5
RY(phi₄)
756ef61f0ee74aecac33ea3c6e413fa7--6b57f44dcaed4195ace26b8be167a0d5
0312c5c821cb46a8b268e149e466ff84
RX(phi₇)
6b57f44dcaed4195ace26b8be167a0d5--0312c5c821cb46a8b268e149e466ff84
6175f9a0b24040b699b07ffff49edbf6
PHASE(phi_ent₀)
0312c5c821cb46a8b268e149e466ff84--6175f9a0b24040b699b07ffff49edbf6
6175f9a0b24040b699b07ffff49edbf6--d796c5f90d6c47b4ba7f7eda5b6fd6e5
7d6eef94f17c48bc826646dfd5015d53
6175f9a0b24040b699b07ffff49edbf6--7d6eef94f17c48bc826646dfd5015d53
0ae22777a9a54e66aaaf15c16bd97862
RX(phi₁₀)
7d6eef94f17c48bc826646dfd5015d53--0ae22777a9a54e66aaaf15c16bd97862
1d6dbab7cdc6471e94ecefda1db01812
RY(phi₁₃)
0ae22777a9a54e66aaaf15c16bd97862--1d6dbab7cdc6471e94ecefda1db01812
048bbe061634474daa2b63291cfdcf74
RX(phi₁₆)
1d6dbab7cdc6471e94ecefda1db01812--048bbe061634474daa2b63291cfdcf74
29b5db2549f54451a002e348ab6e423d
PHASE(phi_ent₂)
048bbe061634474daa2b63291cfdcf74--29b5db2549f54451a002e348ab6e423d
29b5db2549f54451a002e348ab6e423d--2e36b8f6788d4cc3bf62d81762ef796a
f9f341e41db74a548009dc06a7027ab1
29b5db2549f54451a002e348ab6e423d--f9f341e41db74a548009dc06a7027ab1
f9f341e41db74a548009dc06a7027ab1--c7cdb6c2a27d4276851a182441b8f844
c1a2ba67a639452c8f4e7f99fb9c2da1
13eb32ec438847a3ada5e74cc78185f7
RX(phi₂)
f8008124b1114e3599abcd7d81c5033f--13eb32ec438847a3ada5e74cc78185f7
26f4f64a70334774a3248254655faf8d
RY(phi₅)
13eb32ec438847a3ada5e74cc78185f7--26f4f64a70334774a3248254655faf8d
45cc353b706a44f2b5c7bb673cb2c76f
RX(phi₈)
26f4f64a70334774a3248254655faf8d--45cc353b706a44f2b5c7bb673cb2c76f
3aa4f6d3444747e8a71c1948fa208fa7
45cc353b706a44f2b5c7bb673cb2c76f--3aa4f6d3444747e8a71c1948fa208fa7
1754f64a15cd4b1c8229d223a698aa9a
PHASE(phi_ent₁)
3aa4f6d3444747e8a71c1948fa208fa7--1754f64a15cd4b1c8229d223a698aa9a
1754f64a15cd4b1c8229d223a698aa9a--7d6eef94f17c48bc826646dfd5015d53
b4decf5e7e624c47a2641c8c89c86f62
RX(phi₁₁)
1754f64a15cd4b1c8229d223a698aa9a--b4decf5e7e624c47a2641c8c89c86f62
4809da6b77d44073929b6c47ccceb8c6
RY(phi₁₄)
b4decf5e7e624c47a2641c8c89c86f62--4809da6b77d44073929b6c47ccceb8c6
c150e8b06c5f481892376fad8c422d4a
RX(phi₁₇)
4809da6b77d44073929b6c47ccceb8c6--c150e8b06c5f481892376fad8c422d4a
23b4bbc6edf24ce7b71d1a5093218d5a
c150e8b06c5f481892376fad8c422d4a--23b4bbc6edf24ce7b71d1a5093218d5a
4d679e187dfd408ea4c8ab136ba70d0a
PHASE(phi_ent₃)
23b4bbc6edf24ce7b71d1a5093218d5a--4d679e187dfd408ea4c8ab136ba70d0a
4d679e187dfd408ea4c8ab136ba70d0a--f9f341e41db74a548009dc06a7027ab1
4d679e187dfd408ea4c8ab136ba70d0a--c1a2ba67a639452c8f4e7f99fb9c2da1
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_a1aa4524313b4c15a713504d7b563202
cluster_b652acd7864c46f0b09c73c09ac9d681
512a2f32d49b4787a0566424ab22fdd1
0
6634cf27d4da4f29a2dc3331ea7c0694
RX(theta₀)
512a2f32d49b4787a0566424ab22fdd1--6634cf27d4da4f29a2dc3331ea7c0694
3866eaea4e044b3490803c0f3fa49915
1
8ddece8b63ff49b0ba81ef9b3fe4111d
RY(theta₃)
6634cf27d4da4f29a2dc3331ea7c0694--8ddece8b63ff49b0ba81ef9b3fe4111d
225c55cced584eceb9b4815fab267a9d
RX(theta₆)
8ddece8b63ff49b0ba81ef9b3fe4111d--225c55cced584eceb9b4815fab267a9d
ddd5bf9ecb15409594acc6a55611f3f8
HamEvo
225c55cced584eceb9b4815fab267a9d--ddd5bf9ecb15409594acc6a55611f3f8
fbca7c0dfe1f45dca82b8a950de4c050
RX(theta₉)
ddd5bf9ecb15409594acc6a55611f3f8--fbca7c0dfe1f45dca82b8a950de4c050
e405e0fbcc11428d87c6219926e207b7
RY(theta₁₂)
fbca7c0dfe1f45dca82b8a950de4c050--e405e0fbcc11428d87c6219926e207b7
f18e044438fb44bb8f86ef0df654ab6c
RX(theta₁₅)
e405e0fbcc11428d87c6219926e207b7--f18e044438fb44bb8f86ef0df654ab6c
10d8eb87f37d4462bd85c98654fd6185
HamEvo
f18e044438fb44bb8f86ef0df654ab6c--10d8eb87f37d4462bd85c98654fd6185
bc5c452a19144c7494e9d8e64b74071c
10d8eb87f37d4462bd85c98654fd6185--bc5c452a19144c7494e9d8e64b74071c
2a12018b085345ac91139cac1fbdc8fe
3a13cfada5e54dfc8dd93403adf503a9
RX(theta₁)
3866eaea4e044b3490803c0f3fa49915--3a13cfada5e54dfc8dd93403adf503a9
244391afc5104401a8cb9f27e55a4143
2
0703633fd9104acb844d54b9fb1b22d1
RY(theta₄)
3a13cfada5e54dfc8dd93403adf503a9--0703633fd9104acb844d54b9fb1b22d1
21777e5c32714535b57bf031138ab75a
RX(theta₇)
0703633fd9104acb844d54b9fb1b22d1--21777e5c32714535b57bf031138ab75a
3ab6f69287c24237b039f905fdd59a6e
t = theta_t₀
21777e5c32714535b57bf031138ab75a--3ab6f69287c24237b039f905fdd59a6e
f48ee952a2e04085aa9698d397e16973
RX(theta₁₀)
3ab6f69287c24237b039f905fdd59a6e--f48ee952a2e04085aa9698d397e16973
9f41f8e94f4c4fc59880a0906e5fac53
RY(theta₁₃)
f48ee952a2e04085aa9698d397e16973--9f41f8e94f4c4fc59880a0906e5fac53
2217199975fa42969fdaab5a4315bfd4
RX(theta₁₆)
9f41f8e94f4c4fc59880a0906e5fac53--2217199975fa42969fdaab5a4315bfd4
b21bddbf54324a7392468f29110b32d7
t = theta_t₁
2217199975fa42969fdaab5a4315bfd4--b21bddbf54324a7392468f29110b32d7
b21bddbf54324a7392468f29110b32d7--2a12018b085345ac91139cac1fbdc8fe
94035f97537846098fae2f4439d0a585
f5b238a047884c18a3698dd8eaffa5af
RX(theta₂)
244391afc5104401a8cb9f27e55a4143--f5b238a047884c18a3698dd8eaffa5af
3b88abc7e7fd4fe6ba19605884b620af
RY(theta₅)
f5b238a047884c18a3698dd8eaffa5af--3b88abc7e7fd4fe6ba19605884b620af
4a6799ef39124bcc8d64bcb9d814de74
RX(theta₈)
3b88abc7e7fd4fe6ba19605884b620af--4a6799ef39124bcc8d64bcb9d814de74
c2f63daf43334e6687f4686b06bde8f7
4a6799ef39124bcc8d64bcb9d814de74--c2f63daf43334e6687f4686b06bde8f7
d301354d2c854fdbafa9b09994073d22
RX(theta₁₁)
c2f63daf43334e6687f4686b06bde8f7--d301354d2c854fdbafa9b09994073d22
a213f8b89fbb4be39e48a82d901d4493
RY(theta₁₄)
d301354d2c854fdbafa9b09994073d22--a213f8b89fbb4be39e48a82d901d4493
ddbbbf03393d4b7398d5f13a598c483c
RX(theta₁₇)
a213f8b89fbb4be39e48a82d901d4493--ddbbbf03393d4b7398d5f13a598c483c
41313824cd9d4f45b54115248c5e5281
ddbbbf03393d4b7398d5f13a598c483c--41313824cd9d4f45b54115248c5e5281
41313824cd9d4f45b54115248c5e5281--94035f97537846098fae2f4439d0a585
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_a7359035316446969672aec5f4fdb33e
cluster_769db03d5c284986bb9b3e67f0668480
7c654b95e7a44bc5a7609e44332fb6b9
0
29d195d290f74759a630b731dca5b08c
RX(theta₀)
7c654b95e7a44bc5a7609e44332fb6b9--29d195d290f74759a630b731dca5b08c
3b1d879713a04e449d9cbea097cfce63
1
714c5bd991ae46efaf39d0466702f6a5
RY(theta₆)
29d195d290f74759a630b731dca5b08c--714c5bd991ae46efaf39d0466702f6a5
d72a5355d524491f80572298b63a2987
RX(theta₁₂)
714c5bd991ae46efaf39d0466702f6a5--d72a5355d524491f80572298b63a2987
f962bf8cc1c941d78dd1c0af145d2728
d72a5355d524491f80572298b63a2987--f962bf8cc1c941d78dd1c0af145d2728
9cf0f359063f48428f0e5a3d9d9a6246
RX(theta₁₈)
f962bf8cc1c941d78dd1c0af145d2728--9cf0f359063f48428f0e5a3d9d9a6246
437ad4219c4c42a48b3c2f1f5e62abef
RY(theta₂₄)
9cf0f359063f48428f0e5a3d9d9a6246--437ad4219c4c42a48b3c2f1f5e62abef
5ae8d12407934e189c303780655a508f
RX(theta₃₀)
437ad4219c4c42a48b3c2f1f5e62abef--5ae8d12407934e189c303780655a508f
8b7c8f0972724fb79bb0977e9228c033
5ae8d12407934e189c303780655a508f--8b7c8f0972724fb79bb0977e9228c033
931d7102838c4626b827713c742bb667
8b7c8f0972724fb79bb0977e9228c033--931d7102838c4626b827713c742bb667
326c1197911f47c4bdb10fa5721c1c33
1abf2359d05f42a8960336941330f0a3
RX(theta₁)
3b1d879713a04e449d9cbea097cfce63--1abf2359d05f42a8960336941330f0a3
b191080293f04fa386b3db46a7011d9f
2
e3682770dccd42db8736df420b97ac27
RY(theta₇)
1abf2359d05f42a8960336941330f0a3--e3682770dccd42db8736df420b97ac27
5df80c1ce53546d28c71c925d095e795
RX(theta₁₃)
e3682770dccd42db8736df420b97ac27--5df80c1ce53546d28c71c925d095e795
d13c841ebcbb40728e203c7a6b4c9e43
5df80c1ce53546d28c71c925d095e795--d13c841ebcbb40728e203c7a6b4c9e43
e236c1650a104067a29ec8a1b97079ab
RX(theta₁₉)
d13c841ebcbb40728e203c7a6b4c9e43--e236c1650a104067a29ec8a1b97079ab
80af407710be46bc9a91ccd36b8678bf
RY(theta₂₅)
e236c1650a104067a29ec8a1b97079ab--80af407710be46bc9a91ccd36b8678bf
cbe41bd8b55d42568c431ceb17b794e7
RX(theta₃₁)
80af407710be46bc9a91ccd36b8678bf--cbe41bd8b55d42568c431ceb17b794e7
5b2b444bfcca4dddaba68b70360cf245
cbe41bd8b55d42568c431ceb17b794e7--5b2b444bfcca4dddaba68b70360cf245
5b2b444bfcca4dddaba68b70360cf245--326c1197911f47c4bdb10fa5721c1c33
96ac2ba84a5e4df6ae407b4600180912
8e772e6c755d4a09bc2f20b697a09480
RX(theta₂)
b191080293f04fa386b3db46a7011d9f--8e772e6c755d4a09bc2f20b697a09480
e12da413264f4bac9b636187dc2980de
3
c80899d3866e47b1b521c6a349e7aabb
RY(theta₈)
8e772e6c755d4a09bc2f20b697a09480--c80899d3866e47b1b521c6a349e7aabb
40cac518af48493bb9c454751d576be0
RX(theta₁₄)
c80899d3866e47b1b521c6a349e7aabb--40cac518af48493bb9c454751d576be0
97231fbe1b8349ea93a2762581e4e720
HamEvo
40cac518af48493bb9c454751d576be0--97231fbe1b8349ea93a2762581e4e720
f0af51aabc12498ba3ac0328c9a03813
RX(theta₂₀)
97231fbe1b8349ea93a2762581e4e720--f0af51aabc12498ba3ac0328c9a03813
cbe4d8eb29824149946dfbf9047897ba
RY(theta₂₆)
f0af51aabc12498ba3ac0328c9a03813--cbe4d8eb29824149946dfbf9047897ba
ecc7b4db65aa42eb88e26e1e16db04f4
RX(theta₃₂)
cbe4d8eb29824149946dfbf9047897ba--ecc7b4db65aa42eb88e26e1e16db04f4
dc9d536150b847ad964f9cac0edade1a
HamEvo
ecc7b4db65aa42eb88e26e1e16db04f4--dc9d536150b847ad964f9cac0edade1a
dc9d536150b847ad964f9cac0edade1a--96ac2ba84a5e4df6ae407b4600180912
38f818dce1384d4584882d1c91e2a84e
1ac59a3c0d814433a53394dd423490f2
RX(theta₃)
e12da413264f4bac9b636187dc2980de--1ac59a3c0d814433a53394dd423490f2
bffbd7b506b1402eb99f67f31cbf5b69
4
5781f92b943c45fcaad2c944a4885886
RY(theta₉)
1ac59a3c0d814433a53394dd423490f2--5781f92b943c45fcaad2c944a4885886
28842896f44549dba2ffa27ad271da9b
RX(theta₁₅)
5781f92b943c45fcaad2c944a4885886--28842896f44549dba2ffa27ad271da9b
8ed586b241db4be093f75d70afa00984
t = theta_t₀
28842896f44549dba2ffa27ad271da9b--8ed586b241db4be093f75d70afa00984
840ce32bdb4643089f50b8a58016c7c5
RX(theta₂₁)
8ed586b241db4be093f75d70afa00984--840ce32bdb4643089f50b8a58016c7c5
8e63a36660d14857a7a4cf9fc9cb8c69
RY(theta₂₇)
840ce32bdb4643089f50b8a58016c7c5--8e63a36660d14857a7a4cf9fc9cb8c69
04660dbe150742499f4ec46b26e87875
RX(theta₃₃)
8e63a36660d14857a7a4cf9fc9cb8c69--04660dbe150742499f4ec46b26e87875
ec913a2646f54884bd27da76a77fd528
t = theta_t₁
04660dbe150742499f4ec46b26e87875--ec913a2646f54884bd27da76a77fd528
ec913a2646f54884bd27da76a77fd528--38f818dce1384d4584882d1c91e2a84e
beb6eca016a8459984c5a7b598fe5632
c30f63fd317246e4aa4f8a61ccecab09
RX(theta₄)
bffbd7b506b1402eb99f67f31cbf5b69--c30f63fd317246e4aa4f8a61ccecab09
c9dabe7ad5ab4f15aec0e3a9fc1e1a4a
5
5b604e3889094703b8752dece9272a71
RY(theta₁₀)
c30f63fd317246e4aa4f8a61ccecab09--5b604e3889094703b8752dece9272a71
5727cfffbc5f4b5784d3a1f889274ef5
RX(theta₁₆)
5b604e3889094703b8752dece9272a71--5727cfffbc5f4b5784d3a1f889274ef5
e8654e947a3248138495791df6a0002e
5727cfffbc5f4b5784d3a1f889274ef5--e8654e947a3248138495791df6a0002e
b3265b7b4d524d78bef2046073d45945
RX(theta₂₂)
e8654e947a3248138495791df6a0002e--b3265b7b4d524d78bef2046073d45945
b881a2ee12464110b066a331920b2d28
RY(theta₂₈)
b3265b7b4d524d78bef2046073d45945--b881a2ee12464110b066a331920b2d28
b0c3e790246e4be7b16b58a590d69c64
RX(theta₃₄)
b881a2ee12464110b066a331920b2d28--b0c3e790246e4be7b16b58a590d69c64
e63951e844534538bf25bd8a82bd983b
b0c3e790246e4be7b16b58a590d69c64--e63951e844534538bf25bd8a82bd983b
e63951e844534538bf25bd8a82bd983b--beb6eca016a8459984c5a7b598fe5632
0dda158beb9c45dba67041c5e7faa8e2
d074e1504a1140bcb0fe5fec46643cb2
RX(theta₅)
c9dabe7ad5ab4f15aec0e3a9fc1e1a4a--d074e1504a1140bcb0fe5fec46643cb2
b63708bcc14e4dd9bc00dcd741f330ba
RY(theta₁₁)
d074e1504a1140bcb0fe5fec46643cb2--b63708bcc14e4dd9bc00dcd741f330ba
d1121918c4ec4a07aa4dde54a40cd378
RX(theta₁₇)
b63708bcc14e4dd9bc00dcd741f330ba--d1121918c4ec4a07aa4dde54a40cd378
b225f264c0244586a4ef71139ec6933c
d1121918c4ec4a07aa4dde54a40cd378--b225f264c0244586a4ef71139ec6933c
af2c19af1ed24b09b65b6e4ce80405e2
RX(theta₂₃)
b225f264c0244586a4ef71139ec6933c--af2c19af1ed24b09b65b6e4ce80405e2
633e782adc104cfea1223a491db7364c
RY(theta₂₉)
af2c19af1ed24b09b65b6e4ce80405e2--633e782adc104cfea1223a491db7364c
295565eaf5574aaab15ce81718167987
RX(theta₃₅)
633e782adc104cfea1223a491db7364c--295565eaf5574aaab15ce81718167987
c9415a9c6ca94c2990ef9166021116c3
295565eaf5574aaab15ce81718167987--c9415a9c6ca94c2990ef9166021116c3
c9415a9c6ca94c2990ef9166021116c3--0dda158beb9c45dba67041c5e7faa8e2
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 QNN
s 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_5d5229d5a7054b8f9cbed4482bc5cc08
BPMA-1
cluster_de50c7d315cb45a29aaeb5e55008cdd2
BPMA-0
c6103c3955934980bf8509067b66807e
0
e3befcf4dc5d4fb099d44f7b63515b2b
RX(iia_α₀₀)
c6103c3955934980bf8509067b66807e--e3befcf4dc5d4fb099d44f7b63515b2b
c79ea8d9a7704a0b8e909ef1a99c23de
1
b6e06aad1f86495380d7cc71e5fa4f8c
RY(iia_α₀₃)
e3befcf4dc5d4fb099d44f7b63515b2b--b6e06aad1f86495380d7cc71e5fa4f8c
f18ac30f20cc41f18a7eea33bc551363
b6e06aad1f86495380d7cc71e5fa4f8c--f18ac30f20cc41f18a7eea33bc551363
7a312b49c55e4d85b0c02131f90eaecb
f18ac30f20cc41f18a7eea33bc551363--7a312b49c55e4d85b0c02131f90eaecb
e550367e706d42e081cb8fa04d206ab9
RX(iia_γ₀₀)
7a312b49c55e4d85b0c02131f90eaecb--e550367e706d42e081cb8fa04d206ab9
576ddae6fc454663bdb9f8d466a03e77
e550367e706d42e081cb8fa04d206ab9--576ddae6fc454663bdb9f8d466a03e77
697530d1899444aba2c2f02be8b98e48
576ddae6fc454663bdb9f8d466a03e77--697530d1899444aba2c2f02be8b98e48
013f62c715fc4e90915ffdf430aad757
RY(iia_β₀₃)
697530d1899444aba2c2f02be8b98e48--013f62c715fc4e90915ffdf430aad757
67701c6e724846a3b62d13c6e045dd52
RX(iia_β₀₀)
013f62c715fc4e90915ffdf430aad757--67701c6e724846a3b62d13c6e045dd52
deb4121b231f40a6ade13e57940e944c
RX(iia_α₁₀)
67701c6e724846a3b62d13c6e045dd52--deb4121b231f40a6ade13e57940e944c
77d3ca54d5974fe9926ba74d8ed850d7
RY(iia_α₁₃)
deb4121b231f40a6ade13e57940e944c--77d3ca54d5974fe9926ba74d8ed850d7
48d4467683504edb97fb295461ccee47
77d3ca54d5974fe9926ba74d8ed850d7--48d4467683504edb97fb295461ccee47
c7a948d4ae3a48f7b0ba109ff39d195e
48d4467683504edb97fb295461ccee47--c7a948d4ae3a48f7b0ba109ff39d195e
eb04bb0e0ba645a48305eaaa22e1137d
RX(iia_γ₁₀)
c7a948d4ae3a48f7b0ba109ff39d195e--eb04bb0e0ba645a48305eaaa22e1137d
1480a6e9eb45481084e4e5bc0158be25
eb04bb0e0ba645a48305eaaa22e1137d--1480a6e9eb45481084e4e5bc0158be25
c16f0bd0afdc4d218d637043bf6d1b70
1480a6e9eb45481084e4e5bc0158be25--c16f0bd0afdc4d218d637043bf6d1b70
c3c3f3c5b63e4b95860f9857dd2d2bd2
RY(iia_β₁₃)
c16f0bd0afdc4d218d637043bf6d1b70--c3c3f3c5b63e4b95860f9857dd2d2bd2
49174e5ec55d4c1c99b3c465c92fa061
RX(iia_β₁₀)
c3c3f3c5b63e4b95860f9857dd2d2bd2--49174e5ec55d4c1c99b3c465c92fa061
ba45063f31b84aa587f60606142999ec
49174e5ec55d4c1c99b3c465c92fa061--ba45063f31b84aa587f60606142999ec
f9b44a47177042edb97a3ce77b6ca1df
17fc29afa09846c4b90cbf345be2dff6
RX(iia_α₀₁)
c79ea8d9a7704a0b8e909ef1a99c23de--17fc29afa09846c4b90cbf345be2dff6
dc6992ac0e9c4a80b40c751c89b9261b
2
cd23bd6561fc4274816a4c169f05c7ec
RY(iia_α₀₄)
17fc29afa09846c4b90cbf345be2dff6--cd23bd6561fc4274816a4c169f05c7ec
3ba0ac9cdea7487baf2865e2ea937a90
X
cd23bd6561fc4274816a4c169f05c7ec--3ba0ac9cdea7487baf2865e2ea937a90
3ba0ac9cdea7487baf2865e2ea937a90--f18ac30f20cc41f18a7eea33bc551363
1ebacb8551ec4270b4ac48f39d84db97
3ba0ac9cdea7487baf2865e2ea937a90--1ebacb8551ec4270b4ac48f39d84db97
bd7b75c09f8347d3b9d9376882e87d88
RX(iia_γ₀₁)
1ebacb8551ec4270b4ac48f39d84db97--bd7b75c09f8347d3b9d9376882e87d88
7033d8f203be4047b04e3ffd9cb3ba05
bd7b75c09f8347d3b9d9376882e87d88--7033d8f203be4047b04e3ffd9cb3ba05
a800a41ec8d5449e9ae7691d011814d9
X
7033d8f203be4047b04e3ffd9cb3ba05--a800a41ec8d5449e9ae7691d011814d9
a800a41ec8d5449e9ae7691d011814d9--697530d1899444aba2c2f02be8b98e48
49150f020f3f45e89310fb41770f84c6
RY(iia_β₀₄)
a800a41ec8d5449e9ae7691d011814d9--49150f020f3f45e89310fb41770f84c6
a32ba6c19ce94d0189663f57c676daae
RX(iia_β₀₁)
49150f020f3f45e89310fb41770f84c6--a32ba6c19ce94d0189663f57c676daae
7f36b203dc3b4156b1886d1eccbd7ef9
RX(iia_α₁₁)
a32ba6c19ce94d0189663f57c676daae--7f36b203dc3b4156b1886d1eccbd7ef9
91e83ea6d3f6459c824fd70bd13f7d4b
RY(iia_α₁₄)
7f36b203dc3b4156b1886d1eccbd7ef9--91e83ea6d3f6459c824fd70bd13f7d4b
f5a3bfc4060d4290849dbf8dbebf9492
X
91e83ea6d3f6459c824fd70bd13f7d4b--f5a3bfc4060d4290849dbf8dbebf9492
f5a3bfc4060d4290849dbf8dbebf9492--48d4467683504edb97fb295461ccee47
f18accacfeae435fa297db9f6b354c1f
f5a3bfc4060d4290849dbf8dbebf9492--f18accacfeae435fa297db9f6b354c1f
9e29ca6014c74a0ca389b6b105447b2d
RX(iia_γ₁₁)
f18accacfeae435fa297db9f6b354c1f--9e29ca6014c74a0ca389b6b105447b2d
591a98af7429436289ff4eed63066df9
9e29ca6014c74a0ca389b6b105447b2d--591a98af7429436289ff4eed63066df9
df7ad654a69246119a68ace9b24e65e2
X
591a98af7429436289ff4eed63066df9--df7ad654a69246119a68ace9b24e65e2
df7ad654a69246119a68ace9b24e65e2--c16f0bd0afdc4d218d637043bf6d1b70
87f37d8c04c44757be55aa052a3d3cbc
RY(iia_β₁₄)
df7ad654a69246119a68ace9b24e65e2--87f37d8c04c44757be55aa052a3d3cbc
ea1f0bb83efd427ebd0a3bdb358c2d74
RX(iia_β₁₁)
87f37d8c04c44757be55aa052a3d3cbc--ea1f0bb83efd427ebd0a3bdb358c2d74
ea1f0bb83efd427ebd0a3bdb358c2d74--f9b44a47177042edb97a3ce77b6ca1df
134a37f999a4487c9e11e8ce4231d541
9d937e5ba39b4598b6500ce7d2d8934a
RX(iia_α₀₂)
dc6992ac0e9c4a80b40c751c89b9261b--9d937e5ba39b4598b6500ce7d2d8934a
73f7cecbca834242a062419b58ce2b9c
RY(iia_α₀₅)
9d937e5ba39b4598b6500ce7d2d8934a--73f7cecbca834242a062419b58ce2b9c
811b36d619e24238afa0111f425d07f1
73f7cecbca834242a062419b58ce2b9c--811b36d619e24238afa0111f425d07f1
4b6eb9d5969d4c35a0e21ba55ee285b0
X
811b36d619e24238afa0111f425d07f1--4b6eb9d5969d4c35a0e21ba55ee285b0
4b6eb9d5969d4c35a0e21ba55ee285b0--1ebacb8551ec4270b4ac48f39d84db97
b115013c24b94d6f9bc9bbbf20196bc0
RX(iia_γ₀₂)
4b6eb9d5969d4c35a0e21ba55ee285b0--b115013c24b94d6f9bc9bbbf20196bc0
4fc007e2772c43f8b71b68def36ce087
X
b115013c24b94d6f9bc9bbbf20196bc0--4fc007e2772c43f8b71b68def36ce087
4fc007e2772c43f8b71b68def36ce087--7033d8f203be4047b04e3ffd9cb3ba05
a8c7f2522fd54d24ae29a1d5ffdb9318
4fc007e2772c43f8b71b68def36ce087--a8c7f2522fd54d24ae29a1d5ffdb9318
8d18c965b54f4d4485e05722bdd7831c
RY(iia_β₀₅)
a8c7f2522fd54d24ae29a1d5ffdb9318--8d18c965b54f4d4485e05722bdd7831c
58ddbd5b8f734f33b7dee2a31853e08a
RX(iia_β₀₂)
8d18c965b54f4d4485e05722bdd7831c--58ddbd5b8f734f33b7dee2a31853e08a
01aff62ce63f49569b63a3dc25ebf501
RX(iia_α₁₂)
58ddbd5b8f734f33b7dee2a31853e08a--01aff62ce63f49569b63a3dc25ebf501
49eb240d2965465191cf0513b12c8036
RY(iia_α₁₅)
01aff62ce63f49569b63a3dc25ebf501--49eb240d2965465191cf0513b12c8036
d695e5b1fa8c4b6aae27c9dde9da9432
49eb240d2965465191cf0513b12c8036--d695e5b1fa8c4b6aae27c9dde9da9432
6cadf8662c9a4e91a75d99c8048f461b
X
d695e5b1fa8c4b6aae27c9dde9da9432--6cadf8662c9a4e91a75d99c8048f461b
6cadf8662c9a4e91a75d99c8048f461b--f18accacfeae435fa297db9f6b354c1f
abe1165ac3c44684b7259dd5c2666047
RX(iia_γ₁₂)
6cadf8662c9a4e91a75d99c8048f461b--abe1165ac3c44684b7259dd5c2666047
ee28900717924bf2bb9682a8c28d9231
X
abe1165ac3c44684b7259dd5c2666047--ee28900717924bf2bb9682a8c28d9231
ee28900717924bf2bb9682a8c28d9231--591a98af7429436289ff4eed63066df9
aee417953c2e4b2a9f9dda47203a31dd
ee28900717924bf2bb9682a8c28d9231--aee417953c2e4b2a9f9dda47203a31dd
692ec92e82fa4b089acd8381c5f307af
RY(iia_β₁₅)
aee417953c2e4b2a9f9dda47203a31dd--692ec92e82fa4b089acd8381c5f307af
2c4e2e577ba0409ebcd75c22a6bde0e6
RX(iia_β₁₂)
692ec92e82fa4b089acd8381c5f307af--2c4e2e577ba0409ebcd75c22a6bde0e6
2c4e2e577ba0409ebcd75c22a6bde0e6--134a37f999a4487c9e11e8ce4231d541