Data processing method, data processing apparatus, and computer readable recording medium
By detecting the number of occurrences of the first state in the solution search based on the MCMC method and generating a new state, the problem of understanding the time may be spent in the search is solved, and the understanding lookup performance and efficiency are improved.
Patent Information
- Application Number
- CN202410943860.2
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2023-08-31
- Filing Date
- 2024-07-15
- Publication Date
- 2025-02-28
AI Technical Summary
In solution search based on MCMC method, it may take time to obtain a better solution because there is no continuous state transition or only a specific state is adopted.
A non-transitory computer-readable recording medium storing a data processing program is provided, and by detecting in the evaluation function that the number of state variables to be changed exceeds the predetermined number of times in a predetermined time, it determines the number of state variables to be changed, and generates a new state to continue the solution search.
Improve understanding lookup performance, and can escape from local solutions more effectively, thereby achieving optimal solutions or approximate solutions close to optimal solutions in a relatively short time.
Smart Images

Figure 00000000_0000_ABST
Abstract
Description
Technical Field
[0001] The embodiments discussed herein relate to a computer-readable recording medium storing a data processing program, a data processing method, and a data processing apparatus. Background Art
[0002] The information processing device can be used for solution search of combinatorial optimization problems. The combinatorial optimization problem is converted into an evaluation function representing the energy of the Ising model, which is a model representing the spin behavior of a magnetic body. The information processing device searches for a combination that minimizes or maximizes the evaluation function among the combinations of values of the state variables included in the evaluation function. The combination of values of the state variables that minimize or maximize the evaluation function corresponds to a ground state or an optimal solution represented by a set of state variables. As a method for obtaining an approximate solution to a combinatorial optimization problem in real time, there is a method for combining a simulated annealing (SA) method, a replica exchange method, etc. based on a Markov chain Monte Carlo (MCMC) method.
[0003] For example, an information processing device that performs sequential MCMC is proposed, in which state variables are selected in the order of indexes, and a state transition in which the value of the state variable is changed is determined whether to allow the state transition. When the number of times that the value of the state variable is continuously determined to be unchanged reaches a predetermined number of times, the proposed information processing device improves the transition acceptance probability by correcting the amount of change in energy using an offset value.
[0004] An optimization device is also proposed in which, when negation of state transition is continuously repeated a certain number of times, one state is randomly selected from a predetermined number of candidate states selected in ascending order of corresponding energy increase, and the current state is transitioned to the selected one state.
[0005] A method called variational neural annealing is proposed, in which a quasi-equilibrium model is annealed by annealing the Boltzmann distribution instead of approximate sampling. A quantum Monte Carlo simulation method is also proposed for simulating the microscopic magnetic structure of complex magnetic systems and studying their macroscopic physical properties.
[0006] Japanese Laid-Open Patent Publication No. 2022-174616, Japanese Laid-Open Patent Publication No. 2023-49630, U.S. Patent Application Publication No. 2022 / 0198246, and U.S. Patent Application Publication No. 2021 / 0342505 are disclosed as related technologies. Summary of the invention
[0007] Technical issues
[0008] In the solution search based on the MCMC method, since state transitions are not continuously adopted or only specific states are adopted, it may take time to obtain a better solution.
[0009] In one aspect, it is an object of the present disclosure to improve solution finding performance.
[0010] Solution to the problem
[0011] According to one aspect of the embodiment, a non-transitory computer-readable recording medium storing a data processing program is provided, the data processing program being used to cause a computer to perform processing including the following: when the number of occurrences of a first state exceeds a predetermined number of times within a predetermined time in a solution search based on an evaluation function including multiple state variables, determining the number of state variables among multiple state variables whose values are to be changed from the first state based on the difference between a first value of the evaluation function when the value of any state variable among the state variables is changed from the first state and a second value of the evaluation function corresponding to the first state; generating a second state in which the values of the number of state variables among the multiple state variables in the first state are changed; and continuing the solution search using the second state.
[0012] Advantageous Effects of the Invention
[0013] In one aspect, solution finding performance can be improved. BRIEF DESCRIPTION OF THE DRAWINGS
[0014] Figure 1 is a diagram for describing a data processing apparatus of the first embodiment;
[0015] Figure 2 is a diagram showing a hardware example of a data processing device of the second embodiment;
[0016] Figure 3 is a diagram showing an example of the relationship between state and energy;
[0017] Figure 4 is a diagram showing an example of the functions of a data processing device;
[0018] Figure 5 is a diagram showing an example of the functions of a replica processing unit;
[0019] Figure 6 is a flow chart showing an example of a solution search of a replica processing unit;
[0020] Figure 7 is a flowchart showing an example of exchange control;
[0021] Figure 8 is a diagram showing a selection example of flip target spin;
[0022] Fig. 9 is a flowchart showing a modified example of the spin-flip process; and
[0023] Fig. 10A and Fig. 10B is a diagram showing an example of experimental results. DETAILED DESCRIPTION
[0024] Hereinafter, the present embodiment will be described with reference to the accompanying drawings.
[0025] [First embodiment]
[0026] A first embodiment will be described.
[0027] Figure 1 It is a diagram for describing the data processing apparatus of the first embodiment.
[0028] The data processing device 10 is used for searching for solutions to combinatorial optimization problems based on the MCMC method. In searching for solutions to combinatorial optimization problems, for example, the SA method, the replica exchange method, etc. are used. The replica exchange method is also called the exchange Monte Carlo method. The data processing device 10 includes a storage unit 11 and a processing unit 12.
[0029] The storage unit 11 may be a volatile semiconductor memory such as a random access memory (RAM) or may be a non-volatile storage device such as a hard disk drive (HDD) or a flash memory. For example, the processing unit 12 is a processor, such as a central processing unit (CPU), a graphics processing unit (GPU), or a digital signal processor (DSP). The processing unit 12 may include a dedicated electronic circuit, such as an application-specific integrated circuit (ASIC) or a field programmable gate array (FPGA). The processing unit 12 may be a processor that executes a program stored in a memory such as a RAM (which may be the storage unit 11). A set of multiple processors may be referred to as a "multiprocessor" or simply a "processor".
[0030] In the following description, an example is given in which the processing unit 12 searches for a solution. However, a search unit implemented by an FPGA, a GPU, or the like may search for a solution according to an instruction from the processing unit 12, and return the search result to the processing unit 12. In this case, the search unit may be included in the data processing device 10, or may be included in another device that communicates with the data processing device 10.
[0031] The combinatorial optimization problem is formulated by a predetermined evaluation function and is replaced by a problem such as minimizing the value of the evaluation function, such as the evaluation value. The evaluation function may be referred to as an objective function or an energy function. The evaluation function includes a plurality of state variables. For example, a state variable is a binary variable that takes a value of 0 or 1. The values that may be taken by the state variable may be {1, -1}, or may be other real numbers. The state variable may also be referred to as a bit or a spin.
[0032] The solution to the combinatorial optimization problem is represented by the values of a plurality of state variables. The value of the evaluation function indicates the energy of the Ising model. The solution that minimizes the value of the evaluation function represents the ground state of the Ising model and corresponds to the optimal solution to the combinatorial optimization problem.
[0033] For example, the Ising-type evaluation function is represented by formula (1).
[0034]
[0035] The state vector s has a plurality of state variables as elements and represents the state of the Ising model. Formula (1) is an evaluation function formulated in a quadratic unconstrained binary optimization (QUBO) format. In the case of a problem that maximizes energy, the sign of the evaluation function will be reversed. However, the evaluation function is not necessarily in a quadratic form, but may be in a cubic form or higher.
[0036] For all combinations of two state variables that can be selected from all state variables, the first term on the right side of formula (1) adds the product of the values of the two state variables and the weight coefficients, without omission or duplication. The subscripts i and j are the indices of the state variables. i is the i-th state variable. j is the jth state variable. N is the total number of state variables. ij is the weight between the i-th state variable and the j-th state variable or the coupling coefficient indicating the coupling strength. ij =W ji , and W ii =0.
[0037] The second term on the right side of formula (1) is the sum of the products of the deviations of each of all state variables and the value of the state variable. i Indicates the deviation of the i-th state variable. Problem information including the weight coefficient, deviation, etc. included in the evaluation function is stored in the storage unit 11.
[0038] When the state variable s i The value becomes 1-s i When the state variable s i The increase can be expressed as Δs i =(1-s i )-s i =1-2s i Therefore, since the state variable s for the evaluation function H(s) i The change in energy caused by the change in i It is expressed by formula (2).
[0039]
[0040] hi is called a local field and is represented by formula (3). The local field may also be referred to as a local field (LF).
[0041]
[0042] According to formula (2), when Δs i is consistent with the sign of (ΣW ij s j +b i ), the energy decreases. For example, the processing unit 12 calculates, for each of the plurality of state variables, the amount of change in energy caused by a change in the value of one of the plurality of state variables, and randomly and preferentially accepts the change that decreases the energy.
[0043] At this time, in the case of falling into a local solution, it is impossible to escape from the local solution using the steepest descent method. Therefore, the processing unit 12 uses the Metropolis method or the Gibbs method to determine the transition probability from a certain state to the next state due to a change in a certain state variable. For example, the processing unit 12 also randomly allows a change that increases the value of the evaluation function based on a comparison between the amount of change in the value of the evaluation function and the thermal noise value. The thermal noise value is obtained based on the temperature value or a random number. As the temperature value increases, the amplitude of the thermal noise value increases. As the amplitude of the thermal noise value increases, a state transition with a large increase in the value of the evaluation function is more likely to be allowed.
[0044] For example, in the case of the Metropolis method, the probability A i of accepting a change in the value of the state variable for which the energy changes by ΔH i is expressed as A i =min[1,exp(-β…ΔH i )]. β is the reciprocal of the temperature value T (T>0) (β = 1 / T) and is called the inverse temperature. The min operator indicates taking the minimum value of the argument.
[0045] The processing unit 12 compares a uniform random number u satisfying 0 < u < 1 with A i for a certain index i, and when u < A i , accepts the change in the value of the state variable s i and changes the value of the state variable s i . When it is not the case that u < A i , the processing unit 12 does not accept the change in the value of the state variable s i and does not change the value of the state variable s i . According to the formula for the probability A i , as the value of ΔH i becomes larger, A iFor example, as β is smaller, T is larger, and ΔH i Large state transitions are more likely to be allowed.
[0046] For example, in the case of using the Metropolis method, the processing unit 12 can calculate the value of the * T≤-ΔH i The determination formula performs the transformation determination. ln(u) * T corresponds to the thermal noise value. When the energy changes ΔH i When the determination formula for the uniform random number u is satisfied, the processing unit 12 allows the value of the corresponding state variable to change. i When the determination formula for the uniform random number u is not satisfied, the processing unit 12 does not allow the value of the corresponding state variable to be changed.
[0047] In the SA method, the processing unit 12 reduces the amplitude of the thermal noise value by gradually changing the temperature value from the maximum temperature value to the minimum temperature value, and converges the state of the Ising model to the ground state or a state close to the ground state. In the replica exchange method, the processing unit 12 repeats the following process: independently performing MCMC for each of a plurality of temperature values, exchanging the state obtained at each temperature value at a predetermined timing and continuing MCMC with the exchanged state as the initial solution, and extracting a good solution obtained in the process.
[0048] In the solution search by the processing unit 12, in the case of being trapped in a local solution, the state transition is delayed, and it may take time until the optimal solution or an approximate solution close to the optimal solution is obtained. Therefore, the processing unit 12 performs the following processing in the solution search. For example, the following processing can be performed in the solution search in the SA method, or can be performed in the solution search corresponding to one temperature value in the replica exchange method.
[0049] In a solution search based on an evaluation function including a plurality of state variables, the processing unit 12 detects that the number of occurrences of the first state exceeds a predetermined number of times within a predetermined time. The predetermined time is predetermined. The detection that the number of occurrences of the first state exceeds a predetermined number of times within a predetermined time can also be referred to as the detection that the number of occurrences of the first state per unit time (e.g., the frequency of occurrence) exceeds a predetermined value. The first state appears once when the state after the state transition is tested once in the solution search is the first state. At this time, the state before the test once can be the first state or a state different from the first state.
[0050] For example, the processing unit 12 may count the number of discontinuous state transitions, such as the number of consecutive rejections, and perform a detection of the number of occurrences of the first state exceeding a predetermined number of times within a predetermined time, depending on whether the number of consecutive rejections exceeds a predetermined number of times. In this case, the first state occurs for a number of trials corresponding to the number of consecutive rejections. The time spent for the number of trials corresponding to the predetermined number of times corresponds to the predetermined time.
[0051] Alternatively, in the case of transitioning to the first state, when the first state appears again within a predetermined time from the transition timing, the processing unit 12 may detect that the number of occurrences exceeds a predetermined number of times by counting the number of occurrences.
[0052] In the solution search, when the number of occurrences of the first state exceeds a predetermined number within a predetermined time, the first state is estimated to be a local solution. Therefore, the processing unit 12 can detect that the search is stuck in a local solution by detecting that the number of occurrences of the first state exceeds a predetermined number within a predetermined time.
[0053] When it is detected that the number of occurrences of the first state exceeds a predetermined number of times within a predetermined time, the processing unit 12 performs the following processing. The processing unit 12 determines the number of state variables whose values are to be changed from the first state based on the difference between the first value of the evaluation function in the case where the value of any state variable is changed from the first state and the second value of the evaluation function corresponding to the first state. The processing unit 12 generates a second state in which the values of the number of state variables in the first state are changed, and continues the solution search using the second state. In the solution search using the second state, the solution search is restarted from the second state.
[0054] Graph 20 shows the relationship between the state and the value of the evaluation function. The horizontal axis of graph 20 is the state. The vertical axis of graph 20 is the value of the evaluation function. Although the state is represented by the values of multiple state variables in multiple dimensions, in graph 20, for convenience, the state is plotted on the horizontal axis.
[0055] State s1 is an example of a first state. State s1 corresponds to a local solution. In the solution search, processing unit 12 detects that the number of occurrences of state s1 exceeds a predetermined number of times within a predetermined time. Processing unit 12 calculates a first value (H) of the evaluation function based on a change in the value of any state variable in state s1. iThe index value ζ is calculated by calculating the difference between the second value (H(s1)) of the evaluation function corresponding to the state s1. The index value ζ is a statistical value of the difference. For example, the processing unit 12 calculates the first value when the value of each of the predetermined number of state variables changes, and obtains ζ as a statistical value of the predetermined number of first values. The index value ζ is an indicator representing the smoothness or steepness of the change in the value of the evaluation function near the first state. As an example, ζ is calculated by formula (4).
[0056]
[0057] H i (s) is the value of the evaluation function corresponding to the state obtained by changing the value of the state variable of index i for the state s. In the example of formula (4), ζ(s) is the average of the differences between the first value of the evaluation function when the value of any state variable changes in the state s and the second value of the evaluation function corresponding to the state s.
[0058] As another example, the processing unit 12 may calculate the maximum value of the difference between the first value and the second value as ζ. Alternatively, the processing unit 12 may calculate the minimum value of the difference between the first value and the second value as ζ.
[0059] As another example, for Σ in formula (4), processing unit 12 may sum a portion of all indexes instead of summing all indexes. For example, processing unit 12 may calculate ζ by formula (5) or formula (6).
[0060]
[0061] R in formula (6) is a random number belonging to the range [1, N] of index values. c is a constant predetermined according to the number of indices to be summed. In the case of performing calculation of ζ for state s1, processing unit 12 sets s=s1 in the above formula.
[0062] For example, the processing unit 12 determines the number of state variables whose values are to be changed by using a predetermined determination formula of ζ. For example, the determination formula is expressed as ζ(s) / |H(s)|<θ 能量 θ 能量 is a predetermined threshold. |H(s)| is the absolute value of H(s). When ζ(s) / |H(s)|<θ 能量 When θ(s) / |H(s)|≥θ, the processing unit 12 determines that the values of p state variables are to be changed. For example, p is an integer of three or greater. 能量When q is changed, the processing unit 12 determines that q state variables are to be changed, and q is less than p. For example, q is an integer of 2 or more and less than p. The values of p and q are predetermined. In the case where determination is performed for state s1, the processing unit 12 sets s=s1 in the determination formula.
[0063] The processing unit 12 changes the values of the determined number of state variables in the state s1 and continues the solution search. The processing unit 12 may randomly select the determined number of state variables to be changed and change the values of the selected state variables. Alternatively, the processing unit 12 may select the state variables to be changed based on the value of the evaluation function when the state variables are changed and change the values of the selected state variables.
[0064] ζ(s) divided by |H(s)| corresponds to normalization of ζ(s). The normalization method by dividing ζ(s) by |H(s)| is an example. The processing unit 12 may normalize ζ(s) by a method other than dividing ζ(s) by |H(s)|.
[0065] For example, when ζ(s1) / |H(s1)|<θ 能量 This means that the evaluation function is relatively flat near state s1, i.e., the change in the value of the evaluation function is small. 能量 , this means that the evaluation function is relatively steep near state s1, for example, the change in the value of the evaluation function is large.
[0066] When it is determined that the evaluation function is flat near state s1, the processing unit 12 changes the values of a larger number (p) of state variables than when the evaluation function is steep near state s1. Therefore, in the subsequent solution search, the processing unit 12 makes it almost impossible to return to state s1 and makes it possible to effectively escape from the local solution.
[0067] On the other hand, when it is determined that the evaluation function is steep near the state s1, the processing unit 12 changes the values of the state variables by a smaller number (q) than when the evaluation function is gentle near the state s1. Therefore, the processing unit 12 makes it possible to effectively escape from the local solution so that the state does not transition to a state separated from the state s1 by more than an appropriate range. For example, in the case where the evaluation function is steep near the state s1, there is a possibility that a better solution (another energy valley) exists in a state relatively close to the state s1, and the possibility of missing such a better solution in a subsequent solution search is reduced.
[0068] According to the data processing device 10, in a solution search based on an evaluation function including a plurality of state variables, it is detected that the number of occurrences of a first state exceeds a threshold value within a predetermined time. Based on the difference between a first value of the evaluation function in a case where the value of any state variable among the plurality of state variables is changed from the first state and a second value of the evaluation function corresponding to the first state, the number of state variables whose values are to be changed from the first state is determined. A second state in which the values of the number of state variables among the plurality of state variables are changed in the first state is generated. The solution search is continued using the second state.
[0069] Therefore, the data processing device 10 can improve the solution search performance. As described above, the data processing device 10 achieves effective escape from the local solution. As a result, the data processing device 10 can increase the possibility of reaching the optimal solution or an approximate solution close to the optimal solution in a relatively short time. In this way, the data processing device 10 can accelerate the solution search.
[0070] [Second embodiment]
[0071] Next, a second embodiment will be described.
[0072] Figure 2 is a diagram showing a hardware example of a data processing device according to the second embodiment.
[0073] The data processing device 100 includes a processor 101, a RAM 102, a HDD 103, a GPU 104, an input interface 105, a medium reader 106, a communication interface 107, and an accelerator card 108. These units included in the data processing device 100 are coupled to a bus inside the data processing device 100.
[0074] The processor 101 is an arithmetic device that executes the instructions of the program. For example, the processor 101 is a CPU. The processor 101 loads at least a part of the program or data stored in the HDD 103 into the RAM 102, and executes the program. The processor 101 may include a plurality of processor cores. The data processing device 100 may include a plurality of processors. By using a plurality of processors or processor cores, the processing to be described below may be performed in parallel. A set of a plurality of processors may be referred to as a "multiprocessor" or simply a "processor".
[0075] RAM 102 is a volatile semiconductor memory that temporarily stores programs to be executed by processor 101 and data to be used for arithmetic operations by processor 101. Data processing device 100 may include a type of memory other than RAM, and may include a plurality of memories.
[0076] The HDD 103 is a non-volatile storage device that stores programs and data of software such as an operating system (OS), middleware, and application software. The data processing device 100 may include other types of storage devices (e.g., flash memory or a solid-state drive (SSD)), and may include multiple non-volatile storage devices.
[0077] The GPU 104 outputs an image to a display 111 coupled to the data processing device 100 according to an instruction from the processor 101. As the display 111, any type of display such as a cathode ray tube (CRT) display, a liquid crystal display (LCD), a plasma display, or an organic electroluminescent (OEL) display may be used.
[0078] The input interface 105 obtains an input signal from an input device 112 coupled to the data processing apparatus 100, and outputs the input signal to the processor 101. A pointing device such as a mouse, a touch panel, a touch pad or a trackball, a keyboard, a remote controller, a button switch, etc. can be used as the input device 112. Various types of input devices can be coupled to the data processing apparatus 100.
[0079] The medium reader 106 is a reading device that reads the program and data recorded in the recording medium 113. For example, a magnetic disk, an optical disk, a magneto-optical (MO) disk, a semiconductor memory, etc. can be used as the recording medium 113. The magnetic disk includes a floppy disk (FD) and an HDD. The optical disk includes a compact disk (CD) and a digital versatile disk (DVD).
[0080] For example, the medium reader 106 copies the program or data read from the recording medium 113 to another recording medium such as the RAM 102 or the HDD 103. For example, the read program is executed by the processor 101. The recording medium 113 may be a portable recording medium and may be used to distribute the program and data. The recording medium 113 and the HDD 103 may be referred to as computer-readable recording media.
[0081] The communication interface 107 is coupled to the network 114 and communicates with another information processing apparatus via the network 114. The communication interface 107 may be a wired communication interface coupled to a wired communication device such as a switch or a router, or may be a wireless communication interface coupled to a wireless communication device such as a base station or an access point.
[0082] The accelerator card 108 is a hardware accelerator that searches for a solution to a problem represented by the Ising-type energy function of formula (1) by using the MCMC method. By executing the MCMC method at a fixed temperature or a replica exchange method that exchanges the state of the Ising model between multiple temperatures, the accelerator card 108 can be used as a sampler for sampling states that follow the Boltzmann distribution at the corresponding temperature. For the solution search of the combinatorial optimization problem, the accelerator card 108 performs a replica exchange method or an annealing process such as the SA method in which the temperature value is gradually reduced. The replica exchange method is also called the exchange Monte Carlo method or the parallel tempering (PT) method.
[0083] The SA method is a method for efficiently finding an optimal solution by reducing the temperature value used during sampling from a high temperature to a low temperature (e.g., increasing the inverse temperature β). Since the state changes to a certain extent even in the case of the low temperature side (e.g., β is large), there is a high possibility that a good solution can be found even when the temperature value is rapidly reduced. For example, in the case of using the SA method, the accelerator card 108 repeats the operation of reducing the temperature value after repeating the experiment of state transition at a specific temperature value for a specific number of times.
[0084] The replica exchange method is a method of independently executing the MCMC method using multiple temperature values. The independent arithmetic operation resources used to execute the MCMC method are called replicas. In the replica exchange method, for the states obtained by multiple replicas corresponding to multiple temperature values, the states or temperature values are exchanged as appropriate. In the replica exchange method, a good solution can be effectively found by searching a narrow range of state space by means of MCMC at low temperatures and searching a wide range of state space by means of MCMC at high temperatures. In the case of using the replica exchange method, the accelerator card 108 repeatedly performs the operation of testing the state transition of multiple replicas in parallel, and whenever a specific number of trials are performed, the states or temperature values are exchanged for a pair of replicas with adjacent temperature values according to a predetermined exchange probability. As described above, the data processing device 100 or a device such as the accelerator card 108 that solves the Ising problem can be called an Ising machine.
[0085] The accelerator card 108 includes a processor 108a and a RAM 108b. The processor 108a implements a solution search function in the accelerator card 108. For example, the processor 108a is a dedicated processor for solution search, such as a GPU, FPGA, or ASIC. The RAM 108b stores data to be used for solution search in the processor 108a and solutions searched by the processor 108a. The data processing device 100 may include multiple accelerator cards.
[0086] Each of the RAM 102 and the RAM 108b may be a dynamic RAM (DRAM) or a static RAM (SRAM), or may include both of them. The processor 101 or the processor 108a corresponds to the processing unit 12 of the first embodiment. The RAM 102 or the RAM 108b corresponds to the storage unit 11 of the first embodiment. The HDD 103 may correspond to the storage unit 11.
[0087] Hardware that searches for solutions to problems in the Ising format, such as the data processing device 100 or the accelerator card 108, may be referred to as an Ising machine, a Boltzmann machine, etc. Hereinafter, as an example of a solution search method, a case where a replica exchange method is used will be described. However, the data processing device 100 may use another method such as the SA method instead of the replica exchange method.
[0088] Figure 3 is a diagram showing an example of the relationship between state and energy.
[0089] Graph 30 shows an example of the relationship between the state represented by a plurality of spins and the energy calculated by the energy function. The horizontal axis of graph 30 indicates the state. The vertical axis of graph 30 indicates the energy. Although the state is represented by a plurality of spins in multiple dimensions, for convenience, each state is plotted on the horizontal axis. The amount of change in the energy function can be relatively small or relatively large near a certain state.
[0090] Therefore, in the case where the estimation search is stuck in a local solution, the data processing device 100 calculates ζ as an index value indicating the depth / shallowness or steepness / flatness of the energy landscape near the local solution, and makes it possible to effectively escape from the local solution based on ζ.
[0091] Figure 4 is a diagram showing a functional example of a data processing device.
[0092] The data processing device 100 includes replica processing units 120, 120a, ..., and 120n and an exchange control unit 140. The replica processing units 120, 120a, ..., and 120n and the exchange control unit 140 are implemented by the processor 108a. The replica processing units 120, 120a, ..., and 120n and the exchange control unit 140 can be implemented by the processor 101 executing a program stored in the RAM 102.
[0093] The replica processing units 120, 120a, ... and 120n are search units that perform MCMC at different temperature values in the solution search of the combinatorial optimization problem. The replica processing units 120, 120a, ... and 120n perform MCMC in parallel independently of each other. The replica processing units can be referred to as replicas for short.
[0094] At a predetermined timing, the exchange control unit 140 controls the exchange of states between a pair of replica processing units for which adjacent temperature values are set. For a pair of replica processing units having adjacent temperature values, the exchange control unit 140 may exchange temperature values instead of states.
[0095] For example, the data processing device 100 performs a solution search within a certain period of time using the replica processing units 120, 120a, . . . and 120n and the switching control unit 140, and outputs a solution having the lowest energy obtained by the solution search as a final solution.
[0096] Figure 5 is a diagram showing a functional example of a copy processing unit.
[0097] The replica processing unit 120 includes an s storage unit 121, an s storage unit 122, an H storage unit 123, an H storage unit 124, an s i Flip processing unit 125, selection unit 126, Δs i Calculation unit 127, ΔH i A calculation unit 128, an adoption determination unit 129, an addition unit 130, a continuous rejection counting unit 131, a ζ calculation unit 132 and a multi-spin flip processing unit 133.
[0098] The storage area of the RAM 108b is used for the s storage unit 122 and the H storage unit 124. i Flip processing unit 125, selection unit 126, Δs i Calculation unit 127, ΔH i The calculation unit 128, the adoption determination unit 129, the addition unit 130, the continuous rejection counting unit 131, the ζ calculation unit 132 and the multi-spin-flip processing unit 133 are implemented by the processor 108a.
[0099] The s saving unit 121 acquires the initial value of the state s input by the user and stores the initial value in the s storage unit 122. When receiving a determination result indicating that the flip of the target spin is to be adopted from the adoption determination unit 129, the s saving unit 121 updates the state s by flipping the target spin stored in the s storage unit 122. Figure 5 In the example of , the state s indicates the state of the replica processing unit 120. Although the state of each replica processing unit is distinguished by the replica number m as s(m), the state of the replica processing unit 120 is simply represented as s herein. The s saving unit 121 supplies the current state s stored in the s storage unit 122 to the s i Flip processing unit 125, Δs icalculation unit 127, ζ calculation unit 132 and multi-spin flip processing unit 133.
[0100] The s storage unit 122 stores the state s.
[0101] The H storage unit 123 acquires the initial value of the energy H corresponding to the state s input by the user, and stores the initial value in the H storage unit 124. When receiving the determination result indicating that the flip of the target spin is to be adopted from the adoption determination unit 129, the H storage unit 123 acquires H+ΔH through the addition unit 130. i The calculation result is obtained, and the energy H stored in the H storage unit 124 is updated to H=H+ΔH i The H storage unit 123 supplies the current energy H stored in the H storage unit 124 to the adding unit 130 and the ζ calculating unit 132 .
[0102] The H storage unit 124 stores energy H corresponding to the state s. The energy H is a value calculated based on the formula (1).
[0103] s i The flip processing unit 125 obtains the i-th spin s for state s by flipping i The candidate state s' is obtained, and the candidate state s' is supplied to the selection unit 126. The candidate state s' is a state that is a transition destination candidate for the state s.
[0104] The selection unit 126 selects the i The candidate state s' is supplied by either the flip processing unit 125 or the multi-spin flip processing unit 133, and the candidate state s' is supplied to Δs i The calculation unit 127. For example, in the case where the number of consecutive rejections by the adoption determination unit 129 counted by the consecutive rejection counting unit 131 to be described later exceeds the threshold value, the selection unit 126 selects the candidate state s' supplied by the multi-spin flip processing unit 133. In other cases, the selection unit 126 selects the candidate state s' supplied by s i The candidate state s' supplied from the flip processing unit 125. For the selected candidate state s', the selection unit 126 supplies the s holding unit 121 with an index indicating the spin of the flip candidate target from the state s.
[0105] Δs i The calculation unit 127 calculates the difference Δs between the state s and the candidate state s′ i , and the difference Δs i Supply to ΔH i Computation unit 128. In the case where multiple spins are flip candidates, Δs i The calculation unit 127 will calculate Δs for each index i of the flip candidatei .
[0106] ΔH i The calculation unit 128 calculates ΔH based on formula (2): i , and ΔH i Supplied to the adoption determination unit 129 and the addition unit 130. In the case where a plurality of spins are flip candidates, ΔH i The calculation unit 128 calculates ΔH for each index i i , calculated by taking ΔH for flip candidate i i , and supplies the value to the adoption determination unit 129 and the addition unit 130.
[0107] The determination unit 129 adopts the method based on ΔH i The adoption determination of the state transition is performed by the Metropolis method. As described previously, in the Metropolis method, the energy change ΔH is accepted. i The probability of a change in the value of the state variable A i Represented as A i =min[1,exp(-β…ΔH i )]. The adoption determination unit 129 supplies the result of the adoption determination to the s holding unit 121, the H holding unit 123, and the continuous rejection count unit 131.
[0108] In the case where a plurality of spins are flip candidates, the adoption determination unit 129 determines the flip candidate based on the ΔH value i obtained by taking the flip candidate i. i The adoption determination unit 129 performs adoption determination of the state transition by the Metropolis method by taking the value obtained by summing . However, in the case where a plurality of spins are flipping candidates, the adoption determination unit 129 may determine that the state transition by flipping of the plurality of spins is adopted regardless of the adoption determination.
[0109] The adding unit 130 adds ΔH i The ΔHi calculated by the calculation unit 128 is added to the H supplied from the H storage unit 123 to obtain updated energy H′=H+ΔH i , and supplies H′ to the H storage unit 123.
[0110] The continuous rejection counting unit 131 counts the number of continuous rejection state transitions, for example, the continuous rejection number θ based on the adoption determination result of the state transition by the adoption determination unit 129. 次数 Count.
[0111] Although the number of consecutive rejections is counted by the consecutive rejection counting unit 131 in this example, other examples are conceivable.
[0112] When the number of consecutive rejections θ次数 Reaching the threshold θ 步骤 When θ is θ, the ζ calculation unit 132 calculates the index value ζ. 步骤 is predetermined. The number of consecutive rejections θ 次数 Reach θ 步骤 The fact that means that the search is trapped in a local solution. For example, by formula (4), the ζ calculation unit 132 can calculate the energy H in the state where the value of a state variable of state s changes i The average value of the difference between (s) and the current energy H(s) is taken as ζ.
[0113] Alternatively, the ζ calculation unit 132 may calculate H i The maximum value of the difference between (s) and H(s) is taken as ζ. The ζ calculation unit 132 can calculate H i The minimum value of the difference between (s) and H(s) is taken as ζ.
[0114] As yet another example, as represented by formula (5), the ζ calculation unit 132 may calculate ζ by using every c indexes. As represented by formula (6), the ζ calculation unit 132 may calculate ζ by using a plurality of random numbers R in the segment [1, N].
[0115] The ζ calculation unit 132 can calculate H used in formula (5), formula (6), etc. i (s) are sorted, and the largest H i Select d H from (s) i (s) and calculate ζ. d is an integer of 2 or more and less than N. In this case, d H i (s) is selected as the target of the energy mountain to be overcome. Alternatively, the ζ calculation unit 132 can calculate the energy mountain by using H i (s) in ascending order to calculate ζ. For example, the ζ calculation unit 132 may calculate the d selected H i The average value of the difference between each of (s) and the current energy H(s) is taken as ζ.
[0116] With the use of ΔH i Like the calculation unit 128, the ζ calculation unit 132 may perform calculation of the energy difference based on the formula (2).
[0117] The multi-spin flip processing unit 133 calculates the current energy H according to ζ / (current energy H) and the threshold θ 能量 The comparison between determines the number of spins to flip. As an example, when ζ / |H|<θ 能量 When θ / |H| is equal to or greater than θ, the multi-spin flip processing unit 133 sets the number of spins to be flipped to x (x>2). For example, for the total number of spins N, x=N / 2. On the other hand, when ζ / |H| is equal to or greater than θ 能量When θ is 0, the multi-spin flip processing unit 133 sets the number of spins to be flipped to two. 能量 is predetermined. In the following, H>0, and ζ / |H| is simply represented as ζ / H.
[0118] The multi-spin flip processing unit 133 generates a candidate state s′ by randomly selecting a determined number of spins in the state s and flipping the selected spins. The multi-spin flip processing unit 133 supplies the generated candidate state s′ to the selection unit 126 .
[0119] The storage area of the RAM 102 can be used for the s storage unit 122 and the H storage unit 124. i Flip processing unit 125, selection unit 126, Δs i Calculation unit 127, ΔH i The calculation unit 128, the adoption determination unit 129, the addition unit 130, the continuous rejection counting unit 131, the ζ calculation unit 132, and the multi-spin-flip processing unit 133 may be realized by a program stored in the RAM 102 executed by the processor 101.
[0120] The replica processing units 120a, ... and 120n also have functions similar to those of the replica processing unit 120. For the state s(m) of each replica processing unit, ζ=ζ(s(m)) and H=H(s(m)) are calculated separately, and according to θ 次数 With θ 步骤 For the comparison between the two, multiple spin-flip processing is performed for each replica processing unit.
[0121] Next, the processing procedure of the data processing device 100 will be described.
[0122] Figure 6 is a flow chart showing an example of a solution search of a replica processing unit.
[0123] Although the process of the replica processing unit 120 is exemplified below, the replica processing units 120 a , . . . , and 120 n also perform a process similar to that of the replica processing unit 120 .
[0124] (S10) The s storage unit 121 sets the initial value of the state s. For example, the s storage unit 121 obtains the initial value of the state s input by the user, and stores the initial value in the s storage unit 122. The H storage unit 123 sets the initial value of the energy H. The initial value of the energy H is the value of the formula (1) corresponding to the initial value of the state s. For example, the H storage unit 123 obtains the initial value of the energy H input by the user, and stores the initial value in the H storage unit 124. The temperature value corresponding to the replica processing unit 120 is also set in the adoption determination unit 129.
[0125] (S11)s i The flip processing unit 125 acquires the current state s from the s storage unit 121, and supplies the candidate state s′ for randomly flipping the i-th spin for the state s to the selection unit 126. The selection unit 126 selects the candidate state s′ from the state s. i The candidate state s' acquired by the flip processing unit 125 is supplied to Δs i Calculation unit 127. Δs i The calculation unit 127 calculates Δs which is the difference between the state s and the candidate state s′. i , and Δs i Supply to ΔH i Computing unit 128.
[0126] (S12)ΔH i The calculation unit 128 uses Δs i Calculate ΔH from formula (2) i .
[0127] (S13) The determination unit 129 adopts the method based on ΔH i A determination of transition to the candidate state s' is performed. For example, the Metropolis method is used for the transition determination. When the transition to the candidate state s' is adopted, the process proceeds to step S20. When the transition to the candidate state s' is not adopted, for example, rejected, the process proceeds to step S14.
[0128] (S14) The continuous rejection counting unit 131 counts the number of continuous rejections θ 次数 Count the number of consecutive rejections θ 次数 is the number of consecutively rejected transitions in step S13. In the case of executing step S14, the candidate state s' created in step S11 is discarded.
[0129] (S15) The ζ calculation unit 132 determines whether θ 次数 >θ 步骤 When θ 次数 >θ 步骤 When θ 次数 ≤θ 步骤, the process proceeds to step S11.
[0130] (S16) The ζ calculation unit 132 calculates the index value ζ. For example, formulas (4), (5), (6), etc. are used for the calculation of ζ. Alternatively, the ζ calculation unit 132 may calculate ζ=max(H i (s))-H(s). The max operator indicates to select the maximum value of the independent variable. As another example, the ζ calculation unit 132 may calculate as ζ=min(H i (s))-H(s).
[0131] (S17) The multi-spin flip processing unit 133 determines whether ζ / (current energy H) < θ 能量 When ζ / (current energy H)<θ 能量 When ζ / (current energy H)≥θ 能量 , the process proceeds to step S19.
[0132] (S18) The multi-spin flip processing unit 133 generates a candidate state s' by flipping x spins. x is an integer greater than two. For example, at this time, the multi-spin flip processing unit 133 randomly selects x spins to be flipped. The process proceeds to step S20.
[0133] (S19) The multi-spin flip processing unit 133 generates a candidate state s' by flipping two spins. For example, at this time, the multi-spin flip processing unit 133 randomly selects two spins to be flipped.
[0134] In the case of executing step S18 or step S19, by selecting unit 126 and Δs i The calculation unit 127 calculates the Δs corresponding to each index i and the candidate state s′ created by the multi-spin flip processing unit 133. i Supply to ΔH i Calculation unit 128. ΔH i The calculation unit 128 can be based on each Δs i The energy difference ΔH between the state s and the candidate state s' is calculated.
[0135] (S20) When the result of the adoption determination by the adoption determination unit 129 is adoption, the s storage unit 121 updates the current state s to the candidate state s'. For example, the s storage unit 121 stores the candidate state s' as the new state s in the s storage unit 122. When the result of the adoption determination is adoption, the H storage unit 123 updates the current energy H to the energy H' corresponding to s'. For example, the H storage unit 123 stores the energy H' as the new energy H in the H storage unit 124.
[0136] Even in the case where step S18 or step S19 is executed, the adoption determination unit 129 may perform adoption determination by the Metropolis method or the like based on ΔH. When the candidate state s' is not adopted by the adoption determination unit 129, step S18 or step S19 may be repeatedly performed until the candidate state s' is adopted. Alternatively, in the case where step S18 or step S19 is executed, the adoption determination unit 129 may determine that the candidate state s' is adopted regardless of the adoption determination.
[0137] (S21)s i The flip processing unit 125 determines whether the end condition is satisfied. When the end condition is satisfied, the processing of the replica processing unit 120 ends. When the end condition is not satisfied, the processing proceeds to step S11. For example, the end condition is that the replica processing unit 120 has performed a certain number of flip tests, a certain period of time has passed since the first test, etc.
[0138] More generally, in step S19 , the multi-spin flip processing unit 133 flips y (x>y≥2) spins.
[0139] Figure 7 is a flowchart showing an example of exchange control.
[0140] In each replica processing unit Figure 6 At a predetermined timing in the repetitive process in , the exchange control unit 140 performs the following processing. For example, the following processing is performed for each pair of replica processing units having adjacent temperature values in the order of the replica number for identifying each replica processing unit. For example, as in the replica number pair (1, 2), the replica number pair (2, 3), ..., the replica processing unit pairs to be subjected to exchange control are sequentially selected.
[0141] (S30) The exchange control unit 140 obtains information about the two replica processing units of the exchange candidate. One of the two replica processing units is referred to as replica R1, and the other is referred to as replica R2. In this case, the information about replica R1 includes the state of replica R1 and information J1 associated with the state of replica R1, such as energy H1, temperature value T1, and local solution. The information about replica R2 includes the state of replica R2 and information J2 accompanying the state of replica R2, such as energy H2, temperature value T2, and local solution.
[0142] (S31) The switching control unit 140 determines whether rand is satisfied. <exp((1 / T1-1 / T2) * (H1-H2)). rand is a random value in the range [0,1]. When the determination formula is satisfied, the process proceeds to step S32. When the determination formula is not satisfied, the exchange control for the corresponding two replica processing units ends.
[0143] (S32) The exchange control unit 140 exchanges information other than the temperature value among the information obtained for the corresponding two copy processing units in step S30. Accordingly, the states s and the pieces of information about the energy H stored in the corresponding two copy processing units are exchanged. The exchange control for the corresponding two copy processing units ends.
[0144] As described above, the exchange control unit 140 controls the exchange so that the exchange determination is performed randomly by using the determination formula of the random value rand.
[0145] When the solution search using each copy processing unit ends, the data processing device 100 outputs the best solution obtained by the solution search, for example, the solution having the minimum energy, as the final solution. The data processing device 100 may output a plurality of solutions by giving priority to solutions having low energy.
[0146] In the case of using the SA method, the data processing device 100 may perform a solution search only by using the copy processing unit 120 through the Figure 6 process. In the case of using the SA method, the determination unit 129 performs a process of decreasing the temperature value T from the initial temperature value T = T0 by, for example, ΔT at a predetermined timing in the Figure 6 repetitive process.
[0147] In steps S18 and S19, the multi-spin flip processing unit 133 randomly selects the spins to be flipped when creating the candidate state s'. Alternatively, the multi-spin flip processing unit 133 may select the spins to be flipped based on the energy H i (s) in the state where the spin of the index i is flipped for the state s.
[0148] Figure 8 is a diagram showing an example of the selection of the spins to be flipped.
[0149] For example, when ζ / (current energy H) < θ 能量 the multi-spin flip processing unit 133 may select and reverse x spins in ascending order of H i (s).
[0150] On the other hand, when ζ / (current energy H) ≥ θ 能量 the multi-spin flip processing unit 133 may select and reverse y (y < x) spins in descending order of H i (s).
[0151] Table 124a indicates H i(s) Example. For example, Table 124a can be created by the multi-spin flip processing unit 133 and stored in the H storage unit 124. As an example, x = 5, and y = 3.
[0152] In the example of Table 124a, when ζ / (current energy H) < θ 能量 the multi-spin flip processing unit 133 selects five spins corresponding to indices i = 5, 6, 7, 9, 11 in ascending order of H i (s). When ζ / (current energy H) ≥ θ 能量 the multi-spin flip processing unit 133 selects three spins corresponding to indices i = 1, 2, 3 in descending order of H i (s).
[0153] As described above, the multi-spin flip processing unit 133 can also improve the efficiency of escaping from the local solution by selecting the spins to be flipped based on H i (s). For example, in the case where the change amount of the energy function near the local solution is evaluated to be relatively small, by selecting and flipping x spins in ascending order of H i (s), the possibility of returning to the original state s in the subsequent search is further reduced. In the case where the change amount of the energy function near the local solution is evaluated to be relatively large, by selecting and flipping y spins in descending order of H i (s), the possibility of transitioning to a state separated by more than an appropriate range is further reduced, and the possibility of missing a better solution is reduced.
[0154] The multi-spin flip processing unit 133 can change the spin selection method according to the problem. For example, when ζ / (current energy H) < θ 能量 the multi-spin flip processing unit 133 can select and reverse x spins in descending order of H i (s). On the other hand, when ζ / (current energy H) ≥ θ 能量 the multi-spin flip processing unit 133 can select and reverse y (y < x) spins in ascending order of H i (s).
[0155] Alternatively, when ζ / (current energy H) < θ 能量 the multi-spin flip processing unit 133 can select and reverse x spins in ascending order of H i (s). On the other hand, when ζ / (current energy H) ≥ θ 能量 the multi-spin flip processing unit 133 can select and reverse y (y < x) spins in ascending order of H i (s).
[0156] As yet another example, when ζ / (current energy H) < θ 能量When, the multi-spin flip processing unit 133 can select and invert x spins in descending order of H i (s). On the other hand, when ζ / (current energy H) ≥ θ 能量 When, the multi-spin flip processing unit 133 can select and invert y (y < x) spins in descending order of H i .
[0157] The multi-spin flip processing unit 133 can select the spins to be flipped by the following method and flip the selected spins.
[0158] Fig. 9 is a flowchart showing a modified example of the spin flip processing.
[0159] In this modified example, the ζ calculation unit 132 calculates ζ by the following formula (7).
[0160]
[0161] ζ in formula (7) is an index value representing the probability of a transition from the state of interest. If the state does not move, the value of ζ decreases.
[0162] Steps S40 to S42 are executed instead of Figure 6 Steps S16 to S19 in. When it is determined to be "Yes" in step S15, step S40 is executed.
[0163] (S40) The multi-spin flip processing unit 133 calculates the index j by formula (8).
[0164]
[0165] T r is the temperature value corresponding to the replica processing unit 120. r i is a random numerical value related to the index i where 0 < r i < 1. argmax i indicates selecting the index i that maximizes the argument.
[0166] (S41) The multi-spin flip processing unit 133 flips the j-th spin.
[0167] (S42) The ζ calculation unit 132 calculates ζ by formula (7) for the state after the flip in step S41. The multi-spin flip processing unit 133 determines whether ζ > θ α . θ α is a predetermined threshold. When ζ > θ α When, the spin flip processing ends. When ζ ≤ θ αWhen , the process proceeds to step S40. In the case of proceeding to step S40, the energy corresponding to the state after flipping the j-th spin in the immediately previous step S41 is H, and the energy corresponding to the state obtained by flipping the i-th spin for the state after flipping is H i .
[0168] As described above, the multi-spin flip processing unit 133 can be Fig. 9 In the process shown in FIG. 1 , based on the difference between the energy in the current state s and the energy in the state of flipping one spin from the state s, the process of determining the number of spins to be flipped is performed. The multi-spin flip processing unit 133 flips the spins in the direction in which the hill of the energy function becomes high by setting the index i satisfying the right side of formula (8) to j. When ζ is greater than the threshold value θ α When the multi-spin flip processing unit 133 determines that a state sufficient for transition has been reached, and ends the spin flip processing. Otherwise, the spin flip processing is repeated.
[0169] Therefore, the data processing device 100 can appropriately select the spin of the flip target so as to facilitate the state transition. Therefore, the data processing device 100 can easily escape from the local solution and achieve an improvement in solution search performance.
[0170] Fig. 10A and Fig. 10B is a diagram showing an example of experimental results.
[0171] In the experiment, the solution search by exchange Monte Carlo (replica exchange method) in the method of the related art and the solution search by exchange Monte Carlo in the method of the data processing device 100 have been performed using the 16-spin Sherrington-Kirkpatrick (SK) model. In the SK model, the number of local solutions is 495.
[0172] Fig. 10A Graph 40 shows the results of the first experiment. In the first experiment, in each of the method of the related art and the method of the data processing device 100, the experiment of the state transition of 1000 steps was repeated 100 times, and as a group, another 100 experiments were performed. Graph 40 shows histograms 41 and 42, in which each group is classified by the number of times the minimum solution (optimal solution) is obtained, and the number of groups classified by the number of times is accumulated. Histogram 41 is a comparative example of the case of using the method of the related art. Histogram 42 is the case of using the method of the data processing device 100.
[0173] Fig. 10BGraph 50 shows the results of the second experiment. In the second experiment, the number of trials of state transitions in the method of the related art and the method of the data processing device 100 was increased from 1000 steps in the first experiment to 10000 steps, and other conditions were similar to those in the first experiment. Graph 50 shows histograms 51 and 52, in which each group of the second experiment is classified by the number of times the minimum solution is obtained, and the number of groups classified by the number of times is accumulated. Histogram 51 is a comparative example of the case of using the method of the related art. Histogram 52 is the case of using the method of the data processing device 100.
[0174] For the processing of the data processing device 100 in the first experiment and the second experiment, the Figure 6 and Figure 7 The process is illustrated in . Formula (4) is used for the calculation of ζ.
[0175] In each of the graphs 40 and 50, the larger the number of bins on the right side of the graph, the higher the frequency of obtaining the minimum solution. As indicated in the graphs 40 and 50, it has been confirmed through experiments that the method of the data processing device 100 obtains the minimum solution more frequently and more easily than the method of the related art.
[0176] As described above, the data processing device 100 can improve the solution search performance. For example, the data processing device 100 can increase the possibility of reaching a minimum solution or an approximate solution close to the minimum solution in a short time. In this way, the data processing device 100 can achieve the acceleration of solution search.
[0177] As described above, the data processing device 100 performs the following processing. The following processing may be performed by a general-purpose processor such as the processor 101, or may be performed by a dedicated processor such as the processor 108a.
[0178] In a solution search based on an evaluation function including a plurality of state variables, the replica processing unit 120 detects that the number of occurrences of a first state exceeds a predetermined number of times within a predetermined time. The replica processing unit 120 determines the number of state variables whose values are to be changed from the first state based on the difference between the first value of the evaluation function in the case where the value of any state variable among the plurality of state variables is changed from the first state and the second value of the evaluation function corresponding to the first state. For example, the number of state variables whose values are to be changed from the first state is two or more. For example, the replica processing unit 120 determines the number of state variables by using ζ calculated by the ζ calculation unit 132. The replica processing unit 120 generates a second state in which the values of the number of state variables among the plurality of state variables in the first state are changed. The replica processing unit 120 continues the solution search using the second state.
[0179] Therefore, the data processing device 100 can improve the solution search performance. As described above, the replica processing unit 120 can calculate the number of consecutive rejections θ by 次数 With the predetermined number of times θ 步骤 A comparison is performed to detect that the number of occurrences of the first state exceeds the predetermined number of times within the predetermined time. Alternatively, in the case of using the no-rejection method, when the search is stuck in a local solution, the behavior of only adopting the same state is repeated, or the state immediately returns to the same state even when the state transitions to another state. For this reason, in the case of using the no-rejection method, the replica processing unit 120 may count the number of times the state has become the first state after each trial within the predetermined time after reaching the first state, and detect that the number exceeds the predetermined number of times.
[0180] The replica processing unit 120 may calculate a statistical value of the difference between the first value and the second value, and determine the number of state variables whose values are to be changed from the first state based on the statistical value. For example, the statistical value is an average value, a maximum value, a minimum value, a median value, a percentile value, etc. ζ in formula (4) represents the average value of the difference between the first value and the second value. For example, in the case of using the maximum value of the difference between the first value and the second value, ζ=max(H i (s))-H(s). For example, in the case of using the minimum value of the difference between the first value and the second value, ζ=min(H i (s))-H(s).
[0181] Therefore, the data processing device 100 can appropriately determine the number of state variables whose values are to be changed from the first state according to the smoothness / steepness of the change in the value of the evaluation function near the first state.
[0182] The replica processing unit 120 can easily obtain the statistical value by using any one of the average value, the maximum value, and the minimum value as the statistical value.
[0183] The replica processing unit 120 may compare a third value obtained by dividing the statistical value or the absolute value of the statistical value by the second value or the absolute value of the second value with the first threshold value. When the third value is less than the first threshold value, the replica processing unit 120 sets the number of state variables whose values are to be changed from the first state to the first number. On the other hand, when the third value is equal to or greater than the first threshold value, the replica processing unit 120 sets the number of state variables whose values are to be changed from the first state to a second number that is less than the first number.
[0184] Therefore, the data processing device 100 can appropriately determine the number of state variables whose values are to be changed from the first state according to the smoothness / steepness of the change in the value of the evaluation function near the first state. 能量 is an example of a first threshold.
[0185] When generating the second state, the replica processing unit 120 may randomly select a state variable whose value is to be changed.
[0186] Alternatively, when generating the second state, the replica processing unit 120 may select a state variable whose value is to be changed based on the first value.
[0187] Therefore, the data processing device 100 can more efficiently perform escape from the first state estimated as a local solution. The replica processing unit 120 can select a state variable whose value is to be changed based on a first value corresponding to a state variable other than the state variable considered when the number of state variables whose values are to be changed from the first state is determined.
[0188] When determining the number of state variables whose values are to be changed from the first state, the replica processing unit 120 may perform the following processing. The replica processing unit 120 performs a first processing of selecting a first state variable whose value is to be changed from the first state based on the difference between the first value and the second value used for solution search, the random value, and the temperature value. In a case where the state obtained by changing the value of the selected first state variable is set as a new first state, the replica processing unit 120 performs the following second processing: based on the difference between the first value and the second value, an index value of the transition probability from the new first state to another state is calculated. The replica processing unit 120 repeatedly performs the first processing and the second processing until the index value is greater than the second threshold value.
[0189] Therefore, the replica processing unit 120 can effectively determine the number of state variables whose values are to be changed while selecting the state variables whose values are to be changed from the original first state estimated as the local solution. The original first state is the first state immediately before the first execution of the first process in the repetition of the first process and the second process.
[0190] For example, the replica processing unit 120 can cause a forced transition from the original first state to a state estimated to have a relatively high transition probability to the next state by repeating the first process and the second process, and can achieve effective escape from the local solution (the original first state). ζ in formula (7) is an example of an index value of the transition probability. The threshold value θ described previously is α is an example of the second threshold. For example, the replica processing unit 120 may randomly select the first state variable by using formula (8) for selecting the first state variable so that the state transition with large energy is given priority.
[0191] The replica processing unit 120 may select a predetermined number of state variables from a plurality of state variables, and may calculate, for each of the predetermined number of state variables, a first value when the value of the state variable changes from a first state. The predetermined number may be the same number as the number of the plurality of state variables, or may be a number less than the number of the plurality of state variables. For example, the replica processing unit 120 may extract the predetermined number of state variables by extracting the state variables at intervals of c in the order of indexes as in formula (5), or may randomly perform extraction from a plurality of state variables as in formula (6).
[0192] Therefore, the data processing device 100 can appropriately perform the evaluation of the difference between the first value and the second value. For example, the data processing device 100 can shorten the time taken for the evaluation of the difference between the first value and the second value by setting the predetermined number to a number smaller than the number of the plurality of state variables.
[0193] The replica processing units 120a, ..., and 120n may also perform processing similar to that of the replica processing unit 120. Instead of the replica exchange method, another solution search method such as the SA method may be performed by each replica processing unit.
[0194] In a normal solution search by the replica processing unit 120, it is conceivable that the number of state variables (spins) to be flipped simultaneously is a predetermined number (t) of one or more. In such a case, when the estimation search is stuck in a local solution, it is also conceivable that the replica processing unit 120 determines a number greater than the predetermined number (t) by the method described above when determining the number of state variables whose values are to be changed. For example, the replica processing unit 120 determines the number of state variables whose values are to be changed from the first state (v) based on the difference between the first value of the evaluation function in the case where the values of any t state variables are changed from the first state and the second value of the evaluation function corresponding to the first state.
[0195] In addition, in this case, the copy processing unit 120 may obtain a poor statistical value, and compare a third value obtained by dividing the statistical value or the absolute value of the statistical value by the second value or the absolute value of the second value with a first threshold. When the third value is less than the first threshold, the copy processing unit 120 may set the number v of state variables whose values are to be changed from the first state to a first number v1. v1 is a number greater than t (v1>t). On the other hand, when the third value is equal to or greater than the first threshold, the copy processing unit 120 may set the number v of state variables whose values are to be changed from the first state to a second number v2 less than the first number v1 (v2<v1). At this time, v2 may be a number greater than t (v2>t). The copy processing unit 120 may generate a second state by changing the values of the state variables of the number (v1 or v2) determined in this way, and may continue the solution search.
[0196] The information processing of the first embodiment can be implemented by causing the processing unit 12 to execute a program. The information processing of the second embodiment can be implemented by causing the processor 101 to execute a program. The program may be recorded in the computer-readable recording medium 113.
[0197] For example, the program may be propagated by distributing the recording medium 113 in which the program is recorded. The program may be stored in another computer, and the program may be distributed via a network. For example, a computer may store (install) the program recorded in the recording medium 113 or the program received from another computer in a storage device such as the RAM 102 or the HDD 103, and read and execute the program from the storage device.
Claims
1. A non-transitory computer-readable recording medium storing a data processing program for causing a computer to execute a process including: When the number of occurrences of a first state exceeds a predetermined number within a predetermined time in a solution search based on an evaluation function including a plurality of state variables, determining the number of state variables whose values are to be changed from the first state among the plurality of state variables based on a difference between a first value of the evaluation function in a case where the value of any state variable among the state variables is changed from the first state and a second value of the evaluation function corresponding to the first state; generating a second state in which values of the number of the state variables among the plurality of state variables in the first state are changed; and The solution search is continued using the second state.
2. The non-transitory computer-readable recording medium according to claim 1, wherein The determining of the number includes determining the number based on a statistical value of the differences.
3. The non-transitory computer-readable recording medium according to claim 2, wherein: The statistical value is any one of an average value, a maximum value, and a minimum value.
4. The non-transitory computer-readable recording medium according to claim 2, wherein: Determination of the number includes: comparing a third value obtained by dividing the statistical value by the second value with a first threshold value, When the third value is less than the first threshold, setting the number to the first number, and When the third value is equal to or greater than the first threshold, the number is set to a second number which is smaller than the first number.
5. The non-transitory computer-readable recording medium according to claim 1, wherein: The generating of the second state includes selecting the state variable to be changed, either randomly or based on the first value.
6. The non-transitory computer-readable recording medium according to claim 1, wherein: The determination of the number includes repeatedly performing the following process until the indicator value is greater than a second threshold: selecting a first state variable whose value changes from the first state based on the temperature value, the random value, and the difference used for the solution search, and An index value of a transition probability from the new first state to another state is calculated based on a difference between the first value and the second value in a case where a state in which the value of the selected first state variable is changed is set as a new first state.
7. The non-transitory computer-readable recording medium according to claim 1, wherein: In the determination of the number, a predetermined number of state variables are selected from the plurality of state variables, and for each of the predetermined number of state variables, the first value is calculated in a case where the value of the state variable changes from the first state.
8. A data processing method implemented by a computer, the data processing method comprising: When the number of occurrences of a first state exceeds a predetermined number within a predetermined time in a solution search based on an evaluation function including a plurality of state variables, determining the number of state variables whose values are to be changed from the first state among the plurality of state variables based on a difference between a first value of the evaluation function in a case where the value of any state variable among the state variables is changed from the first state and a second value of the evaluation function corresponding to the first state; generating a second state in which values of the number of the state variables among the plurality of state variables in the first state are changed; and The solution search is continued using the second state.
9. A data processing device comprising: a storage unit configured to store a value of each of a plurality of state variables; as well as A processing unit configured to perform a process comprising: When the number of occurrences of a first state exceeds a predetermined number within a predetermined time in a solution search based on an evaluation function including the plurality of state variables, determining the number of state variables whose values are to be changed from the first state among the plurality of state variables based on a difference between a first value of the evaluation function in a case where the value of any state variable among the state variables is changed from the first state and a second value of the evaluation function corresponding to the first state; generating a second state in which values of the number of the state variables among the plurality of state variables in the first state are changed; as well as The solution search is continued using the second state.
Citation Information
Patent Citations
Application of optimized quantum monte carlo simulation method in studying complex magnetic systems
US20210342505A1
Variational annealing
US20220198246A1