WO2020054024A1 - 最適化装置及び最適化装置の制御方法 - Google Patents

最適化装置及び最適化装置の制御方法 Download PDF

Info

Publication number
WO2020054024A1
WO2020054024A1 PCT/JP2018/034000 JP2018034000W WO2020054024A1 WO 2020054024 A1 WO2020054024 A1 WO 2020054024A1 JP 2018034000 W JP2018034000 W JP 2018034000W WO 2020054024 A1 WO2020054024 A1 WO 2020054024A1
Authority
WO
WIPO (PCT)
Prior art keywords
temperature
annealing
exchange
unit
probability
Prior art date
Application number
PCT/JP2018/034000
Other languages
English (en)
French (fr)
Inventor
佐々木 正人
聡 松浦
Original Assignee
富士通株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 富士通株式会社 filed Critical 富士通株式会社
Priority to EP18933723.1A priority Critical patent/EP3852029A4/en
Priority to JP2020546628A priority patent/JP7047925B2/ja
Priority to PCT/JP2018/034000 priority patent/WO2020054024A1/ja
Priority to CA3111975A priority patent/CA3111975A1/en
Publication of WO2020054024A1 publication Critical patent/WO2020054024A1/ja
Priority to US17/192,929 priority patent/US11928403B2/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/01Methods or arrangements for data conversion without changing the order or content of the data handled for shifting, e.g. justifying, scaling, normalising
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/483Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
    • G06F7/485Adding; Subtracting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/01Dynamic search techniques; Heuristics; Dynamic trees; Branch-and-bound
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2111/00Details relating to CAD techniques
    • G06F2111/08Probabilistic or stochastic CAD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2111/00Details relating to CAD techniques
    • G06F2111/10Numerical modelling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2119/00Details relating to the type or aim of the analysis or the optimisation
    • G06F2119/08Thermal analysis or thermal optimisation

Definitions

  • the present disclosure relates to an optimization device and a control method of the optimization device.
  • the optimization problem is a problem of finding a point (solution) belonging to the search space that minimizes the value of the objective function defined on the search space.
  • the search space is a discrete set having a finite number of elements
  • the minimum value can be found brute force by comparing the objective function values calculated for all points belonging to the search space with each other.
  • the number of dimensions of the search space increases, the number of elements in the set explosively increases, so that a brute force search becomes substantially impossible.
  • the Simulated Annealing method simulates the annealing process of a metal to gradually cool the metal to obtain crystals with few defects.
  • Each point belonging to the search space corresponds to each state of the physical phenomenon, and the objective function Corresponds to the energy of the system in each state.
  • the concept of temperature is introduced to the probability of appearance of each state. At a certain temperature, the smaller the energy, the higher the probability of appearance of the state, and the lower the temperature, the larger the ratio of the probability of appearance between two different energies.
  • a probability distribution By gradually changing the state while generating each state so as to realize the probability distribution, and lowering the temperature at a sufficiently low speed, the state can converge to the optimal solution having the minimum energy value. Can be expected. For example, a Boltzmann distribution can be used as the probability distribution.
  • a Markov chain Monte Carlo method can be used.
  • the Markov chain Monte Carlo method by appropriately determining the transition probability, a sample sequence of a Markov process that transits according to the transition probability can be converged to a desired stationary distribution.
  • the state in the annealing method transition according to an appropriate transition probability, it is possible to realize a state distribution according to a desired probability distribution.
  • the change from the energy of the current state to the energy of the next state is ⁇ E, and the next state is obtained.
  • the transition probability P is determined by the following equation.
  • P min [1, exp (- ⁇ E)]
  • is a reciprocal temperature (reciprocal of the absolute temperature T)
  • 1 / T.
  • the function min [1, x] has a smaller function value of the value 1 and the value x.
  • the transition between the states according to the transition probability is repeated a sufficient number of times, a system is realized in which the energy distribution (probability density) of each state is proportional to the Boltzmann distribution.
  • the state can be converged to an optimal solution having the minimum energy value by lowering the temperature at a sufficiently low speed while changing the state based on the metropolis method.
  • the annealing method guarantees that an optimal solution can be obtained by calculating according to a temperature reduction schedule determined for each problem to be optimized.
  • One simple approach to solving these problems is to prepare a plurality of systems that search for an optimal solution by annealing, and to run these systems independently and in parallel with each other. The greater the number of systems, the higher the probability of finding a solution that is closer to the optimal solution.
  • the replica exchange method is a method in which a plurality of systems having different temperatures are prepared, and a state or temperature is exchanged between the systems according to an appropriate exchange probability while running the plurality of systems in parallel.
  • the exchange probability is determined such that a simultaneous distribution function obtained by multiplying the probability distributions of all the systems is invariant even when an exchange operation is performed.
  • the exchange between systems may not be performed sufficiently.
  • the energy distribution of each system continues such that the exchange probability with the system on the high temperature side is very high and the exchange probability with the system on the low temperature side is very low, the position of this temperature In this case, there is a wall in which state transition from the low temperature side to the high temperature side cannot be performed.
  • the replica exchange method it is important that the state sequence moves in the entire temperature range from low temperature to high temperature, and if such a wall is formed, it is difficult to converge to an appropriate solution.
  • the optimization device is assigned a different temperature corresponding to each state and each of the states, and calculates each evaluation function value according to the state, and according to the temperature and the evaluation function value.
  • a plurality of annealing parts that transition the state with the probability, an exchange part that exchanges the temperature or the state between the plurality of annealing parts with a predetermined exchange probability based on the temperature and the evaluation function value, Of the plurality of annealed portions, the exchange probability between the first annealed portion and the annealed portion of interest, which are adjacent to each other in the order of the temperature in the order of temperature on the lower temperature side, and the temperature on the higher temperature side.
  • a temperature adjusting unit that changes the temperature of the annealing part of interest so that the exchange probability between the second annealing part adjacent in order and the annealing part of interest approaches each other.
  • FIG. 4 is a diagram illustrating an example of a replica number correspondence table held by a state number holding unit.
  • FIG. 4 is a diagram illustrating an example of a replica number correspondence table held by a state number holding unit.
  • FIG. 4 is a diagram illustrating an example of a replica number correspondence table held by a state number holding unit.
  • FIG. 5 is a diagram illustrating an example of
  • 3 is a diagram illustrating an example of a detailed configuration of an exchange control unit.
  • 9 is a flowchart illustrating an example of a temperature adjustment process performed by a temperature adjustment unit. It is a figure which shows an example of the operation
  • FIG. 1 is a diagram illustrating an example of the configuration of the optimization device.
  • the optimization device includes a plurality of annealing units 10-1 to 10-m and an exchange control unit 11.
  • the annealing units 10-1 to 10-m and the exchange control unit 11 are configured as hardware by electronic circuits.
  • the boundary between each circuit or function block indicated by each box and another circuit or function block basically indicates a functional boundary, and is a physical position. , Separation of electrical signals, separation of control logic, and the like.
  • Each circuit or function block may be one hardware module physically separated to some extent from another block, or one function in a hardware module physically integrated with another block. May be indicated.
  • Annealed portions 10-1 to 10-m retain their respective states S1 to Sm and are assigned with different inverse temperatures ⁇ 1 to ⁇ m, respectively. Realize the system.
  • the inverse temperature is the reciprocal (1 / T) of the absolute temperature T.
  • the number m of the annealing portions 10-1 to 10-m may be a number corresponding to many different temperatures suitable for use in the replica exchange method.
  • Each of the annealing portions 10-1 to 10-m may independently execute a process by a simulated annealing method (hereinafter, an annealing process). That is, the annealing section 10-1 through 10-m, together with each calculates the respective evaluation function values corresponding to the state S 1 to S m for holding each of the inverse temperature beta 1 to beta m and the evaluation function value
  • the states S1 to Sm may be transited at the corresponding probability.
  • the replica exchange method since the replica exchange method is used, it is not necessary to reduce the temperature in each of the annealing sections 10-1 to 10-m, and the transition of the states S 1 to S m is repeated at a predetermined probability. Good.
  • the circuit configurations of the annealing portions 10-1 to 10-m may be basically the same as each other.
  • the exchange control unit 11 exchanges the inverse temperature between the annealing units 10-1 to 10-m at a predetermined timing with a predetermined exchange probability based on the inverse temperature and the evaluation function value (that is, exchanges the temperature).
  • Annealed portions 10-1 to 10-m are the same circuit, and what distinguishes each other is the state and temperature assigned to each. Therefore, the state may be exchanged instead of exchanging the temperature. Swapping the temperature and swapping the states are equivalent.
  • a configuration in which the exchange control unit 11 exchanges the reverse temperature between the annealing units 10-1 to 10-m will be used as an example, but the exchange control unit 11 will exchange the inverse temperature between the annealing units 10-1 to 10-m.
  • the states may be exchanged.
  • the exchange control unit 11 further adjusts the reverse temperature allocated to the annealing units 10-1 to 10-m (that is, adjusts the temperature), as described later. More specifically, in the order of the temperature, the exchange probability with the annealing part adjacent to the lower temperature side and the exchange probability with the annealing part adjacent to the higher temperature side are closer to each other. The temperature of the annealed portion of interest is changed. By such temperature adjustment, exchange can be sufficiently performed in the replica exchange method.
  • FIG. 2 is a diagram showing an example of the configuration of the annealing portion.
  • FIG. 2 shows the configuration of the i-th annealed portion 10-i as a representative of the annealed portions 10-1 to 10-m. Note that FIG. 2 shows only a configuration necessary for executing the processing by the annealing method in the annealing section.
  • the annealing unit 10-i includes a state holding unit 21, an evaluation function calculation unit 22, and a transition control unit 23.
  • State holding unit 21 may be a register or memory device for holding the state S i having the annealing unit 10-i.
  • the evaluation function calculating unit 22 receives the state S i to the state holding unit 21 holds, calculates an evaluation function value E i according to the state S i.
  • the transition control unit 23 controls the transition from the current state to the next state based on the inverse temperature ⁇ i assigned by the exchange control unit 11 and the evaluation function value E i calculated by the evaluation function calculation unit 22. .
  • the evaluation function calculating unit 22 is configured to calculate the evaluation function value E i of the current state S i, for state S 'i which is the next state of the candidates vary slightly from the current state S i
  • the metropolis method is one non-limiting example, and another transition control algorithm such as a Gibbs sampling method may be used. In the following description, a case where the metropolis method is used will be used as an example.
  • Transition control unit 23 determines whether to transition to the next state S 'i in accordance with the probability P. If the transition control unit 23 determines that a transition is to be made, it instructs the state holding unit 21 to change the state S i to the state S ′ i (or changes the state S i of the state holding unit 21 to the state S ′). i ). When it is determined that there is no transition, no state transition occurs, and the current state Si is maintained as it is. By repeating the above processing, the annealing section 10-i executes the annealing processing.
  • the form of the above evaluation function is not limited to a specific form, but may be, for example, the following energy function based on the Ising model.
  • FIG. 3 is a flowchart showing a specific example of the annealing process performed by the annealing unit.
  • the annealing process shown in FIG. 3 is performed by each of the annealing portions 10-i shown in FIG.
  • step A is followed by step B
  • step B can be followed by step A.
  • Performing may be physically and logically possible.
  • B step followed by A step It is obvious that may be performed.
  • the B step is executed after the A step, it is not intended that the obvious case described above be excluded from the technical scope intended by the present application. If obvious, it naturally falls within the technical scope intended by the present application.
  • step S1 of FIG. 3 the evaluation function calculation unit 22 of the annealing unit updates the random number.
  • step S2 the evaluation function calculation unit 22 calculates the energy difference ⁇ E j (the value obtained by subtracting the energy before the inversion from the energy after the inversion) for each spin x j when the spin is inverted.
  • step S3 the transition control unit 23 calculates the inverted probability P j for each spin x j. That is, the probability of occurrence of a transition in which the spin xj is inverted is calculated using the above-described equation (1).
  • an energy offset E off is introduced to adjust the reversal probability, and the reversal probability is calculated by using the value of ⁇ E j ⁇ E off for ⁇ E in equation (1).
  • the initial value of the offset E off is zero.
  • step S4 the transition control unit 23 compares the inverted probability P j and uniform random number r (0 ⁇ r ⁇ 1) for each spin x j, corresponding to each spin x j if P j> r
  • the inversion flag Fj provided is set to 1. If P j ⁇ r, the inversion flag F j is set to 0.
  • step S5 the transition control unit 23 determines whether or not the inversion flag Fj that is 1 exists. When there is no inversion flag Fj that is 1, the transition control unit 23 increases the offset Eoff by a predetermined value. Thereafter, the process returns to step S1 and repeats the subsequent processes.
  • step S7 Transition control unit 23 in step S7, using a uniform random number r ', selects one spin x k at random from the spin x j inversion flag F j is 1.
  • step S8 the transition control unit 23 with reversing the spin x k, by recalculating the energy after the spin x k inversion, it updates the state and energy.
  • step S9 the transition control unit 23 determines whether or not the last iteration of the number of iterations specified as the annealing has ended. If the last iteration has not ended, the transition control unit 23 resets the offset E off to zero, and returns the processing to step S1. When the last iteration is completed, the annealing part ends the annealing process.
  • FIG. 4 is a diagram illustrating an example of a schematic configuration of the exchange control unit 11.
  • the exchange control unit 11 shown in FIG. 4 includes a replica exchange operation unit 31, a temperature adjustment unit 32, a state number holding unit 33, and a temperature holding unit 34.
  • Change control section 11 is connected to the annealing unit 10-i, together with the receive average AVEE i of the evaluation function value E i and the evaluation function value from the annealing unit 10-i, assigned to the annealing unit 10-i The reverse temperature ⁇ i is notified.
  • Annealing unit 10-i includes an average calculation unit 24, the average calculation unit 24 calculates the average value AVEE i of the evaluation function value over a plurality of times of the transition state.
  • FIG. 4 only the annealing section 10-i is shown for convenience of illustration, but the exchange control section 11 is connected to a plurality of annealing sections 10-1 to 10-m as shown in FIG. .
  • the replica exchange operation unit 31 executes a replica exchange process (ie, a process of exchanging the reverse temperature with a predetermined probability) between the annealing units 10-1 to 10-m at a predetermined replica exchange timing.
  • the predetermined replica exchange timing may be a timing each time the transition operation of the annealing process (the iteration described in FIG. 3) is completed a predetermined number of times in the annealing units 10-1 to 10-m. That is, the predetermined number of iterations and the reverse temperature exchange process may be alternately and repeatedly executed.
  • the replica exchange operation unit 31 selects an annealing part 10-i and an annealing part 10-j to be subjected to temperature exchange among the annealing parts 10-1 to 10-m.
  • the annealed portion 10-i and the annealed portion 10-j are two adjacent annealed portions in the order of the reverse temperature (order of the temperature), and the reverse temperature ⁇ i of the annealed portion 10- i is the annealing portion 10-j.
  • the suffix n is used to identify the annealing portions arranged in descending order of the reverse temperature, and the annealing portions 10-i and 10-j to be subjected to the temperature exchange are referred to as the annealing portions 10-n and 10-n, respectively. It is described as an annealed portion 10-n + 1.
  • the annealing portions 10-n-1, 10-n, 10-n + 1 are three adjacent annealing portions in descending order of the reverse temperature, and the corresponding reverse temperatures ⁇ n-1 , ⁇ n , ⁇ n + 1 is ⁇ n ⁇ 1 > ⁇ n > ⁇ n + 1 .
  • the suffix n when the suffix n is used, it means that the reverse temperature descending order is mentioned. Instead of performing the processing in the descending order of the reverse temperature, the processing may be performed in the ascending order of the reverse temperature.
  • the replica exchange operation unit 31 sequentially selects two annealing parts to be exchanged at one replica exchange timing, thereby performing the above-described replica exchange for all the annealing parts 10-1 to 10-m. Execute the process. Alternatively, the replica exchange operation unit 31 may execute the replica exchange processing on all the annealing units 10-1 to 10-m in parallel.
  • the two annealed parts to be exchanged are, for example, the odd-numbered annealed part and the next-numbered annealed part. The annealed part and the next numbered annealed part may be used.
  • the state number holding unit 33 has a replica number correspondence table in which a replica number (number of an annealing unit) and a temperature number are stored in association with each other.
  • the replica number referred to here is irrelevant to the order in the reverse temperature order, and is a number that specifies each of the annealing portions 10-1 to 10-m as a physical entity. Based on this replica number correspondence table, it is possible to identify what temperature number ⁇ i assigned to the annealing part 10-i, which is the replica number i, corresponds to.
  • the temperature holding unit 34 also has a temperature correspondence table in which a temperature number and a reverse temperature value (or a temperature value) are stored in association with each other. Based on this temperature correspondence table, it is possible to specify which temperature number corresponds to how many reverse temperature values. Using the replica number correspondence table and the temperature correspondence table, the assignment of the reverse temperature values to the annealing sections 10-1 to 10-m and the exchange processing are managed.
  • FIG. 5 is a diagram showing an example of the replica number correspondence table 40 held by the state number holding unit 33.
  • replica numbers 0 to 15 are assigned to temperature numbers 0 to 15, respectively.
  • FIG. 5 shows, for example, the correspondence in the initial state. After the replica exchange has progressed, the correspondence between the replica numbers 0 to 15 and the temperature numbers 0 to 15 is random. At this time, it is preferable that the temperature numbers 0 to 15 remain in the ascending order as shown in FIG. 5 and the order of the replica numbers is rearranged. This is because the temperature is exchanged between two adjacent temperatures in the order of temperature during temperature exchange. Therefore, it is better to maintain the order of temperature in the replica number correspondence table 40 if two adjacent temperatures are exchanged. This is because it is easy to specify the replica number corresponding to the.
  • FIG. 5 shows a case where the number of entries in the table is 16 as an example, but the number of entries in the table is not limited to a specific number.
  • FIG. 6 is a diagram showing an example of the temperature correspondence table 41 held by the temperature holding unit 34.
  • temperature numbers 0 to 15 are assigned to inverse temperature values A to P, respectively.
  • the reverse temperature values A to P are arranged in descending order. That is, the arrangement is such that the reverse temperature is higher (lower temperature) on the side of the temperature number 0 and the reverse temperature is lower (higher temperature) on the side of the temperature number 15.
  • FIG. 6 shows a case where the number of entries in the table is 16 as an example, but the number of entries in the table is not limited to a specific number.
  • the replica exchange operation unit 31 determines that the reverse temperature is to be exchanged between the annealing unit 10-n and the annealing unit 10-n + 1
  • the replica exchange operation unit 31 returns to the replica number correspondence table 40 held in the state number holding unit 33.
  • the positions of the replica number n and the replica number n + 1 are interchanged.
  • the correspondence between the replica numbers n and n + 1 and the temperature numbers assigned to them can be swapped.
  • the replica number 10 and the replica number 11 are associated with the temperature numbers 10 and 11, respectively. From this state, by replacing the replica numbers as indicated by arrows, the replica number correspondence table 40 is updated so that the replica numbers 11 and 10 are associated with the temperature numbers 10 and 11, respectively.
  • Replica exchange arithmetic unit 31 as the value of the inverse temperature beta i notifying the annealing unit 10-i, the inverse temperature refers to the temperature number corresponding to the replica number i-th in the replica number correspondence table 40, corresponding to the temperature number The value is read from the temperature correspondence table 41. Replica exchange arithmetic unit 31 notifies the annealing unit 10-i of the inverse temperature value thus read out as the value of the inverse temperature beta i.
  • the temperature adjustment unit 32 illustrated in FIG. 4 rewrites the reverse temperature value (or the temperature value) which is an entry of the temperature correspondence table 41 held in the temperature holding unit 34 at a timing immediately after the replica replacement by the replica replacement calculation unit 31.
  • the temperature is adjusted. More specifically, the temperature adjustment unit 32 determines the exchange probability between the first annealing part 10-n-1 and the attention annealing part 10-n, the second annealing part 10-n + 1 and the attention annealing part 10-n.
  • the temperature of the noticed annealing portion 10-n is changed so that the exchange probability between n and n approaches each other.
  • the first annealed part 10-n-1 is an annealed part adjacent to the noticed annealed part 10-n in the order of temperature on the lower temperature side (higher reverse temperature side).
  • the second annealed portion 10-n + 1 is an annealed portion that is adjacent to the target annealed portion 10-n in the order of temperature on the higher temperature side (lower reverse temperature side).
  • the exchange probability is calculated by equation (4) as described above.
  • the exchange probability is a value corresponding to the absolute temperature and the evaluation function value of the two systems to be exchanged.
  • the evaluation function value shows a small change according to the state transition, it may be difficult to realize stable temperature adjustment when affected by the local change. Therefore, when the temperature of the annealing section 10-n is changed so that the two exchange probabilities become closer to each other in the temperature adjustment section 32, a process may be performed such that the exchange probabilities become closer to each other in an average sense.
  • the temperature adjustment unit 32 calculates the exchange probability between the first annealing part and the focused annealing part, obtained using the average value of the evaluation function values over a plurality of transitions of the state, and the second The temperature of the focused annealing portion 10-n may be changed such that the exchange probabilities between the annealed portion and the focused annealing portion approach each other.
  • the exchange probability is calculated using the average value aveE of the evaluation function values instead of the evaluation function value E itself, and by changing the temperature of the focused annealing portion 10-n so that the two exchange probabilities become closer, the state of the state is obtained. Stable temperature adjustment is possible without being affected by local fluctuation.
  • the temperature adjustment unit 32 calculates the value of exp ⁇ ( ⁇ n ⁇ 1 ⁇ n ) (aveE n ⁇ 1 ⁇ aveE n ) ⁇ and exp ⁇ ( ⁇ n ⁇ n + 1 ) (aveE n ⁇ aveE n + 1). ) It is sufficient to compare with the value of ⁇ . Since it is sufficient to determine the magnitude relationship between these two values, the temperature holding unit 34 only needs to compare the magnitudes of the exponents of these two values. More specifically, the temperature holding unit 34 may adjust ⁇ n by the following algorithm.
  • ⁇ A1 Sign judgment> If either (aveE n-1 -aveE n ) or (aveE n -aveE n + 1 ) is positive (ie, at least one of the exchange probabilities is 1), ⁇ n is not adjusted ⁇ A2: Direction determination 1> If
  • the reverse temperature value of the temperature correspondence table 41 updated by the temperature adjustment unit 32 is notified from the replica exchange calculation unit 31 to each of the annealing units 10-1 to 10-m.
  • the annealing sections 10-1 to 10-m execute the annealing processing as described above.
  • FIG. 7 is a flowchart schematically showing an example of the operation of the optimization device shown in FIG.
  • the annealing sections 10-1 to 10-m perform an annealing process.
  • the annealing units 10-1 to 10-m transmit the evaluation function values E1 to Em and the average evaluation function values aveE1 to aveEm to the exchange control unit 11.
  • step S13 the exchange control unit 11 performs a replica exchange process between adjacent annealing units in the order of temperature numbers (that is, in the order of temperature) for all the annealing units 10-1 to 10-m.
  • step S14 the exchange control unit 11 sets the reverse temperature value for all the annealing units 10-1 to 10-m so that the exchange probabilities between the adjacent annealing units in the order of the temperature numbers become closer to each other. To adjust.
  • steps S11 to S14 corresponds to one round of processing.
  • the optimization device shown in FIG. 1 executes the annealing process based on the replica exchange method by repeatedly executing the process of the one round.
  • FIG. 8 is a flowchart showing an example of the operation of the optimization device shown in FIG. 1 in detail.
  • the annealing sections 10-1 to 10-m perform an annealing process.
  • the annealing units 10-1 to 10-m may transmit the evaluation function values E1 to Em and the average evaluation function values aveE1 to aveEm to the exchange control unit 11 after executing the annealing process for a predetermined number of iterations.
  • step S22 the replica exchange operation unit 31 of the exchange control unit 11 determines one replica exchange target pair (that is, two annealing portions) in accordance with the order of the temperature number, and performs a replica exchange process between the two annealing portions forming a pair. (That is, the process of exchanging the reverse temperature with a predetermined probability) is performed.
  • the replica exchange operation unit 31 sets the temperature number to, for example, the initial value 0, and for example, the annealing part corresponding to the temperature number 0 and the annealing part corresponding to the temperature number 1 in the replica number correspondence table 40 shown in FIG. May be selected as the first replica exchange pair.
  • the replica exchange operation unit 31 executes a replica exchange process between the annealing part corresponding to the even-numbered temperature number and the annealing part corresponding to the next temperature number.
  • the replica exchange calculation unit 31 determines whether the annealing part corresponding to the temperature number 1 is equal to the temperature.
  • the annealed part corresponding to No. 2 may be selected as the first replica exchange pair.
  • step S23 the temperature adjustment unit 32 of the exchange control unit 11 acquires data of the index L, the inverse temperature ⁇ corresponding to the pair and the adjacent temperature number thereof, and the average evaluation function value aveE.
  • the temperature adjustment is also performed on the inverse temperature of either the odd-numbered or even-numbered temperature number. May be.
  • the process is executed for odd-numbered or even-numbered temperature numbers, if the temperature numbers of the replica exchange target pairs are n and n + 1, the data of ⁇ and aveE corresponding to the temperature numbers n ⁇ 1, n and n + 1 are stepped.
  • the temperature adjustment may be performed on the reverse temperature of all the serial numbers.
  • the process is performed for all the serial numbers, if the temperature numbers of the replica exchange target pairs are n and n + 1, ⁇ and aveE corresponding to the temperature numbers n ⁇ 1, n, n + 1 and n + 2 are used.
  • Data may be obtained in step S23, and the inverse temperatures ⁇ n and ⁇ n + 1 may be adjusted.
  • the temperature adjustment unit 32 determines the annealing units 10-1 to 10-m and the temperature correspondence table 41 based on the replica number information of the replica exchange target pair identified by the replica exchange operation unit 31. And aveE data may be obtained directly from. Alternatively, the temperature adjustment unit 32 may acquire a part or all of the data of the inverse temperature ⁇ and the average evaluation function value aveE from the replica exchange calculation unit 31.
  • step S24 the temperature adjustment unit 32 determines whether or not to perform the reverse temperature adjustment of the annealing unit of interest 10-n (that is, the annealing unit of the temperature number n) based on the inverse temperature ⁇ and the average evaluation function value aveE. Determined by algorithm.
  • step S25 the temperature adjustment unit 32 determines the shift direction (whether to increase or decrease ⁇ ) according to the algorithm described above.
  • the temperature adjustment unit 32 determines the shift amount based on the index L and the reverse temperature value of the adjacent annealing part. Specifically, the difference between the reverse temperature ⁇ of the adjacent annealing portion located on the side where the reverse temperature ⁇ of the target annealing portion (the annealing portion to be subjected to the reverse temperature adjustment) approaches and the reverse temperature ⁇ of the target annealing portion is ⁇ L. By multiplying, the shift amount may be calculated. The calculation of the shift amount will be described later in detail.
  • step S27 the temperature adjustment unit 32 sets the reverse temperature of at least one of the annealing parts (the n-th annealing part or the n-th and n + 1-th annealing parts) of the pair in the above-described shift direction by the above-mentioned shift amount. Just move.
  • step S27 the process proceeds from step S27 to step S28. Also, when it is determined in step S24 that the temperature adjustment is not performed, the process proceeds from step S24 to step S28.
  • step S28 the temperature adjustment unit 32 determines whether the current temperature number setting value is the last temperature number value. If it is determined that the value is not the last temperature number value, the temperature adjusting unit 32 increases the temperature number by 2 in order to specify a pair to be subjected to the next replica exchange processing. Thereafter, the process returns to step S22 and repeats the subsequent processes.
  • the reverse temperatures in the temperature correspondence table 41 may be sequentially updated.
  • the updated values of the reverse temperature sequentially calculated are separately stored in a register or the like, and the calculation of all the reverse temperature adjustment processes is performed. Is completed, the reverse temperature of the temperature correspondence table 41 is updated collectively.
  • the processing is performed in such a manner that the temperature number set value is sequentially increased from the smaller value, but the temperature number set value may be sequentially reduced from the larger value.
  • the temperature adjustment processing may be sequentially and sequentially performed for each pair, or the same temperature adjustment processing may be simultaneously and simultaneously performed for all pairs.
  • FIG. 9 is a diagram illustrating an example of a detailed configuration of the exchange control unit 11.
  • the configuration of the exchange control unit 11 and the annealing unit 10-i shown in FIG. 9 shows the configuration of the exchange control unit 11 and the annealing unit 10-i shown in FIG. 4 in more detail.
  • the exchange control unit 11 shown in FIG. 9 shows the configuration of the temperature adjustment unit 32 and the input and output of signals of the temperature adjustment unit 32 in more detail than the exchange control unit 11 shown in FIG.
  • the exchange control unit 11 shown in FIG. 9 includes a replica exchange operation unit 31, a temperature adjustment unit 32, a state number holding unit 33, a temperature holding unit 34, and an index holding unit 35.
  • the index holding unit 35 is a register that holds the index L described in the processing shown in the flowchart of FIG. Regarding the index L, a desired value may be set from the outside.
  • Annealing section 10-i shown in FIG. 9 includes an annealing executing section 100 and an average calculating section 24.
  • Annealing execution unit 100 may be a part corresponding to state holding unit 21, evaluation function calculation unit 22, and transition control unit 23 shown in FIG.
  • the average calculation unit 24 includes an average recalculation unit 25 and an average storage unit 26.
  • K is a positive integer corresponding to the width for obtaining the average value.
  • the evaluation function value E and the average evaluation function value aveE may be expressed as fixed-point numbers in the optimization device.
  • the divisor (2 K ) for obtaining the average evaluation value aveE is a power of two. Therefore, the average evaluation function value aveE can be calculated only by addition / subtraction and shift operation of the value represented by the fixed point. As a result, the calculation can be simplified and a high processing speed can be realized, and the average recalculator 25 can be implemented by simple and small-scale hardware.
  • the average evaluation function value aveE is recalculated based on the average evaluation function value aveE and the evaluation function value E.
  • the moving average of the evaluation function value E over a plurality of transitions is 2
  • the average evaluation function value aveE may be obtained by calculating an average of the K evaluation function values E. Also in this case, the average evaluation function value aveE can be calculated only by adding / subtracting and shifting the value represented by the fixed point.
  • the temperature adjustment unit 32 includes a temperature adjustment control unit 51 and a temperature recalculation unit 61.
  • the temperature adjustment control unit 51 includes a sign determination unit 52, an exchange probability calculation unit 53, a shift direction determination unit 54, and a ⁇ n recalculation instruction unit 55.
  • Temperature recalculating unit 61 includes a shift amount calculating unit 62 and the beta n recalculating unit 63.
  • the temperature adjustment control unit 51 corresponds to the temperature numbers n-1 to n + 1 to be subjected to the temperature adjustment operation and the replica numbers of the corresponding annealing units 10-n-1 to 10-n + 1. Reverse temperatures ⁇ n ⁇ 1 to ⁇ n + 1 may be received.
  • the temperature adjustment control unit 51 specifies the corresponding aveE n-1 to aveE n + 1 among the average evaluation function values aveE 1 to aveE m from the annealing units 10-1 to 10-m based on the received replica number. be able to.
  • the sign judging unit 52 judges the sign of each of (aveE n ⁇ 1 ⁇ aveE n ) and (aveE n ⁇ aveE n + 1 ), thereby performing “A1: sign judgment” of the above-described algorithm. Only when both the signs are negative, the temperature adjustment control unit 51 executes the temperature adjustment processing.
  • the exchange probability calculation unit 53 calculates an exchange probability value serving as a basis for determining the shift direction of the reverse temperature.
  • the exchange probability calculation unit 53 may actually calculate the exchange probability, but instead of calculating the exchange probability value itself, it uses ( ⁇ n ⁇ 1 ⁇ n ) (aveE n ⁇ 1 ⁇ aveE n ) for the above-described algorithm. ) And the absolute value of ( ⁇ n ⁇ n + 1 ) (aveE n ⁇ aveE n + 1 ) may be calculated.
  • the shift direction determination unit 54 determines the direction (increase direction or decrease direction) in which the reverse temperature ⁇ n is shifted, based on “A2: direction determination 1” and “A3: direction determination 2” of the above-described algorithm.
  • ⁇ n recalculation instructing section 55 transmits an instruction to recalculate inverse temperature ⁇ n to temperature recalculating section 61.
  • the shift amount calculation unit 62 of the temperature recalculation unit 61 calculates the shift amount S by one of the following equations.
  • S ( ⁇ n ⁇ 1 ⁇ n ) / 2 L (when ⁇ n is increased to approach ⁇ n ⁇ 1 ) (6)
  • S ( ⁇ n ⁇ n + 1 ) / 2 L (when ⁇ n is reduced to approach ⁇ n + 1 ) (7)
  • L is a positive integer held in the index holding unit 35.
  • beta n recalculating unit 63 by increasing or decreasing the reverse temperature beta n by the shift amount S of the temperature recalculating unit 61 has calculated, to calculate the value of the updated inverse temperature beta n.
  • beta n recalculating unit 63 transmits the inverse temperature beta n after the update in the temperature holding unit 34, transmits an instruction beta n recalculation instruction unit 55 updates the inverse temperature value of the temperature number n in the temperature retaining section 34 I do.
  • beta n recalculation instruction unit 55 updates the inverse temperature value of the temperature number n in the temperature retaining section 34 I do.
  • the shift amount S (change width of the reverse temperature) is determined by the reverse temperature ⁇ n of the target annealing portion 10-n and the reverse temperature ⁇ of the first annealing portion 10-n-1 or the second annealing portion 10-n + 1. This is a value obtained by dividing the difference from n ⁇ 1 or ⁇ n + 1 by a power of 2 (2 L ).
  • the inverse temperature may be represented by a floating point value.
  • the calculation for updating the inverse temperature ⁇ n can be performed only by adding and subtracting a value represented by a floating point and subtracting an exponent. Therefore, the calculation cost of the inverse temperature update operation can be relatively small, and the temperature recalculation unit 61 can be implemented with relatively simple hardware.
  • the variation width S of the inverse temperature beta n at the time of changing the temperature of the target annealing unit 10-n includes a reverse temperature beta n of interest annealing unit, inverse temperature beta n of the first annealing section or the second annealing section Since the value is proportional to the difference from ⁇ 1 or ⁇ n + 1 , it can be said that the value is in accordance with the exchange probability difference.
  • the variable shift amount S that is not fixed as described above, it is possible to realize reverse temperature adjustment with an appropriate shift amount.
  • FIG. 10 is a flowchart illustrating an example of a temperature adjustment process performed by the temperature adjustment unit 32.
  • the temperature adjustment process shown in FIG. 10 may be executed integrally with the replica exchange process as described in the operation flowchart of the optimization device shown in FIG. Alternatively, the temperature adjustment process shown in FIG. 10 may be executed separately from the replica exchange process after all the replica exchange processes for annealing sections 10-1 to 10-m have been executed.
  • step S31 the temperature number n is initialized to, for example, 1.
  • the replica exchange operation unit 31 may control the temperature number n.
  • step S32 the temperature adjustment unit 32 acquires the index L, ⁇ n ⁇ 1 to ⁇ n + 1 , and aveE n ⁇ 1 to aveE n + 1 .
  • step S ⁇ b> 33 the temperature adjustment unit 32 determines whether the temperature can be adjusted based on the sign judgment of the sign judgment unit 52. If it is determined that temperature adjustment is not to be performed, the process proceeds to step S40. If it is determined that the temperature should be adjusted, the process proceeds to step S34.
  • step S34 the temperature adjustment unit 32 calculates the temperature exchange probability P n ⁇ 1, n between the annealing part with the temperature number n ⁇ 1 and the annealing part with the temperature number n by using the exchange probability calculation unit 53. , The temperature exchange probability P n, n + 1 between the annealed part of the temperature number n and the annealed part of the temperature number n + 1 is calculated.
  • step S35 the temperature adjustment unit 32 uses the shift direction determination unit 54 to determine whether the temperature exchange probability P n, n + 1 is greater than the temperature exchange probability P n ⁇ 1, n .
  • n in the case of n + 1> P n-1 , n is the order to bring the two exchange probability to each other must close the beta n to beta n-1, the process proceeds to step S36. Also in the case of P n, n + 1 ⁇ P n-1, n is the order to bring the two exchange probability to each other must close the beta n to beta n + 1, the process proceeds to step S38.
  • the adjustment direction of ⁇ n may be determined according to “A2: direction determination 1” and “A3: direction determination 2” of the above algorithm without actually calculating the exchange probability.
  • step S36 the temperature adjustment unit 32 calculates the shift amount S by the shift amount calculation unit 62 according to the above equation (6).
  • step S37 the temperature adjustment unit 32 calculates ⁇ n + S by the ⁇ n recalculation unit 63 to obtain an updated value of ⁇ n .
  • step S38 the temperature adjustment unit 32 causes the shift amount calculation unit 62 to calculate the shift amount S according to the above equation (7).
  • step S39 the temperature adjustment unit 32 calculates ⁇ n ⁇ S by the ⁇ n recalculation unit 63 to obtain an updated value of ⁇ n .
  • step S40 it is determined whether or not the temperature number n is the last temperature number. This determination may be made by the replica exchange operation unit 31. If it is determined that it is not the last temperature number, in step S41, the replica exchange operation unit 31 increments the temperature number n. Thereafter, the process returns to step S32 and repeats the subsequent processes.
  • FIG. 11 is a diagram illustrating an example of an operation of alternately repeating the temperature adjustment processing for odd-numbered temperature numbers and the temperature adjustment processing for even-numbered temperature numbers.
  • FIG. 11 shows the temperature adjustment of the temperature correspondence table 41 at the timings T1 to T3 in order from the left side to the right side.
  • the temperature adjustment processing in the first round is shown in the temperature correspondence table 41 shown at the timing T1.
  • the annealing process and the replica exchange process are performed, and the temperature adjustment process in the second round is shown in the temperature correspondence table 41 shown at the timing T2.
  • further annealing processing and replica exchange processing are obtained, and the temperature adjustment processing in the third round is shown in the temperature correspondence table 41 shown at timing T3.
  • the reverse temperature corresponding to the odd-numbered temperature number is the target of the temperature adjustment.
  • the reverse temperatures corresponding to the temperature numbers 1, 5, and 11 have been updated to new values.
  • the inverse temperatures corresponding to the temperature numbers 3, 7, 9, and 13 do not satisfy the criteria for temperature adjustment (that is, because it is determined that the temperature adjustment is not performed in “A1: Sign judgment” of the above-described algorithm),
  • the original inverse temperature value is held as it is, as indicated by the empty square in the dotted line.
  • the reverse temperature corresponding to the even-numbered temperature number is to be adjusted. Specifically, the reverse temperatures corresponding to the temperature numbers 4, 6, and 12 have been updated to new values. Also, the inverse temperatures corresponding to the temperature numbers 2, 8, 10, and 14 do not satisfy the criteria for temperature adjustment (that is, because it is determined that the temperature adjustment is not performed in “A1: Sign judgment” of the above algorithm), The original inverse temperature value is held as it is, as indicated by the empty square in the dotted line.
  • the minimum temperature number (0 in this example) and the maximum temperature number (15 in this example) are not subject to temperature adjustment. Therefore, the reverse temperature of the temperature number 0 is kept at 100 in this example, and the reverse temperature of the temperature number 15 is kept at 1 in this example.
  • the temperature adjustment method shown in FIG. 11 is convenient when the temperature adjustment is performed integrally with the replica exchange processing.
  • the replica exchange process an exchange process for a pair starting from an even number and a switching process for a pair starting from an odd number are alternately repeated. Accordingly, since the control of the temperature number for the temperature adjustment can be performed using the control operation of the temperature number in the exchange processing by the replica exchange operation unit 31 as it is, an efficient temperature adjustment processing can be realized.
  • FIG. 12 is a diagram illustrating an example of an operation of executing the temperature adjustment processing for all the serial numbers.
  • FIG. 12 shows the temperature adjustment of the temperature correspondence table 41 at the timings T1 to T3 in order from the left side to the right side.
  • the temperature adjustment processing in the first round is shown in the temperature correspondence table 41 shown at the timing T1.
  • the annealing process and the replica exchange process are performed, and the temperature adjustment process in the second round is shown in the temperature correspondence table 41 shown at the timing T2.
  • further annealing processing and replica exchange processing are obtained, and the temperature adjustment processing in the third round is shown in the temperature correspondence table 41 shown at timing T3.
  • the reverse temperatures corresponding to the temperature numbers 1, 4, 5, 6, 11, and 12 are updated to new values.
  • the inverse temperature corresponding to the temperature numbers 2, 3, 7, 8, 9, 10, 13, and 14 does not satisfy the criteria for temperature adjustment.
  • the value is kept as is.
  • the minimum temperature number and the maximum temperature number are not subject to temperature adjustment, as in the case of FIG.
  • the temperature adjustment method shown in FIG. 12 has an advantage that the temperature adjustment process can be executed at smaller intervals (1 / intervals) for each temperature number as compared with the method shown in FIG.
  • the update of the reverse temperature in the temperature correspondence table 41 is performed after the calculation of all the reverse temperature adjustment processes is completed, or the calculated values such as the exchange probability are all changed. It is necessary to calculate the temperature number in advance and hold it. Therefore, there is a possibility that the circuit scale of the exchange control unit 11 is slightly increased as compared with the case of the method shown in FIG.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Evolutionary Computation (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Geometry (AREA)
  • Nonlinear Science (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Computational Linguistics (AREA)
  • Artificial Intelligence (AREA)
  • Feedback Control In General (AREA)

Abstract

最適化装置においてレプリカ交換法での交換が充分に行われる仕組みを提供する。最適化装置は、それぞれの状態とそれぞれの前記状態に各々対応する異なる温度とが割り当てられており、状態に応じたそれぞれの評価関数値を計算すると共に、温度及び評価関数値に応じた確率で状態を遷移させる複数の焼鈍部と、温度と評価関数値とに基づく所定の交換確率で温度又は状態を複数の焼鈍部の間で交換する交換部と、複数の焼鈍部のうちの着目焼鈍部に対して、温度が低い側に温度順の並びで隣接する第1の焼鈍部と着目焼鈍部との間の交換確率と、温度が高い側に温度順の並びで隣接する第2の焼鈍部と着目焼鈍部との間の交換確率とが、互いに近づくように着目焼鈍部の温度を変化させる温度調整部とを含む。

Description

最適化装置及び最適化装置の制御方法
 本願開示は、最適化装置及び最適化装置の制御方法に関する。
 最適化問題は、探索空間上で定義された目的関数の値を最小にする探索空間に属する点(解)を見つける問題である。探索空間が有限個の要素を有する離散集合である場合、探索空間に属する全ての点について計算した目的関数値を互いに比較することにより、総当たり的に最小値を見つけることができる。しかしながら、探索空間の次元数が増えると集合の要素の数が爆発的に大きくなり、総当たり的な探索が実質的に不可能になる。
 焼き鈍し法(Simulated Annealing)は、金属を徐々に冷却して欠陥の少ない結晶を得る金属の焼き鈍し工程を模擬するものであり、探索空間に属する各点が物理現象の各状態に対応し、目的関数が各状態の有する系のエネルギーに対応する。また各状態の出現する確率に温度の概念を導入し、ある任意の温度においてはエネルギーが小さいほど状態の出現確率が高く、温度が低くなるほど異なる2つのエネルギー間の出現確率の比が大きくなるような確率分布を考える。当該確率分布を実現するように各状態を発生させながら状態を徐々に変化させ、充分に遅い速度で温度を低くしていくことにより、最小のエネルギー値を有する最適解に状態が収束することが期待できる。上記の確率分布としては例えばボルツマン分布を用いることができる。
 上記確率分布に従う状態分布を実現するためには、マルコフ連鎖モンテカルロ法を用いることができる。マルコフ連鎖モンテカルロ法では、遷移確率を適切に定めることにより、当該遷移確率に従って遷移するマルコフ過程のサンプル列を所望の定常分布に収束させることができる。これを利用して、焼き鈍し法における状態を適切な遷移確率に従って遷移させていくことにより、所望の確率分布に従った状態の分布を実現することができる。
 例えば、マルコフ連鎖モンテカルロ法の代表的なアルゴリズムであるメトロポリス法によりボルツマン分布を実現するためには、現在の状態のエネルギーから次の状態のエネルギーへの変化をΔEとしたとぎ、次の状態に遷移する確率Pを以下の式で定める。
P=min[1,exp(-βΔE)]
ここでβは逆温度(絶対温度Tの逆数)であり、β=1/Tである。関数min[1,x]は値1と値xとのいずれか小さい方の関数値を有する。上式によれば、ΔE≦0のときに確率1で次の状態に遷移し、0<ΔEのときに確率exp(-βΔE)で次の状態に遷移する。この遷移確率に従う状態間の遷移を充分な回数繰り返すと、各状態が有するエネルギーの分布(確率密度)がボルツマン分布に比例する系が実現される。この系においてメトロポリス法に基づいて状態を遷移させながら、充分に遅い速度で温度を低くしていくことにより、最小のエネルギー値を有する最適解に状態を収束させることができる。
 焼き鈍し法では、最適化対象の問題毎に定まる温度低減のスケジュールに従って計算すれば最適解が得られることが保証されている。しかしながら、実用的な計算時間内で最適解を得ることは難しく、また最適化計算対象の問題毎に適切な温度低減のスケジュールを定めることが難しい。これらの問題を解決するための1つの単純なアプローチは、焼き鈍し法で最適解を探索する複数の系を用意し、それら複数の系を互いに独立且つ並列に走らせることである。系の数が多いほど、より最適解に近い解が見つかる確率が高くなる。
 更なる工夫として、温度が異なる複数の系を用意し、それら複数の系を並列に走らせながら、適切な交換確率に従って系の間で状態又は温度を交換する方法が、レプリカ交換法である。交換確率としては、全ての系の確率分布を掛け算した同時分布関数が、交換操作を行っても不変であるように定められる。このような交換を行うことにより、状態が時間と共に遷移していく1つの状態列に着目したときに、当該状態列が温度が異なる複数の系を渡り歩きながら、最適解を探索していくことになる。レプリカ交換法では温度低減のスケジュールを考える必要がなく、単純な焼き鈍し法と比較して、短時間でより良好な解が求まることが期待できる。
 しかしながら、各系のエネルギー及び温度の条件によっては、系間での交換が充分に行われないことがある。例えば、ある温度の系において高温側の系との交換確率が非常に高く且つ低温側の系との交換確率が非常に低い条件となるような各系のエネルギー分布が継続すると、この温度の位置において低温側から高温側への状態遷移ができない壁ができてしまう。レプリカ交換法では、低温から高温まで全温度範囲を状態列が往来することが重要であり、上記のような壁ができてしまうと、適切な解に収束しにくくなる。
特開2018-5541号公報 特開平9-231197号公報
 以上を鑑みると、最適化装置においてレプリカ交換法での交換が充分に行われる仕組みを提供することが望まれる。
 最適化装置は、それぞれの状態とそれぞれの前記状態に各々対応する異なる温度とが割り当てられており、前記状態に応じたそれぞれの評価関数値を計算すると共に、前記温度及び前記評価関数値に応じた確率で前記状態を遷移させる複数の焼鈍部と、前記温度と前記評価関数値とに基づく所定の交換確率で前記温度又は前記状態を前記複数の焼鈍部の間で交換する交換部と、前記複数の焼鈍部のうちの着目焼鈍部に対して、温度が低い側に温度順の並びで隣接する第1の焼鈍部と前記着目焼鈍部との間の交換確率と、温度が高い側に温度順の並びで隣接する第2の焼鈍部と前記着目焼鈍部との間の交換確率とが、互いに近づくように前記着目焼鈍部の前記温度を変化させる温度調整部とを含む。
 少なくとも1つの実施例によれば、最適化装置においてレプリカ交換法での交換が充分に行われる仕組みを提供することができる。
最適化装置の構成の一例を示す図である。 焼鈍部の構成の一例を示す図である。 焼鈍部が実行するアニール処理の具体的な一例を示すフローチャートである。 交換制御部の概略的な構成の一例を示す図である。 状態番号保持部が保持するレプリカ番号対応テーブルの一例を示す図である。 温度保持部が保持する温度対応テーブルの一例を示す図である。 図1に示す最適化装置の動作の一例を概略的に示すフローチャートである。 図1に示す最適化装置の動作の一例を詳細に示すフローチャートである。 交換制御部の詳細な構成の一例を示す図である。 温度調整部による温度調整処理の処理の一例を示すフローチャートである。 奇数番目の温度番号に対する温度調整処理と偶数番目の温度番号に対する温度調整処理とを交互に繰り返す動作の一例を示す図である。 連番の全ての温度番号に対する温度調整処理を実行する動作の一例を示す図である。
 以下に、本発明の実施例を添付の図面を用いて詳細に説明する。以下の図において、同一又は対応する構成要素は同一又は対応する番号で参照し、その説明は適宜省略する。
 図1は、最適化装置の構成の一例を示す図である。最適化装置は、複数の焼鈍部10-1乃至10-mと交換制御部11とを含む。焼鈍部10-1乃至10-m及び交換制御部11は、電子回路によりハードウェアとして構成される。図1及び以降の同様の図において、各ボックスで示される各回路又は機能ブロックと他の回路又は機能ブロックとの境界は、基本的には機能的な境界を示すものであり、物理的な位置の分離、電気的な信号の分離、制御論理的な分離等に対応するとは限らない。各回路又は機能ブロックは、他のブロックと物理的にある程度分離された1つのハードウェアモジュールであってもよいし、或いは他のブロックと物理的に一体となったハードウェアモジュール中の1つの機能を示したものであってもよい。
 焼鈍部10-1乃至10-m(mは2以上の整数)は、それぞれの状態S1乃至Smを保持すると共にそれぞれの異なる逆温度β乃至βが割り当てられており、異なる温度の複数の系を実現する。逆温度は絶対温度Tの逆数(1/T)である。焼鈍部10-1乃至10-mの個数mは、レプリカ交換法に用いるに適した数多くの異なる温度に対応する個数であってよい。
 焼鈍部10-1乃至10-mは、それぞれが独立に焼き鈍し法(Simulated Annealing)による処理(以降アニール処理)を実行してよい。即ち、焼鈍部10-1乃至10-mは、それぞれが保持する状態S乃至Sに応じたそれぞれの評価関数値を計算すると共に、それぞれの逆温度β乃至β及び評価関数値に応じた確率で状態S1乃至Smを遷移させてよい。但し図1に示す最適化装置ではレプリカ交換法を用いるので、各焼鈍部10-1乃至10-mにおいて温度を低減させる必要はなく、所定の確率で状態S乃至Sの遷移を繰り返せばよい。焼鈍部10-1乃至10-mの回路構成は基本的に互いに同一であってよい。
 交換制御部11は、所定のタイミングにおいて、逆温度と評価関数値とに基づく所定の交換確率で、焼鈍部10-1乃至10-mの間で逆温度を交換する(即ち温度を交換する)。焼鈍部10-1乃至10-mは互いに同一の回路であり、互いを区別するものはそれぞれに割り振られた状態及び温度であるので、温度を交換する代わりに状態を交換してもよい。温度を交換することと状態を交換することとは等価である。以下の説明においては、交換制御部11が焼鈍部10-1乃至10-m間で逆温度を交換する構成を例として用いるが、交換制御部11が焼鈍部10-1乃至10-m間で状態を交換してもよい。
 交換制御部11は更に、後述するように、焼鈍部10-1乃至10-mに割り振る逆温度を調整する(即ち温度を調整する)。より具体的には、温度順の並びにおいて着目焼鈍部に対して温度が低い側に隣接する焼鈍部との交換確率と温度が高い側に隣接する焼鈍部との交換確率とが互いに近づくように、着目焼鈍部の温度を変化させる。このような温度調整により、レプリカ交換法において交換が充分に行われるようにすることができる。
 図2は、焼鈍部の構成の一例を示す図である。図2には、焼鈍部10-1乃至10-mの代表として、i番目の焼鈍部10-iの構成を示す。なお図2では、当該焼鈍部内での焼き鈍し法による処理を実行するに必要な構成のみが示されている。
 焼鈍部10-iは、状態保持部21、評価関数計算部22、及び遷移制御部23を含む。状態保持部21は、焼鈍部10-iが有する状態Sを保持するレジスタ又はメモリ装置であってよい。評価関数計算部22は、状態保持部21が保持する状態Sを受け取り、状態Sに応じた評価関数値Eを計算する。遷移制御部23は、交換制御部11から割り当てられた逆温度βと評価関数計算部22が計算した評価関数値Eとに基づいて、現在の状態から次の状態への遷移を制御する。
 具体的には、評価関数計算部22は、現在の状態Sの評価関数値Eを計算すると共に、現在の状態Sから僅かに変化した次の状態の候補である状態S'に対する評価関数値E'を計算し、更に両者の差分ΔE(=E'-E)を計算する。例えばSの確率分布としてボルツマン分布を想定し、メトロポリス法を用いる場合、次の状態S'に遷移する確率Pを以下の式で定めることができる。
P=min[1,exp(-βΔE)]       (1)
メトロポリス法は限定的でない一例であり、例えばギブス・サンプリング法等の他の遷移制御アルゴリズムを用いてもよい。以下の説明では、メトロポリス法を用いた場合を例に用いる。
 遷移制御部23は、確率Pに応じて次の状態S'に遷移するか否かを判定する。遷移制御部23は、遷移すると判定した場合には、状態保持部21に対して状態Sを状態S'に変化させるように指示する(或いは状態保持部21の状態Sを状態S'に書き換える)。遷移しないと判定した場合には、状態遷移は起こらず、現在の状態Sがそのまま維持される。以上の処理を繰り返すことにより、焼鈍部10-iは、アニール処理を実行する。
 上記の評価関数の形式は特定の形式に限定されないが、例えばイジングモデルに基づく以下のエネルギー関数であってよい。
Figure JPOXMLDOC01-appb-M000001
ここでSは、以下のようにM個(M:正の整数)のスピンを有する状態である。
=(x,x,・・・,x)           (3)
各スピンは0又は+1の値をとる。Wjkはスピン間の結合の重み係数であり、Wjj=0であってよい。またbはバイアスである。
 図3は、焼鈍部が実行するアニール処理の具体的な一例を示すフローチャートである。図3に示すアニール処理は、図2に示される焼鈍部10-iの各部が実行する。
 なお図3及び以降の図において、フローチャートに記載された各ステップの実行順序は一例にすぎず、本願の意図する技術範囲が、記載された実行順番に限定されるものではない。例えば、Aステップの次にBステップが実行されるように本願に説明されていたとしても、Aステップの次にBステップを実行することが可能なだけでなく、Bステップの次にAステップを実行することが、物理的且つ論理的に可能である場合がある。この場合、どちらの順番でステップを実行しても、当該フローチャートの処理に影響する全ての結果が同一であるならば、本願に開示の技術の目的のためには、Bステップの次にAステップが実行されてもよいことは自明である。Aステップの次にBステップが実行されるように本願に説明されていたとしても、上記のような自明な場合を本願の意図する技術範囲から除外することを意図するものではなく、そのような自明な場合は、当然に本願の意図する技術範囲内に属する。
 図3のステップS1で、焼鈍部の評価関数計算部22は乱数を更新する。ステップS2で、評価関数計算部22は、各スピンxについて、当該スピンを反転させたときのエネルギーの差分ΔE(反転後のエネルギーから反転前のエネルギーを引いた値)を計算する。ステップS3で、遷移制御部23は、各スピンxについて反転確率Pを計算する。即ち、当該スピンxが反転する遷移が起こる確率を前述の式(1)を用いて計算する。なおこの際、反転確率を調整するためにエネルギーのオフセットEoffを導入し、式(1)のΔEの部分にはΔE-Eoffの値を用いて反転確率を計算する。オフセットEoffの初期値はゼロである。
 ステップS4で、遷移制御部23は、各スピンxについて反転確率Pと一様乱数r(0<r<1)とを比較し、P>rであれば各スピンxに対応して設けられた反転フラグFjを1に設定する。P≦rであれば反転フラグFを0に設定する。ステップS5で、遷移制御部23は、1である反転フラグFが存在するか否かを判定する。1である反転フラグFが存在しない場合、遷移制御部23は、オフセットEoffを所定値増加する。その後、処理はステップS1に戻り以降の処理を繰り返す。
 ステップS5で1である反転フラグFが存在する場合、処理はステップS7に進む。ステップS7で遷移制御部23は、一様乱数r'を用い、反転フラグFが1であるスピンxの中からランダムに1つのスピンxを選択する。ステップS8で、遷移制御部23はスピンxを反転させると共に、スピンx反転後のエネルギーを再計算することにより、状態とエネルギーとを更新する。
 ステップS9で、遷移制御部23は、アニール処理として指定された回数のイタレーション処理のうちの最後のイタレーションが終了したか否かを判定する。最後のイタレーションが終了していない場合、遷移制御部23は、オフセットEoffをゼロにリセットし、ステップS1に処理を戻す。最後のイタレーションが終了した場合、焼鈍部は、アニール処理を終了する。
 図4は、交換制御部11の概略的な構成の一例を示す図である。図4に示す交換制御部11は、レプリカ交換演算部31、温度調整部32、状態番号保持部33、及び温度保持部34を含む。交換制御部11は、焼鈍部10-iに接続されており、焼鈍部10-iから評価関数値E及び評価関数値の平均値aveEを受け取ると共に、焼鈍部10-iに対して割り当てる逆温度βを通知する。焼鈍部10-iは平均計算部24を含み、この平均計算部24が、状態の複数回の遷移に亘る評価関数値の平均値aveEを計算する。
 図4においては、図示の都合上焼鈍部10-iのみが示されるが、交換制御部11は、図1に示されるように複数個の焼鈍部10-1乃至10-mに接続されている。交換制御部11は、焼鈍部10-1乃至10-mからそれぞれの評価関数値E1乃至Em及びその平均値aveE乃至aveEを受け取ると共に、焼鈍部10-1乃至10-mに対してそれぞれの逆温度β乃至βを通知する。
 レプリカ交換演算部31は、所定のレプリカ交換タイミングにおいて、焼鈍部10-1乃至10-m間でレプリカ交換処理(即ち所定の確率で逆温度を交換する処理)を実行する。この所定のレプリカ交換タイミングとしては、焼鈍部10-1乃至10-mにおいてアニール処理の遷移動作(図3で説明したイタレーション)を所定回数実行完了する毎のタイミングであってよい。即ち、所定回数のイタレーションと逆温度の交換処理とを交互に繰り返し実行してよい。
 レプリカ交換演算部31は、焼鈍部10-1乃至10-mのうち、温度交換の対象となる焼鈍部10-i及び焼鈍部10-jを選択する。焼鈍部10-i及び焼鈍部10-jは、逆温度順の並び(温度順の並び)で隣接する2つの焼鈍部であり、焼鈍部10-iの逆温度βは焼鈍部10-jの逆温度βよりも大きい。以降の説明において、逆温度の降順で並べられた焼鈍部を特定するために添字nを用い、温度交換の対象となる焼鈍部10-i及び焼鈍部10-jをそれぞれ焼鈍部10-n及び焼鈍部10-n+1と表記する。この表記に従えば、例えば焼鈍部10-n-1、10-n、10-n+1は、逆温度の降順の並びで隣接する3つの焼鈍部であり、それぞれの対応する逆温度βn-1、β、βn+1の大小関係はβn-1>β>βn+1である。以下の説明において、添字nを用いたときには、逆温度降順の並びに言及しているものとする。なお逆温度の降順の並びで処理する代わりに、逆温度の昇順の並びで処理を行ってもよい。
 レプリカ交換演算部31は、焼鈍部10-n及び焼鈍部10-n+1の評価関数値E及びEn+1と逆温度βびβn+1とに基づいて、焼鈍部10-nと焼鈍部10-n+1との間で温度を交換するか否かを決定する。具体的には、以下の確率Pで温度交換を実行する。
=min[1,exp{(β-βn+1)(E-En+1)}]    (4)
一様乱数とPとを比較して、乱数値よりもPの方が大きいときに逆温度を交換すればよい。Pが乱数値以下である場合には逆温度は交換しない。
 レプリカ交換演算部31は、一回のレプリカ交換タイミングにおいて、交換対象となる2つの焼鈍部を順次選択していくことにより、全ての焼鈍部10-1乃至10-mに対して上記のレプリカ交換処理を実行する。或いは、レプリカ交換演算部31は、全ての焼鈍部10-1乃至10-mに対するレプリカ交換処理を並列に実行してよい。交換対象のペアとなる2つの焼鈍部は、奇数回目のレプリカ交換タイミングにおいて、例えば奇数番目の焼鈍部とその次の番号の焼鈍部とであり、偶数回目のレプリカ交換タイミングにおいて、例えば偶数番目の焼鈍部とその次の番号の焼鈍部とであってよい。
 状態番号保持部33は、レプリカ番号(焼鈍部の番号)と温度番号とを対応付けて格納したレプリカ番号対応テーブルを有する。ここで言うレプリカ番号は、逆温度順の並びとは無関係であり、物理的な実体としての各焼鈍部10-1乃至10-mを特定する番号である。このレプリカ番号対応テーブルに基づいて、レプリカ番号iである焼鈍部10-iに割り当てられているβは何番の温度番号に対応するのかが特定できる。
 また温度保持部34は、温度番号と逆温度値(又は温度値)とを対応付けて格納した温度対応テーブルを有する。この温度対応テーブルに基づいて、何番の温度番号が幾つの逆温度値に対応するのかが特定できる。これらのレプリカ番号対応テーブルと温度対応テーブルとを用いて、焼鈍部10-1乃至10-mへの逆温度値の割り当て及び交換処理が管理される。
 図5は、状態番号保持部33が保持するレプリカ番号対応テーブル40の一例を示す図である。図5に示されるように、レプリカ番号0乃至15がそれぞれ温度番号0乃至15に割り当てられている。図5は例えば初期状態の対応関係を示しており、レプリカ交換が進んだ後では、レプリカ番号0乃至15と温度番号0乃至15との対応関係はランダムになっている。この際、温度番号0乃至15については図5に示されるように昇順の並びのままとし、レプリカ番号について順番を並べ替えることが好ましい。これは、温度交換の際には温度順の並びで隣接した2つの温度間で交換をするので、レプリカ番号対応テーブル40において温度順の並びを保持しておいた方が、隣接する2つの温度に対応するレプリカ番号を特定しやすいからである。図5において、テーブルのエントリ数は一例として16である場合が示されているが、テーブルのエントリ数は特定の数に限定されない。
 図6は、温度保持部34が保持する温度対応テーブル41の一例を示す図である。図6に示されるように、温度番号0乃至15がそれぞれ逆温度値A乃至Pに割り当てられている。本実施例においては、逆温度値A乃至Pは降順に並んでいる。即ち、温度番号0の側において逆温度が高く(温度が低く)、温度番号15の側において逆温度が低い(温度が高い)配置となっている。図6において、テーブルのエントリ数は一例として16である場合が示されているが、テーブルのエントリ数は特定の数に限定されない。
 図4に戻り、レプリカ交換演算部31は、焼鈍部10-nと焼鈍部10-n+1との間で逆温度を交換すると判定すると、状態番号保持部33に保持されるレプリカ番号対応テーブル40において、レプリカ番号nとレプリカ番号n+1との位置を入れ替える。このようにレプリカ番号nとレプリカ番号n+1との位置を入れ替えることにより、レプリカ番号n及びn+1とそれぞれに割り当てられている温度番号との対応関係を入れ替えることができる。例えば、図5においては、レプリカ番号10及びレプリカ番号11がそれぞれ温度番号10及び11に対応付けられている。この状態から、矢印で示されるようにレプリカ番号を入れ替えることにより、レプリカ番号11及びレプリカ番号10がそれぞれ温度番号10及び11に対応付けられるように、レプリカ番号対応テーブル40が更新される。
 レプリカ交換演算部31は、焼鈍部10-iに通知する逆温度βの値として、レプリカ番号対応テーブル40においてレプリカ番号i番目に対応する温度番号を参照し、当該温度番号に対応する逆温度値を温度対応テーブル41から読み出す。レプリカ交換演算部31は、この読み出した逆温度値を逆温度βの値として焼鈍部10-iに通知する。
 図4に示される温度調整部32は、レプリカ交換演算部31によるレプリカ交換直後のタイミングにおいて、温度保持部34に保持される温度対応テーブル41のエントリである逆温度値(又は温度値)を書き換えることにより温度調整を実行する。具体的には、温度調整部32は、第1の焼鈍部10-n-1と着目焼鈍部10-nとの間の交換確率と、第2の焼鈍部10-n+1と着目焼鈍部10-nとの間の交換確率とが、互いに近づくように着目焼鈍部10-nの温度を変化させる。ここで第1の焼鈍部10-n-1は、着目焼鈍部10-nに対して、温度が低い側(逆温度が高い側)に温度順の並びで隣接する焼鈍部である。また第2の焼鈍部10-n+1は、着目焼鈍部10-nに対して、温度が高い側(逆温度が低い側)に温度順の並びで隣接する焼鈍部である。
 交換確率は、前述のように式(4)により計算される。式(4)から分かるように、交換確率は交換対象の2つの系の絶対温度と評価関数値とに応じた値である。この評価関数値は状態遷移に応じて細かい変動を示すが、この局所的な変動の影響を受けると、安定した温度調整を実現することが難しい可能性がある。そこで温度調整部32において2つの交換確率が互いに近づくように着目焼鈍部10-nの温度を変化させる際には、平均的な意味で交換確率が互いに近づくような処理を行ってよい。具体的には、温度調整部32は、状態の複数回の遷移に亘る評価関数値の平均値を用いて求めた、第1の焼鈍部と着目焼鈍部との間の交換確率と、第2の焼鈍部と着目焼鈍部との間の交換確率とが、互いに近づくように着目焼鈍部10-nの温度を変化させてよい。このように評価関数値Eそのものではなく評価関数値の平均値aveEを用いて交換確率を計算し、2つの交換確率が近づくように着目焼鈍部10-nの温度を変化させることにより、状態の局所的な変動に影響を受けずに安定した温度調整が可能になる。
 具体的には、温度調整部32は、exp{(βn-1-β)(aveEn-1-aveE)}の値とexp{(β-βn+1)(aveE-aveEn+1)}の値とを比較すればよい。これら2つの値の大小関係を判定すればよいので、温度保持部34は、これら2つの値の指数部の大きさを比較すればよいことになる。より具体的には、温度保持部34は、以下のアルゴリズムにより、βの調整を行えばよい。
<A1:符号判断>
(aveEn-1-aveE)又は(aveE-aveEn+1)のいずれかが正である場合(即ち少なくとも一方の交換確率が1の場合)、βの調整は行わない
<A2:方向判断1>
|(βn-1-β)(aveEn-1-aveE)|>|(β-βn+1)(aveE-aveEn+1)|であれば、βをβn-1側に近づける(βを増加させる)
<A3:方向判断2>
|(βn-1-β)(aveEn-1-aveE)|<|(β-βn+1)(aveE-aveEn+1)|であれば、βをβn+1側に近づける(βを減少させる)
上記のように、少なくとも一方の交換確率が1の場合にβの調整は行わない制御とすることにより、レプリカ交換が充分に行われる温度位置において不要な温度調整を避けることができる。
 温度調整部32により更新された温度対応テーブル41の逆温度値は、レプリカ交換演算部31から各焼鈍部10-1乃至10-mに通知される。以上のレプリカ交換処理及び温度調整処理の後、各焼鈍部10-1乃至10-mは、前述のようにアニール処理を実行する。
 図7は、図1に示す最適化装置の動作の一例を概略的に示すフローチャートである。ステップS11において、焼鈍部10-1乃至10-mはアニール処理を実行する。ステップS12において、焼鈍部10-1乃至10-mは、評価関数値E1乃至Em及び平均評価関数値aveE1乃至aveEmを交換制御部11に送信する。
 ステップS13において、交換制御部11は、全ての焼鈍部10-1乃至10-mに対して、温度番号順の並び(即ち温度順の並び)において隣接する焼鈍部間でのレプリカ交換処理を行う。ステップS14において、交換制御部11は、全ての焼鈍部10-1乃至10-mに対して、温度番号順の並びにおいて隣接する焼鈍部間での交換確率が互いに近づくように、逆温度の値を調整する。
 以上のステップS11乃至S14の処理が1ラウンドの処理に相当する。図1に示す最適化装置は、当該1ラウンドの処理を繰り返し実行することにより、レプリカ交換法に基づくアニール処理を実行する。
 図8は、図1に示す最適化装置の動作の一例を詳細に示すフローチャートである。ステップS21で、焼鈍部10-1乃至10-mはアニール処理を実行する。焼鈍部10-1乃至10-mは、所定のイタレーション回数のアニール処理を実行した後に、評価関数値E1乃至Em及び平均評価関数値aveE1乃至aveEmを交換制御部11に送信してよい。
 ステップS22で、交換制御部11のレプリカ交換演算部31は、温度番号順に従って1つのレプリカ交換対象ペア(即ち2つの焼鈍部)を決定し、ペアをなす2つの焼鈍部間でのレプリカ交換処理(即ち所定の確率で逆温度を交換する処理)を行う。この際、レプリカ交換演算部31は、温度番号を例えば初期値0に設定し、例えば図5に示すレプリカ番号対応テーブル40における温度番号0番に対応する焼鈍部と温度番号1番に対応する焼鈍部とを、最初のレプリカ交換ペアとして選択してよい。この場合、レプリカ交換演算部31は、温度番号偶数番に対応する焼鈍部とその次の温度番号に対応する焼鈍部とのレプリカ交換処理を実行することになる。温度番号奇数番に対応する焼鈍部とその次の温度番号に対応する焼鈍部とのレプリカ交換処理を実行する場合には、レプリカ交換演算部31は、温度番号1番に対応する焼鈍部と温度番号2番に対応する焼鈍部とを、最初のレプリカ交換ペアとして選択してよい。
 ステップS23で、交換制御部11の温度調整部32は、インデックスL及び上記ペアとその隣接温度番号に対応する逆温度β及び平均評価関数値aveEのデータを取得する。レプリカ交換処理が奇数番目を基点とするペア又は偶数番を基点するペアについて実行されるのに対応して、温度調整も奇数番又は偶数番のいずれかの温度番号の逆温度に対して実行してよい。奇数番又は偶数番の温度番号に対して実行する場合、レプリカ交換対象ペアの温度番号がn,n+1であるならば、温度番号n-1,n,n+1に対応するβ及びaveEのデータをステップS23で取得し、逆温度βを調整すればよい。また或いは、温度調整は、連番の全ての温度番号の逆温度に対して実行してもよい。連番の全ての温度番号に対して実行する場合には、レプリカ交換対象ペアの温度番号がn,n+1であるならば、温度番号n-1,n,n+1,n+2に対応するβ及びaveEのデータをステップS23で取得し、逆温度β及びβn+1を調整すればよい。この際、温度番号n-1,n,n+1に対応するデータに基づく処理により逆温度βを調整し、温度番号n,n+1,n+2に対応するデータに基づく処理により逆温度βを調整すればよい。温度番号nが0番である場合又は温度番号n+1が最終番号である場合には、温度番号0番や温度番号n+1番に対する温度調整処理は行わない。
 上記ステップS23でのデータ取得に際し、温度調整部32は、レプリカ交換演算部31が特定したレプリカ交換対象ペアのレプリカ番号情報に基づいて、各焼鈍部10-1乃至10-m及び温度対応テーブル41から直接にβ及びaveEのデータを取得してよい。或いは温度調整部32は、逆温度β及び平均評価関数値aveEのデータのうち、一部又は全てのデータをレプリカ交換演算部31から取得してよい。
 ステップS24で、温度調整部32は、着目焼鈍部10-n(即ち温度番号n番の焼鈍部)の逆温度調整を行うか否かを、逆温度β及び平均評価関数値aveEに基づく前述のアルゴルズムにより判定する。
 温度調整を行うと判定された場合、ステップS25で、温度調整部32は、前述のアルゴリズムに従い、シフト方向(βを増加させるか或いは減少させるか)を決定する。ステップS26で、温度調整部32は、インデックスLと隣接焼鈍部の逆温度値とに基づいてシフト量を決定する。具体的には、着目焼鈍部(逆温度調整対象の焼鈍部)の逆温度βを近づける側に位置する隣接焼鈍部の逆温度βと着目焼鈍部の逆温度βとの差分を1/2倍することにより、シフト量を計算してよい。このシフト量の計算については後ほど詳しく説明する。ステップS27で、温度調整部32は、少なくとも上記ペアのうちの1つの焼鈍部(n番の焼鈍部又はn番及びn+1番の焼鈍部)の逆温度を、上記のシフト方向に上記のシフト量だけ移動させる。
 その後、処理はステップS27からステップS28に進む。また前述のステップS24で温度調整を行わないと判定された場合にも、処理はステップS24からステップS28に進む。
 ステップS28で、温度調整部32は、現在の温度番号の設定値が最後の温度番号値であるか否かを判定する。最後の温度番号値ではないと判定された場合、温度調整部32は、次のレプリカ交換処理の対象となるペアを指定するために、温度番号を2増加させる。その後、処理はステップS22に戻り以降の処理を繰り返す。
 なお奇数番又は偶数番の温度番号に対して交互に逆温度調整処理を実行する場合には、温度対応テーブル41において逆温度を逐次的に順次更新してよい。一方、連番の全ての温度番号に対して逆温度調整処理を実行する場合には、順次計算された逆温度の更新値をレジスタ等に別途保存しておき、全ての逆温度調整処理の計算が終了してから温度対応テーブル41の逆温度を纏めて更新することになる。
 以上の処理では温度番号設定値を値の小さい側から順に増加させていく方向に処理を進めているが、逆に温度番号設定値を値の大きい側から順に減少させていくのでもよい。なお図8に示すように各ペアについて逐次的に順番に温度調整処理を実行してもよいし、或いは全てのペアに対して同時並列的に同等の温度調整処理を実行してもよい。
 図9は、交換制御部11の詳細な構成の一例を示す図である。図9に示す交換制御部11及び焼鈍部10-iの構成は、図4に示す交換制御部11及び焼鈍部10-iの構成をより詳細に示したものである。図9に示す交換制御部11では、図4に示す交換制御部11と比較して、温度調整部32の構成及び温度調整部32の信号の入出力をより詳細に示してある。
 図9に示す交換制御部11は、レプリカ交換演算部31、温度調整部32、状態番号保持部33、温度保持部34、及びインデックス保持部35を含む。インデックス保持部35は、前述の図8のフローチャートに示す処理で説明したインデックスLを保持するレジスタである。インデックスLについては、外部から所望の値を設定可能であってよい。
 図9に示される焼鈍部10-iは、焼鈍実行部100及び平均計算部24を含む。焼鈍実行部100は、図2に示す状態保持部21、評価関数計算部22、及び遷移制御部23に相当する部分であってよい。平均計算部24は、平均再計算部25及び平均記憶部26を含む。平均再計算部25は、以下の式により評価関数の平均値aveEを更新していく。
aveE=aveE+(E-aveE)・(1/2)       (5)
ここでKは平均値を求める幅に応じた正の整数である。評価関数値E及び平均評価関数値aveEは最適化装置において固定小数点数として表現されてよい。平均評価値aveEを求めるための除数(2)は2の累乗である。従って、固定小数点で表現された値の加減算及びシフト演算のみにより、平均評価関数値aveEの計算を行うことができる。これにより、計算を簡潔にして速い処理速度を実現すると共に、簡潔で小規模のハードウェアにより平均再計算部25を実装することが可能となる。
 なお上記の式(5)では、平均評価関数値aveEと評価関数値Eとに基づいて平均評価関数値aveEを再計算しているが、複数の遷移に亘る評価関数値Eの移動平均として2個の評価関数値Eの平均をとる演算により平均評価関数値aveEを求めてもよい。この場合も、固定小数点で表現された値の加減算及びシフト演算のみにより、平均評価関数値aveEの計算を行うことができる。
 温度調整部32は、温度調整制御部51及び温度再計算部61を含む。温度調整制御部51は、符号判断部52、交換確率計算部53、シフト方向判断部54、及びβ再計算指示部55を含む。温度再計算部61は、シフト量計算部62及びβ再計算部63を含む。
 温度調整制御部51は、レプリカ交換演算部31から、温度調整演算の対象となる温度番号n-1乃至n+1と、対応する焼鈍部10-n-1乃至10-n+1のレプリカ番号と、対応する逆温度βn-1乃至βn+1とを受け取ってよい。温度調整制御部51は、受け取ったレプリカ番号に基づいて、焼鈍部10-1乃至10-mからの平均評価関数値aveE乃至aveEのうち、対応するaveEn-1乃至aveEn+1を特定することができる。
 符号判断部52は、(aveEn-1-aveE)及び(aveE-aveEn+1)について、それぞれの符号を判断することにより、前述のアルゴリズムの「A1:符号判断」の処理を行う。いずれの符号も負である場合にのみ、温度調整制御部51は温度調整処理を実行する。
 交換確率計算部53は、逆温度のシフト方向を決定するための基となる交換確率値を計算する。交換確率計算部53は実際に交換確率を計算してもよいが、交換確率値そのものを計算する代わりに、前述のアルゴリズムに用いる(βn-1-β)(aveEn-1-aveE)の絶対値及び(β-βn+1)(aveE-aveEn+1)の絶対値を計算すればよい。
 シフト方向判断部54は、前述のアルゴリズムの「A2:方向判断1」及び「A3:方向判断2」に基づいて、逆温度βをシフトする方向(増加方向又は減少方向)を判断する。β再計算指示部55は、温度再計算部61に逆温度βを再計算する指示を送信する。
 温度再計算部61が逆温度βの再計算指示を受信すると、温度再計算部61のシフト量計算部62は、以下のいずれかの式によりシフト量Sを計算する。
S=(βn-1-β)/2 (βを増加させβn-1に近づける場合)  (6)
S=(β-βn+1)/2 (βを減少させβn+1に近づける場合)  (7)
ここでLはインデックス保持部35に保持される正の整数である。
 β再計算部63は、温度再計算部61が計算した上記シフト量Sだけ逆温度βを増加又は減少させることにより、逆温度βの更新後の値を計算する。
 β再計算部63が更新後の逆温度βを温度保持部34に送信すると共に、β再計算指示部55が温度番号nの逆温度値を更新する指示を温度保持部34に送信する。これにより、温度保持部34に保持される温度対応テーブル41(図6参照)において温度番号nに対応する逆温度値が更新後の値に書き換えられる。
 上述のシフト量S(逆温度の変化幅)は、着目焼鈍部10-nの逆温度βと、第1の焼鈍部10-n-1又は第2の焼鈍部10-n+1の逆温度βn-1又はβn+1との差を2の累乗(2)で除算した値である。ここで逆温度は浮動小数点値で表現されてよい。逆温度βを更新する計算は、浮動小数点で表現された値の加減算及び指数部の減算のみにより行うことが可能である。従って、逆温度更新演算の計算コストが比較的小さくてすみ、また比較的単純なハードウェアで温度再計算部61を実装することが可能となる。
 また着目焼鈍部10-nの温度を変化させる際の逆温度βの変化幅Sは、着目焼鈍部の逆温度βと、第1の焼鈍部又は第2の焼鈍部の逆温度βn-1又はβn+1との差に比例する値となっているため、交換確率差に応じた値となっていると言える。このように固定ではない可変のシフト量Sを用いることで、適切なシフト量による逆温度調整を実現することが可能となる。
 図10は、温度調整部32による温度調整処理の処理の一例を示すフローチャートである。図10に示す温度調整処理は、図8に示す最適化装置の動作フローチャートにおいて説明したように、レプリカ交換処理と一体的に実行してよい。或いは図10に示す温度調整処理は、焼鈍部10-1乃至10-mに対するレプリカ交換処理を全て実行し終わった後に、レプリカ交換処理とは別個に実行してもよい。
 ステップS31で、温度番号nを例えば1に初期化する。この温度番号nを制御するのは、レプリカ交換演算部31であってよい。ステップS32で、温度調整部32は、インデックスL、βn-1乃至βn+1、及びaveEn-1乃至aveEn+1を取得する。ステップS33で、温度調整部32は、符号判断部52の符号判断に基づいて、温度調整の可否を判断する。温度調整しないと判断された場合、処理はステップS40に進む。温度調整すると判断された場合、処理はステップS34に進む。
 ステップS34で、温度調整部32は、交換確率計算部53により、温度番号n-1の焼鈍部と温度番号nの焼鈍部との間での温度交換確率Pn-1,nを計算すると共に、温度番号nの焼鈍部と温度番号n+1の焼鈍部との間での温度交換確率Pn,n+1を計算する。ステップS35で、温度調整部32は、シフト方向判断部54により、温度交換確率Pn,n+1が温度交換確率Pn-1,nより大きいか否かを判断する。Pn,n+1>Pn-1,nである場合には、これら2つの交換確率を互いに近づけるためにはβをβn-1に近づける必要があり、ステップS36に進む。またPn,n+1<Pn-1,nである場合には、これら2つの交換確率を互いに近づけるためにはβをβn+1に近づける必要があり、ステップS38に進む。なお前述のように、交換確率を実際に計算することなく、前述のアルゴリズムの「A2:方向判断1」及び「A3:方向判断2」に従ってβの調整方向を判断してよい。
 ステップS36で、温度調整部32は、シフト量計算部62により前述の式(6)によりシフト量Sを計算する。ステップS37で、温度調整部32は、βn再計算部63によりβ+Sを計算してβの更新値を求める。
 ステップS38で、温度調整部32は、シフト量計算部62により前述の式(7)によりシフト量Sを計算する。ステップS39で、温度調整部32は、βn再計算部63によりβ-Sを計算してβの更新値を求める。
 ステップS40で、温度番号nが最後の温度番号であるか否かを判断する。この判断はレプリカ交換演算部31が行ってよい。最後の温度番号ではないと判断した場合、ステップS41で、レプリカ交換演算部31は温度番号nをインクリメントする。その後処理はステップS32に戻り以降の処理を繰り返す。
 図11は、奇数番目の温度番号に対する温度調整処理と偶数番目の温度番号に対する温度調整処理とを交互に繰り返す動作の一例を示す図である。図11において、左側から右側に向けて順番にタイミングT1乃至T3における温度対応テーブル41の温度調整が示されている。1回目のラウンドにおける温度調整処理がタイミングT1に示す温度対応テーブル41に示されている。その後、アニール処理及びレプリカ交換処理を得て、2回目のラウンドにおける温度調整処理がタイミングT2に示す温度対応テーブル41に示されている。その後、更なるアニール処理及びレプリカ交換処理を得て、3回目のラウンドにおける温度調整処理がタイミングT3に示す温度対応テーブル41に示されている。
 例えばタイミングT1における温度調整処理では、奇数番目の温度番号に対応する逆温度が温度調整対象となっている。具体的には、温度番号1,5,11に対応する逆温度が新たな値に更新されている。また温度番号3,7,9,13に対応する逆温度については、温度調整のための基準を満たさないため(即ち前述のアルゴリズムの「A1:符号判断」で温度調整しないと判断されたため)、点線の空の四角で示すように元の逆温度値がそのまま保持されている。
 またタイミングT2における温度調整処理では、偶数番目の温度番号に対応する逆温度が温度調整対象となっている。具体的には、温度番号4,6,12に対応する逆温度が新たな値に更新されている。また温度番号2,8,10,14に対応する逆温度については、温度調整のための基準を満たさないため(即ち前述のアルゴリズムの「A1:符号判断」で温度調整しないと判断されたため)、点線の空の四角で示すように元の逆温度値がそのまま保持されている。
 なお最小の温度番号(この例では0)及び最大の温度番号(この例では15)は温度調整の対象とはしない。従って温度番号0の逆温度はこの例では100に維持され続け、温度番号15の逆温度はこの例では1に維持され続ける。
 図11に示す温度調整の方法は、レプリカ交換処理と一体的に温度調整を実行する場合に都合がよい。レプリカ交換処理では偶数番目を基点とするペアに対する交換処理と奇数番目を基点とするペアに対する交換処理とが交互に繰り返される。従って、レプリカ交換演算部31による交換処理における温度番号の制御動作をそのまま利用して温度調整に対する温度番号の制御を行えるので、効率的な温度調整処理を実現することができる。
 図12は、連番の全ての温度番号に対する温度調整処理を実行する動作の一例を示す図である。図12において、左側から右側に向けて順番にタイミングT1乃至T3における温度対応テーブル41の温度調整が示されている。1回目のラウンドにおける温度調整処理がタイミングT1に示す温度対応テーブル41に示されている。その後、アニール処理及びレプリカ交換処理を得て、2回目のラウンドにおける温度調整処理がタイミングT2に示す温度対応テーブル41に示されている。その後、更なるアニール処理及びレプリカ交換処理を得て、3回目のラウンドにおける温度調整処理がタイミングT3に示す温度対応テーブル41に示されている。
 例えばタイミングT1における温度調整処理では、温度番号1,4,5,6,11,12に対応する逆温度が新たな値に更新されている。また温度番号2,3,7,8,9,10,13,14に対応する逆温度については、温度調整のための基準を満たさないため、点線の空の四角で示すように元の逆温度値がそのまま保持されている。最小の温度番号及び最大の温度番号は温度調整の対象とはしないことは、図11の場合と同様である。
 図12に示す温度調整方法は、図11に示す方法と比較して、各温度番号に対してより細かいインターバル(1/2のインターバル)で温度調整処理を実行できるという利点がある。一方、図12に示す温度調整方法の場合には、温度対応テーブル41における逆温度の更新を全ての逆温度調整処理の計算が終了してから纏めて行う、或いは交換確率等の計算値を全ての温度番号に対して予め計算して保持しておく、等の工夫が必要になる。そのため交換制御部11の回路規模が、図11に示す方法の場合と比較して、若干増大する可能性がある。
 以上、本発明を実施例に基づいて説明したが、本発明は上記実施例に限定されるものではなく、特許請求の範囲に記載の範囲内で様々な変形が可能である。
10-1乃至10-m 焼鈍部
11 交換制御部
21 状態保持部
22 評価関数計算部
23 遷移制御部
31 レプリカ交換演算部
32 温度調整部
33 状態番号保持部
34 温度保持部
35 インデックス保持部
51 温度調整制御部
52 符号判断部
53 交換確率計算部
54 シフト方向判断部
55 β再計算指示部
61 温度再計算部
62 シフト量計算部
63 β再計算部

Claims (8)

  1.  それぞれの状態とそれぞれの前記状態に各々対応する異なる温度とが割り当てられており、前記状態に応じたそれぞれの評価関数値を計算すると共に、前記温度及び前記評価関数値に応じた確率で前記状態を遷移させる複数の焼鈍部と、
     前記温度と前記評価関数値とに基づく所定の交換確率で前記温度又は前記状態を前記複数の焼鈍部の間で交換する交換部と、
     前記複数の焼鈍部のうちの着目焼鈍部に対して、温度が低い側に温度順の並びで隣接する第1の焼鈍部と前記着目焼鈍部との間の交換確率と、温度が高い側に温度順の並びで隣接する第2の焼鈍部と前記着目焼鈍部との間の交換確率とが、互いに近づくように前記着目焼鈍部の前記温度を変化させる温度調整部と
    を含む最適化装置。
  2.  前記温度調整部は、前記状態の複数回の遷移に亘る前記評価関数値の平均値に基づいた、前記第1の焼鈍部と前記着目焼鈍部との間の交換確率と、前記第2の焼鈍部と前記着目焼鈍部との間の交換確率とが、互いに近づくように前記着目焼鈍部の前記温度を変化させる、請求項1記載の最適化装置。
  3.  前記温度調整部は、前記第1の焼鈍部と前記着目焼鈍部との間の交換確率と前記第2の焼鈍部と前記着目焼鈍部との間の交換確率とのいずれか一方が1である場合には前記着目焼鈍部の前記温度を変化させない、請求項1又は2記載の最適化装置。
  4.  前記温度調整部は、温度順に並んだ前記複数の焼鈍部に対して、偶数番の焼鈍部に対する温度調整処理と奇数番の焼鈍部に対する温度調整処理とを交互に実行する、請求項1乃至3いずれか一項記載の最適化装置。
  5.  前記評価関数値及び前記平均値は固定小数点で表現され、前記平均値を求めるための除数は2の累乗であり、固定小数点で表現された値の加減算及びシフト演算のみにより前記評価関数値の前記平均値の計算を行う、請求項2記載の最適化装置。
  6.  前記着目焼鈍部の温度を変化させる際の逆温度の変化幅は、前記着目焼鈍部の逆温度と、前記第1の焼鈍部又は前記第2の焼鈍部の逆温度との差に比例する値である、請求項1乃至5いずれか一項記載の最適化装置。
  7.  前記着目焼鈍部の温度を変化させる際の逆温度の変化幅は、前記着目焼鈍部の逆温度と、前記第1の焼鈍部又は前記第2の焼鈍部の逆温度との差を2の累乗で除算した値であり、前記逆温度は浮動小数点で表現され、浮動小数点で表現された値の加減算及び指数部の減算のみにより前記着目焼鈍部の前記温度を変化させる計算を行う、請求項1乃至5いずれか一項記載の最適化装置。
  8.  それぞれの状態とそれぞれの前記状態に各々対応する異なる温度とが割り当てられた複数の焼鈍部において、前記状態に応じたそれぞれの評価関数値を計算すると共に、前記温度及び前記評価関数値に応じた確率で前記状態を遷移させ、
     前記温度と前記評価関数値とに基づく所定の交換確率で前記温度又は前記状態を前記複数の焼鈍部の間で交換し、
     前記複数の焼鈍部のうちの着目焼鈍部に対して、温度が低い側に温度順の並びで隣接する第1の焼鈍部と前記着目焼鈍部との間の交換確率と、温度が高い側に温度順の並びで隣接する第2の焼鈍部と前記着目焼鈍部との間の交換確率とが、互いに近づくように前記着目焼鈍部の前記温度を変化させる
    各段階を含む最適化装置の制御方法。
PCT/JP2018/034000 2018-09-13 2018-09-13 最適化装置及び最適化装置の制御方法 WO2020054024A1 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
EP18933723.1A EP3852029A4 (en) 2018-09-13 2018-09-13 OPTIMIZATION DEVICE AND CONTROL METHOD OF AN OPTIMIZATION DEVICE
JP2020546628A JP7047925B2 (ja) 2018-09-13 2018-09-13 最適化装置及び最適化装置の制御方法
PCT/JP2018/034000 WO2020054024A1 (ja) 2018-09-13 2018-09-13 最適化装置及び最適化装置の制御方法
CA3111975A CA3111975A1 (en) 2018-09-13 2018-09-13 Temperature adjustment of annealing circuit in optimization apparatus
US17/192,929 US11928403B2 (en) 2018-09-13 2021-03-05 Optimization apparatus and optimization method for annealing circuits

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2018/034000 WO2020054024A1 (ja) 2018-09-13 2018-09-13 最適化装置及び最適化装置の制御方法

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US17/192,929 Continuation US11928403B2 (en) 2018-09-13 2021-03-05 Optimization apparatus and optimization method for annealing circuits

Publications (1)

Publication Number Publication Date
WO2020054024A1 true WO2020054024A1 (ja) 2020-03-19

Family

ID=69776510

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2018/034000 WO2020054024A1 (ja) 2018-09-13 2018-09-13 最適化装置及び最適化装置の制御方法

Country Status (5)

Country Link
US (1) US11928403B2 (ja)
EP (1) EP3852029A4 (ja)
JP (1) JP7047925B2 (ja)
CA (1) CA3111975A1 (ja)
WO (1) WO2020054024A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7239826B2 (ja) * 2019-06-18 2023-03-15 富士通株式会社 サンプリング装置およびサンプリング方法
JP2021184148A (ja) 2020-05-21 2021-12-02 富士通株式会社 最適化装置、最適化方法、および最適化プログラム
CN116151171B (zh) * 2023-04-17 2023-07-18 华南理工大学 一种基于并行回火的全连接伊辛模型退火处理电路

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05250346A (ja) * 1992-03-04 1993-09-28 Nec Corp ニューラルネットワークシミュレーション装置
JPH09231197A (ja) 1996-02-22 1997-09-05 Fujitsu Ltd 温度並列シミュレーティド・アニーリング用恒温槽装置及び温度並列シミュレーティド・アニーリング方法
WO2014192153A1 (ja) * 2013-05-31 2014-12-04 株式会社日立製作所 半導体装置
JP2018005541A (ja) 2016-07-01 2018-01-11 富士通株式会社 情報処理装置、イジング装置及び情報処理装置の制御方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5250346B2 (ja) 2008-09-04 2013-07-31 デルタ工業株式会社 トリムのクリップ止め構造および車両用シート

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05250346A (ja) * 1992-03-04 1993-09-28 Nec Corp ニューラルネットワークシミュレーション装置
JPH09231197A (ja) 1996-02-22 1997-09-05 Fujitsu Ltd 温度並列シミュレーティド・アニーリング用恒温槽装置及び温度並列シミュレーティド・アニーリング方法
WO2014192153A1 (ja) * 2013-05-31 2014-12-04 株式会社日立製作所 半導体装置
JP2018005541A (ja) 2016-07-01 2018-01-11 富士通株式会社 情報処理装置、イジング装置及び情報処理装置の制御方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
HUKUSHIMA; KOJI: "Recent Developments in Markov-chain Monte Carlo Method", IEICE TECHNICAL REPORT., vol. 110, no. 76 (IBISML2010-17), 7 June 2010 (2010-06-07), pages 113 - 116, XP009525534 *
See also references of EP3852029A4

Also Published As

Publication number Publication date
US11928403B2 (en) 2024-03-12
JP7047925B2 (ja) 2022-04-05
US20210192109A1 (en) 2021-06-24
EP3852029A4 (en) 2022-06-15
CA3111975A1 (en) 2020-03-19
JPWO2020054024A1 (ja) 2021-08-30
EP3852029A1 (en) 2021-07-21

Similar Documents

Publication Publication Date Title
WO2020054024A1 (ja) 最適化装置及び最適化装置の制御方法
JP7239826B2 (ja) サンプリング装置およびサンプリング方法
US10885147B2 (en) Optimization apparatus and control method thereof
CN111812972B (zh) 优化装置和用于控制优化装置的方法
CN111210046B (zh) 优化装置及优化装置的控制方法
CN112394756B (zh) 优化装置和优化装置的控制方法
CN111930007B (zh) 优化装置和控制优化装置的方法
US11443090B2 (en) Optimization device and method of controlling optimization device
CN111077768A (zh) 优化装置及优化装置的控制方法
CN113536229A (zh) 采样装置、采样方法以及用于存储采样程序的存储介质
CN111078621B (zh) 优化装置及优化装置的控制方法
US20210150356A1 (en) Optimization device, method for controlling optimization device, and computer-readable recording medium recording program for controlling optimization device
CN114115994A (zh) 信息处理设备和方法以及非暂态计算机可读存储介质
JP2020173579A (ja) 最適化システムおよび最適化システムの制御方法
WO2020054061A1 (ja) 最適化装置、最適化装置の制御方法および最適化装置の制御プログラム
CN115329978A (zh) 程序和信息处理设备
CN113283609A (zh) 信息处理方法、信息处理设备和信息处理程序
CN117196021A (zh) 信息处理设备、信息处理方法和存储介质

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 18933723

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2020546628

Country of ref document: JP

Kind code of ref document: A

ENP Entry into the national phase

Ref document number: 3111975

Country of ref document: CA

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 2018933723

Country of ref document: EP

Effective date: 20210413