Device for supporting the construction of a plan optimization system and method for supporting the construction of a plan optimization system

The planning optimization system construction support device facilitates the development of a system that efficiently solves complex optimization problems by using a template-based method, addressing computation time and development efficiency challenges.

JP7837287B2Active Publication Date: 2026-03-30HITACHI LTD
View PDF 7 Cites 0 Cited by

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Filing Date
2023-01-18
Publication Date
2026-03-30

AI Technical Summary

Technical Problem

Existing planning optimization systems face challenges in developing plans for complex optimization problems within a practical timeframe due to increased computation time when dealing with large numbers of decision variables and complex constraints, and reliance on past assets can hinder development efficiency.

Method used

A planning optimization system construction support device that includes a storage unit for optimization problem information, planned data, and a template for source code, with a processing unit that generates source code by inserting information into the template, allowing for the development of a system capable of solving complex optimization problems without relying on past assets.

Benefits of technology

Enables the efficient development of a planning optimization system that can easily solve complex optimization problems, reducing computation time and development effort by utilizing a template-based approach.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007837287000001
    Figure 0007837287000001
  • Figure 0007837287000002
    Figure 0007837287000002
  • Figure 0007837287000003
    Figure 0007837287000003
Patent Text Reader

Abstract

To develop a plan optimization system capable of easily solving a complicate optimization problem without using a past asset.SOLUTION: A storage unit 120 stores an optimization problem description table indicating an optimization problem for planning a plan at a plan optimization system 300, a data table to be planned indicating a value of a constant as a fixed element in the optimization problem, and a template as a model of a source code of the plan optimization system. A processing unit 130 inserts information based on the optimization problem description table and the data table to be planned to generate the source code of the plan optimization system.SELECTED DRAWING: Figure 1
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present disclosure relates to a planning optimization system construction support apparatus and a planning optimization system construction support method.

Background Art

[0002] A planning optimization system for formulating plans such as a production plan of a product or a placement plan of workers is attracting attention. The planning optimization system formulates a plan by solving an optimization problem according to the plan to be formulated based on the planned data necessary for formulating the plan, such as data related to products or workers. This type of planning optimization system is useful when it is difficult to formulate a plan manually, such as when the size of the planned data is large or when the planned data is frequently updated.

[0003] In the development of a planning optimization system, it is important to reduce the development man-hours. As a method for reducing the development man-hours, a method of library-izing processes that can be generalized and reusing them for formulating other plans can be mentioned. For example, Patent Document 1 discloses a technique for constructing a software system for formulating a plan with a small development man-hour by using a constraint problem description language and a general-purpose allocation library.

[0004] Also, as another method for reducing the development man-hours, a method of comparing the mathematical model of a planning optimization system developed in the past with the mathematical model of the planning optimization system to be developed and reusing the source code used in the development of the past planning optimization system can be mentioned. For example, Patent Document 2 discloses a technique for reusing the source code when it is determined that they are similar mathematical models by comparing a mathematical model representing the characteristics of a plan that has been generated and operated since before in a factory where a planning optimization system to be developed is constructed with a mathematical model corresponding to the processing of the source code created when a planning optimization system in another factory was constructed.

Prior Art Documents

Patent Documents

[0005] [Patent Document 1] Japanese Patent Application Publication No. 7-28650 [Patent Document 2] Japanese Patent Publication No. 2021-68010 [Overview of the project] [Problems that the invention aims to solve]

[0006] The technology described in Patent Document 1 only provides a library of generalizable processes, making it difficult to develop a plan optimization system that can solve complex optimization problems in a short computation time. For example, when the number of decision variables to be determined in an optimization problem is large and it is difficult to satisfy all of the complex constraints, the computation time required by the plan optimization system increases. As a result, it can be difficult to formulate a plan that meets customer requirements within a practical timeframe.

[0007] Furthermore, the technology described in Patent Document 2 has the problem that, since assets created in past development are reused, it is not possible to reduce development man-hours if there are no or few assets created in past development.

[0008] The object of the present invention is to provide a planning optimization system construction support device and a planning optimization system construction support method that enable the development of a planning optimization system capable of easily solving complex optimization problems without using past assets. [Means for solving the problem]

[0009] A plan optimization system construction support device according to one aspect of the present disclosure is a plan optimization system construction support device that supports the construction of a plan optimization system for solving an optimization problem for formulating a plan, and comprises a storage unit and a processing unit, wherein the storage unit stores optimization problem information indicating the optimization problem, planned data indicating the values ​​of constants which are fixed elements in the optimization problem, and a template which is a template for the source code of the plan optimization system, and the processing unit generates the source code by inserting information based on the optimization problem information and the planned data into the template. [Effects of the Invention]

[0010] According to the present invention, it becomes possible to develop a planned optimization system that can easily solve complex optimization problems without using past assets. [Brief explanation of the drawing]

[0011] [Figure 1] This block diagram shows the functional configuration of a planning optimization system construction support device according to an embodiment of the present disclosure. [Figure 2] This is a configuration diagram showing the hardware and software configuration of the planning optimization system construction support device 100. [Figure 3] This figure shows an example of the structure of an optimization problem description table. [Figure 4] This figure shows an example of the structure of the planned data table. [Figure 5] This figure shows an example of the configuration of an auxiliary information table. [Figure 6] This block diagram shows the functional configuration of a planning optimization system. [Figure 7] This is a flowchart illustrating the overall process of a plan optimization system. [Figure 8] This is a flowchart to explain the planning process. [Figure 9] This is a flowchart illustrating the overall processing of the plan optimization system construction support device 100. [Figure 10]It is a diagram showing a configuration example of a template. [Figure 11] It is a diagram showing an example of a template and source code. [Figure 12] An example of a display screen is shown. [Figure 13] It is a flowchart for explaining an example of input analysis processing. [Figure 14] It is a flowchart for explaining an example of output generation processing. [Figure 15] It is a diagram for explaining an example of a cooperation method between a planning optimization system construction support device and a customer system

Mode for Carrying Out the Invention

[0012] Hereinafter, embodiments of the present disclosure will be described with reference to the drawings.

[0013] FIG. 1 is a block diagram showing a functional configuration of a planning optimization system construction support device according to an embodiment of the present disclosure. The planning optimization system construction support device 100 shown in FIG. 1 is a system for constructing a planning optimization system (see FIG. 6) for formulating plans such as a production plan of a product or a placement plan of working personnel, and includes an input unit 110, a storage unit 120, a processing unit 130, and a display unit 170. Formulation of a plan by the planning optimization system is performed by solving (optimizing) an optimization problem according to the plan. Further, the plan to be formulated, which is the plan to be formulated by the planning optimization system, is specified by a customer who receives the offer of the planning optimization system.

[0014] The input unit 110 receives various information from the outside of the planning optimization system construction support device 100. The storage unit 120 stores various information. In the present embodiment, the storage unit 120 includes an optimization problem description storage area 121, a planned data storage area 122, auxiliary information storage area 123, template storage area 124, source code storage area 125, and summary data storage area 126.

[0015] The optimization problem description storage area 121 stores the optimization problem description table D1 (see Figures 2 and 3), which is optimization problem information indicating the optimization problem for formulating a plan in the plan optimization system constructed by the plan optimization system construction support device 100. The planned data storage area 122 stores the planned data table D2 (see Figures 2 and 4), which is planned data indicating the values ​​of elements that are fixed in the optimization problem shown in the optimization problem description table D1. The auxiliary information storage area 123 stores the auxiliary information table D3 (see Figures 2 and 5), which is auxiliary information indicating constraint conditions according to the plan to be formulated for the optimization problem shown in the optimization problem description table D1. The template storage area 124 stores the template D4 (see Figures 2, 10, and 11), which is information indicating a template for generating the source code of the plan optimization system. The source code storage area 125 stores the generated source code D5 (see Figure 2) of the plan optimization system. The summary data storage area 126 stores the summary data table D6 (Figure 2), which is summary information obtained by summarizing the optimization problem description table D1 and the planned data table D2.

[0016] The processing unit 130 performs various processes using the various information received by the input unit 110 and the various information stored in the storage unit 120. The processing unit 130 includes an input analysis unit 140, an output generation unit 150, and a compilation unit 160.

[0017] The input analysis unit 140 performs input analysis processing to analyze the data received by the input unit 110. The output generation unit 150 generates the source code D5 of the plan optimization system using the various information received by the input unit 110 and the various information stored in the storage unit 120. The compilation unit 160 compiles the source code D5 generated by the output generation unit 150 to generate executable object code.

[0018] The display unit 170 displays various information stored in the storage unit 120.

[0019] Figure 2 is a configuration diagram showing the hardware and software configuration of the plan optimization system construction support device 100. The plan optimization system construction support device 100 shown in Figure 2 comprises a processor 210, an input device 220, an output device 230, an auxiliary storage device 240, and a memory 250 as hardware, and each piece of hardware is connected to each other via a bus 260 so as to be able to communicate with each other.

[0020] The processor 210 loads a program stored in the auxiliary storage device 240 into the memory 250 and executes it, and by operating according to that program, it realizes the input unit 110, the processing unit 130, and the display unit 170. The processor 210 may include one or more arithmetic units or processing cores. The input device 220 receives various information from users utilizing the planning optimization system construction support device 100, and from external devices outside the planning optimization system construction support device 100. The output device 230, for example, includes a display device and outputs various information to the user and external devices.

[0021] The auxiliary storage device 240 is configured as a large-capacity storage device such as a hard disk drive or a solid-state drive, and is used to retain programs and data for a long period of time. The auxiliary storage device 240 functions as a memory unit 120 and stores the optimization problem description table D1, the planned data table D2, the auxiliary information table D3, the template D4, the source code D5, and the summary data table D6.

[0022] The memory 250 includes a non-volatile memory element, ROM (Read Only Memory), and a volatile memory element, RAM (Random Access Memory). The memory 250 stores the program loaded by the processor 210 from the auxiliary storage device 240. The program includes an operating system (not shown), an input analysis program 251, an output generation program 252, a compilation program 253, and a user interface program 254. The processor 210 operates according to the input analysis program 251, the output generation program 252, and the compilation program 253, respectively, to realize the input analysis unit 140, the output generation unit 150, and the compilation unit 160. The processor 210 also operates according to the user interface program 254 to realize the input unit 110 and the display unit 170.

[0023] Each component, such as the processor 210 and the auxiliary storage device 240, may be present in multiple configurations. Furthermore, the plan optimization system construction support device 100 may be implemented, for example, on a general-purpose computer, or on a computer system including multiple computers connected to each other via a network.

[0024] The data stored in the auxiliary storage device 240 (optimization problem description table D1, planned data table D2, and auxiliary information table D3) will be explained below using Figures 3 to 5. In the figures showing this data, a hyphen (‐) indicates that the corresponding field is blank.

[0025] Figure 3 shows an example of the structure of the optimization problem description table D1. The optimization problem description table D1 includes a number column D10, a name column D11, a type column D12, a model column D13, a primary key column D14, a definition column D15, and an optimization direction column D16. Each record in the optimization problem description table D1 represents an element that constitutes the optimization problem.

[0026] The number column D10 stores an identification number to identify each record in the optimization problem description table D1. The name column D11 stores the element name, which is the name of the element that makes up the optimization problem. The type column D12 stores the type, which indicates the role of the element in the optimization problem. The domain of the type is one of the following: "constant", "decision variable", "constraint", and "evaluation metric".

[0027] The Type column D13 stores the type (data type) of the element if its type is a "constant" or a "decision variable". The Primary Key column D14 stores the primary key, which is the element that determines the value of the element. A primary key is necessary when the element is an array, for example. For example, the element "x" of identification number "005" in Figure 3 is an array, and its value is determined by the primary key "i".

[0028] Definition column D15 stores definition information indicating the definition of an element when the type of the element is "constraint" or "evaluation index". In this embodiment, the definition information is a definition expression written using mathematical formulas. For example, the definition expression "0≦x[i] if 0≦i≦5" for identification number "007" in Figure 3 indicates a constraint condition that if the primary key "i" is between 0 and 5 (inclusive), then the element "x" must be greater than or equal to 0. Note that the definition information does not need to be written using mathematical formulas; it may also be written using, for example, a general-purpose optimization problem description language, an optimization solver API (Application Programming Interface), or a programming language.

[0029] The optimization direction column D16 stores the optimization direction, which is an attribute of the element, when the type of the element is "evaluation index". The domain of the optimization direction is "maximization" or "minimization". For example, element "F1" with identification number "010" in Figure 3 treats the decision variable "obj" as the evaluation index and indicates that the optimization problem will be solved so that the decision variable "obj" is minimized.

[0030] Figure 4 shows an example of the structure of the planned data table D2. The planned data table D2 includes a number column D20, a name column D21, a primary key column D22, and a value column D23.

[0031] The number column D20 stores an identification number to identify each record in the planned data table D2. The name column D21 stores the element names of elements of type "constant" that constitute the optimization problem. The primary key column D22 stores the primary key value of the element. Note that the number of primary keys is a maximum of two in the example in Figure 4, but it is not limited to this example. The value column D23 stores the value of the element if the element has a primary key value.

[0032] Figure 5 shows an example of the configuration of the auxiliary information table D3. The auxiliary information table D3 contains data that depends on the optimization problem description table D1 and the planned data table D2. Since the optimization problem description table D1 and the planned data table D2 contain information that depends on the plan to be formulated as specified by the customer, the auxiliary information table D3 contains information that depends on the plan to be formulated (i.e., customer-dependent information).

[0033] The auxiliary information table D3 includes the number column D30, the name column D31, the type column D32, the determination method column D33, the conversion method column D34, and the characteristic constraints column D35.

[0034] The number column D30 stores an identification number to identify each record in the auxiliary information table D3. The name column D31 stores the element names of elements of type "decision variable" that constitute the optimization problem included in the planned data table D2, and elements newly added in the auxiliary information table D3. The type column D32 stores the type of the element. If the element is included in the optimization problem description table D1, the value of the type column D32 matches the value of the type column D13 in the corresponding optimization problem description table D1.

[0035] The determination method column D33 stores the determination method for determining the element. In this embodiment, the domain of the determination method is "solution construction," "variable transformation," and "linear programming." "Solution construction" is a method of assigning values ​​to elements using a predetermined algorithm. "Variable transformation" is a method of transforming the values ​​of other elements assigned in "solution construction." "Linear programming" is a method of assigning values ​​to elements using linear programming.

[0036] The conversion method column D34 stores the conversion method from another element to the element in question when the determination method is "variable conversion". For example, the conversion method column D34 for element "x" with identification number "001" in auxiliary information table D3 indicates a variable conversion that converts element "y" with identification number "003" to element "x".

[0037] The constraint column D35 stores characteristic constraints that are used when assigning element values ​​when the solution method is "solution construction".

[0038] In the example shown in Figure 5, the transformation method was described using mathematical formulas and the constraints were described using an optimization problem description language. However, the transformation method and characteristic constraints are not limited to these descriptions and may be described using, for example, mathematical formulas, an optimization problem description language, an optimization solver's API (Application Programming Interface), or a predetermined programming language.

[0039] Next, the plan optimization system constructed by the plan optimization system construction support device 100 will be described. The plan optimization system in this embodiment is a system that realizes plan formulation using plugins dependent on the plan to be formulated, using the auxiliary information table D3. However, the plan optimization system is not limited to the form using plugins.

[0040] Figure 6 is a block diagram showing the functional configuration of the plan optimization system according to this embodiment.

[0041] The plan optimization system 300 shown in Figure 6 comprises a data storage area 310, a plan result storage area 390, and source code D5. Source code D5 is the source code for implementing the following functional units: a framework unit 320, a data reading unit 330, a solution construction unit 340, a variable conversion unit 350, a linear planning unit 360, a plan evaluation unit 370, and a plan output unit 380.

[0042] The planned data storage area 310 stores the planned data table D2. The planned data storage area 310 may be the same as or different from the planned data storage area 122 in the plan optimization system construction support device 100. The plan result storage area 390 stores the plan result (not shown), which is the plan formulated by the plan optimization system 300.

[0043] The framework unit 320 mediates the transmission and reception of data between each functional unit. The planned data reading unit 330 reads the planned data table D2 from the planned data storage area 310.

[0044] The solution construction unit 340, the variable transformation unit 350, and the linear programming unit 360 are planning units that execute planning processes to determine the values ​​of elements of type "decision variable" in the optimization problem description table D1, based on the planned data table D2 read by the planned data reading unit 330. Specifically, the solution construction unit 340 assigns values ​​to elements in the auxiliary information table D3 whose decision method is "solution construction". The variable transformation unit 350 determines the values ​​of elements in the auxiliary information table D3 whose decision method is "variable transformation". The linear programming unit 360 determines the values ​​of elements in the auxiliary information table D3 whose decision method is "linear programming".

[0045] The plan evaluation unit 370 evaluates the drafted plan. The plan output unit 380 outputs the drafted plan.

[0046] Figure 7 is a flowchart illustrating the overall processing of the plan optimization system 300. Note that the processing of the framework unit 320 will be omitted in the following explanation.

[0047] In step S101, the planned data reading unit 330 reads the planned data table D2 from the planned data storage area 310.

[0048] In step S102, the solution construction unit 340, the variable transformation unit 350, and the linear programming unit 360 execute a planning process (see Figure 8) to formulate a plan based on the planned data table D2 read by the planned data reading unit 330. Here, the plan is specifically a set of elements whose type in the optimization problem description table D1 is "decision variables". Furthermore, formulating a plan is the process of determining (assigning) the values ​​of each element included in the plan.

[0049] In step S103, the planning evaluation unit 370 calculates an evaluation value for the plan formulated in step S102 based on the auxiliary information table D3. For example, in the auxiliary information table D3, the planning evaluation unit 370 calculates an evaluation value for the element "obj", which is the evaluation index "F", using a linear programming method, which is its determination method.

[0050] In step S104, the plan evaluation unit 370 determines whether or not predetermined termination conditions are met. Termination conditions include, for example, that the evaluation value meets predetermined tolerance conditions, that the number of times or time spent formulating a plan is equal to or greater than a threshold, or that the formulated plan has remained unchanged for a predetermined number of consecutive times.

[0051] If the termination conditions are met, the process in step S105 is executed; otherwise, the process returns to step S102. When returning to step S102, the parameters used for planning are modified as appropriate.

[0052] In step S105, the planning output unit 380 outputs a planning result showing the drafted plan, stores the planning result in the planning result storage area 390, and terminates the process.

[0053] Figure 8 is a flowchart illustrating the planning process in step S102 in Figure 7.

[0054] In step S201, the solution construction unit 340 takes the set of elements in the auxiliary information table D3 whose determination method is "solution construction" as the solution and constructs that solution. Here, solution construction means assigning values ​​to each element included in the solution. The algorithm for constructing the solution is, for example, a metaheuristic such as local nearest neighbor search and a genetic algorithm, but is not limited to these.

[0055] In step S201, if there are constraints on elements in the auxiliary information table D3 whose determination method is "solution construction," the solution construction unit 340 uses those constraints to assign values ​​to those elements. For example, when assigning a value to the element with identification number "0003" in the auxiliary information table D3, since the constraint is an alldifferent constraint, the solution construction unit 340 assigns values ​​that satisfy the alldifferent constraint. The alldifferent constraint requires that all the values ​​of the elements included in the solution are different. This makes it possible to construct the solution more efficiently compared to when no constraints exist.

[0056] In step S202, the variable conversion unit 350 determines the value of an element in the auxiliary information table D3 whose determination method is "variable conversion" by converting the value of the element included in the solution constructed in step S201 according to the conversion method of the auxiliary information table D3. For example, when determining the value of the element with identification number "001" in the auxiliary information table D3, the variable conversion unit 350 uses the conversion "x[i]==a[i][0]*(y[i]<1?1:0)" shown in the conversion method to determine the value of the element x[i] of identification number "001" from the solution y[i] of identification number "003".

[0057] In step S203, the linear programming unit 360 determines the values ​​of elements in the auxiliary information table D3 whose determination method is "linear programming" (i.e., elements that have not yet been planned) using linear programming, and then terminates the process. At this time, the linear programming unit 360 fixes the values ​​of the elements determined in steps S201 and S202. For example, the linear programming unit 360 determines the value of element "obj" with identification number "0002" in the auxiliary information table D3 using linear programming, while keeping the value of element "x" with identification number "001" fixed. Note that since linear programming is a well-known technique, a detailed explanation is omitted.

[0058] Figure 9 is a flowchart illustrating the overall processing of the plan optimization system construction support device 100.

[0059] In step S301, the user of the planning optimization system construction support device 100 creates an optimization problem description table D1 and a planned data table D2 using their own information processing device (for example, the customer system 400 in Figure 15).

[0060] In step S302, an auxiliary information table D3 is created based on the optimization problem description table D1 and the planned data table D2. Here, the user of the planning optimization system construction support device 100 creates the auxiliary information table D3 using their own information processing device. However, the planning optimization system construction support device 100 may also have a function to create the auxiliary information table D3 based on the optimization problem description table D1 and the planned data table D2.

[0061] In step S303, the input analysis unit 140 of the plan optimization system construction support device 100 receives the created optimization problem description table D1, the planned data table D2, and the auxiliary information table D3, and generates analysis results by analyzing each of the received tables.

[0062] In step S304, the output generation unit 150 generates source code D5 based on the analysis results generated by the input analysis unit 140 and template D4.

[0063] In step S305, the compilation unit 160 reads the source code D5 generated by the input analysis unit 140 into the memory 250 and compiles it to generate object code, making the planned data storage area 310 and the planned result storage area 390 communicable, thereby constructing the plan optimization system.

[0064] The following describes in more detail the generation process for generating source code D5 in step S304. It is assumed that the plan optimization system 300 shown in Figure 6 is constructed. Furthermore, since source code D5 is generated using template D4, template D4 will be explained first.

[0065] Figure 10 shows an example of the configuration of template D4. As shown in Figure 10, template D4 includes multiple functional unit templates corresponding to each functional unit (320-380) of the planning optimization system 300. Specifically, template D4 includes, as functional unit templates, framework unit template D41 corresponding to the framework unit 320, planned data reading unit template D42 corresponding to the planned data reading unit 330, solution construction unit template D43 corresponding to the solution construction unit 340, variable conversion unit template D44 corresponding to the variable conversion unit 350, linear planning unit template D45 corresponding to the linear planning unit 360, planning evaluation unit template D46 corresponding to the planning evaluation unit 370, and planning output unit template D47 corresponding to the planning output unit 380.

[0066] In the example in Figure 10, one functional unit corresponds to one functional template, but multiple functional templates may correspond to a single functional unit. Also, template D4 may include templates for generating files other than source code D5. For example, template D4 may include a template for generating a functional template corresponding to a specific functional unit. By using a template for a template, it becomes possible to generate functional templates that include control structures such as repeating the same syntax, thereby improving the descriptive capabilities of functional templates.

[0067] The functional template contains information independent of the optimization problem description table D1 and the planned data table D2, and is combined with the analysis results generated by the input analysis unit 140 to generate source code D5. Specifically, the combination of the functional template and the analysis results is performed by inserting insertion elements, which are information based on the analysis results, into placeholders within the functional template, and is realized by a so-called template engine. The information based on the analysis results includes information contained in the analysis results and information contained in the summary information generated from the analysis results. The placeholder is the insertion part into which the insertion elements are inserted. Template D4 differs from a program library in that it can insert information based on analysis results.

[0068] Figure 11 shows an example of template D4 and source code D5.

[0069] Figure 11(A) shows an example of the planned data reading unit template D42. The planned data reading unit template D42 shown in Figure 11(A) includes placeholders D421 to D424 into which insertion elements are inserted. In the example in Figure 11A, placeholders D421 to D424 are enclosed in curly braces { and}.

[0070] Placeholders may also contain formatting information that indicates the format of the inserted element. In the example in Figure 11(A), placeholder D421 contains formatting information D425, and placeholder D423 contains formatting information D426. Formatting information D425 "upper" indicates that the inserted element will be inserted in uppercase, and formatting information D426 "join" indicates that multiple inserted elements will be joined and inserted.

[0071] Furthermore, placeholders D421 to D423 are used to insert information contained in the analysis results, and placeholder D424 is used to insert information contained in the summary information. The information contained in the analysis results includes information contained in the optimization problem description table D1, the planned data table D2, and the auxiliary information table D3.

[0072] Figure 11(B) shows an example of source code D52 generated from the planned data reading unit template D42 shown in Figure 11(A). Source code D52 contains strings D521 to D524, each with an insertion element inserted into placeholders D421 to D424.

[0073] The description format for functional unit templates other than the planned data reading unit template D42 is the same as that of the planned data reading unit template D42, so its explanation will be omitted.

[0074] Figure 12 shows an example of a display screen that displays information from the storage unit 120 using the display unit 170. The display screen is shown, for example, after the source code D5 is generated, in response to instructions from the user.

[0075] The display screen 170A shown in Figure 12 includes a source code selection area 171, a source code display area 172, a source code highlighting area 173, a template display area 174, a template highlighting area 175, and a corresponding indicator 176.

[0076] The source code selection area 171 is the area for selecting source code. The source code display area 172 is the area for displaying the source code selected in the source code selection area 171. The source code highlighting section 173 highlights the portion of the source code displayed in the source code display area 172 that has been specified by the user. In the example in Figure 12, the source code highlighting section 173 highlights the specified portion by enclosing it with a border.

[0077] The template display area 174 is an area that displays a template that serves as a model for the source code displayed in the source code display area 172. The template emphasis section 175 emphasizes and displays a portion of the template that corresponds to the specified part of the source code that was emphasized in the source code emphasis section 173. In the example in Figure 12, a portion of the template is emphasized by being surrounded by a border.

[0078] The correspondence indicator 176 indicates the correspondence between the source code emphasis unit 173 and the template emphasis unit 175.

[0079] As shown in the example in Figure 12, the template D4 and source code D5 are displayed in association, making it possible to visually confirm that source code D5 was generated by the planning optimization system construction support device 100.

[0080] Figure 13 is a flowchart illustrating an example of the input analysis process performed by the input analysis unit 140 in step S303 of Figure 9.

[0081] In step S401, the input analysis unit 140 receives the optimization problem description table D1, the planned data table D2, and the auxiliary information table D3.

[0082] In step S402, the input analysis unit 140 generates a single table as the analysis result by combining the optimization problem description table D1, the planned data table D2, and the auxiliary information table D3.

[0083] In step S403, the input analysis unit 140 prompts the user to determine whether summary information is necessary. At this time, the input analysis unit 140 may display a screen showing the analysis results, etc. The user determines whether a plan optimization system can be efficiently constructed using the summary information by, for example, determining whether there are a sufficient number of insertion sections in template D4 for inserting information included in the summary information, and ultimately decides whether summary information is necessary. If summary information is necessary, the input analysis unit 140 executes the process in step S404; if summary information is not necessary, it skips the process in step S404 and executes the process in step S405. The input analysis unit 140 may also automatically determine whether summary information is necessary.

[0084] In step S404, the input analysis unit 140 generates a summary data table D6 as summary information based on the analysis results and stores it in the summary data storage area 126.

[0085] In step S405, the input analysis unit 140 passes the analysis results to the output generation unit 150 and terminates the process.

[0086] The summary data table D6 is information that summarizes the analysis results in a form independent of template D4. For example, the summary data table D6 includes statistical values ​​of the possible values ​​of the elements included in the analysis results. More specifically, the summary data table D6 includes information that summarizes the information in the primary key column D22 of the planned data table D2 into statistical values ​​of the possible values ​​of the primary key (e.g., maximum value, minimum value, and mean value). Also, if the analysis results are objects on memory 250 that can be referenced by the program, the summary data table D6 may be a file on auxiliary storage device 240.

[0087] Figure 14 is a flowchart illustrating an example of the output generation process by the output generation unit 150 in step S304 of Figure 9.

[0088] In step S501, the output generation unit 150 obtains the analysis results from the input analysis unit 140. If a summary data table D6 exists in the summary data storage area 126, the output generation unit 150 obtains that summary data table D6. Hereafter, the data obtained by the output generation unit 150 (analysis results and summary data table D6) will be referred to as the insertion element.

[0089] Subsequently, the output generation unit 150 executes a loop process (A) that repeats the processing in steps S502 to S504 for each template corresponding to each functional unit.

[0090] In step S502, the output generation unit 150 identifies placeholders included in the template. The output generation unit 150 identifies placeholders, for example, by searching for curly braces "{" and "}" in the template.

[0091] Subsequently, the output generation unit 150 executes a loop process (B) that repeats the processes of steps S503 to S504 for each identified placeholder.

[0092] In step S503, the output generation unit 150 performs a format conversion process to convert the format of the insertion element to be inserted into the placeholder into the format (format) of the programming language that describes the planning optimization system 300. Specifically, the format conversion process is a process that converts the format of the insertion element according to the format specification information contained in the placeholder, and includes processes such as converting the insertion element to uppercase or lowercase (see D425 in Figure 11(A)) and splitting or combining the insertion element (see D426 in Figure 11(A)).

[0093] In step S504, the output generation unit 150 inserts the formatted insertion element into the placeholder.

[0094] The output generation unit 150 terminates loop processing (B) after executing steps S503 and S504 for all identified placeholders. Furthermore, after executing steps S502 to S504 for all templates, the output generation unit 150 terminates loop processing (A) and executes step S505.

[0095] In step S505, the output generation unit 150 stores each template with the inserted elements as source code D5 in the source code storage area 125 and terminates the process.

[0096] The elements to be inserted into the placeholder are, for example, all insertable elements, and a source code D5 corresponding to each of those elements is generated.

[0097] Furthermore, after step S505, the compilation unit 160 may generate object code by reading source code D5 from the source code storage area 125 and compiling it. The compilation unit 160 may also have a function to verify source code D5. In this case, it becomes possible to detect bugs and other issues contained in source code D5 immediately after it is generated, thereby improving the quality of source code D5.

[0098] Figure 15 is a diagram illustrating an example of how the plan optimization system construction support device 100 and the customer system 400 are linked. The plan optimization system construction support device 100 and the customer system 400 are interconnected via a network 500.

[0099] In the example shown in Figure 15, the plan optimization system construction support device 100 transfers the generated source code D5 from the source code storage area 125 to the customer system 400. The customer system 400 reads the transferred source code D5 into memory (not shown) and makes the source code D5 available for communication with the planned data storage area 401 and the plan result storage area 402 of the customer system 400. This makes it possible to construct the plan optimization system 300 on the customer system 400.

[0100] As described above, according to this embodiment, the memory unit 120 stores an optimization problem description table D1 that shows the optimization problem for formulating a plan in the plan optimization system 300, a planned data table D2 that shows the values ​​of constants that are fixed elements in the optimization problem, and a template D4 which is a template of the source code of the plan optimization system. The processing unit 130 inserts the information based on the optimization problem description table D1 and the planned data table D2 into the template to generate the source code of the plan optimization system. Therefore, it is possible to generate source code that takes into account the information according to the plan to be formulated without using past assets, and thus it is possible to develop a plan optimization system that can easily solve complex optimization problems without using past assets.

[0101] Furthermore, in this embodiment, the processing unit 130 generates source code for the plan optimization system by inserting information corresponding to the auxiliary information table D3, which indicates constraints according to the plan for the optimization problem, into a template. Therefore, it is possible to generate source code using an auxiliary information table D3 that is specific to the plan being formulated, making it possible to develop a plan optimization system based on a plugin specific to the plan being formulated with minimal development effort.

[0102] Furthermore, in this embodiment, the processing unit 130 generates a summary data table D6 which summarizes the optimization problem description table D1 and the planned data table D2, and generates source code based on the summary data table D6. Therefore, when there is a change to the planning optimization system 300 and the template D4 is replaced, it is possible to reduce development man-hours compared to when the summary data table D6 is not created. Changes to the planning optimization system 300 include, for example, the addition and deletion of functional units or processing flows due to changes in customer requirements, or changes in the programming language used to write the source code D5.

[0103] Furthermore, in this embodiment, template D4 includes multiple functional unit templates corresponding to each of the functional units of the planning optimization system 300. This makes it possible to develop the planning optimization system with minimal development effort.

[0104] Although the present invention has been described above using examples, the technical scope of the present invention is not limited to the scope described in the above-described examples, but includes various modifications. For example, the above-described examples are described in detail in order to explain the present invention in an easy-to-understand manner, and are not necessarily limited to those having all the configurations described. Furthermore, it is possible to add, delete, or replace some of the configurations in the examples with other configurations.

[0105] Furthermore, the execution order of operations, procedures, steps, and other processes in the functions, systems, and methods described in the claims, specifications, and drawings is not explicitly stated as "before" or "prior to," and can be implemented in any order unless the output of a previous process is used in a later process. Even if the operation flow in the claims, specifications, and drawings is described using phrases such as "first," "next," etc. for convenience, it does not mean that it is essential to perform them in that order. [Explanation of Symbols]

[0106] 100: Plan Optimization System Construction Support Device 110: Input Unit 120: Storage Unit 130: Processing Unit 140: Input Analysis Unit 150: Output Generation Unit 160: Compilation Unit 170: Display Unit 300: Plan Optimization System 310: Planned Data Storage Area 320: Framework Unit 330: Planned Data Reading Unit 340: Solution Construction Unit 350: Variable Conversion Unit 360: Linear Programming Unit 370: Plan Evaluation Unit 380: Plan Output Unit 390: Plan Result Storage Area 400: Customer System

Claims

1. A device for supporting the construction of a plan optimization system that solves optimization problems for formulating plans, It has a memory unit and a processing unit, The memory unit stores optimization problem information indicating the optimization problem, planned data indicating the values ​​of constants that are fixed elements in the optimization problem, and a template which is a template of the source code of the planning optimization system. The processing unit is a planning optimization system construction support device that generates source code by inserting the optimization problem information and the information based on the planned data into the template.

2. The memory unit further stores auxiliary information indicating constraints corresponding to the plan for the optimization problem, The processing unit further inserts information corresponding to the auxiliary information into the template to generate the source code, the planning optimization system construction support device according to claim 1.

3. The processing unit generates summary information that summarizes the optimization problem and the data to be planned, and generates the source code based on the summary information, the planning optimization system construction support device according to claim 1.

4. The planning optimization system construction support device according to claim 1, wherein the storage unit stores a plurality of functional unit templates corresponding to each of a plurality of source codes for realizing each of the plurality of functional units having the planning optimization system as templates.

5. The processing unit compiles the source code to generate object code, as described in claim 1, for the planning optimization system construction support device.

6. A method for supporting the construction of a plan optimization system using a plan optimization system construction support device, which supports the construction of a plan optimization system that solves optimization problems for formulating a plan, The system stores optimization problem information indicating the optimization problem, planned data indicating the values ​​of constants that are fixed elements in the optimization problem, and a template which is a template of the source code of the planning optimization system. A method for supporting the construction of a planning optimization system, comprising inserting the optimization problem information and the information based on the planned data into the template to generate the source code.

Citation Information

Patent Citations

  • Planning type expert system structuring assisting device

    JP1995028650A

  • Program generating method

    JP1996202544A

  • Information processor, information processing method, and program

    JP2010157165A

  • Source code optimization device, program, and method

    JP2019139675A

  • Automation of solving NP problems in annealer system

    JP2021002331A