Calculation device, calculation program, and calculation method

The computing device enhances calculation accuracy by iteratively updating variables with distinct parameters and controlling them within specific ranges, addressing the limitations of existing systems in optimization problems.

JP7790975B2Pending Publication Date: 2025-12-23KK TOSHIBA
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
JP2022000406
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Filing Date
2022-01-05
Publication Date
2025-12-23
Estimated Expiration
2042-01-05

AI Technical Summary

Technical Problem

Existing computer systems face challenges in achieving high accuracy in optimization problems due to limitations in updating variables and parameters during calculation processes.

Method used

A computing device and method that involves a processing unit capable of repeatedly updating a first and second set of variables using distinct parameters for each iteration, allowing for parallel processing and controlling variables within specific ranges to enhance calculation accuracy.

Benefits of technology

This approach leads to more accurate and faster solutions for large-scale optimization problems by ensuring that variables are updated with varying parameters, thereby improving calculation precision and speed.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007790975000020
    Figure 0007790975000020
  • Figure 0007790975000021
    Figure 0007790975000021
  • Figure 0007790975000022
    Figure 0007790975000022
Patent Text Reader

Abstract

To provide a calculation device capable of improving calculation accuracy, a calculation program, and a calculation method.SOLUTION: A calculation device includes a processing unit capable of repeatedly executing update processing. The update processing includes updating of a first variable group and updating of a second variable group. The first variable group includes a first variable xi (ordinal number i=1-N, N is an integer equal to or greater than 2). The second variable group includes a second variable yi. The updating of the second variable group includes updating of the second variable yi by adding a second function Fi to the second variable yi before the updating. A variable of the second function Fi includes the first variable xi. The second function Fi includes a parameter ai. An ordinal number p is one integer equal to or more than 1 and equal to or less than N. An ordinal number q is one integer equal to or more than 1 and equal to or less than N. The ordinal number q is different from the ordinal number p. A parameter ap is different from a parameter aq.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, and a computing method. [Background technology]

[0002] Optimization problems and other problems are solved using computer systems, and improvements in the accuracy of such systems are desirable. [Prior art documents] [Patent documents]

[0003] [Patent Document 1] Patent Publication No. 2021-43667 Summary of the Invention [Problem to be solved by the invention]

[0004] The embodiments of the present invention provide a calculation device, a calculation program, and a calculation method that can improve calculation accuracy. [Means for solving the problem]

[0005] According to an embodiment of the present invention, a computing device includes a processing unit capable of repeatedly performing an update process, the update process including updating a first set of variables and updating a second set of variables, the first set of variables including a first variable x i (ordinal number i=an integer from 1 to N, N is an integer equal to or greater than 2). The second variable group includes a second variable y i The update of the second variable group includes the second variable y i to the second function F i Add the second variable y i updating the second function F i The variable is the first variable x i The second function F i is the parameter a iThe ordinal number p is an integer between 1 and N inclusive. The ordinal number q is an integer between 1 and N inclusive. The ordinal number q is different from the ordinal number p. The parameter a p is the parameter a q is different. [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 flowchart illustrating the operation of the computing device according to the embodiment. [Figure 3] FIG. 3 is a flowchart illustrating the operation of the computing device according to the embodiment. [Figure 4] FIG. 4 is a schematic diagram illustrating a part of a computing device according to the embodiment. [Figure 5] FIG. 5 is a schematic diagram illustrating a part of a computing device according to the embodiment. [Figure 6] FIG. 6 is a schematic diagram illustrating a part of a computing device according to the embodiment. [Figure 7] FIG. 7 is a flowchart illustrating the operation of the computing device according to the embodiment. [Figure 8] FIG. 8 is a flowchart illustrating the operation of the computing device according to the embodiment. [Figure 9] FIG. 9 is a flowchart illustrating the operation of the computing device according to the embodiment. [Figure 10] FIG. 10 is a flowchart illustrating the operation of the computing device according to the embodiment. [Figure 11] FIG. 11 is a graph illustrating the calculation results obtained by the calculation device. [Figure 12] FIG. 12 is a graph illustrating the calculation results obtained by the calculation device. 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 the embodiment includes a processing unit 70. As will be described later, the processing unit 70 is capable of repeatedly performing an update process.

[0009] The processing unit 70 may include, for example, a CPU (Central Processing Unit), etc. The processing unit 70 may include, for example, an electronic circuit, etc. The computing device 110 may be a computing system.

[0010] In this example, the computing device 110 includes an acquisition unit 78. The acquisition unit 78 is capable of acquiring, for example, various types of data. The acquisition unit 78 includes, for example, an I / O port. The acquisition unit 78 is an interface. The acquisition unit 78 may have a function as an output unit. The acquisition unit 78 may have, for example, a communication function.

[0011] In this example, the computing device 110 includes a storage unit 79a. The storage unit 79a can store various data. The storage unit 79a may be, for example, a memory. The storage unit 79a may include at least one of a read-only memory (ROM) and a random access memory (RAM).

[0012] The computing device 110 may include a display unit 79b and an input unit 79c. The display unit 79b may include various displays. The input unit 79c may be, for example, a device having an operation function (for example, a keyboard). Do , mouse, touch input panel, or voice recognition input device).

[0013] The multiple elements included in the computing device 110 can communicate with each other by at least one of wireless and wired methods. The multiple elements included in the computing device 110 may be provided in different locations. For example, a general-purpose computer may be used as the computing device 110. For example, multiple computers connected to each other may be used as the computing device 110. A dedicated circuit may be used as at least a part of the computing device 110 (for example, the processing unit 70, etc.). For example, multiple circuits connected to each other may be used as the computing device 110.

[0014] 1, the processing unit 70 may include a plurality of processing parts (for example, first to sixth processing parts 70a to 70f). The plurality of processing parts may operate in parallel. For example, parallel processing (parallel calculation) may be performed.

[0015] An example of the operation performed by the computing device 110 according to the embodiment will be described below.

[0016] FIG. 2 is a flowchart illustrating the operation of the computing device according to the embodiment. 2 illustrates an example of an operation performed by the processing unit 70. The processing unit 70 can repeatedly perform the update process. The update process is repeatedly performed by a loop of steps S151 and S152. The update process includes updating x_UD of a first variable set (step S110) and updating y_UD of a second variable set (step S120). In this example, in one update process, step S110 is performed after step S120.

[0017] The first variable group is the first variable x i The ordinal number i is an integer between 1 and N, where "N" is an integer greater than or equal to 2. The first variable x i corresponds to the i-th element of the first variable set {x}. The second variable set is the second variable y i The second variable y i corresponds to the i-th element of the second variable set {y}.

[0018] The update of the second variable group y_UD (step S120) is performed by i to the second function F i Add the second variable y i This involves updating the second function F i The variables are the first variable x i For example, the second function F i is the first variable x i The second function F i is the parameter a i Includes:

[0019] Second function F i may include a first term function and a second term function. For example, the second function F i includes the sum of a first term function and a second term function. The update y_UD of the second variable set includes an update y_UD-1 based on the first term function and an update y_UD-2 based on the second term function.

[0020] The variable of the first term function is the first variable x i and parameter a i That is, the first term function is the first variable x i and parameter a i The update y_UD-1 based on the first term function is, for example, i and parameter a i The function containing (first term function) is the second variable y before updating i (Step S121).

[0021] The variables of the second-order function include a first variable group {x} and a first parameter group {J}. That is, the update y_UD-2 based on the second-order function is, for example, performed by updating the function of the first variable group {x} and the first parameter group {J} (second-order function) with the second variable y i (step S122). Step S121 can be performed after step S122. Step S122 can be performed after step S121.

[0022] On the other hand, the update of the first variable group x_UD (step S110) is performed by ito the first function G i Add the first variable x i This involves updating the first function G i The variable is the second variable y i For example, the update of the first variable group x_UD (step S110) includes the update of the second variable y i The first function G i The first variable x before updating i This includes adding

[0023] As mentioned above, the second function F used to update the second set of variables y_UD i is the parameter a i Parameter a i is, for example, a branching parameter. In an embodiment, the parameter a for one ordinal number i i is the parameter a for another ordinal i. i For example, the ordinal number p is an integer between 1 and N inclusive. The ordinal number q is an integer between 1 and N inclusive. The ordinal number q is different from the ordinal number p. In an embodiment, the parameter a p is the parameter a q This is different from the parameter a i This allows, for example, highly accurate calculation results to be obtained.

[0024] In the reference example, for all ordinal numbers i, the same parameter a i For example, in the reference example, when the update process is repeated, the same parameter a i applies.

[0025] In contrast, in the embodiment, different parameters a are used in at least two different ordinal numbers i. i is applied, which results in highly accurate calculation results.

[0026] In an embodiment, in each iteration of the update process, different parameters a ican be applied. For example, the iteration of the update process includes a first update and a second update. The second update is performed after the first update. The parameter a in the second update i is the parameter a in the first update i The parameter a in the second update can be different from p is the parameter a in the first update p The parameter a in the second update can be different from q is the parameter a in the first update q For example, in an embodiment, the parameter a i is updated, which results in more accurate calculation results.

[0027] Below, parameter a i We will explain some examples of updates (changes) to the following. In the first example, the initial parameter a i Based on this, the parameter a after repeated update processing (at the end of calculation) i For example, the processing unit 70 performs the update process K times, where "K" is an integer equal to or greater than 2. The parameter a in the Kth update process is i is the parameter a in the first update process i In this case, the parameter a in the first update i The parameter a in the second update based on i The increase in the first variable x i and the first value A i The larger the absolute value of the difference between the two, the smaller the setting.

[0028] In the first example, for example, the first variable x p and the first value A p The absolute value of the difference between the first variable x q and the first value A q In this case, the parameter a in the first update is p The parameter a in the second update based on p The increase in the parameter a qThe parameter a in the second update based on q The processing unit 70 performs such a process.

[0029] In the second example, the initial parameter a i Based on this, the parameter a after repeated update processing (at the end of calculation) i The parameter a in the Kth update process decreases. i is the parameter a in the first update process i In this case, the parameter a i The parameter a in the second update based on i The amount of decrease is the first variable x i and the first value A i The larger the absolute value of the difference, the smaller the

[0030] In the second example, for example, the first variable x p and the first value A p The absolute value of the difference between the first variable x q and the first value A q In this case, the parameter a in the first update is p The parameter a in the second update based on p The amount of decrease in the parameter a q The parameter a in the second update based on q The processing unit 70 performs such a process.

[0031] Thus, the parameter a i is the first variable x i For example, the processing unit 70 changes the first variable x i is controlled to be within a first range. The first range is a range between a first boundary value and a second boundary value. i , first value A p and the first value A q is greater than or equal to the first boundary value and less than or equal to the second boundary value. The first boundary value and the second boundary value are i corresponds to the "wall" of the first range to be controlled.

[0032] For example, the first value A above i The first value A may be a substantial median value between the first boundary value and the second boundary value. p and the first value A q may be a substantial median value between the first boundary value and the second boundary value.

[0033] 2 shows the first example above. As shown in FIG. 2, after step S120 and step S110, the first variable x i It is determined whether the first variable x is within the first range (step S141). i If is within the first range, the process proceeds to step S130.

[0034] First variable x i If the first variable x is not within the first range, the process proceeds to step S142. i The first variable x is set to be within the first range. i In step S142, for example, the second variable y i is set to 0. After that, the process proceeds to step S130.

[0035] In step S130, the parameter a i In the first example, the initial parameter a i Based on this, the parameter a after repeated update processing (at the end of calculation) i The parameter a in the first example increases. i In the update a_UD, the first variable x i is the first value A i The further away from the parameter a i The increase in value is set small.

[0036] As shown in FIG. 2, the first variable group is updated x_UD (step S110), the second variable group is updated y_UD (step S120), and the parameter a iThe update process including the update a_UD is repeated in a loop. For example, steps S110, S120, and S130 are provided between steps S151 and S152. In this example, steps S141 and S142 are provided between steps S151 and S152.

[0037] 2, for example, the processing unit 70 acquires question data J (step S101). The question data J is input, for example, by a user of the computing device 110. The acquiring unit 78 acquires the input question data J. The question data J acquired by the acquiring unit 78 is supplied to the processing unit 70. The question data J corresponds, for example, to the first parameter group {J}.

[0038] As shown in FIG. 2, the following initialization (step S102) is performed. For example, variables and parameters are initialized. For example, the number of iterations nt is set to 0. For example, the parameter a i is set to "a0". "a0" is a fixed value. For example, the first variable x i But "rx i ". During initialization, the second variable y i But, "ry i " is set to "rx i " and "ry i " are mutually independent random numbers.

[0039] Thereafter, the loop operation between step S151 and step S152 is performed until the number of repetitions nt reaches a predetermined value Nt. An example of updating the second variable set y_UD (step S120) will be described later.

[0040] In updating the first variable set x_UD (step S110), for example, the following first equation is calculated.

number

[0041] In the first formula, "dt" is, for example, a constant. "dt" may be predetermined. The first formula indicates that the variable written before the "+" on the left side is updated by adding the right side to the variable. The same applies to the similar formulas shown below. The "asterisk *" is a symbol for multiplication.

[0042] After step S110, the process goes through the above steps S141, S142 and S130 and then to step S155. In step S155, the following second equation is executed.

number

[0043] That is, the number of repetitions nt is incremented by 1. If the number of repetitions nt is smaller than the predetermined value Nt in step S152, the process returns to step S151. When the number of repetitions nt reaches the predetermined value Nt, the calculation ends.

[0044] The processing unit 70 calculates at least the first variable x obtained after repeating the update process. i , and the first variable x obtained after repeating the update process i At least one of the above functions can be output (step S160).

[0045] FIG. 3 is a flowchart illustrating the operation of the computing device according to the embodiment. 3 shows the second example. As shown in FIG. 3, in step S130, the parameter a i In the second example, the initial parameter a i Based on this, the parameter a after repeated update processing (at the end of calculation) i The parameter a in step S130 of the second example is decreased. i In the update a_UD), the first variable x i is the first value A i The further away from the parameter a iThe amount of decrease is set small. Except for step S130, the process illustrated in FIG. 3 may be the same as the process illustrated in FIG.

[0046] FIG. 4 is a schematic diagram illustrating a part of a computing device according to the embodiment. As shown in FIG. 4, the processing unit 70 may include a first processing portion 70a and a second processing portion 70b. The first processing portion 70a and the second processing portion 70b perform update y_UD-1 based on the first-term function (step S121). For example, the first processing portion 70a performs a part of the calculation related to the first-term function (step S121a). The second processing portion 70b performs another part of the calculation related to the first-term function (step S121b). At least a part of the other part of the calculation related to the first-term function may be performed simultaneously with at least a part of the part of the calculation related to the first-term function. Parallel calculation speeds up the calculation.

[0047] FIG. 5 is a schematic diagram illustrating a part of a computing device according to the embodiment. As shown in FIG. 5, the processing unit 70 may include a third processing portion 70c and a fourth processing portion 70d. The third processing portion 70c and the fourth processing portion 70d perform update y_UD-2 based on the dyadic function (step S122). For example, the third processing portion 70c performs a portion of the calculation related to the dyadic function (step S122a). The fourth processing portion 70d performs another portion of the calculation related to the dyadic function (step S122b). At least a portion of the other portion of the calculation related to the dyadic function may be performed simultaneously with at least a portion of the portion of the calculation related to the dyadic function. Parallel calculation speeds up the calculation.

[0048] FIG. 6 is a schematic diagram illustrating a part of a computing device according to the embodiment. 6, the processing unit 70 may include a fifth processing portion 70e and a sixth processing portion 70f. The fifth processing portion 70e and the sixth processing portion 70f perform the update x_UD of the first variable set (step S110). For example, the fifth processing portion 70e performs a part of the update x_UD of the first variable set (step S110a). The sixth processing portion 70f performs another part of the update x_UD of the first variable set (step S110b). At least a part of the other part of the update x_UD of the first variable set is performed simultaneously with at least a part of the part of the update x_UD of the first variable set.

[0049] For example, the fifth processing section 70e processes the first function G i (Step S110a). The sixth processing portion 70f performs a part of the calculation for the first function G i Another part of the calculation is performed on the first function G (step S110b). i At least a part of another part of the calculations for the first function G i is performed simultaneously with at least a portion of the calculations relating to

[0050] In this way, in at least one of the update y_UD-1 based on the first term function, the update y_UD-2 based on the second term function, and the update x_UD of the first variable group, parallel processing (parallel calculation) may be performed for the ordinal number i. For example, calculations for mutually different ordinal numbers i are performed in parallel. Parallel processing allows for high-speed calculation of optimization problems. For example, large-scale problems can be solved quickly. For example, when the first variable x i The value of the sign (-1 or 1) of gives the solution to the combinatorial optimization problem corresponding to the first parameter group {J}.

[0051] FIG. 7 is a flowchart illustrating the operation of the computing device according to the embodiment. Fig. 7 shows an example related to the second example above. In the example of Fig. 7, the problem data J (first parameter group {J}) may include tensors of first, second, and higher orders such as third and higher.

[0052] In the example of FIG. 7, in update y_UD-2 based on the second-order function, the following third equation is calculated.

number

[0053] As shown in the third formula, the first parameter group {J} includes tensors of first, second, and higher orders than third. The second term function is a function of at least a part of the first parameter group {J} and the first variable group {x} At least one of Department and , and includes sum-of-products terms. When the first parameter group {J} is quadratic, the first parameter group {J} corresponds to a matrix. Thus, the first parameter group {J} may include a tensor of third or higher order. In the third formula, "c" is a parameter. "c" may be calculated, for example, between step S151 and step S120. Examples of "c" will be described later.

[0054] In the update y_UD-1 based on the first term function, the following fourth equation is calculated.

number

[0055] That is, the second function F i The first term function in i and parameter a i Includes the product with .

[0056] In the example of FIG. 7, in step S141, the following fifth formula is evaluated.

number

[0057] In step S141, if the fifth formula is satisfied, the process proceeds to step S130. In step S141, if the fifth formula is not satisfied, the process proceeds to step S142. In step S142, the following sixth formula is executed.

number

[0058] In the sixth formula, "sgn(x i )" is the first variable x i It indicates the sign value (-1 or 1). Various expressions from the 6th expression onwards may indicate "processing" in programming languages.

[0059] In the example of FIG. 7, the following seventh equation is calculated in step S130.

number

[0060] In the seventh formula, "c a "," "c a0 " and "nt0" are parameters. a "," "c a0 " and "nt0" can be predetermined. In the seventh equation, the function defined in the following eighth equation is applied.

number

[0061] In the example of FIG. 7, the following 9th equation may be calculated in step S122.

number

number

[0062] FIG. 8 is a flowchart illustrating the operation of the computing device according to the embodiment. In the example of Figure 8, the first variable x i Based on the average (e.g., time average) of i will be updated.

[0063] As shown in FIG. 8, after step S110, the following equation 11 is calculated (step S125).

number

[0064] In the formula 11, "g" is a constant. "g" may be determined in advance. "Zi" shown in the formula 11 is the first variable x i 8, in this example, in the initialization (step S102), "Zi" is set to 0. Then, steps S141 and S142 described with reference to FIG. 7 are performed.

[0065] In the example of FIG. 8, the following equation 12 is calculated in step S130.

[0066]

number

[0067] Thereafter, steps S155, S152 and S160 described with reference to Figure 7 are performed. i Based on the parameter a i It's good to be updated.

[0068] For example, in the third example, the processing unit 70 performs the update process K times. i is the parameter a in the first update process iThe iteration of the update process includes a first update and a second update performed after the first update. The parameter a i The parameter a in the second update based on i The increase in the variable Z for two ordinal numbers i is i and the first value A i The larger the absolute value of the difference between the variable Z and the i is the first variable x i It varies depending on.

[0069] In the third example, for example, variable Z p and the first value A p The absolute value of the difference between q and the first value A q In this case, the parameter a in the first update is p The parameter a in the second update based on p The increase in the parameter a q The parameter a in the second update based on q The variable Z is set to a value smaller than the increase in p is the first variable x p It depends on the variable Z. q is the first variable x q It varies depending on.

[0070] For example, in the fourth example, the processing unit 70 performs the update process K times. i is the parameter a in the first update process i The iteration of the update process includes a first update and a second update performed after the first update. The parameter a i The parameter a in the second update based on i The reduction of the variable Z for two ordinal numbers i is i and the first value A i The larger the absolute value of the difference between the variable Z and the i is the first variable x i It varies depending on.

[0071] In the fourth example, for example, variable Z p and the first value A p The absolute value of the difference between q and the first value A q In this case, the parameter a in the first update is p The parameter a in the second update based on p The amount of decrease in the parameter a q The parameter a in the second update based on q The variable Z is set to a value smaller than the decrease in p is the first variable x p It depends on the variable Z. q is the first variable x q It varies depending on.

[0072] FIG. 9 is a flowchart illustrating the operation of the computing device according to the embodiment. In the example of Figure 9, the first variable x i The first value A i Based on the distance from the parameter a i will be updated.

[0073] In FIG. 9, in step S141, the following equation 13 is evaluated.

[0074]

number

[0075] In equation 13, "b1" corresponds to the first boundary value, and "b2" corresponds to the second boundary value.

[0076] In step S142 in FIG. 9, the following equation 14 is calculated.

number

[0077] In step S130 in FIG. 9, the following equation 15 is calculated.

number

[0078] In the 15th formula, "A i " may be expressed, for example, by the following Equation 16:

number

[0079] As shown in Equation 16, in this example, the first value A i (For example, the first value A p and the first value A q ) is the median value between the first boundary value (b1) and the second boundary value (b2).

[0080] FIG. 10 is a flowchart illustrating the operation of the computing device according to the embodiment. In the example of FIG. 10, the first value A i distance from and the first variable x i Based on the time average of i will be updated.

[0081] In step S130 in FIG. 10, the following equation 17 is calculated.

number

[0082] In an embodiment, the parameter a i The update a_UD can be modified in various ways.

[0083] In the embodiment, updating using random numbers may be performed. For example, in updating y_UD-1 based on the first term function (step S121), the following equation 18 is calculated.

[0084]

number

[0085] For example, equation 18 is calculated instead of equation 4.

[0086] For example, the second function F i contains a first-term function, which is the function of the first variable x i and parameter a i and the random number r i This includes the product of the random number r i is positive. A random number r for one ordinal number i i is a random number r for another ordinal number i. i For example, the random number r with respect to the ordinal number p is different from p is a random number r with respect to ordinal number q. q This is different from the first variable x i It becomes easier to move away from the "wall" (the boundary of the first range).

[0087] The parameter "c" is obtained, for example, by the following equation 19.

number

[0088] Using "c" obtained from equation 19, the above equations (for example, equations 3 and 4) are calculated.

[0089] A calculation example will be described below.

[0090] FIG. 11 is a graph illustrating the calculation results obtained by the calculation device. In Fig. 11, the calculation results under the first calculation condition in the calculation device 110 according to the embodiment are shown by dark bars. In Fig. 11, the calculation results under the calculation device according to the reference example are shown by light bars. Under the first calculation condition, as described above, for different ordinal numbers i, different parameters a i is applied, and in each iteration of the update process, the parameter a i In the calculation device of the reference example, the parameter a is updated (changed) for all ordinal numbers i. i is the same, and the parameter ai In the reference example, "c a " is 0. In the first calculation condition and the reference example, "r i " is 1.

[0091] FIG. 11 shows the calculation results for the "G-set." The "G-set" is a benchmark for the max-cut problem. The horizontal axis of FIG. 11 is the instance name. The vertical axis of FIG. 11 is the accuracy parameter S1. The accuracy parameter S1 for the embodiment corresponds to the difference between the number of cuts in the calculation result of the "best known values" for the G-set and the number of cuts in the calculation result under the first calculation conditions. The accuracy parameter S1 for the reference example corresponds to the difference between the number of cuts in the calculation result of the "best known value" for the G-set and the number of cuts in the calculation result under the calculation conditions of the reference example. In this example, the "best known values" are described in "H. Goto et al., Science Advances 7, eabe7953 (2021)." A smaller accuracy parameter S1 means that a more accurate solution can be obtained in the same calculation time. A smaller accuracy parameter S1 corresponds to faster calculations.

[0092] In the first condition illustrated in FIG. 11, the parameter “c a " changes from 1.1 to 0. As shown in FIG. 11, in the calculation device 110 according to the embodiment, a smaller precision parameter S1 is obtained compared to the reference example.

[0093] FIG. 12 is a graph illustrating the calculation results obtained by the calculation device. In FIG. 12, the calculation results under the second calculation conditions in the calculation device 110 according to the embodiment are shown by dark bars. In FIG. 12, the calculation results under the calculation device according to the reference example are shown by light bars. Under the second calculation conditions, the parameter "c a " varies from 1.1 to 0, and the random number (noise term) in Equation 18 is applied. In this example, the random number r iis a random number between 0.5 and 1.5. As explained above, in the reference example, a " is 0 and "r i " is 1.

[0094] FIG. 12 shows the calculation results for the "G-set" described above. The horizontal axis of FIG. 12 represents the instance name. The vertical axis of FIG. 12 represents the accuracy parameter S1. The accuracy parameter S1 for the embodiment corresponds to the difference between the number of cuts in the calculation results for the "best known values" for the G-set and the number of cuts in the calculation results under the first calculation conditions. The accuracy parameter S1 for the reference example corresponds to the difference between the number of cuts in the calculation results for the "best known value" for the G-set and the number of cuts in the calculation results under the calculation conditions for the reference example.

[0095] As shown in FIG. 12, the calculation device 110 according to the embodiment obtains a smaller accuracy parameter S1 than the reference example.

[0096] (Second embodiment) The second embodiment relates to a calculation program that causes a computer to repeatedly perform the above update process.

[0097] (Third embodiment) No. 3 The embodiment is a computer-readable recording medium having a program recorded thereon that causes a computer to repeatedly perform the update process.

[0098] (Fourth embodiment) This embodiment relates to a calculation method, which causes the processing unit 70 to repeatedly perform the above-mentioned update process.

[0099] 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.

[0100] 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.

[0101] 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.

[0102] 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 (OS). This software may also include, for example, middleware that operates on a network.

[0103] 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.

[0104] 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.

[0105] The embodiment may include the following configurations (e.g., technical solutions). (Configuration 1) a processing unit capable of repeatedly performing an update process; the update process includes updating a first set of variables and updating a second set of variables; The first variable group includes a first variable x i (ordinal i = integers from 1 to N, where N is an integer greater than or equal to 2), The second variable group includes a second variable y i Including, The second variable group is updated by the second variable y i to the second function F i Add the second variable y i updating the The second function F i The variable is the first variable x i and the second function F i is the parameter a i Including, An ordinal number p is an integer between 1 and N, inclusive, The ordinal number q is an integer between 1 and N, and the ordinal number q is different from the ordinal number p, Parameter a p is the parameter a q A computing device that is different from the above.

[0106] (Configuration 2) the iteration of the update process includes a first update and a second update performed after the first update; The parameter a in the first update p is the parameter a in the second update p 2. The computing device of claim 1, wherein:

[0107] (Configuration 3) The processing unit performs the update process K times (K is an integer equal to or greater than 2), The parameter a in the Kth update process i is the parameter a in the first update process. i is larger than The first variable x p and the first value A p The absolute value of the difference between the first variable x q and the first value A q is greater than the absolute value of the difference between The parameter a in the first update p The parameter a in the second update is based on p The increase in the parameter a q The parameter a in the second update is based on q 3. The computing device of claim 2, wherein the increase is less than the increase in

[0108] (Configuration 4) The processing unit performs the update process K times (K is an integer equal to or greater than 2), The parameter a in the Kth update process i is the parameter a in the first update process. i smaller than The first variable x p and the first value A p The absolute value of the difference between the first variable x q and the first value A q is greater than the absolute value of the difference between The parameter a in the first update p The parameter a in the second update is based on p The amount of decrease in the parameter a q The parameter a in the second update is based on q 3. The computing device of claim 2, wherein the reduction is less than the reduction in

[0109] (Configuration 5) The processing unit performs the update process K times (K is an integer equal to or greater than 2), The parameter a in the Kth update process i is the parameter a in the first update process. i is larger than Variable Z p and the first value A p The absolute value of the difference between q and the first value A q is greater than the absolute value of the difference between The parameter a in the first update pThe parameter a in the second update is based on p The increase in the parameter a q The parameter a in the second update is based on q is smaller than the increase in The variable Z p is the first variable x p It varies depending on The variable Z q is the first variable x q 3. The computing device of claim 2, wherein the computing device varies depending on the

[0110] (Configuration 6) The processing unit performs the update process K times (K is an integer equal to or greater than 2), The parameter a in the Kth update process i is the parameter a in the first update process. i smaller than Variable Z p and the first value A p The absolute value of the difference between q and the first value A q is greater than the absolute value of the difference between The parameter a in the first update p The parameter a in the second update is based on p The amount of decrease in the parameter a q The parameter a in the second update is based on q is smaller than the decrease in The variable Z p is the first variable x p It varies depending on The variable Z q is the first variable x q 3. The computing device of claim 2, wherein the computing device varies depending on the

[0111] (Configuration 7) The processing unit calculates the first variable x i is controlled to be within a first range equal to or greater than a first boundary value and equal to or less than a second boundary value, The first value A p and the first value Aq is equal to or greater than the first boundary value and equal to or less than the second boundary value.

[0112] (Configuration 8) The processing unit calculates the first variable x i is controlled to be equal to or greater than the first boundary value and equal to or less than the second boundary value, The first value A p and the first value A q is a substantial median value between the first boundary value and the second boundary value.

[0113] (Configuration 9) The second function F i contains the first-term function, The first term function is i and the parameter a i 9. The calculation device according to any one of configurations 3 to 8, including a product of

[0114] (Configuration 10) The second function F i contains the first-term function, The first term function is i and the parameter a i Toran number r i This includes the product with The random number r i is positive, A random number r related to the ordinal number p p is a random number r related to the ordinal number q q 10. The computing device according to any one of configurations 1 to 9, which is different from the above.

[0115] (Configuration 11) The second function F i includes the first term function and the second term function, 11. The computing device of configuration 9 or 10, wherein variables of the second term function include the first variable group and a first parameter group {J}.

[0116] (Configuration 12) 12. The computing device of claim 11, wherein the second term function includes a multiply-and-accumulate term of at least a portion of a first parameter group {J} and at least a portion of the first variable group.

[0117] (Configuration 13) 13. The computing device of claim 11, wherein the first set of parameters {J} includes a tensor of order three or higher.

[0118] (Configuration 14) the processing unit includes a third processing section and a fourth processing section, the third processing portion performs a part of the calculation relating to the second term function; the fourth processing portion performs another part of the calculations relating to the second term function; 14. The computing device according to any one of configurations 11 to 13, wherein at least a part of the other part of the calculations relating to the second-order function is performed simultaneously with at least a part of the part of the calculations relating to the second-order function.

[0119] (Configuration 15) the processing unit includes a first processing portion and a second processing portion; the first processing portion performs a portion of the calculations relating to the first term function; the second processing portion performs another part of the calculations relating to the first term function; 15. The computing device according to any one of configurations 9 to 14, wherein at least a portion of the other portion of the calculations relating to the first term function is performed simultaneously with at least a portion of the portion of the calculations relating to the first term function.

[0120] (Configuration 16) The update of the first variable group is performed by updating the first variable x before update. i Add the first function to the first variable x i updating the The variable of the first function is the second variable y i 16. The computing device according to any one of configurations 1 to 15, comprising:

[0121] (Configuration 17) the processing section includes a fifth processing section and a sixth processing section, the fifth processing portion performs a portion of the calculations related to the first function; the sixth processing portion performs another part of the calculations relating to the first function; 17. The computing device of configuration 16, wherein at least a portion of the other portion of the computations relating to the first function is performed simultaneously with at least a portion of the portion of the computations relating to the first function.

[0122] (Configuration 18) the first function is independent of the first set of variables; 18. The computing device of claim 16 or 17, wherein the second function is independent of the second set of variables.

[0123] (Configuration 19) The processing unit at least calculates the first variable x obtained after repeating the update process. i , and the first variable x obtained after repeating the update process. i 19. The calculation device according to any one of configurations 1 to 18, which is capable of outputting at least one of the functions above.

[0124] (Configuration 20) A calculation program that causes a computer to repeat an update process, the update process includes updating a first set of variables and updating a second set of variables; The first variable group includes a first variable x i (ordinal i = integers from 1 to N, where N is an integer greater than or equal to 2), The second variable group includes a second variable y i Including, The second variable group is updated by the second variable y i to the second function F i Add the second variable y i updating the The second function F i The variable is the first variable x i and the second function F i is the parameter ai Including, An ordinal number p is an integer between 1 and N, inclusive, The ordinal number q is an integer between 1 and N, and the ordinal number q is different from the ordinal number p, Parameter a p is the parameter a q A different calculation program.

[0125] (Configuration 21) A computer-readable recording medium having a calculation program recorded thereon that causes a computer to repeat an update process, the update process includes updating a first set of variables and updating a second set of variables; The first variable group includes a first variable x i (ordinal i = integers from 1 to N, where N is an integer greater than or equal to 2), The second variable group includes a second variable y i Including, The second variable group is updated by the second variable y i to the second function F i Add the second variable y i updating the The second function F i The variable is the first variable x i and the second function F i is the parameter a i Including, An ordinal number p is an integer between 1 and N, inclusive, The ordinal number q is an integer between 1 and N, and the ordinal number q is different from the ordinal number p, Parameter a p is the parameter a q A recording medium that is different from the above.

[0126] (Configuration 22) causing the processing unit to repeatedly perform the update process; the update process includes updating a first set of variables and updating a second set of variables; The first variable group includes a first variable x i (ordinal i = integers from 1 to N, where N is an integer greater than or equal to 2), The second variable group includes a second variable y i Including, The second variable group is updated by the second variable y i to the second function F i Add the second variable y i updating the The second function F i The variable is the first variable x i and the second function F i is the parameter a i Including, An ordinal number p is an integer between 1 and N, inclusive, The ordinal number q is an integer between 1 and N, and the ordinal number q is different from the ordinal number p, Parameter a p is the parameter a q A different calculation method.

[0127] According to the embodiments, it is possible to provide a calculation device, a calculation program, a recording medium, and a calculation method that can improve calculation accuracy.

[0128] 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 the elements included in the computing device, such as the processing unit, acquisition unit, and 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.

[0129] 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.

[0130] 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.

[0131] 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.

[0132] 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]

[0133] 70...processing unit, 70a to 70f...first to sixth processing units, 78...acquisition unit, 79a...storage unit, 79b...display unit, 79c...input unit, 110...calculation device

Claims

1. a processing unit capable of repeatedly performing an update process; the update process includes updating a first set of variables and updating a second set of variables; The first variable group includes a first variable x i (ordinal number i=an integer from 1 to N, N is an integer equal to or greater than 2), The second variable group includes a second variable y i Including, The second variable group is updated by i to the second function F i Add the second variable y i updating the The second function F i The variable x i and the second function F i is the branching parameter a i Including, The ordinal number p is an integer between 1 and N, inclusive, The ordinal number q is an integer between 1 and N, and the ordinal number q is different from the ordinal number p, Parameter a p is the parameter a q Unlike, The software executed by the processing unit and the processing unit as a hardware resource cooperate to solve an optimization problem, the iteration of the update process includes a first update and a second update performed after the first update; the parameter a p in the first update is different from the parameter a p in the second update; the processing unit performs the update process K times (K is an integer equal to or greater than 2), when the parameter a i in the Kth update process is greater than the parameter a i in the first update process and the absolute value of the difference between the first variable x p and the first value A p is greater than the absolute value of the difference between the first variable x q and the first value A q , an increase in the parameter a p in the second update based on the parameter a p in the first update is smaller than an increase in the parameter a q in the second update based on the parameter a q in the first update, the second function F i includes a first term function and a second term function; the first term function includes the first variable x i and the parameter a i ; variables of the second term function include the first variable group and a first parameter group {J}; the updating of the second set of variables includes updating based on the first term function and updating based on the second term function; the processing unit includes a first processing portion and a second processing portion; the first processing portion performs a portion of the calculations relating to the first term function; the second processing portion performs another part of the calculations relating to the first term function; at least a portion of the other portion of the calculations relating to the first term function is performed simultaneously with at least a portion of the portion of the calculations relating to the first term function; the processing unit is capable of outputting at least one of the first variable x i obtained after the update process is repeated and a function of the first variable x i obtained after the update process is repeated, the first parameter group {J} corresponds to problem data related to the optimization problem acquired by the processing unit; The update process performed by the processing unit is performed based on the software.

2. The parameter a in the Kth update process i is the parameter a in the first update process i is smaller than the first variable x p and the first value A p The absolute value of the difference between the first variable x q and the first value A q If it is greater than the absolute value of the difference between The parameter a in the first update p The parameter a in the second update is based on p The amount of decrease in the parameter a q The parameter a in the second update is based on q The computing device of claim 1 , wherein the decrease in the number of inputs is less than the decrease in the number of inputs.

3. The parameter a in the Kth update process i is the parameter a in the first update process i is greater than the variable Z p and the first value A p The absolute value of the difference between q and the first value A q If it is greater than the absolute value of the difference between The parameter a in the first update p The parameter a in the second update is based on p The increase in the parameter a q The parameter a in the second update is based on q is smaller than the increase in The variable Z p is the first variable x p It varies depending on The variable Z q is the first variable x q The computing device of claim 1 , wherein the variable is dependent on

4. The parameter a in the Kth update process i is the parameter a in the first update process i is smaller than the variable Z p and the first value A p The absolute value of the difference between q and the first value A q If it is greater than the absolute value of the difference between The parameter a in the first update p The parameter a in the second update is based on p The amount of decrease in the parameter a q The parameter a in the second update is based on q is smaller than the decrease in The variable Z p is the first variable x p It varies depending on The variable Z q is the first variable x q The computing device of claim 1 , wherein the variable is dependent on

5. The processing unit calculates the first variable x i is controlled to be within a first range equal to or greater than a first boundary value and equal to or less than a second boundary value, The first value A p and the first value A q is equal to or greater than the first boundary value and equal to or less than the second boundary value.

6. The processing unit calculates the first variable x i is controlled to be equal to or greater than a first boundary value and equal to or less than a second boundary value, The first value A p and the first value A q 5. The computing device according to claim 1, wherein the first boundary value and the second boundary value are substantially the median value of each other.

7. The first term function is i and the parameter a i and the random number r i This includes the product with The random number r i is positive, A random number r related to the ordinal number p p is a random number r related to the ordinal number q q The computing device according to any one of claims 1 to 6, which is different from

Citation Information

Patent Citations

  • Optimization device, control method of optimization device and control program of optimization device

    JP2020046718A

  • Computing apparatus, computation program, storage medium, and computation method

    JP2020046766A

  • 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