This application is based upon and claims the benefit of priority from Japanese Patent Application No. 2022-033245, filed on Mar. 4, 2022; the entire contents of which are incorporated herein by reference.
Embodiments described herein relate generally to a calculation device, a calculation program, a recording medium, and a calculation method.
Optimization problems etc. are solved by a calculation device.
According to one embodiment, a calculation device includes a processing device configured to perform a processing procedure. The processing procedure includes a first update of a first vector, a second update of a second vector, and a third update of a third vector. The first update includes updating the first vector using the second vector and the third vector. The second update includes updating the second vector using the first vector. The processing device is configured to output an output of at least one of the first vector obtained after repeating the processing procedure or a function of the first vector obtained after the repeating the processing procedure. The output includes an ith entry of a value and a jth entry of a value. The i is an integer of not less than 1 and not more than n. The n is an integer of not less than 2. The j is an integer of not less than 1 and not more than the n. The j is different from the i. The ith entry of the value is binary. The jth entry of the value of the is non-binary. A variable of the first vector includes an ith entry of a first variable xi and a jth entry of a first variable xj. A variable of the second vector includes the ith entry of a second variable yi and the jth entry of a second variable yj. The second update includes updating the ith entry of the second variable yi by adding a first function calculated from the ith entry of the first variable xi and a second function calculated from the ith entry of the first variable xi to the ith entry of the second variable yi before the update. The second update includes updating the jth entry of the second variable yj by adding the first function calculated from the jth entry of the first variable xj to the jth entry of the second variable yj before the update.
Various embodiments are described below with reference to the accompanying drawings.
In the specification and drawings, components similar to those described previously or illustrated in an antecedent drawing are marked with like reference numerals, and a detailed description is omitted as appropriate.
As shown in
The processing procedure includes a first update of a first vector, a second update of a second vector, and a third update of a third vector. The first vector corresponds to a first variable set {x}. The second vector corresponds to a second variable set {y}. The third vector corresponds to a third variable set {u}.
The first update includes updating the first vector using the second vector and the third vector. The second update includes updating the second vector using the first vector. For example, the second update may be performed without using the third vector.
The processing device 70 can output an output (output data 77O) of at least one of the first vector obtained after repeating the processing procedure and a function of the first vector obtained after repeating the processing procedure. The function of the first vector, for example, rounds elements of the first vector. In one example, if the elements of the first vector are not less than ½, the output of the function of the first vector is 1, and if the elements of the first vector are less than ½, the output of the function of the first vector is 0. In the embodiment, the function of the first vector can be modified in various ways.
As shown in
In the example shown in
The calculation device 110 according to the embodiment can solve an optimization problem, for example. The optimization problem may include, for example, the Ising problem. For example, in the optimization problem, an objective function f(x) and multiple inequality constraints (or multiple equality constraints) are set. When this constraint is given, the first vector is obtained so that the value of the objective function f(x) becomes small.
The output being output from the processing device 70 includes multiple values. The multiple values include the first entry of a value to the nth entry of a value. “n” is an integer not less than 2. The output includes an ith entry of a value and an jth entry of a value. “i” is an integer not less than 1 and not more than n. “j” is an integer not less than 1 and not more than n. “j” is different from “i”. In one example, the ith entry of the value is binary and the jth entry of the value is non-binary. The non-binary value is, for example, a continuous value. The non-binary value is, for example, a multi-value of not less than 3 values. In this way, some of the multiple values are output as binary values. Another part of the multiple values is output as a non-binary value.
The first vector and the second vector are n-dimensional. The first vector includes a variable set x1 to xn. The second vector includes a variable set y1 to yn. The variable of the first vector includes the ith entry of the first variable xi and the jth entry of the first variable xj. The variable of the second vector includes the ith entry of the second variable yi and the jth entry of the second variable yj.
In the embodiment, the update of the second vector corresponding to the binary output is different from the update of the second vector corresponding to the non-binary output.
For example, as an update regarding binary output, the following is performed. The second update includes updating the ith entry of the second variable yi by adding the first function calculated from the ith entry of the first variable xi and the second function calculated from the ith entry of the first variable xi to the ith entry of the second variable yi before the update.
For example, as an update regarding non-binary output, the following is performed. The second update includes updating the jth entry of the second variable yj by adding the first function calculated from the jth entry of the first variable xj to the jth entry of the second variable yj before the update.
As described above, in the embodiment, the optimization problem including the binary value and the non-binary value can be appropriately solved.
The third vector is m-dimensional. “m” is an integer of not less than 1. The variable of the third vector includes a qth entry of a third variable uq. The variables of the third vector include a variable set u1 to uq. “m” is the number of inequality constraints set for the first vector.
In the embodiment, the optimization problem can be solved when the multiple inequality constraints (or the multiple equality constraints) are provided. For example, the optimization problem is solved at high speed.
As shown in
In this example, the processor 70P includes a first processing portion 10P, a second processing portion 20P, and a third processing portion 30P. The first processing portion 10P can perform the first update. The second processing portion 20P can perform the second update. The third processing portion 30P can perform the third update.
In this example, the memory part 70M includes a first memory portion 10M, a second memory portion 20M, and a third memory portion 30M. The first memory portion 10M can store the first vector. The second memory portion 20M can store the second vector. The third memory portion 30M can store the third vector.
Let “k” be the number of times repetition of the processing procedure. In this example, the processing device 70 includes a second controller 75. “k” may be supplied from the second controller 75 to the second processing portion 20P. “k” may be supplied from the second controller 75 to the third processing portion 30P.
In the example shown in
The updated first vector x(k+1) output from the first processing portion 10P is supplied to the first memory portion 10M, the second processing portion 20P, and the third processing portion 30P. The updated second vector y(k+1) output from the second processing portion 20P is supplied to the second memory portion 20M. The updated third vector u(k+1) output from the third processing portion 30P is input to the third memory portion 30M.
By repeatedly performing the processing procedure including such an update, a solution can be obtained when there are constraints. For example, the solution can be obtained at high speed.
In the example shown in
The first memory portion 10M includes a first memory input part 10Mi and a first memory output part 10Mo. The second memory portion 20M includes a second memory input part 20Mi and a second memory output part 20Mo. The third memory portion 30M includes a third memory input part 30Mi and a third memory output part 30Mo.
As shown in
For example, these signal paths perform the update of the first vector, the update of the second vector, and the update of the third vector. By connecting by the sixth signal path 76f, the third vector is used to update the first vector.
First, an example of processing related to the value of the “ith entry” corresponding to the binary output will be described. In the first processing portion 10P, for example, the calculation of the following first equation is carried out.
x(k+1)=Ph(x(k)+y(k)−ATu(k)) (1)
In the second processing portion 20P, for example, the calculation of the following second equation is carried out.
y(k+1)=μy(k)−β∇ƒ(x(k+1))−d(x(k+1),k) (2)
In the third processing portion 30P, for example, the calculation of the following third equation is carried out.
u(k+1)=Pg(u(k)+σA(2x(k+1)−x(k)−β∇ƒ(x(k+1))−d(x(k+1),k)−(1−μ)y(k)) (3)
In the above first equation, “Ph” is a function described later. “Ph” corresponds to, for example, a function relating to the first proximity operator. “AT” is a transpose matrix of “matrix A”.
In the above second equation, “μ” corresponds to the coefficient for adjustment. The second term on the right side of the second equation is the first function. The first function corresponds to a gradient of ƒ(x(k+1)). “β” is a coefficient. The function d(x(k+1), k) of the third term of the second equation is expressed by the following fourth equation. In the fourth equation, p(k) is a coefficient.
In the above third equation, “Pg” is a function described later. “Pg” corresponds to, for example, a function relating to the second proximity action calculation. “σ” is a coefficient.
In this way, for example, in the update related to the binary output, the ith entry of the second variable yi is updated by adding the first function calculated from the ith entry of the first variable xi and the second function calculated from the ith entry of the first variable xi to the ith entry of the second variable yi before the update.
On the other hand, in the processing relating to the value of the “jth entry” corresponding to the non-binary output, the function d(x(k+1), k) of the third term is deleted in the above second equation. That is, in the second update regarding the non-binary output, the jth entry of the second variable yj is updated by adding the first function calculated from the jth entry of the first variable xj to the jth entry of the second variable yj before the update.
In one example, the control regarding the difference between the processing related to the binary output and the processing related to the non-binary output may be equivalent to the control of whether or not the function d(x(k+1), k) is set to 0. In one example, the processing device 70 may include a first controller 74 (see
In the embodiment, when the objective function ƒ(x) and the multiple inequality constraints are given, the first vector such that the value of the objective function ƒ(x) becomes smaller under the condition that all of the multiple inequalities are satisfied is desired. As described above, the first vector is n-dimensional. This process is expressed by the fifth equation.
In the fifth equation, “aq” is an element of “vector a”. “bq” is an element of “vector b”. “Aq,i” is an element of “matrix A”.
The inequality in the fifth equation corresponds to the sixth equation.
a≤Ax≤b (6)
The calculation device according to the embodiment (for example, the calculation device 110) is configured to derive a solution that seems to be good for the optimization problem expressed by the above-mentioned fifth equation (or sixth equation). In the calculation device according to the embodiment, a first vector such that the value of the objective function ƒ(x) becomes small is obtained. The first vector is, for example, “0” or “1”. The first vector may be, for example, “−1” or “1”. “Aq, i” is a coefficient of the inequality constraints. The matrix “A” is a coefficient matrix of inequality constraints.
Constraints may be given as equality. In this case, it can be regarded as corresponding to the special case of “aq=bq”. Equality constraints can be treated as a type of inequality constraints.
In the following description, in the process of calculation in the calculation device 110, for example, the element of the first vector (first variable set xi (1=1 to n)) is treated as a continuous value in the range of not less than 0 and not more than 1. The “continuous value” is treated as numerical data, for example, as a floating point number or a fixed point number.
For example, the ith element (first variable xi) corresponding to the ith value corresponding to the binary output is treated as a continuous value in the range of 0≤xi≤1. In connection with this constraint (0≤xi≤1), the function “Ph(x)” is used. “x” is an n-dimensional vector. The value of the function “Ph(x)” is an n-dimensional vector. The function “Ph (x)” constrains the value of the element (first variable xi) to the range of 0≤xi≤1. The ith element of the function “Ph(x)” is expressed by the following seventh equation.
The function “Ph(x)” corresponds to the proximity operator of the function “h(x)”. The function “h(x)” is a convex function. For example, in the function “h(x)”, the function “h(x)” is 0 when “x” includes an element that is not “being not less than 0 and not more than 1”. The function “h(x)” takes the value of infinity when all the elements of “x” are not “being not less than 0 and not more than 1”.
In the embodiment, the function “Pg (w)” is used with respect to the sixth equation, which is an inequality constraint. The vector w is m-dimensional. The function “Pg (w)” is an m-dimensional vector value. The q-th element of the function “Pg (w)” is expressed by the eighth equation.
In the eighth equation, “a” is a parameter for adjusting the operation of the calculation device according to the embodiment. “σ” is a positive constant. The value of “σ” may have some degrees of freedom. “σ” may be, for example, the reciprocal value of the square of the maximum singular value of the coefficient matrix “A” of the inequality constraint. “σ” may be, for example, a value slightly smaller than the value of the reciprocal of the square.
The function “Pg (w)” corresponds to, for example, a proximity operator of a function obtained by multiplying the convex conjugate of the function “g(w)” by σ. The function “g (w)” is a convex function. The function “g(w)” is 0 when the m-dimensional vector w satisfies “a≤w≤b”. The function “g (w)” takes the value of infinity when the m-dimensional vector w does not satisfy “a≤w≤b”.
“p(k)” is a function that gradually increases from 0. For example, “p(k)” may be increased from 0 to 2. Due to “p(k)”, a bifurcation phenomenon occurs in the process of repeated calculation by the calculation device. “d(x, k)” has a role of setting the value of “xi” to either 0 or 1.
The update of the third vector is performed by, for example, the following ninth equation.
u(k+1)=G(u(k)+σAV) (9)
In the ninth equation, “V” is a vector. The function “G” on the right side of the ninth equation is “Pg” in the third equation.
In the embodiment, in the case of non-binary value (for example, continuous value), “i” in the above description of the first to ninth equations is replaced with “j”. In the case of non-binary values (for example, continuous values), the range of the jth entry of “xj” value does not have to be not less than 0 and not more than 1. For example, input information 77I (see
In the following, an example of the configuration applicable to the update of the third vector will be described.
As shown in
The third vector, for example, adjusts the influence in the multiple inequality constraints. For example, if the first vector does not satisfy one of the multiple inequalities, the element of the third vector u(k+1) corresponding to the one inequality is changed. The change of the third vector is repeatedly performed, and the change of the third vector is accumulated. This adjusts the influence of each of the multiple inequalities. As a result, the first vector can be appropriately returned to the region of the feasible solution.
In a circuit block illustrated in
In the embodiment, the optimization problem can be appropriately solved when the inequality constraint exists. In the embodiment, for example, a non-convex objective function can also be handled.
In the embodiment, it is not necessary to calculate the Hessian matrix or the inverse matrix of the Hessian matrix. For example, the capacity of the memory part 70M may be smaller than that of the Newton method. For example, it can handle large-scale optimization.
In the embodiment, for example, each element of the n-dimensional or m-dimensional vector can be calculated in parallel.
In the embodiment, in the calculation of the first function, for example, the calculation by pipeline can be performed. For example, in the calculation of the product of matrices and vectors, for example, the calculation by pipeline is feasible. For example, it is possible to calculate with high efficiency. High speed can be achieved by parallel calculation and pipeline calculation. According to the embodiment, it is possible to provide a calculation device capable of improving the calculation speed.
In the embodiment, data of three types of vector values are stored in the memory part 70M. It suffices if the data for the past one time is stored. The memory part 70M can be configured with some flip-flops.
In the embodiment, after the calculation result in the processing portion is supplied to another circuit, the calculation result does not have to be held in the processing portion. For example, the processing portion can be configured as a combination of logic gates.
The calculation device according to the embodiment can be configured by, for example, a digital circuit. In the embodiment, the design of digital circuits is easy. The digital circuit may include, for example, an FPGA (Field Programmable Gate Array) or an ASIC (application specific integrated circuit) or the like. The calculation device according to the embodiment may be configured by, for example, a GPU (Graphics Processing Unit). For example, it may be configured as software with a high degree of parallelism. The calculation device according to the embodiment may function as software of a general-purpose processor. The operation of the calculation device according to the embodiment may be executed in the cloud, for example.
As shown in
In the calculation device 111, the first vector x(k) before the update stored in the first memory portion 10M is supplied to the first processing portion 10P. The second vector y(k) before the update stored in the second memory portion 20M is supplied to the second processing portion 20P and the first processing portion 10P. The third vector u(k) before the update stored in the third memory portion 30M is supplied to the third processing portion 30P and the first processing portion 10P.
In the calculation device 111, the updated first vector x(k+1) output from the first processing portion 10P is supplied to the first memory portion 10M, the second processing portion 20P, and the third processing portion 30P. The updated second vector y(k+1) output from the second processing portion 20P is supplied to the second memory portion 20M. The updated third vector u(k+1) output from the third processing portion 30P is input to the third memory portion 30M. In the calculation device 111, the third update includes updating the third vector using the first vector. Other configurations in the calculation device 111 may be the same as the configuration of the calculation device 110.
As shown in
In the calculation device 111, for example, the calculation of the following tenth equation is carried out in the first processing portion 10P.
x(k+1)=Ph(x(k)+y(k)−ATu(k)) (10)
In the second processing portion 20P, for example, the following calculation of the eleventh equation is carried out.
y(k+1)=μy(k)−β∇ƒ(x(k+1))−d(x(k+1),k) (11)
In the third processing portion 30P, for example, the following calculation of the twelfth equation is carried out.
u(k+1)=Pg(u(k)+σAx(k+1)) (12)
Also in the calculation device 111, the optimization problem can be appropriately solved when the inequality constraint exists. For example, it can handle non-convex objective functions. For example, it can handle large-scale optimization. Parallel calculation is possible. It is possible to provide a calculation device that can improve the calculation speed.
As shown in
In the calculation device 112, the first vector x(k) before the update stored in the first memory portion 10M is supplied to the first processing portion 10P and the second processing portion 20P. The second vector y(k) before the update stored in the second memory portion 20M is supplied to the second processing portion 20P. The third vector u(k) before the update stored in the third memory portion 30M is supplied to the third processing portion 30P and the first processing portion 10P.
In the calculation device 112, the updated first vector x(k+1) output from the first processing portion 10P is supplied to the first memory portion 10M and the third processing portion 30P. The updated second vector y(k+1) output from the second processing portion 20P is supplied to the second memory portion 20M and the first processing portion 10P. The updated third vector u(k+1) output from the third processing portion 30P is input to the third memory portion 30M.
In the calculation device 112, the third update includes updating the third vector using the first vector. Other configurations in the calculation device 112 may be the same as the configuration of the calculation device 110 or the calculation device 111.
As shown in
In the calculation device 112, in the first processing portion 10P, for example, the calculation of the following thirteenth equation is carried out.
x(k+1)=Ph(x(k)+y(k+1)−ATu(k)) (13)
In the second processing portion 20P, for example, the calculation of the following fourteenth equation is carried out.
y(k+1)=μy(k)−β∇ƒ(x(k))−d(x(k),k) (14)
In the third processing portion 30P, for example, the calculation of the following fifteenth equation is carried out.
u(k+1)=Pg(u(k)+σAx(k+1)) (15)
Even in the calculation device 112, the optimization problem can be appropriately solved when the inequality constraint exists. For example, it can handle non-convex objective functions. For example, it can handle large-scale optimization. Parallel calculation is possible. It is possible to provide a calculation device that can improve the calculation speed.
In the following, an example of the configuration for parallel calculation will be described.
In a calculation device 120 according to the embodiment shown in
As shown in
As shown in
As shown in
As shown in
As shown in
In a calculation device 121 according to the embodiment shown in
In a calculation device 122 according to the embodiment shown in
In this way, parallel calculation may be performed in the calculation device according to the embodiment. The processor 70P may include multiple processing portions. The multiple processing portions correspond to, for example, at least one or the like of multiple of first processing portions 18, multiple second processing portions 28, or multiple third processing portions 38.
For example, one of the multiple processing portions can perform a part of the first update, and another one of the multiple processing portions can perform another one of the first update. For example, one of the multiple processing portions can perform a part of the second update, and another one of the multiple processing portions can perform another part of the second update. For example, one of the multiple processes can perform a part of the third update, and another one of the multiple processes can perform another part of the third update.
The memory part 70M may include multiple memory portions. The multiple memory portions correspond to, for example, at least one of multiple first memory portions 18M, multiple second memory portions 28M, and multiple third memory portions 38M. For example, a part of the multiple memory portions can store a part of the first vector, and another part of the multiple memory portions can store another part of the first vector. For example, another part of the multiple memory portions can store a part of the second vector, and another part of the multiple memory portions can store another part of the second vector. For example, another part of the multiple memory portions can store a part of the third vector, and another part of the multiple memory portions can store another part of the third vector.
Various calculation conditions are input to the calculation device according to the embodiment. For example, the calculation condition is acquired by the acquisition part 78, and the calculation condition is supplied to the processing device 70. The calculation condition includes, for example, a calculation method (calculation formula, etc.) of the first gradient of the objective function. The calculation conditions include, for example, an initial value of the first vector and an initial value of the second vector. The calculation condition includes, for example, the number of repetitions “T”. The calculation condition includes, for example, a coefficient “p” for adjustment. The calculation condition includes, for example, inequality constraints (or equality constraints). The calculation condition includes, for example, the matrix “A”, the vector “a” and the vector “b”.
A calculation example will be described below.
In the calculation example, the optimization problem of the production plan using two machines is solved. The same product is manufactured by two machines.
In the calculation example, the variable “x1” corresponds to whether or not to operate the first machine. When operating the first machine, the variable “x1” is 1. When the first machine is not operated, the variable “x1” is 0.
In the calculation example, the variable “x2” corresponds to whether or not to operate the second machine. When operating the second machine, the “variable x2” is 1. When the second machine is not operated, the variable “x2” is 0. The variable “x1” and the variable “x2” are binary.
Let the variable “x3” be the amount produced by the first machine. Let the variable “x4” be the amount produced by the second machine. The variable “x3” and the variable “x4” are non-binary. These variables are continuous variables.
In this calculation example, it is assumed that the production cost is expressed by the following sixteenth equation.
x
1+2x2+2x32+x42 (16)
For example, when operating the first machine, a fixed cost of “1” is incurred. If the first machine is not operated, the fixed cost is set to “0”. When operating the second machine, a fixed cost of “2” is incurred. If the second machine is not operated, the fixed cost is set to “0”.
For example, when operating the first machine, a running cost proportional to the square of the production amount is incurred. In the first machine, the coefficient for running cost is “2”.
For example, when operating the second machine, a running cost proportional to the square of the production amount is incurred. In the second machine, the coefficient for running cost is “1”.
The production amount of the product is the sum of the production amount by the first machine and the production amount by the second machine. The target production amount (sum of both) is “1.2”.
At this time, the following constraints are provided. That is, when operating the first machine, the production amount of the first machine is not less than 0.5 and not more than 1.0. When the first machine is not operated, the production amount of the first machine is 0. When operating the second machine, the production amount of the second machine is not less than 0.5 and not more than 1.0. When the second machine is not operated, the production volume of the second machine is zero.
The above condition is expressed by the following seventeenth equation.
x
3
+x
4=1.2
0.5x1≤x3≤x1,
0.5x2≤x4≤x2 (17)
Under such conditions, the variables “x1”, “x2”, “x3” and “x4” that minimize the cost are required. As shown in the calculation results described later, the cost is minimized when “x1”=1, “x2”=1, “x3”=0.5, and “x4”=0.7. That is, the cost is minimized when a production of 0.5 volume is performed by using the first machine and a production of 0.7 volume is performed by using the second machine.
In the following, an example of notation by a matrix and a vector will be described. The variables “x1”, “x2”, “x3” and “x4” can be collectively represented by a four-dimensional column vector x. The objective function (cost equation) ƒ(x) is expressed by the following eighteenth equation.
The objective function is expressed by the following nineteenth equation.
The constraint condition is expressed by the following twentieth equation.
At this time, the sixth equation already described is applied.
In the calculation example, the number of repetitions (total number) “T” is 1000. The coefficient “β” is 0.1. The coefficient “μ” for adjustment is ¾. The coefficient “σ” is 0.2.
These figures are calculation examples in the calculation device 110. In these figures, the horizontal axis is “k” (number of repetitions). The vertical axis of each of
These figures are calculation examples in the calculation device 111. The horizontal axis and the horizontal axis in these figures are the same as the horizontal axis and the vertical axis described with respect to
These figures are calculation examples in the calculation device 112. The horizontal axis and the horizontal axis in these figures are the same as the horizontal axis and the vertical axis described with respect to
In the embodiment, the first processing portion 10P, the second processing portion 20P, and the third processing portion 30P may be, for example, a first portion, a second portion, and a third portion of one integrated circuit. The multiple first processing portions 18, the multiple second processing portions 28, and the multiple third processing portions 38 may be different portions of one integrated circuit. In the embodiment, the first memory portion 10M, the second memory portion 20M, and the third memory portion 30M may be, for example, the first portion, the second portion, and the third portion of one memory portion. The multiple first memory portions 18M, the multiple second memory portions 28M, and the multiple third memory portions 38M may be different portions of one memory portion.
As described above, the calculation device according to the embodiment may be configured by, for example, any computer.
As shown in
Multiple elements included in the calculation device 130 can communicate with each other by at least one of wireless or wired methods. The locations where the multiple elements included in the calculation device 130 are provided may be different from each other. As the calculation device 130, for example, a general-purpose computer may be used. As the calculation device 130, for example, multiple computers connected to each other may be used.
The second embodiment relates to a calculation program. This calculation program is a calculation program that causes a computer to perform a processing procedure. The processing procedure includes the first update of the first vector, the second update of the second vector, and the third update of the third vector. The first update includes updating the first vector using the second vector and the third vector. The second update includes updating the second vector using the first vector. An output of at least one of the first vector obtained after repeating the processing procedure or the function of the first vector obtained after repeating the processing procedure is output. The second update includes updating the second variable yi by adding the first function calculated from the ith entry of the first variable xi and the second function calculated from the ith entry of the first variable xi to the ith entry of the second variable yi before the update. The second update includes updating the jth entry of the second variable yj by adding the first function calculated from the jth entry of the first variable xj to the jth entry of the second variable yj before the update. The value of the ith output is binary. The value of the jth output is non-binary.
The third embodiment relates to a recording medium. The recording medium is a computer-readable recording medium that records a calculation program that causes a computer to perform a processing procedure. The processing procedure includes the first update of the first vector, the second update of the second vector, and the third update of the third vector. The first update includes updating the first vector using the second vector and the third vector. The second update includes updating the second vector using the first vector. An output of at least one of the first vector obtained after repeating the processing procedure or the function of the first vector obtained after repeating the processing procedure is output. The second update includes updating the second variable yi by adding the first function calculated from the ith entry of the first variable xi and the second function calculated from the ith entry of the first variable xi to the ith entry of the second variable yi before the update. The second update includes updating the jth entry of the second variable yj by adding the first function calculated from the jth entry of the first variable xj to the jth entry of the second variable yj before the update. The value of the ith entry of the output is binary. The value of the jth entry of the output is non-binary.
The fourth embodiment relates to a calculation method. As for the calculation method, the processing device 70 is made to perform the processing procedure. The processing procedure includes the first update of the first vector, the second update of the second vector, and the third update of the third vector. The first update includes updating the first vector using the second vector and the third vector. The second update includes updating the second vector using the first vector. The processing device outputs an output of at least one of the first vector obtained after repeating the processing procedure or the function of the first vector obtained after repeating the processing procedure. The second update includes updating the second variable yi by adding the first function calculated from the ith entry of the first variable xi and the second function calculated from the ith entry of the first variable xi to the ith entry of the second variable yi before the update. The second update includes updating the jth entry of the second variable yj by adding the first function calculated from the jth entry of the first variable xj to the jth entry of the second variable yj before the update. The value of the ith output is binary. The value of the jth output is non-binary.
The processing (instruction) of the various information (data) described above is executed based on, for example, a program (software). For example, a computer stores this program and reads this program to process the various information described above.
The processing of the above various information may be recorded on a magnetic disk (flexible disk, hard disk, etc.), an optical disk (CD-ROM, CD-R, CD-RW, DVD-ROM, DVD±R, DVD RW, etc.), semiconductor memory, or other recording medium as a program that can cause a computer to execute.
For example, the information recorded on the recording medium can be read out by a computer (or an embedded system). In the recording medium, the recording format (storage format) is arbitrary. For example, the computer reads a program from the recording medium and causes the CPU to execute the instructions described in the program based on the program. In the computer, the acquisition (or reading) of the program may be performed through the network.
At least a part of the above information processing may be performed in various software running on the computer based on the program installed on the computer (or embedded system) from the recording medium. This software includes, for example, an operating system or the like. This software may include, for example, middleware running on a network or the like.
The recording medium in the embodiment also includes a recording medium obtained by downloading and storing a program obtained by LAN, the Internet, or the like. The above processing may be performed based on multiple recording media.
The computer according to the embodiment includes one or more devices (e.g., a personal computer, etc.). The computer according to the embodiment may include multiple devices connected by a network.
The embodiment may include the following configurations (e.g., technical proposals).
A calculation device, comprising:
The calculation device according to Configuration 1, wherein
The calculation device according to Configuration 1 or 2, wherein
The calculation device according to Configuration 3, wherein
The calculation device according to any one of Configurations 1 to 4, wherein
The calculation device according to any one of Configurations 1 to 4, wherein
The calculation device according to any one of Configurations 1 to 4, wherein
The calculation device according to any one of Configurations 1 to 4, wherein
The calculation device according to any one of Configurations 1 to 4, wherein
The calculation device according to any one of Configurations 1 to 4, wherein
The calculation device according to any one of Configurations 1 to 4, wherein
The calculation device according to any one of Configurations 9 to 11, wherein
The calculation device according to any one of Configurations 9 to 11, wherein
The calculation device according to any one of Configurations 9 to 11, wherein
A calculation program causing a computer to perform a processing procedure,
A recording medium being a computer-readable recording medium that records a calculation program that causes a computer to perform a processing procedure,
A calculation method causing a processing device to perform a processing procedure,
According to the embodiment, a calculation device, a calculation program, a recording medium, and a calculation method can be provided, in which an optimization problem can be solved.
Hereinabove, exemplary embodiments of the invention are described with reference to specific examples. However, the embodiments of the invention are not limited to these specific examples. For example, one skilled in the art may similarly practice the invention by appropriately selecting specific configurations of components included in calculation devices such as processing devices, acquisition parts, processing portions, memory portions, etc., from known art. Such practice is included in the scope of the invention to the extent that similar effects thereto are obtained.
Further, any two or more components of the specific examples may be combined within the extent of technical feasibility and are included in the scope of the invention to the extent that the purport of the invention is included.
Moreover, all calculation devices, calculation programs, recording mediums, and calculation methods practicable by an appropriate design modification by one skilled in the art based on the calculation devices, the calculation programs, the recording mediums, and the calculation methods described above as embodiments of the invention also are within the scope of the invention to the extent that the purport of the invention is included.
Various other variations and modifications can be conceived by those skilled in the art within the spirit of the invention, and it is understood that such variations and modifications are also encompassed within the scope of the invention.
While certain embodiments have been described, these embodiments have been presented by way of example only, and are not intended to limit the scope of the inventions. Indeed, the novel embodiments described herein may be embodied in a variety of other forms; furthermore, various omissions, substitutions and changes in the form of the embodiments described herein may be made without departing from the spirit of the inventions. The accompanying claims and their equivalents are intended to cover such forms or modifications as would fall within the scope and spirit of the invention.
Number | Date | Country | Kind |
---|---|---|---|
2022-033245 | Mar 2022 | JP | national |