Information processing device, information processing method, and information processing program

By decomposing the matrix of coupling coefficients in the Ising model into multiple matrices using rank numbers, the information processing device reduces memory requirements, enabling efficient processing of large-scale discrete optimization problems.

JP7673412B2Active Publication Date: 2025-05-09FUJITSU LTD
View PDF 6 Cites 0 Cited by

Patent Information

Application Number
JP2021005349
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Filing Date
2021-01-15
Publication Date
2025-05-09
Estimated Expiration
2041-01-15

AI Technical Summary

Technical Problem

As the number of variables in the Ising model increases, the size of the data required to store the coupling coefficients in memory becomes excessively large, posing challenges for processing due to memory constraints and increased overhead.

Method used

The information processing device decomposes the matrix of coupling coefficients into multiple matrices using rank numbers, obtaining a second element corresponding to the first element from these matrices, and performs processing to restore the first element based on the second element, thereby reducing the memory requirements.

Benefits of technology

This approach allows for a significant reduction in the size of data placed in memory when solving discrete optimization problems, making it feasible to process large-scale problems without the limitations imposed by memory constraints.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007673412000006
    Figure 0007673412000006
  • Figure 0007673412000007
    Figure 0007673412000007
  • Figure 0007673412000008
    Figure 0007673412000008
Patent Text Reader

Abstract

To solve the following problems: in a problem of obtaining x with which an energy function E (x) is minimized, allocating a matrix that includes all of the values of the coupling coefficient of the Ising model in a memory of an apparatus or software may make the size of data to be allocated in the memory become tens of gigabytes, or in some cases, hundreds of gigabytes or larger, accordingly, preparation of a large memory becomes difficult depending on a platform that performs processing and overhead for allocation to the memory increases.SOLUTION: An information processing apparatus includes a control unit configured to decompose a matrix of a coupling coefficient which represents interaction between a plurality of variables into a plurality of matrices by using a rank number, obtain, from the plurality of matrices, a second element that corresponds to a first element of the coupling coefficient, and restore the first element based on the second element. In one aspect, the size of data to be allocated in a memory can be suppressed when a discrete optimization problem is solved.SELECTED DRAWING: Figure 3
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] The present invention relates to an information processing device, an information processing method, and an information processing program. [Background technology]

[0002] Optimization is an important field in information processing. Optimization problems are broadly divided into linear programming problems and discrete optimization problems. As the scale of the latter increases, the number of combinations increases explosively, and the calculation time required to find the solution by exhaustively calculating all combinations becomes unrealistic.

[0003] One method for solving such large-scale discrete optimization problems is the Ising machine (also called the Boltzmann machine) which performs simulated annealing (also called the pseudo-annealing method) using an Ising-type energy function. The Ising machine has a method for calculating the problem to be calculated by replacing it with an Ising model expressed as a quadratic equation, which is a model that represents the behavior of the spin of a magnetic material. [Prior art documents] [Patent documents]

[0004] [Patent Document 1] JP 2019-185602 A [Patent Document 2] US Patent Application Publication No. 2019 / 0318258 [Patent Document 3] JP 2018-206016 A Summary of the Invention [Problem to be solved by the invention]

[0005] In the Ising model, each of the multiple variables is regarded as each of the multiple spins of a magnetic material, and simulated annealing is performed using the value of the coupling coefficient that represents the strength of mutual coupling between each of the multiple spins. As the number of variables included in the energy function expressed by the Ising model increases, the number of coupling variables also increases. Therefore, when solving a problem in which the number of bits of x is very large, for example, in a problem of finding x that minimizes the energy function E(x), if a matrix containing all the values ​​of the coupling coefficients of the Ising model is placed in the memory of a device or software, the size of the data placed in the memory may become tens of gigabytes, or in some cases, hundreds of gigabytes or more.

[0006] Therefore, depending on the platform on which the processing is performed, it may be difficult to prepare a large memory, or the overhead of allocating data to memory may be large.

[0007] In one aspect, an object of the present invention is to provide an information processing device, an information processing method, and an information processing program that can reduce the size of data to be allocated in memory when solving a discrete optimization problem. [Means for solving the problem]

[0008] In one aspect, the information processing device has a control unit that executes a process of decomposing a matrix of coupling coefficients representing interactions between multiple variables into multiple matrices using a rank number, obtaining a second element corresponding to a first element of the coupling coefficient from the multiple matrices, and restoring the first element based on the second element. Effect of the Invention

[0009] On the one hand, when solving a discrete optimization problem, the size of data to be allocated in memory can be reduced. [Brief description of the drawings]

[0010] [Figure 1] FIG. 1 is a diagram illustrating an example of a functional block diagram of an information processing apparatus according to an embodiment. [Diagram 2] FIG. 2 is a diagram illustrating an example of a system configuration according to an embodiment. [Diagram 3] FIG. 3 is a diagram showing an example of a functional block diagram of the information processing device 10 according to the present embodiment. [Figure 4] FIG. 4 is a diagram illustrating matrix decomposition. [Diagram 5] FIG. 5 is a diagram illustrating an example of a system configuration according to the present embodiment. [Figure 6] FIG. 6 is a flowchart showing the overall flow of the minimum solution search process of this embodiment. [Figure 7] FIG. 7 is a diagram showing an example of a distance matrix between cities. [Figure 8] FIG. 8 is a diagram showing an example of a bit allocation for visited cities. [Figure 9] FIG. 9 is a flowchart showing the flow of matrix decomposition and reconstruction processing in this embodiment. [Figure 10] FIG. 10 is a flowchart showing the flow of the minimum solution search process of this embodiment. [Figure 11] FIG. 11 is a diagram showing an example of a minimum solution search processing result of the present embodiment. [Figure 12] FIG. 12 is a diagram showing an example of the difference in memory allocation amount depending on whether compression is performed or not in this embodiment. [Figure 13] FIG. 13 is a diagram illustrating an example of a hardware configuration. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0011] Below, examples of the information processing device, information processing method, and information processing program according to the present embodiment will be described in detail with reference to the drawings. Note that the present embodiment is not limited to these examples. In addition, the examples can be appropriately combined within a range that is consistent. In addition, the present invention is not limited to the case where an optimization problem is solved using an Ising model, but can also be applied to the case where an optimization problem is solved using a model including a third or higher order term.

[0012] First, an example of a minimum solution search process will be described. A vector x∈{0,1} where the energy function E(x) is the minimum value is N or x∈{1,-1} N In the problem of finding the energy function E(x), for example, in the case of an Ising model (second order), the energy function E(x) is calculated by the following formula (1).

[0013]

number

[0014] In formula (1), W is a matrix, and when calculating E(x), N 2 It is necessary to place all elements in memory as they are for calculation. Therefore, for example, if N=100000 and W is a real number (4 bytes), 40 Gbytes will be required. Note that, since b is one-dimensional and C is a scalar, there is no need to consider the memory allocation size issue.

[0015] Moreover, in the case of, for example, a cubic function rather than a quadratic one, the energy function E(x) is calculated by the following formula (2).

[0016]

number

[0017] In the case of equation (2), Z is a cubic array, and for example, even if N=10,000, 400 Gbytes would be required.

[0018] 1 is a diagram illustrating an example of a functional block diagram of an information processing apparatus according to an embodiment. As illustrated in FIG 1, a coupling coefficient W designated by an application unit 101 is transferred as is to a memory 103 of a minimum solution search unit 102.

[0019] The energy calculation unit 104 may have a plurality of units that perform calculations using part of W in parallel. In addition, the energy calculation unit 104 may calculate W for (i0, j0), which is a pair of i and j in formula (1), as an example.i0j0 x i0 x j0 It is also possible to calculate multiple pairs of i and j and add them together.

[0020] Next, the calculation results from the energy calculation unit 104 are added in unit 105 to complete the processing of equation (1). When the decision is made in unit 106 based on the Metropolis standard, the temperature T is also referenced to make the decision on whether to accept or reject the result, and the decision result x is used to flip several bits from 1, and the processing is performed again in the energy calculation unit 104. N 1 to 0, or 0 to 1, for x∈{1,-1} N In this case, the value changes from 1 to -1 or from -1 to 1.

[0021] The processing of energy calculation unit 104 to unit 107 ends when a predetermined number of times or when the desired energy E is obtained. The calculation of energy E may be a calculation of the energy difference, and in this case the configuration is almost the same as the configuration shown in Fig. 1. When calculating the energy difference, unit 107 outputs the bit difference Δx obtained when performing a bit flip, and energy calculation unit 104 calculates the energy difference, unit 105 adds them up, and unit 106 judges whether it is acceptable or not.

[0022] 2 is a diagram showing an example of a system configuration according to an embodiment. A coupling coefficient W and externally provided parameters such as temperature are input by a user via a user interface (UI) 001. The coupling coefficient W input via the UI 001 is stored in a memory 005 such as a hard disk drive (HDD) or a random access memory (RAM). The coupling coefficient W stored in the memory 005 is then input to a memory 003.

[0023] The minimum solution searching unit 002 corresponds to the minimum solution searching unit 102 including the energy calculation unit 104 to the energy calculation unit 107 shown in Fig. 1. The memory 003 corresponds to the memory 103 shown in Fig. 1, and is a dedicated hardware device for the minimum solution searching unit 002, a field-programmable gate array (FPGA), a graphics processing unit (GPU), or a general-purpose CPU memory, such as a static RAM (SRAM) or a dynamic RAM (DRAM). The general-purpose CPU 004 is a general-purpose CPU that handles applications for the processing of the UI 001 and the minimum solution searching unit 002.

[0024] Next, the present embodiment will be described. In this embodiment, the coupling coefficient is compressed by a method that does not require complex calculations for decompression. Here, the complex calculations are, for example, a method according to the invention described in Patent Document 3. In this method, the difference between the values ​​and neighboring values ​​in time and space is taken, and compression is performed by referring to a table. Then, in order to decompress the compressed data, the table is referred to to obtain the difference value, and then neighboring values ​​are referred to to restore the original value. However, this method requires a separate table to be prepared and referred to one by one to generate variable-length data with different bit numbers and restore the original data from the variable-length data, and also refers to neighboring values ​​that have already been decompressed, making it unsuitable for parallel processing.

[0025] In contrast, in this embodiment, the positions of the elements of matrices U and V corresponding to the elements of the coupling coefficient W to be restored are uniquely determined without referring to the surroundings, and W can be obtained by only product-sum operations, which means that parallel processing is also possible and the calculation is simple.

[0026] 3 is a diagram showing an example of a functional block diagram of the information processing device 10 of the present embodiment. As shown in FIG. 3, for example, low-rank approximation of singular value decomposition (SVD) is used to compress the coupling coefficient W. Using SVD, the coupling coefficient W is decomposed into three matrices such that W=U*S*V. Matrix U is N×k, matrix S is k×k, and matrix V is k×N, and low-rank approximation can be performed by reducing the rank number k. Note that matrix S is a diagonal matrix representing singular values, and is multiplied by matrix U or matrix V to form two matrices.

[0027] Fig. 4 is a diagram illustrating matrix decomposition. As shown in Fig. 4, an n x m matrix W is decomposed into a k x m coefficient matrix U and an n x k basis matrix V using a rank number k. The rank number k is a number designated in advance by a user.

[0028] In addition, the matrix decomposition method is not limited to SVD. For example, non-negative matrix decomposition, which limits the decomposed matrix to non-negative values, or 01 matrix decomposition, which limits it to binary, may be used. The selection of the matrix decomposition method depends on how to handle the coupling coefficient W of the problem to be solved.

[0029] 3, the coupling coefficient W is subjected to matrix decomposition in the matrix decomposition section 208. The matrix decomposition is performed using a specified number of ranks k, and the results are stored in the unit 210.

[0030] Unit 209 calculates the relationship between the error with W when reconstructing matrices U, V or U, V, S, which are the result of the matrix decomposition, and the rank number k, as the rate-distortion characteristic. More specifically, for example, if the matrix restored using matrices U and V restored after decomposition into matrices U and V is W'=UV, an error may occur between the coupling coefficients W and W'. Here, the difference D between the coupling coefficients W and W' is called distortion, and the difference D is expressed as D=Σ ij (W ij -W´ ij ) 2 It can be calculated using the following formula.

[0031] Note that as the rank number k becomes smaller, the number of elements in matrices U and V becomes smaller, but the difference D becomes larger. Therefore, the rank number k is changed and the difference D is examined for several values, and the smallest rank number k among the allowable differences D and the matrices U, V or U, V, S obtained with that k are selected. The example in Figure 3 shows matrices U and V being selected.

[0032] The selected matrices U and V are stored in memory 203, and only the elements of matrices U and V corresponding to the elements of the coupling coefficient W required for calculation in energy calculation unit 204 are obtained from memory 203 by coupling coefficient W restoration unit 211 to restore the elements of the coupling coefficient W. Depending on the coupling coefficient W and the nature of the problem, the diagonal components of the coupling coefficient W can be set to 0, and only the regions that form an upper triangular matrix or a lower triangular matrix can be referenced to treat it as a symmetric matrix.

[0033] Then, the energy calculation unit 204 calculates the energy or the energy difference using the elements of the coupling coefficient W restored by the coupling coefficient W restoration unit 211. Even if the coupling coefficient W is of a third or higher order, processing can be performed using tensor decomposition such as Tucker decomposition in a configuration similar to that shown in FIG.

[0034] 5 is a diagram showing an example of the system configuration of this embodiment. Externally provided parameters such as a coupling coefficient W and temperature are input by a user via a UI 501. The coupling coefficient W input via the UI 501 is stored in a memory 505 such as a HDD or RAM.

[0035] The coupling coefficient W stored in the memory 505 is compressed by the general-purpose CPU 504 to calculate the matrices U and V, and the matrices U and V are stored in the memory 503. The general-purpose CPU 504 is a general-purpose CPU that handles applications for the processing of the UI 501 and the minimum solution search unit 502, and also performs processing of the matrix decomposition unit 208 and units 209 and 210 shown in FIG.

[0036] The minimum solution searching unit 502 corresponds to the minimum solution searching unit 202 including the energy calculation unit 204 to the energy calculation unit 207 shown in Fig. 3. The memory 503 corresponds to the memory 203 shown in Fig. 3 and is a dedicated hardware device of the minimum solution searching unit 502, an FPGA, a GPU, or a general-purpose CPU, and is an SRAM or a DRAM.

[0037] Next, the minimum solution search process executed by the information processing device 10 of this embodiment will be described in sequence with reference to the flowchart shown in Fig. 6. Fig. 6 is a flowchart showing the overall flow of the minimum solution search process of this embodiment.

[0038] 6, the information processing device 10 performs matrix decomposition on matrices U and V obtained with a plurality of rank numbers k in the matrix decomposition unit 208 using a combination coefficient W. For the matrix decomposition, SVD is used as an example, but 01 matrix decomposition or the like may also be used depending on the requirements of W. Moreover, the result of the matrix decomposition is accumulated in the unit 210 (step S101).

[0039] Next, the unit 209 of the information processing device 10 checks and determines the rank number k that is the allowable error from the relationship between the multiple rank numbers k and the error D (step S102).

[0040] Next, the information processing device 10 transfers the matrices U and V having the rank number k obtained in step S102 to the memory 203 (step S103).

[0041] Next, the information processing device 10 reads elements of the matrices U and V only in the places corresponding to the elements of the coupling coefficient W assigned to the energy calculation unit 204, and restores the elements of the coupling coefficient W (step S104).

[0042] Next, the information processing device 10 calculates, in the energy calculation unit 204, W ij and bit x i , x j Then, the energy of the corresponding portion is calculated (step S105).

[0043] Next, the information processing device 10, in the unit 205, adds up the results of step S105 to obtain the total energy (step S106).

[0044] Next, the information processing device 10 performs an acceptance / rejection determination based on the Metropolis standard or the like in the unit 206 (step S107).

[0045] Next, if adopted in step S107, the information processing device 10 overwrites the state and energy of the candidate x to reflect the adoption / rejection determination result in step S107, and flips the bit of x for the next process (step S108).

[0046] Next, the information processing device 10 loops steps S104 to S108 until a predetermined number of times or energy is reached (step S109).

[0047] Next, the minimum solution search process executed by the information processing device 10 of this embodiment will be described in more detail using the traveling salesman problem. For example, the traveling salesman problem is a problem in which the number of cities is c, and the number of bits is the number of cities x route, c. 2 It consists of cities and a visiting route.

[0048] Fig. 7 is a diagram showing an example of a distance matrix between cities. In the traveling salesman problem, the coupling coefficient W is a matrix that represents the distance between cities when the rows and columns are cities, and is a symmetric matrix in which the diagonal elements are distances between the same cities and therefore are 0. In Fig. 7, the units of values ​​such as "60" that represent the distance between cities may be expressed not only as distances such as "cm (centimeters)" but also as times such as "minutes."

[0049] FIG. 8 is a diagram showing an example of bit allocation for visited cities. For example, if the first city to be visited is city 2, then as shown in FIG. 8, a 1 bit is set for the city to be visited in the row of the visiting route, and all other bits are set to 0. In other words, there is only one bit that is 1 in each row and column. In this type of traveling salesman problem, the energy function is expressed as the following equation (3).

[0050]

number

[0051] In equation (3), the first term on the right hand side is the total distance based on x, and the visiting route i=c+1 is set to i=1 (to make it a closed route). The second and third terms on the right hand side represent the row and column constraints, and λ represents the magnitude of the constraint. When expressing the traveling salesman problem using the Ising model, x in equation (1) can be expanded into a vector and the coupling coefficient W can be expanded accordingly, but here, the explanation will be given using equation (3). Also, the constraints from the second term onwards on the right hand side of equation (3) will be omitted in the following explanation. Here, the flowchart of the minimum solution search process in Figure 6 will be explained in more detail based on the first term on the right hand side of (3).

[0052] First, steps S101 to S103 in the flowchart of Fig. 6 will be described with reference to the flowchart of Fig. 9. Fig. 9 is a flowchart showing the flow of matrix decomposition and restoration processing in this embodiment.

[0053] 9, first, the information processing device 10 acquires the coupling coefficient W and the allowable error eTH from the memory 505 (step S201). The allowable error eTH is specified by the user via the UI, for example. Since the coupling coefficient W is a distance matrix, the allowable error eTH is an allowable value for the deviation in the distance between cities. As an example of the allowable error eTH, if the numerical value of the element of the coupling coefficient W is in cm and deviations up to 100 cm are allowable, then eTH=100.

[0054] Next, the information processing device 10 sets the initial value of the rank number k to 1, for example (step S202). After that, the process is repeated while counting up the rank number k until the difference D between the combination coefficient W and the restored matrix W' reaches a predetermined allowable error eTH. In other words, the minimum rank number k within the allowable error eTH is searched for.

[0055] Next, the information processing device 10 performs SVD with the rank number k, and obtains matrices Uk, Sk, and Vk that are the decomposition results (step S203).

[0056] Next, the information processing device 10 calculates a square error Dk=sqrt(Σ(W−UkSkVk) 2 ) / c 2 Then, Dk is calculated (step S204).

[0057] Next, the information processing device 10 determines whether the square error Dk calculated in step S204 is below the allowable error eTH (step S205). If it is determined that the square error Dk is not below the allowable error eTH (step S205: No), the information processing device 10 counts up the rank number k (step S206) and repeats the process from step S203.

[0058] On the other hand, if it is determined that the square error D is below the allowable error e (step S205: Yes), the information processing device 10 outputs U, Sk (diagonal components), and V and transfers them to the memory 503 (step S207). After executing step S207, the matrix decomposition and reconstruction process shown in FIG. 9 ends.

[0059] The matrix decomposition and reconstruction process shown in FIG. 9 may be modified and executed as follows.

[0060] For example, in step S203, non-negative matrix decomposition or 0 / 1 matrix decomposition in which element values ​​are binary expanded is performed instead of SVD, and in step S204, absolute error is used instead of squared error.

[0061] In addition, in step S202, the initial value of the rank number k is set to 1, but the process starts with k=c / 2 as the initial value, and in step S206, the process is repeated with k=k-1. In this case, in step S205, it is determined whether the square error Dk exceeds the allowable error eTH (whether Dk>eTH).

[0062] In step S205, the rank number k is set within a range of k=1 to c / 2 where the compression ratio is less than 1, or within a range where a predetermined compression ratio is achieved. In step S205, when the rank number k where the error is close to stopping decreasing is detected, the repeating process ends and the process proceeds to step S207. Such detection of the rank number k is performed, for example, by setting a constant ε as the error in floating-point numbers, and k-1 -D k >D k -D k+1 This is done using the formula:

[0063] Furthermore, in step S206, when error values ​​of upper or lower triangular matrices other than diagonal elements with error g=W-UkSkVk are also output in addition to Uk, Sk, and Vk, a certain number of elements with large errors are output as a set of element position and error value (for example, as [row number, column number, error value], etc.). Note that in step S206, Sk is multiplied by Uk or Vk to output two matrices.

[0064] Next, the remaining steps S104 to S109 in the flowchart of Fig. 6 will be described with reference to the flowchart of Fig. 10. Fig. 10 is a flowchart showing the flow of the minimum solution search process of this embodiment. Note that the minimum solution search process of Fig. 10 will be described assuming that the matrix decomposition and restoration process of Fig. 9 is executed using the traveling salesman problem as an example, and the coupling coefficient W is decomposed into two matrices U and V. Also, in the minimum solution search process of Fig. 10, the unit of the energy calculation unit 204 is j1, j2 unit of equation (3).

[0065] 9, first, the information processing device 10 acquires initial values ​​for the positions j1, j2, x, U, V, rank number k, and temperature Tx of the coupling coefficient W handled by the energy calculation unit 204 (step S301). The initial value of x is input randomly, and x0=x. In addition, the initial value E(x) of the energy is set to the maximum value.

[0066] Next, the information processing device 10 j1,j2Here, assuming that the coupling coefficient W is a target matrix, when j1=j2, the element value of the coupling coefficient W becomes 0, and only the upper triangular part of the matrix is ​​used, so if j2>j1, j2 and j1 are exchanged.

[0067] Next, the information processing device 10 calculates the following formula (4) and obtains W j1,j2 is calculated (step S303).

[0068]

number

[0069] In addition, if there is an error value, the information processing device 10 j1,j2 (Step S304). In Steps S303 and S304, the coupling coefficient W of the corresponding portion is calculated. Here, the error e ij is W ij -(UV) ij and the position information of the element (i, j, e ij ) and so on in the memory. At this time, not all errors are stored, but a few errors are selected in ascending order of size. Note that steps S301 to S304 correspond to step S104 of the minimum solution search process in FIG.

[0070] Next, the information processing device 10 sets x0=x, and then randomly inverts the bits of x (step S305). Here, the current state x is saved as x0, and the bits of x are flipped.

[0071] Next, the information processing device 10 calculates the following formula (5) to calculate E(x) (step S306). Here, the energy E j1j2 The calculation of step S306 may be performed for several j1 and j2 at once. Steps S305 and S306 correspond to step S105 of the minimum solution search process in FIG.

[0072]

number

[0073] Next, the information processing device 10 adds up all the energies of the energy calculation units 204 stored in the memory 505 to obtain Ecand(x) (step S307). Note that step S307 corresponds to step S106 of the minimum solution search process in FIG.

[0074] Next, the information processing device 10 determines whether to adopt the solution using the Metropolis standard by using E(x), Ecand(x), and temperature T (step S308). When determining whether to adopt the solution, the information processing device 10 also stores the minimum value Emin(x) of E(x) and its xmin. Note that step S308 corresponds to step S107 of the minimum solution search process in FIG. 6.

[0075] Next, if adopted, the information processing device 10 updates E(x)=Ecand(x) and x0=x, and returns to step S305 to repeat the process a predetermined number of times (step S309). This loop is repeated a predetermined number of times or until Emin(x) reaches a certain value, after which Emin(x) and xmin are output, and the minimum solution search process shown in Fig. 10 ends. Note that step S309 corresponds to step S108 and step S109 of the minimum solution search process in Fig. 6.

[0076] In the minimum solution search process described above using the traveling salesman problem as an example, x was used as is, not as a difference, but the calculation can be performed in the same way using the difference Δx of x. When transmitting the error for each element of the matrix separately, the set of (row number, column number, error value) is transferred to memory and restored while referring to it in the coupling coefficient W restoration unit 211. The error can be easily restored since it is simply added to the element of W'=U*V restored using U and V.

[0077] In addition, the matrix decomposition method is not limited to singular value decomposition, and any method that can decompose the matrix may be used, such as non-negative matrix decomposition that limits the decomposed matrix to non-negative values, or 01 matrix decomposition that limits the matrix to binary. The selection of the matrix decomposition method depends on how to handle the coupling coefficient W of the problem to be solved.

[0078] In addition, the above example of the minimum solution search process shows a case where the coupling coefficient W is quadratic, but even if it is cubic or more, the process can be performed in the same way using, for example, tensor decomposition. One example of tensor decomposition is Tucker decomposition. This decomposes a three-dimensional array Z into A, B, C, and D. Z is an N*N*N array, A, B, and C are N*k arrays, and D is k*k*k array. abc =Σ i Σ j Σ k D ijk A ia B ib C ic This can also be calculated by multiplication and accumulation, and can be compressed by performing calculations in the same way as when the coupling coefficient W is quadratic.

[0079] The minimum solution search process of this embodiment has been described above using the traveling salesman problem, and an example of the results of this process is shown below. Fig. 11 is a diagram showing an example of the results of the minimum solution search process of this embodiment. Fig. 11 shows the visiting route for each visited city as a result of executing the minimum solution search process of this embodiment on benchmark data (150 cities) for the traveling salesman problem, compressed using a predetermined rank number k.

[0080] The processing results in FIG. 11 are, from the top left, the results of processing rank numbers from 0 (no compression) to 50 in increments of 10. The processing result without compression on the top left is the result of processing the coupling coefficient W as is, and this is the correct data. Comparing the processing result without compression with the processing result with rank number = 10, it can be seen that although the general shape of the visiting route is the same, there are differences in the finer details. On the other hand, when it comes to the processing results with rank numbers = 40 and 50, it can be seen that there is almost no difference from the processing result without compression. The extent to which differences are allowed is determined by the user setting the allowable error depending on the data being handled, and the minimum rank number k within the allowable error is searched for.

[0081] FIG. 12 shows an example of the difference in memory allocation amount depending on whether compression is performed or not in this embodiment. FIG. 12 shows an example of the difference in memory allocation amount depending on whether compression is performed or not in this embodiment. When the coupling coefficient W is not compressed, the coupling coefficient W of the number of bits N is N if it is quadratic. 2 , if Dth, then N D In this embodiment, the number of coefficients required to be arranged in memory is (2N+1)k for the second order, and (k 3 The compression ratio is (2N+1)k / N for the second order. 2 ~2k / N, and in the third order (k 3 +3kN) / N 3 It becomes.

[0082] The graph in Fig. 12 shows the relationship between N and the number of elements to be arranged in memory when k=N / 10 for the second order, and is an example comparing the case where compression in this embodiment is performed with that where it is not performed for the coupling coefficient W. Referring to Fig. 12, it can be seen that with compression, even if N becomes large, the number of elements to be arranged in memory is kept low compared to the case where compression is not performed.

[0083] [effect] As described above, the information processing device 10 decomposes a matrix of coupling coefficients representing interactions between multiple variables into multiple matrices using the rank number, obtains second elements corresponding to first elements of the coupling coefficients from the multiple matrices, and restores the first elements based on the second elements.

[0084] When solving a discrete optimization problem, the information processing device 10 does not arrange a matrix including all of the coupling coefficients in memory, but arranges only compressed elements in memory, thereby making it possible to reduce the size of data arranged in memory.

[0085] In addition, the information processing device 10 executes the process of DecompositionThe process of obtaining a second element includes a process of decomposing the combining coefficient into a plurality of matrices for each rank number using a plurality of rank numbers, and the information processing device 10 further calculates an error between a matrix restored based on the plurality of matrices and the matrix of the combining coefficient, and determines a first rank number that is an allowable error from the plurality of rank numbers based on the error, and the process of obtaining a second element executed by the information processing device 10 includes a process of obtaining a second element from the plurality of matrices decomposed using the first rank number.

[0086] This enables the information processing device 10 to reduce the size of data to be arranged in memory while suppressing distortion that occurs when decomposing and restoring the coupling coefficients to an acceptable range.

[0087] In addition, the information processing device 10 executes the process of Decomposition The process of decomposing the matrix of coupling coefficients, which is a second-order matrix, into multiple matrices using at least one of singular value decomposition, non-negative matrix decomposition, and 0 / 1 matrix decomposition. Decomposition This includes processing to

[0088] This allows the information processing device 10 to select and use a more appropriate matrix decomposition method depending on how the coupling coefficient W of the problem to be solved is to be handled.

[0089] In addition, the information processing device 10 executes the process of Decomposition The process involves dividing the matrix of coupling coefficients, which is a third-order or higher matrix, into multiple matrices using tensor decomposition. Decomposition This includes processing to

[0090] This allows the information processing device 10 to reduce the size of data to be arranged in memory not only when the coupling coefficient is of second order, but also when the coupling coefficient is of a higher order such as third order or higher.

[0091] In addition, the process of obtaining a second element executed by the information processing device 10 includes a process of obtaining a second element corresponding to a first element in an upper triangular matrix or a lower triangular matrix region of the matrix of coupling coefficients, which is a symmetric matrix, and the process of restoring the first element includes a process of restoring the first element in the upper triangular matrix and lower triangular matrix regions based on the second element.

[0092] This enables the information processing device 10 to further reduce the size of data to be arranged in the memory.

[0093] [system] The information including the processing procedures, control procedures, specific names, various data and parameters shown in the above documents and drawings can be changed as desired unless otherwise specified. In addition, the specific examples, distributions, values, etc. described in the embodiments are merely examples and can be changed as desired.

[0094] In addition, each component of each device shown in the figure is a functional concept, and does not necessarily have to be physically configured as shown in the figure. In other words, the specific form of distribution and integration of each device is not limited to that shown in the figure. In other words, all or part of them can be functionally or physically distributed and integrated in any unit depending on various loads and usage conditions. Furthermore, each processing function performed by each device can be realized in whole or in any part by a CPU and a program analyzed and executed by the CPU, or can be realized as hardware using wired logic.

[0095] [Hardware] Fig. 13 is a diagram for explaining an example of a hardware configuration. As shown in Fig. 13, an information processing device 10 includes a communication interface 10a, an HDD 10b, a memory 10c, and a processor 10d. The components shown in Fig. 13 are connected to each other via a bus or the like.

[0096] The communication interface 10a is a network interface card or the like, and communicates with other servers. The HDD 10b stores programs and DBs that operate the functions shown in FIG.

[0097] The processor 10d is a hardware circuit that reads out a program that executes the same processes as the respective processing units shown in Fig. 3 from the HDD 10b or the like and loads it in the memory 10c, thereby operating a process that executes each function described in Fig. 3 or the like. In other words, this process executes the same functions as the respective processing units of the information processing device 10.

[0098] The information processing device 10 also operates as an information processing device that executes operation control processing by reading and executing a program that executes the same processing as each processing unit shown in Fig. 3. The information processing device 10 can also realize functions similar to those of the above-mentioned embodiment by reading a program from a recording medium using a medium reading device and executing the read program. Note that the program in these other embodiments is not limited to being executed by the information processing device 10. For example, this embodiment can be similarly applied to cases where another computer or server executes a program, or where these cooperate to execute a program.

[0099] A program that executes the same processes as those of each processing unit shown in Fig. 3 can be distributed via a network such as the Internet. This program can be recorded on a computer-readable recording medium such as a hard disk, a flexible disk (FD), a CD-ROM, a magneto-optical disk (MO), or a digital versatile disk (DVD), and can be executed by being read out from the recording medium by a computer.

[0100] The following supplementary notes are further disclosed regarding the embodiments including the above examples.

[0101] (Appendix 1) The matrix of coupling coefficients representing the interactions of multiple variables is decomposed into multiple matrices using the rank number, Obtaining second elements corresponding to the first elements of the coupling coefficients from the plurality of matrices; Reconstructing the first element based on the second element An information processing device comprising a control unit for executing processing.

[0102] (Appendix 2) Multiple matrices executed by the control unit Decomposition The process of decomposing the coupling coefficients into a plurality of matrices for each rank number using a plurality of rank numbers, The control unit Calculating an error between a matrix restored based on the multiple matrices and a matrix of coupling coefficients; A first rank number that is an acceptable error is determined from the plurality of rank numbers based on the error. Further processing is carried out, The process of acquiring the second element, which is executed by the control unit, includes: 2. The information processing device according to claim 1, further comprising a process of acquiring a second element from a plurality of matrices decomposed using a first rank number.

[0103] (Appendix 3) Multiple matrices executed by the control unit Decomposition The process of decomposing the matrix of coupling coefficients, which is a second-order matrix, into multiple matrices using at least one of singular value decomposition, non-negative matrix decomposition, and 0 / 1 matrix decomposition. Decomposition 2. The information processing device according to claim 1, further comprising a process for:

[0104] (Appendix 4) Multiple matrices executed by the control unit Decomposition The process involves dividing the matrix of coupling coefficients, which is a third-order or higher matrix, into multiple matrices using tensor decomposition. Decomposition 2. The information processing device according to claim 1, further comprising a process for:

[0105] (Supplementary Note 5) The process of acquiring the second element, which is executed by the control unit, includes a process of acquiring the second element corresponding to the first element in an upper triangular matrix or a lower triangular matrix of the matrix of the coupling coefficient, which is a symmetric matrix; The information processing device described in Appendix 1, characterized in that the process of restoring a first element executed by the control unit includes a process of restoring a first element of an upper triangular matrix and a lower triangular matrix region based on a second element.

[0106] (Appendix 6) The matrix of coupling coefficients representing the interactions of multiple variables is decomposed into multiple matrices using the rank number, Obtaining second elements corresponding to the first elements of the coupling coefficients from the plurality of matrices; Reconstructing the first element based on the second element An information processing method characterized in that the processing is executed by a computer.

[0107] (Appendix 7) A computer-implemented method for multiple matrices Decomposition The process of decomposing the coupling coefficients into a plurality of matrices for each rank number using a plurality of rank numbers, Calculating an error between a matrix restored based on the multiple matrices and a matrix of coupling coefficients; A first rank number that is an acceptable error is determined from the plurality of rank numbers based on the error. The computer further performs the processing, The process for obtaining the second element, which is performed by the computer, includes: 7. The information processing method according to claim 6, further comprising a process of obtaining a second element from a plurality of matrices decomposed using a first rank number.

[0108] (Appendix 8) A computer-implemented method for multiple matrices Decomposition The process of decomposing the matrix of coupling coefficients, which is a second-order matrix, into multiple matrices using at least one of singular value decomposition, non-negative matrix decomposition, and 0 / 1 matrix decomposition. Decomposition 7. The information processing method according to claim 6, further comprising the step of:

[0109] (Appendix 9) A computer-implemented method for multiple matrices Decomposition The process involves dividing the matrix of coupling coefficients, which is a third-order or higher matrix, into multiple matrices using tensor decomposition. Decomposition 7. The information processing method according to claim 6, further comprising the step of:

[0110] (Supplementary Note 10) The process of obtaining a second element, which is executed by a computer, includes a process of obtaining a second element corresponding to a first element in an upper triangular matrix or a lower triangular matrix of a matrix of coupling coefficients, which is a symmetric matrix; The information processing method described in Appendix 6, characterized in that the process of restoring the first element, performed by a computer, includes a process of restoring the first element of the upper triangular matrix and the lower triangular matrix region based on the second element.

[0111] (Appendix 11) The matrix of coupling coefficients representing the interactions of multiple variables is decomposed into multiple matrices using the rank number, Obtaining second elements corresponding to the first elements of the coupling coefficients from the plurality of matrices; Reconstructing the first element based on the second element An information processing program that causes a computer to execute a process.

[0112] (Appendix 12) A computer-implemented method for multiple matrices Decomposition The process of decomposing the coupling coefficients into a plurality of matrices for each rank number using a plurality of rank numbers, Calculating an error between a matrix restored based on the multiple matrices and a matrix of coupling coefficients; A first rank number that is an acceptable error is determined from the plurality of rank numbers based on the error. Further processing is performed by the computer; The process of acquiring the second element, which is executed by the control unit, includes: 12. The information processing program according to claim 11, further comprising a process of obtaining a second element from a plurality of matrices decomposed using a first rank number.

[0113] (Appendix 13) A computer-implemented method for multiple matrices Decomposition The process of decomposing the matrix of coupling coefficients, which is a second-order matrix, into multiple matrices using at least one of singular value decomposition, non-negative matrix decomposition, and 0 / 1 matrix decomposition. Decomposition 12. The information processing program according to claim 11, comprising a process for:

[0114] (Appendix 14) A computer-implemented method for multiple matrices Decomposition The process involves dividing the matrix of coupling coefficients, which is a third-order or higher matrix, into multiple matrices using tensor decomposition. Decomposition 12. The information processing program according to claim 11, comprising a process for:

[0115] (Supplementary Note 15) The process of obtaining a second element, which is executed by a computer, includes a process of obtaining a second element corresponding to a first element in an upper triangular matrix or a lower triangular matrix of a matrix of coupling coefficients, which is a symmetric matrix; An information processing program as described in Appendix 11, characterized in that the process of restoring a first element executed by a computer includes a process of restoring a first element of an upper triangular matrix and a lower triangular matrix region based on a second element.

[0116] (Appendix 16) A processor; a memory operatively connected to the processor; An information processing device comprising: A matrix of coupling coefficients representing interactions between multiple variables is decomposed into multiple matrices using the rank number, Obtaining second elements corresponding to the first elements of the coupling coefficients from the plurality of matrices; Reconstructing the first element based on the second element 2. An information processing device that executes processing. [Explanation of symbols]

[0117] 001 UI 002 Minimum solution search unit 003 Memory 004 General-purpose CPU 005 Memory 10. Information processing device 10a Communication Interface 10b HDD 10c Memory 10d Processor 101 Application Section 102 Minimum solution search part 103 Memory 104 Energy Calculation Unit 105 units 106 units 107 units 201 Application Department 202 Minimum solution search part 203 Memory 204 Energy Calculation Unit 205 units 206 units 207 units 208 Matrix factorization part 209 units 210 units 211 Coupling coefficient W restoration unit 501 UI 502 Minimum solution search unit 503 Memory 504 General-purpose CPU 505 Memory

Claims

1. An information processing device that executes a solution search process for a discrete optimization problem using an energy function and a plurality of calculation units that execute in parallel calculation of an energy value of the energy function, The information processing device has a memory and a control unit, The control unit is decomposing a matrix of coupling coefficients representing interactions between a plurality of variables included in the energy function into a plurality of matrices including a coefficient matrix and a basis matrix using a rank number lower than the rank number of the coupling matrix, and storing the decomposed matrix in the memory; obtaining second elements of the matrices from the memory, the second elements being elements corresponding to first elements of the coupling coefficients shared by each of the plurality of calculation units, and inputting the second elements to each of the plurality of calculation units; Reconstructing the first element based on the second element; causing each of the plurality of calculation units to perform a process of calculating the energy value of the energy function based on the restored first element; Calculating a total energy value by summing up the energy values ​​calculated using each of the plurality of calculation units; The solution search process for the discrete optimization problem is performed based on the calculated total energy value.

23. An information processing apparatus comprising:

2. the process of decomposing into the plurality of matrices executed by the control unit includes a process of decomposing the coupling coefficient into the plurality of matrices for each rank number using a plurality of rank numbers that are lower than a rank number of the coupling matrix, The control unit is Calculating an error between a matrix restored based on the plurality of matrices and a matrix of the coupling coefficients; A first rank number that is an allowable error is determined from the plurality of rank numbers based on the error. Further processing is carried out, The process of acquiring the second element, which is executed by the control unit, The information processing apparatus according to claim 1 , further comprising a process of acquiring the second element from the plurality of matrices decomposed using the first rank number.

3. 2. The information processing device according to claim 1, wherein the process of decomposing into the plurality of matrices executed by the control unit includes a process of decomposing the matrix of the coupling coefficients, which is a quadratic matrix, into the plurality of matrices using at least one of singular value decomposition, non-negative matrix decomposition, and 0 / 1 matrix decomposition.

4. 2. The information processing device according to claim 1, wherein the process of decomposing into the plurality of matrices executed by the control unit includes a process of decomposing the matrix of the coupling coefficients, which is a matrix of degree three or higher, into the plurality of matrices using tensor decomposition.

5. The process of acquiring the second element, which is executed by the control unit, includes a process of acquiring the second element corresponding to the first element in an upper triangular matrix or a lower triangular matrix of the matrix of the coupling coefficient, which is a symmetric matrix; 2. The information processing device according to claim 1, wherein the process of restoring the first element executed by the control unit includes a process of restoring the first element of an area of ​​the upper triangular matrix and the lower triangular matrix based on the second element.

6. An information processing method in which a computer executes a solution search process for a discrete optimization problem using an energy function and a plurality of calculation units that execute in parallel calculation of an energy value of the energy function, comprising: The computer has a memory and a controller, The control unit: decomposing a matrix of coupling coefficients representing interactions between a plurality of variables included in the energy function into a plurality of matrices including a coefficient matrix and a basis matrix using a rank number lower than the rank number of the coupling matrix, and storing the decomposed matrix in the memory; obtaining second elements of the matrices from the memory, the second elements being elements corresponding to first elements of the coupling coefficients shared by each of the plurality of calculation units, and inputting the second elements to each of the plurality of calculation units; Reconstructing the first element based on the second element; causing each of the plurality of calculation units to perform a process of calculating the energy value of the energy function based on the restored first element; Calculating a total energy value by summing up the energy values ​​calculated using each of the plurality of calculation units; The solution search process for the discrete optimization problem is performed based on the calculated total energy value.

2. An information processing method comprising:

7. An information processing program that causes a computer to execute a solution search process for a discrete optimization problem using an energy function and a plurality of calculation units that execute in parallel calculation of energy values ​​of the energy function, The computer has a memory and a controller, The control unit, decomposing a matrix of coupling coefficients representing interactions between a plurality of variables included in the energy function into a plurality of matrices including a coefficient matrix and a basis matrix using a rank number lower than the rank number of the coupling matrix, and storing the decomposed matrix in the memory; obtaining second elements of the matrices from the memory, the second elements being elements corresponding to first elements of the coupling coefficients shared by each of the plurality of calculation units, and inputting the second elements to each of the plurality of calculation units; Reconstructing the first element based on the second element; causing each of the plurality of calculation units to perform a process of calculating the energy value of the energy function based on the restored first element; Calculating a total energy value by summing up the energy values ​​calculated using each of the plurality of calculation units; The solution search process for the discrete optimization problem is performed based on the calculated total energy value. An information processing program that causes a process to be executed.

Citation Information

Patent Citations

  • Machine learning system and machine learning method

    JP2018206016A

  • Model compression and refinement

    JP2018506785A

  • Optimization device and control method of optimization device

    JP2019185602A

  • Compression of recurrent neural network models

    JP2019509539A

  • Optimization apparatus and control method thereof

    US20190318258A1