Processing system, processing method, and processing program

A parallel processing system with multiple threads per block optimizes binary variables under one-hot constraints, addressing speed and accuracy limitations in GPGPU-based annealers by assigning candidate solutions and evaluating energy, resulting in efficient and accurate solution finding.

JP7760993B2Active Publication Date: 2025-10-28DENSO CORP
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
JP2022190585
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Filing Date
2022-11-29
Publication Date
2025-10-28
Estimated Expiration
2042-11-29

Smart Images

  • Figure 0007760993000012
    Figure 0007760993000012
  • Figure 0007760993000013
    Figure 0007760993000013
  • Figure 0007760993000014
    Figure 0007760993000014
Patent Text Reader

Abstract

To provide a processing system that achieves both speed-up of solution processing and improvement of solution accuracy.SOLUTION: A processing system includes a parallel processing processor in which threads are constructed for each of multiple blocks, and optimizes a combination of binary variables under a one-hot constraint. When a group variable xi is defined with a combination pattern satisfying the one-hot constraint as a solution candidate for each of groups of the binary variables, the parallel processing processor executes assigning the solution candidate of the group variable xi for each of the threads in each of the blocks, searching for an output value ki_f of the group variable in each of the blocks based on an energy evaluation value for the solution candidate of the group variable xi assigned for each of the threads, and outputting the output value ki_f of all the group variables xi having been searched.SELECTED DRAWING: Figure 4
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] The present disclosure relates to processing techniques for optimizing combinations of binary variables. [Background technology]

[0002] Patent Document 1 discloses a processing technology for optimizing combinations of binary variables under one-hot constraints. The processing technology disclosed in Patent Document 1 aims to improve solution performance by dividing the optimization problem of a combination that satisfies the one-hot constraints into multiple subproblems. [Prior art documents] [Patent documents]

[0003] [Patent Document 1] Japanese Patent Publication No. 2022-6994 Summary of the Invention [Problem to be solved by the invention]

[0004] However, in the processing technique of Patent Document 1, which divides an optimization problem into multiple subproblems, although the division can speed up the solution-finding process, the division imposes a limit on the solution accuracy.

[0005] An object of the present disclosure is to provide a processing system that achieves both faster solution-finding processing and improved solution accuracy.Another object of the present disclosure is to provide a processing method that achieves both faster solution-finding processing and improved solution accuracy.A still further object of the present disclosure is to provide a processing program that achieves both faster solution-finding processing and improved solution accuracy. [Means for solving the problem]

[0006] The technical means of the present disclosure for solving the problems will be described below. Note that the claims and the reference characters in parentheses in this section indicate the correspondence with the specific means described in the embodiments described later in detail, and do not limit the technical scope of the present disclosure.

[0007] A first aspect of the present disclosure is A processing system having a parallel processor (22) in which a plurality of threads (28) are constructed for each of a plurality of blocks (26), and which optimizes a combination of binary variables under a one-hot constraint, If we define group variables, each of which is a combination pattern that satisfies the one-hot constraint for each group of binary variables, as a solution candidate, The parallel processing processor In each block, assigning candidate solutions for group variables to threads; In each block, searching for an output value of the group variable based on an energy evaluation value for a solution candidate of the group variable assigned to each thread; and outputting the output values ​​of all the group variables that have been searched.

[0008] A second aspect of the present disclosure is A processing method for optimizing a combination of binary variables under a one-hot constraint by a parallel processor (22) in which a plurality of threads (28) are constructed for each of a plurality of blocks (26), the method comprising: If we define group variables, each of which is a combination pattern that satisfies the one-hot constraint for each group of binary variables, as a solution candidate, In each block, assigning candidate solutions for group variables to threads; In each block, searching for an output value of the group variable based on an energy evaluation value for a solution candidate of the group variable assigned to each thread; and outputting the output values ​​of all group variables that have been searched.

[0009] A third aspect of the present disclosure is A processing program including instructions to be stored in a storage medium (24) for optimizing a combination of binary variables under a one-hot constraint, and executed by a parallel processing processor (22) in which a plurality of threads (28) are constructed for each of a plurality of blocks (26), If we define group variables, each of which is a combination pattern that satisfies the one-hot constraint for each group of binary variables, as a solution candidate, The command is, In each block, solution candidates for group variables are assigned to individual threads; In each block, an output value of the group variable is searched for based on an energy evaluation value of a solution candidate of the group variable assigned to each thread; and outputting the output values ​​of all the group variables that have been searched.

[0010] In this way, in the first to third aspects in which group variables are defined with combination patterns satisfying the one-hot constraint for each group of binary variables as solution candidates, solution candidates are assigned to each thread in each block of the parallel processing processor. Therefore, according to the first to third aspects, output values ​​of the group variables are searched for based on energy evaluation values ​​for the solution candidates of the group variables assigned to each thread in each block of the parallel processing processor. By searching for the output values ​​of the group variables in parallel in each block of the parallel processing processor, the search can be completed in a short time while ensuring accuracy. Here, the output values ​​of all group variables output by the search are equivalent to a solution obtained by optimizing combination patterns so as to satisfy the one-hot constraint for each group of binary variables. Therefore, the first to third aspects are effective in achieving both faster solution-finding processing and improved solution accuracy. [Brief explanation of the drawings]

[0011] [Figure 1] 1 is a block diagram showing the overall configuration of a processing system according to a first embodiment. [Figure 2] FIG. 2 is a block diagram showing a detailed configuration of the parallel processing processor according to the first embodiment. [Figure 3] 1 is a block diagram showing a functional configuration of a processing system according to a first embodiment. [Figure 4] 3 is a flowchart showing a processing flow according to the first embodiment. [Figure 5] 3 is a flowchart showing a processing flow according to the first embodiment. [Figure 6] FIG. 2 is a schematic diagram for explaining a processing flow according to the first embodiment. [Figure 7] FIG. 2 is a schematic diagram for explaining a processing flow according to the first embodiment. [Figure 8] FIG. 2 is a schematic diagram for explaining a processing flow according to the first embodiment. [Figure 9] FIG. 2 is a schematic diagram for explaining a processing flow according to the first embodiment. [Figure 10] FIG. 2 is a schematic diagram for explaining a processing flow according to the first embodiment. [Figure 11] 10 is a flowchart showing a processing flow according to a second embodiment. [Figure 12] 10 is a flowchart showing a processing flow according to a third embodiment. [Figure 13] 10 is a flowchart showing a processing flow according to a third embodiment. [Figure 14] 10 is a flowchart showing a processing flow according to a third embodiment. [Figure 15] FIG. 10 is a schematic diagram for explaining a processing flow according to a third embodiment. [Figure 16] FIG. 10 is a schematic diagram for explaining a processing flow according to a third embodiment. DETAILED DESCRIPTION OF THE INVENTION

[0012] First, the technical background related to the embodiments of the present disclosure will be described.

[0013] In the field of quantum computing, quantum annealers first emerged as quantum computers, followed by Ising machines, which imitate them using classical digital technology. Ising machines are machines that implement classical simulated annealing technology on dedicated digital computer chips for the Ising model that quantum annealers attempt to solve. The leading examples are digital annealers and complementary metal oxide semiconductor (CMOS) annealers. GPGPU (General Purpose Computing on Graphics Processing Units) annealers have put a stop to this trend. GPGPU annealers are a technology that uses GPGPUs to reproduce the performance of dedicated computers that have been implemented in ASICs (Application Specific Integrated Circuits) and other devices. The first of these technologies were SBM (Simulated Bifurcation Machine) and MA (Momentum Annealing). Both of these run on general-purpose GPGPU machines and are said to be capable of achieving performance comparable to digital annealers and other technologies.

[0014] However, even with GPGPU-based annealers, the difficulty of implementing high-performance parallelization of simulated annealing algorithms has become apparent. SBM, which was touted as the world's fastest machine, even faster than quantum computers, only performed well on fully connected max-cut problems, which quantum computers could not demonstrate. However, because max-cut problems themselves have low applicability, many reports have shown that it does not perform sufficiently well on problems that are broadly targeted by Ising machines. In short, one of the challenges of solving the Ising model with GPGPUs is its inability to be adapted to general-purpose problems. Meanwhile, the difficulty of GPGPU acceleration has become apparent in the case of MA, which applies the minor embedding method proposed in quantum annealers to simulated annealing solutions. In MA, a fully connected problem with quadratic relationships between all variables is embedded in a bipartite graph, allowing half of the variables to be updated simultaneously, making parallel calculations possible using GPGPUs, but since a limit to the solution accuracy is manually introduced by minor embedding in this bipartite graph, problems arise in improving the solution accuracy.In short, another issue with solving the Ising model with GPGPUs is that limits easily arise in improving the solution accuracy.

[0015] The difficulty of implementing high-performance parallelization of simulated annealing algorithms on GPGPU-based annealers stems solely from the difficulty of parallelization. Specifically, in Ising problems involving all variables, the information obtained by one variable flip (one search) cannot be shared between other variable flips. This means that the information obtained by one variable flip is only inherited by sequentially executed variable flips. While information remains in the history of each search, independent variable flips cannot exchange that information, making it difficult to realize the benefits of parallelization. SBM, which attempts to solve the Ising model using differential equations, which are easily parallelizable, succeeded in parallelizing a problem of variable size Z by searching with Z independent variable updates. However, this resulted in a lack of versatility and usefulness. Similarly, MA also succeeded in parallelizing a problem of variable size Z by searching with Z independent variable flips, but this resulted in limitations in improving solution accuracy.

[0016] One of the simplest parallelization approaches is multi-start simulated annealing. This parallelization method involves running multiple simulated annealing runs using independently prepared random initial values, then tallying all results to extract the best result. However, it merely improves the performance of the original simulated annealing run by the amount of solution variance caused by the random initial values, and does not provide any substantial improvement as an algorithm. Another parallelization approach is replica exchange (parallel tempering), a representative example of a Monte Carlo calculation method developed in the context of statistical physics. This parallelization method involves preparing replicas with multiple different temperatures that perform parallel searches, and then exchanging information between the replicas at appropriate times. However, introducing excessively parallel replicas can actually degrade performance, and even with Z-parallelism for a variable size Z, the parallelization effect is limited.

[0017] In addition to the above challenges, many useful optimization problems based on the Ising model necessarily require long one-hot constraints. However, it is difficult to improve performance with an Ising formulation (i.e., a penalty method) that formulates one-hot constraints in the Ising model. Here, in Ising machines and pseudo-quantum technology, performance can be improved by restricting the search method using one-hot constraints. On the other hand, it is known that the SBM of GPGPU-based annealers is not suitable for implementing one-hot constraints. Given the above background, this disclosure provides a technology that not only achieves efficient parallelization using GPGPUs to achieve high speeds, but also demonstrates particular performance for problems with one-hot constraints in the Ising formulation, which are frequently used in many useful applications.

[0018] Hereinafter, multiple embodiments of the present disclosure will be described with reference to the drawings. Note that corresponding components in each embodiment are designated by the same reference numerals, and redundant description may be omitted. Furthermore, when only a portion of the configuration is described in each embodiment, the configuration of another previously described embodiment may be applied to the remaining portions of the configuration. Furthermore, in addition to the combinations of configurations explicitly stated in the description of each embodiment, configurations of multiple embodiments may be partially combined together even if not explicitly stated, provided that there is no particular problem with the combination.

[0019] (First embodiment) The processing system 1 of the first embodiment shown in FIG. 1 is a computing system that performs optimization processing to solve combinatorial optimization problems. The processing system 1 is configured by combining a host processing computer 10 and a parallel processing computer 20 as multiple dedicated computers. By using these processing computers 10 and 20 together, the processing system 1 may be used to optimize the dispatch of at least one type of mobility, such as demand or ride-sharing taxis, logistics robots, factory robots, and disaster response robots. By using the processing computers 10 and 20 together, the processing system 1 may be used for at least one type of optimization, such as delivery route optimization, inter-factory logistics optimization, and semiconductor facility process optimization.

[0020] The host processing computer 10 has at least one host processing processor 12 and one host processing memory 14. The host processing processor 12 is a CPU (Central Processing Unit) that is capable of classical arithmetic processing of data and is capable of transferring data between at least a parallel processing computer 20 inside the system and an external device outside the system. The host processing processor 12 reads a host program as a processing program from the host processing memory 14 and manages input / output and processing of data and programs transferred between the parallel processing computer 20 and the host processing processor 12. The host processing processor 12 may also manage input / output and processing of data and programs between the system and an external device.

[0021] The host processing memory 14 is a semiconductor memory serving as a non-transitory tangible storage medium capable of non-transitory storage of computer-readable data and programs. The host processing memory 14 stores a processing program including a host program that manages data input / output and processing between the parallel processing computer 20 and the parallel processing computer 20, and kernel functions that are called by the parallel processing computer 20. The host processing memory 14 stores input data that is input to the parallel processing computer 20, internal output data that is output from the parallel processing computer 20 within the system, and external output data that can be output outside the system in accordance with the internal output data.

[0022] The parallel processing computer 20 has at least one parallel processing processor 22 and one parallel processing memory 24. As shown in Fig. 2, the parallel processing processor 22 is a GPU (Graphics Processing Unit) that can configure multiple threads 28 for each of multiple blocks 26 in order to solve an optimization problem through parallel processing of pseudo-quantum operations. The parallel processing processor 22 calls a kernel function as a processing program from the host processing computer 10 and performs parallel processing for each thread 28 for each block 26.

[0023] 1 is a semiconductor memory serving as a non-transitory tangible storage medium capable of non-temporarily storing computer-readable data and programs. The parallel processing memory 24 stores kernel functions called from the host processing computer 10, and shares memory areas with the parallel processing of the threads 28 in each block 26.

[0024] In the processing system 1, the processors 12 and 22 of the computers 10 and 20 each execute a host program and a kernel function as processing programs, thereby constructing multiple functional units as shown in Fig. 3. Specifically, the host processor 12 constructs an input management unit 100 and an output management unit 120. In order to solve combinatorial optimization problems in cooperation with these units 100 and 120, the parallel processing processor 22 constructs an initial processing unit 200 and a search unit 220.

[0025] In this way, the processors 12, 22 of the computers 10, 20 configure their respective functional units, and the processing method for solving a combinatorial optimization problem is carried out according to the processing flow shown in Figures 4 and 5. This processing flow is started in response to a command from, for example, a system operator or from outside the system. Note that each "S" in this processing flow represents a step that is processed sequentially by multiple commands included in the processing program.

[0026] 4, the input management unit 100, in cooperation with the initial processing unit 200, manages data input from the host processor 12 to the parallel processor 22 by transfer between the computers 10 and 20. Specifically, in the input management unit 100 in S10, a binary variable is defined as a state variable that optimizes a combination pattern of a solution that takes either 0 or 1 in a combinatorial optimization problem, i.e., a combination state, using an energy function.

[0027] In the combinatorial optimization problem of this embodiment, the binary variable X expressed by Equation 1 is a set of a plurality of groups G of a total number I, whose index i is an integer defined by Equation 2. i Then, the binary variable X is divided into groups G as shown in Equation 1 using an index m defined as an integer by Equation 3. i M pieces are allocated to each of X i [m]. Furthermore, each group G i In the same group G i 1 X in iOnly [m] takes 1, and the same group G i The other M-1 Xs in i [m] is set to 0. The one-hot constraint is given as shown in Equation 4 and Figure 6. Here, each group G i Binary variable X in i The number M of [m] is the number of all groups G i The same number or at least one group G i Other Group G i 6 illustrates, for convenience of explanation, combination patterns that satisfy the one-hot constraint for M=8 binary variables X0[m] where m=0 to M-1 in group G0 with index i=0, but M is preferably set to an integer of two or more digits, such as 1000.

number

number

number

number

[0028] The input management unit 100 in S10 of FIG. 4 receives input data from each group G i For each group variable x i Then, for each group G i The index k is an integer defined by the formula 5, and the group variable x is a set of K combination patterns of the binary variable X0[m] that satisfy the one-hot constraint for each group. i is defined as the candidate solution k of

number

[0029] In the combinatorial optimization problem of this embodiment, each group Gi Binary variable X at each i The number of solution candidates k that match the number of combination patterns of [m] is i Binary variable X at each i It is set to an integer equal to or greater than 3, which is equal to the number M of [m]. Then, each group variable x i Each of the K solution candidates k for each group G is represented by an integer using a multi-bit index k, as shown in FIG. i The number of solution candidates k in all groups G i The same number or at least one group G i Other Group G i 6 shows an example in which K=8 solution candidates k, where k=0 to K-1, are expressed by a 3-bit integer index k for the group variable x0 with index i=0, but preferably K is also set to an integer of two or more digits so that the solution candidates k can be expressed by the number of bits corresponding to the set value.

[0030] In this way, in S10 of FIG. 4, the input management unit 100 i For each binary variable X i The combination pattern of [m] is the solution candidate k, and each group variable x i In S11 following S10, the initial processing unit 200 inputs each group variable x i are stored in the parallel processing memory 24.

[0031] In S12 following S11, the initial processing unit 200 initializes each group variable x i For each solution candidate k, the initial value k i_s Here, the parallel processing by the search unit 220, which will be described later, generates i The initial processing unit 200 calculates an initial value k, which is an integer between 0 and K-1, from the individual seed values ​​of the different blocks 26. i_sFor each group variable x i A random number is generated each time and stored in the parallel processing memory 24.

[0032] In S13 following S12, the search unit 220 calculates the initial value k generated from the different seed values ​​individually associated with each block 26 in S12. i_s 7, is assigned in common to the threads 28 in the same block 26. For convenience of explanation, in FIG. 7, for the group variable x0 of index i=0, each block 26 has K=8 initial values ​​k 0_s , the initial value k is assigned to the threads 28 in the number corresponding to the set value by setting K to an integer of two or more digits as described above. i_s In addition, the initial value k between different blocks 26 may be 0_s In Figure 7, the same symbol k 0_s Although the numbers are shown using a random number generator, they are actually generated using different seed values.

[0033] As shown in FIG. 4, in S14 following S13, the search unit 220 i Output value k with respect to i_f The search by sequential update of x is realized by parallel processing in multiple blocks 26 associated with different seed values. In particular, the search unit 220 in S14 of the first embodiment performs update processing in each block 26 based on the energy evaluation value and transition probability as a selection rule according to simulated annealing, and searches all group variables x i For each thread, output value k is calculated from k candidate solutions. i_f In the following, unless otherwise specified, the output value k i_f We will explain this by taking the search for the following as an example.

[0034] Specifically, S14 executes S20 to S33 shown in Fig. 5. Here, in particular, S14 executes one sweep in which the update process of S21 to S31 is repeated by S32, and then S33 further repeats the sweep to update each group variable xi Output value k i_f First, in S20, the search unit 220 searches for the temperature T min (See S33 below) for all group variables x i The common annealing temperature T a is set so as to change by a predetermined temperature step from the temperature set in the previous step S20 (however, the first time it is the maximum temperature). At this time, the temperature step is set to, for example, 1000 to 10000 steps.

[0035] In the next step S21, the search unit 220 updates the solution candidate k to obtain the output value k i_f The group variable x to explore i As Group G i The index i corresponding to the group variable x is common to all blocks 26. i are selected one by one in the order of the index i. Therefore, in the following, the group variable x selected by S21 is i , especially the selected group variable x i In this manner, the search unit 220 in S21 uses the selected group variable x i Regarding the above, the index i is initialized to 0 in the first update process, and is incremented by 1 each time the second or subsequent update process is started (i.e., each time the process flow returns from S32 described below).

[0036] In the next step S22, the search unit 220 searches the selected group variable x of the index i in each block 26. i 8, K different solution candidates k are assigned to K threads 28. For convenience of explanation, Fig. 8 illustrates a state in which, for group variable x0 with index i=0, in each block 26, individual solution candidates k are assigned to K=8 threads 28, but by setting K to an integer of two or more digits as described above, solution candidates k may be assigned to threads 28 in a number corresponding to the set value.

[0037] As shown in FIG. 5, in the next step S23, the search unit 220 iFor each thread 28, the difference in energy evaluation value from before the update process and the transition probability are obtained for each solution candidate k. i Regarding thread 28, the energy evaluation function E for each solution candidate k is i (k) is defined by numbers 6 and 7 according to the DQM (Discrete Quadratic Model).

number

number

[0038] In Equation 7, Q denotes a QUBO (Quadratic Unconstrained Binary Optimization) matrix. Here, the matrix coefficients of Q are the binary variables X i By converting from the energy function for [m], each group variable x i In number 7, x j is the group variable whose index is j other than i, and the group variable whose index is i, x i Therefore, the selection group variable x i A unique solution candidate k is given to each thread 28. On the other hand, the selection group variable x i Group variables other than x j The initial value k assigned by the most recent S13 i_s and the updated value k obtained from the past S25 and S31 i_u (described later), the latest value corresponding to the index j is given. In the following explanation and in FIG. 5, the function E i (k) is the energy evaluation value E i It is written as (k).

[0039] In the search unit 220 in S23, the selection group variable x i For each solution candidate k in each thread 28, the energy evaluation value E iThe difference of (k) is the function δE i (k,k p ) where k in Equation 8 p is the selection group variable x i The solution candidate before this update process is the output value k i_f The solution candidate k is distinguished from the solution candidate k of the most recent S22. p The initial value k assigned by the most recent S13 i_s and the updated value k obtained from the past S25 and S31 i_u Among these, the selected group variable x i The latest value corresponding to index i is given.

number

[0040] From these facts, the energy evaluation value E of solution candidate k is i (k) is the solution candidate k p Energy evaluation value E i (k p ), the difference expressed by Equation 8 becomes a negative value. On the other hand, the energy evaluation value E i (k) is the solution candidate k p Energy evaluation value E i (k p ), the difference expressed by Equation 8 becomes positive. In the following explanation and in FIG. 5, the function ΔE i (k,k p ) is the energy evaluation value E i The evaluation value difference δE, which means the difference between (k) i (k,k p ) is written as

[0041] In the search unit 220 in S23, the selection group variable x i For each solution candidate k in each thread 28, the evaluation value difference δE i (k,k p ) is the transition probability according to the function P i(k). In the following explanation and in FIG. 5, the function P i (k) is the transition probability P i It is written as (k).

number

[0042] Under these definitions, in S23, the selection group variable x i For each solution candidate k, the energy evaluation value E i Evaluation value difference δE based on (k) i (k,k p ) and transition probability P i (k) is obtained by parallel calculation in multiple threads 28. Therefore, the obtained value ΔE for each thread 28 in S23 i (k,k p ),P i (k) is stored in the parallel processing memory 24.

[0043] In the next step S24, the search unit 220 calculates the evaluation value difference ΔE i (k,k p ) is negative (i.e., δE i (k,k p )<0) is determined. As a result, the evaluation value difference ΔE corresponding to at least one solution candidate k is i (k,k p ) is negative, so that an affirmative determination is made, the processing flow proceeds to S25.

[0044] In S25, the search unit 220 calculates the evaluation value difference ΔE i (k,k p ) Among at least one solution candidate k that is negative, the evaluation value difference δE i (k,k p The solution candidate k for which the negative value is the largest is called the updated value k i_u Here, the updated value k i_u is the selection group variable x i Output value k i_fIn particular, the evaluation value difference δE i (k,k p ) If there is a single solution candidate k that is negative, the evaluation value difference δE i (k,k p ) is the maximum update value k in the negative direction i_u In S25, the single solution candidate k corresponds to the updated value k i_u The evaluation value difference δE for the solution candidate k that gives i (k,k p ) based on the energy evaluation value E i (k) is obtained, and the updated value k i_u are stored in the parallel processing memory 24 in association with the above.

[0045] In the next step S26, the search unit 220 searches for the energy evaluation value E i (k) is the energy evaluation value E obtained by the previous S25 i If the result is a positive determination, the process proceeds to S27.

[0046] In S27, the search unit 220 searches for the most recent updated value k i_u By this, the selection group variable x i Output value k i_f is updated in the parallel processing memory 24. This is the energy evaluation value E i Update value k corresponding to (k) i_u is the selection group variable x i The latest output value k i_f Furthermore, in S27, the selection group variable x i Group variables other than x j The latest output value k j_f As a result, the initial value k assigned by the most recent S13 i_s and the updated value k obtained from the past S25 and S31 i_uAmong these, the latest value corresponding to the index j is assigned or stored in the parallel processing memory 24. In S27, the latest output value k i_f ,k j_f The corresponding energy evaluation value E i (k) is the energy evaluation value E obtained by the most recent S25 i (k) is updated in the parallel processing memory 24.

[0047] On the other hand, if a negative determination is made in S26, the process proceeds to S28. In S28, the search unit 220 calculates the selected group variable x i The latest output value k i_f As a result, the initial value k assigned by the most recent S13 i_s and the output value k updated by the past S27 i_f The latest value corresponding to the index i is assigned or stored in the parallel processing memory 24. This is because the energy evaluation value E i Update value k corresponding to (k) i_u Depending on the selection group variable x i Output value k i_f This means that the selection group variable x is not updated. i Group variables other than x j The latest output value k j_f As a result, the initial value k assigned by the most recent S13 i_s and the updated value k obtained from the past S25 and S31 i_u Among these, the latest value corresponding to the index j is assigned or held in the parallel processing memory 24.

[0048] In the case where a negative determination is made in S24 with respect to S25 to S28, the evaluation value difference ΔE i (k,k p ) is positive for all solution candidates k (i.e., δE i (k,k p )>0), the process flow proceeds to S29. In S29, the search unit 220 calculates the evaluation value difference ΔE i (k,kp ) is positive for all K solutions, and for the limited number N of solution candidates k, the transition probability P i By accumulating (k), the cumulative probability ΣP i,N In this case, the limit number N of solution candidates k is the transition probability P i (k) is multiplied from the high probability side to obtain the cumulative probability (i.e., the total probability) ΣP i,N is defined as an integer smaller than the total number K of solution candidates k so that k is less than 1.

[0049] In the next step S30, the search unit 220 searches for the cumulative probability ΣP i,N Let P be a uniformly distributed random probability r Compare with the random number probability P r is defined as a uniform random number, where random numbers generated in the decimal range of 0 to 1 are uniformly distributed. Therefore, the search unit 220 in S30 calculates the cumulative probability ΣP i,N is the random probability P r If the result is a positive determination, the process proceeds to S31.

[0050] In S31, the search unit 220 calculates the cumulative probability ΣP i,N is the random probability P r When the limit number N exceeds the solution candidate k, the random number probability P r The solution candidate k adopted by the selection group variable x i Update value k i_u Therefore, in S31, the updated value k i_u The evaluation value difference δE for the solution candidate k that gives i (k,k p ) based on the energy evaluation value E i (k) is obtained, and the updated value k i_u The energy evaluation value E i (k) is the energy evaluation value E in the next step of S31 or S25. i To obtain (k), the negative or positive evaluation value difference δE i (k,k pThis is used as a calculation reference value to which the energy evaluation value E i The same applies to (k).

[0051] Here, S31 is the updated value k i_u The value k gives a false local solution as shown in Figure 9. i_ff Even if the output value k i_f In this assumed case, S31 updates the negative evaluation value difference ΔE i (k,k p ) is returned to the positive direction and then shifted to the negative direction again, i_f The value k that gives the true global solution as shown in Figure 9 i_ft is executed to continue the search for

[0052] Specifically, in S31, the search unit 220 calculates the transition probability P i The cumulative sum ΣP of (k) (i.e., the integration interval from the high probability side) n is changed by 1 in the integer range from 1 to N. i,n The same random probability P r Therefore, in S31, the cumulative sum ΣP is compared as shown in Figure 10. i,n is the random probability P r The nth solution candidate k from the high probability side that exceeds the probability P r The updated value k adopted in i_u 10 shows the second highest probability P i Cumulative sum up to (k) ΣP i,2 is the random probability P r By exceeding the probability P r The updated value k is adopted i_u The second transition probability P i 1 shows an example in which a solution candidate k of (k) is obtained.

[0053] 5, after the execution of any of S27, S28, and S31 is completed, the process flow proceeds to S32. In addition, if a negative determination is made in S30, the process flow also proceeds to S32. In S32, the search unit 220 calculates the value of the selected group variable x i It is determined whether the index i of is I-1. If a negative determination is made, the process flow returns to S21, whereas if a positive determination is made, the process flow proceeds to S33. For these reasons, the update process of S21 to S31 is performed by updating all group variables x i This will be repeated for

[0054] In S33, the search unit 220 searches for the annealing temperature T a is the lowest temperature T min If the result is negative, the process flow returns to S20, and each group variable x i With respect to the annealing temperature T a On the other hand, if a positive determination is made, the simulated annealing in S14 is deemed to be completed, and the process flow proceeds from S14 to S15.

[0055] As a result, at the completion stage of S14, each group variable x i The latest output value k stored in the parallel processing memory 24 for each i_f is determined as the search result. At this time, the most recent (i.e., last) S27 selects the group variable x i and other group variables x j and the updated output value k i_f ,k j_f However, at the completion stage of S14, each group variable x i The output value k is determined every i_f This becomes:

[0056] 4, in S15, the search unit 220 manages data output from the parallel processor 22 to the host processor 12 by transfer between the computers 20 and 10 in cooperation with the output management unit 120. Specifically, in S15, the search unit 220 manages all group variables x i The output value k searched for i_f The set of the above is output as a feasible solution by copying and transferring it to the host processor 12.

[0057] In S16 following S15, the output management unit 120 calculates all group variables x i Output value k i_f to the binary variable X i [m] into a solution space that follows the energy function of [m]. i The binary variable X is calculated so that it satisfies the one-hot constraint for each i The combination pattern of [m] is output as an optimized solution (i.e., an optimal combination solution).

[0058] The output in S16 may be outputting and storing the solution in the host processing memory 14 so that it can be read by access from outside the system. In this case, the processing system 1 may constitute at least one type of system that uses the output solution from the host processing computer 10, such as a server system, a remote management system, or mobility. The output in S16 may be outputting the solution by copying and transferring it to an external system. In this case, the external system may be at least one type of system that uses the output solution from the host processing computer 10, such as a server system that can communicate with the processing system 1, or mobility that has the processing system 1 installed. As described above, the current execution of the processing flow ends when S16 is completed.

[0059] (Action and effect) The effects of the first embodiment will be described below.

[0060] As explained above, the binary variable X i Group G of [m] i For each group variable x, the combination pattern that satisfies the one-hot constraint is set as the solution candidate k. i In the first embodiment, the solution candidate k is assigned to each thread 28 in each block 26 of the parallel processor 22. Therefore, according to the first embodiment, the group variable x assigned to each thread 28 in each block 26 is i The energy evaluation value E for the solution candidate k of i Based on (k), the group variable x i Output value k i_f According to this, in each block 26, the group variable x i Output value k i_f By searching in parallel, the search can be completed in a short time while ensuring accuracy. i Output value k i_f is a binary variable X i Group G of [m] i Therefore, the first embodiment is effective in achieving both high speed solution processing and improved solution accuracy.

[0061] In each block 26 according to the first embodiment, a binary variable X i Group G of [m] i A solution candidate k, in which a combination pattern that satisfies the one-hot constraint is expressed as an integer by a multi-bit index k, is assigned to each thread 28. In this way, even if the number of solutions of the combination pattern to be optimized increases, the energy evaluation value E i (k), each block 26 can obtain an output value k i_f Therefore, the first embodiment can contribute to achieving both an increase in the speed of the solution-finding process and an improvement in the solution-finding accuracy.

[0062] In each block 26 according to the first embodiment, the same group variable x i The process of assigning candidate solutions k to each thread 28 is i This allows the parallel processing in each block 26 to be completed in a short time. i_f The search for all group variables x i By repeating for all group variables x i High-precision output value k i_f Therefore, the first embodiment is particularly effective in improving the solution accuracy while also speeding up the solution-finding process.

[0063] In each block 26 according to the first embodiment, a group variable x is assigned to each thread 28. i The energy evaluation value E for the solution candidate k of i (k) as well as the transition probability P i The update process based on (k) also results in the output value k i_f is searched for. According to this, the output value k i_f This is particularly effective in improving the solution accuracy while also speeding up the solution process.

[0064] In each block 26 according to the first embodiment, the energy evaluation value E i (k) evaluation value difference δE i (k,k p ) and the difference δE i (k,k p ) transition probability P i (k) is the output value k from the candidate solution k for each thread 28 obtained by simulated annealing. i_f is updated. According to this, the output value k i_f The search for thread 28 is limited to solution candidate k, and the evaluation value difference δE i (k,k p ) and transition probability P iThe update process based on (k) can be completed in a short time. Therefore, the first embodiment is particularly effective in speeding up the solution process while improving the solution accuracy.

[0065] In each block 26 according to the first embodiment, the energy evaluation value E i (k) evaluation value difference δE i (k,k p The solution candidate k for which the negative value is the largest is the output value k i_f The update value k to search for i_u According to this, each group variable x i Regarding the energy evaluation value E i Output value k that optimizes (k) i_f The search for the evaluation value difference δE i (k,k p ) can be realized with high accuracy and in a short time. Therefore, the first embodiment can contribute to achieving both an increase in the speed of the solution-finding process and an improvement in the solution-finding accuracy.

[0066] In each block 26 according to the first embodiment, the energy evaluation value E i (k) evaluation value difference δE i (k,k p ) is positive, for the limited number N of solution candidates k from the high probability side, the transition probability P i (k) is multiplied by the cumulative probability ΣP i,N is a uniformly distributed random probability P r As a result, the cumulative probability ΣP i,N is the random probability P r When the limit number N exceeds the solution candidate k, the random number probability P r The transition probability P i Solution candidate k of (k) is updated to k i_u As the output value k i_f The search for the evaluation value difference δE i (k,k p ) becomes positive once, the evaluation value difference δE i (k,k p ) is the next negative solution candidate k, and the transition probability P i(k), each group variable x i With respect to the output value k i_f Therefore, in the first embodiment, it is possible to ensure high solution accuracy while also increasing the speed of the solution-finding process.

[0067] According to the first embodiment, the binary variable X i Group G of [m] i For each group variable x, the combination pattern that satisfies the one-hot constraint is set as the solution candidate k. i is input from the host processor 12 to the parallel processor 22. As a result, all group variables x i Output value k i_f is a group G in the host processor 12. i The binary variable X is used to satisfy the one-hot constraint for each i The combination pattern of [m] is output as it is mapped to the optimized solution. This ensures accuracy of the group variable x i The short-term output value k i_f The group variable x i Input and output values ​​of k i_f The host processor 12 can share the functions of outputting solutions to combination patterns from the host processor 12. Therefore, the first embodiment is particularly effective in speeding up the solution-finding process while improving the solution accuracy. Second Embodiment The second embodiment is a modification of the first embodiment.

[0068] 11, in the processing flow of the second embodiment, S26 to S28 of the first embodiment are skipped, and S225 and S231 are executed instead of S25 and S31 of the first embodiment, respectively. Note that S225 and S231 are executed in the same manner as S25 and S31 of the first embodiment, except for the processing described below.

[0069] Specifically, in both S225 and S231, the search unit 220 searches for the acquired update value ki_u By this, the selection group variable x i Output value k i_f is updated in the parallel processing memory 24. This is because the updated value k obtained in S225 and S231 i_u is the selection group variable x i The latest output value k i_f Furthermore, in S225 and S231, the selected group variable x i Group variables other than x j The latest output value k j_f As for the initial value k assigned by the most recent S13, i_s and the updated value k obtained by the past S225 and S231 i_u Among these, the latest value corresponding to the index j is assigned or stored in the parallel processing memory 24. In steps S225 and S231, the latest output value k i_f ,k j_f The corresponding energy evaluation value E i (k) is the energy evaluation value E obtained according to S25 and S31. i (k) is updated in the parallel processing memory 24.

[0070] In the processing flow of the second embodiment, in S14 including S225 and S231, each group variable x i The latest output value k stored in the parallel processing memory 24 for each i_f is determined as the search result. At this time, the selection group variable x is determined by the most recent (i.e., last) step of S225 or S231. i and other group variables x j and the updated output value k i_f ,k j_f However, at the completion stage of S14, each group variable x i The output value k is determined every i_f Therefore, the second embodiment described above can also achieve the same effects as the first embodiment.

[0071] (Third embodiment) The third embodiment is a modification of the second embodiment.

[0072] 12, in the processing flow of the third embodiment, S314 is executed instead of S14 in the first embodiment. In S314, the search unit 220 calculates the energy evaluation value E i (k) and transition probability P i By performing the update process in each block 26 based on (k) and the exchange process between each block 26 according to the replica exchange method, all group variables x i For each thread, output value k is calculated from k candidate solutions. i_f Explore.

[0073] Specifically, S314 executes S319 to S341 shown in Figures 13 and 14. Here, in particular, S314 executes a search process in which the repetition of the update process in S321 to S331 in S332 and the exchange process in S333 to S339 are repeated as one loop, and by further repeating this search process in S340, each group variable x i The output value k determined by S341 with respect to i_f Explore.

[0074] In S319 shown in FIG. 13, the search unit 220 searches all group variables x i The replica temperature common to all the samples is the lowest temperature T min to the maximum temperature T max The replica temperature is set individually for each block 26 between 1 and 26. In this case, the replica temperature is set to the temperature T q As a result, the blocks 26 have different temperatures T q In the third embodiment, the larger the index q of the block 26, the larger the replica temperature T q Therefore, in the following, the temperature T q is the replica temperature T q Also, the replica temperature T q For example, the minimum temperature T min From 1 degree as the maximum temperature T maxIn addition, different replica temperatures T q The number Q of the blocks 26 in which the value is set is set to, for example, 100 to 1000.

number

[0075] 13 and 14, starting from 1. In S320, the search unit 220 initializes the loop count h to 1 in the first search process, and increments it by 1 each time the second or subsequent search process starts (i.e., each time the processing flow returns from S340, which will be described later).

[0076] As shown in FIG. 13, steps S321 to S332 following step S320 are performed in accordance with steps S21 to S24, S225, S26 to S30, S231, and S32 described in the first and second embodiments, and involve adjusting the annealing temperature T a The replica temperature T q Therefore, in the third embodiment, if a positive determination is made in S332, S333 to S341 are executed as subsequent steps as shown in FIG.

[0077] Specifically, in S333, the search unit 220 searches for the replica temperature T q ,T q+1 In this manner, when the number of loops h of the search process counted in the most recent S320 is odd, the search unit 220 in S333 selects a replica temperature T q ,T q+1 On the other hand, in S333, if the number of loops h of the search process counted in the most recent S320 is even, the search unit 220 selects a replica temperature T q ,T q+1 A set of blocks 26 corresponding to the above is selected.

[0078] In the next step S334, the search unit 220 calculates the group variable x i The most recent output value k stored in the parallel processing memory 24 for i_f , and the exchange decision probability R e In equation 11, E q ,E q+1 are the replica temperatures T corresponding to the indexes, respectively. q ,T q+1 The latest output value k selected by block 26 of i_f Energy evaluation value E i (k) is represented.

number

[0079] In the next step S335, the search unit 220 calculates the replacement decision probability R e exceeds 1 (i.e., R e As a result, the exchange decision probability R e If the result is positive because the value exceeds 1, the energy evaluation value E i Assuming that the exchange condition based on (k) is met, the process flow proceeds to S336.

[0080] In S336, the search unit 220 calculates the exchange decision probability R e The latest output value k i_f All group variables x i In step S336, the output value k after the exchange in each block 26 is i_f is the latest output value k stored in the parallel processing memory 24. i_f Then, in step S336, the latest output value k i_f The corresponding energy evaluation value Ei (k) is reacquired and re-updated in the parallel processing memory 24.

[0081] 14, if a negative determination is made in S335, the process flow proceeds to S337. In addition, the process flow also proceeds to S337 after the execution of S336 is completed. In S337, the search unit 220 searches for the replacement decision probability R e is less than 1 (i.e., R e <1), the existence of a pair of blocks 26 is determined. As a result, the exchange decision probability R e If the result is less than 1, resulting in a positive determination, the process proceeds to S338.

[0082] In S338, the search unit 220 calculates the replacement decision probability R e is a uniformly distributed random probability R r Compare with the random number probability R r is defined as a uniform random number, which is a random number that is generated in the decimal range of 0 to 1 and is distributed uniformly. Therefore, the search unit 220 in S338 calculates the exchange decision probability R e is the random probability R r It is determined whether there is a set of blocks 26 that exceeds the limit.

[0083] If a positive determination is made in S338, the energy evaluation value E i If another exchange condition based on (k) is satisfied, the process flow proceeds to S339. In S339, the search unit 220 calculates the exchange decision probability R e Even if the random number probability R r The latest output value k between at least one set of blocks 26 exceeds i_f All group variables x i In step S339, the output value k after the exchange in each block 26 is i_f is the latest output value k stored in the parallel processing memory 24. i_f Then, in step S339, the latest output value ki_f The corresponding energy evaluation value E i (k) is reacquired and re-updated in the parallel processing memory 24.

[0084] 14, after execution of S339 is completed, the process flow proceeds to S340. In addition, if a negative determination is made in both S337 and S338, the process flow also proceeds to S340. In S340, the search unit 220 determines whether the number of loops h of the current search process in S314 has reached the upper limit number of loops H. Here, the upper limit number of loops H is set to the number of loops h, for example, 1,000 to 10,000 times.

[0085] If a negative determination is made in S340, the process flow returns to S320 as shown in Figures 13 and 14, and the search process continues. On the other hand, if a positive determination is made in S340, the process flow proceeds to S341 as shown in Figure 14. In S341, the search unit 220 stores the group variables x i The latest output value k stored for each i_f The energy evaluation value E corresponding to i (k) is the smallest output value k among all blocks 26 i_f is determined as the search result. With the completion of execution of S341, the search process is also completed, and the process flow moves from S314 to S15 as shown in FIGS.

[0086] According to the third embodiment described above, the different temperatures T q In each replica block 26, the energy evaluation value E i (k) evaluation value difference δE i (k,k p ) and the difference δE i (k,k p ) transition probability P i (k) From the obtained thread 28 solution candidates k, output value k i_f Therefore, in the third embodiment, the adjacent temperatures T q Between the blocks 26, the energy evaluation value Ei Output value k when the tradeoff condition based on (k) is met i_f are exchanged according to the replica exchange method. i_f By the exchange process between each block 26 that has individually updated the output value k i_f Therefore, the third embodiment can contribute to achieving both an increase in the speed of the solution-finding process and an improvement in the solution-finding accuracy.

[0087] (Other embodiments) Although multiple embodiments have been described above, the present disclosure should not be construed as being limited to those embodiments, and can be applied to various embodiments and combinations within the scope that does not deviate from the gist of the present disclosure.

[0088] In the modifications of the first to third embodiments, the dedicated computer constituting the host processing computer 10 and / or the parallel processing computer 20 may have at least one of a digital circuit and an analog circuit as a processor. Here, the digital circuit is at least one of, for example, an ASIC (Application Specific Integrated Circuit), an FPGA (Field Programmable Gate Array), an SOC (System on a Chip), a PGA (Programmable Gate Array), and a CPLD (Complex Programmable Logic Device). Furthermore, such a digital circuit may have a memory that stores a program.

[0089] In the modified examples of the first to third embodiments, the computers 10, 20 may be implemented in the form of individual or integrated semiconductor units (e.g., semiconductor chips, etc.). In the modified examples of the first to third embodiments, the functions of the host processing computer 10 may be integrated into the parallel processing computer 20. In the modified examples of the first to third embodiments, K=2 solution candidates k may be represented by a single-bit index k.

[0090] In the modifications of the first to third embodiments, the energy evaluation value E i In a modification of the third embodiment, steps corresponding to S26 to S28 of the first embodiment may be added between S325 and S332. In a modification of the third embodiment, the replica temperature T q is the lowest temperature T min Block 26 of each group variable x i The latest output value k obtained every time the parallel processing memory 24 is stored i_f may be determined as the search result in S341.

[0091] (Additional remarks) This specification discloses the following technical ideas and combinations thereof.

[0092] (Technical thought 1) A processing system having a parallel processor (22) in which a plurality of threads (28) are constructed for each of a plurality of blocks (26), and which optimizes a combination of binary variables under a one-hot constraint, When group variables are defined such that combination patterns that satisfy the one-hot constraint for each group of the binary variables are solution candidates, The parallel processing processor includes: In each of the blocks, assigning the solution candidates for the group variables by the threads; In each of the blocks, searching for an output value of the group variable based on an energy evaluation value of the group variable assigned to each of the threads for the solution candidate; and outputting the output values ​​of all the group variables that are searched.

[0093] (Technical thought 2) assigning the candidate solutions The processing system according to Technical Idea 1 includes assigning the candidate solutions to each thread in each block, where the combination patterns that satisfy the one-hot constraint for each group of binary variables are expressed as integers using a multi-bit index.

[0094] (Technical Thought 3) assigning the candidate solutions The processing system according to Technical Idea 1 or 2, which includes repeating, in each block, the process of assigning the solution candidates of the same group variable to each thread for all the group variables.

[0095] (Technical Thought 4) Searching for the output value comprises: A processing system according to any one of technical ideas 1 to 3, which includes searching for the output value in each block by performing an update process based on the energy evaluation value and transition probability for the solution candidate of the group variable assigned to each thread.

[0096] (Technical Thought 5) Searching for the output value comprises: The processing system according to Technical Idea 4 includes updating, in each block, the output value from among the solution candidates for each thread, which are obtained by simulated annealing, along with the difference in the energy evaluation value from before the update process, and the transition probability corresponding to the difference.

[0097] (Technical Thought 6) Searching for the output value comprises: updating the output value from among the solution candidates for each thread, for which a difference in the energy evaluation value from before the update process has been obtained and the transition probability corresponding to the difference has been acquired, in each of the blocks that have been made into replicas of different temperatures; A processing system described in technical idea 4, which includes exchanging the output values ​​between the blocks of adjacent temperatures for which an exchange condition based on the energy evaluation value is met according to a replica exchange method.

[0098] (Technical Thought 7) Searching for the output value comprises: A processing system according to Technical Idea 5 or 6, which includes obtaining, in each block, the solution candidate for which the difference in the energy evaluation value is greatest in the negative direction as an update value for searching for the output value.

[0099] (Technical Thought 8) Searching for the output value comprises: The processing system described in Technical Idea 7 includes, in each block, comparing the accumulated probability obtained by accumulating the transition probabilities for a limited number of solution candidates from the high probability side of the transition probability among the solution candidates for which the difference in the energy evaluation value is positive with a uniformly distributed random number probability, and continuing to search for the output value by using the solution candidate with the transition probability adopted by the random number probability as the updated value when the accumulated probability exceeds the random number probability.

[0100] (Technical Thought 9) The system further includes a host processor (12) in addition to the parallel processors, The host processor inputting the group variables to the parallel processing processor, with the combination patterns satisfying the one-hot constraint for each group of the binary variables being set as solution candidates; The processing system according to any one of Technical Ideas 1 to 8 is configured to execute the following: by mapping the output values ​​of all of the group variables output from the parallel processing processor, outputting a solution in which the combination pattern of the binary variables is optimized so as to satisfy the one-hot constraint for each group.

[0101] The above technical ideas 1 to 9 may be realized in the form of a method and a program. [Explanation of symbols]

[0102] 1: Processing system, 12: Host processor, 14: Host processing memory, 22: Parallel processor, 24: Parallel processing memory, 26: Block, 28: Thread

Claims

1. A processing system having a parallel processing processor (22) in which a plurality of threads (28) are constructed for each of a plurality of blocks (26), and which optimizes a combination of binary variables under a one-hot constraint, When group variables are defined such that combination patterns that satisfy the one-hot constraint for each group of the binary variables are solution candidates, The parallel processing processor includes: In each of the blocks, assigning the solution candidates for the group variables by the threads; In each of the blocks, searching for an output value of the group variable based on an energy evaluation value of the group variable assigned to each of the threads for the solution candidate; and outputting the output values ​​of all the group variables that are searched.

2. assigning the candidate solutions 2. The processing system according to claim 1, further comprising: in each of the blocks, assigning the solution candidates to the threads, the combination patterns that satisfy the one-hot constraint for each group of the binary variables being expressed as integers using a multi-bit index.

3. assigning the candidate solutions The processing system according to claim 1 , further comprising: repeating, in each of the blocks, the process of assigning the solution candidates of the same group variable to the threads for all of the group variables.

4. Searching for the output value comprises: The processing system according to claim 1 , further comprising: searching for the output value in each block by performing an update process based on the energy evaluation value and transition probability for the solution candidate of the group variable assigned to each thread.

5. Searching for the output value comprises:

5. The processing system according to claim 4, further comprising: updating, in each block, the output value from among the solution candidates for each thread, which are obtained by performing simulated annealing on the difference in the energy evaluation value from before the update process and the transition probability corresponding to the difference.

6. Searching for the output value comprises: updating the output value from among the solution candidates for each thread, for which a difference in the energy evaluation value from before the update process has been obtained and the transition probability corresponding to the difference has been acquired, in each of the blocks that have been made into replicas of different temperatures; The processing system according to claim 4 , further comprising exchanging the output values ​​between the blocks of adjacent temperatures for which an exchange condition based on the energy evaluation value is established, according to a replica exchange method.

7. Searching for the output value comprises: The processing system according to claim 5 or 6, further comprising: acquiring, for each block, the solution candidate for which the difference in the energy evaluation value is greatest in a negative direction as an update value for searching for the output value.

8. Searching for the output value comprises:

8. The processing system according to claim 7, further comprising: in each block, for a limited number of solution candidates from the high probability side of the transition probability among the solution candidates for which the difference in the energy evaluation value is positive, comparing the accumulated probability obtained by accumulating the transition probabilities with a uniformly distributed random number probability; and when the accumulated probability exceeds the random number probability, continuing the search for the output value by using the solution candidate having the transition probability adopted by the random number probability as the updated value.

9. The system further includes a host processor (12) in addition to the parallel processors, The host processor inputting the group variables to the parallel processor, with combination patterns that satisfy the one-hot constraint for each group of the binary variables being set as solution candidates; and outputting a solution in which the combination pattern of the binary variables is optimized so as to satisfy the one-hot constraint for each group by mapping the output values ​​of all the group variables output from the parallel processing processor.

10. A processing method for optimizing a combination of binary variables under a one-hot constraint by a parallel processor (22) in which a plurality of threads (28) are constructed for each of a plurality of blocks (26), the method comprising: When group variables are defined such that combination patterns that satisfy the one-hot constraint for each group of the binary variables are solution candidates, In each of the blocks, assigning the solution candidates for the group variables by the threads; In each of the blocks, searching for an output value of the group variable based on an energy evaluation value of the group variable assigned to each of the threads for the solution candidate; and outputting the output values ​​of all the group variables searched.

11. A processing program including instructions to be stored in a storage medium (24) for optimizing a combination of binary variables under a one-hot constraint, and executed by a parallel processing processor (22) in which a plurality of threads (28) are constructed for each of a plurality of blocks (26), When group variables are defined such that combination patterns that satisfy the one-hot constraint for each group of the binary variables are solution candidates, The instruction: In each of the blocks, the solution candidates for the group variables are assigned to the threads; In each of the blocks, an output value of the group variable is searched for based on an energy evaluation value of the group variable assigned to each of the threads for the solution candidate; and outputting the output values ​​of all the group variables searched.

Citation Information

Patent Citations

  • Optimization device and optimization method

    JP2021157360A

  • Information processing system, information processing method and program

    JP2022006994A

  • Information processing system, information processing method, and information processing apparatus

    JP2022107518A