This application is based upon and claims the benefit of priority of the prior Japanese Patent Application No. 2022-189711, filed on Nov. 29, 2022, the entire contents of which are incorporated herein by reference.
The embodiments discussed herein are related to a data processing device, a storage medium, and a data processing method.
There is a method of converting a combinatorial optimization problem into an Ising model that represents a spin behavior of a magnetic body at a time of searching for a solution to the combinatorial optimization problem. Then, a state of the Ising model where a value of an Ising-type evaluation function (corresponding to energy of the Ising model) becomes a local minimum is searched for with the Markov chain Monte Carlo method. The evaluation function includes a plurality of state variables and a plurality of weight coefficients. In the Ising-type evaluation function, the state variable is a binary variable that takes a value of 0 or 1 (or −1 or +1). The state variable may be referred to as a bit. The state where the minimum value of local minimum values of the evaluation function is reached is to be an optimum solution. Note that a state where the value of the evaluation function becomes a local maximum may be searched for by changing a sign of the evaluation function.
Hereinafter, the Markov chain Monte Carlo method will be abbreviated as an MCMC method. Furthermore, processing based on the MCMC method may be referred to as MCMC processing. In the MCMC processing, for example, a state transition is accepted at an acceptance probability of the state transition defined by the Metropolis method or the Gibbs method. Examples of the MCMC method include simulated annealing and a replica exchange method.
Meanwhile, some combinatorial optimization problems are formulated using an evaluation function including a continuous variable. There has been a method of converting a continuous variable into a binary variable using binary expansion or the like so that such a combinatorial optimization problem may be converted into an Ising model for calculation.
Japanese Laid-open Patent Publication No. 2020-67811 is disclosed as related art.
According to an aspect of the embodiments, a data processing device includes one or more memories; and one or more processors coupled to the one or more memories and the one or more processors configured to: detect magnitude of correlate on of a continuous variable pair included in a plurality of continuous variables based on information regarding a first evaluation function that includes the plurality of continuous variables obtained by formulating a combinatorial optimization problem, allocate a larger number of common binary variables to the continuous variable pair as the correlation is larger at a time of allocating a binary variable to each of the plurality of continuous variables, generate correspondence information that indicates a correspondence relationship between each of the plurality of continuous variables and the allocated binary variable, convert the first evaluation function into a second evaluation function that includes a plurality of binary variables, the second evaluation function being Ising-type, set coefficient information of the second evaluation function, and search for a solution to the combinatorial optimization problem using the second evaluation function and the set coefficient information.
The object and advantages of the invention will be realized and attained by means of the elements and combinations particularly pointed out in the claims.
It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory and are not restrictive of the invention.
In a case of simply discretizing a continuous variable to convert it into a binary variable based on the binary expansion or the like, the number of binary variables (number of bits) significantly increases depending on the number of continuous variables, obtaining accuracy, or the like, which may increase the scale of the problem. Note that, in a case where the number of bits to be allocated to each continuous variable is simply reduced, accuracy of an obtained solution is lowered at a time of converting values of a plurality of binary variables obtained after the solution search using the Ising model into continuous variables again.
In one aspect, an object of the embodiments is to provide a data processing device, a program, and a data processing method capable of reducing the number of bits at a time of converting an evaluation function including a plurality of continuous variables into an Ising-type evaluation function.
In one aspect, the embodiments may reduce the number of bits at a time of converting an evaluation function including a plurality of continuous variables into an Ising-type evaluation function.
Hereinafter, modes for carrying out embodiments will be described with reference to the drawings.
A data processing device 10 includes a storage unit 11, a search unit 12, and a processing unit 13.
The storage unit 11 stores information regarding an evaluation function obtained by formulating a combinatorial optimization problem. The evaluation function includes a plurality of continuous variables (which may also be referred to as real variables).
An evaluation function F(w) including the plurality of continuous variables may be expressed by, for example, the following equation (1).
The first term on the right side indicates a value obtained by, for all combinations of N continuous variables, summing up products of values of two continuous variables and a weight coefficient (indicating strength of correlation between the two continuous variables) with neither an omission nor an overlap. A continuous variable with an identification number i is represented by wi, a continuous variable with an identification number j is represented by wj, and a weight coefficient indicating magnitude of correlation between the continuous variables with the identification numbers i and j is represented by Aij. The second term on the right side indicates a value obtained by summing up products of a bias coefficient and a continuous variable for each identification number. A bias coefficient for the identification number=i is represented by Bi.
A solution to the combinatorial optimization problem is represented by values of the N continuous variables. A solution that minimizes the value of the evaluation function corresponds to the optimum solution to the combinatorial optimization problem. Hereinafter, the value of the evaluation function will be referred to as energy. Note that, in a case of a problem that maximizes the energy, it is sufficient if the sign of the evaluation function is reversed.
The information regarding the evaluation function stored in the storage unit 11 includes the weight coefficient and the bias coefficient as described above. Moreover, the storage unit 11 may store a range (lower limit value and upper limit value) of each continuous variable and a target number of bits at a time of converting the evaluation function using the continuous variables into an Ising-type evaluation function.
Note that coefficient information of the evaluation function, the range of each continuous variable, and the target number of bits may be input by a user operating an input device (not illustrated), and may be stored in the storage unit 11, for example.
The storage unit 11 is, for example, a volatile storage device that is an electronic circuit such as a dynamic random access memory (DRAM), or a non-volatile storage device that is an electronic circuit such as a hard disk drive (HDD) or a flash memory. The storage unit 11 may include an electronic circuit such as a register.
The search unit 12 searches for a solution to the combinatorial optimization problem by the MCMC method using the Ising-type evaluation function. The Ising-type evaluation function includes a plurality of binary variables that takes a value of 0 or 1. The binary variable may be referred to as a bit. The solution to the combinatorial optimization problem output by the search unit 12 is expressed by values of the plurality of binary variables. A solution that minimizes the value of the evaluation function corresponds to the optimum solution to the combinatorial optimization problem.
The Ising-type evaluation function may be expressed by, for example, the following equation (2).
A state vector x has a plurality of binary variables as elements, and represents a state of an Ising model. The equation (1) is an evaluation function formulated in a quadratic unconstrained binary optimization (QUBO) format. Note that, in a case of a problem that maximizes the energy, it is sufficient if the sign of the evaluation function is reversed.
The first term on the right side of the equation (2) indicates a value obtained by, for all combinations of two binary variables selectable from among all binary variables, summing up products of values of two binary variables and a weight coefficient with neither an omission nor an overlap. Subscripts i and j are indices of the binary variables. An i-th binary variable is represented by xi. A j-th binary variable is represented by xj. Hereinafter, it is assumed that the number of binary variables is the target number of bits=T. A weight coefficient indicating magnitude of correlation between the i-th and j-th binary variables is represented by Wij. Wij=Wji and Wii=0 are satisfied. When the number of binary variables (number of bits) is T, the number of Wij is T×T.
The second term on the right side of the equation (2) indicates a value obtained by summing up products of each bias coefficient of all the binary variables and a binary variable value. A bias coefficient for the i-th binary variable is represented by bi.
When a value of the binary variable xi changes to 1−xi, a change amount of the binary variable xi may be expressed as Δxi=(1−xi)−xi=1−2xi. Therefore, with respect to the evaluation function H(x), an energy change amount (ΔHi) accompanying the change in the binary variable xi may be expressed by the following equation (3).
Here, hi is called a local field (LF). A change amount in hi when a value of xj changes is expressed as Δhi(j)=WijΔxj.
In a search for a solution, the Metropolis method or the Gibbs method is used to determine whether or not to accept a state transition in which the energy change amount becomes ΔHi, which is, a change in the value of the binary variable xi. Specifically, in a neighbor search for searching for a transition from a certain state to another state where energy is lower than that in the certain state, a transition to not only a state where the energy decreases but also a state where the energy increases is probabilistically accepted. For example, an acceptance probability Ai for accepting a change in the binary variable value that causes ΔHi may be expressed by the equation (4).
The reference β represents a reciprocal (β=1/t) of a parameter t (t>0) indicating a temperature, and is called an inverse temperature. Hereinafter, β and t may be referred to as temperature values. A min operator indicates that a minimum value of arguments is taken. The upper right side of the equation (4) corresponds to the Metropolis method. The lower right side of the equation (4) corresponds to the Gibbs method.
In a case of performing the simulated annealing, for example, a value of t decreases according to a predetermined temperature parameter change schedule each time the determination as to whether or not to accept a change in the binary variable value is repeated a predetermined number of times. Then, the search unit 12 outputs, as a search result, a state obtained when the determination processing described above is repeated the predetermined number of times. Note that the search unit 12 may hold the state when the previous minimum energy has been reached. In that case, the search unit 12 may output, as a search result, a state corresponding to the minimum energy stored after the determination processing described above is repeated the predetermined number of times.
In a case of performing the replica exchange method, the search unit 12 repeats the determination processing described above for each of a plurality of replicas for which individual different values of t are set. Then, the search unit 12 carries out a replica exchange each time the determination processing described above is repeated a predetermined number of times. For example, the search unit 12 selects two replicas having adjacent t values, and exchanges values of respective binary variables between the selected two replicas at a predetermined exchange probability based on a difference in energy or in t values between the replicas. Note that the t values may be exchanged between the two replicas instead of the values of the respective binary variables. Alternatively, the search unit 12 holds the state when the previous minimum energy has been reached. Then, the search unit 12 outputs, as a search result, a state corresponding to the minimum energy in all the replicas among the minimum energies stored after the determination processing described above is repeated the predetermined number of times in the individual replicas.
The search unit 12 as described above may be implemented using, for example, an electronic circuit such as an application specific integrated circuit (ASIC) or a field programmable gate array (FPGA). Furthermore, the search unit 12 may be implemented by software processing obtained by a processor that is hardware such as a central processing unit (CPU), a graphics processing unit (GPU) or a digital signal processor (DSP) executing a program.
The processing unit 13 performs the following process to convert an evaluation function including a continuous variable into an Ising-type evaluation function. In
Step S1: The processing unit 13 obtains (reads) information regarding the evaluation function including the continuous variable from the storage unit 11. For example, the processing unit 13 obtains coefficient information (Aij, Bi) as information regarding the evaluation function expressed by the equation (1).
Step S2: The processing unit 13 detects magnitude of correlation of a continuous variable pair included in a plurality of continuous variables based on the obtained information. For example, the processing unit 13 detects Aij as magnitude of correlation between a pair of continuous variables wi and wj. Note that, influence of a change in values of wi and wj on F(w) is larger as Bi and Bj, which are bias coefficients, are larger. In consideration of such influence, the processing unit 13 may detect Aij+Bi+Bj as magnitude of correlation. Moreover, the processing unit 13 may carry out a search for F(w) using the MCMC method in a relatively short time, and may detect the magnitude of correlation between the plurality of continuous variables based on time-series information indicating a temporal change of the value of each continuous variable obtained as a result of the search (see
Step S3: The processing unit 13 performs bit commonalization processing at a time of allocating one or a plurality of binary variables to each of the plurality of continuous variables. In the bit commonalization processing, the processing unit 13 determines a binary variable to be allocated to the continuous variable pair in common based on the magnitude of correlation. A continuous variable pair having a larger correlation is more likely to have a similar value. Thus, the processing unit 13 increases the number of binary variables to be allocated in common as the continuous variable pair has a larger correlation.
Note that a more specific example of the bit commonalization processing will be described later.
Step S4: The processing unit 13 generates correspondence information indicating a correspondence relationship between each of the plurality of continuous variables and the allocated binary variables. The correspondence information may be expressed by, for example, a matrix formula to be described later (see
Step S5: The processing unit 13 converts, for example, the evaluation function including the plurality of continuous variables as expressed by the equation (1) into the Ising-type evaluation function as expressed by the equation (2) based on the generated correspondence information.
Step S6: The processing unit 13 sets coefficient information of the Ising-type evaluation function in the search unit 12. For example, the processing unit 13 sets Wij and bi in the search unit 12 as the coefficient information of the Ising-type evaluation function expressed by the equation (2).
Step S7: The processing unit 13 obtains a solution based on binary variables, which is a result of the search by the search unit 12.
Step S8: The processing unit 13 convers the solution based on binary variables into a solution based on continuous variables based on the correspondence information.
Step S9: The processing unit 13 outputs the solution based on continuous variables. For example, the processing unit 13 may cause the solution to be displayed on a display device (not illustrated), or may transmit it to an external device of the data processing device 10.
The processing unit 13 that performs such a process may be implemented by, for example, software processing obtained by a processor that is hardware such as a CPU, a GPU, or a DSP executing a program. Note that the processing unit 13 may also be implemented using an electronic circuit such as an ASIC or an FPGA.
As described above, at a time of converting an evaluation function based on continuous variables into an evaluation function based on binary variables, the data processing device 10 according to the first embodiment commonalizes a part of the binary variables between the continuous variables based on the magnitude of correlation between the continuous variables. As a result, it becomes possible to reduce the number of bits after the conversion as compared with the case of simply discretizing the continuous variables to convert them into the binary variables by the binary expansion or the like. For example, in the case of binarizing w1 and w2 each represented by 6-bit precision in the example illustrated in
A data processing device 20 is, for example, a computer, and includes a processor 21, a RAM 22, an HDD 23, a GPU 24, an input interface 25, a medium reader 26, a communication interface 27, and an accelerator card 28. The units described above are coupled to a bus.
The processor 21 is a processor such as a GPU or a CPU including an arithmetic circuit that executes a program command and a storage circuit such as a cache memory. The processor 21 loads at least a part of a program and data stored in the HDD 23 into the RAM 22, and executes the program. Note that the processor 21 may include a plurality of processor cores. Furthermore, the data processing device 20 may include a plurality of processors. Note that a set of the plurality of processors (multiprocessor) may be called a “processor”.
The RAM 22 is a volatile semiconductor memory that temporarily stores the program to be executed by the processor 21 and data to be used by the processor 21 for arithmetic operations. Note that the data processing device 20 may include a memory of a type different from the RAM 22, or may include a plurality of memories.
The HDD 23 is a non-volatile storage device that stores programs of software such as an operating system (OS), middleware, application software, and the like, and data. The programs include, for example, a program for causing the data processing device 20 to perform a process of searching for a solution to a combinatorial optimization problem. Note that the data processing device 20 may include another type of the storage device such as a flash memory or a solid state drive (SSD), or may include a plurality of non-volatile storage devices.
The GPU 24 outputs an image (e.g., image related to a calculation result of the combinatorial optimization problem) to a display 24a coupled to the data processing device 20 in accordance with an instruction from the processor 21. As the display 24a, a cathode ray tube (CRT) display, a liquid crystal display (LCD), a plasma display panel (PDP), an organic electro-luminescence (OEL) display, or the like may be used.
The input interface 25 obtains input signals from an input device 25a coupled to the data processing device 20, and outputs them to the processor 21. As the input device 25a, a pointing device such as a mouse, a touch panel, a touch pad, or a trackball, a keyboard, a remote controller, a button switch, or the like may be used. Furthermore, a plurality of types of input devices may be coupled to the data processing device 20.
The medium reader 26 is a reading device that reads a program and data recorded on a recording medium 26a. As the recording medium 26a, for example, a magnetic disk, an optical disk, a magneto-optical disk (MO), a semiconductor memory, or the like may be used. Examples of the magnetic disk include a flexible disk (FD) and an HDD. Examples of the optical disk include a compact disc (CD) and a digital versatile disc (DVD).
The medium reader 26 copies, for example, a program or data read from the recording medium 26a to another recording medium such as the RAM 22 or the HDD 23. The read program is executed by, for example, the processor 21. Note that the recording medium 26a may be a portable recording medium, and may be used for distribution of a program or data. Furthermore, the recording medium 26a and the HDD 23 may be referred to as computer-readable recording media.
The communication interface 27 is an interface that is coupled to a network 27a and communicates with another information processing device via the network 27a. The communication interface 27 may be a wired communication interface coupled to a communication device such as a switch by a cable, or may be a wireless communication interface coupled to a base station by a wireless link.
The accelerator card 28 is a hardware accelerator that searches for a solution to a combinatorial optimization problem. The accelerator card 28 includes an FPGA 28a and a DRAM 28b.
The data processing device 20 includes an input unit 30, a storage unit 31, a correlation detection unit 32, a bit allocation unit 33, an evaluation function conversion unit 34, a coefficient information setting unit 35, a search unit 36, a solution conversion unit 37, and an output unit 38. The storage unit 31 may be implemented using, for example, a storage area secured in the RAM 22 or the HDD 23. The input unit 30, the correlation detection unit 32, the bit allocation unit 33, the evaluation function conversion unit 34, the coefficient information setting unit 35, the solution conversion unit 37, and the output unit 38 may be implemented using, for example, a program module executed by the processor 21. The search unit 36 may be implemented using, for example, the accelerator card 28. Note that the search unit 36 may also be implemented using a program module executed by the processor 21.
The input unit 30 receives inputs of information regarding an evaluation function F(w) as expressed by the equation (1), the number of continuous variables (N), the target number of bits (T), and an upper limit value (αi) and a lower limit value (βi) of each continuous variable. For example, various types of information described above are input by a user operating the input device 25a.
Note that a continuous variable wi may be expressed by the following equation (5) using αi and βi.
The number of binary variables (number of bits) indicating the continuous variable wi is represented by di. It may also be said that di represents accuracy indicating the continuous variable wi. An identification number of the binary variable indicating the continuous variable wi is represented by k, and k=1 to di. The binary variable of the identification number=k indicating the continuous variable wi is represented by xi,k. A weight coefficient for the binary variable of the identification number=k is represented by δw(k), which is expressed by the following equation (6) in a case of performing binary expansion.
[Equation 6]
δw(k)=2k−1/(2d
In a case where the continuous variable is expressed by a plurality of binary variables with redundancy instead of the binary expansion, δw(k) may be simply set as δw(k)=1/di.
The storage unit 31 stores the input various types of information.
The correlation detection unit 32 obtains coefficient information of F(w) from the storage unit 31, and detects magnitude of correlation between the continuous variables based on the coefficient information. The correlation detection unit 32 outputs the detected magnitude of correlation as correlation information Y to be described later.
The bit allocation unit 33 allocates a binary variable to each continuous variable based on the correlation information Y and N and T read from the storage unit 31. The bit allocation unit 33 outputs, as an allocation result, commonality information Z to be described later and the number of bits (di) of each continuous variable.
The evaluation function conversion unit 34 generates correspondence information U indicating a correspondence relationship between each of a plurality of continuous variables and the allocated binary variable based on the information regarding F(w) read from the storage unit 31, αi and βi, the commonality information Z, and di. Then, the evaluation function conversion unit 34 converts F(w) into H(x) based on the correspondence information U.
The coefficient information setting unit 35 sets coefficient information (Wij and bi) of H(x) in the search unit 36.
The search unit 36 performs processing similar to that of the search unit 12 illustrated in
The solution conversion unit 37 converts a solution based on binary variables into a solution based on continuous variables based on the correspondence information U generated by the evaluation function conversion unit 34.
The output unit 38 outputs the solution based on continuous variables. For example, the output unit 38 may cause the solution to be displayed on a display device (not illustrated), or may transmit it to an external device of the data processing device 20.
Step S10: The correlation detection unit 32 obtains the coefficient information of F(w) from the storage unit 31. The coefficient information of F(w) includes a weight coefficient (Aij) and bias coefficients (Bi, Bj).
Step S11: The correlation detection unit 32 calculates Mij indicating the magnitude of correlation for each of continuous variable pairs selectable from the N continuous variables using the equation of Mij=Aij+Bi+Bj.
Step S12: The correlation detection unit 32 creates a list L(c)=(i, j, Mij) based on a calculation result of Mij. The initial value of c is 1, and c is counted up each time data of (i, j, Mij) is recorded in the list L(c). In a case where a plurality of continuous variables wj has correlation with the same continuous variable wi, for example, the correlation detection unit 32 records (i, j, Mij) with the largest Mij in the list L(c). Note that, in the case where the plurality of continuous variables wj has correlation with the same continuous variable wi, the correlation detection unit 32 may record a plurality of (i, j, Mij) in descending order of Mij in the list L(c), for example.
Step S13: The correlation detection unit 32 outputs the correlation information Y obtained by sorting the list L(c) in descending order of Mij, and terminates the process of detecting the magnitude of correlation.
In the list L(c), (i, j, Mij) is recorded. For example, the magnitude of correlation between w7 and w9, which is M7,9=10, is recorded in the first row, and the magnitude of correlation between w8 and w19, which is M8,19=733, is recorded in the second row. In the last row, the magnitude of correlation between w16 and w24, which is M16,24=200, is recorded. The created list L(c) may be stored in the storage unit 31.
Step S20: The bit allocation unit 33 obtains the correlation information Y output from the correlation detection unit 32, and N (number of all continuous variables) and T (target number of bits) stored in the storage unit 31.
Step S21: The bit allocation unit 33 determines a relationship between the magnitude of correlation of the continuous variable pair and the number of allocated bits based on N.
A reference number of bits allocated to one continuous variable is represented by d, which is determined as, for example, T/N or the like. For example, the bit allocation unit 33 determines an allocation relationship in which d/2 bits are allocated to the continuous variable pair with the maximum correlation and 2d bits are allocated to the continuous variable pair with the minimum correlation. For example, the number of bits is allocated to the continuous variable pairs with the correlation between the minimum and the maximum according to a straight line 40 of y=ax+b when the vertical axis is y and the horizontal axis is x. A gradient a is 3d/(N−2) and an intercept b is (N−8)/(2N−4). Note that the number of bits may be allocated to the continuous variable pairs with the correlation between the minimum and the maximum according to, for example, an exponential curve 41, a logarithmic curve 42, or the like.
Step S22: The bit allocation unit 33 determines, based on the correlation information Y, the number of allocated bits gwm for the continuous variable pair according to the relationship between the magnitude of correlation and the number of allocated bits determined as in
Step S23: The bit allocation unit 33 performs bit commonalization on each continuous variable pair according to the magnitude of correlation. In the case of performing the binary expansion on the continuous variable, a bit position to be commonalized is on the MSB side as illustrated in
For example, the bit allocation unit 33 sets the number of bits not to be commonalized to at least a half of gwm. Then, when the order of the magnitude of correlation illustrated in
Step S24: The bit allocation unit 33 generates the commonality information Z based on a result of the bit commonalization.
In
Step S25: The bit allocation unit 33 outputs the commonality information Z and the number of bits (di) for each wi, and terminates the bit allocation process. The sum of the number of bits to be commonalized and the number of bits to be non-commonalized is represented by di, and in the example of the commonality information Z illustrated in
Step S30: The evaluation function conversion unit 34 obtains the commonality information Z and di output from the bit allocation unit 33, and the information regarding F(w), α1, and βi stored in the storage unit 31.
Step S31: The evaluation function conversion unit 34 generates the correspondence information U between the continuous variable and the binary variable based on the obtained various types of information.
The correspondence information U may be expressed by a matrix formula as illustrated in
The correspondence between the continuous variable and the binary variable is expressed using a weight coefficient. For example, w1=x1δ1,1+x2δ1,2+x3δ1,3+x4δ1,4+x5δ1,5+x6δ1,6 holds with respect to w1. Further, w2=x1δ1,1+x2δ1,2+x3δ1,3+x7δ1,4+x8δ1,5+x9δ1,6 holds with respect to w2.
Here, δ1,1 to δ1,6 are weight coefficients, which may be calculated based on the value of δw(k) when di=6 and k=1 to 6 in the equation (6), αi, and βi.
Step S32: The evaluation function conversion unit 34 converts F(w) into H(x) based on the correspondence information U, and terminates the evaluation function conversion process. The evaluation function conversion unit 34 may convert F(w) into, for example, H(x) as expressed by the equation (2) by substituting the product sum of the binary variable and the weight coefficient as described above represented in the correspondence information U into each continuous variable of F(w).
The coefficient information setting unit 35 sets the coefficient information (Wij and bi) of H(x) in the search unit 36, and the search unit 36 searches for a state where the value of H(x) is minimized by the MCMC method. The solution conversion unit 37 converts a solution based on binary variables into a solution based on continuous variables based on the correspondence information U generated by the evaluation function conversion unit 34. For example, the solution conversion unit 37 substitutes the value of the solution obtained by the search unit 36 into each binary variable of the correspondence information U expressed by the matrix formula as illustrated in
According to the data processing device 20 according to the second embodiment as described above, it becomes possible to detect magnitude of correlation between continuous variables using the coefficient information of F(w). Additionally, since a continuous variable pair having a larger correlation is more likely to have a similar value, the number of binary variables (number of bits) to be commonalized may be increased. By commonalizing bits as described above, it becomes possible to reduce the target number of bits (T), and to reduce the number of bits after the conversion into H(x) as compared with the case of simply discretizing the continuous variables to convert them into the binary variables by the binary expansion or the like.
A data processing device 50 according to the third embodiment includes an MCMC processing unit 51.
The MCMC processing unit 51 obtains information regarding F(w) from a storage unit 31, and carries out a search by the MCMC method for a predetermined period of time based on the information regarding F(w). Since the search performed by the MCMC processing unit 51 does not search for an optimum solution, it may need a shorter time than a search performed by a search unit 36. Furthermore, the MCMC processing in which a value of a temperature parameter is changed as in the simulated annealing may be performed, or the MCMC processing may be performed in a state where the value of the temperature parameter is fixed.
The MCMC processing unit 51 outputs time-series information D indicating a temporal change of a value of each continuous variable obtained by the search for the predetermined period of time.
A correlation detection unit 52 detects magnitude of correlation of a continuous variable pair from the temporal change of the value of each continuous variable based on the time-series information D, and generates and outputs correlation information Y.
The MCMC processing unit 51 and the correlation detection unit 52 may be implemented using, for example, a program module executed by a processor 21.
In
Step S40: The correlation detection unit 52 obtains the time-series information D from the MCMC processing unit 51.
Step S41: The correlation detection unit 52 regards a value of each continuous variable arranged in the time series direction (row direction in
Step S42: The correlation detection unit 52 creates a list L(c)=(i, j, Mij) based on a calculation result of Mij. The initial value of c is 1, and c is counted up each time data of (i, j, Mij) is recorded in the list L(c). In a case where a plurality of continuous variables wj has correlation with the same continuous variable wi, for example, the correlation detection unit 52 records (i, j, Mij) with the largest Mij in the list L(c). Note that, in the case where the plurality of continuous variables wj has correlation with the same continuous variable wi, the correlation detection unit 52 may record a plurality of (i, j, Mij) in descending order of Mij in the list L(c), for example.
Step S43: The correlation detection unit 52 outputs the correlation information Y obtained by sorting the list L(c) in descending order of Mij, and terminates the process of detecting the magnitude of correlation.
Subsequent processing is similar to that of the data processing device 20 according to the second embodiment.
Such a data processing device 50 according to the third embodiment detects the magnitude of correlation of the continuous variable pair based on the result of actually performing the MCMC processing, whereby the magnitude of correlation may be detected more appropriately.
Meanwhile, the processing contents performed by the data processing devices 10, 20, and 50 according to the respective embodiments described above may also be implemented by software by causing the data processing devices 10, 20, and 50 to execute a program.
The program may be recorded in a computer-readable recording medium. As the recording medium, for example, a magnetic disk, an optical disk, a magneto-optical disk, a semiconductor memory, or the like may be used. Examples of the magnetic disk include a flexible disk (FD) and an HDD. Examples of the optical disk include a compact disc (CD), a CD-recordable (R)/rewritable (RW), a digital versatile disc (DVD), and a DVD-R/RW. The program may be recorded in a portable recording medium and distributed. In that case, the program may be copied from the portable recording medium to another recording medium to be executed.
While one aspect of the data processing device, the program, and the data processing method according to the present disclosure has been described based on the embodiments, this is merely an example, and is not limited to the description above.
All examples and conditional language provided herein are intended for the pedagogical purposes of aiding the reader in understanding the invention and the concepts contributed by the inventor to further the art, and are not to be construed as limitations to such specifically recited examples and conditions, nor does the organization of such examples in the specification relate to a showing of the superiority and inferiority of the invention. Although one or more embodiments of the present invention have been described in detail, it should be understood that the various changes, substitutions, and alterations could be made hereto without departing from the spirit and scope of the invention.
Number | Date | Country | Kind |
---|---|---|---|
2022-189711 | Nov 2022 | JP | national |