AU2020465147B2 - Information processing system and optimal solution search processing method - Google Patents

Information processing system and optimal solution search processing method Download PDF

Info

Publication number
AU2020465147B2
AU2020465147B2 AU2020465147A AU2020465147A AU2020465147B2 AU 2020465147 B2 AU2020465147 B2 AU 2020465147B2 AU 2020465147 A AU2020465147 A AU 2020465147A AU 2020465147 A AU2020465147 A AU 2020465147A AU 2020465147 B2 AU2020465147 B2 AU 2020465147B2
Authority
AU
Australia
Prior art keywords
value
variable
memory
information processing
computation
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
AU2020465147A
Other versions
AU2020465147A1 (en
Inventor
Akiko Masaki
Takuya Okuyama
Masanao Yamaoka
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Publication of AU2020465147A1 publication Critical patent/AU2020465147A1/en
Application granted granted Critical
Publication of AU2020465147B2 publication Critical patent/AU2020465147B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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

Abstract

The purpose of the present invention is to provide a means for determining how to solve a complex optimization problem involving various constraints by a mixed binary quadratic programming problem. One preferable aspect of the present invention is an information processing system comprising a computation device and a calculator for controlling the computation device. The calculator comprises: a pre-processing unit that generates solution candidates for an optimization problem including a plurality of constraints, extracts a solution candidate satisfying at least some of the constraints from among the solution candidates, and generates a mixed integer quadratic programming problem on the basis of the extracted solution candidate; and an interaction computation execution unit that inputs data based on the mixed integer quadratic programming problem to the computation device and causes the computation device to execute computation. The computation device performs computation for updating variables in the mixed integer quadratic programming problem and outputs the variables which result in a target function becoming a maximum or a minimum value as a solution.

Description

Technical Field
[0001]
The present invention relates to an information
processing device, a computation device, an information
processing method, and the like. More specifically, the
present invention relates to a technique for executing an
optimal solution search process.
Background
[0002]
Patent Literature 1 discloses "a semiconductor device
that includes a plurality of unit units each having a first
memory cell that stores a value representing one spin of an
Ising model by three or more states, a second memory cell
that stores an interaction coefficient representing
interaction from a different spin exerting the interaction
on the one spin, and a logic circuit that decides a next
state of the one spin on the basis of a value representing
a state of the different spin and a function having, as a
constant or a variable, the interaction coefficient".
[0003]
Patent Literature 2 describes a method by which all
spins are updated probabilistically simultaneously with
respect to an Ising model having arbitrary connections
while a theoretical background required by Markov Chain
Monte Carlo methods is satisfied, thereby achieving optimal
solution search.
[0004]
Patent Literature 3 discloses obtaining means for
obtaining candidate information that is information of a
candidate of a subset in a set partitioning problem, and
generation means for generating a Hamiltonian equation in
an Ising model corresponding to the set partitioning
problem on the basis of the candidate information obtained
by the obtaining means.
Patent Literature
[0005]
PTL 1: Japanese Patent Application Laid-Open No. 2016
51314
PTL 2: WO 2019/216277
PTL 3: Japanese Patent Application Laid-Open No. 2017
151810
Non-Patent Literature
[0006]
NPTL 1: Okuyama, T., Sonobe, T., Kawarabayashi, K. I.,
& Yamaoka, M. (2019). Binary optimization by momentum
annealing. Physical Review E, 100(1), 012111.
NPTL 2: 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.
NPTL 3: 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.
[0007]
Many of physical phenomena and social phenomena can be
represented by an interaction model. The interaction model
is defined by a plurality of nodes configuring the model,
interaction between the nodes, and further a coefficient
acting on each node, if necessary. In the fields of
physics and social science, various models including the
Ising model are proposed, but any of them can be
interpreted as one form of the interaction model.
[0008]
It is important in the solution of a social problem to
calculate a node state that minimizes or maximizes an index
related to this interaction model. For example, there are
given a problem of detecting the clique of a social network
and the portfolio optimization problem of the financial
field. In the field of operations and research, these are
roughly divided into an unconstrained binary quadratic
programming problem and a mixed binary quadratic programming problem.
[0009]
When a traveling salesman problem, a path search
problem, or the like, as the mixed binary quadratic
programming problem is solved as the ground state search
problem of the interaction model, the energy function
thereof is typically represented by the linear sum of a
plurality of terms, such as penalty terms representing
constraints. Since the optimal value of the weight of each
term is typically unknown, a solution is searched for while
the weight is changed, thereby obtaining an exact solution
or a good quality approximation solution.
[0010]
The optimization problem can be calculated in a short
time and with saved power when the problem to be solved can
be represented once by the interaction model. However, the
complex constraints are often imposed in the optimization
problem that is actually required in society, and it is
difficult to represent all of these penalty terms by the
interaction model.
[0011]
It is desired to address or ameliorate one or more
disadvantages or limitations associated with the prior art,
or to at least provide a useful alternative.
Summary
[0012]
In one embodiment, the present invention provides an
information processing system that includes a computation
device and a calculator that controls the computation
device. The calculator includes a pre-processing unit that
generates solution candidates for an optimization problem
including a plurality of constraints, extracts a solution
candidate satisfying at least some of the constraints from
among the solution candidates, and generates a mixed
integer quadratic programming problem on the basis of the
extracted solution candidate, and an interaction
computation execution unit that inputs data based on the
mixed integer quadratic programming problem to the
computation device and causes the computation device to
execute computation. The computation device performs
computation for updating variables in the mixed integer
quadratic programming problem, and outputs the variables
which result in a target function becoming a maximum or a
minimum value as a solution.
[0013]
The pre-processing unit creates a candidate list by
excluding, from intermediate input data including a set of
an array, a portion of the array and generates a mixed
integer quadratic programming problem from the candidate list. The computation device includes a variable memory that stores a value indicating a state of the variable of the mixed integer quadratic programming problem, a state transition calculation block that calculates a next state of the value indicating the state of the variable, a non linear coefficient memory that stores a non-linear coefficient of the state transition calculation block, a linear coefficient memory that stores a linear coefficient of the state transition calculation block, a weight input line that receives a weight signal of the state transition calculation block, and a temperature input line that receives a temperature signal of the state transition calculation block. The state transition calculation block includes a difference calculation block that calculates difference calculation by using the weight signal, the non linear coefficient, and the linear coefficient. It also includes a sampling block that randomly performs sampling from a probability distribution with section constraints by using the weight signal, the temperature signal, and the output value of the difference calculation block. It further includes a next state decision block that calculates the next state of the variable by using the value read from the variable memory.
[0014] [DELETED]
[0015]
According to at least some embodiments of the present
invention, the complex optimization problem having various
constraints can be solved by the mixed binary quadratic
programming problem.
Brief Description of Drawings
[0016]
One or more embodiments of the present invention are
hereinafter described, by way of example only, with
reference to the accompanying drawings, in which:
Figure 1 is a conceptual diagram illustrating the
relationship between the variable array and the target
function value of an optimization problem.
Figure 2 is a diagram provided for the description of
an example.
Figure 3 is a diagram provided for the description of
the example.
Figure 4 is a block diagram illustrating the schematic
configuration of an information processing device.
Figure 5 is a block diagram of a computation circuit.
Figure 6 is a functional block diagram illustrating
main functions included in the information processing
device.
Figure 7 is a flowchart describing an optimal solution
search process.
Figure 8 is a detailed block diagram of the
computation circuit.
Figure 9 is a block diagram of a unit configuring the
computation circuit.
Figure 10 is a diagram conceptually describing the
meaning of a pre-process S710.
Figure 11 is a table diagram illustrating an example
of a candidate list 620.
Detailed Description
[0017]
An embodiment will be described below in detail with
reference to the drawings. It should be noted that in the
following description, the same or similar configurations
may be denoted by shared reference numerals to omit the
overlapped description thereof. Also, when there are a
plurality of elements having the same or similar functions,
the same reference numerals may be denoted by different
subscripts for description. Also, when the plurality of
elements are not required to be distinguished from each
other, the subscripts may be omitted for description.
[0018]
The denotations of the "first", "second", "third", and
the like in this specification and the like are given for
identifying components, and do not always limit the number, order, or contents thereof. Also, numbers for identifying the components are used for each context, and the numbers used in one context do not always indicate the same configuration in other contexts. Also, the component identified by a certain number is not prevented from serving as the functions of the components identified by other numbers.
[0019]
An example described below is a computation circuit
that includes a variable memory that stores a value
indicating the state of the variable of a mixed integer
quadratic programming problem, a non-linear coefficient
memory that stores the non-linear coefficient of a state
transition calculation block in response to the variable
memory, a linear coefficient memory that stores the linear
coefficient of the state transition calculation block in
response to the variable memory, a weight input line that
receives the weight signal of the state transition
calculation block, a temperature input line that receives
the temperature signal of the state transition calculation
block, a difference calculation block that calculates
difference calculation by using the weight signal of the
state transition calculation block, the non-linear
coefficient of the state transition calculation block, and
the linear coefficient of the state transition calculation block, a sampling block that randomly performs sampling from a probability distribution with section constraints by using the weight signal of the state transition calculation block, the temperature signal of the state transition calculation block, and the output value of the difference calculation block, and a next state calculation block that calculates the next state of the variable by using the output value of the sampling block and the value read from the variable memory.
[0020]
Typically, an integer programming problem refers to an
optimization problem including an integer variable. Also,
when a variable taking an integer value and a variable
taking a real number value are mixed, the integer
programming problem refers to a mixed integer programming
problem. The mixed integer programming problem that
becomes a quadratic programming program refers to a mixed
integer quadratic programming problem. In this
specification, in particular, the mixed integer quadratic
programming problem in which a variable taking a binary
value and a variable taking a real number value are mixed
is called a mixed binary quadratic programming problem.
First, the meaning of the mixed binary quadratic
programming problem will be described.
[0021]
Depending on the optimization problem to be solved, a
binary value variable and a continuous variable may be
mixed. For example, in the problem of the financial field,
the purchasing rate of a financial product may be 0% or 10%
to 100%. For example, this is the case where when the
financial product is not purchased, the purchasing rate is,
of course, 0%, and when the financial product is purchased,
the purchasing rate is 10% or more of the minimum unit. At
this time, by using the binary value variable xE{-1, 1} and
the continuous variable yE[-1, 1] indicating whether the
financial product is purchased or not, the purchasing rate
r can be expressed by r={(1+x)/2}X{0.1+0.9X(1+y))/2}.
[0022]
The continuous variable y can also be discretely
represented by a plurality of binary value variables, but
the number of variables is required to be only one by
enabling the continuous variable to be handled. Thus, by
enabling the continuous variable to be handled by the
calculator system, the number of variables of the
optimization problem can be reduced to increase the problem
scale that can be handled by the calculator resources.
Also, when a certain problem is solved, it can be expected
to shorten the calculation time since the number of
variables is reduced.
[0023]
On the other hand, although the problem can also be
handled only by the continuous variable, the continuous
variable allows the value of 0.3 or the like with respect
to the variable in which only -1 or +1 is to be recognized
as the value. In this case, when the constraint "the
variable x is -1 or +1" is added to the target function,
for example, as the penalty function (x2 -1) 2 , the variable x
can also be handled as the continuous variable, but this
cannot provide a quadratic equation. Also, there is a
problem that for example, the target function becomes
complex and it is thus difficult to find the optimal
solution. Thus, there is a merit of the configuration such
that when the quadratic programming problem is created, the
domain of the predetermined variable is made to have, from
the beginning, the binary value or the discrete value,
which can be handled by the calculator. In this
specification, hereinafter, when referred to only as the
optimization problem, the mixed binary quadratic
programming problem is represented.
[0024]
There are N variables si, ... , sN of the optimization
problem (here, the meaning of the mixed binary quadratic
programming problem). Then, the domain Di of each variable
is one of the binary value {-1, +1} and the continuous
value [-1, +1]. Which of the two is decided for each problem. Then, the target function H of the optimization problem is expressed by the following equation 1. That is, the target function H is expressed by the quadratic equation of the variable s.
[0025]
[Mathematical 1]
H(s) sTJs -hs (1) 2
[0026]
In the equation 1, an N-dimensional vector of s=[si,...,
SN], J is an NXN symmetric matrix, and h is an N
dimensional vector. As described above, since the domain
is different for each variable, the mixed binary quadratic
programming problem can be expressed as in the following
equation 2.
[0027]
[Mathematical 2]
min H (s) (2)
[0028]
Here, the index sets Ab, Ac will be defined as in the
equation 3.
[Mathematical 3]
A ={l Di = -1 1} (3)
[0029]
The set Smixed={1sEDi} will be defined. When these
denotations are used, the equation 2 can also be expressed
as the equation 4.
[0030]
[Mathematical 4]
min H (s) (4) BESmixed
[0031]
Hereinafter, the element of the ith row and the ith
column of the matrix J is 0 with respect to all iEAb. This
is because this conversion does not change the optimal
solution of the equation 2.
[0032]
If Dj={-1, +1}, this optimization problem is a
combination optimization problem called a ground state
search problem of an Ising model. In this embodiment, in
the optimization problem also including the ground state search of the Ising model, the optimal solution or the approximation solution is searched for by an algorithm that utilizes Markov Chain Monte Carlo methods (hereinafter, called MCMC (Markov Chain Monte Carlo methods)).
[0033]
Figure 1 is a conceptual diagram illustrating the
landscape of the target function value with respect to the
variable array. The horizontal axis of the graph is the
variable array s, and the vertical axis of the graph is the
target function H(s). The MCMC repeats probabilistic
transition from the current state s to the certain state s'
near the state s. The probability of the transition from
the state s to the state s' is called the transition
probability P (s, s'). Examples of the transition
probability P include a Metropolis method and a heat-bath
method (heat-bath algorithm).
[0034]
The transition probability has a parameter called a
temperature, and this represents the easiness of the
transition between the states. When the MCMC is executed
while the temperature is gradually decreased from the large
value, the target function value is asymptotically
converged to the lowest state. A method for calculating
the optimal solution or the approximation solution of the
minimization problem by using this is simulated annealing
(hereinafter, called SA (Simulated Annealing)) and momentum
annealing (hereinafter, called MA (Momentum Annealing))
proposed in NPTL 1.
[0035]
In solving the minimization problem expressed in the
equation 4, it is considered that instead, the minimization
problem of the following equation 5 is solved. It should
be noted that the set Sreiaxed{5ssiE [-l, +1] }
.
[0036]
[Mathematical 5]
min H (s) (5) ESrelaxed
[0037]
The optimal solution of the equation 5 is expressed as
s*=[s1*, ... , sN*] . Although the proof is omitted, s+=[si+,
sN+] calculated by the following equation 6 is one of the
optimal solutions of the equation 4. The aim of the
example represented in this application is the optimal
solution search of the equation 2, but even when the
conversion of the equation 6 is obtained after the optimal
solution s* of the equation 5 is solved, the desired
solution s+ can be obtained. It should be noted that the
function sgn is a function in which the function sgn returns +1 when the argument is 0 or more, and returns -1 when the argument is other than that.
[0038]
[Mathematical 6]
sgn(s*) (iEAb) si =)(6) s*( Ac)
[0039]
Here, the N-dimensional vector v=[vi, ... , VN] is
introduced to define the function H' expressed by the
equation 7.
[Mathematical 7]
H'(s, v) = H(s) + V(v) (7)
[0040]
It should be noted that the function V(v) is as
defined in the equation 8.
[Mathematical 8]
1 V() = - (J+ 2W) v (8) 2
[0041]
The matrix W=diag(wi, ... , WN) is an arbitrary diagonal
matrix, and vi is a real number moving in [-1, +1]. In
place of the minimization problem represented in the
equation 5, the equation 9 that is the minimization problem
of the H'(s, v) is introduced.
[0042]
[Mathematical 9]
min H (s) + min V (V) (9) $GE[-1,1]N ,,G [_1 N
[0043]
Two N-dimensional vectors x=s+v, y=s-v will be defined.
The target function of the optimization problem to be
originally solved is only H, but by introducing the
function of V here, the function that can be parallel
updated by the MCMC can be newly obtained. Then, the
function H' can be rewritten as the equation 10.
[0044]
[Mathematical 10]
h X+Y H =-{ 1 -o Jy-hT(x-Py)+(-yTwxY} y (X - y)TW(X - y) (10) (0 2 2
[0045]
That is, the minimization problem of the equation 5
can be restated as the minimization problem of the equation
11 (and may be handled as the maximization problem).
[0046]
[Mathematical 11]
T(ox- y)Wx-y min G(x, y) := -xTJy - hT (X + y) + (11) lXil+lYils2 2
[0047]
When the optimal solution of the equation 11 is
expressed as x*, y*, an equality equation s*=(x*+y*)/2 is
established. These discussions can be established even
when W is a zero matrix.
[0048]
From the above, the optimal solution of the mixed
binary quadratic programming problem expressed by the
equation 2 can be calculated from the solution of the
quadratic programming problem with the constraints
represented in the equation 11. To calculate this solution,
the MCMC is utilized.
[0049]
Figure 2 is a graphical model representing the
relationship between the respective variables in the target
function G in the equation 11. The relationship between the respective variables in the function G can be represented by a complete bipartite graph. The variables in the function G by which the variable xi is multiplied are only yi, ... , yN and xi. When the variable value is updated probabilistically, the MCMC uses the value of the variable related to the variable. That is, when the value of the variable xi is updated, yi, ... , yN and Xi are calculated, and the variables other than those (here, X2,...
XN) are not referred to. This is ditto for the update of
other variables, for example, the value of X2. Thus, when
the values of the variable array y are constant, the
theoretical requirement of the MCMC is not violated even
when each value of the array x is updated probabilistically
independently simultaneously.
[0050]
Likewise, the variables by which the variable yi is
multiplied are only xi, ... , XN and yi. Thus, under the state
where the value of the variable array x is constant, each
value of the array y can be updated probabilistically
independently simultaneously.
[0051]
From the above, by executing the MCMC configured by
the procedure that repeats "the simultaneous update of xi,
... , xN" and "the simultaneous update of yi, ... , yN", the
arrays x, y minimizing the function G can be searched for while the advantage of increased speed by parallelization can be obtained.
[0052]
It should be noted that in the discussion of this
example, no constraints are provided for the matrix J. For
example, also when none of the elements of the matrix J is
zero, the above discussion can be established, so that the
parallel update is enabled.
[0053]
Figure 3 is an example of a fully connected graph. On
the other hand, when the MCMC is directly applied to the
minimization problem of the equation 2 that is the original
problem, the way of relating of the variable array s is
represented by the fully connected graph as illustrated in
Figure 3, so that only one variable can be updated
probabilistically at a time, which is limited to sequential
update.
[0054]
From here, the procedure of the probabilistic update
with respect to each variable will be described. The
variable to be updated is xi. Under the state where the
values of the variables yi, ... , yN are constant, the
existence probability p(xi) of the variable xi in the
Boltzmann distribution at the temperature T satisfies the
equation 12.
[0055]
[Mathematical 12]
p(Xj) oceC2 i W (12)
[0056]
It should be noted that the variable Ai is the value
calculated by the equation 13.
[Mathematical 13]
Ai =hi + wjy + Jiyy (13)
[0057]
Since the variables xi and yi are Ixil+Iyil 2, the range
in which xi can move is -(2-|yil) or more and (2-|yil) or less.
Thus, for the variable xi, the next state of the xi should
be sampled on the basis of the truncated normal
2 distribution in which -( -|yil) or more and (2-yil) or less
is a domain in the normal distribution having average Ai/wi
and distribution T/wi. In this method, the next state is
decided without depending on the current state of xi. This
is ditto for yi. In this specification, when the variables
of x and y are not distinguished from each other, s may be
denoted.
[0058]
The random number according to the standard normal
distribution can be generated by a Box-Muller method. Here,
since the domain is limited, the algorithm represented in
NPTL 2 should be used.
[0059]
The optimal solution search is regarded as sampling
from the equilibrium state at a temperature of 0. For that,
to achieve the good quality solution search, the
convergence to the equilibrium state in a short time is
preferable. To increase the convergence properties to the
equilibrium state, various techniques are proposed in the
MCMC, and these can also be utilized. For example, NPTL 3
proposes an overrelaxation method. This samples, as the
candidates of the next state, not only one state, but also
K states, from the Boltzmann distribution at the
temperature T. Then, a total of (K+1) states are
rearranged to be represented as xco ... <xcr=x± xcK. That is,
the current state is the (r+1)th from the smaller of the
(K+1) values. Then, xcK+1-r is adopted to the next state. In
this method, the next state depends on the current state of
Xi.
[0060]
In light of the above, the configuration of the
information processing device that achieves the present invention is illustrated in Figures 4 to 6.
[0061]
Figure 4 is an example of the information processing
device that searches for the optimal solution of the mixed
binary quadratic programming problem. As illustrated in
the drawing, an 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 computation devices
20, and a system bus 5 that communicatably connect these
devices. For example, the information processing device 10
may be achieved partially or wholly by using virtual
information processing resources, such as a Cloud Server
provided by a Cloud System. Also, for example, the
information processing device 10 may be achieved by a
plurality of information processing devices that are
communicatably connected to each other and are operated to
cooperate with each other.
[0062]
For example, the processor 11 is configured by using a
CPU (Central Processing Unit) and an MPU (Micro Processing
Unit). The main storage device 12 is a device that stores
a program and data, and is, for example, a ROM (Read Only
Memory), an SRAM (Static Random Access Memory), an NVRAM
(Non Volatile RAM), a mask ROM (Mask Read Only Memory), a
PROM (Programmable ROM) and the like), a RAM (Random Access
Memory), (a DRAM (Dynamic Random Access Memory) and the
like), and the like. 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 (a CD (Compact Disc), a DVD (Digital Versatile Disc),
and the like), and the like. The program and data stored
in the auxiliary storage device 13 are read into the main
storage device 12, as needed.
[0063]
The input device 14 is a user interface that receives
the input of information from the user, and is, for example,
a keyboard, a mouse, a card reader, a touch panel, and the
like. The output device 15 is a user interface that
provides information to the user, and is, for example, a
display device (an LCD (Liquid Crystal Display), a graphic
card, and the like) 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 (Network Interface Card), a wireless
communication module, a USB (Universal Serial Interface)
module, a serial communication module, and the like.
[0064]
The computation device 20 is a device that executes a process related to the optimal solution search of the mixed binary quadratic programming problem. For example, the computation device 20 may take the form of an expansion card mounted on the information processing device 10 like a
GPU (Graphics Processing Unit). For example, the
computation device 20 is configured 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 computation
device 20 includes an interface and the like to be
connected to the controller, the storage device, and the
system bus 5, and performs the transmission and reception
of a command and information between the computation device
20 and the processor 11 via the system bus 5. For example,
the computation device 20 may be communicatably connected
to other computation devices 20 via the communication line,
and be operated to cooperate with other computation devices
20. For example, the function achieved by the computation
device 20 may be achieved by causing the processor (the CPU,
the GPU, and the like) to execute the program.
[0065]
The computation device 20 illustrated in Figure 4 will
be described in Figure 5 later. One or more computation
devices 20 can be mounted.
[0066]
Figure 5 is a diagram describing the operation
principle of the communication device 20, and is a block
diagram of a circuit configuring the communication device
20 (hereinafter, called a computation circuit 500). The
computation circuit 500 achieves the function of sampling
the variable array xi, ... , XN or the variable array yi,
YN from the Boltzmann distribution at the temperature T
(the equation 12). The operation principle of the
computation device 20 will be described below together with
the drawing.
[0067]
As illustrated in the drawing, the computation circuit
500 includes a variable memory 511, a non-linear
coefficient memory 512, a liner coefficient memory 513, a
difference calculation block 514, a sampling block 515, and
a next state decision block 516.
[0068]
In the variable memory 511 of each computation circuit
500, the information representing the above variables x1,...
xN and yl, ... , yN is stored (see Figure 2)
[0069]
In the non-linear coefficient memory 512, the
information representing the matrix J is stored. The
matrix J is typically the symmetric matrix, and the usage
amount of the non-linear coefficient memory 512 can be reduced by using the symmetric properties thereof. In the linear coefficient memory 513, the information representing the vector h is stored.
[0070]
As illustrated in the drawing, the control signal EN,
the weight signal SW, and the temperature signal TE are
inputted to the communication circuit 500.
[0071]
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, it is
determined that when the EN is H, the variable array x is
updated, and when the EN is L, the variable array y is
updated. By the signal EN, the variables xi, ... , XN are
updated simultaneously, and also, the variables yi, ... , yN
are updated simultaneously. In Figure 5, for
simplification, the signal EN is inputted only to the
sampling block 515, but is applied likewise to other
portions that require this signal, such as the variable
memory.
[0072]
The signal SW is a signal representing the vector of
the N elements representing the diagonal components of the
diagonal matrix W.
[0073]
The value of the matrix J stored in the non-linear
coefficient memory 512, the vector h stored in the linear
coefficient memory 513, the signal SW, and the variable s
(x or y) stored in the variable memory 511 are inputted to
the difference calculation block 514. The difference
calculation block 514 outputs (J+diag(wi, ... , wN))y+h when
the signal EN is H, and (J+diag(wi, ... , wN))x+h when the EN
is L. The output value corresponds to the above A±.
[0074]
The sampling block 515 receives the output of the
difference calculation block 514, the signal SW, the signal
TW that holds the value of the temperature parameter, the
signal EN, and the values of other variables. Then, as the
ith element, one or a plurality of values are outputted by
being randomly sampled from the truncated normal
distribution expressed by the equation 12 in which -(2-|yi)
or more and (2-|yil) or less is a domain when the signal EN
is H and -(2-xI) or more and (2-xI) or less is a domain
when the EN is L.
[0075]
The next state decision block 516 decides the next
state of the variable on the basis of one or a plurality of
values outputted from the sampling block 515. If the
simple heat-bath method is defined as the update rule of
the MCMC, the next state decision block 516 should receive only one output value of the sampling block 515, and write it into the variable memory 511 as-is. Also, when the known overrelaxation method is used as the update rule of the MCMC, the next state decision 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, selects one according to the overrelaxation method, and writes it to the variable memory
511. As is well known, the overrelaxation method decides
the next state so that the correlation with the previous
state becomes negative.
[0076]
Figure 6 illustrates main functions (software
configurations) included in the information processing
device 10. As illustrated in the drawing, the information
processing device 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, an interaction
computation execution unit 616, a variable value reading
unit 617, and a pre-processing unit 618. These functions
are achieved in such a manner that the processor 11 reads
and executes the program stored in the main storage device
12, or by the hardware included in the computation device
20. It should be noted that the information processing device 10 may include, in addition to the above functions, other functions such as an operating system, a file system, a device driver, and a DBMS (DataBase Management System).
[0077]
Of the above functions, the storage unit 600 stores
problem data 601, quadratic programming-type problem data
602, domain data 603, a computation device control program
604, intermediate input data 619, and a candidate list 620
into the main storage device 12 or the auxiliary storage
device 13.
[0078]
The problem data 601 is, for example, data in which
the optimization problem or the like is described in a
known predetermined description form. In this example, the
problem data 601 is created from the candidate list 620
described later by the pre-processing unit 618. For
example, analysis input data inputted by the user via the
user interface (the input device, the output device, the
communication device, and the like) is converted by the
pre-processing unit 618 to the intermediate input data 619
including the combination of the candidates. The analysis
input data is, for example, data to be analyzed, such as
personnel data and order reception data. The personnel
data is, for example, data, such as a person-in-charge's ID,
a workplace, a qualification, and an occupation field. The order reception data is, for example, data related to order reception, such as product and service contents, a place, and a delivery date. These are only an example, and the present invention is not required to be limited to this as long as the data is handled as the material of the optimization problem.
[0079]
The intermediate input data 619 is generated from the
analysis input data. The above example includes, for
example, the combination in the array of candidates
representing which person in charge takes charge of which
order reception.
[0080]
As is known, in a column generation method, the
solution is configured of formulation in which the solution
is represented by the superposition of the limited partial
solutions. The pre-processing unit 618 further generates
the candidate list 620 by excluding the predetermined
candidates that do not satisfy the constraint conditions
from the intermediate input data 619. By the pre-process,
the complex constraint is not required to be represented by
the interaction model. The pre-processing unit 618
generates the problem data 601 from the candidate list 620.
[0081]
The quadratic programming-type problem data 602 is data generated in such a manner that the model conversion unit 611 converts the problem data 601 to the data in the type matching the format of the quadratic programming problem represented by the equation 4. For this conversion, the domain of each given variable is written into the domain data 603. For example, the domain data indicates whether each variable takes the binary value or takes the real number. The computation device control program 604 is a program executed when the interaction computation execution unit 616 controls the computation device 20, or a program in which the interaction computation execution unit
616 loads the program to each computation device 20 to
cause the computation device 20 to execute it.
[0082]
As described above, the model conversion unit 611
converts the problem data 601 to the quadratic programming
type problem data 602 that is the format of the quadratic
programming problem. For this, the function of deriving
the equation 11 from the equation 1 should be implemented,
as software or hardware, on the model conversion unit 611.
The function of the model conversion unit 611 is not
necessarily required to be implemented on the information
processing device 10, and the information processing device
10 may capture the quadratic programming-type problem data
602 generated by other information processing devices and the like via the input device 14 and the communication device 16.
[0083]
The model coefficient setting unit 612 sets the matrix
J of the equation 11 based on the quadratic programming
type problem data 602 to the non-linear coefficient memory
512, and sets the vector h based on the quadratic
programming-type problem data 602 to the linear coefficient
memory 513.
[0084]
The variable value initialization unit 614 initializes
the value of each variable stored in the variable memory
511 of the computation device 20. For example, the
variable value initialization unit 614 should decide the
value of each variable by random sampling uniformly from -1
or more and +1 or less. In that case, it should be noted
that |xil+|yil2 that is the constraint related to the
variable is satisfied. Also, it should be noted that the
value of each variable at this time is handled by the
continuous value.
[0085]
The temperature setting unit 615 sets the temperature
T used when the interaction computation execution unit 616
performs the optimal solution search.
[0086]
The interaction computation execution unit 616 causes
the computation device 20 to execute computation
(hereinafter, called interaction computation) that searches
for the variable arrays x and y minimizing the function G
expressed by the equation 11 for each temperature T set by
the temperature setting unit 615. For the interaction
computation, for example, the interaction computation
execution unit 616 changes the temperature T from the high
temperature toward the low temperature.
[0087]
The variable value reading unit 617 reads the variable
arrays x and y stored in the variable memory 511 when the
optimal solution search by the interaction computation
execution unit 616 is ended. The value read here is the
solution of the equation 11. According to the above
discussion, the N-dimensional vector s*=(x+y)/2 is
calculated. Then, the domain data 603 is read, and the
s+ vector obtained by the equation 6 is outputted, as the
final solution, to the output device 15 and the
communication device 16. That is, when the ith domain is
determined as {-1, +1} by the domain data 603, sgn (s*i) is
outputted, and when the ith domain is [-1, +1], si itself
is outputted. In this way, the solution according to the
defined value region is calculated.
[0088]
Figure 7 is a flowchart describing a process performed
by the information processing device 10 for the optimal
solution search (hereinafter, called the optimal solution
search process S700). The optimal solution search process
S700 will be described below together with the drawing. It
should be noted that in the following, the letter "S"
indicated before each of the reference numerals is the
meaning of a process step. For example, the optimal
solution search process S700 is started by receiving an
instruction and the like from the user via the input device
14.
[0089]
As illustrated in Figure 7, first, the pre-processing
unit 618 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).
[0090]
Next, the model conversion unit 611 converts the
problem data 601 to the quadratic programming-type problem
data 602 (S711). For example, the quadratic programming
type problem data represents, in an arbitrary form, the
matrix J and the vector h in the function H expressed by
the equation 1. When the storage unit 600 has already
stored the quadratic programming-type problem data 602, the process S711 is omitted. The process of the S711 and the processes after the S712 may be respectively executed by the different devices. Also, the process of the S711 and the processes after the S712 may be executed at different timings (for example, it is considered that the process of the S711 is previously performed).
[0091]
Sequentially, the model coefficient setting unit 612
sets the values of the matrix J and the vector h to the
non-linear coefficient memory 512 and the linear
coefficient memory 513, respectively (S712). The value of
the memory can also be set or edited by the user via the
user interface (achieved by, for example, by the input
device 14, the output device 15, the communication device
16, and the like).
[0092]
Sequentially, the weight setting unit 613 decides the
value of the signal SW. As described in the above equation
8, the signal SW is allowed to take an arbitrary value for
searching for the optimal solution. For that, the signal
value may always be 0. In this case, the load of the
calculation can be reduced. Also, as represented in the
equation 3 to the equation 5 in PTL 2, the signal value may
be decided from the eigenvalue of the matrix J.
Alternatively, the signal value may be decided from the row sum of the matrix J. The calculation for the value calculation of the signal SW may be executed in the computation device 20 or by the processor 11.
Alternatively, the user may set the signal value by
himself/herself (S713).
[0093]
Sequentially, the 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 the continuous value. As described
previously, the initial value should be random. From the
above, the parameter representing the equation 11 is set.
[0094]
Sequentially, the temperature setting unit 615 sets
the sequence Tk (k=1, 2, 3, ... ) of the temperature parameter
used in the optimal solution search (S715). It should be
noted that the above index k represents the type of the
temperature T set. For a method for setting the
temperature T, for example, the method of PTL 1 can be
adopted.
[0095]
Sequentially, the interaction computation execution
unit 616 executes the probabilistic simultaneous update of
the variable array by the computation of the computation
circuit 500 illustrated in Figure 5 (S716).
[0096]
Sequentially, the interaction computation execution
unit 616 determines whether or not the stop condition has
been established (for example, whether or not the
temperature T has reached the lowest temperature that is
set previously) (S717). When the interaction computation
execution unit 616 determines that the stop condition has
been established (S717: YES), the process goes to S718. On
the other hand, when the interaction computation execution
unit 616 determines that the stop condition has not been
established (S717: NO), the process returns to the S716.
[0097]
In the S718, the variable value reading unit 617 reads
the value of the variable stored in the variable memory 511
and the domain of each variable of the quadratic
programming-type problem data 602 stored in the domain data
603. Then, the vector through the conversion based on the
equation 6 is calculated, and is outputted as the solution
of the equation 2 or the equation 4. From the above, the
optimal solution search process S700 is ended.
[0098]
As described above in detail, according to the
information processing device 10 of this embodiment, the
optimal solution search of the mixed binary quadratic
programming problem can be efficiently performed. For that, the optimization problem can be efficiently solved. It should be noted that the information processing device 10
(including the computation device 20) has a simple
configuration, and can thus be easily manufactured at low
cost.
[0099]
The computation circuit 500 may be configured of
software or may be configured of hardware as long as it
includes the function of executing the calculation solving
the already described optimization problem. Specifically,
not only hardware in which the computation circuit 500 is
mounted as an electronic circuit (such as a digital
circuit) in the annealing method, but also a method by
which the computation circuit 500 is mounted as a
superconducting circuit and the like, may be used. Also,
the computation circuit 500 may be hardware achieving the
Ising model by other than the annealing method. For
example, a laser network method (optical parametric
oscillation), a quantum neural network, and the like are
known. Also, although the way of thinking is different in
part, a quantum gate method by which the calculation
performed by the Ising model is replaced with a gate, such
as a Hadamard gate, a rotation gate, and a controlled-NOT
gate, can also be adopted as the configuration of this
example.
[0100]
As a specific mounting example of the computation
circuit 500, an example in which the computation circuit
500 is mounted as a CMOS (Complementary Metal-Oxide
Semiconductor) integrated circuit described in PTL 1 and a
logic circuit on the FPGA (Field Programmable Gate Array)
will be described.
[0101]
In the technique of PTL 1, the units to which the
technique of the SRAM (Static Random Access Memory) is
applied are disposed in an array, and the memory storing
the variable in each unit and the circuit for updating the
variable are disposed.
[0102]
Figure 8 is a block diagram illustrating a circuit
configuration example when the technique of the SRAM is
applied to the computation circuit 500 of this example. A
plurality of units 801 configure an array unit 802. The
configuration can be manufactured by applying a
semiconductor manufacturing technique.
[0103]
One unit 801 includes a multiple value memory 901 that
stores one of the variables xi, ... , xN and yi, .••, yN, and a
configuration for updating the value of the multiple value
memory 901. That is, 2N units 801 are prepared.
[0104]
The configuration example of Figure 8 will be
described also with reference to the typified configuration
of Figure 5. The data stored in the non-linear coefficient
memory 512 and the liner coefficient memory 513 are set
from the model coefficient setting unit 612. The NXN
matrix J is stored in the non-linear coefficient memory 512,
but this is sharably used by all the units 801. Also, the
N-dimensional vector h is stored in the linear coefficient
memory 513, but this is sharably used by all the units 801.
To reduce the circuit scale, these memories are shared
among the respective units 801. Thus, the non-linear
coefficient memory 512 and the liner coefficient memory 513
supply the coefficients J and h to all the units 801, but
in Figure 8, the signal lines therefor are omitted. It
should be noted that in principle, the respective units 801
may each include the non-linear coefficient memory 512 and
the liner coefficient memory 513.
[01051
In a weight memory 803, the vector (wi, ... , wN) of the
N elements representing the diagonal components of the
diagonal matrix W is stored. This data is set by the
weight setting unit 613. Since the ith unit storing xi, yi
uses the ith component wi, the value of the signal SW is
required to be switched for each unit 801. In Figure 8, the signal line supplying the signal SW to the unit 801 is omitted.
[0106]
The temperature signal TE supplied from the
temperature setting unit 615 is supplied to all the units
801. The function and configuration of the temperature
signal follow the conventional art. The signal line
supplying the signal TE to the unit 801 is omitted.
[0107]
An interaction driver 804 alternately inputs, to each
unit 801, the signal allowing the update of the variable x
and the signal allowing the update of the variable y. Thus,
the variables Xi to XN are updated simultaneously, and the
variables y1 to yN are updated simultaneously.
[0108]
An SRAM interface 805 performs writing and reading
with respect to the memory storing the variable of the unit
801 created by applying the circuit configuration of the
SRAM. The variable read after the completion of the
process in the computation circuit 500 is transmitted to
the variable value reading unit 617. The variable value
reading unit 617 outputs the read variable as the
continuous value or the binary value on the basis of the
domain data 603, thereby obtaining the solution of the
mixed binary quadratic programming problem.
[0109]
A controller 806 performs the initialization of the
computation circuit 500 and the completion report of the
process by the instruction of the interaction computation
execution unit 616.
[0110]
Figure 9 is a diagram illustrating the circuit
configuration example of one unit 801. One unit includes
the multiple value memory 901 that stores any one of the
continuous variables xi, ... , xN and yl, ... , yN.
[0111]
A difference calculation circuit 902 achieves the
function of the difference calculation block 514. The
vector of (yi, ... , yN) is inputted to the difference
calculation circuit 902 when the variable stored in the
multiple value memory 901 is any one of xi, ... , xN. Also,
the vector of (x, ... , xN) is inputted when the variable
stored in the multiple value memory 901 is any one of yi,...
yN. These variable vectors are read by the SRAM interface
805 from the multiple value memory 901 of each of other
units 801, and are generated. Also, the NXN matrix J and
the N-dimensional vector h that are the coefficients are
inputted. Also, the weight wi is inputted. The difference
calculation circuit 902 outputs the value A± of the ith row
of (J+diag(wi, ... , wN))s+h (s is the variable vector of x or y) with respect to these inputs.
[0112]
A sampling circuit 903 achieves the function of the
sampling block 515. The output Ai, the signal EN, the
signal SW, the signal TE, y± when the variable stored in
the multiple value memory 901 is x±, and xi when the
variable stored in the multiple value memory 901 is yi are
inputted to the sampling circuit 903. Then, the candidate
of the next state of the variable is sampled from the
existence probability p(si) of the variable si on the basis
of the equation 12.
[0113]
A state decision circuit 904 decides the next state of
the variable on the basis of one or a plurality of
candidates outputted from the sampling circuit 903. For
example, in the case of following the overrelaxation method,
when a plurality of candidates are obtained from the
sampling circuit 903, the state decision circuit 904
decides the next state by selecting the candidate in which
the correlation with the previous state of the multiple
value memory 901 is negative. The decided next state is
stored in the multiple value memory 901.
[0114]
In the above, for the difference calculation block 514,
the sampling block 515, and the nest state decision block
516, the hardware, such as the FPGA, is assumed, but for
example, software implementation is enabled by the GPU
disposed in the unit. By including the unit 801 in an
array in this way, the parallel update of the variable is
enabled.
[0115]
Figure 10 is a diagram conceptually describing the
meaning of the pre-process S710 in the flow of Figure 7.
In the optimization problem, when the constraint conditions
become complex, it becomes difficult to represent all the
constraints by the interaction model. Accordingly, the
solution candidates of the problem to be solved are
previously generated by a general-purpose calculator, and
are divided into the set partitioning and the set covering
problems satisfying the conditions from the set of the
solution candidates. The set partitioning and the set
covering problems are equivalent to the minimization
problem (or the maximization problem) of the target
function represented by the interaction model including the
Ising model, and can be solved by the annealing technique
with respect to the interaction model, such as the quantum
annealing and the CMOS annealing. Thus, the number of
types of problems solved by the annealing technique can be
increased.
[0116]
This example will be described with an example in
which task programming determining which person in charge
processes which task is optimized. In Figure 10, analysis
input data 1001 includes personnel information, such as the
ID, qualification, address, and the like of a person in
charge to be a candidate, and order reception information,
such as the contents, place, limit time, and skill required
for response of the task. Also, the analysis input data
1001 includes an evaluation parameter and the like for
determining whether the task programming is optimal.
[0117]
In the pre-process S710, the pre-processing unit 618
of the information processing device 10 generates and
stores, for example, the intermediate input data 619 in a
table form, from the inputted analysis input data 1001 by
the intermediate input data formation S7101.
[0118]
In the pre-process S710 by the pre-processing unit 618,
the candidate list 620 is generated from the intermediate
input data 619 by the candidate list generation S7102.
[0119]
Figure 11 is an example of the candidate list 620, and
is a table diagram describing an optimization algorithm
called the column generation method. The aim of this
algorithm is to select some of a plurality of candidates.
The candidates here are formed in a predetermined array,
and the optimal combination is selected from the set of the
array under the predetermined conditions.
[0120]
In the example of Figure 11, each candidate indicates
"the task to be taken charge of by one person in charge".
For example, the candidate 1 indicates that "the person in
charge 1 takes charge of only the task 1", and the
candidate 3 indicates that "the person in charge 2 takes
charge of the task 3". The problem in which among the
combinations of the subsets including each of the
respective elements (for example, the tasks) of the given
set, the combination in which the sum of the costs becomes
minimal is called the set partitioning problem.
[0121]
The variable xi is a variable representing whether the
candidate is selected. For example, when xi=1, the
candidate 1 is adopted. When x1=0, the candidate 1 is not
adopted. The presence or absence of the skill a± is a
parameter indicating whether the person in charge of the
candidate has the skill or qualification. For example, the
parameter is represented such that when a1=1, the person in
charge has the skill, and when ai=0, the person in charge
does not have the skill. The evaluation value ci of the
candidate is the evaluation of the candidate, and its defining method is arbitrary.
[0122]
The pre-processing unit 618 combines the data of the
analysis input data 1001 by the typical program, and
creates the set of the candidates like Figure 11
automatically or by editing by the operator, so that the
set of the candidates can be the intermediate input data
619. The algorithm of the automatic program is mechanical
data combination generation. However, in the column
generation method, the selected candidates are combined to
be the answer of the entire problem, so that the candidates
1 to n that become the parts of the answer of the entire
problem are required to be originally executable.
[0123]
For example, the intermediate input data 819 has, as
the candidates, all combinations in which from 1000 tasks,
each person in charge takes charge of 1 to 1000 tasks.
However, when the description "the person in charge takes
charges of the task 1 and the task 100" is present in the
intermediate input data 619, if each task is as follows,
the one person in charge cannot take charge of both tasks.
Task 1: Working in Tokyo from 10 o'clock to 12 o'clock
on June 25 (Thursday)
Task 100: Working in Osaka from 10 o'clock to 12
o'clock on June 25 (Thursday)
[0124]
Accordingly, to generate the executable candidate idea,
the candidate list generation S7102 generates the candidate
list 620 by excluding the inappropriate candidates on the
basis of the problem setting stored in the intermediate
input data 619. That is, in the pre-process S710, the
selection of the candidates included in the intermediate
input data 619 is performed by the condition search by the
typical information processing device, not by the
optimization calculation. Thus, the pre-process S710
generates the candidate group of the candidate list 620.
Then, the problem data 601 of the optimization calculation
is generated from the candidate list 620.
[0125]
The above is a simple example in which "the person
taking charge of the task 1 cannot take charge of the task
100", but for example, many more complex constraints, such
as the constraint "the person taking charge of the task 1
and the task 2 cannot take charge of the task 40, the task
41, and the task 43", are considered. It is simpler to
perform the process of the candidate selection under the
condition by the normal software of the general-purpose
calculator, and on the contrary, handling as the constraint
in the optimization calculation using the interaction model
and the like is troublesome.
[0126]
Also, for example, for the constraint condition in
which "the skill is required in the traveling of the task
2", when the variable at indicating the presence or absence
of the skill and the variable indicating the presence or
absence of the skill required by the task 2 of the person
in charge are compared, the candidate including the task 2
is not created for the person in charge not having the
skill, so that the candidate can be immediately selected.
[0127]
In this example, to be able to cope with the mixed
binary quadratic programming problem after generating the
problem data 601 from the candidate list 620 in the problem
generation S7103 of the pre-process S710, the pre-process
S710 further converts the problem data 601 to the quadratic
programming-type problem data 602 by the data conversion
S711 to complete the generation of the optimization problem.
[0128]
The constraint conditions given by the problem data
601 can be arbitrarily set. For example, one person in
charge selectively executes the candidate, and cannot
allocate a plurality of candidates. To satisfy this
condition, for example, for the person in charge 1, only
one of the candidate 1 and the candidate 2 is required to
be selected. For the selection, x±=1, and thus, the constraint given for this is expressed by the equality equation constraint of xl+x2=1.
Also, for example, for the operator 2, only one of the
candidate 3 to the candidate 5 is required to be selected.
The equality equation constraint given for this is
x3+x4+x5=1.
[0129]
When the constraint term P 2 of the equality equation
constraint related to the operator 2 is expressed by a
penalty method, the following is given.
[Mathematical 14]
P2 =(X3 + X4 + X - 2(14)
[0130]
Also, each operator is not necessarily required to
take charge of the task depending on the case, for example,
in Figure 11, which provides a condition in which "the
operator 1 can select up to one candidate". In this case,
the following patterns are considered.
One of the candidates 1, 2 is selected.
Neither of the candidates 1, 2 is selected.
When this is expressed by a mathematical equation, xl+x2 1.
Since the constraint Pi of the inequality equation
constraint is expressed by the penalty method, the continuous variable z moving between 0 and 1 is introduced to create the penalty term.
[0131]
For example, the penalty term in expressing the
constraint of xl+x2 1 is expressed by the equation 15.
[Mathematical 15]
P 1 = (x 1 + x2 - (1-z) )2 - (15)
[0132]
In the above description, the variable has been stated
as "the continuous variable z moving between 0 and 1".
When xl+x2 1, the equation is established when the binary is
"the binary value variable z of 0 or 1". However, when the
number of candidates is increased, the continuous variable
is required to be used.
[0133]
For example, when up to 20 candidates are selected
from among the candidate 1 to the candidate 100,
xi+x2+x3+...xioo 20 is required to be expressed in order to
optimize the number of candidates selected. In this case,
the penalty function Px expressing this inequality equation
cannot be created only by the single binary value variable
z. For that, by introducing the continuous variable z, the
equation can be expressed only by the single auxiliary
2 variable such that Px=(x1+x2+x3+...xioo-20z) . PTL 3 describes
that the Hamiltonian in the Ising model indicating the set
partitioning problem to be calculated is generated on the
basis of the obtained candidate information, but since the
continuous variable is not used, the equation cannot be
expressed only by the single auxiliary variable.
[0134]
As described above, xi is the binary value variable of
"1" or "0", and the variable z is the auxiliary variable
that takes the range of the real number of 0 or more and 1
or less. By the combination with the penalty function Pi,
the target function H of the equation 16 is obtained. This
becomes the function to be minimized. In this example, the
mixed binary quadratic optimization problem can be handled.
For that, the degree of freedom of the value that can be
selected as the auxiliary variable z is large. Also, the
real number value can also be selected as xi, and the
application range is large. It should be noted that in the
above, depending on the case, "1" can be replaced with "+1",
and "0" can be replaced with "-1".
[0135]
[Mathematical 16]
H = Zcxk + Pi --- (16) k
[0136]
It should be noted that in Figure 11, the constant ci
represents the evaluation value of each candidate, and in
this example, as ci is larger, the evaluation of the
candidate is higher. ci may be arbitrarily set by the user,
or may be automatically set. For example, as the number of
candidates of tasks to be taken charge of is larger, the
evaluation value is increased, and so forth.
[0137]
Returning to Figure 10, as already described, in the
quadratic programming-type problem data 602, the annealing
calculation is performed by the computation device 20
applied to the optimization computation, and result data
1002 is read.
[0138]
The post-process S1003 converts the answer obtained by
the annealing to, as the answer of the column generation,
the appropriate one. For example, since it is appropriate
to select only one of the candidates 3 to 5, the solution
obtained by the annealing is probabilistically obtained
although the penalty function of the equation 14 is added,
and this constraint may be violated. At this time, the
solution is forcefully adjusted so as to obtain X3+X4+X5=1.
Thus, a solution candidate 1004 is obtained.
[0139]
In the solution evaluation and selection process S1005,
the solution candidate obtained by the column generation is
evaluated. If none of the obtained solution candidates is
as expected, the reasons such as the quality of the answer
obtained by the annealing is not good and the setting of
the evaluation value ci defined for each candidate is
inappropriate are considered. Accordingly, for example,
determining whether the quality of the solution has reached
the reference anyway, and determining, if the quality of
the solution has not reached the reference, recalculation
by adjusting the magnitude of the penalty coefficient and
the evaluation value for each candidate, and the like are
included in this process. An answer 1006 is obtained from
the finally obtained solution candidate 1004.
[0140]
The present invention is not particularly limited to
whether the constraint condition of the problem is
processed in the pre-process S710 or is processed in the
optimization problem. This may be considered depending on
the case; for example, the portion that is troublesome to
be handled in the mixed binary quadratic programming
problem is processed in the S710, and so forth.
[0141]
The one embodiment has been described above in detail,
but the present invention is not limited to the above embodiment, and needless to say, various modifications can be made within the scope not departing from its purport.
For example, the above embodiment has been described in
detail for simply describing parts of the present invention,
and is not necessarily required to include all the
described configurations. Also, part of the configuration
of the above embodiment can be subjected to addition,
deletion, and replacement with respect to other
configurations.
[0142]
Also, part or all of the above respective
configurations, functioning units, processing units,
processing means, and the like may be achieved by hardware
by, for example, designing by an integrated circuit and the
like. Also, the above respective configurations, functions,
and the like may be achieved by software in such a manner
that the processor interprets and executes the program
achieving each function. The information of the program,
the table, the file, and the like achieving each function
can be placed on a recording device, such as a memory, a
hard disk, and an SSD (Solid State Drive), and a recording
medium, such as an IC card, an SD card, and a DVD.
[0143]
Also, in the above respective drawings, the control
lines and the information lines that are considered to be necessary for description are illustrated, and all the controls lines and the information lines in terms of implementation are not always illustrated. For example, it may be considered that almost all the configurations are actually connected to each other.
[0144]
Also, the disposing form of various functioning units,
various processing units, and various databases of the
above-described information processing device 10 is only an
example. The disposing form of various functioning units,
various processing units, and various databases can be
changed to the optimal disposing form from the viewpoint of
the performance of the hardware and the software included
in the information processing device 10, the processing
efficiency, the communication efficiency, and the like.
[0145]
Also, the configuration of the database that stores
the above-described various data (schema and the like) can
be flexibly changed from the viewpoint of the efficient
usage of the resources, the improved processing efficiency,
the improved access efficiency, the improved search
efficiency, and the like.
Industrial Applicability
[0146]
The present invention can be used for the information
processing device, the computation device, the information
processing method, and the like.
[0146a]
Throughout this specification and the claims which
follow, unless the context requires otherwise, the word
"comprise", and variations such as "comprises" and
"comprising", will be understood to imply the inclusion of
a stated integer or step or group of integers or steps but
not the exclusion of any other integer or step or group of
integers or steps.
[0146b]
The reference in this specification to any prior
publication (or information derived from it), or to any
matter which is known, is not, and should not be taken as
an acknowledgment or admission or any form of suggestion
that that prior publication (or information derived from
it) or known matter forms part of the common general
knowledge in the field of endeavour to which this
specification relates.
Reference Signs List
[0147]
10... information processing device,
11... processor,
12... main storage device,
20... computation device,
511... variable memory,
512... non-linear coefficient memory,
513... linear coefficient memory,
514... difference calculation block,
515... sampling block,
516... next state decision block,
600... storage unit,
601... problem data,
602... quadratic programming-type problem data,
603... domain data,
604... computation device 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 computation execution unit,
617... variable value reading unit

Claims (11)

{THE CLAIMS DEFINING THE INVENTION ARE AS FOLLOWS:}
1. An information processing system that includes a
computation device and a calculator that controls the
computation device,
wherein the calculator includes:
a pre-processing unit that generates solution
candidates for an optimization problem including a
plurality of constraints, extracts a solution candidate
satisfying at least some of the constraints from among the
solution candidates, and generates a mixed integer
quadratic programming problem on the basis of the extracted
solution candidate; and
an interaction computation execution unit that inputs
data based on the mixed integer quadratic programming
problem to the computation device and causes the
computation device to execute computation, and
wherein the computation device performs computation
for updating variables in the mixed integer quadratic
programming problem, and outputs the variables which result
in a target function becoming a maximum or a minimum value
as a solution; and
wherein the pre-processing unit creates a candidate
list by excluding, from intermediate input data including a
set of an array, a portion of the array, and generates the mixed integer quadratic programming problem from the candidate list, and wherein the computation device includes: a variable memory that stores a value indicating a state of the variable of the mixed integer quadratic programming problem; a state transition calculation block that calculates a next state of the value indicating the state of the variable; a non-linear coefficient memory that stores a non linear coefficient of the state transition calculation block; a linear coefficient memory that stores a linear coefficient of the state transition calculation block; a weight input line that receives a weight signal of the state transition calculation block; and a temperature input line that receives a temperature signal of the state transition calculation block, and wherein the state transition calculation block includes: a difference calculation block that calculates difference calculation by using the weight signal, the non linear coefficient, and the linear coefficient; a sampling block that randomly performs sampling from a probability distribution with section constraints by using the weight signal, the temperature signal, and the output value of the difference calculation block; and a next state decision block that calculates the next state of the variable by using the value read from the variable memory.
2. The information processing system according to claim 1,
wherein the variable memory stores a continuous value
as each value xi, ... , XN and yi, .. , yN indicating the state
of the variable.
3. The information processing system according to claim 2,
wherein the information processing system includes:
a storage unit that stores a domain of the variable of
the mixed integer quadratic programming problem; and
a variable value reading unit that reads the value
from the variable memory and converts the continuous value
stored in the variable memory to a binary value on the
basis of the domain of the variable.
4. The information processing system according to claim 2,
wherein the non-linear coefficient J is an NXN matrix,
wherein the linear coefficient h is an N-dimensional
vector, and
wherein the weight signal SW is a signal representing a vector of N elements representing diagonal components wi,
... wN of a diagonal matrix W.
5. The information processing system according to claim 4,
wherein the non-linear coefficient J, the linear
coefficient h, the weight signal SW, and the value stored
in the variable memory are inputted to the difference
calculation block, and the difference calculation block
outputs (J+diag(wi, ... , wN))s+h, and
wherein it should be noted that s is one of N
dimensional vectors (x1, ... , XN) and (yi, .. , yN)•
6. The information processing system according to claim 4,
wherein the non-linear coefficient J is a symmetric
matrix.
7. The information processing system according to claim 6,
wherein an element of the ith row and the ith column
of the non-linear coefficient J is 0.
8. The information processing system according to claim 5,
wherein an output A of the difference calculation
block, the weight signal SW, the temperature signal TE, the
control signal EN, and the value stored in the variable
memory are inputted to the sampling block, wherein one or a plurality of values are outputted by being randomly sampled from a normal distribution in which
- (2-|yil) or more and (2-|yil) or less is a domain when the
control signal EN is a first value and -(2-|xil) or more and
(2-|xil) or less is a domain when the control signal EN is a
second value, and
wherein the normal distribution is formed on the basis
of the output A, the weight signal SW, and the temperature
signal TE.
9. The information processing system according to claim 8,
wherein the normal distribution is a normal
distribution having average Ai/wi and distribution T/wi, and
wherein it should be noted that Ai is the ith value of
the output A and T is the value of the temperature signal
TE.
10. The information processing system according to claim 5,
wherein the information processing system includes a
plurality of units each including a multiple value memory
that stores one of the values xi, ... , XN and yi, .••, yN
indicating the state of the variable,
wherein each of the units includes a difference
calculation circuit that executes a function of part of the
difference calculation block, a sampling circuit that executes a function of part of the sampling block, and a next state decision circuit that executes a function of part of the next state decision block, and wherein in the unit including the multiple value memory that stores one of the values xi and yi indicating the state of the variable, the difference calculation circuit receives, as inputs, the non-linear coefficient J, the linear coefficient h, the ith diagonal component wi of the diagonal matrix W, the N-dimensional vector (y, ... , yN) when the value stored in the multiple value memory of the noting unit is xi, and the N-dimensional vector (xi, ... , XN) when the value stored in the multiple value memory of the noting unit is yi, and outputs A±=h+wis±+E±jsj (where hi is the ith element of the linear coefficient h, and s represents y when the value stored in the multiple value memory of the noting unit is xi and x when the value stored in the multiple value memory of the noting unit is y).
11. The information processing system according to claim
10,
wherein the output A± of the difference calculation
circuit, the diagonal component wi, the temperature signal
TE, the control signal EN, and the value stored in the
variable memory are inputted to the sampling circuit, and
wherein one or a plurality of values are outputted by being randomly sampled from the normal distribution having the average Ai/wi and the distribution T/wi in which -(2-|yil) or more and ( 2 -|yI) or less is a domain when the control signal EN is a first value and -(2-xI) or more and (2-xI) or less is a domain when the control signal EN is a second value (it should be noted that T is the value of the temperature signal TE).
AU2020465147A 2020-08-27 2020-08-27 Information processing system and optimal solution search processing method Active AU2020465147B2 (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2020/032299 WO2022044184A1 (en) 2020-08-27 2020-08-27 Information processing system and optimal solution search processing method

Publications (2)

Publication Number Publication Date
AU2020465147A1 AU2020465147A1 (en) 2023-03-23
AU2020465147B2 true AU2020465147B2 (en) 2023-11-09

Family

ID=80352829

Family Applications (1)

Application Number Title Priority Date Filing Date
AU2020465147A Active AU2020465147B2 (en) 2020-08-27 2020-08-27 Information processing system and optimal solution search processing method

Country Status (3)

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

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000112505A (en) * 1998-10-06 2000-04-21 Nec Corp Device and method for making production plan and program machine readable recording medium stored with program
JP2017151810A (en) * 2016-02-25 2017-08-31 新日鉄住金ソリューションズ株式会社 Information processing device, information processing method, and program
US20180285787A1 (en) * 2015-09-30 2018-10-04 Nec Corporation Optimization system, optimization method, and optimization program

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000112505A (en) * 1998-10-06 2000-04-21 Nec Corp Device and method for making production plan and program machine readable recording medium stored with program
US20180285787A1 (en) * 2015-09-30 2018-10-04 Nec Corporation Optimization system, optimization method, and optimization program
JP2017151810A (en) * 2016-02-25 2017-08-31 新日鉄住金ソリューションズ株式会社 Information processing device, information processing method, and program

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 *

Also Published As

Publication number Publication date
JP7425210B2 (en) 2024-01-30
WO2022044184A1 (en) 2022-03-03
AU2020465147A1 (en) 2023-03-23
JPWO2022044184A1 (en) 2022-03-03

Similar Documents

Publication Publication Date Title
JP6925546B1 (en) Arithmetic system, information processing device, and optimal solution search processing method
JP6874219B2 (en) Information processing device, arithmetic unit, and information processing method
JP7007520B2 (en) Information processing device, arithmetic unit, and information processing method
US20220335323A1 (en) Solution system, solution method, and solution program
JP6959975B2 (en) How to determine computer system and resource allocation
JP7085158B2 (en) Neural network learning device, neural network learning method, program
US20230376559A1 (en) Solution method selection device and method
AU2020465147B2 (en) Information processing system and optimal solution search processing method
JP7219402B2 (en) Optimization device, optimization device control method, and optimization device control program
US11409836B2 (en) Optimization problem arithmetic method and optimization problem arithmetic apparatus
Yamamoto et al. Definition of FTL with bypass lines and its simulator for buffer size decision
JP7470019B2 (en) Information Processing System
US11106761B2 (en) Optimization problem arithmetic method and optimization problem arithmetic apparatus
US20210264259A1 (en) Learning device, inference device, learning method, and inference method
CN114998025A (en) Investment combination decision generation method and device, electronic equipment and storage medium
JP7357795B2 (en) Information processing method and information processing system
WO2021100121A1 (en) Information processing apparatus, information processing method, non-transitory computer readable medium
JP7444804B2 (en) Control method and sampling device
Seyed Sakha et al. Optimal sensors and actuators placement for large-scale switched systems
JP7398401B2 (en) Optimization method, information processing device and system using the same
US20230267170A1 (en) Information processing system, information processing method, and non-transitory computer-readable recording medium for information processing program
JP2022158010A (en) Information processing system, information processing method, and information processing program
US20230153376A1 (en) Optimization method, information processing device, and information processing system
JP2024049148A (en) Information processing method and information processing device
US20230162062A1 (en) Optimization and decision-making using causal aware machine learning models trained from simulators

Legal Events

Date Code Title Description
FGA Letters patent sealed or granted (standard patent)