Computing apparatus incorporating quantum effects that performs high-speed computation on inverse problems or computational optimization problems requiring exhaustive search
11341425 · 2022-05-24
Assignee
Inventors
Cpc classification
G06N10/00
PHYSICS
G06N5/01
PHYSICS
G06F17/12
PHYSICS
International classification
G06N10/00
PHYSICS
G06F9/38
PHYSICS
Abstract
A computing apparatus that does not need quantum coherence or a cryogenic cooling apparatus is provided for assignments that need an exhaustive search. A system is led to the ground state of the system where a problem is set, wherein spin s.sub.j.sup.z that is a variable follows a local effective magnetic field B.sub.j.sup.z. The spin state at t=0 is initialized with a transverse field (in the x-direction). This corresponds to s.sub.j.sup.z=0. With time t, the magnetic field in the z-axis direction and the inter-spin interactions are gradually added, and finally the spin is directed to the +z- or −z-direction. The z component of the spin s.sub.j is s.sub.j.sup.z=+1 or −1. Here, in the process where the orientation of the spin s.sub.j.sup.z follows that of the effective magnetic field B.sub.j.sup.z, correction parameters originating in quantum-mechanical effects are introduced and ground-state-maintaining performance is improved.
Claims
1. A quantum computing apparatus comprising one or more computers connected through a network configured to perform computation for problems requiring exhaustive search, wherein the quantum computing apparatus is operational at room temperature and comprises: a main memory configured to store computation programs and one or more variables that will be used for executing local-field response computation, including one or more correction parameters; a processor configured to execute the one or more programs stored in the main memory; and a co-processor configured to execute local-field response computation over a calculation period τ, wherein local field response computation comprises repetitively calculating N spin variables s.sub.j.sup.z(t) and N effective magnetic field variables B.sub.j.sup.z(t) in a predetermined order, wherein “t” represents a point in time in the calculation period τ, and “z” represents the z-axis, and wherein the co-processor alternates between calculating a spin variable of the N spin variables and a magnetic field variable of the N magnetic field variables until it has determined each of the N spin variables and N magnetic field variables over the calculation period τ, the co-processor comprising: a pipeline processor configured to perform multiplication and summation computation in a time-series manner as part of the local-field response computation, wherein the pipeline processor executes computation of, in which k is an index of t and specifies a point in time in calculation period τ, i and j represent spin sites, and J.sub.ij and g.sub.j are parameters for setting a problem, wherein J.sub.ij represents the value of an inter-variable interaction based on information stored in the main memory, and wherein the B.sub.j.sup.z(t.sub.k) is calculated by using s.sub.i.sup.z(t.sub.k−1) at every site i where J.sub.ij is not equal to 0, a parallel processor configured to perform parallel processing about N sites as part of the local-field response computation, wherein the parallel processor executes computation of s.sub.j.sup.z(t.sub.k)=f.sub.1(B.sub.j.sup.z(t.sub.k), t.sub.k), wherein f.sub.1 is defined according to the following equation: f.sub.1(B.sub.j.sup.z(t.sub.k), t.sub.k)=sin(arctan (B.sub.j.sup.z(t.sub.k)/B.sub.j.sup.x(t.sub.k)), wherein “z” represents the z-axis and “x” represents the x axis, a buffer configured to temporarily store N spin variables s.sub.j.sup.z(t), one or more electrical switches configured to transfer the N spin variables s.sub.j.sup.z(t) temporarily stored in the buffer to the pipeline processor.
2. The quantum computing apparatus according to claim 1, wherein in the pipeline processor, N effective magnetic field variables B.sub.1.sup.z, B.sub.2.sup.z, B.sub.N.sup.z are calculated sequentially in an order starting from B.sub.1.sup.z and ending at B.sub.N.sup.z by performing pipeline processing, using the N spin variables s.sub.j.sup.z that are stored in the buffer.
3. The quantum computing apparatus according to claim 1, wherein the spin variables s.sub.j.sup.z and effective magnetic field variables B.sub.j.sup.z are composed of multi-bits.
4. The quantum computing apparatus according to claim 1, wherein the spin variables s.sub.j.sup.z are configured with multi-bits, and the N s.sub.j.sup.z's that are stored in the buffer are transferred using the one or more electrical switches beginning at the least significant bit (LSB), wherein the processing of s.sub.j.sup.z in the pipeline processor is performed beginning with the LSB and is performed in a time-series manner.
5. The quantum computing apparatus according to claim 1, wherein when the N s.sub.j.sup.z's stored in the buffer are transferred to the one or more electrical switches, s.sub.j.sup.z is set to be a time-direction analog value, and s.sub.j.sup.z is processed in analog format when it is processed in the pipeline processor.
6. The quantum computing apparatus according to claim 1, wherein the N spin variables s.sub.j.sup.z (j=1, 2, . . . , N) take a range of −1≤s.sub.j.sup.z≤1, and an assignment is set with local fields g.sub.j and inter-variable interactions J.sub.ij (i, j=1, 2, . . . , N), wherein in the co-processor, computing is discretely performed from t=t.sub.0 (t.sub.0=0) to t.sub.m (t.sub.m=τ), wherein in calculating variables s.sub.j.sup.z(t.sub.k) at each time t.sub.k, B.sub.j.sup.z(t.sub.k)={Σ.sub.iJ.sub.ijs.sub.i.sup.z(t.sub.k−1)+g.sub.j}.Math.t.sub.k/τ is calculated using values of variables s.sub.i.sup.z(t.sub.k−1) (i=1, 2, . . . , N) at time t.sub.k−1 that is earlier than time t.sub.k, s.sub.j.sup.z(t.sub.k) is determined as s.sub.j.sup.z(t.sub.k)=f.sub.1 (B.sub.j.sup.z(t.sub.k), t.sub.k), where the function f.sub.1 is defined in such a manner that the range of s.sub.j.sup.z(t.sub.k) is −1≤s.sub.j.sup.z(t.sub.k)≤1, and wherein as a time step proceeds from t=t.sub.0 to t=t.sub.m, s.sub.j.sup.z approaches −1 or 1, and a final solution s.sub.j.sup.zd is determined, wherein if s.sub.j.sup.z<0, then s.sub.j.sup.zd=−1, and if s.sub.j.sup.z>0, then s.sub.j.sup.zd=1.
7. The quantum computing apparatus according to claim 6, wherein correction parameters r.sub.s and r.sub.B are added, and θ is defined as an angle representing the orientation of a spin by tan θ=r.sub.B.Math.B.sub.j.sup.z(t.sub.k)/B.sub.j.sup.x (t.sub.k), wherein s.sub.j.sup.z(t.sub.k) is determined by s.sub.j.sup.z(t.sub.k)=r.sub.s.Math.sin θ, and therefore the function f.sub.1 is f.sub.1(B.sub.j.sup.z(t.sub.k), t.sub.k)=r.sub.s.Math.sin(arctan (r.sub.B.Math.B.sub.j.sup.z(t.sub.k)/B.sub.j.sup.x (t.sub.k))).
8. The quantum computing apparatus according to claim 6, wherein at each time t.sub.k, if s.sub.j.sup.z(t.sub.k)<0, s.sub.j.sup.zd (t.sub.k)=−1 is set, and if s.sub.j.sup.z(t.sub.k)>0, s.sub.j.sup.zd(t.sub.k)=1 is set, H.sub.p (t.sub.k)=−Σ.sub.i>jJ.sub.ijs.sub.j.sup.zd (t.sub.k) s.sub.j.sup.zd (t.sub.k)−Σ.sub.jg.sub.js.sub.j.sup.zd (t.sub.k) is calculated at each time t.sub.k, with the computation continuing until t=t.sub.m, wherein H.sub.p represents a Hamiltonian of a physical system, and the final solution is s.sub.j.sup.zd (t.sub.k′) at time t.sub.k′, at which H.sub.p(t.sub.k) is minimum as H.sub.p(t.sub.k′)=min [H.sub.p(t.sub.k)].
9. The quantum computing apparatus according to claim 6, wherein computation performed in the pipeline processor uses analog computation on a time-axis, wherein a digital-to-time converter is installed on the buffer, and a multi-bit digital value is converted into a time-direction analog value.
10. The quantum computing apparatus according to claim 1, wherein the correction parameters include r.sub.s, which represents the magnitude of a spin, and r.sub.B, which represents an effect of quantum entanglement.
11. The quantum computing apparatus according to claim 1, wherein the quantum computing apparatus is configured to be constructed on a single computer.
12. The quantum computing apparatus according to claim 1, wherein the quantum computing apparatus is configured to be constructed on different computers connected through the network, wherein each of the main memory, the processor, the pipeline processor, and the parallel processor are placed on different computers in the network.
13. The quantum computing apparatus according to claim 1, wherein the co-processor is configured as a one-chip co-processor (sub-processing device), and wherein the co-processor is added to a configuration of a non-quantum computer.
14. The quantum computing apparatus according to claim 1, wherein the co-processor is configured with a Field Programmable Gate Array (FPGA).
15. The quantum computing apparatus according to claim 1, wherein the co-processor is configured with an Application Specific Integrated Circuit (ASIC).
Description
BRIEF DESCRIPTION OF DRAWINGS
(1)
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
(11)
(12)
(13)
(14)
DESCRIPTION OF EMBODIMENTS
(15) Various embodiments of the present invention will be described below together with the principle of computation with reference to the accompanying drawings. However, the present invention is not limited to descriptions in embodiments that will be described below. It is apparent that a person with the same expertise can modify a specific configuration of the present invention within a range that does not depart from the nature and gist of the present invention.
(16) For the configuration of the invention that will be described below, the same portion or portions that have similar functions are given the same reference numerals in different drawings, and the same descriptions are frequently omitted.
(17) The terms “first”, “second”, “third”, and so forth in the present specification are used for distinguishing constituents, and the terms do not necessarily restrict the number itself or the order itself. Furthermore, the number for distinguishing the constituents is used context-by-context, and the number that is used in one context does not necessarily refer to the same constituent in other contexts. Furthermore, a constituent that is identified by a certain number is not prevented from being part of a constituent that is identified by a different number.
(18) In some cases, the drawings are primarily used to provide a simple understanding of the invention, and characteristics of constituents of the invention illustrated in the drawings, such as the constituents' respective positions, sizes, shapes, ranges, etc., do not show their actual respective positions, sizes, shapes, ranges, etc. For this reason, the present invention does not necessarily impose any limitation on the positions, sizes, shapes, ranges, etc. based on how they are illustrated in the drawings.
(19) Adiabatic quantum computing is also called quantum annealing, and it is a method where the concept of classical annealing has been quantum-mechanically expanded. That is, adiabatic quantum computing is interpreted as a computing method that can classically operate in nature, and to which quantum-mechanical effects are added in order to improve computing performance in terms of speed and the probability of successful solutions. Hence, in the present embodiment, the computing apparatus itself is produced classically, but a computing method or the apparatus is intended to include quantum-mechanical effects in the computation process through introducing parameters that are quantum-mechanically determined.
(20) Based on the concept described above, the following embodiments describe a classical methodology (algorithm) for obtaining the ground state as the solution and configuring an apparatus for achieving this ground state solution, wherein adiabatic quantum computing is referred to for helping understanding.
Embodiment 1
(21) Embodiment 1 describes the principle of the present embodiment, starting to describe it quantum-mechanically and transforming it to a classical form.
(22) A problem for searching for the ground state of an Ising spin Hamiltonian given by Equation (3) includes problems classified as so-called NP-hard problems, which are known to be useful problems (NPL 3).
(23)
(24) J.sub.ij and g.sub.j are parameters for setting the problem, and σ{circumflex over ( )}.sub.j.sup.z is the z component of the Pauli spin matrix and takes the eigenvalue of ±1. i and j represent spin sites. The Ising spin is a variable that takes only ±1 as a value, and Equation (3) expresses an Ising spin system because the eigenvalue of σ{circumflex over ( )}.sub.j.sup.z is ±1. The Ising spin in Equation (3) does not need to be a spin as the name implies, and it may be anything physical as long as the Hamiltonian is described by Equation (3). For example, high and low states of a logic circuit can be associated with +1 and −1; vertical and horizontal polarizations of light can be associated with +1 and −1; or 0 and π phases are associated with +1 and −1. In the method in the present embodiment, the computing system is prepared in the ground state for the Hamiltonian of Equation (4) at time t=0 as similar to that in adiabatic quantum computing.
(25)
(26) γ is a proportional constant that is determined in accordance with the magnitude of an external field that is uniformly applied to all sites j, and σ{circumflex over ( )}.sub.j.sup.x is the x component of the Pauli spin matrix. When the computing system consists of spins themselves, the external field means a magnetic field. Equation (4) corresponds to applying a transverse field, and the ground state is the case where all spins are directed to the x-direction (γ>0). The Hamiltonian for setting a problem is defined using an Ising spin system that has only the z components, but the x component of the spins appears in Equation (4). Therefore, the spins in the computation process are not characterized as Ising spins but are instead assumed to be vectors (Bloch vectors). The computation starts with the Hamiltonian of Equation (4) at t=0. The Hamiltonian gradually changes with the passage of time t; it is finally transformed to the Hamiltonian described in Equation (3); and the ground state for the Hamiltonian is the solution.
(27) Let us consider how the spin responds to the external field in the case of a one-spin system first. The Hamiltonian of the one-spin system is given by Equation (5).
Ĥ=−B.Math.{circumflex over (σ)} [Equation 5]
(28) Here, σ{circumflex over ( )} represents the three components of the Pauli spin matrices as a vector. The ground state is the case where the spin is directed to the magnetic field direction. Let <•> be a quantum-mechanical expectation value. The ground state is written as <σ{circumflex over ( )}>=B/|B|. Because an adiabatic process continues to maintain the ground state, the direction of the spin always follows that of the magnetic field.
(29) The description so far can be expanded to a multi-spin system. The Hamiltonian is given by Equation (4) at t=0. This equation means that a magnetic field B.sub.j.sup.x=γ is applied to all spins. The x component of the magnetic field is gradually weakened in accordance with B.sub.j.sup.x=γ(1−t/τ) at t>0. The z component of the effective magnetic field which is comprised of inter-spin interactions is given by Equation (6).
(30)
(31) Because the spin direction can be prescribed with <σ{circumflex over ( )}.sub.j.sup.z>/<σ{circumflex over ( )}.sub.j.sup.x>, if the direction of the spin follows that of the effective magnetic field, the spin direction is determined by Equation (7).{circumflex over (σ)}.sub.j.sup.z
/
<{circumflex over (σ)}.sub.j.sup.x
=
{circumflex over (B)}.sub.j.sup.z(t)
/
{circumflex over (B)}.sub.j.sup.x(t)
[Equation 7]
(32) Although Equation (7) is based on a quantum-mechanical description, it is an equation related to classical quantities because expectation values are taken, unlike Equations (1) through (6). Because there is no non-local correlation (quantum entanglement) of quantum mechanics in classical systems, the orientation of the spin should be completely determined by the local field in each site, and Equation (7) determines the behavior of classical spin systems. Because there is non-local correlation in quantum systems, Equation (7) will be modified. However, the modification will be described in Embodiment 2 and subsequent embodiments. The present embodiment describes the classical system prescribed with Equation (7) in order to describe a basic form.
(33)
(34) The spins in the present embodiment are vectorial because the x component is added in addition to the z component. A vectorial behavior can be also understood from
(35) In the procedure 100 in
s.sub.j.sup.z(t.sub.k)/s.sub.j.sup.x(t.sub.k)=B.sub.j.sup.z(t.sub.k)/B.sub.j.sup.x(t.sub.k) [Equation 8]
(36) Because Equation (8) is rewritten from Equation (7) to express a relation between the classical quantities, the symbol <•> is not used.
(37) Next, the effective magnetic field at t=t.sub.k+1 is calculated using values of the spins at t=t.sub.k. The effective magnetic field at each time is specifically written by Equations (9) and (10).
(38)
(39) In the following, the spin and the effective magnetic field will be alternately determined in accordance with a procedure 100 schematically illustrated in
(40) The magnitude of a spin vector is 1 in the classical system. Each component of the spin vector in this case is described as s.sub.j.sup.z(t.sub.k)=sin θ, s.sub.j.sup.x(t.sub.k)=cos θ using the parameter θ that is defined with tan θ=B.sub.j.sup.z(t.sub.k)/B.sub.j.sup.x(t.sub.k). These are rewritten to s.sub.j.sup.z(t.sub.k)=sin(arctan (B.sub.j.sup.z(t.sub.k)/B.sub.j.sup.x(t.sub.k))) and s.sub.i.sup.x (t.sub.k)=cos(arctan (B.sub.j.sup.z(t.sub.k)/B.sub.j.sup.x(t.sub.k))).
(41) As apparent from Equation (9), the variable in B.sub.j.sup.x(t.sub.k) is only t.sub.k, and τ and γ are constants. Therefore, s.sub.j.sup.z(t.sub.k)=sin(arctan (B.sub.j.sup.z(t.sub.k)/B.sub.j.sup.x(t.sub.k))) and s.sub.j.sup.x (t.sub.k)=cos(arctan (B.sub.j.sup.z(t.sub.k)/B.sub.j.sup.x(t.sub.k))) can also be generally expressed as functions like s.sub.j.sup.z(t.sub.k)=f.sub.1(B.sub.j.sup.z(t.sub.k), t.sub.k) and s.sub.i.sup.x (t.sub.k)=f.sub.2 (B.sub.j.sup.z(t.sub.k), t.sub.k) arguments of which are B.sub.j.sup.x(t.sub.k) and t.sub.k.
(42) Because the spin is described as a two-dimensional vector, two components of s.sub.j.sup.z(t.sub.k) and s.sub.j.sup.x(t.sub.k) appear, but if B.sub.j.sup.z(t.sub.k) is determined based on Equation (10), s.sub.j.sup.x(t.sub.k) is not necessary. This corresponds to the fact that a spin state can be described only with s.sub.j.sup.z(t.sub.k), the range of which is [−1,1]. Because the final solution s.sub.j.sup.zd needs to be s.sub.j.sup.zd=−1 or 1, if s.sub.j.sup.z(τ)>0, s.sub.j.sup.zd=1, and if s.sub.j.sup.z(τ)<0, s.sub.j.sup.zd=−1.
(43)
(44) So far, what has been described is the method for determining a solution when a problem is expressed with Equation (3). Next, let us describe how a specific problem is expressed with Equation (3), which includes local fields g.sub.j and inter-variable interactions J.sub.ij (i, j=1, 2, . . . , N), by describing a specific example. As an example, let us consider a problem of an electric power supply management. In this case, the local field is assigned to be a quantity of natural phenomenon, such as temperature, or electric power consumption. That is, let local field g.sub.j (j=1 to 10) be the temperature at each district; let local field g.sub.j (j=11 to 20) be electric power consumption at public facilities (e.g., a library, a theater, a supermarket, etc.) in each district; and let local field g.sub.j (j=21 to 100) be the electric power consumption at each household.
(45) Let σ{circumflex over ( )}.sub.j.sup.z (j=11 to 100) be a variable representing where electric power is distributed. Here, because j=1 to 10 is a subscript representing a temperature, σ{circumflex over ( )}.sub.j.sup.z (j=1 to 10) does not represent an electric power distribution, and it is considered as a variable for expressing how temperature influences activities at the public facilities and households. Because the temperature is determined with natural phenomena and thus is hardly influenced by artificial factors, the local field g.sub.j (j=1 to 10) is set to such a high value that it results in σ{circumflex over ( )}.sub.j.sup.z (j=1 to 10) not being influenced by other variables.
(46) The degree of correlation between the temperature and each of the public facilities and households is expressed through inter-variable interaction J.sub.ij. The correlation between the temperature and the electric power consumption is also influenced by the concept of electric power sharing that has been proposed in recent years. The following is an example of electric power sharing: to reduce electric power consumption during a span of time when air conditioning is necessary, a household member moves from his or her household to a public facility so that the household member does not use an air conditioner at his or her household during the time span at which air conditioning is necessary. The movement of the household member from his or her household to a public facility is expressed through inter-variable interaction J.sub.ij, the value of which is not zero for subscript i=11 to 20 representing public facilities and for subscript j=21 to 100 representing households. However, because the interaction based on this concept is smaller than direct correlations between the temperature and the activities in the households, the value of the inter-variable interaction J.sub.ij is relatively small. Furthermore, because households are not managed independently and exert influences on each other, the inter-variable interactions J.sub.ij (i, j=21 to 100) are finite as well. In accordance with the considerations described above, the inter-variable interactions J.sub.ij are specifically set, and an optimal electric power supply distribution (eigenvalue of σ{circumflex over ( )}.sub.j.sup.z=+1 or −1) is obtained through searching for the ground state of Equation (3).
(47) When each item cannot be expressed with one variable of σ{circumflex over ( )}.sub.j.sup.z, plural σ{circumflex over ( )}.sub.j.sup.z's may be used, and according to this, plural local fields g.sub.j and plural inter-variable interactions J.sub.ij are used for each item. Although σ{circumflex over ( )}.sub.j.sup.z is a variable representing an electric power distribution, it correlates with movements of human being's (e.g. the movement of a household member from his or her household to a public utility) and whether public utilities are open or closed. For this reason, the obtained solution may be interpreted as “A certain public utility should be closed.”
(48) Application of Equation (3) described in this embodiment is not limited to the problem of electric power supply management. The method in this embodiment is applicable to many problems, such as tour course optimization, vehicle guidance for avoiding traffic congestion, circuit design, product supply management, scheduling, and financial asset selection.
Embodiment 2
(49) In Embodiment 1, we have transferred quantum-mechanical quantities to classical quantities by taking expectation values using quantum-mechanical equations, and explained the algorithm for the classical quantities using
(50) The characteristics of quantum mechanics include a linear superposition state and quantum entanglement (non-local correlation). For example, let us consider a qubit that takes the two states of |0> and |1>. A linear superposition state is a sum state like |Ψ>=α|0>+β|1>. The attribute of the linear superposition state has already been incorporated through the vectorial treatment of spins in Embodiment 1. That is, if s.sub.j.sup.z(t.sub.k)=1, the state is |0>, and if s.sub.j.sup.z(t.sub.k)=−1, the state is |1>; |0> and |1> correspond to a state in a case in which the z-axis is selected as the quantization axis for spins; for s.sub.j.sup.x(t.sub.0)=1 corresponding to an x-directed spin, the state is expressed with |ψ(t.sub.0)>=(|0>+|1>)/√2; and if s.sub.j.sup.x(t)=−1, the state is |ψ(t.sub.0)>=(|0>−|1>)/√2. Considering the x-axis means considering the linear superposition.
(51) In the present embodiment, we describe the quantum entanglement that is another quantum mechanical effect. Let us consider a state in a two-qubit system described with |Ψ>=α|00>+β|11> as an example. |α|.sup.2+|β|.sup.2=1 is satisfied due to the normalization condition. The first and second variables in |00> and |11> are the first and second qubits, respectively. Because of σ{circumflex over ( )}.sub.j.sup.z|0>=|0> and σ{circumflex over ( )}.sub.j.sup.z|1>=−|1> based on a property of the Pauli spin matrix, σ{circumflex over ( )}.sub.1.sup.z|ψ>=α|00>−β|11>, and thus <Ψ|σ{circumflex over ( )}.sub.1.sup.z|Ψ>=|α|.sup.2−|β|.sup.2 is obtained. Similarly, because of σ{circumflex over ( )}.sub.1.sup.x|0>=|1> and σ{circumflex over ( )}.sub.1.sup.x|1>=|0>, σ{circumflex over ( )}.sub.1.sup.x|Ψ>=α|10>+β|01>, and thus <Ψ|σ{circumflex over ( )}.sub.1.sup.x|Ψ>=0 is obtained. Furthermore, because of σ{circumflex over ( )}.sub.1.sup.y|0>=i|1> and σ{circumflex over ( )}.sub.1.sup.y|1>=−i|0>, σ{circumflex over ( )}.sub.1.sup.y|Ψ>=iα|10>−iβ|01>, and thus <ψ|σ{circumflex over ( )}.sub.1.sup.y|Ψ>=0 is obtained. Therefore, <σ{circumflex over ( )}.sub.1.sup.x(τ)>.sup.2+<σ{circumflex over ( )}.sub.1.sup.y (τ)>.sup.2<σ{circumflex over ( )}.sub.1.sup.z(τ)>.sup.2=(|α|.sup.2−|β|.sup.2).sup.2. As an extreme example, when α=β corresponding to the maximum quantum entanglement, then <σ{circumflex over ( )}.sub.1.sup.x(τ)>.sup.2+<σ{circumflex over ( )}.sub.1.sup.y(τ)>.sup.2+<σ{circumflex over ( )}.sub.1.sup.z(τ)>.sup.2=0. The magnitude of the first spin vector is zero. Such a case does not occur if there is no quantum entanglement. For example, let us consider a one-spin system, and let us assume a state |Ψ>=α|0>+β|1>. Because of <Ψ|σ{circumflex over ( )}.sub.1.sup.z|Ψ>=|α|.sup.2−|β|.sup.2, <Ψ|σ{circumflex over ( )}.sub.1.sup.x|Ψ>=α*β+αβ*, and <Ψ|σ{circumflex over ( )}.sub.1.sup.y|Ψ>=iαβ*−iα*β, <σ{circumflex over ( )}.sub.1.sup.x(τ)>.sup.2+<σ{circumflex over ( )}.sub.1.sup.y(τ)>.sup.2+<σ{circumflex over ( )}.sub.1.sup.z(τ)>.sup.2=(|α|.sup.2+|β|.sup.2).sup.2=1 is satisfied, and the magnitude is retained as 1.
(52) As described above, although this is one example, it is understood that when quantum entanglement is present, the magnitude of the spin vector is not retained as 1. Although the magnitude of the spin vector is a fixed value of 1 in classical systems, if there is quantum entanglement, the magnitude of the spin vector is not 1. In Embodiment 1, based on the assumption that the magnitude of the spin vector is 1, a parameter θ was defined with tan θ=<B.sub.j.sup.z(t)>/<B.sub.j.sup.x(t)>, and a spin was described with s.sub.j.sup.z(t.sub.k)=sine and s.sub.j.sup.x(t.sub.k)=cos θ. However, this method does not reflect the property of the quantum entanglement inherent in this system. Thus, let us consider how the quantum entanglement is reflected.
(53) As described above, the spin vector is not retained as 1. Hence, let us define a correction parameter r.sub.s (0≤r.sub.s≤1) that represents the magnitude of the spin vector. Here, the proportional relationship in Equation (8) is not satisfied because the spin vector is not retained as 1. For this reason, a correction parameter r.sub.B is defined, and Equation (8) is modified. Equation (11) represents a modified form of Equation (8).
s.sub.j.sup.z(t.sub.k)/s.sub.j.sup.x(t.sub.k)=r.sub.BB.sub.j.sup.z(t.sub.k)/B.sub.j.sup.x(t.sub.k) [Equation 11]
(54) Let us define an angle θ representing the orientation of the spin with tan θ=s.sub.j.sup.z(t.sub.k)/s.sub.j.sup.x(t.sub.k) as similar to the case of Embodiment 1. When this is substituted into Equation (11), tan θ=r.sub.B.Math.B.sub.j.sup.z(t.sub.k)/B.sub.j.sup.x(t.sub.k) is obtained. Because the magnitude of the spin is r.sub.s, s.sub.j.sup.z(t.sub.k)=r.sub.s.Math.sin θ and s.sub.j.sup.x(t.sub.k)=r.sub.s.Math.cos θ are obtained. With these relational equations, the effects of the quantum entanglement are incorporated into the classical algorithm through the correction parameters r.sub.s and r.sub.B. If the equations are written without using θ, then s.sub.j.sup.z(t.sub.k)=r.sub.s.Math.sin(arctan(r.sub.B.Math.B.sub.j.sup.z(t.sub.k)/B.sub.j.sup.x(t.sub.k))) and S.sub.j.sup.x(t.sub.k)=r.sub.s.Math.cos(arctan(r.sub.B.Math.B.sub.j.sup.z(t.sub.k)/B.sub.j.sup.x(t.sub.k))). Furthermore, if r.sub.s and r.sub.B are incorporated into functions f.sub.1 and f.sub.2, then s.sub.j.sup.z(t.sub.k)=f.sub.1(B.sub.j.sup.z(t.sub.k), t.sub.k) and s.sub.j.sup.x(t.sub.k)=f.sub.2 (B.sub.j.sup.z(t.sub.k), t.sub.k).
(55) These parameters r.sub.s and r.sub.B are originated in quantum entanglement. It is preferable that they are finely controlled depending on t.sub.k, s.sub.j.sup.z(t.sub.k), and s.sub.j.sup.x(t.sub.k), or t.sub.k, B.sub.j.sup.z(t.sub.k), and B.sub.j.sup.x(t.sub.k). However, it is difficult to accurately acquire information related to the quantum entanglement in principle, and we need to consider any method to cope with this difficulty. Actually, the parameters will be determined semi-empirically depending on the problem, but a general determination method is as follows.
(56) r.sub.B can change its sign and reflects quantum entanglement most effectively. On the other hand, r.sub.s is a correction factor satisfying 0≤r.sub.s≤1, and has a smaller role than r.sub.B. Therefore, r.sub.s may be set to be approximately equal to 1 over a total computation time, and the quantum effect is mainly incorporated through r.sub.B. Because there is no quantum entanglement at the beginning of the computation, r.sub.B=1 is set at t=0, and r.sub.B is set to gradually approach zero at t>0. Most of the spins converge to s.sub.j.sup.z=1 or −1 near t=τ, but some of the spins behave vaguely about whether s.sub.j.sup.z>0 or s.sub.j.sup.z>0. It is those poor-convergence spins that determine whether the computation succeeds or not. Therefore, when t approaches τ, r.sub.B is determined to be optimal for those spins. Because the effect of the quantum entanglement should be incorporated to the maximum, r.sub.B is set to be nearly zero. Because the orientation of the spins that converge to s.sub.j.sup.z=1 or −1 is stable, setting nearly zero does not lead to many adverse results.
(57) So far, we have described a method to make r.sub.B time-dependent. It is also effective to make r.sub.B magnetic-field-dependent. When B.sub.j.sup.z(t.sub.k)/B.sub.j.sup.x(t.sub.k) is nearly equal to zero, s.sub.j.sup.z(t.sub.k)/s.sub.j.sup.x(t.sub.k) is necessarily indefinite. Therefore, let B.sub.j.sup.z(t.sub.k)/B.sub.j.sup.x(t.sub.k)=B.sub.zx and let r.sub.B=r.sub.B(B.sub.zx); it is effective to make r.sub.B magnetic-field-dependent as r.sub.B(“B.sub.zx is nearly equal to zero”)<r.sub.B(“|B.sub.zx|>>°”) at all times t.
(58) When there is no specific feature between sites, r.sub.s and r.sub.B should not be site-dependent, but when site-dependent features are known in advance, r.sub.s and r.sub.B should be site-dependent in accordance with the features. This will lead to an improvement in the success probability of solutions.
(59)
Embodiments 3
(60) In Embodiments 1 and 2, we have described the principle of the computation and the computation algorithm. In Embodiment 3, we will describe an example in which an apparatus is configured such that it is able to run the algorithm.
(61)
(62) The configuration described above can be constructed from a single computer, or it can be constructed from different computers connected through a network, in which arbitrary parts, such as a main memory device 201, a general computing device 202, a control device 203, an auxiliary storage device 204, an input device 205, or an output device 206, are placed on those different computers.
(63) General computation is performed in the same manner as in an ordinary computing apparatus; data are transmitted and received between the main memory device 201 that is a storage unit and the general computing device 202 that is a computing unit; and the computation is executed by repeating the procedure. Here, the computation is controlled by the control device 203 that is a control unit. A program executed in the general computing device 202 is stored in the main memory device 201 that is the storage unit. When the main memory device 201 has an insufficient memory capacity, the auxiliary storage device 204 that is similarly a storage unit is used.
(64) Furthermore, parameters that are necessary for a cross computing unit, an individual-computing unit, and a switch unit, which will be described below, are stored in the main memory device 201 and the auxiliary storage device 204 as well. The input device 205 is used for inputting data, a program, and the like, and the output device 206 is used for outputting results. For the input device 205, not only a manual input device such as a keyboard but also an interface for a network connection can be used. Furthermore, the interface serves as the output device as well.
(65) The local-field response computation, as described in Embodiments 1 and 2 (
(66)
(67) The computation of B.sub.j.sup.z(t.sub.k)-to-s.sub.j.sup.z(t.sub.k) was expressed as s.sub.j.sup.z(t.sub.k)=f.sub.1(B.sub.j.sup.z(t.sub.k), t.sub.k) in Embodiments 1 and 2. As described in Embodiments 1 and 2, the function f.sub.1 is a rather complicated function that includes trigonometric functions, but because the computation is executed independently site-by-site, the individual-computing unit 1030 can perform parallel processing about N sites. Parameters, such as r.sub.s and r.sub.B, that are necessary in the function flare stored in the main memory device 201. They are transferred to the individual-computing unit 1030 according to an instruction of the control device 203.
(68) The computation of s.sub.j.sup.z(t.sub.k−1)-to-B.sub.j.sup.z(t.sub.k) is based on Equation (10). In order to determine each B.sub.j.sup.z(t.sub.k), s.sub.j.sup.z(t.sub.k−1) at every site i that satisfies J.sub.ij≠0 is used. In the cross computing unit 1020, calculations of B.sub.1.sup.z(t.sub.k), B.sub.2.sup.z(t.sub.k), . . . , B.sub.N.sup.z(t.sub.k) are performed in this order. s.sub.i.sup.z(t.sub.k−1), which is needed in calculations, is temporarily stored in a buffer 1040, and only necessary s.sub.i.sup.z(t.sub.k−1) is transferred from the buffer 1040 to the cross computing unit 1020 through the switch unit 1010. Information on J.sub.ij is stored in the main memory device 201, and in accordance with this J.sub.ij-related-information, on/off switching and the computation in the cross computing unit 1020 is performed. The computation is controlled by the control device 203. The B.sub.j.sup.z(t.sub.k) which was obtained is transferred to the individual-computing unit 1030, and now one cycle of the repetitive computation has been accomplished.
(69) In the present embodiment, it is ideal if we can arbitrarily set all interactions in N spin systems. If we intend N spins to operate simultaneously to achieve high-speed computation, the number of switches which may be used for arbitrarily setting the interactions is enormous. On the other hand, there is a need to reduce the number of switches in order to manufacture practical computing apparatuses. However, manufacturing computers with a reduced number of switches comes at the expense of high speed. That is, there is a trade-off between high speed and a reduction in the number of switches. Nevertheless, this issue is solved by separating the computing unit into the cross computing unit 1020 and the individual-computing unit 1030, and by performing pipeline processing in the cross computing unit.
(70) The cross computing unit is configured to be able to perform pipeline processing, and the individual-computing unit is configured to be able to independently calculate N variables. Thus, both units can perform high-speed computing. Moreover, because the cross computing unit performs the pipeline processing, the number of switches is reduced. Thus, high speed and a reduction in the number of switches are both achieved.
(71)
(72)
(73) The local-field response method achieves the highest speed if N s.sub.i.sup.z's can be processed in parallel. Because the individual-computing unit 1030 independently performs the computation for each site j, parallel processing is possible. The computation inside the cross computing unit 1020 is also semi-parallel owing to the pipeline processing as apparent from
(74) Moreover, if a plurality of cross computing units 1020 are arranged, the degree of parallelism further increases.
(75)
(76) The present embodiment so far has described the cross computing unit 1020 and the individual-computing unit 1030 from the viewpoints of principal constituents. Now let us see the repetitive computation described above from the perspective of a transmission path (see
(77) The local-field response computing device 1000 may be configured as a one-chip co-processor (sub-processing device), for example, and it is added to a configuration of an ordinary computer. It is achieved as a hardware configuration in
Embodiment 4
(78) Because s.sub.i.sup.z is a continuous quantity of [−1, 1] and the computation inside the cross computing unit 1020 is a simple computation consisting of only multiplication and summation, it is also effective to perform the computation inside the cross computing unit 1020 using analog computation on a time-axis.
(79)
(80)
(81) The multiplication and summation for the time-direction analog values are easy (NPL 4). The computation inside the cross computing unit 1020 is all performed in analog. Then, the time-direction analog values are converted into digital values in the TD conversion unit 1025, and the converted data are transferred to the individual-computing unit 1030.
Embodiment 5
(82) As seen in Equation (1) and others described above, the computation time is assumed to be τ, but there are several methods of determining the final solution. Embodiment 5 describes the various methods of determining the solution.
(83)
(84) In the first method, as illustrated in
(85) In the second method, the convergence of s.sub.j.sup.z is checked as illustrated in
(86) In the third method, as illustrated in
(87) That is, at each time t.sub.k, if s.sub.j.sup.z(t.sub.k)<0, s.sub.j.sup.zd (t.sub.k)=−1, and if s.sub.j.sup.z(t.sub.k)>0, (117) s.sub.j.sup.zd(t.sub.k)=1 (119); H.sub.p(t.sub.k)=−Σ.sub.i>jJ.sub.ijs.sub.i.sup.zd (t.sub.k)s.sub.j.sup.zd(t.sub.k)−Σ.sub.jg.sub.js.sub.j.sup.zd(t.sub.k) is calculated at each time t.sub.k (123); and the final solution is s.sub.j.sup.zd(t.sub.k′) at time t.sub.k′ at which H.sub.p(t.sub.k) is minimum (124). Here, the calculation of the energy is performed with the general computing device 202. For this reason, the values of s.sub.j.sup.z are transferred from the buffer 1040 to the main memory device 201.
(88) In the fourth method, as illustrated in
(89) A user determines which of the methods to use.
Embodiment 6
(90) We have described embodiments in which the time-axis is discretely treated as illustrated in
(91) The important time in the computation process is the time at which the sign of s.sub.j.sup.z changes. The frequency of s.sub.j.sup.z's changing the sign is relatively low near the starting and ending time in the computation. It is very high in the intermediate stage of the computation. Therefore, the first method of this embodiment is a setting method: the time interval is set to be large at the beginning of the computation as a program; next, the time interval is set to be small with the passage of time; and then the time interval is reversed and set to be large.
(92) The second method is a method in which the probability that the spin will be inverted is evaluated at each time and the time interval is set based on the result of the evaluation. An example is as follows. When the magnitudes of |s.sub.j.sup.z| are almost equal to each other in all spins, the probability of spin inversion is low. In this case, the time interval is set to be large. On the other hand, when the magnitude of of a specific spin is smaller than that of other spins, the probability of spin inversion is high. In this case, the time interval is set to be small. The following is a specific example of the method of determining the time interval. Let δt.sub.min be a minimum time interval. Let s.sub.ave(t.sub.k).sup.2 be the mean square of spins of all sites at time t.sub.k, and let s.sub.min(t.sub.k).sup.2 be the magnitude of the square of the minimum spin. That is, s.sub.ave(t.sub.k).sup.2=Σ.sub.j(s.sub.j.sup.z(t.sub.k)).sup.2/N and s.sub.min(t.sub.k).sup.2=min (s.sub.j.sup.z(t.sub.k).sup.2). Let [x] be the largest integer that is equal to or smaller than x. Let ΔT.sub.k+1, k=t.sub.k+1−t.sub.k=δt.sub.min×max(1, [100×(s.sub.min (t.sub.k).sup.2/s.sub.ave (t.sub.k).sup.2).sup.1/2]). In this case, the minimum value of the time interval is δt.sub.min, and the maximum value thereof is 100.Math.δt.sub.min. The calculation for determining the time interval is performed using the general computing device 202.
(93) A user determines which of the methods to use.
(94) In the present embodiments, the influence of temperature is estimated as follows. A voltage necessary for bit inversion is of the order of 1 V. Let e be the elementary charge and let k.sub.B be the Botzmann's constant. The reduced temperature T is about 1.2×10.sup.4 K due to T=eV/k.sub.B. This value is sufficiently higher than a room temperature of 300 K. Thus, the influence of temperature can be ignored in a configuration like that in the present embodiments, and the apparatus can operate at room temperature.
(95) The present invention is not limited to the embodiments described above, and includes various modified embodiments. For example, one or more configurations in a certain embodiment may be replaced by one or more configurations in other embodiments, and one or more configurations of other embodiments may be added to one or more configurations of other embodiments. Moreover, a configuration in some embodiments may be added to, deleted from, or replaced by one portion of a configuration in each embodiment.
INDUSTRIAL APPLICABILITY
(96) The present invention is applicable to analyzing various kinds of data such as Big Data.
REFERENCE SIGNS LIST
(97) 100 procedure 201 main memory device 202 general computing device 203 control device 204 auxiliary storage device 205 input device 206 output device 1000 local-field response computing device 1110 switch unit 1120 cross computing unit 1025 TD conversion unit 1130 individual-computing unit 1140 buffer 1045 DT conversion unit