You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Conceptually, both qc1 and qc2 are exactly the same, each containing a single MCX gate with 6 control qubits. However, the output is very different: for qc1 we have OrderedDict({'u': 1272, 'cx': 1142}), and for qc2 we have OrderedDict({'u': 40, 'cx': 30}). The reason is that for qc2 we directly synthesis the controlled-MCX gate over 6 qubits and internally use the synthesis algorithm that uses available idle qubits. On the other hand, for qc1, we first synthesize the MCX gate over 4 qubits, obtain a decomposition, control each gate with two controls, and decompose each of these controlled gates.
We should either improve the synthesis of controlled/annotated gates directly, or do a reduction inside the OptimizeAnnotated pass and include the latter in the transpiler flow.
The text was updated successfully, but these errors were encountered:
What should we add?
Consider the following example (inspired by https://arxiv.org/pdf/2412.07372):
Conceptually, both
qc1
andqc2
are exactly the same, each containing a single MCX gate with 6 control qubits. However, the output is very different: forqc1
we haveOrderedDict({'u': 1272, 'cx': 1142})
, and forqc2
we haveOrderedDict({'u': 40, 'cx': 30})
. The reason is that forqc2
we directly synthesis the controlled-MCX gate over 6 qubits and internally use the synthesis algorithm that uses available idle qubits. On the other hand, forqc1
, we first synthesize the MCX gate over 4 qubits, obtain a decomposition, control each gate with two controls, and decompose each of these controlled gates.We should either improve the synthesis of controlled/annotated gates directly, or do a reduction inside the
OptimizeAnnotated
pass and include the latter in the transpiler flow.The text was updated successfully, but these errors were encountered: