WO2022038743A1 - 組合せ最適化問題情報送信装置および組合せ最適化問題求解装置 - Google Patents

組合せ最適化問題情報送信装置および組合せ最適化問題求解装置 Download PDF

Info

Publication number
WO2022038743A1
WO2022038743A1 PCT/JP2020/031450 JP2020031450W WO2022038743A1 WO 2022038743 A1 WO2022038743 A1 WO 2022038743A1 JP 2020031450 W JP2020031450 W JP 2020031450W WO 2022038743 A1 WO2022038743 A1 WO 2022038743A1
Authority
WO
WIPO (PCT)
Prior art keywords
matrix
optimization problem
combinatorial optimization
difference
solution
Prior art date
Application number
PCT/JP2020/031450
Other languages
English (en)
French (fr)
Inventor
基己 鈴木
浩明 井上
拓也 荒木
芙美代 鷹野
悠記 小林
博 千嶋
考弘 西村
彰宏 矢田部
Original Assignee
日本電気株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 日本電気株式会社 filed Critical 日本電気株式会社
Priority to PCT/JP2020/031450 priority Critical patent/WO2022038743A1/ja
Priority to JP2022543222A priority patent/JP7405264B2/ja
Priority to US18/020,526 priority patent/US20230306074A1/en
Publication of WO2022038743A1 publication Critical patent/WO2022038743A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/11Complex mathematical operations for solving equations, e.g. nonlinear equations, general mathematical optimization problems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N99/00Subject matter not provided for in other groups of this subclass

Definitions

  • the present invention is a combination optimization problem information transmission device that transmits information about a combination optimization problem, a combination optimization problem solving device that seeks a solution to a combination optimization problem, a combination optimization problem information transmission device, and a combination optimization problem solving device.
  • a solution system including, a combination optimization problem information transmission method, a combination optimization problem solution method, a computer that records a combination optimization problem information transmission program, a readable recording medium, and a computer that records a combination optimization problem solution program.
  • readable recording media Regarding readable recording media.
  • the energy function of the Ising model is used when solving the combinatorial optimization problem.
  • combinatorial optimization problems include work shift optimization problems, traveling salesman problems, knapsack problems, and the like.
  • the combinatorial optimization problem is not limited to these problems.
  • the Ising model is a statistical mechanics model that expresses the behavior of a magnetic material by individual spins, but it can also be applied to the solution of combinatorial optimization problems.
  • the state of each spin is represented by "1" or "-1".
  • the energy function in the Ising model is expressed by the following equation (1).
  • Both i and j in the equation (1) are variables representing spin. Further, s i in the equation (1) is a variable representing the state of spin i, and s j is a variable representing the state of spin j. H i in the equation (1) is a constant corresponding to the spin i. For each possible value of i, h i is defined as a constant. J ij in the equation (1) is a constant corresponding to the combination of spin i and spin j. J ij is defined as a constant for each combination of the possible value of i and the possible value of j.
  • the set of constants Jij is represented by a matrix of K rows and K columns. That is, the constant Jij corresponding to the combination of the two spins is an element of the K-by-K matrix.
  • this K-row and K-column matrix is represented by the symbol ⁇ .
  • the matrix ⁇ is a symmetric matrix.
  • the matrix ⁇ and the vector ⁇ represent the combinatorial optimization problem. Further, if the energy function of the equation (1) is given, the matrix ⁇ and the vector ⁇ are also given.
  • the second term on the right side may not exist in the energy function shown in equation (1) (in other words, the vector ⁇ may not exist).
  • the optimum individual spin states (1 or -1) are obtained.
  • the optimum individual spin states are the individual spin states in which the energy indicated by the energy function is as small as possible, or the individual spin states in which the energy indicated by the energy function is as large as possible.
  • the optimum individual spin states whether to find the individual spin states in which the energy indicated by the energy function is as small as possible or the individual spin states in which the energy indicated by the energy function is as large as possible is determined. For example, it is specified from the outside.
  • the optimal individual spin states thus obtained represent the solution of the combinatorial optimization problem.
  • Patent Document 1 describes a system that handles difference information between the latest data and the previously transmitted data.
  • a system equipped with a terminal and a server can be considered. That is, a matrix ⁇ and a vector ⁇ representing a combinatorial optimization problem are input to the terminal, the terminal sends the matrix ⁇ and the vector ⁇ to the server, and the server uses the matrix ⁇ and the vector ⁇ to perform the combinatorial optimization problem. It is conceivable to find the solution of and return the solution to the terminal.
  • the same kind of combinatorial optimization problem may be solved repeatedly.
  • the terminal sends the matrix ⁇ and the vector ⁇ to the server every time the terminal tries to find the solution of the combinatorial optimization problem
  • the amount of data in the matrix ⁇ is large, so that the amount of communication increases. Therefore, the communication cost of the matrix ⁇ becomes high, and the transmission of the matrix ⁇ from the terminal to the server becomes a bottleneck in the entire process.
  • the present invention when information about a combinatorial optimization problem is transmitted from one device to another and the device receiving the information seeks a solution to the combinatorial optimization problem, the amount of information communication can be suppressed.
  • the purpose is to be able to do it.
  • the combination optimization problem information transmission device has a difference matrix that is the difference between the first matrix representing the combination optimization problem for which the solution was obtained last time and the second matrix representing the latest combination optimization problem. It is provided with a difference matrix calculation means for calculating, a difference matrix compression means for compressing the difference matrix, and a transmission means for transmitting the compressed difference matrix to the combination optimization problem solving device for finding the solution of the combination optimization problem. It is characterized by that.
  • the combination optimization problem solving device is a matrix storage means for storing a first matrix representing the combination optimization problem for which a solution was obtained last time, and a combination optimization problem information transmission for transmitting information on the combination optimization problem.
  • a receiving means for receiving the compression result of the difference matrix which is the difference between the first matrix and the second matrix representing the latest combination optimization problem from the apparatus, and a difference matrix restoration means for restoring the difference matrix from the compression result.
  • the solution system includes a combination optimization problem information transmission device that transmits information about a combination optimization problem and a combination optimization problem solution device that seeks a solution to the combination optimization problem, and is a combination optimization problem information transmission device.
  • the difference matrix calculation means for calculating the difference matrix which is the difference between the first matrix representing the combination optimization problem for which the solution was obtained last time and the second matrix representing the latest combination optimization problem, and the difference matrix.
  • a receiving means that receives a compressed difference matrix from a storage means and a transmission means of a combination optimization problem information transmitter, a difference matrix restoration means that restores a difference matrix from a compressed difference matrix, and a restored difference matrix.
  • a matrix derivation means for deriving a second matrix based on the first matrix, a solution means for finding a solution of a combination optimization problem using the derived second matrix, and a solution thereof. It is characterized by having a solution transmission means for transmitting to a combination optimization problem information transmission device.
  • the computer makes a difference between the first matrix representing the combination optimization problem for which the solution was obtained last time and the second matrix representing the latest combination optimization problem.
  • the feature is that the difference matrix is calculated, the difference matrix is compressed, and the compressed difference matrix is transmitted to the combination optimization problem solving device for finding the solution of the combination optimization problem.
  • the computer stores the first matrix representing the combination optimization problem for which the solution was obtained last time, and transmits information about the combination optimization problem. From, the compression result of the difference matrix that is the difference between the first matrix and the second matrix representing the latest combination optimization problem is received, the difference matrix is restored from the compression result, and the restored difference matrix and A second matrix is derived based on the first matrix, a solution to the combination optimization problem is obtained using the derived second matrix, and the solution is transmitted to the combination optimization problem information transmitter. It is characterized by doing.
  • the computer-readable recording medium is a difference that is the difference between the first matrix representing the combination optimization problem for which the solution was obtained last time and the second matrix representing the latest combination optimization problem.
  • Combination optimization problem for execution A computer-readable recording medium on which an information transmission program is recorded.
  • the computer-readable recording medium is a matrix storage process for storing a first matrix representing a combination optimization problem for which a solution was obtained last time, and a combination optimization problem for transmitting information about the combination optimization problem to the computer.
  • Reception processing that receives the compression result of the difference matrix that is the difference between the first matrix and the second matrix that represents the latest combination optimization problem from the information transmitter, and the difference matrix restoration that restores the difference matrix from the compression result.
  • a matrix derivation process that derives a second matrix based on the processed and restored difference matrix and the first matrix, and a solution process that finds a solution to the combination optimization problem using the derived second matrix.
  • the amount of information communication can be suppressed. can.
  • the present invention is suitable for solving combinatorial optimization problems represented by such matrices.
  • the combinatorial optimization problem (this example). Then, many elements of the matrix ⁇ representing the work shift optimization problem) do not change from the previous time, and only some elements of the matrix ⁇ change from the previous time.
  • the present invention is suitable for solving the combinatorial optimization problem represented by such a matrix.
  • FIG. 1 is a block diagram showing a configuration example of a solution system according to an embodiment of the present invention.
  • the solution system shown in FIG. 1 includes a combinatorial optimization problem information transmission device 1 that transmits information about a combinatorial optimization problem, and a combinatorial optimization problem solution device 2 that seeks a solution to the combinatorial optimization problem.
  • the combinatorial optimization problem information transmission device 1 is realized by, for example, a terminal.
  • a case where the combinatorial optimization problem information transmitting device 1 is realized by a terminal will be described as an example, and the combinatorial optimization problem information transmitting device 1 will be referred to as a terminal 1.
  • the combinatorial optimization problem solving device 2 is realized by a server such as a cloud server, for example.
  • a server such as a cloud server
  • a case where the combinatorial optimization problem solving device 2 is realized by a server will be described as an example, and the combinatorial optimization problem solving device 2 will be referred to as a server 2.
  • the terminal 1 and the server 2 are communicably connected via a communication network (not shown).
  • the matrix ⁇ and the vector ⁇ representing the latest combinatorial optimization problem are referred to as the latest matrix and the latest vector.
  • the matrix ⁇ representing the combinatorial optimization problem for which the solution was obtained last time is referred to as the previous matrix.
  • the terminal 1 includes a previous matrix storage unit 11, a difference matrix calculation unit 12, a difference matrix compression unit 13, a problem transmission unit 14, and a solution reception unit 15.
  • the latest matrix and the latest vector representing the latest combinatorial optimization problem are input to the terminal 1.
  • the difference matrix calculation unit 12 receives the latest matrix
  • the problem transmission unit 14 receives the latest vector.
  • the problem transmission unit 14 receives the latest matrix and the latest vector, and the problem transmission unit 14 stores the latest matrix in the previous matrix storage unit 11. Further, the latest matrix and the latest vector are transmitted to the server 2.
  • the previous matrix storage unit 11 is a storage device that stores the matrix ⁇ (previous matrix) representing the combinatorial optimization problem for which the solution was obtained last time. It is assumed that the latest matrix and the latest vector are input while the matrix exists last time. In this case, the previous matrix may be referred to as the first matrix, and the latest matrix may be referred to as the second matrix.
  • the latest matrix and the latest vector are input in a state where the previous matrix is already stored in the previous matrix storage unit 11, the difference matrix calculation unit 12 receives the latest matrix, and the problem transmission unit 14 receives the latest matrix.
  • the latest vector is received will be described.
  • the difference matrix calculation unit 12 calculates a difference matrix that is the difference between the latest input matrix and the previous matrix stored in the previous matrix storage unit 11. Specifically, the difference matrix calculation unit 12 calculates the difference matrix by subtracting the previous matrix from the latest matrix.
  • the difference matrix is a sparse matrix.
  • the difference matrix is also a symmetric matrix.
  • the difference matrix calculation unit 12 updates the previous matrix stored in the previous matrix storage unit 11 with the latest matrix.
  • the latest matrix stored in the previous matrix storage unit 11 is treated as the previous matrix the next time the latest matrix is input.
  • the difference matrix compression unit 13 compresses the difference matrix calculated by the difference matrix calculation unit 12. As mentioned above, the difference matrix is a sparse matrix. Therefore, the difference matrix can be compressed.
  • the difference matrix compression unit 13 may compress the difference matrix by a CSR (Compressed Sparse Row) method.
  • difference matrix compression unit 13 may compress the difference matrix by the COO (COOdinate) method.
  • the elements of a certain row referred to as the second row in this example
  • the second column corresponding to that row are different. It is assumed that other elements are common.
  • the difference matrix in this case is schematically shown in FIG. In the difference matrix shown in FIG. 2, all the elements other than the second row and the second column are 0.
  • an element of 0 may exist in the elements of the second row and the second column. Since the difference matrix is also a symmetric matrix, the same element group can be obtained by extracting the entire second row or the entire second column (see FIG. 2).
  • the row whose element group is different between the previous matrix and the latest matrix is the second row
  • the difference matrix compression unit 13 is the second row of the difference matrix corresponding to the second row, and its row.
  • the row index "2" may be defined as the compression result of the difference matrix.
  • the column in which the element group is different between the previous matrix and the latest matrix is the second column
  • the difference matrix compression unit 13 is the second column of the difference matrix corresponding to the second column
  • the index "2" of the column may be defined as the compression result of the difference matrix.
  • the compression result of the difference matrix may be determined in the same manner.
  • the above compression method is referred to as a third compression method for convenience.
  • the third compression method is applicable when finding a solution to a combinatorial optimization problem having the above-mentioned properties. That is, when solving the combinatorial optimization problem having the above-mentioned properties repeatedly, the difference matrix compression unit 13 may compress the difference matrix by the third compression method.
  • FIG. 3 shows an example of a graph in which the vertices are divided into two groups.
  • the vertices shown in black belong to the same group
  • the vertices shown in white belong to the same group.
  • the sides connecting the vertices belonging to the same group are shown by thin lines
  • the sides connecting the vertices belonging to different groups are shown by thick lines.
  • weights are set for each side.
  • the Maxcut problem is a combinatorial optimization problem in which a group of vertices is divided into two groups so that the sum of the weights of the sides connecting the vertices belonging to different groups is maximized.
  • the formula (2) does not have the second term on the right side of the formula (1). Therefore, in the Maxcut problem, the vector ⁇ does not exist.
  • the processing related to the vector in the present embodiment does not have to be performed.
  • i and j are variables representing vertices.
  • s i is a variable that takes "-1" when the vertex i belongs to the group G1 and "1" when the vertex i belongs to the group G2.
  • s j is a variable that takes "-1" when the vertex j belongs to the group G1 and "1" when the vertex j belongs to the group G2.
  • the constant J ij is the weight of the side connecting the apex i and the apex j.
  • the weight of the side connecting the apex i and the apex j is the distance between the apex i and the apex j.
  • the solution of the Maxcut problem is repeatedly obtained while changing only the position of one vertex each time.
  • the matrix ⁇ representing the Maxcut problem only the row and column elements corresponding to the vertices change, and the other elements do not change. Therefore, when the solution of such a Maxcut problem is repeatedly obtained, it is preferable to use the above-mentioned third compression method as the compression method of the difference matrix.
  • the CSR method, the COO method, and the third compression method are mentioned as the difference matrix compression methods. Which compression method is adopted is specified, for example, by the user of the solution system.
  • the problem transmission unit 14 transmits the compressed difference matrix and the latest vector to the server 2.
  • the problem transmission unit 14 transmits the latest matrix and the latest vector to the server 2.
  • the solution receiving unit 15 receives the solution of the combinatorial optimization problem from the server 2.
  • the problem transmission unit 14 and the solution reception unit 15 are realized by, for example, a CPU (Central Processing Unit) of a computer that operates according to a combinatorial optimization problem information transmission program, and a communication interface of the computer.
  • a CPU Central Processing Unit
  • the CPU reads the combinatorial optimization problem information transmission program from a program recording medium such as a computer program storage device and operates as the problem transmission unit 14 and the solution reception unit 15 using the communication interface according to the program. good.
  • the difference matrix calculation unit 12 and the difference matrix compression unit 13 are realized by, for example, the CPU of a computer that operates according to the combinatorial optimization problem information transmission program.
  • the CPU reads the combinatorial optimization problem information transmission program from the program recording medium such as the program storage device of the computer, and operates as the difference matrix calculation unit 12 and the difference matrix compression unit 13 according to the program. Just do it.
  • the previous matrix storage unit 11 is realized by a storage device provided in a computer.
  • the server 2 includes a previous matrix storage unit 21, a problem reception unit 22, a difference matrix restoration unit 23, a latest matrix derivation unit 24, a solution unit 25, and a solution transmission unit 26.
  • the previous matrix storage unit 21 of the server 2 is a storage device that stores the matrix ⁇ (previous matrix) representing the combinatorial optimization problem for which the solution was obtained last time, like the previous matrix storage unit 11 of the terminal 1.
  • the problem receiving unit 22 receives the compressed difference matrix and the latest vector transmitted from the problem transmitting unit 14. Then, the problem transmission unit 14 inputs the compressed difference matrix to the difference matrix restoration unit 23, and inputs the latest vector to the solution unit 25.
  • the previous matrix is not stored in the previous matrix storage unit 21.
  • the problem receiving unit 22 receives the latest matrix and the latest vector from the problem transmitting unit 14, the problem receiving unit 22 inputs the latest matrix and the latest vector to the solving unit 25, and stores the latest matrix in the previous matrix storage unit 21. ..
  • the latest matrix stored in the previous matrix storage unit 21 is treated as the previous matrix when the problem receiving unit 22 next receives the compressed difference matrix and the latest vector.
  • the difference matrix restoration unit 23 restores the difference matrix from the compressed difference matrix (in other words, the compression result of the difference matrix).
  • the difference matrix restoration unit 23 may restore the difference matrix by a method corresponding to the CSR method.
  • the difference matrix restoration unit 23 may restore the difference matrix by a method corresponding to the COO method.
  • the difference matrix restoration unit 23 When the difference matrix is compressed by the third compression method in the difference matrix compression unit 13, the difference matrix restoration unit 23 either has an element for one row and an index for that row, or an element for one column and an index for that column. To receive.
  • the difference matrix restoration unit 23 receives an element for one row and an index for that row will be described as an example.
  • the difference matrix restoration unit 23 stores the elements for one row in the row indicated by the index and the column corresponding to the row, and generates a symmetric matrix in which 0 is stored in the other elements. By doing so, the difference matrix is restored.
  • the difference matrix restoration unit 23 receives each element in the second row shown in FIG. 2 and the index “2” in that row.
  • the difference matrix restoration unit 23 stores the elements for one row in the second row and the second column, and generates a symmetric matrix in which 0 is stored in the other elements in FIG. 2. Restore the difference matrix shown in.
  • the difference matrix restoration unit 23 inputs the restored difference matrix to the latest matrix derivation unit 24.
  • the latest matrix derivation unit 24 derives the latest matrix based on the restored difference matrix and the previous matrix stored in the previous matrix storage unit 21. Specifically, the latest matrix derivation unit 24 derives the latest matrix by adding the restored difference matrix and the previous matrix. The derived latest matrix is the same matrix as the latest matrix input to the terminal 1. The latest matrix derivation unit 24 inputs the derived latest matrix to the solution unit 25.
  • the latest matrix derivation unit 24 derives the latest matrix, inputs the latest matrix to the solution unit 25, and then updates the previous matrix stored in the previous matrix storage unit 21 with the latest matrix.
  • the latest matrix stored in the previous matrix storage unit 21 is treated as the previous matrix when the problem receiving unit 22 next receives the compressed difference matrix and the latest vector.
  • the solution unit 25 uses the latest matrix input from the latest matrix derivation unit 24 and the latest vector input from the problem reception unit 22 to solve the combinatorial optimization problem (in other words, the optimum individual spins). State) is calculated.
  • the solution unit 25 may find the solution of the combinatorial optimization problem by, for example, simulated annealing.
  • the solution unit 25 obtains the solution of the combinatorial optimization problem by using the latest matrix and the latest vector.
  • the solution unit 25 inputs the obtained solution (solution of the combinatorial optimization problem) to the solution transmission unit 26.
  • the solution transmission unit 26 transmits the solution of the combinatorial optimization problem input from the solution unit 25 to the terminal 1. This solution is received by the solution receiving unit 15 of the terminal 1.
  • the problem receiving unit 22 and the solution transmitting unit 26 are realized by, for example, a CPU of a computer operating according to a combinatorial optimization problem solving program and a communication interface of the computer.
  • the CPU may read the combinatorial optimization problem solving program from a program recording medium such as a computer program storage device, and operate as the problem receiving unit 22 and the solution transmitting unit 26 using the communication interface according to the program. ..
  • the difference matrix restoration unit 23, the latest matrix derivation unit 24, and the solution unit 25 are realized by, for example, the CPU of a computer operating according to the combinatorial optimization problem solving program.
  • the CPU reads the combination optimization problem solving program from the program recording medium such as the program storage device of the computer, and according to the program, the difference matrix restoration unit 23, the latest matrix derivation unit 24, and the solution unit 25. It may operate as.
  • the previous matrix storage unit 21 is realized by a storage device provided in the computer.
  • the solution system iteratively solves a combinatorial optimization problem. Then, the latest matrix and the latest vector representing the combinatorial optimization problem are input to the terminal 1 for each combinatorial optimization problem.
  • the latest matrix and the latest vector are input to the terminal 1 for the first time (that is, when solving the first combinatorial optimization problem)
  • the latest matrix and the latest vector are input to the terminal 1 after the second time.
  • the case of input that is, the case of solving the second and subsequent combinatorial optimization problems
  • the matters already described will be omitted below as appropriate.
  • FIG. 4 is a sequence diagram showing an example of the processing progress when the latest matrix and the latest vector are input to the terminal 1 for the first time.
  • the matrix representing the combinatorial optimization problem is stored in the previous matrix storage unit 11 of the terminal 1 and the previous matrix storage unit 21 of the server 2.
  • the problem transmission unit 14 of the terminal 1 receives the input latest matrix and the latest vector, and stores the latest matrix in the previous matrix storage unit 11. (Step S1).
  • the latest matrix stored in the previous matrix storage unit 11 in step S1 is treated as the previous matrix the next time the latest matrix and the latest vector are input to the terminal 1.
  • step S1 the problem transmission unit 14 transmits the latest matrix and the latest vector to the server 2 (step S2).
  • the problem receiving unit 22 of the server 2 receives the latest matrix and the latest vector, and stores the latest matrix in the previous matrix storage unit 21 (step S3). At this time, the problem receiving unit 22 inputs the latest matrix and the latest vector to the solving unit 25. The latest matrix stored in the matrix storage unit 21 last time in step S3 is treated as the previous matrix the next time the problem receiving unit 22 receives the compressed difference matrix and the latest vector.
  • the solution unit 25 finds the solution of the combinatorial optimization problem using the latest matrix and the latest vector (step S4).
  • the solution transmission unit 26 transmits the solution of the combinatorial optimization problem obtained in step S4 to the terminal 1 (step S5).
  • the solution receiving unit 15 of the terminal 1 receives the solution of the combinatorial optimization problem (step S6).
  • the previous matrix is stored in the previous matrix storage unit 11 of the terminal 1 and the previous matrix storage unit 21 of the server 2.
  • 5 and 6 are sequence diagrams showing an example of the processing progress when the latest matrix and the latest vector are input to the terminal 1 from the second time onward.
  • the difference matrix calculation unit 12 of the terminal 1 receives the latest matrix and subtracts the previous matrix stored in the previous matrix storage unit 11 from the latest matrix. By doing so, the difference matrix is calculated (step S11). At this time, the problem transmission unit 14 receives the latest input vector.
  • the difference matrix calculation unit 12 updates the previous matrix stored in the previous matrix storage unit 11 with the latest matrix (step S12).
  • the latest matrix stored in the previous matrix storage unit 11 in step S12 is treated as the previous matrix in the next step S11.
  • the difference matrix compression unit 13 compresses the difference matrix calculated in step S11 (step S13).
  • the problem transmission unit 14 transmits the compressed difference matrix (compression result of the difference matrix) and the latest vector to the server 2 (step S14).
  • the problem receiving unit 22 of the server 2 receives the compressed difference matrix and the latest vector (step S15).
  • the problem receiving unit 22 inputs the compressed difference matrix (compression result of the difference matrix) to the difference matrix restoration unit 23, and inputs the latest vector to the solution unit 25.
  • the difference matrix restoration unit 23 restores the difference matrix from the compressed difference matrix (step S16).
  • the latest matrix derivation unit 24 derives the latest matrix by adding the previous matrix stored in the previous matrix storage unit 21 to the restored difference matrix (step S17).
  • the latest matrix derived in step S17 is the same matrix as the latest matrix input to the terminal 1.
  • the latest matrix derivation unit 24 inputs the derived latest matrix to the solution unit 25.
  • the latest matrix derivation unit 24 updates the previous matrix stored in the previous matrix storage unit 21 with the latest matrix derived in step S17 (see step S18, FIG. 6).
  • the latest matrix stored in the previous matrix storage unit 21 in step S18 is treated as the previous matrix in the next step S17.
  • the solution unit 25 finds a solution of the combinatorial optimization problem using the latest matrix and the latest vector (step S19).
  • the solution transmission unit 26 transmits the solution of the combinatorial optimization problem obtained in step S19 to the terminal 1 (step S20).
  • the solution receiving unit 15 of the terminal 1 receives the solution of the combinatorial optimization problem (step S21).
  • the difference matrix calculation unit 12 calculates the difference matrix which is the difference between the latest matrix and the previous matrix.
  • the difference matrix is a sparse matrix.
  • the difference matrix compression unit 13 compresses the difference matrix
  • the problem transmission unit 14 transmits the compressed difference matrix and the latest vector to the server 2. Except for solving the first combinatorial optimization problem, the compressed difference matrix and the latest vector are transmitted from the terminal 1 to the server 2 in this way. Even if the amount of data of the matrix ⁇ representing the combinatorial optimization problem is large, the difference matrix after compression and the latest vector are exchanged except when the first combinatorial optimization problem is solved.
  • the latest vector input to the terminal 1 is transmitted from the terminal 1 to the server 2 as it is without being compressed.
  • the amount of vector data is small, even if the latest vector is transmitted from the terminal 1 to the server 2 as it is, it does not affect the communication cost so much and does not cause much problem.
  • the difference matrix restoration unit 23 restores the difference matrix from the compressed difference matrix, and the latest matrix derivation unit 24 derives the latest matrix based on the difference matrix and the previous matrix. Then, the solution unit 25 finds the solution of the combinatorial optimization problem using the latest matrix and the latest vector, and the solution transmission unit 26 transmits the solution to the terminal 1. Therefore, the server 2 can find the solution of the combinatorial optimization problem and return the solution to the terminal 1.
  • the terminal 1 may also calculate a difference vector that is the difference between the vector representing the previous combinatorial optimization problem and the latest vector, and compress the difference vector. Then, the problem transmission unit 14 of the terminal 1 may transmit the compressed difference matrix and the compressed difference vector to the server 2. Then, the server 2 may restore the difference vector from the compressed difference vector, and derive the latest vector based on the restored difference vector and the vector representing the previous combinatorial optimization problem. As mentioned above, the amount of vector data is small. Therefore, even if the terminal 1 transmits the latest vector to the server 2 as it is as in the above-described embodiment, if the terminal 1 transmits the compressed difference matrix to the server 2, the effect of suppressing the communication amount can be obtained.
  • the CSR method, the COO method, and the third compression method are shown as the compression method of the difference matrix.
  • the solution system may automatically select a compression method from a plurality of types of compression methods.
  • the matrix ⁇ and the vector ⁇ representing the combinatorial optimization problem are repeatedly input to the terminal 1.
  • the difference matrix compression unit 13 compresses the difference matrix by each of the CSR method, the COO method, and the third compression method for the first predetermined number of inputs (for example, five times), respectively, and the compression efficiency is the highest. Adopt the result.
  • the problem transmission unit 14 transmits the compressed difference matrix, the latest vector, and information indicating the compression method corresponding to the adopted compression result to the server 2.
  • the difference matrix restoration unit 23 of the server 2 may restore the difference matrix by a restoration method corresponding to the compression method. Then, in the input after the first predetermined number of times (for example, five times), the difference matrix may be compressed by the compression method in which the number of times of adoption is the largest in the first predetermined number of times.
  • the case where the matrix ⁇ and the vector ⁇ representing the combinatorial optimization problem are given by giving the energy function in the Ising model has been described as an example.
  • an energy function that can represent a combinatorial optimization problem an energy function in QUADO (Quadratic Unconstrained Binary Optimization) may be used.
  • QUA is a model in which the state of each spin is represented by "1" or "0".
  • the “1” in the QUAO can be referred to as the first value, as in the “1” in the Ising model.
  • "0" in the QUAO can be referred to as a second value as in the case of "-1" in the Ising model.
  • the formula expressing energy in the combinatorial optimization problem can also be converted into an energy function in QUA. This conversion method is known. Further, the energy function in the Ising model and the energy function in the QUA can be converted into each other.
  • Both i and j in the equation (3) are variables representing spin. Further, x i in the equation (3) is a variable representing the state of spin i, and x j is a variable representing the state of spin j. Q ij in the equation (3) is a constant corresponding to the combination of spin i and spin j. Q ij is defined as a constant for each combination of the possible value of i and the possible value of j.
  • the set of constants Qij is represented by a matrix of K rows and K columns. That is, the constant Qij corresponding to the combination of the two spins is an element of the K-by-K matrix. This matrix is a symmetric matrix.
  • this matrix is a matrix representing a combinatorial optimization problem, similar to the above-mentioned matrix ⁇ . Given the energy function of equation (3), the above matrix is also given. In QUA, a vector such as vector ⁇ is not given.
  • a matrix having two K constants Qij as elements may be applied.
  • the vector since the vector is not given in QUA, it is not necessary to perform the processing related to the vector described in the above-described embodiment.
  • Other points are the same as those in the above-described embodiment.
  • the combinatorial optimization problem information transmitting device 1 and the combinatorial optimization problem solving device 2 are realized by separate computers.
  • the configuration of the computer for realizing these two devices can be represented as illustrated in FIG. 7.
  • the computer 1000 illustrated in FIG. 7 includes a CPU 1001, a main storage device 1002, an auxiliary storage device 1003, an interface 1004, and a communication interface 1005.
  • the combinatorial optimization problem information transmission program is stored in the auxiliary storage device 1003.
  • the CPU 1001 reads the program from the auxiliary storage device 1003, expands the program to the main storage device 1002, and executes the processing of the combinatorial optimization problem information transmission device 1 of the above embodiment according to the program.
  • the combinatorial optimization problem solving program is stored in the auxiliary storage device 1003.
  • the CPU 1001 reads the program from the auxiliary storage device 1003, expands the program to the main storage device 1002, and executes the processing of the combinatorial optimization problem solving device 2 of the above embodiment according to the program.
  • Auxiliary storage 1003 is an example of a non-temporary tangible medium.
  • Other examples of non-temporary tangible media include magnetic disks, magneto-optical disks, CD-ROMs (Compact Disk Read Only Memory), DVD-ROMs (Digital Versatile Disk Read Only Memory), which are connected via interface 1004. Examples include semiconductor memory.
  • FIG. 8 is a block diagram showing an outline of the combinatorial optimization problem information transmission device of the present invention.
  • the combinatorial optimization problem information transmission device includes a difference matrix calculation means 72, a difference matrix compression means 73, and a transmission means 74.
  • the difference matrix calculation means 72 (for example, the difference matrix calculation unit 12) has a first matrix (for example, a previous matrix) representing the combination optimization problem for which a solution was obtained last time, and a second matrix representing the latest combination optimization problem.
  • the difference matrix that is the difference from the matrix of (for example, the latest matrix) is calculated.
  • the difference matrix compression means 73 compresses the difference matrix.
  • the transmission means 74 (for example, the problem transmission unit 14) transmits the compressed difference matrix to the combinatorial optimization problem solving device (for example, the server 2) for finding the solution of the combinatorial optimization problem.
  • difference matrix compression means 73 may compress the difference matrix by the CSR method.
  • difference matrix compression means 73 may compress the difference matrix by the COO method.
  • the combination optimization problem has a property that when the first matrix and the second matrix are compared, the elements of a certain row and the column corresponding to the row are different, and the other elements are common.
  • the difference matrix compression means 73 includes a row of the difference matrix corresponding to a row having different elements in the first matrix and the second matrix, an index of the row, or a first matrix.
  • the column of the difference matrix corresponding to the column whose elements are different from that of the second matrix and the index of the column may be determined as the compression result of the difference matrix.
  • FIG. 9 is a block diagram showing an outline of the combinatorial optimization problem solving device of the present invention.
  • the combinatorial optimization problem solving device includes a matrix storage means 81, a receiving means 82, a difference matrix restoring means 83, a matrix deriving means 84, a solving means 85, and a solution transmitting means 86.
  • the matrix storage means 81 (for example, the previous matrix storage unit 21) stores the first matrix (for example, the previous matrix) representing the combinatorial optimization problem for which the solution was obtained last time.
  • the receiving means 82 (for example, the problem receiving unit 22) transmits the first matrix and the latest combinatorial optimization problem from the combinatorial optimization problem information transmitting device (for example, the terminal 1) that transmits information about the combinatorial optimization problem. Receives the compression result of the difference matrix that is the difference from the second matrix to be represented (for example, the latest matrix).
  • the difference matrix restoration means 83 (for example, the difference matrix restoration unit 23) restores the difference matrix from the compression result.
  • the matrix derivation means 84 (for example, the latest matrix derivation unit 24) derives a second matrix based on the restored difference matrix and the first matrix.
  • the solution means 85 finds the solution of the combinatorial optimization problem using the derived second matrix.
  • the solution transmission means 86 (for example, the solution transmission unit 26) transmits the solution to the combinatorial optimization problem information transmission device.
  • the present invention is suitably applied to a solution system in which a combinatorial optimization problem information transmitter transmits information about a combinatorial optimization problem to a combinatorial optimization problem solver, and the combinatorial optimization problem solver seeks a solution to the combinatorial optimization problem. Will be done.
  • Terminal (combinatorial optimization problem information transmitter) 2 server (combinatorial optimization problem solving device) 11 Previous matrix storage unit 12 Difference matrix calculation unit 13 Difference matrix compression unit 14 Problem transmission unit 15 Solution reception unit 21 Previous matrix storage unit 22 Problem reception unit 23 Difference matrix restoration unit 24 Latest matrix derivation unit 25 Solution transmission unit 26 Solution transmission unit

Abstract

差分行列算出手段72は、前回、解を求めた組合せ最適化問題を表す第1の行列と、最新の組合せ最適化問題を表す第2の行列との差分となる差分行列を算出する。差分行列圧縮手段73は、差分行列を圧縮する。送信手段74は、組合せ最適化問題の解を求める組合せ最適化問題求解装置に対して、圧縮後の差分行列を送信する。

Description

組合せ最適化問題情報送信装置および組合せ最適化問題求解装置
 本発明は、組合せ最適化問題に関する情報を送信する組合せ最適化問題情報送信装置、組合せ最適化問題の解を求める組合せ最適化問題求解装置、組合せ最適化問題情報送信装置と組合せ最適化問題求解装置とを含む求解システム、組合せ最適化問題情報送信方法、組合せ最適化問題求解方法、組合せ最適化問題情報送信プログラムを記録したコンピュータ読取可能な記録媒体、および、組合せ最適化問題求解プログラムを記録したコンピュータ読取可能な記録媒体に関する。
 組合せ最適化問題を解く際に、イジングモデルのエネルギー関数が利用されている。なお、組合せ最適化問題の例として、勤務シフト最適化問題、巡回セールスマン問題、ナップサック問題等が挙げられる。ただし、組合せ最適化問題は、これらの問題に限らない。
 イジングモデルは、個々のスピンによって磁性体の振る舞いを表す統計力学上のモデルであるが、組合せ最適化問題の求解にも適用可能である。イジングモデルでは、個々のスピンの状態は、“1”または“-1”で表される。
 イジングモデルにおける“1”を第1の値と称することができる。また、イジングモデルにおける“-1”を第2の値と称することができる。
 組合せ最適化問題を解く場合、まず、組合せ最適化問題におけるエネルギーを表す式を作成する。例えば、巡回セールスマン問題を解く場合には、巡回セールスマン問題におけるエネルギーを表す式を作成する。そして、組合せ最適化問題におけるエネルギーを表す式を、イジングモデルにおけるエネルギー関数に変換する。この変換方法は、公知である。
 イジングモデルにおけるエネルギー関数は、以下の式(1)のように表される。
Figure JPOXMLDOC01-appb-M000001
 式(1)におけるi,jは、いずれもスピンを表す変数である。また、式(1)におけるsは、スピンiの状態を表す変数であり、sは、スピンjの状態を表す変数である。式(1)におけるhは、スピンiに対応する定数である。iの取り得る値毎に、hは定数として定められる。式(1)におけるJijは、スピンiおよびスピンjの組合せに対応する定数である。iの取り得る値とjの取り得る値の組合せ毎に、Jijは定数として定められる。
 式(1)における定数Jijは、スピンの数をK個としたときに、K個存在する。そして、定数Jijの集合は、K行K列の行列で表される。すなわち、2つのスピンの組合せに対応する定数Jijは、K行K列の行列の要素である。以下、このK行K列の行列を符号αで表す。行列αは、対称行列である。
 また、式(1)における定数hは、スピンの数をK個としたときに、K個存在する。そして、定数hの集合は、K個の要素を持つベクトルで表される。各スピンに対応する各定数hは、このベクトルの要素である。以下、このベクトルを符号βで表す。
 行列αおよびベクトルβは、組合せ最適化問題を表していると言える。また、式(1)のエネルギー関数が与えられれば、行列αおよびベクトルβも与えられることになる。
 ただし、組合せ最適化問題の種類によっては、式(1)に示すエネルギー関数において、右辺の第2項が存在しない場合もある(換言すれば、ベクトルβが存在しない場合もある)。
 式(1)に示すエネルギー関数が与えられた場合、最適な個々のスピンの状態(1または-1)を求める。最適な個々のスピンの状態は、そのエネルギー関数が示すエネルギーができるだけ小さくなるような個々のスピンの状態、または、そのエネルギー関数が示すエネルギーができるだけ大きくなるような個々のスピンの状態である。最適な個々のスピンの状態として、エネルギー関数が示すエネルギーができるだけ小さくなるような個々のスピンの状態を求めるか、エネルギー関数が示すエネルギーができるだけ大きくなるような個々のスピンの状態を求めるかは、例えば、外部から指定される。そのように得られた最適な個々のスピンの状態は、組合せ最適化問題の解を表している。
 また、特許文献1には、最新データと前回送信済みデータの差分情報を扱うシステムが記載されている。
特開2000-194613号公報
 組合せ最適化問題の解を求めるシステムとして、端末とサーバとを備えるシステムが考えられる。すなわち、端末には、組合せ最適化問題を表す行列αおよびベクトルβが入力され、その端末が行列αおよびベクトルβをサーバに送信し、サーバが、行列αおよびベクトルβを用いて組合せ最適化問題の解を求め、その解を端末に返す構成が考えられる。
 また、同種の組合せ最適化問題を繰り返し解く場合もある。この場合、組合せ最適化問題の解を求めようとする毎に端末が行列αおよびベクトルβをサーバに送信すると、行列αのデータ量は多いため、通信量が多くなってしまう。従って、行列αの通信コストが高くなり、端末からサーバへの行列αの送信が処理全体におけるボトルネックになってしまう。
 そこで、本発明は、ある装置から別の装置に、組合せ最適化問題に関する情報を送信し、その情報を受信した装置が組合せ最適化問題の解を求める場合において、情報の通信量を抑えることができるようにすることを目的とする。
 本発明による組合せ最適化問題情報送信装置は、前回、解を求めた組合せ最適化問題を表す第1の行列と、最新の組合せ最適化問題を表す第2の行列との差分となる差分行列を算出する差分行列算出手段と、差分行列を圧縮する差分行列圧縮手段と、組合せ最適化問題の解を求める組合せ最適化問題求解装置に対して、圧縮後の差分行列を送信する送信手段とを備えることを特徴とする。
 本発明による組合せ最適化問題求解装置は、前回、解を求めた組合せ最適化問題を表す第1の行列を記憶する行列記憶手段と、組合せ最適化問題に関する情報を送信する組合せ最適化問題情報送信装置から、第1の行列と、最新の組合せ最適化問題を表す第2の行列との差分となる差分行列の圧縮結果を受信する受信手段と、圧縮結果から差分行列を復元する差分行列復元手段と、復元された差分行列と、第1の行列とに基づいて、第2の行列を導出する行列導出手段と、導出された第2の行列を用いて、組合せ最適化問題の解を求める求解手段と、その解を、組合せ最適化問題情報送信装置に送信する解送信手段とを備えることを特徴とする。
 本発明による求解システムは、組合せ最適化問題に関する情報を送信する組合せ最適化問題情報送信装置と、組合せ最適化問題の解を求める組合せ最適化問題求解装置とを備え、組合せ最適化問題情報送信装置が、前回、解を求めた組合せ最適化問題を表す第1の行列と、最新の組合せ最適化問題を表す第2の行列との差分となる差分行列を算出する差分行列算出手段と、差分行列を圧縮する差分行列圧縮手段と、組合せ最適化問題求解装置に対して、圧縮後の差分行列を送信する送信手段とを有し、組合せ最適化問題求解装置が、第1の行列を記憶する行列記憶手段と、組合せ最適化問題情報送信装置の送信手段から、圧縮後の差分行列を受信する受信手段と、圧縮後の差分行列から差分行列を復元する差分行列復元手段と、復元された差分行列と、第1の行列とに基づいて、第2の行列を導出する行列導出手段と、導出された第2の行列を用いて、組合せ最適化問題の解を求める求解手段と、その解を、組合せ最適化問題情報送信装置に送信する解送信手段とを有することを特徴とする。
 本発明による組合せ最適化問題情報送信方法は、コンピュータが、前回、解を求めた組合せ最適化問題を表す第1の行列と、最新の組合せ最適化問題を表す第2の行列との差分となる差分行列を算出し、差分行列を圧縮し、組合せ最適化問題の解を求める組合せ最適化問題求解装置に対して、圧縮後の差分行列を送信することを特徴とする。
 本発明による組合せ最適化問題求解方法は、コンピュータが、前回、解を求めた組合せ最適化問題を表す第1の行列を記憶し、組合せ最適化問題に関する情報を送信する組合せ最適化問題情報送信装置から、第1の行列と、最新の組合せ最適化問題を表す第2の行列との差分となる差分行列の圧縮結果を受信し、圧縮結果から差分行列を復元し、復元された差分行列と、第1の行列とに基づいて、第2の行列を導出し、導出された第2の行列を用いて、組合せ最適化問題の解を求め、その解を、組合せ最適化問題情報送信装置に送信することを特徴とする。
 本発明によるコンピュータ読取可能な記録媒体は、コンピュータに、前回、解を求めた組合せ最適化問題を表す第1の行列と、最新の組合せ最適化問題を表す第2の行列との差分となる差分行列を算出する差分行列算出処理、差分行列を圧縮する差分行列圧縮処理、および、組合せ最適化問題の解を求める組合せ最適化問題求解装置に対して、圧縮後の差分行列を送信する送信処理を実行させるための組合せ最適化問題情報送信プログラムを記録したコンピュータ読取可能な記録媒体である。
 本発明によるコンピュータ読取可能な記録媒体は、コンピュータに、前回、解を求めた組合せ最適化問題を表す第1の行列を記憶する行列記憶処理、組合せ最適化問題に関する情報を送信する組合せ最適化問題情報送信装置から、第1の行列と、最新の組合せ最適化問題を表す第2の行列との差分となる差分行列の圧縮結果を受信する受信処理、圧縮結果から差分行列を復元する差分行列復元処理、復元された差分行列と、第1の行列とに基づいて、第2の行列を導出する行列導出処理、導出された第2の行列を用いて、組合せ最適化問題の解を求める求解処理、および、その解を、組合せ最適化問題情報送信装置に送信する解送信処理を実行させるための組合せ最適化問題求解プログラムを記録したコンピュータ読取可能な記録媒体である。
 本発明によれば、ある装置から別の装置に、組合せ最適化問題に関する情報を送信し、その情報を受信した装置が組合せ最適化問題の解を求める場合において、情報の通信量を抑えることができる。
本発明の実施形態の求解システムの構成例を示すブロック図である。 前回行列と最新行列とで、第2行および第2列の要素が異なり、他の要素が共通である場合における差分行列の例を示す模式図である。 頂点が2つのグループに分けられたグラフの例を示す模式図である。 1回目に最新行列および最新ベクトルが端末に入力される場合の処理経過の例を示すシーケンス図である。 2回目以降に最新行列および最新ベクトルが端末に入力される場合の処理経過の例を示すシーケンス図である。 2回目以降に最新行列および最新ベクトルが端末に入力される場合の処理経過の例を示すシーケンス図である。 組合せ最適化問題情報送信装置や組合せ最適化問題求解装置を実現するためのコンピュータの構成例を示すブロック図である。 本発明の組合せ最適化問題情報送信装置の概要を示すブロック図である。 本発明の組合せ最適化問題求解装置の概要を示すブロック図である。
 以下、本発明の実施形態を図面を参照して説明する。
 以下の説明では、イジングモデルにおけるエネルギー関数が与えられることにより、組合せ最適化問題を表す行列αおよびベクトルβが与えられる場合を例にして説明する。
 組合せ最適化問題を繰り返し解く際に、組合せ最適化問題を表す行列αの多くの要素は前回から変化せず、行列αの一部の要素のみが前回から変化する場合がある。本発明は、このような行列によって表される組合せ最適化問題の求解に適している。
 解を繰り返し求める際に、組合せ最適化問題を表す行列αの多くの要素は前回から変化せず、行列αの一部の要素のみが前回から変化するような組合せ最適化問題の一例として、株取引における動的ポートフォリオ最適化問題が挙げられる。この問題は、定められた資金をどの株にどれだけ配分すれば最適といえるかを特定する問題であり、ある所定期間毎に、動的ポートフォリオ最適化問題の解を求めることが考えられる。ここで、動的ポートフォリオ最適化問題を表す行列αの要素は、各株の収益率や期待収益率等によって影響を受ける。しかし、所定期間が経過しただけでは、各株の収益率や期待収益率等の変化は小さく、その結果、前回に動的ポートフォリオ最適化問題の解を求めたときの行列αと、最新の動的ポートフォリオ最適化問題の解を求めるときの行列αとを比較した場合、行列の多くの要素は前回から変化せず、行列の一部の要素のみが前回から変化する。
 また、組合せ最適化問題を表す行列αの多くの要素は前回から変化せず、行列αの一部の要素のみが前回から変化する場合というのは、上記のように時間経過に伴って組合せ最適化問題を繰り返し解く場合に限られない。
 例えば、組合せ最適化問題を表す行列αの要素が、ルールによって大きく影響を受けるパズルを繰り返し解く場合にも、組合せ最適化問題(本例では、パズル)を表す行列αの多くの要素は前回から変化せず、行列αの一部の要素のみが前回から変化する。
 また、例えば、1年分の勤務シフト最適化問題を1カ月毎の勤務シフト最適化問題に分け、12個の勤務シフト最適化問題の解をそれぞれ求める場合にも、組合せ最適化問題(本例では、勤務シフト最適化問題)を表す行列αの多くの要素は前回から変化せず、行列αの一部の要素のみが前回から変化する。
 前述のように、本発明は、このような行列によって表される組合せ最適化問題の求解に適している。
 図1は、本発明の実施形態の求解システムの構成例を示すブロック図である。図1に示す求解システムは、組合せ最適化問題に関する情報を送信する組合せ最適化問題情報送信装置1と、その組合せ最適化問題の解を求める組合せ最適化問題求解装置2とを備える。
 組合せ最適化問題情報送信装置1は、例えば、端末によって実現される。以下、組合せ最適化問題情報送信装置1が端末によって実現される場合を例にして説明し、組合せ最適化問題情報送信装置1を端末1と記す。
 組合せ最適化問題求解装置2は、例えば、クラウドサーバ等のサーバによって実現される。以下、組合せ最適化問題求解装置2がサーバによって実現される場合を例にして説明し、組合せ最適化問題求解装置2をサーバ2と記す。
 端末1およびサーバ2は、通信ネットワーク(図示略)を介して、通信可能に接続されている。
 繰り返し組合せ最適化問題の解を求める場合において、最新の組合せ最適化問題を表す行列αおよびベクトルβを最新行列および最新ベクトルと記す。また、前回に解を求めた組合せ最適化問題を表す行列αを前回行列と記す。前回行列と最新行列とを比較した場合、多くの要素は共通であり、一部の要素のみが異なっている。
 端末1は、前回行列記憶部11と、差分行列算出部12と、差分行列圧縮部13と、問題送信部14と、解受信部15とを備える。
 端末1には、最新の組合せ最適化問題を表す最新行列および最新ベクトルが入力される。差分行列算出部12は、その最新行列を受け取り、問題送信部14は、その最新ベクトルを受け取る。
 ただし、1回目に最新行列および最新ベクトルが入力された場合、問題送信部14が、その最新行列および最新ベクトルを受け取り、問題送信部14は、その最新行列を前回行列記憶部11に記憶させ、さらに、その最新行列および最新ベクトルをサーバ2に送信する。
 なお、既に説明したように、組合せ最適化問題を表すベクトルβが存在しない場合もある。すなわち、式(1)に示すエネルギー関数において、右辺の第2項が存在しない場合もある。
 前回行列記憶部11は、前回、解を求めた組合せ最適化問題を表す行列α(前回行列)を記憶する記憶装置である。前回行列が存在している状態で、最新行列および最新ベクトルが入力されたとする。この場合、前回行列を第1の行列と称し、最新行列を第2の行列と称してもよい。
 以下の説明では、既に前回行列記憶部11に前回行列が記憶されている状態で、最新行列および最新ベクトルが入力され、差分行列算出部12が、その最新行列を受け取り、問題送信部14が、その最新ベクトルを受け取った場合について述べる。
 差分行列算出部12は、入力された最新行列と、前回行列記憶部11に記憶されている前回行列との差分となる差分行列を算出する。具体的には、差分行列算出部12は、最新行列から前回行列を減算することによって、差分行列を算出する。
 前述のように、前回行列と最新行列とを比較した場合、多くの要素は共通であり、一部の要素のみが異なっている。従って、差分行列は、疎行列となる。
 また、最新行列および前回行列は、いずれも組合せ最適化問題を表す行列であるので、対称行列である。従って、差分行列も対称行列である。
 差分行列算出部12は、差分行列を算出した後、前回行列記憶部11に記憶されている前回行列を最新行列で更新する。前回行列記憶部11に記憶された最新行列は、次回、最新行列が入力されたときに、前回行列として扱われる。
 差分行列圧縮部13は、差分行列算出部12によって算出された差分行列を圧縮する。上記のように、差分行列は疎行列である。よって、差分行列を圧縮することができる。
 差分行列圧縮部13は、CSR(Compressed Sparse Row )方式で、差分行列を圧縮してもよい。
 また、差分行列圧縮部13は、COO(COOdinate )方式で、差分行列を圧縮してもよい。
 また、前回行列と最新行列とを比較した場合、ある行およびその行に対応する列(例えば、行が第p行である場合における第p列)の要素が異なり、他の要素は変化しない(換言すれば、共通である)という性質を有する組合せ最適化問題がある。このような組合せ最適化問題の例として、Maxcut問題が挙げられる。Maxcut問題については、後述する。
 上記の性質を有する組合せ最適化問題において、前回行列と最新行列とを比較し場合に、ある行(本例では第2行とする。)およびその行に対応する第2列の要素が異なり、他の要素が共通であるとする。この場合の差分行列を模式的に、図2に示す。図2に示す差分行列において、第2行および第2列以外の要素は全て0になる。なお、第2行や第2列の要素の中に0となる要素が存在していてもよい。差分行列も対称行列であるであるので、第2行全体を抽出しても、第2列全体を抽出しても、同様の要素群が得られる(図2参照)。
 本例では、前回行列と最新行列とで要素群が異なっている行は、第2行であり、差分行列圧縮部13は、その第2行に対応する差分行列の第2行、および、その行のインデックス“2”を、差分行列の圧縮結果として定めてもよい。また、本例では、前回行列と最新行列とで要素群が異なっている列は、第2列であり、差分行列圧縮部13は、その第2列に対応する差分行列の第2列、および、その列のインデックス“2”を、差分行列の圧縮結果として定めてもよい。
 前回行列と最新行列とで要素群が異なっている行および列が、第2行および第2列以外であっても、同様に、差分行列の圧縮結果を定めればよい。
 上記の圧縮方式を、便宜的に、第3の圧縮方式と記す。第3の圧縮方式は、上記の性質を有する組合せ最適化問題の解を求める場合に適用可能である。すなわち、上記の性質を有する組合せ最適化問題を繰り返し解く場合には、差分行列圧縮部13は、第3の圧縮方式で差分行列を圧縮してもよい。
 上記の性質を有するMaxcut問題について説明する。頂点が辺で繋がれた任意のグラフを考える。そして、頂点を2つのグループに分けるものとする。このように、頂点が2つのグループに分けられたグラフの例を図3に示す。図3に示すグラフにおいて、黒色で示した頂点が同じグループに属し、白色で示した頂点が同じグループに属している。また、図3では、同じグループに属する頂点を繋ぐ辺を細線で示し、異なるグループに属する頂点を繋ぐ辺を太線で示している。また、各辺には、重みが定められている。Maxcut問題は、異なるグループに属する頂点を繋ぐ辺の重みの和が最大になるように、頂点群を2つのグループに分けるという組合せ最適化問題である。
 Maxcut問題におけるイジングモデルのエネルギー関数は、以下に示す式(2)のように表される。
Figure JPOXMLDOC01-appb-M000002
 式(1)と比較すると、式(2)では、式(1)の右辺の第2項がない。従って、Maxcut問題では、ベクトルβは存在しない。このようにベクトルβが存在しない場合、本実施形態におけるベクトルに関する処理は行わなくてよい。
 2つのグループをG1,G2とする。式(2)において、i,jは、頂点を表す変数である。sは、頂点iがグループG1に属する場合に“-1”を取り、頂点iがグループG2に属する場合に“1”を取る変数である。同様に、sは、頂点jがグループG1に属する場合に“-1”を取り、頂点jがグループG2に属する場合に“1”を取る変数である。また、定数Jijは、頂点iと頂点jとを繋ぐ辺の重みである。また、ここでは、頂点iと頂点jとを繋ぐ辺の重みは、頂点iと頂点jとの距離であるものとする。
 1つの頂点の位置のみを毎回変えながら、Maxcut問題の解を繰り返し求めるとする。この場合、Maxcut問題を表す行列αにおいて、その頂点に対応する行および列の要素のみが変化し、他の要素は変化しない。よって、このようなMaxcut問題の解を繰り返し求める場合、差分行列の圧縮方式として、上記の第3の圧縮方式を用いることが好ましい。
 本実施形態では、差分行列の圧縮方式として、CSR方式、COO方式、および、第3の圧縮方式を挙げた。どの圧縮方式を採用するのかは、例えば、求解システムのユーザによって指定される。
 問題送信部14は、圧縮後の差分行列および最新ベクトルを、サーバ2に送信する。
 また、既に説明したように、1回目に最新行列および最新ベクトルが入力された場合には、問題送信部14は、その最新行列および最新ベクトルを、サーバ2に送信する。
 解受信部15は、サーバ2から、組合せ最適化問題の解を受信する。
 問題送信部14および解受信部15は、例えば、組合せ最適化問題情報送信プログラムに従って動作するコンピュータのCPU(Central Processing Unit )、および、そのコンピュータの通信インタフェースによって実現される。この場合、CPUが、コンピュータのプログラム記憶装置等のプログラム記録媒体から組合せ最適化問題情報送信プログラムを読み込み、そのプログラムに従って、通信インタフェースを用いて、問題送信部14および解受信部15として動作すればよい。
 また、差分行列算出部12および差分行列圧縮部13は、例えば、組合せ最適化問題情報送信プログラムに従って動作するコンピュータのCPUによって実現される。この場合、CPUが、上記のように、コンピュータのプログラム記憶装置等のプログラム記録媒体から組合せ最適化問題情報送信プログラムを読み込み、そのプログラムに従って、差分行列算出部12および差分行列圧縮部13として動作すればよい。
 前回行列記憶部11は、コンピュータが備える記憶装置によって実現される。
 サーバ2は、前回行列記憶部21と、問題受信部22と、差分行列復元部23と、最新行列導出部24と、求解部25と、解送信部26とを備える。
 サーバ2の前回行列記憶部21は、端末1の前回行列記憶部11と同様に、前回、解を求めた組合せ最適化問題を表す行列α(前回行列)を記憶する記憶装置である。
 問題受信部22は、問題送信部14から送信された圧縮後の差分行列および最新ベクトルを受信する。そして、問題送信部14は、圧縮後の差分行列を差分行列復元部23に入力し、最新ベクトルを求解部25に入力する。
 なお、端末1に、1回目に最新行列および最新ベクトルが端末1に入力された場合、前回行列記憶部21には前回行列は記憶されていない。このとき、問題受信部22は、問題送信部14から最新行列および最新ベクトルを受信すると、その最新行列および最新ベクトルを求解部25に入力するとともに、その最新行列を前回行列記憶部21に記憶させる。前回行列記憶部21に記憶された最新行列は、次に、問題受信部22が圧縮後の差分行列および最新ベクトルを受信したときに、前回行列として扱われる。
 差分行列復元部23は、圧縮後の差分行列(換言すれば、差分行列の圧縮結果)から、差分行列を復元する。
 差分行列圧縮部13において差分行列がCSR方式で圧縮される場合、差分行列復元部23は、CSR方式に対応する方法で、差分行列を復元すればよい。
 差分行列圧縮部13において差分行列がCOO方式で圧縮される場合、差分行列復元部23は、COO方式に対応する方法で、差分行列を復元すればよい。
 差分行列圧縮部13において差分行列が第3の圧縮方式で圧縮される場合、差分行列復元部23は、1行分の要素およびその行のインデックス、または、1列分の要素およびその列のインデックスを受け取る。ここでは、差分行列復元部23が1行分の要素およびその行のインデックスを受け取る場合を例にして説明する。この場合、差分行列復元部23は、そのインデックスが示す行、および、その行に対応する列に、その1行分の要素を格納し、他の要素には0を格納した対称行列を生成することによって、差分行列を復元する。例えば、差分行列復元部23が、図2に示す第2行の各要素およびその行のインデックス“2”を受け取ったとする。この場合、差分行列復元部23は、第2行、および、第2列に、その1行分の要素を格納し、他の要素には0を格納した対称行列を生成することによって、図2に示す差分行列を復元する。
 差分行列復元部23は、復元した差分行列を最新行列導出部24に入力する。
 最新行列導出部24は、復元された差分行列と、前回行列記憶部21に記憶されている前回行列とに基づいて、最新行列を導出する。具体的には、最新行列導出部24は、復元された差分行列と、前回行列とを加算することによって、最新行列を導出する。導出された最新行列は、端末1に入力された最新行列と同じ行列である。最新行列導出部24は、導出した最新行列を求解部25に入力する。
 最新行列導出部24は、最新行列を導出し、その最新行列を求解部25に入力した後、前回行列記憶部21に記憶されている前回行列をその最新行列で更新する。前回行列記憶部21に記憶された最新行列は、次に、問題受信部22が圧縮後の差分行列および最新ベクトルを受信したときに、前回行列として扱われる。
 求解部25は、最新行列導出部24から入力された最新行列と、問題受信部22から入力された最新ベクトルとを用いて、組合せ最適化問題の解(換言すれば、最適な個々のスピンの状態)を求める。求解部25は、例えば、シミュレーテッドアニーリングによって、組合せ最適化問題の解を求めてもよい。
 また、求解部25は、問題受信部22から最新行列および最新ベクトルが入力された場合には、その最新行列および最新ベクトルを用いて、組合せ最適化問題の解を求める。
 求解部25は、得られた解(組合せ最適化問題の解)を、解送信部26に入力する。
 解送信部26は、求解部25から入力された組合せ最適化問題の解を、端末1に送信する。この解は、端末1の解受信部15によって受信される。
 問題受信部22および解送信部26は、例えば、組合せ最適化問題求解プログラムに従って動作するコンピュータのCPU、および、そのコンピュータの通信インタフェースによって実現される。この場合、CPUが、コンピュータのプログラム記憶装置等のプログラム記録媒体から組合せ最適化問題求解プログラムを読み込み、そのプログラムに従って、通信インタフェースを用いて、問題受信部22および解送信部26として動作すればよい。
 また、差分行列復元部23、最新行列導出部24および求解部25は、例えば、組合せ最適化問題求解プログラムに従って動作するコンピュータのCPUによって実現される。この場合、CPUが、上記のように、コンピュータのプログラム記憶装置等のプログラム記録媒体から組合せ最適化問題求解プログラムを読み込み、そのプログラムに従って、差分行列復元部23、最新行列導出部24および求解部25として動作すればよい。
 前回行列記憶部21は、コンピュータが備える記憶装置によって実現される。
 次に、処理経過について説明する。本実施形態では、求解システムは、組合せ最適化問題を繰り返し解く。そして、組合せ最適化問題毎に、組合せ最適化問題を表す最新行列および最新ベクトルが端末1に入力される。以下の説明では、1回目に最新行列および最新ベクトルが端末1に入力される場合(すなわち、1回目の組合せ最適化問題を解く場合)と、2回目以降に最新行列および最新ベクトルが端末1に入力される場合(すなわち、2回目以降の組合せ最適化問題を解く場合)とを分けて説明する。なお、既に説明した事項については、以下では、適宜、説明を省略する。
 図4は、1回目に最新行列および最新ベクトルが端末1に入力される場合の処理経過の例を示すシーケンス図である。1回目に最新行列および最新ベクトルが端末1に入力される時点では、端末1の前回行列記憶部11、および、サーバ2の前回行列記憶部21には、組合せ最適化問題を表す行列は記憶されていない。
 1回目に最新行列および最新ベクトルが端末1に入力されると、端末1の問題送信部14は、入力された最新行列および最新ベクトルを受け取り、その最新行列を、前回行列記憶部11に記憶させる(ステップS1)。ステップS1で前回行列記憶部11に記憶された最新行列は、次回、最新行列および最新ベクトルが端末1に入力されるときに、前回行列として扱われる。
 ステップS1の後、問題送信部14は、最新行列および最新ベクトルをサーバ2に送信する(ステップS2)。
 サーバ2の問題受信部22は、その最新行列および最新ベクトルを受信し、その最新行列を前回行列記憶部21に記憶させる(ステップS3)。このとき、問題受信部22は、その最新行列および最新ベクトルを求解部25に入力する。ステップS3で前回行列記憶部21に記憶された最新行列は、次回、問題受信部22が圧縮された差分行列と最新ベクトルとを受信するときに、前回行列として扱われる。
 求解部25は、最新行列および最新ベクトルを用いて、組合せ最適化問題の解を求める(ステップS4)。
 次に、解送信部26は、ステップS4で得られた組合せ最適化問題の解を端末1に送信する(ステップS5)。
 端末1の解受信部15は、その組合せ最適化問題の解を受信する(ステップS6)。
 次に、2回目以降に最新行列および最新ベクトルが端末1に入力される場合について説明する。この場合、端末1の前回行列記憶部11、および、サーバ2の前回行列記憶部21には、前回行列が記憶されている。
 図5および図6は、2回目以降に最新行列および最新ベクトルが端末1に入力される場合の処理経過の例を示すシーケンス図である。
 最新行列および最新ベクトルが端末1に入力されると、端末1の差分行列算出部12は、その最新行列を受け取り、その最新行列から、前回行列記憶部11に記憶されている前回行列を減算することによって、差分行列を算出する(ステップS11)。なお、このとき、問題送信部14は、入力された最新ベクトルを受け取る。
 ステップS11の後、差分行列算出部12は、前回行列記憶部11に記憶されている前回行列を最新行列で更新する(ステップS12)。ステップS12で前回行列記憶部11に記憶された最新行列は、次回のステップS11では前回行列として扱われる。
 次に、差分行列圧縮部13が、ステップS11で算出された差分行列を圧縮する(ステップS13)。
 次に、問題送信部14が、圧縮後の差分行列(差分行列の圧縮結果)と、最新ベクトルとをサーバ2に送信する(ステップS14)。
 サーバ2の問題受信部22は、その圧縮後の差分行列と、最新ベクトルとを受信する(ステップS15)。ここで、問題受信部22は、圧縮後の差分行列(差分行列の圧縮結果)を差分行列復元部23に入力し、最新ベクトルを求解部25に入力する。
 差分行列復元部23は、圧縮後の差分行列から、差分行列を復元する(ステップS16)。
 次に、最新行列導出部24は、復元された差分行列に、前回行列記憶部21に記憶されている前回行列を加算することによって、最新行列を導出する(ステップS17)。ステップS17で導出された最新行列は、端末1に入力された最新行列と同じ行列である。最新行列導出部24は、導出した最新行列を求解部25に入力する。
 最新行列導出部24は、前回行列記憶部21に記憶されている前回行列を、ステップS17で導出した最新行列で更新する(ステップS18、図6参照)。ステップS18で前回行列記憶部21に記憶された最新行列は、次回のステップS17で前回行列として扱われる。
 また、求解部25は、最新行列および最新ベクトルを用いて、組合せ最適化問題の解を求める(ステップS19)。
 次に、解送信部26は、ステップS19で得られた組合せ最適化問題の解を端末1に送信する(ステップS20)。
 端末1の解受信部15は、その組合せ最適化問題の解を受信する(ステップS21)。
 本実施形態では、端末1において、差分行列算出部12が、最新行列と前回行列の差分となる差分行列を算出する。ここで、前回行列と最新行列とを比較した場合、多くの要素は共通であり、一部の要素のみが異なっている。従って、差分行列は、疎行列となる。そして、差分行列圧縮部13が、その差分行列を圧縮し、問題送信部14が圧縮後の差分行列と、最新ベクトルとをサーバ2に送信する。1回目の組合せ最適化問題を解く場合を除いて、このように、圧縮後の差分行列と、最新ベクトルとが、端末1からサーバ2に送信される。組合せ最適化問題を表す行列αのデータ量が多くても、1回目の組合せ最適化問題を解く場合を除いて、圧縮後の差分行列と、最新ベクトルとが、授受される。従って、端末1からサーバ2に組合せ最適化問題に関する情報を送信し、その情報を受信したサーバ2が組合せ最適化問題の解を求める場合において、端末1からサーバ2への情報の通信量を抑えることができる。
 なお、最新ベクトルに関しては、圧縮等されずに、端末1に入力された最新ベクトルがそのまま端末1からサーバ2に送信される。ここで、ベクトルのデータ量は少ないので、最新ベクトルがそのまま端末1からサーバ2に送信されても、通信コストにはあまり影響せず、あまり問題にならない。
 また、サーバ2では、差分行列復元部23が、圧縮後の差分行列から差分行列を復元し、最新行列導出部24が、その差分行列と前回行列とに基づいて、最新行列を導出する。そして、求解部25が、最新行列および最新ベクトルを用いて、組合せ最適化問題の解を求め、解送信部26がその解を端末1に送信する。従って、サーバ2が組合せ最適化問題の解を求め、その解を端末1に返すことができる。
 次に、本発明の実施形態の変形例について説明する。
 上記の実施形態では、最新ベクトルがそのまま端末1からサーバ2に送信される場合を説明した。端末1が、ベクトルに関しても、前回の組合せ最適化問題を表すベクトルと、最新ベクトルとの差分となる差分ベクトルを算出し、その差分ベクトルを圧縮してもよい。そして、端末1の問題送信部14は、圧縮後の差分行列および圧縮後の差分ベクトルをサーバ2に送信してもよい。そして、サーバ2は、圧縮後の差分ベクトルから差分ベクトルを復元し、復元された差分ベクトルと、前回の組合せ最適化問題を表すベクトルとに基づいて最新ベクトルを導出すればよい。なお、前述のように、ベクトルのデータ量は少ない。従って、前述の実施形態のように、端末1が最新ベクトルをそのままサーバ2に送信しても、端末1がサーバ2に圧縮後の差分行列を送信すれば、通信量を抑える効果は得られる。
 また、上記の実施形態では、差分行列の圧縮方式としてCSR方式、COO方式、第3の圧縮方式を示した。求解システムは、複数種類の圧縮方式の中から自動的に圧縮方式を選択してもよい。本変形例においても、組合せ最適化問題を表す行列αおよびベクトルβが繰り返し、端末1に入力される。差分行列圧縮部13は、最初の所定回数分(例えば、5回分)の入力ではそれぞれ、CSR方式、COO方式、第3の圧縮方式の各方式で差分行列を圧縮し、圧縮効率が最も高い圧縮結果を採用する。そして、問題送信部14は、圧縮後の差分行列、最新ベクトル、および、採用した圧縮結果に対応する圧縮方式を示す情報をサーバ2に送信する。サーバ2の差分行列復元部23は、その圧縮方式に対応する復元方法で、差分行列を復元すればよい。そして、最初の所定回数分(例えば、5回分)より後の入力では、最初の所定回数において最も採用回数が多かった圧縮方式で、差分行列を圧縮すればよい。
 また、上記の実施形態では、イジングモデルにおけるエネルギー関数が与えられることにより、組合せ最適化問題を表す行列αおよびベクトルβが与えられる場合を例にして説明した。組合せ最適化問題を表すことができるエネルギー関数として、QUBO(Quadratic Unconstrained Binary Optimization )におけるエネルギー関数を用いてもよい。
 QUBOは、個々のスピンの状態を“1”または“0”で表すモデルである。QUBOにおける“1”を、イジングモデルにおける“1”と同様に、第1の値と称することができる。また、QUBOにおける“0”を、イジングモデルにおける“-1”と同様に、第2の値と称することができる。
 組合せ最適化問題におけるエネルギーを表す式は、QUBOにおけるエネルギー関数に変換することもできる。この変換方法は公知である。また、イジングモデルにおけるエネルギー関数と、QUBOにおけるエネルギー関数とは、相互に変換可能である。
 QUBOにおけるエネルギー関数は、以下の式(3)のように表される。
Figure JPOXMLDOC01-appb-M000003
 式(3)におけるi,jは、いずれもスピンを表す変数である。また、式(3)におけるxは、スピンiの状態を表す変数であり、xは、スピンjの状態を表す変数である。式(3)におけるQijは、スピンiおよびスピンjの組合せに対応する定数である。iの取り得る値とjの取り得る値の組合せ毎に、Qijは定数として定められる。
 式(3)における定数Qijは、スピンの数をK個としたときに、K個存在する。そして、定数Qijの集合は、K行K列の行列で表される。すなわち、2つのスピンの組合せに対応する定数Qijは、K行K列の行列の要素である。この行列は、対称行列である。
 また、この行列は、前述の行列αと同様に、組合せ最適化問題を表す行列であると言える。式(3)のエネルギー関数が与えられれば、上記の行列も与えられることになる。なお、QUBOでは、ベクトルβのようなベクトルは与えられない。
 前述の実施形態において、K個の定数Qijを要素とする行列を適用してもよい。なお、この場合、QUBOではベクトルは与えられないので、前述の実施形態で説明したベクトルに関する処理は行わなくてよい。その他の点に関しては、前述の実施形態と同様である。
 次に、本発明の組合せ最適化問題情報送信装置1や組合せ最適化問題求解装置2を実現するコンピュータの構成例を説明する。組合せ最適化問題情報送信装置1と組合せ最適化問題求解装置2とは、別々のコンピュータによって実現される。しかし、この2つの装置を実現するためのコンピュータの構成は、いずれも図7に例示するように表すことができる。図7に例示するコンピュータ1000は、CPU1001と、主記憶装置1002と、補助記憶装置1003と、インタフェース1004と、通信インタフェース1005とを備える。
 組合せ最適化問題情報送信装置1として動作するコンピュータ1000では、補助記憶装置1003に組合せ最適化問題情報送信プログラムが記憶される。CPU1001は、そのプログラムを補助記憶装置1003から読み出し、そのプログラムを主記憶装置1002に展開し、そのプログラムに従って、上記の実施形態の組合せ最適化問題情報送信装置1の処理を実行する。
 組合せ最適化問題求解装置2として動作するコンピュータ1000では、補助記憶装置1003に組合せ最適化問題求解プログラムが記憶される。CPU1001は、そのプログラムを補助記憶装置1003から読み出し、そのプログラムを主記憶装置1002に展開し、そのプログラムに従って、上記の実施形態の組合せ最適化問題求解装置2の処理を実行する。
 補助記憶装置1003は、一時的でない有形の媒体の例である。一時的でない有形の媒体の他の例として、インタフェース1004を介して接続される磁気ディスク、光磁気ディスク、CD-ROM(Compact Disk Read Only Memory )、DVD-ROM(Digital Versatile Disk Read Only Memory )、半導体メモリ等が挙げられる。
 次に、本発明の概要について説明する。図8は、本発明の組合せ最適化問題情報送信装置の概要を示すブロック図である。組合せ最適化問題情報送信装置は、差分行列算出手段72と、差分行列圧縮手段73と、送信手段74とを備える。
 差分行列算出手段72(例えば、差分行列算出部12)は、前回、解を求めた組合せ最適化問題を表す第1の行列(例えば、前回行列)と、最新の組合せ最適化問題を表す第2の行列(例えば、最新行列)との差分となる差分行列を算出する。
 差分行列圧縮手段73(例えば、差分行列圧縮部13)は、差分行列を圧縮する。
 送信手段74(例えば、問題送信部14)は、組合せ最適化問題の解を求める組合せ最適化問題求解装置(例えば、サーバ2)に対して、圧縮後の差分行列を送信する。
 そのような構成によって、組合せ最適化問題情報送信装置から組合せ最適化問題求解装置に送信する情報の通信量を抑えることができる。
 また、差分行列圧縮手段73は、CSR方式で、差分行列を圧縮してもよい。
 また、差分行列圧縮手段73は、COO方式で、差分行列を圧縮してもよい。
 また、組合せ最適化問題は、第1の行列と第2の行列とを比較した場合に、ある行およびその行に対応する列の要素が異なり、他の要素が共通であるという性質を有する組合せ最適化問題であり、差分行列圧縮手段73は、第1の行列と第2の行列とで要素が異なっている行に対応する差分行列の行および当該行のインデックス、または、第1の行列と第2の行列とで要素が異なっている列に対応する差分行列の列および当該列のインデックスを、差分行列の圧縮結果として定めてもよい。
 図9は、本発明の組合せ最適化問題求解装置の概要を示すブロック図である。組合せ最適化問題求解装置は、行列記憶手段81と、受信手段82と、差分行列復元手段83と、行列導出手段84と、求解手段85と、解送信手段86とを備える。
 行列記憶手段81(例えば、前回行列記憶部21)は、前回、解を求めた組合せ最適化問題を表す第1の行列(例えば、前回行列)を記憶する。
 受信手段82(例えば、問題受信部22)は、組合せ最適化問題に関する情報を送信する組合せ最適化問題情報送信装置(例えば、端末1)から、第1の行列と、最新の組合せ最適化問題を表す第2の行列(例えば、最新行列)との差分となる差分行列の圧縮結果を受信する。
 差分行列復元手段83(例えば、差分行列復元部23)は、その圧縮結果から差分行列を復元する。
 行列導出手段84(例えば、最新行列導出部24)は、復元された差分行列と、第1の行列とに基づいて、第2の行列を導出する。
 求解手段85(例えば、求解部25)は、導出された第2の行列を用いて、組合せ最適化問題の解を求める。
 解送信手段86(例えば、解送信部26)は、その解を、組合せ最適化問題情報送信装置に送信する。
 以上、実施形態を参照して本願発明を説明したが、本願発明は上記の実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
産業上の利用の可能性
 本発明は、組合せ最適化問題情報送信装置が組合せ最適化問題に関する情報を組合せ最適化問題求解装置に送信し、組合せ最適化問題求解装置が組合せ最適化問題の解を求める求解システムに好適に適用される。
 1 端末(組合せ最適化問題情報送信装置)
 2 サーバ(組合せ最適化問題求解装置)
 11 前回行列記憶部
 12 差分行列算出部
 13 差分行列圧縮部
 14 問題送信部
 15 解受信部
 21 前回行列記憶部
 22 問題受信部
 23 差分行列復元部
 24 最新行列導出部
 25 求解部
 26 解送信部

Claims (10)

  1.  前回、解を求めた組合せ最適化問題を表す第1の行列と、最新の組合せ最適化問題を表す第2の行列との差分となる差分行列を算出する差分行列算出手段と、
     前記差分行列を圧縮する差分行列圧縮手段と、
     前記組合せ最適化問題の解を求める組合せ最適化問題求解装置に対して、圧縮後の差分行列を送信する送信手段とを備える
     ことを特徴とする組合せ最適化問題情報送信装置。
  2.  前記差分行列圧縮手段は、
     CSR(Compressed Sparse Row )方式で、差分行列を圧縮する
     請求項1に記載の組合せ最適化問題情報送信装置。
  3.  前記差分行列圧縮手段は、
     COO(COOdinate )方式で、差分行列を圧縮する
     請求項1に記載の組合せ最適化問題情報送信装置。
  4.  組合せ最適化問題は、前記第1の行列と前記第2の行列とを比較した場合に、ある行およびその行に対応する列の要素が異なり、他の要素が共通であるという性質を有する組合せ最適化問題であり、
     前記差分行列圧縮手段は、
     前記第1の行列と前記第2の行列とで要素が異なっている行に対応する差分行列の行および当該行のインデックス、または、前記第1の行列と前記第2の行列とで要素が異なっている列に対応する差分行列の列および当該列のインデックスを、差分行列の圧縮結果として定める
     請求項1に記載の組合せ最適化問題情報送信装置。
  5.  前回、解を求めた組合せ最適化問題を表す第1の行列を記憶する行列記憶手段と、
     組合せ最適化問題に関する情報を送信する組合せ最適化問題情報送信装置から、前記第1の行列と、最新の組合せ最適化問題を表す第2の行列との差分となる差分行列の圧縮結果を受信する受信手段と、
     前記圧縮結果から前記差分行列を復元する差分行列復元手段と、
     復元された差分行列と、前記第1の行列とに基づいて、前記第2の行列を導出する行列導出手段と、
     導出された前記第2の行列を用いて、前記組合せ最適化問題の解を求める求解手段と、
     前記解を、前記組合せ最適化問題情報送信装置に送信する解送信手段とを備える
     ことを特徴とする組合せ最適化問題求解装置。
  6.  組合せ最適化問題に関する情報を送信する組合せ最適化問題情報送信装置と、
     前記組合せ最適化問題の解を求める組合せ最適化問題求解装置とを備え、
     前記組合せ最適化問題情報送信装置は、
     前回、解を求めた組合せ最適化問題を表す第1の行列と、最新の組合せ最適化問題を表す第2の行列との差分となる差分行列を算出する差分行列算出手段と、
     前記差分行列を圧縮する差分行列圧縮手段と、
     前記組合せ最適化問題求解装置に対して、圧縮後の差分行列を送信する送信手段とを有し、
     前記組合せ最適化問題求解装置は、
     前記第1の行列を記憶する行列記憶手段と、
     前記組合せ最適化問題情報送信装置の前記送信手段から、前記圧縮後の差分行列を受信する受信手段と、
     前記圧縮後の差分行列から前記差分行列を復元する差分行列復元手段と、
     復元された差分行列と、前記第1の行列とに基づいて、前記第2の行列を導出する行列導出手段と、
     導出された前記第2の行列を用いて、前記組合せ最適化問題の解を求める求解手段と、
     前記解を、前記組合せ最適化問題情報送信装置に送信する解送信手段とを有する
     ことを特徴とする求解システム。
  7.  コンピュータが、
     前回、解を求めた組合せ最適化問題を表す第1の行列と、最新の組合せ最適化問題を表す第2の行列との差分となる差分行列を算出し、
     前記差分行列を圧縮し、
     前記組合せ最適化問題の解を求める組合せ最適化問題求解装置に対して、圧縮後の差分行列を送信する
     ことを特徴とする組合せ最適化問題情報送信方法。
  8.  コンピュータが、
     前回、解を求めた組合せ最適化問題を表す第1の行列を記憶し、
     組合せ最適化問題に関する情報を送信する組合せ最適化問題情報送信装置から、前記第1の行列と、最新の組合せ最適化問題を表す第2の行列との差分となる差分行列の圧縮結果を受信し、
     前記圧縮結果から前記差分行列を復元し、
     復元された差分行列と、前記第1の行列とに基づいて、前記第2の行列を導出し、
     導出された前記第2の行列を用いて、前記組合せ最適化問題の解を求め、
     前記解を、前記組合せ最適化問題情報送信装置に送信する
     ことを特徴とする組合せ最適化問題求解方法。
  9.  コンピュータに、
     前回、解を求めた組合せ最適化問題を表す第1の行列と、最新の組合せ最適化問題を表す第2の行列との差分となる差分行列を算出する差分行列算出処理、
     前記差分行列を圧縮する差分行列圧縮処理、および、
     前記組合せ最適化問題の解を求める組合せ最適化問題求解装置に対して、圧縮後の差分行列を送信する送信処理
     を実行させるための組合せ最適化問題情報送信プログラムを記録したコンピュータ読取可能な記録媒体。
  10.  コンピュータに、
     前回、解を求めた組合せ最適化問題を表す第1の行列を記憶する行列記憶処理、
     組合せ最適化問題に関する情報を送信する組合せ最適化問題情報送信装置から、前記第1の行列と、最新の組合せ最適化問題を表す第2の行列との差分となる差分行列の圧縮結果を受信する受信処理、
     前記圧縮結果から前記差分行列を復元する差分行列復元処理、
     復元された差分行列と、前記第1の行列とに基づいて、前記第2の行列を導出する行列導出処理、
     導出された前記第2の行列を用いて、前記組合せ最適化問題の解を求める求解処理、および、
     前記解を、前記組合せ最適化問題情報送信装置に送信する解送信処理
     を実行させるための組合せ最適化問題求解プログラムを記録したコンピュータ読取可能な記録媒体。
PCT/JP2020/031450 2020-08-20 2020-08-20 組合せ最適化問題情報送信装置および組合せ最適化問題求解装置 WO2022038743A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
PCT/JP2020/031450 WO2022038743A1 (ja) 2020-08-20 2020-08-20 組合せ最適化問題情報送信装置および組合せ最適化問題求解装置
JP2022543222A JP7405264B2 (ja) 2020-08-20 2020-08-20 組合せ最適化問題情報送信装置および組合せ最適化問題求解装置
US18/020,526 US20230306074A1 (en) 2020-08-20 2020-08-20 Combinatorial optimization problem information transmission device and combinatorial optimization problem solution device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2020/031450 WO2022038743A1 (ja) 2020-08-20 2020-08-20 組合せ最適化問題情報送信装置および組合せ最適化問題求解装置

Publications (1)

Publication Number Publication Date
WO2022038743A1 true WO2022038743A1 (ja) 2022-02-24

Family

ID=80323543

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2020/031450 WO2022038743A1 (ja) 2020-08-20 2020-08-20 組合せ最適化問題情報送信装置および組合せ最適化問題求解装置

Country Status (3)

Country Link
US (1) US20230306074A1 (ja)
JP (1) JP7405264B2 (ja)
WO (1) WO2022038743A1 (ja)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120130928A1 (en) * 2010-11-18 2012-05-24 International Business Machines Corporation Efficient storage of individuals for optimization simulation
JP2016197389A (ja) * 2015-04-03 2016-11-24 株式会社デンソーアイティーラボラトリ 学習システム、学習プログラムおよび学習方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120130928A1 (en) * 2010-11-18 2012-05-24 International Business Machines Corporation Efficient storage of individuals for optimization simulation
JP2016197389A (ja) * 2015-04-03 2016-11-24 株式会社デンソーアイティーラボラトリ 学習システム、学習プログラムおよび学習方法

Also Published As

Publication number Publication date
US20230306074A1 (en) 2023-09-28
JPWO2022038743A1 (ja) 2022-02-24
JP7405264B2 (ja) 2023-12-26

Similar Documents

Publication Publication Date Title
CN110506260B (zh) 用于神经网络环境中的增强数据处理的方法、系统和介质
AU2022203061B2 (en) Updating attribute data structures to indicate joint relationships among attributes and predictive outputs for training automated modeling systems
AU2020202542B2 (en) Transforming attributes for training automated modeling systems
US11580441B2 (en) Model training method and apparatus
JP6998968B2 (ja) ディープニューラルネットワークの実行方法、実行装置、学習方法、学習装置及びプログラム
Constantine et al. Tall and skinny QR factorizations in MapReduce architectures
CN113221183B (zh) 实现隐私保护的多方协同更新模型的方法、装置及系统
WO2018107383A1 (zh) 神经网络的卷积运算方法、装置及计算机可读存储介质
EP3889829A1 (en) Integrated clustering and outlier detection using optimization solver machine
CN113610240A (zh) 利用嵌套机器学习模型来执行预测的方法及系统
CN112364942B (zh) 信贷数据样本均衡方法、装置、计算机设备及存储介质
CN112381216A (zh) 混合图神经网络模型的训练、预测方法和装置
JPWO2020071187A1 (ja) 秘密シグモイド関数計算システム、秘密ロジスティック回帰計算システム、秘密シグモイド関数計算装置、秘密ロジスティック回帰計算装置、秘密シグモイド関数計算方法、秘密ロジスティック回帰計算方法、プログラム
WO2022091408A1 (ja) 求解方法選択装置および方法
WO2022038743A1 (ja) 組合せ最適化問題情報送信装置および組合せ最適化問題求解装置
CN110674181B (zh) 信息推荐方法、装置、电子设备及计算机可读存储介质
Barrios et al. Harvest management problem with a fractional logistic equation
WO2023061329A1 (zh) 应用于计算机集群的通信方法及通信装置
CN116737373A (zh) 负载均衡方法、装置、计算机设备、存储介质
CN110800034B (zh) 秘密计算系统、秘密计算装置、秘密计算方法、程序以及记录介质
US11580195B1 (en) Quantum modulation-based data compression
EP3096308A1 (en) Element replication device, element replication method, and program
EP4276623A1 (en) Sorting device and method
US11663289B1 (en) Quantum modulation-based data search
JP6977877B2 (ja) 因果関係推定装置、因果関係推定方法および因果関係推定プログラム

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 20950308

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2022543222

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 20950308

Country of ref document: EP

Kind code of ref document: A1