Program, data processing method, and data processing device

The data processing device efficiently addresses the challenge of expressing item constraints in Ising machines by generating an Ising-type objective function, enhancing the solvability of combinatorial optimization problems and reducing processing time.

JP2025007989APending Publication Date: 2025-01-20FUJITSU LTD
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
JP2023109786
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Filing Date
2023-07-04
Publication Date
2025-01-20

AI Technical Summary

Technical Problem

Existing Ising machines face challenges in efficiently solving combinatorial optimization problems, particularly those involving constraints such as item shape and placement, due to difficulties in accurately expressing these constraints in QUBO format.

Method used

A data processing device and method that generates an Ising-type objective function by calculating evaluation functions for item combinations and constraints, allowing for efficient solution finding using a search unit like a QUBO solver.

Benefits of technology

This approach enables more efficient solving of combinatorial optimization problems by reducing processing costs and time, expanding the usability of QUBO solvers, and providing a good initial solution for complex problems.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025007989000001_ABST
    Figure 2025007989000001_ABST
Patent Text Reader

Abstract

To increase the efficiency of solution.SOLUTION: A storage unit 11 stores information indicating a problem of arranging a plurality of items in a region R1. A processing unit 12 generates, for each of the items, a plurality of states corresponding to positions at which the item is arranged in the region R1 on the basis of the information. The processing unit 12 specifies a plurality of pairs of two items included in the plurality of items. The processing unit 12 calculates an evaluation function indicating an evaluation value corresponding to a combination of states of the two items in the specified plurality of pairs. The processing unit 12 generates, for a combination of the states of a plurality of items, an Ising-type objective function containing a cost item indicating the sum of the respective evaluation values of the plurality of pairs indicated by the evaluation function. The processing unit 12 acquires a solution corresponding to the problem using a search unit 13 that searches for a solution on the basis of the objective function.SELECTED DRAWING: Figure 1
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] The present invention relates to a program, a data processing method, and a data processing device. [Background technology]

[0002] Ising machines are devices that calculate combinatorial optimization problems and search for solutions based on an Ising-type objective function. The objective function is expressed in the QUBO (Quadratic Unconstrained Binary Optimization) format. The objective function is sometimes called an energy function. When using an Ising machine to find a solution, for example, simulated annealing (SA) or quantum annealing (QA) is used. The Ising machine is a type of QUBO solver.

[0003] For example, an optimization device has been proposed that solves multi-objective optimization problems using annealing such as SA and QA. The proposed optimization device performs solution search using a multi-point search method based on multiple intermediate solutions leading to the optimal solution of annealing, so that a solution having a satisfactory value for at least one objective function is obtained evenly for multiple objective functions.

[0004] In addition, a system has been proposed that learns initialization rules for obtaining optimal initialization values ​​to be used in an optimization algorithm by machine learning using problems that have already been solved by an optimization algorithm such as gradient descent and the solutions to those problems.

[0005] There has also been a proposal for a system that uses a technique called the quantum quench algorithm to obtain a solution to a combinatorial optimization problem.Furthermore, there has been a proposal for an optimum solution search device that uses simplified calculations to obtain multiple approximate solutions that are not the optimum solution but are close to it, and searches for the optimum solution using a genetic algorithm with a solution group including the approximate solutions as the initial population. [Prior art documents] [Patent documents]

[0006] [Patent Document 1] Patent Publication No. 2022-118555 [Patent Document 2] US Patent Application Publication No. 2022 / 0164644 [Patent Document 3] US Patent Application Publication No. 2020 / 0202249 [Patent Document 4] JP 2022-79376 A Summary of the Invention [Problem to be solved by the invention]

[0007] One combinatorial optimization problem is the problem of placing multiple items in a given area. Examples of such problems include packing problems and scheduling problems. However, it is difficult to accurately express the constraints in the problem, such as the shape of the items and the positions where they can be placed, in QUBO, and it is sometimes difficult to efficiently solve the problem using an Ising machine.

[0008] In one aspect, the present invention aims to improve the efficiency of solution solving. [Means for solving the problem]

[0009] In one aspect, a program is provided. The program causes a computer to execute the following processes. The computer acquires information indicating a problem of arranging a plurality of items in a predetermined area. The computer generates, for each of the plurality of items, a plurality of states corresponding to a position at which the item is to be arranged in the area based on the information. The computer identifies a plurality of pairs of two items included in the plurality of items, and calculates an evaluation function indicating an evaluation value corresponding to a combination of the states of the two items in the identified plurality of pairs. The computer generates an Ising-type objective function for the combination of the states of the plurality of items, the cost term indicating the sum of the evaluation values ​​of each of the plurality of pairs indicated by the evaluation function. The computer acquires a solution corresponding to the problem using a search unit that searches for a solution based on the objective function.

[0010] Also, in one aspect, a computer-implemented data processing method is provided. Also, in one aspect, a data processing device is provided having a storage unit and a processing unit. Effect of the Invention

[0011] On the one hand, it can make solving problems more efficient. [Brief description of the drawings]

[0012] [Figure 1] FIG. 1 is a diagram illustrating a data processing device according to a first embodiment. [Diagram 2] FIG. 11 illustrates an example of hardware of a data processing system according to a second embodiment. [Diagram 3] FIG. 1 is a diagram illustrating an example of input data for a combinatorial optimization problem. [Figure 4] FIG. 1 is a diagram illustrating an example of a solution to a combinatorial optimization problem. [Diagram 5] FIG. 2 illustrates an example of functions of a data processing device. [Figure 6] 13 is a flowchart illustrating an example of a main process. [Figure 7] 11 is a flowchart showing an example of a process for solving an approximation problem. [Figure 8]FIG. 13 is a diagram illustrating an example of data conversion for input data of a combinatorial optimization problem. [Figure 9] FIG. 13 is a diagram illustrating an example of generating an item state. [Figure 10] FIG. 13 is a diagram showing an example of an evaluation function calculated for two items. [Figure 11] FIG. 13 is a diagram showing a first calculation example of an evaluation function calculated with respect to two items. [Figure 12] FIG. 13 is a diagram showing a second calculation example of an evaluation function calculated with respect to two items. [Figure 13] FIG. 1 is a diagram showing the process of solving a problem using the QUBO solver. [Figure 14] FIG. 1 is a diagram showing an example of a tetromino. [Figure 15] FIG. 13 is a diagram showing an example (part 1) of input data. [Figure 16] FIG. 1 is a diagram showing an example (part 1) of a solution obtained from the QUBO solver. [Figure 17] FIG. 13 is a diagram showing an example (part 2) of input data. [Figure 18] FIG. 2 is a diagram showing an example (part 2) of a solution obtained from the QUBO solver. [Figure 19] FIG. 13 is a diagram illustrating an example of application to a scheduling problem. [Figure 20] FIG. 13 is a diagram illustrating an example of application to a delivery planning problem. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0013] The present embodiment will be described below with reference to the drawings. [First embodiment] A first embodiment will be described.

[0014] FIG. 1 is a diagram illustrating a data processing device according to a first embodiment. The data processing device 10 is used to solve a combinatorial optimization problem. The data processing device 10 has a storage unit 11, a processing unit 12, and a search unit 13. The storage unit 11 may be a volatile storage device such as a random access memory (RAM), or a non-volatile storage device such as a hard disk drive (HDD) or a flash memory. The processing unit 12 may include a central processing unit (CPU), a digital signal processor (DSP), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), a graphics processing unit (GPU), or the like. The processing unit 12 may be a processor that executes a program. The "processor" may include a collection of multiple processors (multiprocessor).

[0015] The search unit 13 is a QUBO solver that executes QA or SA. The search unit 13 is realized by a quantum processor that executes QA, a GPU or FPGA that executes SA, or the like. The search unit 13 may be realized by a processor such as a CPU executing a program. The search unit 13 may also be provided in a device separate from the data processing device 10. In that case, the data processing device 10 and a device including the search unit 13 are connected to be able to communicate with each other.

[0016] Here, the combinatorial optimization problem is formulated by an Ising-type objective function, and is replaced by, for example, a problem of minimizing the value of the objective function. The objective function is sometimes called an energy function. The objective function includes multiple state variables. The state variables are binary variables that take on values ​​of 0 or 1, and may be called bits. The solution to the combinatorial optimization problem is represented by the values ​​of the multiple state variables. The solution that minimizes the value of the objective function represents the ground state of the Ising model, and corresponds to the optimal solution to the combinatorial optimization problem. The value of the objective function is sometimes called energy.

[0017] The Ising-type objective function is expressed by equation (1).

[0018]

number

[0019] The state vector s has multiple state variables as elements and represents the state of the Ising model. Equation (1) is an objective function formulated in the QUBO format. In the case of a problem of maximizing energy, the sign of the objective function can be reversed. The values ​​of the multiple state variables belonging to the state vector s are stored in the storage unit 11.

[0020] The first term on the right hand side of equation (1) is the sum of the values ​​of the two state variables and the weighting coefficients for all combinations of two state variables that can be selected from all state variables, without omissions or duplications. The subscripts i and j are the indices of the state variables. i is the i-th state variable. s j is the jth state variable. W is the coupling coefficient matrix. W ij is the weight between the i-th state variable and the j-th state variable, or the coupling coefficient that indicates the strength of the coupling. W ij =W ji And W ii =0.

[0021] The second term on the right side of equation (1) is the sum of the products of the biases of all state variables and the values ​​of the state variables. b is b i b i indicates the bias for the i-th state variable. c is a constant. Equation (1) is expanded to be expressed as equation (2).

[0022]

number

[0023] Combinatorial optimization problems include a problem of arranging a plurality of items in a predetermined area. Examples of such problems include a packing problem and a scheduling problem. For example, in a packing problem, luggage is an example of an item, and a box in which luggage is packed or an internal space of a warehouse is an example of an area. In a scheduling problem, resources to be scheduled, such as personnel and equipment, are an example of an item, and a time frame (time area) to which resources are allocated is an example of an area. The area may be expressed in two dimensions or three dimensions. The data processing device 10 uses the search unit 13 to obtain a solution to these problems, for example, to efficiently arrange items in the relevant area without overlapping each other.

[0024] The storage unit 11 stores information indicating a problem of arranging a plurality of items as described above in a predetermined area. For example, the processing unit 12 may acquire the information input to the data processing device 10 and store it in the storage unit 11. Alternatively, the information may be created by the processing unit 12 as information indicating an approximation problem that is a simplification of the original combinatorial optimization problem (the original combinatorial optimization problem).

[0025] For example, the information indicates a problem of placing items a, b, c, ... in region R1. The information includes information on the size of region R1 and the shape of each of items a, b, c, .... Region R1 is assumed to be a region on the XY plane. The direction from left to right toward region R1 is the positive direction of the X axis, and the direction from top to bottom is the positive direction of the Y axis. Furthermore, the upper left vertex of region R1 is assumed to be the origin of the XY coordinates. In this case, the size of region R1 is represented by the length in the X axis direction and the length in the Y axis direction.

[0026] The shape of an item may be represented by a bitmap if it is a planar figure, or by voxels if it is a three-dimensional figure. The shape of an item may also be represented by a function indicating a curve, etc. Figure 1 shows an example in which the shape of an item is represented by a bitmap.

[0027] The processing unit 12 generates, for each of a plurality of items, a plurality of states corresponding to the position at which the item is to be placed in the target area, based on the information stored in the storage unit 11. In the example of FIG. 1, the state of the item is represented by the XY coordinates in area R1 at which the item is placed. If rotation of the item is permitted, the state may include information on the rotation angle of the item. For each possible placement of the item in area R1, the processing unit 12 generates a state corresponding to the placement. For this reason, the state of the item may be referred to as the placement state of the item.

[0028] For example, the processing unit 12 generates states (a,0), (a,1), (a,2), ... for item a. The numbers (such as "0" and "1") on the right side of (a,0) and (a,1) are indexes that identify the states of item a. A set that includes these states (a,0), (a,1), (a,2), ... as elements is a state set for item a.

[0029] Furthermore, the processing unit 12 generates states (b,0), (b,1), (b,2), . . . for item b. The number of elements in a state set for one item may be different from the number of elements in a state set for another item. The processing unit 12 generates a plurality of states for the other items in a similar manner.

[0030] The processing unit 12 calculates an evaluation function H indicating an evaluation value according to the combination of the states of two items in a pair of items included in the plurality of items. The evaluation function is a calculation process that receives the states of two items as input and returns a numerical value (evaluation value) as output. The evaluation function may be given as input data for a combinatorial optimization problem, or may be specified by the input data from among a number of predefined processes. For example, for two items a and b, the combination of states is expressed as ((a, p), (b, q)). p is the index of the state of item a. q is the index of the state of item b. For the pair of items a and b, the evaluation function H is expressed as H=H((a, p), (b, q)).

[0031] In one example, the evaluation value indicated by the evaluation function indicates the size of the overlapping area of ​​the two items, that is, the size of the overlap, depending on the state of the two items. The overlapping area indicates the portion of the area R1 where the two items overlap. The size of the overlapping area may be expressed in pixels. In this case, the evaluation function H((a,p),(b,q)) is a function that outputs the size of the overlapping area as an evaluation value for each combination of all the states of the items a and b. The evaluation value includes an evaluation value H((a,0),(b,0)) for the combination {(a,0),(b,0)} and an evaluation value H((a,0),(b,1)) for the combination {(a,0),(b,1)}. In FIG. 1, as an example, the overlapping area corresponding to the evaluation value H((a,0),(b,0)) and the overlapping area corresponding to the evaluation value H((a,0),(b,1)) are illustrated in black.

[0032] The evaluation value represented by the evaluation function may also include the size of a closed area formed by the two items according to the state of the two items, i.e., the size of the closed area. The closed area is a portion of the area R1 that is surrounded by the two items and in which no other items are placed. The size of the closed area may be represented by the number of pixels.

[0033] In this way, multiple evaluation functions may be used. For example, if the evaluation function for the overlapping region is the evaluation function E1 and the evaluation function for the closed region is the evaluation function E2, the entire evaluation function H may be expressed by a linear combination of E1 and E2, such as H=α×E1+β×E2. α and β are coefficients indicating the weights of E1 and E2, respectively. However, H=E1 or H=E2 may be used. Alternatively, the entire evaluation function may be defined as a linear combination of three or more evaluation functions. As an evaluation function other than the evaluation functions E1 and E2, for example, a function that sets the evaluation value to a positive predetermined value when the interval between the items of a specific item pair is smaller than a certain value, and sets the evaluation value to 0 in other cases, may be considered.

[0034] The processing unit 12 generates an Ising-type objective function E including a cost term C indicating the sum of the evaluation values ​​for each pair of items, which is indicated by the evaluation function, for a combination of the states of a plurality of items. The objective function E is expressed by formula (1) and is calculated, for example, as follows.

[0035] First, one item cannot be in multiple states at the same time. For this reason, the processing unit 12 sets a constraint C indicating that an item cannot be in multiple states at the same time. oh may be included in the objective function E. Constraint term C oh is the item-specific constraint equation C oh,i The sum over all items of the constraint C oh,i is expressed by equation (3). The constraint term C oh is expressed by equation (4). Note that "oh" is an abbreviation of "one-hot", which means that among multiple numerical values, there is only one value 1 and the rest are all value 0. In that case, the constraint equation C oh,i will be 0.

[0036]

number

[0037]

number

[0038] where X is the state variable x i,s is a state vector with elements x i,s is a state variable corresponding to the state s of item i. Note that state s represents the state of the item and is different from the state vector s in equations (1) and (2). i,s is the state variable s in Eq. (1). i Corresponds to x i,s = 1 indicates that item i is in state s. i,s = 0 indicates that the state of item i is not s. S(i) is the set of states of item i.

[0039] Also, for example, the cost term C ow is expressed by the formula (5) using the evaluation function E1. Note that "ow" is an abbreviation for "overwrap."

[0040]

number

[0041] A state si∈S(i), which is an element of the state set S(i) of item i, indicates the si-th state of item i. A state sj∈S(j), which is an element of the state set S(j) of item j, indicates the sj-th state of item j.

[0042] Furthermore, the cost term C for the closed region of two items, for example ds is expressed by Equation (6) using the evaluation function E2. Note that "ds" is an abbreviation for "dead space".

[0043]

number

[0044] The objective function E is the constraint term C oh and the cost term C ow ,C ds It is expressed by equation (7) using

[0045]

number

[0046] W1, W2, and W3 are the constraint terms C oh and the cost term C ow ,C ds In this case, the cost term C ow ,C ds Each of these may be considered as an example of the cost term C mentioned above. ow ,C dsIt may be considered that the linear combination of these is an example of the above-mentioned cost term C. The processing unit 12 obtains the formula (1) in the QUBO format from the formula (7).

[0047] The processing unit 12 obtains a solution corresponding to the problem using the search unit 13. The processing unit 12 inputs information indicating the objective function E(X) to the search unit 13, causes the search unit 13 to execute a solution based on the objective function E(X), and obtains the resultant solution from the search unit 13. The search unit 13 searches for a solution that reduces the value of the objective function E(X), i.e., the energy. The processing unit 12 obtains the solution searched for by the search unit 13 and outputs it.

[0048] In addition, when the problem in question is an approximation problem corresponding to the original combinatorial optimization problem, the processing unit 12 may generate an initial solution to be used for solving the original combinatorial optimization problem based on the solution of the approximation problem, and use the initial solution to solve the original combinatorial optimization problem. The original combinatorial optimization problem may be solved using SA or the like. The original combinatorial optimization problem may be solved by the search unit 13, or may be solved by another processing unit such as the processing unit 12. In this case, the processing unit 12 outputs the solution finally obtained for the original combinatorial optimization problem.

[0049] According to the data processing device 10, information indicating a problem of arranging a plurality of items in a predetermined area is acquired. For each of the plurality of items, a plurality of states corresponding to the position where the item is to be arranged in the area are generated based on the information. A plurality of pairs of two items included in the plurality of items are identified. An evaluation function indicating an evaluation value corresponding to a combination of the states of the two items in the identified plurality of pairs is calculated. For the combination of the states of the plurality of items, an Ising-type objective function is generated, including a cost term indicating the sum of the evaluation values ​​of each of the plurality of pairs of items indicated by the evaluation function. A solution corresponding to the problem is acquired using a search unit 13 that searches for a solution based on the objective function.

[0050] This allows the data processing device 10 to improve the efficiency of solving problems. Specifically, the data processing device 10 can formulate a problem using an evaluation function by calculating an evaluation function focusing on two items. Therefore, the data processing device 10 does not need to directly express the shape and possible positions of items in a problem in QUBO, and can easily formulate a problem. As a result, the data processing device 10 can expand the usable range of the search unit 13 (QUBO solver) that executes QA and SA. In addition, the data processing device 10 can reduce the processing cost of formulating a problem compared to directly expressing the shape and possible positions of items in a problem in QUBO.

[0051] Furthermore, the data processing device 10 may obtain an initial solution to the original combinatorial optimization problem by formulating an approximation problem that is a simplification of the original combinatorial optimization problem using the above-mentioned technique and solving the approximation problem using the search unit 13, as described above. In this way, even if the number of state variables that can be handled by the search unit 13 is limited and it is difficult to directly solve the original combinatorial optimization problem, the data processing device 10 can quickly obtain an initial solution using QA or SA executed by the search unit 13. The initial solution is already close to a good solution. Therefore, compared to a case where the above-mentioned technique is not applied, the data processing device 10 can reduce the processing time for searching for a solution by SA for the original combinatorial optimization problem.

[0052] [Second embodiment] Next, a second embodiment will be described. FIG. 2 illustrates an example of hardware of a data processing system according to the second embodiment.

[0053] The data processing system 1 is used to solve a combinatorial optimization problem. Here, a packing problem is exemplified as a combinatorial optimization problem. An example of a packing problem is a problem of efficiently packing multiple objects into a box without leaving any gaps. The data processing system 1 includes a data processing device 100 and a QUBO solver 200.

[0054] The data processing device 100 has a processor 101, a RAM 102, a HDD 103, a GPU 104, an input interface 105, a medium reader 106, a communication interface 107, and a connection interface 108. These units of the data processing device 100 are connected to a bus inside the data processing device 100. The processor 101 corresponds to the processing unit 12 of the first embodiment. The RAM 102 or the HDD 103 corresponds to the storage unit 11 of the first embodiment.

[0055] The processor 101 is an arithmetic device that executes program instructions. The processor 101 is, for example, a CPU. The processor 101 loads at least a part of the program and data stored in the HDD 103 into the RAM 102 and executes the program. The processor 101 may include multiple processor cores. The data processing device 100 may have multiple processors. The processing described below may be executed in parallel using multiple processors or processor cores. A set of multiple processors may also be called a "multiprocessor" or simply a "processor."

[0056] The RAM 102 is a semiconductor memory that temporarily stores programs executed by the processor 101 and data used in calculations by the processor 101. Note that the data processing device 100 may include a type of memory other than a RAM, and may include multiple memories.

[0057] The HDD 103 is a non-volatile storage device that stores software programs such as an OS (Operating System), middleware, and application software, and data. The data processing device 100 may include other types of storage devices such as a flash memory or an SSD (Solid State Drive), or may include multiple non-volatile storage devices.

[0058] The GPU 104 outputs an image to a display 111 connected to the data processing device 100 in accordance with an instruction from the processor 101. As the display 111, any type of display can be used, such as a CRT (Cathode Ray Tube) display, a liquid crystal display (LCD: Liquid Crystal Display), a plasma display, or an organic EL (OEL: Organic Electro-Luminescence) display.

[0059] The input interface 105 acquires an input signal from an input device 112 connected to the data processing device 100, and outputs the input signal to the processor 101. As the input device 112, a pointing device such as a mouse, a touch panel, a touch pad, or a trackball, a keyboard, a remote controller, a button switch, or the like can be used. In addition, a plurality of types of input devices may be connected to the data processing device 100.

[0060] The medium reader 106 is a reading device that reads programs and data recorded on a recording medium 113. For example, a magnetic disk, an optical disk, a magneto-optical disk (MO: Magneto-Optical disk), a semiconductor memory, etc. can be used as the recording medium 113. Magnetic disks include flexible disks (FD: Flexible Disks) and HDDs. Optical disks include compact discs (CDs) and digital versatile discs (DVDs).

[0061] The medium reader 106 copies, for example, the program or data read from the recording medium 113 to another recording medium such as the RAM 102 or the HDD 103. The read program is executed, for example, by the processor 101. Note that the recording medium 113 may be a portable recording medium, and may be used for distributing the program or data. Also, the recording medium 113 and the HDD 103 may be referred to as computer-readable recording media.

[0062] The communication interface 107 is connected to a network 114 and communicates with other information processing devices via the network 114. The communication interface 107 may be a wired communication interface connected to a wired communication device such as a switch or a router, or a wireless communication interface connected to a wireless communication device such as a base station or an access point.

[0063] The connection interface 108 is an interface connected to the QUBO solver 200. The connection interface 108 communicates with the QUBO solver 200 in accordance with instructions from the processor 101.

[0064] The QUBO solver 200 is, for example, an Ising machine that executes QA or SA based on an Ising-type objective function. The QUBO solver 200 outputs a solution searched for by QA or SA to the data processing device 100. The QUBO solver 200 may be included in the data processing device 100.

[0065] Here, as an example, we consider a problem based on the two-dimensional packing problem. The two-dimensional packing problem is the same as the problem of deciding where to place circuit blocks on a semiconductor chip in semiconductor integrated circuit design, and is a combinatorial optimization problem that often appears in industry. In the case of a semiconductor placement problem, the problem is to make the vertical and horizontal sizes of the rectangle that contains all of the rectangular items as small as possible when they are arranged without overlapping. However, in the packing problem used for the explanation below, the shape of the items to be packed does not have to be rectangular. Also, items can be moved and rotated on a plane. Furthermore, the vertical and horizontal sizes of the area in which the items can be arranged are specified in advance.

[0066] FIG. 3 is a diagram illustrating an example of input data for a combinatorial optimization problem. Input data for the combinatorial optimization problem includes information on a plurality of items, such as items 21, 22, 23, 24, and 25. The information on the plurality of items includes information indicating the shapes of each of items 21 to 25.

[0067] Furthermore, the input data for the combinatorial optimization problem includes information on the area where the items are to be placed, i.e., the size of the placement area 30. When the placement area 30 is a two-dimensional rectangle, for example, the size of the placement area 30 is represented by the length of the placement area 30 in the vertical direction and the length of the placement area 30 in the horizontal direction.

[0068] In this way, multiple items and the placement area are given as input data for the problem to be solved. For example, the problem to be solved is one in which all items must fit within the placement area under the following predetermined conditions. The first condition is that the shape of the items must not be deformed. The second condition is that the items must not overlap each other. The third condition is whether or not rotation of the items is allowed.

[0069] FIG. 4 is a diagram illustrating an example of a solution to a combinatorial optimization problem. 4, items 21 to 25 can be placed without overlapping within placement area 30. In solving the combinatorial optimization problem, a solution that represents an efficient placement of items 21 to 25 in this manner is searched for.

[0070] FIG. 5 is a diagram illustrating an example of functions of the data processing device. The data processing device 100 has a storage unit 120, a combinatorial optimization problem data acquisition unit 130, an approximate problem solving unit 140, a combinatorial optimization problem solution search unit 150, and a solution output unit 160. The storage unit 120 uses the storage areas of a RAM 102 and a HDD 103. The combinatorial optimization problem data acquisition unit 130, the approximate problem solving unit 140, the combinatorial optimization problem solution search unit 150, and the solution output unit 160 are realized by the processor 101 executing programs stored in the RAM 102.

[0071] The storage unit 120 stores input data for a combinatorial optimization problem that the user wants to solve, and data for an approximation problem that is generated based on the input data. The combinatorial optimization problem that the user wants to solve is the problem that is the basis of the approximation problem, and can be said to be the original combinatorial optimization problem (the original combinatorial optimization problem). An approximation problem is a problem that is a simplification of the original combinatorial optimization problem. Although an approximation problem is also a combinatorial optimization problem, it is conveniently referred to as an "approximation problem" to distinguish it from the original combinatorial optimization problem. The storage unit 120 also stores solutions searched for the approximation problem and solutions searched for the combinatorial optimization problem.

[0072] The combinatorial optimization problem data acquisition unit 130 acquires input data for the combinatorial optimization problem that the user wishes to solve, and stores it in the storage unit 120 . The approximate problem solving unit 140 generates data for the approximate problem from the input data stored in the storage unit 120, and solves the approximate problem using the QUBO solver 200. The approximate problem solving unit 140 generates an initial solution to the original combinatorial optimization problem based on the solution to the approximate problem, and outputs it to the combinatorial optimization problem solution search unit 150.

[0073] The approximate problem solving unit 140 has an item data conversion unit 141, an item state generation unit 142, an item evaluation function calculation unit 143, a QUBO problem generation unit 144, and a solution selection and conversion unit 145.

[0074] Based on input data for a combinatorial optimization problem, the item data conversion unit 141 converts the shapes of the items and the shape of the placement area 30 indicated in the input data into bitmaps.

[0075] The item state generation unit 142 generates information indicating the state of each item based on the information of each item after conversion into a bitmap and the area where the item is to be placed. Note that the number of states that each item can take is limited to a finite number.

[0076] The item evaluation function calculation unit 143 calculates evaluation functions E1 and E2 for each combination of the states of the two items in each pair of items. The evaluation function E1 is a function that outputs the number of pixels where the two items overlap as an evaluation value for the state of the two items. The evaluation function E2 is a function that outputs the number of pixels in a closed area formed by the two items as an evaluation value for the state of the two items.

[0077] The QUBO problem generation unit 144 generates information on the QUBO problem based on the evaluation functions E1 and E2 calculated by the item evaluation function calculation unit 143. The QUBO problem corresponds to an approximation problem formulated with an Ising-type objective function E. That is, the QUBO problem generation unit 144 generates information on the QUBO problem based on the constraint term C oh ,The cost term C in Eq. ow , and the cost term C in Eq. (6) ds Calculate the objective function E of equation (7), including the following. The objective function E of equation (7) is expressed in the QUBO format of equation (1).

[0078] The QUBO problem generator 144 inputs information about the generated QUBO problem to the QUBO solver 200, and causes the QUBO solver 200 to search for a solution based on the objective function E. The QUBO solver 200 searches for a solution based on the objective function E using QA, SA, or the like, and returns the searched solution.

[0079] The solution selection and conversion unit 145 acquires the solutions obtained by the QUBO solver 200, selects the solutions, and converts the selected solutions into initial solutions for the original combinatorial optimization problem. Specifically, after obtaining multiple solutions from the QUBO solver 200, the solution selection and conversion unit 145 evaluates each solution using a predetermined evaluation method, preferentially selects the solution with the highest evaluation, and uses it to generate an initial solution for the original combinatorial optimization problem.

[0080] The combinatorial optimization problem solution searching unit 150 searches for a solution to the original combinatorial optimization problem using the initial solution acquired from the approximate problem solving unit 140. The combinatorial optimization problem solution searching unit 150 uses an optimization algorithm such as the SA method to search for a solution.

[0081] The solution output unit 160 outputs the solution searched for by the combinatorial optimization problem solution search unit 150. For example, the solution output unit 160 may cause the display 111 to display an image representing the solution, or may transmit information indicating the solution to another computer via the network 114.

[0082] In this way, the data processing device 100 can make the original combinatorial optimization problem easier to handle by the QUBO solver 200 by approximating or simplifying it, and can utilize the high-speed processing characteristics of the QUBO solver 200. Furthermore, in the solution search by the combinatorial optimization problem solution search unit 150, since the initial solution is already in the vicinity of the desired solution, it is possible to shorten the time required for solution search, which is a relatively slow process using the SA method or the like.

[0083] Next, the processing procedure of the data processing device 100 will be described. FIG. 6 is a flowchart showing an example of the main process. (S10) The combinatorial optimization problem data acquisition unit 130 acquires input data for the combinatorial optimization problem that the user wants to solve, and stores it in the storage unit 120.

[0084] (S11) The approximate problem solving unit 140 generates data for the approximate problem based on the input data acquired in step S10, and executes solving of the approximate problem. The approximate problem solving unit 140 stores the obtained solutions in the storage unit 120. The approximate problem solving unit 140 evaluates the multiple solutions using a predetermined evaluation method, and narrows down the solutions to those with high evaluations. The approximate problem solving unit 140 converts the narrowed down solutions into the initial solution of the original combinatorial optimization problem. Details of the process for solving the approximate problem will be described later.

[0085] (S12) The combinatorial optimization problem solution searching unit 150 executes a solution of the combinatorial optimization problem using the solution of the approximation problem obtained in step S11 as an initial solution. Specifically, the combinatorial optimization problem solution searching unit 150 acquires the initial solution generated by the approximation problem solving unit 140, and searches for a solution by executing an optimization algorithm such as the SA method using the initial solution as a starting point.

[0086] (S13) The solution output unit 160 outputs the solution obtained by the combinatorial optimization problem solution search unit 150. Then, the main processing ends. FIG. 7 is a flowchart showing an example of a process for solving an approximation problem.

[0087] The process of solving the approximation problem corresponds to step S11. (S20) Based on the input data for the combinatorial optimization problem, the item data conversion unit 141 converts the shape of each of the multiple items indicated by the input data into simplified data. In this example, the item data conversion unit 141 converts the shape of each item and the shape of its placement area into a bitmap.

[0088] (S21) The item state generation unit 142 generates a state for each item based on each bitmapped item and the placement area. The state of an item indicates a position where the item can be placed in the placement area. For example, the placement position of an item is represented by XY coordinates in the placement area. Furthermore, if rotation of an item is permitted, the state of the item includes information on the rotation angle of the item.

[0089] (S22) The item evaluation function calculation unit 143 calculates the evaluation functions E1 and E2 for each pair of items. The evaluation functions E1 and E2 are calculated for combinations of states of all pairs of items.

[0090] (S23) The QUBO problem generation unit 144 generates input data for the QUBO problem. The input data for the QUBO problem includes information on an Ising-type objective function E. The QUBO problem generation unit 144 generates a constraint term C based on the evaluation functions E1 and E2. oh , cost term Cow ,C ds By calculating the objective function E of equation (7) including the above, we obtain the objective function E of equation (1) expressed in QUBO format.

[0091] (S24) The QUBO problem generator 144 inputs the input data of the QUBO problem to the QUBO solver 200, and causes the QUBO solver 200 to search for a solution based on the objective function E using QA, SA, or the like.

[0092] (S25) The solution selection and conversion unit 145 acquires multiple solutions obtained by the search by the QUBO solver 200, evaluates each solution by a predetermined evaluation method, and preferentially selects a predetermined number of highly evaluated solutions. The solution selection and conversion unit 145 converts the selected solutions into initial solutions to the original combinatorial optimization problem, and outputs them to the combinatorial optimization problem solution search unit 150. Then, the process of finding a solution to the approximation problem ends.

[0093] FIG. 8 is a diagram illustrating an example of data conversion for input data for a combinatorial optimization problem. Item data conversion unit 141 converts the shape of each item and the shape of the placement area into a bitmap based on the input data of the original combinatorial optimization problem. For example, items 41, 42, 43, 44, and 45 are bitmapped versions of items 21, 22, 23, 24, and 25, respectively, indicated in the input data of the original combinatorial optimization problem. Furthermore, placement area 50 is bitmapped version of placement area 30, indicated in the input data of the original combinatorial optimization problem.

[0094] Here, the resolution for bitmapping may be automatically adjusted so that the data size is processable by the data processing device 100, or may be specified in advance. As shown in Fig. 8, a planar figure can be expressed as a bitmap. A three-dimensional figure can be expressed as a voxel.

[0095] The data conversion by the item data conversion unit 141 is a process for enabling the evaluation function used in the subsequent process to be implemented as a process that can be calculated by a computer, and does not necessarily have to be bitmapped. For example, even if the shape of the item is defined by mathematical information on straight lines and curves, this is acceptable as long as it is possible to implement an evaluation function that can be calculated by a computer.

[0096] FIG. 9 is a diagram showing an example of generating an item state. The item state generation unit 142 generates, for each of the bitmapped items 41-45, multiple states that the item can take when placing the item in the placement area 50. The multiple states of the item indicate the variations in the placement of the item in the placement area 50. The horizontal axis of the placement area 50 is the X axis, and the vertical axis is the Y axis. The top left vertex of the placement area 50 is the origin of the XY coordinates. The state of the item is represented by the XY coordinates and the rotation angle at which it is placed. Generating the state of an item means listing the states that the item can take for the placement area.

[0097] The item's position is expressed by the X and Y coordinates of the top left pixel of the item's bounding box. A bounding box is the smallest rectangular area that encloses the entire item. For example, the state of an item is expressed by four items: item identification information, X coordinate, Y coordinate, and rotation. For example, one unit of rotation is a 90-degree clockwise rotation. Rotation is expressed as 0 being no rotation, 1 being a 90-degree rotation to the right, and so on.

[0098] The item state generation unit 142 generates states (a,1,1,0), (a,5,1,0), (a,7,1,0), ..., (a,7,1,1), ... for the item 41. For example, (a,7,1,1) indicates that the item 41 indicated by the identification information a is rotated 90 degrees to the right and placed at coordinates (X,Y)=(7,1).

[0099] The item status generation unit 142 automatically generates the status by specifying in advance the range of each item value for expressing the status. For example, the item status generation unit 142 can generate the status of each item based on the following status generation rules (1) to (3).

[0100] (1) The X coordinate ranges from 0 to 10. The interval between X coordinates is 2. (2) The Y coordinate ranges from 0 to 8. The interval between Y coordinates is 1. (3) Rotation must be 0, 1, 2, or 3.

[0101] The number of state variables used in the approximation problem is the sum of the number of states of all items. As the placement area becomes larger, the number of possible coordinates increases, and the number of item states increases. On the other hand, there is an upper limit to the number of state variables that can be handled by the QUBO solver 200.

[0102] Therefore, the item state generation unit 142 ensures that the total number of states of all items is equal to or less than the maximum number of state variables available to the QUBO solver 200. For example, assume that the upper limit of the number of state variables that can be handled by the QUBO solver 200 is 1000, and the number of items is 10. In this case, the item state generation unit 142 may limit the upper limit of the number of states per item to 100. The item state generation unit 142 may change the number of states for each item.

[0103] For example, when generating states, the item state generation unit 142 may limit the number of states for each item by uniformly thinning out the states or by sampling based on uniformly distributed random numbers or normally distributed random numbers.

[0104] Note that instead of mechanically generating the states in this step, all possible states of the items may be listed and provided from the start as input data for the combinatorial optimization problem.

[0105] FIG. 10 is a diagram showing an example of an evaluation function calculated for two items. The item state generation unit 142 generates a state set 61 for an item i identified by identification information i. The state set 61 is a set that includes the five states (i, 0) to (i, 4) of the item i as elements. The number "p" on the right side of the state (i, p) is a number that identifies the three items (X coordinate, Y coordinate, rotation) in the state of the item i.

[0106] Furthermore, the item state generation unit 142 generates a state set 62 for item j identified by identification information j. The state set 62 is a set that includes the eight states (j, 0) to (j, 7) of item j as elements. The number "q" on the right side of the state (j, q) is a number that corresponds to the set of values ​​of the three items (X coordinate, Y coordinate, rotation) in the state of item j.

[0107] The item evaluation function calculation unit 143 calculates the value of the evaluation function E1((i,p),(j,q)) for the pair of items (i,j), i.e., the first evaluation value. The item evaluation function calculation unit 143 also calculates the value of the evaluation function E2((i,p),(j,q)) for the pair of items (i,j), i.e., the second evaluation value.

[0108] The approximate problem solving unit 140 may use only one of the evaluation functions E1 and E2 to generate an approximate problem. The approximate problem solving unit 140 may use three or more evaluation functions to generate an approximate problem.

[0109] FIG. 11 is a diagram showing a first calculation example of an evaluation function calculated with respect to two items. State image 71 shows state (a,1,1,0) of item 41 (=item a). State image 72 shows state (b,3,1,0) of item 42 (=item b). State image 73 shows the case where states (a,1,1,0) and (b,3,1,0) occur simultaneously.

[0110] In this case, the number of pixels (number of black pixels) overlapped by items in state image 73 is 12. Therefore, evaluation function E1((a,1,1,0),(b,3,1,0))=12. Also, there are no closed areas in state image 73. Therefore, evaluation function E2((a,1,1,0),(b,3,1,0))=0.

[0111] FIG. 12 is a diagram showing a second calculation example of an evaluation function calculated with respect to two items. State image 81 shows state (a,1,1,0) of item 41 (=item a). State image 82 shows state (b,5,4,0) of item 42 (=item b). State image 83 shows the case where states (a,1,1,0) and (b,5,4,0) occur simultaneously. The area of ​​the two pixels (pixels marked with X) indicated by coordinates (6,7) and (7,7) in state image 83 is a closed area created by being surrounded by items.

[0112] In this case, the number of pixels overlapped by the item in the status image 83 (the number of black pixels) is 1. Therefore, the evaluation function E1((a,1,1,0),(b,5,4,0))=1. Also, the number of pixels of the X mark is 2. Therefore, the evaluation function E2((a,1,1,0),(b,5,4,0))=2.

[0113] In this way, the evaluation function E1 is a function that counts and returns the number of pixels where two items overlap. In the packing problem, there must be no overlap when placing items, so E1 is a function that gives an index value of overlap.

[0114] Additionally, evaluation function E2 is a function that counts and returns the number of pixels in a closed area surrounded by two items. If there are multiple closed areas, the total value of all of them is used. It is considered that it can be difficult to place another item in a small closed area. For this reason, E2 provides an index value to avoid such situations. Note that even if a closed area is large enough, it may be possible to place another item in it, and a threshold value may be set in the calculation of E2. For example, if the number of pixels in one closed area is 50 or more, E2 may be considered to be 0.

[0115] The evaluation functions E1 and E2 can be easily implemented using a bitmap graphics processing technique. For example, for E1, the item evaluation function calculation unit 143 performs an AND operation on two bitmap images and counts the number of pixels with a value of 1.

[0116] 11 and 12 show examples of processing in a bitmap image ([0,1]), but it can also be extended to a grayscale image ([0,255]). For example, the evaluation function E1 may calculate the degree of pixel overlap as the average or maximum value of pixel values.

[0117] Furthermore, the method of expressing the state of an item is not limited to a graphic representation, and may be constant data in an array format (which may be multidimensional, such as a vector or a matrix). In this case, the item evaluation function calculation unit 143 calculates the value of the evaluation function for the combination of the states of two items using an evaluation function defined as an operation on the constant data in the array format.

[0118] For example, in a scheduling problem of determining working hours for multiple employees, items can be regarded as employees, and the pattern of desired working hours for each employee can be expressed as a vector. Similarly, when optimizing the schedule for operating multiple machines in a manufacturing plant, all possible patterns of operating hours for each machine can be expressed as a vector for each pattern. By defining the above-mentioned evaluation function according to the characteristics of the problem for these various types of combinatorial optimization problems, the item evaluation function calculation unit 143 can calculate the value of the evaluation function for the combination of the states of two items.

[0119] FIG. 13 is a diagram showing the flow of solving a problem using the QUBO solver. For example, state generation rules 90-1, 90-2, ..., 90-N corresponding to N items "1", "2", ..., "N" are pre-stored in the storage unit 120. The state generation rules 90-1, 90-2, ..., 90-N are generation rules for the states of items "1", "2", ..., "N", respectively. Each state generation rule includes information indicating, for example, the number of states to be generated, the range of X and Y coordinates to be arranged, and the random number distribution to be used for sampling the states.

[0120] The item state generation unit 142 generates a state set 91-1 for item "1" based on state generation rule 90-1. The item state generation unit 142 generates a state set 91-2 for item "2" based on state generation rule 90-2. Thereafter, the item state generation unit 142 similarly generates a state set 91-N for item "N" based on state generation rule 90-N.

[0121] The item evaluation function calculation unit 143 calculates the evaluation functions E1, E2, ... for all combinations of two items, each of which takes one state from a state set of the two items. That is, a repetitive process α is performed to calculate the values ​​of the evaluation functions E1, E2, ... for each combination of two items, each of which takes one state from a state set of the two items.

[0122] In the example of Fig. 10 mentioned above, the number of states of item i is 5. The number of states of item j is 8. Therefore, the item evaluation function calculation unit 143 calculates each evaluation function for 5 x 8 = 40 inputs, that is, combinations of the states of two items. In this case, the number of iterations in the iterative process α for the pair of items i and j is 40.

[0123] In addition, the item evaluation function calculation unit 143 performs the repetitive process α for each combination of two items selected from all items. That is, the repetitive process β is performed to extract two state sets from the state sets of all items.

[0124] For example, if the number of items is N, the number of iterations in the iterative process β is the number of times when 2 items are taken out of N items, so it is N×(N−1) / 2 times. The QUBO problem generator 144 generates QUBO problem data 92 based on evaluation functions E1 and E2 that focus on a pair of two items. The QUBO problem generator 144 performs QUBO formulation for the two-dimensional packing problem shown as an example so far as follows.

[0125] The QUBO problem generator 144 generates a state variable x for item i, a state set S(i) of item i, and a state s (s∈S(i)). i,s Assign the state variable x i,s = 1 indicates that the state of item i is s. State variable x i,s =0 indicates that item i is not in state s.

[0126] The QUBO problem generation unit 144 imposes the following constraints in the QUBO formulation. The first constraint is that the state of an item is determined to be one. Item i must be in one of two states. Therefore, the set of state variables for item i, {x i,sFor |s∈S(i)}, exactly one of the state variables in this set must have the value "1" and all others must have the value "0". This first constraint is also called the one hot constraint. "One hot" means that among the n bits, there is exactly one value "1" and the rest are all "0".

[0127] In the QUBO formulation, the one hot constraint for one item is expressed by equation (3). The right-hand side of equation (3) is a quadratic polynomial obtained by subtracting 1 from the sum of all state variables included in the state set S(i) of item i and squaring the sum. oh,i If (X)=0, then the one hot constraint is satisfied for item i. oh,i If (X) ≠ 0, then the one hot constraint is not satisfied for item i. Note that because this equation is squared, it always takes a non-negative value greater than or equal to 0. Therefore, if the one hot constraint is not satisfied, the optimization problem moves away from the minimum value, which is an undesirable situation.

[0128] The one hot constraint is imposed on all items. Therefore, the one hot constraint for all items is expressed as a quadratic polynomial on the right side of equation (4), which is the sum of equation (3) over all items.

[0129] The second constraint is that "items must not overlap." For example, there must be no overlapping pixels (black pixels) between the two items shown in Figures 11 and 12. Alternatively, the meaning of allowing for errors due to bitmapping and wanting to reduce the number of overlapping pixels as much as possible is expressed by the quadratic expression on the right side of equation (5). C in equation (5) ow The smaller the value of (X), the less the two items overlap.

[0130] That is, the evaluation function that represents the overlap of items is E1. When item i is in state si and item j is in state sj, the number of overlapping pixels is E1(si,sj)·x i,si x j,sj E1(si,sj) is a constant value. E1(si,sj) is the value obtained by substituting a numerical value into the evaluation function E1. E1(si,sj)·x i,si x j,sj The sum of all item pairs and all item states is the cost term C ow The result is (X).

[0131] The third constraint is that the closed area created by the item should be small. For example, it is desirable to have fewer pixels for the X mark shown in Figure 12. This is expressed by the quadratic expression on the right side of equation (6). ds The smaller the value of (X), the narrower the closed region. The form of equation (6) is the same as equation (5). Equation (6) is obtained by replacing the evaluation function E1 in equation (5) with E2.

[0132] If there are other evaluation functions, the QUBO problem generation unit 144 can create QUBO quadratic expressions in a similar manner. The QUBO problem generator 144 creates one quadratic polynomial shown in formula (7) by linearly combining the weighting factors W1, W2, and W3 multiplied by formulas (4), (5), and (6), respectively. The weighting factors W1, W2, and W3 are constant values. The weighting factors W1, W2, and W3 are multiplied by formulas (4), (5), and (6) to indicate the degree to which each constraint should be considered. Formula (7) is in the QUBO format of formula (1) and serves as input data for the QUBO problem. QUBO problem data 92 indicates the input data for the QUBO problem.

[0133] The QUBO solver 200 searches for a solution that minimizes the quadratic polynomial of the QUBO shown in the QUBO problem data 92. The output of the QUBO solver 200, i.e., the solution to the approximation problem, is a state vector X=[..., x i,si For each state variable (xi,si etc.)

[0134] The QUBO solver 200 has high processing speed and can output multiple solutions in a short time. However, the QUBO solver 200 may output a solution that violates constraints. Therefore, the solution selection conversion unit 145 selects a solution by substituting the value of X, which is a solution, into each equation of the constraint condition. For example, in the case of a two-dimensional packing problem, the following method is used.

[0135] (1) The solution selection and conversion unit 145 discards solutions that do not satisfy the first constraint, i.e., the one hot constraint. Specifically, the solution selection and conversion unit 145 substitutes the value of the solution X into the equation (4) and discards the solution X if the resulting value is not 0.

[0136] (2) The solution selection and conversion unit 145 prioritizes solutions that satisfy the second constraint condition. That is, the solution selection and conversion unit 145 assigns the solution C ow Sort the solutions in ascending order of their values.

[0137] (3) The solution selection and conversion unit 145 may use multiple sorting keys. For example, the solution selection and conversion unit 145 may use C obtained by substituting the value of the solution X into the formula (5) as the first sorting key. ow The second sort key is C obtained by substituting the value of solution X into formula (6). ds For example, C ow The solution with the smaller value of is preferred, and C ow If there are two or more solutions with the same value of ds Solutions with smaller values ​​of are preferred.

[0138] At this stage, there are cases where a feasible solution cannot be obtained from the QUBO solver 200. In such cases, the QUBO problem generator 144 may adjust the weighting factors W1, W2, and W3 to recreate the QUBO problem data 92 and rerun the solution by the QUBO solver 200. For example, if the one hot constraint is not satisfied, the QUBO problem generator 144 increases the value of W1.

[0139] The combinatorial optimization problem solution search unit 150 uses the solution to the approximation problem obtained in this way as the initial solution and solves the original combinatorial optimization problem. The solution obtained from the QUBO solver 200 is the value of X, that is, a list (vector) of values ​​0 and 1. i,s = 1 means that the state of item i is s, and state s corresponds to the placement status information of item i (X coordinate, Y coordinate, rotation, etc.). Therefore, the solution selection and conversion unit 145 extracts the state variable whose value is 1, and maps the value of the subscript part (i, s) of the state variable to the original combinatorial optimization problem, thereby obtaining information on the placement status of all items, and this can be used as an initial solution.

[0140] The combinatorial optimization problem solution search unit 150 can use this initial solution as a starting point to search for a solution using, for example, the SA method, and obtain a solution to the original combinatorial optimization problem. The initial solution at this time is already close to a good solution. Therefore, the processing time for solution search using the SA method is shorter than when this method is not applied.

[0141] The QUBO solver 200 can output multiple solutions in a short time. The solution selection and conversion unit 145 can obtain a variety of initial solution sets from the multiple solutions. Therefore, there is an advantage that it becomes easier to solve even in cases where it is difficult to escape from a local solution and reach another solution in the SA method.

[0142] Next, a more specific example of solution finding by the data processing device 100 will be described. FIG. 14 is a diagram showing an example of a tetromino. A figure made by connecting four squares is called a tetromino. If we consider all 90-degree rotated tetrominoes to be the same, there are seven types of tetrominoes: tetromino 301, 302, 303, 304, 305, 306, and 307.

[0143] In the following discussion, we illustrate a 2D packing problem where the shape of the items is represented by tetrominos. The problem is set up as follows: First, the shape of the items is a tetromino, and some tetrominos are rotated in 90 degree increments. Second, the area in which the items are placed is a rectangular area with a width and height. Third, the goal of the problem is to place all of the elements of a given itemset, i.e., all of the items, within the rectangular area without overlapping. However, for simplicity, we will assume here that rotation of the items is not allowed when placing them.

[0144] Since the tetrominos can be considered to have already been converted into bitmaps, this combinatorial optimization problem can be treated in the same way as an approximation problem. For this reason, in the following, the original combinatorial optimization problem will be described as an approximation problem.

[0145] Next, specific input data for the combinatorial optimization problem will be described. FIG. 15 is a diagram showing an example (part 1) of input data. The input data includes information on the itemset 300 and the placement area 400. The number of elements in the itemset 300, i.e., the number of items to be placed, is 30. The size of the placement area 400 is width=12 and height=11.

[0146] Let i be the identification number of an item. Each item in the input data itemset 300 is listed, and i=0, 1, 2, ... is assigned in order from the top of the list. The placement coordinates of an item in the placement area 400 are represented as (x, y). The x coordinate is the coordinate in the horizontal direction. The y coordinate is the coordinate in the height direction. The origin is the top left vertex of the placement area 400.

[0147] State variable x i,x,y = 1 means that item i is placed at coordinates (x, y). State variable x i,x,y = 0 means that item i is not placed at coordinates (x, y). Here, the state variable name is x for convenience, but it has nothing to do with the coordinate value x.

[0148] The item state generation unit 142 lists all coordinates (x, y) at which item i can be placed without going beyond the placement area 400. In this case, the number of states of item i is (area_width-item_width+1)*(area_height-item_height+1). area_width is the width of the placement area 400. item_width is the width of the item. area_height is the height of the placement area 400. item_height is the height of the item.

[0149] For example, a square tetromino has two pixels in both length and width. Therefore, for an item represented by a square tetromino, (12-2+1)*(11-2+1)=110 state variables will be used. If the number of state variables becomes too large, the item state generation unit 142 may adjust the number of state variables by randomly thinning them out rather than listing all coordinates.

[0150] The item evaluation function calculation unit 143 uses the above-mentioned evaluation functions E1 and E2. However, the evaluation function E2 outputs 1 only when the closed area is 1 pixel, and outputs 0 when it is 2 pixels or more. The QUBO question generation unit 144 generates QUBO question data by formula (7). The weighting coefficients W1, W2, and W3 are W1 = 20, W2 = 10, and W3 = 1, respectively.

[0151] For example, the QUBO solver 200 obtains the following solution for the QUBO problem data generated based on the input data in FIG. FIG. 16 is a diagram showing an example (part 1) of a solution obtained from the QUBO solver.

[0152] The solution output by the QUBO solver 200 is the value of each state variable of the state vector X, which is a list of 0 and 1. i,x,y=1 means that item i has been placed at coordinates (x, y). For this reason, for elements of the state vector X with a value of 1, the subscripts i, x, and y can be extracted to illustrate the state in which the items have been placed. Placement diagrams 501, 502, 503, 504, 505, 506, 507, and 508 are visualizations of eight solutions obtained from the QUBO solver 200. The placement diagrams 501 to 508 are examples in which 30 items included in the item set 300 are placed in the placement area 400. The numerical values ​​written in the upper left corner of each of the placement diagrams 501 to 508 are values ​​obtained by substituting the value of solution X into equation (7). If the value of equation (7) is 0, the corresponding solution satisfies all constraints.

[0153] For example, the QUBO solver 200 can output tens to hundreds of solutions in a processing time of less than one second. Therefore, the approximate problem solving unit 140 can repeatedly solve the problem. For example, if there is a violation of a constraint condition, the QUBO problem generation unit 144 changes at least one of the values ​​of the weighting coefficients W1, W2, and W3, and causes the QUBO solver 200 to retry solving the problem. If it is difficult to place all the items in the current placement area, the item data conversion unit 141 can also increase the width and height of the placement area and recreate the problem.

[0154] Also, if there is sufficient space in the placement area after packing, the approximation problem solving unit 140 may create yet another packing problem by increasing the item set, decreasing the width of the placement area, decreasing the height of the placement area, etc., and solve it with the QUBO solver 200.

[0155] In the case of the problem illustrated in FIG. 15, the number of items is 30, and the area of ​​the items is 4. Therefore, the area occupied by the items is 120. Furthermore, the area of ​​the placement area 400 is 12×11=132. Therefore, the margin of the placement area 400 is 132−120=12.

[0156] Next, an example will be given of a case where the number of items is reduced and the size of the arrangement area is made smaller. FIG. 17 is a diagram showing an example (part 2) of input data. The input data includes information on the itemset 300a and the placement area 400a. The number of elements in the itemset 300a, i.e., the number of items to be placed, is 21. The size of the placement area 400a is width=11 and height=8. In this case, the placement margin is 11×8−21×4=4.

[0157] For example, the QUBO solver 200 obtains the following solution for the QUBO problem data generated based on the input data in FIG. FIG. 18 is a diagram showing an example (part 2) of a solution obtained from the QUBO solver.

[0158] Placement diagrams 601, 602, 603, 604, 605, 606, 607, 608, and 609 are visualizations of nine solutions obtained from the QUBO solver 200. The placement diagrams 601 to 609 are examples in which 21 items included in the item set 300a are placed in the placement area 400a.

[0159] Here, the evaluation function E2 focuses on two items. Therefore, in the objective function of equation (7), a closed area of ​​one pixel created by three items is not counted. What is counted is a closed area of ​​one pixel created by two items. For example, of the nine solutions corresponding to layout plans 601 to 609, the solution corresponding to layout plan 606 counts a closed area 606a of one pixel, so the value of equation (7) is 1.

[0160] As described above, the calculation method for a combinatorial optimization problem by the data processing device 10 is applicable not only to a packing problem but also to other problems such as a scheduling problem. FIG. 19 is a diagram showing an example of application to a scheduling problem.

[0161] In a scheduling problem, resources to be scheduled, such as personnel or equipment, are an example of an item. Also, the time frame (time domain) to which resources are assigned is an example of a domain to which items are placed. Examples of scheduling problems include planning the allocation of employee work hours and planning the operation patterns of equipment in a manufacturing plant. The placement pattern of each resource is represented by a vector in the state space, i.e., a state vector.

[0162] For a scheduling problem, the data processing device 100 can also calculate an evaluation function for each pair of items according to the combination of the states of the two items in the pair. The data processing device 100 then creates an objective function for all combinations of the states of the items, the objective function including the sum of the evaluation values ​​for each pair of items as a cost term, and can perform a solution using the QUBO solver 200 based on the objective function.

[0163] FIG. 20 is a diagram showing an example of application to a delivery planning problem. A delivery planning problem is, for example, a problem of optimizing the driving routes of delivery trucks. In this case, trucks are an example of items. A set of delivery routes to which trucks are assigned is an example of an area in which items are placed. The assignment pattern of each truck to the delivery routes is represented by a vector in a state space, i.e., a state vector.

[0164] In the delivery planning problem, the data processing device 100 can calculate an evaluation function for each pair of items according to the combination of the states of the two items in the pair. Then, the data processing device 100 creates an objective function including, as a cost term, the sum of the evaluation values ​​for each pair of items indicated by the evaluation function for all combinations of the states of the items, and can perform a solution using the QUBO solver 200 based on the objective function.

[0165] As described above, the data processing device 100 can improve the efficiency of solving combinatorial optimization problems. For example, even complex combinatorial optimization problems that appear difficult to formulate in QUBO format can be expressed in QUBO format, making it possible to improve the efficiency of solving combinatorial optimization problems. Furthermore, the data processing device 100 can reduce the time required to find a solution to a combinatorial optimization problem.

[0166] Here, as described above, it takes time to solve a combinatorial optimization problem. In the case of the illustrated packing problem, as the number of items and the area of ​​the area in which the items can be placed increase, the number of placement methods to be considered increases combinatorially explosively. For this reason, it takes too much time to find a better solution. In addition, it is expected that a combinatorial optimization problem that can be expressed by QUBO can be solved quickly by the QUBO solver 200 that executes QA and SA. However, QUBO has poor problem expression capabilities, and it is not easy to describe complex problems. Even if it is possible to describe it, the number of state variables used to express the problem may be excessive. On the other hand, the number of state variables available in the QUBO solver 200 may be limited to several thousand to tens of thousands. If the number of state variables used is large, the QUBO solver 200 may not be able to be used for solving the problem. In other words, it may be difficult to accurately express the shape of the items and the places where they can be placed in QUBO, or the number of state variables may become too large to be handled by the QUBO solver 200. Furthermore, formulating a QUBO problem from scratch can be difficult for a novice user of QUBO Solver 200, and may prevent the user from making full use of QUBO Solver 200.

[0167] Therefore, the data processing device 100 obtains a solution to the approximation problem in a short time and obtains a good initial solution using the QUBO solver 200. Next, the data processing device 100 can use the initial solution to reduce the time required to solve the original complex combinatorial optimization problem before approximation.

[0168] Furthermore, the data processing device 100 can easily create QUBO problem data by simple processes such as "generating a state set for each item" and "calculating an evaluation function for each combination of the states of two items," and can efficiently support the user in formulating problems. This also enables the data processing device 100 to expand the scope of use of the QUBO solver 200.

[0169] As described above, the data processing device 100 executes the following processes. The processor 101 acquires information indicating a problem of arranging a plurality of items in a predetermined area, i.e., problem information. The processor 101 generates, for each of the plurality of items, a plurality of states corresponding to the position at which the item is to be arranged in the area, based on the problem information. The processor 101 identifies a plurality of pairs of two items included in the plurality of items. The processor 101 calculates an evaluation function indicating an evaluation value corresponding to a combination of the states of the two items in the identified plurality of pairs. The processor 101 generates an Ising-type objective function for the combination of the states of the plurality of items, the objective function including a cost term indicating the sum of the evaluation values ​​of each of the plurality of pairs of items, which is indicated by the evaluation function. The processor 101 acquires a solution corresponding to the problem using a search unit that searches for a solution based on the objective function.

[0170] This allows the data processing device 100 to improve the efficiency of solving the problem. For example, the data processing device 100 can easily formulate a problem and efficiently generate an objective function corresponding to the problem. Furthermore, the data processing device 100 can reduce the time from formulating a problem to obtaining a solution. The QUBO solver 200 is an example of a search unit. The QUBO solver 200 may be realized as a dedicated processor that executes QA and SA, or may be realized by a general-purpose processor such as the processor 101 executing a program.

[0171] For example, in generating a plurality of states, the processor 101 may generate data representing the state of each of a plurality of items based on the coordinates at which the items are arranged and the presence or absence of rotation. This allows the data processing device 100 to efficiently represent variations in the arrangement of items in the area to be arranged.

[0172] In addition, in calculating the evaluation function, the processor 101 may calculate at least one of a first evaluation function indicating the size of the overlap between two items and a second evaluation function indicating the size of a closed area formed by the two items. This allows the data processing device 100 to appropriately express conditions imposed in a packing problem, a scheduling problem, or the like in the objective function. The evaluation function E1 is an example of a first evaluation function. The evaluation function E2 is an example of a second evaluation function. However, the processor 101 may use evaluation functions other than the first evaluation function and the second evaluation function, or may use three or more evaluation functions.

[0173] Furthermore, the processor 101 may calculate a plurality of evaluation functions in the calculation of the evaluation function. In this case, the processor 101 may generate an objective function including a linear combination of a plurality of cost terms corresponding to the plurality of evaluation functions in the generation of the objective function. This allows the data processing device 100 to appropriately express a plurality of conditions imposed in a packing problem, a scheduling problem, or the like, in the objective function.

[0174] Furthermore, the objective function generated by the processor 101 may include a constraint term indicating that one item can be in only one state at a time. Specifically, the objective function is expressed by a linear combination of the constraint term and the cost term. This enables the data processing device 100 to make it difficult for the search unit to obtain an inappropriate solution in which one item can be in multiple states at the same time. That is, the data processing device 100 enables the search unit to easily obtain an appropriate solution.

[0175] Furthermore, the problem information may include a bitmap indicating each of a plurality of items and regions, which enables the data processing device 100 to efficiently generate states of each item and calculate evaluation functions.

[0176] Furthermore, the processor 101 may generate problem information by bitmapping the shapes of multiple items and the shapes of areas in another problem that is the basis of the problem. In this case, the other problem can be said to be the original problem. The problem in which the shapes of multiple items and the shapes of areas in the original problem are bitmapped can be said to be an approximation problem. When the processor 101 obtains a solution corresponding to a problem (approximation problem) from the search unit, the processor 101 may generate an initial solution to the other problem (original problem) based on the solution, and use the initial solution to solve the other problem (original problem).

[0177] This enables the data processing apparatus 100 to provide a better initial solution to another problem, i.e., the original problem, and shortens the time required for the solution process for the original problem.

[0178] The information processing of the first embodiment can be realized by causing the processing unit 12 to execute a program. The information processing of the second embodiment can be realized by causing the processor 101 to execute a program. The program can be recorded in a computer-readable recording medium 113.

[0179] For example, the program can be distributed by distributing recording medium 113 on which the program is recorded. Alternatively, the program may be stored in another computer and distributed via a network. The computer may store (install) the program recorded in recording medium 113 or a program received from another computer in a storage device such as RAM 102 or HDD 103, and read and execute the program from the storage device. [Explanation of symbols]

[0180] 10 Data Processing Device 11 Storage section 12 Processing section 13 Exploration Department R1 area

Claims

1. On the computer, Obtaining information indicative of a problem with placing multiple items in a given area; generating, for each of the plurality of items, a plurality of states corresponding to positions at which the item is to be placed in the area based on the information; Identifying a plurality of pairs of two items included in the plurality of items, and calculating an evaluation function indicating an evaluation value according to a combination of states of the two items in the plurality of identified pairs; Generate an Ising-type objective function for each combination of states of the plurality of items, the objective function including a cost term indicating the sum of the evaluation values ​​of each of the plurality of pairs indicated by the evaluation function; obtaining the solution corresponding to the problem using a search unit that searches for a solution based on the objective function; A program that executes a process.

2. In generating the plurality of states, data representing the states is generated based on coordinates at which each of the plurality of items is arranged and on the presence or absence of rotation. The program according to claim 1, which causes the computer to execute a process.

3. In the calculation of the evaluation function, at least one of a first evaluation function indicating a size of an overlap between the two items and a second evaluation function indicating a size of a closed area formed by the two items is calculated. The program according to claim 1, which causes the computer to execute a process.

4. In the calculation of the evaluation function, a plurality of evaluation functions are calculated, In the generation of the objective function, the objective function is generated to include a linear combination of a plurality of cost terms corresponding to the plurality of evaluation functions. The program according to claim 1, which causes the computer to execute a process.

5. The objective function includes a constraint term indicating that one item can be in only one state at a time. The program according to claim 1.

6. the information includes a bitmap representing each of the plurality of items and the region; The program according to claim 1.

7. generating said information by bitmapping shapes of said plurality of items and shapes of said regions in another problem which is the source of said problem; when the solution corresponding to the problem is obtained, generating an initial solution to the other problem based on the solution, and solving the other problem using the initial solution; 7. The program according to claim 6, which causes the computer to execute a process.

8. The computer Obtaining information indicative of a problem with placing multiple items in a given area; generating, for each of the plurality of items, a plurality of states corresponding to positions at which the item is to be placed in the area based on the information; Identifying a plurality of pairs of two items included in the plurality of items, and calculating an evaluation function indicating an evaluation value according to a combination of states of the two items in the plurality of identified pairs; Generate an Ising-type objective function for each combination of states of the plurality of items, the objective function including a cost term indicating the sum of the evaluation values ​​of each of the plurality of pairs indicated by the evaluation function; obtaining the solution corresponding to the problem using a search unit that searches for a solution based on the objective function; Data processing methods.

9. a storage unit that stores information indicating a problem in which a plurality of items are to be arranged in a predetermined area; a processing unit that generates, for each of the plurality of items, a plurality of states corresponding to a position at which the item is to be placed in the area based on the information stored in the storage unit, identifies a plurality of pairs of two items included in the plurality of items, calculates an evaluation function indicating an evaluation value corresponding to a combination of states of the two items in the identified plurality of pairs, generates an Ising-type objective function for the combination of states of the plurality of items, the objective function including a cost term indicating the sum of the evaluation values ​​of each of the plurality of pairs, the cost term being indicated by the evaluation function, and obtains the solution corresponding to the problem using a search unit that searches for a solution based on the objective function; A data processing device comprising:

Citation Information

Patent Citations

  • Optimal solution search device and optimal solution search program

    JP2022079376A

  • Optimization device, optimization method, and optimization program

    JP2022118555A

  • Quantum procedures for approximate optimization by quenching

    US20200202249A1

  • Initializing optimization solvers

    US20220164644A1