Calculation device, calculation program, recording medium, and calculation method

The computing device efficiently solves optimization problems with non-convex functions and inequality constraints by iterative vector updates, enhancing calculation speed and reducing resource needs through parallel processing.

JP7827491B2Active Publication Date: 2026-03-10KK TOSHIBA
View PDF 3 Cites 0 Cited by

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Filing Date
2022-03-04
Publication Date
2026-03-10

AI Technical Summary

Technical Problem

Existing computing technologies face challenges in efficiently solving optimization problems, particularly those involving non-convex objective functions and inequality constraints, often requiring complex calculations like Hessian matrix inversion, which can be resource-intensive and slow.

Method used

A computing device and method that performs iterative updates on three vectors (first, second, and third vectors) to solve optimization problems, including updating the first vector using the second and third vectors, and the second vector using the first vector, without needing Hessian matrix calculations, enabling parallel processing and efficient handling of large-scale optimizations.

Benefits of technology

The solution allows for rapid and efficient solving of optimization problems with inequality constraints and non-convex objective functions, reducing computational resource requirements and improving calculation speed through parallel processing.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007827491000049
    Figure 0007827491000049
  • Figure 0007827491000050
    Figure 0007827491000050
  • Figure 0007827491000051
    Figure 0007827491000051
Patent Text Reader

Abstract

To provide a calculation device, a calculation program, a recording medium, and a calculation method that are capable of solving an optimization problem.SOLUTION: According to an embodiment, a calculation device comprises a processor capable of executing 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 by using the second vector and the third vector. The second update includes updating the second vector by using the first vector. The processor can output at least one of the first vector obtained after repetition of the processing procedure and a function of the first vector obtained after the repetition of the processing procedure.SELECTED DRAWING: Figure 1
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] FIELD Embodiments of the present invention relate to a computing device, a computing program, a recording medium, and a computing method. [Background technology]

[0002] Optimization problems and the like are solved by computing devices. [Prior art documents] [Patent documents]

[0003] [Patent Document 1] International Publication No. 2020 / 196862 Summary of the Invention [Problem to be solved by the invention]

[0004] The embodiments of the present invention provide a computing device, a computing program, a recording medium, and a computing method that can solve an optimization problem. [Means for solving the problem]

[0005] According to an embodiment of the present invention, a computing device includes a processing unit capable of performing a procedure, the procedure including 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 including updating the first vector using the second vector and the third vector, and the second update including updating the second vector using the first vector. The processing unit is capable of outputting at least one of the first vector obtained after repeating the procedure and a function of the first vector obtained after repeating the procedure. [Brief explanation of the drawings]

[0006] [Figure 1] FIG. 1 is a schematic diagram illustrating a computing device according to an embodiment. [Figure 2]FIG. 2 is a schematic diagram illustrating a part of a computing device according to the embodiment. [Figure 3] FIG. 3 is a schematic diagram illustrating a computing device according to the embodiment. [Figure 4] FIG. 4 is a schematic diagram illustrating a computing device according to the embodiment. [Figure 5] FIG. 5 is a schematic diagram illustrating a computing device according to the embodiment. [Figure 6] FIG. 6 is a schematic diagram illustrating a computing device according to the embodiment. [Figure 7] FIG. 7 is a schematic diagram illustrating a computing device according to the embodiment. [Figure 8] FIG. 8 is a graph illustrating the operation of the computing device according to the embodiment. [Figure 9] FIG. 9 is a graph illustrating the operation of the computing device according to the embodiment. [Figure 10] FIG. 10 is a graph illustrating the operation of the computing device according to the embodiment. [Figure 11] FIG. 11 is a schematic diagram illustrating the operation of the computing device according to the embodiment. DETAILED DESCRIPTION OF THE INVENTION

[0007] Hereinafter, embodiments of the present invention will be described with reference to the drawings. In this specification and in each drawing, elements similar to those previously described with reference to the previous drawings are designated by the same reference numerals, and detailed descriptions thereof will be omitted where appropriate.

[0008] (First embodiment) FIG. 1 is a schematic diagram illustrating a computing device according to an embodiment. 1, a computing device 110 according to an embodiment includes a processing device 70. The processing device 70 is capable of repeatedly performing a processing procedure.

[0009] The 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 set of variables {x}. The second vector corresponds to a second set of variables {y}. The third vector corresponds to a third set of variables {u}.

[0010] 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 can be performed without using the third vector.

[0011] The processing device 70 can output 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 (output data 77O). The function of the first vector, for example, converts the elements of the first vector into integers. In one example, when the elements of the first vector are equal to or greater than 1 / 2, the output of the function of the first vector is 1, and when the elements of the first vector are less than 1 / 2, the output of the function of the first vector is 0. In the embodiment, various modifications of the function of the first vector are possible.

[0012] 1, the computing device 110 may include an acquisition unit 78. The acquisition unit 78 may acquire conditions (input information 77I) to be applied to the calculation. The output data 77O may be output to the outside via the acquisition unit 78. In this case, the acquisition unit 78 may be an input / output interface.

[0013] In the example shown in FIG. 1, the third update includes updating the third vector using the first vector and the second vector.

[0014] The computing device 110 according to the embodiment can solve, for example, an optimization problem. The optimization problem may include, for example, an Ising problem. For example, in the optimization problem, an objective function f(x) and multiple inequality constraints (or multiple equality constraints) are set. When these constraints are given, a first vector is obtained that reduces the value of the objective function f(x).

[0015] The first and second vectors are n-dimensional, where "n" is an integer equal to or greater than 1. The variables of the first vector are the i-th first variable x i The variables of the second vector are the i-th second variable y i "i" is an integer between 1 and n. The first vector is a set of variables x1 to x n The second vector contains the set of variables y1 to y n Includes:

[0016] The third vector has dimension m, where "m" is an integer equal to or greater than 1. The variables of the third vector are the qth third variable u q The variables of the third vector are the set of variables u1 to u q "m" is the number of inequality constraints set for the first vector.

[0017] In the embodiment, when multiple inequality constraints (or multiple equality constraints) are set, the optimization problem can be solved. For example, the optimization problem can be solved quickly.

[0018] 1, in this example, the processing device 70 includes a processing unit 70P and a memory unit 70M. The processing unit 70P can perform a first update, a second update, and a third update. The memory unit 70M can store a first vector, a second vector, and a third vector.

[0019] In this example, the processing unit 70P includes a first processing portion 10P, a second processing portion 20P, and a third processing portion 30P. The first processing portion 10P is capable of performing a first update. The second processing portion 20P is capable of performing a second update. The third processing portion 30P is capable of performing a third update.

[0020] In this example, the memory unit 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 a first vector. The second memory portion 20M can store a second vector. The third memory portion 30M can store a third vector.

[0021] Let "k" be the number of times the processing procedure is repeated. In this example, the processing device 70 includes a controller 75. The controller 75 can provide "k" to the second processing portion 20P. The controller 75 can provide "k" to the third processing portion 30P.

[0022] 1, the first vector x(k) before update stored in the first storage portion 10M is supplied to the first processing portion 10P and the third processing portion 30P. The second vector y(k) before update stored in the second storage portion 20M is supplied to the second processing portion 20P and the first processing portion 10P. The third vector u(k) before update stored in the third storage portion 30M is supplied to the third processing portion 30P and the first processing portion 10P.

[0023] The updated first vector x(k+1) output from the first processing portion 10P is supplied to the first storage 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 storage portion 20M. The updated third vector u(k+1) output from the third processing portion 30P is input to the third storage portion 30M.

[0024] By repeatedly performing the procedure including such updates, a solution can be obtained, for example, quickly, when there are constraints.

[0025] 1, the processing device may include first to sixth signal paths 76a to 76f. These signal paths allow signals (e.g., information) to be transmitted and received between the processing unit 70P and the memory unit 70M. The first processing part 10P includes a first processing input part 10Pi and a first processing output part 10Po. The second processing part 20P includes a second processing input part 20Pi and a second processing output part 20Po. The third processing part 30P includes a third processing input part 30Pi and a third processing output part 30Po.

[0026] The first memory portion 10M includes a first memory input portion 10Mi and a first memory output portion 10Mo. The second memory portion 20M includes a second memory input portion 20Mi and a second memory output portion 20Mo. The third memory portion 30M includes a third memory input portion 30Mi and a third memory output portion 30Mo.

[0027] As shown in FIG. 1, the first to sixth signal paths 76a to 76f connect the processing input section to the processing output section. Department , the storage input and the storage output are connected.

[0028] For example, these signal paths perform a first vector update, a second vector update, and a third vector update. A connection via the sixth signal path 76f uses the third vector to update the first vector.

[0029] In the first processing part 10P, for example, the following first equation is calculated.

number

[0030] In the second processing portion 20P, for example, the following second equation is calculated.

number

[0031] In the third processing portion 30P, for example, the following third equation is calculated.

number

[0032] In the first formula above, "P h " is a function that will be described later. h " corresponds to, for example, a function related to the first proximity action calculation. T " is the transpose matrix of "Matrix A".

[0033] In the above second equation, "μ" corresponds to an adjustment coefficient. The second term on the right side of the second equation is a first function. The first function corresponds to the gradient (e.g., the first gradient) of f(x(k+1)). "β" is a coefficient. The function d(x(k+1), k) in the third term of the second equation is expressed by the following fourth equation. The second function expressed by the fourth equation corresponds, for example, to the second gradient. In the fourth equation, p(k) is a coefficient.

number

[0034] In the above third equation, "Pg" is a function described later. "Pg" corresponds to, for example, a function related to the second proximity effect calculation. "σ" is a coefficient.

[0035] In an embodiment, the second update includes, for example, updating the second vector using the first vector, the first function, and the second function. The first function corresponds, for example, to the first gradient described above. The second function corresponds, for example, to the second gradient described above. An element of the first function includes the first vector. An element of the second function includes the first vector.

[0036] In this embodiment, when an objective function f(x) and a plurality of inequality constraints are given, a first vector is calculated that minimizes the value of the objective function f(x) under the condition that all of the plurality of inequalities are satisfied. As already explained, the first vector is n-dimensional. This process is expressed by Equation 5.

[0037]

number

[0038] In the fifth formula, "a q " is an element of "vector a". "b q " is an element of "vector b". "A q,i " is an element of "Matrix A".

[0039] The inequality in equation 5 corresponds to equation 6.

number

[0040] A computing device according to an embodiment (for example, the computing device 110) can derive a solution that is considered to be good for the optimization problem expressed by the above-mentioned fifth equation (or sixth equation). In the computing device according to an embodiment, a first vector that reduces the value of the objective function f(x) is calculated. The first vector is, for example, "0" or "1". The first vector may also be, for example, "-1" or "1". "A q,i " are the coefficients of the inequality constraints. The matrix "A" is the coefficient matrix of the inequality constraints.

[0041] Constraints may be given as equations. In this case, q =b q " Equality constraints can be treated as a type of inequality constraint.

[0042] In the following description, the "element" of the vector in the desired solution is either "0" or "1." The desired solution is the solution that the computing device 110 provides to the user of the computing device 110. In the process of calculation in the computing device 110, for example, the element x of the first vector i is treated as a continuous value ranging from 0 to 1. A "continuous value" is treated as numeric data, for example, as a floating-point number or a fixed-point number.

[0043] In an embodiment, the element x of the first vector i is a continuous value in the range 0≦xi≦1, h (x)" is used. "x" is an n-dimensional vector. The function "P h The value of (x) is an n-dimensional vector. h The i-th element of "(x)" is expressed by the following equation 7.

[0044]

number

[0045] Function "P h The function "h(x)" corresponds to the proximity operator of the function "h(x)". The function "h(x)" is a convex function. For example, if all elements of "x" are between 0 and 1, then the function "h(x)" is 0. If "x" contains an element that is not between 0 and 1, then the function "h(x)" is infinity.

[0046] In the embodiment, regarding the sixth equation, which is an inequality constraint, the function "P g (w)" is used. The vector w is m-dimensional. The function "P g (w) is an m-dimensional vector value. g The qth element of "(w)" is expressed by the eighth equation.

[0047]

number

[0048] In Equation 8, "σ" is a parameter that adjusts the operation of the computing device according to the embodiment. "σ" is a positive constant. The value of "σ" may have some degrees of freedom. For example, "σ" may be the value of the reciprocal of the square of the largest singular value of the coefficient matrix "A" of the inequality constraint. For example, "σ" may be a value slightly smaller than the value of the reciprocal of the square.

[0049] Function "P g For example, "g(w)" corresponds to the proximity operator of the function obtained by multiplying the convex conjugate of the function "g(w)" by σ. The function "g(w)" is a convex function. When the m-dimensional vector w satisfies "a≦w≦b", the function "g(w)" is 0. When the m-dimensional vector w does not satisfy "a≦w≦b", the function "g(w)" is infinity.

[0050] "p(k)" is a function that gradually increases from 0. For example, "p(k)" can increase from 0 to 2. "p(k)" causes a bifurcation phenomenon in the process of repeated calculations by a computing device. "d(x,k)" is a function that gradually increases from 0 to 2. For example, "p(k)" can increase from 0 to 2.i " has the role of setting the value to either 0 or 1.

[0051] The third vector is updated, for example, according to the following equation 9.

number

[0052] In Equation 9, "V" is a vector. The function "G" on the right side of Equation 9 is "Pg" in Equation 3.

[0053] An example of a configuration that can be applied to updating the third vector will be described below. FIG. 2 is a schematic diagram illustrating a part of a computing device according to the embodiment. As shown in FIG. 2, the third processing section 30P includes, for example, a multiplication circuit 30L, an addition circuit 30A, and a third vector function circuit 30G. The multiplication circuit 30L derives the product of a matrix "A" and a vector "V." The result (output) of the multiplication circuit 30L is supplied to the addition circuit 30A. The addition circuit 30A derives the sum of the result (output) of the multiplication circuit 30L and the pre-update third vector u(k) stored in the third storage section 30M. The result (output) of the addition circuit 30A is supplied to the third vector function circuit 30G. With this configuration, the updated third vector u(k+1) is obtained. The updated third vector u(k+1) is supplied to the third storage section 30M.

[0054] The third vector, for example, adjusts the influence of 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 that inequality is changed. The third vector is repeatedly changed, and the changes in the third vector are 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 allowable solution.

[0055] In the circuit block illustrated in FIG. 2, it is determined whether the first vector satisfies the inequality constraint. of If the result is not satisfactory, a correction using a third vector is performed. For the purpose of judgment, a value whose main component is the first vector may be used as the vector "V" that is the input of the circuit block. The value of the vector "V" affects the speed of convergence of the optimization calculation or the error in the result of the optimization calculation.

[0056] In embodiments, optimization problems can be properly solved when inequality constraints exist, and embodiments can handle, for example, non-convex objective functions.

[0057] In this embodiment, it is not necessary to calculate the Hessian matrix or the inverse matrix of the Hessian matrix. For example, compared to the Newton method, the capacity of the storage unit 70M can be small. For example, it can handle large-scale optimization.

[0058] In an embodiment, for example, each element of an n-dimensional or m-dimensional vector can be calculated in parallel.

[0059] In the embodiment, in the calculation of the first gradient, for example, a calculation by pipeline can be performed. For example, in the calculation of the product of a matrix and a vector, for example, a calculation by pipeline can be performed. For example, a calculation with high efficiency is possible. Speed ​​can be increased by parallel calculation and pipelined calculation. According to the embodiment, a calculation device capable of improving calculation speed can be provided.

[0060] In this embodiment, three types of vector value data are stored in the storage unit 70M. It is sufficient that the data for the past one time is stored. A flip-flop circuit can be used as the storage unit 70M.

[0061] In the embodiment, the calculation result in the processing section may not be held in the processing section after being supplied to other circuits. For example, the processing section may be configured with a gate circuit.

[0062] The computing device according to the embodiment can be configured, for example, by a digital circuit. In the embodiment, the digital circuit is easy to design. The digital circuit may include, for example, an FPGA (Field Programmable Gate Array) or an ASIC (Application Specific Integrated Circuit). The computing device according to the embodiment may be configured, for example, by a GPU (Graphics Processing Unit). For example, it may be configured as software with a high degree of parallelism. The computing device according to the embodiment may function as software for a general-purpose processor. The operation of the computing device according to the embodiment may be executed, for example, in the cloud.

[0063] FIG. 3 is a schematic diagram illustrating a computing device according to the embodiment. 3, a computing device 111 according to the embodiment includes a processing device 70. In the computing device 111, some of the configurations and operations of the processing unit and storage unit are different from those in the computing device 110.

[0064] In the calculation device 111, the first vector x(k) before update stored in the first storage portion 10M is supplied to the first processing portion 10P. The second vector y(k) before update stored in the second storage portion 20M is supplied to the second processing portion 20P and the first processing portion 10P. The third vector u(k) before update stored in the third storage portion 30M is supplied to the third processing portion 30P and the first processing portion 10P.

[0065] In the calculation device 111, the updated first vector x(k+1) output from the first processing portion 10P is supplied to the first storage 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 storage portion 20M. The updated third vector u(k+1) output from the third processing portion 30P is input to the third storage portion 30M. In the calculation device 111, the third update includes updating the third vector using the first vector. Other configurations of the calculation device 111 may be similar to those of the calculation device 110.

[0066] 3, in this example, the calculation device 111 includes first to sixth signal paths 76a to 76f. The first to sixth signal paths 76a to 76f connect a processing input section, a processing output section, and a Department , a storage input and a storage output may be connected.

[0067] In the calculation device 111, the first processing section 10P performs calculation of, for example, the following equation 10.

number

[0068] In the second processing portion 20P, for example, the following equation 11 is calculated.

number

[0069] In the third processing portion 30P, for example, the following equation 12 is calculated.

number

[0070] The computing device 111 can also appropriately solve optimization problems when inequality constraints exist. For example, it can handle non-convex objective functions. For example, it can handle large-scale optimization. It is capable of parallel calculation. It is possible to provide a computing device that can improve calculation speed.

[0071] FIG. 4 is a schematic diagram illustrating a computing device according to the embodiment. 4, the computing device 112 according to the embodiment includes a processing device 70. In the computing device 112, some of the configurations and operations of the processing unit and storage unit are different from those in the computing device 110 or 111.

[0072] In the calculation device 112, the first vector x(k) before update stored in the first storage portion 10M is supplied to the first processing portion 10P and the second processing portion 20P. The second vector y(k) before update stored in the second storage portion 20M is supplied to the second processing portion 20P. The third vector u(k) before update stored in the third storage portion 30M is supplied to the third processing portion 30P and the first processing portion 10P.

[0073] In the calculation device 112, the updated first vector x(k+1) output from the first processing portion 10P is supplied to the first storage 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 storage 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 storage portion 30M.

[0074] In the calculation device 112, the third update includes updating the third vector using the first vector. Other configurations of the calculation device 112 may be similar to those of the calculation device 110 or 111.

[0075] 4, the computing device 112 may include first to sixth signal paths 76a to 76f. The first to sixth signal paths 76a to 76f connect a processing input to a processing output. Department , a storage input and a storage output may be connected.

[0076] In the calculation device 112, the first processing section 10P performs calculation of, for example, the following equation 13.

number

[0077] In the second processing portion 20P, for example, the following equation 14 is calculated.

number

[0078] In the third processing portion 30P, for example, the following equation 15 is calculated.

number

[0079] The computing device 112 can also appropriately solve optimization problems when inequality constraints exist. For example, it can handle non-convex objective functions. For example, it can handle large-scale optimization. It is capable of parallel calculation. It is possible to provide a computing device that can improve calculation speed.

[0080] An example of a configuration for parallel computing will be described below. FIG. 5 is a schematic diagram illustrating a computing device according to the embodiment. In the computing device 120 according to the embodiment shown in FIG. 5, the computations in the computing device 110 are performed in parallel. In the computing device 120, the first processing portion 10P includes a plurality of first processing portions 18. The plurality of first processing portions 18 include, for example, processing portion 11 and processing portion 12. One of the plurality of first processing portions 18 performs a portion of the first update. Another of the plurality of first processing portions 18 performs another portion of the first update. At least a portion of the other portion of the first update can be performed simultaneously with the portion of the first update. Parallel computation can increase speed.

[0081] 5, the first storage portion 10M may include a plurality of first storage portions 18M. The plurality of first storage portions 18M may include, for example, storage portion 11M and storage portion 12M. One of the plurality of first storage portions 18M stores a portion of the first vector after the portion of the first update. Another of the plurality of first storage portions 18M stores a portion of the first vector after another portion of the first update. For example, one of the plurality of first storage portions 18M is combined with one of the plurality of first processing portions 18. For example, another of the plurality of first storage portions 18M is combined with another of the plurality of first processing portions 18.

[0082] As shown in FIG. 5, second processing portion 20P may include a plurality of second processing portions 28. The plurality of second processing portions 28 include, for example, processing portion 21 and processing portion 22. One of the plurality of second processing portions 28 performs a portion of the second update. Another of the plurality of second processing portions 28 performs a different portion of the second update. At least a portion of the different portion of the second update can be performed simultaneously with the portion of the second update. Speed ​​can be increased by parallel calculation.

[0083] As shown in FIG. 5 , the second storage portion 20M may include a plurality of second storage portions 28M. The plurality of second storage portions 28M may include, for example, storage portion 21M and storage portion 22M. One of the plurality of second storage portions 28M stores a portion of the second vector after the portion of the second update. Another of the plurality of second storage portions 28M stores a portion of the second vector after another portion of the second update. For example, one of the plurality of second storage portions 28M is combined with one of the plurality of second processing portions 28. For example, another of the plurality of second storage portions 28M is combined with another of the plurality of second processing portions 28.

[0084] As shown in FIG. 5, the third processing portion 30P may include a plurality of third processing portions 38. The plurality of third processing portions 38 include, for example, processing portion 31 and processing portion 32. One of the plurality of third processing portions 38 performs a portion of the third update. Another of the plurality of third processing portions 38 performs another portion of the third update. At least a portion of the another portion of the third update can be performed simultaneously with the portion of the third update. Speed ​​can be increased by parallel calculation.

[0085] 5, the third storage portion 30M may include a plurality of third storage portions 38M. The plurality of third storage portions 38M may include, for example, storage portion 31M and storage portion 32M. One of the plurality of third storage portions 38M stores a portion of the third vector after the above-mentioned portion of the third update. Another of the plurality of third storage portions 38M stores a different portion of the third vector after the above-mentioned different portion of the third update. For example, one of the plurality of third storage portions 38M is combined with one of the plurality of third processing portions 38. For example, another of the plurality of third storage portions 38M is combined with another of the plurality of third processing portions 38.

[0086] FIG. 6 is a schematic diagram illustrating a computing device according to the embodiment. 6, the calculations in the calculation device 111 are performed in parallel. The configuration of the multiple processing units and multiple storage units in the calculation device 121 may be the same as the configuration in the calculation device 120.

[0087] FIG. 7 is a schematic diagram illustrating a computing device according to the embodiment. 7, the calculations in the calculation device 112 are performed in parallel. The configuration of the multiple processing units and multiple storage units in the calculation device 122 may be the same as the configuration in the calculation device 120.

[0088] In this manner, parallel computing may be performed in the computing device according to the embodiment. The processing unit 70P may include a plurality of processing parts. The plurality of processing parts may correspond to at least one of a plurality of first processing parts 18, a plurality of second processing parts 28, and a plurality of third processing parts 38, for example.

[0089] For example, one of the plurality of processing portions can perform a portion of a first update and another of the plurality of processing portions can perform a different portion of the first update. For example, one of the plurality of processing portions can perform a portion of a second update and another of the plurality of processing portions can perform a different portion of the second update. For example, one of the plurality of processing portions can perform a portion of a third update and another of the plurality of processing portions can perform a different portion of the third update.

[0090] The memory unit 70M may include multiple memory portions. The multiple memory portions correspond to, for example, at least one of a plurality of first memory portions 18M, a plurality of second memory portions 28M, and a plurality of third memory portions 38M. For example, some of the multiple memory portions can store a portion of a first vector, and another portion of the multiple memory portions can store another portion of the first vector. For example, another portion of the multiple memory portions can store a portion of a second vector, and another portion of the multiple memory portions can store another portion of the second vector. For example, another portion of the multiple memory portions can store a portion of a third vector, and another portion of the multiple memory portions can store another portion of the third vector.

[0091] Various calculation conditions are input to the calculation device according to the embodiment. For example, the calculation conditions are acquired by the acquisition unit 78 and supplied to the processing device 70. The calculation conditions include, for example, a calculation method (such as a calculation formula) for the first gradient of the objective function. The calculation conditions include, for example, an initial value of a first vector and an initial value of a second vector. The calculation conditions include, for example, the number of iterations "T". The calculation conditions include, for example, an adjustment coefficient "μ". The calculation conditions include, for example, an inequality constraint (or an equality constraint). The calculation conditions include, for example, a matrix "A", a vector "a", and a vector "b".

[0092] A calculation example will be described below. In the calculation example, the objective function f(x) is expressed by the following equations 16 to 18.

number

[0093]

number

[0094]

number

[0095] The elements of the first vector are x1, x2, and x3. The inequality constraint is expressed by the following equation 19.

number

[0096] Equation 19 corresponds to the following equation 20.

number

[0097] FIG. 8 is a graph illustrating the operation of the computing device according to the embodiment. FIG. 8 is an example of calculation in the calculation device 110. In FIG. 8, the horizontal axis is "k" (the number of iterations). The vertical axes of the three diagrams in FIG. 8 correspond to the values ​​of the first vector "x", the second vector "y", and the third vector "u". For example, T values ​​of "k" are generated, ranging from 0 to "T-1". For example, for the first vector "x", "x(0)" is given as the initial value, and T values ​​from x(1) to x(T) are obtained. In the example in FIG. 8, "T" is 30. "β" is 0.075. "μ" is 3 / 4. As shown in FIG. 8, x(T) is in the range [0,1,0] T The optimal solution is correctly obtained.

[0098] FIG. 9 is a graph illustrating the operation of the computing device according to the embodiment. FIG. 9 is an example of calculation in the calculation device 111. In FIG. 9, the horizontal axis is "k" (the number of iterations). The vertical axes of the three diagrams in FIG. 9 correspond to the values ​​of the first vector "x", the second vector "y", and the third vector "u". In the example of FIG. 9, "T" is 30. "β" is 0.075. "μ" is 3 / 4. As shown in FIG. 9, x(T) is in the range [0,1,0]. T The optimal solution is correctly obtained.

[0099] FIG. 10 is a graph illustrating the operation of the computing device according to the embodiment. FIG. 10 is an example of calculation in the calculation device 112. In FIG. 10, the horizontal axis is "k" (the number of iterations). The vertical axes of the three diagrams in FIG. 10 correspond to the values ​​of the first vector "x", the second vector "y", and the third vector "u". In the example of FIG. 10, "T" is 30. "β" is 0.075. "μ" is 3 / 4. As shown in FIG. 10, x(T) is in the range [0,1,0]. T The optimal solution is correctly obtained.

[0100] 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 a single integrated circuit. The plurality of first processing portions 18, the plurality of second processing portions 28, and the plurality of third processing portions 38 may be different portions of a single integrated circuit. In the embodiment, the first storage portion 10M, the second storage portion 20M, and the third storage portion 30M may be, for example, a first portion, a second portion, and a third portion of a single storage unit. The plurality of first storage portions 18M, the plurality of second storage portions 28M, and the plurality of third storage portions 38M may be different portions of a single storage unit.

[0101] 1 and 3 to 7 show the control Device70. The "processing portion" corresponds to, for example, the "processing operation" in the flowchart. The "storage portion" corresponds to, for example, the "storage operation" in the flowchart.

[0102] As already explained, the computing device according to the embodiment may be configured, for example, by any computer.

[0103] FIG. 11 is a schematic diagram illustrating the operation of the computing device according to the embodiment. As shown in FIG. 11 , a computing device 130 according to the embodiment includes a processing device 70. The processing device 70 includes, for example, a CPU (Central Processing Unit). The processing device 70 includes, for example, an electronic circuit. The computing device 130 may include an acquisition unit 78 (for example, an interface). The computing device 130 may include a storage device 79a. The storage device 79a may include, for example, at least one of a ROM (Read Only Memory) and a RAM (Random Access Memory). The computing device 130 may include, for example, a display unit 79b and an input unit 79c. The input unit 79c may include, for example, an operation device (for example, a keyboard, a mouse, or a touch input unit).

[0104] The multiple elements included in the computing device 130 can communicate with each other by at least one of wireless and wired methods. The multiple elements included in the computing device 130 may be provided in different locations. For example, a general-purpose computer may be used as the computing device 130. For example, multiple computers connected to each other may be used as the computing device 130.

[0105] (Second embodiment) The second embodiment relates to a calculation program. This calculation program causes a computer to execute 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 program outputs 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.

[0106] (Third embodiment) The third embodiment relates to a recording medium. The recording medium is a computer-readable recording medium having recorded thereon a calculation program for causing a computer to execute 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. 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 is output.

[0107] (Fourth embodiment) The fourth embodiment relates to a calculation method. The calculation method causes a processing device 70 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 outputs 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.

[0108] The processing (instructions) of the various pieces of information (data) described above is executed based on, for example, a program (software). For example, a computer stores this program and reads out the program to process the various pieces of information described above.

[0109] The above-mentioned various information processing may be recorded as a program that can be executed by a computer on a magnetic disk (such as a flexible disk or hard disk), an optical disk (such as a CD-ROM, CD-R, CD-RW, DVD-ROM, DVD±R, DVD±RW), a semiconductor memory, or other recording medium.

[0110] For example, information recorded on a recording medium can be read by a computer (or an embedded system). The recording medium may have any recording format (storage format). For example, a computer reads a program from the recording medium and causes a CPU to execute instructions written in the program based on the program. The computer may acquire (or read) the program via a network.

[0111] At least part of the information processing may be performed by various software programs running on a computer (or embedded system) based on a program installed from a recording medium. This software may include, for example, an operating system. This software may also include, for example, middleware that operates on a network.

[0112] The recording medium in the embodiment also includes a recording medium on which a program is downloaded and stored, obtained via a LAN or the Internet, etc. The above processing may be performed based on a plurality of recording media.

[0113] The computer according to the embodiment includes one or more devices (for example, a personal computer, etc.) The computer according to the embodiment may include multiple devices connected via a network.

[0114] The embodiment may include the following configurations (for example, technical solutions). (Configuration 1) a processing device capable of performing a processing procedure; the 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 updating includes updating the second vector using the first vector; 10. A computing device, wherein the processing device is capable of outputting 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.

[0115] (Configuration 2) the second updating includes updating the second vector using the first vector, the first function, and the second function; an element of the first function includes the first vector; 2. The computing device of claim 1, wherein an element of the second function includes the first vector.

[0116] (Configuration 3) 3. The computing device of claim 1, wherein the third update includes updating the third vector using the first vector and the second vector.

[0117] (Configuration 4) 3. The computing device of claim 1, wherein the third update includes updating the third vector using the first vector.

[0118] (Configuration 5) The variables of the first vector are the i-th first variable x i Including, The variables of the second vector are the i-th second variable y i Including, The i is an integer of 1 or more and n or less, The n is an integer of 1 or more, The variables of the third vector are the qth third variable u q Including, The q is an integer of 1 or more and m or less, 5. The calculation device according to any one of configurations 1 to 4, wherein m is an integer of 1 or greater.

[0119] (Configuration 6) 6. The computing device of configuration 5, wherein m is the number of inequality constraints set for the first vector.

[0120] (Configuration 7) The first update is performed by updating the i-th second variable y i , and the third vector is used to calculate the i-th first variable x i updating the The second update is the updated i-th first variable x i Using the i-th second variable y i 8. The computing device of configuration 5 or 7, further comprising: updating the

[0121] (Configuration 8) the processing device includes a processing unit and a storage unit; the processing unit is capable of performing the first update, the second update, and the third update; the storage unit is capable of storing the first vector, the second vector, and the third vector; The processing section includes a plurality of processing parts, one of the plurality of processing portions is capable of performing a portion of the first update; 8. The computing device according to any one of configurations 1 to 7, wherein another one of the plurality of processing units is capable of performing another part of the first update.

[0122] (Configuration 9) the processing device includes a processing unit and a storage unit; the processing unit is capable of performing the first update, the second update, and the third update; the storage unit is capable of storing the first vector, the second vector, and the third vector; The processing section includes a plurality of processing parts, one of the plurality of processing portions is capable of performing a portion of the second update; 8. The computing device according to any one of configurations 1 to 7, wherein another one of the plurality of processing units is capable of performing another part of the second update.

[0123] (Configuration 10) the processing device includes a processing unit and a storage unit; the processing unit is capable of performing the first update, the second update, and the third update; the storage unit is capable of storing the first vector, the second vector, and the third vector; The processing section includes a plurality of processing parts, one of the plurality of processing portions is capable of performing a portion of the third update; 8. The computing device according to any one of configurations 1 to 7, wherein another one of the plurality of processing units is capable of performing another part of the third update.

[0124] (Configuration 11) the storage unit includes a plurality of storage portions; a portion of the plurality of storage portions capable of storing a portion of the first vector; Another part of the plurality of storage parts is capable of storing another part of the first vector; Another part of the plurality of storage parts is capable of storing a part of the second vector; Another part of the plurality of storage parts is capable of storing another part of the second vector; Another part of the plurality of storage parts is capable of storing a part of the third vector; 11. The computing device according to any one of configurations 1 to 10, wherein another part of the plurality of storage parts is capable of storing another part of the third vector.

[0125] (Configuration 12) the processing device includes a processing unit and a storage unit; The processing unit a first processing portion capable of performing the first update; a second processing portion capable of performing the second update; a third processing portion capable of performing the third update; Including, The storage unit a first storage portion capable of storing the first vector; a second storage portion capable of storing the second vector; a third storage portion capable of storing the third vector; Including, the first vector before updating stored in the first storage section is supplied to the first processing section and the third processing section; the second vector before update stored in the second storage section is supplied to the second processing section and the first processing section; the third vector before update stored in the third storage section is supplied to the third processing section and the first processing section; the updated first vector output from the first processing section is supplied to the first storage section, the second processing section, and the third processing section; the updated second vector output from the second processing section is supplied to the second storage section; 8. The computing device according to any one of configurations 1 to 7, wherein the updated third vector output from the third processing portion is input to the third storage portion.

[0126] (Configuration 13) the processing device includes a processing unit and a storage unit; The processing unit a first processing portion capable of performing the first update; a second processing portion capable of performing the second update; a third processing portion capable of performing the third update; Including, The storage unit a first storage portion capable of storing the first vector; a second storage portion capable of storing the second vector; a third storage portion capable of storing the third vector; Including, the first vector before update stored in the first storage section is supplied to the first processing section; the second vector before update stored in the second storage section is supplied to the second processing section and the first processing section; the third vector before update stored in the third storage section is supplied to the third processing section and the first processing section; the updated first vector output from the first processing section is supplied to the first storage section, the second processing section, and the third processing section; the updated second vector output from the second processing section is supplied to the second storage section; 8. The computing device according to any one of configurations 1 to 7, wherein the updated third vector output from the third processing portion is input to the third storage portion.

[0127] (Configuration 14) the processing device includes a processing unit and a storage unit; The processing unit a first processing portion capable of performing the first update; a second processing portion capable of performing the second update; a third processing portion capable of performing the third update; Including, The storage unit a first storage portion capable of storing the first vector; a second storage portion capable of storing the second vector; a third storage portion capable of storing the third vector; Including, the first vector before update stored in the first storage section is supplied to the first processing section and the second processing section; the second vector before update stored in the second storage section is supplied to the second processing section; the third vector before update stored in the third storage section is supplied to the third processing section and the first processing section; the updated first vector output from the first processing section is supplied to the first storage section and the third processing section; the updated second vector output from the second processing section is supplied to the second storage section and the first processing section; 8. The computing device according to any one of configurations 1 to 7, wherein the updated third vector output from the third processing portion is input to the third storage portion.

[0128] (Configuration 15) the first processing portion includes a plurality of first processing portions; one of the plurality of first processing portions performs a portion of the first update; another one of the plurality of first processing portions performs another portion of the first update; 15. The computing device of any one of configurations 12 to 14, wherein at least a portion of the other portion of the first update is performed simultaneously with the portion of the first update.

[0129] (Configuration 16) the second processing portion includes a plurality of second processing portions; one of the plurality of second processing portions performs a portion of the second update; another one of the plurality of second processing portions performs another portion of the second update; 15. The computing device of any one of configurations 12 to 14, wherein at least a portion of the other portion of the second update is performed simultaneously with the portion of the second update.

[0130] (Configuration 17) the third processing portion includes a plurality of third processing portions; one of the plurality of third processing units performs a portion of the third update; another one of the plurality of third processing portions performs another part of the third update; 15. The computing device of any one of configurations 12 to 14, wherein at least a portion of the other portion of the third update is performed simultaneously with the portion of the third update.

[0131] (Configuration 18) A calculation program that causes a computer to perform a processing procedure, the 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 updating includes updating the second vector using the first vector; a calculation program that outputs 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.

[0132] (Configuration 19) A computer-readable recording medium having a calculation program recorded thereon that causes a computer to execute a processing procedure, the 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 updating includes updating the second vector using the first vector; a recording medium for outputting 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.

[0133] (Configuration 20) causing the processing device to perform a processing procedure; the 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 updating includes updating the second vector using the first vector; The processing device outputs 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.

[0134] According to the embodiments, a calculation device, a calculation program, a recording medium, and a calculation method that can solve an optimization problem can be provided.

[0135] The embodiments of the present invention have been described above with reference to examples. However, the present invention is not limited to these examples. For example, the specific configurations of each element included in a computing device, such as a processing unit, an acquisition unit, a processing unit, and a storage unit, are within the scope of the present invention as long as a person skilled in the art can implement the present invention in a similar manner and obtain similar effects by appropriately selecting them from known ranges.

[0136] Any combination of two or more elements of each example within the scope of technical feasibility is also included within the scope of the present invention as long as it encompasses the gist of the present invention.

[0137] All computing devices, computing programs, recording media, and computing methods that can be implemented by a person skilled in the art by appropriately modifying the design based on the computing device, computing program, recording medium, and computing method described above as embodiments of the present invention also fall within the scope of the present invention, as long as they include the gist of the present invention.

[0138] Within the scope of the concept of the present invention, a person skilled in the art may conceive of various modifications and alterations, and it is understood that these modifications and alterations also fall within the scope of the present invention.

[0139] Although several embodiments of the present invention have been described, these embodiments are presented as examples and are not intended to limit the scope of the invention. These novel embodiments can be embodied in various other forms, and various omissions, substitutions, and modifications can be made without departing from the spirit of the invention. These embodiments and their modifications are included within the scope and spirit of the invention, and are also included in the scope of the invention and its equivalents as defined in the claims. [Explanation of symbols]

[0140] 10M, 20M, 30M...first, second, and third memory sections; 10Mi, 20Mi, 30Mi...first, second, and third memory input sections; 10Mo, 20Mo, 30Mo...first, second, and third memory output sections; 10P, 20P, 30P...first, second, and third processing sections; 10Pi, 20Pi, 30Pi...first, second, and third processing input sections; 10Po, 20Po, 30Po...first, second, and third processing output sections; 11, 12, 21, 22, 31, 32...processing sections; 11M, 12M, 21M, 22M, 31M, 32M...memory sections; 18, 28, 38...first, second, and third processing sections; 18M, 28M, 38M...first, second, and third memory sections; 30A...addition circuit, 30G...third vector function circuit, 30L...multiplication circuit, 70...processing device, 70M...storage unit, 70P...processing unit, 75...control unit, 76a-76f...first to sixth signal paths, 77I...input information, 77O...output data, 78...acquisition unit, 79a...storage device, 79b...display unit, 79c...input unit, 110-112, 120-122, 130...calculation device

Claims

1. a processing device capable of performing a processing procedure; The processing unit solves an optimization problem; In the optimization problem, an objective function f(x) and a plurality of inequality constraints or a plurality of equality constraints are set, The processing device determines a first vector that reduces the value of the objective function f(x) when the constraint is given, the procedure includes a first update of the first vector, a second update of the second vector, and a third update of the third vector; the first updating includes updating the first vector using the first vector, the second vector, and the third vector; the second updating includes updating the second vector using the first vector; the third updating includes updating the third vector using the first vector; the processing device is capable of outputting 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 variables of the first vector are the i-th first variable x i Including, The variables of the second vector are the i-th second variables y i Including, The i is an integer of 1 or more and n or less, The n is an integer of 1 or more, The variables of the third vector are the qth third variable u q Including, The q is an integer of 1 or more and m or less, The m is an integer of 1 or more, m is the number of inequality constraints set for the first vector, the processing device includes a processing unit and a storage unit; The processing unit a first processing portion capable of performing the first update; a second processing portion capable of performing the second update; a third processing portion capable of performing the third update; Including, The storage unit a first storage portion capable of storing the first vector; a second storage portion capable of storing the second vector; a third storage portion capable of storing the third vector; Including, the first vector before update stored in the first storage section is supplied to the first processing section; the second vector before updating stored in the second storage section is supplied to the second processing section; the third vector before update stored in the third storage section is supplied to the third processing section and the first processing section; the updated first vector output from the first processing section is supplied to the first storage section; the updated second vector output from the second processing section is supplied to the second storage section; the updated third vector output from the third processing section is input to the third storage section; In the first processing portion, [Equation 1] The first equation is calculated, In the second processing portion, [Equation 2] The second equation is calculated, In the third processing portion, [Equation 3] The third equation is calculated, The i-th element of the function P h (x) in the first equation is [Equation 7] It is expressed by the seventh formula: The A T in the first equation is a transpose matrix of the matrix A, The μ in the second equation is a coefficient, The β in the second equation is a coefficient, The function d(x(k+1), k) in the third term of the second equation is [Equation 4] It is expressed by the fourth equation: The p(k) in the fourth equation is a coefficient, The σ in the third equation is a coefficient, The q-th element of P g (w) in the third formula is [Equation 8] It is expressed by the eighth formula: The update of the third vector is [Equation 9] A calculation device represented by the ninth equation.

2. the first vector before update stored in the first storage section is supplied to the first processing section and the third processing section; the second vector before update stored in the second storage portion is supplied to the second processing portion and the first processing portion; The computing device of claim 1 , wherein the updated first vector output from the first processing section is provided to the first storage section, the second processing section, and the third processing section.

3. the second vector before update stored in the second storage portion is supplied to the second processing portion and the first processing portion; The computing device of claim 1 , wherein the updated first vector output from the first processing section is provided to the first storage section, the second processing section, and the third processing section.

4. the first vector before updating stored in the first storage portion is supplied to the first processing portion and the second processing portion; the updated first vector output from the first processing section is supplied to the first storage section and the third processing section; The computing device of claim 1 , wherein the updated second vector output from the second processing portion is provided to the second storage portion and the first processing portion.

5. A calculation program that causes a computer to perform a processing procedure, The computing program solves an optimization problem, In the optimization problem, an objective function f(x) and a plurality of inequality constraints or a plurality of equality constraints are set, the calculation program finds a first vector that reduces the value of the objective function f(x) when the constraint is given, the procedure includes a first update of the first vector, a second update of the second vector, and a third update of the third vector; the first updating includes updating the first vector using the first vector, the second vector, and the third vector; the second updating includes updating the second vector using the first vector; the third updating includes updating the third vector using the first vector; outputting 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 variables of the first vector are the i-th first variable x i Including, The variables of the second vector are the i-th second variables y i Including, The i is an integer of 1 or more and n or less, The n is an integer of 1 or more, The variables of the third vector are the qth third variable u q Including, The q is an integer of 1 or more and m or less, The m is an integer of 1 or more, m is the number of inequality constraints set for the first vector, the computer includes a processing unit and a storage unit; The processing unit a first processing portion capable of performing the first update; a second processing portion capable of performing the second update; a third processing portion capable of performing the third update; Including, The storage unit a first storage portion capable of storing the first vector; a second storage portion capable of storing the second vector; a third storage portion capable of storing the third vector; Including, the first vector before update stored in the first storage section is supplied to the first processing section; the second vector before updating stored in the second storage section is supplied to the second processing section; the third vector before update stored in the third storage section is supplied to the third processing section and the first processing section; the updated first vector output from the first processing section is supplied to the first storage section; the updated second vector output from the second processing section is supplied to the second storage section; the updated third vector output from the third processing section is input to the third storage section; In the first processing portion, [Equation 1] The first equation is calculated, In the second processing portion, [Equation 2] The second equation is calculated, In the third processing portion, [Equation 3] The third equation is calculated, The i-th element of the function P h (x) in the first equation is [Equation 7] It is expressed by the seventh formula: The A T in the first equation is a transpose matrix of the matrix A, The μ in the second equation is a coefficient, The β in the second equation is a coefficient, The function d(x(k+1), k) in the third term of the second equation is [Equation 4] It is expressed by the fourth equation: The p(k) in the fourth equation is a coefficient, The σ in the third equation is a coefficient, The q-th element of P g (w) in the third formula is [Equation 8] It is expressed by the eighth formula: The update of the third vector is [Equation 9] A calculation program expressed by the ninth equation.

6. A computer-readable recording medium having a calculation program recorded thereon that causes a computer to execute a processing procedure, The computing program solves an optimization problem, In the optimization problem, an objective function f(x) and a plurality of inequality constraints or a plurality of equality constraints are set, The computer determines a first vector that minimizes the value of the objective function f(x) when the constraint is given; the procedure includes a first update of the first vector, a second update of the second vector, and a third update of the third vector; the first updating includes updating the first vector using the first vector, the second vector, and the third vector; the second updating includes updating the second vector using the first vector; the third updating includes updating the third vector using the first vector; outputting 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 variables of the first vector are the i-th first variable x i Including, The variables of the second vector are the i-th second variables y i Including, The i is an integer of 1 or more and n or less, The n is an integer of 1 or more, The variables of the third vector are the qth third variable u q Including, The q is an integer of 1 or more and m or less, The m is an integer of 1 or more, m is the number of inequality constraints set for the first vector, the computer includes a processing unit and a storage unit; The processing unit a first processing portion capable of performing the first update; a second processing portion capable of performing the second update; a third processing portion capable of performing the third update; Including, The storage unit a first storage portion capable of storing the first vector; a second storage portion capable of storing the second vector; a third storage portion capable of storing the third vector; Including, the first vector before update stored in the first storage section is supplied to the first processing section; the second vector before updating stored in the second storage section is supplied to the second processing section; the third vector before update stored in the third storage section is supplied to the third processing section and the first processing section; the updated first vector output from the first processing section is supplied to the first storage section; the updated second vector output from the second processing section is supplied to the second storage section; the updated third vector output from the third processing section is input to the third storage section; In the first processing portion, [Equation 1] The first equation is calculated, In the second processing portion, [Equation 2] The second equation is calculated, In the third processing portion, [Equation 3] The third equation is calculated, The i-th element of the function P h (x) in the first equation is [Equation 7] It is expressed by the seventh formula: The A T in the first equation is a transpose matrix of the matrix A, The μ in the second equation is a coefficient, The β in the second equation is a coefficient, The function d(x(k+1), k) in the third term of the second equation is [Equation 4] It is expressed by the fourth equation: The p(k) in the fourth equation is a coefficient, The σ in the third equation is a coefficient, The q-th element of P g (w) in the third formula is [Equation 8] It is expressed by the eighth formula: The update of the third vector is [Equation 9] A recording medium represented by the ninth formula.

7. causing the processing device to perform a processing procedure; The processing unit solves an optimization problem; In the optimization problem, an objective function f(x) and a plurality of inequality constraints or a plurality of equality constraints are set, The processing device determines a first vector that reduces the value of the objective function f(x) when the constraint is given, the procedure includes a first update of the first vector, a second update of the second vector, and a third update of the third vector; the first updating includes updating the first vector using the first vector, the second vector, and the third vector; the second updating includes updating the second vector using the first vector; the third updating includes updating the third vector using the first vector; the processing device is capable of outputting 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 variables of the first vector are the i-th first variable x i Including, The variables of the second vector are the i-th second variables y i Including, The i is an integer of 1 or more and n or less, The n is an integer of 1 or more, The variables of the third vector are the qth third variable u q Including, The q is an integer of 1 or more and m or less, The m is an integer of 1 or more, m is the number of inequality constraints set for the first vector, the processing device includes a processing unit and a storage unit; The processing unit a first processing portion capable of performing the first update; a second processing portion capable of performing the second update; a third processing portion capable of performing the third update; Including, The storage unit a first storage portion capable of storing the first vector; a second storage portion capable of storing the second vector; a third storage portion capable of storing the third vector; Including, the first vector before update stored in the first storage section is supplied to the first processing section; the second vector before updating stored in the second storage section is supplied to the second processing section; the third vector before update stored in the third storage section is supplied to the third processing section and the first processing section; the updated first vector output from the first processing section is supplied to the first storage section; the updated second vector output from the second processing section is supplied to the second storage section; the updated third vector output from the third processing section is input to the third storage section; In the first processing portion, [Equation 1] The first equation is calculated, In the second processing portion, [Equation 2] The second equation is calculated, In the third processing portion, [Equation 3] The third equation is calculated, The i-th element of the function P h (x) in the first equation is [Equation 7] It is expressed by the seventh formula: The A T in the first equation is a transpose matrix of the matrix A, The μ in the second equation is a coefficient, The β in the second equation is a coefficient, The function d(x(k+1), k) in the third term of the second equation is [Equation 4] It is expressed by the fourth equation: The p(k) in the fourth equation is a coefficient, The σ in the third equation is a coefficient, The q-th element of P g (w) in the third formula is [Equation 8] It is expressed by the eighth formula: The update of the third vector is [Equation 9] The calculation method is represented by the 9th formula.

Citation Information

Patent Citations

  • Optimization device and optimization method

    JP2020204928A

  • Information processing device, program, information processing method, and electronic circuit

    JP2021043667A

  • Information processing device, information processing system, information processing method, storage medium, and program

    WO2020196862A1