WO2021256046A1 - 方法、データ構造およびプログラム - Google Patents

方法、データ構造およびプログラム Download PDF

Info

Publication number
WO2021256046A1
WO2021256046A1 PCT/JP2021/013273 JP2021013273W WO2021256046A1 WO 2021256046 A1 WO2021256046 A1 WO 2021256046A1 JP 2021013273 W JP2021013273 W JP 2021013273W WO 2021256046 A1 WO2021256046 A1 WO 2021256046A1
Authority
WO
WIPO (PCT)
Prior art keywords
mathematical
node
optimization problem
formula
data structure
Prior art date
Application number
PCT/JP2021/013273
Other languages
English (en)
French (fr)
Inventor
悠 山城
Original Assignee
株式会社Jij
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 株式会社Jij filed Critical 株式会社Jij
Priority to EP21824907.6A priority Critical patent/EP4167151A4/en
Priority to JP2021560741A priority patent/JP7034528B1/ja
Publication of WO2021256046A1 publication Critical patent/WO2021256046A1/ja
Priority to JP2022025183A priority patent/JP2022067101A/ja
Priority to US18/075,734 priority patent/US20230195837A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/01Dynamic search techniques; Heuristics; Dynamic trees; Branch-and-bound
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/18Complex mathematical operations for evaluating statistical data, e.g. average values, frequency distributions, probability functions, regression analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N10/00Quantum computing, i.e. information processing based on quantum-mechanical phenomena
    • G06N10/20Models of quantum computing, e.g. quantum circuits or universal quantum computers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N10/00Quantum computing, i.e. information processing based on quantum-mechanical phenomena
    • G06N10/60Quantum algorithms, e.g. based on quantum optimisation, quantum Fourier or Hadamard transforms

Definitions

  • This disclosure relates to methods, data structures and programs.
  • Patent Document 1 discloses a processing method for performing quantum annealing calculation.
  • the present disclosure has been made in view of the above problems, and an object thereof is to provide a method, a data structure and a program capable of reducing the load and time required for solving an optimization problem. Is.
  • a method for converting a mathematical optimization problem into an object program of a mathematical planning problem acquires information related to a mathematical formula expressing a mathematical model corresponding to the mathematical optimization problem. That is, it is decomposed for each element constituting the mathematical formula, and the information of each element is stored in each of the objects, and the element of the mathematical formula is decomposed with the object corresponding to the mathematical model as the root node.
  • a method including associating each of the objects with a node node as a data structure of a tree structure in which the object related to each of the elements of the formula is a leaf node.
  • a data structure used for a process of converting a mathematical optimization problem into an object program of a mathematical planning problem by a computer, and a mathematical formula expressing a mathematical model corresponding to the mathematical optimization problem is described.
  • Information on each of the decomposed elements for each constituent element is stored in each of the objects, the object corresponding to the mathematical model is used as the root node, and the object related to each of the decomposed elements of the mathematical formula is referred to as the leaf node.
  • a data structure is provided in which each of the objects is associated and held by a node node.
  • the computer is a program for converting a mathematical optimization problem into an object program of a mathematical planning problem, and the computer is used as a mathematical model corresponding to the mathematical optimization problem.
  • the mathematical model for the elements of the mathematical formula the acquisition unit that acquires the information related to the mathematical formula to be expressed, the object storage unit that decomposes each element constituting the mathematical formula and stores the information of each element in each of the objects.
  • the object storage unit that decomposes each element constituting the mathematical formula and stores the information of each element in each of the objects.
  • As a data structure of a tree structure in which the object corresponding to the above is the root node and the object related to each of the elements of the decomposed mathematics is the leaf node it functions as a data processing unit in which each of the objects is associated with a node node.
  • the program is offered.
  • FIG. 1 is a diagram showing a configuration example of the system 1 according to the embodiment of the present disclosure.
  • the system 1 according to the present embodiment includes a data processing server 10, a terminal 20, and an analysis server 30. Further, the data processing server 10, the terminal 20, and the analysis server 30 are connected to each other so as to be able to communicate with each other via the network NW. It should be noted that this configuration is an example, and a certain configuration may have another configuration or may include another configuration.
  • the network NW assumes the Internet.
  • the network NW is constructed by, for example, a public telephone line network, a mobile phone line network, a wireless communication network, Ethernet (registered trademark), and the like.
  • the data processing server 10 is, for example, a computer for converting (compiling) a mathematical model corresponding to an optimization problem into an object program for a binary optimization problem.
  • the data processing server 10 may be a general-purpose computer such as a workstation or a personal computer, or may be logically realized by cloud computing.
  • the terminal 20 is, for example, a terminal used when inputting a mathematical formula corresponding to a mathematical model.
  • the terminal 20 can be a mobile phone, a smartphone, a tablet computer, a personal computer, or the like.
  • the terminal 20 is an example of a user terminal.
  • the analysis server 30 is, for example, a server that executes a converted object program and performs an analysis process for searching for an optimum parameter in an optimization problem.
  • the analysis server 30 may be, for example, a general analysis server, or at least one of a simulated annealing machine, a quantum annealing machine, and a quantum gate type computer.
  • the outline of the system 1 according to the present embodiment will be described.
  • a mathematical model of an optimization problem such as a binarization optimization problem
  • it is necessary to solve an equation corresponding to the mathematical planning problem in the analysis server 30.
  • the mathematical planning problem is a quadratic optimization problem
  • the mathematical model is mapped to a QUABO (unconstrained quadratic unconstrained optimization problem) and solved, it costs money to formulate it in QUABO modeling.
  • constraints based on the penalty method, Lagrange's undetermined multiplier method, etc. can be added.
  • the mathematical formula corresponding to the mathematical model is decomposed for each element and stored as an object for each element, but the space between such objects can be maintained as a tree structure.
  • Information such as mathematical operators and variables is stored in each object as it is.
  • Each object is held by a tree structure with an object that stores information expressing a mathematical model as a root node and an object that stores information related to each element as a leaf node via a node node that connects each object. obtain.
  • the object is set as a placeholder, and the index is held separately as other data, so that the object program can be used regardless of the size of the index. It is possible to prevent the load on the conversion from increasing.
  • the user when the user solves the optimization problem using the terminal 20, the user simply inputs the information of the mathematical formula corresponding to the mathematical model to the terminal 20 to generate the above-mentioned tree-structured data structure.
  • the mathematical optimization problem is converted into a binary optimization problem and solved, but the present technology is not limited to such an example.
  • the system 1 according to the present embodiment can be converted into a mathematical programming problem such as a linear programming problem, a mixed integer programming problem, and a quadratic programming and solved in addition to the quadratic optimization problem.
  • the mathematical planning problem referred to here means, for example, an algorithm that processes the problem, or a mathematical planning problem that can be interpreted by hardware.
  • FIG. 2 is a diagram showing a hardware configuration example of a computer that realizes the data processing server 10 according to the present embodiment.
  • the data processing server 10 includes at least a control unit 11, a memory 12, a storage 13, a communication unit 14, an input / output unit 15, and the like. These are electrically connected to each other through the bus 16.
  • the control unit 11 is an arithmetic unit that controls the operation of the entire data processing server 10, controls the transmission and reception of data between each element, and performs information processing and the like necessary for application execution and authentication processing.
  • the control unit 11 is a processor such as a CPU (Central Processing Unit), and executes each information processing by executing a program or the like stored in the storage 13 and expanded in the memory 12.
  • CPU Central Processing Unit
  • the memory 12 includes a main storage composed of a volatile storage device such as a DRAM (Dynamic Random Access Memory) and an auxiliary storage composed of a flash memory or a non-volatile storage device such as an HDD (Hard Disk Drive). ..
  • the memory 12 is used as a work area or the like of the control unit 11, and also stores a BIOS (Basic Input / Output System) executed when the data processing server 10 is started, various setting information, and the like.
  • BIOS Basic Input / Output System
  • the storage 13 stores various programs such as application programs.
  • a database storing data used for each process may be built in the storage 13.
  • the communication unit 14 connects the data processing server 10 to the network.
  • the communication unit 14 is external, for example, by a method such as wired LAN (Local Area Network), wireless LAN, Wi-Fi (Wireless Fidelity, registered trademark), infrared communication, Bluetooth (registered trademark), short-range or non-contact communication, etc. Communicate directly with the device or via a network access point.
  • the input / output unit 15 is, for example, an information input device such as a keyboard, a mouse, and a touch panel, and an output device such as a display.
  • the bus 16 is commonly connected to each of the above elements and transmits, for example, an address signal, a data signal, and various control signals.
  • FIG. 3 is a diagram showing a software configuration example of the data processing server 10 according to the present embodiment.
  • the control unit 11 of the data processing server 10 includes a display control unit 111, an acquisition unit 112, an object storage unit 113, a data processing unit 114, and a conversion unit 115.
  • the display control unit 111 has a function of controlling the display for causing the terminal 20 to input a mathematical formula expressing a mathematical model.
  • the display control unit 111 may display a form for inputting a mathematical expression on the screen of the terminal 20.
  • a form may be a free form, or may be a form in which a predetermined option or the like is selected and input.
  • the display control unit 111 may display an interface for reading a file or the like that defines the mathematical formula of the mathematical model on the screen of the terminal 20.
  • the object displayed for inputting the mathematical formula of the mathematical model, the format used for inputting the mathematical formula, and the like are not particularly limited.
  • the acquisition unit 112 has a function of acquiring information related to a mathematical formula expressing a mathematical model.
  • the acquisition unit 112 can acquire information related to the mathematical formula input to the terminal 20.
  • the acquisition unit 112 may acquire the information from the storage or the like.
  • the process by the acquisition unit 112 may be started, for example, by an instruction based on an operation of a user who has input a mathematical expression in the terminal 20.
  • the acquisition unit 112 inputs the information related to the mathematical formula to the terminal 20. You may get it from.
  • the information related to the mathematical formula may include, for example, the configuration of the mathematical formula expressing the optimization problem and the information related to the elements of the configuration.
  • the mathematical formula of the cost function corresponding to the mathematical model such as the following mathematical formula (1) is used.
  • the left side is referred to as a cost function
  • the first term on the right side is referred to as a cost term
  • the second term on the right side is referred to as a constraint term.
  • the target mathematical model can be a mathematical model corresponding to an optimization problem such as the traveling salesman problem.
  • the binary optimization problems corresponding to the mathematical model are, for example, QUABO (unconstrained quadratic binary optimization problem), PUBO (polypoly constraint unconstrained binary optimization problem), and HUBO (higher order unconstrained binary optimization problem). Includes at least one of the transformation problem) and the constrained binary optimization problem.
  • the following formula (1) is a formula corresponding to QUA. Which binary optimization problem to adopt is appropriately determined by, for example, a hardware architect for solving the problem or an algorithm for solving the problem.
  • the object storage unit 113 has a function of decomposing each element constituting the acquired mathematical expression and storing the information of each of the decomposed elements in each of the objects.
  • the "element” here may include, for example, an operator of a mathematical formula, a variable, a character expression, an exponential part, a coefficient, and a constant. Operators are summation operators such as ⁇ and parentheses.
  • FIG. 4 is a diagram showing an example of decomposition of elements stored for each object in the object storage unit 113 according to the present embodiment.
  • the mathematical formula includes the element 201 of the cost function E, the element 202 of ⁇ t, the element 203 of ⁇ ij, the element 204 of a plurality of character expressions and variables, the element 205 of ⁇ , and ⁇ t. It can be decomposed into the element 206 of the term contained in and the element 207 of the term contained in ⁇ i. Further, as shown by the dashed line in FIG. 4, the elements 204, 206 and 207 can be further decomposed by variables, constants, character expressions and exponents.
  • the formula is decomposed into the elements as described above, and each is stored in a single object.
  • the information stored in the object is the information itself such as operators and variables shown in the mathematical formula.
  • the subscript information may be stored together as the meta information.
  • the information related to the constraint condition 208 in the constraint term of the mathematical expression can also be stored as the above-mentioned object.
  • various constraints can be handled in solving the optimization problem.
  • Such information related to operator subscripts and constraints is referred to as meta information in the present specification.
  • meta information can define the relationship between leaf nodes.
  • the constraint condition is not limited to the condition related to the equality constraint in the present embodiment, and may be a condition related to the inequality constraint. In the tree structure shown below, even such constraints can be abstracted and made into objects, so it is possible to solve optimization problems under various constraints.
  • the data processing unit 114 has a function of constructing each of the decomposed objects as a tree-structured data structure and performing a process of holding each object. Specifically, the data processing unit 114 constructs a tree structure in which the object corresponding to the mathematical model is the root node and the object related to each of the elements of the decomposed mathematical expression is the leaf node, and each of the objects is a node node. Has the function of associating with.
  • FIG. 5 is a diagram showing an example of the construction process of the tree structure T1 by the data processing unit 114 according to the present embodiment.
  • the root node 300 of the tree structure T1 stores information related to the cost function E as an example of expressing a mathematical model.
  • the root node 300 may store, for example, information related to a mathematical formula that defines the mathematical model itself. More specifically, in addition to the cost function E, or instead of the cost function E, even if the root node stores information related to the following mathematical formulas (2) and (3) that define the mathematical model. good.
  • ⁇ x ⁇ represents a set of all variables
  • Ecost ( ⁇ x ⁇ ) represents a cost function in a mathematical model
  • f ( ⁇ x ⁇ ) represents an arbitrary function
  • a represents an arbitrary constant. ..
  • s. t There may be a plurality of constraint expressions constituting the constraint term of.
  • node nodes 351 and 354 which are child nodes are provided.
  • a leaf node 301 for storing information related to the operator ⁇ t and a node node 352 are provided.
  • a leaf node 302 for storing information related to the operator ⁇ i and a node node 353 are provided.
  • Leaf nodes 303, 304, and 305 for storing information related to the character expressions di, j, variables qi , t , qi , and t + 1 are provided as child nodes of the node node 353.
  • leaf nodes 308, 309, 310 for storing information related to the operator ⁇ t, a constant, and a parenthesized exponent, and a node node 356 are provided.
  • leaf nodes 311 and 312 for storing information related to the operators ⁇ i and variables qi and t are provided.
  • the node node can store information that defines the relationship between the parent and child nodes and the relationship between the child nodes that share the node node.
  • the term of the formula composed of the leaf nodes and the like of the node node 351 and below is a cost term
  • the term of the formula composed of the leaf nodes and the like of the node node 354 and below is a constraint term.
  • the node node 351 may store information that defines that the operator ⁇ t related to the leaf node 301 has a relationship of nesting the elements of the mathematical formula corresponding to the nodes below the node node 352.
  • the node node 352 may store information that defines that the operator ⁇ i related to the leaf node 302 has a relationship of nesting the elements of the mathematical formula corresponding to the nodes of the node node 353 and below. Further, the node node 353 may store information that specifies that the elements corresponding to the leaf nodes 303, 304, and 305 should be multiplied, respectively. In this way, information indicating that the node node defines, for example, the relation between the four arithmetic operations and the exponent, the relation of the nested structure of the operator, and the condition for the term of the mathematical formula composed of the nodes below the node node. Can be stored.
  • the node node 354 multiplies the variable ⁇ relating to the leaf node 306 with the elements of the equation corresponding to the nodes below the node node 355, and imposes the constraints shown on the leaf node 307 on the constraints. It can store information indicating that it is. Further, the node node 355 has a relationship in which the operator ⁇ t related to the leaf node 308 nests the elements of the mathematical formula corresponding to the nodes below the node node 356, and the constants and the parenthesized exponents related to the leaf nodes 309 and 310. Can store information that specifies. Further, the node node 356 may store information that defines that the operator ⁇ i related to the leaf node 311 has a relationship of nesting the variables qi and t related to the leaf node 312.
  • the objects of the decomposed elements can be connected via the node nodes according to the relation of the nested structure of the operators and the relation of the four arithmetic operations and the exponent. ..
  • the intention expressed by the structure of the mathematical formula when the mathematical model is formulated as a mathematical formula can be held as it is as a data structure.
  • the character expression that defines the data representing the index (for example, the parameter corresponding to the distance between cities in the traveling salesman problem) of the optimization target in the optimization problem expressed by di and j the character expression is used.
  • the specified index data set may be provided in a data structure different from the tree structure data structure. That is, as shown in FIG. 5, the leaf node 303 of “di, j ” is provided, and such a character expression may be stored in an object by a placeholder. At that time, the index data set may be stored in another database or the like. Then, after being converted into an object program by the conversion unit 115 described later , the data set of di and j can be appropriately assigned to the corresponding object of the object program.
  • the size of the data set in the conversion process can be adjusted.
  • the processing load according to the corresponding processing is less likely to increase.
  • a stable calculation speed can be obtained regardless of the data size.
  • meta information including detailed information such as subscript relationships and constraints as an object with a tree structure (especially an object corresponding to a parent or child node sharing a node node)
  • an optimization problem can be solved.
  • the conversion process described later can be performed without expanding the operator. As a result, the calculation load in the conversion process can be reduced.
  • the conversion unit 115 reads the object of the leaf node defined by the tree structure, and binarizes each of the objects including information on the relationship between the object and the object of other leaf nodes connected via the node node. It has a function to convert to the object program of the optimization problem. Such an object program can be executed on the analysis server 30.
  • the compiler that realizes the conversion unit 115 is appropriately determined according to, for example, the type of hardware that realizes the analysis server 30 (for example, the type of optimization machine or algorithm including a quantum annealing machine or simulated annealing machine). Can be set. Also, the association of other leaf nodes with objects can be defined by the information stored in the node nodes shared with each other, as described above.
  • the conversion unit 115 may not be provided in the present embodiment.
  • FIG. 6 is a flowchart of a series of controls in the system 1 according to the present embodiment.
  • the display control unit 111 of the data processing server 10 causes the terminal 20 to display a screen for inputting a mathematical formula expressing a mathematical model, and causes the user to input the mathematical formula (step SQ101).
  • the mathematical expression acquired by the acquisition unit 112 is decomposed for each element, and the object storage unit 113 stores each of the elements in each of the objects (step SQ103).
  • the acquisition of the mathematical expression is not limited to the input of the mathematical expression by the user described above, and may be, for example, by acquiring the information of the mathematical expression stored in the data processing server 10 or the like in advance.
  • the data processing unit 114 constructs a tree-structured data structure based on the relationships between the elements, with each object as a root node and each element as a leaf node, with an object representing a mathematical model such as a cost function as a root node. (Step SQ105). Then, the conversion unit 115 performs conversion processing (compilation) on each of the obtained objects based on the tree structure, and generates an object program for solving the binary optimization problem on the analysis server 30 (step SQ107).
  • the mathematical model corresponding to the mathematical model is decomposed for each element as a preliminary step for analysis by an annealing machine or the like as a binary optimization problem for the mathematical model to be solved. Then, for the object corresponding to each element, it is possible to obtain a data structure by a tree structure based on the expression of the mathematical formula.
  • information such as operators is held in an abstracted state, so expansion of operators as in the past is not essential, and mathematical expressions are not serialized.
  • the conversion process can be performed stably regardless of the size of the model. That is, it is possible to reduce the load and time involved in the calculation for solving the optimization problem.
  • the data set of the index that is the target of optimization in the optimization problem is the data different from the above data structure and using the object corresponding to the index as a placeholder, the data set of the index Is not used as it is for the conversion process, it is only necessary to assign it to the converted object program.
  • the calculation load and the like are determined by the size of the mathematical model without depending on the size of the data in the index data set. Therefore, a stable calculation time can be obtained regardless of the size of the data in the index data set.
  • FIG. 7 is a diagram showing a software configuration example of the data processing server 10'according to another embodiment.
  • the control unit 11'of the data processing server 10' includes a display control unit 1011, an acquisition unit 1012, an object storage unit 1013, a data processing unit 1014, a first conversion unit 1015, and a second conversion unit 1016.
  • the display control unit 1011 has the same function as the display control unit 111 according to the above embodiment, the description thereof will be omitted.
  • the acquisition unit 1012 has a function of acquiring information related to a mathematical formula expressing a mathematical model.
  • the acquisition unit 112 can acquire information related to the mathematical formula input to the terminal 20.
  • the mathematical formula expressing the mathematical model to be acquired is not a formula corresponding to a mathematical model suitable for solving a binary optimization problem such as QUABO, PUBO, HUBO, etc. as in the above embodiment.
  • a mathematical expression corresponding to a constrained optimization problem which is a combination of a mathematical expression of a constraint condition and a mathematical expression of an objective function
  • the formula of the objective function is expressed by a formula such as f (x).
  • the composition of each formula is not particularly limited.
  • the object storage unit 1013 has a function of decomposing each element constituting the acquired mathematical expression and storing the information of each of the decomposed elements in each of the objects. Definitions of elements, operators, etc. are the same as those in the above embodiment and are omitted.
  • the object storage unit 1013 decomposes each element of the constraint formula (4) shown below into each element and stores it in a single object.
  • the object storage unit 1013 can decompose the formula for each element and store it in the object for the formula of the objective function.
  • the data processing unit 1014 has a function of constructing each of the decomposed objects as a tree-structured data structure and performing a process of holding each object.
  • the data processing unit 1014 according to the present embodiment can construct a data structure corresponding to the mathematical expression of the constraint condition decomposed into each element.
  • the data structure construction process and the object retention process are the same as those in the above embodiment. Further, the data processing unit 1014 according to the present embodiment can construct a data structure corresponding to the mathematical expression of the objective function.
  • FIG. 8 is a diagram showing an example of a tree structure T2 construction process by the data processing unit 1014 according to the present embodiment.
  • the tree structure T2 shown in FIG. 8 is a decomposition of the above mathematical formula (4) for each element.
  • the root node 400 stores information related to the equal sign, which is an operator. From the root node 400, two branches are branched, and leaf nodes 401 and 402 which are child nodes are provided.
  • the leaf node 401 stores information related to the operator ⁇ x i.
  • the leaf node 402 stores information related to the constant +1.
  • the first conversion unit 1015 has a function of converting (transpile) the data structure according to the first mathematical expression into the data structure according to the second mathematical expression.
  • the first formula may be, for example, a formula corresponding to a constrained optimization problem
  • the second formula may be, for example, a formula corresponding to a binary optimization problem.
  • FIG. 9 is a diagram showing an example of a conversion process from the tree structure T2 to the tree structure T3 by the first conversion unit 1015 according to the present embodiment.
  • the tree structure T3 shown in FIG. 9 is a tree structure corresponding to the QUAO expression when the mathematical expression corresponding to the constrained optimization problem shown in the mathematical expression (4) is converted into the mathematical expression corresponding to the QUABO expression shown in the equation (5). It is T3.
  • the root node 500 stores information related to the operator Power. From the root node 500, two branches are branched, and node nodes 551 and leaf nodes 503, which are child nodes, are provided. From the node node 551, two branches are separated and leaf nodes 501 and 502 which are child nodes are provided.
  • Leaf node 501 stores information related to the operator ⁇ x i.
  • the leaf node 502 stores information related to the constant -1.
  • the leaf node 503 stores information related to the constant +2.
  • the node node 551 may store information that defines the addition of the elements corresponding to the leaf nodes 501 and 502, respectively.
  • the functions of the nodes shown in FIGS. 8 and 9 are the same as those in the above embodiment.
  • the first conversion unit 1015 can convert the tree structure T2 as shown in FIG. 8 into the tree structure T3 according to a predetermined rule, a table, or the like.
  • the predetermined rule or table may be defined by, for example, the relation between the mathematical formula corresponding to the input constrained optimization problem and the mathematical formula corresponding to the binary optimization problem, or the rule or table. May correspond to a learning model in machine learning.
  • the first conversion unit 1015 may convert a data structure of the mathematical expression of the objective function into a data structure of QUAO expression. Further, the first conversion unit 1015 may construct a data structure corresponding to the optimization problem by combining the data structure corresponding to the constraint condition and the data structure corresponding to the objective function. Such a data structure may be one that is combined before the conversion process and then converted into a data structure corresponding to the QUAO expression by the first conversion unit 1015, or the data structure of the constraint condition by the first conversion unit 1015. And the data structure of the objective function may be converted into the data structure of the QUAO expression, and then the converted data structure may be combined.
  • the second conversion unit 1016 reads the object of the leaf node defined by the tree structure, and sets each of the objects to 2, including information on the relationship between the object and the objects of other leaf nodes connected via the node node. It has a function to convert to the object program of the value optimization problem. That is, the second conversion unit 1016 according to the present embodiment corresponds to the conversion unit 115 of the above embodiment.
  • FIG. 10 is a flowchart relating to a series of controls in the system 1'according to the present embodiment.
  • the display control unit 1011 of the data processing server 10' displays a screen for causing the terminal 20 to input the formula of the restricted optimization problem, and causes the user to input the formula (step SQ201).
  • the mathematical expression acquired by the acquisition unit 1012 is decomposed for each element, and the object storage unit 1013 stores each of the elements in each of the objects (step SQ203).
  • the acquisition of the mathematical expression is not limited to the input of the mathematical expression by the user described above, and may be, for example, by acquiring the information of the mathematical expression stored in the data processing server 10'or the like in advance.
  • the data processing unit 1014 sets each of the objects as a root node, an object expressing a mathematical model such as a constraint condition formula or an objective function formula, and each element as a leaf node, and a tree based on the relationship between the elements.
  • the data structure of the structure is constructed (step SQ205).
  • the first conversion unit 1015 performs a conversion process (transpile) for converting the constructed data structure into a data structure corresponding to the mathematical formula for solving the binary optimization problem (step S207).
  • the second conversion unit 1016 performs a conversion process (compile) on each of the obtained objects based on the tree structure, and generates an object program for solving the binary optimization problem on the analysis server 30 (step SQ209).
  • the system 1' As described above, according to the system 1'according to the present embodiment, it is automatically converted into a data structure for solving a binary optimization problem simply by inputting a mathematical formula related to a general optimization problem. , It is possible to perform analysis with an annealing machine or the like. Therefore, even if the user is not familiar with the mathematical model required to solve the binary optimization problem, the optimization problem can be solved more easily simply by inputting the mathematical formula of the optimization problem. In addition, since the conversion process is performed while maintaining the shape of the data structure when converting to the representation necessary for solving the optimization problem, it is possible to reduce the load and time required for the calculation to solve the optimization problem. can.
  • the device described in the present specification may be realized as a single device, or may be realized by a plurality of devices (for example, a cloud server) which are partially or wholly connected by a network.
  • the control unit 11 and the storage 13 of the data processing server 10 may be realized by different servers connected to each other by a network. Further, all or part of the functions of the data processing server 10 may be exhibited in the terminal 20.
  • the series of processes by the apparatus described in the present specification may be realized by using any of software, hardware, and a combination of software and hardware. It is possible to create a computer program for realizing each function of the data processing server 10 according to the present embodiment and implement it on a PC or the like. It is also possible to provide a computer-readable recording medium in which such a computer program is stored.
  • the recording medium is, for example, a magnetic disk, an optical disk, a magneto-optical disk, a flash memory, or the like. Further, the above computer program may be distributed, for example, via a network without using a recording medium.
  • (Item 1) A method for transforming a mathematical optimization problem into an object program for a mathematical planning problem.
  • the processor Acquiring information related to mathematical formulas that represent mathematical models corresponding to the mathematical optimization problem, Decomposing each element that constitutes the above formula and storing the information of each element in each of the objects.
  • each of the objects is a node node as a tree-structured data structure in which the object corresponding to the mathematical model is the root node and the object related to each of the decomposed elements of the formula is the leaf node.
  • To associate and How to include. The method described in item 1. A method, wherein the leaf node objects that make up the tree structure contain meta information about the element.
  • (Item 3) The method described in item 2.
  • (Item 4) The method described in item 3
  • the object of the leaf node under the node node contains the elements constituting the terms related to the constraints in the formula.
  • (Item 5) The method described in item 4.
  • the method comprising the constraint condition at least one of a condition relating to an equality constraint and a condition relating to an inequality constraint.
  • the elements of the formula contain at least one of an operator and a character expression.
  • the meta information comprises information about a subscript attached to at least one of the operator and the character expression, respectively.
  • the element of the mathematical expression includes a character expression that defines data representing an index to be optimized in the mathematical optimization problem.
  • a method wherein the data set of the index defined by the character expression is provided in a data structure different from the data structure of the tree structure in which information related to the character expression is stored in a leaf.
  • the mathematical programming problem is a method including a binary optimization problem.
  • the binary optimization problems include QUABO (unconstrained quadratic binary optimization problem), PUBO (polypoly constraint unconstrained binary optimization problem), HUBO (higher order unconstrained binary optimization problem), and constrained binary.
  • a method that includes at least one of the optimization problems. (Item 10) The method according to any one of items 1 to 9.
  • a method, wherein the data structure is a data structure to be subjected to processing for solving the mathematical optimization problem in at least one of a simulated annealing machine, a quantum annealing machine, and a quantum gate type computer. (Item 11) The method according to any one of items 1 to 10.
  • a method wherein the object corresponding to the mathematical model stored in the root node includes an object relating to a mathematical expression representing the mathematical model or an object relating to a cost function corresponding to the mathematical model.
  • the method according to any one of items 1 to 11.
  • the mathematical expression representing the mathematical model corresponding to the obtained mathematical optimization problem includes the mathematical expression corresponding to the constrained optimization problem.
  • a method further comprising transforming the data structure into a data structure corresponding to a binary optimization problem.
  • a data structure that is used by a computer to convert a mathematical optimization problem into an object program for a mathematical planning problem. The information of each element decomposed for each element constituting the mathematical formula expressing the mathematical model corresponding to the mathematical optimization problem is stored in each of the objects.
  • the computer An acquisition unit that acquires information related to a mathematical formula that expresses a mathematical model corresponding to the mathematical optimization problem, and an acquisition unit.
  • An object storage unit that decomposes each element that constitutes the above formula and stores information on each element in each object.
  • each of the objects is a node node as a tree-structured data structure in which the object corresponding to the mathematical model is the root node and the object related to each of the decomposed elements of the formula is the leaf node.
  • the data processing unit to be associated and A program that functions as.
  • System 10 Data processing server 20 Terminal 30 Analysis server 111 Display control unit 112 Acquisition unit 113 Object storage unit 114 Data processing unit 115 Conversion unit

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Operations Research (AREA)
  • Probability & Statistics with Applications (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Computing Systems (AREA)
  • Evolutionary Computation (AREA)
  • Computational Linguistics (AREA)
  • Artificial Intelligence (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

【課題】最適化問題を解くためにかかる負荷や時間を低減させること。 【解決手段】本開示による方法は、数理最適化問題を数理計画問題のオブジェクトプログラムに変換する処理に係る方法であって、プロセッサが、前記数理最適化問題に対応する数理モデルを表現する数式を構成する要素ごとに分解された要素の各々の情報をオブジェクトの各々に格納し、前記数理モデルに対応するオブジェクトをルートノードとし、分解された前記数式の前記要素の各々に係るオブジェクトをリーフノードとする木構造として、前記オブジェクトの各々を節点ノードにより関連付けて保持する。

Description

方法、データ構造およびプログラム
 本開示は、方法、データ構造およびプログラムに関する。
 いわゆる最適化問題を解く手法として、量子アニーリング手法が注目されている。例えば、下記特許文献1には、量子アニーリング計算を行うための処理方法が開示されている。
特表2019-513276号公報
 アニーリングマシン等において最適化問題に対応する数理モデルを解く場合に、いわゆる2値最適化問題のモデルに変換し、そのパラメータを探索するという手法が用いられている。しかしながら、かかるモデルに変換する際には、数理モデルを全てシリアライズしてコンパイルすることが行われているため、最適化対象の指標のサイズによっては、一連の最適化問題を解くための負荷や時間が長大となってしまう。
 そこで、本開示は上記問題点に鑑みてなされたものであり、その目的は、最適化問題を解くためにかかる負荷や時間を低減させることが可能な、方法、データ構造およびプログラムを提供することである。
 本開示によれば、数理最適化問題を数理計画問題のオブジェクトプログラムに変換するための方法であって、プロセッサが、前記数理最適化問題に対応する数理モデルを表現する数式に係る情報を取得することと、前記数式を構成する要素ごとに分解し、要素の各々の情報をオブジェクトの各々に格納することと、前記数式の要素について、前記数理モデルに対応するオブジェクトをルートノードとし、分解された前記数式の前記要素の各々に係るオブジェクトをリーフノードとする木構造のデータ構造として前記オブジェクトの各々を節点ノードにより関連付けることと、を含む方法が提供される。
 また、本開示によれば、コンピュータにより数理最適化問題を数理計画問題のオブジェクトプログラムに変換する処理に供されるデータ構造であって、前記数理最適化問題に対応する数理モデルを表現する数式を構成する要素ごとに分解された要素の各々の情報をオブジェクトの各々に格納し、前記数理モデルに対応するオブジェクトをルートノードとし、分解された前記数式の前記要素の各々に係るオブジェクトをリーフノードとする木構造として、前記オブジェクトの各々を節点ノードにより関連付けて保持する、データ構造が提供される。
 また、本開示によれば、コンピュータを、数理最適化問題を数理計画問題のオブジェクトプログラムに変換する処理に供するためのプログラムであって、前記コンピュータを、前記数理最適化問題に対応する数理モデルを表現する数式に係る情報を取得する取得部と、前記数式を構成する要素ごとに分解し、要素の各々の情報をオブジェクトの各々に格納するオブジェクト格納部と、前記数式の要素について、前記数理モデルに対応するオブジェクトをルートノードとし、分解された前記数式の前記要素の各々に係るオブジェクトをリーフノードとする木構造のデータ構造として前記オブジェクトの各々を節点ノードにより関連付けるデータ処理部と、として機能させるプログラムが提供される。
 本開示によれば、最適化問題を解くためにかかる負荷や時間を低減させることができる。
本開示の一実施形態に係るシステム1の構成例を示す図である。 同実施形態に係るデータ処理サーバ10を実現するコンピュータのハードウェア構成例を示す図である。 同実施形態に係るデータ処理サーバ10のソフトウェア構成例を示す図である。 同実施形態に係るオブジェクト格納部113においてオブジェクトごとに格納される要素の分解例を示す図である。 同実施形態に係るデータ処理部114による木構造T1の構築処理の一例を示す図である。 同実施形態に係るシステム1における一連の制御に係るフローチャート図である。 他の実施形態に係るデータ処理サーバ10’のソフトウェア構成例を示す図である。 同実施形態に係るデータ処理部1014による木構造T2の構築処理の一例を示す図である。 同実施形態に係る第1変換部1015による木構造T2から木構造T3への変換処理の一例を示す図である。 同実施形態に係るシステム1’における一連の制御に係るフローチャート図である。
 以下に添付図面を参照しながら、本開示の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
 図1は、本開示の一実施形態に係るシステム1の構成例を示す図である。図示するように、本実施形態に係るシステム1は、データ処理サーバ10と、端末20と、解析サーバ30と、を備える。また、データ処理サーバ10と、端末20と、解析サーバ30とは、ネットワークNWを介して通信可能に接続されている。なお、本構成は一例であり、ある構成が他の構成を兼ね備えていたり、他の構成が含まれていたりしてもよい。
 本実施形態においてネットワークNWはインターネットを想定している。ネットワークNWは、例えば、公衆電話回線網、携帯電話回線網、無線通信網、イーサネット(登録商標)などにより構築される。
 データ処理サーバ10は、例えば、最適化問題に対応する数理モデルを2値最適化問題のオブジェクトプログラムに変換(コンパイル)するためのコンピュータである。かかるデータ処理サーバ10は、例えば、ワークステーションまたはパーソナルコンピュータのような汎用コンピュータとしてもよいし、或いはクラウドコンピューティングによって論理的に実現されてもよい。
 端末20は、例えば、数理モデルに対応する数式を入力する際に用いられる端末である。例えば、端末20は、携帯電話、スマートフォン、タブレットコンピュータまたはパーソナルコンピュータ等であり得る。端末20は、ユーザ端末の一例である。
 解析サーバ30は、例えば、変換されたオブジェクトプログラムを実行して、最適化問題における最適パラメータを探索する解析処理を行うサーバである。解析サーバ30は、例えば、一般的な解析用のサーバであってもよいし、シミュレーテッドアニーリングマシン、量子アニーリングマシンおよび量子ゲート型コンピュータの少なくともいずれかであってもよい。
 本実施形態に係るシステム1の概要について説明する。最適化問題の数理モデルを例えば2値化最適化問題等の数理計画問題として解く場合、解析サーバ30において、数理計画問題に対応する式を解く必要がある。例えば、数理計画問題が2値最適化問題である場合は、数理モデルをQUBO(制約なし2次2値最適化問題)にマッピングをして解くとき、QUBOのモデリングにおいて定式化しようとすると、コスト関数に加えて、ペナルティ法やラグランジュの未定乗数法等に基づく制約項が付加され得る。これらの定式を従来の手法で解こうとすると、数式を全て展開する必要があるため、計算におけるミスや開発コストが大きくなる、という問題がある。
 そのため、例えば、プログラミング言語等で数理モデルを記述してQUBOのオブジェクトに変換する手法が開発されている。しかしながら、かかる手法においては、やはり上述したすべての項に関する情報が、総和の演算子Σ等が展開されている状態で変換されるため、その変換処理にかかる時間がデータの大きさに依存する。そのため、最適化問題を解くためにかかる時間が大きくなり得る。
 本実施形態に係るシステム1によれば、数理モデルに対応する数式を要素ごとに分解されており、各々の要素ごとにオブジェクトとして格納されるが、かかるオブジェクト間が木構造として保持され得る。各オブジェクトには、数式の演算子や変数等の情報がそのまま格納される。そして、各オブジェクトは、数理モデルを表現する情報を格納するオブジェクトをルートノードとして、各オブジェクトを接続する節点ノードを介し、各要素に係る情報を格納するオブジェクトをリーフノードとして、木構造により保持され得る。
 このような各要素に係る情報を格納するオブジェクトを木構造で持つことにより、数式の要素間の関連を保持したまま、オブジェクトプログラムに変換することができる。この場合、各項について総和演算子に囲われた要素を展開する必要がないため、変換により得られるオブジェクトプログラムのサイズを大きくしなくてよくなる。
 また、各要素のうち特に最適化問題の解く指標については、オブジェクトをプレースホルダにしておき、指標については別途他のデータとして保持しておくことにより、指標の有するサイズに関わらず、オブジェクトプログラムの変換にかかる負荷を増加させないようにすることができる。
 また、ユーザが端末20を使用して最適化問題を解く際に、ユーザは単に端末20に対して数理モデルに対応する数式の情報を入力するだけで、上記の木構造のデータ構造を生成し、自動的に最適化問題を解くためのオブジェクトプログラムを得て、最適化問題を解くことができる。なお、本実施形態では、数理最適化問題を2値最適化問題に変換して解くことを前提としているが、本技術はかかる例に限定されない。例えば、本実施形態に係るシステム1は、2値最適化問題以外にも、線形計画問題、混合整数計画問題および二次計画等の数理計画問題に変換して解くことも可能である。ここでいう数理計画問題は、例えば、その問題を処理するアルゴリズム、ハードウェアで解釈可能な数理計画問題を意味する。
 以下、本実施形態の詳細について説明する。
 図2は、本実施形態に係るデータ処理サーバ10を実現するコンピュータのハードウェア構成例を示す図である。データ処理サーバ10は、少なくとも、制御部11、メモリ12、ストレージ13、通信部14および入出力部15等を備える。これらはバス16を通じて相互に電気的に接続される。
 制御部11は、データ処理サーバ10全体の動作を制御し、各要素間におけるデータの送受信の制御、及びアプリケーションの実行及び認証処理に必要な情報処理等を行う演算装置である。例えば制御部11は、CPU(Central Processing Unit)等のプロセッサであり、ストレージ13に格納されメモリ12に展開されたプログラム等を実行して各情報処理を実施する。
 メモリ12は、DRAM(Dynamic Random Access Memory)等の揮発性記憶装置で構成される主記憶と、フラッシュメモリまたはHDD(Hard Disc Drive)等の不揮発性記憶装置で構成される補助記憶と、を含む。メモリ12は、制御部11のワークエリア等として使用され、また、データ処理サーバ10の起動時に実行されるBIOS(Basic Input/Output System)、及び各種設定情報等を格納する。
 ストレージ13は、アプリケーション・プログラム等の各種プログラムを格納する。各処理に用いられるデータを格納したデータベースがストレージ13に構築されていてもよい。
 通信部14は、データ処理サーバ10をネットワークに接続する。通信部14は、例えば、有線LAN(Local Area Network)、無線LAN、Wi-Fi(Wireless Fidelity、登録商標)、赤外線通信、Bluetooth(登録商標)、近距離または非接触通信等の方式で、外部機器と直接またはネットワークアクセスポイントを介して通信する。
 入出力部15は、例えば、キーボード、マウス、タッチパネル等の情報入力機器、及びディスプレイ等の出力機器である。
 バス16は、上記各要素に共通に接続され、例えば、アドレス信号、データ信号及び各種制御信号を伝達する。
 本実施形態に係る端末20および解析サーバ30を実現するコンピュータやスマートフォン等の端末のハードウェア構成は、図2に示すデータ処理サーバ10のハードウェア構成例と同様であるため、説明を省略する。
 図3は、本実施形態に係るデータ処理サーバ10のソフトウェア構成例を示す図である。データ処理サーバ10の制御部11は、表示制御部111、取得部112、オブジェクト格納部113、データ処理部114および変換部115を備える。
 表示制御部111は、端末20に、数理モデルを表現する数式を入力させるための表示を制御する機能を有する。例えば、表示制御部111は、数式を入力するためのフォームを端末20の画面に表示させてもよい。かかるフォームは、フリーフォームであってもよいし、所定の選択肢等から選択させて入力させる形式のものであってもよい。また、表示制御部111は、数理モデルの数式を規定したファイル等を読み込むためのインタフェースを端末20の画面に表示してもよい。このように、数理モデルの数式を入力させるために表示するオブジェクトや、該数式の入力に用いられるフォーマット等は、特に限定されない。
 取得部112は、数理モデルを表現する数式に係る情報を取得する機能を有する。例えば、本実施形態にかかる取得部112は、端末20に対して入力された数式に係る情報を取得しうる。また、予め任意のストレージ等に数式に係る情報が入力されている場合は、取得部112は、該ストレージ等から該情報を取得してもよい。取得部112による処理は、例えば、端末20に数式を入力したユーザの操作に基づく指示等により開始されてもよい。具体的には、端末20にユーザが数式を入力し、その入力作業が完了した際に処理を開始させるためのオブジェクトをユーザが操作したときに、取得部112がかかる数式に係る情報を端末20から取得してもよい。
 なお、数式に係る情報は、例えば、最適化問題を表現する数式の構成および該構成の要素に係る情報を含み得る。本実施形態では、数式の一例として、以下の数式(1)のような数理モデルに対応するコスト関数の数式を用いることとする。このとき、左辺はコスト関数、右辺の第1項はコスト項、右辺の第2項は制約項と称する。対象とする数理モデルは、例えば巡回セールスマン問題のような最適化問題に対応する数理モデルであり得る。また、数理モデルに対応する2値最適化問題は、例えば、QUBO(制約なし2次2値最適化問題)、PUBO(多項式制約なし2値最適化問題)、HUBO(高次数制約なし2値最適化問題)および制約付き2値最適化問題の少なくともいずれかを含む。以下の数式(1)は、QUBOに対応する数式である。どの2値最適化問題を採用するかは、例えば問題を解くためのハードウェアのアーキテクトや、問題を解くためのアルゴリズムによって適宜決定される。
Figure JPOXMLDOC01-appb-M000001
 オブジェクト格納部113は、取得した数式を構成する要素ごとに分解し、分解した要素の各々の情報を、オブジェクトの各々に格納する機能を有する。ここでいう「要素」とは、例えば、数式の演算子、変数、文字式、指数部、係数および定数を少なくとも含みうる。演算子とは、例えばΣのような総和演算子や括弧等である。
 図4は、本実施形態に係るオブジェクト格納部113においてオブジェクトごとに格納される要素の分解例を示す図である。図4に示すように、例えば、数式は、コスト関数Eの要素201と、Σtの要素202と、Σijの要素203と、複数の文字式および変数の要素204と、λの要素205と、Σtに含まれる項の要素206と、Σiに含まれる項の要素207と、に分解され得る。さらに、図4の破線に示すように、要素204、206および207は、さらに変数、定数、文字式および指数ごとに分解され得る。このように、数式は上述するような要素ごとに分解され、それぞれが単独のオブジェクトに格納される。このとき、オブジェクトに格納される情報は、数式に示す演算子や変数等の情報そのものである。また、演算子(例えばΣ等)においては、メタ情報として、添字の情報も併せて格納され得る。これにより、他のオブジェクトに格納された文字式等の添字との関係性を維持したまま、後述する木構造のデータ構造を得ることができる。すなわち、演算子の項の展開をすることなく、演算子に係る情報をオブジェクトとして保持することが可能である。
 また、詳細は後述するが、数式の制約項における制約条件208に係る情報も、上述したオブジェクトとして格納することができる。このような制約条件に係る情報をオブジェクトに格納しておくことで、最適化問題を解くうえで、様々な制約条件を扱うことができる。このように、演算子の添字や制約条件に係る情報を、本明細書においてはメタ情報と称する。かかるメタ情報は、リーフノード同士の関係を規定し得るものである。また、制約条件は、本実施形態においては等式制約に係る条件に限定されず、不等式制約に係る条件であってもよい。以下に示す木構造においては、このような制約条件においても抽象化してオブジェクト化することができるため、様々な制約条件における最適化問題を解くことが可能となる。
 データ処理部114は、分解したオブジェクトの各々を木構造のデータ構造として構築し、それぞれのオブジェクトを保持する処理を行う機能を有する。具体的には、データ処理部114は、数理モデルに対応するオブジェクトをルートノードとし、分解された数式の要素の各々に係るオブジェクトをリーフノードとする木構造を構築し、オブジェクトの各々を節点ノードにより関連付ける機能を有する。
 図5は、本実施形態に係るデータ処理部114による木構造T1の構築処理の一例を示す図である。図5に示すように、まず、木構造T1のルートノード300には、数理モデルを表現する例としてコスト関数Eに係る情報が格納される。なお、ルートノード300は、コスト関数Eの他にも、例えば、数理モデルそのものを規定する数式に係る情報が格納されていてもよい。より具体的には、コスト関数Eの他に、またはコスト関数Eに代えて、ルートノードには、数理モデルを規定する下記数式(2)および数式(3)に係る情報が格納されていてもよい。
Figure JPOXMLDOC01-appb-M000002
 ここで、{x}は全変数の組を表し、Ecost({x})は数理モデルにおけるコスト関数を表し、f({x})は任意の関数を表し、aは任意の定数を表す。また、s.t.の制約項を構成する制約式は、複数であってもよい。
 ルートノード300からは、2本の枝が別れて、子ノードである節点ノード351、354が設けられる。節点ノード351の子ノードとして、演算子Σtに係る情報を格納するリーフノード301と、節点ノード352とが設けられる。節点ノード352の子ノードとして、演算子Σiに係る情報を格納するリーフノード302と、節点ノード353とが設けられる。節点ノード353の子ノードとして、文字式di,j、変数qi,t、qi,t+1に係る情報を格納するリーフノード303、304、305が設けられる。同様に、節点ノード354の子ノードとして、変数λ、制約条件(=0)に係る情報を格納するリーフノード306、307と、節点ノード355とが設けられる。節点ノード355の子ノードとして、演算子Σt、定数、括弧付き指数に係る情報を格納するリーフノード308、309、310と、節点ノード356とが設けられる。節点ノード356の子ノードとして、演算子Σi、変数qi,tに係る情報を格納するリーフノード311、312が設けられる。
 節点ノードは、親子ノードの関係および該節点ノードを共有する子ノード間の関係を規定する情報が格納され得る。例えば、節点ノード351以下のリーフノード等により構成される数式の項はコスト項であり、節点ノード354以下のリーフノード等により構成される数式の項は制約項である。節点ノード351は、リーフノード301に係る演算子Σtが、節点ノード352以下のノードに対応する数式の要素をネストする関係であることを規定する情報を格納し得る。また、節点ノード352は、リーフノード302に係る演算子Σiが、節点ノード353以下のノードに対応する数式の要素をネストする関係であることを規定する情報を格納し得る。また、節点ノード353は、リーフノード303、304および305に対応する要素をそれぞれ乗算することを規定する情報を格納し得る。このように、節点ノードには、例えば、四則演算および指数の関係性、演算子の入れ子構造の関係性および該節点ノード以下のノードにより構成される数式の項に対する条件を規定することを示す情報が格納され得る。
 同様に、節点ノード354は、リーフノード306に係る変数λと、節点ノード355以下のノードに対応する数式の要素とを乗算すること、およびリーフノード307に示される制約条件を制約項に課していることを示す情報とを格納し得る。また、節点ノード355は、リーフノード308に係る演算子Σtが、節点ノード356以下のノードに対応する数式の要素と、リーフノード309、310に係る定数および括弧付き指数をネストする関係であることを規定する情報を格納し得る。また、節点ノード356は、リーフノード311に係る演算子Σiが、リーフノード312に係る変数qi,tをネストする関係であることを規定する情報を格納し得る。
 このように、木構造T1に示すように、演算子の入れ子構造の関係性や、四則演算および指数等の関係に応じて、分解された要素のオブジェクトが、それぞれ節点ノードを介して接続され得る。このような木構造のオブジェクトに要素に係る情報を格納することで、数理モデルを数式として定式化した際の数式の構造により表現される意図がそのままデータ構造として保持することができる。
 また、di,jにより表現される最適化問題における最適化対象の指標(例えば、巡回セールスマン問題における都市間の距離に相当するパラメータ)を表すデータを規定する文字式について、該文字式により規定される指標のデータセットは、木構造のデータ構造とは異なるデータ構造において設けられていてもよい。すなわち、図5に示すように「di,j」のリーフノード303が設けられるが、かかる文字式はプレースホルダによるオブジェクトに格納されるものであってもよい。その際、指標のデータセットは、他のデータベース等に格納され得る。そして、後述する変換部115においてオブジェクトプログラムに変換された後に、適切な形でdi,jのデータセットが該オブジェクトプログラムの対応するオブジェクトに代入され得る。このように、木構造においてdi,jに直接データセットを格納せず、プレースホルダに対してあとで参照する形とする(すなわち遅延評価をする)ことで、変換処理におけるデータセットのサイズに応じた処理の負荷が増えにくくなる。これにより、例えばAPI等を経由して最適化問題を解く場合に、データサイズに依らずに安定した計算速度を得ることができる。
 また、添字の関係性や制約条件等の詳細な情報を含むメタ情報をオブジェクトとして木構造(特に、節点ノードを共有する親または子のノードに対応するオブジェクト)に関連付けることで、最適化問題を解析サーバ30において解く際に、かかるメタ情報を考慮した処理を行うことができる。また例えば、演算子や文字式に係るオブジェクトに添字の情報を併せて格納することで、演算子の展開をせずに、後述する変換処理を行うことができる。これにより、変換処理における計算負荷を低減させることができる。
 変換部115は、木構造により規定されるリーフノードのオブジェクトを読み取り、オブジェクトと節点ノードを介して接続される他のリーフノードのオブジェクトとの関連に関する情報を含めて、オブジェクトの各々を2値化最適化問題のオブジェクトプログラムに変換する機能を有する。かかるオブジェクトプログラムは、解析サーバ30において実行され得る。なお、変換部115を実現するコンパイラは、例えば、解析サーバ30を実現するハードウェアの種類(例えば量子アニーリングマシンやシミュレーテッドアニーリングマシン等を含む最適化用マシンやアルゴリズムの種類)に応じて、適宜設定され得る。また、他のリーフノードのオブジェクトとの関連は、上述したように、互いに共有する節点ノードに格納される情報により規定され得る。なお、変換部115は、本実施形態において設けられなくてもよい。
 例えば、演算子等が抽象化され、オブジェクトとして格納され、木構造により各オブジェクトの関連性を規定し、指標のデータセットに係るオブジェクトをプレースホルダとして扱い数理モデルと分離することで、変換部115における数理モデルの変換処理にかかる負荷が小さくなる。これにより、高速での変換処理が実現され、最適化問題における総合的な計算時間を短縮することができる。
 図6は、本実施形態に係るシステム1における一連の制御に係るフローチャート図である。まず、データ処理サーバ10の表示制御部111は、端末20に数理モデルを表現する数式を入力させるための画面を表示させ、ユーザに数式を入力させる(ステップSQ101)。つぎに取得部112が取得した数式を要素ごとに分解し、オブジェクト格納部113は要素の各々をオブジェクトの各々に格納する(ステップSQ103)。なお、数式の取得は、上述したユーザによる数式の入力に限定されず、例えば予めデータ処理サーバ10等に記憶されている数式の情報を取得することによるものであってもよい。
 次に、データ処理部114は、オブジェクトのそれぞれを、コスト関数等の数理モデルを表現するオブジェクトをルートノードとし、各要素をリーフノードとし、要素間の関係に基づく木構造のデータ構造を構築する(ステップSQ105)。そして、変換部115は、得られた各オブジェクトについて木構造に基づき変換処理(コンパイル)を行い、2値最適化問題を解析サーバ30で解くためのオブジェクトプログラムを生成する(ステップSQ107)。
 以上説明したように、本実施形態に係るシステム1によれば、解くべき数理モデルについて2値最適化問題としてアニーリングマシン等による解析にかける前段階として、数理モデルに対応する数式を要素ごとに分解し、それぞれの要素に対応するオブジェクトについて、該数式の表現に基づく木構造によるデータ構造を得ることができる。かかるデータ構造を用いて変換処理を行う際、演算子等の情報が抽象化された状態で保持されるため、従来のような演算子の展開が必須ではなく、数式をシリアライズすることなく、数理モデルのサイズの大きさに依らず安定的に変換処理を行うことができる。すなわち、最適化問題を解くための計算に係る負荷や時間を低減させることができる。
 また、最適化問題における最適化の対象である指標のデータセットを、上述のデータ構造とは別のデータとして保持しておき、指標に対応するオブジェクトはプレースホルダとすることで、指標のデータセットをそのまま変換処理に供することなく、変換後のオブジェクトプログラムに代入するだけで済む。これにより、指標のデータセットのデータの大きさに依存せず、数理モデルのサイズにより計算の負荷等が決定される。よって、指標のデータセットのデータの大きさに関係なく、安定した計算時間を得ることができる。
 次に、他の実施形態に係るデータ処理サーバ10’について説明する。上記実施形態においては、最適化問題を表現する数式を入力してデータ構造に変換する場合に、かかる数式は最適化問題を量子アニーリング等の手法により解くことに予め適した数式(例えば、QUBOなど)が入力情報として用いられたが、本実施形態では、例えば、制約付き最適化問題を表現する数式など、最適化問題としてそのまま解くには適していない式を入力情報として最適化問題を解くための構成について説明する。図7は、他の実施形態に係るデータ処理サーバ10’のソフトウェア構成例を示す図である。データ処理サーバ10’の制御部11’は、表示制御部1011、取得部1012、オブジェクト格納部1013、データ処理部1014、第1変換部1015および第2変換部1016を備える。
 表示制御部1011は、上記実施形態に係る表示制御部111と同様の機能を有するため、説明を省略する。
 取得部1012は、数理モデルを表現する数式に係る情報を取得する機能を有する。例えば、本実施形態にかかる取得部112は、端末20に対して入力された数式に係る情報を取得しうる。本実施形態では、取得対象である数理モデルを表現する数式は、上記実施形態のようなQUBOやPUBO、HUBO等の2値最適化問題を解くのに適した数理モデルに対応する式ではなく、例えば、制約条件の数式と、目的関数の数式とを合わせた制約付き最適化問題に対応する数式が想定され得る。目的関数の数式は例えばf(x)等の数式により表現される。また、制約条件の数式は、g(x)=0等の数式により表現され得る。それぞれの数式の構成等は特に限定されない。
 オブジェクト格納部1013は、取得した数式を構成する要素ごとに分解し、分解した要素の各々の情報を、オブジェクトの各々に格納する機能を有する。要素や演算子等の定義は、上記実施形態と同様であるため省略する。
 オブジェクト格納部1013は、例えば、下記に示す制約条件の数式(4)について、それぞれの要素ごとに分解し、単独のオブジェクトに格納する。
Figure JPOXMLDOC01-appb-M000003
 なおここには示されていないが、目的関数の数式についても同様に、オブジェクト格納部1013は該数式を要素ごとに分解してオブジェクトに格納し得る。
 データ処理部1014は、分解したオブジェクトの各々を木構造のデータ構造として構築し、それぞれのオブジェクトを保持する処理を行う機能を有する。本実施形態に係るデータ処理部1014は、各要素に分解された制約条件の数式に対応するデータ構造を構築しうる。かかるデータ構造の構築処理、およびオブジェクトの保持処理については、上記実施形態と同様である。また、本実施形態に係るデータ処理部1014は、目的関数の数式に対応するデータ構造を構築し得る。
 図8は、本実施形態に係るデータ処理部1014による木構造T2の構築処理の一例を示す図である。図8に示す木構造T2は、上記の数式(4)を要素ごとに分解したものである。ルートノード400は演算子である等号に係る情報を格納する。ルートノード400からは、2本の枝が分かれて、子ノードであるリーフノード401、402が設けられる。リーフノード401は演算子Σxに係る情報を格納する。リーフノード402は定数+1に係る情報を格納する。
 第1変換部1015は、第1の数式に係るデータ構造を、第2の数式に係るデータ構造に変換する(トランスパイル)機能を有する。ここで、第1の数式とは、例えば、制約付き最適化問題に対応する数式であり、第2の数式とは、例えば、2値最適化問題に対応する数式であり得る。例えば、上記の数式(4)をQUBO表現の数式(5)に変換する場合を想定する。図9は、本実施形態に係る第1変換部1015による木構造T2から木構造T3への変換処理の一例を示す図である。図9に示す木構造T3は、数式(4)に示す制約付き最適化問題に対応する数式を数式(5)に示すQUBO表現に対応する数式に変換した際の、QUBO表現に対応する木構造T3である。
Figure JPOXMLDOC01-appb-M000004
 ルートノード500は、演算子であるPower(冪)に係る情報を格納する。ルートノード500からは、2本の枝が分かれて、子ノードである節点ノード551とリーフノード503が設けられる。節点ノード551からは、2本の枝が分かれて、子ノードであるリーフノード501、502が設けられる。
 リーフノード501は演算子Σxに係る情報を格納する。リーフノード502は定数-1に係る情報を格納する。リーフノード503は定数+2に係る情報を格納する。節点ノード551は、リーフノード501、502に対応する要素をそれぞれ足し合わせることを規定する情報を格納し得る。なお、図8および図9に示す各ノードの機能は、上記実施形態と同様である。
 第1変換部1015は、図8に示すような木構造T2を、所定の規則やテーブル等に従って、木構造T3に変換し得る。かかる所定の規則やテーブルは、例えば入力される制約付き最適化問題に対応する数式と2値最適化問題に対応する数式との関連等により定められるものであってもよいし、かかる規則やテーブルは、機械学習における学習モデルに対応するものであってもよい。
 なお、図8および図9に示す例は、上記数式(4)に示す制約条件の数式をデータ構造化し、2値最適化問題に係るQUBO表現のデータ構造に変換した例である。第1変換部1015は、目的関数の数式をデータ構造化したものを、QUBO表現のデータ構造に変換してもよい。また、第1変換部1015は、制約条件に対応するデータ構造と目的関数に対応するデータ構造とを組み合わせて、最適化問題に対応するデータ構造を構築してもよい。かかるデータ構造は、変換処理の前に組み合わせれた後に第1変換部1015によりQUBO表現に対応するデータ構造に変換されるものであってもよいし、第1変換部1015により制約条件のデータ構造と目的関数のデータ構造とがQUBO表現のデータ構造にそれぞれ変換された後に、変換後のデータ構造が組み合わされたものであってもよい。
 第2変換部1016は、木構造により規定されるリーフノードのオブジェクトを読み取り、オブジェクトと節点ノードを介して接続される他のリーフノードのオブジェクトとの関連に関する情報を含めて、オブジェクトの各々を2値化最適化問題のオブジェクトプログラムに変換する機能を有する。すなわち、本実施形態に係る第2変換部1016は、上記実施形態の変換部115に対応する。
 図10は、本実施形態に係るシステム1’における一連の制御に係るフローチャート図である。まず、データ処理サーバ10’の表示制御部1011は、端末20に制約付き最適化問題の数式を入力させるための画面を表示させ、ユーザに数式を入力させる(ステップSQ201)。つぎに取得部1012が取得した数式を要素ごとに分解し、オブジェクト格納部1013は要素の各々をオブジェクトの各々に格納する(ステップSQ203)。なお、数式の取得は、上述したユーザによる数式の入力に限定されず、例えば予めデータ処理サーバ10’等に記憶されている数式の情報を取得することによるものであってもよい。
 次に、データ処理部1014は、オブジェクトのそれぞれを、制約条件の数式や目的関数の数式等の数理モデルを表現するオブジェクトをルートノードとし、各要素をリーフノードとし、要素間の関係に基づく木構造のデータ構造を構築する(ステップSQ205)。次に、第1変換部1015は、構築したデータ構造を、2値最適化問題を解くための数式に対応するデータ構造に変換するための変換処理(トランスパイル)を行う(ステップS207)。そして、第2変換部1016は、得られた各オブジェクトについて木構造に基づき変換処理(コンパイル)を行い、2値最適化問題を解析サーバ30で解くためのオブジェクトプログラムを生成する(ステップSQ209)。
 以上説明したように、本実施形態に係るシステム1’によれば、一般的な最適化問題に係る数式を入力するだけで、自動的に2値最適化問題を解くためのデータ構造に変換され、アニーリングマシン等による解析にかけることが可能となる。そのため、2値最適化問題を解くために必要な数理モデルについてユーザが詳しくなくても、最適化問題の数式を入力するだけで、より簡単に最適化問題を解くことが可能となる。また、最適化問題を解くために必要な表現に変換する際にデータ構造の形を維持したまま変換処理が行われるので、最適化問題を解くための計算に係る負荷や時間を低減させることができる。
 以上、添付図面を参照しながら本開示の好適な実施形態について詳細に説明したが、本開示の技術的範囲はかかる例に限定されない。本開示の技術分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本開示の技術的範囲に属するものと了解される。
 本明細書において説明した装置は、単独の装置として実現されてもよく、一部または全部がネットワークで接続された複数の装置(例えばクラウドサーバ)等により実現されてもよい。例えば、データ処理サーバ10の制御部11およびストレージ13は、互いにネットワークで接続された異なるサーバにより実現されてもよい。また、データ処理サーバ10の機能の全部または一部は、端末20において発揮されてもよい。
 本明細書において説明した装置による一連の処理は、ソフトウェア、ハードウェア、及びソフトウェアとハードウェアとの組合せのいずれを用いて実現されてもよい。本実施形態に係るデータ処理サーバ10の各機能を実現するためのコンピュータプログラムを作製し、PC等に実装することが可能である。また、このようなコンピュータプログラムが格納された、コンピュータで読み取り可能な記録媒体も提供することができる。記録媒体は、例えば、磁気ディスク、光ディスク、光磁気ディスク、フラッシュメモリ等である。また、上記のコンピュータプログラムは、記録媒体を用いずに、例えばネットワークを介して配信されてもよい。
 また、本明細書においてフローチャート図を用いて説明した処理は、必ずしも図示された順序で実行されなくてもよい。いくつかの処理ステップは、並列的に実行されてもよい。また、追加的な処理ステップが採用されてもよく、一部の処理ステップが省略されてもよい。
 また、本明細書に記載された効果は、あくまで説明的または例示的なものであって限定的ではない。つまり、本開示に係る技術は、上記の効果とともに、または上記の効果に代えて、本明細書の記載から当業者には明らかな他の効果を奏しうる。
 なお、以下のような構成も本開示の技術的範囲に属する。
(項目1)
 数理最適化問題を数理計画問題のオブジェクトプログラムに変換するための方法であって、
 プロセッサが、
 前記数理最適化問題に対応する数理モデルを表現する数式に係る情報を取得することと、
 前記数式を構成する要素ごとに分解し、要素の各々の情報をオブジェクトの各々に格納することと、
 前記数式の要素について、前記数理モデルに対応するオブジェクトをルートノードとし、分解された前記数式の前記要素の各々に係るオブジェクトをリーフノードとする木構造のデータ構造として前記オブジェクトの各々を節点ノードにより関連付けることと、
 を含む方法。
(項目2)
 項目1に記載の方法であって、
 前記木構造を構成するリーフノードのオブジェクトは、前記要素に関するメタ情報を含む、方法。
(項目3)
 項目2に記載の方法であって、
 前記メタ情報は、前記節点ノードを共有する少なくとも1のオブジェクトに格納される前記数式の要素と関連付けられる、方法。
(項目4)
 項目3に記載の方法であって、
 前記節点ノードの下位にあるリーフノードのオブジェクトは、前記数式のうち制約条件に係る項を構成する要素を含み、
 前記メタ情報は、前記制約条件に関する情報を含む、方法。
(項目5)
 項目4に記載の方法であって、
 前記制約条件は、等式制約に係る条件および不等式制約に係る条件の少なくともいずれかを含む、方法。
(項目6)
 項目2~5のいずれか1項に記載の方法であって、
 前記数式の要素は、演算子および文字式の少なくともいずれかを含み、
 前記メタ情報は、前記演算子および前記文字式の少なくともいずれかにそれぞれ添えられる添字に関する情報を含む、方法。
(項目7)
 項目1~6のいずれか1項に記載の方法であって、
 前記数式の要素は、前記数理最適化問題における最適化対象の指標を表すデータを規定する文字式を含み、
 前記文字式により規定される前記指標のデータセットは、前記文字式に係る情報をリーフにおいて格納する前記木構造のデータ構造とは異なるデータ構造において設けられる、方法。
(項目8)
 項目1~7のいずれか1項に記載の方法であって、
 前記数理計画問題は2値最適化問題を含む、方法。
(項目9)
 項目8に記載の方法であって、
 前記2値最適化問題は、QUBO(制約なし2次2値最適化問題)、PUBO(多項式制約なし2値最適化問題)、HUBO(高次数制約なし2値最適化問題)および制約付き2値最適化問題の少なくともいずれかを含む、方法。
(項目10)
 項目1~9のいずれか1項に記載の方法であって、
 前記データ構造は、シミュレーテッドアニーリングマシン、量子アニーリングマシンおよび量子ゲート型コンピュータの少なくともいずれかにおける前記数理最適化問題を解くための処理に供されるためのデータ構造である、方法。
(項目11)
 項目1~10のいずれか1項に記載の方法であって、
 前記ルートノードに格納される前記数理モデルに対応するオブジェクトは、前記数理モデルを表現する数式に関するオブジェクトまたは該数理モデルに対応するコスト関数に関するオブジェクトを含む、方法。
(項目12)
 項目1~11のいずれか1項に記載の方法であって、
 取得される前記数理最適化問題に対応する数理モデルを表現する数式は、制約付き最適化問題に対応する数式を含み、
 前記データ構造を、2値最適化問題に対応するデータ構造に変換することをさらに含む、方法。
(項目13)
 コンピュータにより数理最適化問題を数理計画問題のオブジェクトプログラムに変換する処理に供されるデータ構造であって、
 前記数理最適化問題に対応する数理モデルを表現する数式を構成する要素ごとに分解された要素の各々の情報をオブジェクトの各々に格納し、
 前記数理モデルに対応するオブジェクトをルートノードとし、分解された前記数式の前記要素の各々に係るオブジェクトをリーフノードとする木構造として、前記オブジェクトの各々を節点ノードにより関連付けて保持する、データ構造。
(項目14)
 コンピュータを、数理最適化問題を数理計画問題のオブジェクトプログラムに変換する処理に供するためのプログラムであって、
 前記コンピュータを、
 前記数理最適化問題に対応する数理モデルを表現する数式に係る情報を取得する取得部と、
 前記数式を構成する要素ごとに分解し、要素の各々の情報をオブジェクトの各々に格納するオブジェクト格納部と、
 前記数式の要素について、前記数理モデルに対応するオブジェクトをルートノードとし、分解された前記数式の前記要素の各々に係るオブジェクトをリーフノードとする木構造のデータ構造として前記オブジェクトの各々を節点ノードにより関連付けるデータ処理部と、
 として機能させるプログラム。
 1    システム
 10   データ処理サーバ
 20   端末
 30   解析サーバ
 111  表示制御部
 112  取得部
 113  オブジェクト格納部
 114  データ処理部
 115  変換部

Claims (14)

  1.  数理最適化問題を数理計画問題のオブジェクトプログラムに変換するための方法であって、
     プロセッサが、
     前記数理最適化問題に対応する数理モデルを表現する数式に係る情報を取得することと、
     前記数式を構成する要素ごとに分解し、要素の各々の情報をオブジェクトの各々に格納することと、
     前記数式の要素について、前記数理モデルに対応するオブジェクトをルートノードとし、分解された前記数式の前記要素の各々に係るオブジェクトをリーフノードとする木構造のデータ構造として前記オブジェクトの各々を節点ノードにより関連付けることと、
     を含む方法。
  2.  請求項1に記載の方法であって、
     前記木構造を構成するリーフノードのオブジェクトは、前記要素に関するメタ情報を含む、方法。
  3.  請求項2に記載の方法であって、
     前記メタ情報は、前記節点ノードを共有する少なくとも1のオブジェクトに格納される前記数式の要素と関連付けられる、方法。
  4.  請求項3に記載の方法であって、
     前記節点ノードの下位にあるリーフノードのオブジェクトは、前記数式のうち制約条件に係る項を構成する要素を含み、
     前記メタ情報は、前記制約条件に関する情報を含む、方法。
  5.  請求項4に記載の方法であって、
     前記制約条件は、等式制約に係る条件および不等式制約に係る条件の少なくともいずれかを含む、方法。
  6.  請求項2~5のいずれか1項に記載の方法であって、
     前記数式の要素は、演算子および文字式の少なくともいずれかを含み、
     前記メタ情報は、前記演算子および前記文字式の少なくともいずれかにそれぞれ添えられる添字に関する情報を含む、方法。
  7.  請求項1~6のいずれか1項に記載の方法であって、
     前記数式の要素は、前記数理最適化問題における最適化対象の指標を表すデータを規定する文字式を含み、
     前記文字式により規定される前記指標のデータセットは、前記文字式に係る情報をリーフにおいて格納する前記木構造のデータ構造とは異なるデータ構造において設けられる、方法。
  8.  請求項1~7のいずれか1項に記載の方法であって、
     前記数理計画問題は2値最適化問題を含む、方法。
  9.  請求項8に記載の方法であって、
     前記2値最適化問題は、QUBO(制約なし2次2値最適化問題)、PUBO(多項式制約なし2値最適化問題)、HUBO(高次数制約なし2値最適化問題)および制約付き2値最適化問題の少なくともいずれかを含む、方法。
  10.  請求項1~9のいずれか1項に記載の方法であって、
     前記データ構造は、シミュレーテッドアニーリングマシン、量子アニーリングマシンおよび量子ゲート型コンピュータの少なくともいずれかにおける前記数理最適化問題を解くための処理に供されるためのデータ構造である、方法。
  11.  請求項1~10のいずれか1項に記載の方法であって、
     前記ルートノードに格納される前記数理モデルに対応するオブジェクトは、前記数理モデルを表現する数式に関するオブジェクトまたは該数理モデルに対応するコスト関数に関するオブジェクトを含む、方法。
  12.  請求項1~11のいずれか1項に記載の方法であって、
     取得される前記数理最適化問題に対応する数理モデルを表現する数式は、制約付き最適化問題に対応する数式を含み、
     前記データ構造を、2値最適化問題に対応するデータ構造に変換することをさらに含む、方法。
  13.  コンピュータにより数理最適化問題を数理計画問題のオブジェクトプログラムに変換する処理に供されるデータ構造であって、
     前記数理最適化問題に対応する数理モデルを表現する数式を構成する要素ごとに分解された要素の各々の情報をオブジェクトの各々に格納し、
     前記数理モデルに対応するオブジェクトをルートノードとし、分解された前記数式の前記要素の各々に係るオブジェクトをリーフノードとする木構造として、前記オブジェクトの各々を節点ノードにより関連付けて保持する、データ構造。
  14.  コンピュータを、数理最適化問題を数理計画問題のオブジェクトプログラムに変換する処理に供するためのプログラムであって、
     前記コンピュータを、
     前記数理最適化問題に対応する数理モデルを表現する数式に係る情報を取得する取得部と、
     前記数式を構成する要素ごとに分解し、要素の各々の情報をオブジェクトの各々に格納するオブジェクト格納部と、
     前記数式の要素について、前記数理モデルに対応するオブジェクトをルートノードとし、分解された前記数式の前記要素の各々に係るオブジェクトをリーフノードとする木構造のデータ構造として前記オブジェクトの各々を節点ノードにより関連付けるデータ処理部と、
     として機能させるプログラム。
PCT/JP2021/013273 2020-06-16 2021-03-29 方法、データ構造およびプログラム WO2021256046A1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
EP21824907.6A EP4167151A4 (en) 2020-06-16 2021-03-29 METHOD, DATA STRUCTURE AND PROGRAM
JP2021560741A JP7034528B1 (ja) 2020-06-16 2021-03-29 方法、データ構造およびプログラム
JP2022025183A JP2022067101A (ja) 2020-06-16 2022-02-22 方法、データ構造およびプログラム
US18/075,734 US20230195837A1 (en) 2020-06-16 2022-12-06 Method, computer-readable storage medium

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2020-103540 2020-06-16
JP2020103540 2020-06-16
JP2020-216152 2020-12-25
JP2020216152 2020-12-25

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US18/075,734 Continuation US20230195837A1 (en) 2020-06-16 2022-12-06 Method, computer-readable storage medium

Publications (1)

Publication Number Publication Date
WO2021256046A1 true WO2021256046A1 (ja) 2021-12-23

Family

ID=79267824

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2021/013273 WO2021256046A1 (ja) 2020-06-16 2021-03-29 方法、データ構造およびプログラム

Country Status (4)

Country Link
US (1) US20230195837A1 (ja)
EP (1) EP4167151A4 (ja)
JP (2) JP7034528B1 (ja)
WO (1) WO2021256046A1 (ja)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019513276A (ja) 2016-03-11 2019-05-23 ワンキュービー インフォメーション テクノロジーズ インク. 量子計算のための方法及びシステム

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05158911A (ja) * 1991-07-12 1993-06-25 Hitachi Ltd 粒子シミュレーションプログラム生成方法
KR101503208B1 (ko) 2010-08-27 2015-03-17 후루카와 덴키 고교 가부시키가이샤 구리합금 판재 및 그 제조방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019513276A (ja) 2016-03-11 2019-05-23 ワンキュービー インフォメーション テクノロジーズ インク. 量子計算のための方法及びシステム

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
KOTARO TANAHASHI, TAKAYANAGI SHINICHI, MOTOHASHI TOMOMITSU, TANAKA SHU: "Application of Ising Machines and a Software Development for Ising Machines", JOURNAL OF THE PHYSICAL SOCIETY OF JAPAN., PHYSICAL SOCIETY OF JAPAN. TOKYO., JP, vol. 88, no. 6, 20 May 2019 (2019-05-20), JP , pages 061010, XP055749499, ISSN: 0031-9015, DOI: 10.7566/JPSJ.88.061010 *
See also references of EP4167151A4

Also Published As

Publication number Publication date
JP2022067101A (ja) 2022-05-02
JP7034528B1 (ja) 2022-03-14
US20230195837A1 (en) 2023-06-22
EP4167151A4 (en) 2023-12-13
EP4167151A1 (en) 2023-04-19
JPWO2021256046A1 (ja) 2021-12-23

Similar Documents

Publication Publication Date Title
US10176236B2 (en) Systems and methods for a distributed query execution engine
US20120203806A1 (en) Building information management system
US20160019033A1 (en) Expressive generic model technology
US8949160B2 (en) Systems and methods for generating wind power scenarios for wind-power-integrated stochastic unit commitment problems
EP3163436A1 (en) Visual software modeling method based on software meta-view for constructing software view
Steinbrink et al. Smart grid co-simulation with MOSAIK and HLA: a comparison study
US11557088B2 (en) Generating space models from map files
CN112199086A (zh) 自动编程控制系统、方法、装置、电子设备及存储介质
CN112463159B (zh) 编译方法、装置、电子设备和存储介质
US8296725B2 (en) Framework for variation oriented analysis for service-oriented architecture
Dekkati et al. React Native for Android: Cross-Platform Mobile Application Development
Ball et al. An open source analysis framework for large-scale building energy modeling
Chen et al. Technologies for developing a smart city in computational thinking
WO2021256046A1 (ja) 方法、データ構造およびプログラム
Antonov et al. An AlgoView web-visualization system for the AlgoWiki project
Becheler et al. The quetzal coalescence template library: a C++ programmers resource for integrating distributional, demographic and coalescent models
Antonov et al. Development and implementation of the Algo500 scalable digital platform architecture
JP2011501327A (ja) 宣言型モデルの解釈
KR20230142799A (ko) 다수의 부모 노드들을 갖는 자식 노드들의 도표화
Srai et al. MDA Approach for EJB Model
CN114065359A (zh) 一种装修设计生成方法、装置、电子设备及存储介质
Nassehi et al. Modeling of machine tools using smart interlocking software blocks
WO2013066648A1 (en) Sql constructs ported to non-sql domains
Jin et al. A prototype cloud-based reproducible data analysis and visualization platform for outputs of agent-based models
Janssen et al. Custom Digital workflows with user-defined data transformations via property graphs

Legal Events

Date Code Title Description
ENP Entry into the national phase

Ref document number: 2021560741

Country of ref document: JP

Kind code of ref document: A

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

Ref document number: 21824907

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 2021824907

Country of ref document: EP

Effective date: 20230116