Optimization device, optimization method, and program

The optimization apparatus addresses the challenge of determining multiple production schedules by using separate units for monthly and processing plans, ensuring efficient and effective scheduling in manufacturing plants.

JP2026114457APending Publication Date: 2026-07-08FUJI ELECTRIC CO LTD

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
FUJI ELECTRIC CO LTD
Filing Date
2024-12-26
Publication Date
2026-07-08

AI Technical Summary

Technical Problem

Existing combinatorial optimization methods struggle to efficiently determine multiple types of production schedules in manufacturing plants, where one schedule may serve as a prerequisite for another, leading to computational difficulties or unsolvable problems when formulating a single optimization problem for both.

Method used

An optimization apparatus that includes a first optimization unit for calculating a monthly production plan, a second optimization unit for determining a processing plan based on the monthly plan, and an evaluation unit to identify the best solutions using predetermined criteria, effectively solving both types of combinatorial optimization problems.

Benefits of technology

This approach allows for the simultaneous formulation of monthly production and processing plans in manufacturing plants, optimizing both schedules efficiently and reducing computational complexity.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2026114457000001_ABST
    Figure 2026114457000001_ABST
Patent Text Reader

Abstract

This technology provides the ability to solve multiple types of optimization problems. [Solution] An optimization apparatus according to one aspect of the present disclosure includes: a first optimization unit that calculates a first solution representing the solution of a first type of combinatorial optimization problem based on first data; a second optimization unit that calculates a second solution representing the solution of a second type of combinatorial optimization problem based on second data and the first solution; an evaluation unit that evaluates the first solution and the second solution according to predetermined criteria; and an output unit that outputs the first solution and the second solution with the highest index value representing the result of the evaluation among a plurality of the first solution and the second solution.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] This disclosure relates to an optimization apparatus, an optimization method, and a program. [Background technology]

[0002] A type of optimization problem known as a combinatorial optimization problem is known (for example, Patent Documents 1-3). Combinatorial optimization problems are applied in various fields, for example, when planning production schedules for products in a manufacturing plant. [Prior art documents] [Patent Documents]

[0003] [Patent Document 1] Patent No. 7148098 [Patent Document 2] Patent No. 7496952 [Patent Document 3] Japanese Patent Publication No. 2014-92535 [Overview of the project] [Problems that the invention aims to solve]

[0004] However, there are various types of production schedules for products in a manufacturing plant, and the type of combinatorial optimization problem required to determine these schedules may differ depending on the type of production schedule. Furthermore, one production schedule may serve as a prerequisite for another. Therefore, when seeking a production schedule that presupposes another, the combinatorial optimization problem used to determine that particular production schedule may not provide a solution.

[0005] This disclosure is made in view of the above points and aims to provide a technology that can solve multiple types of optimization problems. [Means for solving the problem]

[0006] An optimization apparatus according to one aspect of the present disclosure includes: a first optimization unit that calculates a first solution representing a solution to a first type of combinatorial optimization problem based on first data; a second optimization unit that calculates a second solution representing a solution to a second type of combinatorial optimization problem based on second data and the first solution; an evaluation unit that evaluates the first solution and the second solution according to predetermined criteria; and an output unit that outputs the first solution and the second solution with the highest index value representing the result of the evaluation among a plurality of the first solutions and the second solutions. [Effects of the Invention]

[0007] A technique is provided that can solve multiple types of optimization problems. [Brief explanation of the drawing]

[0008] [Figure 1] This figure shows an example of the hardware configuration of the optimization device according to this embodiment. [Figure 2] This figure shows an example of the functional configuration of the optimization device according to this embodiment. [Figure 3] This figure shows an example of order information. [Figure 4] This figure shows an example of product information. [Figure 5] This figure shows an example of equipment information. [Figure 6] This flowchart shows an example of the optimization process according to this embodiment. [Figure 7] This flowchart shows an example of the preliminary optimization process according to this embodiment. [Figure 8] This flowchart shows an example of the subsequent optimization process according to this embodiment. [Modes for carrying out the invention]

[0009] One embodiment of the present invention will be described in detail below with reference to the drawings.

[0010] <Production schedule at the manufacturing plant> As an example, consider the case where the production schedule for products in a manufacturing plant is determined by solving a combinatorial optimization problem.

[0011] Various types of production schedules exist for products in manufacturing plants, and the type of combinatorial optimization problem required to determine these schedules may differ depending on the type of schedule. Furthermore, one production schedule may serve as a prerequisite for determining other production schedules.

[0012] For example, a production schedule for products in a manufacturing plant consists of a monthly production plan, which represents the daily production quantity plan, and a processing plan, which represents the daily processing steps for the products. The processing plan is formulated based on the monthly production plan. The monthly production plan is obtained by solving a combinatorial optimization problem, such as the knapsack problem or the allocation problem, while the processing plan is obtained by solving a combinatorial optimization problem, such as the job shop scheduling problem or the flow shop scheduling problem. Formulating a combinatorial optimization problem means creating an instance of that combinatorial optimization problem.

[0013] Therefore, for example, if we use the monthly production plan obtained in the preceding combinatorial optimization problem as a basis to find the processing plan in the subsequent combinatorial optimization problem, we may not be able to find a solution in the subsequent combinatorial optimization problem. On the other hand, if we formulate a single combinatorial optimization problem that can find both the monthly production plan and the processing plan in order to avoid this, the scale of the problem may become too large, making it computationally difficult to solve.

[0014] Therefore, in the following, we will describe an optimization apparatus 10 that, as an example, determines the production schedule of a production plant, first by determining the monthly production plan using the combinatorial optimization problem described earlier, and then by determining the processing plan using the combinatorial optimization problem described later, based on that monthly production plan. In the following, the combinatorial optimization problem will also be simply referred to as the "optimization problem." The production schedule may also be called, for example, the "production plan," "manufacturing schedule," or "manufacturing plan."

[0015] However, the example of determining a production schedule in a production plant is just one illustration, and the optimization apparatus 10 according to this embodiment can be similarly applied to solving a combinatorial optimization problem in the preceding stage and a subsequent combinatorial optimization problem that is based on its solution. More generally, it can be similarly applied to solving multiple types of combinatorial optimization problems, including one combinatorial optimization problem and another combinatorial optimization problem that is based on its solution.

[0016] <Example of hardware configuration for optimization device 10> Figure 1 shows an example of the hardware configuration of the optimization device 10 according to this embodiment. As shown in Figure 1, the optimization device 10 according to this embodiment includes an input device 101, a display device 102, an external I / F 103, a communication I / F 104, a RAM (Random Access Memory) 105, a ROM (Read Only Memory) 106, an auxiliary storage device 107, and a processor 108. Each of these hardware components is connected to each other via a bus 109 so as to be able to communicate.

[0017] The input device 101 is, for example, a keyboard, mouse, touch panel, or physical button. The display device 102 is, for example, a display or display panel. The optimization device 10 does not necessarily have to have at least one of the input device 101 and the display device 102.

[0018] External I / F 103 is an interface with external devices such as recording media 103a. Examples of recording media 103a include CD (Compact Disc), DVD (Digital Versatile Disk), SD memory card (Secure Digital memory card), and USB (Universal Serial Bus) memory card.

[0019] The communication interface 104 is an interface for connecting to a communication network. The RAM 105 is a volatile semiconductor memory (storage device) that temporarily holds programs and data. The ROM 106 is a non-volatile semiconductor memory (storage device) that can retain programs and data even when the power is turned off. The auxiliary storage device 107 is a non-volatile storage device such as an HDD (Hard Disk Drive), SSD (Solid State Drive), or flash memory. The processor 108 is a processing unit such as a CPU (Central Processing Unit) or GPU (Graphics Processing Unit).

[0020] Note that the hardware configuration shown in Figure 1 is just one example, and the hardware configuration of the optimization device 10 is not limited to this. For example, the optimization device 10 may have multiple auxiliary storage devices 107 or multiple processors 108, it may not have some of the hardware shown, or it may have various other hardware components besides the hardware shown.

[0021] <Example of Functional Configuration of Optimization Device 10> Figure 2 shows an example of the functional configuration of the optimization device 10 according to this embodiment. As shown in Figure 2, the optimization device 10 according to this embodiment has an input unit 201, a pre-optimization unit 202, a post-optimization unit 203, an evaluation unit 204, and an output unit 205. Each of these units is realized, for example, by a process in which one or more programs installed in the optimization device 10 are executed by a processor 108 or the like.

[0022] The input unit 201 inputs the input data provided to the optimization device 10. Here, input data refers to data containing information necessary to determine the monthly production plan and processing plan. Input data includes, for example, order information, product information, and equipment information. Order information includes the production quantity for each product required for the month targeted by the monthly production plan and its delivery date. Product information includes the processing process (hereinafter also simply referred to as "process") for processing the product and the time required for that process. Equipment information includes whether or not the equipment used to perform the process is malfunctioning and the maintenance plan. Specific examples of this order information, product information, and equipment information will be described later. Note that the processing process is just an example; for example, it could be a "production process" or a "manufacturing process," etc.

[0023] The preliminary optimization unit 202 formulates the preliminary optimization problem (hereinafter also referred to as the "preliminary optimization problem") and calculates a solution to the preliminary optimization problem based on at least some of the information contained in the input data input by the input unit 201. At this time, the preliminary optimization unit 202 calculates a solution to the preliminary optimization problem based on the solutions to the preliminary optimization problems obtained so far and the information obtained when a solution to the subsequent optimization problem based on that solution is obtained. That is, for example, the preliminary optimization unit 202 formulates a preliminary optimization problem for determining the monthly production plan based on the order information contained in the input data input by the input unit 201, the previous monthly production plan, and the information obtained when a processing plan based on that monthly production plan is obtained, and then calculates the monthly production plan as its solution. Generally, the best solution to the preliminary optimization problem is calculated as the monthly production plan, so below, the solution to the preliminary optimization problem will also be referred to as the "preliminary best solution".

[0024] The subsequent optimization unit 203 formulates the subsequent optimization problem (hereinafter also referred to as the "subsequent optimization problem") and calculates a solution to the subsequent optimization problem based on at least some of the information contained in the input data input by the input unit 201 and the solution calculated by the preceding optimization unit 202. That is, for example, the subsequent optimization unit 203 formulates a subsequent optimization problem for determining the processing plan based on the product information and equipment information contained in the input data input by the input unit 201 and the monthly production plan calculated by the preceding optimization unit 202, and calculates the processing plan as its solution. Generally, the best solution to the subsequent optimization problem is calculated as the processing plan, so below, the solution to the subsequent optimization problem will also be referred to as the "subsequent best solution".

[0025] The evaluation unit 204 calculates an evaluation index value (hereinafter also referred to as the "overall evaluation value") which evaluates the quality of the best pre-stage solution calculated by the pre-stage optimization unit 202 and the best post-stage solution calculated by the post-stage optimization unit 203 based on the pre-stage best solution, according to a predetermined standard. That is, for example, the evaluation unit 204 calculates an overall evaluation value of the monthly production plan calculated by the pre-stage optimization unit 202 and the processing plan calculated by the post-stage optimization unit 203 based on the monthly production plan.

[0026] The output unit 205 identifies the best pre-stage solution and the best post-stage solution calculated based on the best pre-stage solution that have the highest overall evaluation value, and then outputs output data containing the identified best pre-stage solution and best post-stage solution to a predetermined output destination. In other words, the output unit 205 identifies the monthly production plan and processing plan with the highest overall evaluation value among the monthly production plan and the processing plan calculated based on it, and then outputs output data containing the identified monthly production plan and processing plan to a predetermined output destination. The predetermined output destination is not limited to a specific destination, but examples include a display device 102 such as a display, a storage area such as an auxiliary storage device 107, a program stored in the storage area such as an auxiliary storage device 107, and other devices that are communicatively connected to the optimization device 10.

[0027] ≪Example of order information≫ Figure 3 shows an example of order information. As shown in Figure 3, the order information includes the number of units ordered and the delivery date for each product. In other words, the order information consists of (product, number of units ordered, delivery date). The delivery date is the date by which production of the ordered number of products must be completed. If the delivery date is next month, it means that production of the ordered number of products must be completed by the end of the current month. For example, the order information shown in Figure 3 is for January 2024, so it means that 11 units of product E should be produced by January 31, 2024.

[0028] ≪Example of product information≫ Figure 4 shows an example of product information. As shown in Figure 4, the product information includes the processing time required to produce one unit of that product. In other words, the product information consists of (product, {(process, processing time)}). Note that {x} means that there is one or more x values.

[0029] Here, the product information shown in Figure 4 indicates that there are five processing steps, and that process 3 consists of steps 3-1 to 3-3. When producing a certain product, processes 1 to 5 are executed in order, but steps that are not necessary for the production of that product are marked with "-". Also, any one of processes 3-1 to 3-3 only needs to be executed.

[0030] For example, when producing product B, process 5 is not required, and the following steps must be executed in order: process 1 → process 2 → process 3-1, process 3-2, or process 3-3 → process 4. Furthermore, the total processing time when process 3-1 is executed is 4+8+90+20=122, when process 3-2 is executed it is 4+8+100+20=132, and when process 3-3 is executed it is 4+8+110+20=142.

[0031] ≪Example of equipment information≫ Figure 5 shows an example of equipment information. As shown in Figure 5, the equipment information includes, for each process, whether the equipment performing that process is malfunctioning and the maintenance plan for that equipment. In other words, the equipment information consists of (process, malfunction status, maintenance plan). Note that "○" means there is no malfunction, and "×" means there is a malfunction. Also, the maintenance plan "during long holiday" means that maintenance will be performed during the production plant's long holiday.

[0032] <Example of optimization process> Figure 6 is a flowchart showing an example of the optimization process according to this embodiment. Hereinafter, the optimization device 10 is assumed to be provided with input data including order information, product information, and equipment information.

[0033] The preliminary optimization unit 202 formulates the preliminary optimization problem (step S101). The preliminary optimization unit 202 only needs to formulate a typical combinatorial optimization problem for determining the monthly production plan. The combinatorial optimization problem for determining the monthly production plan can be formulated as, for example, the knapsack problem or the allocation problem.

[0034] For example, since it is generally preferable for the daily production volume to be leveled in a monthly production plan, the pre-optimization unit 202 should formulate a combinatorial optimization problem that minimizes the objective function F1 shown below. Here, X is a matrix in which, for example, each working day of the production plant in the current month is the row and each product is the column, with the (i,j) element representing the production volume of product j on working day i. Also, I is the number of working days and J is the number of products. Furthermore, X i Let |X be the row vector of the i-th row. i Let | be the production quantity on working day i.

[0035] Objective function: F1(X) = f1(X) + λ1(X) Here, f1(X) = max{|X1|,···,|X I |}-min{|X1|,···,|X I|}. Also, λ1(X) is a penalty term. Various functions can be considered as the penalty term λ1(X). For example, taking c as the predetermined maximum production quantity, |X i |>c, it can be considered to be the number of i satisfying this condition × 100. This means that if there are days exceeding the maximum production quantity per day, the greater the number of such days, the larger the penalty imposed. Note that 100 is a coefficient for adjusting the penalty scale.

[0036] The post-optimization unit 203 formulates the post-optimization problem (step S102). The post-optimization unit 203 may formulate a typical combinatorial optimization problem for obtaining a processing plan. The combinatorial optimization problem for obtaining a processing plan is formulated as a job shop scheduling problem, a flow shop scheduling problem, etc.

[0037] For example, generally, since it is preferable that the operation completion time for each day is within a predetermined time (e.g., within a predetermined working time) for the processing plan, the post-optimization unit 203 may formulate a combinatorial optimization problem that minimizes the objective function F2 shown below under the constraint conditions shown below. Let Y = (Y1, ···, Y I ), then Y i is, for example, a matrix with elements (k, l) being 1 if process l is carried out on equipment k for each product with a production quantity of 1 or more in X i (n) and 0 otherwise, listing the processes required for the production of each product as columns for each equipment that performs a predetermined process.

[0038] Objective function: F2(Y) = f2(Y) + λ2(Y) Constraint conditions: Each equipment can only perform predetermined processes, and each equipment cannot perform processes of multiple products simultaneously.

[0039] Here, f2(Y) = f 21 (Y1) + ··· + f 2I (Y I )(However, f 2i (Y i) is the work completion time on working day i). Also, λ²(Y) is the penalty term. Various functions can be considered for the penalty term λ²(Y), but for example, the predetermined working time on working day i is d i as, f 2i (Y i )-d i If >0 then λ 2i (Y i )=(f2(Y i )-d i ) × 10, otherwise λ 2i (Y i λ = 0 2i (Y i Using ), λ²(Y) = λ 21 (Y1)+···+λ 2I (Y I This could be considered. This means that if overtime is worked, the more overtime hours worked, the greater the penalty. Note that 10 is a coefficient to adjust the scale of the penalty.

[0040] Here, we have formulated a single post-optimization problem to determine the processing plan for I working days, but for example, we could also formulate one separate post-optimization problem to determine the processing plan for each working day.

[0041] The input unit 201 inputs the given input data (step S103).

[0042] Hereafter, the number of times steps S104 to S108 are executed will be represented by the variable n, and this variable n will be referred to as "iteration n". Note that iterations start from 1.

[0043] The pre-optimization unit 202 inputs the solutions to the pre-optimization problems in iterations 1 to n-1, the information obtained when the solutions to the subsequent optimization problems based on those solutions are obtained, and the order information included in the input data entered in step S103 above as input information for the pre-optimization problem in iteration n (step S104). However, if n=1, there is no information obtained when the solutions to the pre-optimization problems in iterations 1 to n-1 and the solutions to the subsequent optimization problems based on those solutions are obtained. In this case, the pre-optimization unit 202 inputs only the order information included in the input data entered in step S103 above as input information for the pre-optimization problem in iteration 1.

[0044] The pre-optimization unit 202 calculates the solution to the pre-optimization problem in iteration n based on the input information for the pre-optimization problem in iteration n (step S105). Details of the pre-optimization process for calculating the solution to the pre-optimization problem will be described later. Hereinafter, the best pre-optimization solution in iteration n is X. (n) We will represent it as follows. Also, X (n) The row vector of the i-th row is X i (n) a1 (n) :=f1(X (n) ), b1 (n) :=λ1(X (n) )

[0045] The subsequent optimization unit 203 uses the product information and equipment information included in the input data entered in step S103 above, and the previous best solution X calculated in step S105 above. (n) The values ​​are input as input information for the subsequent optimization problem in iteration n (step S106).

[0046] The subsequent optimization unit 203 calculates the solution to the subsequent optimization problem based on the input information for the subsequent optimization problem in iteration n (step S107). Details of the subsequent optimization process for calculating the solution to the subsequent optimization problem will be described later. Hereinafter, the best subsequent solution in iteration n is Y. (n) =(Y1(n) ,···,Y I (n) We will represent it as ). Also, a2 (n) :=f2(Y (n) ), b2 (n) :=λ²(Y (n) ) However, if there is no solution in the subsequent optimization problem in iteration n, a2 (n) and b2 (n) Set a sufficiently large value for this.

[0047] The evaluation unit 204 evaluates the best preliminary solution X calculated in step S105 above. (n) And the best solution Y calculated in step S107 above. (n) The overall evaluation value for iteration n is calculated (step S108). (n) Let's assume an overall rating of S. (n) There are various ways to calculate S, for example, (n) =-(b1 (n) +b2 (n) ) is a possible solution. In addition to this, for example, S (n) =-(a1 (n) +a2 (n) +H1 (n) +b2 (n) ) may be calculated by S (n) =-b2 (n) It may be calculated by this method, or by other methods.

[0048] The output unit 205 determines whether or not to terminate the calculation of the solutions to the preceding and succeeding optimization problems (step S109). For example, the output unit 205 may determine to terminate the solution calculation if a predetermined first termination condition is met, and not to terminate the solution calculation otherwise. A predetermined first termination condition may be, for example, if the number of iterations n exceeds a predetermined number N, the overall evaluation value S (n) If the value exceeds a predetermined threshold, the best solution X in the previous stage is called. (n) and the best solution Y in the subsequent stage (n) Examples include cases where both convergences occur.

[0049] If it is determined in step S109 that the calculation of solutions for the pre-optimization problem and the post-optimization problem has not been completed, the output unit 205 returns to step S104 with n←n+1. As a result, steps S104 to S108 are executed again.

[0050] On the other hand, if it is determined in step S109 above that the calculation of the solutions to the pre-optimization problem and the post-optimization problem is complete, the output unit 205 outputs the best pre-optimization solution X calculated so far. (n) and the best solution Y in the subsequent stage (n) Of these, the overall rating is S (n) The best preliminary solution X (n) and the best solution Y in the subsequent stage (n) The output unit 205 identifies the overall evaluation value S. (n) The best preliminary solution X is the one with the highest score. (n) and the best solution Y in the subsequent stage (n) This identifies the overall evaluation value S. (n) The best preliminary solution X is the one with the highest score. (n) and the best solution Y in the subsequent stage (n) This is identified as the optimal solution.

[0051] The output unit 205 outputs the optimal solution X identified in step S110 above. (n) and Y (n) The output data containing is output to a predetermined output destination (step S111). This results in the optimal solution X (n) and Y (n) Monthly production plans and processing plans are obtained as a result.

[0052] ≪Example of preliminary optimization process≫ Figure 7 is a flowchart showing an example of the pre-optimization process according to this embodiment. The pre-optimization process in iteration n will be described below.

[0053] The preliminary optimization unit 202 finds M initial solutions X mGenerate (m = 1, ···, M) (Step S201). At this time, when n ≥ 2, the previous optimization unit 202 uses the previous best solutions X (1) , ···, X (n-1) included to generate M initial solutions X m (m = 1, ···, M). Hereinafter, for simplicity, X 1 = X (1) , ···, X n-1 = X (n-1) , and X n , ···, X M are assumed to be randomly generated. Note that M is assumed to be a value larger than the upper limit value N of iteration n. Also, hereinafter, X m will be referred to as a solution candidate.

[0054] The previous optimization unit 202 updates the solution candidates X m (m = 1, ···, M) (Step S202). Note that the previous optimization unit 202 may use any known method as a method for updating the solution candidates X m (m = 1, ···, M). For example, the previous optimization unit 202 updates the position and velocity using the private best and the global best in the same way as the method called particle swarm optimization, thereby updating the solution candidates X m (m = 1, ···, M), or the solution candidates X m (m = 1, ···, M) may be updated by other methods.

[0055] The previous optimization unit 202 calculates the objective function value of the updated solution candidates X m (m = 1, ···, M) in Step S202 above (Step S203). That is, the previous optimization unit 202 calculates the objective function value of the solution candidates X m for m = 1, ···, M. At this time, the previous optimization unit 202 calculates F1(X m ) + a2 (m) + b2 (m) as the objective function value for m = 1, ···, n - 1, and calculates F1(X m ) as the objective function value for m = n, ···, M. Thus, the previous best solution X(1) ,···,X (n-1) Solution candidate X corresponding to each 1 ,···,X n-1 When calculating the objective function value of the preceding best solution X, (n) The corresponding best subsequent solution Y (n) The objective function value obtained when (i.e., F2(Y)) (n) )=a2 (n) +b2 (n) ) to F1(X m This is added to the previous best solution X. (1) ,···,X (n-1) Taking this into consideration, a new best preliminary solution X (n) This makes it possible to search for it.

[0056] The preliminary optimization unit 202 determines whether or not to terminate the updating of candidate solutions and the calculation of the objective function value (step S204). For example, the preliminary optimization unit 202 may determine to terminate the updating of candidate solutions and the calculation of the objective function value if a predetermined second termination condition is met, and not to terminate the updating of candidate solutions and the calculation of the objective function value otherwise. Examples of the predetermined second termination condition include when the number of iterations of steps S202 to S203 exceeds a predetermined threshold, when the objective function value relative to the global best falls below a predetermined threshold, or when the objective function value relative to the global best converges.

[0057] The preliminary optimization unit 202 determines the candidate solution X m Among the (m=1,···,M) candidates for the solution X with the best objective function value, m (That is, the candidate solution X with the smallest objective function value) m ) is the best solution X (n) Output as follows (step S205).

[0058] <<Example of post-processing optimization>> Figure 8 is a flowchart showing an example of the post-processing step according to this embodiment. The post-processing step in iteration n will be described below.

[0059] The subsequent optimization unit 203 generates M' initial solutions Y m (m=1,···,M') is generated (step S301). The subsequent optimization unit 203 generates, for example, M' initial solutions Y m We just need to randomly generate (m=1,···,M'). Below, Y m We will call these candidate solutions.

[0060] The subsequent optimization unit 203 generates a candidate solution Y m The (m=1,···,M') is updated (step S302). The subsequent optimization unit 203 then selects the candidate solution Y. m Any known method can be used to update (m=1,···,M'). For example, the subsequent optimization unit 203 updates the position and velocity of candidate solution Y by utilizing private best and global best, similar to a method called particle swarm optimization. m You can update (m=1,···,M'), or use other methods to find candidate solution Y m (m=1,···,M') may be updated.

[0061] The subsequent optimization unit 203 updates the candidate solution Y in step S302 above. m The objective function value for (m=1,···,M') is calculated (step S303). That is, the subsequent optimization unit 203 calculates the candidate solution Y for m=1,···,M'. m The objective function value F2(Y m Calculate ).

[0062] The subsequent optimization unit 203 determines whether or not to terminate the updating of candidate solutions and the calculation of the objective function value (step S304). For example, the subsequent optimization unit 203 may determine to terminate the updating of candidate solutions and the calculation of the objective function value if a predetermined third termination condition is met, and not to terminate the updating of candidate solutions and the calculation of the objective function value otherwise. Examples of the predetermined third termination condition include when the number of iterations of steps S302 to S303 exceeds a predetermined threshold, when the objective function value relative to the global best falls below a predetermined threshold, or when the objective function value relative to the global best converges.

[0063] The subsequent optimization unit 203 generates a candidate solution Y m Among the (m=1,···,M') solution candidates, Y has the best objective function value. m (That is, the candidate solution Y with the smallest objective function value) m ) is the best solution Y (n) Output as follows (step S305).

[0064] <Summary> As described above, the optimization device 10 according to this embodiment can solve one type of combinatorial optimization problem and another type of combinatorial optimization problem that is based on the solution to that combinatorial optimization problem. For this reason, the optimization device 10 according to this embodiment makes it possible to simultaneously formulate, for example, a monthly production plan that represents the daily production quantity plan at a production plant and a processing plan that represents the daily processing steps for products based on that monthly production plan.

[0065] The present invention is not limited to the embodiments specifically disclosed above, and various modifications, changes, and combinations with known technologies are possible as long as they do not deviate from the spirit described in the claims. [Explanation of symbols]

[0066] 10 Optimization device 101 Input Device 102 Display device 103 External I / F 103a Recording medium 104 Communication I / F 105 RAM 106 ROM 107 Auxiliary storage 108 processors 109 Bus 201 Input section 202 Pre-optimization section 203 Post-stage optimization unit 204 Evaluation Department 205 Output section

Claims

1. A first optimization unit calculates a first solution representing a solution to a first type of combinatorial optimization problem based on first data, A second optimization unit calculates a second solution representing a solution to a second type of combinatorial optimization problem based on the second data and the first solution, An evaluation unit that evaluates the first solution and the second solution according to predetermined criteria, An output unit outputs the first solution and the second solution among a plurality of the first solutions and the second solution which have the highest index value representing the result of the evaluation, An optimization device having the following features.

2. The optimization device performs a first repetition, which represents the repetition of the calculation of the first solution by the first optimization unit, the calculation of the second solution by the second optimization unit, and the evaluation by the evaluation unit, until a predetermined first termination condition is met. The first optimization unit is, The optimization apparatus according to claim 1, which calculates the first solution in the current first iteration based on the first data and the first solution calculated in previous first iterations.

3. The first optimization unit is, The optimization apparatus according to claim 2, wherein the first solution in the current first iteration is calculated by performing a second iteration, which represents the repetition of updating the solution candidates and calculating the first objective function value for the solution candidates, using the first solution calculated in the previous first iteration and a randomly generated solution as solution candidates, until a predetermined second termination condition is met.

4. The first optimization unit is, The optimization apparatus according to claim 3, which calculates a first objective function value for a candidate solution corresponding to the first solution calculated in the first iteration, based on information about the second solution calculated in the first iteration so far.

5. The information regarding the second solution calculated in the first iteration so far is the second objective function value and the second penalty at the time the second solution was calculated. The first optimization unit is, The optimization apparatus according to claim 4, wherein the second objective function value and the second penalty obtained when the second solution is calculated are added to the first objective function value for the solution candidate corresponding to the first solution calculated in the previous first iteration.

6. The first solution is a production plan representing the planned daily production quantity of the product at the production plant, and the second solution is a processing plan representing the planned daily processing steps for the product at the production plant. The optimization apparatus according to any one of claims 1 to 5, wherein the first data includes order information for the product, and the second data includes product information representing the processing steps necessary for the production of the product and equipment information representing the presence or absence of malfunctions and maintenance plans for the equipment that performs the processing steps.

7. A first optimization procedure that calculates a first solution representing a solution to a first type of combinatorial optimization problem based on first data, A second optimization procedure for calculating a second solution representing a solution to a second type of combinatorial optimization problem based on second data and the first solution, An evaluation procedure for evaluating the first solution and the second solution according to predetermined criteria, An output procedure that outputs the first solution and the second solution with the highest index value representing the result of the evaluation among a plurality of the first solution and the second solution, An optimization method performed by a computer.

8. A first optimization procedure that calculates a first solution representing a solution to a first type of combinatorial optimization problem based on first data, A second optimization procedure for calculating a second solution representing a solution to a second type of combinatorial optimization problem based on second data and the first solution, An evaluation procedure for evaluating the first solution and the second solution according to predetermined criteria, An output procedure that outputs the first solution and the second solution with the highest index value representing the result of the evaluation among a plurality of the first solution and the second solution, A program that causes a computer to execute something.