As a part of my solution to the MCX problem, I want to use sub-circuits that were synthesized numerically. In principle, the error can be made arbitrarily small, but I need to put a cutoff somewhere. Will such a solution be accepted? What should then be the allowed approximation error? Say, if jnp.allclose(my_circuit, target_circuit)
is True
with the default accuracy options, would that be sufficient?
At the end of the day, you need to submit a QASM circuit as well as the code used to generate this circuit. As long as you have a QASM circuit, that is fine.
Ok, then my question is how the QASM code is tested? There are may be several possibilities to check, say, equivalence of two circuits, and they may have different error tolerances. One way would be to compute the distance induced by the Hilbert-Schimdt norm. I would love to know the exact way that the solution is tested beforehand, if possible!
Also, this statement is a bit surprising to me
as well as the code used to generate this circuit
Say I have a secret way to produce efficient decomposition of the Toffoli gate. Can’t I just use this decomposition as a part of the solution, or do I need to provide a code that builds this decomposition from scratch? What if it relies on non-trivial packages for circuit synthesis?
We do have a process to test the submissions.
Regarding the code, the competition asks that " For each solution, you will submit the QASM circuit, the code used to generate it, circuit depth or 2-qubit gate count, and a description of your approach.".
please submit what you can and we’ll try to be flexible.
I dont think that a circuit of not accurate MCX is legal at all. The mission is to make MCX and not approximately MCX, even. 0.99999999 MCX. I think you must follow those rules to make it fair to the other competitors
For the MCX problem, the circuit needs to be perfect, including releasing/uncomputing the ancilla qubits. There is no valid “almost MCX” circuit.
In other problems for this competition (e.g. log-normal distribution, Hamiltonian), there is an accuracy goal, but for MCX it needs to be perfectly accurate.