Automatic generation of computational model, as follows push automaton, state automaton or Petri net

Through machine learning models, the insufficient automation of computing model creation and maintenance in the existing technology is solved, and the rapid adaptation and high-quality production of computing models are achieved.

CN119718327APending Publication Date: 2025-03-28ROBERT BOSCH GMBH
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202411380503.6
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2023-09-28
Filing Date
2024-09-30
Publication Date
2025-03-28

AI Technical Summary

Technical Problem

The prior art lacks automation in creating and maintaining computational models for controlling, regulating, and/or monitoring engineering systems, resulting in time-consuming, costly and error-prone.

Method used

The machine learning model is used to automatically generate the computing model, and the following push automaton, state automaton and Petri net are promoted. By generating specifications and prompt words based on them, and automatic evaluation is carried out to ensure the quality of the computing model.

Benefits of technology

It realizes fast, frequent and reliable adaptation of the computing model, adapts to the frequent changes in engineering system specifications, reduces the need for manual intervention, and improves the quality and production efficiency of the computing model.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119718327A_ABST
    Figure CN119718327A_ABST
Patent Text Reader

Abstract

A first aspect of the present disclosure relates to a computer-implemented method for automatically generating a computational model, in particular a push-down automaton, a state automaton and / or a Petri net, comprising: generating, via a machine learning model, at least one computational model based on at least specifications and cues that the at least one computational model should meet; and evaluating the at least one computational model, wherein an evaluation result is obtained. A second aspect of the present disclosure relates to a computer-implemented method for further training a machine learning model, where the machine learning model is designed to: generate at least one computational model, in particular a push-down automaton, a state automaton and / or a Petri net, based at least on at least one specification and cue that the at least one computational model should meet; the method includes adapting a machine learning model at least based on at least one computational model and at least one evaluation result, wherein the at least one evaluation result is obtained by evaluating the at least one computational model.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field Background Art

[0001] Embedded software is used to control, regulate and / or monitor engineering systems, in particular cyber-physical systems such as computing units of vehicles and / or robots. In certain cases, the dynamics of such engineering systems can be mapped completely or partially by computing models. The computing models can in turn be translated into executable code, which is then executed on one or more computing units (e.g. control devices) to control, regulate and / or monitor the engineering system.

[0002] The term computational model can be understood in the sense of the English term "Model of computation". With regard to computability and / or computational complexity, a computational model can therefore be regarded as a model that initially describes how to compute one or more output variables of an algorithm given one or more input variables. In addition, the model can also describe: how to organize one or more computational units, memory and / or communication.

[0003] For example, computational models can be distinguished into sequential models, functional models and concurrent models. Examples of sequential models are push-down automata and (more specifically than push-down automata) state automata. For example, concurrent models can be Petri nets. In particular, push-down automata, state automata and / or Petri nets (but other computational models are also possible) can be translated into executable code, which is designed to: control, regulate and / or monitor engineering systems.

[0004] Regarding the translation into executable code that should be executed on the control device, for example, that is, the executable code then becomes embedded software, the calculation model must have been created according to the specifications of the engineering system. Depending on the engineering system, the specifications can have a high degree of complexity and can also change frequently during the product development process (development, testing, production and maintenance) that may take several years. Therefore, it is a challenge for each software engineer and even for the entire software development department to maintain an overview of the specifications and always adapt the calculation model to which the adapter belongs accordingly. This is especially true because the calculation model has been created, expanded, corrected and / or maintained mainly manually or with a low degree of automation, i.e. by software engineers. Because this is very time-consuming, cost-intensive and error-prone at the same time, a higher degree of automation is expected when creating the calculation model.

[0005] The problem underlying the present disclosure is therefore to provide an automated but nevertheless reliable calculation model for controlling, regulating and / or monitoring engineering systems and in particular specialized systems. Summary of the invention

[0006] A first general aspect of the present disclosure relates to a computer-implemented method for automatically generating a computational model, in particular a pushdown automaton, a state automaton and / or a Petri net. The method comprises: generating at least one computational model via a machine learning model based at least on specifications and prompts that the at least one computational model should satisfy. The method also comprises evaluating the at least one computational model, wherein an evaluation result is obtained.

[0007] The at least one computing model can be designed to: map the control, regulation and / or monitoring of at least one computing unit of an engineering system, in particular a cyber-physical system, in particular a vehicle. The method can include translating the at least one computing model into an executable code, which is designed to: control, regulation and / or monitoring of at least one computing unit of an engineering system, in particular a cyber-physical system, in particular a vehicle. The method can be performed in an electronic programming environment.

[0008] A second general aspect of the present disclosure relates to a computer-implemented method for further training a machine learning model, wherein the machine learning model is designed to: generate at least one computational model, in particular a push-down automaton, a state automaton and / or a Petri net, based at least on at least one specification and a prompt word that the at least one computational model should satisfy; wherein the method comprises: adapting the machine learning model based at least on at least one computational model and at least one evaluation result, wherein the at least one evaluation result is obtained by evaluating the at least one computational model. The method according to the second general aspect (or embodiment) can, but does not have to, be performed after the method according to the first general aspect (or embodiment thereof).

[0009] A third general aspect of the present disclosure relates to a computer system designed to: execute a computer-implemented method for automatically generating computational models, in particular pushdown automata, state automata and / or Petri nets, according to the first general aspect (or its embodiments) and / or execute a computer-implemented method for further training a machine learning model according to the second general aspect (or its embodiments).

[0010] A fourth general aspect of the present disclosure relates to a computer program designed to: execute a computer-implemented method for automatically generating computational models, in particular pushdown automata, state automata and / or Petri nets, according to the first general aspect (or its embodiments) and / or execute a computer-implemented method for further training a machine learning model according to the second general aspect (or its embodiments).

[0011] A fifth general aspect of the present disclosure relates to a computer-readable medium or signal storing and / or containing a computer program according to the fourth general aspect (or an embodiment thereof).

[0012] The method according to the first aspect (or its embodiment) proposed in the present disclosure aims to automatically generate at least one calculation model. Due to the high degree of automation, at least one calculation model can be adapted faster and more frequently but at the same time reliably, especially to the frequently changing specifications of the engineering system. This is achieved on the one hand by a machine learning model that has a sufficient understanding of the machine language, especially in terms of specifications, and on the other hand by automatically evaluating at least one calculation model according to an established V&V method. Therefore, for example, at least one created calculation model can be verified against the formal specifications. Thus, the machine creativity of the machine learning model can be used, but at the same time the quality of the at least one calculation model is ensured. In other words: before the calculation model is translated into executable code and used to control, regulate and / or monitor an engineering system, such as a vehicle or a robot, errors that may occasionally be formed by the machine learning model, especially incomplete or defective calculation models, are reliably or at least with a sufficiently large probability identified by the V&V method. Thus, the engineering system is also improved. At least the correctness and / or probability of the correctness of the evaluation result can be output. If the evaluation result is unsatisfactory, the method can be repeated and the prompt words can be adapted if necessary to expand, improve and / or correct at least one calculation model. Advantageously, even in the case of unsatisfactory evaluation results, counterexamples that violate the specification can be output. In further iterations of the method, a calculation model can then be regenerated, if necessary, with the aid of adapted prompt words, which should in particular prevent such counterexamples. If necessary, intervention can also always be made manually, for example via an electronic programming environment, and at least one calculation model can be adapted accordingly.

[0013] Furthermore, due to automation and efficiency, it is also possible to generate (a large number of) multiple calculation models. The calculation models can be of the same type (e.g. just state automata) or of different types. The calculation model that best meets the specifications can then be selected. Information about this can be output in the evaluation results.

[0014] In the event of contradictory specifications, it can be reported via the evaluation result that the calculation model cannot be generated. In this respect, it is also advantageously possible to efficiently check for contradictions in the specifications.

[0015] Another advantage is that the resulting computational model can be used to train a domain-specific generator for the computational model. This can be done, for example, as in the method 200 according to the second general aspect (or its embodiments). Supervised fine-tuning and / or unsupervised (reinforcement) learning can thereby be performed based on the evaluation results, thereby improving the method according to the first general aspect (or its embodiments). Thus, a (future) computational model can be generated better. BRIEF DESCRIPTION OF THE DRAWINGS

[0016] Figure 1An exemplary embodiment of a computer-implemented method for automatically generating calculation models, in particular pushdown automata, state machines and / or Petri nets, is schematically shown.

[0017] Figure 2 An exemplary machine learning model for mapping at least specifications and prompt words to at least one computing model is schematically shown.

[0018] Figure 3 An evaluation of at least one calculation model is schematically shown. DETAILED DESCRIPTION

[0019] The method 100 proposed in the present disclosure aims to automatically generate computational models, in particular push-down automata, state automata and / or Petri nets. Since machine learning models sometimes provide incorrect results, the generated computational models must be verified and validated (V&V) before they are translated into executable code for use as embedded software for controlling, regulating and / or monitoring engineering systems.

[0020] To this end, first public Figure 1 Schematically illustrated in the figure, a computer-implemented method 100 for automatically generating a calculation model, in particular a pushdown automaton, a state automaton and / or a Petri net. The method 100 comprises: generating 130 at least one calculation model 40 via a machine learning model 30 at least based on specifications 10 and prompt words 20 that the at least one calculation model 40 should meet. The method 100 also comprises evaluating 140 at least one calculation model 40, wherein an evaluation result is obtained.

[0021] At least one computational model 40 (English: model of computation) can be formalized. For example, at least one computational model 40 can include a data structure written in a predetermined syntax and / or predetermined grammar (for example, in a programming language) or such a data structure. At least one computational model 40 can be an executable code. On the other hand, at least one computational model 40 does not have to be an executable code, but can instead be designed to be translated 160 into an executable code.

[0022] At least one computational model 40 may include or be a sequential model. For example, at least one computational model 40 may include or be an automaton. In particular, at least one computational model 40 may include or be a push-down automaton. In particular, at least one computational model 40 may include or be a push-down automaton. In particular, at least one computational model 40 may include a state automaton (i.e., a finite state automaton) or be a state automaton.

[0023] Alternatively or additionally, at least one computational model 40 may include or be a concurrent model. For example, at least one computational model 40 may include or be a Petri net.

[0024] In the case of push-down automata, state automata and / or Petri nets, the problem is decidable. The decidability can be used to check whether the at least one calculation model 40 meets the specification 10. A model checker can be used for this purpose. On the other hand, the problem does not necessarily have to be determined in the at least one calculation model, because it can also be checked by (external) testing whether the at least one calculation model 40 meets the specification 10. For example, during the (external) test, one or more input variables can be predefined and one or more resulting output variables can be evaluated with respect to the specification 10. In this way, at least one calculation model 40 can also be determined and / or verified.

[0025] In particular, a computer-implemented method 100 for automatically generating a pushdown automaton is disclosed. Therefore, at least one computational model 40 is a pushdown automaton. The method 100 includes generating 130 at least one pushdown automaton via a machine learning model 30 based at least on a specification 10 and a prompt word 20 that the at least one pushdown automaton should satisfy. The method 100 also includes evaluating 140 at least one pushdown automaton, wherein an evaluation result is obtained.

[0026] In particular, a computer-implemented method 100 for automatically generating a state automaton is disclosed. Therefore, at least one calculation model 40 is a state automaton. The method 100 includes generating 130 at least one state automaton via a machine learning model 30 based at least on specifications 10 and prompt words 20 that the at least one state automaton should meet. The method 100 also includes evaluating 140 at least one state automaton, wherein an evaluation result is obtained.

[0027] In addition, a computer-implemented method 100 for automatically generating Petri nets is disclosed. Therefore, at least one computational model 40 is a Petri net. The method 100 includes generating 130 at least one Petri net via a machine learning model 30 based at least on specifications 10 and prompt words 20 that the at least one Petri net should satisfy. The method 100 also includes evaluating 140 at least one Petri net, wherein an evaluation result is obtained.

[0028] More generally, at least one computational model 40 or the plurality of computational models may include a push-down automaton, a state automaton and / or a Petri net.

[0029] The evaluation result may include a natural language text or such a natural language text. Alternatively or additionally, the evaluation result may include a data structure written in a predetermined grammar (e.g., in a programming language) or such a data structure. The data structure may include, for example, a natural language text. The evaluation result may include one or more numerical values, in particular one or more confidence values. Thus, the quality of at least one computational model 40 (e.g., at least one push-down automaton, at least one state automaton, or at least one Petri net) may be encoded, which quality may be considered when determining and verifying at least one computational model 40 and then also an engineering system mapped by at least one computational model 40. The evaluation 140 of at least one computational model 40 may be considered as confirmation and / or verification (V&V).

[0030] If no calculation model can be generated that meets the specifications, the evaluation result can include information about the failure to generate at least one calculation model. This can occur, for example, if the specifications themselves are already contradictory. This information is also valuable for the development of the engineering system. In this case, the specifications can and must be adapted and, in particular, improved.

[0031] The method 100 may include receiving 110 a specification 10. Alternatively or additionally, the method 100 may include receiving 120 a prompt word 20. Alternatively or additionally, the method 100 may include receiving a machine learning model 30.

[0032] For example Figure 3 As schematically shown in , at least one calculation model can be evaluated, wherein for example the evaluation result comprises a result of OK or nOK (in short: not OK). In the case of a result of nOK, at least one calculation model can be repaired ("repaired" or "repaired"), wherein for example in a further iteration of method 100 a calculation model generated in an earlier iteration of method 100 can be adapted, improved and / or corrected.

[0033] The specification 10 may include or be a natural language description. The natural language description may be or include text describing the desired behavior and / or desired characteristics of at least one computational model (e.g., a pushdown automaton, a state automaton, and / or a Petri net) to be generated 130. Alternatively or additionally, the specification 10 may include or be a formal description. The formal specification may, for example, include or be based on a formal language representing a desired sequence of behaviors of an engineering system.

[0034] The natural language and / or formal specification 10 of the at least one calculation model 40 may, for example, comprise one or more validity ranges of parameters of the at least one calculation model 40. Alternatively or additionally, the natural language and / or formal specification 10 may comprise, for example, a description of the (desired) functionality of the at least one calculation model 40. Alternatively or additionally, the natural language specification and / or formal specification 10 may comprise, for example, a purpose to be achieved by the at least one calculation model 40.

[0035] The machine learning model 30 may include or be a basic model (for example, in German: Basismodell). The basic model may be a large machine learning model that has been trained with a large amount of data (usually through self-supervised learning or semi-supervised learning) so that the large machine learning model can be adapted to a wide range of downstream tasks. In particular, the machine learning model may include or be a large language model (LLM). The large language model may be a language model characterized by its size. In particular, the large language model may be a chatbot and / or have chatbot functionality.

[0036] For example, Google BERT can be used as a large language model. Alternatively or additionally, for example, OpenAI ChatGPT (e.g., a version as of May 24, 2023) can be used as a large language model. Alternatively or additionally, for example, Hugging FaceBloom can be used as a large language model.

[0037] Alternatively or additionally, the machine learning model may include or be a multi-domain model. For example, OpenAI GPT-4 (e.g., the version as of March 14, 2023) may be used herein.

[0038] Figure 2 An exemplary implementation of the machine learning model 30 is schematically shown in FIG.

[0039] The prompt word 20 may be a natural language text. The prompt word 20 may include or be a natural language instruction to the machine learning model 30. For example, the prompt word may include a language instruction to a large language model (LLM), which is intended to generate one or more computational models based on the specification 10. Here, for example, it may be stated that the computational model should include a push-down automaton. Alternatively or additionally, it may be stated that the computational model should include a state automaton. Alternatively or additionally, it may be stated that the computational model should include a Petri net. In particular, it may be stated here that the computational model should include a push-down automaton, a state automaton and / or a Petri net.

[0040] Alternatively or additionally, the prompt word may include a language instruction to a large language model (LLM) which is intended to generate one or more computational models in which at least one counterexample 50 that violates the specification 10 does not occur. Here, as already discussed, it can also be stated that the computational model should include a push-down automaton, a state automaton and / or a Petri net.

[0041] Alternatively or additionally, the prompt words may include language instructions for a large language model (LLM) that are intended to generate one or more computational models that extend, improve and / or correct the predetermined computational model 60 .

[0042] Generating 130 at least one calculation model 40 may include generating a plurality of calculation models. The method 100 may in particular include generating 130 a plurality of calculation models (i.e., at least two calculation models) based at least on the specification 10 and the prompt word 20 (or a plurality of prompt words). For example, one or more of the plurality of calculation models may be generated based at least on the specification 10 and the prompt word 20, i.e., in a (sole) execution of the method 100. Alternatively or additionally, one or more of the plurality of calculation models may be generated by executing the method 100 multiple times. Advantageously, the prompt word 20 may be changed in multiple executions of the method 100. On the other hand, the prompt word 20 does not have to be changed in multiple executions of the method 100. Alternatively or additionally, one or more of the plurality of calculation models may be predetermined. Alternatively or additionally, the machine learning model may be changed in multiple executions of the method 100.

[0043] The plurality of computational models may include computational models of different types. For example, the plurality of computational models may include one or more state automata, one or more push-down automata and / or one or more Petri nets. By evaluating the computational models, it is then possible, for example, to output how the desired characteristics of the engineering system according to the specification 10 and / or the desired behavior according to the specification 10 can be best mapped. The computational model may then be selected.

[0044] At least one computing model 40 may be designed to map the control, regulation and / or monitoring of an engineering system, in particular a cyber-physical system, in particular at least one computing unit of a vehicle.

[0045] The natural language and / or formal specification 10 can, for example, describe how an engineering system, in particular a cyber-physical system, in particular at least one computing unit of a vehicle, should be controlled, regulated and / or monitored. The natural language and / or formal specification 10 can, for example, define which properties, which states and / or which behaviors of the engineering system are undesirable and should be prevented. Examples for this can be: "The 'error' state should never be reached" and / or "Part A and Part B should never be in the 'Request Granted' state at the same time". Furthermore, for example, part of the specification 10 can be the exclusion of, for example, deadlocks. By excluding deadlocks, it can be prevented that two or more clients have to wait too long (i.e. infinitely long) for a response. Other combinations of calculation models and (formal) specifications are likewise feasible.

[0046] For example, a computational model can be used to show how to control hardware. A computational model can also represent one or more protocols in the field of the Internet of Things (IoT), for example.

[0047] A computational model may be a model of the behavior and / or characteristics of at least one computing unit of an engineering system, in particular a cyber-physical system, in particular a vehicle. The model may include states, state transitions and / or actions, for example, in the case of a state automaton. A state may contain information about the past, in particular because the engineering system has reached a state on its past path, that is, the state may reflect to a certain extent the input changes from an earlier point in time (for example, since the system was started) to the current point in time. A state transition may be a transition from a current state to a new (different) state. This transition occurs when there are logical conditions / "inputs" that must be met to achieve the transition. An action may be an "output" of a computational model that is performed in a specific situation. For example, there may be four types of actions: entry actions, exit actions, input actions, and transition actions. An entry action may be an action that is executed / output when entering a state (if there are multiple state transitions, regardless of which state transition is used to reach the state). An exit action may be an action generated when leaving a state (regardless of which state transition is used to leave the state). An input action may be an action generated based on the current state and the input. Thus, multiple actions may be associated with a state, the multiple actions being performed depending on via which state transition the state is reached / left. A transition action may be an action that is performed independently / during a state transition.

[0048] The method 100 may include translating 160 at least one calculation model 40 into an executable code designed to control, regulate and / or monitor an engineering system, in particular a cyber-physical system, in particular at least one calculation unit of a vehicle.

[0049] The translation 160 of at least one computational model 40 into an executable code may, but need not, be accomplished via another machine learning model 30. On the other hand, the translation 160 may be unnecessary, in particular when the at least one computational model 40 generated 130 is already an executable code. That is, the executable code may be designed for: controlling, regulating and / or monitoring an engineering system, in particular a cyber-physical system, in particular at least one computational unit of a vehicle. In other words, an already executable computational model or a computational model translated 160 into an executable code may be designed for: controlling, regulating and / or monitoring an engineering system. In particular, the computational model may be executed, for example, on one or more computational units (e.g. a control device) in an engineering system.

[0050] Typical examples may be controls in the automotive sector, such as engine control, actuator control, diagnostics and / or protocols in the field of the Internet of Things. The computational model generated 130 can be used in particular to automatically generate control structures that then control the mentioned systems, such as engine control units, ABS / brakes, and are generally widely used in the embedded field to control, for example, actuators.

[0051] The method 100 can be executed in an electronic programming environment. One execution and / or multiple executions of the method 100 can be interactively and / or automatically controlled via the electronic programming environment. The electronic programming environment enables programming and / or interaction with multiple iterations of the method 100. The electronic programming environment has proven to be advantageous in particular when initializing an iteration and / or when debugging during an iteration. For example, the prompt word 20 and / or the additional prompt word 21 can be adapted in the electronic programming environment.

[0052] Disclosed below are specific factors from which at least one calculation model may be generated.

[0053] Generating 130 at least one computing model 40 via the machine learning model 30 can be based at least on a formal specification. Here, the specification 10 can include a formal specification. For example, the specification 10 can be a formal specification. In another example, the specification 10 can include a formal specification. Here, the specification 10 can, for example, additionally include a natural language description. In another example, when generating 130 at least one computing model, the formal specification can be considered as a further input to the machine learning model 30.

[0054] Alternatively or additionally, generating 130 the at least one computational model 40 via the machine learning model 30 may be based at least on at least one counterexample 50 that violates the specification 10 .

[0055] Counterexample 50 can be, for example, a behavior of at least one calculation model that should not occur according to specification 10 (of the engineering system). For example, specification 10 can stipulate: "After entering the braking state (state B), before acceleration (state A) is possible, the brake must be released first (state R)". Counterexample 50 can be, for example: a process including the state sequence B, X, ..., X, A without "R" in between (here all X are not equal to "R").

[0056] For example, such as Figure 2 As schematically shown in , when generating 130 at least one computing model, at least one counterexample 50 that violates the specification 10 can be considered as another input to the machine learning model 30. Alternatively, at least one counterexample 50 that violates the specification 10 can be included in the generation 130 of at least one computing model via a prompt word 20. The at least one counterexample 50 that violates the specification 10 can be text. The at least one counterexample 50 that violates the specification 10 can, but does not have to be, derived from an earlier iteration of the method 100. To this end, if necessary, the prompt word 20 can also be adapted for the current iteration. For example, the prompt word 20 can include a request to improve and / or correct at least one computing model so that the counterexample 50 no longer appears in the at least one computing model generated 130.

[0057] Alternatively or additionally, generating 130 the at least one calculation model 40 via the machine learning model 30 may be based at least on a predetermined calculation model 60. Here, the predetermined calculation model 60 may have been generated in an earlier iteration of the method 100. On the other hand, this need not necessarily be the case.

[0058] For example, such as Figure 2 As schematically shown in , when generating 130 at least one computing model, a predetermined computing model 60 can be taken into account as a further input of the machine learning model 30. Alternatively, the predetermined computing model 60 can be included in the generation 130 of at least one computing model via the prompt word 20. For example, the predetermined computing model 60 can be a computing model generated in an earlier iteration of the method 100, which should now be expanded, improved and / or corrected in the current iteration of the method 100. To this end, if necessary, the prompt word 20 can also be adapted for the current iteration. For example, the prompt word 20 can include a request to find and correct one or more syntactic and / or grammatical errors in the predetermined computing model 60.

[0059] For example, by Figure 3 As schematically shown by the “OK” in FIG. 1 , the method 100 may include retaining 150 at least one calculation model 40 according to a predetermined criterion based on the evaluation result. The method 100 may be as follows Figure 1As schematically shown in FIG. 1 (but not necessarily), it includes discarding 151 at least one calculation model 40. Instead of discarding, at least one calculation model can be repaired, for example, see Figure 3 If at least one calculation model is not retained 150 , the calculation model and / or the knowledge derived therefrom may be taken into account in a new iteration of method 100 .

[0060] Evaluating 140 at least one computing model may include checking whether the syntax and / or grammar of at least one computing model 40 is correct. For example, a simulator for an automaton may be used for this purpose. In other words, the computing model 40 may be at least partially executed, for example to identify grammatically incorrect outputs in the machine learning model 30. As already discussed, for example, at least one computing model generated 130 with incorrect syntax and / or incorrect grammar may be used as a predetermined computing model 60 together with the possibly adapted prompt words 20 to generate an extended, improved and / or corrected computing model in a further iteration of the method 100.

[0061] Alternatively or additionally, evaluating 140 at least one computational model 40 may include checking whether at least one computational model 40 complies with a formal specification. This may be performed, for example, by a model checker. The specification 10 may, but need not, include a formal specification, i.e. the formal specification may, but need not, be a formal specification on which at least one computational model is based if necessary. The method 100 may include receiving a formal specification. In the case where the computational model is decidable (e.g. in a state automaton and / or a pushdown automaton), it may be checked via a model checker whether the formal specification is complied with. The method may in particular include setting up a verification environment.

[0062] The method 100 may include: if the check shows that at least one calculation model 40 does not comply with the formal specification, outputting a counterexample 50. As already discussed, for example, the counterexample 50 can be used together with the possibly adapted prompt words 20 to generate an extended, improved and / or corrected calculation model in a further iteration of the method 100.

[0063] Evaluating 140 at least one computational model 40 may include evaluating a plurality of computational models. For example, one or each computational model of the plurality of computational models may be evaluated in terms of its complexity. Alternatively or additionally, it may be checked, optionally via a simulator for an automaton, whether the syntax and / or grammar of one or each computational model of the plurality of computational models is correct. Alternatively or additionally, it may be checked whether one or each computational model of the plurality of computational models complies with the formal specification. In the event that one or each computational model of the plurality of computational models does not comply with the formal specification, one or more counterexamples 50 may be outputted, respectively.

[0064] Alternatively or additionally, evaluating a plurality of calculation models may include selecting a calculation model from the plurality of calculation models according to a predetermined criterion. In this case, the selected calculation model may be at least one of the calculation models 40 generated 130. The predetermined criterion may be designed, for example, such that if a plurality of calculation models do not meet the formal specification, the best calculation model (so far), i.e., the calculation model that, for example, violates the formal specification the least, is selected. The calculation model and at least one associated counterexample 50 may be used together with the possibly adapted prompt word 20 in further iterations of the method 100 to generate an even better calculation model.

[0065] The method 100 may include outputting 170 the evaluation result. This may be done, for example, via an electronic programming environment. This is advantageous because the flow of the method 100 may be adapted according to the evaluation result. Thus, for example, the calculation model may be manually selected or chosen according to the evaluation result.

[0066] Alternatively or additionally, the method 100 may comprise outputting 171 at least one calculation model 40. This may also be done via an electronic programming environment, for example.

[0067] The method 100 may be based on at least one input of a user of an interface of an electronic programming environment. For example, the method 100 and / or multiple executions thereof may be (interactively) controlled via the electronic programming environment. For example, before automatically walking through the method 100, this may be helpful when setting up a programming environment and / or an execution environment. Alternatively or additionally, interactive control may be helpful when debugging an automatic walk through of the method 100.

[0068] Method 100 can be repeated. In this case, the machine learning model and / or the prompt words and, if necessary, other inputs can be changed. If necessary, for example, if the evaluation result of at least one calculation model is not good enough, an additional calculation model can be generated in at least one further iteration, in particular in order to expand, improve and / or correct the calculation model generated so far. In this case, for example, the calculation model so far can be used as an additional input.

[0069] Different computational models can be generated by single and multiple executions of method 100. In a single execution of method 100, differences already exist due to the inherent variability of the machine learning model (temperature). If the method is to generate, for example, 101 different computational models based on the prompt word, then 101 different computational models can actually be generated due to the inherent variability. In addition, due to the possible diversity of the prompt words, there are differences in multiple executions of method 100. Alternatively or additionally, there are differences due to different combinations of different input artifacts (e.g., specifications only, which have a predetermined computational model, with counterexamples, etc.). If a statically identifiable multiple occurrence of a computational model is generated (e.g., by independent multiple executions), the computational model can be selected. Due to different specifications, there will also be differences in multiple executions of method 100.

[0070] A computer-implemented method 200 for further training a machine learning model 30 is also disclosed, wherein the machine learning model 30 is designed to generate 130 at least one computational model 40, in particular a pushdown automaton, a state automaton and / or a Petri net, at least based on at least one specification 10 to be met by at least one computational model 40. The method 200 comprises adapting the machine model 30 at least based on at least one computational model 40 and at least one evaluation result, wherein the at least one evaluation result is obtained by evaluating 140 at least one computational model 40.

[0071] The evaluation 140 may, but need not be, part of the method 200. The at least one calculation model 40 may be generated 130 and evaluated 140 according to the method 100 for automatically generating a calculation model 40. The method 200 may, but need not be, a continuation of the method 100.

[0072] Alternatively or additionally, method 100 may be re-executed via an adapted machine learning model. In particular, machine learning model 30 may be adapted between multiple executions of method 100 according to method 200.

[0073] The adaptation of the machine learning model 30 may be based at least on at least one specification 10 and at least on the prompt word 20 .

[0074] The machine learning model 30 can be adapted by supervised learning. Such an adaptation of the machine learning model 30 can be regarded as supervised fine-tuning. Due to fine-tuning, a general machine learning model, for example, which has been trained for general machine language understanding, can be adapted in an application-specific manner, i.e., in this case in terms of generating a computational model.

[0075] Fine-tuning of the machine learning model 30 can, but does not necessarily, precede further adaptation of the machine learning model 30 through unsupervised (reinforcement) learning.

[0076] Alternatively or additionally, adapting the machine learning model 30 based at least on at least one computing model 40 and at least one evaluation result may include: calculating at least one reward based at least on at least one evaluation result, and adapting the machine learning model 30 based at least on at least one computing model 40 and at least one reward. Such adaptation of the machine learning model 30 can be regarded as unsupervised (reinforcement) learning. Thus, for example, a general machine learning model trained for general machine language understanding and / or such a model after fine-tuning can be (further) adapted in an application-specific manner, i.e., here with respect to generating a computing model. Thus, the machine learning model 30 can be better adapted to the application situation in which the computing model is generated.

[0077] A reward may be a parameter, in particular a numerical parameter, which is similar to other parameters which are also rewards. For example, a reward may be greater than, equal to, or less than another reward.

[0078] If the at least one evaluation result is good, the at least one reward may be higher, and if the at least one evaluation result is poor, the at least one reward may be lower.

[0079] If the check on which the evaluation result is based has appeared negative, ie, for example, has not passed, the evaluation result will be poor, in particular, poor. Alternatively or additionally, if all checks appear to be positive, ie, passed, the evaluation result will be good, in particular, good.

[0080] The machine learning model 30 can be adapted based on at least a plurality of computing models and a plurality of associated rewards. The method here may include calculating rewards based on at least a plurality of evaluation results of each computing model. In other words, the reward of a computing model not only needs to be related to its evaluation results, but can also be based on one or more evaluation results of other computing models. For example, one or more rewards (i.e., how many) may be related to a plurality of evaluation results. Alternatively or additionally, one or more rewards may be related to a plurality of better evaluation results and a plurality of worse evaluation results, in particular to the imbalance between better and worse evaluation results. Alternatively or additionally, the reward for each evaluation result may be calculated first, and then adapted and / or offset based on other evaluation results.

[0081] The adapted machine learning model 30 may be based on a reinforcement learning algorithm such as Proximal Policy Optimization (PPO).

[0082] A part of the machine learning model 30 cannot be adapted (intentionally), ie is fixed. Therefore, only another part of the machine learning model 30 is adapted here.

[0083] For example, certain parameters such as weights and / or distortions, in particular weights and / or distortions on earlier layers of the machine learning model 30, cannot be adapted, i.e. are fixed. For example, the adaptation may be limited to later layers of the machine learning model 30, in which the computational model is formulated. It may thereby be ensured that the machine learning model 30 does not degrade in terms of machine language understanding with respect to costs. On the other hand, degradations in machine language understanding may be addressed by adaptation to the extent that they have no effect on the generation of the computational model. For example, machine language understanding of Shakespeare's English is not (usually) required for the generation of the computational model.

[0084] The method 200 can be controlled via an electronic programming environment. In particular, the machine learning model 30 can be further adapted via the electronic programming environment.

[0085] A computer system is also disclosed, which is designed to: perform a computer-implemented method 100 for automatically generating a computational model, in particular a pushdown automaton, a state automaton and / or a Petri net. Alternatively or additionally, the computer system may be designed to: perform a computer-implemented method 200 for further training a machine learning model 30. In particular, the computer system may be designed to: perform a computer-implemented method 100 for automatically generating a computational model, in particular a pushdown automaton, a state automaton and / or a Petri net, and (for example subsequently) perform a computer-implemented method 200 for further training a machine learning model 30. The computer system may include a processor and / or a working memory.

[0086] A computer program is also disclosed, which is designed to: perform a computer-implemented method 100 for automatically generating a computational model, in particular a pushdown automaton, a state automaton and / or a Petri net. Alternatively or additionally, the computer program can be designed to: perform a computer-implemented method 200 for further training a machine learning model 30. In particular, the computer program can be designed to: perform a computer-implemented method 100 for automatically generating a computational model, in particular a pushdown automaton, a state automaton and / or a Petri net and (for example subsequently) perform a computer-implemented method 200 for further training a machine learning model 30. For example, the computer program can be in an interpretable or compiled form. The computer program can be (even partially) loaded into the RAM of a computer for execution, for example as a sequence of bits or bytes.

[0087] A computer-readable medium or signal storing and / or containing a computer program is also disclosed. The medium may include, for example, one of a RAM, ROM, EPROM, HDD, SSD, ... on which / in which a signal is stored.

Claims

1. A computer-implemented method (100) for automatically generating a computational model, in particular a pushdown automaton, a state automaton and / or a Petri net, comprising: - generating (130) the at least one computing model (40) via a machine learning model (30) based at least on the specification (10) and the prompt word (20) that the at least one computing model (40) should meet; - evaluating the at least one calculation model (40), wherein an evaluation result is obtained.

2. The method (100) according to claim 1, wherein the at least one computing model (40) is designed to: map the control, regulation and / or monitoring of at least one computing unit of an engineering system, in particular a cyber-physical system, in particular a vehicle.

3. The method (100) according to claim 2, comprising: - translating (160) the at least one calculation model (40) into an executable code, the executable code being designed to control, regulate and / or monitor at least one calculation unit of the engineering system, in particular the cyber-physical system, in particular the vehicle.

4. A method (100) according to any of the preceding claims, wherein the at least one computational model (40) generated (130) via the machine learning model (30) is based at least on at least one counterexample (50) that violates the specification (10).

5. The method (100) according to any one of the preceding claims, comprising: - retaining (150) the at least one calculation model (40) according to a predetermined criterion based on the evaluation result; - Otherwise, optionally, discarding (151) the at least one calculation model (40).

6. The method (100) according to any one of the preceding claims, wherein evaluating (140) the at least one computational model comprises: - optionally checking the syntax and / or grammar of the at least one calculation model (40) for correctness via a simulator for automata.

7. The method (100) according to any one of the preceding claims, wherein evaluating (140) the at least one calculation model (40) comprises: - optionally checking, via a model checker, whether the at least one calculation model (40) complies with the formal specification.

8. The method (100) according to claim 7, comprising: If the check shows that the at least one calculation model (40) does not comply with the formal specification, a counterexample (50) is output.

9. A method (100) according to any of the preceding claims, wherein generating (130) the at least one computational model (40) comprises generating a plurality of computational models, and wherein evaluating (140) the at least one computational model (40) comprises evaluating the plurality of computational models.

10. The method (100) of claim 9, wherein evaluating the plurality of computational models comprises: - selecting a calculation model from said plurality of calculation models according to a predetermined criterion, optionally wherein the selected calculation model is at least one generated (130) calculation model (40).

11. A computer-implemented method (200) for further training a machine learning model (30), wherein the machine learning model (30) is designed to: generate (130) at least one computational model (40), in particular a pushdown automaton, a state automaton and / or a Petri net, based at least on at least one specification (10) and a prompt word (20) to be met by at least one computational model (40); the method (200) comprising: - adapting the machine learning model (30) at least based on at least one computing model (40) and at least one evaluation result, wherein the at least one evaluation result is obtained by evaluating (140) the at least one computing model (40); The at least one calculation model (40) has been generated (130) and evaluated (140) according to a method (100) for automatically generating calculation models, in particular pushdown automata, state machines and / or Petri nets, according to any of the preceding claims.

12. The method (200) of claim 11, wherein adapting the machine learning model (30) based at least on the at least one specification (10) and the at least one evaluation result comprises: - calculating at least one reward based at least on the at least one evaluation result; - Adapting the machine learning model (30) based at least on the at least one specification (10) and the at least one reward.

13. A computer system designed to: Executing a method (100) for automatically generating a computational model, in particular a pushdown automaton, a state automaton and / or a Petri net, according to any one of claims 1 to 10 and / or executing a computer-implemented method (200) for further training a machine learning model (30) according to claim 11 or 12.

14. A computer program designed to: Executing a method (100) for automatically generating a computational model, in particular a pushdown automaton, a state automaton and / or a Petri net, according to any one of claims 1 to 10 and / or executing a computer-implemented method (200) for further training a machine learning model (30) according to claim 11 or 12.

15. A computer readable medium or signal storing and / or containing a computer program according to claim 14.