A quantum computer is an array of quantum bits (qubits) together with some hardware for manipulating these qubits. quantum Bayesian (qb) nets are a method of modeling quantum systems graphically in terms of network diagrams. This invention comprises a classical computer running a computer program that expresses the information contained in a qb net as a sequence of elementary operations (SEO). One can then run these sequences on a quantum computer. We show how to reduce a qb net into a SEO by a two step process. First, express the information contained in the qb net as a sequence of unitary operators. Second, express each of those unitary operators as a SEO. An appendix to this document contains the C++ source code of a computer program called “Qubiter1.0”, which is a preferred embodiment of the invention.
|
21. A method of operating a classical computer, wherein said method must be stored in a computer readable medium which said classical computer can read, , wherein said method must be stored in the external or internal memory units of said classical computer, to calculate a sequence of operations with the purpose of applying said sequence of operations to a quantum computer comprising an array of qubits, to induce said quantum computer to execute a desired calculation, said method comprising the steps of:
storing in said classical computer an input data-set that fairly directly specifies specifies a represetation of a unitary matrix vin, wherein at least one row of vin has 3 or more non-zero entries and at least one column of vin has 3 or more non-zero entries,
calculating with said classical computer and using said input data-set, a tree data-set that comprises data that can be represented as a node matrix Mj for each node j contained in a subset J of the nodes of a tree, wherein the product, in some order defined by the determined in accordance with said tree, of all said node matrices is equivalent to said vin,
calculating with said classical computer and using said tree data-set, for each of the node matrices M, a string of operations on qubits, wherein said string of operations and said M both would, for each jεJ, a product πj of operations on said array of qubits, wherein Mj and πj both would, if applied to an said array of qubits, produce equivalent transformations of the array of qubits.
15. A method of operating a classical computer, wherein said method must be stored in a computer readable medium which said classical computer can read, , wherein said method must be stored in the external or internal memory units of said classical computer, to calculate a sequence of operations with the purpose of applying said sequence of operations to a quantum computer comprising an array of qubits, to induce said quantum computer to execute a desired calculation, wherein said classical computer comprises a unitary matrix decomposer, wherein if said unitary matrix decomposer is given data that fairly directly specifies a specifies a represetation of an initial unitary matrix U of dimension greater than 2, then the decomposer will calculate a data-set that fairly directly specifies specifies a represetation of three unitary matrices: L, D, R, such that the following matrix equation holds: U=LDR, wherein L and R each yields unitary matrices whose dimension is smaller than that of U, said method comprising the steps of:
storing in said classical computer an input data-set that fairly directly specifies specifies a represetation of a unitary matrix vin, wherein at least one row of vin has 3 or more non-zero entries and at least one column of vin has 3 or more non-zero entries,
applying said unitary matrix decomposer to decompose the initial unitary matrix U=Vin,
applying said unitary matrix decomposer repeatedly to decompose initial unitary matrices obtained from the output of a previous application of said unitary matrix decomposer,
calculating with said classical computer, using said input data-set and data obtained by applying said unitary matrix decomposer, said sequence of operations on said array of qubits, wherein said sequence of operations and said vin both would, if applied to an said array of qubits, produce equivalent transformations of the array of qubits.
8. A method of operating a classical computer having display, storage and calculation means, wherein said method must be stored in a computer readable medium which said classical computer can read, , wherein said method must be stored in the external or internal memory units of said classical computer, to analyze a quantum physical system that exhibits quantum mechanical behavior comprising an array of qubits, said method comprising the steps of:
displaying on said display means a graph comprising a plurality of n nodes, and a plurality of directed lines connecting certain pairs of said nodes,
storing in said storage means a qb net (quantum Bayesian net) data-set comprising:
(a) graph information comprising a node label for each of said n nodes, and also comprising, for each said directed line, said node label for the source node and for the destination node of the directed line,
(b) state information comprising, for each jε{1, 2, . . . n}, a finite set Σj containing labels for the states that the j'th node {circumflex over (x)}j may assume assumes, and
(c) amplitude information comprising, for each jε{1, 2, . . . n}, a representation of a complex number
for each vector
such that xjεΣj, xk
wherein
are the |Sj| nodes connected to {circumflex over (x)}j by directed lines entering {circumflex over (x)}j, wherein said directed lines entering {circumflex over (x)}j transmit the state of their source node, wherein said |Sj| is an integer greater or equal to zero,
composing with said calculation means and using said qb net data-set, a data-set that specifies yields a unitary matrix vin, wherein vin is equivalent to the unitary matrix U|T|. . . U3U2 of Eq. (20)1 and vin describes the quantum-state evolution for the situation described by said qb net data-set,
calculating with said calculation means and using said qb net data-set, a sequence of operations on said array of qubits, wherein said sequence of operations and said vin both would, if applied to an said array of qubits, produce equivalent transformations of the array of qubits.
1. A method of operating a classical computer, wherein said method must be stored in a computer readable medium which said classical computer can read, , wherein said method must be stored in the external or internal memory units of said classical computer, to calculate a sequence of operations with the purpose of applying said sequence of operations to a quantum computer comprising an array of qubits, to induce said quantum computer to execute a desired calculation, said method comprising the steps of:
storing in said classical computer a qb net (quantum Bayesian net) data-set comprising:
(a) graph information comprising a node label for each node of a plurality of n nodes, and also comprising a plurality of directed lines, wherein a directed line comprises an ordered pair of said node labels, wherein one member of the label pair labels the source node and the other member labels the destination node of the directed line,
(b) state information comprising, for each jε{1, 2, . . . n}, a finite set Σj containing labels for the states that the j'th node {circumflex over (x)}j may assume assumes, and
(c) amplitude information comprising, for each jε{1, 2, . . . n}, a representation of a complex number
for each vector
such that xjεΣj, xk
wherein
are the |Sj| nodes connected to {circumflex over (x)}j by directed lines entering {circumflex over (x)}j, wherein said directed lines entering {circumflex over (x)}j transmit the state of their source node, wherein said |Sj| is an integer greater or equal to zero,
composing with said classical computer and using said qb net data-set, a data-set that specifies yields a unitary matrix vin, wherein vin is equivalent to the unitary matrix U|T| . . . U3U2 of Eq. (20), and vin describes the quantum-state evolution for the situation described by said qb net data-set,
calculating said sequence of operations using said classical computer, wherein said sequence of operations and said vin both would, if applied to an said array of qubits, produce equivalent transformations of the array of qubits.
2. The method of
3. The method of
4. The method of
manipulating said quantum computer largely according to said sequence of operations.
5. The method of
6. The method of
7. The method of
calculating with said classical computer and using said qb net data-set, a tree data-set that comprises data that can be represented as a tree-node matrix for each node contained in a subset of the nodes of a tree, wherein the product, in some order defined by the determined in accordance with said tree, of all said tree-node matrices is equivalent to said vin.
9. The method of
10. The method of
11. The method of
manipulating said quantum computer largely according to said sequence of operations.
12. The method of
13. The method of
14. The method of
calculating with said classical computer and using said qb net data-set, a tree data-set that comprises data that can be represented as a tree-node matrix for each node contained in a subset of the nodes of a tree, wherein the product, in some order defined by the determined in accordance with said tree, of all said tree-node matrices is equivalent to said vin.
16. The method of
18. The method of
19. The method of
20. The method of
manipulating said quantum computer largely according to said sequence of operations.
22. The method of
23. The method of
24. The method of
25. The method of
26. The method of
manipulating said quantum computer largely according to said sequence of operations.
27. The method of
28. The method of
29. The method of
30. The method of
31. The method of
32. The method of claim 31 21, wherein said classical computer includes a unitary matrix decomposer which is used in the calculation of said sequences sequence of operations, wherein if the decomposer is given data that fairly directly specifies a specifies a represetation of an initial unitary matrix U, then the decomposer will calculate a data-set that fairly directly specifies eight unitary matrices: specifies a represetation of four matrices D00, D01, D10, D11, and four unitary matrices L0, L1, R0, R1, such that if one partitions said U into four blocks U00, U01, U10, U11, then the following four matrix equations hold: Uij=LiDijRj for iεBool and jεBool.
33. The method of
34. The method of
35. The method of
36. The method of
37. The method of
manipulating said quantum computer largely according to said sequence of operations.
|
The present application includes a microfiche appendix comprising the C++ source code of a fully functional computer program called Qubiter1.0. Qubiter1.0 is a possible embodiment of the software of the present invention. The microfiche appendix comprises 1 microfiche with a total of 52 frames. The first frame is a test pattern for focusing. The second frame, called Appendix A, is a list of files contained in a CodeWarrior™ project for Qubiter1.0. Subsequent frames are labelled Appendix B, and comprise source code contained within said files.
The invention relates to an array of quantum bits known as a quantum computer. More specifically, it relates to the generation of the instruction sequences that are used to manipulate such an array.
This invention deals with quantum computers. A quantum computer is an array of quantum bits (qubits) together with some hardware for manipulating these qubits. Quantum computers with only a few bits have already been built. For a review of quantum computers, see DiV95: D. P. DiVincenzo, Science 270, 255 (1995). See also Ste97:A. M. Steane, Los Alamos eprint
The function Aj with values Aj[xj|(x.)S
For example,
One can translate a QB net into a SEO by performing 4 steps: (1) Find eras. (2) Insert delta functions. (3) Find unitary extensions of era matrices. (4) Decompose each unitary matrix into a SEO. Next we will discuss these 4 steps in detail. We will illustrate our discussion by using Teleportation as an example. Teleportation was first discussed in Tel93: C. H. Bennett, G. Brassard, C. Crépeau, R. Jozsa, A. Peres, W. K. Wootters, Physical Review Letters 70, 1895 (1993).
B2(x2,x3|x1)=A2(x2|x1)A3(x3|x1), (5b)
B3(x5|x2,x4)=A5(x5|x2,x4), (5c)
B4(x6|x3,x5)=A6(x6|x3,x5), (5d)
and
A(x.)=B4B3B2B1. (6)
Step 2: Insert Delta Functions
The Feynman Integral FI for a QB net is defined by
Note that we are summing over all stories x. that have (x.)Z
Consider how to do this for Teleportation. In that case one has
where the Ba are given by Eqs. (5). The right side of Eq. (8) is not ready to be expressed as a product of matrices because the column indices of Ba+1 and the row indices of Ba are not the same for all aεZ1,|τ|−1. Furthermore, the variable x3 occurs in B4 and B2 but not in B3. Likewise, the variable x4 occurs in B3 and B1 but not in B2. Suppose we define
where we sum over all intermediate indices; i.e., all xja except x6. Contrary to Eq. (8), the right side of Eq. (10) can be expressed immediately as a product of matrices since now Ba+1 column indices and Ba row indices are the same. The purpose of inserting a delta function of x3 into B3 is to allow the system to “remember” the value of X3 between non-consecutive eras T4 and T2. Inserting a delta function of x4 into B2 serves a similar purpose.
In the Teleportation net of
B1(x1)=A1(x2), (11a)
B2(x2,x3|x1)=A3(x3|x1)A2(x2|x1), (11b)
B3(x4|x3)=A4(x4|x3), (11c)
B4(x5|x4)=A5(x5|x4). (11d)
Even though node {circumflex over (x)}2 is external, the variable x2 does not appear as a row index in B4. Suppose we set
where we sum over all intermediate indices; i.e., all xja except x2 and x5. Contrary to B4, the rows of
This technique of inserting delta functions can be generalized as follows to deal with arbitrary QB nets. For jεZ1,N, let amin(j) be the smallest aεZ1,|τ| such that xj appears in Ba. Hence, amin(j) is the first era in which xj appears. If {circumflex over (x)}j is an internal node, let amax(j) be the largest a such that xj appears in Ba (i.e., the last era in which xj appears). If {circumflex over (x)}j is an external node, let amax(j)=|τ|+1. For aεZ1,|τ|+1. For aεZ1,|τ|, let
Δa={jεZ1,N|amin(j)<a<amax(j)}, (14)
In Eq. (15), xj|T| should be identified with xj and xj0 with no variable at all. Equation (7) for FI can be written in terms of the
where the sum is over all intermediate indices (i.e., all xja for which a≠|τ|). For all a, define matrix Ma so that the x,y entry of Ma is
M=M|τ| . . . M2M1. (17)
The rows of the column vector M are labelled by the possible values of (x.)Z
Step 3: Find Unitary Extensions of Era Matrices
So far, we have succeeded in expressing FI as a product of matrices Ma, but these matrices are not necessarily unitary. In this step, we will show how to extend each Ma matrix (by adding rows and columns) into a unitary matrix Ua.
By combining adjacent Ma's, one can produce a new, smaller set of matrices Ma. Suppose the union of two consecutive eras is also defined to be an era. Then combining adjacent Ma's is equivalent to combining consecutive eras to produce a new, smaller set of eras. We define a breakpoint as any position aεZ1,|τ|−1 between two adjacent matrices Ma+1 and Ma. Combining two adjacent Ma's eliminates a breakpoint. Breakpoints are only necessary at positions where internal measurements are made. For example, in Teleportation experiments, one measures node {circumflex over (x)}5, which is in era T3. Hence, a breakpoint between M4 and M3 is necessary. If that is the only internal measurement to be made, all other breakpoints can be dispensed with. Then we will have M=M2′M1′ where M2′=M4, M1′=M3M2M1. If no internal measurements are made, then we can combine all matrices Ma into a single one, and eliminate all breakpoints.
We will henceforth assume that for all aεZ1,|τ|, the columns of Ma are orthonormal. If for some a0εZ1,|τ|, Ma
We will call da the number of rows of matrix Ma and da−1 its number of columns. We define D and NS by
D=max{da|1≦a≦|τ|} (18)
NS=min{2i|iεZ1,∞,D≦2i}. (19)
Let
v=U|τ| . . . U3U2v1, (20)
where v is just the column vector M with
To determine suitable values for the gray entries of the Ua matrices, one can use the Gram-Schmidt (G.S.) method. (See Nob88: B. Noble and J. W. Daniels, Applied Linear Algebra, Third Edition (Prentice Hall, 1988)). This method takes as input an ordered set S=(v1, v2, . . . , vN) of vectors, not necessarily independent ones. It yields as output another ordered set of vectors S′=(u1, u2, . . . , uN), such that S′ spans the same vector space as S. Some vectors in S′ may be zero. Those vectors of S′ which aren't zero will be orthonormal. For rεZ1,N, if the first r vectors of S are already orthonormal, then the first r vectors of S′ will be the same as the first r vectors of S. Let ej for jεZ1,N
Step 4: Decompose Each Unitary Matrix into a SEO
In this section we present a CS method for decomposing an arbitrary unitary matrix into a SEO. By following the previous 3 steps, one can reduce a QB net to a product of unitary operators Ua. By applying the CS method of this section to each of the matrices Ua, one can reduce the QB net to a SEO.
We will use the symbol NB for the number (≦1) of bits and NS=2N
For βεZ0,N
Ir will represent the r dimensional unit matrix. Suppose βεZ0,N
M(β)=I2(×) . . . (×)I2(×)M(×)I2(×) . . . (×)I2, (22)
where the matrix M on the right side is located at bit position β in the tensor product of NB2×2 matrices. The numbers that label bit positions in the tensor product increase from right to left (←), and the rightmost bit is taken to be at position 0.
For any two square matrices A and B of the same dimension, we define the (·) product by A(·)B=ABA†, where A† is the Hermitian conjugate of A.
{right arrow over (σ)}=(σx,σy,σz) will represent the vector of Pauli matrices, where
The Sylvester-Hadamard matrices Hr are 2r×2r matrices whose entry at row {right arrow over (a)} and column {right arrow over (b)} is given by
(Hr){right arrow over (a)}, {right arrow over (b)}=(−1){right arrow over (a)}·{right arrow over (b)}, (24)
where
The qubit's basis states |0< and |1> will be represented by
The number operator n of the qubit is defined by
Note that
n|0>=0,n|1>=|1>. (28)
We will often use
We define P0 and P1 by
For βεZ0,N
P{right arrow over (a)}=PaN
As mentioned earlier, we utilize a mathematical technique called the CS Decomposition. In this name, the letters C and S stand for “cosine” and “sine”. Next we will state the special case of the CS Decomposition Theorem that arises in a preferred embodiment of the invention.
Suppose that U is an N×N unitary matrix, where N is an even number. Then the CS Decomposition Theorem states that one can always express U in the form
where L0,L1,R0,R1 are N/2×N/2 unitary matrices and
For
Ci and Si are real numbers that satisfy
Ci2+Si2=1. (33e)
Henceforth, we will use the term D matrix to refer to any matrix that satisfies Eqs. (33). If one partitions U into four blocks Uij of size
then
Uij=LiDijRj, (34)
for i,jε{0,1}. Thus, Dij gives the singular values of Uij.
More general versions of the CS Decomposition Theorem allow for the possibility that we partition U into 4 blocks of unequal size.
Note that if U were a general (not necessarily unitary) matrix, then the four blocks Uij would be unrelated. Then to find the singular values of the four blocks Uij would require eight unitary matrices (two for each block), instead of the four Li,Rj. This double use of the Li,Rj is a key property of the CS decomposition.
Consider FIG. 6. We start at 61 with a unitary matrix U. Without loss of generality, we can assume that the dimension of U is 2N
Call a central matrix either (1) a single D matrix, or (2) a direct sum D1(+)D2(+) . . . (+)Dr of D matrices, or (3) a diagonal unitary matrix. From
Case 1: Central Matrix is a Single D Matrix
Consider how to decompose a central matrix when it is a single D matrix. Before dealing with arbitrary NB consider NB=3. Then the central matrix D can be expressed as:
Suppose {right arrow over (φ)} (ditto, {right arrow over (θ)}) is a column vector whose components are the numbers φ{right arrow over (a)} (ditto, θ{right arrow over (a)}) arranged in order of increasing {right arrow over (a)}. We define new angles {right arrow over (θ)} in terms of the angles {right arrow over (φ)} by
Then one can show that
D=A00A01A10A11, (37)
where
A00=exp(iθ00σy)(×)I2(×)I2, (38a)
A01=σx(2)n(0)(·)[exp(iθ01σy)(×)I2(×)I2], (38b)
A10=σx(2)n(1)(·)[exp(iθ10σy)(×)I2(×)I2], (38c)
A11=[σx(2)n(1)σx(2)n(0)](·)[exp(iθ11σy)(×) I2(×)I2]. (38d)
Eqs. (37)-(38) achieve our goal of decomposing D into a SEO. Now consider an arbitrary NB. D can be written as
where the φ{right arrow over (a)} are real numbers. We define new angles {right arrow over (θ)} in terms of the angles {right arrow over (φ)} by
where the operators A{right arrow over (b)} on the right side commute and will be defined next. For any {right arrow over (b)}εboolN
where
NB−2≧βr−1>. . . β1>B0≧o. (43)
In other words, {right arrow over (b)} has bit value of 1 at bit positions βj. At all other bit positions, {right arrow over (b)} has bit value of 0. r is the number of bits in {right arrow over (b)} whose value is 1. When {right arrow over (b)}=0, r=0. One can show that
A{right arrow over (b)}=[σx(NB−1)n(β
There are other ways of decomposing A{right arrow over (b)} into a SEO.
Case 2: Central Matrix is Direct Sum of D Matrices
Next, consider how to decompose a central matrix when it is a direct sum of D matrices. Consider first the case NB=3. Let R(φ)=exp(iσyφ). Previously we mentioned the fact that any D matrix D can be expressed as
where the Dj and Dij are D matrices. It follows that by permuting the bit positions, we can change such a direct sum of D matrices into a single D matrix. The latter can then be decomposed into a SEO by the method already discussed.
Case 3: Central Matrix is a Diagonal Unitary Matrix
Finally, consider how to decompose a central matrix when it is a diagonal unitary matrix. Before dealing with arbitrary NB, consider NB=2. Then the central matrix C can be expressed as
C=diag(eiφoo, eiφ01, eiφ10, eiφ11). (49)
We define {right arrow over (φ)} by
One can show that
C=A00A01A10A11, (51)
where
A00=exp(iθ00), (52a)
A01=I2(×)exp(iθ01σz), (52b)
A10=exp(iθ10σz)(×)I2, (52c)
A11=σx(0)n(1)(·)[I2(×)exp(iθ11σz)]. (52d)
Now consider an arbitrary NB. Any diagonal unitary matrix C can be expressed as
where the φ{right arrow over (a)} are real numbers. We define {right arrow over (θ)} by
where the A{right arrow over (b)} operators commute and will be defined next. For any {right arrow over (b)}εBoolN
where
NB−1≧βr−1>. . . >β1>β0≧0. (57)
One can show that
There are other ways of decomposing A{right arrow over (b)} into a SEO.
(B) Implementation of New Method on Classical Computer
So far in Section (A), we have described a mathematical algorithm for decomposing any QB net into a SEO. Next we describe a particular implementation of the algorithm, a computer program called “Qubiter” that can be run on a classical computer.
The use of a computer is practically indispensable for obtaining useful numerical answers through the method of Section (A). In all but the simplest of cases, vast amounts of data storage and processing are necessary to obtain final numerical answers from the method of Section (A). The necessary book-keeping and number crunching are prohibitively error prone and time consuming to a human, but not to a computer.
A preferred embodiment of the invention is a classical computer that feeds data (a SEO) to a quantum computer. By a classical computer, we mean a device that makes a desired calculation using digital circuits which implement deterministic (classical, non-quantum) logic. By a quantum computer we mean a device that makes a desired calculation using an array of quantum bits (qubits). Besides their calculational circuits, classical and quantum computers may comprise input, output and memory devices. The important difference is that an array of quantum bits may be put in an entangled quantum state, whereas a digital deterministic logic circuit cannot be put in such a state (in practice, for useful periods of time). The classical computer of our preferred embodiment is a Mac computer, produced by Apple Computer Inc. of Cupertino, California. The Mac is running a program written in the computer language C++. Of course, this invention could just as easily be implemented in a language other than C++, and on a platform other than a Mac.
Software for a preferred embodiment of the invention was written using Code Warrior™. Code Warrior is a C++ Integrated Development Environment produced by MetroWerks Inc. of Austin, Texas. C++ source code for a computer program called “Qubiter1.0” is included as a Microfiche Appendix to this document. The Microfiche Appendix has two parts: Appendix A and Appendix B.
Appendix A is a listing of the names of all the files in the “CodeWarrior Project” for Qubiter. Appendix B is a listing of Qubiter source code. Apart from libraries provided with CodeWarrior, Qubiter requires parts of the C library called Clapack. This library is freeware and can be downloaded via the Internet from the website “www.netlib.org”.
Qubiter uses files that list the entries of a unitary matrix U.
Qubiter also uses files that list SEOs.
(a) PHAS ang
where ang is a real number. This signifies a phase factor
(b) CNOT α a char β
The matrix given in
Qubiter starts by looking for a parameter file entitled “qbtr-params.in”.
The user should enter into line 112 the name of a matrix. In
If the user enters “yes” into line 114 as an answer to “Do compilation?”, then Qubiter will look for a file named “DiscFourier2bits.in”. In other words, it will look for a file whose name is the string in line 112 plus the suffix “.in”. Qubiter expects to find in this file the entries of the unitary matrix Uinitial to be decomposed. The file should be of the form exemplified by FIG. 8.
If the user enters “yes” into line 116 as an answer to “Do decompilation?”, then Qubiter will look for a file named “DiscFourier2bits-cmnd.out”. In other words, it will look for a file whose name is the string in line 112 plus the suffix “-cmnd.out”. Qubiter expects to find in this file a SEO. The file should be of the form exemplified by
If the user enters “yes” into line 118 as an answer to “Do zero angle optimization?”, then Qubiter will produce a file of the type exemplified by
Qubiter has 2 main modes of operation.
The first mode of operation is when the user enters “yes” in line 114 as an answer to “Do compilation?”, and “yes” in line 116 as an answer to “Do decompilation?” In this mode, the user must provide 2 input files entitled “qbtr-params.in” and “mat.in”, where “mat” is the string in line 112. Qubiter will output a file called “mat-cmnd.out”. Then it will use mat-cmnd.out as input, multiply the SEO listed in this file, arrive at a unitary matrix Ufinal, and output a file called “mat-check.out” which lists the entries of Ufinal. If everything goes well, the matrix Uinitial specified by file “mat.in” and the matrix Ufinal specified by file “mat-check.out” will be the same matrix, within machine precision.
The second mode of operation is when the user enters “no” in line 114 as an answer to “Do compilation?”, and “yes” in line 116 as an answer to “Do decompilation?” In this mode, the user must provide 2 input files entitled “qbtr-params.in” and “mat-cmnd.out”. Qubiter will multiply the SEO listed in “mat-cmnd.out”, arrive at a unitary matrix Ufinal, and output a file called “mat-check.out” which lists the entries of Ufinal.
We should also mention a small frill to the first mode of operation. At the same time that Qubiter outputs the file “mat-cmnd.out”, it also outputs a file called “mat-pict.out” which is a translation of “mat-cmnd.out” to a pictorial language. Each elementary gate is represented by a line in “mat-pict.out”. Consider a single line of the file. There is a 1 to 1 correspondence between the characters in the line and the qubits of an array of qubits. The rightmost character represents bit 0. The next to rightmost character in the line represents bit 1. And so on. A bit that is not operated on is represented by a “|” character. A bit that is rotated about the Z axis (ditto, Y axis) is represented by a “Z” character (ditto, “Y” character). If the gate is a c-not that flips a bit when the control bit is true (ditto, false), then the control bit is represented by a “@” character (ditto, “0” character). The bit to be flipped is represented by an “X” character. If the gate is a pure phase acting on all bits, all bits are represented by the ˜ character.
The CS Decomposition is intimately related to the Generalized Singular Value Decomposition (GSVD). In fact, Qubiter1.0 does CS decompositions by means of a Clapack subroutine for doing GSVD. For more information about the GSVD and its connection to the CS Decomposition, see Pai94 and references therein. See also the Clapack documentation that comes with the subroutine zggsvd.c
So far, we have described version 1.0 of Qubiter. Future versions of Qubiter are planned that will: (1)Take as input an arbitrary QB net (not just 2 connected nodes), and return as output a SEO. (2) Add quantum error correction code to the input QB net. (3)Include optimizations enabling it to produce SEOs with fewer steps.
In classical computation, the basic set of elementary operators is not unique. For example, instead of using AND, NOT and OR gates, one can just use NAND gates. The same is true in quantum computation: the basic set of elementary operators is not unique. In this preferred embodiment of the invention, we use the set {CONTROLLED-NOT, QUBIT ROTATION} of elementary operators, but the invention also applies to other sets of elementary operators.
So far, we have described what are at present the preferred embodiments of this invention. Those skilled in the art will be able to come up with many modifications to the given embodiments without departing from the present invention. It is therefore desired that the scope of the invention be determined by the appended claims rather than by the given embodiments.
Patent | Priority | Assignee | Title |
10885678, | Sep 29 2017 | International Business Machines Corporation | Facilitating quantum tomography |
11544613, | Dec 26 2019 | International Business Machines Corporation | Controlling a quantum computing device based on predicted operation time |
8612499, | Nov 01 2010 | Method for evaluating quantum operator averages | |
9111230, | Mar 14 2013 | International Business Machines Corporation | Frequency arrangement for surface code on a superconducting lattice |
Patent | Priority | Assignee | Title |
5787236, | Jan 11 1996 | Graphical computer method for analyzing quantum systems |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Date | Maintenance Fee Events |
Mar 20 2014 | M2553: Payment of Maintenance Fee, 12th Yr, Small Entity. |
Date | Maintenance Schedule |
Oct 26 2013 | 4 years fee payment window open |
Apr 26 2014 | 6 months grace period start (w surcharge) |
Oct 26 2014 | patent expiry (for year 4) |
Oct 26 2016 | 2 years to revive unintentionally abandoned end. (for year 4) |
Oct 26 2017 | 8 years fee payment window open |
Apr 26 2018 | 6 months grace period start (w surcharge) |
Oct 26 2018 | patent expiry (for year 8) |
Oct 26 2020 | 2 years to revive unintentionally abandoned end. (for year 8) |
Oct 26 2021 | 12 years fee payment window open |
Apr 26 2022 | 6 months grace period start (w surcharge) |
Oct 26 2022 | patent expiry (for year 12) |
Oct 26 2024 | 2 years to revive unintentionally abandoned end. (for year 12) |