Information processing device, information processing method, program, and circuit information
The information processing device addresses the challenge of solving combinatorial optimization problems by generating and solving problems based on real-time data, ensuring that processing is aligned with the latest conditions to prevent suboptimal actions.
Patent Information
- Application Number
- JP2023122127
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2023-07-27
- Publication Date
- 2025-02-06
- Estimated Expiration
- 2043-07-27
AI Technical Summary
Existing information processing systems face challenges in efficiently solving large-scale combinatorial optimization problems due to the exponential increase in possible solutions, leading to inappropriate processing when situations change during the solution generation process.
An information processing device that generates a combinatorial optimization problem based on acquired data, uses a solver device to find a solution, and adjusts processing based on state information to ensure the solution reflects the latest data, preventing inappropriate actions.
The system ensures that processing is performed based on the most up-to-date information, preventing suboptimal actions by distinguishing between clean and dirty solutions, thereby enhancing the relevance and effectiveness of the processing outcomes.
Smart Images

Figure 2025018431000001_ABST
Abstract
Description
[Technical field]
[0001] The present invention relates to an information processing device, an information processing method, a program, and circuit information. [Background technology]
[0002] In many application fields, such as control, finance, communication, logistics, and chemistry, system optimization is often mathematically reduced to a combinatorial optimization problem. Information processing systems have been proposed that realize various information processing functions, such as recognition, judgment, and planning, and improve the efficiency of such functions by solving combinatorial optimization problems.
[0003] A combinatorial optimization problem is a problem in which a cost function is defined with arguments being multiple decision variables (e.g., discrete variables) that represent the state of the system to be optimized, and the combination of values of multiple decision variables that minimizes the defined cost function is solved. The state of the system represented by multiple decision variables is called a solution. In a combinatorial optimization problem, the number of states that can be taken as a solution increases exponentially as the number of decision variables increases. The increase in the number of states that can be taken as a solution is called combinatorial explosion. Combinatorial optimization, which involves selecting an optimal solution from all candidate solutions, is known to be a computationally difficult problem. Performing large-scale combinatorial optimization in a short period of time remains a challenging task.
[0004] In recent years, a special-purpose device called an Ising machine that searches for the ground state of an Ising spin model has been attracting attention. The problem of searching for the ground state of an Ising spin model is called the Ising problem. The Ising problem is a combinatorial optimization problem that minimizes a cost function given by a quadratic function of Ising spin, which is one of the binary variables. In the Ising problem, the cost function is called the Ising energy. Many practical combinatorial optimization problems can be converted into Ising problems. An Ising machine can solve an Ising problem quickly. Therefore, many practical combinatorial optimization problems can be solved quickly using an Ising machine.
[0005] However, when the situation is constantly changing, a new combinatorial optimization problem may be generated and solved in response to the change in the situation, and processing may be performed based on the obtained solution. For example, when applying a combinatorial optimization problem to a trading device that electronically trades stocks in a financial market, a new combinatorial optimization problem is generated in response to fluctuations in stock prices, and trading is performed based on the obtained solution. Also, when applying a combinatorial optimization problem to a control system that controls a moving object based on images of captured surrounding scenery, a new combinatorial optimization problem is generated in response to changes in the image, and the moving object is controlled based on the obtained solution.
[0006] However, since it takes a certain amount of time from when a combinatorial optimization problem is generated until a solution is obtained, if the situation changes during the processing period from when a combinatorial optimization problem is generated until a solution is obtained, even if processing is performed based on the obtained solution, the executed processing may not be effective. [Prior art documents] [Patent documents]
[0007] [Patent Document 1] Patent No. 6629864 [Patent Document 2] JP 2021-060864 A [Patent Document 3] JP 2019-145010 A [Patent Document 4] JP 2019-159566 A [Patent Document 5] Patent Publication No. 2021-043667 [Patent Document 6] JP 2021-043589 A [Non-patent literature]
[0008] [Non-Patent Document 1] Hayato Goto, Kosuke Tatsumura and Alexander R. Dixon, “Combinatorial optimization by simulating adiabatic bifurcations in nonlinear Hamiltonian systems,” Science Advances 5, eaav2372, 2019 [Non-Patent Document 2] Hayato Goto, Kotaro Endo, Masaru Suzuki, Yoshisato Sakai, Taro Kanao, Yohei Hamakawa, Ryo Hidaka, Masaya Yamasaki and Kosuke Tatsumura, “High-performance combinatorial optimization based on classical mechanics”, Science Advances 7, eabe7953, 2021 Summary of the Invention [Problem to be solved by the invention]
[0009] The problem to be solved by the present invention is to prevent the execution of inappropriate processing when processing is performed on data using a combinatorial optimization problem. [Means for solving the problem]
[0010] An information processing device according to an embodiment executes processing on data. The information processing device acquires the data, generates a combinatorial optimization problem based on the acquired data, causes a solver device to solve the combinatorial optimization problem, sets state information to a first state in response to start of generation of the combinatorial optimization problem, sets the state information to a second state in response to acquisition of the data, acquires a solution to the combinatorial optimization problem from the solver device, and executes processing based on the solution. In executing processing based on the solution, the information processing device changes the processing based on the solution depending on the state information. [Brief description of the drawings]
[0011] [Figure 1] A diagram showing a model of the Ising problem. [Diagram 2] FIG. 2 illustrates internal variables used by the simulated branching algorithm. [Diagram 3] 4 is a flowchart showing the flow of processing of a simulated branching machine. [Figure 4] FIG. 1 is a diagram showing a configuration of an information processing system including an Ising machine. [Diagram 5] FIG. 1 is a diagram showing a configuration of an information processing system including a simulated branching machine. [Figure 6] Diagram of the market system. [Figure 7] FIG. 1 is a diagram showing the arrangement of an information processing apparatus according to a first embodiment. [Figure 8] FIG. [Figure 9] 5 is a flowchart showing processing of a processing execution unit according to the first embodiment. [Figure 10] FIG. 4 is a timing chart of a first example of processing by the information processing device according to the first embodiment. [Figure 11] FIG. 4 is a timing chart of a second example of processing by the information processing device according to the first embodiment. [Figure 12] FIG. 11 is a timing chart of a third example of processing by the information processing device according to the first embodiment. [Figure 13] FIG. 13 is a diagram showing the arrangement of an information processing device according to a second embodiment. [Figure 14] 10 is a flowchart showing processing of a processing execution unit according to the second embodiment. [Figure 15] FIG. 13 is a diagram showing the arrangement of an information processing device according to a third embodiment. [Figure 16] FIG. 13 is a diagram showing the arrangement of an information processing device according to a fourth embodiment. [Figure 17] 13 is a flowchart showing the processing of a solver device according to the fourth embodiment. [Figure 18] FIG. 13 is a timing chart showing processing by the information processing device according to the fourth embodiment. [Figure 19] FIG. 1 is a diagram showing an example of the configuration of a control system. [Figure 20] FIG. 2 is a hardware configuration diagram of an information processing device. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0012] (premise) First, terms and techniques that are the basis for the description of the embodiments will be described.
[0013] A combinatorial optimization problem is a problem in which a cost function is defined with multiple decision variables (e.g., discrete variables) representing the state of a system to be optimized as arguments, and a combination of values of multiple decision variables that minimizes the defined cost function is solved. The cost function includes multiple decision variables representing the state of the system as arguments, and is a linear or higher function of the multiple decision variables. For example, the cost function is expressed by a linear or quadratic function of the multiple decision variables. The cost function may be a cubic or higher function of the multiple decision variables. In other words, the cost function is a function that sums up multiple terms. Each of the multiple terms is a function that multiplies one or more of the multiple decision variables, up to a predetermined number of them, by a coefficient. In addition, the coefficient in each of the multiple terms is a real number and is also called a weight value. In other words, each of the multiple terms that constitute the cost function is expressed by multiplying one or more of the multiple decision variables by any one of the multiple weight values.
[0014] The state of the system, represented by the decision variables, is called a solution. The universe of possible solutions for the state of the system is called the solution space. The solution that gives the minimum of the cost function is called an exact solution. The solution that gives a value close to the minimum of the cost function is called a good solution.
[0015] An exact solution method is a method for finding an exact solution that gives a minimum value of a cost function for a combinatorial optimization problem, and is a method that guarantees that the solution is an exact solution.
[0016] A heuristic solution is a solution method for combinatorial optimization problems that finds an exact solution that minimizes the cost function or a good solution that is close to the minimum of the cost function. Heuristic solutions are also called discovery solutions. Heuristic solutions do not guarantee the accuracy of the solution, that is, an index that indicates how close the solution is to the minimum of the cost function. Heuristic solutions can output a solution with practically significant accuracy in a shorter solution time than exact solutions.
[0017] The computational complexity of a solution to a combinatorial optimization problem is the amount of calculations required to obtain a solution, such as the number of multiply-and-accumulate operations. The solution time required to obtain a solution to a combinatorial optimization problem depends not only on the computational complexity but also on the configuration of the computer that processes the calculations. For example, the solution time becomes shorter as the computer's computational parallelism and operating frequency increase.
[0018] A QUBO (Quadratic Unconstrained Binary Optimization) problem is an unconstrained quadratic optimization problem in which the decision variables are binary. In a QUBO problem, each of a number of terms included in a cost function is expressed by a linear or quadratic expression of the decision variables. In a narrowly defined QUBO problem, the decision variables are binary variables of 0 or 1. In this embodiment, the QUBO problem represents a narrowly defined problem in which the decision variables are 0 or 1. In a narrowly defined QUBO problem, the decision variables may also be called bit variables.
[0019] The cost function for the QUBO problem is H in Eq. (1). total_QUBO It is expressed by:
number
[0020] FIG. 1 is a diagram showing a model of the Ising problem. The Ising problem is a problem of searching for the ground state of the Ising model. The Ising problem is one of the QUBO problems. The decision variables of the Ising problem represent discrete variables of -1 or +1.
[0021] The cost function for the Ising problem is H in Eq. (2). total_Ising It is expressed by:
number
[0022] If the decision variable is s i The QUBO problem corresponds to the problem of searching for the ground state of the Ising model, which is one of the magnetic models in statistical mechanics. i is sometimes called the spin variable. The number of decision variables, N, is sometimes called the spin number. H total_Ising is sometimes called the Zing energy. total_Ising N s for which iThe vector represented by is sometimes called the ground state (ground spin configuration).
[0023] The cost function of the QUBO problem and the cost function of the Ising problem differ only in the value of the constant. Therefore, the QUBO problem and the Ising problem are the same as combinatorial optimization problems. In other words, the QUBO problem and the Ising problem can be converted into each other. For example, the Ising problem and the QUBO problem can be converted into each other by formula (3-1), formula (3-2), formula (3-3), and formula (3-4).
number
[0024] QUBO and Ising problems are known to be NP-complete. That is, many NP-hard problems can be transformed into QUBO or Ising problems in polynomial time. Therefore, many practical combinatorial optimization problems can be transformed into QUBO or Ising problems.
[0025] An Ising machine is a device that solves Ising problems. Most Ising machines solve Ising problems using heuristic solutions. Ising machines based on various principles, such as electronic engineering, optics, quantum mechanics, and statistical mechanics, have been proposed. Many Ising machines can output exact or good solutions in a short time.
[0026] The simulated branching algorithm is an algorithm for solving combinatorial optimization problems. The simulated branching algorithm is a heuristic solution algorithm.
[0027] The simulated bifurcation algorithm is shown in, for example, Non-Patent Documents 1-2 and Patent Documents 2-6. The simulated bifurcation algorithm was discovered based on the idea of a quantum mechanical optimization method based on the quantum adiabatic theorem, and is therefore also called a quantum-inspired algorithm. The simulated bifurcation algorithm can solve a combinatorial optimization problem in which the cost function is a quadratic function of multiple decision variables. The simulated bifurcation algorithm can also solve a combinatorial optimization problem in which the cost function is a cubic or higher function of multiple decision variables, that is, a HUBO (Higher Order Binary Optimization) problem. For example, a simulated bifurcation algorithm that solves a HUBO problem is shown in Patent Document 5. The simulated bifurcation algorithm can also solve a combinatorial optimization problem in which some or all of the multiple decision variables include variables with continuous values. A simulated bifurcation algorithm that solves a combinatorial optimization problem in which some or all of the multiple decision variables include variables with continuous values is shown in Patent Document 6.
[0028] The simulated bifurcation machine is a computing device that executes processing according to a simulated bifurcation algorithm. The simulated bifurcation machine that solves the QUBO problem or the Ising problem is an example of an Ising machine. In this embodiment, the simulated bifurcation machine solves the Ising problem.
[0029] FIG. 2 is a diagram showing the internal variables used by the simulated branching algorithm.
[0030] The simulated branching algorithm is a method to determine the number of decision variables (s1 to s N When solving a combinatorial optimization problem in which the cost function is expressed using N ) and N momentum variables (y1~y N ) is used. That is, the simulated bifurcation algorithm uses 2×N internal variables.
[0031] N location variables (x i ) is the number of N decision variables (si ) in one-to-one correspondence. That is, the i-th position variable (x i ) is the i-th decision variable (s i ) corresponding to the N momentum variables (y i ) is the number of N decision variables (s i ) corresponds to the i-th momentum variable (y i ) is the i-th decision variable (s i )
[0032] 3 is a flow chart showing the flow of processing of the simulated branching machine. The simulated branching machine executes processing according to the simulated branching algorithm in the flow shown in FIG.
[0033] First, in S11, the simulated bifurcation machine obtains an Ising problem. Specifically, the simulated bifurcation machine obtains J, which is a matrix including N×N coefficients, and h, which includes N bias coefficients.
[0034] Next, in S12, the simulated branching machine calculates 2×N internal variables, i.e., N position variables (x1 to x N ) and N momentum variables (y1~y N ) is initialized. The simulated branching machine initializes N position variables (x1 to x N ) and the initial values of N momentum variables (y1~y N The initial values of N position variables (x1 to x N ) and the initial values of N momentum variables (y1~y N The initial value of x1 to x2 may be generated by a random number generator or may be set to a predetermined value. Since the simulated branching machine is a heuristic, the initial value of x1 to x2 may be set to a predetermined value even if the same problem is being solved. N ) and the initial values of N momentum variables (y1~y N) is different, a different good solution may be output.
[0035] Next, the simulated branching machine repeats the process from S14 to S16 a preset number of times (loop process between S13 and S17). The process from S14 to S16 is performed by iterating N position variables (x1 to x N ) by a matrix containing weight values of N rows and N columns, and N ) and N momentum variables (y1~y N ) is a time evolution process.
[0036] In S14, the simulated bifurcation machine calculates N momentum variables (y1 to y N ) in the y update process. The simulated bifurcation machine updates the i-th momentum variable (y i In the update process of N position variables (x1~x N ) and the i-th position variable (x i ) and the other (N-1) location variables (x 1~i-1, x i+1~N ) and N coefficients (J i,j ) and the i-th bias coefficient (h i ) and the i-th momentum variable (y i ) to update the
[0037] Next, in S15, the simulated branching machine calculates N position variables (x1 to x N ) in the x update process. The simulated branch machine updates the i-th position variable (x i In the update process of the i-th momentum variable (y i ) to the i-th position variable (x i ) to update the
[0038] The simulated branching machine may execute the process of S14 and the process of S15 in an interchangeable order.
[0039] Next, in S16, the simulated branching machine calculates N position variables (x1 to x N ), the simulated branching machine performs wall processing on the position variables whose absolute values exceed 1. Furthermore, the simulated branching machine also performs wall processing on the momentum variables corresponding to the position variables whose absolute values exceed 1. For example, in wall processing, the simulated branching machine changes the absolute value of the position variable whose absolute value exceeds 1 to 1 or a value smaller than 1 while keeping the sign the same. Also, for example, in wall processing, the simulated branching machine changes the value of the momentum variable corresponding to the position variable whose absolute value exceeds 1 to 0.
[0040] The simulated bifurcation algorithm has variations in the calculation of x-update processing, y-update processing, and wall processing. For example, the simulated bifurcation algorithm has variations such as the adiabatic simulated bifurcation (aSB) algorithm, the ballistic simulated bifurcation (bSB) algorithm, and the discrete simulated bifurcation (dSB) algorithm.
[0041] When executing processing according to the adiabatic simulated branching algorithm, the simulated branching machine executes the calculation shown in formula (4-1) in the y update processing (S14), and executes the calculation shown in formula (4-2) in the x update processing (S15). Note that when executing processing according to the adiabatic simulated branching algorithm, the simulated branching machine does not execute the wall processing (S15).
number
[0042] When executing processing according to the ballistic simulated branching algorithm, the simulated branching machine performs the calculation shown in equation (5-1) in the y update processing (S14), the calculation shown in equation (5-2) in the x update processing (S15), and the calculation shown in equation (5-3) in the wall processing (S16).
number
[0043] When executing processing according to the discrete simulated branching algorithm, the simulated branching machine performs the calculation shown in equation (6-1) in the y update processing (S14), the calculation shown in equation (6-2) in the x update processing (S15), and the calculation shown in equation (6-3) in the wall processing (S16).
number
[0044] In addition, in formulas (4-1), (4-2), (5-1), (5-2), (5-3), (6-1), (6-2) and (6-3), t k and t k+1 represents the time. k+1 t k This is the time obtained by adding a unit time (Δt) to the current time.
[0045] x i (t k ) is the time (t k ) the i-th position variable (x i ) value. i (t k+1 ) is the time (t k+1 ) the i-th position variable (x i ) value. i (t k ) is the time (t k ) the i-th momentum variable (y i ) value. i (t k+1 ) is the time (t k+1 ) the i-th momentum variable (yi ) value.
[0046] K, a0, η, and c0 are predetermined constants. k ) is a function that changes with time. k ) is a positive real number that increases as time increases, for example, a(t1)=0, and is a function that becomes a0 at the end time (T) (a(T)=a0). Also, sgn(x i (t k )) is the time (t k ) the i-th position variable (x i ), which is a function that outputs the sign of x i (t k ) is 0 or more, then +1, x i (t k ) is less than 0, it becomes -1.
[0047] When the simulated branching machine has executed the processes of S14 to S16 a predetermined number of times, that is, when it has executed the operations until time t reaches the final time T, it exits the loop process between S13 and S17 and proceeds to S18.
[0048] In S18, the simulated branching machine calculates the N position variables (x1 to x N ), or N position variables (x1~x N ) are calculated based on N decision variables (s1 to s N ) The simulated branching machine outputs N decision variables (s1 to s N ) the i-th decision variable (s i ) to sgn(x i ) is used as the basis for the calculation.
[0049] When the simulated branching machine finishes the process of S18, it ends the process according to the simulated branching algorithm.
[0050] The number of times the time-evolution process (loop process between S13 and S17) is repeated is determined in advance depending on the application. The amount of calculation required for one process in the time-evolution process (one process from S14 to S16) does not vary. For this reason, the simulated branching machine can reduce fluctuations in the solution-finding time. Therefore, even if the simulated branching machine is applied to a real-time system with time constraints that require processing to be completed by a certain time, it can reliably output a solution by the certain time.
[0051] Also, as shown in Patent Document 2, for example, the simulated branching machine can be configured using a dedicated parallel processing circuit including a large number of arithmetic units. This allows the simulated branching machine to extremely shorten the calculation time for one processing in time-evolution processing. Also, unlike software processing, the simulated branching machine implemented in a dedicated hardware circuit does not generate any interrupt processing, so the solution-finding time is strictly fixed. For example, the simulated branching machine implemented in a dedicated hardware circuit can fix the time until a solution is obtained in clock cycle units. Therefore, when applied to a real-time system, the simulated branching machine implemented in a dedicated hardware circuit can output a solution while more reliably observing time constraints.
[0052] FIG. 4 is a diagram showing a configuration of an information processing system including an Ising machine and a host device. An information processing system having a function of solving a combinatorial optimization problem can be configured, for example, by an Ising machine and a host device. The host device executes processes other than the processes executed by the Ising machine. In this case, the Ising machine is introduced for the purpose of shortening the time required to solve the combinatorial optimization problem, and is considered to be an accelerator or offloader. The host device includes a general-purpose processor, an offloader other than the Ising machine, a memory, a storage, a sensor, an actuator, a communication interface, and the like.
[0053] The host device provides at least information for identifying the QUBO problem (matrix (Q)) or information for identifying an Ising problem (matrix (J) and bias coefficient array (h)) to the Ising machine. The Ising machine may obtain the information for identifying the QUBO problem (matrix (Q)) and convert it into information for identifying an Ising problem (matrix (J) and bias coefficient array (h)). Then, after the optimization process, the Ising machine outputs N decision variables (s1 to s N ) opt ) is returned to the host device.
[0054] FIG. 5 is a diagram showing a configuration of an information processing system including a simulated branching machine and a host device.
[0055] The information processing system having a function of solving a combinatorial optimization problem may include a simulated bifurcation machine as an Ising machine. In this case, the host device provides information (matrix (J) and bias coefficient (h)) for identifying an Ising problem to the simulated bifurcation machine. Furthermore, the host device provides N position variables (x1 to x N ) and the initial values of N momentum variables (y1~y N The host device may also provide initial values for various constants and functions (e.g., K, a0, c 0、 a(t) and Δt) may be given to the simulated branching machine. After the optimization process, the simulated branching machine outputs N decision variables (s1 to s N ) opt ), we use N position variables (x1~x N ) opt ) may be sent back to the host device.
[0056] (First embodiment) Next, the market system 10 according to the first embodiment will be described.
[0057] 6 is a diagram showing the configuration of the market system 10. The market system 10 executes electronic trading of a plurality of targets by a plurality of participants. More specifically, the market system 10 accepts buy orders and sell orders from each of the plurality of participants for each of the plurality of targets, matches the price and quantity of the accepted buy order with the price and quantity of the sell order, and electronically completes the trade.
[0058] In this embodiment, the market system 10 executes buying and selling transactions of multiple stocks (multiple brands of stocks) as electronic transactions of multiple targets. Note that the targets are not limited to stocks, and may be securities such as bonds, stock investment trusts, real estate investment trusts, and futures thereof, financial products such as foreign exchange, interest rates, and interest rate futures, or commodities such as gold, crude oil, and grains, and commodity futures thereof, as long as they are tradable in the market.
[0059] The market system 10 includes a market server device 12 and a plurality of client devices 14 .
[0060] The market server device 12 is a computer used by a market administrator. The market server device 12 is connected to a plurality of client devices 14 via a network.
[0061] Each of the client devices 14 is a device used by a market participant, and is realized, for example, by a computer.
[0062] Each of the multiple client devices 14 determines which stock among the multiple stocks to trade. Each of the multiple client devices 14 generates an order packet including trading information for the stock among the multiple stocks that it has decided to trade, and transmits the packet to the market server device 12. The order packet includes, as the trading information, for example, identification information for identifying the stock to be traded among the multiple stocks, a buying / selling direction, price (i.e., stock price), and quantity (i.e., number of shares) representing a sell order or a buy order for the stock identified by the identification information. The price is not limited to a specific value, and may be, for example, a value at the time of the transaction being concluded after the market opens, or a value having a certain range.
[0063] Market server device 12 executes trading of a plurality of stocks. Market server device 12 includes a receiving unit 16, a matching unit 17, and a distribution unit 18.
[0064] The receiving unit 16 receives the order packets transmitted from each of the multiple client devices 14. The receiving unit 16 provides the matching unit 17 with information on the received order packets.
[0065] The matching unit 17 matches the price and quantity of sell orders with the price and quantity of buy orders for each of a plurality of stocks, and completes transactions between sell orders and buy orders whose prices and quantities match in the order in which they are received. The matching unit 17 provides the distribution unit 18 with information about orders that have been completed and information about orders that have not been completed.
[0066] The distribution unit 18 distributes market condition packets including information indicating the status of stock transactions to multiple client devices 14 simultaneously based on the information acquired from the matching unit 17. A market condition packet is generated, for example, for each of multiple stocks. The market condition packet includes identification information for identifying the stock and a transaction price, which is the latest price at which a transaction was concluded for the stock identified by the identification information.
[0067] The market condition packet may also include quote information for each of a plurality of stocks. The quote information is information indicating the price and quantity of unsettled buy orders and information indicating the price and quantity of unsettled sell orders for each of a plurality of stocks.
[0068] The distribution unit 18 distributes market condition packets irregularly. For example, when a trade is concluded, the distribution unit 18 distributes a market condition packet for the stock for which the trade is concluded. For example, each of the multiple client devices 14 acquires the market condition packet distributed irregularly, and determines which of the multiple stocks to trade based on information contained in the acquired market condition packet. Then, each of the multiple client devices 14 generates an order packet for the determined stock and transmits it to the market server device 12.
[0069] The information processing device 20 according to the present embodiment functions as a client device 14 in the market system 10. The information processing device 20 may be realized by a computer including a processor, a memory, and the like, or may be configured to include a dedicated hardware circuit in addition to a processor, a memory, and the like.
[0070] Here, the information processing device 20 generates a combinatorial optimization problem based on market condition packets acquired at irregular intervals, solves the generated combinatorial optimization problem, and based on the solution to the combinatorial optimization problem obtained by solving it, decides whether or not to trade each of the multiple stocks.
[0071] In this embodiment, the information processing device 20 uses a function shown in equation (7) as a cost function in a combinatorial optimization problem.
number
[0072] In formula (7), N is an integer equal to or greater than 2 and represents the number of stocks traded in market server device 12. i and j are integers equal to or greater than 1 and equal to or less than N, and are indexes that identify each of the stocks.
[0073] The cost function in equation (7) includes N decision variables. i is a binary variable, 0 or 1, that indicates whether to trade the i-th stock among multiple stocks. j is a binary value of 0 or 1, and is a decision variable that indicates whether or not to trade the j-th stock among multiple stocks. i and b j represents 1 if a transaction is made and 0 if a transaction is not made.
[0074] t represents any time between the start time and the end time of trading in one day. t is 0 at the start time of trading and increases as time passes from the start time of trading. In this embodiment, t is an integer and represents time as an index.
[0075] p i (t) is the trading price of the i-th stock at time t, i.e., the stock price at time t. p i (0) is the trading price at the opening time of the i-th stock, i.e., the stock price at the opening time of the trading. α and β are preset constants.
[0076] p i (t) / p i (0)-1 represents the rate of change based on the trading price at the start of trading. i (t) / p i If (0)-1 is greater than 0, it indicates that the price of the i-th stock is rising, and if it is less than 0, it indicates that the price of the i-th stock is falling.
[0077] The first term on the right side of the cost function in formula (7) is a term that evaluates the difference between the rate of change of each of multiple stocks and a preset value α. Therefore, the cost function in formula (7) decreases when trading stocks whose rate of change is greater than α.
[0078] The second term on the right side of the cost function in equation (7) is a term that evaluates the absolute value of the difference between the rate of change of the i-th stock and the j-th stock among multiple stocks. Therefore, the cost function in equation (7) decreases when trading a pair of two stocks whose absolute value of the difference in the rate of change is large, that is, whose rate of change correlation is low.
[0079] From the above, the combinatorial optimization problem of minimizing the cost function in equation (7) can obtain a solution that diversifies risk by buying and selling stocks with high fluctuation rates while trading stocks with low correlation.
[0080] The information processing device 20 obtains a solution to a combinatorial optimization problem that minimizes such a cost function, i.e., the values of the N decision variables. The information processing device 20 decides to trade stocks corresponding to the decision variables having a value of 1 among the N decision variables. The information processing device 20 then generates an order packet including trading information for the stocks for which it has been decided to execute the trade among the multiple stocks, and transmits the order packet to the market server device 12.
[0081] Furthermore, the information processing device 20 determines the direction of buying and selling for the i-th stock, i.e., whether to make a sell order or a buy order, based on the rate of change. For example, when making a buy order in the case of an upward trend, i.e., when following the trend, the information processing device 20 makes a buy order when the rate of change is positive and a sell order when the rate of change is negative. Conversely, when making a sell order in the case of an upward trend, i.e., when following the trend, the information processing device 20 makes a sell order when the rate of change is positive and a buy order when the rate of change is negative. In this embodiment, the information processing device 20 makes a sell order when the rate of change is positive and a buy order when the rate of change is negative.
[0082] The information processing device 20 may solve a combinatorial optimization problem that minimizes a cost function other than the cost function shown in equation (7).
[0083] FIG. 7 is a diagram showing the configuration of the information processing device 20 according to the first embodiment.
[0084] The information processing device 20 acquires data provided irregularly, generates a combinatorial optimization problem based on the acquired data, and generates output data based on a solution to the generated combinatorial optimization problem. The information processing device 20 then outputs the generated output data to a first device different from the information processing device 20. In this embodiment, the information processing device 20 receives market condition packets provided irregularly from the market server device 12 as data. The information processing device 20 generates a combinatorial optimization problem based on the received market condition packets, and generates an order packet as output data based on the solution to the generated combinatorial optimization problem. In this embodiment, the information processing device 20 then transmits the generated order packet to the market server device 12, which is an example of a first device.
[0085] The information processing device 20 includes an input memory 32, an acquisition unit 36, a solver device 40, a problem generation unit 42, a state control unit 44, and a process execution unit 46.
[0086] The input memory 32 stores a plurality of input values that are the basis of a plurality of weight values included in the cost function of the combinatorial optimization problem. In this embodiment, the input memory 32 stores values corresponding to a plurality of trading prices as a plurality of input values. The values corresponding to a plurality of trading prices stored in the input memory 32 correspond one-to-one to a plurality of stocks. That is, the input memory 32 stores a value corresponding to a trading price for each of a plurality of stocks. In this embodiment, the information processing device 20 trades N stocks. Therefore, the input memory 32 stores N input values as a plurality of input values. Furthermore, the n-th input value (n is an integer of 1 or more and N or less) among the N input values corresponds to the n-th target of the N stocks. The value corresponding to the trading price may be the trading price, or may be a value obtained by performing a predetermined process or calculation on the trading price. For example, the value corresponding to the trading price may be a rate of increase or decrease that indicates the ratio of the latest trading price to the trading price at the start of trading.
[0087] The acquisition unit 36 acquires data that is repeatedly given at irregular intervals. The data acquired by the acquisition unit 36 includes input information related to at least one of the multiple targets. When the acquisition unit 36 acquires data, the acquisition unit 36 rewrites, based on the input information included in the acquired data, an input value corresponding to the target related to the input information included in the acquired data, among the multiple input values stored in the input memory 32.
[0088] In this embodiment, the acquiring unit 36 acquires a market condition packet, which is an example of data repeatedly provided at irregular intervals, from the market server device 12. The market condition packet includes the trading price of at least one of the N stocks as input information. When the acquiring unit 36 acquires the market condition packet, the acquiring unit 36 rewrites the value corresponding to the trading price of the stock indicated in the acquired market condition packet, among the values corresponding to the trading prices of each of the N stocks stored in the input memory 32, based on the trading price included in the acquired market condition packet. That is, when the acquiring unit 36 acquires a market condition packet including the trading price of the nth stock, the acquiring unit 36 rewrites the value corresponding to the nth trading price stored in the input memory 32 based on the trading price of the nth stock.
[0089] Furthermore, when the acquisition unit 36 acquires a market condition packet, it gives the state control unit 44 an acquisition notification indicating that the market condition packet has been acquired.
[0090] The solver device 40 receives a combinatorial optimization problem from the problem generator 42 and solves the received combinatorial optimization problem. Then, the solver device 40 outputs a solution to the received combinatorial optimization problem. In this embodiment, the solver device 40 is a simulated bifurcation machine, which is an Ising machine, and is implemented in a dedicated hardware circuit. In this embodiment, the solver device 40 also includes a weight memory 50 that stores multiple weight values included in a cost function of the combinatorial optimization problem. For example, the weight memory 50 stores a matrix (J) and a bias coefficient array (h) that represent multiple weight values included in the cost function shown in equation (7).
[0091] The solver device 40 may solve the combinatorial optimization problem based on another algorithm instead of the simulated bifurcation machine. The solver device 40 may also be a dedicated hardware circuit, but may also be a processor that executes a program to solve the combinatorial optimization problem, a server device on a network that solves the combinatorial optimization problem, or a device that includes a host device and an Ising machine.
[0092] The problem generator 42 generates a combinatorial optimization problem based on the data acquired by the acquisition unit 36, and causes the solver device 40 to solve the generated combinatorial optimization problem. More specifically, the problem generator 42 generates a combinatorial optimization problem based on a plurality of input values stored in the input memory 32, and causes the solver device 40 to solve the generated combinatorial optimization problem.
[0093] The problem generator 42 provides the generated combinatorial optimization problem to the solver device 40 in a format that the solver device 40 can accept. For example, the problem generator 42 generates a plurality of weight values included in a cost function of the combinatorial optimization problem and provides the generated plurality of weight values to the solver device 40. For example, when the solver device 40 is an Ising machine and the combinatorial optimization problem is an Ising problem, the problem generator 42 generates a matrix (J) and a bias coefficient array (h) and provides the generated matrix (J) and bias coefficient array (h) to the solver device 40. For example, when the solver device 40 accepts a formula representing a cost function, the problem generator 42 may generate a cost function based on a value corresponding to the trading price of N stocks stored in the input memory 32 and provide the generated cost function to the solver device 40. Also, when the solver device 40 can accept constraint conditions together with the cost function, the problem generator 42 may generate information representing the cost function and the constraint conditions and provide it to the solver device 40.
[0094] In this embodiment, the problem generator 42 generates a combinatorial optimization problem that minimizes the cost function shown in equation (7). Then, in this embodiment, the problem generator 42 generates a plurality of weight values included in the cost function of the combinatorial optimization problem shown in equation (7) based on a plurality of input values stored in the input memory 32, and writes the generated plurality of weight values to the weight memory 50. More specifically, the problem generator 42 generates a matrix (J) and a bias coefficient array (h) obtained by equation (7) based on values corresponding to the trading prices of N stocks stored in the input memory 32, and writes the generated matrix (J) and bias coefficient array (h) to the weight memory 50.
[0095] Furthermore, the problem generator 42 generates a combinatorial optimization problem in response to acquiring data or at preset intervals, and causes the solver device 40 to solve the combinatorial optimization problem. In this embodiment, the problem generator 42 generates a combinatorial optimization problem in response to acquiring a market condition packet by the acquiring unit 36 or at preset intervals, and causes the solver device 40 to solve the combinatorial optimization problem.
[0096] However, during the solution-finding process period from when the generation of the combinatorial optimization problem is started to when the solution of the generated combinatorial optimization problem is output, the problem generator 42 does not generate a new combinatorial optimization problem even if the acquisition unit 36 acquires a new market packet. The preset period is longer than the time required from when the generation of the combinatorial optimization problem is started to when the solution of the generated combinatorial optimization problem is output. The preset period does not have to be at regular intervals and may vary over time. The preset period may be performed once at a predetermined time. For example, the problem generator 42 may generate a combinatorial optimization problem once at a predetermined time interval in a predetermined time unit such as seconds, minutes, hours, days, weeks, months, or years, and cause the solver device 40 to solve the combinatorial optimization problem.
[0097] Furthermore, when problem generator 42 starts generating a combinatorial optimization problem, it provides state controller 44 with a solution-seeking start notification indicating that generation of a combinatorial optimization problem has started.
[0098] The state control unit 44 stores state information representing a clean state (first state) or a dirty state (second state). The state information is, for example, a state machine. The state information may also be, for example, a 1-bit flag.
[0099] The state control unit 44 acquires a solution-seeking start notification from the problem generation unit 42. The state control unit 44 sets the state information to a clean state in response to receiving the solution-seeking start notification from the problem generation unit 42. That is, the state control unit 44 sets the state information to a clean state in response to the problem generation unit 42 starting to generate a combinatorial optimization problem.
[0100] Furthermore, the state control unit 44 acquires an acquisition notification from the acquisition unit 36. The state control unit 44 sets the state information to a dirty state in response to receiving the acquisition notification from the acquisition unit 36. That is, the state control unit 44 sets the state information to a dirty state in response to the acquisition unit 36 acquiring a market condition packet.
[0101] Such state information is in a clean state if the acquisition unit 36 has not acquired a new market condition packet during the solution-finding process period from the start of generation of a combinatorial optimization problem to the output of a solution to the generated combinatorial optimization problem. Therefore, when the state information is in a clean state, it means that the solution solved by the solver device 40 is a solution that reflects the latest market condition packet and is a clean solution.
[0102] On the other hand, the state information becomes dirty if the acquisition unit 36 acquires a new market condition packet during the solution process period from the start of generation of the combinatorial optimization problem to the output of the solution to the generated combinatorial optimization problem. Therefore, when the state information is dirty, it means that the solution solved by the solver device 40 is a solution that does not reflect the latest market condition packet and is a dirty solution.
[0103] The processing execution unit 46 obtains a solution to the combinatorial optimization problem from the solver device 40. In this embodiment, the cost function includes N decision variables. The nth decision variable among the N decision variables indicates whether or not to perform a predetermined operation on the nth stock among the N stocks. For example, the nth decision variable indicates whether or not to trade the nth stock among the N stocks. For example, the processing execution unit 46 obtains a solution to the combinatorial optimization problem from the multiple decision variables (b1 to b N ) as a solution. In response to receiving the solution from the solver device 40, the process execution unit 46 executes a process based on the received solution.
[0104] Furthermore, when the processing execution unit 46 acquires a solution to a combinatorial optimization problem from the solver device 40, the processing execution unit 46 acquires state information stored in the state control unit 44 and changes processing based on the solution depending on the state information. For example, when the state information is a clean state, the processing execution unit 46 executes a first processing based on the acquired solution in response to acquiring the solution from the solver device 40. Also, when the state information is a dirty state, the processing execution unit 46 executes a second processing different from the first processing in response to acquiring the solution from the solver device 40.
[0105] When the processing execution unit 46 acquires a solution to the combinatorial optimization problem from the solver device 40, the processing execution unit 46 generates output data including output information indicating to perform a predetermined operation on at least one stock among the N stocks identified by the solution based on the acquired solution. Then, when the state information is in a clean state, the processing execution unit 46 outputs the output data to the first device, and when the state information is in a dirty state, the processing execution unit 46 stops outputting the output data to the first device.
[0106] In this embodiment, when the process execution unit 46 acquires a solution to a combinatorial optimization problem from the solver device 40, it generates an order packet, which is an example of output data. The order packet includes, as output information, a plurality of decision variables (b1 to b NThe transaction information includes transaction information indicating a predetermined operation of placing a buy order or a sell order for a stock corresponding to a decision variable that is set to a value (1) indicating a transaction among the values of the decision variables (1) and (2), respectively. If the state information is a clean state, the process execution unit 46 outputs the generated order packet to the market server device 12, which is an example of a first device. If the state information is a dirty state, the process execution unit 46 stops outputting the generated order packet to the market server device 12.
[0107] Thereby, when the processing execution unit 46 acquires a solution that reflects the latest market condition packet, i.e., a clean solution, it can output an order packet to the market server device 12. In addition, when the processing execution unit 46 acquires a solution that does not reflect the latest market condition packet, i.e., a dirty solution, it can stop outputting the order packet to the market server device 12.
[0108] The processing execution unit 46 may perform processing to stop the output of the order packet based on other information in addition to the status information. For example, the processing execution unit 46 may stop the output of the order packet based on an index other than the stock price (volume, special quote status, ADR, etc.). In addition, when the market system 10 trades targets other than stocks, the output of output data may be stopped based on other indexes. For example, when the market system 10 trades foreign exchange or bonds, or commodities such as gold, crude oil, and grains, the processing execution unit 46 may stop the output of output data based on, for example, other important indexes (e.g., crude oil prices).
[0109] 8 is a transition diagram of state information. When implemented by a state machine, the state information transitions between a clean state and a dirty state. When an acquisition notification is given in the clean state, the state information transitions to the dirty state. When an acquisition notification is given in the dirty state, the state information maintains the dirty state. When a solution-seeking start notification is given in the dirty state, the state information transitions to the clean state. When a solution-seeking start notification is given in the clean state, the state information maintains the clean state.
[0110] 9 is a flowchart showing the flow of processing by the processing execution unit 46 according to the first embodiment. The processing execution unit 46 executes processing according to the flow shown in FIG.
[0111] First, in S31, the process execution unit 46 determines whether or not a solution has been output from the solver device 40. If a solution has not been output from the solver device 40 (No in S31), the process execution unit 46 puts the process on hold in S31. If a solution has been output from the solver device 40 (Yes in S31), the process execution unit 46 advances the process to S32.
[0112] In S32, the process execution unit 46 acquires the solution output from the solver device 40. Next, in S33, the process execution unit 46 generates an order packet based on the acquired solution.
[0113] Next, in S34, the process execution unit 46 determines whether or not the state information stored in the state control unit 44 is a clean state. If the state information is not a clean state (No in S34), that is, if the state information is a dirty state, the process execution unit 46 skips the process of S35 and returns the process to S31. If the state information is a clean state (Yes in S34), the process execution unit 46 advances the process to S35.
[0114] In S35, the process execution unit 46 transmits the order packet to the market server device 12. When the process execution unit 46 finishes the process of S35, the process returns to S31, and the process is repeated from S31.
[0115] By executing processing in this manner, the processing execution unit 46 can output an order packet to the market server device 12 when the status information is clean, and stop outputting the order packet to the market server device 12 when the status information is dirty.
[0116] FIG. 10 is a timing chart showing a first example of the processing timing of the information processing device 20. As shown in FIG.
[0117] The state information transitions to a dirty state (1 in the case of FIG. 10) when the acquisition unit 36 acquires a market condition packet. The state information transitions to a clean state (0 in the case of FIG. 10) when the problem generation unit 42 starts generating a combinatorial optimization problem. Then, the process execution unit 46 outputs an order packet on condition that the state information is in a clean state (0) when the solver device 40 outputs a solution.
[0118] As an example, the information processing device 20 generates a combinatorial optimization problem in response to acquiring a market condition packet. Since the market condition packet is provided irregularly from the market server device 12, in this case, the information processing device 20 generates a combinatorial optimization problem irregularly.
[0119] Furthermore, if the generation time of the combinatorial optimization problem and the calculation time in the solver device 40 are constant, the time from when the market condition packet is acquired to when the order packet is output is also constant. Therefore, in this case, the information processing device 20 outputs the order packet a certain time after the timing of acquiring the market condition packet.
[0120] 11 is a timing chart showing a second example of the processing timing of the information processing device 20. As an example, the information processing device 20 may generate a combinatorial optimization problem at a preset cycle. In this case, the information processing device 20 outputs an order packet at regular time intervals.
[0121] Furthermore, when a combinatorial optimization problem is generated at a preset cycle, there is a possibility that the acquisition unit 36 acquires two or more market condition packets during the period from when the immediately preceding order packet is output until when the generation of the next combinatorial optimization problem is started (for example, period T1 in FIG. 11). In this case, the information processing device 20 generates a combinatorial optimization problem that reflects the two or more market condition packets acquired during this period, and causes the solver device 40 to solve the generated combinatorial optimization problem.
[0122] Furthermore, when combinatorial optimization problems are generated at a preset cycle, there is a possibility that the acquisition unit 36 will not acquire a market packet during the period from when generation of the previous combinatorial optimization problem begins to when generation of the next combinatorial optimization problem begins (for example, period T2 in FIG. 11). In this case, the previous combinatorial optimization problem and the next combinatorial optimization problem will be the same.
[0123] 12 is a timing chart showing a third example of the processing timing of the information processing device 20. The market server device 12 delivers market condition packets repeatedly at irregular intervals. Therefore, whether the information processing device 20 generates a combinatorial optimization problem in response to acquiring a market condition packet or generates a combinatorial optimization problem at a preset cycle, there is a possibility that the information processing device 20 will acquire the next new market condition packet during the period from acquiring the market condition packet to outputting the order packet.
[0124] If a new market condition packet is acquired between the acquisition of the market condition packet and the output of the order packet, the solution to the combinatorial optimization problem will be one that does not reflect the latest market condition packet. If the information processing device 20 outputs an order packet based on a solution that does not reflect the latest market condition packet, it will not be able to perform optimal trading based on the latest stock trading prices.
[0125] When the information processing device 20 according to this embodiment acquires a market condition packet, it transitions the state information from a clean state (0 in the case of FIG. 12) to a dirty state (1 in the case of FIG. 12). When outputting an order packet, the information processing device 20 checks the state information, and if the state information is clean (0 in the case of FIG. 12), it outputs the order packet, and if the state information is dirty (1 in the case of FIG. 12), it stops outputting the order packet. This allows the information processing device 20 to stop outputting the order packet when it is unable to make an optimal transaction based on the latest stock trading price.
[0126] In this way, when executing processing using a combinatorial optimization problem on data that changes over time, the information processing device 20 according to this embodiment can change processing depending on whether the generated solution is a solution to a combinatorial optimization problem that reflects the latest data or a solution to a combinatorial problem that does not reflect the latest data. This makes it possible for the information processing device 20 according to this embodiment to prevent the execution of inappropriate processing when executing processing using a combinatorial optimization problem on data that changes over time.
[0127] Second embodiment Next, a market system 10 according to a second embodiment will be described. The market system 10 according to the second embodiment has substantially the same functions and configurations as those of the first embodiment, so elements having substantially the same functions and configurations are given the same reference numerals and detailed descriptions are omitted except for the differences. The same applies to the third and subsequent embodiments.
[0128] FIG. 13 is a diagram showing the configuration of an information processing device 20 according to the second embodiment.
[0129] In this embodiment, the N stocks are classified into L groups, where L is an integer greater than or equal to 2 and less than or equal to N. Which of the L groups each of the N stocks belongs to is set in advance by a user of the information processing device 20. As an example, each of the L groups is set to include a plurality of stocks that are correlated with each other in changes in trading price.
[0130] In this embodiment, the state information includes L pieces of element state information that correspond one-to-one to the L groups that are set in advance. An l-th piece of element state information (l is an integer between 1 and L) among the L pieces of element state information corresponds to the l-th group among the L groups. Each of the L pieces of element state information represents a clean state or a dirty state. Each of the L pieces of element state information may be a state machine or a 1-bit flag.
[0131] The state control unit 44 puts all of the L pieces of element state information into a clean state in response to receiving a solution-seeking start notification from the problem generation unit 42. That is, the state control unit 44 puts all of the L pieces of element state information into a clean state in response to the problem generation unit 42 starting generation of a combinatorial optimization problem.
[0132] In response to receiving an acquisition notification from the acquisition unit 36, i.e., in response to the acquisition unit 36 acquiring a market condition packet, the status control unit 44 identifies, among the L groups, a group to which a stock related to the trading price included in the acquired market condition packet belongs. Then, the status control unit 44 sets, among the L pieces of element status information, the element status information corresponding to the identified group to a dirty state. In other words, in response to acquiring a market condition packet including the trading price of a stock belonging to the lth group, the status control unit 44 sets the lth element status information to a dirty state.
[0133] When the processing execution unit 46 acquires a solution from the solver device 40, it identifies a group to which stocks indicated to be traded by the transaction information included in the order packet generated based on the solution belong. Then, when the element state information corresponding to the identified group among the L pieces of element state information is in a clean state, the processing execution unit 46 outputs the order packet to the market server device 12, and when the element state information corresponding to the identified group is in a dirty state, it stops outputting the order packet to the market server device 12. That is, when the l-th element state information is in a clean state, the processing execution unit 46 outputs an order packet including transaction information indicating that stocks belonging to the l-th group are to be traded to the market server device 12. Also, when the l-th element state information is in a dirty state, the processing execution unit 46 stops outputting the order packet including transaction information indicating that stocks belonging to the l-th group are to be traded to the market server device 12.
[0134] 14 is a flowchart showing the flow of processing by the processing execution unit 46 according to the second embodiment. The processing execution unit 46 according to the second embodiment executes processing according to the flow shown in FIG.
[0135] In S31 to S33, the process execution unit 46 executes the same process as that shown in FIG.
[0136] After S33, the process execution unit 46 advances the process to S41. In S41, the process execution unit 46 identifies, among the L groups, a group to which the stock indicated to be traded by the transaction information included in the order packet belongs. After S41, the process execution unit 46 advances the process to S42.
[0137] In S42, the process execution unit 46 determines whether or not the element status information corresponding to the identified group is in a clean state among the L pieces of element status information stored in the status control unit 44. If the element status information corresponding to the identified group is not in a clean state (No in S42), the process execution unit 46 skips the process of S43 and returns the process to S31. If the element status information corresponding to the identified group is in a clean state (Yes in S42), the process execution unit 46 advances the process to S43.
[0138] In S43, the process execution unit 46 transmits the order packet to the market server device 12. Upon completing the process of S43, the process execution unit 46 returns the process to S31 and repeats the process from S31.
[0139] The information processing device 20 according to the second embodiment can stop outputting an order packet when the trading price of the stocks to be traded or other stocks belonging to the same group as the stocks to be traded changes after the start of generation of the combinatorial optimization problem. Therefore, even if the trading price of the stocks to be traded that belong to a different group from the stocks to be traded changes after the start of generation of the combinatorial optimization problem, the information processing device 20 according to the second embodiment can output an order packet when the trading price of the stocks to be traded or other stocks belonging to the same group as the stocks to be traded has not changed after the start of generation of the combinatorial optimization problem. This allows the information processing device 20 according to the second embodiment to prevent inappropriate processing from being executed for each of the L groups.
[0140] Third embodiment Next, a market system 10 according to a third embodiment will be described.
[0141] FIG. 15 is a diagram showing the configuration of an information processing device 20 according to the third embodiment.
[0142] In the third embodiment, the input memory 32 includes a first memory 62 and a second memory 64 .
[0143] The first memory 62 stores a value corresponding to the latest trading price for each of the N stocks. For example, every time the acquisition unit 36 acquires a market condition packet, the acquisition unit 36 instantly rewrites, based on the latest trading price included in the acquired market condition packet, the value corresponding to the trading price of the stock indicated in the acquired market condition packet, among the values corresponding to the trading prices for each of the N stocks stored in the first memory 62.
[0144] The second memory 64 stores values corresponding to the trading prices of each of the N stocks that form the basis of the combinatorial optimization problem that was last started to be generated by the problem generator 42. In other words, the second memory 64 stores values corresponding to the trading prices of each of the N stocks at the time when the problem generator 42 started to generate the combinatorial optimization problem.
[0145] The values corresponding to the trading prices stored in the second memory 64 are not rewritten unless the problem generator 42 starts generating a combinatorial optimization problem, even if the acquisition unit 36 acquires a new market condition packet. For example, when the problem generator 42 or the acquisition unit 36 starts generating a new combinatorial optimization problem, it rewrites the values corresponding to the trading prices of each of the N stocks stored in the second memory 64 to values corresponding to the trading prices of each of the N stocks stored in the first memory 62.
[0146] In the third embodiment, the information processing device 20 further includes an evaluation unit 66.
[0147] The evaluation unit 66 generates a comparison result for each of the N stocks by comparing a value corresponding to the latest trading price stored in the first memory 62 with a value corresponding to the trading price on which the combinatorial optimization problem whose generation was last started and stored in the second memory 64 is based. The evaluation unit 66 generates an evaluation value for evaluating the validity of the order packet for each of the N stocks based on the comparison result for each of the N stocks. For example, the evaluation unit 66 generates a comparison result for the n-th stock of the N stocks by comparing a value corresponding to the latest trading price stored in the first memory 62 with a value corresponding to the trading price on which the combinatorial optimization problem whose generation was last started and stored in the second memory 64 is based.
[0148] In this embodiment, the evaluation unit 66 calculates an evaluation value for each of the N stocks, which is a difference value obtained by subtracting the trading price on which the combinatorial optimization problem for which generation most recently started is based from the latest trading price. If the evaluation value, which is such a difference value, is positive, it represents the amount of increase in the latest trading price since generation of the combinatorial optimization problem started, and if it is negative, it represents the amount of decrease in the latest trading price since generation of the combinatorial optimization problem started.
[0149] In this embodiment, the evaluation unit 66 generates an evaluation value for a stock related to a trading price included in the acquired market condition packet every time the acquisition unit 36 acquires a market condition packet, that is, every time an acquisition notification is output. Then, every time the acquisition unit 36 acquires a market condition packet, the evaluation unit 66 provides the calculated evaluation value to the state control unit 44.
[0150] In this embodiment, the status information includes N pieces of element status information. The N pieces of element status information correspond one-to-one to the N stocks traded in the market server device 12. That is, the n-th element status information among the N pieces of element status information corresponds to the n-th stock among the N stocks.
[0151] Each of the N pieces of element state information represents a first dirty state (third state) or a second dirty state (fourth state) as a dirty state. That is, each of the N pieces of element state information represents a clean state, a first dirty state, or a second dirty state. Each of the N pieces of element state information may be, for example, a state machine, or a flag of 2 or more bits that can identify the clean state, the first dirty state, or the second dirty state.
[0152] The state control unit 44 receives an acquisition notification from the acquisition unit 36, and also receives an evaluation value from the evaluation unit 66. The state control unit 44 also receives a solution-seeking start notification from the problem generation unit 42.
[0153] The state control unit 44 puts all of the N pieces of element state information into a clean state in response to receiving a solution-seeking start notification from the problem generation unit 42. That is, the state control unit 44 puts all of the N pieces of element state information into a clean state in response to the problem generation unit 42 starting generation of a combinatorial optimization problem.
[0154] In response to receiving an acquisition notification from the acquisition unit 36, i.e., in response to the acquisition unit 36 acquiring a market condition packet, the status control unit 44 identifies, among the N pieces of element status information, element status information corresponding to a stock related to the trading price included in the acquired market condition packet. Then, the status control unit 44 judges whether the evaluation value acquired together with the market condition packet is outside or within a predetermined range. If the evaluation value is outside the predetermined range, the status control unit 44 sets the identified element status information to a first dirty state. Also, if the evaluation value is within the predetermined range, the status control unit 44 sets the identified element status information to a second dirty state. For example, in response to acquiring a market condition packet including the trading price of an nth stock, if the evaluation value of the nth stock is outside the predetermined range, the status control unit 44 sets the nth element status information to a first dirty state, and if the evaluation value of the nth stock is within the predetermined range, the status control unit 44 sets the nth element status information to a second dirty state.
[0155] As an example, the predetermined range is a range of 0 or less. In this case, each of the N pieces of element state information becomes the first dirty state when the latest trading price for the corresponding stock is higher than the trading price on which the combinatorial optimization problem whose generation was last started is based, or when the latest trading price is the same as the trading price on which the combinatorial optimization problem whose generation was last started is based. Also, each of the N pieces of element state information becomes the second dirty state when the latest trading price for the corresponding stock is lower than the trading price on which the combinatorial optimization problem whose generation was last started is based.
[0156] In the third embodiment, when the processing execution unit 46 generates an order packet, it identifies, from the N pieces of element status information, element status information corresponding to a stock indicated to be traded by the trading information included in the generated order packet. Then, if the identified element status information is in a clean state, the processing execution unit 46 outputs the order packet to the market server device 12. That is, if the n-th element status information is in a clean state, the processing execution unit 46 outputs, to the market server device 12, an order packet including trading information indicating that the n-th stock will be traded.
[0157] Furthermore, in this embodiment, the process execution unit 46 generates an order packet whose buying / selling direction is a buy order. Then, when the identified element state information is the first dirty state, the process execution unit 46 stops outputting the order packet to the market server device 12. When the identified element state information is the second dirty state, the process execution unit 46 outputs the order packet to the market server device 12. When the n-th element state information is the first dirty state, the process execution unit 46 stops outputting the order packet including trading information indicating that the n-th stock is to be traded to the market server device 12. When the n-th element state information is the second dirty state, the process execution unit 46 outputs the order packet including trading information indicating that the n-th stock is to be traded to the market server device 12.
[0158] Even if the trading price of a stock traded by an order packet changes after generation of the combinatorial optimization problem begins, it may be advantageous for the user of the information processing device 20, depending on the direction of buying and selling, for example. For example, when placing a buy order, if the price of the stock traded by the order packet falls, it may be advantageous for the user of the information processing device 20. Also, when placing a sell order, if the price of the stock traded by the order packet rises, it may be advantageous for the user of the information processing device 20. An order packet that is advantageous to such a user can be said to be a highly effective order packet.
[0159] The information processing device 20 of this embodiment can output the order packet to the market server device 12, judging that the validity is high for the stocks traded through the order packet if the trading price is favorable to the user, even if the trading price has changed after the start of generation of the combinatorial optimization problem.
[0160] The predetermined range for comparing the evaluation values is not limited to a range of 0 or more, and may be another range. For example, when the processing execution unit 46 generates an order packet for a sell order, the predetermined range for comparing the evaluation values may be a range of 0 or more. As a result, when generating an order packet for which the buying / selling direction is a sell order, the information processing device 20 can output to the market server device 12 an order packet that is advantageous to the user.
[0161] Also, for example, when the processing execution unit 46 generates an order packet which is a buy order, the predetermined range for comparing the evaluation values may be a range greater than a positive predetermined value. In this case, each of the N pieces of element status information becomes a first dirty state when the increase in the trading price of the corresponding stock is not equal to or greater than a predetermined amount, and becomes a second dirty state when the increase is equal to or greater than the predetermined amount. This allows the information processing device 20 to output an order packet to the market server device 12 when a greater advantage can be obtained by the user.
[0162] Furthermore, when the processing execution unit 46 generates an order packet that is a buy order and the buy order is placed in the case of an uptrend, the predetermined range for comparing the evaluation values may be a range equal to or greater than 0. When the processing execution unit 46 generates an order packet that is a sell order and the sell order is placed in the case of a downtrend, the predetermined range for comparing the evaluation values may be a range equal to or less than 0.
[0163] In this embodiment, each of the N pieces of element status information represents two dirty states, a first dirty state and a second dirty state. Alternatively, each of the N pieces of element status information may represent three or more dirty states.
[0164] For example, each of the N pieces of element status information may represent a first dirty status, a second dirty status, or a third dirty status as a dirty status. In this case, when the status control unit 44 receives an acquisition notification, it changes the corresponding element status information to one of the first dirty status, the second dirty status, or the third dirty status depending on the magnitude of the evaluation value.
[0165] For example, the status control unit 44 sets the evaluation value to the second dirty status when it is greater than or equal to a positive first threshold, sets the evaluation value to the third dirty status when it is less than a negative second threshold, and sets the evaluation value to the first dirty status when it is less than the first threshold and greater than the second threshold.
[0166] In such a case, for example, when the element state information corresponding to the stock to be traded by the order packet is in the first dirty state, the process execution unit 46 stops outputting the order packet to the market server device 12.
[0167] Furthermore, in such a case, when the element state information corresponding to the stock to be traded by the order packet which is a buy order is in the second dirty state, the process execution unit 46 outputs the order packet to the market server device 12. When the element state information corresponding to the stock to be traded by the order packet which is a buy order is in the third dirty state, the process execution unit 46 stops outputting the order packet to the market server device 12. When the element state information corresponding to the stock to be traded by the order packet which is a sell order is in the third dirty state, the process execution unit 46 outputs the order packet to the market server device 12. When the element state information corresponding to the stock to be traded by the order packet which is a sell order is in the second dirty state, the process execution unit 46 stops outputting the order packet to the market server device 12. Thereby, when the information processing device 20 outputs an order packet for either the buy order or the sell order, the order packet that is advantageous to the user can be output to the market server device 12.
[0168] (Fourth embodiment) Next, a market system 10 according to a fourth embodiment will be described.
[0169] 16 is a diagram showing a configuration of an information processing device 20 according to the fourth embodiment. In the fourth embodiment, a solver device 40 acquires state information from a state control unit 44. The solver device 40 determines whether or not the state information has become dirty during a process of solving a combinatorial optimization problem. If the state information has become dirty, the solver device 40 terminates the process of solving the combinatorial optimization problem.
[0170] When the state information changes from a clean state to a dirty state, the state control unit 44 may provide an interrupt signal to the solver device 40. In this case, the solver device 40 terminates the solution-finding process in response to receiving the interrupt signal from the state control unit 44 during the solution-finding process of the combinatorial optimization problem.
[0171] FIG. 17 is a flowchart showing a flow of processing by the solver device 40 according to the fourth embodiment.
[0172] In the fourth embodiment, when the solver device 40 is a simulated bifurcation machine, the process is executed according to the flow shown in Fig. 17. Note that the same steps as those explained in the flowchart of Fig. 3 are given the same step numbers and the explanation thereof will be omitted.
[0173] The solver device 40 repeats the processes from S14 to S16 a preset number of times in the loop process between S13 and S17. N ) by a matrix containing weight values of N rows and N columns, and N ) and N momentum variables (y1~y N ) and time evolution processing for evolving the time.
[0174] The solver device 40 executes the process of S51 at any timing between S13 and S17. In the flowchart shown in Fig. 17, the solver device 40 executes the process of S51 between S13 and S14, but the process may be executed at another timing.
[0175] In S51, the solver device 40 judges whether the state information has become dirty. If the state information is not dirty, that is, if the state information is clean (No in S51), the solver device 40 continues the loop processing between S13 and S17. If the state information is dirty (Yes in S51), the solver device 40 ends the matrix multiplication processing and the time evolution processing, exits the loop processing between S13 and S17, and ends this flow. If the state information is dirty, the solver device 40 may advance the processing to S18 and output the solution obtained at the present time.
[0176] FIG. 18 is a timing chart showing the flow of processing by the information processing device 20 according to the fourth embodiment.
[0177] When a new market condition packet is acquired (for example, t1 in FIG. 18) during the process of generating and solving a combinatorial optimization problem, the information processing device 20 according to the fourth embodiment terminates the process of generating and solving the combinatorial optimization problem. Then, for example, when a combinatorial optimization problem is generated in response to acquiring a market condition packet, the information processing device 20 starts the process of generating and solving a new combinatorial optimization problem based on the newly acquired market condition packet.
[0178] In this way, when the information processing device 20 according to the fourth embodiment acquires a new market condition packet during the process of generating and solving a combinatorial optimization problem, the information processing device 20 according to the fourth embodiment can interrupt the process of generating and solving the combinatorial optimization problem, thereby enabling the information processing device 20 according to the fourth embodiment to start the process of generating and solving the next new combinatorial optimization problem sooner. Therefore, the information processing device 20 according to the fourth embodiment can execute optimal trading based on the latest stock trading prices sooner.
[0179] Fifth embodiment Next, a control system 110 according to a fifth embodiment will be described.
[0180] In the first to fourth embodiments, an example has been described in which the information processing device 20 is applied to the market system 10. The information processing device 20 is not limited to the market system 10, and can be applied to other systems as long as the systems execute processing using a combinatorial optimization problem on data that changes over time. For example, the information processing device 20 can be applied to a control system 110 that controls the movement of a moving object.
[0181] 19 is a diagram showing an example of the configuration of a control system 110 according to the fifth embodiment. The control system 110 controls a moving object that moves autonomously, such as a self-driving car, a drone, or a robot.
[0182] The control system 110 includes an object detection device 112 , an information processing device 20 , and a control device 114 .
[0183] The object detection device 112 acquires image data from, for example, a camera that captures an image of the surroundings of the moving object to be controlled. The object detection device 112 may acquire sensor data from other sensor devices in addition to image data. The object detection device 112 detects coordinate data representing three-dimensional coordinates for one or more objects around the moving object based on the acquired image data, sensor data, etc. Furthermore, the object detection device 112 may also detect the three-dimensional coordinates of the moving object itself to be controlled.
[0184] The object detection device 112 irregularly and repeatedly outputs data including identification information for identifying one of one or more objects, and coordinate data (input information) representing the coordinates of the object identified by the identification information, to the information processing device 20. Note that the input information may include, in addition to the coordinate data, other related information such as the moving speed, acceleration, moving direction, and type of the object identified by the identification information.
[0185] The control device 114 acquires output data including output information indicating a predetermined operation to be performed on the mobile object in order to control the mobile object from the information processing device 20. The control device 114 controls the mobile object based on the acquired output data.
[0186] The output information may also indicate that a predetermined operation is to be performed on any one of one or more objects around the moving body. For example, the output information may include information indicating that information indicating movement control, a predetermined instruction, a warning, or the like is to be given to any one of one or more objects around the moving body. In this case, the output data includes identification information for identifying any one of the one or more objects, and the output information. Furthermore, when such output data is received, the control device 114 executes a predetermined operation on the object identified by the identification information included in the output data.
[0187] The information processing device 20 has the same configuration as those described in the first to fourth embodiments, except that the information processing device 20 differs in the data it acquires and the content of the output data it outputs.
[0188] That is, the information processing device 20 generates a combinatorial optimization problem based on data irregularly provided by the object detection device 112, and causes the solver device 40 to solve the combinatorial optimization problem. Furthermore, the information processing device 20 sets the state information stored in the state control unit 44 to a clean state in response to starting the generation of the combinatorial optimization problem, and sets the state information to a dirty state in response to acquiring data from the object detection device 112. Then, the information processing device 20 acquires a solution to the combinatorial optimization problem from the solver device 40, and executes processing based on the solution in response to acquiring the solution.
[0189] Furthermore, the information processing device 20 changes the processing based on the solution output from the solver device 40 depending on the state information. For example, when the state information is a clean state, the information processing device 20 executes a first processing in response to acquiring a solution from the solver device 40, and when the state information is a dirty state, the information processing device 20 executes a second processing different from the first processing in response to acquiring a solution from the solver device 40. Also, for example, the information processing device 20 may generate output data based on the acquired solution, output the output data to the control device 114, which is an example of a first device, when the state information is a clean state, and stop outputting the output data to the control device 114 when the state information is a dirty state.
[0190] When executing processing on data using a combinatorial optimization problem, such an information processing device 20 can prevent the execution of processing that is not appropriate for a moving object or the like.
[0191] (Hardware configuration) Fig. 20 is a diagram showing an example of a hardware configuration of the information processing device 20. A partial configuration in the information processing device 20 not including the solver device 40 is realized by, for example, a computer having a hardware configuration as shown in Fig. 20. The information processing device 20 includes a CPU (Central Processing Unit) 301, a RAM (Random Access Memory) 302, a ROM (Read Only Memory) 303, a storage device 304, and a communication interface device 305. These components are connected by a bus.
[0192] The CPU 301 is one or more processors that executes arithmetic processing, control processing, etc. according to a program. The CPU 301 uses a predetermined area of the RAM 302 as a working area and executes various processes in cooperation with programs stored in the ROM 303, the storage device 304, etc.
[0193] The RAM 302 is a memory such as a Synchronous Dynamic Random Access Memory (SDRAM), and functions as a work area for the CPU 301. The ROM 303 is a memory that stores programs and various information in a non-rewritable manner.
[0194] The storage device 304 is a device that writes and reads data to a semiconductor storage medium such as a flash memory, or a magnetically or optically recordable storage medium, etc. The storage device 304 writes and reads data to the storage medium in response to control from the CPU 301. The communication interface device 305 communicates with external devices via a network in response to control from the CPU 301.
[0195] A program executed by the computer causes the computer to function as the information processing device 20. This program is deployed on the RAM 302 by the CPU 301 (processor) and executed.
[0196] In addition, the program executed by the computer is provided as a file in a format that can be installed on the computer or in a format that can be executed by the computer, and is recorded on a computer-readable recording medium such as a CD-ROM, a flexible disk, a CD-R, or a DVD (Digital Versatile Disk).
[0197] The program may be stored on a computer connected to a network such as the Internet and provided by being downloaded via the network. The program may be provided or distributed via a network such as the Internet. The program executed by the information processing device 20 may be provided by being pre-installed in the ROM 303 or the like.
[0198] The program for making the computer function as the information processing device 20 has a modular configuration including, for example, an acquisition module, a question generation module, a state control module, and a process execution module. The program may further include an evaluation module. When the program is executed by the CPU 301, each module is loaded into the RAM 302, and the CPU 301 functions as the acquisition unit 36, the question generation unit 42, the state control unit 44, and the process execution unit 46. When the CPU 301 has multiple processors, these units may be divided among the multiple processors. The program may further make the CPU 301 function as the evaluation unit 66. The program also makes the RAM 302 and the storage device 304 function as the input memory 32. Note that these configurations may be partially or entirely made up of hardware.
[0199] The solver device 40 may be realized by one or more reconfigurable semiconductor devices such as a field-programmable gate array (FPGA). The solver device 40 may be realized by one or more CPUs, microprocessors, graphics processing units (GPUs), application specific integrated circuits (ASICs), or electronic circuits including these circuits. The solver device 40 may be realized by an information processing device such as a computer, a computer system in which multiple computers or servers communicate with each other via a network, or a PC cluster in which multiple computers work together to perform information processing.
[0200] The solver device 40 may be incorporated in the information processing device 20. For example, the solver device 40 may be incorporated as an accelerator in a part of the information processing device 20. The solver device 40 may also include a part of the functions of the information processing device 20, for example, a problem generator 42.
[0201] Furthermore, when the information processing device 20 is realized by a reconfigurable semiconductor device such as an FPGA, the circuit information (configuration data) to be written into the reconfigurable semiconductor device to operate the reconfigurable semiconductor device as the information processing device 20 may be stored on a computer connected to a network such as the Internet and provided by being downloaded via the network. Furthermore, the circuit information (configuration data) to be written into the reconfigurable semiconductor device to operate the reconfigurable semiconductor device as the information processing device 20 may be provided by being recorded on a computer-readable recording medium.
[0202] Furthermore, when the information processing device 20 is realized by a semiconductor device such as an ASIC, the circuit information representing the configuration of a circuit described in a hardware description language used in the design and manufacture of the information processing device 20 may be stored on a computer connected to a network such as the Internet and provided by downloading it via the network. Furthermore, the circuit information representing the configuration of a circuit described in a hardware description language used in the design and manufacture of the information processing device 20 may be provided by being recorded on a computer-readable recording medium.
[0203] Although some embodiments of the present invention have been described, these embodiments are presented as examples and are not intended to limit the scope of the invention. These novel embodiments can be implemented in various other forms, and various omissions, substitutions, and modifications can be made without departing from the spirit of the invention. These embodiments and their modifications are included in the scope and spirit of the invention, and are included in the scope of the invention and its equivalents described in the claims.
[0204] (Additional Note) The above-described embodiments can be summarized as the following technical solutions.
[0205] [Technical proposal 1] An information processing device that executes processing on data, Obtaining the data, generating a combinatorial optimization problem based on the acquired data, and causing a solver device to solve the combinatorial optimization problem; set state information to a clean state in response to a start of generation of the combinatorial optimization problem, and set the state information to a second state in response to acquisition of the data; obtaining a solution to the combinatorial optimization problem from the solver device, and executing a process based on the solution; In executing a process based on the solution, the process based on the solution is changed according to the state information. Information processing device.
[0206] [Technical proposal 2] In acquiring the data, the data is acquired by repeatedly providing the data; In generating the combinatorial optimization problem, the combinatorial optimization problem is generated in response to acquisition of the data or at a preset cycle, and the combinatorial optimization problem is solved by the solver device. An information processing device according to technical proposal 1.
[0207] [Technical proposal 3] In executing the processing based on the solution, If the state information is the clean state, performing a first process in response to obtaining the solution from the solver device; When the state information is the second state, a second process different from the first process is executed in response to obtaining the solution from the solver device. An information processing device according to technical proposal 1 or 2.
[0208] [Technical proposal 4] The cost function in the combinatorial optimization problem includes N decision variables (N is an integer equal to or greater than 2) and a plurality of weight values; a term included in the cost function is expressed by multiplying one or more decision variables among the N decision variables by any one of the plurality of weight values; Further, an input memory is provided for storing N input values on which the plurality of weight values are based, The solver device includes a weight memory that stores the plurality of weight values. An information processing device described in any one of technical proposals 1 to 3.
[0209] [Technical proposal 5] an n-th input value (n is an integer between 1 and N) among the N input values corresponds to an n-th object among the N objects; the data includes input information regarding at least one subject among the N subjects; When the data acquisition includes the input information related to the n-th target, the n-th input value stored in the input memory is rewritten based on the input information related to the n-th target; In generating the combinatorial optimization problem, the plurality of weight values are generated based on the N input values stored in the input memory, and the generated plurality of weight values are written to the weight memory. An information processing device described in Technical Proposal 4.
[0210] [Technical proposal 6] an n-th decision variable among the N decision variables represents whether or not to perform a predetermined operation on the n-th object; In executing the processing based on the solution, generating output data including output information indicating performing the predetermined operation on at least one of the N objects identified by the solution; If the state information is the clean state, outputting the output data to a first device; In the second state, output of the output data to the first device is stopped. An information processing device according to technical proposal 5.
[0211] [Technical proposal 7] The N subjects are classified into L groups (L is an integer between 2 and N), The state information includes L pieces of element state information, an l-th element status information (l is an integer between 1 and L) among the L pieces of element status information corresponds to an l-th group among the L groups; In the control of the state information, In response to a start of generation of the combinatorial optimization problem, the L pieces of element state information are set to the clean state; In response to acquiring the data including the input information related to the l-th group, set the l-th element state information to the second state; In executing the processing based on the solution, outputting, to the first device, the output data including the output information indicating that the predetermined operation is to be performed on the object belonging to the lth group when the lth element state information is the clean state; When the l-th element state information is the second state, output of the output data including the output information indicating that the predetermined operation is to be performed on the target belonging to the l-th group to the first device is stopped. An information processing device according to Technical Proposal 6.
[0212] [Technical proposal 8] further generating an evaluation value for evaluating the validity of output data to be output to the first device based on a comparison result between the acquired first data and second data acquired prior to the first data; In the control of the state information, In response to a start of generation of the combinatorial optimization problem, the state information is set to the clean state; When the evaluation value is outside a predetermined range in response to the acquisition of the data, the state information is set to a third state, which is one of the second states; In response to the acquisition of the data, if the evaluation value is within the predetermined range, the state information is set to a fourth state, which is one of the second states; In executing the processing based on the solution, If the state information is the clean state, outputting the output data to the first device; If the state information is the third state, stopping output of the output data to the first device; If the state information is the fourth state, output the output data to the first device. An information processing device according to technical proposal 3.
[0213] [Technical proposal 9] Further, based on a comparison result between first data including the input information on the n-th target, which is the data, and second data including the input information on the n-th target, which is the data acquired before the first data, an evaluation value is generated to evaluate the validity of the output data to be output to the first device; The state information includes N pieces of element state information; The n-th element status information among the N pieces of element status information corresponds to the n-th object; In the control of the state information, In response to a start of generation of the combinatorial optimization problem, the N pieces of element state information are set to the clean state; When the evaluation value is outside a predetermined range in response to the acquisition of the first data, the n-th element state information is set to a third state; In response to the acquisition of the first data, if the evaluation value is within the predetermined range, set the n-th element state information to a fourth state; In executing the processing based on the solution, When the n-th element state information is the clean state, outputting the output data including the output information indicating that the predetermined operation is to be performed on the n-th object to the first device; When the n-th element state information is the third state, stopping output of the output data including the output information indicating that the predetermined operation is to be performed on the n-th object to the first device; When the n-th element state information is the fourth state, the output data including the output information indicating that the predetermined operation is to be performed on the n-th object is output to the first device. An information processing device according to Technical Proposal 6.
[0214] [Technical proposal 10] The solver device further comprises: When the state information becomes the second state during the process of solving the combinatorial optimization problem, the solver device terminates the process of solving the combinatorial optimization problem. An information processing device according to any one of technical proposals 1 to 9.
[0215] [Technical proposal 11] The solver device is a simulated bifurcation machine, Repeating an update process of N momentum variables (N is an integer equal to or greater than 1) and an update process of N position variables alternately; During the repetitive processing, it is determined whether the state information has become the second state, and when the state information has become the second state, the alternating repetitive processing is terminated. An information processing device according to technical proposal 10.
[0216] [Technical proposal 12] In the acquisition of the data, a market condition packet is acquired as the data from a market server device which trades N objects (N is an integer equal to or greater than 1); the market packet includes a trading price for at least one of the N objects; an n-th decision variable (n is an integer between 1 and N) among N decision variables included in a cost function in the combinatorial optimization problem corresponds to an n-th object among the N objects; The n-th decision variable represents whether or not to trade the n-th object; In executing the processing based on the solution, determining whether to trade for each of the N objects based on the solution; An order packet including transaction information for an object determined to be traded among the N objects is generated and transmitted to the market server device. An information processing device according to any one of technical proposals 1 to 11.
[0217] [Technical proposal 13] The data includes coordinate data representing coordinates of at least one object among a moving object or one or more objects around the moving object; In executing the process based on the solution, output data including output information for controlling the moving body is output to a control device. An information processing device according to any one of technical proposals 1 to 11.
[0218] [Technical proposal 14] Each of the multiple decision variables included in the cost function in the combinatorial optimization problem is a binary discrete variable. An information processing device according to any one of technical proposals 1 to 13.
[0219] [Technical proposal 15] The cost function is a quadratic function of the plurality of decision variables. An information processing device according to Technical Proposal 14.
[0220] [Technical proposal 16] The combinatorial optimization problem is a QUBO (Quadratic Unconstrained Binary Optimization) problem. An information processing device according to Technical Proposal 15.
[0221] [Technical proposal 17] The solver device reduces the QUBO problem to an Ising problem and solves it. An information processing device according to Technical Proposal 16.
[0222] [Technical proposal 18] The solver device solves the Ising problem by a simulated bifurcation algorithm. An information processing device according to Technical Proposal 17.
[0223] [Technical proposal 19] the cost function is a cubic or higher function of the plurality of decision variables; The combinatorial optimization problem is a HUBO (Higher Order Binary Optimization) problem. An information processing device according to Technical Proposal 15.
[0224] [Technical proposal 20] An information processing method for executing processing on data by an information processing device, comprising: The information processing device, Obtaining the data, generating a combinatorial optimization problem based on the acquired data, and causing a solver device to solve the combinatorial optimization problem; set state information to a clean state in response to a start of generation of the combinatorial optimization problem, and set the state information to a second state in response to acquisition of the data; obtaining a solution to the combinatorial optimization problem from the solver device; Executing a process based on the solution; Equipped with The information processing device changes the solution-based processing according to the state information during execution of the solution-based processing. Information processing methods.
[0225] [Technical proposal 21] A program for causing a computer to function as an information processing device that executes processing on data, The computer, Obtaining the data, generating a combinatorial optimization problem based on the acquired data, and causing a solver device to solve the combinatorial optimization problem; set state information to a clean state in response to a start of generation of the combinatorial optimization problem, and set the state information to a second state in response to acquisition of the data; obtaining a solution to the combinatorial optimization problem from the solver device; Execute processing based on the solution It works like this, In executing a process based on the solution, the computer changes the process based on the solution according to the state information. program.
[0226] [Technical proposal 22] Circuit information describing a configuration of a circuit, the circuit information being written in a hardware description language, causing the circuit to function as an information processing device that performs processing on data; The information processing device includes: Obtaining the data, generating a combinatorial optimization problem based on the acquired data, and causing a solver device to solve the combinatorial optimization problem; set state information to a clean state in response to a start of generation of the combinatorial optimization problem, and set the state information to a second state in response to acquisition of the data; obtaining a solution to the combinatorial optimization problem from the solver device, and executing a process based on the solution; The information processing device changes the solution-based processing according to the state information during execution of the solution-based processing. Circuit information.
[0227] [Technical proposal 23] Circuit information to be written into a reconfigurable semiconductor device in order to operate the reconfigurable semiconductor device, causing the reconfigurable semiconductor device to function as an information processing device that executes processing on data; The information processing device includes: Obtaining the data, generating a combinatorial optimization problem based on the acquired data, and causing a solver device to solve the combinatorial optimization problem; set state information to a clean state in response to a start of generation of the combinatorial optimization problem, and set the state information to a second state in response to acquisition of the data; obtaining a solution to the combinatorial optimization problem from the solver device, and executing a process based on the solution; The information processing device changes the solution-based processing according to the state information during execution of the solution-based processing. Circuit information. [Explanation of symbols]
[0228] 10. Market System 12 Market Server Equipment 14 Client Device 16 Receiving section 17 Matching section 18 Distribution Department 20 Information processing device 32 Input Memory 36 Acquisition Department 40 Solver Device 42 Problem generation part 44 State control section 46 Processing Execution Unit 50 weight memory 62 First Memory 64 Second Memory 66 Evaluation Department 110 Control System 112 Object detection device 114 Control device
Claims
1. An information processing device that executes processing on data, Obtaining the data, generating a combinatorial optimization problem based on the acquired data, and causing a solver device to solve the combinatorial optimization problem; setting state information to a first state in response to a start of generation of the combinatorial optimization problem, and setting the state information to a second state in response to acquisition of the data; obtaining a solution to the combinatorial optimization problem from the solver device, and executing a process based on the solution; In executing a process based on the solution, the process based on the solution is changed according to the state information. Information processing device.
2. In acquiring the data, the data is acquired by repeatedly providing the data; In generating the combinatorial optimization problem, the combinatorial optimization problem is generated in response to acquisition of the data or at a preset cycle, and the combinatorial optimization problem is solved by the solver device. The information processing device according to claim 1 .
3. In executing the processing based on the solution, If the state information is the first state, performing a first process in response to obtaining the solution from the solver device; When the state information is the second state, a second process different from the first process is executed in response to obtaining the solution from the solver device. The information processing device according to claim 1 .
4. The cost function in the combinatorial optimization problem includes N decision variables (N is an integer equal to or greater than 2) and a plurality of weight values, a term included in the cost function is represented by multiplication of one or more decision variables among the N decision variables and any one of the plurality of weight values; Further, an input memory is provided for storing N input values on which the plurality of weight values are based, The solver device includes a weight memory that stores the plurality of weight values. The information processing device according to claim 1 .
5. an n-th input value (n is an integer between 1 and N) among the N input values corresponds to an n-th object among the N objects; the data includes input information regarding at least one subject of the N subjects; When the data acquisition includes the input information related to the n-th target, the n-th input value stored in the input memory is rewritten based on the input information related to the n-th target; In generating the combinatorial optimization problem, the plurality of weight values are generated based on the N input values stored in the input memory, and the generated plurality of weight values are written to the weight memory. The information processing device according to claim 4.
6. an n-th decision variable among the N decision variables represents whether or not to perform a predetermined operation on the n-th object; In executing the processing based on the solution, generating output data including output information indicating performing the predetermined operation on at least one of the N objects identified by the solution; If the state information is the first state, outputting the output data to a first device; In the second state, output of the output data to the first device is stopped. The information processing device according to claim 5 .
7. The N subjects are classified into L groups (L is an integer between 2 and N), The state information includes L pieces of element state information, an l-th element status information (l is an integer between 1 and L) among the L pieces of element status information corresponds to an l-th group among the L groups; In the control of the state information, In response to a start of generation of the combinatorial optimization problem, the L pieces of element state information are set to the first state; In response to acquiring the data including the input information related to the l-th group, set the l-th element state information to the second state; In executing the processing based on the solution, When the l-th element state information is the first state, outputting the output data including the output information indicating that the predetermined operation is to be performed on the target belonging to the l-th group to the first device; When the l-th element state information is the second state, output of the output data including the output information indicating that the predetermined operation is to be performed on the target belonging to the l-th group to the first device is stopped. The information processing device according to claim 6.
8. further generating an evaluation value for evaluating the validity of output data to be output to the first device based on a comparison result between the acquired first data and second data acquired prior to the first data; In the control of the state information, In response to a start of generation of the combinatorial optimization problem, the state information is set to the first state; When the evaluation value is outside a predetermined range in response to the acquisition of the data, the state information is set to a third state, which is one of the second states; In response to the acquisition of the data, if the evaluation value is within the predetermined range, the state information is set to a fourth state, which is one of the second states; In executing the processing based on the solution, If the state information is the first state, outputting the output data to the first device; When the state information is the third state, stopping output of the output data to the first device; If the state information is the fourth state, the output data is output to the first device. The information processing device according to claim 3 .
9. Further, based on a comparison result between first data including the input information on the n-th target, which is the data, and second data including the input information on the n-th target, which is the data acquired before the first data, an evaluation value is generated to evaluate the validity of the output data to be output to the first device; The state information includes N pieces of element state information, An n-th element status information among the N pieces of element status information corresponds to the n-th object, In the control of the state information, In response to a start of generation of the combinatorial optimization problem, set the N pieces of element state information to the first state; When the evaluation value is outside a predetermined range in response to the acquisition of the first data, the n-th element state information is set to a third state; When the evaluation value is within the predetermined range in response to acquisition of the first data, the n-th element state information is set to a fourth state; In executing the processing based on the solution, outputting, to the first device, the output data including the output information indicating that the predetermined operation is to be performed on the n-th object when the n-th element state information is the first state; When the n-th element state information is the third state, stopping output of the output data including the output information indicating that the predetermined operation is to be performed on the n-th target to the first device; When the n-th element state information is the fourth state, the output data including the output information indicating that the predetermined operation is to be performed on the n-th object is output to the first device. The information processing device according to claim 6.
10. The solver device further comprises: The solver device terminates the solution-finding process when the state information becomes the second state during the solution-finding process of the combinatorial optimization problem. The information processing device according to claim 1 .
11. The solver device is a simulated bifurcation machine, Repeating an update process of N momentum variables (N is an integer equal to or greater than 1) and an update process of N position variables in an alternating manner; During the repetitive processing, it is determined whether the state information has become the second state, and when the state information has become the second state, the alternating repetitive processing is terminated. The information processing device according to claim 10.
12. In the acquisition of the data, a market condition packet is acquired as the data from a market server device which trades N objects (N is an integer equal to or greater than 1); the market packet includes a trading price for at least one of the N objects; an n-th decision variable (n is an integer between 1 and N) among N decision variables included in a cost function in the combinatorial optimization problem corresponds to an n-th object among the N objects; The n-th decision variable represents whether to trade the n-th object, In executing the processing based on the solution, determining whether to trade for each of the N objects based on the solution; An order packet including transaction information for an object determined to be traded among the N objects is generated and transmitted to the market server device. The information processing device according to claim 1 .
13. the data includes coordinate data representing coordinates of at least one object among a moving object or one or more objects around the moving object; In executing the process based on the solution, output data including output information for controlling the moving body is output to a control device. The information processing device according to claim 1 .
14. Each of the multiple decision variables included in the cost function in the combinatorial optimization problem is a binary discrete variable. The information processing device according to claim 1 .
15. The cost function is a quadratic function of the plurality of decision variables. The information processing device according to claim 14.
16. The combinatorial optimization problem is a quadratic unconstrained binary optimization problem (QUBO). The information processing device according to claim 15.
17. The solver device reduces the QUBO problem to an Ising problem and solves it. The information processing device according to claim 16.
18. The solver device solves the Ising problem by a simulated bifurcation algorithm. The information processing device according to claim 17.
19. the cost function is a cubic or higher function of the plurality of decision variables; The combinatorial optimization problem is a HUBO (Higher Order Binary Optimization) problem. The information processing device according to claim 15.
20. An information processing method for executing processing on data by an information processing device, comprising: The information processing device, Obtaining the data, generating a combinatorial optimization problem based on the acquired data, and causing a solver device to solve the combinatorial optimization problem; setting state information to a first state in response to a start of generation of the combinatorial optimization problem, and setting the state information to a second state in response to acquisition of the data; obtaining a solution to the combinatorial optimization problem from the solver device; Executing a process based on the solution; Equipped with The information processing device changes the solution-based processing according to the state information during execution of the solution-based processing. Information processing methods.
21. A program for causing a computer to function as an information processing device that executes processing on data, The computer, Obtaining the data, generating a combinatorial optimization problem based on the acquired data, and causing a solver device to solve the combinatorial optimization problem; setting state information to a first state in response to a start of generation of the combinatorial optimization problem, and setting the state information to a second state in response to acquisition of the data; obtaining a solution to the combinatorial optimization problem from the solver device; Execute processing based on the solution It works like this, In executing a process based on the solution, the computer changes the process based on the solution according to the state information. program.
22. Circuit information describing a configuration of a circuit, the circuit information being written in a hardware description language, causing the circuit to function as an information processing device that performs processing on data; The information processing device includes: Obtaining the data, generating a combinatorial optimization problem based on the acquired data, and causing a solver device to solve the combinatorial optimization problem; setting state information to a first state in response to a start of generation of the combinatorial optimization problem, and setting the state information to a second state in response to acquisition of the data; obtaining a solution to the combinatorial optimization problem from the solver device, and executing a process based on the solution; The information processing device changes the solution-based processing according to the state information during execution of the solution-based processing. Circuit information.
23. Circuit information to be written into a reconfigurable semiconductor device in order to operate the reconfigurable semiconductor device, causing the reconfigurable semiconductor device to function as an information processing device that executes processing on data; The information processing device includes: Obtaining the data, generating a combinatorial optimization problem based on the acquired data, and causing a solver device to solve the combinatorial optimization problem; setting state information to a first state in response to a start of generation of the combinatorial optimization problem, and setting the state information to a second state in response to acquisition of the data; obtaining a solution to the combinatorial optimization problem from the solver device, and executing a process based on the solution; The information processing device changes the solution-based processing according to the state information during execution of the solution-based processing. Circuit information.
Citation Information
Patent Citations
Financial instruments management device, financial instruments transaction management method, and program
JP2020198140A
Search apparatus, search method, program, search system, and arbitrage system
JP2021060864A
Systems and methods for providing real-time pre-trade risk assessment
US20160371777A1
System and method for implementing a distributed ising machine
WO2022053149A1
Computer, calculation program, recording medium, and calculation method
JP2019145010A