DATA PROCESSING APPARATUS AND DATA PROCESSING METHOD

20210350267 · 2021-11-11

    Inventors

    Cpc classification

    International classification

    Abstract

    A data processing apparatus is configured to solve a specific problem using a simple hardware. The data processing apparatus comprises a state data processing unit configured to iterate update of state data by a predetermined time evolutional process, a cost evaluation unit configured to evaluate a cost function for current state data, and an error calculation unit configured to calculate error values relating to amplitude homogeneity of the current state data, wherein the state data processing unit performs the time evolutional process on the state data to update the current state data based on the cost function and the error values which are calculated by the error calculation unit.

    Claims

    1. A data processing apparatus which is configured to solve a given problem comprising: a state data processing unit configured to iterate update of state data by a predetermined time evolutional process; a cost evaluation unit configured to evaluate a cost function for current state data; and an error calculation unit configured to calculate error values relating to amplitude homogeneity of the current state data; wherein the state data is a set of variables, and the state data processing unit performs the time evolutional process on the state data to update the current state data based on the cost function and the error values which are relating to amplitude homogeneity of the current state data calculated by the error calculation unit.

    2. The data processing apparatus according to claim 1, the state data processing unit performs the time evolutional process on the state data to update current state data based on a gradient of the cost function and the error values.

    3. The data processing apparatus according to claim 2, the time evolutional process on the state data also updates the current state data based on an archetype potential that is changed from monostable to bistable according to the gain value based on the current state data.

    4. The data processor apparatus according to claim 1, wherein the error calculation unit is also configured to calculate at least one error value relating to constraints of a problem to be solved.

    5. The data processing apparatus according to claim 1, wherein the state data processing unit also performs projection of the state data onto a predetermined subspace.

    6. The data processing apparatus according to claim 1, also comprising: a modulation unit configured to perform calculation of a target amplitude based on the current state data, and wherein the error calculation unit calculates, taking advantage of the target amplitude, error values which is related to amplitude homogeneity of the current state data.

    7. The data processing apparatus according to claim 6, wherein the state data processing unit also performs projection of the state data onto a predetermined subspace defined by the target amplitude.

    8. The data processing apparatus according to claim 1, also comprising: a modulation unit configured to perform calculation of a gain value based on the current state data, and wherein, the state data processing unit is also configured to update an archetype monostable/bistable potential with the gain value calculated based on the current state data.

    9. The data processing apparatus according to claim 1, also comprising: a modulation unit configured to dynamically determine a change rate of the error values, and wherein the error calculation unit performs the time evolutional process on the error values to update the current error values based on the change rate of the error values, the error values, the state data, and the cost function.

    10. The data processing apparatus according to claim 8, wherein the gain value also depends on constant values that are calculated using the parameters of the cost function prior to the start of the time evolutional process.

    11. The data processing apparatus according to claim 1, wherein the state data processing unit performs the time evolutional process on the state data to update the current state data based on the cost function by using an Ising model quantum computation device, the Ising model quantum computation device comprising: a parametric oscillator that parametrically oscillates a plurality of pseudo spin pulses, the plurality of pseudo spin pulses being in correspondence with a plurality of Ising model spins in a pseudo manner and having mutually an identical oscillation frequency; a ring resonator in which the plurality of pseudo spin pulses circularly propagate; a tentative spin measuring unit that tentatively measures phases and amplitudes of the plurality of pseudo spin pulses every time the plurality of pseudo spin pulses circularly propagate in the ring resonator to tentatively measure pseudo spins of the plurality of pseudo spin pulses; a FPGA device configured as calculate, according to the output of the cost evaluation unit and the error values, the data which is to be synthesized to the measured pseudo spin pulses to obtain the time evolution of the state data, and output the result of the time evolution of the state data.

    12. The data processing apparatus according to claim 1, wherein the state data processing unit performs the time evolutional process on the state data and updates data based on the cost function by using a GPU or an FPGA or an analog electronic computing device configured to perform calculations of the state data, and the error values.

    13. A data processing method using a data processing apparatus having a state data processing unit, a cost evaluation unit, and an error calculation unit to solve a given problem comprising steps of: configuring the state data processing unit to iterate update of state data by a predetermined time evolutional process; configuring the cost evaluation unit to evaluate a cost function for current state data; and configuring the error calculation unit to calculate error values relating to amplitude homogeneity of the current state data; wherein the state data is a set of variables, and the state data processing unit is configured to perform the time evolutional process on the state data to update the current state data based on the cost function and the error values which are relating to amplitude homogeneity of the current state data calculated by the error calculation unit.

    14. A data processing method according to the claim 13, said data processing apparatus also comprising a modulation unit, and the method further comprising steps of: configuring the modulation unit to update error variables relating to amplitude homogeneity and constraints, to calculate a coupling term between the constraints and the current state data, and to calculate gain and saturation, configuring the state data processing unit to calculate an injection term, to update the state data, and to apply projection to the state data onto a valid subspace during configuring the state data processing unit to iterate update of state data by a predetermined time evolutional process, and configuring the error calculation unit to calculate error values relating to amplitude homogeneity of the current state data, and relating to constraints, wherein the iteration continues until a predetermined condition is satisfied.

    Description

    BRIEF DESCRIPTION OF THE DRAWINGS

    [0022] For a more complete understanding, and the advantages thereof, reference is now made to the following description taken in conjunction with the accompanying drawings.

    [0023] FIG. 1 illustrates the schematic structure of the data processing apparatus of an embodiment of the present invention.

    [0024] FIG. 2 illustrates the example of functional structure of the data processing apparatus of an embodiment of the present invention.

    [0025] FIG. 3 illustrates the schematic structure of the error calculation unit of an embodiment of the present invention.

    [0026] FIG. 4 illustrates an example of the state data processor of an embodiment of the present invention.

    [0027] FIG. 5 illustrates a schematic functional structure of an embodiment of the present invention.

    [0028] FIG. 6 illustrates a schematic flow chart of a process executed in the data processor of an embodiment of the present invention.

    EMBODIMENTS

    [0029] One of the preferred embodiments of this invention is, as shown in FIG. 1, a data processing apparatus 1 which comprises a processor 11, and an input-output device 13.

    [0030] In this embodiment, similar to Ising machines and Hopfield neural networks, the data processing apparatus 1 includes state-encoding units, in which the binary variables of a combinatorial optimization problem are mapped to analog variables, as described later. In addition to this, the data processing apparatus 1 also includes another subsystem, called error-encoding units, that corrects the mapping between the steady-states of the data processing apparatus 1 and the configurations of lower cost values of the combinatorial optimization problem, and the state-encoding units are connected asymmetrically to the error-encoding units.

    [0031] The processor 11 may be an FPGA which includes logic gates and memory blocks. In this embodiment, the processor 11 is configured to iterate update of the state data by a predetermined time evolutional process, to evaluate a cost function for the state data, and to calculate an error value relating to amplitude homogeneity of the state data. When updating the state data, the processor 11 also takes advantage of the error value and the cost function. The detail process in the processor 11 will be described later.

    [0032] The memory block in the processor 11 may store the data used in the process in the logic gates of the processor 11, such as the state data.

    [0033] The input-output (I/O) device 13 may include an input device such as a keyboard, a mouse, and the like. The I/O device 13 may also include a display to output information such as the state data, the value of the cost function, or the like according to instructions from the processor 11.

    [0034] The processes in the processor 11 are described hereinafter. In the following example, the problem to be solved by the data processing apparatus 1 according to an embodiment of present invention is a combinational optimization problem. In the combinational optimization problem, a cost function is defined, and as the cost function of the combinatorial optimization problem is minimized, the combinatorial optimization problem is solved.

    [0035] Here, the cost function is denoted by V.sup.(0) (σ), where V.sup.(0) (σ) is a real number for any vector σ, and the vector σ is σ={σ.sub.i}.sub.i(i=1, 2, . . . , N), with σ.sub.i=±1. The cost function V.sup.(0) (σ) is defined by the set of parameters {M.sub.0k}.sub.k (k=1, 2, . . . ) where M.sub.0k is a vector, a matrix, or, more generally, a tensor. The number of Boolean variables (or size of the problem) is denoted by N.

    [0036] In the case of constrained optimization problems, acceptable solutions constitute a subset, denoted by S, of the whole space of configurations. Depending on the constraints of a given combinatorial optimization problem, the subset S can be defined using equality and/or inequality constraints given as follows:

    [00001] σ S { A k σ = b k , ( equality constraints ) C k σ d k , ( inequality constraints ) ( 1 )

    here, k, k′=1, 2, . . . , K.

    [0037] The matrices and vectors A.sub.k, C.sub.k, b.sub.k, and d.sub.k are defined by another set of parameters denoted by {N.sub.ki}.sub.i or {M.sub.ki}.sub.i where k is the index of the constraint with k=1, 2, . . . , K, i=1, 2, . . . .

    [0038] The constraints are classified into two categories. The first set of constraints, called soft constraints of type I, are realized by adding penalty terms to the cost function and projecting the system in a valid subspace defined by these constraints. The total cost function V* that takes into account these constraints is given as follows:

    [00002] V * ( σ ) = 1 q 0 V ( 0 ) ( σ ) + 1 q 1 U ( 1 ) ( σ ) + . . . 1 q K I U ( K I ) ( σ ) ( 2 )

    where U.sup.(k) is the penalty term that is imposed by the constraint k. Here, q.sub.k is a constant positive parameter for k=1, 2, . . . , K.sub.I, and K.sub.1 is the total number of constraints in this subset. The value of the penalty term U.sup.(k)(σ) is minimal when the vector σ satisfies the constraint k. The penalty terms U.sup.(k) (σ) are functions which depend on the parameters {M.sub.ki}.sub.i, and the projection P to the valid subspace, and must be given as an input to the proposed system.

    [0039] The second set of constraints, called soft constraints of type II, are realized using an error-detection/error-correction feedback loop. Penalty terms V.sup.(k), which depend on parameters {N.sub.ki}.sub.i, with k=1, 2, . . . , K.sub.II, (and let K.sub.I+K.sub.II=K), must also be defined, and are used for error correction. Moreover, functions g.sub.k, which are positive when the constraints are not realized, are used for error detection. The functions g.sub.k are negative, when the constraints are realized.

    [0040] The choice of U.sup.(k), V.sup.(k), P, and g.sub.k depends on the combinatorial problems to be solved and their constraints. In other words, the U.sup.(k), V.sup.(k), P, and g.sub.k are set by the user of the data processing apparatus 1.

    [0041] An exemplary functional construction of the processor 11 is shown in FIG. 2. As shown in FIG. 2, one of the examples of the processor 11 is configured to be functionally include a state data processor 21, a cost evaluation unit 22, an error calculation unit 23, a modulation unit 24, and an output unit 25.

    [0042] The state data processor 21 is configured to iterate update of state data by a predetermined time evolutional process. The state data is a set of fixed-point variables x.sub.i (i=1, 2, . . . N), which is obtained by, for example, encoding the analog state.

    [0043] The state data processor 21, in this embodiment, iterates update of state data by a predetermined time evolutional process, projects the updated state data onto the valid subspace, and stores the projected updated state data, as new state data, in the memory block.

    [0044] Specifically, the state data processor 21 has processing units 210, a gain-dissipative simulator 211, and a projection unit 212. Each processing unit 210 is provided for processing state data x.sub.i (i=1, 2, . . . N), respectively. The gain-dissipative simulator 211 is an isolated (non-coupled) unit. The gain-dissipative simulator 211 gets state data x.sub.i and a linear gain p, and calculates a gradient descent of the potential V.sub.b. The calculation can be simplified to the following ordinary differential equation system that describe a gradient descent when I.sub.i=0:


    ∂.sub.tx.sub.i=f(x.sub.i)+I.sub.i.  (3)

    where f(x.sub.i)=−∂V.sub.b/∂x.sub.i and V.sub.b is the energy function or Lyapunov function of the isolated (non-coupled) units, such as a potential function:


    V.sub.b=−(−1+p)x.sub.i.sup.2/2+x.sub.i.sup.4/4,

    and I.sub.i will be described later.

    [0045] The energy function V.sub.b represents the paradigmatic bistable potential (archetype monostable/bistable potential) which can be monostable (when p<1) or bistable (when p>1) according to the value of the linear gain p. When V.sub.b is bistable, the state data x.sub.i converge to binary states at the lowest points of the potential V.sub.b when I.sub.i=0. Moreover, I.sub.i represents an external analog injection signal to the i-th processing unit 210. The external analog injection signal will be described later.

    [0046] The formula (3) can be rewritten as follows:


    ∂.sub.tx.sub.i=(−1+p)x.sub.i−x.sup.3.sub.i+I.sub.i,  (4)

    in which −x.sub.i, px.sub.i, and −x.sup.3.sub.i represents the terms related to the loss, the linear gain, and saturation of the state x, respectively.

    [0047] Note that the dynamics are described herein in the continuous-time domain using ordinary differential equations (ODEs), but that the system can also be operated in the discrete-time domain. The conversion from continuous to discrete time can be obtained by a simple Euler approximation, or the like, of the ODEs describing the system.

    [0048] The coupling between the processing units 210 of the state data processor 21 is implemented using the injection term I.sub.i given as follows:

    [00003] I i = .Math. k I i ( k ) . ( 5 ) where I i ( 0 ) = - ϵ 0 e i ( 0 ) V * ( x ) x i . ( 6 ) I i ( k ) = - ϵ k e i ( k ) V k ( x ) x i . ( 7 )

    here, k=1, 2, . . . K.sub.II.

    [0049] In the formulae (4) and (5), vector e.sup.(k) (whose elements are e.sub.i.sup.(k), 1=1, 2, . . . ) are the error signals; V* is the cost function with penalty terms that take into account soft constraints of type I; and V.sup.(k) are the penalty terms related to the kth soft constraint of type II. Lastly, ∈.sub.k are positive real parameter values. The types of constraints are described later.

    [0050] The effect of the input I.sub.i is to impose a gradient descent of the potentials v.sup.(k) (x). Note, however, that the gradient ∂V.sup.(k)(x)/∂x.sub.i is modulated by e.sub.i.sup.(k), i.e., the gradient vector is defined using the state-space, and is rescaled by the error signals. Each error signal e.sub.i.sup.(k) rescales the space vector x differently according to the constraint being imposed.

    [0051] Lastly, the gradients are summed over the indices k, taking into account the soft constraints of type II. Therefore, multiple constraints are in competition in the sum. A given constraint eventually wins when the amplitude of its rescaled gradient vector becomes much larger than the other ones.

    [0052] The Projection unit 212 performs projection of the state data onto a predetermined subspace. Specifically, in this embodiment, the state data vector x is projected onto the valid subspace at each iteration of updating the state data vector x using a projection operator P which is predetermined according to the constraints of type I.

    [0053] The projection is similar to Aiyer's method for the Hopfield Network.

    [0054] The effect of the projection operator can be described by considering the Euler steps of the time-evolution of vector x given as follows:


    x.sub.i(t+dt)=x′.sub.i(t)+[ƒ(x′.sub.i)+I.sub.i(x′)]dt  (8)

    where x′.sub.i(t) is the projection of x.sub.i(t) on the valid subspace using the projection operator P:


    x′.sub.i(t)=P[x.sub.i(t)]  (9)

    [0055] If there are no soft constraints of type I, the projection P is the identity operator, and the vector x′ is equal to the vector x.

    [0056] Note that the time-evolution of the system can also be described in the continuous time domain using algebraic differential equations in order to take into account the projection P.

    [0057] The cost evaluation unit 22 calculates the cost function of current state data.

    [0058] The error calculation unit 23 calculates at least an error value relating to amplitude homogeneity of the current state data. In this embodiment, the role of these error signals is to: (1) correct the heterogeneity in amplitudes of the state encoding units, and (2) allow an appropriate mapping of the constraints. Each error-encoding unit is usually connected to only a subset of state-encoding units. Note that the correction of amplitude heterogeneity can be interpreted as an equality constraint of an optimization problem on the analog space.

    [0059] In other words, combinatorial optimization on binary variables is an optimization problem on analog variables with the constraint that all amplitudes of the analog states are equal.

    [0060] As shown in FIG. 3, the error calculation unit 23 includes an error calculation subunit 231 and a plurality of subunits 232.

    [0061] The error calculation subunit 231 which calculates the error for amplitude heterogeneity, e.sup.(0), includes a time-evolution processor 2311 and an updater 2312. The time-evolution processor 2311 takes a target amplitude a with a >0 and a rate of change of this error signal β.sub.0, which are specified by the user at least at the time of initialization, and gives the error signals e.sup.(0), which is one of e.sup.(k) of index k=0 and that is related to the minimization of the cost function V*. These error signals correct the heterogeneity in amplitudes of the state data vector x.

    [0062] Specifically, the time-evolution processor 2311 calculates the error signals e.sup.(0) as:


    ∂.sub.te.sub.i.sup.(0)=−β.sub.0(x.sub.i.sup.2−a)e.sub.i.sup.(0).  (10)

    [0063] The updater 2312 updates the current e.sub.i.sup.(0)) by adding ∂.sub.t e.sub.i.sup.(0)dt to get updated e.sub.i.sup.(0) and stores e.sub.i.sup.(0) in the memory block as the error signal for the next iteration.

    [0064] Each one of the subunits 232 which calculates the error for constraints also includes a time-evolution processor 2321 and an updater 2322. The time-evolution processor 2321 takes a target function g.sub.i and a rate of change of this error signal β.sub.i, which are specified by the user at least at the time of initialization, and gives the error signals e.sup.(i), which is one of e.sup.(k) of index k=i and that is related to the minimization of the cost function V*. These error signals enforce the constraints of the problem upon the state data vector x.

    [0065] Specifically, the time-evolution processor 2311 calculates the error signals epi) as:


    ∂.sub.Le.sub.1.sup.(k)=−β.sub.1g.sup.(k)(e.sub.1.sup.(k),x)

    where the x is the vector of the state data, and g.sup.(k) (e.sub.i.sup.(k),x) is related to a constraint of the problem to be solved.

    [0066] Note that if there are no constraints according to the problem to be solved, any subunits 232 are not always required.

    [0067] The updater 2322 updates the current e.sub.i.sup.(k) by adding ∂.sub.t e.sub.i.sup.(k)dt to get updated e.sub.i.sup.(k):


    e.sub.i.sup.(k)custom-charactere.sub.i.sup.(k)+∂.sub.te.sub.i.sup.(k)dt

    and stores updated e.sub.i.sup.(k) in the memory block as the error signal for the next iteration.

    [0068] The error calculation unit 23 outputs current error values e.sub.i.sup.(k) (i=0, 1, 2 . . . ) to the state data processor 21.

    [0069] The modulation unit 24 performs calculation of parameter values such as a linear gain p, a target amplitude a, and a rate of change of error values β.sub.k based on the current state data. If the modulation unit 24 gives the parameters such as a target amplitude to the error calculation unit 23, the error calculation unit 23 may take advantage of the parameters given from the modulation unit 24, instead of values which are designated by a user.

    [0070] In this embodiment, the modulation unit 24 converts the analog state x into an acceptable Boolean configuration σ, with σ=C[x], at each step of the computation. Next, the modulation unit 24 takes advantage of this configuration in order to calculate the current value of the cost function V.sup.(0).

    [0071] In an example, the modulation unit 24 calculate the current value of the cost function V.sup.(0) as:

    [00004] V ( 0 ) = - σ .Math. h 0 2 = - σ .Math. M 0 1 σ 2

    where h represents an internal field calculation such as applying the matrix M.sub.0i from the left of σ (also known as coupling calculation); h=M.sub.0iσ, and dot means a dot product.

    [0072] Lastly, the modulation unit 24 modulates the linear gain p and the target amplitude a as follows:


    a=α+ρ.sub.1ϕ(δΔV.sup.(0))  (12)


    p=π+ρ.sub.2ϕ(δΔV.sup.(0))  (13)


    where


    ΔV.sup.(0)>V.sub.opt.sup.(0)−V.sup.(0)(t).

    Here, V.sup.(0) (t) is the value of the cost function associated with the state x(t), and V.sub.opt.sup.(0) is the target energy. In an example, V.sub.opt.sup.(0) can be set to the lowest energy found during iterative computation, i.e.

    [00005] V o p t ( 0 ) = min t t V ( 0 ) ( t )

    or can be set to the minimum value of the cost function V.sup.(0) if it is known. The function
    ϕ
    is a sigmoidal (for example tangent hyperbolic) function, and
    δ>0,ρ.sub.1,ρ.sub.2
    are constant predetermined parameters where the both
    ρ.sub.1
    and
    ρ.sub.2
    can be ether positive or negative.

    [0073] If target amplitude a or linear gain p is modulated according to

    ϕ(δΔV.SUP.(0).),

    [0074] ρ.sub.1>0
    or
    ρ.sub.2>0.

    [0075] On the other hand, if target amplitude a or linear gain p is modulated against to

    ϕ(δΔV.SUP.(0).),

    [0076] ρ.sub.1<0
    or
    ρ.sub.2<0.

    [0077] Note that other parameters, such as the rates

    β.sub.k
    can also be modulated.

    [0078] The efficiency of the proposed scheme depends on the choice of parameter values for

    α, π
    and others.

    [0079] It will be shown that the parameters can be chosen without prior tuning by using the spectral decomposition (the maximum eigenvalues) of the coupling matrix.

    [0080] The output unit 25 outputs current state data x. The output unit 25 can be configured to output a cost function for the current state data in addition to the state data.

    [0081] In an embodiment of the present invention, a data processor includes the error correction scheme described above. Error detection is achieved by, for example, considering auxiliary analog dynamical variables called error signals. A set of error correcting variables is used for correcting the amplitude heterogeneity that results in the wrong mapping of the objective function by the system.

    [0082] Moreover, another set of variables and the projection on a valid subspace is considered for imposing constraints of the optimization problems. The error control utilizes asymmetrical error-correction, and error detection feedback loop.

    [0083] Lastly, the dynamics of the error signals generally depends on the current Boolean configuration, which is in turn encoded by the analog state, in order to detect errors at the logical level. However, the error signals themselves are analog and modify the current state-encoding variables in an analog way.

    [0084] The data processor 1 of this embodiment comprises the modules described above, and operates as below.

    [0085] First of all, the data processor 1 of this embodiment, as shown in FIG. 6, initializes the state data x.sub.i (i=1, 2, . . . N) by a predetermined method (S1), for example, the data processor 1 initializes the state data by generating a random Boolean values.

    [0086] Then, the data processor 1 calculate parameter modulation according to the state data x.sub.i and the set of parameters {M.sub.0k}.sub.k (k=1, 2, . . . ) of the cost function (S2).

    [0087] In this step S2, the data processor 1 calculates modulated linear gain p, modulated target amplitude a, current value of the cost function V.sup.(0):

    [00006] V ( 0 ) = - σ .Math. h 0 2 = - σ .Math. M 0 1 σ 2 , V ( 0 ) = - σ .Math. h 2 = - σ .Math. M 0 i σ 2 ,

    if type I constraint exists.

    [0088] In an example, M.sub.01 and M.sub.02 are matrices and M.sub.03 is a vector. M.sub.01, M.sub.02, and M.sub.03 define the cost function V.sup.(0). Similarly, if type I constraint exists, M.sub.11 and M.sub.12 are matrices, and M.sub.13 is a vector. Here let k denotes the constraint k (or when k=0, this is the objective function V.sup.(0)) defined by U.sup.(k); M.sub.11, M.sub.12, and M.sub.13 define the first constraint (k=1) defined by U.sup.(1).

    [0089] β.sub.k is the rates of change of error signals.

    [0090] The data processor 1 also calculates in this step S2, acceptable Boolean configuration σ of the state data x.sub.i. The detail operation in this step S2 is already described as the operation of the modulation unit 24.

    [0091] The data processor 1, then updates error variables for amplitude heterogeneity and constraints (S3). The error variables are calculated with modulated target amplitude, the rates of change error variables obtained in step S1, and a target function g as:


    e.sub.i.sup.(0)(t+dt)=e.sub.i.sup.(0)(t)−β.sub.0(t)[x′.sub.i(t).sup.2−a])e.sub.i.sup.(0)(t)dt,


    and


    e.sub.i.sup.(k)(t+dt)=e.sub.i.sup.(k)(t)+β.sub.kg.sub.i.sup.(k)(σ,e.sub.i.sup.(k)(t))dt.

    [0092] Here, the function g is defined by the constraint of the problem to be solved.

    [0093] Note that the prime sign on the state data x.sub.i means that this is the projection of the state data x.sub.i onto a valid subspace as previously described.

    [0094] The data processor 1 also calculates coupling terms such as


    h.sub.0=M.sub.01σ,


    or


    h.sub.0=M.sub.0iσ,

    if type I constraint exists,
    and


    h.sub.k=N.sub.kiσ

    where N.sub.ki are defined from constraints type II, and the data processor 1 calculates gain and saturation:


    ∂.sub.tx.sub.i(t)=(−1+p)x′.sub.i(t)−x′.sub.i(t).sup.3

    (S4).

    [0095] The operations in step S3 and S4 can be done in parallel or in any order.

    [0096] Then, the data processor 1 calculates an injection term (S5) by summing injections:

    [00007] I i ( 0 ) = - ϵ 0 e i ( 0 ) h 0 I i ( k ) = - ϵ k e i ( k ) h k as t x i ( t ) = ( - 1 + p ) x i ( t ) - x i 3 ( t ) + .Math. k I i ( k ) ,

    and updates state data (S6):


    x.sub.i(t+dt)=x.sub.i(t)+∂.sub.tx.sub.i(t)dt.

    [0097] The data processor 1 applies projection to the state data x.sub.i(S7), and calculates a current error (current loss; S8).

    [0098] Then the data processor 1 checks if a predetermined condition is satisfied to determine whether the iteration process should finish or not (S9). Here, one of the examples of the predetermined condition may be a time budget. In this example, the data processor 1 decides whether the time consumed by the iteration excesses the predetermined time limit or not. The data processor 1 then repeats the calculation from the step S1 if the time consumed by the iteration does not excess the predetermined time limit (S9:No), otherwise (S9:Yes), the data processor 1 outputs the result of the calculation (state data x.sub.i or its acceptable Boolean configuration σ) as the best configuration found (S10), and finish the process.

    [0099] For showing an operation of the data processor of the embodiment, some specific examples for solving problems will be described below.

    (1) Example of the Maximum Cut Problem

    [0100] The proposed architecture used in the max-cut problem will be illustrated. The data processing apparatus 1 for the max-cut problem is configured to find the cut of the graph defined by the weights

    {ω.sub.ij}.sub.ij
    for which the sum over the weights is maximal. Here i and j are one of the natural numbers below N: 1, 2, . . . , N.

    [0101] A given solution for the max-cut problem can be represented by a partition of the vertices i, into two sets obtained after the cut. The belonging of the vertex i to one or the other set is encoded by a Boolean variable

    σ.sub.i.
    The optimal solution of the problem, or max-cut, is the one that minimizes the cost function

    [00008] - V ( 0 ) ( σ ) where .Math. V ( 0 ) ( σ ) = - 1 2 ( + 1 2 .Math. i j ω i j ) , where

    is the Ising Hamiltonian:

    [0102] [00009] = - 1 2 .Math. i j ω i j σ i σ j ,

    and σ is the vector of which the elements are σ.sub.i (i=1, 2, . . . ).

    [0103] The max-cut problem is a quadratic unconstrained binary combinatorial optimization problem, or Ising problem. Note that the parameters of the cost function consist of the matrix, and the total cost function V* consists of only one matrix:


    M.sub.01=Ω={ω.sub.ij}.sub.ij.

    [0104] So, the objective function is simply given as:


    V*=V.sup.(0).

    [0105] In the case of the max-cut problem, there are no constraints. Thus, the data processor for this example has only N state data processors 21 which correspond to state data x.sub.i (i=1, 2, . . . , N). The data processor for this example also requires only N error calculation units 23 which correspond to the error data e.sub.i.sup.(0) for correcting the amplitude heterogeneity when solving the problem of size N.

    [0106] In this example, the valid subspace is the whole configuration, and so the projection operator P is identity:


    x′=x.

    In addition to that, the conversion to acceptable solution is achieved by defining:


    C[x.sub.i]=sign(x.sub.i),

    where sign(x)=1 if x>0, and sign(x)=−1 otherwise.

    [0107] In this example, in the processor 11 of this embodiment, the state data processor 21 initializes the state data x.sub.i (i=1, 2, . . . N) by a predetermined method, for example, by generating a random Boolean value for x.sub.i.

    [0108] Once the state data is set, the cost evaluation unit 22 evaluates a cost function for current state data. In this example, the cost function is set to

    [00010] V ( 0 ) ( x ) = - 1 2 ( + 1 2 .Math. i j ω i j )

    where the Hamiltonian is the Ising Hamiltonian:

    [00011] = - 1 2 .Math. ij ω i j x i x j and { ω i j } i j

    is the weight which is initialized randomly at the first time of iteration.

    [0109] Meanwhile, the error calculation unit 23 calculates error values relating to amplitude homogeneity of the current state data.

    [0110] The time-evolution processor 2311 of the error calculation unit 23 takes a target amplitude a (a>0) and a rate of change of error values β, which are initially (at t=0) set to predetermined values, such as a=1.0 and β(t=0)=0.0.

    [0111] Taking advantage of these values, the time-evolution processor 2311 calculates the time-evolution of the error values e.sub.i.sup.(0)


    ∂.sub.te.sub.i.sup.(0)=−β(t)[x.sub.i.sup.2−a]e.sub.i.sup.(0),

    wherein the error values e.sub.i.sup.(0) for the first time of iteration are set to random numbers.

    [0112] The updater 2312 updates the current error values e.sub.i.sup.(0) by adding ∂.sub.t e.sub.i.sup.(0)dt to get updated error values e.sub.i.sup.(0), and outputs the updated error values e.sub.i.sup.(0) to the state data processor 21.

    [0113] Then, the gain-dissipative simulator 211 of the state data processor 21 gets the state data x.sub.i, a linear gain p, and the error values e.sub.i.sup.(0) to calculate the time-evolution of the state as:


    ∂.sub.tx.sub.i=(−1+p)x.sub.i−x.sub.i.sup.3+∈e.sub.i.sup.(0)Σ.sub.j≠iω.sub.ijx.sub.j.

    [0114] In this formula, the time dependency is not explicitly shown, but the values such as the state data x.sub.i and the error values e.sub.i.sup.(0) change depending on time t.

    [0115] The state data processor 21 updates the state data by adding the corresponding state data x.sub.i and the time-evolution of the state data:


    x.sub.i(t+dt)=x.sub.i(t)+∂.sub.tx.sub.i(t)dt.

    [0116] The state data processor 21 stores the updated state data x.sub.i(t+dt) as the current state data. It must be noted that in this problem, there are no soft constraints of type I, the projection P is the identity operator, and the vector x′ is equal to the vector x:


    x′=x,

    and the updated state data is stored as the current state data in the next iteration as they are.

    [0117] Before the next iteration of updating the state data, the modulation unit 24 performs calculation of parameter values such as a linear gain p, a target amplitude a, and a rate of change of error values β based on the current state data.

    [0118] The modulation unit 24 converts the state data x into an acceptable Boolean configuration σ. In this example, since the state data x is already Boolean values, the modulation unit 24 calculates the current value of the cost function V.sup.(0), and the modulation unit 24 modulates the linear gain p and the target amplitude a as represented by formulae (12) and (13):


    a=α+ρ.sub.1ϕ(δΔV.sup.(0))


    p=π+ρ.sub.2ϕ(δΔV.sup.(0)),

    and the rate
    β.sub.0
    is also modulated in the same manner.

    [0119] In the formulae,


    ΔV.sup.(0)=V.sub.opt.sup.(0)−V.sup.(0)(t),

    and the function
    ϕ
    is a sigmoidal function, and
    ρ.sub.1>0
    ρ.sub.2>0
    δ>0
    are constant predetermined parameters.

    [0120] The Parameter values

    α,π
    are predetermined by the user.

    [0121] Here, V.sup.(0) (t) is the value of the cost function associated with the state data x(t) which is evaluated by the cost evaluation unit 22, and V.sub.opt.sup.(0) is the target energy. In this example, V.sub.opt.sup.(0) is set to the lowest energy found during the iterative computation:

    [00012] V o p t ( 0 ) min t t V ( 0 ) ( t ) .

    [0122] For obtaining the V.sub.opt.sup.(0), the modulation unit 24 memorizes the current V.sub.opt.sup.(0), and updates the V.sub.opt.sup.(0) when the current V.sup.(0) (t) is lower than the memorized V.sub.opt.sup.(0). At the initial state, since the modulation unit 24 does not memorize any V.sub.opt.sup.(0), the modulation unit 24 simply memorizes a calculated V.sup.(0) (t=0).

    [0123] The modulation unit 24 gets the updated linear gain p, the target amplitude a, and the rate

    β.sub.0,
    and outputs those.

    [0124] The processor 11 outputs the current updated state data x and the cost function, and then proceeds to the next iteration step.

    [0125] The cost evaluation unit 22 evaluates the cost function for current (updated) state data, and the error calculation unit 23 calculates the error values relating to the amplitude homogeneity of the current state data.

    [0126] The processor 11 iterates the process, that is, the processor 11 calculates the time-evolution of error values:


    ∂.sub.te.sub.i.sup.(0)=−β(t)[x.sub.i.sup.2−a]e.sub.i.sup.(0),

    time-evolution of the state data:


    ∂.sub.tx.sub.i=(−1+p)x.sub.i−x.sub.i.sup.3+∈e.sub.i.sup.(0)Σ.sub.j≠iω.sub.ijx.sub.j,

    and update the error values as:


    e.sub.i.sup.(0)(t+dt)=e.sub.i.sup.(0)(t)−β(t)[x.sub.i.sup.2−a]e.sub.i.sup.(0)(t)dt,


    and update the state data as:


    x.sub.i(t+dt)=x.sub.i(t)+∂.sub.tx.sub.i(t)dt.

    [0127] The processor 11 stores the updated state data x.sub.1(t+dt) as the current state data.

    [0128] And then, the processor 11 performs calculation of parameter values such as a linear gain p, a target amplitude a, and a rate of change of error values β.sub.k, based on the current state data.

    [0129] The processor 11 outputs the current updated state data x and the cost function, and repeats the process until the cost function satisfies a predetermined condition, such that the cost function is lower than a predetermined threshold, or until the user stops the process.

    [0130] In the case of the max-cut problem, the dynamics of the data processing apparatus 1 can be summarized as follows:


    ∂.sub.tx.sub.i=(−1+p)x.sub.i−x.sub.i.sup.3+∈e.sub.i.sup.(0)Σ.sub.j≠iω.sub.ijx.sub.j  (15)


    ∂.sub.te.sub.i.sup.(0)=−β(t)[x.sub.i.sup.2−a]e.sub.i.sup.(0).  (16)

    [0131] These equations are obtained from calculating the gradient of

    −V.SUP.(0).(x).

    [0132] Moreover, the target amplitude a is chosen as follows in order to assure the convergence to the optimal solution:

    [00013] a ( Δ�� ) = α + ρ f ( δΔ�� ) , where Δ�� = - �� o p t + �� ( t ) , �� ( t ) = - 1 2 ( ( t ) + 1 2 .Math. ij ω i j ) , and �� o p t = - 1 2 ( o p t + 1 2 .Math. ij ω i j ) . Here , ( t ) ( 17 )

    is the Ising energy of the current configuration (current state data), and
    custom-character.sub.opt
    is the target energy. In practice, the target energy can be set to the lowest energy found:

    [00014] opt ( t ) = min t t ( t ) ,

    or can be set to the ground state energy if it is known.

    [0133] Moreover, the function f is a sigmoidal function and both

    ρ,δ
    are positive non-zero constant parameters which are preset by the user.

    [0134] For further shortening of the time-to-solution, it is considered that the parameter

    β
    is time-dependent. It is linearly increased with a rate equal to
    λ
    during the simulation, and reset to zero if the energy does not decrease during a duration
    τ
    which is a positive value.

    [0135] If


    t−t.sub.c<τ,

    where, t.sub.c represents the time when the best known energy
    custom-character.sub.opt
    is the lowest or when
    β
    is reset;
    the dynamics of
    β(t)
    is given by:


    ∂.sub.tβ(t)=λ  (18)

    where
    β(0)=0.
    On the other hand,
    if


    t−t.sub.c≥τ;

    β
    is set to 0 and t.sub.c is set to t.

    [0136] Lastly, the parameter p, the linear gain, is made state-dependent as:


    pcustom-character)=π+ρƒ(δΔcustom-character).  (19)

    [0137] (2) Example of the Quadratic Assignment Problem (QAP)

    [0138] The quadratic assignment problem (QAP) consists in assigning n factories at n different sites, such that the total cost of sending commodities, equal to the sum of distances and times flows between factories, is minimized. In order to encode this problem in an objective function, Boolean variables s.sub.iu will be defined such that s.sub.iu=1 if the factory u is assigned to the site i; s.sub.iu=0, otherwise. Then, solving this problem consists in finding a configuration that minimizes the following cost function V.sup.(0):

    [00015] V ( 0 ) = .Math. i j v u a i j b u v s i u s jv . . . + 1 q [ .Math. i ( 1 - .Math. u s iu ) 2 + .Math. u ( 1 - .Math. i s iu ) 2 ] ( 20 )

    where the matrix {b.sub.uv}.sub.uv (whose (u,v)-th element is b.sub.uv) represents flows between factories u and v, and the matrix {a.sub.ij}.sub.ij (whose (i,j)-th element is a.sub.ij) represents distance between sites i and j.

    [0139] Note that the traveling salesman problem is a special case of QAP.

    [0140] By considering the change of variable σ.sub.i=2(s.sub.i−0.5), this objective function can be mapped to the following cost function:

    [00016] V * = V ( 0 ) + 1 q ( U ( 1 ) + U ( 2 ) ) ( 21 )

    where V.sup.(0) is the cost function to be minimized, U.sup.(1) and U.sup.(2) are soft constraints of type I related the first constraint (one factory per site) and second constraint (one site par factory), respectively. Moreover, q is a positive parameter predetermined by the user. Each cost function can be expressed as:

    [00017] - 1 2 .Math. ijuv ω i j u v ( k ) σ i u σ jv - .Math. iu θ i u ( k ) σ i u

    for k=1, 2, 3. The Ising coupling and Zeeman terms are:

    [00018] Ω ( 0 ) = 1 4 A .Math. B Ω ( 1 ) = - 1 4 I .Math. Ω ( 2 ) = - 1 4 .Math. I Θ ( 0 ) = 2 Ω ( 0 ) Θ ( 1 ) = N - 2 2 Θ ( 2 ) = N - 2 2 Here , ( 22 )

    is the matrix of size

    N×N

    [0141] whose components are all 1, and
    custom-character
    is the vector of size N whose components are all 1.

    [0142] The A and B are matrices whose components are a.sub.ij and b.sub.ij respectively, and I is the identity matrix of size

    N×N.

    [0143] Note that the Thing coupling is the cost function for this problem, and the parameters of the cost function depend on the tensor products of the matrices.

    [0144] The parameters characterizing the cost functions are:

    [00019] M 0 1 = A 2 M 0 2 = B 2 M 0 3 = Θ ( 0 ) .

    [0145] Moreover, the parameters characterizing the first and second constraints are:

    [00020] M 1 1 = I 2 M 1 2 = 2 M 1 3 = Θ ( 1 ) and M 2 1 = - 2 M 2 2 = I 2 M 2 3 = Θ ( 2 ) .

    [0146] In the case of QAP, all constraints are considered as type I. Thus the processor 11 is configured to have N state data processors 21 for state data x.sub.i, and to have N error calculation units 23 for e.sup.(0).sub.i for correcting the amplitude heterogeneity when a problem to be solved has the size N. Moreover, the cost function V* is given as described as equation (21). The valid subspace for this problem is defined as:

    [00021] x X a { Σ i x iu = C a , Σ u x iu = C a . ( 23 )

    [0147] Here, X.sub.a is the real space of dimension N, and C.sub.a is a constant defined such that

    [00022] .Math. | x | .Math. = 1 N .Math. i , u .Math. x i u .Math. = a ( 2 - N ) N .

    [0148] The valid subspace is thus the set of stochastic matrices {x.sub.iu}.sub.iu.

    [0149] The projection operator P on the valid subspace can be determined by considering the eigendecomposition of the matrix


    Ω.sup.(1)+Ω.sup.(2).

    [0150] The conversion to acceptable solutions is achieved by associating a permutation matrix with each state data matrix {x.sub.iu}.sub.iu.

    [0151] In this example, in the processor 11 of this embodiment, the state data processor 21 initializes the state data x.sub.i (i=1, 2, . . . N) by a predetermined method, for example, by generating state data for one of allowed state (as a state data is in the valid subspace).

    [0152] Here, the state data x.sub.i represents Boolean variables s.sub.pq such that s.sub.pq=1 if the factory q is assigned to the site p; s.sub.pq=0, otherwise; where i=N.sub.site(p−1)+q; N.sub.site is the number of sites.

    [0153] The Projection unit 212 of the state data processor 21 performs projection of the current state data onto a predetermined valid subspace. Specifically, in this example, the state data vector x is projected onto the valid subspace using a projection operator P which is predetermined according to the constraints of type I to get x′. the projection operator P can be determined by considering the eigendecomposition of the matrix


    Ω.sup.(1)+Ω.sup.(2),

    where
    Ω.sup.(1),Ω.sup.(2)
    are defined as equation (22).

    [0154] Once the state data is set, the cost evaluation unit 22 evaluates a cost function for current state data. In this example, the cost function V* is set to equation (21).

    [0155] Meanwhile, the error calculation unit 23 calculates error values relating to amplitude homogeneity of the current state data.

    [0156] The time-evolution processor 2311 of the error calculation unit 23 takes a target amplitude a (a>0) and a rate of change of error values β, which are initially (at t=0) set to predetermined values, such as a=1.0 and β(t=0)=0.0.

    [0157] Taking advantage of these values, the time-evolution processor 2311 calculates the gradient of the error values e.sub.i.sup.(0) as


    ∂.sub.te.sub.i.sup.(0)(t)=−β.sub.0(t)[x′.sub.i(t).sup.2−a]e.sub.i.sup.(0)(t)

    wherein the error values e.sub.i.sup.(0) (t=0) for the first time of iteration are set to predetermined values.

    [0158] The updater 2312 updates the current error values e.sub.i.sup.(0) (t) by adding ∂.sub.te.sub.i.sup.(0) (t) dt to get updated error values e.sub.i.sup.(0) (t+dt), the error values for next iteration, and outputs the updated error values e.sub.i.sup.(0) (t+dt) to the state data processor 21:


    e.sub.i.sup.(0)(t+dt)=e.sub.i.sup.(0)(t)−β(t)[x′.sub.i(t).sup.2−a]e.sub.i.sup.(0)(t)dt.

    [0159] Then, the gain-dissipative simulator 211 of the state data processor 21 gets the state data x′.sub.i (the state data projected onto the valid subspace), a linear gain p, and the error values e.sub.i.sup.(0) to calculate the time-evolution of the state as:


    ∂.sub.tx.sub.i(t)=(−1+p)x′.sub.i(t)−x′.sub.i(t).sup.3+∈.sub.0e.sub.i.sup.(0)(t)h.sub.i.sup.(0)(t).

    [0160] Here, h.sup.(0).sub.i(t) is the i-th element of the vector h.sup.(0)(t) which is defined as:

    [00023] h ( 0 ) ( t ) = [ Ω ( 0 ) + 1 q ( Ω ( 1 ) + Ω ( 2 ) ) ] x + μ x , where Θ = Θ ( 0 ) + η q ( Θ ( 1 ) + Θ ( 2 ) ) , ( 24 )

    and both q and η are constant positive parameters: q>0, η>0. The value h.sup.(0).sub.i(t) is calculated with M.sub.0i, M.sub.1i, M.sub.2i, and the state data x′.sub.i (the state data projected onto the valid subspace).

    [0161] The term

    μ.sub.x′
    is, in simple cases, equal to
    custom-character|x′|custom-character
    which represents the average absolute amplitude of x′.sub.i, i.e.:

    [00024] .Math. | x ' | .Math. = 1 N .Math. i .Math. x i .Math. ,

    in other than simple cases, the term
    μ.sub.x′
    can be taken to be equal to

    [00025] μ x = 1 N .Math. i log ( cosh ( ζ x i ) ) ζ , where ζ

    is a parameter which is, for example, empirically set, from where
    ζ>1.

    [0162] The state data processor 21 updates the state data by adding corresponding state data x.sub.i and the gradient descent:


    x.sub.i(t+dt)=x.sub.i(t)+∂.sub.tx.sub.i(t)dt.

    [0163] The state data processor 21 stores the updated state data x.sub.i(t+dt) as the current state data. It must be noted that in this problem, there are soft constraints of type I, and the Projection unit 212 of the state data processor 21 performs projection of the updated state data x using the projection operator P:


    x′.sub.i(t+dt)=P[x.sub.i(t+dt)].

    [0164] The projected state data x.sub.i′(t+dt) is stored as the current state data x(t) in the next iteration.

    [0165] Before the next iteration of updating state data, the modulation unit 24 performs calculation of parameter values such as a linear gain p, a target amplitude a, and a rate of change of error values β.sub.0 based on the current state data.

    [0166] The modulation unit 24 converts the state data x into an acceptable Boolean configuration σ by a formula such as σ.sub.pq=2(s.sub.pq−0.5), and the acceptable configuration respects the constraints of the quadratic assignment problem, i.e.,


    Σ.sub.ps.sub.pq=1,∀g and Σ.sub.qs.sub.pq=1,∀p.

    [0167] The modulation unit 24 calculates the current value of one of the terms of the cost function V.sup.(0), and the modulation unit 24 modulates the linear gain p and the target amplitude a as represented by formulae (12) and (13):


    a=α+ρ.sub.1ϕ(δΔV.sup.(0))  (12)


    p=π+ρ.sub.2ϕ(δΔV.sup.(0)),  (13)

    and the rate
    β.sub.0
    is also modulated in the same manner.

    [0168] In the formulae,


    ΔV.sup.(0)>=V.sub.opt.sup.(0)−V.sup.(0)(t),

    and the function
    ϕ
    is a sigmoidal function, and
    ρ.sub.1>0
    ρ.sub.2>0
    δ>0
    are constant predetermined parameters.

    [0169] The Parameter values

    α,π
    are predetermined by the user.

    [0170] Here, V.sup.(0) (t) is the value of one of the term of the cost function associated with the state data x(t) which is evaluated by the cost evaluation unit 22, and V.sub.opt.sup.(0) is the target energy. In this example, V.sub.opt.sup.(0) is set to the lowest energy found during the iterative computation:

    [00026] V o p t ( 0 ) = min t t V ( 0 ) ( t ) .

    [0171] For obtaining the V.sub.opt.sup.(0), the modulation unit 24 memorizes the current V.sub.opt.sup.(0), and updates the V.sub.opt.sup.(0) when the current V.sup.(0) (t) is lower than the memorized V.sub.opt.sup.(0). At the initial state, since the modulation unit 24 does not memorize any V.sub.opt.sup.(0), the modulation unit 24 simply memorizes a calculated V.sup.(0) (t=0).

    [0172] The modulation unit 24 gets the updated linear gain p, the target amplitude a, and the rate

    β.sub.0,
    and outputs those.

    [0173] The processor 11 outputs the current updated state data x and the cost function, and then proceeds to the next iteration step.

    [0174] In the case of QAP, as shown above, the dynamics of the data processing apparatus 1 can be summarized as:


    x.sub.ia(t+dt)=x′.sub.ia(t)+[(−1+p)x′.sub.ia(t)−x′.sub.ia(t).sup.3]dt+[∈.sub.0e.sub.ia.sup.(0)(t)h.sub.ia.sup.(0)(t)]dt  (25)


    e.sub.ia.sup.(0)(t+dt)=e.sub.ia.sup.(0)(t)−β.sub.0(t)[x′.sub.ia(t).sup.2−a]e.sub.ia.sup.(0)(t)dt  (26)


    and


    x′.sub.ia(t)=P[x.sub.ia(t)]  (27)

    [0175] In the formulae, indices i,a represents i-th factory and a-th site, and here, the h.sup.(0).sub.ia is defined as formulae (24)

    [0176] Although the calculation of h.sup.(0) includes matrix vector multiplications, such as

    Ω.sup.(0)x,
    since the matrix size is N.sup.2 by N.sup.2, products of them are not computed directly in practice. Rather, the result of the products is computed by taking into account the fact that the matrices themselves are the results of tensor products.

    [0177] For example,


    Ω.sup.(0)∝A.Math.B.

    [0178] So the products are computed as following:


    (A.Math.B)x=[A{x.sub.iu}.sub.iuB′]

    wherein the [Q] represents a vector whose elements are those of Q.

    [0179] (3) Architecture Proposing Using the Lead Optimization Problem

    [0180] The lead optimization problem is a problem to find a structure of compound candidate given that its geometry and constituting atomic species are known. That is, the objective of this combinatorial optimization problem is to assign atomic species to positions of the known geometry in order to minimize interaction energy with a given protein.

    [0181] If the spatial structure has, for example, the form —X1-X2-X3-X4-X5-X6- with σ.sub.in can be chosen among ═CH—, ═CH2, ═O, ═NH2, —OH, —CH3, (wherein each symbol “=” or “−” represents chemical bond) then a possible solution is the chain —CH═CH—CH═CH-CH═CH—.

    [0182] Candidate structures must satisfy two constraints: (1) the consistency between bonds of neighboring species must be satisfied, (2) only one atomic species can be assigned per position. In the following, the scope of this problem is restricted to finding candidate species that satisfy these two constraints, without taking into account interaction energies with the target protein, for the sake of simplicity.

    [0183] The proposed architecture can be used to solve such constrained combinatorial optimization problem. First, state-encoding variables σ.sub.in=±1 are considered which encode, when σ.sub.in=1, for having the atomic species n active at the site i; otherwise σ.sub.in=−1. The two constraints described here-above can be converted into a Ising problem with cost function V given as follows:


    V*=α.sub.1V.sup.(1)+α.sub.2V.sup.(2)  (28)

    (according to H. Sakaguchi, et. al., “Boltzmann Sampling by Degenerate Optical Parametric Oscillator Network for Structure-Based Virtual Screening”, Entropy, 18, 365(2016)), where V.sup.(1) and V.sup.(2) are cost functions of soft constraints related to the first constraint, which represents bond consistency, and the second constraint, which represents unicity, respectively.

    [0184] Specifically,

    [00027] V ( 1 ) = - 1 2 .Math. injm ω injm ( 1 ) σ i n σ jm - .Math. in θ i n ( 1 ) σ i n ( 29 ) V ( 2 ) = - 1 2 .Math. injm ω i n j m ( 2 ) σ i n σ j m - .Math. in θ i n ( 2 ) σ in . ( 30 )

    [0185] In these formulae,


    ω.sub.injm.sup.(1),θ.sub.in.sup.(1),ω.sub.injm.sup.(2), and θ.sub.in.sup.(2)

    are the parameters defined by the user with considering the change of the variable

    [00028] s i = σ i + 1 2

    which may be 0 or 1.

    [0186] Finding a satisfiable structure is equivalent to minimizing the cost function V*.

    [0187] In reality, the cost functions V.sup.(1) and V.sup.(2) of soft constraints are also written as:

    [00029] V ( 1 ) = .Math. injm J i n j m S i n S j m + C 1 ( 31 ) V ( 2 ) = .Math. i ( .Math. n s i n - 1 ) 2 + C 2 . ( 32 )

    [0188] Here, if the sites i and j are adjacent, and the bonds of the atomic species n at position i are not compatible with the ones of atomic species m at position j, J.sub.injm=1.

    [0189] On the other hand, if the sites i and j are not adjacent, or the bonds of the atomic species n at position i are compatible with the ones of atomic species m at position j, J.sub.injm=0.

    [0190] C.sub.1 and C.sub.2 are constant values that are independent of s.sub.in and do not matter for the combinational optimization problem.

    [0191] Since the operation of the data processing apparatus 1 will be in the same manner as described in the examples of max-cut and QAP, the redundant explanation will be omitted.

    [0192] In this example, the data processing apparatus 1 may be configured to operate on the following dynamics:


    ∂.sub.tx.sub.in=(−1+p)x.sub.in−x.sub.in.sup.3 . . . +∈.sub.1[e.sub.in.sup.(1)μ.sub.in.sup.(1)+θ.sub.in.sup.(1)]+∈.sub.2[e.sub.in.sup.(2)μ.sub.in.sup.(2)+θ.sub.in.sup.(2)]  (33)


    ∂.sub.te.sub.in.sup.(1)=β.sub.1g.sub.in.sup.(1)(σ,e.sub.in.sup.(1))  (34)


    ∂.sub.te.sub.i.sup.(2)=β.sub.2g.sub.i.sup.(2)(σ,e.sub.i.sup.(2)).  (35)

    [0193] The formulae (34) represents bond consistency, and the formulae (35) represents unicity.

    [0194] Here,

    [00030] μ i n ( 1 ) = .Math. j m ω injm ( 1 ) x jm μ i n ( 2 ) = .Math. j m ω injm ( 2 ) x jm g in ( 1 ) ( σ , e i n ( 1 ) ) = 1 + E i n ( { σ } ) - e i n ( 1 ) g i ( 2 ) ( σ , e i ( 2 ) ) = - ( .Math. m 1 2 ( σ i m + 1 ) - 1 ) e i ( 2 ) ,

    and E.sub.in>0 when atom n at position i is inconsistent.

    [0195] β.sub.1

    and
    β.sub.2
    are change rates of error values for e.sub.in.sup.(1) and e.sub.i.sup.(2), respectively.

    [0196] The

    β.sub.1
    and
    β.sub.2
    may be different each other.

    [0197] Another aspect of this embodiment is described below.

    [0198] The state data in the state data processor 21 may be described by quantum dynamics. In this arrangement, each unit of the state data processor 21, for each state data x.sub.i, may hold the state data as a density matrix ρ.sub.i, and the dynamics of isolated units by a quantum master equation. In the most general case, when this density matrix cannot be written as a tensor product of smaller density matrices, a single density matrix ρ.sub.i1i2 . . . can describe the state of multiple units i.sub.1, i.sub.2, . . . .

    [0199] The state data can be encoded in three different ways:

    (1) by a density matrix at the quantum level,
    (2) by an analog variable at the classical level, and
    (3) by a Boolean state at the logical level.

    [0200] The conversion from quantum to classical description is performed by a quantum measurement. The conversion from analog to Boolean by an analog-to-digital converter.

    [0201] Specifically, the state data processor 21 can be implemented by using an Ising model quantum computation device such as a DOPO (Degenerate Optical Parametric Oscillator) shown in US2017/0024658A1.

    [0202] In FIG. 4, a coherent Ising machine(CIM) based degenerate optical parametric oscillator (DOPO) according to P. L. McMahon, et al., “A fully-programmable 100-spin coherent Ising machine with all-to-all connections”, Science 354, 614 (2016) is shown.

    [0203] Since the detail of the DOPO system is shown in US2017/0024658A1, the basic structure of the DOPO will be shown here. The state data processor 21 implemented by using the DOPO system is shown in FIG. 4. The state data processor 21 in this example includes a Pump Pulse Generator(PPG) 41, a Second Harmonic Generation Device(SHG) 42, a Periodically-poled Wave Guide Device(PPWG) 43, Directional Couplers 44, an AD Converter 45, an FPGA device 46, a DA Converter 47, a Modulator 48, a Ring Cavity 49.

    [0204] In this system plurality of pump pulse light wave (pseudo spin pulses) are generated by the PPG41 and the SHG 42 and are introduced into the Ring Cavity 49 via the PPWG 43 in the time-divisional manner.

    [0205] Here, the plurality of the pseudo spin pulses are in correspondence with a plurality of Ising model spins in a pseudo manner and having mutually an identical oscillation frequency.

    [0206] The time between the adjacent light waves T is set to the L/c/N where L is the length of the Ring Cavity 49, c is the light speed travelling through the Ring Cavity 49, and N is a natural number N>0.

    [0207] A part of the light wave travelling through the Ring Cavity (a ring resonator) 49 is guided via the first Directional Coupler 44-1 into the AD Converter 45. Hereinafter, the other part of the light wave which continues to travel in the Ring Cavity 49 to the second Directional Coupler 44-2 is called as “target wave.”

    [0208] The AD Converter 45 converts the strength of the light wave introduced into a digital value, and outputs the value into the FPGA device 46.

    [0209] In other words, the first Directional Coupler 44-1 and the AD Converter 45 a tentatively measure phases and amplitudes of the plurality of pseudo spin pulses every time the plurality of pseudo spin pulses circularly propagate in the Ring Cavity 49.

    [0210] The FPGA device 46 in the DOPO system may be configured as adding AD converter 45's output (which represents previous state data x.sub.i(t)) to

    ∂.sub.tx
    calculated using outputs from a cost evaluation unit 22, an error calculation unit 23, and modulation unit 24.

    [0211] The FPGA device 46 outputs the result of the addition to the DA converter 47 whose output will be used to modulate input pulse.

    [0212] The Modulator 48 generates other pump pulse light wave and modulate amplitude and phase of the light wave with output of DA converter 47 which is the analog value corresponds to the output of FPGA device 46. For example, the Modulator 48 delays the phase by π/2 when

    ∂.sub.tx
    is positive and performs amplitude modulation proportional to the absolute value of
    ∂.sub.tx, and the Modulator 48 advances the phase by π/2 when
    ∂.sub.tx
    is negative and performs amplitude modulation proportional to the absolute value of
    ∂.sub.tx.

    [0213] The modulated light wave produced by the Modulator 48 is guided into the Ring Cavity 49 via the second Directional Coupler 44-2. Note that the second Directional Coupler 44-2 introduces the modulated light into the Ring Cavity 49 at the timing of the target wave is coming to the second Directional Coupler 44-2, so that the light waves are synthesized, and the pseudo spin pulse.

    [0214] As shown in the above, in this example, the FPGA device 46 outputs the value which represents


    x.sub.i(t+dt)=x.sub.i(t)+∂.sub.tx.sub.i(t)dt.

    [0215] The synthesized light wave is guided along the Ring Cavity 49, and the FPGA device 46 repeatedly outputs the value which represents the progress of the state data x.sub.i(t).

    [0216] So the DOPO system works as a gain-dissipative simulator 211. The output of the FPGA device 46 of this DOPO system is introduced not only into the DA Converter 47, but also into other part of the state data processor 21 such as the projection unit 212 and the like.

    [0217] Since the operation of DOPO is well known, further detail description will be omitted here.

    [0218] In other aspect of the embodiment of the present invention, the data processing apparatus 1 may be constructed from a digital processor such as CPU. In this aspect, the state data processor 21, the cost evaluation unit 22, the error calculation unit 23, and the modulation unit 24 are realized as a software program which is executed on the CPU. The program may be installed in the memory device connected to the CPU, and the memory device may store data which CPU uses, the data begin such as state data, error values or the like. The aspect of this embodiment may be realized with a generic computer device which also includes a display device and an input device such as a keyboard, and the like.

    [0219] In other aspect of the embodiment of the present invention, the data processing apparatus 1 may be constructed from a digital processor such as FPGA, GPU, and the like. In this aspect, the state data processor 21, the cost evaluation unit 22, the error calculation unit 23, and the modulation unit 24 are realized as a design implementation in terms of logic gates which are obtained after a synthesis process. The aspect of this embodiment can be interfaced with a generic computer device which includes also display device and an input device such as keyboard, and the like.

    [0220] In FIG. 5 shows the schematic functional structure according to an embodiment of the present invention. As shown in the FIG. 5, the data processing apparatus 1 according to one aspect of the embodiment of the present invention includes state data nodes 31, first-order error nodes 32, and higher-order error nodes 33.

    [0221] The state data nodes 31 holds state data which is denoted by selected from a Boolean value

    σ.sub.i,
    an analog value xi, and a quantum representation (density matrix)
    ρ.sub.i.

    [0222] The state data nodes are connected each other, and a value which is held in one state data node affects the values which are held in other state data nodes, via cost function V*.

    [0223] Each one of the first-order error nodes 32 is connected to a corresponding state data node 31. The first-order error nodes 32 corrects the state data which is held in the corresponding state data node 31 to correct amplitude inhomogeneity of the state data.

    [0224] The higher-order error nodes 33 is connected to at least one of the state data nodes 31. Some of state data nodes 31 may not connected to the higher-order error nodes 33. In other words, the connection between the high-order error nodes 33 and the state data nodes 31 is “asymmetrical.” The connection between the high-order error nodes 33 and the state data nodes 31 is defined by the problem to be solved. The higher-order error nodes 33 may change the state data which is/are held in the state data node(s) 31 connected in order to force the constraint of the problem to be solved onto the state data.

    [0225] Although only some exemplary embodiments have been described in detail above, those skilled in the art will readily appreciate that many modifications are possible in the exemplary embodiments without materially departing from the novel teachings and advantages. Accordingly, all such modifications are intended to be included within the scope.