WO2022044184A1 - 情報処理システムおよび最適解探索処理方法 - Google Patents

情報処理システムおよび最適解探索処理方法 Download PDF

Info

Publication number
WO2022044184A1
WO2022044184A1 PCT/JP2020/032299 JP2020032299W WO2022044184A1 WO 2022044184 A1 WO2022044184 A1 WO 2022044184A1 JP 2020032299 W JP2020032299 W JP 2020032299W WO 2022044184 A1 WO2022044184 A1 WO 2022044184A1
Authority
WO
WIPO (PCT)
Prior art keywords
variable
value
unit
memory
information processing
Prior art date
Application number
PCT/JP2020/032299
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 PCT/JP2020/032299 priority Critical patent/WO2022044184A1/ja
Priority to JP2022544983A priority patent/JP7425210B2/ja
Priority to AU2020465147A priority patent/AU2020465147B2/en
Publication of WO2022044184A1 publication Critical patent/WO2022044184A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N99/00Subject matter not provided for in other groups of this subclass

Definitions

  • the present invention relates to an information processing device, an arithmetic unit, an information processing method, and the like, and relates to a technique for executing an optimum solution search process.
  • Patent Document 1 states that "a first memory cell that stores a value representing one spin of the Ising model in a state of three or more and an interaction showing an interaction from another spin that interacts with one spin.
  • a second memory cell that stores the action coefficient, a logic circuit that determines the next state of one spin based on a value that expresses the state of another spin and a function that has the interaction coefficient as a constant or a variable.
  • a semiconductor device including a plurality of unit units having the above-mentioned is disclosed.
  • Patent Document 2 describes a method for realizing an optimum solution search by simultaneously probabilistically updating all spins while satisfying the theoretical background required by the Markov chain Monte Carlo method for an Ising model having an arbitrary coupling. ing.
  • Patent Document 3 describes an acquisition means for acquiring candidate information, which is information on candidates for subsets in the partitioning problem, and a singing model corresponding to the partitioning problem based on the candidate information acquired by the acquisition means.
  • a generation means for generating the Hamiltonian equation in the above is disclosed.
  • An interaction model is defined by a plurality of nodes constituting the model, interactions between the nodes, and if necessary, coefficients that act on each node.
  • various models such as the Ising model have been proposed, but all of them can be interpreted as a form of interaction model.
  • this energy function is generally a linear sum of multiple terms such as a penalty term representing a constraint. expressed. Since the optimum value of the weight of each term is generally unknown, the solution is searched while changing the weight to obtain an exact solution or a good approximate solution.
  • the optimization problem can be calculated in a short time and with low power consumption once the problem to be solved can be expressed by the interaction model.
  • the optimization problems that are actually required in the world often impose complicated constraints, and it is difficult to express all of these penalty terms in an interaction model.
  • the present invention has been made in view of the above background, and provides a means for solving a complicated optimization problem with various constraints by a mixed quadratic programming problem. The purpose.
  • a preferred aspect of the present invention is an information processing system including an arithmetic unit and a computer that controls the arithmetic unit.
  • the computer generates solution candidates for an optimization problem including a plurality of constraints, extracts solution candidates satisfying at least a part of the constraints from the solution candidates, and is a mixed integer quadratic based on the extracted solution candidates. It includes a preprocessing unit that generates a planning problem, and an interaction calculation execution unit that inputs data based on the mixed integer quadratic programming problem to the calculation device and executes the calculation.
  • the arithmetic unit performs an operation to update a variable of the mixed integer quadratic programming problem, and outputs the variable having the maximum or minimum objective function as a solution.
  • a more preferable aspect of the present invention is an information processing system including an arithmetic unit and a computer for controlling the arithmetic unit.
  • the computer creates a candidate list by excluding a part of the array from the intermediate input data consisting of a set of arrays, and generates a mixed integer quadratic planning problem from the candidate list, and the mixed integer. It is provided with an interaction calculation execution unit for inputting data based on a secondary planning problem into the calculation device and executing the calculation.
  • the arithmetic unit performs an operation to update a variable of the mixed integer quadratic programming problem, and outputs the variable having the maximum or minimum objective function as a solution.
  • Another preferable aspect of the present invention is an arithmetic unit and an optimum solution search processing method executed by a computer that controls the arithmetic unit.
  • the preprocessing unit of the computer creates a candidate list by excluding a part of the array from the intermediate input data consisting of a set of arrays, and generates secondary planning format problem data from the candidate list.
  • the weight setting unit of the computer is a weight signal.
  • the sixth step of reading the value of each variable from the variable memory and performing conversion based on the definition area data is executed.
  • Notations such as “first”, “second”, and “third” in the present specification and the like are attached to identify components, and do not necessarily limit the number, order, or contents thereof. is not it. Further, the numbers for identifying the components are used for each context, and the numbers used in one context do not always indicate the same composition in the other contexts. Further, it does not prevent the component identified by a certain number from functioning as the component identified by another number.
  • a variable memory that stores a value indicating the state of a variable in a mixed integer quadratic design problem and a non-linear coefficient that stores the non-linear coefficient of the state transition calculation block corresponding to the variable memory.
  • the memory, the linear coefficient memory that stores the linear coefficient of the state transition calculation block corresponding to the variable memory, the weight input line that receives the weight signal of the state transition calculation block, and the temperature signal of the state transition calculation block are received.
  • a difference calculation block that calculates a difference calculation using a temperature input line, a weight signal of the state transition calculation block, a nonlinear coefficient of the state transition calculation block, and a linear coefficient of the state transition calculation block, and a state transition calculation block.
  • a sampling block that randomly samples from a probability distribution with interval constraints using the weight signal, the temperature signal of the state transition calculation block, and the output value of the difference calculation block, and the output value of the sampling block and the output value of the variable memory are read out. It is an arithmetic circuit including a next state calculation block for calculating the next state of a variable using the above values.
  • an integer programming problem is an optimization problem that includes integer variables.
  • a variable that takes an integer value and a variable that takes a real value are mixed, it is called a mixed integer programming problem.
  • a mixed integer programming problem that is a quadratic programming problem is called a mixed integer quadratic programming problem.
  • a mixed integer quadratic programming problem in which variables that take binary values and variables that take real values are mixed is referred to as a mixed binary quadratic programming problem.
  • the purchase ratio of financial products may be 0% or 10% to 100%. Of course, if you do not purchase it, it will be 0%, and if you purchase it, it will be 10% or more of the minimum unit.
  • Equation 3 the sets of subscripts ⁇ b and ⁇ c are defined as in Equation 3.
  • Equation 2 can also be expressed as Equation 4.
  • this optimization problem is a combinatorial optimization problem called the ground state search problem of the Ising model.
  • an optimization problem including a search for the base state of an Ising model an optimum solution or an approximate solution is searched for by an algorithm utilizing Markov Chain Monte Carlo methods (hereinafter referred to as MCMC (Markov Chain Monte Carlo methods)).
  • FIG. 1 is a conceptual diagram showing a landscape of objective function values for a variable array.
  • the horizontal axis of the graph is the variable array s, and the vertical axis is the objective function H (s).
  • MCMC repeats a probabilistic transition from the current state s to a state s'near the state s.
  • the probability of transition from the state s to the state s' is referred to as a transition probability P (s, s'). Examples of the transition probability P include the metropolis method and the heat-bath algorithm.
  • the transition probability has a parameter called temperature, which indicates the ease of transition between states.
  • temperature indicates the ease of transition between states.
  • SA Simulated Annealing
  • MA momentum annealing proposed in Non-Patent Document 1
  • the goal of the embodiment shown in the present application is to search for the optimum solution of Eq. 2, but it is possible to obtain the desired solution s + even if the transformation of Eq. 6 is obtained after solving the optimum solution s * of Eq. 5. ..
  • the function sgn is a function that returns +1 if the argument is 0 or more, and -1 otherwise.
  • the matrix W diag (w 1 , ..., W N ) is an arbitrary diagonal matrix, and vi is a real number moving [ -1 , +1].
  • the equation 9 which is the minimization problem of H'(s, v) is introduced.
  • Equation 5 can be paraphrased as the minimization problem of Equation 11 (may be treated as a maximization problem).
  • Equation 2 the optimum solution of the mixed quadratic programming problem represented by Equation 2 can be obtained from the solution of the constrained quadratic programming problem shown in Equation 11. MCMC is used to find this solution.
  • FIG. 2 is a graphical model showing the relationship between the variables of the objective function G in Equation 11.
  • the relationship between the variables of the function G can be represented by a complete bipartite graph.
  • the only variables that can be multiplied by the variable x i in the function G are y 1 , ..., y N and x i .
  • MCMC uses the value of the variable related to the variable when updating the variable value stochastically. That is, when updating the value of the variable x 1 , y 1 , ..., y N and x 1 are obtained, and the other variables (here, x 2 , ..., X N ) are not referred to. This also applies to updating the value of other variables, such as x2 . Therefore, if the value of the variable array y is constant, the theoretical requirement of MCMC is not broken even if the values of the array x are independently and stochastically updated at the same time.
  • each value of the array y can be independently and stochastically updated at the same time.
  • FIG. 3 is an example of a fully connected graph.
  • MCMC is applied directly to the minimization problem of Equation 2, which is the original problem, only one variable is used at a time because the relation of the variable array s is represented by a fully connected graph as shown in FIG. Probability update is not possible and is limited to sequential update.
  • variable A i is a value obtained by the equation 13.
  • the variables x i and y i are
  • the range in which x i can move is ⁇ (2-
  • the next state of xi may be sampled. In this method, the next state is determined regardless of the current state of xi .
  • y i In the present specification, when the variables of x and y are not distinguished, they may be expressed as s.
  • Random numbers that follow the standard normal distribution can be generated by the Box-Muller method. Since the domain is limited here, the algorithm shown in Non-Patent Document 2 may be used.
  • Non-Patent Document 3 proposes an over-mitigation method.
  • K states are sampled from the Boltzmann distribution at temperature T.
  • x c K + 1-r is adopted as the next state. In this method, the next state depends on the current state of xi .
  • FIGS. 4 to 6 show the configuration of the information processing apparatus that realizes the present invention.
  • FIG. 4 is an example of an information processing device that searches for an optimum solution for a mixed binary quadratic programming problem.
  • the information processing device 10 includes a processor 11, a main storage device 12, an auxiliary storage device 13, an input device 14, an output device 15, a communication device 16, one or more arithmetic units 20, and these.
  • a system bus 5 for communicably connecting the devices is provided. Even if the information processing device 10 is partially or wholly realized by using a virtual information processing resource such as a cloud server provided by a cloud system (CloudSystem), for example. good. Further, the information processing device 10 may be realized by, for example, a plurality of information processing devices that are communicably connected and operate in cooperation with each other.
  • CloudSystem cloud system
  • the processor 11 is configured by using, for example, a CPU (Central Processing Unit) or an MPU (Micro Processing Unit).
  • the main storage device 12 is a device for storing programs and data, for example, ROM (ReadOnlyMemory), SRAM (StaticRandomAccessMemory), NVRAM (NonVolatileRAM), mask ROM (MaskReadOnlyMemory), PROM. (Programmable ROM), etc.), RAM (RandomAccessMemory) (DRAM (DynamicRandomAccessMemory), etc.), etc.
  • the auxiliary storage device 13 is a hard disk drive (Hard Disk Drive), a flash memory (Flash Memory), an SSD (Solid State Drive), an optical storage device (CD (Compact Disc), DVD (Digital Versatile Disc), etc.) and the like. ..
  • the programs and data stored in the auxiliary storage device 13 are read into the main storage device 12 at any time.
  • the input device 14 is a user interface that receives information input from the user, and is, for example, a keyboard, a mouse, a card reader, a touch panel, or the like.
  • the output device 15 is a user interface that provides information to the user, and is, for example, a display device (LCD (Liquid Crystal Display), graphic card, etc.) that visualizes various information, an audio output device (speaker), a printing device, and the like. ..
  • the communication device 16 is a communication interface that communicates with other devices, and is, for example, an NIC (NetworkInterfaceCard), a wireless communication module, a USB (UniversalSerialInterface) module, a serial communication module, and the like.
  • the arithmetic unit 20 is a device that executes processing related to the search for the optimum solution of the mixed binary quadratic programming problem.
  • the arithmetic unit 20 may take the form of an expansion card to be mounted on the information processing unit 10, such as a GPU (Graphics Processing Unit).
  • the arithmetic unit 20 is composed of hardware such as a CMOS (Complementary Metal Oxide Semiconductor) circuit, an FPGA (Field Programmable Gate Array), and an ASIC (Application Specific Integrated Circuit).
  • the arithmetic unit 20 includes a control device, a storage device, an interface for connecting to the system bus 5, and sends / receives commands and information to / from the processor 11 via the system bus 5.
  • the arithmetic unit 20 may be connected to the other arithmetic unit 20 so as to be communicable via a communication line, and may operate in cooperation with the other arithmetic unit 20.
  • the function realized by the arithmetic unit 20 may be realized, for example, by causing a processor (CPU, GPU, etc.) to execute a program.
  • the arithmetic unit 20 shown in FIG. 4 will be described later in FIG.
  • One or a plurality of arithmetic units 20 can be mounted.
  • FIG. 5 is a diagram for explaining the operating principle of the arithmetic unit 20, and is a block diagram of a circuit (hereinafter, referred to as an arithmetic circuit 500) constituting the arithmetic unit 20.
  • the arithmetic circuit 500 realizes a function of sampling the variable array x 1 , ..., X N or the variable array y 1 , ..., Y N from the Boltzmann distribution (Equation 12) at the temperature T.
  • the operating principle of the arithmetic unit 20 will be described with reference to the figure.
  • the arithmetic circuit 500 includes a variable memory 511, a nonlinear coefficient memory 512, a linear coefficient memory 513, a difference calculation block 514, a sampling block 515, and a next state determination block 516.
  • variable memory 511 of each arithmetic circuit 500 stores information indicating the variables x 1 , ..., XN and y1, ..., Y N described above (see FIG. 2).
  • Information representing the matrix J is stored in the nonlinear coefficient memory 512.
  • the matrix J is generally a symmetric matrix, and this symmetry can be used to reduce the usage of the nonlinear coefficient memory 512.
  • Information representing the vector h is stored in the linear coefficient memory 513.
  • control signal EN As shown in the figure, the control signal EN, the weight signal SW, and the temperature signal TE are input to the arithmetic circuit 500.
  • the signal EN is a signal that periodically repeats the values of H (high) and L (low), and represents which of the variable arrays x and y is updated. For example, when EN is H, the variable array x is updated, and when L, y is updated. By this signal EN, the variables x 1 , ..., X N are updated at the same time, and the variables y 1 , ..., Y N are updated at the same time.
  • the signal EN is input only to the sampling block 515 for simplification, but it is similarly applied to other places where this signal is required, such as a variable memory.
  • the signal SW is a signal representing a vector of N elements representing diagonal components of the diagonal matrix W.
  • the difference calculation block 514 the value of the matrix J stored in the nonlinear coefficient memory 512, the vector h stored in the linear coefficient memory 513, the signal SW, and the variable s (x or) stored in the variable memory 511. y) is input.
  • the difference calculation block 514 outputs y + h when the signal EN is H (J + diag (w 1 , ..., w N )) and x + h when EN is L (J + diag (w 1 , ..., w N )). do. This output value corresponds to the above- mentioned Ai.
  • the sampling block 515 receives the output and signal SW of the difference calculation block 514, the signal TW holding the value of the temperature parameter, the signal EN, and the values of other variables. And as the i-th element, when the signal EN is H- (2-
  • the next state determination block 516 determines the next state of the variable based on one or more values output from the sampling block 515. If the MCMC update rule is defined as a simple heat bath method, the next state determination block 516 may receive only one output value of the sampling block 515 and write it as it is to the variable memory 511. Further, if a known over-relaxation method is used as the update rule of MCMC, the next state determination block 516 receives a plurality of values from the sampling block 515 and the current value of the variable to be updated from the variable memory 511, and according to the over-relaxation method. Select one and write it to the variable memory 511. As is well known, in the over-mitigation method, the next state is determined so that the correlation with the immediately preceding state is negative.
  • FIG. 6 shows the main functions (software configuration) of the information processing apparatus 10.
  • the information processing apparatus 10 includes a storage unit 600, a model conversion unit 611, a model coefficient setting unit 612, a weight setting unit 613, a variable value initialization unit 614, a temperature setting unit 615, and an interaction calculation execution unit. It includes 616, a variable value reading unit 617, and a preprocessing unit 618. These functions are realized by the processor 11 reading and executing the program stored in the main storage device 12, or by the hardware provided in the arithmetic unit 20.
  • the information processing device 10 may have other functions such as an operating system, a file system, a device driver, and a DBMS (DataBase Management System).
  • DBMS DataBase Management System
  • the storage unit 600 stores the problem data 601, the secondary plan format problem data 602, the definition area data 603, the arithmetic unit control program 604, the intermediate input data 619, and the candidate list 620 in the main storage device 12 or the auxiliary storage. Store in the device 13.
  • the problem data 601 is data in which, for example, an optimization problem or the like is described in a known predetermined description format.
  • the problem data 601 is created by the preprocessing unit 618 from the candidate list 620 described later.
  • the analysis input data input by the user via the user interface is converted into intermediate input data 619 composed of a combination of candidates by the preprocessing unit 618.
  • the analysis input data is data to be analyzed, such as personnel data and order data.
  • Personnel data is, for example, data such as a person in charge ID, a place of work, a qualification, and a work area.
  • the order data is, for example, data related to orders such as product / service contents, location, and delivery date. These are just examples, and if the data can be treated as a material for an optimization problem, it is not necessary to limit the data.
  • the intermediate input data 619 is generated from the analysis input data.
  • the above example includes, for example, a combination of an array of candidates representing which person is in charge of which order.
  • the solution is composed of a formula expressed by superposition of limited partial decompositions.
  • the preprocessing unit 618 further removes a predetermined candidate that does not satisfy the constraint condition from the intermediate input data 619 to generate a candidate list 620. Such preprocessing eliminates the need to represent complex constraints in an interaction model.
  • the preprocessing unit 618 generates problem data 601 from the candidate list 620.
  • the quadratic programming format problem data 602 is data generated by the model transformation unit 611 converting the problem data 601 into data in a format that matches the format of the quadratic programming problem represented by Equation 4. In this conversion, the domain of each given variable is written in the domain data 603. The domain data indicates, for example, whether each variable takes a binary value or a real value.
  • the arithmetic unit control program 604 is a program that is executed when the interaction arithmetic execution unit 616 controls the arithmetic unit 20, or is loaded by the interaction arithmetic execution unit 616 into each arithmetic unit 20 and executed by the arithmetic unit 20. be.
  • the model transformation unit 611 converts the problem data 601 into the quadratic programming format problem data 602, which is the format of the quadratic programming problem.
  • the function of deriving the equation 11 from the equation 1 may be implemented in the model transformation unit 611 as software or hardware.
  • the function of the model conversion unit 611 does not necessarily have to be implemented in the information processing device 10, and the information processing device 10 inputs the secondary plan format problem data 602 generated by another information processing device or the like to the input device 14 or communication. It may be taken in via the device 16.
  • the model coefficient setting unit 612 sets the matrix J of the equation 11 in the nonlinear coefficient memory 512 and the vector h in the linear coefficient memory 513 based on the quadratic planning format problem data 602.
  • the variable value initialization unit 614 initializes the value of each variable stored in the variable memory 511 of the arithmetic unit 20.
  • the variable value initialization unit 614 may determine, for example, by randomly sampling the value of each variable uniformly from -1 or more and +1 or less. At this time, care must be taken to satisfy the restrictions on variables
  • the temperature setting unit 615 sets the temperature T used when the interaction calculation execution unit 616 searches for the optimum solution.
  • the interaction operation execution unit 616 is an operation for searching the variable arrays x and y that minimize the function G represented by the equation 11 for each temperature T set by the temperature setting unit 615 (hereinafter referred to as an interaction operation). Is executed by the arithmetic unit 20. In the interaction calculation, the interaction calculation execution unit 616 changes, for example, the temperature T from the higher side to the lower side.
  • the variable value reading unit 617 reads the variable arrays x and y stored in the variable memory 511 when the optimum solution search by the interaction calculation execution unit 616 is completed.
  • the value read here is the solution of Equation 11.
  • the domain data 603 is read out, and the vector s + obtained by the equation 6 is output to the output device 15 and the communication device 16 as the final solution. That is, if the i-th domain is found to be ⁇ -1, +1 ⁇ in the domain data 603, sgn (s * i ) is output, and if the i-th domain is [-1, +1], s i itself is output. Is to do. In this way, a solution according to the defined range is obtained.
  • FIG. 7 is a flowchart illustrating a process (hereinafter referred to as an optimum solution search process S700) performed by the information processing apparatus 10 when searching for the optimum solution.
  • the optimum solution search process S700 will be described with reference to the figure.
  • the letter "S" attached before the reference numeral means a processing step.
  • the optimum solution search process S700 is started by receiving an instruction from the user or the like via the input device 14, for example.
  • the preprocessing unit 618 first generates the intermediate input data 619 from the analysis input data, generates the candidate list 620 from the intermediate input data 619, and generates the problem data 601 from the candidate list 620 (S710). ).
  • the model transformation unit 611 converts the problem data 601 into the quadratic programming format problem data 602 (S711).
  • the quadratic programming format problem data expresses, for example, the matrix J and the vector h in the function H expressed by the equation 1 in an arbitrary format. If the storage unit 600 has already stored the quadratic programming format problem data 602, the process S711 is omitted.
  • the processing of S711 and the processing after S712 may be executed by different devices. Further, the processing of S711 and the processing after S712 may be executed at different timings (for example, it is conceivable to perform the processing of S711 in advance).
  • the model coefficient setting unit 612 sets the values of the matrix J and the vector h in the nonlinear coefficient memory 512 and the linear coefficient memory 513 (S712).
  • the memory value can also be set or edited by the user via a user interface (eg, implemented by an input device 14, an output device 15, a communication device 16, etc.).
  • the weight setting unit 613 determines the value of the signal SW.
  • the signal SW is allowed to take an arbitrary value in searching for the optimum solution. Therefore, the signal value may always be 0. In this case, the calculation load can be reduced.
  • it may be determined from the eigenvalues of the matrix J. Alternatively, it may be determined from the sum of rows of the matrix J.
  • the calculation of the value calculation of the signal SW may be executed in the arithmetic unit 20 or in the processor 11. Alternatively, the user may set it by himself (S713).
  • variable value initialization unit 614 initializes the value of each variable stored in the variable memory 511 (S714).
  • the value stored in the variable memory 511 is a continuous value. As mentioned earlier, the initial value may be random. With the above, the parameter expressing the equation 11 is set.
  • the above-mentioned subscript k represents the type of temperature T to be set.
  • the method of Patent Document 1 can be adopted.
  • the interaction calculation execution unit 616 executes stochastic simultaneous update of the variable array by the calculation of the calculation circuit 500 shown in FIG. 5 (S716).
  • the interaction calculation execution unit 616 determines whether or not the stop condition is satisfied (for example, whether or not the temperature T has reached a preset minimum temperature) (S717).
  • the interaction calculation execution unit 616 determines that the stop condition is satisfied (S717: YES)
  • the process proceeds to S718.
  • the interaction calculation execution unit 616 determines that the stop condition is not satisfied (S717: NO)
  • the process returns to S716.
  • variable value reading unit 617 reads the value of the variable stored in the variable memory 511 and the definition area of each variable of the secondary plan format problem data 602 stored in the definition area data 603. Then, the vector through the transformation based on the equation 6 is calculated and output as the solution of the equation 2 or the equation 4. This completes the optimal solution search process S700.
  • the information processing apparatus 10 of the present embodiment it is possible to efficiently search for the optimum solution of the mixed quadratic programming problem. Therefore, the optimization problem can be solved efficiently. Since the information processing device 10 (including the arithmetic unit 20) has a simple structure, it can be manufactured inexpensively and easily.
  • the arithmetic circuit 500 may be configured by software or hardware as long as it has a function of executing a calculation for solving the optimization problem described above.
  • the annealing method not only the hardware mounted by an electronic circuit (digital circuit or the like) but also the method of mounting by a superconducting circuit or the like may be used.
  • hardware that realizes the Ising model other than the annealing method may be used.
  • a laser network method optical parametric oscillation
  • a quantum neural network and the like are known.
  • a quantum gate method in which the calculation performed by the Ising model is replaced with gates such as an Adamal gate, a rotation gate, and a control NOT gate can also be adopted as the configuration of this embodiment.
  • CMOS Complementary Metal-Oxide Semiconductor
  • FPGA Field Programmable Gate Array
  • FIG. 8 is a block diagram showing a circuit configuration example when the SRAM technology is applied to the arithmetic circuit 500 of this embodiment.
  • a plurality of units 801 constitute an array unit 802. Such a configuration can be manufactured by applying semiconductor manufacturing technology.
  • One unit 801 includes a multi-valued memory 901 that stores one of the variables x 1 , ..., XN and y1, ..., Y N , and a configuration for updating the value of the multi-valued memory 901. .. That is, 2N units 801 are prepared.
  • the configuration example of FIG. 8 will be described with reference to the generalized configuration of FIG.
  • the data stored in the nonlinear coefficient memory 512 and the linear coefficient memory 513 is set by the model coefficient setting unit 612.
  • the nonlinear coefficient memory 512 stores an N ⁇ N matrix J, which is commonly used by all units 801.
  • the linear coefficient memory 513 stores the N-dimensional vector h, which is commonly used by all the units 801. In order to reduce the circuit scale, these memories are common to each unit 801. Therefore, the nonlinear coefficient memory 512 and the linear coefficient memory 513 supply the coefficients J and h to all the units 801 but omit the signal line for that purpose in FIG.
  • each unit 801 may individually include the nonlinear coefficient memory 512 and the linear coefficient memory 513.
  • the weight memory 803 stores a vector of N elements (w 1 , ..., W N ) representing the diagonal components of the diagonal matrix W. This data is set by the weight setting unit 613. Since the i-th unit that stores x i and y i uses the i -th component wi, it is necessary to switch the value of the signal SW for each unit 801. In FIG. 8, the signal line for supplying the signal SW to the unit 801 is omitted.
  • the temperature signal TE supplied from the temperature setting unit 615 is supplied to all units 801.
  • the function and configuration of the temperature signal follow the conventional technology.
  • the signal line that supplies the signal TE to the unit 801 is omitted.
  • the interaction driver 804 alternately inputs a signal permitting the update of the variable x and a signal permitting the update of the variable y to each unit 801.
  • a signal permitting the update of the variable x and a signal permitting the update of the variable y to each unit 801.
  • the variables x 1 to x N are updated at the same time
  • the variables y 1 to y N are updated at the same time.
  • the SRAM interface 805 writes and reads from the memory that stores the variables of the unit 801 created by applying the circuit configuration of the SRAM.
  • the variable read after the processing in the arithmetic circuit 500 is completed is sent to the variable value reading unit 617.
  • the variable value reading unit 617 obtains a solution to the mixed binary quadratic planning problem by outputting the read variable as a continuous value or a binary value based on the domain data 603.
  • the controller 806 initializes the calculation circuit 500 and reports the end of processing according to the instruction of the interaction calculation execution unit 616.
  • FIG. 9 is a diagram showing a circuit configuration example of one unit 801.
  • One unit includes a multi-valued memory 901 that stores any one of continuous variables x 1 , ..., XN and y1, ..., Y N.
  • the difference calculation circuit 902 realizes the function of the difference calculation block 514.
  • the variable stored in the multi-valued memory 901 is any one of x 1 , ..., X N
  • the vector of (y 1 , ..., y N ) is input to the difference calculation circuit 902.
  • a vector of (x 1 , ..., X N ) is input.
  • These variable vectors are generated by reading from the multi-valued memory 901 of the other unit 801 by the SRAM interface 805. Further, the N ⁇ N matrix J and the N-dimensional vector h, which are coefficients, are input. Further, the weight wi is input.
  • the difference calculation circuit 902 outputs the value Ai of the i -th row of (J + diag (w 1 , ..., w N )) s + h (s is a variable vector of x or y) for these inputs. Become.
  • the sampling circuit 903 realizes the function of the sampling block 515.
  • the output A i , the signal EN, the signal SW, the signal TE, and the variable stored in the multi-valued memory 901 are y i
  • the variable stored in the multi-valued memory 901 is y i .
  • x i is input.
  • the candidate of the next state of the variable is sampled from the existence probability p ( si ) of the variable s i based on the equation 12.
  • the state determination circuit 904 determines the next state of the variable based on one or a plurality of candidates output from the sampling circuit 903. In the state determination circuit 904, for example, when a plurality of candidates are obtained from the sampling circuit 903 when the over-relaxation method is obeyed, the candidate whose correlation with the state immediately before the multi-valued memory 901 is negative is selected and the next state is selected. decide. The determined next state is stored in the multi-valued memory 901.
  • the difference calculation block 514, the sampling block 515, and the next state determination block 516 are assumed to be hardware such as FPGA, but software can be implemented by, for example, a GPU arranged in the unit.
  • a GPU arranged in the unit.
  • FIG. 10 is a diagram conceptually explaining the meaning of the preprocessing S710 in the flow of FIG. 7.
  • the solution candidates of the problem to be solved are generated in advance by a general-purpose computer, and the set of solution candidates is divided into a set partitioning / set cover problem that satisfies the conditions.
  • the set division / set cover problem is equivalent to the minimization problem (or maximization problem) of the objective function represented by the interaction model such as the Ising model, and the annealing technology for the interaction model such as quantum annealing and CMOS annealing. It is possible to solve with. This makes it possible to increase the types of problems that can be solved by the annealing technique.
  • the analysis input data 1001 includes personnel information such as the ID, qualification, and location of the candidate person in charge, and order information such as the content of the case, the place, the time limit, and the skill required for the response. It also includes evaluation parameters and the like for determining whether or not it is optimal.
  • the preprocessing unit 618 of the information processing apparatus 10 generates, for example, tabular intermediate input data 619 from the analysis input data 1001 input by the intermediate input data molding S7101 in the preprocessing S710 and stores it.
  • the candidate list 620 is generated from the intermediate input data 619 by the candidate list generation S7102.
  • FIG. 11 is an example of the candidate list 620, and is a table diagram illustrating an optimization algorithm called a column generation method. The purpose of this algorithm is to choose some from multiple candidates.
  • the candidate here is a predetermined array, and the optimum combination is selected from the set of arrays according to a predetermined condition.
  • each candidate represents "a matter in charge of one person in charge”.
  • Candidate 1 is "person in charge 1 is in charge of only case 1”
  • candidate 3 is "person in charge 2 is in charge of case 3” and the like.
  • the problem of finding the combination that minimizes the total cost among the combinations of subsets that include each element (for example, matter) of a given set is called the set partitioning problem.
  • the evaluation value c i of the candidate is the evaluation of the candidate, and the method of determining it is arbitrary.
  • the preprocessing unit 618 can combine the data of the analysis input data 1001 by a general program to automatically create a set of candidates as shown in FIG. 11 or by editing by the operator to obtain the intermediate input data 619. ..
  • the algorithm of an automatic program is the combination generation of mechanical data.
  • the candidates 1 to n since the selected candidates are combined to obtain the answer to the entire question, the candidates 1 to n, which are the parts of the entire answer, must be feasible in the first place.
  • the intermediate input data 819 has all combinations in which each person in charge is in charge of 1 to 1000 cases from 1000 cases as a candidate. However, if there is "the person in charge is in charge of matter 1 and matter 100" in the intermediate input data 619, and if each matter is as follows, one person in charge may be in charge of both matters. It's impossible. Project 1: Work in Tokyo at 10-12 o'clock on 6/25 (Thursday) Project 100: Work in Osaka at 10-12 o'clock on 6/25 (Thursday)
  • the candidate list generation S7102 generates a candidate list 620 by excluding inappropriate candidates based on the problem settings stored in the intermediate input data 619. That is, in the preprocessing S710, the candidates included in the intermediate input data 619 are selected by the conditional search by a general information processing apparatus instead of the optimization calculation. Thus, the preprocessing S710 generates a candidate group of the candidate list 620. Then, the problem data 601 of the optimization calculation is generated from the candidate list 620.
  • variable ai indicating the presence or absence of the skill of the person in charge can be compared with the variable indicating the presence or absence of the skill required for the matter 2.
  • the candidate can be selected immediately by not making the candidate including the case 2.
  • the preprocessing S710 has a problem in the data conversion S711 because the problem generation S710 in the preprocessing S710 can generate the problem data 601 from the candidate list 620 and then deal with the mixed quadratic programming problem.
  • the data 601 is further converted into the quadratic programming format problem data 602 to complete the generation of the optimization problem.
  • Equation 15 the penalty term for expressing the constraint of x 1 + x 2 ⁇ 1 is as shown in Equation 15.
  • Patent Document 3 describes that a Hamiltonian in an Ising model showing a set partitioning problem to be calculated is generated based on the acquired candidate information, but since a continuous variable is not used, only a single auxiliary variable is generated. Cannot be expressed by.
  • x i is a binary variable of "1" or "0”
  • the variable z is an auxiliary variable having a range of real numbers of 0 or more and 1 or less.
  • the penalty function Pi is combined to obtain the objective function H of Eq. 16. This is the function to be minimized.
  • the degree of freedom of the value that can be selected as the auxiliary variable z is large.
  • a real value can be selected as xi , and the range of application is wide. In the above case, "1" can be replaced with "+1" and "0" can be replaced with "-1".
  • the constant ci represents the evaluation value of each candidate.
  • the larger the ci the higher the evaluation of the candidate.
  • c i may be arbitrarily set by the user or may be set automatically. For example, the higher the number of projects in charge, the higher the evaluation value.
  • quadratic programming format problem data 602 is subjected to annealing calculation by the arithmetic unit 20 suitable for the optimization calculation as described above, and the result data 1002 is read out.
  • the solution candidates obtained by column generation are evaluated. If the overall solution candidates obtained do not meet expectations, it is possible that the quality of the answers obtained by annealing is not good, or that the evaluation value ci set for each candidate is inappropriate. Therefore, it is included in this process to determine whether the quality of the solution has reached the standard, and if not, adjust the magnitude of the penalty coefficient and the evaluation value for each candidate and recalculate. Answer 1006 is obtained from the finally obtained solution candidate 1004.
  • Whether the constraint condition of the problem is processed by the preprocessing S710 or the optimization problem is not particularly limited.
  • the part that is complicated to handle in the mixed quadratic programming problem may be processed on a case-by-case basis, such as being processed by S710.
  • each of the above configurations, functional units, processing units, processing means, etc. may be realized by hardware by designing a part or all of them by, for example, an integrated circuit.
  • each of the above configurations, functions, and the like may be realized by software by the processor interpreting and executing a program that realizes each function.
  • Information such as programs, tables, and files that realize each function can be placed in a memory, a hard disk, a recording device such as an SSD (Solid State Drive), or a recording medium such as an IC card, an SD card, or a DVD.
  • control lines and information lines are shown as necessary for explanation, and not all the control lines and information lines on the mounting are necessarily shown. For example, in practice almost all configurations may be considered interconnected.
  • the arrangement form of various functional units, various processing units, and various databases of the information processing apparatus 10 described above is only an example.
  • the arrangement form of the various function units, the various processing units, and the various databases can be changed to the optimum arrangement form from the viewpoint of the performance, processing efficiency, communication efficiency, and the like of the hardware and software included in the information processing apparatus 10.
  • the configuration of the database (schema, etc.) that stores the various data described above can be flexibly changed from the viewpoints of efficient use of resources, improvement of processing efficiency, improvement of access efficiency, improvement of search efficiency, and the like.
  • It can be used for information processing devices, arithmetic units, information processing methods, etc.
  • 10 information processing device 11 processor, 12 main storage device, 20 arithmetic device, 511 variable memory, 512 nonlinear coefficient memory, 513 linear coefficient memory, 514 difference calculation block, 515 sampling block, 516th order determination block, 600 storage unit, 601 problem data, 602 secondary plan format problem data, 603 definition area data, 604 arithmetic unit control program, 611 model conversion unit, 612 model coefficient setting unit, 613 weight setting unit, 614 variable value initialization unit, 615 temperature setting unit , 616 Interaction calculation execution unit, 617 Variable value reading unit

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Complex Calculations (AREA)

Abstract

様々な制約を持つ複雑な最適化問題を、いかにして混合二値二次計画問題で解けるようにするか、その手段を提供することを目的とする。 本発明の好ましい一側面は、演算装置と、前記演算装置を制御する計算機を備える情報処理システムである。前記計算機は、複数の制約を含む最適化問題の解候補を生成し、前記解候補から前記制約の少なくとも一部を満たす解候補を抽出し、抽出された解候補に基づいて混合整数二次計画問題を生成する前処理部と、前記混合整数二次計画問題に基づくデータを前記演算装置に入力して、演算を実行させる相互作用演算実行部と、を備える。前記演算装置は、前記混合整数二次計画問題の変数を更新する演算を行い、目的関数を最大または最小とする前記変数を解として出力するものである。

Description

情報処理システムおよび最適解探索処理方法
 本発明は、情報処理装置、演算装置、及び情報処理方法等に関し、最適解探索処理を実行する技術に関する。
 特許文献1には、「イジングモデルの1つのスピンを3以上の状態で表現する値を記憶する第1のメモリセルと、1つのスピンに相互作用を及ぼす他のスピンからの相互作用を示す相互作用係数を記憶する第2のメモリセルと、他のスピンの状態を表現する値と前記相互作用係数を定数または変数として持つ関数に基づいて、1つのスピンの次状態を決定する論理回路と、を有する単位ユニットを複数備える半導体装置」が開示される。
 特許文献2には、任意の結合を持つイジングモデルに対して、マルコフ連鎖モンテカルロ法の要求する理論的背景を満たしつつ、全スピンを同時に確率的更新して最適解探索を実現する方法について記載されている。
 特許文献3には、集合分割問題における部分集合の候補の情報である候補情報を取得する取得手段と、前記取得手段により取得された前記候補情報に基づいて、前記集合分割問題に対応するイジングモデルにおけるハミルトニアンの式を生成する生成手段と、が開示される。
特開2016-51314号公報 WO2019/216277号公報 特開2017-151810号公報
Okuyama, T., Sonobe, T., Kawarabayashi, K. I., & Yamaoka, M. (2019). Binary optimization by momentum annealing. Physical Review E, 100(1), 012111. Botev, Z. I. (2017). The normal law under linear restrictions: simulation and estimation via minimax tilting. Journal of the Royal Statistical Society: Series B (Statistical Methodology), 79(1), 125-148. Neal, R. M. (1998). Suppressing random walks in Markov chain Monte Carlo using ordered overrelaxation. In Learning in graphical models (pp. 205-228). Springer, Dordrecht.
 物理現象や社会現象の多くは相互作用モデルで表現可能である。相互作用モデルは、モデルを構成する複数のノードと、ノード間の相互作用、さらに必要であればノード毎に作用する係数で定義される。物理学や社会科学の分野においては、イジングモデルを始めとする種々のモデルが提案されているが、いずれも相互作用モデルの一形態として解釈することができる。
 この相互作用モデルに関係づけられた指標を最小化または最大化するノード状態を求めることが社会課題の解決において重要である。例えば、ソーシャルネットワークのクリークを検知する問題や、金融分野のポートフォリオ最適化問題が挙げられる。これらは、オペレーションズ・リサーチの分野では、無制約二値二次計画問題や混合二値二次計画問題に大別される。
 巡回セールスマン問題や経路探索問題などを混合二値二次計画問題として、相互作用モデルの基底状態探索問題として解く場合、このエネルギー関数は一般に、制約を表すペナルティー項など複数の項の線形和で表される。各項の重みの最適値は一般には不明であるため、重みを変化させつつ解を探索して、厳密解または良質な近似解を得る。
 最適化問題は、解きたい問題をひとたび相互作用モデルで表現できれば、短時間・省電力で計算することが可能となる。しかし、実際に世の中で求められる最適化問題では複雑な制約が課されている場合が多く、これらのペナルティー項を全て相互作用モデルで表現することは困難である。
 本発明は上述の背景に鑑みてなされたもので、様々な制約を持つ複雑な最適化問題を、いかにして混合二値二次計画問題で解けるようにするか、その手段を提供することを目的とする。
 本発明の好ましい一側面は、演算装置と、前記演算装置を制御する計算機を備える情報処理システムである。前記計算機は、複数の制約を含む最適化問題の解候補を生成し、前記解候補から前記制約の少なくとも一部を満たす解候補を抽出し、抽出された解候補に基づいて混合整数二次計画問題を生成する前処理部と、前記混合整数二次計画問題に基づくデータを前記演算装置に入力して、演算を実行させる相互作用演算実行部と、を備える。前記演算装置は、前記混合整数二次計画問題の変数を更新する演算を行い、目的関数を最大または最小とする前記変数を解として出力するものである。
 本発明のさらに好ましい一側面は、演算装置と、前記演算装置を制御する計算機を備える情報処理システムである。前記計算機は、配列の組からなる中間入力データから配列の一部を除外して候補リストを作成し、前記候補リストから混合整数二次計画問題を生成する前処理部と、前記混合整数二次計画問題に基づくデータを前記演算装置に入力して、演算を実行させる相互作用演算実行部と、を備える。前記演算装置は、前記混合整数二次計画問題の変数を更新する演算を行い、目的関数を最大または最小とする前記変数を解として出力するものである。
 本発明の好ましい他の一側面は、演算装置と、前記演算装置を制御する計算機で実行する最適解探索処理方法である。この方法は、前記計算機の前処理部が、配列の組からなる中間入力データから配列の一部を除外して候補リストを作成し、前記候補リストから二次計画形式問題データを生成する前処理ステップ、前記計算機の記憶部に、前記二次計画形式問題データと、前記二次計画形式問題データの変数の定義域である定義域データを記憶する第1のステップ、前記計算機のモデル係数設定部が、前記二次計画形式問題データに基づいて、非線形係数メモリに非線形係数Jを設定し、線形係数メモリに線形係数hの値を設定する第2のステップ、前記計算機の重み設定部が重み信号SWの値を決定する第3のステップ、前記計算機の変数値初期化部が、変数メモリに格納されている各変数の値を初期化する第4のステップ、前記計算機の相互作用演算実行部が、前記非線形係数J、前記線形係数h、前記重み信号SWを用いて、前記演算装置の状態遷移計算ブロックに前記変数の次状態の計算を実行させる第5のステップ、前記計算機の変数読出部が、前記変数メモリから各変数の値を読み出し、前記定義域データに基づいて変換を行う第6のステップ、を実行する。
 本発明によれば、様々な制約を持つ複雑な最適化問題を、混合二値二次計画問題で解けるようにすることができる。上記した以外の課題、構成および効果は、以下の発明を実施するための形態の説明により明らかにされる。
最適化問題の変数配列および目的関数値の関係を示す概念図である。 実施例の説明に供する図である。 実施例の説明に供する図である。 情報処理装置の概略的な構成を示すブロック図である。 演算回路のブロック図である。 情報処理装置が備える主な機能を示す機能ブロック図である。 最適解探索処理を説明するフローチャートである。 演算回路の詳細ブロック図である。 演算回路を構成するユニットのブロック図である。 前処理S710の意味を概念的に説明する図である。 候補リスト620の一例を示す表図である。
 以下、実施の形態を図面に基づいて詳細に説明する。尚、以下の説明において、同一の又は類似する構成に共通の符号を付して重複した説明を省略することがある。また同一あるいは同様の機能を有する要素が複数ある場合に同一の符号に異なる添字を付して説明することがある。また複数の要素を区別する必要がない場合は添字を省略して説明することがある。
 本明細書等における「第1」、「第2」、「第3」などの表記は、構成要素を識別するために付するものであり、必ずしも、数、順序、もしくはその内容を限定するものではない。また、構成要素の識別のための番号は文脈毎に用いられ、一つの文脈で用いた番号が、他の文脈で必ずしも同一の構成を示すとは限らない。また、ある番号で識別された構成要素が、他の番号で識別された構成要素の機能を兼ねることを妨げるものではない。
 以下で説明される一実施例は、混合整数二次計画問題の変数の状態を示す値を記憶する変数メモリと、前記変数メモリに対応して状態遷移計算ブロックの非線形係数を記憶する非線形係数メモリと、前記変数メモリに対応して状態遷移計算ブロックの線形係数を記憶する線形係数メモリと、状態遷移計算ブロックの重み信号を受信する重み入力線と、状態遷移計算ブロックの温度信号を受信する温度入力線と、前記状態遷移計算ブロックの重み信号と前記状態遷移計算ブロックの非線形係数と前記状態遷移計算ブロックの線形係数を用いて差分計算を計算する差分計算ブロックと、前記状態遷移計算ブロックの重み信号と前記状態遷移計算ブロックの温度信号と前記差分計算ブロックの出力値を用いて、区間制約付きの確率分布からランダムにサンプリングするサンプリングブロックと、前記サンプリングブロックの出力値と前記変数メモリから読み出した値を用いて、変数の次状態を計算する次状態計算ブロックと、を備える演算回路である。
 一般に、整数計画問題とは、整数変数を含む最適化問題をいう。また、整数値を取る変数と実数値を取る変数が混在している場合は、混合整数計画問題という。二次計画問題となる混合整数計画問題は,混合整数二次計画問題という。本明細書では、特に2値を取る変数と実数値を取る変数が混在している混合整数二次計画問題を、混合二値二次計画問題と呼ぶことにする。まず、混合二値二次計画問題の意義を説明する。
 解きたい最適化問題によっては2値変数と連続変数が混合することがある。例えば、金融分野の問題において、金融商品の購入比率は0%、もしくは10%~100%ということがある。購入しないならば当然0%で、購入するならば最低単位の10%以上とする場合などである。このとき、購入するかしないかを示す2値変数x∈{-1,1}と連続変数y∈[-1,1]を用いて、購入比率rは、
r={(1+x)/2} × {0.1+0.9×(1+y))/2}
とすることで表現できる。
 連続変数yを複数の2値変数で離散的に表現することも可能だが、連続変数を扱えるようにすることで変数の個数が1個で済む。よって、連続変数を計算機システムで扱えるようにすることで、最適化問題の変数の個数を減らせて、計算機資源で扱える問題規模を大きくすることができる。また、ある問題を解くとき、変数の個数が減るため計算時間を短くすることが期待できる。
 一方、問題を連続変数のみで扱うことも可能だが、連続変数では、-1または+1しか値として認めたくない変数に対しても0.3などの値も許してしまうことになる。この場合、「変数xは-1または+1である」という制約をたとえばペナルティー関数(x-1)として目的関数に足せば、変数xを連続変数として扱うことも可能であるが、これでは二次式にならなくなる。また、目的関数が複雑になって最適解を見つけづらいなどの課題がある。よって、二次計画問題を作る際に最初から所定の変数の定義域を2値あるいは離散値とし、計算機で取り扱えるようにする構成のメリットがある。本明細書では以降、最適化問題とのみ称する場合は、混合二値二次計画問題を表すものとする。
 最適化問題(ここでは混合二値二次計画問題の意)の変数はs、…、sのN個存在する。そして各変数の定義域Dは2値{-1、+1}または連続値[-1、+1]のいずれかである。どちらであるかは問題毎に決定される。そして、最適化問題の目的関数Hは次式1で表される。すなわち、目的関数Hが変数sの2次式で表される。
Figure JPOXMLDOC01-appb-M000001
 式1において、s=[s、…、s]のN次元ベクトル、JはN×N対称行列、hはN次元ベクトルである。前述の通り、変数毎に定義域が異なるので、混合二値二次計画問題は次式2の通り表せる。
Figure JPOXMLDOC01-appb-M000002
 ここで、添字の集合Λ、Λを式3の通り定義する。
Figure JPOXMLDOC01-appb-M000003
 集合Smixed={s | s ∈ D}を定義する。これらの表記を用いると、式2は次式4とも表現できる。
Figure JPOXMLDOC01-appb-M000004
 以降、すべてのi∈Λに対して行列Jのi行i列目の要素は0とする。なぜならば、この変換は式2の最適解を変えないためである。
 もしD={-1、+1}ならば、この最適化問題はイジングモデルの基底状態探索問題と呼ばれる組合せ最適化問題である。本実施形態では、イジングモデルの基底状態探索も含む最適化問題において、マルコフ連鎖モンテカルロ法(以降、MCMC(Markov Chain Monte Carlo methods)と称する)を活用したアルゴリズムで最適解もしくは近似解を探索する。
 図1は変数配列に対する目的関数値のランドスケープを表す概念図である。グラフの横軸は変数配列s、縦軸は目的関数H(s)である。MCMCは現在の状態sから、状態sの近傍のある状態s’への確率的な遷移を繰り返す。状態sから状態s’に遷移する確率を、遷移確率P(s,s’)と称する。遷移確率Pの例としてメトロポリス法(Metropolis method)や熱浴法(heat-bath algorithm)が挙げられる。
 遷移確率は温度と呼ばれるパラメータを有し、これは状態間の遷移のし易さを表す。温度を大きな値から徐々に減少させつつMCMCを実行するとき、目的関数値が最も低い状態に漸近的に収束する。これを利用して最小化問題の最適解または近似解を求める手法が、シミュレーティッド・アニーリング(以下、SA(Simulated Annealing)と称する)や非特許文献1で提案されたモメンタム・アニーリング(以下、MA(Momentum Annealing)と称する)である。
 式4に示す最小化問題を解くにあたり、代わりに次式5の最小化問題を解くことを考える。ただし集合Srelaxed={s | si ∈ [-1、+1]}である。
Figure JPOXMLDOC01-appb-M000005
 式5の最適解をs=[s 、…、s ]と表す。証明は割愛するが、次式6で求まるs=[s 、…、s ]は式4の最適解の一つとなる。本出願で示す実施例の目標は式2の最適解探索であるが、式5の最適解sを求解後に式6の変換を得ても、所望の解sを得られるということである。ただし、関数sgnは引数が0以上ならば+1、それ以外ならば-1を返す関数である。
Figure JPOXMLDOC01-appb-M000006
 ここで、N次元ベクトルv=[v、…、v]を導入して、式7に示す関数H’を定義する。
Figure JPOXMLDOC01-appb-M000007
 ただし、関数V(v)は式8に記す定義の通りである。
Figure JPOXMLDOC01-appb-M000008
 行列W=diag(w、…、w)は任意の対角行列で、viは[-1、+1]を動く実数である。式5に示す最小化問題の代わりにH’(s、v) の最小化問題である式9を導入する。
Figure JPOXMLDOC01-appb-M000009
 2つのN次元ベクトルx=s+v、y=s-vを定義する。本来解きたい最適化問題の目的関数はHのみだが、ここにVという関数を導入することで、MCMCで並列更新可能な関数を新たに得られるようにしている。すると、関数H’は式10と書き直せる。
Figure JPOXMLDOC01-appb-M000010
 つまり、式5の最小化問題は式11の最小化問題と言い換えられる(最大化問題としてあつかってもよい)。
Figure JPOXMLDOC01-appb-M000011
 式11の最適解をx、yと表すと、s=(x+y)/2なる等式が成り立つ。これらの議論はWが零行列でも成り立つ。
 以上より、式2で表す混合二値二次計画問題の最適解は、式11に示す制約付き二次計画問題の解から求められる。この解を求めるために、MCMCを活用する。
 図2は、式11における目的関数Gの各変数どうしの関係を示したグラフィカルモデルである。関数Gの各変数どうしの関係は、完全2部グラフで表すことができる。関数G内で変数xに乗ぜられる変数は、y、…、yとxのみである。MCMCは変数値を確率的に更新するとき、その変数に係わる変数の値を用いる。つまり、変数xの値を更新するときy、…、yおよびxを求め、それ以外の変数(ここではx、…、x)を参照しない。これは他の変数、例えばxの値の更新でも同様である。ゆえに、変数配列yの値が一定ならば、配列xのそれぞれの値を独立に同時に確率的更新してもMCMCの理論的要請は破らない。
 同様に変数yに乗ぜられる変数も、x、…、xとyのみである。ゆえに、変数配列xの値が一定の下で、配列yのそれぞれの値を独立に同時に確率的更新できる。
 以上より、「x、…、xの同時更新」と「y、…、yの同時更新」を繰り返す手続きで構成されたMCMCを実行することで、並列化による高速化という利点を享受しながら関数Gを最小化する配列x、yを探索できる。
 本実施例の議論では、行列Jに制約を設けていないことに注意されたい。たとえば行列Jの全要素が非零である場合にも、上記の議論が成り立つため、並列更新が可能である。
 図3は、全結合グラフの例である。一方で、原問題である式2の最小化問題に対して直接、MCMCを適用する場合、変数配列sの係わり方が図3に示すように全結合グラフで表現されるため一度に一変数しか確率更新できず、逐次更新に限定される。
 ここからは、各変数に対する確率的更新の手続きを述べる。更新対象の変数をxとする。変数y、…、yの値が一定下では、温度Tのボルツマン分布における変数xの存在確率p(x)は式12を満たす。
Figure JPOXMLDOC01-appb-M000012
 ただし、変数Aiは式13で求める値である。
Figure JPOXMLDOC01-appb-M000013
 変数xとyは|x|+|y|≦2であるため、xの動ける範囲は-(2-|y|)以上(2-|y|)以下である。よって、変数xは平均Ai/wi、分散T/wiの正規分布で-(2-|y|)以上(2-|y|)以下を定義域とする切断正規分布を基に、xの次状態をサンプリングすれば良い。この方法ではxの現在の状態には依らずに次状態を決めるということである。yについても同様である。本明細書では、xとyの変数を区別しない場合sと表記することがある。
 標準正規分布に従う乱数はBox-Muller法で生成可能である。ここでは定義域が限定されるため、非特許文献2で示されたアルゴリズムを用いればよい。
 最適解探索は、温度0における平衡状態からのサンプリングと見なせる。そのため、良質な解探索の実現には、平衡状態への短時間での収束が好ましい。平衡状態への収束性を高めるため、MCMCでは様々な技術が提案されており、これらを活用も可能である。たとえば、非特許文献3は過剰緩和法を提案している。これは次状態の候補として、温度Tのボルツマン分布から1つだけではなく、K個の状態をサンプリングする。そして計(K+1)個の状態を並び替えてx ≦…≦x r=x≦x と表す。つまり、現在の状態は(K+1)個の値のうち、小さい方から(r+1)番目ということである。そしてx K+1-rを次状態に採用する。この方法では、次状態がxの現在の状態に依存する。
 以上を踏まえて、図4~図6で本発明を実現する情報処理装置の構成を示す。
 図4は、混合二値二次計画問題の最適解を探索する情報処理装置の一例である。同図に示すように、この情報処理装置10は、プロセッサ11、主記憶装置12、補助記憶装置13、入力装置14、出力装置15、通信装置16、一つ以上の演算装置20、及びこれらの装置を通信可能に接続するシステムバス5を備える。情報処理装置10は、例えば、その一部又は全部がクラウドシステム(Cloud System)により提供されるクラウドサーバ(Cloud Server)のような仮想的な情報処理資源を用いて実現されるものであってもよい。また情報処理装置10は、例えば、互いに協調して動作する、通信可能に接続された複数の情報処理装置によって実現されるものであってもよい。
 プロセッサ11は、例えば、CPU(Central Processing Unit)やMPU(Micro Processing Unit)を用いて構成されている。主記憶装置12は、プログラムやデータを記憶する装置であり、例えば、ROM(Read Only Memory)、SRAM(Static Random Access Memory)、NVRAM(Non Volatile RAM)、マスクROM(Mask Read Only Memory)、PROM(Programmable ROM)等)、RAM(Random Access Memory)(DRAM(Dynamic Random Access Memory)等)等である。補助記憶装置13は、ハードディスクドライブ(Hard Disk Drive)、フラッシュメモリ(Flash Memory)、SSD(Solid State Drive)、光学式記憶装置(CD(Compact Disc)、DVD(Digital Versatile Disc)等)等である。補助記憶装置13に格納されているプログラムやデータは、随時、主記憶装置12に読み込まれる。
 入力装置14は、ユーザから情報の入力を受け付けるユーザインタフェースであり、例えば、キーボード、マウス、カードリーダ、タッチパネル等である。出力装置15は、ユーザに情報を提供するユーザインタフェースであり、例えば、各種情報を可視化する表示装置(LCD(Liquid Crystal Display)、グラフィックカード等)や音声出力装置(スピーカ)、印字装置等である。通信装置16は、他の装置と通信する通信インタフェースであり、例えば、NIC(Network Interface Card)、無線通信モジュール、USB(Universal Serial Interface)モジュール、シリアル通信モジュール等である。
 演算装置20は、混合二値二次計画問題の最適解探索に関する処理を実行する装置である。演算装置20は、例えば、GPU(Graphics Processing Unit)のように、情報処理装置10に装着する拡張カードの形態を取るものであってもよい。演算装置20は、例えば、CMOS(Complementary Metal Oxide Semiconductor)回路、FPGA(Field Programmable Gate Array)、ASIC(Application Specific Integrated Circuit)等のハードウェアによって構成される。演算装置20は、制御装置、記憶装置、システムバス5に接続するためのインタフェース等を含み、システムバス5を介してプロセッサ11との間でコマンドや情報の送受を行う。演算装置20は、例えば、通信線を介して他の演算装置20と通信可能に接続され、他の演算装置20と協調して動作するものであってもよい。演算装置20により実現される機能を、例えば、プロセッサ(CPU、GPU等)にプログラムを実行させることにより実現してもよい。
 図4に示される演算装置20は、後に図5で説明される。演算装置20は、一つもしくは複数を実装することができる。
 図5は、演算装置20の動作原理を説明する図であり、演算装置20を構成する回路(以下、演算回路500と称する。)のブロック図である。演算回路500は変数配列x、…、xまたは変数配列y、…、yを温度Tにおけるボルツマン分布(式12)からサンプリングする機能を実現する。以下、同図とともに演算装置20の動作原理について説明する。
 同図に示すように、演算回路500は、変数メモリ511、非線形係数メモリ512、線形係数メモリ513、差分計算ブロック514、サンプリングブロック515、及び次状態決定ブロック516を含む。
 各演算回路500の変数メモリ511には、前述した変数x、…、xN及びy1、…、yを示す情報が格納される(図2参照)。
 非線形係数メモリ512には、行列Jを表す情報が格納される。行列Jは一般に対称行列であり、この対称性を用いて非線形係数メモリ512の使用量を削減することができる。線形係数メモリ513には、ベクトルhを表す情報が格納される。
 同図に示すように、演算回路500には、制御信号EN、重み信号SW、及び温度信号TEが入力される。
 信号ENは、H(high)とL(low)の値を周期的に繰り返す信号で、変数配列xとyいずれを更新しているかを表す。たとえば、ENがHのときは変数配列xを更新、Lのときはyを更新と定める。この信号ENにより、変数x、…、xを同時に更新し、また変数y、…、yを同時に更新する。図5では簡略化のため信号ENはサンプリングブロック515のみに入力しているが、変数メモリなど本信号を必要とする他の箇所に対しても同様に印加する。
 信号SWは、対角行列Wの対角成分を表すN要素のベクトルを表す信号である。
 差分計算ブロック514には、非線形係数メモリ512に格納されている行列Jの値、線形係数メモリ513に格納されているベクトルh、信号SW、および変数メモリ511に格納されている変数s(xまたはy)が入力される。差分計算ブロック514は、信号ENがHのとき(J+diag(w、・・・、w))y+h、ENがLのとき(J+diag(w、・・・、w))x+hを出力する。この出力値は前述のAに相当する。
 サンプリングブロック515は、差分計算ブロック514の出力と信号SW、温度パラメータの値を保持する信号TW、信号EN、および他の変数の値を受けとる。そしてi番目の要素として、信号ENがHのとき-(2-|y|)以上(2-|y|)以下、ENがLのとき-(2-|x|)以上(2-|x|)以下を定義域とする、式12で表される切断正規分布からランダムにサンプリングして出力する。
 次状態決定ブロック516は、サンプリングブロック515から出力される一つないしは複数の値を基に、変数の次状態を決定する。もし、MCMCの更新則として単なる熱浴法に定めたならば、次状態決定ブロック516はサンプリングブロック515の出力値を1つだけ受け取り、それをそのまま変数メモリ511に書き込めばよい。また、MCMCの更新則として公知の過剰緩和法を用いるならば、次状態決定ブロック516はサンプリングブロック515から複数の値、そして変数メモリ511から更新対象の変数の現在値を受け取り、過剰緩和法に従って1つ選択して、変数メモリ511に書き込む。周知のように、過剰緩和法では,直前の状態との相関が負となるように次の状態を決める。
 図6に情報処理装置10が備える主な機能(ソフトウェア構成)を示している。同図に示すように、情報処理装置10は、記憶部600、モデル変換部611、モデル係数設定部612、重み設定部613、変数値初期化部614、温度設定部615、相互作用演算実行部616、及び変数値読出部617、前処理部618を備える。これらの機能は、プロセッサ11が、主記憶装置12に格納されているプログラムを読み出して実行することにより、もしくは、演算装置20が備えるハードウェアにより実現される。尚、情報処理装置10は、上記の機能に加えて、例えば、オペレーティングシステム、ファイルシステム、デバイスドライバ、DBMS(DataBase Management System)等の他の機能を備えていてもよい。
 上記機能のうち記憶部600は、問題データ601、二次計画形式問題データ602、定義域データ603、及び演算装置制御プログラム604、中間入力データ619、候補リスト620を、主記憶装置12又は補助記憶装置13に記憶する。
 問題データ601は、例えば、最適化問題等を公知の所定の記述形式で記述したデータである。本実施例では、問題データ601は前処理部618にて、後述の候補リスト620から作成される。例えば、ユーザがユーザインタフェース(入力装置、出力装置、通信装置等)を介して入力した分析入力データは、前処理部618によって候補の組み合わせからなる中間入力データ619に変換される。分析入力データは、例えば人事データや受注データ等の分析対象としたいデータである。人事データは例えば、担当者ID、勤務地、資格、職域などのデータである。受注データは例えば、製品・サービス内容、場所、納期など受注に関するデータである。これらは一例であって、最適化問題の材料として扱えるデータであれば、これに限る必要はない。
 中間入力データ619は、分析入力データから生成される。上記の例では、例えばどの担当者がどの受注を担当するかを表現する候補の配列の組み合わせを含む。
 公知のように列生成法では、解を限定された部分解の重ね合わせで表現した定式で構成する。前処理部618はさらに、中間入力データ619から制約条件を満たさない所定の候補を除去して候補リスト620を生成する。このような前処理により、複雑な制約を相互作用モデルで表現する必要がなくなる。前処理部618は候補リスト620から、問題データ601を生成する。
 二次計画形式問題データ602は、モデル変換部611が、問題データ601を式4が示す二次計画問題のフォーマットに合致する形式のデータに変換することにより生成されるデータである。この変換にあたり、与えられた各変数の定義域は、定義域データ603に書き込まれる。定義域データは、例えば各変数が2値を取るか実数値を取るかを示している。演算装置制御プログラム604は、相互作用演算実行部616が演算装置20を制御する際に実行する、もしくは相互作用演算実行部616が個々の演算装置20にロードして演算装置20に実行させるプログラムである。
 以上のように、モデル変換部611は、問題データ601を二次計画問題のフォーマットである二次計画形式問題データ602に変換する。このために、式1から式11を導出する機能を、ソフトウェアあるいはハードウェアとしてモデル変換部611に実装しておけばよい。モデル変換部611の機能は必ずしも情報処理装置10に実装されていなくてもよく、情報処理装置10が、他の情報処理装置等で生成された二次計画形式問題データ602を入力装置14や通信装置16を介して取り込むようにしてもよい。
 モデル係数設定部612は、二次計画形式問題データ602に基づく、式11の行列Jを非線形係数メモリ512に、ベクトルhを線形係数メモリ513に設定する。
 変数値初期化部614は、演算装置20の変数メモリ511に格納されている各変数の値を初期化する。変数値初期化部614は、例えば、各変数の値を-1以上+1以下から一様に、ランダムサンプリングして決めればよい。この際に、変数に関する制約である|x|+|y|≦2を満たすよう注意しなければならない。また、このときの各変数の値は連続値で扱われていることに留意されたい。
 温度設定部615は、相互作用演算実行部616が最適解探索を行う際に用いる温度Tを設定する。
 相互作用演算実行部616は、温度設定部615により設定された温度Tごとに、式11で表す関数Gを最小化する変数配列xおよびyを探索する演算(以下、相互作用演算と称する。)を演算装置20に実行させる。相互作用演算に際し、相互作用演算実行部616は、例えば、温度Tを高いほうから低いほうに向けて変化させる。
 変数値読出部617は、相互作用演算実行部616による最適解探索が終了すると、変数メモリ511に格納されている変数配列xおよびyを読み出す。ここで読み出される値は、式11の解である。上述の議論に従って、N次元ベクトルs=(x+y)/2を計算する。そして定義域データ603を読み出し、式6で得られるベクトルsを最終的な解として出力装置15や通信装置16に出力する。つまり、定義域データ603にてi番目の定義域が{-1、+1}と判明すればsgn(s )、i番目の定義域が[-1、+1]ならばs自体を出力するということである。このようにして、定義された値域に応じた解が求められる。
 図7は、最適解探索に際し情報処理装置10が行う処理(以下、最適解探索処理S700と称する。)を説明するフローチャートである。以下、同図とともに最適解探索処理S700について説明する。尚、以下において、符号の前に付している「S」の文字は処理ステップの意味である。最適解探索処理S700は、例えば、入力装置14を介してユーザからの指示等を受け付けることにより開始される。
 図7に示すように、最初に前処理部618が分析入力データから中間入力データ619を生成し、中間入力データ619から候補リスト620を生成し、候補リスト620から問題データ601を生成する(S710)。
 次にモデル変換部611が、問題データ601を二次計画形式問題データ602に変換する(S711)。二次計画形式問題データは、たとえば式1で表現される関数Hにおける行列J、ベクトルhを任意の形式で表現する。記憶部600が既に二次計画形式問題データ602を記憶している場合は当該処理S711を省略する。S711の処理と、S712以降の処理とは、夫々を異なる装置で実行するようにしてもよい。またS711の処理と、S712以降の処理とを異なるタイミングで実行するようにしてもよい(例えば、S711の処理を事前に行っておくことが考えられる。)。
 続いて、モデル係数設定部612が、非線形係数メモリ512および線形係数メモリ513に行列Jとベクトルhの値を設定する(S712)。メモリの値は、ユーザインタフェース(例えば、入力装置14、出力装置15、通信装置16等により実現される。)を介してユーザが設定又は編集することもできる。
 続いて、重み設定部613が信号SWの値を決定する。前述の式8の説明通り、最適解を探索する上で信号SWは任意の値を取ることが許される。そのため、信号値は常に0としても良い。この場合は計算の負荷を軽減することができる。また、特許文献2の式3~式5に示すように行列Jの固有値から決定しても良い。あるいは、行列Jの行和から決定しても良い。信号SWの値算出の計算は、演算装置20内またはプロセッサ11で実行してもよい。あるいはユーザが自分で設定してもよい(S713)。
 続いて、変数値初期化部614が、変数メモリ511に格納されている各変数の値を初期化する(S714)。変数メモリ511に格納する値は連続値である。先に述べたように初期値はランダムでよい。以上で、式11を表現するパラメータが設定されたことになる。
 続いて、温度設定部615が、最適解探索にて使用する温度パラメータの系列T(k=1,2,3、・・・)を設定する(S715)。尚、上記の添字kは設定される温度Tの種類を表す。温度Tの設定方法については、たとえば特許文献1の方法を採用可能である。
 続いて、相互作用演算実行部616が、図5に示す演算回路500の演算により、変数配列の確率的な同時更新を実行する(S716)。
 続いて、相互作用演算実行部616は、停止条件が成立したか否か(例えば、温度Tが予め設定された最低温度に達したか否か)を判定する(S717)。停止条件が成立したと相互作用演算実行部616が判定した場合(S717:YES)、処理はS718に進む。一方、停止条件が成立しないと相互作用演算実行部616が判定した場合(S717:NO)、処理はS716に戻る。
 S718では、変数値読出部617が、変数メモリ511に格納されている変数の値と定義域データ603に格納されている二次計画形式問題データ602の各変数の定義域を読みだす。そして、式6に基づいた変換を通じたベクトルを算出して、式2もしくは式4の解として出力する。以上で最適解探索処理S700は終了する。
 以上、詳細に説明したように、本実施形態の情報処理装置10によれば、混合二値二次計画問題の最適解探索を効率よく行うことができる。そのため、最適化問題を効率よく解くことができる。尚、情報処理装置10(演算装置20を含む)は、シンプルな構成であるので安価かつ容易に製造することができる。
 演算回路500は、既に述べた最適化問題を解く計算を実行する機能を備える限り、ソフトウェアで構成してもよいし、ハードウェアで構成してもよい。具体的には、アニーリング方式において電子回路(デジタル回路など)で実装するハードウェアだけでなく、超伝導回路などで実装する方式でもよい。また、アニーリング方式以外にてイジングモデルを実現するハードウェアでもよい。例えばレーザーネットワーク方式(光パラメトリック発振)、量子ニューラルネットワークなどが知られている。また、一部の考え方が異なるものの、イジングモデルで行う計算をアダマールゲート、回転ゲート、制御NOTゲートといったゲートで置き換えた量子ゲート方式も、本実施例の構成として採用することができる。
 演算回路500の具体的な実装例として、特許文献1で説明されているCMOS(Complementary Metal-Oxide Semiconductor)集積回路や、FPGA(Field Programmable Gate Array)上の論理回路として実装する例を説明する。
 特許文献1の技術では、SRAM(Static Random Access Memory)の技術を適用したユニットをアレイ状に配置し、各ユニットに変数を格納するメモリと変数を更新するための回路を配置する。
 図8は、SRAMの技術を本実施例の演算回路500に適用した場合の回路構成例を示すブロック図である。複数のユニット801がアレイユニット802を構成している。このような構成は半導体製造技術を応用して製造可能である。
 一つのユニット801には、一つの変数x、…、xN及びy1、…、yのいずれかを記憶する多値メモリ901と、多値メモリ901の値を更新するための構成が含まれる。すなわち、ユニット801は2N個準備される。
 図8の構成例を、一般化されている図5の構成も参照しつつ説明する。非線形係数メモリ512と線形係数メモリ513に格納されるデータは、モデル係数設定部612から設定される。非線形係数メモリ512には、N×N行列Jが格納されるが、これは全てのユニット801で共通に用いられる。また、線形係数メモリ513にはN次元ベクトルhが格納されるが、これは全てのユニット801で共通に用いられる。回路規模を縮小するために、これらのメモリは各ユニット801共通のものとした。よって、非線形係数メモリ512と線形係数メモリ513は、全てのユニット801に係数Jとhを供給するが、図8ではそのための信号線は省略している。なお、原理的には非線形係数メモリ512と線形係数メモリ513を、各ユニット801が個々に備えてもよい。
 重みメモリ803には対角行列Wの対角成分を表すN要素のベクトル(w、…、w)が格納される。このデータは重み設定部613で設定されたものである。x、yを記憶するi番目のユニットは、i番目の成分wを使用するので、ユニット801毎に信号SWの値を切り替える必要がある。図8ではユニット801に信号SWを供給する信号線は省略している。
 温度設定部615から供給される温度信号TEは、全てのユニット801に供給される。温度信号の機能や構成は、従来技術を踏襲するものである。ユニット801に信号TEを供給する信号線は省略している。
 相互作用ドライバ804は、変数xの更新を許可する信号と、変数yの更新を許可する信号を交互に各ユニット801に入力する。これにより、変数x~xが同時に更新され、変数y~yが同時に更新される。
 SRAMインタフェース805は、SRAMの回路構成を応用して作成されたユニット801の変数を格納するメモリに対して書き込みおよび読み出しを行う。演算回路500での処理終了後に読み出された変数は、変数値読出部617に送られる。変数値読出部617は、定義域データ603に基づいて、読み出した変数を連続値あるいは2値として出力することにより、混合二値二次計画問題の解を得る。
 コントローラ806は、相互作用演算実行部616の指示により、演算回路500の初期化や処理の終了報告を行う。
 図9は、一つのユニット801の回路構成例を示す図である。一つのユニットには、連続変数x、…、xN及びy1、…、yのいずれか一つを記憶する多値メモリ901が含まれる。
 差分計算回路902は、差分計算ブロック514の機能を実現する。差分計算回路902には、多値メモリ901の記憶する変数がx、…、xのいずれかの場合には、(y、…、y)のベクトルが入力される。また多値メモリ901の記憶する変数がy、…、yのいずれかの場合には、(x、…、x)のベクトルが入力される。これらの変数ベクトルは、他のユニット801の多値メモリ901からSRAMインタフェース805が読み出して生成する。また、係数であるN×N行列JとN次元ベクトルhが入力される。また、重みwが入力される。差分計算回路902は、これらの入力に対して(J+diag(w、・・・、w))s+h(sはxまたはyの変数ベクトル)のi行目の値Aを出力することになる。
 サンプリング回路903は、サンプリングブロック515の機能を実現する。サンプリング回路903には、出力A、信号EN、信号SW、信号TE、および、多値メモリ901の記憶する変数がxの場合はyが、多値メモリ901の記憶する変数がyの場合はxが入力される。そして、式12に基いて変数sの存在確率p(s)から変数の次状態の候補をサンプリングする。
 状態決定回路904は、サンプリング回路903から出力される一つないしは複数の候補に基づいて、変数の次状態を決定する。状態決定回路904では、たとえば、過剰緩和法に従う場合には、サンプリング回路903から複数の候補を得ると、多値メモリ901の直前の状態との相関が負となる候補を選択して次状態を決定する。決定された次状態は多値メモリ901に格納される。
 以上では、差分計算ブロック514、サンプリングブロック515、次状態決定ブロック516は、FPGA等のハードウェアを想定したが、例えばユニット内に配置したGPUによりソフトウェア実装が可能である。このようにアレイ状のユニット801を備えることにより、並列的な変数の更新が可能となる。
 図10は、図7のフローにおける前処理S710の意味を概念的に説明する図である。最適化問題では、制約条件が複雑化してくる場合、相互作用モデルで全制約を表現することが困難になってくる。そこで、解きたい問題の解候補を事前に汎用計算機で生成し、解候補の集合から条件を満たす集合分割・集合被覆問題に分割する。集合分割・集合被覆問題はイジングモデルを始めとする相互作用モデルで表される目的関数の最小化問題(もしくは最大化問題)と等価であり、量子アニーリングやCMOSアニーリングをなど相互作用モデルに対するアニーリング技術で解くことが可能である。これにより、アニーリング技術で解ける問題の種類を増やすことが可能となる。
 本実施例では、どの担当者がどの案件を処理するかの業務計画を最適化する例で説明する。図10において、分析入力データ1001は、候補となる担当者のID、資格、所在地などの人事情報、案件の内容、場所、制限時間、対応に必要なスキルなどの受注情報を含む。また、最適かどうかを判定するための評価パラメータ等を含む。
 情報処理装置10の前処理部618は、前処理S710において、中間入力データ成形S7101により、入力された分析入力データ1001から、例えば表形式の中間入力データ619を生成して保存する。
 前処理部618による前処理S710において、候補リスト生成S7102により、中間入力データ619から候補リスト620が生成される。
 図11は、候補リスト620の一例であり、列生成法と呼ばれる最適化アルゴリズムを説明する表図である。このアルゴリズムの目的は、複数の候補から何個かを選ぶことである。ここで候補となっているのは所定の配列であり、配列の集合から所定の条件により最適な組み合わせを選択する。
 図11の例では、各候補が「一人の担当者の担当案件」を表している。候補1は「担当者1が案件1のみを担当」、候補3は「担当者2が案件3を担当」などである。与えられた集合の各要素(例えば案件)を1つずつ含む部分集合の組み合わせの中で、コストの総和が最小となる組み合わせを求める問題を、集合分割問題という。
 変数xはその候補を選ぶかどうかを表す変数である。たとえばx=1ならば候補1を採用するということになる。x=0ならば候補1を採用しないということになる。スキルの有無aは、その候補の担当者がスキルあるいは資格を有しているかどうかを示すパラメータである。たとえばa=1ならばスキルあり、a=0ならばスキルなしのように表現される。候補の評価値ciはその候補の評価であり、定め方は任意である。
 前処理部618は、一般的なプログラムにより分析入力データ1001のデータを組み合わせて、図11のような候補の集合を自動的にあるいはオペレータの編集によって作成し、中間入力データ619とすることができる。自動的なプログラムのアルゴリズムは機械的なデータの組み合わせ生成である。ただし、列生成法では選択した候補を組み合わせて、問題全体の答えとするため、全体の答えのパーツとなる候補1~nがそもそも実行可能でなければならない。
 例えば、中間入力データ819は、各担当者が1000個の案件から1~1000個の案件を担当するあらゆる組み合わせを候補として持つとする。しかし、中間入力データ619のなかに、「担当者が案件1と案件100を担当」があった場合、もしそれぞれの案件が以下の通りならば、一人の担当者が両案件を担当することは不可能である。
  案件1:6/25(木) 10-12時に東京で作業
  案件100:6/25(木) 10-12時に大阪で作業
 そこで、実行可能な候補案を生成するため、候補リスト生成S7102では、中間入力データ619に蓄えられた問題設定に基づいて、不適切な候補を除外して候補リスト620を生成する。すなわち、前処理S710では、最適化計算ではなく、一般的な情報処理装置による条件検索により、中間入力データ619に含まれる候補の選別を行う。かくして、前処理S710は候補リスト620の候補群を生成する。そして、候補リスト620から最適化計算の問題データ601を生成する。
 上記は「案件1を担当する者は案件100を担当できない」という単純な例であるが、例えば、「案件1と案件2を担当する者は、案件40と案件41と案件43を担当できない」など、さらに複雑な制約は多々考えられる。このような条件による候補の選別は、汎用計算機の通常のソフトウェアで処理する方が単純であり、逆に相互作用モデル等を用いた最適化計算の中の制約として扱うことは煩雑である。
 また、たとえば、「案件2の巡回にはスキルが必要」という制約条件については、担当者のスキルの有無を示す変数aと、案件2に要求されるスキルの有無を示す変数を比較すれば、スキルを持たない担当者には、案件2を含む候補を作らないことで、直ちに候補を選別することができる。
 本実施例では、前処理S710は、前処理S710の問題生成S7103で、候補リスト620から問題データ601を生成した後、混合二値二次計画問題に対応可能とするため、データ変換S711で問題データ601をさらに二次計画形式問題データ602に変換して最適化問題の生成を完了する。
 問題データ601で与えられる制約条件は任意に設定できる。たとえば、一人の担当者は候補を択一的に実行するものとし、複数の候補を割り当てることは不可能であるとする。この条件を満たすためには、例えば担当者1に関しては、候補1か候補2のうちの一つのみを選択するようにしなければならない。選択の場合x=1なので、このために与えられる制約は、
  x+x=1
  なる等式制約で表現される。
  また例えば作業員2に関しては、候補3~候補5のうちの一つのみを選択するようにしなければならない。このために与えられる等式制約は、
  x+x+x=1
である。
 このような作業員2に関する等式制約の制約項Pをペナルティー法で表現すると、
Figure JPOXMLDOC01-appb-M000014
になる。
 また、各作業員が場合により担当を行わなくてもよいとすれば、たとえば、図11で「作業員1は選べる候補が最大一つ」という条件になる。この場合、以下のパターンが考えられる。
・候補1, 2いずれか1つが選ばれる
・候補1, 2いずれも選ばれない
これを数式で表現すると
  x+x≦1
になる。
このような不等式制約の制約Pをペナルティー法で表現するため、0から1の間を動く連続変数zを導入してペナルティー項を作成する。
 たとえば、x+x≦1の制約を表現する際のペナルティー項は、式15のようになる。
Figure JPOXMLDOC01-appb-M000015
 上記の説明では「0から1の間を動く連続変数z」と述べた。x+x≦1の場合は「0または1の2値変数z」としても成り立つ。しかし、候補数が増えた場合には連続変数を使用する必要がある。
 たとえば、候補1から候補100のうちから最大20候補選べる場合、選択される候補数を最適化するため、
+x+x+…x100≦20
を表現しなければならない。この場合には、単一の2値変数zだけでは、この不等式を表現するペナルティー関数Pが作れない。そのため、連続変数zを導入することにより、
=(x+x+x+…x100-20z)
というように、単一の補助変数のみで表現することが可能になる。特許文献3には、取得された候補情報に基づいて、計算対象の集合分割問題を示すイジングモデルにおけるハミルトニアンを生成することが記載されるが、連続変数を利用しないため、単一の補助変数のみで表現することができない。
 以上のように、xは“1”または“0”の二値変数、変数zは0以上1以下の実数を範囲にとる補助変数とする。ペナルティー関数Pを組み合わせて、式16の目的関数Hを得る。これが最小化すべき関数となる。本実施例では混合二値二次最適化問題を扱うことが可能である。そのため、補助変数zとして選択できる値の自由度が大きい。また、xとして実数値を選択することもでき、適用範囲が広い。なお、上記で場合により“1”は“+1”に、“0”は“-1”に置き換えることが可能である。
Figure JPOXMLDOC01-appb-M000016
 なお、図11において定数cは各候補の評価値を表し、この例ではcが大きいほど候補の評価が高い。cはユーザが任意に設定してよいし、自動的に設定してもよい。例えば担当案件の個数が多い候補ほど評価値を高くするなどである。
 図10に戻ると、二次計画形式問題データ602は、既に述べたように最適化演算に適した演算装置20によってアニーリング計算が行われ、結果データ1002が読み出される。
 後処理S1003は、アニーリングで得た答えを列生成の答えとして妥当なものに変換する。例えば、候補3~5のうち1つだけ選択するのが適切なため、式14のペナルティー関数を加えたものの、アニーリングで得られた解は確率的に得られるためこの制約を破っている可能性がある。このときに、強制的にx+x+x=1となるよう解を調整する。これにより、解候補1004を得る。
 解の評価・選定処理S1005では、列生成で得た解候補を評価する。もし得られた全体の解候補が期待にそぐわない場合、アニーリングで得られた答えの品質が良くない、候補毎の定めた評価値cの設定が不適切などの理由が考えられる。そこで、そもそも解の品質は基準に達しているのか、もし達していないならばペナルティー係数の大きさや候補毎の評価値を調整して再計算するなどを判定することをこの処理の中に含める。最終的に得られた解候補1004から、答え1006を得る。
 問題の制約条件を前処理S710で処理するか、最適化問題の中で処理するかは、特に限定されない。例えば、混合二値二次計画問題内で扱うのが煩雑な部分は、S710で処理するなど、ケースバイケースで考えてよい。
 以上、一実施形態について詳述したが、本発明は上記の実施形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。例えば、上記の実施形態は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また上記実施形態の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
 また上記の各構成、機能部、処理部、処理手段等は、それらの一部または全部を、例えば、集積回路で設計する等によりハードウェアで実現してもよい。また上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリやハードディスク、SSD(Solid State Drive)等の記録装置、ICカード、SDカード、DVD等の記録媒体に置くことができる。
 また上記の各図において、制御線や情報線は説明上必要と考えられるものを示しており、必ずしも実装上の全ての制御線や情報線を示しているとは限らない。例えば、実際には殆ど全ての構成が相互に接続されていると考えてもよい。
 また以上に説明した情報処理装置10の各種機能部、各種処理部、各種データベースの配置形態は一例に過ぎない。各種機能部、各種処理部、各種データベースの配置形態は、情報処理装置10が備えるハードウェアやソフトウェアの性能、処理効率、通信効率等の観点から最適な配置形態に変更し得る。
 また前述した各種のデータを格納するデータベースの構成(スキーマ(Schema)等)は、リソースの効率的な利用、処理効率向上、アクセス効率向上、検索効率向上等の観点から柔軟に変更し得る。
 情報処理装置、演算装置、情報処理方法等に利用することが可能である。
 10 情報処理装置、11 プロセッサ、12 主記憶装置、20 演算装置、511 変数メモリ、512 非線形係数メモリ、513 線形係数メモリ、514 差分計算ブロック、515 サンプリングブロック、516 次状態決定ブロック、600 記憶部、601 問題データ、602 二次計画形式問題データ、603 定義域データ、604 演算装置制御プログラム、611 モデル変換部、612 モデル係数設定部、613 重み設定部、614 変数値初期化部、615 温度設定部、616 相互作用演算実行部、617 変数値読出部

Claims (14)

  1.  演算装置と、前記演算装置を制御する計算機を備える情報処理システムであって、
     前記計算機は、
     複数の制約を含む最適化問題の解候補を生成し、前記解候補から前記制約の少なくとも一部を満たす解候補を抽出し、抽出された解候補に基づいて混合整数二次計画問題を生成する前処理部と、
     前記混合整数二次計画問題に基づくデータを前記演算装置に入力して、演算を実行させる相互作用演算実行部と、
     を備え
     前記演算装置は、
     前記混合整数二次計画問題の変数を更新する演算を行い、目的関数を最大または最小とする前記変数を解として出力するものである、
     情報処理システム。
  2.  前記前処理部は、
     配列の組からなる中間入力データから配列の一部を除外して候補リストを作成し、前記候補リストから混合整数二次計画問題を生成する、
     請求項1記載の情報処理システム。
  3.  前記演算装置は、
     前記混合整数二次計画問題の変数の状態を示す値を記憶する変数メモリと、
     前記変数の状態を示す値の次状態を計算する状態遷移計算ブロックと、
     前記状態遷移計算ブロックの非線形係数を記憶する非線形係数メモリと、
     前記状態遷移計算ブロックの線形係数を記憶する線形係数メモリと、
     前記状態遷移計算ブロックの重み信号を受信する重み入力線と、
     前記状態遷移計算ブロックの温度信号を受信する温度入力線と、を備え、
     前記状態遷移計算ブロックは、
      前記重み信号と前記非線形係数と前記線形係数を用いて差分計算を計算する差分計算ブロックと、
      前記重み信号と前記温度信号と前記差分計算ブロックの出力値を用いて、区間制約付きの確率分布からランダムにサンプリングするサンプリングブロックと、
      前記変数メモリから読み出した値を用いて、変数の次状態を計算する次状態決定ブロックと、を備える、
     請求項2記載の情報処理システム。
  4.  前記変数メモリは、前記変数の状態を示す値x、…、xおよびy、…、yとして連続値を記憶する、
     請求項3記載の情報処理システム。
  5.  前記混合整数二次計画問題の変数の定義域を記憶する記憶部と、
     前記変数メモリから値を読み出し、前記変数の定義域に基づいて、前記変数メモリに格納されている連続値を2値に変換する変数値読出部と、を備える、
     請求項4記載の情報処理システム。
  6.  前記非線形係数Jは、N×N行列であり、
     前記線形係数hは、N次元ベクトルであり、
     前記重み信号SWは、対角行列Wの対角成分w、…、wを表すN要素のベクトルを表す信号である、
     請求項4記載の情報処理システム。
  7.  前記差分計算ブロックには、前記非線形係数J、前記線形係数h、前記重み信号SW、および前記変数メモリに記憶されている値が入力され、(J+diag(w、・・・、w))s+hを出力し、
     ただし、sはN次元ベクトル(x、…、x)および(y、…、y)のいずれかである、
     請求項6記載の情報処理システム。
  8.  前記非線形係数Jは対称行列である、
     請求項6記載の情報処理システム。
  9.  前記非線形係数Jのi行i列目の要素は0である、
     請求項8記載の情報処理システム。
  10.  前記サンプリングブロックには、前記差分計算ブロックの出力A、前記重み信号SW、前記温度信号TE、制御信号EN、および、前記変数メモリに記憶されている値が入力され、
     前記制御信号ENが第1の値のとき-(2-|y|)以上(2-|y|)以下、前記制御信号ENが第2の値のとき-(2-|x|)以上(2-|x|)以下を定義域とする正規分布からランダムに1または複数の値をサンプリングして出力し、
     前記正規分布は、前記出力A、前記重み信号SW、および前記温度信号TEに基づいて形成される、
     請求項7記載の情報処理システム。
  11.  前記正規分布は、平均Ai/wi、分散T/wiの正規分布であり、
     ただし、Aiは前記出力Aのi番目の値、Tは前記温度信号TEの値である、
     請求項10記載の情報処理システム。
  12.  前記変数の状態を示す値x、…、xおよびy、…、yの一つを記憶する多値メモリを備えるユニットを複数備え、
     前記ユニットのそれぞれは、前記差分計算ブロックの一部の機能を実行する差分計算回路と、前記サンプリングブロックの一部の機能を実行するサンプリング回路と、前記次状態決定ブロックの一部の機能を実行する次状態決定回路を備え、
     前記変数の状態を示す値xまたはyの一つを記憶する多値メモリを備えるユニットにおいては、
     前記差分計算回路は、前記非線形係数J、前記線形係数h、対角行列Wのi番目の対角成分w、および自ユニットの多値メモリが記憶する値がxのときはN次元ベクトル(y、…、y)を、自ユニットの多値メモリが記憶する値がyのときはN次元ベクトル(x、…、x)を入力とし、
    =h+w+Σij
    (ただし、hは線形係数hのi番目の要素、sは自ユニットの多値メモリが記憶する値がxのときはy、自ユニットの多値メモリが記憶する値がyのときはxを示す)
    を出力とする、
     請求項7記載の情報処理システム。
  13.  前記サンプリング回路は、前記差分計算回路の出力A、前記対角成分w、前記温度信号TE、制御信号EN、および、前記変数メモリに記憶されている値が入力され、
     前記制御信号ENが第1の値のとき-(2-|y|)以上(2-|y|)以下、前記制御信号ENが第2の値のとき-(2-|x|)以上(2-|x|)以下を定義域とする平均Ai/wi、分散T/wiの正規分布からランダムに1または複数の値をサンプリングして出力する、
     (ただし、Tは前記温度信号TEの値である)
     請求項12記載の情報処理システム。
  14.  演算装置と、前記演算装置を制御する計算機で実行する最適解探索処理方法であって、
     前記計算機の前処理部が、配列の組からなる中間入力データから配列の一部を除外して候補リストを作成し、前記候補リストから二次計画形式問題データを生成する前処理ステップ、
     前記計算機の記憶部に、前記二次計画形式問題データと、前記二次計画形式問題データの変数の定義域である定義域データを記憶する第1のステップ、
     前記計算機のモデル係数設定部が、前記二次計画形式問題データに基づいて、非線形係数メモリに非線形係数Jを設定し、線形係数メモリに線形係数hの値を設定する第2のステップ、
     前記計算機の重み設定部が重み信号SWの値を決定する第3のステップ、
     前記計算機の変数値初期化部が、変数メモリに格納されている各変数の値を初期化する第4のステップ、
     前記計算機の相互作用演算実行部が、前記非線形係数J、前記線形係数h、前記重み信号SWを用いて、前記演算装置の状態遷移計算ブロックに前記変数の次状態の計算を実行させる第5のステップ、
     前記計算機の変数読出部が、前記変数メモリから各変数の値を読み出し、前記定義域データに基づいて変換を行う第6のステップ、
     を実行する最適解探索処理方法。
PCT/JP2020/032299 2020-08-27 2020-08-27 情報処理システムおよび最適解探索処理方法 WO2022044184A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
PCT/JP2020/032299 WO2022044184A1 (ja) 2020-08-27 2020-08-27 情報処理システムおよび最適解探索処理方法
JP2022544983A JP7425210B2 (ja) 2020-08-27 2020-08-27 情報処理システムおよび最適解探索処理方法
AU2020465147A AU2020465147B2 (en) 2020-08-27 2020-08-27 Information processing system and optimal solution search processing method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2020/032299 WO2022044184A1 (ja) 2020-08-27 2020-08-27 情報処理システムおよび最適解探索処理方法

Publications (1)

Publication Number Publication Date
WO2022044184A1 true WO2022044184A1 (ja) 2022-03-03

Family

ID=80352829

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2020/032299 WO2022044184A1 (ja) 2020-08-27 2020-08-27 情報処理システムおよび最適解探索処理方法

Country Status (3)

Country Link
JP (1) JP7425210B2 (ja)
AU (1) AU2020465147B2 (ja)
WO (1) WO2022044184A1 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000112505A (ja) * 1998-10-06 2000-04-21 Nec Corp 生産計画立案装置及び生産計画立案方法並びにプログラムを記録した機械読み取り可能な記録媒体
WO2017056368A1 (ja) * 2015-09-30 2017-04-06 日本電気株式会社 最適化システム、最適化方法および最適化プログラム
JP2017151810A (ja) * 2016-02-25 2017-08-31 新日鉄住金ソリューションズ株式会社 情報処理装置、情報処理方法及びプログラム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000112505A (ja) * 1998-10-06 2000-04-21 Nec Corp 生産計画立案装置及び生産計画立案方法並びにプログラムを記録した機械読み取り可能な記録媒体
WO2017056368A1 (ja) * 2015-09-30 2017-04-06 日本電気株式会社 最適化システム、最適化方法および最適化プログラム
JP2017151810A (ja) * 2016-02-25 2017-08-31 新日鉄住金ソリューションズ株式会社 情報処理装置、情報処理方法及びプログラム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
OKUYAMA, TAKUYA ET AL.: "Binary optimization by momentum annealing", PHYSICAL REVIEW E, vol. 100, 10 July 2019 (2019-07-10), pages 012111 - 1, XP055806165, Retrieved from the Internet <URL:https://journals.aps.org/pre/pdf/10.1103/PhysRevE.100.012111> DOI: 10.1103/PhysRevE.100.012111 *

Also Published As

Publication number Publication date
JPWO2022044184A1 (ja) 2022-03-03
AU2020465147B2 (en) 2023-11-09
AU2020465147A1 (en) 2023-03-23
JP7425210B2 (ja) 2024-01-30

Similar Documents

Publication Publication Date Title
JP6925546B1 (ja) 演算システム、情報処理装置、および最適解探索処理方法
EP3792841A1 (en) Automated feature generation for machine learning application
JP7007520B2 (ja) 情報処理装置、演算装置、及び情報処理方法
Zheng et al. A data-driven robust optimization method for the assembly job-shop scheduling problem under uncertainty
JPWO2019216277A1 (ja) 情報処理装置、演算装置、及び情報処理方法
JP7085158B2 (ja) ニューラルネットワーク学習装置、ニューラルネットワーク学習方法、プログラム
Ballinas et al. Hybrid quantum genetic algorithm with adaptive rotation angle for the 0-1 Knapsack problem in the IBM Qiskit simulator
Zhang et al. Error-feedback stochastic modeling strategy for time series forecasting with convolutional neural networks
Zhang et al. Graph attention reinforcement learning with flexible matching policies for multi-depot vehicle routing problems
Wauters et al. Development of an adaptive infill criterion for constrained multi-objective asynchronous surrogate-based optimization
Phillipson et al. Classification of hybrid quantum-classical computing
Horng et al. Ordinal optimization of G/G/1/K polling systems with k-limited service discipline
WO2022044184A1 (ja) 情報処理システムおよび最適解探索処理方法
Lupo Pasini et al. Fast and accurate predictions of total energy for solid solution alloys with graph convolutional neural networks
Yalaoui et al. Heuristics for Optimization and Learning
JP2022083776A (ja) 情報処理システム
Zhang et al. Multi-objective cuckoo algorithm for mobile devices network architecture search
Simona et al. Intelligent modeling method based on genetic algorithm for partner selection in virtual organizations
Binois et al. A portfolio approach to massively parallel Bayesian optimization
Paliwal et al. Stock prediction using neural networks and evolution algorithm
JP7357795B2 (ja) 情報処理方法および情報処理システム
JP7398401B2 (ja) 最適化方法、情報処理装置及びそれを用いたシステム
Liang et al. Asynchronous evolution of deep neural network architectures
US20230267170A1 (en) Information processing system, information processing method, and non-transitory computer-readable recording medium for information processing program
Wu et al. A multiple criteria decision for trading capacity between two semiconductor fabs

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: 20951437

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2022544983

Country of ref document: JP

Kind code of ref document: A

ENP Entry into the national phase

Ref document number: 2020465147

Country of ref document: AU

Date of ref document: 20200827

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 20951437

Country of ref document: EP

Kind code of ref document: A1