System configuration evaluation apparatus, system configuration evaluation method, and program
The system configuration evaluation device and method address the challenges of scalability and change effects in ICT system design by using a learning model to evaluate and learn from each component of the system, enhancing learning efficiency and adaptability.
Patent Information
- Application Number
- JP2023145331
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2023-09-07
- Publication Date
- 2025-03-19
AI Technical Summary
Existing technologies for automatic design of ICT systems face challenges such as unknown effects when part of the system configuration is changed and scalability issues due to increasing data and time requirements with system configuration scale.
A system configuration evaluation device and method that uses a learning model to output evaluation values for each component of a computer system, integrating these values to evaluate the entire system, and generates training data based on design requirements to perform machine learning on the learning model.
Enables the application of learning content even when part of the system configuration is changed, while suppressing the increase in data and time required for learning with the scale of the system configuration, thus improving learning efficiency.
Smart Images

Figure 2025038609000001_ABST
Abstract
Description
[Technical field]
[0001] This disclosure relates to a technology for automatic design of ICT (Information and Communication Technology) systems and machine learning for the same. In particular, this disclosure relates to a system design automation technology that automates design by having a human declaratively define only the design requirements and the parts to be used, having a computer calculate the range of possible designs from those definitions as a design space, and having an AI (Artificial Intelligence) search that space, and a technology for performing machine learning for the same. [Background technology]
[0002] Patent Document 1 discloses a technology for automatically designing an ICT system that meets customer requirements. In the technology disclosed in Patent Document 1, abstract elements included in the customer's abstract system requirements are concretized in stages, and a system configuration that is detailed to a deployable level is derived.
[0003] Furthermore, in the technology disclosed in Patent Document 1, the customer's abstract "system requirements" (or simply "requirements"), a "system configuration plan" (or simply "configuration plan") in the process of concretizing the system requirements, and a "specific system configuration" (or simply "specific configuration") in which the system requirements have been completely concretized are expressed by the graph shown in FIG. 42. FIG. 42 is a diagram showing an example of a graph showing the requirements of an ICT system. FIG. 43 is a diagram explaining the components included in the requirements of the ICT system shown in FIG. 42.
[0004] Furthermore, the system requirements, system configuration proposal, and specific system configuration are collectively called the "system configuration" (or simply "configuration"). The nodes and edges that make up the system configuration graph are called components. A node means an individual part (e.g., a server, a router, etc.) included in the system configuration, and an edge means a relationship between the parts (e.g., a network connection, etc.).
[0005] Concretization is achieved by graph rewriting. Rules for graph rewriting are prepared beforehand before performing automatic design, and these rules are called reification rules. Multiple applicable reification rules (i.e., rules for graph rewriting) may be prepared for each system requirement and proposed system configuration. Depending on which reification rule is applied and the order in which they are applied, the design branches and the derived concrete configuration of the system changes. As a result, differences arise in the design, and in some cases, the design may fail (it may not satisfy the input system requirements).
[0006] Therefore, in order to perform efficient design using the technology disclosed in Patent Document 1, as mentioned above, it is important to judge which of the multiple applicable concretization rules to apply and whether the order in which each concretization rule is applied is appropriate.
[0007] Non-Patent Document 1 discloses a technique that utilizes reinforcement learning to judge whether the application of the above-mentioned reification rules and the order are appropriate. Reinforcement learning technology is a technique that repeats various trials in a problem in which the results obtained differ depending on the content and order of actions, and learns to judge whether the content and order of actions are appropriate based on rewards obtained according to the results of the trials. Reinforcement learning technology has a proven track record in learning Go AI, etc. Patent Document 2 discloses a technique that learns to evaluate partial elements of a system configuration. [Prior art documents] [Patent documents]
[0008] [Patent Document 1] Patent No. 7036205 [Patent Document 2] Patent Publication No. 2022-63209 [Non-patent literature]
[0009] [Non-Patent Document 1] Takashi Maruyama et al.: "Improving the efficiency of search by reinforcement learning in search-based network design derivation methods," IEICE Technical Report, vol. 118, no. 483, ICM2018-71, pp. 123-128, March 2019. Summary of the Invention [Problem to be solved by the invention]
[0010] However, the technology disclosed in Patent Document 1 has two problems due to the fact that the evaluation of the system configuration is given to the entire system configuration. The first problem is that when a part of the configuration is changed, the impact is unknown, so the learning content cannot be applied. The second problem is that the amount of data and time required for learning increase according to the scale of the system configuration, making it unscalable.
[0011] Furthermore, even if the technology disclosed in Patent Document 2 is used, in the technology disclosed in Patent Document 1, the subject of learning is still an evaluation that represents the likelihood of success or failure of the design of the entire system configuration, and the learning process needs to be performed on a system configuration basis, making it difficult to solve the two problems mentioned above.
[0012] One example of the objective of the present disclosure is to be able to apply the learning content even if part of the system configuration is changed, and to prevent the amount of data and time required for learning from increasing depending on the scale of the system configuration. [Means for solving the problem]
[0013] In order to achieve the above object, a system configuration evaluation device according to one aspect of the present disclosure includes: a configuration evaluation unit that uses a learning model to output an evaluation value of each component of a computer system, and further integrates the output evaluation values to output an evaluation value of the entire computer system; A design of the computer system is attempted based on preset requirements, and for a configuration obtained during the process from the start to the end of the design, it is determined whether each component included therein is realized in accordance with the requirements, and using the result of the determination, learning data for the learning model is generated, and machine learning is performed on the learning model using the generated learning data. A component learning unit; The present invention is characterized in that it is equipped with:
[0014] In order to achieve the above object, a system configuration evaluation method according to one aspect of the present disclosure includes: a configuration evaluation step of outputting an evaluation value of each component of the computer system using the learning model, and further outputting an evaluation value of the entire computer system by integrating the output evaluation values; a component learning step of attempting to design the computer system based on preset requirements, determining whether each component included in a configuration obtained during the process from the start to the end of the design is realized in accordance with the requirements, generating learning data for the learning model using the determination result, and executing machine learning on the learning model using the generated learning data; The present invention is characterized in that it has the following features:
[0015] Furthermore, in order to achieve the above object, a program according to one aspect of the present disclosure includes: On the computer, a configuration evaluation step of outputting an evaluation value of each component of the computer system using the learning model, and further outputting an evaluation value of the entire computer system by integrating the output evaluation values; a component learning step of attempting to design the computer system based on preset requirements, determining whether each component included in a configuration obtained during the process from the start to the end of the design is realized in accordance with the requirements, generating learning data for the learning model using the determination result, and executing machine learning on the learning model using the generated learning data; The present invention is characterized in that: Effect of the Invention
[0016] According to the present invention, the learning contents can be applied even if part of the system configuration is changed, and an increase in the amount of data and time required for learning depending on the scale of the system configuration can be suppressed. [Brief description of the drawings]
[0017] [Figure 1] FIG. 1 is a configuration diagram showing a schematic configuration of an example (first example) of a system configuration evaluation device. [Diagram 2] FIG. 2 is a configuration diagram showing in more detail the configuration of an example (first example) of a system configuration evaluation device. [Diagram 3] FIG. 3 is a flow diagram showing an example of a learning operation of configuration evaluation in an example (first example) of a system configuration evaluation device. [Figure 4] FIG. 4 is a flow diagram showing the operation (step S12) during one period of the reinforcement learning that is repeatedly performed as shown in FIG. [Diagram 5] FIG. 5 is a flow diagram showing the operation (S121) of generating a configuration path from a system requirement in the reinforcement learning shown in FIG. [Figure 6] FIG. 6 is a flow diagram showing the operation (S122) of generating learning data in the reinforcement learning shown in FIG. [Figure 7] FIG. 7 is a flow diagram showing the operation (B11) of determining whether the components shown in FIG. 6 are "fully specific". [Figure 8] FIG. 8 is a flow diagram showing the operation (S124) of performing learning using the learning data in the reinforcement learning shown in FIG. [Figure 9] FIG. 9 is a flow diagram showing the operation (S13) of performing a design trial in the reinforcement learning shown in FIG. [Figure 10] FIG. 10 is a flow diagram showing the operation of the configuration evaluation in the system configuration evaluation device. [Figure 11]FIG. 11 is a configuration diagram showing a configuration of an example (second example) of a system configuration evaluation device. [Figure 12] FIG. 12 is a flow diagram showing an operation of initial learning of configuration evaluation in one example (second example) of the system configuration evaluation device. [Figure 13] FIG. 13 is a flow diagram showing the operation (U21) of generating a dependency graph in the initial learning of the configuration evaluation shown in FIG. [Figure 14] FIG. 14 is a flow diagram showing the operation (U22) of generating a curriculum in the initial learning of the configuration evaluation shown in FIG. [Figure 15] FIG. 15 is a flow diagram showing the operation (U224) of calculating the learning difficulty level in the curriculum generation shown in FIG. [Figure 16] FIG. 16 is a flow diagram showing the operation (U227) of deleting an edge and eliminating a cycle in the curriculum generation shown in FIG. [Figure 17] FIG. 17 is a flow diagram showing the operation (D23) of generating a list of candidates for deletion of edges included in a tour in the curriculum generation shown in FIG. [Figure 18] FIG. 18 is a flow diagram showing the operation (D24) of selecting and deleting one edge from the deletion candidate list in the curriculum generation shown in FIG. [Figure 19] FIG. 19 is a flow diagram showing the operation (U25) of generating a set of requirements to be used in learning the learning items in the initial learning of the configuration evaluation shown in FIG. [Figure 20] Figure 20 is a flow diagram showing the operation (U257) of recursively processing components included in the configuration required for concatenating the concatenation rules or the configuration after concatenation, as part of the operation of generating a set of requirements to be used in learning the learning items shown in Figure 19. [Figure 21] FIG. 21 is a flow diagram showing the operation (U26) of learning a learning item using a set of requirements in the initial learning of the configuration evaluation shown in FIG. [Figure 22] FIG. 22 is a flow diagram showing the operation of relearning the configuration evaluation in one example (second example) of the system configuration evaluation device. [Diagram 23] FIG. 23 is a configuration diagram showing the configuration of an example (third example) of a system configuration evaluation device. [Figure 24] FIG. 24 is a flow diagram showing a design operation in an example (third example) of the system configuration evaluation device. [Diagram 25] FIG. 25 is a configuration diagram showing the configuration of an example (fourth example) of a system configuration evaluating apparatus. [Figure 26] FIG. 26 is a flow diagram showing a learning operation in an example (fourth example) of the system configuration evaluation device. [Figure 27] FIG. 27 is a flow diagram showing the operation during one period of the reinforcement learning that is repeatedly performed as shown in FIG. [Figure 28] FIG. 28 is a flow diagram showing the operation (S421) of generating a configuration path from a system requirement in the reinforcement learning shown in FIG. [Figure 29] FIG. 29 is a flow diagram showing a design operation in an example (fourth example) of the system configuration evaluation device. [Diagram 30] FIG. 30 is a diagram showing how a design branches repeatedly and a configuration is generated in the automated design of an ICT system. [Diagram 31] FIG. 31 is a diagram illustrating information representing an ICT system configuration in a graph structure in the automatic design of an ICT system. [Diagram 32] FIG. 32 is a diagram showing information in which the system configuration of the ICT system shown in FIG. 31 is expressed in text form. [Diagram 33] FIG. 33 is a diagram showing a format for defining the type of a component in the automated design of an ICT system. [Diagram 34] FIG. 34 is a diagram showing an example of a dependency graph generated in the second embodiment. [Diagram 35] FIG. 35 is a diagram showing an example of a curriculum generated in the second embodiment. [Diagram 36] FIG. 36 illustrates an example of a configuration path. [Figure 37]FIG. 37 is a diagram showing an example of a search tree generated in the first embodiment. [Figure 38] FIG. 38 is a diagram showing a format for defining the type of a component in the automated design of an ICT system. [Figure 39] FIG. 39 is a diagram showing an example of component type definition information, which is information representing a definition of a type of a component in the automatic design of an ICT system. [Diagram 40] FIG. 40 is a diagram showing an example of instantiation rule definition information, which is information representing the definition of the instantiation rule, generated from the component type definition information of FIG. 39 in the automatic design of an ICT system. [Diagram 41] FIG. 41 is a block diagram showing an example of a computer that realizes the system configuration evaluation device. [Diagram 42] FIG. 42 is a diagram illustrating an example of a graph showing requirements for an ICT system. [Diagram 43] FIG. 43 is a diagram illustrating components included in the requirements of the ICT system shown in FIG. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0018] (Prerequisites for disclosure) Before describing the embodiments, the automated design of ICT systems to which the invention is applied will be described. First, FIG. 30 shows how the design branches repeatedly and a configuration is generated. In FIG. 30, (a) to (g) each represent a configuration of an ICT system. Each configuration may include information on constraints imposed on each component, in addition to information on a graph showing the ICT system configuration itself. Constraints are conditions that the evaluation indexes of each component must satisfy, expressed as equalities and inequalities.
[0019] As shown in FIG. 30, among the information included in each configuration (parts separated by rectangles in FIG. 30), nodes represented by circles are individual parts (e.g., servers, routers, etc.) included in the system configuration, and represent components. Edges represented by arrows represent relationships between components (e.g., network connections, etc.). As described above, the nodes and edges are called "components." The icon of each component represents the type of component. The correspondence between the icon and the type is shown in the legend (see FIG. 43). The character string attached to the component represents the identifier of the component. In addition, the inequality attached to each configuration represents a constraint. For example, "$s1.conn >= 100" is a constraint on "conn," which is an evaluation index linked to the configuration with the identifier "s1," and indicates that "conn" is 100 or more.
[0020] The information included in each configuration (hereinafter referred to as "configuration information") is not limited to the information expressed by the diagram shown in Fig. 30, and may be information expressed in text. There are no particular limitations on the method of expression in text as long as it can be converted into a unique diagram, and as an example, Fig. 32 shows an example in which the configuration shown in Fig. 31 is expressed in text.
[0021] In Figure 31, the text attached to the nodes and edges respectively indicate components and the relationships between the components. In other words, Figure 31 shows that a specific application Y can communicate with some other application, and uses nodes and edges to express that "App and App_Y are connected by the Conn_to relationship." Dotted lines represent abstract components, and solid lines represent concrete components. App is an abstract node that represents some kind of application, so it is displayed with a dotted line at this point, and will be concretized into a concrete application during the process of concretizing the configuration.
[0022] As shown in FIG. 32, configuration information in text format consists of a list of component parts and the relationships between the component parts. For each component part, an identifier that identifies the component part and the type of the component part are defined. For each relationship, an identifier that identifies the relationship, the type of the relationship, the identifier of the component part from which the connection originates, and the identifier of the component part to which the connection is made are defined. The symbol "$" in FIG. 32 indicates that the identifier to which it is added is referenced. If it is not necessary to define the identifier of a certain component part because it is not referenced in other definitions of the component part, the definition of the identifier may be omitted.
[0023] Next, a method for defining the type of a component that represents a node and an edge will be described. The format for defining a component type is shown in Fig. 33. For a component type, information that represents the characteristics of the type of the component, such as the name of the type of the component (type name), the inheritance source, concreteness, and properties, is specified. For a component type, information called an expected peripheral configuration is also specified. The expected peripheral configuration is information about a configuration that is expected to exist in the vicinity of itself, because a component of that type exists in the system configuration. The type of a component is also called a "component type". Data that defines a component type is also called "component type definition information".
[0024] The inheritance source described above indicates the type of other components that the component inherits, and if not specified, it indicates that nothing is inherited. A component inherits the type of another component, and a relationship between components inherits the type of the relationship between other components, making it possible to inherit the properties of the inheritance source type and information on expected peripheral configurations.
[0025] The concreteness mentioned above is a flag that indicates whether the component type itself is an abstract component type that can be further concretized, or a concrete component type that cannot be further concretized. If concreteness is True, it indicates that it is a concrete component type. If concreteness is False, it indicates that it is an abstract component type that can be concretized into other component types that inherit from the component type in question.
[0026] A property is attribute information that represents the characteristics of the component type, and any attribute information can be specified depending on the type of the component type. An expected surrounding configuration represents configuration information that must be satisfied in the surroundings of the component of the type in order for the component of the type to be true, and the existence of the configuration described here indicates that the component of the type is true.
[0027] For example, since it is considered that an OS that hosts an application is essential for the existence of the application, the expected peripheral configuration of an APP-type component describes configuration information that the APP itself is hosted by an OS-type component. Multiple expected peripheral configurations can be defined for one component. If even one expected peripheral configuration of a certain component exists in the configuration, the expected peripheral configuration of the component is said to be satisfied.
[0028] Each expected peripheral configuration describes the name of the expected peripheral configuration, prerequisite configuration information, required configuration information, and constraint conditions. The prerequisite configuration information is configuration information that is a prerequisite when concretizing the system configuration to satisfy the required configuration information described below. The prerequisite configuration information indicates that when the system configuration in the design process satisfies the configuration information described in the prerequisite configuration information, the required configuration information described below is applied to concretize the system configuration. The required configuration information is information for concretizing the system configuration one step by adding the configuration information described here to the system configuration. The constraint conditions are constraint conditions that each component must satisfy when concretizing the system configuration with the configuration information described in the required configuration information.
[0029] The process of instantiating a system configuration based on the input system requirements consists of two processes: the process of instantiating each component itself into a specific component, and the process of instantiating the system configuration so as to satisfy the expected peripheral configuration defined for each component. Therefore, the information on the instantiation rules can be generated from the inheritance source and the expected peripheral configuration in the component type definition.
[0030] The format for defining a reification rule is shown in Figure 38. A reification rule specifies the following information: the reification target, the configuration required for reification, the configuration after reification, and the constraints. The type name of the component to be reified is specified as the reification target. A reification rule targets only one component, and only one component is reified by applying a reification rule once.
[0031] The reification rule specifies the surrounding configurations that must be satisfied before the reification rule can be applied. In other words, the reification rule is applied only if the surrounding configurations specified in the reification rule exist around the component to be reified. The reification rule specifies the configurations that remain after the reification rule is applied.
[0032] When a reification rule is applied, the components of the reification target are replaced with the configuration shown in the reification configuration. The constraints specify the conditions that must be satisfied after the reification rule is applied. That is, the reification rule is applied only if the reification target and its surrounding configuration can still satisfy the contents specified in the constraints after the reification rule is applied.
[0033] FIG. 39 shows an example of a component type definition. FIG. 40 shows an example of a definition of a reification rule that can be generated from the component type definition shown in FIG. 39. FIG. 39 shows an example of a definition of OS, which is an abstract component type representing an operating system, and examples of definitions of Windows and Ubuntu, which are types that inherit OS. OS holds required_memory, which specifies the amount of memory used by the OS, as a property. However, since the OS type is an abstract component type, no specific value is set. Since the OS needs to be hosted on some machine in order for itself to exist, it is defined as an expected peripheral configuration in which the relationship Hosted_on must exist between the OS itself and the machine.
[0034] Furthermore, as a constraint condition when the expected peripheral configuration is applied, it is defined that the amount of memory installed in the host machine is equal to or greater than the memory usage required by the OS itself. Also, as the type that inherits the OS, the components of the specific OS, Windows type and Ubuntu type, are defined, and the specific memory usage value is set.
[0035] Figure 40 shows examples of definitions of three types of reification rules for reifying an OS. Reification rule 1 defines a reification rule for reifying an abstract component of type OS into a concrete component of type Windows. Reification rule 2 defines a reification rule for reifying an abstract component of type OS into a concrete component of type Ubuntu. Reification rule 3 defines a reification rule for reifying an OS by generating Machine-type components and Hosted_on-type relationships that connect OS-type components and Machine-type components so as to satisfy the expected peripheral configuration of the OS. Note that data defining reification rules such as that shown in Figure 40 is also called "reification rule definition information."
[0036] The system design is determined to be complete when two processes are completed for all components included in the system configuration: a process of instantiating each component into a concrete component, and a process of instantiating the system configuration so as to satisfy the expected peripheral configurations defined for each component. In other words, when the concreteness of all components in the system configuration is True and the expected peripheral configurations of all components are satisfied, the system configuration is determined to be a concrete configuration and the design is determined to be complete. When multiple expected peripheral configurations are defined for one component, it is sufficient that any one of those expected peripheral configurations is satisfied.
[0037] Furthermore, when a system is instantiated to satisfy the expected peripheral configuration of a certain component, if all or part of the components described in the configuration after instantiation of the instantiation rules that define the content of the instantiation are already present in the system configuration, the system may be instantiated into a configuration that utilizes the existing components, or into a configuration that adds new components.
[0038] For example, if the expected peripheral configuration of an App-type component includes configuration information that the App itself is hosted by some OS-type component, a new OS may be added to the system configuration to satisfy the expected peripheral configuration of this App, or if an OS on which another App is hosted already exists in the system configuration, a configuration in which the App is hosted by the existing OS may be specified without adding a new OS.
[0039] In this way, when instantiating to satisfy the expected peripheral configuration, it is possible to arbitrarily choose whether to instantiate a configuration that uses existing components or to instantiate a new configuration that is added. Therefore, even when applying one instantiation rule to a certain configuration, there may be multiple patterns of how it can be applied. The patterns of how it can be applied are also called "application patterns."
[0040] (Embodiment 1) Hereinafter, a system configuration evaluation device, a system configuration evaluation method, and a program according to the first embodiment will be described with reference to FIGS.
[0041] [Device configuration] First, a schematic configuration of a system configuration evaluating device in the first embodiment will be described with reference to Fig. 1. Fig. 1 is a configuration diagram showing a schematic configuration of an example of a system configuration evaluating device.
[0042] 1, a system configuration evaluation device 1 is a device for evaluating the configuration of a computer system such as an ICT system or a computer system. As shown in FIG. 1, the system configuration evaluation device 1 includes a configuration evaluation unit 11 and a configuration element learning unit 12.
[0043] The configuration evaluation unit 11 uses the learning model to output an evaluation value for each component of the computer system, and further integrates the output evaluation values to output an evaluation value for the entire computer system.
[0044] The component learning unit 12 executes the design of a computer system based on preset requirements, and judges whether each component included in the configuration obtained in the process from the start to the end of the design is realized in accordance with the requirements. In addition, the component learning unit 12 uses the result of the judgment to generate learning data for a learning model, and executes machine learning on the learning model using the generated learning data.
[0045] The first effect of the present invention is that it solves the problem of not being able to apply the learning content when a part of the configuration is changed and the impact of the change is unknown, and it makes it possible to apply the learning content on a component-by-component basis even if the entire configuration is changed. The reason for this is as follows.
[0046] In this way, the system configuration evaluation device 1 learns the likelihood of success or failure of the instantiation of each component, not the likelihood of success or failure of the design of the entire system configuration. In other words, the system configuration evaluation device 1 generates a reward according to the success or failure of the instantiation of each component, and learns an evaluation that indicates the likelihood that the instantiation will be completed correctly for each component based on the reward. Therefore, the system configuration evaluation device 1 makes it possible to learn on a component-by-component basis, and makes it possible to apply the learned content even if a part of the system configuration is changed. Furthermore, the system configuration evaluation device 1 makes the amount of data and time required for learning independent of the scale of the configuration, thereby suppressing the increase in the amount of data and time required for learning according to the scale of the system configuration, and improving the learning efficiency.
[0047] Next, the configuration and functions of the system configuration evaluation device in the first embodiment will be specifically described with reference to Fig. 2. Fig. 2 is a configuration diagram showing a more specific configuration of an example of the system configuration evaluation device. As shown in Fig. 2, the system configuration evaluation device 1 includes a configuration evaluation unit 11 and a configuration element learning unit 12, as described above.
[0048] 2, the configuration evaluation unit 11 includes a configuration element evaluation unit 111 and a configuration overall evaluation unit 112. The configuration element learning unit 12 includes a learning process control unit 121, a design trial unit 122, a concretization success determination unit 123, a reward generation unit 124, a learning data generation unit 125, and a machine learning unit 126. These units each operate roughly as follows.
[0049] The component evaluation unit 111 uses a learning model to output an evaluation value for each component included in the input configuration. The evaluation value indicates the likelihood of whether or not the component can be completely realized. The configuration overall evaluation unit 112 aggregates the evaluation values for each component output from the component evaluation unit 111, and outputs an evaluation value for the entire configuration of the computer system.
[0050] The learning process control unit 121 controls the entire learning process in the learning model. The design trial unit 122 trials the design of a computer system and collects configurations obtained in the process from the start to the end of the design.
[0051] The instantiation success determination unit 123 determines whether or not each component included in the configuration that is the design result of the design trial unit 122 has been completely instantiated in accordance with the requirements. The reward generation unit 124 calculates a reward to be given to each component included in each collected configuration, based on the result of the determination by the instantiation success determination unit 123.
[0052] The learning data generation unit 125 generates, for each collected configuration, the configuration and the reward to be given to each component calculated for the configuration as learning data. The machine learning unit 126 uses the generated learning data to train the learning model used by the component evaluation unit 111 to learn an evaluation value indicating the likelihood of whether or not the component can be completely instantiated.
[0053] [Device operation] Next, an example of the operation of the system configuration evaluating device 1 in the first embodiment will be described with reference to Figs. 3 to 10. In the following description, Figs. 1 and 2 will be referred to as appropriate. In the first embodiment, a system configuration evaluating method is implemented by operating the system configuration evaluating device 1. Therefore, in the first embodiment, the description of the system configuration evaluating method will be replaced with the description of the operation of the system configuration evaluating device below.
[0054] In the first embodiment, the operations of the system configuration evaluation device 1 can be broadly classified into two types. One is a configuration evaluation learning operation, and the other is a configuration evaluation operation. In the configuration evaluation learning operation, the system configuration evaluation device 1 learns a learning model for evaluation of each component element of a computer system to evaluate the configuration of the computer system (ICT system). In the configuration evaluation operation, the system configuration evaluation device 1 utilizes the learned learning model to evaluate the computer system configuration. Each of these operations will be described below.
[0055] The learning operation S1 of the configuration evaluation in the system configuration evaluation device 1 will be described in detail with reference to Fig. 3. First, the learning process control unit 121 receives the system requirements R1 to be learned as an input (step S11).
[0056] Next, the component learning unit 12 performs reinforcement learning for an appropriate period of time using the system requirement R1 (step S12). The appropriate period is preferably determined based on the learning time, the number of learning times, for example, the number of updates of the weight of the neural network in the case of reinforcement learning using a neural network, or the like, but may also be determined based on other factors.
[0057] Furthermore, the design trial unit 122 attempts to design the system requirement R1 using the current learning model (for example, the neural network in the case of reinforcement learning using a neural network) (step S13). As a design method in this case, for example, the design method disclosed in Patent Document 1 can be mentioned. However, in the embodiment, the design method is not particularly limited.
[0058] Then, the learning process control unit 121 judges whether the learning is sufficient or not based on the result of step S13 (step S14). The method of judgment in step S14 depends on the design method in step S13. For example, it is assumed that step S13 is performed by the design method disclosed in Patent Document 1. In this case, there are a method of judging that the learning is sufficient when the number of search steps in the design is equal to or less than a certain number, and a method of judging that the learning is sufficient when the number of search steps in the design in step S13 performed in the past is equal to or less than a certain number of times in succession. However, in the embodiment, the method of judgment in step S14 is not particularly limited.
[0059] If the result of the determination in step S14 is that the learning is insufficient, steps S12 and S13 are executed again. On the other hand, if the result of the determination in step S14 is that the learning is sufficient, the learning operation S1 ends.
[0060] The operation of step S12 for performing reinforcement learning will be described in detail with reference to FIG. 4. The operation described here is an example of the operation for learning a design method related to the functional requirements of the system. The operation in step S12 is not limited to the one described here, so long as learning of a design method related to the functional requirements of the system is realized. In addition, as described above, the design method may be, for example, the design method disclosed in Patent Document 1, but is not limited thereto.
[0061] 4, first, the design trial unit 122 performs a design trial using the system requirement R1 and generates a configuration path CP1 (step S121). Then, the learning data generation unit 125 generates learning data (step S122). Next, the design trial unit 122 determines whether steps S121 to S122 have been repeated a prescribed number of times (step S123).
[0062] The specified number of times is appropriately determined based on the size of the training data, the number of training data that can be generated in one repetition, the specifications of the machine used for training, etc. In the embodiment, the number of times may be determined based on factors other than these.
[0063] If it is determined in step S123 that steps S121 to S122 have not been repeated the specified number of times, the design trial unit 122 executes step S121 again. On the other hand, if it is determined in step S123 that steps S121 to S122 have been repeated the specified number of times, the machine learning unit 126 executes machine learning of the learning model using the learning data (step S124).
[0064] Next, the machine learning unit 126 determines whether the learning has been completed, that is, whether the learning has been performed for an appropriate period of time (step S125). If the result of the determination in step S125 is that the learning has not been completed, steps S121 to S124 are executed again. On the other hand, if the result of the determination in step S125 is that the learning has been completed, step S12 ends.
[0065] The appropriate period here is preferably determined based on the learning time, the number of learning times, for example, in the case of reinforcement learning using a neural network, the number of updates of the weights of the neural network, etc. However, in the first embodiment, the appropriate period may be determined based on factors other than these.
[0066] The operation of step S121 for generating a configuration path will be described in detail with reference to Fig. 5. Unless otherwise specified, the subject of the operation of step S121 is the design trial unit 122. First, the design trial unit 122 assigns system requirement R1 to a variable representing the current configuration (step A11). Hereinafter, the content assigned to the variable representing the current configuration will be simply referred to as the "current configuration".
[0067] Next, the design trial unit 122 initializes the configuration path CP1 as a variable of a list-type data structure containing only the current configuration as its contents (step A12). The configuration path CP1 is a variable that holds the process of the configuration under design, obtained as a result of the design trial performed to generate learning data. Note that, although the data structure of the configuration path CP1 is a list type as an example here, a data structure other than the list type may be used as long as it is capable of storing multiple contents of the same type in a fixed order.
[0068] Furthermore, the design trial unit 122 lists all configurations that can be generated from the current configuration by applying the instantiation rules once (step A13). Then, the design trial unit 122 inputs each of the configurations listed in step A13 to the configuration overall evaluation unit 112 and performs configuration evaluation (step A14). The details of the configuration evaluation operation T1 will be described later.
[0069] Next, the design trial unit 122 assigns the highest evaluation value among the configurations evaluated in the process of step A14 to a variable representing the current configuration (step A15). Furthermore, the design trial unit 122 adds the current configuration to the end of the configuration path CP1 (step A16).
[0070] Next, the design trial unit 122 judges whether the concretization rules can be applied to the current configuration (step A17). If the result of the judgment in step A17 is that the concretization rules can be applied, the design trial unit 122 executes steps A13 to A16 again. On the other hand, if the result of the judgment in step A17 is that the concretization rules cannot be applied, step S121 ends.
[0071] An example of configuration path CP1 is shown in Fig. 36. Fig. 36 shows an example in which the design shown in Fig. 30 branches due to the operation of step S121 described above, and configuration path CP1 is generated in the order of (a) => (b) => ··· => (f) shown in Fig. 30.
[0072] The operation of step S122 for generating learning data will be described in detail with reference to Fig. 6. Unless otherwise specified, the subject of the operation of step S122 is the reward generation unit 124. Hereinafter, the current configuration at the end of step S121 will be referred to as the "final configuration".
[0073] First, the concretization success determination unit 123 determines whether each component included in the final configuration is “completely concrete” (step B11). The definition of a component being “completely concrete” and the method of determining this will be described in detail later.
[0074] Next, the reward generation unit 124 judges whether or not there is a configuration that has not been selected in the previous step B12Y remaining in the configuration path CPI (step B12X). If the result of the judgment in step B12X is that there is no configuration remaining in the configuration path CPI, step S122 ends.
[0075] On the other hand, if the result of the determination in step B12X is that configurations remain in the configuration path CPI, the reward generation unit 124 performs the operations of steps B12Y to B1C, which will be described below, for each remaining configuration, starting from the end.
[0076] Specifically, first, the reward generation unit 124 selects the configuration at the back of the configuration path CP1 from among the configurations not selected in the previously executed step B12Y (step B12Y). Next, the reward generation unit 124 determines whether the configuration selected in step B12Y is registered as a node of the search tree T1 (step B13).
[0077] If it is determined in step B13 that the configuration selected in step B12Y has not been registered as a node of the search tree T1 (step B13: No), the reward generation unit 124 performs the operations of steps B14 to B16 described below.
[0078] First, the reward generation unit 124 registers the configuration being processed in step B12 as a node of a search tree T1 (step B14). The search tree T1 is a tree-like data structure that stores how much reward was obtained when each part of the configuration was instantiated.
[0079] Next, the reward generation unit 124 initializes a variable representing the number of times the node has been visited in the search, as a variable of the node registered in step B14, to an initial value of 1 (step B15). Hereinafter, the variable and its contents will be simply referred to as the "number of visits."
[0080] Furthermore, the reward generation unit 124 initializes a dictionary-type variable as a variable of the node (step B16). The dictionary-type variable is a variable that stores, for each component included in the configuration being processed in step B12, the number of times the component became "fully concrete" as a result of the design. The dictionary-type variable is also a dictionary-type variable that has the identifier of the component as a key and the number of times the component became "fully concrete" as a value.
[0081] As a result of the initialization, all values are set to 0. Hereafter, the value that can be obtained by using the identifier of a certain component as a key using a dictionary-type variable is expressed as the "number of successful instantiations" of the component. Note that while a dictionary-type variable is used as an example here, any data structure other than a dictionary-type may be used as long as it is capable of storing, for each component, the number of times that each component included in the configuration being processed in step B12 became "fully concrete" as a result of the design. Step B18X is executed after step B16.
[0082] On the other hand, if the result of the determination in step B13 is that the configuration selected in step B12Y is registered as a node of the search tree T1 (step B13: Yes), the reward generation unit 124 increments the visit count of the node by 1 (step B17). After step B16, step B18X is executed.
[0083] Next, the reward generation unit 124 judges whether or not the configuration path CPI contains any components that were not selected in the previous step B18Y in the configuration selected in step B12Y (step B18X). If the result of the judgment in step B18X indicates that any components remain, the reward generation unit 124 executes the processes B18Y to B1B described below.
[0084] First, the reward generation unit 124 selects one component from the components included in the configuration selected in step B12Y (step B18Y). Next, the reward generation unit 124 determines whether the component selected in step B18Y is "completely specific" in the final configuration (step B19).
[0085] If the result of the judgment in step B19 is that the component selected in step B18Y is “completely concrete” in the final configuration (step B19: Yes), the reward generation unit 124 increases the number of successful instantiations of the component held by the node of the configuration selected in step B12Y by 1 (step B1A).
[0086] On the other hand, if the result of the judgment in step B19 is that the component selected in step B18Y is not "completely concrete" in the final configuration (step B19: No), the reward generation unit 124 executes step B1B. That is, the reward generation unit 124 divides the value of the number of successful instantiations of the component selected in step B18Y by the number of visits to the node of the configuration selected in step B12Y, and sets the obtained value as the reward for the component (step B1B). After that, the reward generation unit 124 executes step B18X again.
[0087] Furthermore, if the result of the judgment in step B18X is that no components remain, the learning data generation unit 125 generates learning data for each component included in the configuration selected in step B12Y, consisting of that configuration, the identifier of that component, and the reward for that component generated in step B1B, and adds it to the set of learning data (step B1C).
[0088] An example of the search tree T1 is shown in FIG. 37. FIG. 37 shows an example of a configuration generated in the process of branching the design shown in FIG. 30 by the operation of step S122 described above. In FIG. 37, the letters attached to the nodes mean the configuration in FIG. 30 that the node represents. In the example of FIG. 38, the node representing the configuration (c) shows information on the number of visits (10 times) and the number of times that the components included in the configuration (c) have been "fully instantiated" (s1 7 times, b1 4 times, a1 5 times, and a2 6 times, respectively). Although not shown in FIG. 38, the nodes (a) to (g) other than the configuration (c) also hold information on the number of visits and the number of times that the components included in the configuration have been "fully instantiated".
[0089] Before describing in detail the operation of step B11 for determining whether a component is "completely specific", the condition for a component to be "completely specific" will be conceptually described. A component being "completely specific" means that the component is concrete including all other components necessary for it.
[0090] Here, a component is "concrete" if it satisfies the two conditions explained below. The first condition is that the type of the component is a concrete type. The second condition is that the expected peripheral configuration does not exist for the type of the component, or that the expected peripheral configuration exists for the type of the component and the expected peripheral configuration of the component is satisfied.
[0091] The exact condition for a component to be "fully concrete" is recursively defined by the following two conditions. The first condition is that the component is concrete. The second condition is that if an expected surrounding configuration exists for the component's type and the expected surrounding configuration has been applied to the component, then all components that appear in the expected surrounding configuration are "fully concrete".
[0092] In light of this, the operation of step B11 for determining whether or not a component is "completely concrete" will be described in detail with reference to Fig. 7. The subject of the operation of step B11 is the instantiation success determination unit 123 unless otherwise specified. Step B11 is defined as a recursive procedure with one component and one configuration as arguments, which will be described next.
[0093] First, the instantiation success determination unit 123 determines whether the expected peripheral configuration exists in the type of the component of the argument (step B111). If the result of the determination in step B111 is that the expected peripheral configuration does not exist in the type of the component of the argument (step B111: No), the instantiation success determination unit 123 returns True (step B112) and ends step B11.
[0094] On the other hand, if the result of the judgment in step B111 is that an expected peripheral configuration exists for the type of the component of the argument (step B111: Yes), the instantiation success judgment unit 123 judges whether the expected peripheral configuration of the component of the argument is satisfied (step B113).
[0095] If the result of the determination in step B113 is that the expected peripheral configuration of the argument component is not satisfied (step B113: No), the instantiation success determination unit 123 returns False (step B114) and ends step B11.
[0096] On the other hand, if the result of the judgment in step B113 is that the expected peripheral configuration of the argument components is satisfied (step B113: Yes), the instantiation success judgment unit 123 lists all the expected peripheral configurations of the argument components present in the argument configuration (step B115).
[0097] Next, the instantiation success determination unit 123 determines whether or not there is still an expected peripheral configuration that has not been selected in the previously executed step B116Y (step B116X). If the result of the determination in step B116X is that there is still an expected peripheral configuration that has not been selected, the instantiation success determination unit 123 performs the operations of steps B116Y to B11D described below.
[0098] First, the instantiation success determination unit 123 selects one of the expected peripheral configurations listed in step B115 (step B116Y). Next, the instantiation success determination unit 123 assigns True to a flag variable (step B117).
[0099] Furthermore, the instantiation success determination unit 123 determines whether or not there is an unprocessed component in the expected peripheral configuration selected in step B116Y (step B118X). If the result of the determination in step B118X is that there is no unprocessed component in the expected peripheral configuration selected in step B116Y, the instantiation success determination unit 123 executes step B11C.
[0100] On the other hand, if the result of the determination in step B118X is that there is an unprocessed component in the expected peripheral configuration selected in step B116Y, the instantiation success determination section 123 performs the operations of steps B118Y to B11B described below.
[0101] First, the instantiation success determination unit 123 selects one component from among the components included in the expected peripheral configuration selected in step B116Y (step B118Y). Next, the instantiation success determination unit 123 performs the recursive procedure of step B11 using the component selected in step B118Y and the argument configuration of step B11 as arguments (step B119).
[0102] Next, the instantiation success determination unit 123 determines whether the return value of step B119 is True (step B11A). If the result of the determination of step B11A is that the return value of step B119 is True (step B11A: Yes), the instantiation success determination unit 123 executes step B118X again.
[0103] On the other hand, if the return value is False as a result of the determination in step B11A (step B11A: No), instantiation success determination unit 123 assigns False to the flag variable (step B11B).
[0104] Next, after execution of step B11B, or if step B118X is No, the instantiation success determination unit 123 determines whether the content of the flag variable is True (step B11C). If the content of the flag variable is True as a result of the determination in step B11C (step B11C: Yes), the instantiation success determination unit 123 returns True (step B11D) and ends the operation of step B11.
[0105] On the other hand, if it is determined in step B11C that the content of the flag variable is False (step B11C: No), the instantiation success determination section 123 executes step B116X again.
[0106] Also, if the result of the judgment in step B116X is that there are no unselected expected peripheral configurations, the concretization success judgment unit 123 returns False (step B114) since processing of all expected peripheral configurations has been completed, and terminates the operation of step B11.
[0107] The operation of step S124 for performing learning based on the learning data will be described in detail with reference to Fig. 8. Unless otherwise specified, the subject of the operation of step S124 is the machine learning unit 126. The learning model of the component evaluation unit 111 is a GNN (Graph Neural Network) that receives as input each node and edge in a graph and graph information in which the graph itself has attribute values, and outputs graph information in a similar format.
[0108] First, the machine learning unit 126 selects one piece of learning data LD1 from the set of learning data saved in step S122 (step C11). Then, the machine learning unit 126 inputs graph information representing the configuration included in the learning data LD1 to the learning model of the component evaluation unit 111, and sets the graph information output from the learning model of the component evaluation unit 111 as OG1 (step C12).
[0109] Next, the machine learning unit 126 sets as VP1 a pair of an attribute value PV1 of a component included in OG1 that has the same identifier as the identifier of a component included in the learning data LD1, and a reward included in the learning data LD1 (step C13).
[0110] Next, the machine learning unit 126 determines whether all the learning data has been selected from the set of learning data (step C14). If the result of step C14 shows that all the learning data has not been selected from the set of learning data (step C14: Yes), the machine learning unit 126 executes steps C11 to C13 again.
[0111] On the other hand, if the result of the judgment in step C14 is that all the learning data has been selected from the set of learning data (step C14: No), the machine learning unit 126 generates VP1 for all the data included in the learning data, and the collection of these is set as VPS1 (step C15).
[0112] Furthermore, the machine learning unit 126 performs machine learning on the learning model of the component evaluation unit 111 so as to minimize the loss function, for each pair included in VPS1, using the mean squared error of the attribute value and the fixed reward as the loss function (step C16).
[0113] The operation of step S13 for performing a trial design in the learning process will be described in detail with reference to Fig. 9. The subject of the operation of step S13 is the design trial unit 122, unless otherwise specified.
[0114] First, the design trial unit 122 assigns the system requirement R1 to a variable representing the current configuration (step S131). Hereinafter, the content assigned to the variable representing the current configuration is simply referred to as the "current configuration." Then, the design trial unit 122 initializes a variable NL1, which stores candidates for the configuration to be next assigned to the variable representing the current configuration, as an empty list (step S132).
[0115] Next, the design trial unit 122 judges whether the concretization rule can be applied to the current configuration (step S137). If the result of the judgment in step S137 is that the concretization rule cannot be applied to the current configuration, step S138, which will be described later, is executed. On the other hand, if the result of the determination in step S137 is that the concretization rule can be applied to the current configuration, the design trial unit 122 lists all configurations that can be generated from the current configuration by applying the concretization rule once (step S133).
[0116] Furthermore, the design trial unit 122 inputs each of the configurations listed in step S133 to the configuration overall evaluation unit 112, and performs configuration evaluation (step S134). Details of the configuration evaluation operation T1 will be described later. Then, the design trial unit 122 assigns the configuration with the highest evaluation value among the configurations obtained by the processing of step S134 to a variable representing the current configuration (step S135).
[0117] Next, for each configuration among those listed in step S133 other than the configuration assigned to the variable representing the current configuration in step S135, a pair consisting of that configuration and the evaluation value of that configuration obtained in step S134 is added to the list stored in variable NL1 (step S136).
[0118] After executing step S136, the design trial unit 122 executes step S137 again. If the result of the determination in step S137 is that the instantiation rules can be applied to the current configuration, the design trial unit 122 executes step S133 again.
[0119] On the other hand, if the result of the determination in step S137 is that the concretization rules cannot be applied to the current configuration, the design trial unit 122 determines whether the current configuration is a concrete configuration (step S138). If the result of the determination in step S138 is that the current configuration is a concrete configuration (step S138: Yes), the operation in step S13 ends.
[0120] On the other hand, if the result of the determination in step S138 is that the current configuration is not the specific configuration (step S138: No), the design trial unit 122 extracts the pair with the highest evaluation value from the list stored in the variable NL1 (step S139). Next, the design trial unit 122 assigns the configuration included in the pair extracted in step S139 to the variable representing the current configuration (step S13A). After that, the design trial unit 122 proceeds to step S137 again.
[0121] The configuration evaluation operation T1 will be described in detail with reference to Fig. 10. The configuration evaluation operation T1 is performed by the configuration comprehensive evaluator 112 unless otherwise specified.
[0122] 10, the configuration overall evaluation unit 112 receives the configuration to be evaluated as an input (step T11). Next, the configuration to be evaluated received as an input in step T11 is input to the component evaluation unit 111, and an evaluation value of each component included in the input configuration is obtained (step T12).
[0123] Furthermore, the configuration overall evaluation unit 112 determines the smallest one of the evaluation values of the components obtained in step T12 as the evaluation value of the configuration to be evaluated (step T13). In step T13, the evaluation value indicates the likelihood of whether the components can be completely realized, as described above. Note that the method of determining the evaluation value is not particularly limited to the above-mentioned step T13. The evaluation value of the configuration to be evaluated may be the average value of the evaluation values of the components, or the maximum value of the evaluation values of the components.
[0124] [Effect description] In the first embodiment, the likelihood of success or failure of the instantiation of each component is learned, not the likelihood of success or failure of the design of the entire system configuration. In other words, a reward is generated according to the success or failure of the instantiation of each component, and an evaluation value representing the likelihood that the instantiation will be completed correctly for each component is learned based on the reward. As a result, learning on a component-by-component basis becomes possible, resolving the problem of not being able to apply the learned content when a part of the configuration is changed without understanding the impact, and making it possible to apply the learned content on a component-by-component basis even if the entire configuration is changed. In addition, the problem of the amount of data and time required for learning increasing according to the size of the configuration, making it unscalable, is also resolved, improving the learning efficiency of automatic design of ICT systems.
[0125] [program] In the first embodiment, the program may be a program that causes a computer to execute each step shown in Fig. 3 to Fig. 10. By installing and executing this program in a computer, the system configuration evaluation device 1 and the system configuration evaluation method can be realized. In this case, the processor of the computer functions as the configuration evaluation unit 11 and the configuration element learning unit 12 and performs the processing. Examples of the computer include a general-purpose PC, a smartphone, and a tablet terminal device.
[0126] The program may be executed by a computer system constructed by a plurality of computers. In this case, for example, one or a plurality of computers may function as either the configuration evaluation unit 11 or the configuration element learning unit 12.
[0127] (Embodiment 2) Next, a system configuration evaluation device, a system configuration evaluation method, and a program according to a second embodiment will be described with reference to FIGS.
[0128] In the second embodiment, curriculum learning is performed. Curriculum learning is a method for efficient learning by dividing a large problem to be learned into smaller problems and learning them in an appropriate order. In the second embodiment, the large problem of designing an entire configuration is divided into smaller problems of specifying each of the components included in the configuration, and learning them in an appropriate order is performed. In the following, parts similar to the first embodiment are omitted as appropriate.
[0129] [Device configuration] First, the configuration of a system configuration evaluation device in the second embodiment will be described with reference to Fig. 11. Fig. 11 is a configuration diagram showing the configuration of an example of a system configuration evaluation device.
[0130] 11, the system configuration evaluation device 2 includes a configuration evaluation unit 21 and a configuration element learning unit 22. Furthermore, the configuration evaluation unit 21 includes a configuration element evaluation unit 111 and a configuration overall evaluation unit 112. The configuration element learning unit 22 includes a learning process control unit 221, a design trial unit 122, a concretization success determination unit 123, a reward generation unit 124, a learning data generation unit 125, a machine learning unit 126, and a curriculum generation unit 227. Each unit generally operates as follows.
[0131] The outline of the operation of each of the component evaluation unit 111, configuration overall evaluation unit 112, design trial unit 122, concretization success determination unit 123, reward generation unit 124, learning data generation unit 125, and machine learning unit 126 is similar to the operation of each unit described in embodiment 1.
[0132] However, as described above, in the second embodiment, the component element learning unit 22 includes the curriculum generating unit 227, which is a difference between the second embodiment and the first embodiment. In addition, the operation of the learning process control unit 221 also differs accordingly.
[0133] The curriculum generation unit 227 generates a curriculum based on dependencies that represent the relationship between a specific component and another component required to realize it, so that learning is carried out in the order of components that have no dependent relationships and components that have dependent relationships, after learning has been completed.
[0134] The learning process control unit 221 controls the execution of the learning process according to the curriculum generated by the curriculum generation unit, and executes machine learning for the learning model. The learning process in this case is roughly classified into two types: initial learning and re-learning. The details of these will be described later.
[0135] [Device operation] Next, an example of the operation of the system configuration evaluating device 2 in the second embodiment will be described with reference to Fig. 12 to Fig. 22. In the following description, Fig. 11 will be referred to as appropriate. Also, in the second embodiment, a system configuration evaluating method is implemented by operating the system configuration evaluating device 2. Therefore, in the second embodiment, the description of the system configuration evaluating method will be replaced with the description of the operation of the system configuration evaluating device below.
[0136] In the second embodiment, there are three main operations. These are an initial learning operation for configuration evaluation, a re-learning operation for configuration evaluation, and an operation for configuration evaluation. In the initial learning operation for configuration evaluation, in order to evaluate the system configuration of a computer system, specifically an ICT system, a learning model that has not been previously trained is trained for the evaluation of each component unit of the ICT system. In the re-learning operation for configuration evaluation, a learning model that has been previously trained is trained for the evaluation of each component unit of the ICT system. In the operation for configuration evaluation, the trained learning model is utilized to evaluate the system configuration of the ICT system. Each of these operations will be explained below.
[0137] With reference to FIG. 12, operation U2 of initial learning of configuration evaluation in the system configuration evaluation device 2 will be described in detail.
[0138] First, as shown in Fig. 12, curriculum generation unit 227 generates a dependency graph (step U21). Next, curriculum generation unit 227 generates a curriculum (step U22). The curriculum has a graph structure, and the nodes in the curriculum are called learning items.
[0139] Next, the curriculum generation unit 227 sets the learning completion flag of each learning item in the curriculum to incomplete (step U23). Then, the curriculum generation unit 227 determines whether there is a learning item in the curriculum whose learning completion flag is incomplete (step U24X). If the result of the determination in step U24X is that there is no learning item in the curriculum whose learning completion flag is incomplete, operation U2 ends.
[0140] On the other hand, if the result of the determination in step U24X is that there is any learning item in the curriculum whose learning completion flag is incomplete, curriculum generation unit 227 performs the operations of steps U25 to U27 described below.
[0141] First, the learning process control unit 221 selects one learning item from the curriculum that has no dependencies or whose learning completion flags for all dependencies are set to "completed" (step U24Y). Next, the curriculum generation unit 227 generates a set of requirements for learning the learning item selected in step U24Y (step U25).
[0142] Furthermore, the component learning unit 22 uses the set of requirements generated in step U25 to learn the learning item selected in step U24Y (step U26). Then, the learning process control unit 221 sets the learning completion type flag of the learning item selected in step U24Y to completed (step U27). After that, the learning process control unit 221 executes step U24X again.
[0143] Before describing operation U21 for generating a dependency graph, the dependency graph will be described. A dependency graph is information with a graph structure that represents the dependency relationships between types of components. Component types are represented as nodes, and dependencies between the component types are represented as directed edges. A dependency relationship in a dependency graph is a relationship that represents the types of other components that are required for a certain type of component to function correctly in a system configuration.
[0144] For example, if a component type ET_Y is included in the prerequisite configuration information or required configuration information, which is the expected peripheral configuration of a certain component type ET_X, the components of type ET_Y are necessary for the components of type ET_X to function. In this case, there is a dependency relationship between types ET_X and ET_Y, and type ET_X is expressed as depending on type ET_Y.
[0145] Directed edges are drawn from the nodes of a component type to the nodes of other component types that the component type depends on. In the previous example, a directed edge is drawn from the node of type ET_X to the node of type ET_Y.
[0146] Figure 34 shows an example of a dependency graph. In Figure 34, the letters attached to the nodes indicate the name of the component type that the node represents. Although an explanation of all the component types included in Figure 34 is omitted, for example, when focusing on component type c, component type c depends on component types d and f, and is dependent on component types a and g.
[0147] Step U21 of generating the dependency graph will be described in detail with reference to Fig. 13. The subject of step U21 is the curriculum generating unit 227 unless otherwise specified.
[0148] First, as shown in FIG. 13, the curriculum generation unit 227 registers, in the dependency graph, nodes representing all component types defined in the component type definition information (step U211).
[0149] Next, the curriculum generation unit 227 determines whether or not there is a node that has not yet been selected by step U212Y (described later) among the nodes registered in the dependency graph (step U212X). If the result of the determination in step U212X is that there is no node that has not yet been selected, step U21 ends. On the other hand, if the result of the determination in step U212X is that there is a node that has not yet been selected, the curriculum generation unit 227 performs the operations of steps U212Y to U219 (described below) (step U212X).
[0150] First, the curriculum generation unit 227 selects one node that has not yet been selected from all nodes registered in the dependency graph (step U212Y). Next, the curriculum generation unit 227 assigns a variable TS1 that stores a set of component types on which the component type ET1 represented by the node selected in step U212Y depends as a variable to the node selected in step U212Y, and initializes the variable TS1 as an empty set (step U213).
[0151] Furthermore, the curriculum generating unit 227 lists all the instantiation rules that have the component type ET1 as the instantiation target from the instantiation rules defined in the instantiation rule definition information (step U214). Then, the curriculum generating unit 227 determines whether there are any more instantiation rules (step U215X).
[0152] If the result of the determination in step U215X is that there are no concretization rules, curriculum generation unit 227 executes step U212X again. On the other hand, if the result of the determination in step U215X is that there are still concretization rules, curriculum generation unit 227 performs the operations of steps U215Y to U219 described below for each concretization rule listed in step U214 (step U215X).
[0153] First, the curriculum generation unit 227 selects one of the instantiation rules listed in step U214 (step U215Y). Next, the curriculum generation unit 227 determines whether the component type ET2 of the component included in the configuration after instantiation of the instantiation rule selected in step U215Y, which has the same identifier as the component to be instantiated by the instantiation rule selected in step U215Y, is the same as the component type ET1 (step U216).
[0154] If the result of the determination in step U216 is that the component type ET2 is not the same as the component type ET1 (step U216: No), the curriculum generation unit 227 adds the component type ET2 as an element of the set stored in the variable TS1 (step U217).
[0155] Next, the curriculum generation unit 227 draws an edge from the node selected in step U212Y toward the node representing the component type ET2 registered in the dependency graph (step U218). Furthermore, the curriculum generation unit 227 sets the expected peripheral configuration flag of the edge drawn in step U218 to False (step U219). After that, the curriculum generation unit 227 executes step U21A. The expected peripheral configuration flag is a flag indicating whether the edge represents a dependency relationship based on the expected peripheral configuration.
[0156] Also, if the result of the determination in step U216 is that the component type ET2 is the same as the component type ET1 (step U216: Yes), or if step U219 has been executed, the curriculum generation unit 227 executes step U21A.
[0157] Specifically, the curriculum generating unit 227 lists all components that are included in the configuration required for instantiation of the instantiation rule selected in step U215Y or in the configuration after instantiation (step U21A). Furthermore, the curriculum generating unit 227 adds the type of each component listed in step U21A as an element of the set stored in the variable TS1 (step U21B).
[0158] Then, for each component type added as an element of the set stored in variable TS1 in step U21B, curriculum generation unit 227 draws an edge from the node selected in step U212Y toward each node representing each component type registered in the dependency graph (step U21C). Next, for each edge drawn in step U21C, curriculum generation unit 227 sets the expected peripheral configuration flag of the edge to True (step U21D).
[0159] Before describing the operation U22 for generating a curriculum, we will explain what a curriculum is. A curriculum is information on a graph that represents the partial order relationships of individual learning performed in curriculum learning. In the graph, learning items are represented as nodes, and dependencies between learning items are represented as directed edges.
[0160] A learning item is an individual learning performed in a curriculum study, and in the embodiment, a learning item holds at least information of the component type to be studied. A dependency relationship in a curriculum is a relationship that represents a learning item that must be studied before another learning item can be studied.
[0161] For example, suppose that the learning target of a learning item LT_X is a component type ET_X, and the learning target of another learning item LT_Y is a component type ET_Y, and that the component type ET_X depends on the component type ET_Y. In this case, since the component type ET_Y may appear in a design using the component type ET_X, the learning item LT_Y needs to be learned before the learning item LT_X. In this case, there is a dependency relationship between the learning items LT_X and LT_Y, and the learning item LT_X is expressed as depending on the learning item LT_Y.
[0162] A directed edge is drawn from the node of a learning item to the node of another learning item on which the learning item depends. In the previous example, a directed edge is drawn from the node of learning item LT_X to the node of learning item LT_Y. As can be seen from the above explanation, the dependency relationship between learning items is valid only if there is a dependency relationship between the component types that are the subject of study of each learning item. For this reason, the dependency graph and the curriculum graph are basically isomorphic.
[0163] However, if a cycle (a closed path formed by directed edges in a graph) exists in the curriculum, it becomes impossible to determine the order in which to study the learning items included in the cycle. For this reason, the curriculum is a graph that has removed cycles from the dependency graph, that is, a graph in which some of the edges included in each cycle have been deleted.
[0164] For these reasons, a curriculum is generated based on a dependency graph. An example of a curriculum generated based on the dependency graph in FIG. 34 is shown in FIG. 35. The letters attached to the nodes indicate the names of the component types that are the learning targets of the learning items represented by the nodes. Although an explanation of all the component types included in FIG. 35 is omitted, for example, when focusing on learning item c, learning item c depends on learning items d and f, and is dependent on learning item a. As shown in FIG. 35, the directed edge from node g to node c included in the dependency graph in FIG. 34 has been deleted, and the cycle of nodes c=>d=>g=>c included in the dependency graph in FIG. 34 has been eliminated.
[0165] The operation of step U22 of generating a curriculum will be described in detail with reference to Fig. 14. The subject of the operation of step U22 is the curriculum generating unit 227 unless otherwise specified.
[0166] 14, curriculum generation unit 227 copies the dependency graph generated in step U21 and sets it as the initial value of the curriculum (step U221). The curriculum has a graph structure, and the nodes in the curriculum are called learning items.
[0167] Next, the curriculum generating unit 227 detects and lists the cyclic structures (hereinafter simply referred to as "cycles") of the graph included in the curriculum (step U222). Hereinafter, the listed cycles will be referred to as cycle list.
[0168] Furthermore, the curriculum generation unit 227 temporarily deletes the edges included in each cycle detected in step U222 from the curriculum (step U223).Then, the curriculum generation unit 227 calculates the learning difficulty of each learning item in the curriculum (step U224).
[0169] Next, the curriculum generating unit 227 restores the edges that were temporarily deleted from the curriculum in step U223 to the curriculum (step U225). Furthermore, the curriculum generating unit 227 sorts the circular list created in step U222 into a specific order (step U226).
[0170] Then, for each tour included in the tour list sorted in step U226, the curriculum generating unit 227 deletes an edge that satisfies a specific condition included in the tour, and eliminates the tour (step U227).
[0171] The operation of step U224 for calculating the learning difficulty level will be described in detail with reference to Fig. 15. The subject of the operation of step U224 is the curriculum generation unit 227 unless otherwise specified.
[0172] First, as shown in Fig. 15, curriculum generation unit 227 determines whether there are any learning items to be processed (step F21X). If the result of the determination in step F21X is that there are no learning items, step U224 ends. On the other hand, if the result of the determination in step F21X is that there are learning items, curriculum generation unit 227 performs the operations of steps F21Y to F24 described below.
[0173] First, the curriculum generation unit 227 selects one learning item from the curriculum that has no dependencies or whose learning difficulty levels have all been calculated (step F21Y). Next, the curriculum generation unit 227 determines whether the learning item selected in step F21Y has dependencies (step F22).
[0174] If the result of the determination in step F22 is that the learning item selected in step F21Y does not depend on anything (step F22: No), curriculum generation unit 227 sets the learning difficulty level of the learning item to 1 (step F23). After that, curriculum generation unit 227 executes step F21X again.
[0175] On the other hand, if the result of the judgment in step F22 is that the learning item selected in step F21Y has dependencies (step F22: Yes), the curriculum generation unit 227 sets the learning difficulty of the learning item selected in step F21Y to the highest learning difficulty among the dependent learning items plus 1 (step F24).
[0176] Here, the method of sorting the cycles performed in step U226 shown in Fig. 14 will be described in detail. Unless otherwise specified, the subject of the operation in step U226 is the curriculum generation unit 227. First, the curriculum generation unit 227 counts the number CC of each edge included in a cycle, sets the maximum CC value of the edges included in each cycle as the value SV1 used for sorting the cycles, and sorts the cycles so that the SV1 values are in descending order (sorting condition SC1).
[0177] If the value SV1 used for sorting obtained by sorting condition SC1 is the same, the curriculum generation unit 227 sets the number of edges having the largest CC value among the edges included in each tour as the value SV2 used for sorting the tours, and sorts the tours with the same SV1 value so that the SV2 values are in descending order (sorting condition SC2).
[0178] If the values SV2 used for sorting obtained by the sorting condition SC2 are the same, the curriculum generation unit 227 sorts them by any method that can determine a unique order (sorting condition SC3). For example, the names of the component types that are the study targets of the learning items included in the tour are arranged in the order of the tour so that the first one in alphabetical order is at the top, and the resulting string is used as the string SV3 used for sorting the tour, and the tours may be sorted so that SV3 is in alphabetical order.
[0179] The operation of step U227 for deleting edges and eliminating cycles will be described in detail with reference to Fig. 16. The subject of the operation of step U227 is the curriculum generation unit 227 unless otherwise specified.
[0180] First, as shown in Fig. 16, the curriculum generation unit 227 judges whether or not there are any unprocessed tours remaining in the tour list sorted in step U226 (step D21X). If the result of the judgment in step D21X is that there are no unprocessed tours remaining in the tour list, step U227 ends. On the other hand, if there are any unprocessed tours remaining in the tour list sorted in step U226, the curriculum generation unit 227 performs steps D21Y to D24 described below.
[0181] First, the curriculum generation unit 227 selects one tour that has not been selected in step D21Y from the front of the tour list sorted in step U226 (step D21Y). Next, the curriculum generation unit 227 determines whether the tour selected in step D21Y includes a deleted edge (step D22).
[0182] If the result of the determination in step D22 is that the tour selected in step D21Y includes at least one deleted edge (step D22: Yes), the curriculum generating unit 227 executes step D21X again, thereby moving to the next loop process.
[0183] On the other hand, if the result of the determination in step D22 is that the tour selected in step D21Y does not include any deleted edges (step D22: No), the curriculum generation unit 227 generates a deletion candidate list of edges included in the tour (step D23).
[0184] Furthermore, the curriculum generating unit 227 selects one edge from the deletion candidate list generated in step D23 using a predetermined method, and deletes the selected edge (step D24).
[0185] The operation of step D23 for generating a deletion candidate list of edges included in a cycle will be described in detail with reference to Fig. 17. Unless otherwise specified, the subject of the operation of step D23 is the curriculum generating unit 227. The deletion candidate list is a variable of a list type data structure that stores edges that are candidates for deletion to eliminate the cycle.
[0186] First, as shown in FIG. 17, the curriculum generating unit 227 lists all edges whose expected surrounding configuration flags are True among the edges included in the tour (step D231).
[0187] Next, the curriculum generating unit 227 determines whether the edges listed in step D231 are empty (step D232).
[0188] If it is determined in step D232 that the edges listed in step D231 are not empty (step D232: No), the curriculum generation unit 227 sets the list storing the edges listed in step D231 as a deletion candidate list (step D233).
[0189] On the other hand, if the result of the determination in step D232 is that the edges listed in step D231 are empty (step D232: Yes), the curriculum generation unit 227 sets a list storing all edges included in the tour as a deletion candidate list (step D234).
[0190] The operation of step D24 for selecting and deleting one edge from the deletion candidate list will be described in detail with reference to Fig. 18. The subject of the operation of step D24 is the curriculum generating unit 227 unless otherwise specified.
[0191] First, as shown in FIG. 18, the curriculum generation unit 227 determines whether or not there is one edge among the edges included in the deletion candidate list that is included in the maximum number of cycles other than the cycle selected in step D21Y (step D24).
[0192] If the result of the determination in step D24 is that there is one edge (step D241: Yes), the curriculum generation unit 227 deletes that edge (step D242) and ends the operation of step D24.
[0193] If the result of the judgment in step D24 is that there is not one edge (step D241: No), the curriculum generation unit 227 judges whether, among the edges contained in the maximum number of edges other than the tour selected in step D21Y, there is one edge that comes from the learning item with the lowest learning difficulty (step D243).
[0194] If the result of the determination in step D243 is that there is one edge (step D243: Yes), the curriculum generation unit 227 deletes that edge (step D242) and ends the operation of step D24.
[0195] On the other hand, if the result of the judgment in step D243 is that there is not one edge (step D243: No), the curriculum generation unit 227 judges whether there is one edge leading to the learning item with the highest learning difficulty among the edges contained in the maximum number of edges in the tour other than the tour selected in step D21Y (step D244).
[0196] If it is determined in step D244 that there is one edge (step D244: Yes), the curriculum generation unit 227 deletes the edge (step D242) and ends the operation of step D24.
[0197] On the other hand, if the result of the determination in step D244 is that there is not one edge (step D244: No), the curriculum generation unit 227 selects one edge from among the edges included in the greatest number of cycles other than the cycle selected in step D21Y by any method that can uniquely determine it (step D245), and then deletes the selected edge (step D242), and ends the operation of step D24. Note that the selection criteria in step D245 may be, for example, that the edge with the earliest alphabetical name of the component type that is the learning target of the learning item in which the edge appears is selected.
[0198] The operation of step U25 for generating a set of requirements to be used in the study of the selected learning item will be described with reference to Fig. 19. The subject of the operation of step U25 is the curriculum generation unit 227 unless otherwise specified.
[0199] 19, the curriculum generation unit 227 initializes a variable RS, which represents a set of generated requirements, to an empty set (step U251). Next, the curriculum generation unit 227 lists all instantiation rules that instantiate the component type that is the learning target of the selected learning item (step U252).
[0200] Furthermore, the curriculum generating unit 227 judges whether or not there are any unprocessed instantiation rules among the instantiation rules listed in step U252 (step U253X). If it is judged in step U253X that there are no unprocessed instantiation rules, step U25 ends.
[0201] On the other hand, if the result of the determination in step U253X indicates that there are still concretization rules for which processing has not been completed, the curriculum generation unit 227 performs the operations of steps U253Y to U258 described below for the unprocessed concretization rules listed in step U252.
[0202] First, the curriculum generating unit 227 selects one instantiation rule from the unprocessed instantiation rules listed in step U252 (step U253Y). Next, the curriculum generating unit 227 initializes a variable GR representing the generated requirement as an empty configuration (step U254).
[0203] Furthermore, the curriculum generation unit 227 adds the components to be instantiated of the instantiation rule selected in step U253Y and all components included in the configuration required for instantiation to the configuration stored in the variable GR (step U255).
[0204] Then, the curriculum generating unit 227 determines whether or not there are still any components in the configuration required for instantiation or included in the configuration after instantiation in the instantiation rule selected in step U253Y (step U256X).
[0205] If the result of the determination in step U256X is that there is no component, curriculum generation unit 227 executes step U258 described below. On the other hand, if the result of the determination in step U256X is that there is a component, curriculum generation unit 227 performs the operations of steps U256Y to U257 described below.
[0206] First, the curriculum generating unit 227 selects one component from the components included in the configuration required for instantiation of the instantiation rule selected in step U253Y or the configuration after instantiation (step U256Y). Next, the curriculum generating unit 227 executes a recursive process (described later) using the component selected in step U256Y and the content of the variable GR as arguments (step U257).
[0207] Then, if the answer is No in step U256X, the curriculum generating unit 227 adds the requirement stored in the variable GR representing the generated requirement to the set stored in the variable RS representing the set of generated requirements (step U258).
[0208] With reference to Figure 20, the operation of step U257 in which components included in the configuration required for instantiating the instantiation rules or the configuration after instantiation is recursively processed in the operation of generating a set of requirements to be used in the study of the selected learning item will be described. The subject of the operation of step U257 is the curriculum generation unit 227 unless otherwise specified. The recursive processing of step U257 takes the components and the configuration as arguments.
[0209] First, as shown in Fig. 20, the curriculum generation unit 227 selects one of the instantiation rules that have the type of the component received as an argument as the instantiation target by any method (step E21). Next, the curriculum generation unit 227 determines whether the instantiation target of the instantiation rule selected in step E21 should be added to the configuration received as an argument (step E22). Specifically, in step E22, the curriculum generation unit 227 determines whether the instantiation target of the instantiation rule selected in step E21 is not included in the configuration received as an argument and is referenced in a configuration required for instantiating the instantiation rule.
[0210] If it is determined in step E22 that the object to be instantiated should not be added to the configuration received as an argument (step E22: No), the curriculum generating unit 227 executes step E24, which will be described later.
[0211] On the other hand, if the result of the determination in step E22 is that the object to be instantiated should be added to the configuration received as an argument (step E22: Yes), the curriculum generating unit 227 adds the object to be instantiated to the configuration received as an argument (step E23).
[0212] Furthermore, after execution of step E23 or if the judgment of step E22 is No, the curriculum generation unit 227 adds all the components contained in the configuration required for instantiating the instantiation rule selected in step E21 to the configuration received as an argument (step E24).
[0213] Then, the curriculum generating unit 227 judges whether or not there are any unprocessed constituents remaining among the constituents included in the configuration required for instantiation or the configuration after instantiation of the instantiation rule selected in step E21 (step E25X).
[0214] If it is determined in step E25X that there are no unprocessed components remaining, step U257 ends. On the other hand, if it is determined in step E25X that there are unprocessed components remaining, the curriculum generation unit 227 performs the operations of steps E25Y to E26 described below.
[0215] First, the curriculum generating unit 227 selects one component from among the components required for instantiation of the instantiation rule selected in step E21 or included in the instantiated configuration (step E25Y). Next, the curriculum generating unit 227 performs recursive processing (to be described later) using the component selected in step E25Y and the configuration received as an argument as arguments (step E26).
[0216] The operation of step U26 of learning a learning item using the generated set of requirements will now be described in detail with reference to FIG.
[0217] 21, first, the learning process control unit 221 determines whether there is an unlearned requirement among the requirements included in the generated set of requirements (step U261X). If it is determined in step U261X that there is no unlearned requirement, step U26 ends.
[0218] On the other hand, if the result of the determination in step U261X is that there are unlearned requirements, the learning process control unit 221 performs the operations of steps U261Y to U262 described below for each unlearned requirement.
[0219] First, the learning process control unit 221 selects one requirement from the set of requirements that has been generated (step U261Y). Next, the component learning unit 22 uses the requirement selected in step U261 as an input and performs learning of the configuration evaluation of the requirement on the learning model (step U262). The operation of learning the configuration evaluation in step U262 is the same as step S1 of learning the configuration evaluation described in the first embodiment.
[0220] With reference to FIG. 22, operation V2 of re-learning the configuration evaluation in the system configuration evaluation device 2 will be described.
[0221] 22, the curriculum generating unit 227 generates a dependency graph (step V21). The details of the operation of step V21 for generating the dependency graph are similar to those of step U21 shown in FIG.
[0222] Next, the curriculum generating unit 227 generates a curriculum (step V22). The details of the operation of step V22 for generating a curriculum are the same as those of step U22 shown in Fig. 12. Next, the curriculum generating unit 227 sets the learning completion flag of each learning item in the curriculum to completed (step V23).
[0223] Then, the curriculum generating unit 227 sets the learning completion flag to "incomplete" for all learning items included in the curriculum that are learning targets of component types that did not exist in the previous learning (step V24). As a detailed example of a method of step V24, a method is preferable in which the curriculum of the previous learning is saved, and the learning completion flag of the learning items that exist only in the current curriculum is set to "incomplete" by comparing it with the curriculum of the current learning, but this method is not limited to the above.
[0224] Next, the curriculum generating unit 227 sets the learning completion flag to "incomplete" for all learning items included in the curriculum that are learning targets of component types whose definitions have been changed since the previous learning (step V25). As a detailed example of a method of step V25, a method is preferable in which the creation date and time of the curriculum at the previous learning and the update date and time of the definition information of each component type are saved, and the learning completion flag of the learning item of the component type whose definition information has been updated later than the creation date and time of the curriculum at the previous learning is set to "incomplete", but is not limited to this method.
[0225] Next, curriculum generating unit 227 determines whether or not there is any learning item that has not been selected and therefore has not been studied among the learning items included in the curriculum (Step V26X).
[0226] If the result of the determination in step V26X is that there are any learning items that have not been studied, curriculum generation unit 227 performs the operations of steps V26Y to V27 described below until all learning completion flags for which the learning completion flags are incomplete have been selected.
[0227] First, the curriculum generating unit 227 selects one learning item whose learning completion flag is incomplete from the learning items included in the curriculum (step V26Y). Next, the curriculum generating unit 227 sets the learning completion flag of each learning item that can be reached by going back one directed edge in the curriculum from the learning item selected in step V26Y to incomplete (step V27). After that, the curriculum generating unit 227 executes the judgment of step V26X again.
[0228] Also, if the result of the determination in step V26X is that there are no unlearned learning items, the curriculum generation unit 227 determines whether there are any learning items that have no dependency or whose learning completion flags for all dependency targets are set to completed (step V28X).
[0229] If the result of the determination in step V28X is that there is no learning item that has no dependency or that has the learning completion flags of all dependency destinations set to completed, operation V2 ends. On the other hand, if the result of the determination in step V28X is that there is a learning item that has no dependency or that has the learning completion flags of all dependency destinations set to completed, steps V28Y to U2B described below are executed.
[0230] First, the learning process control unit 221 selects one learning item from the curriculum that has no dependencies or has the learning completion flags of all dependencies set to "completed" (step V28Y).
[0231] Next, the curriculum generation unit 227 generates a set of requirements for learning the learning items selected in step V28Y (step V29). The details of the operation of step V29 for generating a set of requirements for learning the learning items are similar to the operation of step U25 shown in FIG.
[0232] Furthermore, the component learning unit 22 uses the set of requirements generated in step V29 to learn the learning item selected in step V28Y (step V2A). Then, the learning process control unit 221 sets the learning completion type flag of the learning item selected in step V28Y to completed (step V2B). The details of the operation of step V2A, in which the learning item is learned using the set of requirements, are the same as step U26 shown in FIG. 12.
[0233] In the second embodiment, configuration evaluation operation T2 is similar to configuration evaluation operation T1 in the first embodiment.
[0234] [Effect description] According to the second embodiment, the learning efficiency is improved by learning the evaluation values for each component in an appropriate order. In the second embodiment, the components are learned in an order according to a curriculum based on dependency relationships. Therefore, in order to learn a specific component, prior learning is required, and learning becomes possible after the learning of other components has been completed. Also, according to the second embodiment, the time required for learning can be reduced by skipping the learning of components that have already been learned. As a result, the learning efficiency is improved.
[0235] [program] In the second embodiment, the program may be a program that causes a computer to execute each step shown in Fig. 12 to Fig. 22. By installing and executing this program in a computer, the system configuration evaluation device 2 and the system configuration evaluation method can be realized. In this case, the processor of the computer functions as the configuration evaluation unit 21 and the configuration element learning unit 22 and performs the processing. Examples of the computer include a general-purpose PC, a smartphone, and a tablet terminal device.
[0236] The program may be executed by a computer system constructed by a plurality of computers. In this case, for example, one or a plurality of computers may function as either the configuration evaluation unit 21 or the configuration element learning unit 22.
[0237] (Embodiment 3) Next, a system configuration evaluation device, a system configuration evaluation method, and a program according to the third embodiment will be described with reference to FIGS.
[0238] [Device configuration] First, the configuration of a system configuration evaluating device in the third embodiment will be described with reference to Fig. 23. Fig. 23 is a configuration diagram showing the configuration of an example of a system configuration evaluating device.
[0239] 23, the system configuration evaluation device 3 includes a configuration evaluation unit 31, a component learning unit 32, and a design unit 33. Furthermore, the configuration evaluation unit 31 includes a component evaluation unit 111 and a configuration overall evaluation unit 112. The component learning unit 32 includes a learning process control unit 121, a design trial unit 122, a concretization success determination unit 123, a reward generation unit 124, a learning data generation unit 125, and a machine learning unit 126. Each unit generally operates as follows.
[0240] The outline of the operation of each of the component evaluation unit 111, configuration overall evaluation unit 112, learning process control unit 121, design trial unit 122, concretization success determination unit 123, reward generation unit 124, learning data generation unit 125, and machine learning unit 126 is similar to the operation of each unit described in embodiment 1.
[0241] However, as described above, in the third embodiment, the system configuration evaluation device 3 includes the design unit 33, which is a difference between the third embodiment and the first embodiment. The design unit 33 determines a configuration to be searched in the design space of the computer system based on the evaluation value output by the configuration overall evaluation unit 112, and designs the system configuration using the determined configuration.
[0242] [Device operation] Next, an example of the operation of the system configuration evaluating device 3 in the third embodiment will be described with reference to Fig. 24. In the following description, Fig. 23 will be referred to as appropriate. Also, in the third embodiment, a system configuration evaluating method is implemented by operating the system configuration evaluating device 3. Therefore, in the third embodiment, the description of the system configuration evaluating method will be replaced with the description of the operation of the system configuration evaluating device below.
[0243] In the third embodiment, there are three main operations. These are configuration evaluation learning, configuration evaluation, and design operations. In the configuration evaluation learning operation, in order to evaluate a computer system, specifically an ICT system configuration, a learning model is trained for evaluation of each component unit of the ICT system. In the configuration evaluation operation, the trained learning model is utilized to evaluate the ICT system configuration. In the design operation, a concrete ICT system is obtained by searching for a method of gradually concretizing abstract requirements. In the search, the direction of the search is determined based on the results of the configuration evaluation. Each of these will be explained below.
[0244] First, in the embodiment 3, the configuration evaluation learning operation S3 is the same as the configuration evaluation learning operation S1 in the embodiment 1. Furthermore, in the embodiment 3, the configuration evaluation operation T3 is the same as the configuration evaluation operation T1 in the embodiment 1.
[0245] The design action W3 in the embodiment will be described in detail with reference to Fig. 24. The subject of the design action W3 is the design unit 33 unless otherwise specified.
[0246] 24, first, the design unit 33 assigns requirements of the design object to a variable representing the current configuration (step W31). Hereinafter, the content assigned to the variable representing the current configuration is simply referred to as "current configuration". Then, the design unit 33 initializes a variable NL3, which stores candidates for the configuration to be next assigned to the variable representing the current configuration, as an empty list (step W32).
[0247] Next, the design unit 33 judges whether the current configuration is a concrete configuration (step W38). If the result of the judgment in step W38 is that the current configuration is a concrete configuration, operation W3 ends. On the other hand, if the result of the judgment in step W38 is that the current configuration is not a concrete configuration, the design unit 33 lists all configurations that can be generated from the current configuration by applying the instantiation rule once (step W33).
[0248] Furthermore, the design unit 33 inputs each of the configurations listed in step W33 to the configuration overall evaluation unit 112 and causes the configuration evaluation to be performed (step W34). The operation in step W34 is the configuration evaluation operation T3. In other words, the operation in step W34 is the same as the configuration evaluation operation T1 described in the first embodiment.
[0249] Next, for each configuration listed in step W33, the design section 33 adds a pair consisting of that configuration and the evaluation value of the configuration obtained in step W34 to a list storing the variable NL3 (step W35).
[0250] Next, the design unit 33 extracts the pair with the highest evaluation value from the list storing the variable NL3 (step W36). Furthermore, the design unit 33 assigns the configuration included in the pair extracted in step W36 to the variable representing the current configuration (step W37).
[0251] As a result, steps W33 to W37 are repeatedly executed until the current configuration becomes the specific configuration.
[0252] [Effect description] According to the third embodiment, it is possible to automatically design an ICT system using a learning model obtained by efficient learning. In the third embodiment, it is possible to design an ICT system by using the learning model learned according to the first embodiment in the component evaluation unit 111.
[0253] [program] In the third embodiment, the program may be a program that causes a computer to execute each step shown in Fig. 3 to Fig. 10 and Fig. 24. By installing and executing this program in a computer, the system configuration evaluation device 3 and the system configuration evaluation method can be realized. In this case, the processor of the computer functions as the configuration evaluation unit 31, the configuration element learning unit 32, and the design unit 33 and performs the processes. Examples of the computer include a general-purpose PC, a smartphone, and a tablet terminal device.
[0254] The program may be executed by a computer system constructed by a plurality of computers. In this case, for example, one or a plurality of computers may function as any of the configuration evaluation unit 31, the component learning unit 32, and the design unit 33.
[0255] (Embodiment 4) Next, a system configuration evaluation device, a system configuration evaluation method, and a program in a fourth embodiment will be described with reference to Fig. 25 to Fig. 29. In the fourth embodiment, a narrowing down of configuration plans generated in the design process is performed. In the fourth embodiment, the same parts as in the first embodiment will be appropriately omitted. [Device configuration] First, the configuration of a system configuration evaluation device in the fourth embodiment will be described with reference to Fig. 25. Fig. 25 is a configuration diagram showing the configuration of an example of a system configuration evaluation device.
[0256] 25, the system configuration evaluation device 4 includes a configuration evaluation unit 41, a component learning unit 42, a design unit 43, and a narrowing down unit 44. The configuration evaluation unit 41 includes a component evaluation unit 111 and a configuration overall evaluation unit 112. The component learning unit 42 includes a learning process control unit 121, a design trial unit 422, a concretization success determination unit 123, a reward generation unit 124, a learning data generation unit 125, and a machine learning unit 126. Each unit generally operates as follows.
[0257] The outline of the operation of each of the component evaluation unit 111, the configuration overall evaluation unit 112, the learning process control unit 121, the concretization success determination unit 123, the reward generation unit 124, the learning data generation unit 125, and the machine learning unit 126 is similar to the operation of each unit described in embodiments 1 and 3.
[0258] In the fourth embodiment, when generating candidate configurations to be searched for during the design process, the narrowing-down unit 44 determines the components to be concretized based on the evaluation values of each component output by the component evaluation means, and generates only configurations that can be obtained by concretizing the determined components.
[0259] Moreover, the design trial unit 422 trials the design of a computer system, and collects configurations obtained in the process from the start to the end of the design. The outline of the operation of the design trial unit 422 is also similar to the operation described in the first and third embodiments. However, in the fourth embodiment, when adding configurations (candidates) to be searched for in the design process, the design trial unit 422 adds only configurations generated by the narrowing down unit 44.
[0260] The design unit 43 determines a configuration to be searched in the design space of the computer system based on the evaluation value output by the configuration overall evaluation unit 112, and designs the system configuration of the computer system using the determined configuration. The operation of the design unit 43 is similar to the operation described in the third embodiment. However, in the fourth embodiment, when adding a configuration (candidate) to be searched for in the design process, the design unit 43 adds only the configuration generated by the narrowing down unit 44.
[0261] [Device operation] Next, an example of the operation of the system configuration evaluating device 4 in the fourth embodiment will be described with reference to Fig. 26 to Fig. 29. In the following description, Fig. 25 will be referred to as appropriate. Also, in the fourth embodiment, a system configuration evaluating method is implemented by operating the system configuration evaluating device 4. Therefore, in the fourth embodiment, the description of the system configuration evaluating method will be replaced with the description of the operation of the system configuration evaluating device below.
[0262] In the fourth embodiment, there are three main operations. These are a configuration evaluation learning operation, a configuration evaluation operation, and a design operation. In the configuration evaluation learning operation, in order to evaluate the system configuration of a computer system, specifically, an ICT system, a learning model is learned for evaluation of each component unit of the ICT system. In the configuration evaluation operation, the trained learning model is utilized to evaluate the system configuration of the ICT system. In the design operation, a method for gradually concretizing abstract requirements is explored, thereby obtaining a concrete ICT system. In the exploration, the direction of the exploration is determined based on the results of the configuration evaluation. Each of these will be explained below.
[0263] The configuration evaluation learning operation S4 will be described with reference to Fig. 26. At the granularity of Fig. 26, the configuration evaluation learning operation S4 is similar to the configuration evaluation learning operation S1 described in the first embodiment. However, at a more detailed granularity, the operation S4 differs from the operation S1 in step S42 described later. The different parts will be described separately. Other than step S42, even at a more detailed granularity, the configuration evaluation learning operation S4 is similar to the configuration evaluation learning operation S1 described in the first embodiment.
[0264] As shown in Fig. 26, first, the component learning unit 42 receives the system requirement R4 to be learned as an input (step S41). Next, the component learning unit 42 performs reinforcement learning for an appropriate period of time using the system requirement R4 (step S42). The appropriate period here is appropriately set based on the learning time and the number of learning times (for example, the number of updates of the weight of the neural network in the case of reinforcement learning using a neural network). It should be noted that the appropriate period here is not particularly limited.
[0265] Furthermore, the design trial unit 422 attempts to design the system requirement R4 using the current learning model (for example, the neural network in the case of reinforcement learning using a neural network) (step S43). As a design method, for example, the method disclosed in Patent Document 1 can be mentioned, but in the fourth embodiment, the design method is not particularly limited.
[0266] Then, the learning process control unit 121 judges whether the learning is sufficient or not based on the result of step S13 (step S44). The method of judgment in step S44 depends on the design method in step S43. For example, when step S43 is performed by the method disclosed in Patent Document 1, it can be judged that the learning is sufficient if the number of search steps in the design is equal to or less than a certain number. Furthermore, it can be judged that the learning is sufficient if the number of search steps in the past design in step S43 is equal to or less than a certain number of times. The method of judgment in step S44 is not limited to these.
[0267] If the result of the determination in step S44 is that the learning is sufficient, operation S4 ends. On the other hand, if the result of the determination in step S44 is that the learning is sufficient, step S42 is executed again. That is, steps S42 to S43 are repeated until it is determined in step S44 that the learning is sufficient.
[0268] The operation of step S42 for performing reinforcement learning will be described in detail with reference to Fig. 27. Note that, at the granularity of Fig. 28, the operation of step S42 is similar to the operation of step S12 described in the first embodiment. However, at a more detailed granularity, step S42 differs from S12 in step S421, which will be described separately. Other than step S421, even at a more detailed granularity, the operation is similar to the operation S1 of learning configuration evaluation described in the first embodiment.
[0269] The operation described here is an example of an operation for learning a design method related to the functional requirements of a system, and is not limited to the one described here as long as learning of a design method related to the functional requirements of a system is realized. In addition, an example of a design method is the method disclosed in Patent Document 1, but the design method in the fourth embodiment is not particularly limited.
[0270] 27, first, the design trial unit 422 performs a design trial using the system requirement R4 and generates a configuration path CP1 (step S421). Then, the learning data generation unit 125 generates learning data (step S422).
[0271] Next, the design trial unit 422 judges whether steps S421 to S422 have been repeated a prescribed number of times (step S423). If it is determined in step S423 that steps S421 to S422 have not been repeated the prescribed number of times, the design trial unit 422 executes step S421 again.
[0272] On the other hand, if it is determined in step S423 that steps S421 to S422 have been repeated the specified number of times, the machine learning unit 126 performs learning based on the learning data (step S424).
[0273] Next, the machine learning unit 126 determines whether the learning has been completed, that is, whether the learning has been performed for an appropriate period of time (step S425). If the result of the determination in step S425 is that the learning has not been completed, steps S421 to S424 are executed again. On the other hand, if the result of the determination in step S425 is that the learning has been completed, step S42 ends.
[0274] The appropriate period here is preferably determined based on the learning time or number of learning times, for example, in the case of reinforcement learning using a neural network, the number of updates of the weights of the neural network, etc. However, in the fourth embodiment, the appropriate period may be determined based on factors other than these.
[0275] The operation of step S421 for generating a configuration path will be described in detail with reference to Fig. 28. The subject of the operation of step S421 is the design trial unit 422, unless otherwise specified.
[0276] 28, first, the design trial unit 422 assigns system requirement R4 to a variable representing the current configuration (step A41). Hereinafter, the content assigned to the variable representing the current configuration will be simply referred to as the "current configuration."
[0277] Next, the design trial unit 422 initializes the configuration path CP4 as a variable of a list type data structure containing only the current configuration as its contents (step A42). Note that, although the data structure of the configuration path CP4 is a list type as an example here, it may be a data structure other than the list type as long as it is capable of storing multiple contents of the same type in a fixed order.
[0278] Furthermore, the design trial unit 422 inputs the current configuration to the component evaluation unit 111, and records the obtained evaluation value for each component in the current configuration (step A43).
[0279] Next, design trial unit 422 judges whether or not the concretization rules can be applied to the current configuration (step A4E). If the result of the judgment in step A4E is that the concretization rules cannot be applied, the process in step S421 ends.
[0280] On the other hand, if the result of the judgment in step A4E is that the concretization rule can be applied, the narrowing-down unit 44 lists all application patterns of the concretization rule targeted at the component with the lowest evaluation value among the components not yet to be concretized in the current configuration (step A44).
[0281] Next, the design trial unit 422 judges whether the application pattern is empty (step A45). If the result of the judgment in step A45 is that the application pattern is empty (step A45: Yes), the design trial unit 422 further judges whether there are any components for which the judgment in step A44 has not been performed (step A46).
[0282] If the result of the determination in step A46 is that there is a component (step A46: Yes), the design trial unit 422 executes step A44 again. On the other hand, if the result of the determination in step A46 is that there is no component (step A46: No), the entire operation of step S421 ends.
[0283] Furthermore, if the result of the determination in step A45 is that the application pattern is not empty (step A45: No), the narrowing unit 44 generates copies of the current configuration as many as the application patterns of the instantiation rules listed in step A44 (step A47).
[0284] Furthermore, the narrowing-down unit 44 lists all configurations obtained as a result of applying the application patterns of the instantiation rules listed in step A44 to the copies of the different current configurations generated in step A47 (step A48).
[0285] Then, the narrowing-down unit 44 determines whether there is any configuration that has not yet been selected in step A49Y described below (step A49X). If the result of the determination in step A49A indicates that there is any configuration, the narrowing-down unit 44 selects one configuration from the configurations listed in step A48 (step A49Y).
[0286] Next, the narrowing-down unit 44 inputs the configuration selected in step A49Y to the component evaluation unit 111 and records the obtained evaluation value for each component in the configuration (step A4A). Furthermore, the narrowing-down unit 44 sets the smallest one of the evaluation values for each component obtained in step A4A as the evaluation value of the configuration selected in step A49Y (step A4B). After that, the narrowing-down unit 44 executes the judgment of step A49X again.
[0287] Also, if there is no configuration as a result of the determination in step A49A, the narrowing-down unit 44 assigns the configuration with the highest evaluation value among the configurations listed in step A48 to a variable representing the current configuration (step A4C). Next, the narrowing-down unit 44 adds the current configuration to the end of the configuration path CP4 (step A4D). Thereafter, the narrowing-down unit 44 executes the determination in step A4E, and repeats steps A44 to A4D until the instantiation rules can no longer be applied to the current configuration.
[0288] The configuration evaluation operation in the fourth embodiment is similar to that in the third embodiment, that is, similar to the configuration evaluation operation T1 in the first embodiment.
[0289] The design operation W4 in the embodiment will be described in detail with reference to Fig. 29. The subject of the design operation W4 is the design unit 43 unless otherwise specified.
[0290] 29, first, the design unit 43 assigns requirements of the design object to variables representing the current configuration (step W41). Hereinafter, the contents of the variables representing the current configuration will be simply referred to as "current configuration."
[0291] Then, the design unit 43 initializes a variable NL4, which stores candidates for configurations to be substituted for the variable representing the current configuration, as an empty list (step W42). Next, the current configuration is input to the component evaluation unit 111, and the obtained evaluation value for each component is recorded in the current configuration (step W43).
[0292] Next, the design unit 43 judges whether the current configuration is not a concrete configuration (step W44). If the result of the judgment in step W44 is that the current configuration is a concrete configuration, operation W4 ends. On the other hand, if the result of the judgment in step W44 is that the current configuration is a concrete configuration, the design unit 43 performs the operations of steps W45 to W4I described below until the current configuration becomes a concrete configuration.
[0293] First, the narrowing-down unit 44 lists all application patterns of the instantiation rule for the component with the lowest evaluation value among the components not yet to be instantiated in the current configuration (step W45). The component that is the target in step W45 is treated as being the target for instantiation.
[0294] Next, the design unit 43 judges whether the application pattern is empty (step W46). If the result of the judgment in step W46 is that the application pattern is empty (step W46: Yes), the design unit 43 judges whether there is any component in the current configuration that has not yet been instantiated (step W47).
[0295] If the result of the determination in step W47 is that there are no components in the current configuration that have not yet been instantiated (step W47: No), operation W4 ends and proceeds to step W4H. On the other hand, if the result of the determination in step W47 is that there are any components in the current configuration that have not yet been instantiated (step W47: Yes), the design unit 43 executes step W45 again.
[0296] If it is determined in step W46 that the application pattern is not empty (step W46: No), the narrowing-down unit 44 generates copies of the current configuration for the number of application patterns of the instantiation rules listed in step W45 (step W48).
[0297] Furthermore, the narrowing-down unit 44 lists all configurations obtained as a result of applying the application patterns of the instantiation rules listed in step W45 to the copies of the different current configurations generated in step W48 (step W49).
[0298] Next, the design unit 43 determines whether or not there is still any configuration among the configurations listed in step W49 for which steps W4AY to W4D, which will be described later, have not been executed (step W4AX).
[0299] If the result of the determination in step W4AX shows that there is still a configuration for which steps W4AY to W4D have not been executed, the design unit 43 selects one configuration from the configurations enumerated in step W49 (step W4AY). Next, the design unit 43 inputs the configuration selected in step W4AY to the component evaluation unit 111, and records the obtained evaluation value for each component in that configuration (step W4B).
[0300] Furthermore, the design unit 43 sets the smallest one of the evaluation values for each component obtained in step W4B as the evaluation value of the configuration selected in step W4AY (step W4C). Then, the design unit 43 adds a pair consisting of the configuration selected in step W4AY and the evaluation value of the configuration obtained from the component evaluation unit 111 in step W4C to a list storing the variable NL4 (step W4D). After that, the design unit 43 executes the judgment of step W4AX again.
[0301] Furthermore, if the result of the determination in step W4AX is that there is no configuration for which steps W4AY to W4D have not been executed, design unit 43 determines whether there is any component in the current configuration that has not yet been targeted for instantiation (step W4E).
[0302] If the result of the determination in step W4E is that there is a component in the current configuration that has not yet been instantiated (step W4E: Yes), the design unit 43 sets the lowest evaluation value of the components included in the current configuration as the evaluation value of the current configuration (step W4F). Next, the design unit 43 adds a pair consisting of the current configuration and the evaluation value of the current configuration obtained in step W4G to a list that stores the variable NL4 (step W4G).
[0303] Then, when step W4G is executed, or when the result of the judgment in step W4E is that there are no components remaining in the current configuration that have not yet been targeted for instantiation (step W4E: No), the design unit 43 executes step W4H.
[0304] In step W4H, the design unit 43 extracts the pair with the highest evaluation value from the list stored in the variable NL4 (step W4H). Furthermore, the design unit 43 assigns the configuration included in the pair extracted in step W4H to the variable representing the current configuration (step W4I). After that, the design unit 43 executes the determination in step W44 again.
[0305] [Effect description] According to the fourth embodiment, it is possible to improve the efficiency of automatic design and learning of a computer system, specifically an ICT system. In the fourth embodiment, the number of configurations generated in each search step of the automatic design and learning is reduced by narrowing down the configurations to be generated for each search step. This reduces the time per search step, improving efficiency. In addition, since the components least likely to be instantiated correctly are narrowed down to be instantiated preferentially, it becomes easier to select an instantiation that increases the likelihood of successful design of the entire system configuration, improving the accuracy of the search. As a result, the efficiency of learning is improved.
[0306] [program] In the fourth embodiment, the program may be a program that causes a computer to execute each step shown in Figs. 6 to 10 and Figs. 26 to 29. By installing and executing this program in a computer, the system configuration evaluation device 1 and the system configuration evaluation method can be realized. In this case, the processor of the computer functions as a configuration evaluation unit 41, a configuration element learning unit 42, a design unit 43, and a narrowing-down unit 44 to perform processing. Examples of the computer include a general-purpose PC, a smartphone, and a tablet terminal device.
[0307] The program may be executed by a computer system constructed by a plurality of computers. In this case, for example, one or more computers may function as any of the configuration evaluation unit 41, the configuration element learning unit 42, the design unit 43, and the narrowing down unit 44.
[0308] [Physical configuration] Here, a computer that realizes the system configuration evaluation device by executing the programs in the first to fourth embodiments will be described with reference to Fig. 41. Fig. 41 is a block diagram showing an example of a computer that realizes the system configuration evaluation device.
[0309] 41, a computer 510 includes a CPU (Central Processing Unit) 511, a main memory 512, a storage device 513, an input interface 514, a display controller 515, a data reader / writer 516, and a communication interface 517. These components are connected to each other via a bus 521 so as to be able to communicate data with each other.
[0310] Furthermore, the computer 510 may include a GPU (Graphics Processing Unit) or an FPGA (Field-Programmable Gate Array) in addition to or instead of the CPU 511. In this embodiment, the GPU or FPGA can execute the programs in the embodiments.
[0311] The CPU 511 loads a program in the embodiment, which is composed of a group of codes and is stored in the storage device 513, into the main memory 512, and executes each code in a predetermined order to perform various calculations. The main memory 512 is typically a volatile storage device such as a DRAM (Dynamic Random Access Memory).
[0312] Moreover, the program in the embodiment is provided in a state stored in a computer-readable recording medium 520. The program in the embodiment may be distributed on the Internet connected via a communication interface 517.
[0313] Specific examples of the storage device 513 include a hard disk drive and a semiconductor storage device such as a flash memory. The input interface 514 mediates data transmission between the CPU 511 and an input device 518 such as a keyboard and a mouse. The display controller 515 is connected to a display device 519 and controls the display on the display device 519.
[0314] The data reader / writer 516 mediates data transmission between the CPU 511 and the recording medium 520, reads out a program from the recording medium 520, and writes a processing result in the computer 510 to the recording medium 520. The communication interface 517 mediates data transmission between the CPU 511 and other computers.
[0315] Specific examples of the recording medium 520 include general-purpose semiconductor storage devices such as CF (Compact Flash (registered trademark)) and SD (Secure Digital), magnetic recording media such as a flexible disk, or optical recording media such as a CD-ROM (Compact Disk Read Only Memory).
[0316] The system configuration evaluation apparatus can be realized not by a computer with a program installed, but by hardware corresponding to each unit, for example, an electronic circuit. Furthermore, the system configuration evaluation apparatus may be realized in part by a program and in the remaining part by hardware. In the embodiments, the computer is not limited to the computer shown in FIG.
[0317] A part or all of the above-described embodiment can be expressed by (Additional Notes 1) to (Additional Notes 15) described below, but is not limited to the following descriptions.
[0318] (Appendix 1) a configuration evaluation unit that uses a learning model to output an evaluation value of each component of a computer system, and further integrates the output evaluation values to output an evaluation value of the entire computer system; A design of the computer system is attempted based on preset requirements, and for a configuration obtained during the process from the start to the end of the design, it is determined whether each component included therein is realized in accordance with the requirements, and using the result of the determination, learning data for the learning model is generated, and machine learning is performed on the learning model using the generated learning data. A component learning unit; A system configuration evaluation device comprising:
[0319] (Appendix 2) The component learning unit, For each of the configurations, determine whether each of the components included therein is embodied in accordance with the requirements, and calculate a reward to be given to each of the components included in the configuration based on the result of the determination; For each of the configurations, generate the configuration and a reward to be given to each of the components calculated for the configuration as the learning data. 2. A system configuration evaluation apparatus as described in claim 1.
[0320] (Appendix 3) The component learning unit, A curriculum is generated so that learning is performed in the order of components that have no dependency relationship and components that have a dependency relationship, in which learning has been completed, based on a dependency relationship that represents a relationship between a specific component and another component that is required to instantiate the specific component; Executing machine learning on the learning model according to the generated curriculum. 2. A system configuration evaluation apparatus as described in claim 1.
[0321] (Appendix 4) a design unit that determines a configuration to be searched in a design space of the computer system based on the evaluation value of each of the components output by the configuration evaluation unit, and designs a system configuration of the computer system using the determined configuration. 2. A system configuration evaluation apparatus as described in claim 1.
[0322] (Appendix 5) a narrowing-down unit that determines components to be instantiated based on the evaluation value of each of the components output by the configuration evaluation unit, and generates only configurations obtained by instantiating the determined components; When adding a configuration to be searched, the design unit adds only the configuration generated by the narrowing down unit; the configuration element learning unit determines a configuration to be searched in a design space of the computer system in a trial of the design of the computer system, trials a design of a system configuration of the computer system using the determined configuration, and when adding a configuration to be searched, adds only the configuration generated by the narrowing down unit. 5. The system configuration evaluation device according to claim 4.
[0323] (Appendix 6) a configuration evaluation step of outputting an evaluation value of each component of the computer system using the learning model, and further outputting an evaluation value of the entire computer system by integrating the output evaluation values; a component learning step of attempting to design the computer system based on preset requirements, determining whether each component included in a configuration obtained during the process from the start to the end of the design is realized in accordance with the requirements, generating learning data for the learning model using the determination result, and executing machine learning on the learning model using the generated learning data; A system configuration evaluation method comprising the steps of:
[0324] (Appendix 7) In the component learning step, For each of the configurations, determine whether each of the components included therein is embodied in accordance with the requirements, and calculate a reward to be given to each of the components included in the configuration based on the result of the determination; For each of the configurations, generate the configuration and a reward to be given to each of the components calculated for the configuration as the learning data. 7. A system configuration evaluation method as described in appendix 6.
[0325] (Appendix 8) In the component learning step, A curriculum is generated so that learning is performed in the order of components that have no dependency relationship and components that have a dependency relationship, in which learning has been completed, based on a dependency relationship that represents a relationship between a specific component and another component that is required to instantiate the specific component; Executing machine learning on the learning model according to the generated curriculum. 7. A system configuration evaluation method as described in appendix 6.
[0326] (Appendix 9) a design step of determining a configuration to be searched in a design space of the computer system based on the evaluation value of each of the components output in the configuration evaluation step, and designing a system configuration of the computer system using the determined configuration; 7. A system configuration evaluation method as described in appendix 6.
[0327] (Appendix 10) The method further includes a narrowing-down step of determining components to be instantiated based on the evaluation value of each of the components output in the configuration evaluation step, and generating only configurations obtained by instantiating the determined components; In the design step, when adding a configuration to be searched, only the configuration generated in the narrowing down step is added; In the component learning step, a configuration to be searched in a design space of the computer system is determined in a trial of the design of the computer system, and a design of a system configuration of the computer system is trialed using the determined configuration, and when a configuration to be searched is added, only the configuration generated in the narrowing down step is added. 10. The system configuration evaluation method according to claim 9,
[0328] (Appendix 11) On the computer, a configuration evaluation step of outputting an evaluation value of each component of the computer system using the learning model, and further outputting an evaluation value of the entire computer system by integrating the output evaluation values; a component learning step of attempting to design the computer system based on preset requirements, determining whether each component included in a configuration obtained during the process from the start to the end of the design is realized in accordance with the requirements, generating learning data for the learning model using the determination result, and executing machine learning on the learning model using the generated learning data; A program to execute.
[0329] (Appendix 12) In the component learning step, For each of the configurations, determine whether each of the components included therein is embodied in accordance with the requirements, and calculate a reward to be given to each of the components included in the configuration based on the result of the determination; For each of the configurations, generate the configuration and a reward to be given to each of the components calculated for the configuration as the learning data. 12. The program according to claim 11.
[0330] (Appendix 13) In the component learning step, A curriculum is generated so that learning is performed in the order of components that have no dependency relationship and components that have a dependency relationship, in which learning has been completed, based on a dependency relationship that represents a relationship between a specific component and another component that is required to instantiate the specific component; Executing machine learning on the learning model according to the generated curriculum. 12. The program according to claim 11.
[0331] (Appendix 14) The computer includes: a design step is further executed, in which a configuration to be searched in a design space of the computer system is determined based on the evaluation value of each of the components output in the configuration evaluation step, and a system configuration of the computer system is designed using the determined configuration; 12. The program according to claim 11.
[0332] (Appendix 15) The computer includes: a narrowing-down step is further executed to determine components to be instantiated based on the evaluation value of each of the components output in the configuration evaluation step, and to generate only configurations obtained by instantiating the determined components; In the design step, when adding a configuration to be searched, only the configuration generated in the narrowing down step is added; In the component learning step, a configuration to be searched in a design space of the computer system is determined in a trial of the design of the computer system, and a design of a system configuration of the computer system is trialed using the determined configuration, and when a configuration to be searched is added, only the configuration generated in the narrowing down step is added. 15. The program according to claim 14, [Industrial Applicability]
[0333] The present invention can be suitably applied to reinforcement learning aimed at acquiring efficient procedures for intellectual work such as the design process of an IT system. [Explanation of symbols]
[0334] 1 System configuration evaluation device 11 Configuration Evaluation Section 111 Component Evaluation Section 112 Comprehensive Evaluation Section 12 Component Learning Section 121 Learning process control unit 122 Design Trial Department 123 Materialization success determination section 124 Reward Generation Department 125 Learning Data Generation Unit 126 Machine Learning Department 2. System configuration evaluation device 21 Configuration Evaluation Department 22 Component Learning Section 221 Learning process control unit 227 Curriculum Creation Department 3. System configuration evaluation device 31 Configuration Evaluation Department 32 Component Learning Section 33 Design Department 4. System configuration evaluation device 41 Configuration Evaluation Department 42 Component Learning Section 422 Design Trial Department 43 Design Department 44 Narrowing section 510 Computer 511 CPU 512 Main memory 513 Storage device 514 Input Interface 515 Display Controller 516 Data Reader / Writer 517 Communication Interface 518 Input Device 519 Display device 520 Recording media 521 Bus
Claims
1. a configuration evaluation unit that uses a learning model to output an evaluation value of each component of a computer system, and further integrates the output evaluation values to output an evaluation value of the entire computer system; A design of the computer system is attempted based on preset requirements, and for a configuration obtained during the process from the start to the end of the design, it is determined whether each component included therein is realized in accordance with the requirements, and using the result of the determination, learning data for the learning model is generated, and machine learning is performed on the learning model using the generated learning data. A component learning unit; A system configuration evaluation device comprising:
2. The component learning unit, For each of the configurations, determine whether each of the components included therein is embodied in accordance with the requirements, and calculate a reward to be given to each of the components included in the configuration based on the result of the determination; For each of the configurations, generate the configuration and a reward to be given to each of the components calculated for the configuration as the learning data. The system configuration evaluation device according to claim 1 .
3. The component learning unit, A curriculum is generated so that learning is performed in the order of components that have no dependency relationship and components that have a dependency relationship, in which learning has been completed, based on a dependency relationship that represents a relationship between a specific component and another component that is required to instantiate the specific component; Executing machine learning on the learning model according to the generated curriculum. The system configuration evaluation device according to claim 1 .
4. a design unit that determines a configuration to be searched in a design space of the computer system based on the evaluation value of each of the components output by the configuration evaluation unit, and designs a system configuration of the computer system using the determined configuration. The system configuration evaluation device according to claim 1 .
5. a narrowing-down unit that determines components to be instantiated based on the evaluation value of each of the components output by the configuration evaluation unit, and generates only configurations obtained by instantiating the determined components; When adding a configuration to be searched, the design unit adds only the configuration generated by the narrowing down unit; the configuration element learning unit determines a configuration to be searched in a design space of the computer system in a trial of the design of the computer system, trials a design of a system configuration of the computer system using the determined configuration, and when adding a configuration to be searched, adds only the configuration generated by the narrowing down unit.
5. The system configuration evaluation apparatus according to claim 4.
6. a configuration evaluation step of outputting an evaluation value of each component of the computer system using the learning model, and further outputting an evaluation value of the entire computer system by integrating the output evaluation values; a component learning step of attempting to design the computer system based on preset requirements, determining whether each component included in a configuration obtained during the process from the start to the end of the design is realized in accordance with the requirements, generating learning data for the learning model using the determination result, and executing machine learning on the learning model using the generated learning data; A system configuration evaluation method comprising the steps of:
7. On the computer, a configuration evaluation step of outputting an evaluation value of each component of the computer system using the learning model, and further outputting an evaluation value of the entire computer system by integrating the output evaluation values; a component learning step of attempting to design the computer system based on preset requirements, determining whether each component included in a configuration obtained during the process from the start to the end of the design is realized in accordance with the requirements, generating learning data for the learning model using the determination result, and executing machine learning on the learning model using the generated learning data; A program to execute.
Citation Information
Patent Citations
System design learning device, system design learning method, and program
JP2022063209A
System configuration derivation device and system configuration derivation method
JP7036205B2