Program, data processing method, and data processing device

JP2025034584APending Publication Date: 2025-03-13FUJITSU LTD

Patent Information

Application Number
JP2023141060
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Filing Date
2023-08-31
Publication Date
2025-03-13

AI Technical Summary

Benefits of technology

【0010】 1つの側面では、求解性能を向上できる。

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025034584000001_ABST
    Figure 2025034584000001_ABST
Patent Text Reader

Abstract

To improve solution performance.SOLUTION: A processing unit 12 is configured so as to, in a solution search based on an evaluate function that includes multiple state variables, when the number of times that the first state appears within a given time exceeds a given number, determine the number of state variables whose values will change from the first state based on the difference between the first value of the evaluate function when the value of any of the multiple state variables is changed from the first state and a second value of the evaluate function corresponding to the first state. The processing unit 12 generates the second state with the determined number of state variables changed among the multiple state variables in the first state and continues the solution search using the second state.SELECTED DRAWING: Figure 1
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

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

[0002] Information processing devices are sometimes used to solve combinatorial optimization problems. Combinatorial optimization problems are converted into an evaluation function that represents the energy of an Ising model, which is a model that represents the behavior of spin in magnetic materials. The information processing device searches for a combination that minimizes or maximizes the evaluation function among combinations of state variable values ​​included in the evaluation function. The combination of state variable values ​​that minimizes or maximizes the evaluation function corresponds to the ground state or optimal solution represented by the set of state variables. Methods for obtaining an approximate solution to a combinatorial optimization problem in a practical amount of time include a method based on the Markov Chain Monte Carlo (MCMC) method, combining the Simulated Annealing (SA) method, the Replica Exchange method, and other methods.

[0003] For example, there has been a proposal for an information processing device that executes sequential MCMC, which selects state variables in index order and determines whether to accept a state transition in which the value of the state variable changes. When the number of consecutive times that it is determined that the value of the state variable should not be changed reaches a predetermined number, the proposed information processing device increases the probability of transition acceptance by correcting the amount of change in energy with an offset value.

[0004] There has also been a proposal for an optimization device that, when the negation of a state transition is repeated a specific number of times in succession, randomly selects one state from a predetermined number of candidate states selected in ascending order of the corresponding energy increment, and transitions from the current state to the selected state.

[0005] Instead of annealing and approximately sampling the Boltzmann distribution, a method called variational neural annealing has been proposed to anneal quasi-equilibrium models, and quantum Monte Carlo simulation methods have been proposed to simulate the microscopic magnetic structures of complex magnetic systems and to investigate their macroscopic physical properties. [Prior art documents] [Patent documents]

[0006] [Patent Document 1] JP 2022-174616 A [Patent Document 2] JP 2023-49630 A [Patent Document 3] US Patent Application Publication No. 2022 / 0198246 [Patent Document 4] US Patent Application Publication No. 2021 / 0342505 Summary of the Invention [Problem to be solved by the invention]

[0007] In solution searches based on the MCMC method, it can take a long time to obtain a better solution because state transitions are not consistently selected or certain states are consistently selected. In one aspect, the present invention aims to improve solution performance. [Means for solving the problem]

[0008] In one embodiment, a program is provided. The program causes a computer to execute the following process. When the number of times that a first state appears within a predetermined time exceeds a predetermined number in a solution search based on an evaluation function including a plurality of state variables, the computer determines the number of state variables whose values ​​are to be changed from the first state based on a difference between a first value of the evaluation function when a value of any of 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 computer generates a second state in which the values ​​of the corresponding number of state variables among the plurality of state variables in the first state are changed. The computer continues the solution search using the second state.

[0009] Also, in one aspect, a data processing method is provided. Also, in one aspect, a data processing device is provided having a storage unit and a processing unit. Effect of the Invention

[0010] On the one hand, it can improve solution performance. [Brief description of the drawings]

[0011] [Figure 1] FIG. 1 is a diagram illustrating a data processing device according to a first embodiment. [Diagram 2] FIG. 11 illustrates an example of hardware of a data processing device according to a second embodiment. [Diagram 3] FIG. 13 is a diagram illustrating an example of a relationship between a state and energy. [Figure 4] FIG. 2 illustrates an example of functions of a data processing device. [Diagram 5] FIG. 4 illustrates an example of functions of a replica processing unit; [Figure 6] 13 is a flowchart showing an example of a solution search by a replica processing unit. [Figure 7] 13 is a flowchart showing an example of exchange control. [Figure 8] FIG. 13 is a diagram showing an example of selection of a spin to be flipped. [Figure 9] 13 is a flowchart showing a modified example of a spin-flip process. [Figure 10] FIG. 13 is a diagram showing an example of an experimental result. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0012] The present embodiment will be described below with reference to the drawings. [First embodiment] A first embodiment will be described.

[0013] FIG. 1 is a diagram illustrating a data processing device according to a first embodiment. The data processing device 10 is used to solve a combinatorial optimization problem based on the MCMC method. For example, the SA method or the replica exchange method is used to solve the combinatorial optimization problem. The replica exchange method is also called the exchange Monte Carlo method. The data processing device 10 has a memory unit 11 and a processing unit 12.

[0014] The storage unit 11 may be a volatile semiconductor memory such as a random access memory (RAM), or may be a non-volatile storage such as a hard disk drive (HDD) or a flash memory. 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 an electronic circuit for a specific purpose 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 called a "multiprocessor" or simply a "processor."

[0015] In the following description, an example will be shown in which the processing unit 12 searches for a solution. However, a search unit realized by an FPGA, a GPU, or the like may search for a solution in response to an instruction from the processing unit 12 and return the search result to the processing unit 12. In that 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.

[0016] A combinatorial optimization problem is formulated by a given evaluation function, and is replaced by a problem of minimizing the value of the evaluation function, that is, the evaluation value, for example. The evaluation function is sometimes called an objective function or an energy function. The evaluation function includes multiple state variables. The state variables are binary variables that take on values ​​of 0 or 1, for example. The state variables may take on values ​​of {1, -1} or other real numbers. The state variables may also be called bits or spins.

[0017] A solution to a combinatorial optimization problem is represented by the values ​​of multiple 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.

[0018] The Ising-type evaluation function is expressed, for example, by equation (1).

[0019]

number

[0020] The first term on the right hand side of equation (1) is the sum of the values ​​of the two state variables and the weighting coefficients for all combinations of two state variables that can be selected from all state variables, without omissions or duplications. The subscripts i and j are the indices of the state variables.i is the i-th state variable. s j is the jth state variable. N is the total number of state variables. W ij is the weight between the i-th state variable and the j-th state variable, or the coupling coefficient that indicates the strength of the coupling. W ij =W ji And W ii =0.

[0021] The second term on the right-hand side of equation (1) is the sum of the products of the biases of all state variables and the values ​​of the state variables. i indicates the bias for the i-th state variable. Problem information including the weighting coefficient and bias included in the evaluation function is stored in the storage unit 11.

[0022] State variable s i The value of 1-s i Then, the state variable s i The increase in is Δs i =(1-s i )-s i =1-2s i Therefore, for the evaluation function H(s), the state variable s i The change in energy ΔH due to the change in i is expressed by equation (2).

[0023]

number

[0024]

number

[0025] At this time, in the steepest descent method, it becomes impossible to escape when falling into a local solution. 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 by changing a certain state variable. That is, the processing unit 12 also probabilistically allows changes in the value of the evaluation function according to the comparison between the amount of change in the value of the evaluation function and the thermal noise value even for changes that increase the value of the evaluation function. The thermal noise value is obtained based on the temperature value and random numbers. The larger the temperature value, the larger the amplitude of the thermal noise value. The larger the amplitude of the thermal noise value, the more likely it is to allow a state transition with a large increase in the value of the evaluation function.

[0026] 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 the energy change ΔH i is given by 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 among the arguments.

[0027] The processing unit 12 compares a uniform random number u such that 0 < u < 1 with A i for a certain index i, and if u < A i , it accepts the change in the value of the state variable s i and changes the value of the state variable s i . If u < A i is not satisfied, 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 , the larger the value of ΔH i , the smaller A i . Also, the smaller β is, that is, the larger T is, the larger ΔH iState transitions with large

[0028] For example, when the Metropolis method is used, the processing unit 12 determines whether ln(u)*T≦−ΔH i The transition determination may be performed using the following determination formula: ln(u)*T corresponds to a thermal noise value. The processing unit 12 determines the energy change ΔH i satisfies the judgment formula, the processing unit 12 allows the change in the value of the corresponding state variable. i does not satisfy the judgment formula, the value of the corresponding state variable is not allowed to change.

[0029] In the SA method, the processing unit 12 gradually changes the temperature value from the maximum temperature value to the minimum temperature value to reduce the amplitude of the thermal noise 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 executes MCMC independently for each of a plurality of temperature values, exchanges the states obtained at each temperature value at a predetermined timing, and continues the MCMC with the state after the exchange as the initial solution, repeating the procedure and extracting a good solution obtained in the process.

[0030] Here, in the solution search by the processing unit 12, if a local solution occurs, state transition may be delayed and it may take a long time to obtain an optimal solution or an approximate solution close to the optimal solution. Therefore, the processing unit 12 performs the following process in the solution search. The following process may be executed in the solution search by the SA method, for example, or in the solution search corresponding to one temperature value by the replica exchange method.

[0031] The processing unit 12 detects that the number of times the first state has appeared within a predetermined time exceeds a predetermined number of times in a solution search based on an evaluation function including a plurality of state variables. The predetermined time is determined in advance. Detecting that the number of times the first state has appeared within a predetermined time exceeds a predetermined number of times can also be said to be detecting that the number of times the first state appears per unit time, i.e., the frequency of appearance, exceeds a predetermined value. Also, the first state appears once means that the state after one trial of state transition in the solution search is the first state. At this time, the state before the one trial may be the first state or may be a state different from the first state.

[0032] For example, the processing unit 12 may count the number of times that a state transition is not adopted consecutively, i.e., the number of consecutive rejects, and detect that the number of times that the first state has appeared within a predetermined time has exceeded a predetermined number of times depending on whether the number of consecutive rejects has exceeded a predetermined number. In this case, the first state has appeared the number of times of trials corresponding to the number of consecutive rejects. Also, the time required for the number of trials corresponding to the predetermined number corresponds to the predetermined time.

[0033] Alternatively, when a transition to the first state occurs, if the first state occurs again within a predetermined time from that timing, the processing unit 12 may detect that the number of occurrences has exceeded a predetermined number by counting the number of occurrences.

[0034] In the solution search, if the number of times that the first state appears within a predetermined time exceeds a predetermined number, the first state is estimated to be a local solution. Therefore, the processing unit 12 can detect that the solution has fallen into a local solution by detecting that the number of times that the first state appears within a predetermined time exceeds a predetermined number.

[0035] When the processing unit 12 detects that the number of times the first state has appeared within a predetermined time exceeds a predetermined number of times, the processing unit 12 performs the following process. 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 a first value of the evaluation function when the value of any state variable is changed from the first state and a second value of the evaluation function corresponding to the first state. Then, the processing unit 12 generates a second state in which the values ​​of the corresponding number of state variables among 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 resumed from the second state.

[0036] 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. The state is expressed multidimensionally by the values ​​of multiple state variables, but in graph 20, the state is plotted on the horizontal axis for convenience.

[0037] The state s1 is an example of a first state. The state s1 corresponds to a local solution. The processing unit 12 detects that the number of times that the state s1 has appeared within a predetermined time exceeds a predetermined number in the solution search. Then, the processing unit 12 calculates a first value (H i An index value ζ is calculated based on the difference between the first value (H(s1)) of the evaluation function corresponding to state s1 and a second value (H(s1)) of the evaluation function corresponding to state s1. The index value ζ is a statistical value of the difference. For example, the processing unit 12 calculates a first value when each value of a predetermined number of state variables is changed, and obtains ζ as a statistical value of the predetermined number of first values. The index value ζ is an index representing the gradualness or steepness of the change in the value of the evaluation function around the first state. In one example, ζ is calculated by equation (4).

[0038]

number

[0039] In 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 ζ.

[0040] In still another example, the processing unit 12 may take the sum over a portion of all indexes for Σ in formula (4) instead of taking the sum over all indexes. For example, the processing unit 12 may calculate ζ using formula (5) or formula (6).

[0041]

number

[0042]

number

[0043] For example, the processing unit 12 determines the number of state variables whose values ​​are to be changed by a predetermined judgment formula using ζ. The judgment formula is expressed, for example, as ζ(s) / |H(s)|<θenergy. θenergy is a predetermined threshold. |H(s)| is the absolute value of H(s). If ζ(s) / |H(s)|<θenergy, the processing unit 12 determines to change the values ​​of p state variables. For example, p is an integer equal to or greater than 3. If ζ(s) / |H(s)|≧θenergy, the processing unit 12 determines to change q state variables whose values ​​are smaller than p. For example, q is an integer equal to or greater than 2 and smaller than p. The values ​​of p and q are determined in advance. When making a judgment for state s1, the processing unit 12 sets s=s1 in the judgment formula.

[0044] Then, 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.

[0045] Note that dividing ζ(s) by |H(s)| corresponds to normalizing ζ(s). The method of normalizing ζ(s) by dividing ζ(s) by |H(s)| is one example, and the processing unit 12 may normalize ζ(s) by a method other than dividing ζ(s) by |H(s)|.

[0046] For example, when ζ(s1) / |H(s1)|<θenergy, it means that the evaluation function is relatively gentle around state s1, that is, the change in the value of the evaluation function is small. When ζ(s1) / |H(s1)|≧θenergy, it means that the evaluation function is relatively steep around state s1, that is, the change in the value of the evaluation function is large.

[0047] When it is determined that the evaluation function is gentle around the state s1, the processing unit 12 changes the values ​​of a larger number (p) of state variables than when the evaluation function is steep around the state s1. This makes it difficult for the processing unit 12 to return to the state s1 in the subsequent solution search, enabling efficient escape from the local solution.

[0048] On the other hand, when it is determined that the evaluation function is steep around the state s1, the processing unit 12 changes the values ​​of the state variables in a smaller number (q) than when the evaluation function is gentle around the state s1. In this way, the processing unit 12 enables efficient escape from the local solution without transitioning to a state farther away than necessary from the state s1. For example, when the evaluation function is steep around 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 the subsequent solution search is reduced.

[0049] 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 times a first state has appeared within a predetermined time exceeds a threshold value. Then, based on the difference between a first value of the evaluation function when the value of any one of 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 changed from the first state is determined. A second state is generated in which the values ​​of the corresponding number of state variables among the plurality of state variables in the first state are changed. The solution search is continued using the second state.

[0050] This allows the data processing device 10 to improve its solution-finding performance. As described above, the data processing device 10 enables efficient escape from a local solution. As a result, the data processing device 10 can increase the possibility of arriving at an 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 speed up solution-finding.

[0051] [Second embodiment] Next, a second embodiment will be described. FIG. 2 illustrates an example of hardware of a data processing device according to the second embodiment.

[0052] The data processing device 100 includes a processor 101, a RAM 102, a HDD 103, a GPU 104, an input interface 105, a media reader 106, a communication interface 107, and an accelerator card 108. These units included in the data processing device 100 are connected to a bus inside the data processing device 100.

[0053] The processor 101 is an arithmetic device that executes program instructions. The processor 101 is, for example, a CPU. The processor 101 loads at least a part of the program and data stored in the HDD 103 into the RAM 102 and executes the program. The processor 101 may include multiple processor cores. The data processing device 100 may have multiple processors. The processing described below may be executed in parallel using multiple processors or processor cores. A set of multiple processors may also be called a "multiprocessor" or simply a "processor."

[0054] The RAM 102 is a volatile semiconductor memory that temporarily stores programs executed by the processor 101 and data used in calculations by the processor 101. Note that the data processing device 100 may include a type of memory other than a RAM, or may include multiple memories.

[0055] The HDD 103 is a non-volatile storage device that stores software programs such as an OS (Operating System), middleware, and application software, and data. The data processing device 100 may include other types of storage devices such as a flash memory or an SSD (Solid State Drive), or may include multiple non-volatile storage devices.

[0056] The GPU 104 outputs an image to a display 111 connected to the data processing device 100 in accordance with an instruction from the processor 101. As the display 111, any type of display can be used, such as a CRT (Cathode Ray Tube) display, a liquid crystal display (LCD: Liquid Crystal Display), a plasma display, or an organic EL (OEL: Organic Electro-Luminescence) display.

[0057] The input interface 105 acquires an input signal from an input device 112 connected to the data processing device 100, and outputs the input signal to the processor 101. As the input device 112, 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 can be used. In addition, a plurality of types of input devices may be connected to the data processing device 100.

[0058] The medium reader 106 is a reading device that reads programs and data recorded on a recording medium 113. For example, a magnetic disk, an optical disk, a magneto-optical disk (MO: Magneto-Optical disk), a semiconductor memory, etc. can be used as the recording medium 113. Magnetic disks include flexible disks (FD: Flexible Disks) and HDDs. Optical disks include compact discs (CDs) and digital versatile discs (DVDs).

[0059] The medium reader 106 copies, for example, the program or data read from the recording medium 113 to another recording medium such as the RAM 102 or the HDD 103. The read program is executed, for example, by the processor 101. Note that the recording medium 113 may be a portable recording medium, and may be used for distributing the program or data. Also, the recording medium 113 and the HDD 103 may be referred to as computer-readable recording media.

[0060] The communication interface 107 is connected to a network 114 and communicates with other information processing devices via the network 114. The communication interface 107 may be a wired communication interface connected to a wired communication device such as a switch or a router, or a wireless communication interface connected to a wireless communication device such as a base station or an access point.

[0061] The accelerator card 108 is a hardware accelerator that searches for a solution to a problem expressed by the Ising-type energy function of formula (1) using the MCMC method. The accelerator card 108 can be used as a sampler that samples a state following the Boltzmann distribution at a given temperature by performing the MCMC method at a constant temperature or the replica exchange method that exchanges the state of the Ising model between multiple temperatures. To solve a combinatorial optimization problem, the accelerator card 108 executes annealing processes such as the replica exchange method and the SA method that gradually lowers the temperature value. The replica exchange method is also called the exchange Monte Carlo method or the parallel tempering (PT) method.

[0062] The SA method is a method for efficiently finding an optimal solution by lowering the temperature value used during sampling from a high temperature to a low temperature, i.e., by increasing the inverse temperature β. Even on the low temperature side, i.e., when β is large, the state changes to some extent, so that it is more likely that a good solution can be found even if the temperature value is lowered quickly. For example, when the SA method is used, the accelerator card 108 repeats the operation of trying state transitions at a constant temperature value a certain number of times and then lowering the temperature value.

[0063] The replica exchange method is a method of independently executing the MCMC method using multiple temperature values. The independent computational resources that execute the MCMC method are called replicas. In the replica exchange method, states or temperature values ​​are appropriately exchanged for states obtained by multiple replicas corresponding to multiple temperature values. In the replica exchange method, a narrow range of the state space is searched by MCMC at low temperatures, and a wide range of the state space is searched by MCMC at high temperatures, so that a good solution can be found efficiently. When using the replica exchange method, the accelerator card 108 performs parallel trials of state transitions with multiple replicas, and repeats the operation of exchanging states or temperature values ​​with a predetermined exchange probability for pairs of replicas with adjacent temperature values ​​every time a certain number of trials are performed. In this way, a device such as the data processing device 100 or the accelerator card 108 that solves the Ising problem is sometimes called an Ising machine.

[0064] The accelerator card 108 has a processor 108a and a RAM 108b. The processor 108a realizes a solution search function in the accelerator card 108. The processor 108a is a dedicated processor for solution search, such as a GPU, an FPGA, or an ASIC. The RAM 108b holds data used in the solution search by the processor 108a and a solution searched by the processor 108a. The data processing device 100 may have multiple accelerator cards.

[0065] Here, the RAM 102 and the RAM 108b may each 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 in the first embodiment. The RAM 102 or the RAM 108b corresponds to the storage unit 11 in the first embodiment. The HDD 103 may correspond to the storage unit 11.

[0066] Hardware that searches for a solution to an Ising-type problem, such as the data processing device 100 or the accelerator card 108, may be called an Ising machine or a Boltzmann machine. In the following, a case where the replica exchange method is used will be described as an example of a solution search method. However, the data processing device 100 may use other methods, such as the SA method, instead of the replica exchange method.

[0067] FIG. 3 is a diagram illustrating an example of the relationship between states and energy. Graph 30 shows an example of the relationship between states represented by multiple spins and energies calculated by an energy function. The horizontal axis of graph 30 shows states. The vertical axis of graph 30 shows energy. States are multidimensionally represented by multiple spins, but for convenience each state is plotted on the horizontal axis. The amount of change in the energy function may be relatively small or relatively large in the vicinity of a certain state.

[0068] Therefore, when the data processing device 100 estimates that a local optimum has been reached, it calculates ζ as an index value indicating the depth / shallowness or steepness / gradualness of the energy landscape around the local optimum, and enables efficient escape from the local optimum based on ζ.

[0069] FIG. 4 is a diagram illustrating an example of functions of the data processing device. The data processing device 100 includes replica processing units 120, 120a, ..., 120n and a switching control unit 140. The replica processing units 120, 120a, ..., 120n and the switching control unit 140 are realized by the processor 108a. The replica processing units 120, 120a, ..., 120n and the switching control unit 140 may be realized by the processor 101 executing a program stored in the RAM 102.

[0070] The replica processors 120, 120a, ..., 120n are search units that perform MCMC at different temperature values ​​in solving a combinatorial optimization problem. The replica processors 120, 120a, ..., 120n perform MCMC independently and in parallel. The replica processors may be simply referred to as replicas.

[0071] The switching control unit 140 controls switching of states between a pair of replica processing units having adjacent temperature values ​​at a predetermined timing. The switching control unit 140 may switch temperature values, instead of states, between a pair of replica processing units having adjacent temperature values.

[0072] For example, the data processing device 100 performs a solution search for a certain period of time using the replica processing units 120, 120a, . . . , 120n and the switching control unit 140, and outputs the solution with the lowest energy obtained by the solution search as the final solution.

[0073] FIG. 5 illustrates an example of the functions of the replica processing unit. The replica processing unit 120 includes an s holding unit 121, an s storage unit 122, an H holding unit 123, an H storage unit 124, and an s i Flip processing unit 125, selection unit 126, Δs i Calculation unit 127, ΔH i The system includes a calculation unit 128 , an acceptance / rejection determination unit 129 , an addition unit 130 , a consecutive reject counting unit 131 , a ζ calculation unit 132 and a multiple spin-flip processing unit 133 .

[0074] The s storage unit 122 and the H storage unit 124 use the storage area of ​​the RAM 108b. i Flip processing unit 125, selection unit 126, Δs i Calculation unit 127, ΔH i The calculation unit 128, the acceptance / rejection determination unit 129, the addition unit 130, the consecutive reject counting unit 131, the ζ calculation unit 132 and the multiple spin-flip processing unit 133 are realized by the processor 108a.

[0075] The s holding unit 121 obtains an initial value of the state s input by the user, and stores it in the s memory unit 122. When the s holding unit 121 receives a judgment result from the adoption / rejection judgment unit 129 indicating that the flip of the target spin is adopted, the s holding unit 121 updates the state s by flipping the target spin stored in the s memory unit 122. Here, the state s indicates the state of the replica processing unit 120 in the example of FIG. 5. The state of each replica processing unit is distinguished by the replica number m, such as s(m), but here the state of the replica processing unit 120 is simply represented as s. Also, the s holding unit 121 updates the state s by storing the s i Flip processing unit 125, Δs i The current state s stored in the s storage unit 122 is supplied to the calculation unit 127 , the ζ calculation unit 132 and the multiple spin-flip processing unit 133 .

[0076] The s storage unit 122 stores the state s. The H holding unit 123 obtains an initial value of the energy H corresponding to the state s input by the user, and stores it in the H storage unit 124. When the H holding unit 123 receives a result of the decision by the adoption / rejection decision unit 129 that the flip of the target spin is adopted, the H holding unit 123 calculates H+ΔH i The calculation result is obtained, and the energy H stored in the H storage unit 124 is calculated as H = H + ΔH i In addition, the H holder 123 supplies the current energy H stored in the H storage unit 124 to the adder 130 and the ζ calculator 132.

[0077] The H storage unit 124 stores the energy H corresponding to the state s. The energy H is a value calculated based on the formula (1). s i The flip processing unit 125 performs the i-th spin s i The candidate state s' is obtained by flipping the state s, and the candidate state s' is supplied to the selection unit 126. Here, the candidate state s' is a transition destination candidate state for the state s.

[0078] The selection unit 126 selects s i A candidate state s' supplied by either the flip processing unit 125 or the multiple spin flip processing unit 133 is selected, and Δsi The selection unit 126 supplies the candidate state s' supplied by the multiple spin-flip processing unit 133 to the calculation unit 127. For example, when the number of consecutive rejects by the adoption / rejection determination unit 129, which is counted by the consecutive reject counting unit 131 described later, exceeds a threshold, the selection unit 126 selects the candidate state s' supplied by the multiple spin-flip processing unit 133. In other cases, the selection unit 126 selects s i The selection unit 126 selects a candidate state s' supplied by the flip processing unit 125. Furthermore, the selection unit 126 supplies, to the s holding unit 121, an index indicating a spin of a flip candidate target from the state s for the selected candidate state s'.

[0079] Δs i The calculation unit 127 calculates the difference Δs between the state s and the candidate state s′. i Calculate ΔH i The spins are supplied to the calculation unit 128. When multiple spins are flip candidates, Δs i The calculation unit 127 calculates Δs for each index i of the flip candidate. i It is sufficient to calculate

[0080] ΔH i The calculation unit 128 calculates ΔH based on the formula (2). i and supplies it to the adoption / rejection determination unit 129 and the addition unit 130. When multiple spins are flip candidates, ΔH i The calculation unit 128 calculates ΔH i Calculate ΔH i The sum of the above with respect to the flip candidate i is calculated, and the sum is supplied to the adoption / rejection determination unit 129 and the addition unit 130.

[0081] The acceptance / rejection determination unit 129 determines whether ΔH i The Metropolis method determines whether or not to accept a state transition based on the energy change ΔH i The probability of accepting a change in the value of a state variable A i A i =min[1,exp(-β ΔH i The acceptance / rejection determination unit 129 supplies the result of the acceptance / rejection determination to the s holding unit 121, the H holding unit 123, and the consecutive reject counting unit 131.

[0082] In addition, when multiple spins are candidates for flip, the adoption / rejection determination unit 129 determines whether or not ΔH i The adoption / rejection determination unit 129 performs a decision on whether to adopt the state transition by the Metropolis method based on the sum of the above for the flip candidate i. However, when multiple spins are flip candidates, the adoption / rejection determination unit 129 may determine to adopt the state transition by the flip of the multiple spins, regardless of the adoption / rejection determination.

[0083] The adder 130 calculates ΔH i ΔH calculated by the calculation unit 128 i and H supplied from the H holding unit 123, the updated energy H'=H+ΔH i and supplies H′ to the H holder 123 .

[0084] The consecutive reject counting unit 131 counts the number of times a state transition is consecutively rejected, that is, the consecutive rejection count θnum, based on the result of the acceptance / rejection determination of the state transition by the acceptance / rejection determination unit 129.

[0085] In this embodiment, the number of consecutive rejects is counted by the consecutive reject counting unit 131, but other examples are also possible. The ζ calculation unit 132 calculates the index value ζ when the number of consecutive rejects θnum reaches a threshold θstep. The threshold θstep is determined in advance. The fact that the number of consecutive rejects θnum reaches θstep means that the system has fallen into a local solution. The ζ calculation unit 132 calculates the energy H i The average value of the difference between (s) and the current energy H(s) may be calculated as ζ.

[0086] Alternatively, the ζ calculation unit 132 may calculate H i Alternatively, the maximum value of the difference between H(s) and H(s) may be calculated as ζ. i The minimum difference between (s) and H(s) may be calculated as ζ.

[0087] In still another example, the ζ calculation unit 132 may calculate ζ by using every cth index as shown in formula (5). The ζ calculation unit 132 may calculate ζ by using multiple random numbers R in the interval [1, N] as shown in formula (6).

[0088] In addition, the ζ calculation unit 132 calculates H i Sort by (s) and H i You can also calculate ζ by selecting d of the largest (s), where d is an integer greater than or equal to 2 and less than N. In this case, the d H i (s) is selected as the target of the energy mountain to be overcome. Alternatively, the ζ calculation unit 132 selects H i Alternatively, d smallest H(s) may be selected to calculate ζ. For example, the ζ calculation unit 132 may select d smallest H(s) i The average of the difference between each of (s) and the current energy H(s) may be calculated as ζ.

[0089] In addition, the ζ calculation unit 132 calculates ΔH i Similar to the calculation unit 128, the energy difference can be calculated based on the formula (2). The multiple spin flip processor 133 determines the number of spins to flip according to a comparison between ζ / (current energy H) and a threshold θenergy. In one example, when ζ / |H|<θenergy, the multiple spin flip processor 133 sets the number of spins to flip to x (x>2). For example, x=N / 2 for a total number of spins N. On the other hand, when ζ / |H| is equal to or greater than θenergy, the multiple spin flip processor 133 sets the number of spins to flip to 2. The threshold θenergy is determined in advance. In the following, it is assumed that H>0, and ζ / |H| is simply written as ζ / H.

[0090] The multiple spin flip processing unit 133 randomly selects a determined number of spins and flips the selected spins in the state s to generate a candidate state s'. The multiple spin flip processing unit 133 supplies the generated candidate state s' to the selection unit 126.

[0091] The s storage unit 122 and the H storage unit 124 may be formed using a storage area of ​​the RAM 102. i Flip processing unit 125, selection unit 126, Δs i Calculation unit 127, ΔH i The calculation unit 128, the acceptance / rejection determination unit 129, the addition unit 130, the consecutive reject counting unit 131, the ζ calculation unit 132 and the multiple spin-flip processing unit 133 may be realized by the processor 101 executing a program stored in the RAM 102.

[0092] In addition, the replica processors 120a, ..., 120n have the same functions as the replica processor 120. ζ=ζ(s(m)) and H=H(s(m)) are calculated individually for the state s(m) of each replica processor, and multiple spin-flip processing is performed for each replica processor according to a comparison between θnum and θstep.

[0093] Next, the processing procedure of the data processing device 100 will be described. FIG. 6 is a flowchart showing an example of a solution search by the replica processor. In the following, the process of the replica processor 120 is illustrated as an example, but the replica processors 120a, . . . , 120n also execute the same procedure as the replica processor 120.

[0094] (S10) The s holding unit 121 sets an initial value of the state s. For example, the s holding unit 121 acquires the initial value of the state s input by the user, and stores it in the s memory unit 122. The H holding unit 123 sets an initial value of the energy H. The initial value of the energy H is the value of equation (1) corresponding to the initial value of the state s. For example, the H holding unit 123 acquires the initial value of the energy H input by the user, and stores it in the H memory unit 124. Note that a temperature value corresponding to the replica processing unit 120 is also set in the adoption / rejection determination unit 129.

[0095] (S11)s iThe flip processing unit 125 acquires the current state s from the s storage unit 121, and supplies a candidate state s' obtained by randomly flipping the i-th spin of the state s to the selection unit 126. The selection unit 126 selects s i The candidate state s' obtained from the flip processing unit 125 is expressed as Δs i The calculated value is supplied to the calculation unit 127. i The calculation unit 127 calculates the difference Δs between the state s and the candidate state s′. i Calculate ΔH i The result is supplied to the calculation unit 128.

[0096] (S12)ΔH i The calculation unit 128 calculates Δs i Using this, ΔH in equation (2) i Calculate. (S13) The adoption / rejection determination unit 129 determines whether ΔH i A transition determination to a candidate state s' is performed based on the result of the above. For the transition determination, for example, the Metropolis method is used. If the transition to the candidate state s' is adopted, the process proceeds to step S20. If the transition to the candidate state s' is not adopted, i.e., if it is rejected, the process proceeds to step S14.

[0097] (S14) The consecutive reject counting unit 131 counts the consecutive reject count θnum, which is the number of consecutive rejects in step S13. When step S14 is executed, the candidate state s′ created in step S11 is discarded.

[0098] (S15) The ζ calculation unit 132 judges whether or not θnum>θstep. If θnum>θstep, the process proceeds to step S16. If θnum≦θstep, the process proceeds to step S11.

[0099] (S16) The ζ calculation unit 132 calculates the index value ζ. For example, the formulas (4), (5), and (6) are used to calculate ζ. Alternatively, the ζ calculation unit 132 calculates the index value ζ by using the formula (4), (5), and (6). i(s))-H(s). The max operator indicates that the maximum value among the arguments is selected. In yet another example, the ζ calculation unit 132 may calculate ζ=min(H i It may also be calculated as H(s) - H(s).

[0100] (S17) The multiple spin-flip processing unit 133 determines whether or not ζ / (current energy H)<θenergy. If ζ / (current energy H)<θenergy, the process proceeds to step S18. If ζ / (current energy H)≧θenergy, the process proceeds to step S19.

[0101] (S18) The multiple spin flip processing unit 133 generates a candidate state s' by flipping x spins. x is an integer greater than 2. At this time, the multiple spin flip processing unit 133 randomly selects, for example, the x spins to be flipped. Then, the process proceeds to step S20.

[0102] (S19) The multiple spin flip processing unit 133 generates a candidate state s' by flipping two spins. At this time, the multiple spin flip processing unit 133 randomly selects, for example, the two spins to be flipped.

[0103] When step S18 or step S19 is performed, the selection unit 126 and Δs i Δs corresponding to the candidate state s′ generated by the multiple spin-flip processing unit 133 via the calculation unit 127 i For each index i, ΔH i This is supplied to the calculation unit 128. ΔH i The calculation unit 128 calculates each Δs i Based on this, the energy difference ΔH between state s and candidate state s′ can be calculated.

[0104] (S20) If the result of the adoption / rejection determination by the adoption / rejection determination unit 129 is adoption, the s holding unit 121 updates the current state s to a candidate state s'. That is, the s holding unit 121 stores the candidate state s' as a new state s in the s memory unit 122. Also, if the result of the adoption / rejection determination is adoption, the H holding unit 123 updates the current energy H to an energy H' corresponding to s'. That is, the H holding unit 123 stores the energy H' in the H memory unit 124 as a new energy H.

[0105] Note that even when step S18 or step S19 is performed, the adoption / rejection determination unit 129 may perform an adoption / rejection determination using the Metropolis method or the like based on ΔH. When the candidate state s' is rejected by the adoption / rejection determination unit 129, step S18 or step S19 may be repeatedly executed until the candidate state s' is adopted. Alternatively, when step S18 or step S19 is performed, the adoption / rejection determination unit 129 may determine to adopt the candidate state s' regardless of the adoption / rejection determination.

[0106] (S21)s i The flip processor 125 judges whether or not the termination condition is satisfied. If the termination condition is satisfied, the process of the replica processor 120 ends. If the termination condition is not satisfied, the process proceeds to step S11. The termination condition is, for example, that the replica processor 120 has attempted flipping a certain number of times, or that a certain amount of time has elapsed since the start of the first attempt.

[0107] More generally, in step S19, multiple spin flip processing unit 133 flips y (x>y≧2) spins. FIG. 7 is a flowchart showing an example of exchange control.

[0108] The exchange control unit 140 executes the following processes at a predetermined timing among the repeated procedures of FIG. 6 by each replica processing unit. The following processes are executed for each pair of replica processing units with adjacent temperature values, for example, in the order of replica numbers identifying each replica processing unit. For example, pairs of replica numbers (1, 2), (2, 3),... are selected in order for the pairs of replica processing units subject to exchange control.

[0109] (S30) The exchange control unit 140 acquires information on two replica processing units that are exchange candidates. Let one of the two replica processing units be replica R1 and the other be replica R2. In this case, the information on replica R1 includes information J1 associated with the state of replica R1, such as the state of replica R1, energy H1, temperature value T1, and local solution. The information on replica R2 includes information J2 associated with the state of replica R2, such as the state of replica R2, energy H2, temperature value T2, and local solution.

[0110] (S31) The exchange control unit 140 determines whether the judgment formula rand < exp((1 / T1 - 1 / T2)*(H1 - H2)) is satisfied. rand is a random value in the interval [0, 1]. If the judgment formula is satisfied, the process proceeds to step S32. If the judgment formula is not satisfied, the exchange control for the corresponding two replica processing units ends.

[0111] (S32) The exchange control unit 140 exchanges information other than the temperature value among the information acquired in step S30 for the corresponding two replica processing units. As a result, information on the state s and energy H held by the corresponding two replica processing units is exchanged. Then, the exchange control for the corresponding two replica processing units ends.

[0112] In this way, the exchange control unit 140 controls so that the exchange is performed probabilistically by performing an exchange determination using the judgment formula with the random value rand. Here, when the data processing device 100 finishes the solution search using each replica processing unit, it outputs the best solution obtained in the solution search, that is, the solution with the minimum energy, as the final solution. The data processing device 100 may output a plurality of solutions with preference given to those with lower energy.

[0113] In addition, when the SA method is used, the data processing device 100 can execute the solution search according to the procedure of FIG. 6 using the replica processing unit 120 alone. When the SA method is used, the acceptance / rejection determination unit 129 performs a process of decreasing the temperature value T by, for example, ΔT from the initial temperature value T = T0 at a predetermined timing in the repeated procedure of FIG. 6.

[0114] Here, in steps S18 and S19, it is assumed that the plurality of spin flip processing units 133 randomly select the spins to be flipped when creating the candidate state s'. On the other hand, the plurality of spin flip processing units 133 may select the spins to be flipped based on the energy H i (s) of the state obtained by flipping the spin with index i with respect to the state s.

[0115] FIG. 8 is a diagram showing an example of the selection of the spin to be flipped. For example, when ζ / (current energy H) < θenergy, the plurality of spin flip processing units 133 may select x spins in ascending order of H i (s) and invert them.

[0116] On the other hand, when ζ / (current energy H) ≥ θenergy, the plurality of spin flip processing units 133 may select y (y < x) spins in descending order of H i (s) and invert them.

[0117] Table 124a shows an example of H i (s). Table 124a may be created by, for example, the plurality of spin flip processing units 133 and stored in the H storage unit 124. As an example, let x = 5 and y = 3.

[0118] In the example of Table 124a, when ζ / (current energy H) < θenergy, the multiple spin flip processing unit 133 selects five spins corresponding to indices i = 5, 6, 7, 9, 11 in ascending order of H i (s). Also, when ζ / (current energy H) ≥ θenergy, the multiple spin flip processing unit 133 selects three spins corresponding to indices i = 1, 2, 3 in descending order of H i (s).

[0119] In this way, the multiple spin flip processing unit 133 can further improve the efficiency of escaping from the local solution by selecting the spins to be flipped based on H i (s). For example, when it is evaluated that the change amount of the energy function in the vicinity of the local solution is 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 subsequent searches is further reduced. Also, when it is evaluated that the change amount of the energy function in the vicinity of the local solution is relatively large, by selecting and flipping y spins in descending order of H i (s), the possibility of transitioning to a state that is too far away is further reduced, and the possibility of missing a better solution is reduced.

[0120] Note that the multiple spin flip processing unit 133 may change the method of selecting spins according to the problem. For example, when ζ / (current energy H) < θenergy, the multiple spin flip processing unit 133 may select x spins in descending order of H i (s) and invert them. On the other hand, when ζ / (current energy H) ≥ θenergy, the multiple spin flip processing unit 133 may select y (y < x) spins in ascending order of H i (s) and invert them.

[0121] Alternatively, when ζ / (current energy H) < θenergy, the multiple spin flip processing unit 133 may select x spins in descending order of H i(s) may be selected in ascending order and x spins may be selected and inverted. On the other hand, when ζ / (current energy H) ≥ θenergy, the multiple spin flip processing unit 133 i (s) may be selected in ascending order and y (y < x) spins may be selected and inverted.

[0122] As yet another example, when ζ / (current energy H) < θenergy, the multiple spin flip processing unit 133 i (s) may be selected in descending order and x spins may be selected and inverted. On the other hand, when ζ / (current energy H) ≥ θenergy, the multiple spin flip processing unit 133 i (s) may be selected in descending order and y (y < x) spins may be selected and inverted.

[0123] Further, the multiple spin flip processing unit 133 may select and flip the spins to be flipped by the following method. FIG. 9 is a flowchart showing a modified example of the spin flip process.

[0124] In this modified example, the ζ calculation unit 132 calculates ζ by the following formula (7).

[0125]

Equation

[0126] The following steps S40 to S42 are executed instead of steps S16 to S19 in FIG. 6. Step S40 is executed when it is determined as YES in step S15. (S40) The multiple spin flip processing unit 133 calculates the index j by formula (8).

[0127]

Equation

[0128] (S41) The multiple spin flip processing unit 133 flips the j-th spin. (S42) The ζ calculation unit 132 calculates ζ for the state after the flip in step S41 using equation (7). The multiple spin-flip processing unit 133 calculates ζ > θ α Determine whether θ α is a predetermined threshold value. α If ζ≦θ, the spin-flip process ends. α If so, the process proceeds to step S40. When proceeding to step S40, the energy corresponding to the state after the flip of the j-th spin in the immediately preceding step S41 is H, and the energy corresponding to the state after the flip of the i-th spin is H i It becomes.

[0129] In this way, the multiple spin flip processor 133 may perform the process of determining the number of spins to be flipped based on the difference between the energy of the current state s and the energy of a state in which one spin is flipped from state s, by the procedure shown in Fig. 9. The multiple spin flip processor 133 flips the spins in the direction in which the peak of the energy function becomes higher by setting the index i that satisfies the right side of equation (8) to j. The multiple spin flip processor 133 performs the process of determining the number of spins to be flipped based on the difference between the energy of the current state s and the energy of a state in which one spin is flipped from state s, by the procedure shown in Fig. 9. α If it is greater, it is determined that a state in which a transition is possible has been reached, and the spin-flip process is terminated; if not, the spin-flip process is repeated.

[0130] This enables the data processing device 100 to appropriately select a spin to be flipped so as to promote state transitions. As a result, the data processing device 100 can easily escape from a local solution, improving solution-finding performance.

[0131] FIG. 10 is a diagram showing an example of an experimental result. In the experiment, a 16-spin SK (Sherrington-Kirkpatrick) model was used to solve the problem using the conventional exchange Monte Carlo (replica exchange method) and the exchange Monte Carlo method of the data processing device 100. In the SK model, the number of local solutions is 495.

[0132] FIG. 10(A) shows a graph 40 of the results of the first experiment. In the first experiment, 100 trials of 1000-step state transitions were repeated 100 times using the conventional method and the method of the data processing device 100, which were counted as one set and then another 100 trials were performed. The graph 40 shows histograms 41 and 42 in which each set was classified by the number of times that a minimum solution (optimum solution) was obtained, and the number of sets classified into the corresponding number of times was accumulated. The histogram 41 is a comparative example when the conventional method was used. The histogram 42 is when the method of the data processing device 100 was used.

[0133] FIG. 10B shows a graph 50 of the results of the second experiment. In the second experiment, the number of state transition trials in the conventional method and the method of the data processing device 100 was increased from 1000 steps in the first experiment to 10000 steps, and the rest was the same as in the first experiment. The graph 50 shows histograms 51 and 52 in which each set in the second experiment was classified by the number of times the minimum solution was obtained, and the number of sets classified into the corresponding number was accumulated. The histogram 51 is a comparative example when the conventional method was used. The histogram 52 is when the method of the data processing device 100 was used.

[0134] In the first and second experiments, the data processing device 100 performs the processes illustrated in Fig. 6 and Fig. 7. Equation (4) is used to calculate ζ.

[0135] In both graphs 40 and 50, the more bins there are on the right side of the graph, the more frequently the minimum solution is obtained. As shown in graphs 40 and 50, it was confirmed by experiments that the method of the data processing device 100 obtained the minimum solution more frequently than the conventional method, making it easier to obtain the minimum solution.

[0136] In this way, the data processing device 100 can improve the solution-finding performance. For example, the data processing device 100 can increase the possibility of arriving at 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 speed up solution-finding.

[0137] As described above, the data processing device 100 executes the following processes. The following processes may be executed by a general-purpose processor such as the processor 101, or may be executed by a dedicated processor such as the processor 108a.

[0138] The replica processing unit 120 detects that the number of times that the first state has appeared within a predetermined time exceeds a predetermined number of times in a solution search based on an evaluation function including a plurality of state variables. Then, the replica processing unit 120 determines the number of state variables whose values ​​are changed from the first state based on the difference between a first value of the evaluation function when the value of any one of 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 changed from the first state is set to, for example, 2 or more. Also, for example, the replica processing unit 120 determines the number of the state variables using ζ calculated by the ζ calculation unit 132. The replica processing unit 120 generates a second state in which the values ​​of the corresponding 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.

[0139] This allows the data processing device 100 to improve the solution-finding performance. The replica processing unit 120 may detect that the number of times the first state has appeared within a predetermined time exceeds a predetermined number by comparing the number of consecutive rejects θnum with the predetermined number θstep, as described above. Alternatively, when the rejection free method is used, if a local solution is encountered, the same state is repeatedly adopted, or the state returns to the same state immediately after transition to another state. For this reason, when the rejection free method is used, the replica processing unit 120 may count the number of times the first state has been reached after each trial within a predetermined time since the first state was reached, and detect that the number of times exceeds the predetermined number.

[0140] The replica processing unit 120 may calculate a statistical value of the difference between the first value and the second value, and may 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 may be an average value, a maximum value, a minimum value, a median value, or a percentile value. In formula (4), ζ represents the average value of the differences between the first value and the second value. When the maximum value of the differences between the first value and the second value is used, for example, ζ=max(H i (s))-H(s). When the minimum difference between the first and second values ​​is used, for example, ζ=min(H i (s))-H(s).

[0141] This allows the data processing device 100 to appropriately determine the number of state variables whose values ​​are changed from the first state, depending on the gradualness / steepness of the change in the value of the evaluation function around the first state.

[0142] The replica processor 120 can easily obtain a statistical value by using any one of an average value, a maximum value, and a minimum value as the statistical value. Furthermore, 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. When the third value is smaller than the first threshold, the replica processing unit 120 sets the number of state variables whose values ​​change from the first state to a first number. On the other hand, when the third value is equal to or larger than the first threshold, the replica processing unit 120 sets the number of state variables whose values ​​change from the first state to a second number smaller than the first number.

[0143] This allows the data processing device 100 to appropriately determine the number of state variables whose values ​​are changed from the first state depending on the gradualness / steepness of the change in the value of the evaluation function around the first state. The above-mentioned threshold value θenergy is an example of the first threshold value.

[0144] The replica processing unit 120 may randomly select state variables whose values ​​are to be changed when generating the second state. Alternatively, the replica processing unit 120 may select a state variable whose value is to be changed based on the first value when generating the second state.

[0145] This enables the data processing device 100 to more efficiently escape from the first state estimated to be a local solution. Note that the replica processing unit 120 may select the state variables whose values ​​are to be changed based on the first value corresponding to the state variables other than the state variables considered when determining the number of state variables whose values ​​are to be changed from the first state.

[0146] Furthermore, the replica processing unit 120 may perform the following process when determining the number of state variables whose values ​​are changed from the first state. The replica processing unit 120 performs a first process of selecting a first state variable whose value is changed from the first state, based on the difference between the first value and the second value, a random value, and a temperature value used in the solution search. The replica processing unit 120 performs a second process of calculating an index value of the transition probability from the new first state to another state, based on the difference between the first value and the second value when a state in which the value of the selected first state variable is changed is set as a new first state. The replica processing unit 120 repeatedly performs the first process and the second process until the index value becomes larger than a second threshold value.

[0147] This allows the replica processor 120 to efficiently determine the number of state variables whose values ​​are to be changed as well as the selection of state variables whose values ​​are to be changed from the original first state estimated to be a local solution. The original first state is the first state immediately before the first execution of the first process in the iteration of the first process and the second process.

[0148] For example, the replica processor 120 can forcibly transition from the original first state to a state where the transition probability to the next state is estimated to be relatively high by repeating the first process and the second process, and can efficiently escape from the local solution (original first state). Note that ζ in formula (7) is an example of an index value of the transition probability. Also, the aforementioned threshold value θ α is an example of the second threshold value. For example, the replica processor 120 may use equation (8) to select the first state variable, thereby probabilistically selecting the first state variable so as to prioritize a state transition with larger energy.

[0149] Furthermore, the replica processing unit 120 may select a predetermined number of state variables from among the multiple state variables, and calculate a first value for each of the predetermined number of state variables when the value of the state variable is changed from the first state. The predetermined number may be the same as the number of the multiple state variables, or may be a number less than the number of the multiple state variables. The replica processing unit 120 may extract the predetermined number of state variables by a method such as extracting every c state variables in index order as in formula (5), or may extract the predetermined number of state variables randomly from among the multiple state variables as in formula (6).

[0150] This allows the data processing device 100 to appropriately evaluate the difference between the first value and the second value. For example, the data processing device 100 can reduce the time required to evaluate the difference between the first value and the second value by setting the predetermined number to a number smaller than the number of the multiple state variables.

[0151] Here, the replica processors 120a, ..., 120n may also execute the same processing as the replica processor 120. Also, instead of the replica exchange method, each replica processor may execute another solution search method such as the SA method.

[0152] In addition, in a normal solution search in the replica processing unit 120, the number of state variables (spins) flipped simultaneously may be a predetermined number (t) of 1 or more. In that case, when it is estimated that the replica processing unit 120 has fallen into a local solution, it may be possible to determine a number greater than the predetermined number (t) by the above method in determining the number of state variables whose values ​​are to be changed. Specifically, the replica processing unit 120 determines the number (v) 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 when 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.

[0153] Also in this case, the replica processing unit 120 can obtain the statistical value of the difference, and compare the statistical value or the absolute value of the statistical value with a third value obtained by dividing by the second value or the absolute value of the second value and a first threshold value. When the third value is smaller than the first threshold value, the replica processing unit 120 may set the number v of state variables whose values are changed from the first state to a first number v1. v1 is a number larger than t (v1 > t). On the other hand, when the third value is equal to or greater than the first threshold value, the replica processing unit 120 may set the number v of state variables whose values are changed from the first state to a second number v2 (v2 < v1) smaller than the first number v1. At this time, v2 may also be a number larger than t (v2 > t). Then, the replica processing unit 120 may change the values of the state variables of the number (v1 or v2) thus determined to generate a second state and continue the solution search.

[0154] Also, the information processing of the first embodiment can be realized by causing the processing unit 12 to execute a program. Also, the information processing of the second embodiment can be realized by causing the processor 101 to execute a program. The program can be recorded on a computer-readable recording medium 113.

[0155] For example, by distributing the recording medium 113 on which the program is recorded, the program can be circulated. Also, the program may be stored in another computer and distributed via a network. The computer may store (install) the program recorded on 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.

Explanation of Signs

[0156] 10 Data processing device 11 Storage unit 12 Processing unit 20 Graph

Claims

1. On the computer, in a solution search based on an evaluation function including a plurality of state variables, when a number of times a first state has appeared within a predetermined time exceeds a predetermined number of times, determining a number of the state variables whose values ​​are to be changed from the first state based on a difference between a first value of the evaluation function when a value of any one of the plurality of 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 by changing values ​​of the number of state variables among the plurality of state variables in the first state; continuing the solution search using the second state; A program that executes a process.

2. determining the number based on a statistical value of the difference; The program according to claim 1.

3. The statistical value is any one of an average value, a maximum value, and a minimum value. The program according to claim 2.

4. In determining the number, a third value obtained by dividing the statistical value by the second value is compared with a first threshold value; if the third value is less than the first threshold, the number is a first number; If the third value is equal to or greater than the first threshold, the number is set to a second number that is smaller than the first number. The program according to claim 2.

5. In generating the second state, the state variable whose value is to be changed is selected randomly or based on the first value. The program according to claim 1.

6. In determining the number, selecting a first state variable whose value is to be changed from the first state based on the difference, the random value, and a temperature value used in the solution search; calculating an index value of a transition probability from the new first state to another state based on the difference between the first value and the second value when a state obtained by changing the value of the selected first state variable is set as the new first state; The process is repeated until the index value becomes greater than a second threshold value. The program according to claim 1.

7. In determining 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 when the value of the state variable is changed from the first state. The program according to claim 1.

8. The computer in a solution search based on an evaluation function including a plurality of state variables, when a number of times a first state has appeared within a predetermined time exceeds a predetermined number of times, determining a number of the state variables whose values ​​are to be changed from the first state based on a difference between a first value of the evaluation function when a value of any one of the plurality of 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 by changing values ​​of the number of state variables among the plurality of state variables in the first state; continuing the solution search using the second state; Data processing methods.

9. A storage unit that stores values ​​of a plurality of state variables; a processing unit that, when a number of times a first state has appeared within a predetermined time exceeds a predetermined number of times in a solution search based on an evaluation function including the plurality of state variables, determines a number of the state variables whose values ​​are to be changed from the first state based on a difference between a first value of the evaluation function when a value of any one of the plurality of state variables is changed from the first state and a second value of the evaluation function corresponding to the first state, generates a second state in which values ​​of the said number of state variables among the plurality of state variables in the first state are changed, and continues the solution search using the second state; A data processing device having:

Citation Information

Patent Citations

  • Program, information processing method, and information processing apparatus

    JP2022174616A

  • Optimization program, optimization method, and optimization device

    JP2023049630A

  • Application of optimized quantum monte carlo simulation method in studying complex magnetic systems

    US20210342505A1

  • Variational annealing

    US20220198246A1

Cited By

  • Disc device and control method thereof

    CN122715744A