Information processing system, information processing method, information processing program, and apparatus
Patent Information
- Application Number
- CN202110175873.6
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2020-03-11
- Filing Date
- 2021-02-09
- Publication Date
- 2026-09-22
- Estimated Expiration
- 2041-02-09
AI Technical Summary
[0014]在该方面,可以改善解寻找性能。
Smart Images

Figure CN113391841B_ABST
Abstract
Description
Technical Field
[0001] The implementation methods discussed in this article involve information processing systems, information processing methods, and information processing programs. Background Technology
[0002] There exists an information processing device that performs calculations by replacing a multivariate combinatorial optimization problem that is difficult to process with a Neumann computer with an Ising model, which represents the spin behavior of magnetic materials. Various search algorithms, such as simulated annealing (SA), exist as methods for solving problems involving Ising model replacement in practical applications.
[0003] For example, an information processing apparatus has been proposed that searches for solutions to combinatorial optimization problems using an extended ensemble method. An information processing system in which a ground-state search is independently repeated by multiple spatially extended calculators, results are sequentially accumulated in a time-extended calculator, and the optimal solution is ultimately selected.
[0004] [List of Citations]
[0005] [Patent Literature]
[0006] [Patent Document 1] Japanese Patent Application Publication No. 2019-71119
[0007] [Patent Document 2] International Publication Manual No. WO 2017 / 033263 Summary of the Invention
[0008] Technical issues
[0009] As mentioned above, in methods that use multiple calculators to independently perform ground state search and select the optimal solution from the obtained solutions, sufficient solution-finding performance may not be achieved because the probability of obtaining the optimal solution is low or it takes some time to obtain the optimal solution.
[0010] One aspect of this disclosure is to provide an information processing system, information processing method, and program that can improve solution-finding performance.
[0011] Solution to the problem
[0012] In one aspect, an information processing system is provided. The information processing system includes multiple search units. The multiple search units are configured to: search for a solution represented by the value of each of a plurality of state variables included in an energy function. Each of the multiple search units is further configured to: obtain a first solution from among the multiple solutions obtained by the multiple search units, the first solution corresponding to the optimal value among the values of the plurality of energy functions corresponding to the plurality of solutions; generate a first string of state variables based on the first solution; and use the first string of state variables as a starting state to search for a solution.
[0013] Effects of the present invention
[0014] In this respect, solution-finding performance can be improved. Attached Figure Description
[0015] Figure 1 This is a diagram illustrating an example of an information processing system according to a first embodiment.
[0016] Figure 2 This is a diagram illustrating an example of an information processing system according to a second embodiment.
[0017] Figure 3 This is a diagram showing an example of the hardware of a node.
[0018] Figure 4 This is a diagram illustrating an example of the functionality of a node.
[0019] Figure 5 This is a diagram illustrating an example of a solution pool.
[0020] Figure 6 This is a diagram illustrating an example of a method used to generate new solutions.
[0021] Figure 7 This is a flowchart illustrating an example of the processing of a search unit.
[0022] Figure 8 This is a flowchart illustrating an example of updating the debuffer of the depropagation unit.
[0023] Figure 9 This is a flowchart illustrating an example of the solution output from the solution propagation unit.
[0024] Figure 10 This is a diagram illustrating an example of an information processing system according to a third embodiment.
[0025] Figure 11 This is a diagram illustrating an example of the functionality of a node.
[0026] Figure 12 This is a flowchart illustrating a processing example of a communication unit.
[0027] Figure 13This is a diagram illustrating an example of an information processing system that uses multiple search methods.
[0028] Figure 14 This is a diagram illustrating an example of the characteristics of state transitions for each search method. Detailed Implementation
[0029] In the following description, embodiments will be described with reference to the accompanying drawings.
[0030] [First Implementation Method]
[0031] The first embodiment will be described.
[0032] Figure 1 This is a diagram illustrating an example of an information processing system according to a first embodiment.
[0033] Information processing system 10 searches for solutions to a combinatorial optimization problem and outputs the found solutions. Information processing system 10 includes search units 11, 12, and 13. Each of search units 11, 12, and 13 is implemented, for example, by a semiconductor integrated circuit, such as a central processing unit (CPU), graphics processing unit (GPU), digital signal processor (DSP), application-specific integrated circuit (ASIC), or field-programmable gate array (FPGA). Each of search units 11, 12, and 13 may include a storage unit such as random access memory (RAM) or a register. For example, multiple search circuits implemented using semiconductor integrated circuits such as FPGAs can be used as search units 11, 12, and 13, respectively. The number of search units included in information processing system 10 can be two, or it can be four or more.
[0034] Each of search units 11, 12, and 13 may share at least a portion of the information retained by each of search units 11, 12, and 13 with other search units via, for example, a shared storage device (not shown). Alternatively, each of search units 11, 12, and 13 may have communication capabilities to communicate with other search units and may send information to and receive information from other search units.
[0035] Search units 11, 12, and 13 respectively search for solutions represented by the values of multiple state variables included in the energy function. State variables are binary variables with values of "0" or "1". Search units 11, 12, and 13 search for optimal solutions represented by the values of multiple state variables included in the energy function, based on an Ising-type energy function that expresses a combinatorial optimization problem using a formula. The energy function is also called the evaluation function or objective function. The value of the energy function represents the energy value corresponding to the state of the Ising model represented by the values of multiple variables. The energy value can be called the evaluation value. For example, a combinatorial optimization problem is expressed as a problem of finding a solution that minimizes the energy value. In this case, the solution that minimizes the energy value represents the ground state of the Ising model and corresponds to the optimal solution of the combinatorial optimization problem. The Ising-type energy function E(x) is represented, for example, by equation (1).
[0036] [Formula 1]
[0037]
[0038] The state vector x has multiple state variables as elements, and the state vector x represents the state of the Ising model. In the case of a problem that maximizes the energy value, the sign of the energy function can be reversed.
[0039] The first term on the right side of equation (1) is obtained by integrating the product of the values of the two state variables and the weight coefficients, without omission or repetition of any combination of two state variables that can be selected from all state variables. i x is the i-th state variable. j It is the j-th state variable. W ij It is the weight between the i-th state variable and the j-th state variable, or the weight coefficient indicating the coupling strength.
[0040] The second term on the right side of equation (1) is the sum of the products of the values of each state variable and the corresponding bias coefficients of all state variables. i Indicates the bias coefficient of the i-th state variable.
[0041] For example, in the Ising model, a spin of "-1" corresponds to a state variable value of "0". A spin of "+1" corresponds to a state variable value of "1". Therefore, a state variable can also be referred to as a bit with a value of 0 or 1.
[0042] Problem data indicating the same problem are input to search units 11, 12, and 13. For example, different state vectors are provided from the outside to search units 11, 12, and 13 as the initial state at the first search start time point in the respective search units 11, 12, and 13.
[0043] Each of search units 11, 12, and 13 searches for the optimal solution to the same combinatorial optimization problem using a predetermined search method. Examples of search methods include SA, Genetic Algorithm (GA), Simulated Quantum Annealing (SQA), Tabu Search, etc. The search methods used by search units 11, 12, and 13 may be the same or different. The search methods are not limited to those shown, and other search methods may be used.
[0044] Each of search units 11, 12, and 13 obtains a first solution from among the multiple solutions obtained by search units 11, 12, and 13 that corresponds to the best energy value among the values of multiple energy functions (e.g., multiple energy values) corresponding to the multiple solutions. For example, each of search units 11, 12, and 13 preferentially retains a predetermined number of solutions with good energy values among the solutions found by the search units in the search. Each of search units 11, 12, and 13 supplies the solutions corresponding to the best energy values retained by the search units to other search units and obtains solutions corresponding to the best energy values retained by other search units from other search units. For example, in a problem of minimizing energy values, the best energy value is the minimum energy value among the multiple energy values corresponding to the multiple solutions retained by search units 11, 12, and 13. In this case, the optimal solution is the solution corresponding to the minimum energy value among the solutions retained by search units 11, 12, and 13.
[0045] Each of search units 11, 12, and 13 compares the energy value of a solution obtained from other search units with the energy value of the optimal solution retained by that search unit. When the energy value of a solution obtained from other search units is better than the energy value of the optimal solution retained by that search unit, each of search units 11, 12, and 13 selects the solution obtained from other search units as the first solution. When the energy value of a solution obtained from other search units is worse than the energy value of the optimal solution retained by that search unit, or when the energy value of a solution obtained from other search units is the same as the energy value of the optimal solution retained by that search unit, each of search units 11, 12, and 13 selects the optimal solution retained by that search unit as the first solution.
[0046] For example, a solution propagation unit (not shown) located outside search units 11, 12, and 13 may have the function of acquiring a first solution. In this case, the solution propagation unit collects the optimal solutions retained by the respective search units 11, 12, and 13, selects a first solution from the collected solutions, and supplies the first solution to search units 11, 12, and 13.
[0047] Each of search units 11, 12, and 13 generates a first state variable string as a new state variable string based on the obtained first solution. For example, search unit 11 generates a neighboring solution of the first solution obtained by changing the value of a portion of the state variables included in the first solution as the first state variable string. Neighboring solutions can be generated based on the first solution obtained by search unit 11 and any other solution. The first state variable string can be the same as the state variable string of the first solution. Each of search units 12 and 13 generates a first state variable string similar to that of search unit 11.
[0048] Each of search units 11, 12, and 13 uses the generated first string of state variables as a starting state to search for a solution. For example, each of search units 11, 12, and 13 uses the starting state as a starting point to begin the search. When a solution obtained as a search result in a particular search unit updates the best energy value obtained in that particular search unit, the solution is shared with other search units, and the above process is repeated. Alternatively, when a solution propagation unit is used and a solution obtained as a search result in a particular search unit updates the best energy value obtained across all search units, the solution is shared with other search units, and the above process is repeated.
[0049] The search for a solution performed by search units 11, 12, and 13 ends when a predetermined termination condition is met in each of the search units 11, 12, and 13. The termination condition, for example, is the elapsed time from the first search start point. The information processing system 10 outputs the multiple solutions retained by search units 11, 12, and 13 at the termination point, or the solution among these multiple solutions corresponding to the optimal energy value, as the final solution.
[0050] The first solution is obtained by the corresponding search units 11, 12 and 13, the first state variable string is generated based on the first solution, and the search for the solution using the first state variable string as the starting state can be performed synchronously or asynchronously by the search units 11, 12 and 13 respectively.
[0051] According to the information processing system 10, the first solution corresponding to the optimal energy value is obtained from among the multiple solutions obtained by the corresponding search units 11, 12, and 13. Each of the search units 11, 12, and 13 generates a first state variable string based on the first solution. Each of the search units 11, 12, and 13 searches for a solution by using the generated first state variable string as the starting state.
[0052] Therefore, the solution-finding performance can be improved.
[0053] Consider a method for independently searching the ground state using multiple calculators and selecting the optimal solution from the obtained solutions as a comparative example. However, when searching the ground state independently using only multiple calculators and selecting the optimal solution from the obtained solutions, the solution-finding performance cannot be sufficiently improved because the probability of obtaining the optimal solution within a fixed time is low or it takes some time to obtain the optimal solution. Therefore, methods for improving solution-finding performance are a problem.
[0054] Therefore, in the information processing system 10, each of the search units 11, 12, and 13 determines the starting state of the next search based on the optimal solution among the multiple solutions obtained by the search units 11, 12, and 13. This is because it is estimated that the optimal solution exists near a better solution. Therefore, the probability of obtaining the optimal solution by any of the search units 11, 12, and 13 can be increased. For example, the probability of obtaining the optimal solution by any of the search units 11, 12, and 13 within a fixed time is increased, and therefore, the time spent obtaining the optimal solution can be reduced. In this way, the solution-finding performance of the information processing system 10 for combinatorial optimization problems can be improved.
[0055] Search units 11, 12, and 13 can be located in the same information processing device. In this case, the respective search units 11, 12, and 13 are coupled to the bus of the information processing device. For example, search units 11, 12, and 13 share solutions via a shared memory coupled to the bus. The function of collecting solutions from search units 11, 12, and 13 and supplying the solutions to the respective search units 11, 12, and 13 can be provided by a processing unit, such as a CPU, coupled to the bus.
[0056] Alternatively, search units 11, 12, and 13 can be distributed across multiple information processing devices. In this case, the multiple information processing devices are coupled to a network. The transmission and reception of solutions between the search units in the different information processing devices are performed by communication interfaces located in the respective information processing devices under the control of the CPU of the respective information processing device.
[0057] [Second Implementation]
[0058] Next, the second embodiment will be described.
[0059] Figure 2 This is a diagram illustrating an example of an information processing system according to a second embodiment.
[0060] The information processing system according to the second embodiment includes a node 100, an external storage device 200, and a terminal device 300. The node 100, external storage device 200, and terminal device 300 are coupled to a network 50. The network 50 is, for example, a local area network (LAN). The network 50 can be a wide area network (WAN) or the Internet.
[0061] Node 100 is a server computer with multiple accelerators, each searching for a solution to a combinatorial optimization problem. An accelerator is hardware that seeks the values of multiple state variables that minimize the Ising-type energy function E(x) expressed by equation (1) as a solution. However, the solution search functionality provided by Node 100 can be implemented in software.
[0062] Multiple accelerators in node 100 search for solutions using different search methods (e.g., search algorithms). However, at least two of the multiple accelerators can search for solutions using the same search method. Examples of search methods include SA, GA, SQA, tabu search, etc. The search method is not limited to the examples, and other search methods can be used.
[0063] External storage device 200 is a storage device for storing problem data of the combinatorial optimization problem input to node 100 and solutions of the combinatorial optimization problem output by node 100. Problem data includes, for example, weighting coefficients {W} as shown in equation (1). ij} and bias coefficient {b i For example, external storage device 200 includes multiple hard disk drives (HDDs), solid-state drives (SSDs), etc.
[0064] Terminal device 300 is a client computer operated by a user. Terminal device 300 inputs data to node 100. The data input from terminal device 300 to node 100 includes problem data stored in external storage device 200. Terminal device 300 presents the solution to the combinatorial optimization problem stored in external storage device 200 to the user by displaying content on a monitor included in terminal device 300.
[0065] The information processing system according to the second embodiment is an example of the information processing system 10 according to the first embodiment. Node 100 can be considered as an example of the information processing system 10 according to the first embodiment.
[0066] Figure 3 This is a diagram showing an example of the hardware of a node.
[0067] Node 100 includes CPU 101, RAM 102, HDD 103, media reader 104, accelerator card 105, 105a..., network interface card (NIC) 106, and bus 107.
[0068] CPU 101 is a processor that executes instructions for a program. CPU 101 loads at least a portion of a program or data stored in HDD 103 into RAM 102 and executes the program. CPU 101 may include multiple processor cores. Node 100 may include multiple processors. The processes described below can be executed in parallel using multiple processors or processor cores. In some cases, a group of multiple processors may be referred to as a "multiprocessor" or simply as a "processor".
[0069] RAM 102 is a volatile semiconductor memory that temporarily stores programs executed by CPU 101 and data used by CPU 101 for operation. Node 100 may include a different type of memory than RAM, or may include multiple memories.
[0070] HDD 103 is a non-volatile storage device that stores data as well as software programs such as operating systems (OS), middleware, and application software. Node 100 may include different types of storage devices such as flash memory and SSDs, or may include multiple non-volatile storage devices.
[0071] The media reader 104 is a reading device that reads programs and data recorded on the recording medium 51. The recording medium 51 can be, for example, a magnetic disk, optical disk, magneto-optical disk (MO), semiconductor memory, etc. Magnetic disks include floppy disks (FD) or high-density disks (HDDs). Optical disks include high-density disks (CDs) or digital versatile optical disks (DVDs).
[0072] Media reader 104 may copy programs and data read from recording medium 51 to another recording medium, such as RAM 102 or HDD 103. The read program may be executed by, for example, CPU 101. Recording medium 51 may be a portable recording medium and may be used to distribute programs and data. Recording medium 51 and HDD 103 may be referred to as computer-readable recording media.
[0073] Accelerator cards 105, 105a… are hardware accelerators that each search for solutions to combinatorial optimization problems. The search function of each of accelerator cards 105, 105a… is implemented by semiconductor integrated circuits such as FPGAs, GPUs, or ASICs. Each of accelerator cards 105, 105a… includes RAM to store the searched solutions. For example, accelerator card 105 includes an FPGA 111 and RAM 112. Accelerator card 105a includes a GPU 121 and RAM 122. As described above, accelerator cards with different types of semiconductor integrated circuits such as FPGAs, GPUs, and ASICs mounted on them can be mixed in node 100.
[0074] Hardware accelerators (e.g., accelerator cards 105, 105a, etc.) that search for solutions to combinatorial optimization problems can be referred to as Ising machines, Boltzmann machines, etc. For example, as an accelerator card for performing SA, there exists an optimization device disclosed in Japanese Patent No. 6465223.
[0075] NIC 106 is coupled to network 50 and is a communication interface for communicating with another computer via network 50. NIC 106 sends data to external storage device 200 and receives data from terminal device 300 via network 50. For example, NIC 106 is coupled via cable to communication devices belonging to network 50, such as switches or routers.
[0076] Bus 107 is the internal bus of node 100. CPU 101, RAM 102, HDD 103, media reader 104, accelerator cards 105, 105a… and NIC 106 are coupled to bus 107. For bus 107, for example, peripheral component interconnect high speed (PCIe) is used.
[0077] Figure 4 This is a diagram illustrating an example of the functionality of a node.
[0078] Node 100 includes a control unit 130, search units 140, 150, 160, and 170, and a depropagation unit 180. The control unit 130 and the depropagation unit 180 are implemented by a CPU 101. Each search unit is implemented by an accelerometer card. Although in Figure 4 The example shows node 100 comprising four search units, but node 100 may include multiple search units other than four. As described above, at least a portion of the functionality of the search units can be implemented by CPU 101 executing predetermined software.
[0079] Control unit 130 acquires problem data for a combinatorial optimization problem from terminal device 300. Control unit 130 inputs the problem data and initial state variable strings to search units 140, 150, 160, and 170, and causes the search units to search for solutions. The same problem data is input to search units 140, 150, 160, and 170. The initial state variable strings represent the initial states at the start time of the first search in each of search units 140, 150, 160, and 170. In each of search units 140, 150, 160, and 170, the first search is performed by changing the values of the state variables, using the initial state variable strings as a starting point. Control unit 130 can input different initial state variable strings to search units 140, 150, 160, and 170.
[0080] The control unit 130 acquires the obtained solution as the corresponding search result in the search units 140, 150, 160, and 170. The control unit 130 outputs the acquired solution to the external storage device 200.
[0081] Each of the search units 140, 150, 160, and 170 searches for a solution to the combinatorial optimization problem by searching a set of multiple state variables that minimize the Ising-type energy function corresponding to the combinatorial optimization problem, such as the ground state of the Ising model.
[0082] Each of search units 140, 150, 160, and 170 uses a different search method than the others. For example, search unit 140 uses SQA. Search unit 150 uses tabu search. Search unit 160 uses SA. Search unit 170 uses GA. However, at least two of search units 140, 150, 160, and 170 may use the same search method. All search units 140, 150, 160, and 170 may use the same search method.
[0083] Search units 140, 150, 160, and 170 respectively include solution pools 141, 151, 161, and 171. The RAM storage areas on the accelerator cards corresponding to the respective search units 140, 150, 160, and 170 are used for solution pools 141, 151, 161, and 171. Search units 140, 150, 160, and 170 respectively include accelerators 142, 152, 162, and 172. Accelerators 142, 152, 162, and 172 are implemented by FPGA 111, GPU 121, etc., on the accelerator cards corresponding to the respective search units 140, 150, 160, and 170.
[0084] Search units 140, 150, 160, and 170 search for solutions using corresponding accelerators 142, 152, 162, and 172. Search units 140, 150, 160, and 170 preferentially retain a predetermined number of solutions with small energy values among the solutions obtained up to the current time point in the corresponding solution pools 141, 151, 161, and 171.
[0085] Search units 140, 150, 160, and 170 supply solutions with the minimum energy values, such as optimal solutions, held in the corresponding solution pools 141, 151, 161, and 171 to solution propagation unit 180. Search units 140, 150, 160, and 170 can replace the optimal solutions held in the corresponding solution pools 141, 151, 161, and 171 with solutions supplied from solution propagation unit 180.
[0086] Search units 140, 150, 160, and 170 generate new solutions (e.g., initial solutions) based on the solutions retained in their respective solution pools 141, 151, 161, and 171, respectively, to set these new solutions as the starting state for the next search performed by accelerators 142, 152, 162, and 172. Each of search units 140, 150, 160, and 170, through which the accelerators of the search unit, performs the next search using the generated initial solutions.
[0087] The solution propagation unit 180 sends the solutions to the search units 140, 150, 160, and 170. The solution propagation unit 180 includes a solution buffer 181. A storage area of RAM 102 is used for the solution buffer 181. The solution buffer 181 stores one or more solutions selected by the solution propagation unit 180.
[0088] The solution propagation unit 180 will preferentially record a predetermined number of solutions with small energy values (e.g., the best solutions in search units 140, 150, 160 and 170) from the solutions supplied by the corresponding search units 140, 150, 160 and 170 into the solution buffer 181.
[0089] The solution propagation unit 180 supplies the solution with the minimum energy value among the solutions retained in the solution buffer 181 (e.g., the best solution in the solution buffer 181) to the search units 140, 150, 160 and 170.
[0090] Figure 5 This is a diagram illustrating an example of a solution pool.
[0091] Figure 5 Solution pool 141 is shown, but solution pools 151, 161 and 171 also have similar data structures.
[0092] One of the records in solution pool 141 has a status field and an energy value field. Figure 5 The number (#) used to identify the record is shown. Solution pool 141 holds k records. The state is the solution obtained by accelerator 142 and is represented by the values of a set of multiple state variables. This state is also called a state vector or state bit string. The energy value is the value of the energy function E(x) corresponding to the state x. For example, the 0th record of solution pool 141 has the state "X0" and the energy value "E(X0)".
[0093] Debuffer 181 has a similar data structure to debuffer 141. In one example, k = 16 in debuffers 141, 151, 161 and 171, and k = 4 in debuffer 181.
[0094] Figure 6 This is a diagram illustrating an example of a method used to generate new solutions.
[0095] As described above, the search unit 140 randomly selects solutions held in the solution pool 141 and generates new solutions to be used as the starting state for the next search performed by the accelerator 142.
[0096] For example, search unit 140 obtains states A and B, such as solutions A and B, from solution pool 141. Search unit 140 generates a new solution C based on solutions A and B.
[0097] For example, the search unit 140 sets the bits in solution C that have the same value as the bits in solutions A and B to the same value as the bits in solutions A and B. The search unit 140 randomly selects "0" or "1" as the value of the bits in solution C that have different values in solutions A and B. Solution C is an example of the "first state variable string" according to the first embodiment.
[0098] Figure 6 The generation method is based on an optimization strategy, in which solutions with relatively good energy values may share some similarities, and optimal solutions may exist in the vicinity of these solutions. For more information on the generation method, please refer to the following literature.
[0099] Literature: Y. Wang et al., Path relinking for unconstrained binary quadratic programming, European Journal of Operational Research 223, 2012, pp.595-604.
[0100] When only one solution is stored in solution pool 141, search unit 140 can generate a new solution based on that solution, which will be set as the starting state for the next search. For example, it is also possible for search unit 140 to generate a new solution by changing the value of a portion of the state variable included in that solution.
[0101] Search units 150, 160, and 170 also generate new solutions using a method similar to that of search unit 140.
[0102] Next, the processing procedure for node 100 will be described.
[0103] First, the processing procedures for search units 140, 150, 160, and 170 will be described.
[0104] Control unit 130 inputs the initial state variable string and the same problem data to search units 140, 150, 160, and 170, and causes the search units to begin searching for solutions. In the first stage, no solutions are stored in solution pools 141, 151, 161, and 171. Therefore, search units 140, 150, 160, and 170 perform the process of filling the corresponding solution pools 141, 151, 161, and 171 with solutions derived from the initial state variable string. Alternatively, search units 140, 150, 160, and 170 can fill the corresponding solution pools 141, 151, 161, and 171 with solutions generated by randomly selecting 0 or 1 bits.
[0105] Although search unit 140 is shown and described primarily below, search units 150, 160 and 170 also perform similar processing procedures.
[0106] Figure 7 This is a flowchart illustrating an example of the processing of a search unit.
[0107] (S10) Search unit 140 selects two solutions A and B from solution pool 141.
[0108] (S11) Search unit 140 generates solution C based on solutions A and B. This can be used... Figure 6 The method shown is used to generate solution C.
[0109] (S12) The search unit 140 inputs the solution C to the accelerator 142 and searches for a solution by using the solution C as the initial solution (e.g., the starting state) through the accelerator 142.
[0110] (S13) When the search performed by the accelerator 142 for a predetermined period of time ends, the search unit 140 obtains the improved solution D and the energy value of solution D from the accelerator 142.
[0111] (S14) The search unit 140 selects the solution with the maximum energy value from the solution pool 141, such as the worst solution E.
[0112] (S15) Search unit 140 determines whether the energy value of solution D is less than the energy value of solution E. When the energy value of solution D is less than the energy value of solution E, search unit 140 causes the process to proceed to step S16. When the energy value of solution D is equal to or greater than the energy value of solution E, search unit 140 causes the process to proceed to step S17.
[0113] (S16) Search unit 140 changes solution E in solution pool 141 to solution D.
[0114] (S17) The search unit 140 selects the solution with the minimum energy value from the solution pool 141, such as the optimal solution F.
[0115] (S18) The search unit 140 sends the solution F and the energy value of the solution F to the solution propagation unit 180.
[0116] (S19) The search unit 140 receives from the solution propagation unit 180 the solution with the minimum energy value, such as the optimal solution G. At this time, the search unit 140 receives the solution G and the energy value of the solution G from the solution propagation unit 180.
[0117] (S20) Search unit 140 determines whether the energy value of solution G is less than the energy value of solution F. When the energy value of solution G is less than the energy value of solution F, search unit 140 causes the process to proceed to step S21. When the energy value of solution G is equal to or greater than the energy value of solution F, search unit 140 causes the process to proceed to step S22.
[0118] (S21) Search unit 140 changes solution F in solution pool 141 to solution G.
[0119] (S22) Search unit 140 determines whether the termination condition is met. If the termination condition is met, search unit 140 ends the process. If the termination condition is not met, search unit 140 causes the process to proceed to step S10.
[0120] The termination condition for step S22 is given by the control unit 130. For example, the search unit 140 stores the termination flag in the RAM of the accelerator card. The initial value of the termination flag is "false". When a termination signal is received from the control unit 130, the search unit 140 changes the termination flag to "true". When the termination flag is "false", the termination condition is not met. When the termination flag is "true", the termination condition is met. For example, when the search unit 140... Figure 7 After a fixed period of time has elapsed since the start of the search process, the control unit 130 outputs an end signal to the search unit 140. The control unit 130 can set different lengths for the search periods of the corresponding search units 140, 150, 160, and 170.
[0121] Each asynchronous execution in search units 140, 150, 160, and 170 Figure 7 The process shown is as follows.
[0122] When the termination condition is met and the search ends, the search unit 140 outputs the solution with the minimum energy value to the control unit 130. When the search ends in all search units 140, 150, 160 and 170, the control unit 130 outputs the solution output by the corresponding search units 140, 150, 160 and 170 or the solution with the minimum energy value among these solutions to the external storage device 200.
[0123] Next, the process of updating the debuffer 181 of the depropagation unit 180 will be described.
[0124] When the input solution A is received from any of the search units 140, 150, 160 and 170, the solution propagation unit 180 performs the following process.
[0125] Figure 8 This is a flowchart illustrating an example of updating the debuffer of the depropagation unit.
[0126] (S30) When an input solution A and its energy value are received from any of the search units 140, 150, 160, and 170, the solution propagation unit 180 determines whether a solution A identical to the input solution A exists in the solution buffer 181. If solution A exists in the solution buffer 181, the solution propagation unit 180 terminates the process. If solution A does not exist in the solution buffer 181, the solution propagation unit 180 proceeds to step S31.
[0127] (S31) The solution propagation unit 180 selects the solution with the maximum energy value from the solution buffer 181, such as the worst solution B.
[0128] (S32) The depropagation unit 180 determines whether the energy value of solution A is less than the energy value of solution B. When the energy value of solution A is less than the energy value of solution B, the depropagation unit 180 causes the process to proceed to step S33. When the energy value of solution A is equal to or greater than the energy value of solution B, the depropagation unit 180 ends the update process of the debuffer 181.
[0129] (S33) The depropagation unit 180 changes solution B in the depropagation buffer 181 to solution A. The depropagation unit 180 ends the update process of the depropagation buffer 181.
[0130] To ensure the universality of the solution, the solution propagation unit 180 may retain two or more solutions, wherein the state bit strings corresponding to the states of the two or more solutions are different but the energy values are the same.
[0131] Next, the process of solution output processing of the solution propagation unit 180 will be described.
[0132] Figure 9 This is a flowchart illustrating an example of the solution output from the solution propagation unit.
[0133] (S40) The solution propagation unit 180 selects the solution with the minimum energy value from the solution buffer 181, for example, the optimal solution A.
[0134] (S41) Solution propagation unit 180 outputs solution A and its energy value to each of search units 140, 150, 160 and 170. Solution propagation unit 180 ends solution output processing.
[0135] In step S40, when there are multiple solutions with the smallest energy value and different states in the solution buffer 181, the solution propagation unit 180 randomly selects one solution from the multiple solutions.
[0136] When supplied from a search unit Figure 8 When inputting solution A, the solution propagation unit 180 can... Figure 8 After the process is completed, the search unit that serves as the source of input solution A is executed. Figure 9 The process involves each of the search units 140, 150, 160, and 170 asynchronously obtaining the best solution from the solution buffer 181 from the solution propagation unit 180.
[0137] According to node 100 of the second embodiment, multiple accelerators operate in parallel and update the best solution in each accelerator with each other during the search period. For example, during the search operation, the best solutions in all search units are reflected in the solution pool of each search unit via solution propagation unit 180. Therefore, the start state of the next search for each search unit is generated based on the best solution selected from the solution pool of each search unit, and thus, at a certain timing, the best solutions in all search units are reflected in the start state of the next search for each search unit.
[0138] As described above, it is estimated that there may be some similarities between solutions with relatively good energy values, and that an optimal solution may exist near these solutions. Therefore, by processing node 100 as described above, the probability of reaching an optimal solution in any one of the search units is increased compared to operating each of the accelerators independently, and the solution-finding performance is improved.
[0139] Even for a given problem, the ease with which one local solution can be transformed into another can vary depending on the search method. For example, when trapped in a local solution, transforming from a local solution into another solution might be relatively difficult in the first search method, but relatively easy in the second search method.
[0140] In the second embodiment, a different search method is used in each accelerator. In node 100, each accelerator generates neighboring solutions based on the best solution propagated to each accelerator, and uses these neighboring solutions as starting states to perform a search for local solutions. Therefore, for example, an operation similar to searching for the next local solution based on a local solution at a certain point can be achieved by using multiple search methods, increasing the probability of reaching the optimal solution. Alternatively, since the probability of reaching the optimal solution within a fixed time is high, the time spent obtaining the optimal solution can be shortened. In this way, solution-finding performance can be further improved.
[0141] Search units 140, 150, 160, and 170 can perform searches asynchronously using accelerators 142, 152, 162, and 172 by exchanging solutions via solution propagation unit 180. Therefore, even though the execution times of each accelerator differ significantly, solutions can be searched efficiently because there is no waiting time for solution exchange.
[0142] [Third Implementation Method]
[0143] Next, the third embodiment will be described. The following will primarily discuss items that differ from the second embodiment described above, while omitting descriptions of common items.
[0144] In the second embodiment, an example in which the information processing system includes a node 100 has been described.
[0145] In the third embodiment, an example in which the information processing system includes multiple nodes will be described. In the description of the third embodiment, hardware and functions that are the same as those in the second embodiment are indicated by the same reference numerals, and their description may be omitted.
[0146] Figure 10 This is a diagram illustrating an example of an information processing system according to a third embodiment.
[0147] The information processing system according to the third embodiment includes nodes 100a, 100b..., an external storage device 200, and a terminal device 300. Nodes 100a, 100b..., the external storage device 200, and the terminal device 300 are coupled to a network 50. Nodes 100a, 100b... are implemented in hardware similar to that of node 100 according to the second embodiment.
[0148] The information processing system according to the third embodiment is an example of the information processing system 10 according to the first embodiment. A system including nodes 100a, 100b, ... can be considered as an example of the information processing system 10 according to the first embodiment.
[0149] Each of nodes 100a, 100b... according to the third embodiment includes one or more search units. Nodes 100a, 100b... differ from node 100 according to the second embodiment in that the nodes have the following functions. Although node 100a will be described primarily below, nodes 100b... also have similar functions.
[0150] Figure 11 This is a diagram illustrating an example of the functionality of a node.
[0151] Node 100a includes a control unit 130, search units 140, 150..., a depropagation unit 180a, and a communication unit 190. The control unit 130 and search units 140, 150... correspond to functions with the same names in the second embodiment. The depropagation unit 180a and the communication unit 190 are implemented by CPU 101.
[0152] The depropagation unit 180a includes a debuffer 181 and has a function similar to that of the depropagation unit 180 for the search units 140, 150... according to the second embodiment.
[0153] The solution propagation unit 180a can receive the solution from the communication unit 190 and can use the solution supplied from the communication unit 190 to update the solution in the solution buffer 181.
[0154] For example, the solution propagation unit 180a performs the operation by using solutions supplied not only from the search units 140, 150... but also from the communication unit 190 as input solutions. Figure 8 The process of updating the solution.
[0155] For example, when an input solution supplied from any of the search units 140, 150... or the communication unit 190 is included in the solution buffer 181, the solution propagation unit 180a discards the input solution and skips updating the solution buffer 181. When an input solution is not included in the solution buffer 181, the solution propagation unit 180a compares the energy value of the solution with the maximum energy value in the solution buffer 181 with the energy value of the input solution. When the energy value of the input solution is less than the maximum energy value in the solution buffer 181, the solution propagation unit 180a replaces the solution with the maximum energy value in the solution buffer 181 with the input solution. When the energy value of the input solution is equal to or greater than the maximum energy value in the solution buffer 181, the solution propagation unit 180a discards the input solution without updating the solution buffer 181.
[0156] The solution propagation unit 180a outputs the solution with the minimum energy value (e.g., the optimal solution) and the energy value of the optimal solution in the solution buffer 181 to the search units 140, 150... and the communication unit 190.
[0157] Communication unit 190 sends the optimal solution and its energy value at the current time point in node 100a to nodes 100b... via network 50. Communication unit 190 receives from each of nodes 100b... the optimal solution obtained at the current time point in the corresponding node 100b... and its energy value.
[0158] Communication unit 190 compares the energy values of solutions received from all other nodes with the best solution in node 100a at the current time point, and selects the solution Mmin with the smallest energy value. When there are multiple solutions with the smallest energy value and different state bit strings, communication unit 190 randomly selects one from the multiple solutions.
[0159] The communication unit 190 outputs the selected solution Mmin and its energy value to the solution propagation unit 180a. Whether or not the solution Mmin is stored in the solution buffer 181 depends on the operation of the solution propagation unit 180a described above.
[0160] When the solution Mmin is output to the solution propagation unit 180a, the communication unit 190 stops for a fixed time and repeats the operation described above after the fixed time has elapsed.
[0161] The communication unit 190 can utilize a parallel computing environment such as an Open Message Passing Interface (MPI). For example, the communication unit 190 collects the best solution obtained in each of the nodes through all-to-all communication with other communication units in all other nodes.
[0162] Next, the processing procedure of the communication unit 190 will be described.
[0163] Figure 12 This is a flowchart illustrating a processing example of a communication unit.
[0164] (S50) Communication unit 190 obtains solution M[i] and its energy value from solution propagation unit 180a. Solution M[i] is the solution with the smallest energy value among the solutions stored in solution buffer 181. i is the identifier of the node and has a value from 0 to (number of nodes - 1). i in step S50 corresponds to the identifier of node 100.
[0165] (S51) The communication unit 190 aggregates the solutions M[i] and the energy values of solutions M[i] for all nodes. Therefore, the communication unit 190 obtains the solution M[i] corresponding to the number of nodes.
[0166] (S52) Communication unit 190 selects the solution Mmin with the minimum energy from the solutions M[i]. When there are multiple solutions with the minimum energy, communication unit 190 randomly selects one solution from the multiple solutions and sets the selected solution as solution Mmin.
[0167] (S53) The communication unit 190 inputs the solution Mmin and the energy value of the solution Mmin to the solution propagation unit 180a.
[0168] (S54) Communication unit 190 waits for a fixed time.
[0169] (S55) Communication unit 190 determines whether the termination condition is met. If the termination condition is met, communication unit 190 terminates the process. If the termination condition is not met, communication unit 190 causes the process to proceed to step S50.
[0170] The termination condition for step S55 is provided by the control unit 130. For example, the communication unit 190 stores an end flag in RAM 102. The initial value of the end flag is "false". When an end signal is received from the control unit 130, the communication unit 190 changes the end flag to "true". When the end flag is "false", the termination condition is not met. When the end flag is "true", the termination condition is met. For example, when the search unit 140... Figure 7 After a fixed period of time has elapsed since the start of the search process, the control unit 130 outputs an end signal to the search unit 140 and the communication unit 190.
[0171] According to the nodes 100a, 100b... of the third embodiment, multiple accelerators installed in each of the nodes 100a, 100b... operate in parallel, and during the search, the best solutions in the respective accelerators are updated among each other. For example, during the search operation, the best solutions in all search units are reflected in the solution pool of the respective search unit via the solution propagation unit 180a and the communication unit 190. Therefore, the start state of the next search for the respective search unit is generated based on the best solution selected from the solution pool of the respective search unit, and thus, at a certain timing, the best solutions in all search units are reflected in the start state of the next search for the respective search unit.
[0172] Therefore, compared to operating individual accelerators independently, it increases the likelihood of reaching the optimal solution in any one of the search units and improves the solution-finding performance.
[0173] The search units in each of nodes 100a, 100b... exchange solutions via solution propagation unit 180a and communication unit 190, and thus, the searches performed by the search units on the respective nodes can be executed asynchronously among the search units. Therefore, even if the execution times of the respective accelerators differ greatly from each other, solutions can be searched efficiently because there is no waiting time for exchanging solutions.
[0174] Similar to each of the search units according to the second embodiment, different search methods can be used in each of the search units according to the third embodiment.
[0175] Figure 13 This is a diagram illustrating an example of an information processing system that uses multiple search methods.
[0176] For example, suppose the information processing system according to the third embodiment includes nodes 100a, 100b, 100c, and 100d. Nodes 100a, 100b, 100c, and 100d are coupled to network 50. For example, the search unit of node 100a uses SQA. The search unit of node 100b uses tabu search. The search unit of node 100c uses SA. The search unit of node 100d uses GA.
[0177] like Figure 13 As shown, the search method can be different for each node, and multiple accelerators using various search methods can be mixed within a single node. As described above, accelerators are implemented using FPGAs, GPUs, ASICs, etc. As shown in the second embodiment, at least two types of semiconductor integrated circuits, such as FPGAs, GPUs, and ASICs, can be mixed within a single node.
[0178] Even for a given problem, the ease with which one local solution can be transformed into another can vary depending on the search method. For example, when trapped in a local solution, transforming from a local solution into another solution might be relatively difficult in a first search method, but relatively easy in a second search method.
[0179] Figure 14 This is a diagram illustrating an example of the characteristics of state transitions for each search method.
[0180] Figure 71 depicts the energy value E(x) for each state (x) in the search space of a combinatorial optimization problem. The horizontal axis of Figure 71 indicates the search space. The vertical axis of Figure 71 indicates the energy value E(x). Each of the states xa, xb, xc, xd, and xe that gives the minimum energy value E(x) is a local solution. Assume that state xe is the optimal solution among these states.
[0181] As mentioned above, in the process of searching for a solution to a combinatorial optimization problem, the effective search method for reaching the optimal solution may be different for each point (e.g., a local solution).
[0182] Table 72 indicates the ease or difficulty of transitions between states in search methods 1 through 4. As an example of the order of transitions from state xa to state xe, consider tracing xa, xb, xc, xd, and xe sequentially. Table 72 indicates the ease or difficulty of transitions between states described in the fields for each transition in search methods 1 through 4. Sections in Table 72 marked with checkmarks indicate states that are relatively likely to occur in the search methods. Sections in Table 72 marked with hyphens ("-") indicate states that are relatively unlikely to occur in the search methods.
[0183] For example, in search method 1, the probability of reaching state xd from state xa via states xb and xc is high, but the probability of reaching state xe from state xd is low.
[0184] In search method 2, the probability of reaching state xc from state xa via state xb is high, but the probability of reaching state xe from state xc via state xd is low.
[0185] In search method 3, the probability of reaching state xb from state xa is high, and the probability of reaching state xe from state xc via state xd is high, but the probability of reaching state xc from state xb is low.
[0186] In search method 4, the probability of reaching state xb from state xa is high, and the probability of reaching state xd from state xc is high, but the probability of reaching state xc from state xb is low, and the probability of reaching state xe from state xd is low.
[0187] As stated above, even if any of the search methods 1 to 4 are used, it is unlikely that a transition between intermediate states from state xa to state xe will occur.
[0188] In this situation, for example, the search unit cannot reach the optimal solution by using the best solution among the solutions obtained in the respective accelerators by operating the accelerators independently using multiple search methods.
[0189] Therefore, in node 100 according to the second embodiment and nodes 100a, 100b... according to the third embodiment, each search unit generates neighboring solutions near the optimal solution by propagating to the optimal solution of each search unit, and each search unit uses the neighboring solutions as a starting state to perform the search. Thus, for example, an operation similar to searching for the next local solution based on a local solution at a certain point can be achieved by using multiple search methods, and the probability of reaching the optimal solution is increased. Alternatively, since the probability of reaching the optimal solution within a fixed time is high, the time spent until obtaining the optimal solution can be shortened. In this way, solution-finding performance can be improved.
[0190] In summary, the information processing system according to the second and third embodiments has, for example, the following functions.
[0191] Each of the multiple search units of node 100 or nodes 100a, 100b... obtains a first solution from the multiple solutions obtained by the multiple search units, the first solution corresponding to the optimal value among the values of multiple energy functions corresponding to the multiple solutions; generates a first state variable string based on the first solution; and uses the generated first state variable string as a starting state to search for solutions. Therefore, compared with the case where the optimal solution is obtained from solutions obtained by operating the search units independently, the probability of reaching the optimal solution can be increased, and the solution finding performance can be improved.
[0192] For example, at least two of the multiple search units search for a solution using different search algorithms. As mentioned above, combining different search algorithms increases the likelihood of escaping local solutions that are difficult to escape from using a single search algorithm. Therefore, the probability of reaching the optimal solution can be increased.
[0193] Node 100 includes a solution propagation unit 180, which asynchronously obtains a second solution from multiple corresponding search units, determines a first solution from the multiple obtained second solutions, and asynchronously outputs the determined first solution to multiple corresponding search units.
[0194] Therefore, multiple search units can asynchronously exchange solutions via the solution propagation unit 180. Thus, even if the execution times of the corresponding search units differ, solutions can be searched efficiently because there is no waiting time for exchanging solutions. For example, the execution times of searches between search units using different search algorithms may differ significantly. Therefore, the function of the solution propagation unit 180 is useful, for example, when different search algorithms are used in at least two search units.
[0195] The function of the depropagation unit 180 can be implemented by the CPU 101 as described above. The function of the depropagation unit 180 can be implemented by a semiconductor integrated circuit such as an FPGA or an ASIC. In this case, a depropagation circuit implemented using a semiconductor integrated circuit is used as the depropagation unit 180.
[0196] For example, each of the multiple search units outputs a second solution corresponding to the optimal value of the energy function, which is retained in the solution pool by the search unit, to the solution propagation unit 180, and obtains a first solution from the solution propagation unit 180. When the first solution differs from the second solution, each of the multiple search units replaces the second solution retained by the search unit with the first solution obtained from the solution propagation unit 180. Therefore, the optimal solution (e.g., the first solution) obtained by the multiple search units is appropriately reflected in each of the search units.
[0197] For example, the first solution and the first state variable string have the following relationship.
[0198] In the first example, the state variable string included in the first solution is the same as the first state variable string. Therefore, the first solution itself can be set as the starting state for the next search.
[0199] In the second example, the state variable string included in the first solution is the string in which a portion of the multiple state variables included in the first state variable string has been changed. Therefore, the neighboring solutions of the first solution can be set as the starting state for the next search.
[0200] The performance of solution finding can be improved by using the first or second example.
[0201] For example, each of the multiple search units maintains a solution pool including multiple solutions obtained by the search unit or a solution pool including multiple solutions obtained by replacing a second solution with a first solution, and generates a first state variable string based on two or more solutions selected from the solution pool.
[0202] Therefore, the second example can be implemented in the information processing system, which can improve the solution-finding performance. For example, it is possible that the first solution is included in two or more solutions selected from the solution pool, and in this case, the neighboring solutions of the first solution can be set as the starting state for the next search.
[0203] The information processing system according to a third embodiment includes multiple devices, each of which includes one or more search units among multiple search units. Nodes 100a, 100b... are examples of the multiple devices. A device may be referred to as, for example, an information processing device. Each of the multiple devices sends a third solution to the other devices, the third solution corresponding to a first optimal candidate value of an energy function obtained by one or more search units included in the device, and receives a fourth solution from the other devices, the fourth solution corresponding to a second optimal candidate value of an energy function obtained by the other devices. Each of the multiple devices determines a first solution based on a comparison between the first optimal candidate value and the second optimal candidate value. The first optimal candidate value and the second optimal candidate value are candidate values for the optimal value among the values of multiple energy functions corresponding to the multiple solutions obtained in each of the devices.
[0204] Therefore, even if multiple search units are distributed in multiple devices, the first solution can be appropriately determined by multiple corresponding search units, and the first solution can be supplied to the corresponding search units, thereby improving the solution-finding performance of the entire information processing system.
[0205] For example, each of the multiple devices includes a communication unit (e.g., communication unit 190) and a depropagation unit (e.g., depropagation unit 180a).
[0206] The communication unit of each of the multiple devices sends the third solution to the other devices, receives the fourth solution from the other devices, and outputs the candidate solutions from the third and fourth solutions as candidates for the first solution by comparing the first best candidate value of the energy value with the second best candidate value of the energy value.
[0207] The solution propagation unit of each of the multiple devices preferentially retains a predetermined number of solutions with good energy values from among the fifth solution obtained by one or more search units included in the device and the candidate solutions output by the communication unit of the device. The solution propagation unit of each of the multiple devices determines the solution with the best energy value among the predetermined number of retained solutions as the first solution, and outputs the determined first solution to one or more search units included in the device.
[0208] Therefore, the optimal solution obtained asynchronously by each device in the system is shared with other devices, and thus one or more search units on each device can appropriately obtain the first solution in that device. This improves the solution-finding performance of the entire information processing system.
[0209] As described above, the CPU 101 can implement the function of the communication unit on each device including the communication unit 190. However, the function of the communication unit can be implemented by a semiconductor integrated circuit such as an FPGA or an ASIC. As described above, the CPU 101 can implement the function of the depropagation unit on each device including the depropagation unit 180a. The function of the depropagation unit can be implemented by a semiconductor integrated circuit such as an FPGA or an ASIC. For example, each device corresponding to nodes 100a, 100b... may include multiple processors or multiple processor cores. In this case, a first processor or a first processor core can perform the function of the communication unit 190, and a second processor or a second processor core can perform the function of the depropagation unit 180a. Alternatively, the communication circuit and the depropagation circuit implemented using a semiconductor integrated circuit such as an FPGA can be used as the communication unit 190 and the depropagation unit 180a, respectively.
[0210] When each of the multiple devices includes two or more search units, the solution propagation unit of each of the multiple devices asynchronously obtains a fifth solution from the two or more search units included in the device, and asynchronously outputs the selected first solution to the two or more search units.
[0211] Therefore, multiple search units on multiple devices can exchange solutions asynchronously via a solution propagation unit (e.g., solution propagation unit 180a) on each device. Thus, even though the execution times of each search unit differ, solutions can be searched efficiently because there is no waiting time for exchanging solutions. For example, the execution times of searches may differ significantly between search units using different search algorithms. Therefore, for example, the functionality of the solution propagation unit on each device, including solution propagation unit 180a, is useful when different search algorithms are used in at least two search units on the same device.
[0212] Each of the multiple search units generates a first state variable string by changing the values of a portion of the state variables included in the first solution. As a generation method, for example, one could use... Figure 6 The method described in the text suggests that there is a high probability that an optimal solution exists near a better solution among the currently obtained solutions. Therefore, setting the neighboring solutions of the first solution as the starting state for the next search can increase the probability of reaching the optimal solution and improve solution-finding performance.
[0213] The information processing according to the first embodiment can be implemented by having a processor, such as a CPU, that implements the functions of search units 11, 12, and 13 execute a program. The information processing according to the second and third embodiments can be implemented by having the CPU 101 execute a program. The program can be recorded in a computer-readable recording medium 51.
[0214] For example, the program can be circulated by distributing the recording medium 51 on which the program is recorded. The program can be stored in another computer and can be distributed via a network. For example, a computer can store (install) the program recorded on the medium 51 or a program received from another computer in a storage device such as RAM 102 or HDD 103, and can read the program from the storage device to execute the program.
Claims
1. An information processing system, comprising: Multiple search units, each configured to search the entire search space for a solution to a combinatorial optimization problem using one of a plurality of hardware accelerators, the solution being represented by the value of each of a plurality of state variables included in an energy function. The plurality of search units are coupled to a bus or network, and each of the plurality of search units is further configured to: Multiple solutions are obtained by operating the multiple hardware accelerators in parallel; A first solution is determined from the plurality of solutions, the first solution corresponding to the optimal value among the values of the plurality of energy functions corresponding to the plurality of solutions; A first state variable string is generated based on the first solution, wherein the state variable string included in the first solution is the same as the first state variable string, or wherein the state variable string included in the first solution is a state variable string in which a portion of the plurality of state variables included in the first state variable string is changed; and The solution is searched using the first state variable string as the starting state, and Wherein, at least two of the plurality of search units are configured to search for the solution by using different search algorithms in at least two search units.
2. The information processing system according to claim 1, further comprising: The depropagation unit is configured as follows: A second solution is obtained asynchronously from each of the plurality of search units; The first solution is determined from multiple obtained second solutions; as well as The determined first solution is output asynchronously to each of the plurality of search units.
3. The information processing system according to claim 2, wherein, Each of the plurality of search units is further configured to: The second solution, which corresponds to the optimal value of the energy function and is retained by the search unit, is output to the solution propagation unit; The first solution is obtained from the solution propagation unit; as well as When the first solution differs from the second solution, the second solution retained by the search unit is replaced with the first solution obtained from the solution propagation unit.
4. The information processing system according to claim 2, wherein, Each of the plurality of search units is further configured to: Retaining a solution pool that includes the plurality of solutions obtained by the search unit, or a solution pool that includes the plurality of solutions obtained by replacing the second solution with the first solution; and The first state variable string is generated based on two or more solutions selected from the solution pool.
5. The information processing system according to claim 1, further comprising: Multiple devices, each of which includes: one or more search units included in the multiple search units, Each of the plurality of devices is further configured to: A third solution is sent to other devices among the plurality of devices, the third solution corresponding to a first optimal candidate value of the energy function obtained by the one or more search units included in the devices; Receive a fourth solution from the other device, the fourth solution corresponding to a second optimal candidate value of the energy function obtained by the other device; and The first solution is determined by comparing the first best candidate value with the second best candidate value.
6. The information processing system according to claim 5, in, Each of the plurality of devices includes a communication unit and a depropagation unit, wherein... The communication unit is configured to: Send the third solution to the other device, and receive the fourth solution from the other device; and By comparing the first best candidate value and the second best candidate value, candidate solutions from the third solution and the fourth solution are output as candidates for the first solution. The depropagation unit is configured to: A predetermined number of solutions with good energy function values are preferentially retained from the fifth solution obtained by the one or more search units included in the device and from the candidate solutions output by the communication unit; the solution corresponding to the optimal value of the energy function among the predetermined number of solutions is determined as the first solution; and The determined first solution is output to one or more search units included in the device.
7. The information processing system according to claim 6, in, Each of the plurality of devices includes two or more search units, and The solution propagation unit of each of the plurality of devices is further configured to: asynchronously obtain the fifth solution from each of the two or more search units included in the device, and asynchronously output the selected first solution to each of the two or more search units.
8. The information processing system according to claim 1, wherein, Each of the plurality of search units generates the first state variable string by changing the value of a portion of the state variables included in the first solution.
Citation Information
Patent Citations
Charging method for desiliconization
JP1989065223A
Information processor, ising device and control method of information processor
JP2019071119A
Information processing system
WO2017033263A1
Optimization of distributed Wi-Fi networks
US20180324607A1