Quantum Computing Asked by Yaroslav Kharkov on April 2, 2021
Suppose I want to obtain a gate sequence representing a particular 1 qubit unitary matrix.
The gate set is represented by a discrete universal set, e.g. Clifford+T gates or ${T,H}$ gates.
A well known approach to solve the problem is to use Solovay-Kitaev (SK) algorithm.
I tried this implementation for SK algorithm. The resulting circuits are incredibly long ($lsim 100-1000$ gates for the Fowler distance $epsilon sim 0.01$, tolerance error for the basic approximation $epsilonsim 0.03$). Moreover the basic approximation (building a KD-tree) can take quite long time (although this might be due to somewhat slow Python code).
On the other hand I wrote a very simple script that generates random sequences of gates and selects the best performing circuits. It works very fast and results in much shorter circuits with Fowler distances $epsilon< 10^{-4}-10^{-5}$. This should be more than sufficient for any realistic applications.
So, at this point I don’t quite understand, what is practical significance of Solovay-Kitaev algorithm in this case (for 1 qubit operations)?
Of course, the theoretical scaling of SK algorithm looks pretty good. The number of gates generated by SK algorithm to approximate any 1 qubit unitary grows as $lsimlog^c(1/delta)$, where $delta$ is L2 approximation error. For random sampling there are no such guarantees. However on practice I’m not convinced that SK is very useful for 1 qubit case.
No doubts that in the case of large number of qubits random sampling will fail because of the curse of dimensionality. But it seems that SK algorithm also quickly becomes computationally unfeasible ($#$ of qubits $geq 4$?).
The Solovay-Kitaev algorithm is not practical. It is very useful theoretically because it proves that once you have a "dense" set of quantum gates (i.e. a set with which you can approximate any other quantum gate) you can approximate up to an arbitrary precision and quickly any quantum gate.
In practice, the Solovay-Kitaev works as follow:
Some obervations:
In order to perform point 2, one of the most efficient method (asymptotically-speaking) is to use nearest-neighbour algorithms. There exist a lot of algorithms (the most used being probably the KD-tree approach), and some of them are designed for high-dimensional data (see this answer or this one).
But still, your search space (the circuits generated in point 1) "suffer from the curse of dimensionality" in the sense that its size grows really fast when the dimension increase. Even if you can search for a nearest-neighbour in $O(nln(n))$, the $n$ is incredibly large here.
During the recursion, a matrix decomposition needs to be performed. An efficient algorithm for the decomposition has been devised in this article for $1$-qubit gates (i.e. $SU(2)$ matrices), but no efficient implementation exist for gates on $2$ or more qubits: you end up diagonalising the unitary matrix you want to implement, which become quite costly when the unitary matrix becomes large.
To sum up:
Answered by Adrien Suau on April 2, 2021
Get help from others!
Recent Answers
Recent Questions
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP