Computer-readable recording medium storing program, data processing method, and data processing device

By constructing the Ising-type objective function and using the evaluation function to calculate the evaluation value of the project pair, the Ising-type machine's inefficient solution search in the combinatorial optimization problem is solved, achieving more efficient solution search and faster processing time.

CN119271950APending Publication Date: 2025-01-07FUJITSU LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202410835800.9
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2023-07-04
Filing Date
2024-06-26
Publication Date
2025-01-07

AI Technical Summary

Technical Problem

When existing Ising machines deal with combination optimization problems, especially packaging and scheduling problems, it is difficult to accurately express the constraints and project shapes, resulting in inefficient solution search.

Method used

By generating the Ising-type objective function, using the evaluation function to calculate the evaluation values ​​of the project pair, including the overlapping and closed areas, we construct the objective function in the QUBO format, and use the search unit based on the objective function to find solutions.

Benefits of technology

Improve the efficiency of understanding search, reduce the cost of formulating the problem, expand the available range of QUBO solvers, and shorten the processing time of understanding search.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119271950A_ABST
    Figure CN119271950A_ABST
Patent Text Reader

Abstract

The present disclosure relates to a computer-readable recording medium storing a program, a data processing method, and a data processing apparatus. A recording medium storing a program for causing a computer to execute: acquiring information indicating a problem in which a plurality of items are arranged in a predetermined area; generating, for each of the plurality of items, a plurality of states according to positions of the items arranged in the region based on the information; specifying a pair of two items included in the plurality of items, and calculating an evaluation function indicating an evaluation value from a combination of states of the two items in the specified pair; generating an Isinus objective function for a combination of states of the plurality of items, the Isinus objective function including a cost item indicating a sum of evaluation values for each of the pairs indicated by the evaluation function; and acquiring a solution corresponding to the question by using a search unit that searches for the solution based on the objective function.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The embodiments discussed herein relate to a non-transitory computer-readable recording medium storing a program, a data processing method, and a data processing apparatus. Background Art

[0002] As a device for calculating combinatorial optimization problems, there is an Ising machine that searches for solutions based on an Ising-type objective function. The objective function is expressed in a quadratic unconstrained binary optimization (QUBO) format. The objective function may also be referred to as an energy function. When searching for solutions through an Ising machine, for example, simulated annealing (SA), quantum annealing (QA), etc. are used. An Ising machine is a type of QUBO solver.

[0003] For example, an optimization device for solving a multi-objective optimization problem by annealing such as SA or QA is proposed. The proposed optimization device performs solution search by using a multi-point search method based on multiple intermediate solutions existing on the way to the optimal solution obtained by annealing, thereby enabling a solution having a satisfactory value for at least one objective function to be obtained for each of multiple objective functions.

[0004] Note that a system is proposed that is trained using an initialization rule for obtaining optimal initialization values ​​used in an optimization algorithm by using machine learning of a problem solved by an optimization algorithm such as gradient descent and its solution.

[0005] In addition, a system for obtaining a solution to a combinatorial optimization problem by a method called a quantum quenching algorithm is proposed. In addition, an optimal solution search device is proposed, which searches for a plurality of approximate solutions each of which is not an optimal solution but is close to the optimal solution by a simple arithmetic operation that simplifies the arithmetic operation used to obtain the optimal solution, and searches for the optimal solution by a genetic algorithm in which a solution group containing the approximate solutions is used as an initial group.

[0006] Japanese Laid-Open Patent Publication No. 2022-118555, U.S. Patent Application Publication No. 2022 / 0164644, U.S. Patent Application Publication No. 2020 / 0202249, and Japanese Laid-Open Patent Publication No. 2022-79376 are disclosed as related technologies. Summary of the invention

[0007] Technical issues

[0008] As a combinatorial optimization problem, there is a problem of arranging multiple items in a predetermined area. Examples of such problems include packing problems, scheduling problems, etc. However, it is difficult to accurately express constraints such as the shape of the items in the problem and the locations where the items can be arranged through QUBO, and it may not be possible to effectively find a solution using an Ising machine.

[0009] In one aspect, an embodiment aims to improve the efficiency of finding a solution.

[0010] Solution to the problem

[0011] According to one aspect of the embodiment, a non-transitory computer-readable recording medium storing a program is provided, wherein the program is used to cause a computer to perform processing, the processing comprising: obtaining information indicating a problem of arranging multiple items in a predetermined area; for each of the multiple items, generating multiple states according to the positions of the items arranged in the area based on the information; specifying multiple pairs of two items included in the multiple items, and calculating an evaluation function indicating an evaluation value based on a combination of the states of the two items in the specified multiple pairs; generating an Ising-type objective function for the combination of the states of the multiple items, the Ising-type objective function including a cost term indicating the sum of the evaluation values ​​of each pair in the multiple pairs indicated by the evaluation function; and obtaining a solution corresponding to the problem by using a search unit that searches for a solution based on the objective function.

[0012] Advantageous Effects of the Invention

[0013] In one aspect, the efficiency of finding a solution can be improved. BRIEF DESCRIPTION OF THE DRAWINGS

[0014] Figure 1 is a diagram for describing a data processing device according to a first embodiment;

[0015] Figure 2 is a diagram showing an example of hardware of a data processing system of the second embodiment;

[0016] Figure 3 is a diagram showing an example of input data for a combinatorial optimization problem;

[0017] Figure 4 is a diagram showing an example of a solution to a combinatorial optimization problem;

[0018] Figure 5 is a diagram showing an example of the functions of a data processing device;

[0019] Figure 6 is a flowchart showing an example of the main process;

[0020] Figure 7 is a flow chart illustrating an example of a solution finding process for an approximation problem;

[0021] Figure 8 is a diagram showing an example of data transformation of input data for a combinatorial optimization problem;

[0022] Fig. 9 is a diagram showing an example of state generation of a project;

[0023] Fig.10 is a diagram showing an example of an evaluation function calculated for two items;

[0024] Fig.11 is a diagram showing a first calculation example of an evaluation function calculated for two items;

[0025] Fig.12 is a diagram showing a second calculation example of an evaluation function calculated for two items;

[0026] Fig.13 is a diagram showing the process of finding a solution using a quadratic unconstrained binary optimization (QUBO) solver;

[0027] Fig.14 is a diagram showing an example of tetrominoes;

[0028] Fig.15 is a diagram showing an example of input data (part 1);

[0029] Fig.16 is a diagram showing an example of a solution obtained from the QUBO solver (Part 1);

[0030] Fig.17 is a diagram showing an example of input data (part 2);

[0031] Fig.18 is a diagram showing an example of a solution obtained from the QUBO solver (Part 2);

[0032] Fig.19 is a diagram showing an application example of a scheduling problem; and

[0033] Fig. 20 is a diagram showing an application example to a vehicle routing problem. DETAILED DESCRIPTION

[0034] Hereinafter, the present embodiment will be described with reference to the accompanying drawings.

[0035] [First embodiment]

[0036] A first embodiment will be described.

[0037] Figure 1 It is a diagram for describing the data processing device according to the first embodiment.

[0038] The data processing device 10 is used to find a solution to a combinatorial optimization problem. The data processing device 10 includes 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 may be 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), etc. The processing unit 12 may be a processor that executes a program. A "processor" may include a collection of multiple processors (multiprocessor).

[0039] The search unit 13 is a quadratic unconstrained binary optimization (QUBO) solver that performs quantum annealing (QA) or simulated annealing (SA). The search unit 13 is implemented by a quantum processor that performs QA, a GPU or FPGA that performs SA, etc. The search unit 13 can be implemented by a processor that executes a program, such as a CPU. In addition, the search unit 13 can be set in a device separated from the data processing device 10. In this case, the data processing device 10 and the device including the search unit 13 are communicatively coupled.

[0040] Here, the combinatorial optimization problem is formulated by an Ising type objective function and is replaced, for example, by a problem of minimizing the value of the objective function. The objective function may be referred to as an energy function, etc. The objective function includes a plurality of state variables. A state variable is a binary variable that takes a value of 0 or 1 and may be referred to as a bit. The solution to the combinatorial optimization problem is represented by the values ​​of the plurality of 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 may be referred to as energy.

[0041] The Ising type objective function is expressed by expression (1).

[0042] [Expression 1]

[0043]

[0044] The state vector s has a plurality of state variables as elements and represents the state of the Ising model. Expression (1) is an objective function formulated in the QUBO format. In the case of the problem of maximizing energy, it is sufficient to invert the sign of the objective function. The values ​​of the plurality of state variables belonging to the state vector s are stored in the storage unit 11.

[0045] The first term on the right side of expression (1) is the product of the values ​​of two state variables and the weighting coefficients integrated for all combinations of two state variables that can be selected from all state variables without omission and overlap. The indices of the state variables are represented by subscripts i and j. The i-th state variable is represented by si The jth state variable is represented by s j The coupling coefficient matrix is ​​represented by W. The coupling coefficient indicating the weight or strength of the coupling between the i-th state variable and the j-th state variable is represented by W as an element of W. ij Indicates. Satisfy W ij =W ji And W ii =0.

[0046] The second term on the right side of expression (1) is the sum of the products of the corresponding deviations of all state variables and the values ​​of the state variables. i The vector of is represented by b. The deviation of the i-th state variable is represented by b i The constant is represented by c. When the expression (1) is expanded, it is represented by the expression (2).

[0047] [Expression 2] E(s) = -W 0,1 s0s1-W 0,2 s0s2-W 0,3 s0s3-…

[0048] -W 1,2 s1s2-W 1,3 s1s3-W 1,4 s1s4-…

[0049] …

[0050] -W n-2,n-1 s n-2 s n-1

[0051] -b0s0-b1s1-b2s2-…

[0052] +c (2)

[0053] As a combinatorial optimization problem, there is a problem of arranging multiple items in a predetermined area. Examples of such problems include packaging problems, scheduling problems, and the like. For example, in a packaging problem, a package is an example of an item, and an internal space such as a box or a warehouse used to pack the package is an example of an area. In addition, in a scheduling problem, resources to be scheduled, such as personnel or equipment, are examples of items, and a time frame (time domain) to which the resources are allocated is an example of an area. An area can be represented in two or three dimensions. For these problems, by using the search unit 13, the data processing device 10 obtains a solution in which, for example, each item is efficiently arranged in a corresponding area so as not to overlap with each other.

[0054] As described above, the storage unit 11 stores information indicating a problem of arranging a plurality of items in a predetermined area. For example, the processing unit 12 may acquire information input to the data processing device 10 and store the information in the storage unit 11. Alternatively, the information may be created by the processing unit 12 as information indicating an approximate problem obtained by simplifying the original combinatorial optimization problem.

[0055] For example, assume that the information indicates a problem of arranging items a, b, c, ... in region R1. The information includes information about the size of region R1 and the shape of each of items a, b, c, ... Assume that region R1 is a region in the XY plane. Assume that 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. In addition, assume that the upper left vertex of region R1 is 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.

[0056] The shape of an item can be represented by a bitmap in the case of a planar graphic, or by voxels in the case of a three-dimensional graphic. In addition, the shape of an item can be represented by a function indicating a curve, etc. Figure 1 , an example in which the shape of an item is represented by a bitmap is shown.

[0057] The processing unit 12 generates, for each of the plurality of items, a plurality of states according to positions where the items are arranged in the object area based on the information stored in the storage unit 11. Figure 1 In the example of , the state of the item is represented by which XY coordinate the corresponding item is arranged in region R1. In the case where rotation of the item is allowed, the state may include information about the rotation angle of the item. Processing unit 12 generates a state corresponding to the arrangement for each arrangement that may be taken by the corresponding item in region R1. Therefore, the state of the item can be referred to as the arrangement state of the item.

[0058] For example, the processing unit 12 generates states (a, 0), (a, 1), (a, 2), ... for item a. The numerical value (e.g., "0" or "1") on the right side of (a, 0) or (a, 1) is an indicator for identifying the state of item a. A set including these states (a, 0), (a, 1), (a, 2), ... as elements is a state set of item a.

[0059] Furthermore, the processing unit 12 generates states (b, 0), (b, 1), (b, 2), . . . of the item b.

[0060] The number of elements of the state set of a certain project may be different from the number of elements of the state set of another project. The processing unit 12 also generates a plurality of states similarly for other projects.

[0061] For a pair of projects included in a plurality of projects, the processing unit 12 calculates an evaluation function H indicating an evaluation value based on a combination of the states of the two projects in the pair. An evaluation function is a computational process that receives the states of the two projects as input and returns a numerical value (evaluation value) as output. The evaluation function can be given as input data for a combinatorial optimization problem, or can be specified from a plurality of predefined types of predetermined processes by input data. For example, for two projects a and b, the combination of states is represented by ((a, p), (b, q)). The index of the state of project a is represented by p. The index of the state of project b is represented by q. For a pair of projects a and b, the evaluation function H is represented by H=H((a, p), (b, q)).

[0062] In the example, the evaluation value indicated by the evaluation function indicates the size of the overlapping area of ​​the two items, that is, the overlapping size, according to the states of the two items. The overlapping area indicates the portion where the two items overlap each other in the region R1. The size of the overlapping area can be represented by the number of 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 states of items a and b. The evaluation values ​​include the evaluation value H((a, 0), (b, 0)) of the combination {(a, 0), (b, 0)}, the evaluation value H((a, 0), (b, 1)) of the combination {(a, 0), (b, 1)}, and the like. Figure 1 , as an example, an overlapping region corresponding to the evaluation value H((a, 0), (b, 0)) and an overlapping region corresponding to the evaluation value H((a, 0), (b, 1)) are shown in black.

[0063] In addition, the evaluation value represented by the evaluation function may include the size of the closed area formed by the two items according to the status of the two items, in other words, the closed area size. The closed area indicates a portion of the region R1 surrounded by the two items and where no other items are arranged. The size of the closed area can be represented by the number of pixels.

[0064] In this way, multiple evaluation functions can be used. For example, when it is assumed that the evaluation function regarding the overlapping area is the evaluation function E1 and the evaluation function regarding the closed area is the evaluation function E2, the entire evaluation function H can be expressed by a linear combination of E1 and E2 as H=α×E1+β×E2. The coefficients indicating the weights of E1 and E2 are represented by α and β, respectively. Note that H=E1 or H=E2 may be satisfied. Alternatively, the entire evaluation function may be limited to a linear combination of three or more evaluation functions. As an evaluation function other than the evaluation functions E1 and E2, for example, the following function may be considered: when the interval between the items is smaller than a certain value of a specific pair of items, the evaluation value is set to a positive predetermined value, and in other cases the evaluation value is set to 0, and so on.

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

[0066] First, an item cannot have multiple states at the same time. Therefore, the processing unit 12 may include a constraint C in the objective function E indicating that an item cannot have multiple states at the same time. oh Constraint C oh is the constraint expression C for each item oh,i The sum of all items of the constraint expression C oh,i It is expressed by expression (3). Constraint C oh It is represented by expression (4). Note that "oh" is the abbreviation of "one-hot", which means that there is only one value 1 among multiple values, and the rest are all values ​​0, and at this time, the constraint expression C oh,i is 0.

[0067] [Expression 3]

[0068]

[0069] [Expression 4]

[0070]

[0071] Here, we have the state variable x as an element i,s The state vector of item i is represented by X. The state variable corresponding to the state s of item i is represented by x i,s Note that the state s represents the state of item i and is different from the state vector s in expressions (1) and (2). The state variable x i,s Corresponding to the state variable s in expression (1) i . By x i,s =1, indicating that the status of item i is s. i,s = 0, indicating that the status of item i is not s. The status set of item i is represented by S(i).

[0072] In addition, for example, the cost term C for the overlapping area of ​​two projects ow It can be expressed by expression (5) using evaluation function E1. Note that "ow" is an abbreviation for "overwrap".

[0073] [Expression 5]

[0074]

[0075] The state si∈S(i) as an element of the state set S(i) of item i indicates the si-th state of item i. The state sj∈S(j) as an element of the state set S(j) of item j indicates the sj-th state of item j.

[0076] In addition, for example, the cost term C for the enclosed area of ​​the two projects ds It is expressed by expression (6) using evaluation function E2. Note that "ds" is an abbreviation for "dead space".

[0077] [Expression 6]

[0078]

[0079] The objective function E is expressed as (7) using the constraint C oh and cost item C ow and C ds To express.

[0080] [Expression 7]

[0081] E(X)=W1C oh (X)+W2C ow (X)+W3C ds (X) (7)

[0082] Indicates constraint C oh and cost item C ow and C ds The coefficients of the weights are represented by W1, W2, and W3 respectively. In this case, the cost term C ow and C ds Each of can be considered as an example of the cost term C described above. Alternatively, the cost term C ow and C ds The linear combination of can be considered as an example of the above-mentioned cost term C. The processing unit 12 obtains the expression (1) in the QUBO format according to the expression (7).

[0083] The processing unit 12 obtains a solution corresponding to the problem by 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 perform a search for a solution based on the objective function E(X), and obtains a solution obtained as a result from the search unit 13. The search unit 13 searches for a solution having a smaller value of the objective function E(X) (in other words, energy). The processing unit 12 obtains the solution searched by the search unit 13 and outputs it.

[0084] Note that, in the case where the corresponding problem is an approximate problem corresponding to the original combinatorial optimization problem, the processing unit 12 can generate an initial solution to be used for finding a solution to the original combinatorial optimization problem based on the solution to the approximate problem, and can use the initial solution to find a solution to the original combinatorial optimization problem. The search for the solution to the original combinatorial optimization problem can be performed using SA or the like. The search for the solution to the original combinatorial optimization problem can be performed by the search unit 13, or can be performed 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.

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

[0086] Therefore, the data processing device 10 can improve the efficiency of finding a solution. Specifically, by calculating an evaluation function that focuses on two items, the data processing device 10 can use the evaluation function to formulate the problem. Therefore, the data processing device 10 does not need to directly express the shape of the items in the problem and the positions where the items can be arranged through QUBO, and can easily formulate the problem. Therefore, the data processing device 10 can expand the available range of the search unit 13 (QUBO solver) that performs QA or SA. In addition, compared with the case where the shape of the items in the problem and the positions where the items can be arranged are directly expressed through QUBO, the data processing device 10 can reduce the processing cost of formulating the problem.

[0087] In addition, the data processing device 10 can obtain an initial solution to the original combinatorial optimization problem by formulating an approximate problem obtained by simplifying the original combinatorial optimization problem as described above by the above method, and solving the approximate problem by the search unit 13. Therefore, even in the case where the number of state variables that can be processed 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 obtain an initial solution at high speed by QA or SA performed by the search unit 13. The initial solution is already close to a good solution. Therefore, compared with the case where the above method is not applied, the data processing device 10 can shorten the processing time of the solution search performed by SA for the original combinatorial optimization problem.

[0088] [Second embodiment]

[0089] A second embodiment will now be described.

[0090] Figure 2 1 is a diagram showing an example of hardware of a data processing system according to the second embodiment.

[0091] The data processing system 1 is used to find a solution to a combinatorial optimization problem. Here, a packing problem is exemplified as a combinatorial optimization problem. Examples of packing problems include the problem of efficiently packing multiple objects in a box without gaps, etc. The data processing system 1 includes a data processing device 100 and a QUBO solver 200.

[0092] The data processing apparatus 100 includes a processor 101, a RAM 102, an HDD 103, a GPU 104, an input interface 105, a medium reader 106, a communication interface 107, and a coupling interface 108. These units included in the data processing apparatus 100 are coupled to a bus inside the data processing apparatus 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.

[0093] The processor 101 is an arithmetic device that executes program commands. The processor 101 is, for example, a CPU. The processor 101 loads at least a portion of the program and data stored in the HDD 103 into the RAM 102, and executes the program. Note that the processor 101 may include a plurality of processor cores. In addition, the data processing device 100 may include a plurality of processors. The processing described below may be performed in parallel using a plurality of processors or processor cores. In addition, a collection of a plurality of processors may be referred to as a "multiprocessor" or simply referred to as a "processor".

[0094] The RAM 102 is a semiconductor memory that temporarily stores programs to be executed by the processor 101 and data to be used for arithmetic operations by the processor 101. Note that the data processing apparatus 100 may include a type of memory other than the RAM, or may include a plurality of memories.

[0095] HDD 103 is a nonvolatile storage device that stores software programs such as an operating system (OS), middleware and application software, and data. Note that data processing device 100 may include another type of storage device such as a flash memory or a solid state drive (SSD), or may include multiple nonvolatile storage devices.

[0096] The GPU 104 outputs an image to a display 111 coupled to the data processing apparatus 100 according to a command from the processor 101. As the display 111, an optional type of display such as a cathode ray tube (CRT) display, a liquid crystal display (LCD), a plasma display, or an organic electroluminescent (OEL) display may be used.

[0097] The input interface 105 obtains an input signal from an input device 112 coupled 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, a trackball, a keyboard, a remote controller, a button switch, etc. can be used. In addition, various types of input devices can be coupled to the data processing device 100.

[0098] The medium reader 106 is a reading device that reads the program and data recorded in the recording medium 113. As the recording medium 113, for example, a magnetic disk, an optical disk, a magneto-optical (MO) disk, a semiconductor memory, etc. can be used. The magnetic disk includes a floppy disk (FD) and an HDD. The optical disk includes a compact disk (CD) and a digital versatile disk (DVD).

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

[0100] Communication interface 107 is coupled to network 114 and communicates with another information processing device via network 114. Communication interface 107 may be a wired communication interface coupled to a wired communication device such as a switch or router, or may be a wireless communication interface coupled to a wireless communication device such as a base station or access point.

[0101] The coupling interface 108 is an interface coupled to the QUBO solver 200. The coupling interface 108 communicates with the QUBO solver 200 according to a command from the processor 101.

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

[0103] Here, as an example, a problem based on a two-dimensional packing problem will be considered. The two-dimensional packing problem is the same as the problem of determining the layout position of circuit blocks in a semiconductor chip in semiconductor integrated circuit design, for example, and is a combinatorial optimization problem that often occurs in the industry. In the case of the semiconductor layout problem, the problem is to make the longitudinal and lateral dimensions of the rectangle including all rectangular items as small as possible when arranging rectangular items without overlapping. Note that in the packing problem used for the following description, the shape of the items to be packaged may not be rectangular. In addition, the items can be moved and rotated within a plane. In addition, it is assumed that the longitudinal and lateral dimensions of the area where the items can be arranged are pre-specified.

[0104] Figure 3 is a diagram illustrating an example of input data for a combinatorial optimization problem.

[0105] The input data of the combinatorial optimization problem includes information about a plurality of items. The plurality of items indicates, for example, items 21, 22, 23, 24, and 25. The information about the plurality of items includes information indicating the shapes of the respective items 21 to 25.

[0106] In addition, the input data of the combinatorial optimization problem includes information about the size of the placement destination area of ​​the item (in other words, the arrangement area 30). In the case where the arrangement area 30 is a two-dimensional rectangle, for example, the size of the arrangement area 30 is represented by the length in the longitudinal direction of the arrangement area 30 and the length in the lateral direction of the arrangement area 30.

[0107] In this way, a plurality of items and arrangement areas are given as input data for a problem to be solved. For example, the problem to be solved is a problem of accommodating all items in the arrangement area under the following predetermined conditions. The first condition is that the shape of the items is not allowed to be deformed. The second condition is that the items are not allowed to overlap each other. The third condition is whether the items are allowed to rotate or not.

[0108] Figure 4 is a diagram illustrating an example of a solution to a combinatorial optimization problem.

[0109] like Figure 4 As shown in the example of , the items 21 to 25 can be arranged inside the arrangement area 30 without overlapping. When finding a solution to the combinatorial optimization problem, a solution representing an effective arrangement of the items 21 to 25 is searched for in this way.

[0110] Figure 5 is a diagram showing a functional example of a data processing device.

[0111] The data processing device 100 includes a storage unit 120, a combinatorial optimization problem data acquisition unit 130, an approximate problem solution search unit 140, a combinatorial optimization problem solution search unit 150, and a solution output unit 160. A storage area of ​​the RAM 102 or the HDD 103 is used as the storage unit 120. The combinatorial optimization problem data acquisition unit 130, the approximate problem solution search unit 140, the combinatorial optimization problem solution search unit 150, and the solution output unit 160 are implemented by the processor 101 executing a program stored in the RAM 102.

[0112] The storage unit 120 stores input data of the combinatorial optimization problem that the user wishes to solve and data of the approximate problem generated based on the input data. The combinatorial optimization problem that the user wishes to solve is the original problem of the approximate problem, and can be said to be the original combinatorial optimization problem. The approximate problem is a problem obtained by simplifying the original combinatorial optimization problem. The approximate problem is also a combinatorial optimization problem, but is conveniently referred to as an "approximate problem" to distinguish it from the original combinatorial optimization problem. In addition, the storage unit 120 stores solutions searched for the approximate problem and solutions searched for the combinatorial optimization problem.

[0113] The combinatorial optimization problem data acquisition unit 130 acquires input data of the combinatorial optimization problem that the user desires to solve, and stores the input data in the storage unit 120 .

[0114] The approximate problem solution finding unit 140 generates data of the approximate problem according to the input data stored in the storage unit 120, and finds a solution to the approximate problem using the QUBO solver 200. The approximate problem solution finding unit 140 generates an initial solution to the original combinatorial optimization problem based on the solution to the approximate problem, and outputs the initial solution to the combinatorial optimization problem solution searching unit 150.

[0115] The approximate problem solution searching unit 140 includes an item data converting unit 141 , an item status generating unit 142 , an item evaluation function calculating unit 143 , a QUBO problem generating unit 144 , and a solution selection converting unit 145 .

[0116] The item data conversion unit 141 converts each of the shape of the item indicated by the input data and the shape of the arrangement area 30 into a bitmap based on the input data of the combinatorial optimization problem.

[0117] The item state generation unit 142 generates information indicating the state of each item based on information about each item and the arrangement destination area of ​​the item after conversion into a bitmap. Note that the number of states that can be taken by each item is limited to a finite number.

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

[0119] The QUBO problem generating unit 144 generates information about the QUBO problem based on the evaluation functions E1 and E2 calculated by the item evaluation function calculating unit 143. The QUBO problem corresponds to an approximation problem formulated by the Ising type objective function E. In other words, the QUBO problem generating unit 144 calculates the constraint term C including the expression (4): oh , the cost term C in expression (5) ow and the cost term C in expression (6) ds The objective function E of expression (7) is expressed in the QUBO format of expression (1).

[0120] The QUBO problem generation unit 144 inputs the generated information about the QUBO problem to the QUBO solver 200 and causes the QUBO solver 200 to perform a search for a solution based on the objective function E. The QUBO solver 200 performs a search for a solution based on the objective function E through QA, SA, etc. and responds with a searched solution.

[0121] The solution selection conversion unit 145 obtains the solution obtained by the QUBO solver 200, and performs a process of selecting a solution and a process of converting the selected solution into an initial solution of the original combinatorial optimization problem. Specifically, after obtaining a plurality of solutions from the QUBO solver 200, the solution selection conversion unit 145 evaluates each solution by a predetermined evaluation method, preferably selects a solution from among the highly ranked solutions, and uses these solutions to generate an initial solution of the original combinatorial optimization problem.

[0122] 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 solution finding unit 140. The combinatorial optimization problem solution searching unit 150 searches for a solution using, for example, an optimization algorithm such as the SA method.

[0123] The solution output unit 160 outputs the solution searched 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.

[0124] In this way, the data processing device 100 can approximate or simplify the original combinatorial optimization problem to make the problem easy to process by the QUBO solver 200, and can use the high-speed processing feature of the QUBO solver 200. In addition, in the solution search performed by the combinatorial optimization problem solution search unit 150, since the initial solution is already near the desired solution, the time of the solution search that causes the processing performed by the SA method or the like to be relatively slow can be shortened.

[0125] Next, the processing procedure of the data processing apparatus 100 will be described.

[0126] Figure 6 is a flowchart showing an example of the main process.

[0127] ( S10 ) The combinatorial optimization problem data acquisition unit 130 acquires input data of the combinatorial optimization problem that the user desires to solve, and stores the input data in the storage unit 120 .

[0128] (S11) The approximate problem solution search unit 140 generates data of the approximate problem based on the input data obtained in step S10, and performs search for a solution to the approximate problem. The approximate problem solution search unit 140 stores the obtained multiple solutions in the storage unit 120. The approximate problem solution search unit 140 evaluates the multiple solutions by a predetermined evaluation method, and narrows the solutions to the solutions with high ratings. The approximate problem solution search unit 140 converts the solution obtained by narrowing down into an initial solution to the original combinatorial optimization problem. Note that the details of the solution search process for the approximate problem will be described later.

[0129] (S12) The combinatorial optimization problem solution search unit 150 uses the solution of the approximate problem obtained in step S11 as the initial solution to perform a search for a solution to the combinatorial optimization problem. Specifically, the combinatorial optimization problem solution search unit 150 searches for a solution by acquiring the initial solution generated by the approximate problem solution search unit 140 and executing an optimization algorithm such as the SA method using the initial solution as a starting point.

[0130] (S13) The solution output unit 160 outputs the solution obtained by the combinatorial optimization problem solution search unit 150. Then, the main process ends.

[0131] Figure 7 is a flowchart illustrating an example of a solution-finding process for an approximation problem.

[0132] The solution finding process of the approximation problem corresponds to step S11.

[0133] (S20) The item data conversion unit 141 converts the shape of each of the plurality of items indicated by the input data into simplified data based on the input data of the combinatorial optimization problem. In this example, the item data conversion unit 141 converts the shape of each item and the shape of the arrangement area into a bitmap.

[0134] (S21) The item status generation unit 142 generates the status of each item based on each item and the layout area that have been bitmapped. The status of the item indicates the position where the item can be arranged in the layout area. For example, the layout position of the item is represented by the XY coordinates in the layout area. In addition, in the case where rotation of the item is allowed, the status of the item includes information about the rotation angle of the item.

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

[0136] (S23) The QUBO problem generating unit 144 generates input data for the QUBO problem. The input data for the QUBO problem includes information about the Ising type objective function E. The QUBO problem generating unit 144 calculates the information including the constraint term C based on the evaluation functions E1 and E2. oh and cost item C ow and C ds The objective function E of expression (7) is obtained to obtain the objective function E of expression (1) expressed in QUBO format.

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

[0138] (S25) The solution selection conversion unit 145 acquires a plurality of solutions obtained by the search by the QUBO solver 200, evaluates each solution by a predetermined evaluation method, and preferably selects a predetermined number of high-ranking solutions. The solution selection conversion unit 145 converts the selected solution into an initial solution to the original combinatorial optimization problem, and outputs the initial solution to the combinatorial optimization problem solution search unit 150. Then, the solution search process of the approximate problem ends.

[0139] Figure 8 is a diagram showing an example of data conversion of input data for a combinatorial optimization problem.

[0140] The item data conversion unit 141 converts the shape of each item and the shape of the layout 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 obtained by bitmapping items 21, 22, 23, 24, and 25 indicated by the input data of the original combinatorial optimization problem, respectively. In addition, the layout area 50 is obtained by bitmapping the layout area 30 indicated by the input data of the original combinatorial optimization problem.

[0141] Here, the resolution when bit-mapping may be automatically adjusted so as to have a data size that can be processed by the data processing device 100, or may be specified in advance. Figure 8 As illustrated, a two-dimensional graphic can be represented by bitmap pixels, and a three-dimensional graphic can be represented by voxels.

[0142] Note that the data conversion of 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 is not necessarily limited to bit mapping. For example, even when the shape of the item is defined by information about a mathematical straight line or curve, it is acceptable as long as the evaluation function can be implemented as a computable software function, etc.

[0143] Fig. 9 is a diagram showing an example of status generation of a project.

[0144] The item state generation unit 142 generates, for each of the bitmapped items 41 to 45, a plurality of states that can be taken when the corresponding item is arranged in the arrangement area 50. The plurality of states of the item indicates changes in the arrangement of the corresponding item in the arrangement area 50. It is assumed that the horizontal axis of the arrangement area 50 is the X axis, and the vertical axis is the Y axis. It is assumed that the upper left vertex of the arrangement area 50 is the origin of the XY coordinates. The state of the item is represented by the XY coordinates and the rotation angle of the item arrangement. The state generation of the item is used to enumerate the states that the item may take with respect to the arrangement area.

[0145] The layout position of the item is represented by the XY coordinates of the upper left pixel of the item's bounding box. The bounding box is the smallest rectangular area that surrounds the entire item. For example, the state of the item is represented by four items (identification information, X coordinate, Y coordinate, and the rotation of the item). Assume, for example, that one unit of rotation is a right rotation of 90 degrees clockwise. The rotation is represented by 0 for no rotation, 1 for a right rotation of 90 degrees, and so on.

[0146] 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 arranged at the coordinates (X, Y) = (7, 1) with a right rotation of 90 degrees.

[0147] The item status generation unit 142 automatically generates a status by pre-specifying a range of each item value for expressing a status. For example, the item status generation unit 142 may generate a status for each item based on the following status generation rules (1) to (3).

[0148] Assume that the X coordinate is in the range of 0 to 10. Assume that the X coordinate interval is 2.

[0149] (2) Assume that the Y coordinate is in the range of 0 to 8. Assume that the Y coordinate interval is 1.

[0150] (3) Assume that the rotation is any one of 0, 1, 2 or 3.

[0151] The number of state variables used in the approximation problem is the total number of states of all items. As the layout area becomes wider, the number of coordinates where items can be arranged increases, and the number of states of items increases. On the other hand, there is an upper limit to the number of state variables that can be processed by the QUBO solver 200.

[0152] Therefore, the project state generation unit 142 sets the total number of states of all projects to be equal to or less than the maximum number of state variables available in the QUBO solver 200. For example, assume that the upper limit of the number of state variables that can be processed by the QUBO solver 200 is 1000, and the number of projects is 10. In this case, the project state generation unit 142 may limit the upper limit of the number of states of each project to 100. The project state generation unit 142 may change the number of states of each project.

[0153] For example, the item state generation unit 142 may limit the number of states of each item by performing uniform thinning or sampling based on uniformly distributed random numbers, normally distributed random numbers, or the like at the time of state generation.

[0154] Note that instead of automatically performing state generation in the process, all states that may be taken by the project can be enumerated and given as input data for the combinatorial optimization problem from the outset.

[0155] Fig.10 is a diagram showing an example of an evaluation function calculated for two items.

[0156] The item state generation unit 142 generates a state set 61 of the item i identified by the identification information i. The state set 61 is a set including five states (i, 0) to (i, 4) of the item i as elements. The number "p" on the right side in the state (i, p) is a number for identifying three items (X coordinate, Y coordinate, rotation) in the state of the item i.

[0157] In addition, the item state generation unit 142 generates a state set 62 of the item j identified by the identification information j. The state set 62 is a set including 8 states (j, 0) to (j, 7) of the item j as elements. The number "q" on the right side in the state (j, q) is a number corresponding to a set of values ​​of three items (X coordinate, Y coordinate, rotation) in the state of the item j.

[0158] The project evaluation function calculation unit 143 calculates the value of the evaluation function E1((i, p), (j, q)), in other words, calculates the first evaluation value of the project pair (i, j). In addition, the project evaluation function calculation unit 143 calculates the value of the evaluation function E2((i, p), (j, q)), in other words, calculates the second evaluation value of the project pair (i, j).

[0159] Note that the approximate problem solution finding unit 140 may use only one of the evaluation functions E1 and E2 for generating the approximate problem. The approximate problem solution finding unit 140 may use three or more evaluation functions for generating the approximate problem.

[0160] Fig.11 is a diagram showing a first calculation example of an evaluation function calculated for two items.

[0161] State image 71 indicates state (a, 1, 1, 0) of item 41 (= item a). State image 72 indicates state (b, 3, 1, 0) of item 42 (= item b). State image 73 shows a situation where state (a, 1, 1, 0) and state (b, 3, 1, 0) occur simultaneously.

[0162] In this case, the number of pixels where items overlap each other in the state image 73 (the number of black pixels) is 12. Therefore, the evaluation function E1((a, 1, 1, 0), (b, 3, 1, 0)) = 12 is satisfied. In addition, there is no closed area in the state image 73. Therefore, the evaluation function E2((a, 1, 1, 0), (b, 3, 1, 0)) = 0 is satisfied.

[0163] Fig.12 is a diagram showing a second calculation example of the evaluation function calculated for two items.

[0164] State image 81 indicates the state (a, 1, 1, 0) of item 41 (= item a). State image 82 indicates the state (b, 5, 4, 0) of item 42 (= item b). State image 83 shows a case where the state (a, 1, 1, 0) and the state (b, 5, 4, 0) occur simultaneously. The area of ​​two pixels (pixels with X marks added) indicated by coordinates (6, 7) and (7, 7) of state image 83 is a closed area generated by being surrounded by items.

[0165] In this case, the number of pixels where items overlap each other in the state image 83 (the number of black pixels) is 1. Therefore, the evaluation function E1((a, 1, 1, 0), (b, 5, 4, 0)) = 1 is satisfied. In addition, the number of pixels with an X mark is two. Therefore, the evaluation function E2((a, 1, 1, 0), (b, 5, 4, 0)) = 2 is satisfied.

[0166] In this way, the evaluation function E1 is a function that counts and returns the number of pixels where two items overlap each other. In the packing problem, since overlap is not allowed when arranging items, the function that gives the evaluation measure of overlap is E1.

[0167] In addition, the evaluation function E2 is a function that counts and returns the number of pixels of the closed area surrounded by two items. In the case where there are multiple closed areas, it is assumed that the evaluation function E2 is the total value of the number of pixels of all closed areas. It is considered that it is often difficult to arrange another item in a narrow closed area. Therefore, E2 gives an evaluation metric for avoiding this situation. Note that even if the closed area is wide enough, it is considered that another item can be arranged, and a threshold can be set for the calculation of E2. For example, when the number of pixels in a closed area is 50 or more, it can be considered that E2=0 is satisfied.

[0168] The evaluation functions E1 and E2 can be easily performed using a method represented as a bitmap graphics processing algorithm. For example, in the case of E1, it is sufficient that the item evaluation function calculation unit 143 performs an AND operation on two bitmap images and counts pixels having a value of 1.

[0169] exist Fig.11 and Fig.12 In the example of , an example of processing using a bitmap image ([0,1]) is shown, but extension to a grayscale image ([0,255]) is also possible. For example, the evaluation function E1 can calculate the degree of overlap of pixels as the average or maximum value of the pixel values.

[0170] In addition, the expression method of the status of the project is not limited to graphical representation, and can be constant data in array format (can be made multi-dimensional with vectors and matrices). In this case, the project evaluation function calculation unit 143 calculates the value of the evaluation function for the combination of the status of the two projects by an evaluation function defined as an arithmetic operation on the constant data in array format.

[0171] For example, in the case of a scheduling problem for determining the working hours of multiple employees, the projects are considered as employees, and the desired working time pattern can be represented by a vector for each employee. Similarly, when optimizing the scheduling when multiple devices are operated in a manufacturing plant, all patterns of executable operating times can be represented by a vector for each pattern of each device. For these various types of combinatorial optimization problems, the above-mentioned evaluation function is defined according to the characteristics of the problem, so that the project evaluation function calculation unit 143 can calculate the value of the evaluation function for the combination of the states of two projects.

[0172] Fig.13 is a diagram showing the flow of finding a solution using the QUBO solver.

[0173] 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 respectively generation rules for the states of the items "1", "2", ..., "N". Each state generation rule includes, for example, information indicating the number of states to be generated, the range of the X coordinates and Y coordinates of the arrangement, and the random number distribution for state sampling.

[0174] The project state generation unit 142 generates a state set 91-1 of project "1" based on the state generation rule 90-1. The project state generation unit 142 generates a state set 91-2 of project "2" based on the state generation rule 90-2. Then, similarly, the project state generation unit 142 generates a state set 91-N of project "N" based on the state generation rule 90-N.

[0175] The project evaluation function calculation unit 143 calculates each of the evaluation functions E1, E2, ... about the two projects for all combinations obtained by extracting states one by one from the state sets of the two projects. In other words, repeated processing α of calculating the value of each of the evaluation functions E1, E2, ... is performed on the combination obtained by extracting states one by one from the state sets of the two projects.

[0176] In the above Fig.10In the example of , the number of states of item i is five. The number of states of item j is eight. Therefore, the item evaluation function calculation unit 143 calculates each evaluation function for 5×8=40 patterns of input, in other words, combinations of states of two items. In this case, the number of repetitions in the repetition process α for item pair i, j is 40.

[0177] In addition, the item evaluation function calculation unit 143 performs repeated processing α for each combination obtained by selecting two items from all items. In other words, the item evaluation function calculation unit 143 performs repeated processing β including the following processing: extracting two state sets from the state sets of all items and performing processing α on the extracted two state sets.

[0178] For example, in a case where the number of items is N, the number of repetitions in the repetition process β is N×(N−1) / 2 because this is the number in a case where two items are extracted from N items.

[0179] The QUBO question generating unit 144 generates QUBO question data 92 based on the evaluation functions E1 and E2 focusing on the pair of two items. The QUBO question generating unit 144 performs QUBO formulation on the above-mentioned two-dimensional packing problem as the following example.

[0180] The QUBO problem generation unit 144 converts the state variable x i,s The state set S(i) and state s (s∈S(i)) assigned to item i and item i. The state variable x i,s =1 indicates that the state of item i is s. State variable x i,s =0 indicates that the status of item i is not s.

[0181] The QUBO problem generation unit 144 imposes the following constraints in the QUBO formulation:

[0182] The first constraint is "determine one item state". Item i always takes any one item. Therefore, for the set of state variables about item i {xi,s|s∈S(i)}, only one of the state variables included in the set needs to take the value "1", and all other state variables need to take the value "0". This first constraint is also called a hot constraint. "One hot" means that only one value among n bits is "1", and the rest are "0".

[0183] In the QUBO formulation, a thermal constraint on an item is represented by expression (3). The right side of expression (3) is a quadratic polynomial that is squared by subtracting 1 from the sum of the values ​​of all state variables included in the state set S(i) of item i. In the case where C in expression (3) is satisfied oh,iWhen (X) = 0, a thermal constraint is satisfied for item i. oh,i When (X) ≠ 0, a thermal constraint is not satisfied for item i. Note that this expression performs squaring, so it always takes a non-negative value of 0 or greater. Therefore, in the case of a thermal constraint not being satisfied, the value is far from the minimum, representing an undesirable situation for the optimization problem.

[0184] One thermal constraint is imposed on all items. Therefore, one thermal constraint for all items is represented by a quadratic polynomial on the right side of Expression (4) obtained by summing Expression (3) with respect to all items.

[0185] The second constraint is "items are not allowed to overlap each other". For example, the following meaning is expressed by the quadratic expression on the right side of expression (5): Fig.11 and Fig.12 The pixels (black pixels) where the two items shown overlap, or it is desirable to reduce the number of overlapping pixels as much as possible while allowing for errors due to bit mapping. C in expression (5) ow The smaller the value of (X), the less overlap there is between the two items.

[0186] In other words, the evaluation function representing the overlap of items is E1. In the case where item i takes state si and item j takes state sj, the number of overlapping pixels is expressed as E1(si, sj)·x i,si ·x j,sj . E1(si,sj) is a constant value. E1(si,sj) is a value obtained by substituting a numerical value into the evaluation function E1. The cost item C corresponding to the second constraint condition ow (X) is obtained by adding E1(si,sj)·x for all pairs of items and all states of items. i,si ·x j,sj And obtained.

[0187] The third constraint is "It is best to make the closed area created by the project narrower." For example, the quadratic expression on the right side of expression (6) indicates that it is desirable to have Fig.12 The meaning of the fewer pixels marked with an X is shown. C in expression (6) ds The smaller the value of (X), the narrower the closed area. The form of expression (6) is the same as that of expression (5). Expression (6) is obtained by replacing the evaluation function E1 of expression (5) with E2.

[0188] In the case where there is another evaluation function, the QUBO question generation unit 144 can similarly create a quadratic expression of QUBO.

[0189] The QUBO problem generation unit 144 creates a quadratic polynomial indicated by expression (7) by multiplying the linear combination of expressions (4), (5) and (6) by weighting coefficients W1, W2 and W3, respectively. The weighting coefficients W1, W2 and W3 are constant values. For the purpose of indicating the degree to which each constraint condition needs to be considered, the weighting coefficients W1, W2 and W3 are multiplied by expressions (4), (5) and (6). Expression (7) is expression (1) in QUBO format and is input data of the QUBO problem. The QUBO problem data 92 indicates input data of the QUBO problem.

[0190] The QUBO solver 200 searches for a solution that minimizes the quadratic polynomial of the QUBO indicated by the QUBO problem data 92. The output of the QUBO solver 200, in other words, the solution to the approximation problem, is a state vector X=[..., x i,si ,...] of each state variable (x i,si etc.) values.

[0191] The QUBO solver 200 processes quickly and can output multiple solutions in a short time. Note that the QUBO solver 200 can also output solutions that violate constraints.

[0192] Therefore, the solution selection conversion unit 145 selects a solution by substituting the value of X as a solution into each expression of the constraint condition. For example, in the case of a two-dimensional packing problem, the following method is used.

[0193] The solution selection conversion unit 145 discards a solution that does not satisfy the first constraint condition, in other words, does not satisfy one thermal constraint. Specifically, when the solution selection conversion unit 145 substitutes the value of the solution X into expression (4) and does not obtain 0, the solution selection conversion unit 145 discards the corresponding solution X.

[0194] (2) The solution selection conversion unit 145 gives priority to solutions that satisfy the second constraint condition. In other words, the solution selection conversion unit 145 selects the solution X according to C obtained by substituting the value of the solution X into the expression (5). ow Sort the solutions in ascending order of the values ​​of .

[0195] (3) The solution selection conversion unit 145 can use a plurality of sort keys. For example, the solution selection conversion unit 145 can use the first sort key as C obtained by substituting the value of the solution X into the expression (5). ow The value of X is obtained by substituting the value of solution X into expression (6) and using the second sort key as C ds For example, priority is given to ow value of the solution, and if there are two or more solutions with the same C owIn the case of solutions with small C ds The solution of value.

[0196] Note that at this stage, there are cases where an achievable solution may not be obtained from the QUBO solver 200. In this case, the QUBO problem generation unit 144 may adjust the weighting coefficients W1, W2, and W3 to recreate the QUBO problem data 92 and re-execute the search for a solution by the QUBO solver 200. For example, in the case where one thermal constraint is not satisfied, the QUBO problem generation unit 144 increases the value of W1.

[0197] The combinatorial optimization problem solution search unit 150 uses the solution of the approximate problem thus obtained as an initial solution to solve the original combinatorial optimization problem. The solution obtained from the QUBO solver 200 is a list (vector) of X values, in other words, values ​​0 and 1. The state variable x i,s =1 means that the state of item i is s, and the state s corresponds to information about the arrangement of item i (X coordinate, Y coordinate, rotation, etc.). Therefore, since the solution selection conversion unit 145 can obtain information about the arrangement of all items by extracting the state variable having a value of 1 and mapping the value of the subscript part (i, s) of the state variable to the original combinatorial optimization problem, this information can be used as an initial solution.

[0198] The combinatorial optimization problem solution search unit 150 can find a solution to the original combinatorial optimization problem by searching for a solution using, for example, the SA method using the initial solution as a starting point. The initial solution at this time is already close to a good solution. Therefore, compared with the case where this method is not applied, the processing time of the solution search in the SA method is shortened.

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

[0200] Next, a more specific example of finding a solution by the data processing device 100 will be described.

[0201] Fig.14 is a diagram showing an example of a four-panel puzzle.

[0202] A graphic created by coupling four squares is called a four-square puzzle. When four-square puzzles rotated in units of 90 degrees are considered the same, there are seven types of four-square puzzles, namely four-square puzzles 301, 302, 303, 304, 305, 306 and 307.

[0203] In the following description, a two-dimensional packing problem in which the shapes of items are represented by four-square tiles will be exemplified. The problem is set as follows.

[0204] First, the shape of the items is a four-grid puzzle, which includes four-grid puzzles rotated in units of 90 degrees. Second, the area in which the items are arranged is a rectangular area represented by width and height. Third, the goal of the problem is to arrange the elements of a given set of items (in other words, all items) in the rectangular area so that they do not overlap with each other. Note that here, for simplicity of description, it is assumed that rotation of the items is not allowed when arranging the items.

[0205] This combinatorial optimization problem can be treated similarly to an approximation problem, because the four-panel puzzle can be considered to be bitmapped. Therefore, in the following, the original combinatorial optimization problem will be described as an approximation problem.

[0206] Next, the specific input data of the combinatorial optimization problem will be described.

[0207] Fig.15 is a diagram showing an example of input data (part 1).

[0208] The input data includes information about the item set 300 and information about the arrangement area 400. The number of elements of the item set 300, in other words, the number of items to be arranged is 30. The size of the arrangement area 400 is width=12 and height=11.

[0209] Assume that the identification number of the item is represented by i. List each item in the item set 300 of the input data, and assign i=0, 1, 2, ... in order starting from the head of the list. In addition, the arrangement coordinates of the items in the arrangement area 400 are represented by (x, y). The x coordinate is the coordinate in the width direction. The y coordinate is the coordinate in the height direction. The origin is the upper left vertex of the arrangement area 400.

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

[0211] The item state generation unit 142 lists all coordinates (x, y) at which the item i can be arranged so as not to protrude from the arrangement area 400. In this case, the number of states of the item i is (area_width-item_width+1)*(area_height-item_height+1). The width of the arrangement area 400 is represented by area_width. The width of the item is represented by item_width. The height of the arrangement area 400 is represented by area_height. The height of the item is represented by item_height.

[0212] For example, in a square four-grid puzzle, the number of vertical pixels and horizontal pixels is two. Therefore, for an item represented by a square four-grid puzzle, (12-2+1)*(11-2+1)=110 state variables will be used. In the case where the number of state variables is too large, the item state generation unit 142 can adjust the number of state variables by performing random sparseness, etc. instead of enumerating all coordinates.

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

[0214] For based on Fig.15 The QUBO problem data generated by the input data, the QUBO solver 200 obtains, for example, the following solution.

[0215] Fig.16 is a diagram showing an example of a solution obtained from the QUBO solver (Part 1).

[0216] The solution output by the QUBO solver 200 is the value of each state variable of the state vector X and is a list of 0s and 1s. i,x,y =1 means that item i is arranged at the coordinate (x, y). Therefore, it can be shown that the subscripts i, x and y are extracted for the element with a value of 1 in the state vector X and the item is arranged. Layout diagrams 501, 502, 503, 504, 505, 506, 507 and 508 are obtained by visualizing eight solutions obtained from the QUBO solver 200. Layout diagrams 501 to 508 are examples in which 30 items included in the item set 300 are arranged in the layout area 400. The numerical values ​​described in the upper left corner of each layout diagram 501 to 508 are the values ​​obtained by substituting the value of the solution X into expression (7). When the value of expression (7) is 0, the corresponding solution satisfies all constraints.

[0217] 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 solution search unit 140 can repeatedly perform the search for a solution. For example, in the case where there is a constraint violation, the QUBO problem generation unit 144 changes the value of at least any one of the weighting coefficients W1, W2, and W3, and causes the QUBO solver 200 to re-execute the search for a solution. In the case where it is difficult to arrange all items in the current arrangement area, the item data conversion unit 141 can recreate the problem by increasing the width and height of the arrangement area.

[0218] In addition, when there is sufficient margin in the layout area after packing, the approximate problem solution finding unit 140 can create another packing problem by increasing the number of item sets, reducing the width of the layout area, reducing the height of the layout area, etc., and solve the other packing problem through the QUBO solver 200.

[0219] Note that Fig.15 In the case of the illustrated problem, 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 layout area 400 is 12×11=132. Therefore, the margin of the layout area 400 is 132-120=12.

[0220] Next, a case where the number of items is reduced and the size of the arrangement area is reduced will be exemplified.

[0221] Fig.17 is a diagram showing an example of input data (part 2).

[0222] The input data includes information about the item set 300a and information about the arrangement area 400a. The number of elements of the item set 300a, in other words, the number of items to be arranged is 21. The size of the arrangement area 400a is width = 11 and height = 8. In this case, the arrangement margin is 11×8-21×4=4.

[0223] For based on Fig.17 The QUBO problem data generated by the input data, the QUBO solver 200 obtains, for example, the following solution.

[0224] Fig.18 is a diagram showing an example of a solution obtained from the QUBO solver (Part 2).

[0225] Arrangement diagrams 601, 602, 603, 604, 605, 606, 607, 608, and 609 are obtained by visualizing nine solutions obtained from the QUBO solver 200. Arrangement diagrams 601 to 609 are examples in which 21 items included in the item set 300a are arranged in the arrangement area 400a.

[0226] Here, the evaluation function E2 focuses on two items. Therefore, the closed area of ​​one pixel created by three or more items is not counted in the objective function of expression (7). The closed area of ​​one pixel created by two items is counted. For example, since the closed area 606a of one pixel is counted in the solution corresponding to the arrangement diagram 606 among the nine solutions corresponding to the arrangement diagrams 601 to 609, the value of expression (7) becomes 1.

[0227] As described above, the calculation method of the combinatorial optimization problem performed by the data processing device 10 can be applied not only to the packaging problem but also to other problems such as the scheduling problem.

[0228] Fig.19 is a diagram showing an application example of a scheduling problem.

[0229] In the scheduling problem, the resources to be scheduled (such as personnel or equipment) are examples of items. In addition, the time frame (time domain) to which the resources are allocated is an example of the area in which the items are arranged. For example, as an example of the scheduling problem, the allocation plan of the working time of employees, the plan of the operation mode of the equipment in the manufacturing plant, etc. can be considered. The arrangement pattern of each resource is represented by a vector in the state space (in other words, the state vector).

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

[0231] Fig. 20 is a diagram showing an application example to a vehicle routing problem.

[0232] An example of a vehicle routing problem includes the problem of optimizing the routes of delivery trucks. In this case, a truck is an example of an item. Furthermore, a set of delivery routes to which trucks are assigned is an example of an area where items are placed. The assignment pattern for each truck for a delivery route is represented by a vector in state space (in other words, a state vector).

[0233] Similarly, in the vehicle routing problem, the data processing device 100 can calculate the 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 for the combination of the states of all items, the objective function including the sum of the evaluation values ​​of each pair of items indicated by the evaluation function as a cost term, and the QUBO solver 200 can find a solution based on the objective function.

[0234] As described above, the data processing device 100 can improve the efficiency of finding solutions to combinatorial optimization problems. For example, even a complex combinatorial optimization problem that seems difficult to formulate in the QUBO format can be expressed in the QUBO format, and the efficiency of finding solutions to the combinatorial optimization problem can be improved. In addition, the data processing device 100 can reduce the time used to find solutions to the combinatorial optimization problem.

[0235] Here, as described above, solving combinatorial optimization problems takes time. In the case of an exemplary packaging problem, when the number of items and the area where the items can be arranged increase, the number of arrangement methods to be considered increases explosively in combination. Therefore, it takes too much time to find a better solution. In addition, it can be expected that the QUBO solver 200 that performs QA or SA can find a solution to the combinatorial optimization problem that can be expressed by QUBO at high speed. However, QUBO has poor problem expression ability and is not easy to describe complex problems. In addition, even in the case where it can be described, the number of state variables used for problem expression may be too much. On the other hand, the number of state variables available in the QUBO solver 200 may be limited to about several thousand to tens of thousands. When the number of state variables used is large, the QUBO solver 200 may not be used to find a solution. In other words, it may be difficult to accurately express the shape of the item and the location where the item can be arranged by QUBO, or the number of state variables may be too large to be processed by the QUBO solver 200. Furthermore, for a novice user of the QUBO solver 200 , it is difficult to formulate a QUBO problem from scratch, and the QUBO solver 200 may not be used.

[0236] Therefore, the data processing device 100 uses the QUBO solver 200 to find a solution to the approximate problem in a short time and find a good initial solution. Next, the data processing device 100 can use the initial solution to shorten the time to solve the original complex combinatorial optimization problem without approximation.

[0237] In addition, the data processing device 100 can easily create QUBO problem data through simple processing of "generating a state set for each item" and "calculating an evaluation function for each combination of the states of two items", and can effectively support the formulation of the problem by the user. In addition, the data processing device 100 can thereby expand the usable range of the QUBO solver 200.

[0238] As described above, the data processing device 100 executes the following processing.

[0239] The processor 101 obtains information indicating a problem of arranging a plurality of items in a predetermined area, in other words, problem information. The processor 101 generates a plurality of states according to the positions where the items are arranged in the area based on the problem information for each of the plurality of items. The processor 101 specifies a plurality of pairs of two items included in the plurality of items. The processor 101 calculates an evaluation function indicating an evaluation value according to a combination of states of the two items in the specified plurality of pairs. The processor 101 generates an Ising-type objective function for a combination of states of the plurality of items, the Ising-type objective function including a cost term indicating the sum of evaluation values ​​of each pair of the plurality of item pairs indicated by the evaluation function. The processor 101 obtains a solution corresponding to the problem using a search unit that searches for a solution based on the objective function.

[0240] Therefore, the data processing device 100 can improve the efficiency of finding a solution. For example, the data processing device 100 can easily formulate a problem and effectively generate an objective function corresponding to the problem. In addition, the data processing device 100 can shorten the time from the formulation of the problem to obtaining a solution. The QUBO solver 200 is an example of a search unit. The QUBO solver 200 can be implemented as a dedicated processor that performs QA or SA, or can be implemented by a general-purpose processor such as the processor 101 that executes a program.

[0241] For example, in the generation of multiple states, the processor 101 can generate data representing the state of the items based on the coordinates and the presence or absence of rotation of each arrangement of the multiple items. Therefore, the data processing device 100 can effectively represent the change of the arrangement of the items for the area where the items are to be arranged.

[0242] In addition, in the calculation of the evaluation function, the processor 101 may calculate at least one of a first evaluation function indicating the size of the overlap of the two items and a second evaluation function indicating the size of the closed area formed by the two items. Therefore, the data processing device 100 can appropriately represent the conditions imposed in the packing problem, the scheduling problem, etc. in the objective function. The evaluation function E1 is an example of the first evaluation function. The evaluation function E2 is an example of the second evaluation function. Note that the processor 101 may use an evaluation function other than the first evaluation function and the second evaluation function, or may use three or more evaluation functions.

[0243] In addition, the processor 101 may calculate a plurality of evaluation functions in the calculation of the evaluation function. In this case, in the generation of the objective function, the processor 101 may generate an objective function including a linear combination of a plurality of cost items corresponding to the plurality of evaluation functions. Therefore, the data processing device 100 may appropriately represent a plurality of conditions imposed in a packing problem, a scheduling problem, etc. in the objective function.

[0244] In addition, the objective function generated by the processor 101 may include a constraint term indicating that an item can take a state at the same time. Specifically, the objective function is represented by a linear combination of the constraint term and the cost term. Therefore, the data processing device 100 may make it difficult for the search unit to obtain an infeasible solution in which one item takes multiple states at the same time. In other words, the data processing device 100 can facilitate the search unit to obtain a feasible solution.

[0245] Furthermore, the problem information may include a bitmap indicating each of a plurality of items and regions. Therefore, the data processing device 100 can efficiently perform state generation for each item and calculation of an evaluation function.

[0246] In addition, the processor 101 can generate question information by bit-mapping the shapes of multiple items and the shapes of the regions in another question that is the origin of the question. In this case, the other question can be said to be the original question. The question obtained by bit-mapping the shapes of multiple items and the shapes of the regions in the original question can be said to be an approximate question. When a solution corresponding to the question (approximate question) is obtained from the search unit, the processor 101 can generate an initial solution to another question (original question) based on the solution, and use the initial solution to find a solution to another question (original question).

[0247] Therefore, the data processing apparatus 100 can give a better initial solution to another problem (in other words, the original problem), and can shorten the time for the solution finding process for the original problem.

[0248] Note that the information processing of the first embodiment can be realized by causing the processing unit 12 to execute a program. Furthermore, 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 the computer-readable recording medium 113.

[0249] For example, the program can be distributed by distributing the recording medium 113 having the program recorded thereon. In addition, the program can be stored in another computer and distributed via a network. For example, the computer can store (install) the program recorded in the recording medium 113 or received from another computer in a storage device such as the RAM 102 or the HDD 103, and read the program from the storage device to execute the program.

Claims

1. A non-transitory computer-readable recording medium storing a program for causing a computer to execute a process, the process comprising: acquiring information indicating a problem of arranging a plurality of items in a predetermined area; generating, for each of the plurality of items, a plurality of states according to a position where the item is arranged in the zone based on the information; specifying 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 specified plurality of pairs; generating an Ising-type objective function for a combination of the states of the plurality of items, the Ising-type objective function including a cost term indicating a sum of evaluation values ​​of each of the plurality of pairs indicated by the evaluation function; as well as A solution corresponding to the problem is acquired by using a search unit that searches for the solution based on the objective function.

2. The non-transitory computer-readable recording medium of claim 1, the processing further comprising: In the generation of the plurality of states, data representing the state by the coordinates at which each of the plurality of items is arranged and the presence or absence of rotation is generated.

3. The non-transitory computer-readable recording medium of claim 1 , the processing further comprising: In the calculation of the evaluation function, a first evaluation function indicating the size of the overlap of the two items or a second evaluation function indicating the size of a closed area formed by the two items, or any combination of the first evaluation function or the second evaluation function is calculated.

4. The non-transitory computer readable recording medium of claim 1 , the processing further comprising: In the calculation of the evaluation function, a plurality of evaluation functions are calculated; as well as In the generating of the objective function, the objective function including a linear combination of a plurality of cost terms corresponding to the plurality of evaluation functions is generated.

5. The non-transitory computer-readable recording medium according to claim 1, wherein: The objective function includes a constraint term indicating that an item can take one state at a time.

6. The non-transitory computer-readable recording medium according to claim 1, wherein: The information includes a bitmap indicating each of the plurality of items and the area.

7. The non-transitory computer readable recording medium of claim 6, the processing further comprising: generating the information by bitmapping the shapes of the plurality of items and the shape of the region in another problem which is the origin of the problem; as well as When the solution corresponding to the problem is acquired, an initial solution to the other problem is generated based on the solution, and a solution to the other problem is found by using the initial solution.

8. A data processing method implemented by a computer, the data processing method comprising: acquiring information indicating a problem of arranging a plurality of items in a predetermined area; generating, for each of the plurality of items, a plurality of states of a location where the item is arranged in the zone based on the information; specifying 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 specified plurality of pairs; generating an Ising-type objective function for a combination of the states of the plurality of items, the Ising-type objective function including a cost term indicating a sum of evaluation values ​​of each of the plurality of pairs indicated by the evaluation function; as well as A solution corresponding to the problem is acquired by using a search unit that searches for the solution based on the objective function.

9. A data processing device, comprising: a storage unit configured to store information indicating a problem of arranging a plurality of items in a predetermined area; A processing unit configured to perform a process comprising: generating, for each of the plurality of items, a plurality of states according to a position where the item is arranged in the zone based on the information; specifying 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 specified plurality of pairs; generating an Ising-type objective function for a combination of the states of the plurality of items, the Ising-type objective function including a cost term indicating a sum of evaluation values ​​of each of the plurality of pairs indicated by the evaluation function; and A solution corresponding to the problem is acquired by using a search unit that searches for the solution based on the objective function.

Citation Information

Patent Citations

  • Quantum procedures for approximate optimization by quenching

    US20200202249A1

  • Initializing optimization solvers

    US20220164644A1