
Although quantum computers still exist only in theory, but this does not prevent us from making sound assumptions about their future architecture and, more importantly, about the interface for interacting with them. Thus, now it is possible to design software simulators of quantum computers - and write software.
A group of American scientists, having received funding from the US National Intelligence Research Center (
IARPA ), developed the high-level programming language
Quipper . It is based on Haskell and is
better suited for implementing quantum algorithms than QCL (based on C).
To date, at least
45 algorithms for quantum computers are known. All of them are described in scientific articles, but none have been implemented in the program code. With the advent of Quipper, there was such an opportunity. In the future, programmers can simply use ready-made libraries for quantum computers, as they are doing now in high-level languages ​​for classical architecture.
The Quipper developers are calling for coding all known algorithms in the new PL, for verification they implemented seven non-trivial quantum algorithms from the literature:
')
- Binary welded tree (Binary Welded Tree, BWT), arXiv: quant-ph / 0209131 . Search for a designated node in the graph.
- Boolean formula (Boolean Formula, BF), arXiv: 0704.3628 and arXiv: quant-ph / 0703015 , any AND-OR formula of size N can be calculated in time n 1/2 + o (1) on a quantum computer. Implemented a version that calculates the winning strategy in the board game hex.
- Class Order (Class Number, CL), Proceedings of the 34th ACM Symposium on Theory of Computing, 2002. A quantum algorithm for calculating the Pell equation and the main ideal in polynomial time.
- Estimation of the ground state of a quantum mechanical system (Ground State Estimation, GSE), Molecular Physics, 109 (5): 735–750, 2011. Calculation of energy levels for a particular molecule.
- Quantum linear systems (Quantum Linear Systems, QLS), arXiv: 0811.3171 . Solving a linear system of equations.
- The shortest unique vector (Unique Shortest Vector, USV), arXiv: cs / 0304005 . Search for the shortest vector among the available options.
- Triangle Finding (TF), arXiv: quant-ph / 0310134 . Search for triangles in a saturated graph.
The list of algorithms was determined by the IARPA agency, in the context of the
IARPA Quantum Computer Science program.
As is known from history, the first computers had to be programmed in machine codes, which was a rather complicated and time-consuming task. A significant breakthrough came thanks to the development of the first high-level programming language Fortran in 1957. From this point on, the interaction between man and machine reached a new level, and we were able to set the computer with more complex tasks.
The existence of such a language with high-level abstractions and algorithms implemented on it in itself will help in creating new algorithms for quantum computers, the authors of the Quipper language say.
D-Wave computerQuipper is suitable for programming theoretical quantum computers of several architectures (implementation of qubits in photons, electrons, etc.), but is not suitable for programming an existing “quantum” D-Wave computer, which critics do not consider a full-fledged quantum computer because of its narrow specialization . Which, however, did not prevent Google from recently
buying two D-Wave computers with processors of 512 qubits for $ 15 million.
[
New Scientist ]