WO2022113720A1 - 情報処理装置、情報処理方法及び情報処理システム - Google Patents

情報処理装置、情報処理方法及び情報処理システム Download PDF

Info

Publication number
WO2022113720A1
WO2022113720A1 PCT/JP2021/041071 JP2021041071W WO2022113720A1 WO 2022113720 A1 WO2022113720 A1 WO 2022113720A1 JP 2021041071 W JP2021041071 W JP 2021041071W WO 2022113720 A1 WO2022113720 A1 WO 2022113720A1
Authority
WO
WIPO (PCT)
Prior art keywords
decoding
information
combinatorial optimization
unit
information processing
Prior art date
Application number
PCT/JP2021/041071
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 CN202180077799.2A priority Critical patent/CN116457780A/zh
Priority to EP21897695.9A priority patent/EP4235526A4/en
Priority to JP2022565198A priority patent/JPWO2022113720A1/ja
Priority to US18/253,219 priority patent/US20230409374A1/en
Publication of WO2022113720A1 publication Critical patent/WO2022113720A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/466Transaction processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/01Dynamic search techniques; Heuristics; Dynamic trees; Branch-and-bound
    • 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
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N7/00Computing arrangements based on specific mathematical models
    • G06N7/01Probabilistic graphical models, e.g. probabilistic networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N10/00Quantum computing, i.e. information processing based on quantum-mechanical phenomena
    • G06N10/60Quantum algorithms, e.g. based on quantum optimisation, quantum Fourier or Hadamard transforms

Definitions

  • This disclosure relates to an information processing device, an information processing method, and an information processing system.
  • Quantum annealing is known as a calculation method that accelerates combinatorial optimization, which is difficult to calculate.
  • a method of realizing maximum likelihood decoding of a block code which is known as one of difficult combinatorial optimization problems, at high speed by using quantum annealing (for example, Non-Patent Document 1).
  • Non-Patent Document 1 the most probable decoding of the block code can be converted into the basis spin search problem of the Ising model handled by quantum annealing. Therefore, according to Non-Patent Document 1, quantum annealing can be used to speed up maximum likelihood decoding, which is difficult to calculate.
  • the actual quantum annealing machine that can be used at present that is, the quantum annealing
  • the quantum annealing is required to have an extremely low temperature environment as an operating environment. Therefore, a large-scale cooling system is required, and it is difficult to use it in a mobile terminal, for example.
  • Non-Patent Document 1 The reason why the current quantum annealer operates only at low temperature is that it requires a superconducting device to realize the spin of the Ising model. However, according to the method in Non-Patent Document 1, it is sufficient that the spin ground state of the Ising model can be realized at high speed, and it is not always necessary to use quantum annealing, which requires a superconducting device.
  • the information processing apparatus has the second information required for the process formulated as the combination optimization problem from the first information input to the system. And input the extracted second information to calculate the objective function of the combination optimization problem, input the objective function, and output the solution of the combination optimization problem at least two processors. , And one of the at least two processors is a processor that outputs the solution of the combination optimization problem.
  • quantum annealing which realizes quantum annealing as hardware, is a computer that solves combinatorial optimization problems as a search problem for the ground state of the Zing model.
  • An example of the device configuration of the quantum annealing is described in detail in FIG. 12 and the like.
  • the Ising model is a mathematical model that explains the phase transition of ferromagnetism by the principle of energy minimization. Although detailed description is omitted, the Ising model is a physical model proposed for modeling the phase transition phenomenon of a ferromagnet (magnet). The energy of the Ising model is generally expressed by a function as shown in the following equation (1).
  • the spin variable s ⁇ ⁇ -1,1 ⁇ N of the Ising model is a variable that takes two values.
  • J ij is a coefficient representing the binding energy
  • h k is a coefficient representing the local magnetic field.
  • the objective function must be in the form of the above-mentioned function (for example, equation (1)). That is, the unknown variable is either -1,1 and the objective function is represented by the quadratic or lower term of the unknown variable.
  • the coefficients of the linear and quadratic terms can be extracted as the coefficients of the Ising model. Then, when the coefficient of the obtained Ising model is input to the quantum annealer, the quantum Annealer outputs an array of spin variables in the ground state of the corresponding Ising model. The solution of this spin variable can be used as the solution of the original combinatorial optimization problem.
  • QUADO is an abbreviation for Quadratic Unconstrained Binary Optimization.
  • the purpose of the present disclosure is to solve the base search problem of the Ising model corresponding to the original combinatorial optimization problem by a binary code decoding algorithm.
  • the Ising model is first converted to QUA.
  • QUABO means to find the solution of the binary variable z ⁇ ⁇ 0,1 ⁇ N that minimizes the objective function as shown in the following equation (2).
  • the binary variable and the spin variable can be related as shown in the following equation (3).
  • the energy function of the Ising model can be equivalently transformed into the objective function of QUAB, for example, as shown in equation (4) below.
  • the energy function of the Ising model can be converted into the objective function of QUA by the conversion between the coefficients as shown in the following equation (5).
  • the ground state search of the Ising model is realized by solving a QUA with a coefficient converted from the coefficient of the Ising model.
  • QUAB is converted into a binary code decoding problem, specifically, a maximum likelihood decoding problem.
  • the binary code decoding problem is a problem of searching for a bit string that minimizes the likelihood based on the signal sequence under the condition that the parity check matrix and the signal sequence are given.
  • Non-Patent Document 1 "Maximum Likelihood Channel Decoding with Quantum Annealing Machine (Japanese translation: maximum likelihood decoding of communication path by quantum annealing): ⁇ https://arxiv.org/abs/2007.08689>", the code The key is to eliminate mod2, which frequently appears in theory.
  • QUABO is brought closer to the decoding problem.
  • r 2 a vector obtained by arranging these two pseudo signal sequences side by side will be simply referred to as a pseudo signal sequence r.
  • auxiliary variable z ij mod2 (z i + z j ) so that the sum of squared errors for the two introduced pseudo signal sequences can be expressed in the same format.
  • this auxiliary variable z ij is also a binary variable that takes only either 0 or 1.
  • the objective function is transformed into the form of the sum of squared errors as shown in the following equation (16).
  • each element of the first pseudo signal string and the second pseudo signal string is the element of the first code string and the second code string, respectively. It is expressed as a square error.
  • the two -dimensional vector is the second code string.
  • the following equation (17) shows the first code string
  • the expression (18) shows the second code string.
  • a vector obtained by arranging these two code strings is simply referred to as a code string.
  • the following equation (19) shows a code string.
  • This minimization of the objective function is in the form of least squares. In other words, it is equivalent to maximum likelihood decoding (when the noise of the communication path is constant).
  • which is a parameter in the equation (20), is set to a value larger than 1, for example, in order to give priority to satisfying the constraint.
  • mod2 (z i + z j + z ij ) is expressed by a parity check matrix that often appears in the code.
  • M N 2
  • K N + M
  • the binary matrix H of M ⁇ K is a sparse matrix in which the i, j columns and N + Ni + j columns in the Ni + j row are 1 and the others are 0.
  • This binary matrix is composed of a first binary sparse matrix of M ⁇ N and a second binary sparse matrix of M ⁇ N 2 (in other words, an identity matrix).
  • this M ⁇ K binary sparse matrix H is called a pseudo-parity check matrix.
  • the code decoding problem is a parity-constrained maximum likelihood decoding problem using a parity check matrix.
  • the parity check matrix may be composed of the coefficients of the objective function, or may be read from a predetermined storage device such as a database.
  • the parity check matrix H is a sparse matrix
  • x corresponding to the code word may be regarded as a code word of LDPC (Low Density Parity-check Code) using a sparse parity check matrix. Therefore, by applying the BP decoding algorithm of LDPC, the solution x of the maximum likelihood decoding is approximately obtained.
  • the decoding process by the belief propagation method is the decoding process for the low density parity check code.
  • the first N bits of the obtained solution x are the binary variables z. Therefore, this (that is, the first N bits of the obtained solution x) is regarded as the optimum solution z * of QUABO. Since this solution is a binary variable, it is converted as shown in the following equation (24) so as to be a spin variable in the ground state of the Ising model.
  • BP decoding algorithm by the belief propagation (BP) method
  • BP decoding algorithm by the belief propagation (BP) method
  • maximum likelihood decoding for example, maximum likelihood decoding of a block code
  • the BP decoding approaches the maximum likelihood decoding performance while performing decoding in a practical time as the code length becomes longer (for example, 1000 bits or more). That is, when the number of variables is relatively large, replacing the maximum likelihood decoding with the BP decoding can obtain the same performance as the maximum likelihood decoding in practical time.
  • the first condition is that the parity check matrix is a sparse matrix.
  • the first condition is that the parity check matrix has 10 or less non-zero components in each row and each column.
  • the second condition is that there is no short loop in the factor graph.
  • the second condition is that there are no loops of length 4 or 5 in the factor graph.
  • the algorithm shown here is, for example, an algorithm that performs the following procedures # 1-1 to # 1-6.
  • Procedure # 1-1 Input the received signal r, estimated noise intensity ⁇ , and parity check matrix H.
  • Procedure # 1-2 Initialize messages ⁇ and ⁇ ⁇ Procedure # 1-3.
  • Steps # 1-6 Output bit string m: (H, r, ⁇ , ⁇ ) ⁇ m
  • variable node processing is responsible for embedding the information obtained from the signal in the message.
  • the received signal r is first converted into log odds ⁇ and treated.
  • the odds are the ratio of the probabilities (posterior probabilities) as to whether the received signal is noise-added with code 0 or noise is added to code 1.
  • the logarithmic odds are calculated by the following equation (25) by assuming that the noise is Gaussian noise having a standard deviation ⁇ .
  • the log odds may be set to, for example, a value of around 1.
  • the variable node processing updates the message ⁇ based on the following equations (26) and (27).
  • ⁇ i has an initial value of 0.
  • is input and ⁇ is output, but in the present disclosure, for convenience of implementation, ⁇ and ⁇ are input and ⁇ and ⁇ are output.
  • the check node processing is responsible for embedding the condition of the parity constraint in the message.
  • the check node process updates the message ⁇ based on the following equations (28) and (29).
  • ⁇ and ⁇ are input and ⁇ and ⁇ are output.
  • the logarithmic odds excluding the parity part take a positive or negative value, but the positive case corresponds to the original sign bit 0 and the negative case corresponds to 1.
  • the memory and the number of calculations may be reduced by utilizing the sparseness of the parity check matrix. For example, as in the sparse matrix operation, the memory and the number of calculations can be reduced by holding only the index and value of the non-zero element in the memory and multiplying and adding only the non-zero element.
  • the size of the pseudo signal and the pseudo parity check matrix is reduced by some measures.
  • the decoding process is reduced in weight by the following ingenuity # 1 and ingenuity # 2. ⁇ Ingenuity # 1. Size reduction and ingenuity using QUAS symmetry # 2. Modification of BP decoding process using the unique structure of the pseudo-parity check matrix
  • a pseudo-signal column that uses the symmetry of the coefficient matrix of QUAO, or a pseudo-parity check matrix is a vector or matrix that skips some rows and columns from the original pseudo-parity check matrix that does not use symmetry. ..
  • the first Ni + 1 row of the original pseudo-parity check matrix is the row corresponding to the diagonal component of the coefficient matrix Q, it is not a quadratic term and may be omitted. Similarly, the Nth row may be omitted. The + Ni + 1 column may also be omitted.
  • the Ni + j row and the Nj + i row either one (for example, the one with the smaller value) may be omitted due to the symmetry of the coefficient matrix Q.
  • the corresponding column of the N + Ni + j column and the N + Nj + i column is omitted, and for r and x, of the N + Ni + j row and the N + Nj + i row. Omit the corresponding line.
  • the index of the column skipped here is also skipped in the pseudo signal column.
  • the 9-by-12 matrix H 3 may be a 3-by-6 matrix as shown in the following equation (36).
  • the size can be reduced to 1/4 or less compared to the original size.
  • the N + Ni + j column may be omitted, but in this case, the N + Ni + j rows of r and x are also omitted.
  • the pseudo-parity check matrix is a matrix in which the first binary matrix corresponding to the first bit string and the second binary matrix corresponding to the second bit string are connected in the row direction. Also, the second binary matrix is the dominant part of the matrix size, which is the identity matrix.
  • the transformation processing algorithm is, for example, an algorithm that performs the following procedure # 2-1 to procedure # 2-6.
  • Procedure # 2-1 Input the received signal r, noise parameter ⁇ , and core H c of the parity check matrix H.
  • Procedure # 2-2 Execute variable node processing: (H, r, ⁇ , ⁇ (1) , ⁇ (2) ) ⁇ ⁇ (1) , ⁇ (2) ⁇ Procedure # 2-3.
  • steps # 2-2 to # 2-3 until the specified conditions are repeated, and the bit string m is output: (H, r, ⁇ , ⁇ ) ⁇ m
  • variable node processing of the transformation processing is performed using, for example, the following equations (39) and (40).
  • check node processing of the transformation processing is performed using, for example, the following equation (41).
  • Ising decoder An Ising decoder will be described as an example of an apparatus that performs the processing related to the present disclosure.
  • the Ising decoder is a computer that inputs the coefficient matrix of the Ising model and outputs the solution of the spin variable in the ground state.
  • the Ising decoder may be the information processing apparatus 100 described later.
  • the process of inputting the coefficient matrix of the Ising model and outputting the solution of the spin variable in the ground state may be referred to as the Ising decoding process.
  • the Ising decoder processes the Ising model to QUABO conversion (hereinafter also referred to as "Ising model-QUABO conversion”), the QUABO to decoding problem conversion unit (hereinafter also referred to as "QUABO-decoding problem conversion”), BP decoding, and variable transformation.
  • the Ising decoder has an Ising model-QUAB conversion unit that performs Ising model QUABO conversion, a QUABO-decoding problem conversion unit that performs QUABO-decoding problem conversion, a BP decoding unit that performs BP decoding, and a variable transformation unit that performs variable conversion. It has a part.
  • the above module configuration (block configuration) is only an example, and the Ising decoder module configuration may be any configuration.
  • FIG. 1 is a flowchart showing an example of the information processing procedure of the present disclosure.
  • the Ising decoder performs various processes shown in FIG. 1 will be described as an example.
  • each process shown below is not limited to the order of step numbers, and may be performed in any order as long as the processes are possible. First, the outline of the entire process will be described with reference to FIG. 1, and then the details of each process will be described.
  • the Ising decoder accepts inputs of coefficient matrices J and h (step S1).
  • the coefficient matrix of the Ising model is input to the Ising decoder.
  • the Ising decoder performs Ising model-QUAB conversion (step S2).
  • the Ising decoder executes a process of converting an Ising model into a QUAO format by a process related to coefficient matrix or binary variable transformation. That is, the Ising model-QUAB conversion is a process of converting the coefficient of the energy function of the Ising model into the coefficient of the objective function in the QUABO format.
  • the Ising decoder performs QUAO-decoding problem conversion (step S3).
  • the Ising decoder executes a process of converting the QUAO format into the format of the decoding problem by using the information regarding the signal sequence, the code string, the parity check matrix, and the like. That is, the QUAB-decoding problem conversion is a process of converting into an input signal string of a decoding problem having a code equivalent to the combinatorial optimization problem based on the objective function in the QUABO format.
  • the Ising decoder performs BP decoding (step S4).
  • the Ising decoder performs BP decoding, which is a decoding algorithm using the belief propagation method.
  • the Ising decoder determines the spin variable (step S5).
  • the Ising decoder uses information about combinatorial variables to determine spin variables. That is, the BP decoding is a process of processing a decoding problem based on an input signal string, acquiring a code string, converting the code string into a solution of a combinatorial optimization problem, and outputting the code string.
  • BP decoding is configured by a decoding algorithm by the belief propagation method, and decodes a code string from an input signal sequence and a parity check matrix based on a decoding process by the belief propagation method, which will be described in detail later.
  • the Ising decoder outputs the spin variable s (step S6).
  • the Ising decoder may transmit, for example, information indicating the spin variable s to another device (for example, the terminal 51 in FIG. 11), or the information indicating the spin variable s may be transmitted to the screen (for example, the terminal 51, etc.). It may be displayed on the display unit 150 or the like in FIG.
  • the above-mentioned output mode is only an example, and the output may be to generate a processing result.
  • details of each process shown in FIG. 1 will be described.
  • the QUAB-decoding problem conversion includes processing of pseudo signal generation and pseudo parity check matrix generation.
  • the QUAB-decoding problem conversion unit is composed of a pseudo signal generation unit and a pseudo parity check matrix generation unit.
  • FIG. 2 is a flowchart showing an example of a processing procedure for generating a pseudo signal.
  • the pseudo signal generation unit of the Ising decoder performs various processes shown in FIG. 2 will be described as an example.
  • the pseudo signal generation unit of the Ising decoder accepts the input of the QUABO coefficient matrix Q (step S11). For example, a coefficient matrix of QUABO is input to the pseudo signal generation unit.
  • the pseudo signal generation unit generates the first signal sequence (step S12). Further, the pseudo signal generation unit generates a second signal train (step S13). Then, the pseudo signal generation unit makes a series connection (step S14). Then, the pseudo signal generation unit outputs a signal sequence (step S15).
  • First signal string generation (first signal string generation block) By generating the first signal train, the QUAO coefficient matrix Q is input and the first signal train r 1 is output.
  • the first signal sequence r 1 is a vector of length N.
  • Second signal string generation (second signal string generation block) It is a block that inputs the QUAO coefficient matrix Q and outputs the second signal sequence r 2 by generating the second signal sequence.
  • M 1 / 2N (N-1).
  • the second signal sequence may be a vector that is half the number of off-diagonal non-zero components of Q.
  • the first signal sequence r 1 and the second signal sequence r 2 are connected, and a pseudo signal sequence r is generated. In this way, the first signal sequence r 1 and the second signal sequence r 2 are connected to form a pseudo signal sequence r.
  • FIG. 3 is a flowchart showing an example of a processing procedure for generating a pseudo-parity check matrix.
  • the pseudo-parity check matrix generation unit of the Ising decoder performs various processes shown in FIG. 3 will be described as an example.
  • the Ising decoder pseudo-parity check matrix generation accepts an input of size N (step S21). For example, a coefficient matrix of QUABO is input to the pseudo-parity check matrix generation. Then, the pseudo-parity check matrix generation secures the memory of the parity check matrix (step S22). In the pseudo-parity check matrix generation, numerical substitution of the parity check matrix is performed (step S23). Then, in the pseudo-parity check matrix generation, the core output of the parity check matrix is performed (step S24).
  • the pseudo-parity check matrix is an algorithm that performs the following procedures # 3-1 to # 3-5.
  • BP decryption By BP decoding, the pseudo signal string r and the pseudo parity check matrix H are input, and the pseudo decoding bit string z is output.
  • an algorithm based on belief propagation (BP) is used for decoding.
  • decoding Although the word “decoding” is used here, there may be no coding process corresponding to the process called "decoding”.
  • decoding there may be no coding process corresponding to the process called "decoding”.
  • BP decoding performs log odds calculation, variable node processing, check node processing, and bit string extraction processing.
  • the BP decoding unit includes a logarithmic odds calculation unit that performs log odds calculation, a variable node processing unit that performs variable node processing, a check node processing unit that performs check node processing, and a bit string extraction unit that performs bit string extraction. ..
  • the block configuration is only an example, and the block configuration for BP decoding may be any configuration.
  • FIG. 4 is a diagram showing a first example of the decoding process.
  • the BP decoding unit of the Ising decoder performs various processes shown in FIG. 4 will be described as an example.
  • the BP decoding unit of the Ising decoder accepts a signal input (step S31). For example, the received signal r and the parity check matrix H are input to the BP decoding unit.
  • the BP decoding unit calculates the log odds (step S32). For example, the BP decoding unit calculates log odds by calculating code odds based on a noise model. For example, the BP decoding unit calculates the log odds o from the received signal r.
  • the BP decoding unit performs variable node processing (step S33). For example, the BP decoding unit performs variable node processing by calculating the belief a. For example, the BP decoding unit performs variable node processing by calculating the belief a from the parity check matrix H, the log odds o, and the belief b.
  • the BP decoding unit performs the check node process (step S34). For example, the BP decoding unit performs the check node process by calculating the belief b. For example, the BP decoding unit performs the check node process by calculating the belief b from the parity check matrix H and the belief a.
  • the BP decoding unit repeats steps S33 and S34.
  • the BP decoding unit extracts the bit string (step S35).
  • the BP decoding unit performs bit string extraction by calculating the bit string z from the logarithmic odds o and the belief a.
  • the bit string is acquired by inputting the pseudo signal and the pseudo parity check matrix by using the configuration of BP decoding as it is.
  • the BP decoding of the first example is an algorithm that performs the following procedures # 4-1 to # 4-6.
  • Procedure # 4-1 Input the received signal r and the parity check matrix H ⁇ Procedure # 4-2. Logarithmic odds o calculation from received signal r ⁇ Procedure # 4-3. Initialize forward / backward beliefs a and b-Procedure # 4-4. Variable node processing: (H, o, b)-> a ⁇ Procedure # 4-5. Check node processing: (H, a)-> b ⁇ Procedure # 4-6. Specified condition repeat, bit string z output: (o, a)-> z
  • the pseudo-parity check matrix is a sparse parity check matrix with a row weight of 3 and a column weight of 2. For this reason, sparse matrix operations (holding non-zero elements and their indexes in memory and using them for operations) are used to speed up and save memory.
  • the minimum value of the loop in the factor graph is 6, which is relatively large in size and has outstanding sparseness. Therefore, the above-mentioned pseudo-parity check matrix is a parity check matrix that can be expected to have good decoding performance.
  • the second example is BP decoding that takes advantage of the structural features of the pseudo-parity check matrix.
  • BP decoding executes log odds calculation, variable node processing # 1, variable node processing # 2, check node processing X, and bit string extraction processing.
  • the second example is a configuration utilizing the fact that the structure of the pseudo-parity check matrix is composed of two matrices.
  • the BP decoding unit includes a logarithmic odds calculation unit that performs logarithmic odds calculation, a variable node processing unit that performs variable node processing # 1 and variable node processing # 2, a check node processing unit that performs check node processing X, and a bit string. It is provided with a bit string extraction unit for extracting.
  • the block configuration is only an example, and the block configuration for BP decoding may be any configuration.
  • FIG. 5 The flow of BP decoding in the second example will be described with reference to FIG. It is a figure which shows the 2nd example of a decoding process.
  • a case where the BP decoding unit of the Ising decoder performs various processes shown in FIG. 5 will be described as an example. The same points as in FIG. 4 will be omitted as appropriate.
  • the BP decoding unit of the Ising decoder accepts a signal input (step S41). For example, the received signals r1 and r2 and the inspection matrix Hc are input to the BP decoding unit.
  • the BP decoding unit calculates the log odds (step S42). For example, the BP decoding unit calculates the log odds o1 from the received signal r1.
  • the BP decoding unit performs variable node processing # 1 (step S43). For example, the BP decoding unit performs the variable node process # 1 by calculating the belief a1. For example, the BP decoding unit performs variable node processing # 1 by calculating belief a1 from the check matrix Hc, log odds o1, and belief b1.
  • the BP decoding unit calculates the log odds (step S44). For example, the BP decoding unit calculates the log odds o2 from the received signal r2.
  • the BP decoding unit performs variable node processing # 2 (step S45). For example, the BP decoding unit performs variable node processing # 2 by calculating the belief a2. For example, the BP decoding unit performs variable node processing # 2 by calculating belief a2 from log odds o2 and belief b2.
  • the BP decoding unit performs the check node process X (step S46). For example, the BP decoding unit performs the check node process X by calculating the beliefs b1 and b2. For example, the BP decoding unit performs the check node process X by calculating the beliefs b1 and b2 from the beliefs a1 and a2.
  • the BP decoding unit repeats steps S42 to S46. It should be noted that steps S42 to S46 are for explaining each process, and may be performed in any order as long as the processes are possible. For example, the processes of steps S44 and S45 may be performed in parallel with the processes of steps S42 and S43, or may be performed before the processes of steps S42 and S43.
  • the BP decoding unit extracts the bit string (step S45). For example, the BP decoding unit extracts the bit string by calculating the bit string z1, that is, the bit string z from the log odds o1 and the belief a1.
  • the signal and the binary variable are treated separately as a variable derived from the original binary variable and a variable derived from a pair of two binary variables.
  • the BP decoding of the second example is an algorithm that performs the following procedures # 5-1 to # 5-7.
  • the memory that must be retained can be reduced. Further, in the case of the second example, it is possible to reduce the operation in which zero appears.
  • spin variable determination By determining the spin variable, the decoding bit series is input and the spin variable array is output.
  • the program shown below is, for example, a program for executing the process having the same name among the processes shown in the second embodiment.
  • the program shown below is a program for executing the above-mentioned Ising decoding process.
  • the program shown below is executed by the above-mentioned Ising decoder (for example, information processing apparatus 100 or the like).
  • the main function shown below is an example of a function (program) that inputs the coefficient matrix of the Ising model and outputs the basis spin coordination.
  • ising_decoder which is the main function, is a function (program) that inputs the coefficient matrices J and h of the rising model and outputs the spin variables s.
  • Ising_decoder is the main function for executing Ising decoding processing.
  • Ising model-QUAB conversion [3-2. Ising model-QUAB conversion]
  • a function that executes the Ising model-QUAB conversion (also referred to as "Ising model-QUAB conversion function") is shown below.
  • the Zing model-QUAB conversion function shown below is an example of a function (program) that inputs the coefficient matrix of the Zing model and outputs the coefficient matrix of QUA.
  • the above function diag (x) is a function that creates a diagonal matrix with the input vector x as a diagonal component. For example, it can be used with numpy, one of the libraries of the programming language python.
  • the member function transpose () of the matrix Q is a function that creates the transposed matrix of Q. If Q is a complex matrix, it is a function that creates a conjugate transpose of Q. This function is also available in numpy.
  • ising_to_qubo which is a Rising model-QUAB conversion function
  • ising_to_qubo is a function (program) which inputs the coefficient matrices J and h of the Rising model and outputs the coefficient matrix Q of the QUA.
  • Ising_to_qubo corresponds to the function described in the first line in the above “ising_decoder” which is the main function.
  • QUA-Decryption problem conversion [3-3. QUA-Decryption problem conversion]
  • a function (also referred to as a "QUABO-decoding problem conversion function") for executing the QUAB-decoding problem conversion is shown below.
  • the QUAB-decoding problem conversion function shown below is an example of a function (program) that inputs a coefficient matrix of QUABO and outputs a signal sequence, a code string, and a parity check matrix in the decoding problem.
  • qubo_to_decoding which is a QUABO-decoding problem conversion function is a function (program) which inputs a coefficient matrix Q of QUABO and outputs, for example, a signal string r and a parity check matrix H.
  • Qubo_to_decoding corresponds to the function described in the second line in the above “ising_decoder” which is the main function.
  • BP decoding function of the first example uses a pseudo-parity check matrix (H in the BP decoding function of the first example below) and a pseudo signal sequence (r in the BP decoding function of the first example below).
  • H in the BP decoding function of the first example below uses a pseudo-parity check matrix (H in the BP decoding function of the first example below) and a pseudo signal sequence (r in the BP decoding function of the first example below).
  • H in the BP decoding function of the first example uses a pseudo-parity check matrix (H in the BP decoding function of the first example below) and a pseudo signal sequence (r in the BP decoding function of the first example below).
  • r in the BP decoding function of the first example uses a pseudo-parity check matrix (H in the BP decoding function of the first example below) and a pseudo signal sequence (r in the BP decoding function of the first example below).
  • This is an example of a function (program) that inputs and outputs
  • bp_decoding_v1 which is the BP decoding function of the first example is a function (program) which inputs, for example, a pseudo signal string r and a pseudo parity check matrix H and outputs a bit string z.
  • “Bp_decoding_v1” is a function used as the function "bp (H, r)" described in the third line in the above “ising_decoder” which is the main function.
  • BP decoding function of the second example a function that executes BP decoding of the second example (also referred to as "BP decoding function of the second example") is shown below.
  • the BP decoding function of the second example shown below is the core part of the pseudo-parity check matrix (Hc in the BP decoding function of the second example below) and the pseudo signal sequence (the BP decoding function of the second example below).
  • Hc pseudo-parity check matrix
  • the pseudo signal sequence the BP decoding function of the second example below.
  • This is an example of a function (program) that inputs r1 and r2) and outputs the code string decoded by the extended BP decoding.
  • lodds1 calc_log_odds (r1)
  • lodds2 calc_log_odds (r2)
  • beta update_check_node (Hc, lodds1, alpha)
  • alpha update_variable_node_v2 (Hc, lodds2, beta)
  • z get_solution (alpha) return z
  • bit_decoding_v2 which is the BP decoding function of the second example is a function (program) which inputs, for example, the pseudo signal sequence r1 and r2 and the matrix Hc of the core part of the pseudo parity check matrix and outputs the bit string z. ..
  • Bp_decoding_v2 is a function used as the function "bp (H, r)" described in the third line in the above “ising_decoder" which is the main function.
  • the information processing apparatus 100 stores the above-mentioned program (function) and the program (function) called by each program in the storage unit 120 (see FIG. 17), and executes the process using each program.
  • FIG. 6 is a diagram showing an example of the configuration of the information processing system.
  • the information processing system 1 includes a database 2, an application CPU (Central Processing Unit) 3, a combination optimization memory 4, and a combination optimization processing CPU 5 (also referred to as a combination optimization processing unit).
  • the singing model memory 6, the singing decoder 7, and the decoding processing memory 8 are included as components.
  • the combination optimization memory 4, the combination optimization processing CPU 5, and the Ising model memory 6 may be collectively referred to as a combination optimization conversion unit 10.
  • each component of the database 2, the application CPU 3, the combination optimization memory 4, the combination optimization processing CPU 5, the rising model memory 6, the rising decoder 7, and the decoding processing memory 8 is regarded as one device. It may be configured or may be configured as a plurality of devices. When configured as one device, for example, each component is communicably connected by an arbitrary signal line such as a bus.
  • the information processing system 1 may include a first device having a combinatorial optimization conversion unit 10 and a second device having an Ising decoder 7.
  • the information processing system 1 includes a data server device having a database 2, an application CPU 3, a first device (optimization processing device) having a combination optimization conversion unit 10, a rising decoder 7, and a decoding processing memory 8. It may include three devices of the second device (for example, the information processing device 100) having the same.
  • the above configuration is only an example, and any configuration can be adopted as the device configuration of the information processing system 1.
  • the information processing system 1 is a system for realizing an application including combinatorial optimization.
  • applications include line code coding / decoding, compressed sensing, super-resolution, and the like.
  • the combinatorial optimization contained in the application is maximum likelihood decoding or l0 norm minimization, respectively.
  • each component of the information processing system 1 will be described.
  • the application CPU 3 is a CPU (processing unit) that controls the entire application.
  • the application CPU 3 is not limited to the CPU, but is realized by, for example, another processing device (processor) such as a GPU (Graphics Processing Unit), an integrated circuit such as an ASIC (Application Specific Integrated Circuit) or an FPGA (Field Programmable Gate Array). You may.
  • processor processing unit
  • GPU Graphics Processing Unit
  • ASIC Application Specific Integrated Circuit
  • FPGA Field Programmable Gate Array
  • the application CPU 3 writes information to the combination optimization memory 4 when a process for handling the combination optimization is required, and also starts the combination optimization processing CPU 5 which is a combination optimization processing unit to perform a combination. Optimization processing Receives the processing result of the CPU 5.
  • the combination optimization memory 4 is a memory that stores information handled in the original combination optimization (also referred to as “combinatorial optimization information”).
  • the combination-optimized memory 4 is realized by, for example, a semiconductor memory element such as a RAM (Random Access Memory) or a flash memory (Flash Memory), or a storage device such as a hard disk or an optical disk.
  • Combinatorial optimization information differs depending on the application, but for example, it is dynamically obtained data and statically prepared data.
  • the data is a received signal and the database is a generator matrix or a parity check matrix.
  • the data is information from the sensor, and the database is an observation matrix, a dictionary matrix, or the like.
  • the combinatorial optimization processing CPU 5 functions as a combinatorial optimization processing unit, calculates coefficient information of the Ising model based on the information recorded in the combinatorial optimization memory 4, and writes it in the Ising model memory 6.
  • the combinatorial optimization processing CPU 5 is not limited to the CPU, and may be realized by, for example, another processing device (processor) such as a GPU, or an integrated circuit such as an ASIC or FPGA.
  • the combinatorial optimization processing CPU 5 may use a database (database of the Ising model) of the conversion processing method for the combinatorial optimization to the Ising model that has already been examined.
  • the combinatorial optimization processing CPU 5 may be listed (stored) in advance in a database or the like of the Ising model (not shown), and the data may be simply passed to the processing and executed.
  • the combinatorial optimization processing CPU 5 may select a conversion processing method for the combinatorial optimization to the Ising model stored in the database of the Ising model, and calculate the coefficient information of the Ising model by the conversion processing method.
  • the combinatorial optimization processing CPU 5 activates the Ising decoder 7. Then, the combinatorial optimization processing CPU 5 obtains a solution of the original combinatorial optimization problem from the combination of spin variables obtained from the rising decoder 7, and returns this result to the application CPU 3.
  • the processing by the combinatorial optimization processing CPU 5 does not necessarily have to be independent of the processing of the application CPU 3. For example, the application CPU 3 and the combinatorial optimization processing CPU 5 may be integrated.
  • the Ising decoder 7 performs the Ising decoding process as described above.
  • the Ising decoder 7 is realized by, for example, a CPU, a GPU, or an FPGA.
  • the Ising decoder 7 is not limited to the above, and may be realized by, for example, a CPU, a processing device (processor) other than the GPU, an FPGA, or the like.
  • the Ising decoder 7 acquires (reads) the coefficient matrix of the Ising model recorded in the Ising model memory 6 in response to an instruction from the combinatorial optimization processing CPU 5. Then, the rising decoder 7 performs decoding algorithm processing using the obtained coefficient matrix of the rising model, generates a spin variable string from the obtained code string, and combines the generated spin variable strings for optimization processing CPU5. Return to.
  • the Ising decoder 7 generates a QUAO coefficient matrix from the Ising model coefficient matrix. Then, the Ising decoder 7 generates a pseudo-parity check matrix and a pseudo-signal sequence from the generated QUAF coefficient matrix. Then, the rising decoder 7 decodes the code string from the generated pseudo-parity check matrix and the pseudo signal sequence, and uses the decoded sequence as an array of spin variables.
  • the Ising decoder 7 writes and holds the QUAO coefficient matrix, the pseudo-parity check matrix, and the pseudo signal sequence generated on the way to the memory of the Ising decoder 7. Since the pseudo-parity check matrix is (relatively) static information, it may be read from the database as predetermined information.
  • the decoding processing memory 8 stores (writes) a QUAO coefficient matrix, a pseudo-parity check matrix, and a pseudo signal sequence required by the Ising decoder 7. Further, the decoding processing memory 8 stores (writes) intermediate variables required for the BP decoding processing.
  • the decoding processing memory 8 is realized by, for example, a semiconductor memory element such as a RAM or a flash memory, or a storage device such as a hard disk or an optical disk.
  • FIG. 7 is a diagram showing a fifth embodiment to which the information processing of the present disclosure is applied.
  • the communication path coding / decoding system 1A is an example of a system to which the information processing system 1 is applied.
  • the communication path coding / decoding system 1A includes a transmitter 11 that converts information into a signal sequence and transmits it, and a receiver 12 that restores the original information from the signal sequence.
  • the transmitter 11 transmits the transmission information to the receiver 12 as a signal sequence, and the original information is restored as the reception information from the signal sequence received by the receiver 12.
  • the transmitter 11 is composed of an information block generation unit, a message generation unit, a code generation unit, and a signal transmission unit.
  • the transmitter 11 has an information block generation unit and a message generation unit (message transmission unit), which converts information into a bit string of a message.
  • the code generator converts the bit string of the converted message into a code bit string.
  • the signal transmission unit targets the converted code bit string, modulates it, and transmits it to the receiver 12.
  • the receiver 12 is composed of a signal receiving unit, a message decoding unit, and an information restoration unit.
  • the signal receiver converts the modulated signal into a baseband signal.
  • the message decoder restores the bit string of the message from the baseband signal.
  • Information restoration restores information by connecting blocked messages. If the Reed-Solomon code, BCH code, or the like is an external code, the information restoration unit may perform the decoding process.
  • FIG. 8 is a diagram showing an example of a configuration of a receiver to which the information processing of the present disclosure is applied.
  • the receiver 12 includes a signal receiving unit 21, a database 22, a maximum likelihood decoding unit 23 as a message decoding unit, an information restoration unit 24, and a combinatorial optimization accelerator 50.
  • FIG. 8 is a block diagram showing the configuration of the receiver 12 to which the information processing of the present disclosure is applied.
  • the database 22 functions as a storage device (storage unit) for storing a generator matrix, a parity check matrix, and the like. Further, among the configurations of FIG. 8, the signal receiving unit 21 and the information restoring unit 24 use the above-mentioned normal configurations (signal receiving unit, information restoring unit).
  • the maximum likelihood decoding is used here instead of the commonly used decoding method, for example, belief propagation decoding, for the message decoding unit.
  • the portion described as the maximum likelihood decoding unit 23 corresponds.
  • Non-Patent Document 1 quantum annealing as a combinatorial optimization accelerator is used to realize this maximum likelihood decoding.
  • the above-mentioned Non-Patent Document 1 there are a method derived from a code generation matrix and a method derived from a parity check matrix, and an energy function is defined as an singing model as shown in the following equation (47).
  • equation (47) is an energy function when derived from the code generation matrix.
  • ⁇ in the equation (47) is a spin variable corresponding to the message bit, and has a relationship as shown in the following equation (48) with the message bit m having a length M.
  • Equation (47) are auxiliary spins introduced to satisfy the constraint that the sign is generated from the generator matrix.
  • the energy function introduces the penalty term shown in the following equation (49).
  • im represents the index of the mth non-zero component from the left in the i-th row in the generator matrix.
  • this penalty term is a positive value if all the constraints are not satisfied by 0 when the constraint is satisfied.
  • ⁇ im is an undetermined constant that takes a positive value, but when this value is sufficiently large, it is equivalent to maximum likelihood decoding.
  • is a spin variable corresponding to the sign bit, and has a relationship as shown in the following equation (51) with the sign bit x having a length N.
  • Equation (51) p and a in the equation (51) are auxiliary spins whose sign is introduced to satisfy the parity constraint by the parity check matrix.
  • the energy function introduces the penalty term shown in the following equation (52).
  • km represents the index of the mth non-zero component from the left in the kth row in the parity check matrix.
  • this penalty term is a positive value if all the constraints are not satisfied by 0 when the constraint is satisfied.
  • ⁇ km is an undetermined constant that takes a positive value, but when this value is sufficiently large, it is equivalent to maximum likelihood decoding.
  • the energy function of the Ising model is expressed in at most a quadratic dimension of the spin variable including the auxiliary variable. Therefore, it is possible to extract the quadratic coefficient matrix J and the linear coefficient matrix (vector) h of the Ising model by using a program or the like.
  • Non-Patent Document 1 by inputting the coefficient matrices J, h of these Ising models into the quantum annealing system, the spin variables ⁇ , p, a of the ground state of the Ising model are obtained, and based on these, the spin variables ⁇ , p, a are obtained. Restoring message bit string m.
  • the combinatorial optimization accelerator 50 (Ising decoder) is used instead of the combinatorial optimization accelerator in which quantum annealing is used. That is, by inputting the coefficient matrices J and h of these Ising models into the Ising decoder, the spin variables ⁇ , p and a in the ground state of the Ising model are acquired, and the message bit string m is restored based on these.
  • FIG. 9 is a diagram showing a sixth embodiment to which the information processing of the present disclosure is applied.
  • the sensing system 1B is an example of a system to which the information processing system 1 is applied.
  • the sensing system 1B has a sensor control unit 31 that controls the measurement state of the sensor (on / off, scheduling of measurement accuracy, etc.) and a sensing unit that measures an actual measurement target and outputs data. It is composed of 32.
  • the sensing system 1B is not limited to the sensor control unit 31 and the sensing unit 32, and may include various configurations for realizing the sensing system 1B.
  • partial data is acquired instead of acquiring complete measurement data for the purpose of saving power of the sensor, reducing the number of sensors themselves, and compressing the sensing data size. .. Sensing that acquires partial data in this way is sometimes called compressed sensing.
  • the sensing unit 32 includes a modeling unit (also referred to as a “sparse model processing unit”) that models data called sparse modeling, in addition to a sensor that acquires data from the measurement target, and complete data based on this modeling. It is composed of a data restoration unit (also referred to as an "information restoration unit”) that restores data.
  • the measurement target is, for example, a tomographic image acquired by an MRI (Magnetic Resonance Imaging) system, a distribution of peripheral objects measured by a radar (rider) array, or a distribution of sound sources measured by a microphone array.
  • Measurement target to be measured by the sensor array is, for example, a tomographic image acquired by an MRI (Magnetic Resonance Imaging) system, a distribution of peripheral objects measured by a radar (rider) array, or a distribution of sound sources measured by a microphone array.
  • explanatory variables are obtained using a database called a dictionary matrix and an observation matrix.
  • the data restoration unit restores the data corresponding to the complete data based on the explanatory variables obtained by the sparse model processing unit and the model information prepared in advance.
  • the restored data is, for example, a tomographic image in the case of MRI or CT (Computed Tomography), and an object distribution map (peripheral pedestrian distribution (vehicle-mounted radar), water droplet distribution (meteorological radar)) in the case of a radar array. Is.
  • l1 norm minimization an algorithm of an optimization method called l1 norm minimization.
  • Lasso Lasso Absolute Shrinkage and Selection Operator
  • l0 norm minimization is guaranteed to reach the most correct solution, and it is difficult to verify that l1 norm minimization has the same performance as l0 norm. It is necessary to meet the conditions. That is, l0 norm minimization is most ideal for sparse modeling. However, at the same time, it is also known that l0 norm minimization is difficult to calculate due to the problem of combinatorial optimization and is not practical.
  • FIG. 10 below is a combinatorial optimization accelerator 50 to which the first to third embodiments are applied, and is a configuration for making this l0 norm minimization more practical.
  • FIG. 10 is a diagram showing an example of a configuration to which the information processing of the present disclosure is applied.
  • the sensing system 1B shown in FIG. 10 is composed of a sensor 41, a database 42, a sparse model processing unit 43 as a modeling unit, an information restoration unit 44 as a data restoration unit, and a combinatorial optimization accelerator 50.
  • the sensor 41, the database 42, the sparse model processing unit 43, the information restoration unit 44, and the combinatorial optimization accelerator 50 correspond to the sensing unit 32 in FIG.
  • the sensor 41 is a device that converts the observed phenomenon into an electric signal or data and outputs it.
  • the sensor 41 may be any sensor such as an image sensor, a sound sensor, an acceleration sensor, a position sensor, a temperature sensor, a humidity sensor, an illuminance sensor, and a pressure sensor.
  • the database 22 functions as a storage device (storage unit) for storing an observation matrix, a dictionary matrix, and the like.
  • the l1 minimization algorithm falls into the category of linear programming rather than combinatorial optimization, and existing computers can be used to find solutions practically enough.
  • c in equations (54) and (55) is an auxiliary variable introduced to calculate the l0 norm.
  • the first term is an ordinary least squares error term
  • the second term is the l0 norm
  • the third term is the penalty term that represents the constraint conditions that the auxiliary variables introduced to calculate the l0 norm must meet.
  • the spin variables ⁇ b and ⁇ c of the ground state of the Ising model are obtained, and the bit representation of the sparse explanatory variable z based on these is obtained. Can be obtained.
  • the combinatorial optimization accelerator 50 (Ising decoder) is used instead of the combinatorial optimization accelerator in which quantum annealing is used.
  • the spin variables b and c of the ground state of the Ising model are acquired, and the bit representation b of the sparse explanatory variable z is acquired based on these.
  • FIG. 11 is a diagram showing a seventh embodiment to which the information processing of the present disclosure is applied.
  • the development system 1C is an example of a system to which the information processing system 1 is applied.
  • the development system 1C includes a terminal 51, a combinatorial optimization database 52, a development application 53, a combinatorial optimization unit 54, a rising decoder 55, a quantum-conceived computer 56, and a quantum annealing 57.
  • the gate type quantum computer 58 are included as components.
  • each component of the terminal 51, the combination optimization database 52, the development application 53, and the combination optimization unit 54 may be configured as one device or as a plurality of devices. good. When configured as one device, for example, each component is communicably connected by an arbitrary signal line such as a bus.
  • the terminal 51 has a combinatorial optimization database 52, a development application 53, and a combinatorial optimization unit 54
  • the terminal 51 includes a rising decoder 55, a quantum-conceived computer 56, a quantum annealer 57, and a gate-type quantum computer 58. Communicates with each device and sends and receives information.
  • an application development tool (development tool) including, for example, a development application 53 is installed in the terminal 51.
  • each component of the terminal 51, the combination optimization database 52, the development application 53, and the combination optimization unit 54 is configured (distributed and arranged) as a plurality of devices, for example, predetermined communication is performed between the components. It is connected so that it can communicate by wire or wirelessly via a network.
  • a terminal 51 in which the development application 53 is installed a server device having a combinatorial optimization database 52, an optimization processing device having a combinatorial optimization unit 54, a rising decoder 55, and a quantum idea.
  • the type computer 56, the quantum annealing 57, and the gate type quantum computer 58 may be included.
  • the optimization processing device communicates with each device of the terminal 51, the Ising decoder 55, the quantum-conceived computer 56, the quantum annealing 57, and the gate-type quantum computer 58, and transmits / receives information.
  • the above configuration is only an example, and any configuration can be adopted as the device configuration of the development system 1C.
  • the development system 1C holds various representations of combinatorial optimization by Ising models as a database (for example, combinatorial optimization database 52), and can be switched according to a user's request.
  • the development system 1C includes a terminal 51 that is a terminal unit that serves as an interface with a user, a combination optimization database 52 that holds an expression of a combinatorial optimization singing model, a development application 53 main body, and a combination optimization unit 54. It has a rising decoder 55 and the like.
  • the combinatorial optimization database 52 stores typical data conversion processes of various combinatorial optimizations as a library. Specifically, the combinatorial optimization database 52 stores a function (or class) that outputs the coefficients of the Ising model by inputting the data and the database used in each application including the combinatorial optimization.
  • the Ising decoder 55 is a computer that inputs a coefficient matrix of the Ising model and outputs a solution of a spin variable in the ground state.
  • the Ising decoder 55 performs the Ising decoding process as described above, similarly to the Ising decoder 7 of FIG.
  • the Ising decoder 55 is realized by, for example, a CPU, a GPU, or an FPGA.
  • the Ising decoder 55 may be the information processing apparatus 100 described later.
  • the Ising decoder 55 receives the coefficient matrix of the Ising model from the combination optimization unit 54, and performs the Ising decoding process using the received coefficient matrix of the Ising model to derive a solution of the spin variable in the base state. ..
  • the Ising decoder 55 transmits the derived solution of the spin variable in the ground state to the combinatorial optimization unit 54.
  • the quantum-conceived computer 56 is a computer using a digital circuit.
  • the quantum-conceived computer 56 uses a non-quantum device such as a transistor circuit to accelerate simulated annealing, which minimizes energy by thermal fluctuation, while diverting the idea of embedding combinatorial optimization in the singing model. It is hardware.
  • the quantum-conceived computer 56 is, for example, a computer (computer) that uses CMOS (Complementary metal-oxide-semiconductor), a digital circuit, or the like.
  • CMOS Complementary metal-oxide-semiconductor
  • the quantum-conceived computer 56 may be a computer (computer) using a processor such as a GPU or an integrated circuit such as an FPGA.
  • the quantum-conceived computer 56 receives the coefficient matrix of the Ising model from the combination optimization unit 54, and derives the solution of the spin variable in the ground state by simulated annealing using the received coefficient matrix of the Ising model.
  • the quantum-conceived computer 56 transmits the derived solution of the spin variable in the ground state to the combinatorial optimization unit 54.
  • the quantum annealing 57 is a computer using a quantum annealing method.
  • the quantum annealing machine 57 is a quantum annealing machine (quantum computer) that uses a qubit for the singing spin.
  • the quantum annealing 57 receives the coefficient matrix of the Ising model from the combination optimization unit 54, and derives the solution of the spin variable in the ground state by quantum annealing using the received coefficient matrix of the Ising model.
  • the quantum annealing 57 transmits the derived solution of the spin variable in the ground state to the combinatorial optimization unit 54.
  • FIG. 12 is a diagram showing a configuration example of the quantum annealing.
  • the quantum annealing unit 57 has a communication unit 571, a storage unit 572, a quantum device unit 573, and a control unit 574.
  • the quantum annealing 57 has an input unit (for example, a keyboard, a mouse, etc.) that receives various operations from the administrator of the quantum annealing 57, and a display unit (for example, a liquid crystal display, etc.) for displaying various information. You may.
  • the communication unit 571 is realized by, for example, a NIC (Network Interface Card), a communication circuit, or the like.
  • the communication unit 571 is connected to a predetermined network (Internet, etc.) by wire or wirelessly, and information is provided to other devices such as a device (optimization processing device) having a combination optimization unit 54 via the network. Send and receive.
  • the storage unit 572 is realized by, for example, a semiconductor memory element such as a RAM or a flash memory, or a storage device such as a hard disk or an optical disk.
  • the storage unit 572 stores various information used for displaying the information.
  • the quantum device unit 573 executes various quantum calculations.
  • the quantum device unit 573 is realized by a quantum processing unit (QPU: Quantum Processing Unit).
  • QPU Quantum Processing Unit
  • the quantum device unit 573 realizes the ground state of the Ising model based on the parameters of the Ising model received from other devices such as the device having the combinatorial optimization unit 54, for example.
  • the quantum device unit 573 realizes the optimum spin arrangement in which the Ising model is in the ground energy state. That is, the quantum device unit 573 realizes a state in which the optimization problem is optimized.
  • the quantum device unit 573 is composed of, for example, a plurality of qubits.
  • the quantum device unit 573 is cooled to near absolute zero in advance.
  • the quantum device unit 573 internally develops the ratio of the Rising model and the transverse magnetic field model (quantum fluctuation model) over time.
  • the optimum spin arrangement according to the parameters of the Ising model is realized on the quantum device unit 573.
  • the optimum spin arrangement of the Ising model is physically realized on the quantum device unit 573.
  • the quantum device unit 573 can optimize the discrete optimization problem.
  • the quantum device unit 573 can optimize the optimization problem of the objective function in the quadratic form.
  • the control unit 574 is realized by, for example, a CPU, a GPU, or the like executing a program stored inside the quantum annealing 57 with a RAM or the like as a work area. Further, the control unit 574 is a controller, and may be realized by an integrated circuit such as an ASIC or FPGA.
  • control unit 574 has an acquisition unit 575, a calculation unit 576, and a transmission unit 577, and realizes or executes the functions and operations of information processing described below.
  • the internal configuration of the control unit 574 is not limited to the configuration shown in FIG. 12, and may be any other configuration as long as it is configured to perform information processing described later.
  • the acquisition unit 575 receives various information.
  • the acquisition unit 575 receives various information from an external information processing device.
  • the acquisition unit 575 receives various information from other information processing devices such as a device having the combination optimization unit 54.
  • the acquisition unit 575 performs a calculation using, for example, the quantum device unit 573, and receives an instruction for measurement from another information processing device such as a device having a combinatorial optimization unit 54.
  • the acquisition unit 575 accepts the parameters of the Ising model as instructions for calculation (measurement) by the quantum device unit 573.
  • the acquisition unit 575 acquires various types of information.
  • the acquisition unit 575 acquires information from the storage unit 572.
  • the acquisition unit 575 acquires various information from an external information processing device such as a device having a combination optimization unit 54.
  • the acquisition unit 575 acquires the input information received by the input unit.
  • the acquisition unit 575 acquires, for example, information about the parameters of the Ising model from an external information processing device.
  • the acquisition unit 575 acquires the measurement result (calculation result) of the quantum device unit 573 by the calculation unit 576.
  • the calculation unit 576 executes various calculations.
  • the calculation unit 576 executes a calculation using the quantum device unit 573.
  • the calculation unit 576 measures the quantum device unit 573.
  • the calculation unit 576 measures the quantum device unit 573 in which the optimum spin arrangement of the Ising model is realized.
  • the calculation unit 576 executes the calculation using the Ising parameters received by the acquisition unit 575 from the device having the combinatorial optimization unit 54.
  • the transmission unit 577 transmits various information to an external information processing device.
  • the transmission unit 577 transmits various information to another information processing device such as a device having a combination optimization unit 54.
  • the transmission unit 577 transmits the information stored in the storage unit 572.
  • the transmission unit 577 transmits various information based on information from other information processing devices such as a device having a combination optimization unit 54.
  • the transmission unit 577 transmits various information based on the information stored in the storage unit 572.
  • the transmission unit 577 transmits the measurement result of the quantum device unit 573 by the calculation unit 576 to the device that instructed the calculation.
  • the transmission unit 577 transmits the measurement result of the quantum device unit 573 by the calculation unit 576 to the parameter transmission source.
  • the transmission unit 577 transmits the measurement result of the quantum device unit 573 by the calculation unit 576 to the request source of the calculation.
  • the transmission unit 577 transmits the measurement result of the quantum device unit 573 by the calculation unit 576 to another information processing device such as a device having the combinatorial optimization unit 54.
  • the transmission unit 577 transmits the Ising spin value calculated (measured) using the parameters received from the device having the combinatorial optimization unit 54 to the device having the combinatorial optimization unit 54.
  • the gate type quantum computer 58 is a computer using a quantum gate method. Although detailed description is omitted because it is a known technique, the gate type quantum computer 58 is a quantum computer that performs arithmetic processing (calculation processing) by a quantum gate. While the quantum annealing method has a strong aspect of specializing in combinatorial optimization, the quantum gate method can handle general-purpose calculations, and algorithms based on the quantum gate method have already been proposed for specific calculations. .. For example, a method called QAOA (Quantum Approximate Optimization Algorithm) is a method that deals with optimization in the same way as quantum annealing.
  • QAOA Quantum Approximate Optimization Algorithm
  • FIGS. 13 to 16 are diagrams showing an example of a user interface.
  • the terminal 51 of the development system 1C provides the UI.
  • the terminal 51 displays the contents CT1 to CT4 described later on the display (screen).
  • the present invention is not limited to the terminal 51, and other devices such as the information processing apparatus 100 may provide the UI to the user.
  • the information processing apparatus 100 (see FIG. 17) may provide the UI by the input unit 140, the display unit 150, or the like.
  • the terminal 51 may be the information processing device 100.
  • the development system 1C may display a list box on the terminal 51, for example, in conjunction with the library stored in the combinatorial optimization database 52.
  • the terminal 51 displays a list of combinatorial optimization tasks that can be converted into an Ising model, as shown in the content CT1 in FIG.
  • Content CT1 includes integer classification, traveling salesman problem, coloring problem, most probable decoding, l0 minimization sparse coding, factorization, scheduling problem, optimal distribution problem, etc. as combinatorial optimization tasks that can be converted into a singing model. Is done.
  • the combinatorial optimization task that can be converted to the Ising model is not limited to the above.
  • the user can check the list box to get an explanation of the combinatorial optimization.
  • the terminal 51 displays a description of the combinatorial optimization selected by the user. For example, the terminal 51 displays a description of the maximum likelihood decoding which is the selected combinatorial optimization, as shown in the content CT2 in FIG. In the example of FIG. 14, the content CT2 is displayed in a separate window from the content CT1.
  • the content CT2 is provided with a brief explanation about the maximum likelihood decoding which is the selected combinatorial optimization, and is in a mode in which necessary information can be input.
  • the content CT2 includes a URL (Uniform Resource Locator) that specifies a database of a code generation matrix or a parity check matrix, and a box for inputting a URL that specifies a received signal vector.
  • URL Uniform Resource Locator
  • the necessary information is typically a database and data, so there may be a box where you can enter that information. Since the required data format changes depending on the application, it is desirable that the development application and the library can absorb it.
  • the terminal 51 may display a screen (content) for inputting information necessary for the combination optimization according to the selected combination optimization (application).
  • the user inputs necessary information via the above interface (for example, content CT2), selects a solver, and executes combinatorial optimization.
  • the solver may be capable of selecting a quantum annealing or a gated quantum computer (such as the QAOA method), including the Ising decoder.
  • the development system 1C may display, for example, a list of solvers that can be selected on the terminal 51.
  • the terminal 51 displays a list of selectable solvers as shown in the content CT3 in FIG.
  • the content CT3 includes a quantum annealing, a quantum-conceived computer, a rising decoder, a gated quantum computer, a linear integer programming solver, an integer programming solver, and the like as solvers.
  • the solver is not limited to the above.
  • the content CT3 shows the case where the user selects the Ising decoder as the solver.
  • To cancel the selection of the selected combinatorial optimization press the "CANCEL” button in the content CT3. This deselects the combinatorial optimization and changes the check box of the combinatorial optimization to hidden.
  • the “CANCEL” button in the content CT3 is pressed, the Ising decoder is deselected and the check box of the Ising decoder is changed to non-display.
  • the development system 1C may display information (solver information) about the solver selected by the user.
  • the solver information includes what kind of solver, what the backend (calculation hardware) is, whether it is suitable for this problem, how much memory is used for this problem, and how long it will take to solve it. Contains information.
  • the terminal 51 displays the solver information of the solver selected by the user as shown in the content CT4 in FIG.
  • the user finally decides whether to execute or stop the combinatorial optimization selected (input) this time by referring to the solver information.
  • the "SOLVE" button in the content CT3 is pressed.
  • the application side of the development system 1C performs actual combinatorial optimization according to this process and returns the answer.
  • GUI Graphic User Interface
  • GUI Graphic User Interface
  • GUI Graphic User Interface
  • it is not limited to GUI and may be command line input.
  • SDK Software Development Kit
  • API Application Programming Interface
  • FIG. 17 shows an information processing apparatus 100 as an example of an apparatus that performs various processes such as the Ising decoding described above.
  • the Ising decoders such as the Ising decoders 7 and 55 and the combinatorial optimization accelerator 50 may be realized by the information processing apparatus 100.
  • the information processing device 100 is a device (computer) that performs Ising decoding processing.
  • FIG. 17 is a diagram showing a configuration example of the information processing apparatus of the present disclosure.
  • the information processing apparatus 100 includes a communication unit 110, a storage unit 120, a control unit 130, an input unit 140, and a display unit 150.
  • the communication unit 110 is realized by, for example, a NIC or a communication circuit. Then, the communication unit 110 is connected to a predetermined network (not shown) by wire or wirelessly, and information is transmitted / received to / from another information processing device such as a device having a combinatorial optimization unit 54 (optimization processing device). I do. Further, the communication unit 110 may send and receive information to and from a user terminal (terminal 51 or the like) used by the user.
  • a user terminal terminal 51 or the like
  • the communication unit 110 receives various information.
  • the communication unit 110 receives various information from an external device.
  • the communication unit 110 receives the coefficient matrix of the Ising model from the device (optimization processing device) having the combinatorial optimization unit 54.
  • the communication unit 110 transmits the solution of the spin variable in the ground state derived by the control unit 130 to the device (optimization processing device) having the combinatorial optimization unit 54.
  • the storage unit 120 is realized by, for example, a semiconductor memory element such as a RAM (Random Access Memory) or a flash memory (Flash Memory), or a storage device such as a hard disk or an optical disk.
  • the storage unit 120 according to the first embodiment stores various data, information of various functions (programs) used for information processing, and the like. Further, the storage unit 120 may store information on the function used for processing in the above-mentioned equation.
  • the storage unit 120 is not limited to the above, and may store various information depending on the purpose.
  • control unit 130 for example, a program (for example, an information processing program according to the present disclosure) stored in the information processing device 100 by a CPU (Central Processing Unit), a GPU (Graphics Processing Unit), or the like is a RAM (Random Access). It is realized by executing Memory) etc. as a work area. Further, the control unit 130 is realized by an integrated circuit such as an ASIC (Application Specific Integrated Circuit) or an FPGA (Field Programmable Gate Array).
  • ASIC Application Specific Integrated Circuit
  • FPGA Field Programmable Gate Array
  • control unit 130 has a first processing unit 131 and a second processing unit 132, and realizes or executes the functions and operations of information processing described below.
  • the control unit 130 having the first processing unit 131 and the second processing unit 132 performs the Ising decoding process using the coefficient matrix of the Ising model received by the communication unit 110 to obtain the spin variables in the ground state. Derive a solution.
  • the first processing unit 131 calculates the objective function (QUAB format) of the combinatorial optimization problem.
  • the first processing unit 131 is realized by a first processor such as a CPU or GPU.
  • the first processing unit 131 may be realized by the first processing circuit that calculates the objective function (QUAB format) of the combinatorial optimization problem.
  • the first processing circuit any circuit such as FPGA or ASIC can be adopted.
  • the second processing unit 132 outputs the solution of the combinatorial optimization problem.
  • the second processing unit 132 is realized by a second processor such as a CPU or GPU.
  • the second processing unit 132 may be realized by a second processing circuit that outputs a solution to the combinatorial optimization problem.
  • any circuit such as FPGA or ASIC can be adopted.
  • control unit 130 is composed of a plurality of processors including a first processor corresponding to the first processing unit 131 and a second processor corresponding to the second processing unit 132.
  • the first processor and the second processor may be integrated, or the first processor and the second processor may be distributed and arranged in different devices.
  • the first processing unit 131 performs Ising model QUAB conversion.
  • the first processing unit 131 performs QUAB-decoding problem conversion.
  • the first processing unit 131 extracts the second information in the Ising model format (for example, the coefficient matrix of the Ising model) from the first information regarding the combinatorial optimization problem.
  • the first processing unit 131 calculates the objective function in the QUAO format by using the second information in the Ising model format (for example, the coefficient matrix of the Ising model).
  • the first processing unit 131 performs the processing described in the above-mentioned "2-1-1. Ising model-QUAB conversion", "2-1-2. QUA-decoding problem conversion” and the like, and the processing based on the algorithm and the like. conduct.
  • the second processing unit 132 performs BP decoding. For example, the second processing unit 132 determines the spin variable by the belief propagation method. The second processing unit 132 outputs the determined spin variable.
  • the second processing unit 132 includes the above-mentioned “2-1-2-3. BP decoding”, “2-1-2-4. BP decoding of the first example”, and “2-1-2-5.
  • the processing described in "BP decoding of the second example” and the like, and the processing based on the algorithm and the like are performed. That is, the second processing unit 132 processes a predetermined decoding problem converted from the combinatorial optimization problem by a predetermined method.
  • the input unit 140 accepts input by the user.
  • the input unit 140 may accept various operations from the user via the keyboard, mouse, or touch panel provided in the information processing apparatus 100.
  • the input unit 140 accepts the user's operation on the contents CT1 to CT4, which are the presentation screens displayed by the display unit 150, as input.
  • the input unit 140 accepts the user's selection of an optimization problem. Further, for example, the input unit 140 accepts the user's selection of the solver.
  • the display unit 150 displays various information.
  • the display unit 150 is a display device such as a liquid crystal display and displays various information.
  • the display unit 150 displays the contents CT1 to CT4 and the like.
  • the information processing device 100 may have a content generation unit that generates contents CT1 to CT4 and the like.
  • the content generation unit generates information to be displayed on the display unit 150, such as the contents CT1 to CT4.
  • the content generation unit generates contents CT1 to CT4 and the like by appropriately using various techniques such as Java (registered trademark).
  • the content generation unit may generate content CT1 to CT4 or the like based on the format of CSS, Javascript (registered trademark), or HTML.
  • the content generation unit may generate contents CT1 to CT4 and the like in various formats such as JPEG (Joint Photographic Experts Group), GIF (Graphics Interchange Format), and PNG (Portable Network Graphics).
  • JPEG Joint Photographic Experts Group
  • GIF Graphics Interchange Format
  • PNG Portable Network Graphics
  • the information processing apparatus 100 has been described as a device that performs Ising decoding processing, but the information processing apparatus 100 may perform processing other than Ising decoding processing.
  • the information processing apparatus 100 according to the modification shown below may be an apparatus that performs processing before the Ising decoding process or processing after the Ising decoding process.
  • the information processing apparatus 100 may function as an apparatus (optimization processing apparatus) having a combinatorial optimization unit 54 or a terminal 51.
  • the information processing device 100 may be a device that functions as a terminal 51, a device having a combination optimization unit 54 (optimization processing device), and an Ising decoder 55.
  • the information processing apparatus 100 uses the communication unit 110, which is a communication circuit (second processing circuit) that communicates with a quantum computer or the like connected to the outside, to use a quantum-conceived computer 56, a quantum annealing 57, or a quantum annealer 57. Communicates with the gated quantum computer 58.
  • the information processing apparatus 100 communicates with, for example, a quantum-conceived computer 56, a quantum annealing 57, or a gate-type quantum computer 58, which are computers on the cloud, by the communication unit 110. do.
  • the information processing apparatus 100 passes through the communication unit 110, which is a communication circuit (second processing circuit), to an external device such as a quantum computer on the external network (for example, the quantum-conceived computer 56, the quantum annealing). 57, or a gated quantum computer 58, etc.) may be instructed to handle the combination optimization problem.
  • a communication circuit second processing circuit
  • an external device such as a quantum computer on the external network (for example, the quantum-conceived computer 56, the quantum annealing).
  • 57, or a gated quantum computer 58, etc.) may be instructed to handle the combination optimization problem.
  • the information processing apparatus 100 has a first processor for calculating the objective function (ising format) of the combinatorial optimization problem and a second processor for outputting the solution of the combinatorial optimization problem.
  • the storage unit 120 of the information processing apparatus 100 stores, for example, the processing process of one or more combinatorial optimization problems.
  • the storage unit 120 may be configured by a storage circuit. Similar to the combinatorial optimization database 52, for example, the storage unit 120 stores typical data conversion processes of various combinatorial optimizations as a library.
  • the combinatorial optimization database 52 is a function (or class) that outputs the coefficients of the Ising model by inputting the data and the database used in each application including the combinatorial optimization. Is saved.
  • the first processing unit 131 of the information processing apparatus 100 is the first processor, and calculates the objective function (ising format (objective function)) of the combinatorial optimization problem.
  • the first processing unit 131 may be the first processing circuit for calculating the objective function (Ising model (objective function)) of the combinatorial optimization problem.
  • the first processing unit 131 performs processing corresponding to the processing of the combination optimization unit 54.
  • the first processing unit 131 refers to the stored library of the storage unit 120, and calculates an objective function (ising format (objective function)) corresponding to the designated combinatorial optimization problem. This objective function is expressed as the energy function of the Ising model.
  • the first processing unit 131 at least one of the two processors is a second processor based on the input first information and the data and the database determined according to the type of the combination optimization problem. Extract information. For example, the first processing unit 131 obtains a coefficient matrix of an objective function of the Ising format derived by referring to a library according to the type of the combinatorial optimization problem from the first information indicating the user's selection of the combinatorial optimization problem. , Extract as second information. The first processing unit 131 stores information on the data conversion process corresponding to the combination optimization problem selected by the user among the information on the data conversion process for each type of the combination optimization problem stored in the storage unit 120. Extract from 120.
  • the first processing unit 131 derives the coefficient matrix of the objective function of the Ising format by converting the combination optimization problem selected by the user by using the information of the data conversion process extracted from the storage unit 120. Therefore, the coefficient matrix of the objective function of the Ising format corresponding to the combination optimization problem selected by the user is extracted as the second information.
  • the above is only an example, and the first processing unit 131 according to the modified example may calculate the objective function (Ising model (objective function)) of the combinatorial optimization problem by various methods.
  • the second processing unit 132 of the information processing apparatus 100 is the second processor and outputs the solution of the combinatorial optimization problem.
  • the second processing unit 132 may be a second processing circuit that outputs a solution to the combinatorial optimization problem.
  • the second processing unit 132 executes the Ising decoder processing described above and outputs a solution to the combinatorial optimization problem.
  • the second processing unit 132 calculates the objective function in the QUABO format from the second information, which is the coefficient matrix of the Ising model, based on the calculation determined according to the combinatorial optimization problem. That is, this objective function is expressed as an energy function of the Ising model. It is expressed as an objective function in QUAB format.
  • the display unit 150 of the information processing apparatus 100 generates information required by the system based on the result output from the second processing unit 132, and displays at least a part thereof.
  • the display unit 150 may be configured by a display circuit.
  • the display unit 150 may be configured to include a circuit (display circuit) for displaying information.
  • belief propagation decoding is the central part of the calculation. The reason for this is that belief propagation decoding is known to have very good performance. However, belief propagation decoding is also a relatively heavy process, and there are times when you want to reduce the weight of the calculation when the variable size is increased.
  • bit flip is used to reduce the weight.
  • this method for example, the difference in energy between the case where the bit is inverted and the case where the bit is not inverted is used, and whether or not the bit is inverted is determined with a probability according to the difference.
  • this method Since this method has a stochastic process, it is inferior in reproducibility to the method realized by a deterministic process using belief propagation decoding. However, since it is not necessary to hold a large amount of memory, it is excellent in terms of weight reduction.
  • bit flips have poorer performance than belief propagation decoding and is not often used in practice.
  • various methods such as gradient-based bit flip (GDBF) using a neural network, noise-added gradient base bit flip (NGDBF), and stochastic gradient base bit flip have been devised to improve performance. There is. Therefore, it is conceivable that a bit flip that is lighter than the belief propagation and has the same performance as the belief propagation can be realized.
  • GDBF gradient-based bit flip
  • NDBF noise-added gradient base bit flip
  • stochastic gradient base bit flip stochastic gradient base bit flip
  • the present invention includes a modified version using such a bit flip instead of belief propagation decoding.
  • the bit flip is disclosed in the following documents, for example.
  • the processor referred to in the present disclosure is a concept including the following.
  • An Ising decoder, a QUABO decoder, or a communication processor is also one of a plurality of processors constituting the system.
  • Each of these plurality of processors may be a so-called system-on-chip (SOC) or multi-core processor, and some of the plurality of core processors are digital signal processors (DSPs) suitable for image processing and acoustic processing.
  • DSPs digital signal processors
  • It may be a so-called neural network accelerator suitable for calculation such as a neural network, or a neuromorphic accelerator, and a part of them may be a dedicated processing circuit such as the Zing decoder or QUAO decoder of the present invention. It may be an accelerator provided with.
  • a distinctive feature of the Ising decoder compared to quantum annealing is that a solution (combination of spins) can be deterministically obtained because it does not use a stochastic process. In other words, even if the Ising decoder is multi-processed and the same problem is input to them, the solution is the same.
  • the Ising decoder has some unknown parameters (described later) that contribute to performance. And it is known from a simple experiment that this parameter has a strong influence on the final solution.
  • the best solution is, honestly, the solution that minimizes the energy function of the Ising model. It can also be evaluated from a code point of view. For example, a solution may be selected in which the number of 1s in the checked parity is small, that is, the number of solutions in which the parity constraint is not satisfied is small. By doing so, it is possible to avoid deterioration of performance when the parameter setting is not appropriate.
  • the first example of these parameters uses the deviation value of the pseudo signal at the time of logarithmic odds production.
  • This parameter is used as a standard deviation parameter for the pseudo signal when the pseudo signal generated from the QUBO coefficient is input at the time of belief propagation decoding, and is given as ( ⁇ of several 25).
  • there are two types of pseudo signals and the values of the statistical variances do not match. Therefore, various options such as which one to match and which one to take the average can be considered. Therefore, a method of searching for the best can be considered by parallelizing as many parameters as possible.
  • the second example of the parameter is the degree of freedom of scaling when generating a pseudo signal sequence from the QUBO coefficient. This is considered to be a scale parameter in the objective function of Equation 2 (the scale parameter is not described in Equation 2, but ⁇ when multiplying the entire right side by ⁇ is the scale parameter).
  • the same thing may be done with a plurality of processors in which the first and second parameters are changed at the same time.
  • 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. That is, the specific form of distribution / integration of each device is not limited to the one shown in the figure, and all or part of them may be functionally or physically distributed / physically in any unit according to various loads and usage conditions. Can be integrated and configured.
  • the information processing apparatus 100 converts the search for the base state of the combination of spin variables of the Ising model into a binary quadratic format optimization problem (QUABO), and further converts this optimization problem into a binary code decoding problem. Is converted to, an algorithm that solves this decoding problem is used to acquire a decoding bit string, and the acquired decoding bit string is converted to obtain a combination of spin variables.
  • QUABO binary quadratic format optimization problem
  • the parity inspection matrix is a pseudo parity inspection matrix composed of the structure of the QUAF coefficient matrix, and the signal sequence is a pseudo signal sequence calculated from the QUABO coefficient matrix.
  • the algorithm for solving the decoding problem is, for example, a decoding algorithm based on the belief propagation method (belief propagation method) used for decoding a low density parity check code (LDPC).
  • the quadratic form is characterized in that the coefficient matrix is transformed into a symmetric matrix.
  • the pseudo-parity check matrix is characterized in that it is generated from the structure of the upper triangular or lower triangular matrix of the coefficient matrix.
  • the pseudo-parity check matrix is characterized in that it is generated from the elements corresponding to the non-zero components of the coefficient matrix.
  • the pseudo signal string is composed of a part corresponding to the original bit string and a part corresponding to a combination of 2 bits, and is a separate method in the repeating unit of the decoding algorithm. It is characterized by being processed in order with. It was
  • the search problem of the ground state of the spin variables of the Ising model realized by quantum annealing etc. can be replaced with the processing using the existing decoding algorithm used for decoding the low-density parity inspection matrix. Can be done.
  • the decoding algorithm of the belief propagation method used as an existing decoding algorithm can approach the maximum likelihood decoding which is theoretically the best when the code length is long. That is, it is possible to realize the ground state of the Ising model corresponding to the global minimum of optimization.
  • the decoding algorithm by the belief propagation method can be realized by high-speed and lightweight processing using an existing computer. Therefore, the ground state of the Ising model can be searched without using the large-scale system required for quantum annealing.
  • an application including combinatorial optimization can be operated on a small terminal (for example, a mobile terminal such as a personal computer or a smartphone).
  • a small terminal for example, a mobile terminal such as a personal computer or a smartphone.
  • a communication path coding / decoding application, a compressed sensing application, or the like can be used to implement a high-precision algorithm on a small terminal.
  • it may be used for a route search application, an information retrieval application, a scheduling application, a memory or wiring layout application, etc., which are typical examples including a combinatorial optimization problem.
  • an integrated development environment for these applications and an application that supports a graphic user interface are also conceivable.
  • the information processing apparatus extracts the second information necessary for the process formulated as the combination optimization problem from the first information input to the system, and extracts the second information. It contains at least two processors that input two pieces of information to calculate the objective function of a combination optimization problem, input the objective function, and output the solution of the combination optimization problem.
  • One of at least two processors is a processor that outputs the solution of the combinatorial optimization problem. This allows the information processing apparatus to search for the spin ground state of the Ising model without using quantum annealing.
  • the first information is a signal sequence, an observation data and a code matrix, an observation dictionary matrix, and the like.
  • the second information is the coefficient of the energy function of the Ising model, the loss function of QUABO, and the like.
  • the above two processors are, for example, a processor as a problem generating unit that generates a coefficient from data and a processor as a problem solving unit that calculates a solution from the coefficient.
  • the computer such as the information processing apparatus 100 and the terminal 51 according to each of the above-described embodiments and modifications is realized by, for example, the computer 1000 having the configuration shown in FIG. FIG. 18 is a hardware configuration diagram showing an example of a computer that realizes a function such as an information processing device.
  • the computer 1000 includes a processor 1100, a RAM 1200, a ROM (Read Only Memory) 1300, an HDD (Hard Disk Drive) 1400, a communication interface 1500, and an input / output interface 1600. Each part of the computer 1000 is connected by a bus 1050.
  • the processor 1100 operates based on the program stored in the ROM 1300 or the HDD 1400, and controls each part. For example, the processor 1100 expands the program stored in the ROM 1300 or the HDD 1400 into the RAM 1200, and executes processing corresponding to various programs.
  • the processor 1100 may be any processor such as a CPU and a GPU.
  • the computer 1000 may have a plurality of processors 1100.
  • the computer 1000 extracts the second information necessary for the process formulated as the combination optimization problem from the first information input to the system, and inputs the extracted second information. It has a first processor (eg, at least one of a plurality of processors 1100) that calculates the objective function of the combination optimization problem.
  • the computer 1000 extracts the second information necessary for the process formulated as the combination optimization problem from the first information input to the system, and inputs the extracted second information. It has a second processor (eg, at least one of a plurality of processors 1100) that inputs an objective function and outputs a solution to a combination optimization problem.
  • the computer 1000 has a plurality of processors 1100 including at least a first processor and a second processor.
  • the ROM 1300 stores a boot program such as a BIOS (Basic Input Output System) executed by the processor 1100 when the computer 1000 is started, a program depending on the hardware of the computer 1000, and the like.
  • BIOS Basic Input Output System
  • the HDD 1400 is a computer-readable recording medium for non-temporarily recording a program executed by the processor 1100 and data used by such a program.
  • the HDD 1400 is a recording medium for recording an information processing program such as an information processing program according to the present disclosure, which is an example of program data 1450.
  • the communication interface 1500 is an interface for the computer 1000 to connect to an external network 1550 (for example, the Internet).
  • the processor 1100 receives data from another device or transmits data generated by the processor 1100 to another device via the communication interface 1500.
  • the input / output interface 1600 is an interface for connecting the input / output device 1650 and the computer 1000.
  • the processor 1100 receives data from an input device such as a keyboard or mouse via the input / output interface 1600. Further, the processor 1100 transmits data to an output device such as a display, a speaker, or a printer via the input / output interface 1600. Further, the input / output interface 1600 may function as a media interface for reading a program or the like recorded on a predetermined recording medium (media).
  • the media is, for example, an optical recording medium such as DVD (Digital Versatile Disc) or PD (Phase change rewritable Disk), a magneto-optical recording medium such as MO (Magneto-Optical disk), a tape medium, a magnetic recording medium, or a semiconductor memory.
  • an optical recording medium such as DVD (Digital Versatile Disc) or PD (Phase change rewritable Disk)
  • a magneto-optical recording medium such as MO (Magneto-Optical disk)
  • tape medium such as DVD (Digital Versatile Disc) or PD (Phase change rewritable Disk)
  • MO Magneto-optical disk
  • the processor 1100 of the computer 1000 realizes the functions of the control unit 130 and the like by executing an information processing program such as an information processing program loaded on the RAM 1200. .. Further, the HDD 1400 stores an information processing program such as an information processing program according to the present disclosure and data in the storage unit 120.
  • the processor 1100 reads the program data 1450 from the HDD 1400 and executes the program, but as another example, these programs may be acquired from another device via the external network 1550.
  • the present technology can also have the following configurations.
  • (1) From the first information input to the system, the second information required for the process formulated as a combinatorial optimization problem is extracted. By inputting the extracted second information, the objective function of the combinatorial optimization problem is calculated.
  • At least two processors that input the objective function and output the solution of the combinatorial optimization problem.
  • Including One of the at least two processors is a processor that outputs a solution to the combinatorial optimization problem.
  • Information processing equipment is a processor that outputs a solution to the combinatorial optimization problem.
  • One of the at least two processors extracts a second piece of information from the input first piece of information based on the data corresponding to the type of combinatorial optimization problem.
  • the information processing device according to (1).
  • the processor that outputs the solution of the combinatorial optimization problem calculates the objective function of the combinatorial optimization problem from the input second information based on the calculation determined according to the combinatorial optimization problem.
  • the information processing device according to (1).
  • the processor that outputs the solution of the combinatorial optimization problem is A conversion process for converting the input objective function into an input signal string for a decoding problem having a code equivalent to the combinatorial optimization problem.
  • a decoding process that processes a decoding problem based on the input signal sequence and acquires a code string, and Output processing that converts the code string into the solution of the combinatorial optimization problem and outputs it.
  • the information processing apparatus which executes a process including.
  • the decoding problem of the code is a parity-constrained maximum likelihood decoding problem using a parity check matrix.
  • the conversion process includes a process of constructing the parity check matrix from the coefficients of the objective function, or a process of reading the already configured parity check matrix.
  • the decoding process is composed of a decoding algorithm based on the belief propagation method.
  • the decoding process decodes the code string from the input signal sequence and the parity check matrix based on the decoding process by the belief propagation method.
  • the decoding process by the belief propagation method is a decoding process for a low density parity check code.
  • the objective function of the combinatorial optimization problem is expressed as an energy function of the Ising model.
  • the information processing apparatus according to any one of (1) to (7).
  • the objective function of the combinatorial optimization problem is expressed as an objective function of the QUADOTIC Unconstrained Binary Optimization (QUADRO) format.
  • the information processing apparatus according to any one of (1) to (8).
  • One of the at least two processors performs a process of converting the coefficients of the energy function of the Ising model into the coefficients of the objective function in QUAB format.
  • the information processing apparatus according to (9).
  • a storage circuit that stores the processing process of one or more combinatorial optimization problems, A first processing circuit that selects one processing process from the processing processes of one or more combinatorial optimization problems, From the information input to the system, the data input to the processing process is extracted, and the information required by the system is obtained based on the second processing circuit that outputs the result of the combination optimization problem and the output result.
  • An information processing device that includes a display circuit that is generated and displays at least part of it.
  • the second processing circuit processes a predetermined decoding problem converted from the received combinatorial optimization problem by a predetermined method.
  • the information processing apparatus according to (11).

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computing Systems (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Algebra (AREA)
  • Computational Linguistics (AREA)
  • Operations Research (AREA)
  • Databases & Information Systems (AREA)
  • Probability & Statistics with Applications (AREA)
  • Error Detection And Correction (AREA)

Abstract

本開示に係る情報処理装置は、システムに入力された第一の情報から、組合せ最適化問題として定式化される処理に必要となる第二の情報を抽出し、前記抽出した第二の情報を入力して、前記組合せ最適化問題の目的関数を算出し、前記目的関数を入力して、前記組合せ最適化問題の解を出力する少なくとも二つのプロセッサ、を含み、前記少なくとも二つのプロセッサのうちの一つのプロセッサは、前記組合せ最適化問題の解を出力するプロセッサである。

Description

情報処理装置、情報処理方法及び情報処理システム
 本開示は、情報処理装置、情報処理方法及び情報処理システムに関する。
 量子アニーリングは、計算困難な組合せ最適化を加速する計算方法として知られている。例えば、計算困難な組合せ最適化問題の一つとして知られるブロック符号の最尤復号を、量子アニーリングを用いて高速に実現する方法が提供されている(例えば、非特許文献1)。
"Maximum Likelihood Channel Decoding with Quantum Annealing Machine" Naoki Ide, Tetsuya Asayama, Hiroshi Ueno, Masayuki Ohzeki<インターネット>https://arxiv.org/abs/2007.08689 (令和2年11月9日検索)
 例えば非特許文献1によれば、ブロック符号の最尤復号は、量子アニーリングが扱うイジングモデルの基底スピン探索問題に変換できる。このため、非特許文献1によれば、量子アニーリングを用いて、計算困難な最尤復号を高速化できる。
 しかしながら、現在利用できる量子アニーリングの実機、すなわち、量子アニーラは、動作環境として極めて低温の環境が求められる。このため、大規模な冷却システムが必要であり、例えば携帯端末などで利用することは困難である。
 現在の量子アニーラが低温でしか動作しない理由は、イジングモデルのスピンを実現するために超伝導デバイスを必要とするからである。しかし、非特許文献1での方法によれば、イジングモデルのスピン基底状態が高速に実現できればよく、必ずしも超伝導デバイスが必要な量子アニーリングを用いる必要はない。
 そこで、本開示では、量子アニーリングを用いることなくイジングモデルのスピン基底状態の探索を可能にすることができる情報処理装置、情報処理方法及び情報処理システムを提案する。
 上記の課題を解決するために、本開示に係る一形態の情報処理装置は、システムに入力された第一の情報から、組合せ最適化問題として定式化される処理に必要となる第二の情報を抽出し、前記抽出した第二の情報を入力して、前記組合せ最適化問題の目的関数を算出し、前記目的関数を入力して、前記組合せ最適化問題の解を出力する少なくとも二つのプロセッサ、を含み、前記少なくとも二つのプロセッサのうちの一つのプロセッサは、前記組合せ最適化問題の解を出力するプロセッサである。
本開示の情報処理の手順の一例を示すフローチャートである。 疑似信号生成の処理手順の一例を示すフローチャートである。 疑似パリティ検査行列生成の処理手順の一例を示すフローチャートである。 復号処理の第1の例を示す図である。 復号処理の第2の例を示す図である。 情報処理システムの構成の一例を示す図である。 本開示の情報処理を適用した第5の実施例を示す図である。 本開示の情報処理を適用した受信機の構成の一例を示す図である。 本開示の情報処理を適用した第6の実施例を示す図である。 本開示の情報処理を適用した構成の一例を示す図である。 本開示の情報処理を適用した第7の実施例を示す図である。 量子アニーラの構成例を示す図である。 ユーザインタフェースの一例を示す図である。 ユーザインタフェースの一例を示す図である。 ユーザインタフェースの一例を示す図である。 ユーザインタフェースの一例を示す図である。 本開示の情報処理装置の構成例を示す図である。 情報処理装置等の機能を実現するコンピュータの一例を示すハードウェア構成図である。
 以下に、本開示の実施形態について図面に基づいて詳細に説明する。なお、この実施形態により本願にかかる情報処理装置、情報処理方法及び情報処理システムが限定されるものではない。また、以下の各実施形態において、同一の部位には同一の符号を付することにより重複する説明を省略する。
 以下に示す項目順序に従って本開示を説明する。
  1.第1の実施例(数理的説明)
   1-1.イジングモデル
   1-2.イジングモデルのQUBOへの変換
   1-3.QUBOの復号アルゴリズムでの解法
    1-3-1.QUBOの復号問題への変換
    1-3-2.復号アルゴリズム
     1-3-2-1.変数ノード処理
     1-3-2-2.チェックノード処理
     1-3-2-3.復号ビットの出力
    1-3-3.疑似復号処理の軽量化
     1-3-3-1.QUBOの対称性を利用したサイズ削減
     1-3-3-2.BP復号処理の変形
  2.第2の実施例
   2-1.イジングデコーダ
    2-1-1.イジングモデル-QUBO変換
    2-1-2.QUBO-復号問題変換
     2-1-2-1.疑似信号生成
     2-1-2-2.疑似パリティ検査行列生成
     2-1-2-3.BP復号
     2-1-2-4.第1の例のBP復号
     2-1-2-5.第2の例のBP復号
     2-1-2-6.スピン変数決定
  3.第3の実施例
   3-1.メイン関数
   3-2.イジングモデル-QUBO変換
   3-3.QUBO-復号問題変換
   3-4.第1の例のBP復号
   3-5.第2の例のBP復号
  4.第4の実施例
   4-1.情報処理システム例
   4-2.アプリケーションCPU
   4-3.組合せ最適化メモリ
   4-4.組合せ最適化処理CPU
   4-5.イジングデコーダ
   4-6.復号処理メモリ
  5.第5の実施例
  6.第6の実施例
  7.第7の実施例
   7-1.計算機例
   7-2.ユーザインタフェース
  8.情報処理装置の構成例
  9.その他の構成例等
    9-1-1.変形例
    9-1-2.ビットフリップ
    9-2-1.プロセッサ
    9-2-2.マルチプロセッサの具体例
   9-3.その他
  10.本開示に係る効果
  11.ハードウェア構成
[1.第1の実施例(数理的説明)]
 まず、本開示の情報処理装置等の装置の構成や処理を説明する前に、本開示に係る数理的な説明を行う第1の実施例として説明する。なお、以下の技術的な説明の中で従来技術に関しては適宜説明を省略する。
[1-1.イジングモデル]
 まず、量子アニーリングをハードウェアとして実現する量子アニーラは、組合せ最適化問題をイジングモデルの基底状態の探索問題として解く計算機である。なお、量子アニーラの装置構成の例等については図12等において詳述する。
 イジングモデルは、強磁性の相転移をエネルギー最小化の原理で説明する数理モデルである。詳細な説明は省略するが、イジングモデルは、強磁性体(磁石)の相転移現象をモデル化するために提案された物理模型である。イジングモデルのエネルギーは、一般に、以下の式(1)に示すような関数で表現される。
Figure JPOXMLDOC01-appb-M000001
 ここで、イジングモデルのスピン変数s∈{-1,1}Nは、二値を取る変数である。また、Jijは結合エネルギーを表す係数、hkは局所磁場を表す係数である。量子アニーリングでは、組合せ最適化問題に対応するイジングモデルを人工的に構成し、そのスピンの基底状態から組合せ最適化問題の解を求める。
 ただし、ここで扱える組合せ最適化は、その目的関数が上述の関数(例えば式(1))の形式でなければならない。すなわち、未知変数は-1,1のどちらかであり、目的関数は未知変数の二次以下の項で表されることである。
 目的関数がこの形式、すなわち未知変数の二次以下の項で表される形式であれば、一次、二次の項の係数をイジングモデルの係数として抽出できる。そして、得られたイジングモデルの係数を量子アニーラに入力すると、量子アニーラは該当するイジングモデルの基底状態のスピン変数の配列を出力する。このスピン変数の解は、元の組合せ最適化問題の解として利用することができる。
 このような目的関数による組合せ最適化問題は、一見かなり限られているように見えるが、実際には、すでに多くの問題が、イジングモデルの形式に変換することができ、イジングモデルの形式落とし込まれている。例えば、イジングモデルの形式に変換可能な問題としては、巡回セールスマン問題、彩色問題などが一例として挙げられる。
 上述のようにイジングモデルの形式に変換された問題のような資源を有効に活用するため、以下では、イジングモデルの形式に落とし込まれている組合せ最適化問題を、量子アニーリングの代わりに解く方法を提供する。
 まず、その一例として、バイナリ符号の復号アルゴリズムを用いる場合を示す。以下では、イジングモデルの基底探索をバイナリ符号の復号アルゴリズムで解く方法を説明する。
[1-2.イジングモデルのQUBOへの変換]
 ここから、イジングモデルのQUBOへの変換について説明する。QUBOとは、制約なし二値二次形式最適化(Quadratic Unconstrained Binary Optimization)の略称である。例えば、本開示の趣旨は、元の組合せ最適化問題に対応するイジングモデルの基底探索問題をバイナリ符号の復号アルゴリズムで解くことである。
 バイナリ符号の復号アルゴリズムを扱うには、スピン変数を扱うイジングモデルよりもバイナリ変数を扱うQUBOを出発点に用いたほうが都合がよい。このため、まずイジングモデルをQUBOに変換する。例えば、QUBOとは、以下の式(2)に示すような目的関数を最小化するバイナリ変数z∈{0,1}Nの解を求めることを意味する。
Figure JPOXMLDOC01-appb-M000002
 ここで、バイナリ変数と、スピン変数は以下の式(3)のように関係づけることができる。
Figure JPOXMLDOC01-appb-M000003
 式(3)に示すような関係を利用すると、イジングモデルのエネルギー関数は、例えば以下の式(4)に示すように、QUBOの目的関数に等価変換できる。
Figure JPOXMLDOC01-appb-M000004
 すなわち、イジングモデルのエネルギー関数は、以下の式(5)のよう係数間の変換でQUBOの目的関数に変換できる。
Figure JPOXMLDOC01-appb-M000005
 本開示では、イジングモデルの基底状態探索を、イジングモデルの係数から変換された係数を有するQUBOを解くことで実現する。なお、QUBOの係数qijは正方行列Q=(qij)のij成分とみなすことができる。このため、QUBOの目的関数は、以下の式(6)のように表すことができる。
Figure JPOXMLDOC01-appb-M000006
 また、式の対称性から以下の式(7)も成り立つ。
Figure JPOXMLDOC01-appb-M000007
 つまり、QUBOの係数行列として、以下の式(8)に示すような行列を用いてもよい。
Figure JPOXMLDOC01-appb-M000008
 以下の式(8)に示す行列は、対称行列であるので、計算の削減などに有利である。以下の例では、QUBOの係数行列は、対称行列に変換されたものを扱うものとする。
[1-3.QUBOの復号アルゴリズムでの解法]
 ここまで、量子アニーリングの行うイジングモデルの基底探索は、QUBOと等価であることを説明した。ここから、QUBOをバイナリ符号の復号アルゴリズムで解く点について説明する。例えば、本開示の目的は、イジングモデルの基底探索をバイナリ符号の復号アルゴリズムで実現することである。これは、QUBOをバイナリ符号の復号アルゴリズムを実現することと言いかえることができる。
 QUBOにバイナリ符号の復号アルゴリズムに適用するための処理(「アルゴリズム適用処理」ともいう)として、以下の処理を説明する。まず、アルゴリズム適用処理では、QUBOをバイナリ符号の最尤復号の問題に変換する。そして、アルゴリズム適用処理では、この最尤復号を、例えば信念伝搬法(「ビリーフプロパゲーション法」または「BP」ともいう)を用いた復号アルゴリズム(「BP復号」ともいう)で近似的に解く。
[1-3-1.QUBOの復号問題への変換]
 まず、QUBOをバイナリ符号の復号問題に変換する点について説明する。QUBOをバイナリ符号の復号問題、具体的には、最尤復号の問題に変換する。バイナリ符号の復号問題とは、パリティ検査行列と信号列が与えられた条件で、信号列に基づく尤度を最小化するビット列を探索する問題である。
 例えば、非特許文献1の先行技術である「Maximum Likelihood Channel Decoding with Quantum Annealing Machine(和訳:量子アニーリングによる通信路最尤復号):<https://arxiv.org/abs/2007.08689>」では、符号理論で頻出するmod2(モジュロ2)をなくすことが鍵となっている。一方で、以下では、QUBOにmod2の要素をとりこむことで、QUBOを復号問題に近づける。
 具体的には、「2zizj=zi+zj-mod2(zi+zj)」(「関係式」ともいう)が示す関係を利用して、符号化・復号技術らしさを出す。この関係式自体は、zi,zjの4通りの組合せを列挙すれば、容易に確認できる。なお、mod2(z)は、z mod 2 と書くのが一般的だが、ここでは関数とみなしてこの表記にしている。
 この関係式を利用して、QUBOの目的関数を変形していくと、以下の式(9)のように二乗誤差の和の形式に変換できる。
Figure JPOXMLDOC01-appb-M000009
 ただし、ここでは、qij=qjiを利用し、以下の式(10)、式(11)及び式(12)としている。
Figure JPOXMLDOC01-appb-M000010
Figure JPOXMLDOC01-appb-M000011
Figure JPOXMLDOC01-appb-M000012
 ここで、ri(i=1…N)を並べて作るN次元ベクトルを第一の疑似信号列r1、rij(i,j=1…N)を並べて作るM=N2次元ベクトルを第二の疑似信号列r2と称することにする。さらに、これらの2つの疑似信号列を並べて得られるベクトルを単に擬似信号列rと称することにする。
Figure JPOXMLDOC01-appb-M000013
Figure JPOXMLDOC01-appb-M000014
Figure JPOXMLDOC01-appb-M000015
 ここで、導入した2つの疑似信号列に対する二乗誤差和が、それぞれ同等な形式で表現されるように、新たに補助変数をzij=mod2(zi+zj)として導入する。このとき、この補助変数zijも0,1のいずれかしか取らないバイナリ変数である。この結果、目的関数は以下の式(16)のように二乗誤差の和の形式に変形される。
Figure JPOXMLDOC01-appb-M000016
 式(16)の表記によれば、目的関数は、第一の疑似信号列、第二の疑似信号列の各要素が、それぞれ、第一の符号列、第二の符号列の各要素との二乗誤差で表現される。ここで、最適化したいバイナリ変数zi(i=1…N)を並べて作るN次元ベクトルを第一の符号列と称し、補助変数zij(i,j=1…N)を並べて作ったM=N2次元ベクトルを第二の符号列と称することにする。例えば、以下の式(17)は第一の符号列を示し、式(18)は第二の符号列を示す。
Figure JPOXMLDOC01-appb-M000017
Figure JPOXMLDOC01-appb-M000018
 さらに、これらの2つの符号列(第一の符号列及び第二の符号列)を並べて得られるベクトルを単に符号列と称することにする。以下の式(19)は符号列を示す。
Figure JPOXMLDOC01-appb-M000019
 この目的関数の最小化は、最小二乗法の形式となっている。つまり、言い換えると、(通信路のノイズが一定の場合の)最尤復号と等価である。しかし、この目的関数において、zijと、zi,zjを独立に最適化すると、zij=mod2(zi+zj)の制約を満たさない解が選択されることがある。そこで制約を満たす作用を取り込むため、例えば式(20)に示すように、元の目的関数L(z)に、ペナルティ項「mod2(zi+zj+zij)」を加える。このペナルティ項が、制約zij=mod2(zi+zj)をみたすときに0で、そうでない場合に1となる、すなわち、制約を満たすときに最小となることは、zi,zjの組合せ四通りを調べれば容易に確かめられる。
Figure JPOXMLDOC01-appb-M000020
 式(20)中のパラメータであるλは、制約が満たされることを優先させるため、例えば1より大きめの値とする。
 ここで、mod2(zi+zj+zij)を、符号でよく出るパリティ検査行列で表現する。M=N2,K=N+Mとして、M×Kのバイナリ行列Hを、Ni+j行目のi,j列とN+Ni+j列が1でそれ以外が0となる疎行列として構成する。例えば、N=3のときは、以下の式(21)のような行列である。
Figure JPOXMLDOC01-appb-M000021
 このバイナリ行列は、M×Nの第一のバイナリ疎行列と、M×N2の第二のバイナリ疎行列(言い換えると単位行列)で構成されている。ここでは、このM×Kのバイナリ疎行列Hを、疑似パリティ検査行列と呼ぶことにする。以上の疑似信号列と疑似パリティ検査行列を用いて、QUBOの目的関数は以下の式(22)のように表現することができる。
Figure JPOXMLDOC01-appb-M000022
 この目的関数の最小化問題は、λが十分大きいとき、以下の式(23)のように表現することができる。
Figure JPOXMLDOC01-appb-M000023
 すなわち、パリティ制約付きの最尤復号である。このように、符号の復号問題は、パリティ検査行列を利用するパリティ制約付き最尤復号問題である。パリティ検査行列は、目的関数の係数から構成されてもよいし、データベース等の所定の記憶装置から読み出されてもよい。ここで、パリティ検査行列Hは、疎行列なので、符号語に相当するxは、疎なパリティ検査行列を用いるLDPC(Low Density Parity-check Code)の符号語とみてもよい。そこで、LDPCのBP復号アルゴリズムを適用することで、最尤復号の解xを近似的に求める。例えば、ビリーフプロパゲーション法による復号処理は、低密度パリティ検査符号に対する復号処理である。求めた解xのうち先頭のNビットがバイナリ変数zである。そこで、これ(すなわち求めた解xのうち先頭のNビット)をQUBOの最適解z*とみなす。なお、この解は、バイナリ変数であるので、イジングモデルの基底状態のスピン変数となるように、以下の式(24)に示すように変換する。
Figure JPOXMLDOC01-appb-M000024
[1-3-2.復号アルゴリズム]
 ここから、ビリーフプロパゲーション(BP)法による復号アルゴリズム(「BP復号アルゴリズム」ともいう)を一例として説明する。一般に最尤復号(例えばブロック符号の最尤復号)は、特に符号長が長くなると組合せ爆発を起こして、実用時間での実現が困難な復号方法として知られている。一方、BP復号は、符号長が長くなる(例えば1000ビット以上等)につれて、実用的な時間での復号を行いながら、最尤復号の性能に近づくことが知られている。つまり、比較的変数が多い場合には、最尤復号をBP復号で置き換えることは、実用時間で最尤復号と同等の性能が得られることになる。
 ただし、パリティ検査行列の構造が一定の条件を満たすことが必要である。例えば、パリティ検査行列の構造が以下の2つの条件を満たすことが必要である。1つ目の条件としては、パリティ検査行列が疎行列であることである。例えば、1つ目の条件としては、パリティ検査行列が各行、各列において、非ゼロ成分が10個以下であることである。
 また、2つ目の条件としては、ファクタグラフにおいて、短いループが存在しないことである。例えば、2つ目の条件としては、ファクタグラフにおいて、長さ4または5のループが存在しないことである。
 BP復号アルゴリズムは、様々な文献で紹介され既知の技術であるため、詳細な説明は省略し、以下では簡単な記載に留める。以下では、対数領域サムプロダクト法と呼ばれているアルゴリズムの処理過程を示す。
 ここで示すアルゴリズムは、例えば以下のような手順#1-1~手順#1-6を行うアルゴリズムとなっている。
・手順#1-1. 受信信号rと推定ノイズ強度σとパリティ検査行列Hを入力
・手順#1-2. メッセージα,βを初期化
・手順#1-3. 変数ノード処理を実行:(H,r,σ,β)→α
・手順#1-4. チェックノード処理を実行:(H,α)→β
・手順#1-5. 手順#1-3~手順#1-4を収束するか、指定回数になるまで繰り返す
・手順#1-6. ビット列mを出力:(H,r,σ,α)→m
[1-3-2-1.変数ノード処理]
 ここから、上記手順#1-1~手順#1-6に関する各処理について説明する。まず、変数ノード処理について説明する。変数ノード処理は、信号から得られた情報をメッセージに埋め込む役割を担っている。対数領域サムプロダクト法では、まず、受信信号rは対数オッズλに変換されて扱われる。オッズとは、受信信号が符号0のノイズが加わったのか、符号1にノイズが加わったのかに関する確率(事後確率)の比である。このとき、対数オッズは、ノイズが標準偏差σのガウスノイズであると仮定することで、以下の式(25)のように計算される。
Figure JPOXMLDOC01-appb-M000025
 なお、ノイズの強度が不明な場合、対数オッズには例えば1前後の値を設定してもよい。変数ノード処理は、以下の式(26)及び式(27)に基づいて、メッセージαの更新を行う。
Figure JPOXMLDOC01-appb-M000026
Figure JPOXMLDOC01-appb-M000027
 ただし、δiは初期値0である。なお、通常の対数領域アルゴリズムでは、βを入力して、αを出力するが、本開示では、実装の便宜のため、β,δを入力して、α,γを出力する構成とする。
[1-3-2-2.チェックノード処理]
 次に、チェックノード処理について説明する。チェックノード処理は、パリティ制約の条件をメッセージに埋め込む役割を担っている。チェックノード処理は、以下の式(28)及び式(29)に基づいて、メッセージβの更新を行う。
Figure JPOXMLDOC01-appb-M000028
Figure JPOXMLDOC01-appb-M000029
 なお、変数ノード処理と同様、本開示では、実装の便宜のため、α,γを入力して、β,δを出力する構成とする。
[1-3-2-3.復号ビットの出力]
 次に、復号ビットの出力について説明する。復号ビットの出力は、上述した処理を適切な回数だけ繰り返した後行われる。上述した処理を適切な回数だけ繰り返し、行えば、信号とパリティ制約の両方を考慮した対数オッズγjが計算される。
 パリティ部分を除いた対数オッズは正か負の値をとるが、正の場合が元の符号ビット0、負の場合が1に対応する。以上の処理において、パリティ検査行列の疎性を利用してメモリや計算回数を削減してもよい。例えば、スパース行列演算のように、非ゼロ要素のインデックスと値だけをメモリに保持し、非ゼロ要素だけ乗加算する構成にすることでメモリや計算回数を削減できる。
[1-3-3.疑似復号処理の軽量化]
 これまで説明した方法では、バイナリ変数の数が増えると、疑似信号列のサイズは、その2乗に比例して、また、疑似パリティ検査行列のサイズは、その4乗に比例して増大する。
 そのため、いくつかの工夫によって疑似信号や、疑似パリティ検査行列のサイズを削減する。ここでは、次の工夫#1及び工夫#2により復号処理を軽量化する。
・工夫#1. QUBOの対称性を利用したサイズ削減
・工夫#2. 疑似パリティ検査行列の固有の構造を利用したBP復号処理の変形
[1-3-3-1.QUBOの対称性を利用したサイズ削減]
 まず、QUBOの対称性を利用したサイズ削減について説明する。QUBOの目的関数を再度見てみると、バイナリ変数の積の順番を入れ替えても不変である。そのため、係数行列にその転置行列を利用しても解は変わらない。さらに、以下の式(30)のように変形しても解は変わらない。
Figure JPOXMLDOC01-appb-M000030
 そこで、新たな係数行列として以下の式(31)に示すような係数行列を導入する。
Figure JPOXMLDOC01-appb-M000031
 この係数行列は対称行列なので、乗加算の回数が削減された以下の式(32)に示すような目的関数が得られる。ただし、ここでは、式(20)に倣って、zijをzij=mod2(zi+zj)を満たしてもらいたい変数として導入し、また、この制約を満たさない場合のペナルティ項を第二項で表している。
Figure JPOXMLDOC01-appb-M000032
 ただし、二行目の式変形では、zii=mod2(zi+zi)=0を利用している。また、ここでは、以下の式(33)、式(34)及び式(35)としている。
Figure JPOXMLDOC01-appb-M000033
Figure JPOXMLDOC01-appb-M000034
Figure JPOXMLDOC01-appb-M000035
 QUBOの係数行列の対称性を利用する疑似信号列や、疑似パリティ検査行列は、対称性を利用しないもとの疑似パリティ検査行列からいくつかの行や列をスキップしたベクトル、あるいは、行列である。
 まず、もとの疑似パリティ検査行列の第Ni+1行は、係数行列Qの対角成分に対応する行になるので、二次の項にならないので省略しても良く、同様に、第N+Ni+1列も省略してもよい。
 続いて、第Ni+j行と第Nj+i行も、係数行列Qの対称性から、どちらか(たとえば、値の小さい方)を省略してよい。この場合、第N+Ni+j列と第N+Nj+i列の対応する方を省略するとともに、rとxについても、第N+Ni+j行と第N+Nj+i行のうち対応する行を省略する。同様に、ここでスキップされた列のインデックスについて、疑似信号列でもスキップするものとする。
 上述したようにすると、9行12列の行列H3は、以下の式(36)に示すような3行6列の行列でよいことがわかる。
Figure JPOXMLDOC01-appb-M000036
 例えば、一般の行列の場合でも、行数、列数は以下の式(37)及び式(38)に示すように削減される。
Figure JPOXMLDOC01-appb-M000037
Figure JPOXMLDOC01-appb-M000038
 これにより、元のサイズに比べて1/4以下に削減できることがわかる。また、qij=0なるi,jについて、第Ni+j行を省略してもよい。同様に、第N+Ni+j列を省略しても良いが、この場合、rとxの第N+Ni+j行も省略する。
[1-3-3-2.BP復号処理の変形]
 次に、疑似パリティ検査行列の固有の構造を利用したBP復号処理の変形について説明する。上述したように疑似パリティ検査行列は、第一のビット列に対応する第一のバイナリ行列と第二のビット列に対応する第二のバイナリ行列を行方向に接続した行列である。また、第二のバイナリ行列が行列サイズの支配的な部分であるが、ここは単位行列である。
 このことを利用することで、BP復号処理のメモリ削減や高速化を実現できる。ここでは、K=N+M次元を持つ全ての変数について、NとMのパートにわけて、添字(1),(2)(上付き文字の(1),(2))を付与して、その処理(以下「変形処理」ともいう)を説明する。なお、変形処理は、上述した復号アルゴリズムの変形であるため、同様の点については適宜説明を省略する。
 変形処理のアルゴリズムは、例えば以下のような手順#2-1~手順#2-6を行うアルゴリズムとなっている。
・手順#2-1. 受信信号rとノイズパラーメータσとパリティ検査行列HのコアHcを入力
・手順#2-2. 変数ノード処理を実行:(H,r,σ,α(1)(2))→β(1)(2)
・手順#2-3. チェックノード処理を実行:(H,β(1)(2))→α(1)(2)
・手順#2-4. 手順#2-2~手順#2-3を指定条件まで繰り返し、ビット列mを出力:(H,r,σ,α)→m
 変形処理の変数ノード処理は、例えば以下の式(39)及び式(40)を用いて行われる。
Figure JPOXMLDOC01-appb-M000039
Figure JPOXMLDOC01-appb-M000040
 また、変形処理のチェックノード処理は、例えば以下の式(41)を用いて行われる。
Figure JPOXMLDOC01-appb-M000041
[2.第2の実施例]
 次に、本開示に関する処理、及びその処理を行うモジュール構成の一例を第2の実施例として説明する。
[2-1.イジングデコーダ]
 本開示に関する処理を行う装置の一例としてイジングデコーダについて説明する。イジングデコーダは、イジングモデルの係数行列を入力として、基底状態のスピン変数の解を出力する計算機である。例えば、イジングデコーダは、後述する情報処理装置100であってもよい。以下では、イジングモデルの係数行列を入力して、基底状態のスピン変数の解を出力する処理をイジングデコード処理と称する場合がある。
 イジングデコーダは、イジングモデル to QUBO変換(以下「イジングモデル-QUBO変換」ともいう)、QUBO to 復号問題変換部(以下「QUBO-復号問題変換」ともいう)、BP復号、及び変数変換の処理を実行する。例えば、イジングデコーダは、イジングモデルQUBO変換を行うイジングモデル-QUBO変換部と、QUBO-復号問題変換を行うQUBO-復号問題変換部と、BP復号を行うBP復号部と、変数変換を行う変数変換部とを備える。なお、上記モジュール構成(ブロック構成)は一例に過ぎず、イジングデコーダのモジュール構成は任意の構成であってもよい。
 図1を用いて、本開示に係る情報処理の流れについて説明する。図1は、本開示の情報処理の手順の一例を示すフローチャートである。以下では、図1に示す各種処理をイジングデコーダが行う場合を一例として説明する。なお、以下に示す各処理は、ステップ番号の順序に限らず、処理が可能であれば任意の順序で行われてもよい。まず、図1により処理全体の概要を説明した後、各処理の詳細を説明する。
 図1に示すように、イジングデコーダは、係数行列J,hの入力を受け付ける(ステップS1)。例えば、イジングデコーダには、イジングモデルの係数行列が入力される。
 そして、イジングデコーダは、イジングモデル-QUBO変換を行う(ステップS2)。例えば、イジングデコーダは、係数行列やバイナリ変数変換に関する処理によりイジングモデルをQUBO形式に変換する処理を実行する。すなわち、イジングモデル-QUBO変換は、イジングモデルのエネルギー関数の係数をQUBO形式の目的関数の係数に変換する処理である。
 そして、イジングデコーダは、QUBO-復号問題変換を行う(ステップS3)。例えば、イジングデコーダは、信号列、符号列、パリティ検査行列等に関する情報を用いて、QUBO形式を復号問題の形式に変換する処理を実行する。すなわち、QUBO-復号問題変換は、QUBO形式の目的関数を基に、組合せ最適化問題と等価な符号の復号問題の入力信号列に変換する処理である。
 そして、イジングデコーダは、BP復号を行う(ステップS4)。例えば、イジングデコーダは、ビリーフプロパゲーション法を用いた復号アルゴリズムであるBP復号を行う。そして、イジングデコーダは、スピン変数を決定する(ステップS5)。例えば、イジングデコーダは、組合せ変数に関する情報を用いて、スピン変数を決定する。すなわち、BP復号は、入力信号列に基づいて復号問題を処理し、符号列を獲得し、符号列を組合せ最適化問題の解に変換して出力する処理である。例えば、BP復号は、ビリーフプロパゲーション法による復号アルゴリズムで構成され、入力信号列とパリティ検査行列から、ビリーフプロパゲーション法による復号処理に基づいて符号列を復号するが、詳細は後述する。
 そして、イジングデコーダは、スピン変数sを出力する(ステップS6)。出力態様の一例としては、イジングデコーダは、例えば、スピン変数sを示す情報を他の装置(例えば図11の端末51等)へ送信してもよいし、スピン変数sを示す情報を画面(例えば図15の表示部150等)に表示してもよい。なお、上述した出力態様は一例に過ぎず、出力とは、処理結果を生成することであってもよい。以下、図1に示した処理の各処理の詳細を説明する。
[2-1-1.イジングモデル-QUBO変換]
 イジングモデル-QUBO変換により、イジングモデルの係数行列J,hが入力され、QUBOの係数行列Qが出力される。第ij成分を式で書くと、以下の式(42)のよう表現される。
Figure JPOXMLDOC01-appb-M000042
 ここで、行列を対称化する変換Q←(Q+tQ)/2が施され、以下の式(43)のよう表現される。
Figure JPOXMLDOC01-appb-M000043
[2-1-2.QUBO-復号問題変換]
 QUBO-復号問題変換により、QUBOの係数行列が入力され、疑似信号列rとパリティ検査行列Hが出力される。QUBO-復号問題変換は、疑似信号生成と疑似パリティ検査行列生成の処理が含まれる。この場合、例えば、QUBO-復号問題変換部は、疑似信号生成部と疑似パリティ検査行列生成部とにより構成される。
[2-1-2-1.疑似信号生成]
 疑似信号生成により、QUBO係数行列が入力され、疑似信号列が出力される。疑似信号生成は、第一信号列生成、第二信号列生成、及び信号系列接続の処理が含まれる。この場合、例えば、疑似信号生成部は、第一信号列生成部、第二信号列生成部、及び信号系列接続により構成される。まず、図2により疑似信号生成の概要を説明した後、各処理の詳細を説明する。図2は、疑似信号生成の処理手順の一例を示すフローチャートである。以下では、図2に示す各種処理をイジングデコーダの疑似信号生成部が行う場合を一例として説明する。
 図2に示すように、イジングデコーダの疑似信号生成部は、QUBO係数行列Qの入力を受け付ける(ステップS11)。例えば、疑似信号生成部には、QUBOの係数行列が入力される。
 そして、疑似信号生成部は、第一信号列生成を行う(ステップS12)。また、疑似信号生成部は、第二信号列生成を行う(ステップS13)。そして、疑似信号生成部は、系列接続を行う(ステップS14)。そして、疑似信号生成部は、信号系列を出力する(ステップS15)。以下、図2に示した処理の各処理の詳細を説明する。
・第一信号列生成(第一信号列生成ブロック)
 第一信号列生成により、QUBO係数行列Qが入力され、第一信号列r1が出力される。ここで、第一信号列r1は、長さNのベクトルである。第一信号列の第i成分を式で書くと以下の式(44)のよう表現される。
Figure JPOXMLDOC01-appb-M000044
・第二信号列生成(第二信号列生成ブロック)
 第二信号列生成により、QUBO係数行列Qを入力して第二信号列r2を出力するブロックである。ここで、第二信号列は、長さM=N2のベクトルである。第二信号列の第(i,j)成分を式で書くと以下の式(45)のよう表現される。
Figure JPOXMLDOC01-appb-M000045
 あるいは、第二信号列は、長さM=1/2N(N-1)のベクトルであってもよい。この場合の第二信号列の第(i,j),j<i成分を式で書くと以下の式(46)のよう表現される。
Figure JPOXMLDOC01-appb-M000046
 もしくは、第二信号列は、Qの非対角非ゼロ成分の個数の半分のベクトルであってもよい。
・信号系列接続(信号系列接続ブロック)
 信号系列接続により、第一信号系列r1と第二信号系列r2とが接続され、擬似信号列rとが生成される。このように、第一信号系列r1と第二信号系列r2と接続して擬似信号列rとする。
[2-1-2-2.疑似パリティ検査行列生成]
 疑似パリティ検査行列生成により、QUBO係数行列が入力され、疑似パリティ検査行列が出力される。疑似パリティ検査行列は、配列メモリを確保して、値を代入していくことで構成される。以下、図3を用いて疑似パリティ検査行列生成の概要を説明する。図3は、疑似パリティ検査行列生成の処理手順の一例を示すフローチャートである。以下では、図3に示す各種処理をイジングデコーダの疑似パリティ検査行列生成部が行う場合を一例として説明する。
 図3に示すように、イジングデコーダの疑似パリティ検査行列生成は、サイズNの入力を受け付ける(ステップS21)。例えば、疑似パリティ検査行列生成には、QUBOの係数行列が入力される。そして、疑似パリティ検査行列生成は、パリティ検査行列のメモリを確保する(ステップS22)。疑似パリティ検査行列生成は、パリティ検査行列の数値代入を行う(ステップS23)。そして、疑似パリティ検査行列生成は、パリティ検査行列のコア出力を行う(ステップS24)。
 以下は、疑似パリティ検査行列を生成するアルゴリズムの一例を示す。例えば、疑似パリティ検査行列は、以下のような手順#3-1~手順#3-5を行うアルゴリズムとなっている。
・手順#3-1. QUBOの係数行列Qを入力
・手順#3-2. Qの非対角非ゼロ成分の個数2Mを計算
・手順#3-3. 行列HcをMxNゼロ行列で初期化
・手順#3-4. ループ変数kをゼロ初期化して、以下のループ#3-4を実行
(ループ#3-4)
 for i = 1 to N
  for j = 1 to i - 1
   if Q[i][j] != 0:
    Hc[k][i] = 1
    Hc[k][j] = 1
    k = k + 1
・手順#3-5. 疑似パリティ検査行列H=[Hc, I(M)]を出力
[2-1-2-3.BP復号]
 BP復号により、疑似信号列rと疑似パリティ検査行列Hとが入力され、疑似復号ビット列zが出力される。ここで、復号には信念伝搬法(BP)によるアルゴリズムが用いられる。なお、ここでは復号との文言を用いているが、復号と称する処理に対応する符号化の処理が無くてもよい。以下、BP復号の2つの例について、図面を参照しつつ各々説明する。
[2-1-2-4.第1の例のBP復号]
 まず、第1の例について説明する。第1の例では、BP復号は、対数オッズ計算、変数ノード処理、チェックノード処理、ビット列抽出の処理を実行する。例えば、BP復号部は、対数オッズ計算を行う対数オッズ計算部と、変数ノード処理を行う変数ノード処理部と、チェックノード処理を行うチェックノード処理部と、ビット列抽出を行うビット列抽出部とを備える。なお、上記ブロック構成は一例に過ぎず、BP復号のブロック構成は任意の構成であってもよい。
 図4を用いて、第1の例のBP復号の流れについて説明する。図4は、復号処理の第1の例を示す図である。以下では、図4に示す各種処理をイジングデコーダのBP復号部が行う場合を一例として説明する。
 図4に示すように、イジングデコーダのBP復号部は、信号の入力を受け付ける(ステップS31)。例えば、BP復号部には、受信信号r及びパリティ検査行列Hが入力される。
 そして、BP復号部は、対数オッズ計算を行う(ステップS32)。例えば、BP復号部は、ノイズモデルに基づき符号オッズを計算することにより、対数オッズ計算を行う。例えば、BP復号部は、受信信号rから対数オッズoを計算する。
 そして、BP復号部は、変数ノード処理を行う(ステップS33)。例えば、BP復号部は、ビリーフaを算出することにより、変数ノード処理を行う。例えば、BP復号部は、パリティ検査行列H、対数オッズo、及びビリーフbからビリーフaを算出することにより、変数ノード処理を行う。
 また、BP復号部は、チェックノード処理を行う(ステップS34)。例えば、BP復号部は、ビリーフbを算出することにより、チェックノード処理を行う。例えば、BP復号部は、パリティ検査行列H及びビリーフaからビリーフbを算出することにより、チェックノード処理を行う。BP復号部は、ステップS33及びステップS34を繰り返し行う。
 そして、BP復号部は、ビット列抽出を行う(ステップS35)。例えば、BP復号部は、対数オッズo及びビリーフaからビット列zを算出することにより、ビット列抽出を行う。第1の例では、BP復号の構成をそのまま用いて、疑似信号と疑似パリティ検査行列を入力することで、ビット列を獲得している。
 以下は、第1の例のBP復号を行うアルゴリズムの一例を示す。例えば、第1の例のBP復号は、以下のような手順#4-1~手順#4-6を行うアルゴリズムとなっている。
・手順#4-1. 受信信号rとパリティ検査行列Hを入力
・手順#4-2. 受信信号rから対数オッズo計算
・手順#4-3. フォワード・バックワードビリーフa、bを初期化
・手順#4-4. 変数ノード処理:(H, o, b) ->a
・手順#4-5. チェックノード処理:(H, a)->b
・手順#4-6. 指定条件繰り返し、ビット列z出力:(o, a)->z
 ここで、疑似パリティ検査行列は、行重みが3で列重みが2の疎なパリティ検査行列である。このため、スパース行列演算(非ゼロ要素とそのインデックスをメモリに保持し、演算に使う)を駆使して、高速化、省メモリ化をする。また、ファクタグラフにおけるループの最小値が6であり、比較的サイズが大きく疎性も際立っている。このため、上記の疑似パリティ検査行列は、良好の復号性能が期待できるパリティ検査行列である。
[2-1-2-5.第2の例のBP復号]
 次に、第2の例について説明する。例えば、第2の例は、疑似パリティ検査行列の構造の特徴を生かしたBP復号である。
 第2の例では、BP復号は、対数オッズ計算、変数ノード処理#1、変数ノード処理#2、チェックノード処理X、ビット列抽出の処理を実行する。第2の例は、疑似パリティ検査行列の構造が2つの行列で構成されていることを利用する構成である。例えば、BP復号部は、対数オッズ計算を行う対数オッズ計算部と、変数ノード処理#1及び変数ノード処理#2を行う変数ノード処理部と、チェックノード処理Xを行うチェックノード処理部と、ビット列抽出を行うビット列抽出部とを備える。なお、上記ブロック構成は一例に過ぎず、BP復号のブロック構成は任意の構成であってもよい。
 図5を用いて、第2の例のBP復号の流れについて説明する。復号処理の第2の例を示す図である。以下では、図5に示す各種処理をイジングデコーダのBP復号部が行う場合を一例として説明する。なお、図4と同様の点については適宜説明を省略する。
 図5に示すように、イジングデコーダのBP復号部は、信号の入力を受け付ける(ステップS41)。例えば、BP復号部には、受信信号r1,r2及び検査行列Hcが入力される。
 そして、BP復号部は、対数オッズ計算を行う(ステップS42)。例えば、BP復号部は、受信信号r1から対数オッズo1を計算する。
 そして、BP復号部は、変数ノード処理#1を行う(ステップS43)。例えば、BP復号部は、ビリーフa1を算出することにより、変数ノード処理#1を行う。例えば、BP復号部は、検査行列Hc、対数オッズo1、及びビリーフb1からビリーフa1を算出することにより、変数ノード処理#1を行う。
 そして、BP復号部は、対数オッズ計算を行う(ステップS44)。例えば、BP復号部は、受信信号r2から対数オッズo2を計算する。
 そして、BP復号部は、変数ノード処理#2を行う(ステップS45)。例えば、BP復号部は、ビリーフa2を算出することにより、変数ノード処理#2を行う。例えば、BP復号部は、対数オッズo2及びビリーフb2からビリーフa2を算出することにより、変数ノード処理#2を行う。
 また、BP復号部は、チェックノード処理Xを行う(ステップS46)。例えば、BP復号部は、ビリーフb1,b2を算出することにより、チェックノード処理Xを行う。例えば、BP復号部は、ビリーフa1,a2からビリーフb1,b2を算出することにより、チェックノード処理Xを行う。BP復号部は、ステップS42~ステップS46を繰り返し行う。なお、ステップS42~ステップS46は、各処理を説明するためのものであり、処理が可能であれば任意の順序で行われてもよい。例えば、ステップS44、S45の処理は、ステップS42、S43の処理と並列して行われてもよいし、ステップS42、S43の処理よりも先に行われてもよい。
 そして、BP復号部は、ビット列抽出を行う(ステップS45)。例えば、BP復号部は、対数オッズo1及びビリーフa1からビット列z1、すなわちビット列zを算出することにより、ビット列抽出を行う。第2の例では、信号とバイナリ変数を、元のバイナリ変数に由来する変数と、2つのバイナリ変数のペアに由来する変数に分けて扱っている。
 以下は、第2の例のBP復号を行うアルゴリズムの一例を示す。例えば、第2の例のBP復号は、以下のような手順#5-1~手順#5-7を行うアルゴリズムとなっている。
・手順#5-1. 受信信号r1,r2と検査行列コアHcを入力
・手順#5-2. 受信信号r1,r2から対数オッズo1,o2を計算
・手順#5-3. フォワード・バックワードビリーフa1,a2,b1,b2を初期化
・手順#5-4. 変数ノード処理#1:(H, o1, b1) ->a1
・手順#5-5. 変数ノード処理#2:b1 ->a1
・手順#5-6. チェックノード処理x:(a1, a2)->(b1, b2)
・手順#5-7. 指定条件繰り返し、ビット列z出力:(o1, a1)->z1 (=z)
 第2の例の場合、保持しなければならないメモリを少なくすることができる。また、第2の例の場合、ゼロが出現する演算を削減することができる。
[2-1-2-6.スピン変数決定]
 スピン変数決定により、復号ビット系列が入力され、スピン変数配列が出力される。イジングデコーダのスピン変数決定部は、スピン変数決定を行う。例えば、スピン変数決定部は、復号ビット系列zを入力して、スピン変数配列s=1-2zを出力する。
[3.第3の実施例]
 次に、本開示に関する処理を実行するプログラム(関数)の一例を第3の実施例として説明する。なお、以下に示すプログラムは、例えば、第2の実施例において示した処理のうち同じ名称の処理を実行するためのプログラムである。例えば、以下に示すプログラムは、上述したイジングデコード処理を実行するためのプログラムである。例えば、以下に示すプログラムは、上述したイジングデコーダ(例えば情報処理装置100等)により実行される。
[3-1.メイン関数]
 まず、メイン関数を以下に示す。以下に示すメイン関数は、イジングモデルの係数行列を入力して、基底スピン配位を出力する関数(プログラム)例である。
function ising_decoder(J, h):
 Q = ising_to_qubo(J, h)
 r, H = qubo_to_decodeing(Q)
 z = bp(H, r)
 s = 1 - 2 * z[1:N]
 return s
 メイン関数である上記の「ising_decoder」は、イジングモデルの係数行列J,hを入力とし、スピン変数sを出力する関数(プログラム)である。「ising_decoder」は、イジングデコード処理を実行するためのメイン関数である。
[3-2.イジングモデル-QUBO変換]
 次に、イジングモデル-QUBO変換を実行する関数(「イジングモデル-QUBO変換関数」ともいう)を以下に示す。以下に示すイジングモデル-QUBO変換関数は、イジングモデルの係数行列を入力して、QUBOの係数行列を出力する関数(プログラム)例である。
function ising_to_qubo(J, h):
 Q = -4J + diag(2h + 4sum(J, axis=1))
 Q = (Q + Q.transpose()) / 2
 return Q
 上記の関数diag(x)は、入力ベクトルxを対角成分とする対角行列を作る関数である。たとえば、プログラミング言語pythonのライブラリの一つnumpyなどで利用することができる。sum(J, axis=1)は、行列Jを指定した軸に関して足し合わせる関数である。この関数もnumpyで利用できる。また、行列Qのメンバ関数transpose()は、Qの転置行列を作る関数である。Qが複素数行列ならば、Qの随伴行列を作る関数である。この関数もnumpyで利用できる。イジングモデル-QUBO変換関数である上記の「ising_to_qubo」は、イジングモデルの係数行列J,hを入力とし、QUBOの係数行列Qを出力する関数(プログラム)である。「ising_to_qubo」は、メイン関数である上記の「ising_decoder」中の一行目に記載された関数に対応する。
[3-3.QUBO-復号問題変換]
 次に、QUBO-復号問題変換を実行する関数(「QUBO-復号問題変換関数」ともいう)を以下に示す。以下に示すQUBO-復号問題変換関数は、QUBOの係数行列を入力して、復号問題における信号列、符号列、パリティ検査行列を出力する関数(プログラム)例である。
function qubo_to_decoding(Q):
 r1 = 1/2 - 2* sum(Q, axis=1)
 r2 = 1/2 * (1 + Q)
 r = concatenate(r1, r2)
 H1 = create_binary_matrix(Q)
 H2 = I(M)
 H = concatenate(H1, H2)
 return r, H
 QUBO-復号問題変換関数である上記の「qubo_to_decoding」は、QUBOの係数行列Qを入力とし、例えば信号列r、パリティ検査行列Hを出力する関数(プログラム)である。「qubo_to_decoding」は、メイン関数である上記の「ising_decoder」中の二行目に記載された関数に対応する。
[3-4.第1の例のBP復号]
 次に、第1の例のBP復号を実行する関数(「第1の例のBP復号関数」ともいう)を以下に示す。以下に示す第1の例のBP復号関数は、疑似パリティ検査行列(下記第1の例のBP復号関数中のH)と疑似信号列(下記第1の例のBP復号関数中のr)を入力して、普通のBP復号で復号された符号列を出力する関数(プログラム)例である。
function bp_decoding_v1(H, r):
 lodds = calc_log_odds(r)
 alpha = 0s
 for i = 1 to max_iteration
  beta = update_check_node(H, lodds, alpha)
  alpha = update_variable_node(H, beta)
 z = get_solution(alpha)
 return z
 第1の例のBP復号関数である上記の「bp_decoding_v1」は、例えば疑似信号列r、疑似パリティ検査行列Hを入力とし、ビット列zを出力する関数(プログラム)である。「bp_decoding_v1」は、メイン関数である上記の「ising_decoder」中の三行目に記載された関数「bp(H, r)」として用いられる関数である。例えば、第1の例のBP復号関数(bp_decoding_v1)を用いる場合、メイン関数「ising_decoder」中の関数「bp(H, r)」の記載は、「bp_decoding_v1」に合わせた記載(例えば「bp_decoding_v1(H, r)」)に変更される。
[3-5.第2の例のBP復号]
 次に、第2の例のBP復号を実行する関数(「第2の例のBP復号関数」ともいう)を以下に示す。以下に示す第2の例のBP復号関数は、疑似パリティ検査行列のコア部分(下記第2の例のBP復号関数中のHc)と疑似信号列(下記第2の例のBP復号関数中のr1,r2)を入力して、拡張したBP復号で復号された符号列を出力する関数(プログラム)例である。
function bp_decoding_v2(Hc, r1, r2):
 lodds1 = calc_log_odds(r1)
 lodds2 = calc_log_odds(r2)
 alpha = 0s
 for i = 1 to max_iteration
  beta = update_check_node(Hc, lodds1, alpha)
  alpha = update_variable_node_v2(Hc, lodds2, beta)
 z = get_solution(alpha)
 return z
 第2の例のBP復号関数である上記の「bp_decoding_v2」は、例えば疑似信号列r1,r2、疑似パリティ検査行列のコア部分の行列Hcを入力とし、ビット列zを出力する関数(プログラム)である。「bp_decoding_v2」は、メイン関数である上記の「ising_decoder」中の三行目に記載された関数「bp(H, r)」として用いられる関数である。例えば、第2の例のBP復号関数(bp_decoding_v2)を用いる場合、メイン関数「ising_decoder」中の関数「bp(H, r)」の記載は、「bp_decoding_v2」に合わせた記載(例えば「bp_decoding_v2(Hc, r1, r2)」)に変更される。
 例えば、情報処理装置100は、上記のようなプログラム(関数)及び、各プログラムにより呼び出されるプログラム(関数)を記憶部120(図17参照)に記憶し、各プログラムを用いて処理を実行する。
[4.第4の実施例]
 第4の実施例として、システムの全体像を説明する。以下では、本開示の処理を利用するアプリケーションのシステム全体像について説明する。
[4-1.情報処理システム例]
 まず、図6を用いて情報処理システム1の構成について説明する。図6は、情報処理システムの構成の一例を示す図である。図6に示すように、情報処理システム1は、データベース2と、アプリケーションCPU(Central Processing Unit)3と、組合せ最適化メモリ4と、組合せ最適化処理CPU5(組合せ最適化処理部ともいう)と、イジングモデルメモリ6と、イジングデコーダ7と、復号処理メモリ8とを構成要素として含む。以下では、組合せ最適化メモリ4、組合せ最適化処理CPU5、及びイジングモデルメモリ6を合わせて組合せ最適化変換部10と称する場合がある。
 なお、情報処理システム1において、データベース2、アプリケーションCPU3、組合せ最適化メモリ4、組合せ最適化処理CPU5、イジングモデルメモリ6、イジングデコーダ7、及び復号処理メモリ8の各構成要素は、1つの装置として構成されてもよいし、複数の装置として構成されてもよい。1つの装置として構成される場合、例えば各構成要素間はバス等の任意の信号線により通信可能に接続される。
 また、各構成要素が複数の装置として構成(分散して配置)される場合、例えば、各構成要素間は所定の通信網(ネットワーク)を介して、有線または無線により通信可能に接続される。情報処理システム1は、組合せ最適化変換部10を有する第一の装置と、イジングデコーダ7を有する第二の装置とを含んでもよい。例えば、情報処理システム1は、データベース2を有するデータサーバ装置と、アプリケーションCPU3、及び組合せ最適化変換部10を有する第一の装置(最適化処理装置)と、イジングデコーダ7及び復号処理メモリ8を有する第二の装置(例えば情報処理装置100)の3つの装置を含んでもよい。なお、上記の構成は一例に過ぎず、情報処理システム1の装置構成は任意の構成が採用可能である。
 情報処理システム1は、組合せ最適化を内包するアプリケーションを実現するためのシステムである。アプリケーションの例として、例えば、通信路符号化・復号、圧縮センシング、超解像などが挙げられる。この場合、アプリケーションに内包される組合せ最適化はそれぞれ、最尤復号またはl0ノルム最小化である。以下、情報処理システム1の各構成要素について説明する。
[4-2.アプリケーションCPU]
 アプリケーションCPU3は、アプリケーション全体を制御するCPU(処理装置)である。なお、アプリケーションCPU3は、CPUに限らず、例えばGPU(Graphics Processing Unit)等の他の処理装置(プロセッサ)、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等の集積回路により実現されてもよい。
 例えば、アプリケーションCPU3は、組合せ最適化を扱う処理が必要になったときに、組合せ最適化メモリ4に情報を書き込み、また、組合せ最適化処理部である組合せ最適化処理CPU5を起動して、組合せ最適化処理CPU5での処理結果を受け取る。
[4-3.組合せ最適化メモリ]
 組合せ最適化メモリ4は、元の組合せ最適化で扱う情報(「組合せ最適化用情報」ともいう)を記憶するメモリである。組合せ最適化メモリ4は、例えば、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現される。
 組合せ最適化用情報は、アプリケーションによって異なるが、例えば、動的に得られるデータと静的に用意されているデータである。例えば、通信路最尤復号のアプリケーションの場合、データは受信信号であり、データベースは生成行列やパリティ検査行列である。また、圧縮センシングのアプリケーションの場合、データはセンサーからの情報であり、データベースは観測行列、辞書行列などである。
[4-4.組合せ最適化処理CPU]
 組合せ最適化処理CPU5は、組合せ最適化処理部として機能し、組合せ最適化メモリ4に記録された情報を元に、イジングモデルの係数情報を算出して、イジングモデルメモリ6に書き込む。なお、組合せ最適化処理CPU5は、CPUに限らず、例えばGPU等の他の処理装置(プロセッサ)、ASICやFPGA等の集積回路により実現されてもよい。
 組合せ最適化処理CPU5は、既に検討された組合せ最適化のイジングモデルへの変換処理方法のデータベース(イジングモデルのデータベース)を用いてもよい。この場合、組合せ最適化処理CPU5は、図示略したイジングモデルのデータベース等に予めリストアップ(記憶)されていてその処理にデータを渡して実行するだけでも良い。例えば、組合せ最適化処理CPU5は、イジングモデルのデータベースに記憶された組合せ最適化のイジングモデルへの変換処理方法を選択し、その変換処理方法によりイジングモデルの係数情報を算出してもよい。
 また、組合せ最適化処理CPU5は、イジングデコーダ7を起動する。そして、組合せ最適化処理CPU5は、イジングデコーダ7から得られたスピン変数の組合せから、元の組合せ最適化問題の解を求め、この結果を、アプリケーションCPU3に返す。組合せ最適化処理CPU5による処理は、必ずしもアプリケーションCPU3の処理と独立である必要はない。例えば、アプリケーションCPU3と組合せ最適化処理CPU5とは一体であってもよい。
[4-5.イジングデコーダ]
 イジングデコーダ7は、上述のようなイジングデコード処理の処理を行う。イジングデコーダ7は、例えばCPU、GPU、FPGAにより実現される。イジングデコーダ7は、上記に限らず、例えばCPU、GPU以外の処理装置(プロセッサ)、FPGA等により実現されてもよい。
 イジングデコーダ7は、組合せ最適化処理CPU5からの指示により、イジングモデルメモリ6に記録されていたイジングモデルの係数行列を取得する(読み取る)。そして、イジングデコーダ7は、取得したイジングモデルの係数行列を用いて、復号アルゴリズム処理を行って、得られた符号列からスピン変数列を生成して、生成したスピン変数列を組合せ最適化処理CPU5に返す。
 具体的には、イジングデコーダ7は、イジングモデル係数行列から、QUBO係数行列を生成する。そして、イジングデコーダ7は、生成したQUBO係数行列から疑似パリティ検査行列と疑似信号列を生成する。そして、イジングデコーダ7は、生成した疑似パリティ検査行列と疑似信号列から符号列を復号して、復号列をスピン変数の配列とする。
 イジングデコーダ7は、途中で生成される、QUBO係数行列や疑似パリティ検査行列、疑似信号列をイジングデコーダ7のメモリに書き込んで保持する。疑似パリティ検査行列は(比較的)静的な情報であるので、予め決められた情報としてデータベースから読み取るようにしてもよい。
[4-6.復号処理メモリ]
 復号処理メモリ8は、イジングデコーダ7で必要となる、QUBO係数行列や疑似パリティ検査行列、疑似信号列が格納される(書き込まれる)。また、復号処理メモリ8は、BP復号処理で必要となる中間変数が格納される(書き込まれる)。復号処理メモリ8は、例えば、RAM、フラッシュメモリ等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現される。
[5.第5の実施例]
 次に、本開示に関する処理を通信路の符号化・復号システム1Aに用いる例を第5の実施例として説明する。まず、図7を用いて通信路の符号化・復号システム1Aの概要を説明する。図7は、本開示の情報処理を適用した第5の実施例を示す図である。例えば、通信路の符号化・復号システム1Aは、情報処理システム1が適用されるシステムの一例である。
 図7に示す例では、通信路の符号化・復号システム1Aは、情報を信号系列に変換して送信する送信機11と、信号系列から元の情報を復元する受信機12で構成される。例えば、送信情報を送信機11が信号系列として受信機12へ送信し、受信機12が受信した信号系列から元の情報を受信情報として復元する。
 送信機11は、情報ブロック生成部、メッセージ生成部、符号生成部、信号送信部で構成される。送信機11は、情報ブロック生成部及びメッセージ生成部(メッセージ送信部)は、情報をメッセージのビット列に変換する。符号生成部は、変換したメッセージのビット列から符号ビット列に変換する。信号送信部は、変換した符号ビット列を対象として、変調などを加えて受信機12へ送信する。
 受信機12は、信号受信部と、メッセージ復号部と、情報復元部で構成される。信号受信部は、変調信号をベースバンド信号に変換する。メッセージ復号部は、ベースバンド信号からメッセージのビット列を復元する。情報復元情報復元部は、ブロック化されているメッセージを接続して情報を復元する。なお、リードソロモン符号やBCH符号などが外符号となっていれば、その復号処理を情報復元部が行ってもよい。
 第5の実施例において、本開示の情報処理を活用するのは受信機12の部分である。この点については図8を用いて説明する。図8は、本開示の情報処理を適用した受信機の構成の一例を示す図である。受信機12は、図8に示すように、信号受信部21と、データベース22と、メッセージ復号部としての最尤復号部23と、情報復元部24と、組合せ最適化アクセラレータ50で構成される。このように、図8は、本開示の情報処理が適用されている受信機12の構成を表すブロック図である。
 データベース22は、生成行列、パリティ検査行列等を記憶する記憶装置(記憶部)として機能する。また、図8の構成のうち、信号受信部21と情報復元部24は、上述した通常の構成(信号受信部、情報復元部)のものを用いる。
 一方、メッセージ復号部には、通常よく用いられる復号法、たとえば、ビリーフプロパゲーション復号のかわりに、ここでは、最尤復号を用いる。図8において、最尤復号部23と記載されている箇所が対応する。
 上述の非特許文献1によれば、この最尤復号を実現するには、組合せ最適化アクセラレータとしての量子アニーリングを用いる。上述の非特許文献1によれば、符号の生成行列に由来する方法と、パリティ検査行列に由来する方法があり、イジングモデルとしては、以下の式(47)のようにエネルギー関数が定義されている。例えば、式(47)は、符号の生成行列に由来する場合のエネルギー関数である。
Figure JPOXMLDOC01-appb-M000047
 ここで、式(47)中のσはメッセージビットに対応するスピン変数であり、長さMのメッセージビットmと以下の式(48)に示すような関係にある。
Figure JPOXMLDOC01-appb-M000048
 また、式(47)中のp,aは、符号が生成行列から生成されていることの制約を満たすために導入された補助スピンである。生成行列の制約をみたすために、エネルギー関数は以下の式(49)に示すペナルティ項を導入している。
Figure JPOXMLDOC01-appb-M000049
 ここで、imは生成行列におけるi行目の左からm番目の非ゼロ成分のインデックスを表している。上述の非特許文献1によれば、このペナルティ項は、制約を満たしているときすべて0で満たしていない場合は、正の値となる。また、λimは正の値をとる未定定数であるが、この値が十分大きいとき最尤復号と等価になる。
 パリティ検査行列に由来する場合のエネルギー関数は、以下の式(50)のように表現される。
Figure JPOXMLDOC01-appb-M000050
 ここで、σは符号ビットに対応するスピン変数であり、長さNの符号ビットxと以下の式(51)に示すような関係にある。
Figure JPOXMLDOC01-appb-M000051
 また、式(51)中のp,aは、符号がパリティ検査行列によるパリティ制約を満たすために導入された補助スピンである。パリティ制約をみたすために、エネルギー関数は以下の式(52)に示すペナルティ項を導入している。
Figure JPOXMLDOC01-appb-M000052
 ここで、kmはパリティ検査行列におけるk行目の左からm番目の非ゼロ成分のインデックスを表している。上述の非特許文献1によれば、このペナルティ項は、制約を満たしているときすべて0で満たしていない場合は、正の値となる。
 また、λkmは正の値をとる未定定数であるが、この値が十分大きいとき最尤復号と等価になる。いずれの方式においても、イジングモデルのエネルギー関数が、補助変数を含むスピン変数のたかだか二次の次元で表現されている。このため、プログラムなどを用いて、イジングモデルの二次の係数行列Jと、一次の係数行列(ベクトル)hを抽出することができる。
 上述の非特許文献1では、量子アニーリングのシステムにこれらのイジングモデルの係数行列J,hを入力することで、イジングモデルの基底状態のスピン変数σ,p,aを獲得し、これらを元にメッセージビット列mを復元している。
 第5の実施例では、上述の非特許文献1において、量子アニーリングが用いられる組合せ最適化アクセラレータの代わりに、組合せ最適化アクセラレータ50(イジングデコーダ)を利用する。すなわち、イジングデコーダにこれらのイジングモデルの係数行列J,hを入力することで、イジングモデルの基底状態のスピン変数σ,p,aを獲得し、これらを元にメッセージビット列mを復元する。
[6.第6の実施例]
 次に、本開示に関する処理をセンシングシステムに用いる例を第6の実施例として説明する。まず、図9を用いてセンシングシステムの概要を説明する。図9は、本開示の情報処理を適用した第6の実施例を示す図である。例えば、センシングシステム1Bは、情報処理システム1が適用されるシステムの一例である。
 図8に示す例では、センシングシステム1Bは、センサーの計測状態の制御(オンオフや計測精度のスケジューリングなど)をするセンサー制御部31と、実際の計測対象を計測して、データを出力するセンシング部32で構成されている。なお、センシングシステム1Bには、センサー制御部31、センシング部32のみに限らず、センシングシステム1Bを実現するための各種構成が含まれてもよい。
 センシングシステムでは、センサーの省電力化や、センサー自体の個数の削減、センシングデータサイズの圧縮を目的として、完全な計測データを取得することに代えて、部分的なデータを取得することが行われる。このように部分的なデータを取得するセンシングのことを、圧縮センシングと呼ぶこともある。
 このように、圧縮センシングにより部分的なデータしか取得していない場合、信号処理によりデータを復元することが行われる。この場合、センシング部32は、計測対象からデータを取得するセンサーのほかに、スパースモデリングと呼ばれるデータのモデリングを行うモデリング部(「スパースモデル処理部」ともいう)と、このモデリングに基づいて完全データを復元するデータ復元部(「情報復元部」ともいう)で構成される。
 通常、計測対象は、たとえば、MRI(Magnetic Resonance Imaging:磁気共鳴イメージング)システムで取得する断層画像や、レーダ(ライダ)アレイで計測する周辺オブジェクトの分布、あるいは、マイクアレイで計測する音源の分布など、センサーアレイで計測する計測対象などである。
 これらの計測対象がセンサーに入力され、スパースモデル処理部では、データを説明する数少ない説明変数を計算する。この処理には、辞書行列、観測行列とよばれるデータベースを用いて、説明変数を求める。
 そして、データ復元部では、スパースモデル処理部で得られた説明変数と予め用意されているモデル情報などをもとに、完全なデータに相当するデータを復元する。復元されたデータは、例えばMRIやCT(Computed Tomography)である場合、断層画像であり、レーダアレイなら、オブジェクトの分布図(周辺の歩行者分布(車載レーダ)、水滴の分布(気象レーダ))などである。
 一般に、モデリング部(スパースモデル処理部)では、l1ノルム最小化と呼ばれる最適化手法のアルゴリズムが用いられる。たとえば、Lasso(Least Absolute Shrinkage and Selection Operator)はその代表例である。
 一方、スパースモデリングでは、l0ノルム最小化と呼ばれる手法が、最も正しい解に到達することが保証されていて、l1ノルム最小化がl0ノルムと同等の性能を発揮するには、ある検証が困難な条件を満たすことが必要である。つまり、スパースモデリングではl0ノルム最小化が最も理想的である。しかし、同時に、l0ノルム最小化は組合せ最適化の問題で計算困難であり、実用的ではないことも知られている。
 以下の図10は、第1の実施例~第3の実施例を適用した組合せ最適化アクセラレータ50で、このl0ノルム最小化をより実用的にするための構成である。図10は、本開示の情報処理を適用した構成の一例を示す図である。
 図10に示すセンシングシステム1Bは、センサー41と、データベース42と、モデリング部としてのスパースモデル処理部43と、データ復元部である情報復元部44と、組合せ最適化アクセラレータ50で構成される。例えば、センサー41、データベース42、スパースモデル処理部43、情報復元部44、及び組合せ最適化アクセラレータ50は、図9中のセンシング部32に対応する。
 センサー41は、観測した現象を電気信号やデータに変換して出力するデバイスである。なお、センサー41は、画像センサー、音センサー、加速度センサー、位置センサー、温度センサー、湿度センサー、照度センサー、圧力センサー等、どのようなセンサーであってもよい。データベース22は、観測行列、辞書行列等を記憶する記憶装置(記憶部)として機能する。
 ここで、従来のスパースモデル処理では、l1最小化アルゴリズムを用いることが一般的であった。l1最小化アルゴリズムは、組合せ最適化ではなく線形計画法の範疇に入り、既存の計算機で十分実用的に解を求めることができる。
 しかし、l0最小化アルゴリズムを用いる場合、組合せ最適化を解くアルゴリズムが必要であり、第6の実施例のような組合せ最適化アクセラレータ50を用いる構成となる。
 以下では、l0最小化アルゴリズムを、量子アニーリングで解く場合の一例を簡単に説明する。以下の式(53)に示すように潜在変数(説明変数)をビット量子化する量子化スパースモデリングを考える。
Figure JPOXMLDOC01-appb-M000053
 ここで、bikのziのKビット量子化表現におけるkビット目のビットを表している。αkは定数で、αk=2-kとすると、量子化幅2-K、区間[0,1-2-K]の量子化が実現できる。
 観測行列(辞書行列)をUとし、観測データをxとした場合に、l0最小化に対応するイジングモデルのエネルギー関数は以下の式(54)及び式(55)のように表される。
Figure JPOXMLDOC01-appb-M000054
Figure JPOXMLDOC01-appb-M000055
 ここで、式(54)、式(55)中のcは、l0ノルムを計算するために導入した補助変数である。第一項は、普通の最小二乗誤差項であるが、第二項はl0ノルム、第三項はl0ノルムを計算するために導入した補助変数が満たすべき制約条件を表すペナルティ項である。
 なお、変数b,cはバイナリ変数であるから、エネルギー関数をスピン変数で表すためには、以下の式(56)及び式(57)に示すような変換が必要である。
Figure JPOXMLDOC01-appb-M000056
Figure JPOXMLDOC01-appb-M000057
 エネルギー関数をスピン変数で表したとしても、この関数はスピン変数に関しては二次の関数である。このため、プログラムなどを用いて、イジングモデルの二次の係数行列Jと、一次の係数行列(ベクトル)hを抽出することができる。
 量子アニーリングのシステムにこれらのイジングモデルの係数行列J,hを入力することで、イジングモデルの基底状態のスピン変数σbcを獲得し、これらを元にスパース説明変数zのビット表現bを得ることができる。
 ビット表現では精度が低いので、説明変数zのうちビット表現による値が0でない説明次元だけを選択して、改めて解を求める。このようにして、スパースな説明変数の値を求めることができる。
 第6の実施例では、上記の方式において、量子アニーリングが用いられる組合せ最適化アクセラレータの代わり、組合せ最適化アクセラレータ50(イジングデコーダ)を利用する。イジングデコーダにこれらのイジングモデルの係数行列J,hを入力することで、イジングモデルの基底状態のスピン変数b,cを獲得し、これらを元にスパース説明変数zのビット表現bを獲得する。
 得られたビット表現では精度が低いので、説明変数zのうちビット表現による値が0でない説明次元だけを選択して、改めて解を求める。このようにして、スパースな説明変数の値を求めることができる。このように得られたスパースな説明変数を用いて、次のデータ復元ブロックで、完全データの復元を行う。この復元方法や復元されるデータは、前述した従来の構成と同等である。
[7.第7の実施例]
 次に、本開示に関する処理を、組合せ最適化を内包するアプリケーションの開発システム(単に「開発システム」ともいう)に利用する例を第7の実施例として説明する。まず、図11を用いて開発システムの概要を説明する。図11は、本開示の情報処理を適用した第7の実施例を示す図である。例えば、開発システム1Cは、情報処理システム1が適用されるシステムの一例である。
 図11に示すように、開発システム1Cは、端末51と、組合せ最適化データベース52と、開発アプリケーション53と、組合せ最適化部54と、イジングデコーダ55と、量子着想型計算機56と、量子アニーラ57と、ゲート型量子計算機58とを構成要素として含む。
 なお、開発システム1Cにおいて、端末51、組合せ最適化データベース52、開発アプリケーション53、組合せ最適化部54の各構成要素は、1つの装置として構成されてもよいし、複数の装置として構成されてもよい。1つの装置として構成される場合、例えば各構成要素間はバス等の任意の信号線により通信可能に接続される。例えば端末51が、組合せ最適化データベース52、開発アプリケーション53、及び組合せ最適化部54を有する場合、端末51は、イジングデコーダ55、量子着想型計算機56、量子アニーラ57、及びゲート型量子計算機58の各装置との間で通信し、情報を送受信する。この場合、端末51には、例えば、開発アプリケーション53等を含むアプリケーション開発のツール(開発ツール)がインストールされている。
 また、端末51、組合せ最適化データベース52、開発アプリケーション53、組合せ最適化部54の各構成要素が複数の装置として構成(分散して配置)される場合、例えば、各構成要素間は所定の通信網(ネットワーク)を介して、有線または無線により通信可能に接続される。例えば、開発システム1Cにおいて、例えば開発アプリケーション53がインストールされた端末51と、組合せ最適化データベース52を有するサーバ装置と、組合せ最適化部54を有する最適化処理装置と、イジングデコーダ55と、量子着想型計算機56と、量子アニーラ57と、ゲート型量子計算機58とを含んでもよい。この場合、最適化処理装置は、端末51、イジングデコーダ55、量子着想型計算機56、量子アニーラ57、及びゲート型量子計算機58の各装置との間で通信し、情報を送受信する。なお、上記の構成は一例に過ぎず、開発システム1Cの装置構成は任意の構成が採用可能である。
 開発システム1Cは、様々な組合せ最適化のイジングモデルによる表現をデータベース(例えば組合せ最適化データベース52)として保持していて、ユーザのリクエストに応じて切り替えることができる。開発システム1Cは、ユーザとのインターフェイスとなる端末部である端末51と、組合せ最適化のイジングモデルの表現を保有する組合せ最適化データベース52と、開発アプリケーション53本体と、組合せ最適化部54と、イジングデコーダ55等を有している。組合せ最適化データベース52には、様々な組合せ最適化の典型的なデータ変換過程がライブラリとして保存されている。具体的には、組合せ最適化データベース52には、組合せ最適化を内包する個々のアプリケーションで使われるデータ、データベースを入力として、イジングモデルの係数を出力する関数(あるいはクラス)が保存されている。
[7-1.計算機例]
 ここから、計算を実行する各種計算機について説明する。
(イジングデコーダ55)
 イジングデコーダ55は、イジングモデルの係数行列を入力として、基底状態のスピン変数の解を出力する計算機である。イジングデコーダ55は、図6のイジングデコーダ7と同様に、上述のようなイジングデコード処理の処理を行う。イジングデコーダ55は、例えばCPU、GPU、FPGAにより実現される。例えば、イジングデコーダ55は、後述する情報処理装置100であってもよい。
 例えば、イジングデコーダ55は、組合せ最適化部54からイジングモデルの係数行列を受信し、受信したイジングモデルの係数行列を用いてイジングデコード処理を行うことにより、基底状態のスピン変数の解を導出する。イジングデコーダ55は、導出した基底状態のスピン変数の解を組合せ最適化部54に送信する。
(量子着想型計算機56)
 量子着想型計算機56は、デジタル回路を用いた計算機である。例えば、量子着想型計算機56は、組合せ最適化をイジングモデルに埋め込むという考え方は流用しつつ、エネルギー最小化を熱揺らぎによって行うシミュレーテッドアニーリングをトランジスタ回路などの非量子デバイスを使って高速化した専用ハードウェアである。量子着想型計算機56は、例えばCMOS(Complementary metal-oxide-semiconductor)やデジタル回路等を用いるコンピュータ(計算機)である。例えば、量子着想型計算機56は、GPU等のプロセッサやFPGA等の集積回路を用いたコンピュータ(計算機)であってもよい。
 例えば、量子着想型計算機56は、組合せ最適化部54からイジングモデルの係数行列を受信し、受信したイジングモデルの係数行列を用いて、シミュレーテッドアニーリングにより基底状態のスピン変数の解を導出する。量子着想型計算機56は、導出した基底状態のスピン変数の解を組合せ最適化部54に送信する。
(量子アニーラ57)
 量子アニーラ57は、量子アニーリング方式を用いた計算機である。量子アニーラ57は、イジングスピンに量子ビットを用いる量子アニーリングマシン(量子コンピュータ)である。
 例えば、量子アニーラ57は、組合せ最適化部54からイジングモデルの係数行列を受信し、受信したイジングモデルの係数行列を用いて、量子アニーリングにより、基底状態のスピン変数の解を導出する。量子アニーラ57は、導出した基底状態のスピン変数の解を組合せ最適化部54に送信する。
 以下、量子アニーラ57の構成例について、図12を用いて説明する。図12は、量子アニーラの構成例を示す図である。
 図12に示すように、量子アニーラ57は、通信部571と、記憶部572と、量子デバイス部573と、制御部574とを有する。なお、量子アニーラ57は、量子アニーラ57の管理者等から各種操作を受け付ける入力部(例えば、キーボードやマウス等)や、各種情報を表示するための表示部(例えば、液晶ディスプレイ等)を有してもよい。
 通信部571は、例えば、NIC(Network Interface Card)や通信回路等によって実現される。通信部571は、所定のネットワーク(インターネット等)と有線又は無線で接続され、ネットワークを介して、組合せ最適化部54を有する装置(最適化処理装置)等の他の装置等との間で情報の送受信を行う。
 記憶部572は、例えば、RAM、フラッシュメモリ等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現される。記憶部572は、情報の表示に用いる各種情報を記憶する。
 量子デバイス部573は、種々の量子計算を実行する。例えば、量子デバイス部573は、量子処理ユニット(QPU:Quantum Processing Unit)により実現される。量子デバイス部573は、例えば、組合せ最適化部54を有する装置等の他の装置から受け付けたイジングモデルのパラメータに基づいて、そのイジングモデルの基底状態を実現する。言い換えれば、量子デバイス部573は、イジングモデルが基底エネルギー状態となる最適スピン配置を実現する。すなわち、量子デバイス部573は、最適化問題を最適化した状態を実現する。
 量子デバイス部573は、例えば、複数の量子ビットから構成される。量子デバイス部573は、予め絶対零度付近まで冷却される。量子デバイス部573は、量子デバイス部573にイジングモデルのパラメータが入力された後、内部でイジングモデルと横磁場モデル(量子ゆらぎモデル)の比率を時間発展させる。これにより、量子デバイス部573上で、イジングモデルのパラメータに応じた最適なスピン配置が実現する。このように、量子デバイス部573上でイジングモデルの最適なスピン配置が物理的に実現される。そして、量子デバイス部573が測定されることにより、イジングモデルの最適なスピン配置を得ることができる。これにより、量子デバイス部573は、離散最適化問題を最適化することができる。例えば、量子デバイス部573は、二値二次形式の目的関数の最適化問題を最適化することができる。
 制御部574は、例えば、CPUやGPU等によって、量子アニーラ57内部に記憶されたプログラムがRAM等を作業領域として実行されることにより実現される。また、制御部574は、コントローラであり、例えば、ASICやFPGA等の集積回路により実現されてもよい。
 図12に示すように、制御部574は、取得部575と、計算部576と、送信部577とを有し、以下に説明する情報処理の機能や作用を実現または実行する。なお、制御部574の内部構成は、図12に示した構成に限られず、後述する情報処理を行う構成であれば他の構成であってもよい。
 取得部575は、各種情報を受信する。取得部575は、外部の情報処理装置から各種情報を受信する。取得部575は、組合せ最適化部54を有する装置等の他の情報処理装置から各種情報を受信する。
 取得部575は、例えば量子デバイス部573を用いた計算を行い、測定するための指示を組合せ最適化部54を有する装置等の他の情報処理装置から受け付ける。取得部575は、イジングモデルのパラメータを量子デバイス部573による計算(測定)の指示として受け付ける。
 取得部575は、各種の情報を取得する。取得部575は、記憶部572から情報を取得する。取得部575は、組合せ最適化部54を有する装置等の外部の情報処理装置から各種の情報を取得する。取得部575は、入力部により受け付けられた入力情報を取得する。取得部575は、例えば、外部の情報処理装置からイジングモデルのパラメータに関する情報を取得する。取得部575は、計算部576による量子デバイス部573の測定結果(計算結果)を取得する。
 計算部576は、各種計算を実行する。計算部576は、量子デバイス部573を用いた計算を実行する。計算部576は、量子デバイス部573を測定する。計算部576は、イジングモデルの最適スピン配置が実現された量子デバイス部573を測定する。
 例えば、計算部576は、組合せ最適化部54を有する装置から取得部575が受信したイジングパラメータを用いて、計算を実行する。
 送信部577は、外部の情報処理装置へ各種情報を送信する。例えば、送信部577は、組合せ最適化部54を有する装置等の他の情報処理装置へ各種情報を送信する。送信部577は、記憶部572に記憶された情報を送信する。
 送信部577は、組合せ最適化部54を有する装置等の他の情報処理装置からの情報に基づいて、各種情報を送信する。送信部577は、記憶部572に記憶された情報に基づいて、各種情報を送信する。
 送信部577は、計算部576による量子デバイス部573の測定結果を、計算の指示を行った装置に送信する。送信部577は、計算部576による量子デバイス部573の測定結果を、パラメータの送信元に送信する。送信部577は、計算部576による量子デバイス部573の測定結果を、計算の要求元に送信する。送信部577は、計算部576による量子デバイス部573の測定結果を、組合せ最適化部54を有する装置等の他の情報処理装置に送信する。
 例えば、図12の例では、送信部577は、組合せ最適化部54を有する装置から受信したパラメータを用いて計算(測定)したイジングスピンの値を組合せ最適化部54を有する装置へ送信する。
(ゲート型量子計算機58)
 ゲート型量子計算機58は、量子ゲート方式を用いた計算機である。既知の技術であるため詳細な説明は省略するが、ゲート型量子計算機58は、量子ゲートにより演算処理(計算処理)を行う量子コンピュータである。量子アニーリング方式が組合せ最適化に特化した側面が強い一方で、量子ゲート方式は汎用的計算を扱うことができ、また、特定の計算について量子ゲート方式を基盤とするアルゴリズムがすでに提案されている。たとえば、QAOA(Quantum Approximate Optimization Algorithm)と呼ばれる手法は、量子アニーリングと同様に最適化を扱う手法である。
[7-2.ユーザインタフェース]
 ここから、図13~図16を用いて、開発システム1Cを利用するユーザに対するユーザインタフェース(以下「UI」と記載する場合がある)について記載する。図13~図16は、ユーザインタフェースの一例を示す図である。
 例えば開発システム1Cの端末51がUIを提供する。例えば、端末51は、ディスプレイ(画面)に後述するコンテンツCT1~CT4を表示する。なお、端末51がUIを提供する場合を一例として説明するが、端末51に限らず、例えば情報処理装置100等の他の装置がユーザにUIを提供してもよい。この場合、情報処理装置100(図17参照)が入力部140や表示部150等によりUIを提供してもよい。例えば、端末51が情報処理装置100であってもよい。
 開発システム1Cは、組合せ最適化データベース52に格納されたライブラリに連動して、例えば、端末51上でリストボックスを表示してもよい。例えば、端末51は、図13中のコンテンツCT1に示すように、イジングモデルに変換できる組合せ最適化タスクのリストを表示する。コンテンツCT1には、イジングモデルに変換できる組合せ最適化タスクとして、整数の分類、巡回セールスマン問題、彩色問題、最尤復号、l0最小化スパースコーディング、因数分解、スケジューリング問題、最適分配問題等が含まれる。なお、イジングモデルに変換できる組合せ最適化タスクは上記に限られない。
 なお、イジングモデルに変換できる組合せ最適化リストについては、例えば下記の文献の開示がある。
 ・Ising formulations of many NP problems, Andrew Lucas < https://arxiv.org/abs/1302.5843 >
 ユーザはリストボックスをチェックしてその組合せ最適化の説明を得られる。端末51は、ユーザに選択された組合せ最適化の説明を表示する。例えば、端末51は、図14中のコンテンツCT2に示すように、選択された組合せ最適化である最尤復号の説明を表示する。図14の例では、コンテンツCT2がコンテンツCT1とは別ウインドウで表示される。コンテンツCT2には、選択された組合せ最適化である最尤復号についての簡単な説明がなされ、必要な情報について入力できる態様になっている。具体的には、コンテンツCT2には、符号生成行列またはパリティ検査行列のデータベースを指定するURL(Uniform Resource Locator)と、受信信号ベクトルを指定するURLを入力するボックスが含まれる。
 上記のように、必要な情報は、典型的にはデータベースとデータであるから、その情報について入力できるボックスが用意されていても良い。なお、アプリケーションに応じて、必要なデータの形式などは代わるので、開発アプリケーションと、ライブラリ側でそれが吸収できるようになっていることが望ましい。例えば、端末51は、選択された組合せ最適化(アプリケーション)に応じて、その組合せ最適化に必要な情報を入力するための画面(コンテンツ)を表示してもよい。
 ユーザは、上記のインターフェイス(例えばコンテンツCT2)を介して、必要な情報を入力し、ソルバを選択して組合せ最適化を実行する。ソルバはイジングデコーダを含めて、量子アニーラやゲート型量子計算機(のQAOA法など)など選択できるようになっていても良い。開発システム1Cは、例えば、端末51に選択可能なソルバのリストを表示してもよい。
 例えば、端末51は、図15中のコンテンツCT3に示すように、選択可能なソルバのリストを表示する。コンテンツCT3には、ソルバとして、量子アニーラ、量子着想型計算機、イジングデコーダ、ゲート型量子計算機、線形整数計画ソルバ、整数計画ソルバ等が含まれる。なお、ソルバは上記に限られない。
 ユーザはリストボックスをチェックしてソルバを選択する。コンテンツCT3は、ユーザがソルバとして、イジングデコーダを選択した場合を示す。なお、選択した組合せ最適化の選択を解除する場合は、コンテンツCT3中の「CANCEL」ボタンを押す。これにより、組合せ最適化の選択が解除され、その組合せ最適化のチェックボックスのチェックが非表示に変更される。図14では、コンテンツCT3中の「CANCEL」ボタンが押された場合、イジングデコーダの選択が解除され、イジングデコーダのチェックボックスのチェックが非表示に変更される。
 また、開発システム1Cは、ユーザが選択したソルバについての情報(ソルバ情報)を表示してもよい。例えば、ソルバ情報には、どのようなソルバか、バックエンド(計算ハードウエア)はなにか、今回の問題に適しているか、今回の問題だったらどれくらいのメモリを使って、どれくらいの時間で解けそうかなどの情報が含まれる。
 例えば、端末51は、図16中のコンテンツCT4に示すように、ユーザが選択したソルバのソルバ情報を表示する。ユーザは、ソルバ情報を参考に、最終的に今回選択(投入)した組合せ最適化を実行するか、やめるかを決定する。そして、組合せ最適化を実行する場合は、コンテンツCT3中の「SOLVE」ボタンを押す。開発システム1Cのアプリケーション側ではこの処理に応じて、実際の組合せ最適化を行いその答えを返す。
 なお、上述した例では、GUI(Graphical User Interface)を一例として説明しているが、GUIに限らず、コマンドライン入力であってもよい。また、上述した処理をAPI(Application Programming Interface)として用意してユーザがプログラミンできるようにしたSDK(Software Development Kit)などであってもよい。
[8.情報処理装置の構成例]
 上述したイジングデコード等の各種処理を行う装置の一例として、情報処理装置100を図17に示す。例えばイジングデコーダ7、55等のイジングデコーダや組合せ最適化アクセラレータ50は、情報処理装置100により実現されてもよい。情報処理装置100は、イジングデコード処理を行う装置(コンピュータ)である。以下、情報処理装置100の構成について説明する。図17は、本開示の情報処理装置の構成例を示す図である。
 図17に示すように、情報処理装置100は、通信部110と、記憶部120と、制御部130と、入力部140と、表示部150とを有する。
 通信部110は、例えば、NICや通信回路等によって実現される。そして、通信部110は、所定のネットワーク(図示省略)と有線または無線で接続され、組合せ最適化部54を有する装置(最適化処理装置)等の他の情報処理装置との間で情報の送受信を行う。また、通信部110は、ユーザが利用するユーザ端末(端末51等)との間で情報の送受信を行ってもよい。
 通信部110は、各種情報を受信する。通信部110は、外部の装置から各種情報を受信する。通信部110は、組合せ最適化部54を有する装置(最適化処理装置)からイジングモデルの係数行列を受信する。例えば、通信部110は、制御部130により導出された基底状態のスピン変数の解を、組合せ最適化部54を有する装置(最適化処理装置)に送信する。
 記憶部120は、例えば、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現される。第1の実施例に係る記憶部120は、各種データ、情報処理等に用いる各種の関数(プログラム)の情報を記憶する。また、記憶部120は、上述した式のうち処理に用いる関数の情報を記憶してもよい。なお、記憶部120は、上記に限らず、目的に応じて種々の情報を記憶してもよい。
 制御部130は、例えば、CPU(Central Processing Unit)やGPU(Graphics Processing Unit)等によって、情報処理装置100内部に記憶されたプログラム(例えば、本開示に係る情報処理プログラム等)がRAM(Random Access Memory)等を作業領域として実行されることにより実現される。また、制御部130は、例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等の集積回路により実現される。
 図17に示すように、制御部130は、第一の処理部131と、第二の処理部132と、を有し、以下に説明する情報処理の機能や作用を実現または実行する。第一の処理部131と第二の処理部132とを有する制御部130は、通信部110により受信されたイジングモデルの係数行列を用いてイジングデコード処理を行うことにより、基底状態のスピン変数の解を導出する。
 例えば、第一の処理部131は、組合せ最適化問題の目的関数(QUBO形式)を算出する。例えば、第一の処理部131は、CPUやGPU等の第一のプロセッサによって実現される。なお、第一の処理部131は、組合せ最適化問題の目的関数(QUBO形式)を算出する第一の処理回路によって実現されてもよい。第一の処理回路は、FPGAやASIC等の任意の回路が採用可能である。
 また、例えば、第二の処理部132は、組合せ最適化問題の解を出力する。例えば、第二の処理部132は、CPUやGPU等の第二のプロセッサによって実現される。なお、第二の処理部132は、組合せ最適化問題の解を出力する第二の処理回路によって実現されてもよい。第二の処理回路は、FPGAやASIC等の任意の回路が採用可能である。
 上記のように、制御部130は、第一の処理部131に対応する第一のプロセッサと第二の処理部132に対応する第二のプロセッサとを含む複数のプロセッサにより構成される。なお、第一のプロセッサと第二のプロセッサとは一体であってもよいし、第一のプロセッサと第二のプロセッサとは各々が異なる装置に分散して配置されてもよい。
 第一の処理部131は、イジングモデルQUBO変換を行う。第一の処理部131は、QUBO-復号問題変換を行う。例えば、第一の処理部131は、組合せ最適化問題に関する第一の情報からイジングモデル形式の第二の情報(例えばイジングモデルの係数行列)を抽出する。第一の処理部131は、イジングモデル形式の第二の情報(例えばイジングモデルの係数行列)を用いて、QUBO形式の目的関数を算出する。第一の処理部131は、上述の「2-1-1.イジングモデル-QUBO変換」、「2-1-2.QUBO-復号問題変換」等に記載された処理やアルゴリズム等に基づく処理を行う。
 第二の処理部132は、BP復号を行う。例えば、第二の処理部132は、ビリーフプロパゲーション法により、スピン変数を決定する。第二の処理部132は、決定したスピン変数を出力する。第二の処理部132は、上述の「2-1-2-3.BP復号」、「2-1-2-4.第1の例のBP復号」、「2-1-2-5.第2の例のBP復号」等に記載された処理やアルゴリズム等に基づく処理を行う。すなわち、第二の処理部132は、組合せ最適化問題から変換された所定の復号化問題を所定の方式で処理する。
 入力部140は、ユーザから各種操作が入力される。入力部140は、ユーザによる入力を受け付ける。入力部140は、情報処理装置100に設けられたキーボードやマウスやタッチパネルを介してユーザからの各種操作を受け付けてもよい。入力部140は、表示部150により表示された提示画面であるコンテンツCT1~CT4に対するユーザの操作を入力として受け付ける。例えば、入力部140は、ユーザによる最適化問題の選択を受け付ける。また、例えば、入力部140は、ユーザによるソルバの選択を受け付ける。
 表示部150は、各種情報を表示する。表示部150は、液晶ディスプレイ等の表示装置であり、各種情報を表示する。表示部150は、コンテンツCT1~CT4等を表示する。情報処理装置100は、コンテンツCT1~CT4等を生成するコンテンツ生成部を有してもよい。コンテンツ生成部は、コンテンツCT1~CT4等、表示部150に表示する情報を生成する。コンテンツ生成部は、Java(登録商標)等の種々の技術を適宜用いて、コンテンツCT1~CT4等を生成する。なお、コンテンツ生成部は、CSSやJavaScript(登録商標)やHTMLの形式に基づいて、コンテンツCT1~CT4等を生成してもよい。また、例えば、コンテンツ生成部は、JPEG(Joint Photographic Experts Group)やGIF(Graphics Interchange Format)やPNG(Portable Network Graphics)など様々な形式でコンテンツCT1~CT4等を生成してもよい。なお、UIに関する処理を情報処理装置100以外の装置(例えば端末51等)が行う場合、情報処理装置100は、入力部140や表示部150を有しなくてもよい。
[9.その他の構成例等]
 上述した実施形態に係る処理は、上記実施形態以外にも種々の異なる形態(変形例)にて実施されてよい。
[9-1-1.変形例]
 上述した例では、情報処理装置100がイジングデコード処理を行う装置として説明したが、情報処理装置100はイジングデコード処理以外の処理を行ってもよい。例えば、以下に示す変形例に係る情報処理装置100は、イジングデコード処理を行う前の処理、またはイジングデコード処理を行う後の処理を行う装置であってもよい。例えば、情報処理装置100は、組合せ最適化部54を有する装置(最適化処理装置)や端末51として機能してもよい。例えば、情報処理装置100は、端末51、組合せ最適化部54を有する装置(最適化処理装置)、及びイジングデコーダ55として機能する装置であってもよい。
 この場合、例えば、情報処理装置100は、外部に接続された量子コンピュータ等と通信を行う通信回路(第二の処理回路)である通信部110により、量子着想型計算機56、量子アニーラ57、またはゲート型量子計算機58と通信する。例えば、情報処理装置100は、ユーザにより選択された計算機がローカルにない場合、例えばクラウド上の計算機である量子着想型計算機56、量子アニーラ57、またはゲート型量子計算機58と、通信部110により通信する。このように、情報処理装置100は、通信回路(第二の処理回路)である通信部110を経由して、外部ネットワーク上の量子コンピュータ等の外部装置(例えば、量子着想型計算機56、量子アニーラ57、またはゲート型量子計算機58等)に組み合わせ最適化問題の処理を指示するようにしてもよい。
 また、この場合、例えば、情報処理装置100は、組合せ最適化問題の目的関数(イジング形式)を算出する第一のプロセッサと、組合せ最適化問題の解を出力する第二のプロセッサとを有する。
 この場合、変形例に係る情報処理装置100の記憶部120は、例えば一つ以上の組合せ最適化問題の処理過程を記憶する。例えば、記憶部120は、記憶回路により構成されてもよい。記憶部120には、例えば組合せ最適化データベース52と同様に、様々な組合せ最適化の典型的なデータ変換過程がライブラリとして保存されている。具体的には、記憶部120には、組合せ最適化データベース52には、組合せ最適化を内包する個々のアプリケーションで使われるデータ、データベースを入力として、イジングモデルの係数を出力する関数(あるいはクラス)が保存されている。
 例えば、変形例に係る情報処理装置100の第一の処理部131は、第一のプロセッサであり、組合せ最適化問題の目的関数(イジング形式(の目的関数))を算出する。第一の処理部131は、組合せ最適化問題の目的関数(イジング形式(の目的関数))を算出する第一の処理回路であってもよい。例えば、第一の処理部131は、組合せ最適化部54の処理に対応する処理を行う。第一の処理部131は、記憶部120記憶されたライブラリを参照し、指定された組合せ最適化問題に対応する目的関数(イジング形式(の目的関数))を算出する。この目的関数は、イジングモデルのエネルギー関数として表現される。
 第一の処理部131は、少なくとも二つのプロセッサのうちの一つのプロセッサは、入力された第一情報から、組合せ最適化問題の種類に応じて決められたデータとデータベースに基づいて、第二の情報を抽出する。例えば、第一の処理部131は、ユーザの組合せ最適化問題の選択を示す第一情報から組合せ最適化問題の種類に応じて、ライブラリを参照して導出したイジング形式の目的関数の係数行列を、第二の情報として抽出する。第一の処理部131は、記憶部120に記憶された組合せ最適化問題の種類ごとのデータ変換過程の情報のうち、ユーザが選択した組合せ最適化問題に対応するデータ変換過程の情報を記憶部120から抽出する。そして、第一の処理部131は、記憶部120から抽出したデータ変換過程の情報を用いて、ユーザが選択した組合せ最適化問題を変換することによりイジング形式の目的関数の係数行列を導出することにより、ユーザが選択した組合せ最適化問題に対応するイジング形式の目的関数の係数行列を第二の情報として抽出する。なお、上記は一例に過ぎず、変形例に係る第一の処理部131は、種々の手法により組合せ最適化問題の目的関数(イジング形式(の目的関数))を算出してもよい。
 例えば、変形例に係る情報処理装置100の第二の処理部132は、第二のプロセッサであり、組合せ最適化問題の解を出力する。第二の処理部132は、組合せ最適化問題の解を出力する第二の処理回路であってもよい。例えば、第二の処理部132は、上述したイジングデコーダ処理を実行し、組合せ最適化問題の解を出力する。例えば、第二の処理部132は、イジングモデルの係数行列である第二の情報から組合せ最適化問題に応じて決められた演算に基づいてQUBO形式の目的関数を算出する。すなわち、この目的関数は、イジングモデルのエネルギー関数として表現される。QUBO形式の目的関数として表現される。
 例えば、変形例に係る情報処理装置100の表示部150は、第二の処理部132から出力された結果に基づいて、システムが求める情報を生成し、少なくともその一部を表示する。例えば、表示部150は、表示回路により構成されてもよい。表示部150は、情報を表示するための回路(表示回路)を含む構成であってもよい。
[9-1-2.ビットフリップ]
 本発明では、ビリーフプロパゲーション復号が計算の中心部となっている。この理由は、ビリーフプロパゲーション復号が、性能が非常に良いことが知られているからである。しかし、ビリーフプロパゲーション復号は、比較的重い処理でもあり、変数サイズを大きくした場合に計算を軽量化したいこともある。
 このような軽量化としてしられているのが、ビットフリップと呼ばれる方法である。この方法では、たとえば、ビットを反転させる場合とさせない場合でのエネルギーの差分を用いて、その差分に応じた確率でビットを反転させるかどうかを決定する。
 この方法は確率過程が存在することになるので、ビリーフプロパゲーション復号を用いる決定論的過程で実現される方法よりも再現性では劣る。しかし、大量のメモリを保持する必要がないため、軽量化という側面では優れている。
 ビットフリップを用いた復号は、ビリーフプロパゲーション復号よりも性能が悪く、実用上はあまり使われていない。しかし、近年、ニューラルネットを用いた勾配に基づくビットフリップ(GDBF)、さらにノイズを付加した雑音付き勾配ベースビットフリップ(NGDBF)確率的勾配ベースビットフリップなど様々な手法が考案され性能が向上している。
このため、ビリーフプロパゲーションに比べて軽量でかつ、性能も遜色ないビットフリップが実現されることも考えられる。
 本発明は、ビリーフプロパゲーション復号に代わって、このようなビットフリップを用いた変形版も含むものとしている。なお、ビットフリップに関しては例えば下記の文献に開示されている。
 ・Gradient Descent Bit Flipping Algorithms for Decoding LDPC Codes, Tadashi Wadayama et al. <https://arxiv.org/abs/0711.0261>
 ・Noisy Gradient Descent Bit-Flip Decoding for LDPC Codes, Gopalakrishnan Sundararajan et al. <https://arxiv.org/abs/1402.2773>
[9-2-1.プロセッサ]
 なお、本開示でいうプロセッサは、以下のようなものも含む概念である。イジングデコーダやQUBOデコーダ、又は通信プロセッサも、システムを構成する複数のプロセッサの一つである。これら複数のプロセッサの各々は、いわゆるシステムオンチップ(SOC)、またはマルチコアプロセッサというものであって良く、複数のコアプロセッサの一部は、イメージ処理や音響処理に適したデジタル信号プロセッサ(DSP)、ニューラルネットワークのような計算に適したいわゆるニューラルネットワークアクセラレータや、ニューロモーフィック(Neuromorphic)アクセラレータであってもよく、また、その一部が、本願発明のイジングデコーダやQUBOデコーダと呼ばれるような専用処理回路を備えたアクセラレータであってもよい。
[9-2-2.マルチプロセッサの具体例]
 量子アニーリングと比べたイジングデコーダの顕著な特徴として、確率過程を用いないため決定論的に解(スピンの組合せ)が求まることが挙げられる。つまり、イジングデコーダはマルチプロセス化して、これらに同じ問題を入力しても解は同じである。
 しかし、イジングデコーダには、性能に寄与するいくつかの未知のパラメータ(後述)がある。そして、このパラメータは、最終的な解に強く影響を及ぼしていることが簡単な実験でわかっている。
 そこで、このパラメータを、予めそれぞれ異なる様々な値に設定した複数のイジングデコーダをマルチプロセッサとして用意しておく。そして、これらのイジングデコーダで、与えられ得た問題を、同時並列で実行する。すると、各々違う値がでてくるため、最も良い解を選ぶことができる。
 ここで、最も良い解とは、素直には、イジングモデルのエネルギー関数を最小にする解である。符号的な観点でも評価することができ、たとえば、検査したパリティのうち1の個数が少ない、すなわちパリティ制約が満たされなかった個数少なかった解を選ぶようにしても良い。このようにすれば、パラメータの設定が適切ではなかった場合に性能が劣化することを回避できる。
 なお、これらのパラメータとしての第一の例は、対数オッズ産出時の疑似信号の偏差値を用いるものである。このパラメータは、ビリーフプロパゲーション復号時に、QUBO係数から生成した疑似信号を入力する際には、疑似信号に対する標準偏差パラメータとして用いるもので、(数25のσ)として与えられる。しかし、本発明の場合、疑似信号は二通りあり、これらは、統計分散の値が一致しない。そのため、どちらに合わせるか、平均をとるか、といった様々な選択肢が考えられる。そこで、このパラメータの考えられる個数だけ並列化して、最も良いを探す方式が考えられる。
 また、パラメータの第二の例は、QUBO係数から疑似信号列を生成する際の、スケーリングの自由度である。これは、数2の目的関数における、スケールパラメータと考えられる(数2にはスケールパラメータの記載はないが右辺全体をη倍するときのηがスケールパラメータである。)。
 通常、最適化問題では、目的関数のスケールを変更しても、符号を変更しない限り、解はかわらない。しかし、本発明の場合、目的関数のスケールを大きくすると、それに応じて疑似信号列のスケールが大きくなり、その結果、バイナリ符号と差をとって二乗誤差の計算を行う際に、スケールパラメータによる大きな違いが生じる。
 このため、スケーリングの値を適切に調整する必要がある。しかし、第一の例と同様、疑似信号が二通りあるため、どのように合わせるかについて、複数の基準が存在する。つまり、第一の疑似信号列にあわせるか、あるいは、第二の疑似信号列に合わせるか、あるいは、両方のちょうどよいところに合わせるかなどである。このため、これらのパラメータの考えられる個数だけ並列化して、最も良いを探す方式が考えられる。
 なお、第1、第2のパラメータを同時に変えた複数のプロセッサで同様のことを行っても良い。
[9-3.その他]
 また、上記各実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。例えば、各図に示した各種情報は、図示した情報に限られない。
 また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
 また、上述してきた各実施形態及び変形例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
 また、本明細書に記載された効果はあくまで例示であって限定されるものでは無く、他の効果があってもよい。
[10.本開示に係る効果]
 上述のように、情報処理装置100は、イジングモデルのスピン変数の組合せの基底状態の探索をバイナリ二次形式最適化問題(QUBO)に変換し、さらに、この最適化問題をバイナリ符号の復号問題に変換し、この復号問題を解決するアルゴリズムを用いて復号ビット列を獲得し、獲得した復号ビット列を変換してスピン変数の組合せを得るように構成する。
 パリティ検査行列は、QUBOの係数行列のもつ構造から構成した疑似的なパリティ検査行列であり、信号列は、QUBOの係数行列から算出された疑似的な信号列である。また、復号問題を解くアルゴリズムは、例えば、低密度パリティ検査符号(LDPC)の復号に用いられるビリーフプロパゲーション法(信念伝搬法)に基づく復号アルゴリズムである。
 また、この復号アルゴリズムでは、二次形式は、係数行列が対称行列になるような変換が施されていることを特徴としている。また、この復号アルゴリズムでは、疑似パリティ検査行列は、係数行列の上三角、あるいは、下三角行列の構造から生成されていることを特徴としている。また、この復号アルゴリズムでは、疑似パリティ検査行列は、係数行列の非ゼロ成分に対応する要素から生成されていることを特徴としている。
 また、この復号アルゴリズムを軽量化するために、疑似信号列は、もとのビット列に対応する部分と、2ビットの組合せに対応する部分で構成され、復号アルゴリズムの繰り返し単位の中で別々の方式で順に処理されることを特徴としている。 
 以上のように構成することで、量子アニーリングなどで実現されるイジングモデルのスピン変数の基底状態の探索問題は、低密度パリティ検査行列の復号に用いられる既存の復号アルゴリズムを用いた処理に置き換えることができる。
 また、既存の復号アルゴリズムとして用いるビリーフプロパゲーション法の復号アルゴリズムは、符号長が長い場合に理論的に最善とされる最尤復号に近づけることができる。すなわち、最適化のグローバルミニマムに相当するイジングモデルの基底状態を実現することができる。
 さらに、ビリーフプロパゲーション法による復号アルゴリズムは、既存の計算機をもちいて、高速かつ軽量な処理で実現できる。このため、量子アニーリングで必要となる大規模なシステムを用いなくても、イジングモデルの基底状態を探索できる。
 この方法を使えば、組合せ最適化問題を量子アニーリングではなく既存の半導体回路を用いて高速化できる。このため、組合せ最適化を内包するアプリケーションを小型端末(例えばパソコン(Personal Computer)やスマートフォン等の携帯端末等)などで動作させることもできる。例えば、通信路符号化復号アプリケーションや、圧縮センシングアプリケーションなどにより、小型端末で高精度のアルゴリズムを実装することができる。あるいは、組合せ最適化問題が内包されている典型的な例である経路探索アプリケーション、情報検索アプリケーション、スケジューリングアプリケーション、メモリや配線のレイアウトアプリケーションなどに用いてもよい。場合によっては日々の生活の中ででてくる組合せ最適化の高速アプリケーションを実現することもできる。また、これらのアプリケーションの統合開発環境や、グラフィックユーザインターフェースを支えるアプリケーションなども考えられる。
 上記のように、本開示に係る情報処理装置は、システムに入力された第一の情報から、組合せ最適化問題として定式化される処理に必要となる第二の情報を抽出し、抽出した第二の情報を入力して、組合せ最適化問題の目的関数を算出し、目的関数を入力して、組合せ最適化問題の解を出力する少なくとも二つのプロセッサを含む。少なくとも二つのプロセッサのうちの一つのプロセッサは、前記組合せ最適化問題の解を出力するプロセッサである。これにより、情報処理装置は、量子アニーリングを用いることなくイジングモデルのスピン基底状態の探索を可能にすることができる。例えば、第一の情報は、信号列や、観測データと符号行列や、観測辞書行列等である。また、例えば、第二の情報は、イジングモデルのエネルギー関数やQUBOのロス関数の係数等である。上記の二つのプロセッサは、例えば、データから係数を生成する問題生成部としてのプロセッサと、係数から解を算出する問題解決部としてのプロセッサとである。
[11.ハードウェア構成]
 上述してきた各実施形態や変形例に係る情報処理装置100、端末51等のコンピュータは、例えば図18に示すような構成のコンピュータ1000によって実現される。図18は、情報処理装置等の機能を実現するコンピュータの一例を示すハードウェア構成図である。以下、情報処理装置100を例に挙げて説明する。コンピュータ1000は、プロセッサ1100、RAM1200、ROM(Read Only Memory)1300、HDD(Hard Disk Drive)1400、通信インターフェイス1500、及び入出力インターフェイス1600を有する。コンピュータ1000の各部は、バス1050によって接続される。
 プロセッサ1100は、ROM1300又はHDD1400に格納されたプログラムに基づいて動作し、各部の制御を行う。例えば、プロセッサ1100は、ROM1300又はHDD1400に格納されたプログラムをRAM1200に展開し、各種プログラムに対応した処理を実行する。例えば、プロセッサ1100は、CPU、GPU等の任意のプロセッサであってもよい。
 また、コンピュータ1000は、複数のプロセッサ1100を有してもよい。例えば、コンピュータ1000は、システムに入力された第一の情報から、組合せ最適化問題として定式化される処理に必要となる第二の情報を抽出し、抽出した第二の情報を入力して、組合せ最適化問題の目的関数を算出する第一のプロセッサ(例えば、複数のプロセッサ1100のうち少なくとも一つのプロセッサ)を有する。また、例えば、コンピュータ1000は、システムに入力された第一の情報から、組合せ最適化問題として定式化される処理に必要となる第二の情報を抽出し、抽出した第二の情報を入力して、目的関数を入力して、組合せ最適化問題の解を出力する第二のプロセッサ(例えば、複数のプロセッサ1100のうち少なくとも一つのプロセッサ)を有する。この場合、コンピュータ1000は、第一のプロセッサと第二のプロセッサとを少なくとも含む複数のプロセッサ1100を有する。
 ROM1300は、コンピュータ1000の起動時にプロセッサ1100によって実行されるBIOS(Basic Input Output System)等のブートプログラムや、コンピュータ1000のハードウェアに依存するプログラム等を格納する。
 HDD1400は、プロセッサ1100によって実行されるプログラム、及び、かかるプログラムによって使用されるデータ等を非一時的に記録する、コンピュータが読み取り可能な記録媒体である。具体的には、HDD1400は、プログラムデータ1450の一例である本開示に係る情報処理プログラム等の情報処理プログラムを記録する記録媒体である。
 通信インターフェイス1500は、コンピュータ1000が外部ネットワーク1550(例えばインターネット)と接続するためのインターフェイスである。例えば、プロセッサ1100は、通信インターフェイス1500を介して、他の機器からデータを受信したり、プロセッサ1100が生成したデータを他の機器へ送信したりする。
 入出力インターフェイス1600は、入出力デバイス1650とコンピュータ1000とを接続するためのインターフェイスである。例えば、プロセッサ1100は、入出力インターフェイス1600を介して、キーボードやマウス等の入力デバイスからデータを受信する。また、プロセッサ1100は、入出力インターフェイス1600を介して、ディスプレイやスピーカーやプリンタ等の出力デバイスにデータを送信する。また、入出力インターフェイス1600は、所定の記録媒体(メディア)に記録されたプログラム等を読み取るメディアインターフェイスとして機能してもよい。メディアとは、例えばDVD(Digital Versatile Disc)、PD(Phase change rewritable Disk)等の光学記録媒体、MO(Magneto-Optical disk)等の光磁気記録媒体、テープ媒体、磁気記録媒体、または半導体メモリ等である。
 例えば、コンピュータ1000が情報処理装置100として機能する場合、コンピュータ1000のプロセッサ1100は、RAM1200上にロードされた情報処理プログラム等の情報処理プログラムを実行することにより、制御部130等の機能を実現する。また、HDD1400には、本開示に係る情報処理プログラム等の情報処理プログラムや、記憶部120内のデータが格納される。なお、プロセッサ1100は、プログラムデータ1450をHDD1400から読み取って実行するが、他の例として、外部ネットワーク1550を介して、他の装置からこれらのプログラムを取得してもよい。
 なお、本技術は以下のような構成も取ることができる。
(1)
 システムに入力された第一の情報から、組合せ最適化問題として定式化される処理に必要となる第二の情報を抽出し、
 前記抽出した第二の情報を入力して、前記組合せ最適化問題の目的関数を算出し、
 前記目的関数を入力して、前記組合せ最適化問題の解を出力する少なくとも二つのプロセッサ、
 を含み、
 前記少なくとも二つのプロセッサのうちの一つのプロセッサは、前記組合せ最適化問題の解を出力するプロセッサである、
 情報処理装置。
(2)
 前記少なくとも二つのプロセッサのうちの一つのプロセッサは、入力された第一情報から、前記組合せ最適化問題の種類に対応するデータに基づいて、第二の情報を抽出する、
 (1)に記載の情報処理装置。
(3)
 前記組合せ最適化問題の解を出力するプロセッサは、前記入力された第二の情報から前記組合せ最適化問題に応じて決められた演算に基づいて前記組合せ最適化問題の目的関数を算出する、
 (1)に記載の情報処理装置。
(4)
 前記組合せ最適化問題の解を出力するプロセッサは、
 前記入力された目的関数を、前記組合せ最適化問題と等価な符号の復号問題の入力信号列に変換する変換処理と、
 前記入力信号列に基づいて復号問題を処理し、符号列を獲得する復号処理と、
 前記符号列を前記組合せ最適化問題の解に変換して出力する出力処理と、
 を含む処理を実行する
 (1)に記載の情報処理装置。
(5) 前記符号の復号問題は、パリティ検査行列を利用するパリティ制約付き最尤復号問題であって、
 前記変換処理は、前記目的関数の係数から前記パリティ検査行列を構成する処理、または、すでに構成してあるパリティ検査行列を読み出す処理を含む、
 (4)に記載の情報処理装置。
(6)
 前記復号処理は、ビリーフプロパゲーション法による復号アルゴリズムで構成され、
 前記復号処理は、前記入力信号列とパリティ検査行列から、ビリーフプロパゲーション法による復号処理に基づいて符号列を復号する、
 (5)に記載の情報処理装置。
(7)
 前記ビリーフプロパゲーション法による復号処理は、低密度パリティ検査符号に対する復号処理である、
 (6)に記載の情報処理装置。
(8)
 前記組合せ最適化問題の目的関数は、イジングモデルのエネルギー関数として表現される、
 (1)乃至(7)のいずれか1つに記載の情報処理装置。
(9)
 前記組合せ最適化問題の目的関数は、QUBO(Quadratic Unconstrained Binary Optimization)形式の目的関数として表現される、
 (1)乃至(8)のいずれか1つに記載の情報処理装置。
(10)
 前記少なくとも二つのプロセッサのうちの一つのプロセッサは、イジングモデルのエネルギー関数の係数をQUBO形式の目的関数の係数に変換する処理を実行する、
 (9)に記載の情報処理装置。
(11)
 一つ以上の組合せ最適化問題の処理過程を記憶する記憶回路と、
 前記一つ以上の組合せ最適化問題の処理過程から一つの処理過程を選択する第一の処理回路と、
 システムに入力された情報から、前記処理過程に入力するデータを抽出して、前記組合せ最適化問題の結果を出力する第二の処理回路と
 前記出力された結果に基づいて、システムが求める情報を生成し、少なくともその一部を表示する表示回路を含む
 情報処理装置。
(12)
 前記第二の処理回路は、受信した前記組合せ最適化問題から変換された所定の復号化問題を所定の方式で処理する、
 (11)に記載の情報処理装置。
(13)
 前記第二の処理回路は、外部に接続された量子コンピュータと通信を行う通信回路である
 (11)に記載の情報処理装置。
(14)
 システムに入力された第一の情報から、組合せ最適化問題として定式化される処理に必要となる第二の情報を抽出し、
 前記抽出した第二の情報を入力して、前記組合せ最適化問題の目的関数を算出し、
 前記目的関数を入力して、前記組合せ最適化問題の解を出力する
 情報処理方法。
(15)
 システムに入力された第一の情報から、組合せ最適化問題として定式化される処理に必要となる第二の情報を抽出し、
 前記抽出した第二の情報を入力して、前記組合せ最適化問題の目的関数を算出し、
 前記目的関数を入力して、前記組合せ最適化問題の解を出力する少なくとも二つのプロセッサ、
 を含み、
 前記少なくとも二つのプロセッサのうちの一つのプロセッサは、前記組合せ最適化問題の解を出力するプロセッサである、
 情報処理システム。
 1 情報処理システム
 2 データベース
 3 アプリケーションCPU
 4 組合せ最適化メモリ
 5 組合せ最適化処理CPU
 6 イジングモデルメモリ
 7 イジングデコーダ
 8 復号処理メモリ
 10 組合せ最適化変換部
 100 情報処理装置
 110 通信部
 120 記憶部
 130 制御部
 131 第一の処理部
 132 第二の処理部
 140 入力部
 150 表示部
 57 量子アニーラ
 571 通信部
 572 記憶部
 573 量子デバイス部
 574 制御部
 575 取得部
 576 計算部
 577 送信部

Claims (15)

  1.  システムに入力された第一の情報から、組合せ最適化問題として定式化される処理に必要となる第二の情報を抽出し、
     前記抽出した第二の情報を入力して、前記組合せ最適化問題の目的関数を算出し、
     前記目的関数を入力して、前記組合せ最適化問題の解を出力する少なくとも二つのプロセッサ、
     を含み、
     前記少なくとも二つのプロセッサのうちの一つのプロセッサは、前記組合せ最適化問題の解を出力するプロセッサである、
     情報処理装置。
  2.  前記少なくとも二つのプロセッサのうちの一つのプロセッサは、入力された第一情報から、前記組合せ最適化問題の種類に対応するデータに基づいて、第二の情報を抽出する、
     請求項1に記載の情報処理装置。
  3.  前記組合せ最適化問題の解を出力するプロセッサは、前記入力された第二の情報から前記組合せ最適化問題に応じて決められた演算に基づいて前記組合せ最適化問題の目的関数を算出する、
     請求項1に記載の情報処理装置。
  4.  前記組合せ最適化問題の解を出力するプロセッサは、
     前記入力された目的関数を、前記組合せ最適化問題と等価な符号の復号問題の入力信号列に変換する変換処理と、
     前記入力信号列に基づいて復号問題を処理し、符号列を獲得する復号処理と、
     前記符号列を前記組合せ最適化問題の解に変換して出力する出力処理と、
     を含む処理を実行する
     請求項1に記載の情報処理装置。
  5.  前記符号の復号問題は、パリティ検査行列を利用するパリティ制約付き最尤復号問題であって、
     前記変換処理は、前記目的関数の係数から前記パリティ検査行列を構成する処理、または、すでに構成してあるパリティ検査行列を読み出す処理を含む、
     請求項4に記載の情報処理装置。
  6.  前記復号処理は、ビリーフプロパゲーション法による復号アルゴリズムで構成され、
     前記復号処理は、前記入力信号列とパリティ検査行列から、ビリーフプロパゲーション法による復号処理に基づいて符号列を復号する、
     請求項5に記載の情報処理装置。
  7.  前記ビリーフプロパゲーション法による復号処理は、低密度パリティ検査符号に対する復号処理である、
     請求項6に記載の情報処理装置。
  8.  前記組合せ最適化問題の目的関数は、イジングモデルのエネルギー関数として表現される、
     請求項1に記載の情報処理装置。
  9.  前記組合せ最適化問題の目的関数は、QUBO(Quadratic Unconstrained Binary Optimization)形式の目的関数として表現される、
     請求項1に記載の情報処理装置。
  10.  前記少なくとも二つのプロセッサのうちの一つのプロセッサは、イジングモデルのエネルギー関数の係数をQUBO形式の目的関数の係数に変換する処理を実行する、
     請求項9に記載の情報処理装置。
  11.  一つ以上の組合せ最適化問題の処理過程を記憶する記憶回路と、
     前記一つ以上の組合せ最適化問題の処理過程から一つの処理過程を選択する第一の処理回路と、
     システムに入力された情報から、前記処理過程に入力するデータを抽出して、前記組合せ最適化問題の結果を出力する第二の処理回路と
     前記出力された結果に基づいて、システムが求める情報を生成し、少なくともその一部を表示する表示回路を含む
     情報処理装置。
  12.  前記第二の処理回路は、受信した前記組合せ最適化問題から変換された所定の復号化問題を所定の方式で処理する、
     請求項11に記載の情報処理装置。
  13.  前記第二の処理回路は、外部に接続された量子コンピュータと通信を行う通信回路である
     請求項11に記載の情報処理装置。
  14.  システムに入力された第一の情報から、組合せ最適化問題として定式化される処理に必要となる第二の情報を抽出し、
     前記抽出した第二の情報を入力して、前記組合せ最適化問題の目的関数を算出し、
     前記目的関数を入力して、前記組合せ最適化問題の解を出力する
     情報処理方法。
  15.  システムに入力された第一の情報から、組合せ最適化問題として定式化される処理に必要となる第二の情報を抽出し、
     前記抽出した第二の情報を入力して、前記組合せ最適化問題の目的関数を算出し、
     前記目的関数を入力して、前記組合せ最適化問題の解を出力する少なくとも二つのプロセッサ、
     を含み、
     前記少なくとも二つのプロセッサのうちの一つのプロセッサは、前記組合せ最適化問題の解を出力するプロセッサである、
     情報処理システム。
PCT/JP2021/041071 2020-11-25 2021-11-09 情報処理装置、情報処理方法及び情報処理システム WO2022113720A1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN202180077799.2A CN116457780A (zh) 2020-11-25 2021-11-09 信息处理装置、信息处理方法和信息处理***
EP21897695.9A EP4235526A4 (en) 2020-11-25 2021-11-09 INFORMATION PROCESSING DEVICE, INFORMATION PROCESSING METHOD, AND INFORMATION PROCESSING SYSTEM
JP2022565198A JPWO2022113720A1 (ja) 2020-11-25 2021-11-09
US18/253,219 US20230409374A1 (en) 2020-11-25 2021-11-09 Information processing apparatus, information processing method, and information processing system

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2020195206 2020-11-25
JP2020-195206 2020-11-25

Publications (1)

Publication Number Publication Date
WO2022113720A1 true WO2022113720A1 (ja) 2022-06-02

Family

ID=81755835

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2021/041071 WO2022113720A1 (ja) 2020-11-25 2021-11-09 情報処理装置、情報処理方法及び情報処理システム

Country Status (5)

Country Link
US (1) US20230409374A1 (ja)
EP (1) EP4235526A4 (ja)
JP (1) JPWO2022113720A1 (ja)
CN (1) CN116457780A (ja)
WO (1) WO2022113720A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117934689B (zh) * 2024-03-25 2024-06-11 四川省医学科学院·四川省人民医院 一种骨折ct影像的多组织分割与三维渲染方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180246851A1 (en) * 2016-12-30 2018-08-30 1Qb Information Technologies Inc. Methods and systems for unified quantum computing frameworks
JP2020149664A (ja) * 2019-03-08 2020-09-17 日本電信電話株式会社 処理装置、処理方法及び処理プログラム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180246851A1 (en) * 2016-12-30 2018-08-30 1Qb Information Technologies Inc. Methods and systems for unified quantum computing frameworks
JP2020149664A (ja) * 2019-03-08 2020-09-17 日本電信電話株式会社 処理装置、処理方法及び処理プログラム

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
FUJITSU: "Application of Digital Annealer for Faster Combinatorial Optimization", FUJITSU, vol. 69, no. 4, 1 July 2018 (2018-07-01), pages 77 - 83, XP055934665 *
NAOKI IDETETSUYA ASAYAMAHIROSHI UENOMASAYUKI OHZEKI, MAXIMUM LIKELIHOOD CHANNEL DECODING WITH QUANTUM ANNEALING MACHINE, 9 November 2020 (2020-11-09), Retrieved from the Internet <URL:https://arxiv.org/abs/2007.08689>
See also references of EP4235526A4

Also Published As

Publication number Publication date
EP4235526A1 (en) 2023-08-30
EP4235526A4 (en) 2024-05-01
US20230409374A1 (en) 2023-12-21
CN116457780A (zh) 2023-07-18
JPWO2022113720A1 (ja) 2022-06-02

Similar Documents

Publication Publication Date Title
Farrell et al. Preparations for quantum simulations of quantum chromodynamics in 1+ 1 dimensions. I. Axial gauge
US20190130273A1 (en) Sequence-to-sequence prediction using a neural network model
Zheng et al. Speeding up learning quantum states through group equivariant convolutional quantum ansätze
WO2020142183A1 (en) Neural network activation compression with outlier block floating-point
Yuan et al. The dual-threshold quantum image segmentation algorithm and its simulation
Shaydulin et al. Evidence of scaling advantage for the quantum approximate optimization algorithm on a classically intractable problem
Tahmassebi et al. Multi-stage optimization of a deep model: A case study on ground motion modeling
O’Riordan et al. A hybrid classical-quantum workflow for natural language processing
Li et al. An image classification algorithm based on hybrid quantum classical convolutional neural network
Efendiev et al. Efficient hybrid explicit-implicit learning for multiscale problems
WO2022113720A1 (ja) 情報処理装置、情報処理方法及び情報処理システム
Candela Undergraduate computational physics projects on quantum computing
US20230042327A1 (en) Self-supervised learning with model augmentation
Wang et al. Fully Bayesian analysis of the relevance vector machine classification for imbalanced data problem
Dov et al. Approximate encoding of quantum states using shallow circuits
Zhang et al. Complex multitask compressive sensing using Laplace priors
CN114897175A (zh) 量子测量设备的噪声消除方法及装置、电子设备和介质
Borgwardt et al. An integer program for pricing support points of exact barycenters
Blute et al. Von neumann categories
François et al. Dressing fields for supersymmetry: The cases of the Rarita-Schwinger and gravitino fields
JP5325072B2 (ja) 行列分解装置、行列分解方法及びプログラム
EP4290420A1 (en) Method of performing a quantum computation
Moerman A gauge-invariant, symmetry-preserving truncation of JIMWLK
CN116226434B (zh) 一种多元异构模型训练及应用方法、设备及可读存储介质
Yu et al. Physics-inspired optimization in the Qubo framework: Key concepts and approaches

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: 21897695

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2022565198

Country of ref document: JP

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 202180077799.2

Country of ref document: CN

ENP Entry into the national phase

Ref document number: 2021897695

Country of ref document: EP

Effective date: 20230522

NENP Non-entry into the national phase

Ref country code: DE