DE102021005227A1 - File generator for checking a file for a security system for a vehicle - Google Patents
File generator for checking a file for a security system for a vehicle Download PDFInfo
- Publication number
- DE102021005227A1 DE102021005227A1 DE102021005227.7A DE102021005227A DE102021005227A1 DE 102021005227 A1 DE102021005227 A1 DE 102021005227A1 DE 102021005227 A DE102021005227 A DE 102021005227A DE 102021005227 A1 DE102021005227 A1 DE 102021005227A1
- Authority
- DE
- Germany
- Prior art keywords
- file
- output
- input
- formal
- generator
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/51—Source to source
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
Die Erfindung betrifft ein Dateigenerator (11) zum Erzeugen einer Ausgangsdatei (22) zur Überprüfung einer Eingangsdatei (21) für ein Sicherheitssystem (9) eines Fahrzeugs (1), der Dateigenerator (11) aufweisend ein Dateigenerierungsmodul (12) und eine Datenbasis mit Referenzdateien (14), die formale Merkmale aufweisen, wobei das Dateigenerierungsmodul (12) Parameter zum Erzeugen von formalen Merkmalen aufweist und ausgebildet und eingerichtet ist, in Abhängigkeit von der Eingangsdatei (21) und Werten der Parameter die Ausgangsdatei (22) mit funktionellen Merkmalen und zumindest einem formalen Merkmal zu erzeugen, das an zumindest ein formales Merkmal zumindest einer der Referenzdateien (14) angepasst ist, wobei die Eingangsdatei (21) und die Ausgangsdatei (22) jeweils zumindest einen Teil eines jeweiligen Computerprogrammes zur Steuerung des Sicherheitssystems (9) ausbilden und funktionelle Merkmale der Eingangsdatei (21) in ihrer Gesamtheit dieselben Funktionen wie die funktionellen Merkmale der Ausgangsdatei (22) aufweisen. The invention relates to a file generator (11) for generating an output file (22) for checking an input file (21) for a security system (9) of a vehicle (1), the file generator (11) having a file generation module (12) and a database with reference files (14) that have formal features, wherein the file generation module (12) has parameters for generating formal features and is designed and set up, depending on the input file (21) and values of the parameters, the output file (22) with functional features and at least to generate a formal feature which is adapted to at least one formal feature of at least one of the reference files (14), the input file (21) and the output file (22) each forming at least part of a respective computer program for controlling the security system (9) and functional characteristics of the input file (21) in their entirety the same functions as the functional Have characteristics of the output file (22).
Description
Die Erfindung betrifft einen Dateigenerator zum Erzeugen einer Ausgangsdatei zur Überprüfung einer Datei für ein Sicherheitssystems für ein Fahrzeug und ein Verfahren zum Erzeugen einer Ausgangsdatei zur Überprüfung einer Datei für ein Sicherheitssystem eines Fahrzeugs.The invention relates to a file generator for generating an output file for checking a file for a security system for a vehicle and a method for generating an output file for checking a file for a security system for a vehicle.
Assistenzsysteme für ein autonomes Fahren von Fahrzeugen können Algorithmen aufweisen, die Programmteile zur Steuerung eines Sicherheitssystems eines Fahrzeugs generieren können. Um derartige neu generierte Teile eines Programmcodes überprüfen zu können, können diese Programmteile dekompiliert werden.Assistance systems for autonomous driving of vehicles can have algorithms that can generate program parts for controlling a safety system of a vehicle. In order to be able to check such newly generated parts of a program code, these program parts can be decompiled.
Es wird ein Dateigenerator zum Erzeugen einer Ausgangsdatei zur Überprüfung einer Eingangsdatei für ein Sicherheitssystem eines Fahrzeugs vorgeschlagen. Der Dateigenerator weist ein Dateigenerierungsmodul und eine Datenbasis mit Referenzdateien auf. Die Referenzdateien weisen formale Merkmale auf. Das Dateigenerierungsmodul weist Parameter zum Erzeugen von formalen Merkmalen auf und ist ausgebildet und eingerichtet, in Abhängigkeit von der Eingangsdatei und Werten der Parameter die Ausgangsdatei mit funktionellen Merkmalen und zumindest einem formalen Merkmal zu erzeugen, das an zumindest ein formales Merkmal zumindest einer der Referenzdateien angepasst ist. Die Eingangsdatei und die Ausgangsdatei bilden jeweils zumindest einen Teil eines jeweiligen Computerprogrammes zur Steuerung des Sicherheitssystems aus. Funktionelle Merkmale der Eingangsdatei weisen in ihrer Gesamtheit dieselben Funktionen wie die funktionellen Merkmale der Ausgangsdatei auf.A file generator for generating an output file for checking an input file for a security system of a vehicle is proposed. The file generator has a file generation module and a database with reference files. The reference files have formal characteristics. The file generation module has parameters for generating formal features and is designed and set up to generate the output file with functional features and at least one formal feature, which is adapted to at least one formal feature of at least one of the reference files, depending on the input file and values of the parameters . The input file and the output file each form at least part of a respective computer program for controlling the security system. Overall, functional features of the input file have the same functions as the functional features of the output file.
Die Eingangsdatei bildet bevorzugt vollständig das Computerprogramm zur Steuerung des Sicherheitssystems aus. Die Referenzdateien umfassen bevorzugt Programme oder Teile von Programmen, insbesondere Unterfunktionen und/oder Subroutinen. Die Referenzdateien umfassen insbesondere Text in einer Hochsprache, wie zum Beispiel C, C++, Matlab, Matlab-Simulink oder Fortran, oder in einer Beschreibungssprache, wie zum Beispiel VHDL-x oder Verilog. Die Referenzdateien sind bevorzugt von einem Menschen programmiert. Eine weiterführende Variante umfasst auch eine Ausgestaltung, bei welcher die Referenzdateien maschinell programmiert sind. Die Referenzdateien weisen bevorzugt ebenfalls funktionale Merkmale auf.The input file preferably completely forms the computer program for controlling the security system. The reference files preferably include programs or parts of programs, in particular subfunctions and/or subroutines. In particular, the reference files include text in a high-level language such as C, C++, Matlab, Matlab-Simulink or Fortran, or in a description language such as VHDL-x or Verilog. The reference files are preferably programmed by a human. A further variant also includes an embodiment in which the reference files are machine-programmed. The reference files preferably also have functional features.
Unter dem Begriff „Datei“ wird insbesondere eine Aneinanderreihung von Zeichen verstanden, die auf einem Datenträger oder einem Speichermedium speicherbar ist oder gespeichert ist. Insbesondere kann die Ein- und Ausgangsdatei jeweils einen Text mit Zeichen ausbilden. Die Zeichen umfassen Buchstaben und Ziffern. In einer besonderen Ausgestaltung können die Zeichen auch Bilder oder Diagramme, insbesondere Symbole, wie sie in Flussdiagrammen verwendet werden, aufweisen.The term "file" means in particular a series of characters that can be stored or is stored on a data carrier or a storage medium. In particular, the input and output files can each form a text with characters. The characters include letters and numbers. In a special embodiment, the characters can also have images or diagrams, in particular symbols such as are used in flow charts.
Die Eingangsdatei und/oder die Ausgangsdatei weisen bevorzugt jeweils ein maschinenlesbares Format auf. Die Ein- und Ausgangsdatei bilden jeweils bevorzugt ein Computerprogramm aus, welches kompilierbar ist. Demnach ist es insbesondere möglich, durch ein Kompilieren der Eingangsdatei und der Ausgangsdatei ein erstes ausführbares Programm beziehungsweise ein zweites ausführbares Programm zu erzeugen.The input file and/or the output file each preferably have a machine-readable format. The input and output files each preferably form a computer program that can be compiled. Accordingly, it is possible in particular to generate a first executable program or a second executable program by compiling the input file and the output file.
Ein Prozessor des Sicherheitssystems ist insbesondere ausgebildet und eingerichtet, das erste und zweite ausführbare Programm abzuarbeiten, insbesondere einzulesen und Befehle, die in dem ersten und zweiten ausführbaren Programm enthalten sind, auszuführen.A processor of the security system is designed and set up in particular to process the first and second executable programs, in particular to read them in and to execute commands contained in the first and second executable programs.
Die funktionellen Merkmale der Eingangsdatei umfassen bevorzugt eine Beschreibung sämtlicher Operationen in Textform, die der Prozessor bei einem Ausführen der ersten ausführbaren Datei ausführt. Analog umfassen die funktionellen Merkmale der Ausgangsdatei bevorzugt eine Beschreibung sämtlicher Operationen in Textform, die der Prozessor bei einem Abarbeiten der zweiten ausführbaren Datei ausführt.The functional characteristics of the input file preferably include a textual description of all operations performed by the processor when executing the first executable file. Similarly, the functional features of the output file preferably include a description in text form of all operations that the processor performs when processing the second executable file.
Die funktionellen Merkmale der Eingangsdatei weisen insbesondere in ihrer Gesamtheit dieselben Funktionen wie die funktionellen Merkmale der Ausgangsdatei auf, wenn ein erstes Ergebnis bei einem Ausführen der ersten ausführbaren Datei mithilfe des Prozessors stets dasselbe wie ein zweites Ergebnis bei einem Ausführen der zweiten ausführbaren Datei mithilfe des Prozessors ist. Beispielsweise kann die Eingangsdatei vorsehen, zunächst eine Integration von Werten zu einem Integral durchzuführen und dann einen Funktionswert in Abhängigkeit des Integrals und einer Funktion zu berechnen während die Ausgangsdatei vorsehen kann, zunächst mehrere Funktionswerte jeweils in Abhängigkeit von den einzelnen Werten und der Funktion zu berechnen und im Anschluss daran eine Integration der Funktionswerte durchzuführen. In beiden Fällen kann, je nach Eigenschaft der Funktion, dasselbe Ergebnis erzielt werden. Mit „stets“ ist insbesondere gemeint, dass das erste Ergebnis unabhängig von Werten von Variablen der Ein-bzw. Ausgangsdatei gleich dem zweiten Ergebnis ist.In particular, the functional characteristics of the input file have, in their entirety, the same functions as the functional characteristics of the output file if a first result of executing the first executable file using the processor is always the same as a second result of executing the second executable file using the processor is. For example, the input file can provide for first integrating values into an integral and then calculating a function value as a function of the integral and a function, while the output file can provide for first calculating and calculating a plurality of function values, each depending on the individual values and the function then perform an integration of the function values. In both cases, depending on the property of the function, the same result can be obtained. "Always" means in particular that the first result is independent of the values of variables of the input or output file is equal to the second result.
Gemäß einer Weiterbildung weisen die funktionellen Merkmale der Eingangsdatei insbesondere dieselben Funktionen wie die funktionellen Merkmale der Ausgangsdatei auf, wenn der Prozessor bei dem Ausführen der zweiten und ersten ausführbaren Datei dieselben Befehle ausführt.According to a further development, the functional features of the input file have in particular the same functions as the functional features of the output file when the processor is Running the second and first executable runs the same commands.
Die formalen Merkmale umfassen beispielsweise eine Art und Weise, wie Zeilenabstände, Benennungen von Variablen und/oder eine Unterteilung der funktionellen Merkmale in Unterfunktionen in der Eingangs-, Referenz- bzw. Ausgangsdatei realisiert sind. Die formalen Merkmale können gemäß einer Variante Merkmale sein, die keinen Einfluss auf eine Funktionsweise des Prozessors bei einem Abarbeiten der ersten beziehungsweise zweiten ausführbaren Datei haben. Liegt beispielsweise eine unterschiedliche Aufteilung der funktionellen Merkmale in Unterfunktionen bei der Eingangs- bzw. Ausgangsdatei vor, können nach einem Kompilieren der Eingangs- bzw. Ausgangsdatei dennoch das erste und zweite ausführbare Programm identisch sein.The formal features include, for example, a way in which line spacing, naming of variables and/or a subdivision of the functional features into sub-functions are implemented in the input file, reference file or output file. According to one variant, the formal features can be features that have no influence on the functioning of the processor when processing the first or second executable file. If, for example, there is a different division of the functional features into subfunctions in the input file or output file, the first and second executable program can still be identical after the input file or output file has been compiled.
Gemäß einer weiteren Variante können die formalen Merkmale der Eingangsdatei sich derart von den formalen Merkmalen der Ausgangsdatei unterscheiden, dass eine Art und Weise, wie das erste Ergebnis bei einem Ausführen der ersten ausführbaren Datei und das zweite Ergebnis bei einem Ausführen der zweiten ausführbaren Datei mithilfe des Prozessors erzielbar ist, unterschiedlich ist, das erste Ergebnis jedoch gleich dem zweiten Ergebnis ist. Dies gilt insbesondere für alle möglichen Kombinationen von Werten der Variablen der Ein- bzw. Ausgangsdatei.According to a further variant, the formal characteristics of the input file can differ from the formal characteristics of the output file in such a way that a way in which the first result when executing the first executable file and the second result when executing the second executable file using the processor is achievable is different, but the first result is equal to the second result. This applies in particular to all possible combinations of values of the variables in the input or output file.
Beispielsweise kann eine erste Verkettung von Vorschriften, die zunächst eine Durchführung der oben beschriebenen Integration und im Anschluss daran eine Berechnung des Funktionswertes vorsieht, ein erstes formales Merkmal der Eingangs- oder Ausgangsdatei sein. Genauso kann eine zweite Verkettung von Vorschriften, die zunächst eine Berechnung der einzelnen Funktionswerte und im Anschluss daran die Durchführung der Integration vorsieht, ein zweites formales Merkmal der Eingangs- oder Ausgangsdatei sein. Die erste Verkettung schreibt eine unterschiedliche Reihenfolge von Rechenschritten gegenüber der zweiten Verkettung vor. Ist ein Ergebnis nach Anwendung der ersten beziehungsweise zweiten Verkettung der Vorschriften dasselbe, so kann die jeweilige Reihenfolge der ersten beziehungsweise zweiten Verkettung ein jeweiliges formales Merkmal der Eingangs- beziehungsweise Ausgangsdatei ausbilden. Die Rechenschritte der ersten beziehungsweise zweiten Verkettung der Vorschriften geben jeweils zusammen genommen ein jeweiliges Beispiel für ein funktionelles Merkmal der Eingangs- beziehungsweise Ausgangsdatei an.For example, a first concatenation of specifications, which initially provides for the integration described above to be carried out and then for a calculation of the function value, to be a first formal feature of the input or output file. In the same way, a second concatenation of specifications, which first provides for a calculation of the individual function values and then for the implementation of the integration, can be a second formal feature of the input or output file. The first concatenation prescribes a different order of calculation steps compared to the second concatenation. If a result is the same after applying the first or second chaining of the regulations, the respective order of the first or second chaining can form a respective formal feature of the input or output file. The calculation steps of the first and second linking of the regulations, taken together, each indicate a respective example of a functional feature of the input or output file.
Der Prozessor kann Teil eines Steuergerätes des Sicherheitssystems sein. Das Sicherheitssystem kann beispielsweise ein ABS-, ESP-, Airbag- oder ASR-System sein. Mit einer Steuerung des Sicherheitssystems ist auch eine Regelung des Sicherheitssystems umfasst.The processor can be part of a control unit of the security system. The safety system can be an ABS, ESP, airbag or ASR system, for example. Control of the safety system also includes regulation of the safety system.
Die Ausgangsdatei weist zumindest das eine formale Merkmal auf, das zumindest an das eine formale Merkmal der zumindest einen Referenzdatei angepasst ist. Bevorzugt weist die Ausgangsdatei mehrere formale Merkmale auf, die an mehrere Merkmale zumindest einer der Referenzdateien und bevorzugt von mehreren Referenzdateien angepasst ist. Vorteilhafterweise sind alle formalen Merkmale der Ausgangsdatei an formale Merkmale der Referenzdateien, insbesondere an formale Merkmale einer einzelnen Referenzdatei, angepasst.The output file has at least one formal feature that is at least matched to the one formal feature of the at least one reference file. The output file preferably has a number of formal features which are adapted to a number of features of at least one of the reference files and preferably of a number of reference files. All formal features of the original file are advantageously adapted to formal features of the reference files, in particular to formal features of an individual reference file.
Dadurch dass zumindest das eine formale Merkmal der Ausgangsdatei an zumindest das eine formale Merkmal der zumindest einen Referenzdatei angepasst ist, ist die Ausgangsdatei leichter für einen Menschen, insbesondere Programmierer, der die Ausgangsdatei überprüfen soll, lesbar. Dies erleichtert eine Überprüfung der Eingangsdatei insbesondere dann, wenn die Eingangsdatei von einem Künstlichen Intelligenz (Kl)-Algorithmus generiert ist. Beispielsweise kann eine „ausgerollte“ Schleife in der ersten generierten ausführbaren Datei in der Ausgangsdatei als eine „normale“ Schleife vorliegen. Des Weiteren können Bezeichnungen von Variablen der Eingangsdatei an häufig in den Referenzdateien verwendete Variablennamen angepasst werden. Dadurch, dass die funktionellen Merkmale der Eingangsdatei in ihrer Gesamtheit dieselben Funktionen wie die funktionellen Merkmale der Ausgangsdatei aufweisen, genügt es, zur Überprüfung der Eingangsdatei lediglich die Ausgangsdatei zu überprüfen.Because at least one formal feature of the original file is adapted to at least one formal feature of the at least one reference file, the original file is easier to read for a person, in particular a programmer, who is supposed to check the original file. This makes it easier to check the input file, in particular when the input file is generated by an artificial intelligence (AI) algorithm. For example, an "unrolled" loop in the first generated executable may exist in the output file as a "normal" loop. Furthermore, designations of variables in the input file can be adapted to variable names that are frequently used in the reference files. Due to the fact that the functional features of the input file have the same functions as the functional features of the output file in their entirety, it is sufficient to check the input file only to check the output file.
Des Weiteren kann der vorgeschlagene Dateigenerator auch bei einer Softwareentwicklung, bei welcher mehrere unterschiedliche Programmierer Programme programmieren, verwendet werden. Insbesondere ist es möglich, Namen für Variablen in automatisierter Form zu vereinheitlichen. Des Weiteren ist es möglich, einen strukturellen Aufbau verschiedener Programme, die von unterschiedlichen Programmierern programmiert wurden, zu vereinheitlichen. Ein jeweiliger struktureller Aufbau der Eingangsdatei, der Referenzdatei und der Ausgangsdatei können im Sinne der Erfindung zu den formalen Merkmalen der Eingangsdatei, Referenzdatei beziehungsweise der Ausgangsdatei gehören.Furthermore, the proposed file generator can also be used in software development in which several different programmers program programs. In particular, it is possible to standardize names for variables in an automated manner. Furthermore, it is possible to unify a structural configuration of various programs programmed by different programmers. A respective structural design of the input file, the reference file and the output file can belong to the formal features of the input file, reference file or output file within the meaning of the invention.
In einer weiteren Ausgestaltung ist vorgesehen, dass der Dateigenerator ein erstes Überprüfungsmodul aufweist, das ausgebildet und eingerichtet ist, eine erste Überprüfung, ob die funktionellen Merkmale der Eingangsdatei dieselben Funktionen wie die funktionellen Merkmale der Ausgangsdatei aufweisen, durchzuführen.A further embodiment provides that the file generator has a first checking module that is designed and set up to carry out a first check as to whether the functional features of the input file have the same functions as the functional features of the output file.
Dadurch kann automatisch überprüft werden, dass das erste Ergebnis gleich dem zweiten Ergebnis ist, unabhängig davon, ob der Prozessor die erste oder zweite ausführbare Datei ausführt.This can automatically verify that the first result is equal to the second result, regardless of whether the processor is running the first or second executable.
In einer weiteren Ausgestaltung ist vorgesehen, dass das erste Überprüfungsmodul einen SAT-Löser aufweist und ausgebildet und eingerichtet ist, die erste Überprüfung mithilfe des SAT-Lösers durchzuführen. Mit dem SAT-Löser ist ein Löser gemeint, der beispielsweise überprüfen kann, ob die Eingangsdatei und die Ausgangsdatei, jeweils als der Teil des jeweiligen Computerprogrammes oder als das jeweilige Computerprogramm als Ganzes, erfüllbar sind. Mit „erfüllbar“ ist insbesondere gemeint, ob durch Auswahl einer Kombination von Werten der Variablen, die in der Eingangsdatei beziehungsweise in der Ausgangsdatei enthalten sind, eine lauffähige Anwendung der ersten beziehungsweise zweiten ausführbaren Datei auf dem Prozessor bereitgestellt werden kann. Der Begriff SAT-Löser leitet sich vom englischen „satisfiability“ ab, wobei der Begriff mit „Erfüllbarkeit“ übersetzt werden kann.A further configuration provides that the first checking module has a SAT solver and is designed and set up to carry out the first check using the SAT solver. The SAT solver means a solver that can check, for example, whether the input file and the output file can be fulfilled as part of the respective computer program or as the respective computer program as a whole. “Achievable” means in particular whether an executable application of the first or second executable file can be provided on the processor by selecting a combination of values of the variables contained in the input file or in the output file. The term SAT solver is derived from the English "satisfiability", whereby the term can be translated as "satisfiability".
Der SAT-Löser kann in diesem Sinne ein Entscheidungsproblem lösen. Insbesondere ist der SAT-Löser ausgebildet und eingerichtet zu überprüfen, ob eine aussagenlogische Formel erfüllbar ist. Vorteilhafterweise ist der SAT-Löser ausgebildet und eingerichtet, eine erste aussagenlogische Formel für die Eingangsdatei und eine zweite aussagenlogische Formel für die Ausgangsdatei zu generieren und zu deren Erfüllbarkeit zu überprüfen. Gemäß einer vorteilhaften Weiterbildung ist der SAT-Löser ausgebildet und eingerichtet, eine dritte aussagenlogische Formel zu generieren, die Werte von Variablen der Eingangsdatei mit Werten von Variablen der Ausgangsdatei vergleicht.In this sense, the SAT solver can solve a decision problem. In particular, the SAT solver is designed and set up to check whether a propositional logic formula can be satisfied. The SAT solver is advantageously designed and set up to generate a first propositional formula for the input file and a second propositional formula for the output file and to check whether they can be fulfilled. According to an advantageous development, the SAT solver is designed and set up to generate a third propositional logic formula that compares values of variables in the input file with values of variables in the output file.
Die dritte aussagenlogische Formel ist insbesondere in Form eines zusammenhängenden booleschen Ausdruckes ausgebildet. Der boolesche Ausdruck kann je nachdem, welche Werte die Variablen der Eingangsdatei beziehungsweise der Ausgangsdatei annehmen, den Wert 0 oder 1 annehmen. Bevorzugt bildet der SAT-Solver die dritte aussagenlogische Formel derart, dass deren boolescher Ausdruck den Wert 1 annimmt, falls die funktionellen Merkmale der Eingangsdatei dieselben Funktionen wie die funktionellen Merkmale der Ausgangsdatei aufweisen. Dies gilt insbesondere dann, wenn die dritte aussagenlogische Formel unabhängig von den Werten der Variablen, insbesondere von einer beliebigen Kombination der Werte der Variablen, stets den Wert „1“ annimmt. Ist dies der Fall, kann insbesondere sichergestellt werden, dass der Prozessor beim Abarbeiten der ersten und zweiten ausführbaren Datei dasselbe Ergebnis erzielt.The third propositional formula is in particular in the form of a connected Boolean expression. The boolean expression can have the value 0 or 1, depending on the values that the variables of the input file or the output file take. The SAT solver preferably forms the third propositional logic formula in such a way that its Boolean expression assumes the value 1 if the functional features of the input file have the same functions as the functional features of the output file. This applies in particular if the third propositional formula always has the value “1” regardless of the values of the variables, in particular of any combination of the values of the variables. If this is the case, it can be ensured in particular that the processor achieves the same result when processing the first and second executable file.
In einer weiteren Ausgestaltung ist vorgesehen, dass das erste Überprüfungsmodul einen SMT-Löser aufweist und ausgebildet und eingerichtet ist, die erste Überprüfung mithilfe des SMT-Lösers durchzuführen. Mit dem SMT-Löser ist ein Löser gemeint, der ausgebildet und eingerichtet ist, Methoden der „satisfiability modulo theory“ anzuwenden. Im Vergleich zu dem SAT-Löser kann der SMT-Löser bevorzugt Ausdrücke aufweisen, die komplexe Ausdrücke, insbesondere boolesche Ausdrücke, die bei dem SAT-Löser Verwendung finden, zusammenfassen. Dadurch kann der SMT-Löser auf einer abstrakteren Ebene arbeiten, wodurch Theorien der höheren Mathematik verwendet werden können. Insbesondere können Theorien über die reellen Zahlen, Integerzahlen, Theorien über Datenstrukturen wie zum Beispiel Listen, Felder und Bitvektoren mit Hilfe des SMT-Lösers angewendet werden.A further configuration provides that the first checking module has an SMT solver and is designed and set up to carry out the first check using the SMT solver. The SMT solver means a solver that is trained and set up to apply methods of the "satisfiability modulo theory". Compared to the SAT solver, the SMT solver may preferably have expressions that summarize complex expressions, particularly Boolean expressions used in the SAT solver. This allows the SMT solver to work at a more abstract level, allowing the use of higher mathematics theories. In particular, theories about the real numbers, integers, theories about data structures such as lists, arrays and bit vectors can be applied using the SMT solver.
In einer weiteren Ausgestaltung ist vorgesehen, dass der Dateigenerator ein zweites Überprüfungsmodul aufweist, das ausgebildet und eingerichtet ist, eine Ähnlichkeit zwischen dem formalen Merkmal der Ausgangsdatei und dem zumindest einen formalen Merkmal der zumindest einen Referenzdatei zu bewerten. Das zweite Überprüfungsmodul ist bevorzugt ausgebildet und eingerichtet, eine Metrik zu bestimmen, die einen Grad der Ähnlichkeit zwischen dem formalen Merkmal der Ausgangsdatei und dem zumindest einen formalen Merkmal der zumindest einen Referenzdatei angibt. Insbesondere kann die Metrik eine Ähnlichkeit zwischen einer Gesamtheit aller formalen Merkmale der Ausgangsdatei und mehreren formalen Merkmalen der zumindest einen Referenzdatei, insbesondere mehreren Referenzdateien, angeben.A further embodiment provides that the file generator has a second checking module that is designed and set up to evaluate a similarity between the formal feature of the original file and the at least one formal feature of the at least one reference file. The second verification module is preferably designed and set up to determine a metric that indicates a degree of similarity between the formal feature of the output file and the at least one formal feature of the at least one reference file. In particular, the metric can indicate a similarity between a total of all formal features of the output file and a number of formal features of the at least one reference file, in particular a number of reference files.
Das zweite Überprüfungsmodul kann vorteilhafterweise verwendet werden, um die Ausgangsdatei erneut in Abhängigkeit von der Eingangsdatei zu generieren, wobei jedoch die Werte der Parameter verändert werden. Dadurch kann es gelingen, die formalen Merkmale der Ausgangsdatei noch weiter an die formalen Merkmale der Referenzdateien anzupassen.The second verification module can advantageously be used to regenerate the output file as a function of the input file, but changing the values of the parameters. This makes it possible to further adapt the formal characteristics of the source file to the formal characteristics of the reference files.
In einer weiteren Ausgestaltung ist vorgesehen, dass der Dateigenerator ein Adaptationsmodul aufweist, das ausgebildet und eingerichtet ist, die Werte der Parameter an einen Ausgabewert des zweiten Überprüfungsmoduls anzupassen. Das Adaptionsmodul erlaubt es, eine Anpassung der Werte der Parameter in Abhängigkeit von dem Ausgabewert des zweiten Überprüfungsmoduls vorzunehmen, insbesondere automatisiert durchzuführen.In a further refinement, it is provided that the file generator has an adaptation module which is designed and set up to adapt the values of the parameters to an output value of the second checking module. The adaptation module allows the values of the parameters to be adapted as a function of the output value of the second checking module, in particular in an automated manner.
In einer weiteren Ausgestaltung ist vorgesehen, dass das zweite Überprüfungsmodul in Form eines Diskriminators ausgebildet ist, der ausgebildet und eingerichtet ist, den Ausgabewert als binären Ausgabewert auszugeben und den binären Ausgabewert in Abhängigkeit des formalen Merkmals der Ausgangsdatei zu ermitteln. Beispielsweise kann der binäre Ausgabewert den Wert „1“ annehmen, wenn das formale Merkmal der Ausgangsdatei ähnlich zu zumindest dem einen formalen Merkmal der zumindest einen Referenzdatei ist. Andernfalls nimmt der binäre Ausgabewert bevorzugt den Wert „0“ an. Mithilfe des binären Ausgabewertes ist es möglich, auf einfache Art und Weise zu entscheiden, ob die Werte der Parameter weiter angepasst werden sollen oder nicht.In a further refinement, it is provided that the second checking module is in the form of a discriminator which is designed and set up to output the output value as a binary to output the output value and to determine the binary output value depending on the formal characteristic of the output file. For example, the binary output value can assume the value “1” if the formal feature of the output file is similar to at least one formal feature of the at least one reference file. Otherwise, the binary output value preferably assumes the value "0". With the help of the binary output value, it is possible to easily decide whether the values of the parameters should be further adjusted or not.
In einer weiteren Ausgestaltung ist vorgesehen, dass das Dateigenerierungsmodul und das zweite Überprüfungsmodul ein generatives adversariales Netzwerk (GAN) ausbilden. Diese Ausgestaltung lässt sich besonders einfach realisieren, falls das zweite Überprüfungsmodul in Form eines Diskriminators ausgebildet ist. Das generative adversariale Netzwerk kann es ermöglichen, die formalen Merkmale der Referenzdateien durch ein Training des GANs mithilfe der Referenzdateien in einem unüberwachten Lernen zu erlernen. Dadurch kann unter Umständen darauf verzichtet werden, die formalen Merkmale manuell zu spezifizieren.A further embodiment provides that the file generation module and the second verification module form a generative adversarial network (GAN). This refinement can be implemented particularly easily if the second checking module is designed in the form of a discriminator. The generative adversarial network can allow the formal features of the reference files to be learned by training the GAN using the reference files in unsupervised learning. As a result, it may be possible to dispense with manually specifying the formal characteristics.
Der Ausdruck „Modul“, wie er hierin benutzt wird, beschreibt eine beliebige bekannte oder später entwickelte Hardware, Software, Firmware, Künstliche Intelligenz, Fuzzy-Logik oder Kombination aus einer Hardware, Software, Firmware, Künstliche Intelligenz und/oder Fuzzy-Logik, die in der Lage ist, die mit dem jeweiligen „Modul“ assoziierte Funktionalität auszuführen.The term "module" as used herein describes any known or later developed hardware, software, firmware, artificial intelligence, fuzzy logic or combination of hardware, software, firmware, artificial intelligence and/or fuzzy logic, capable of performing the functionality associated with each "module".
Weiterhin wird ein Verfahren zum Erzeugen einer Ausgangsdatei zur Überprüfung einer Eingangsdatei eines Sicherheitssystems für ein Fahrzeug vorgeschlagen. Das Verfahren weist die folgenden Schritte auf. In einem ersten Schritt wird die Eingangsdatei eingelesen. In einem zweiten Schritt wird die Ausgangsdatei mithilfe eines Dateigenerierungsmoduls in Abhängigkeit von der Eingangsdatei generiert. Die Eingangsdatei und die Ausgangsdatei bilden jeweils zumindest ein Teil eines jeweiligen Computerprogrammes zur Steuerung des Sicherheitssystems aus. Des Weiteren weisen funktionelle Merkmale der Eingangsdatei in ihrer Gesamtheit dieselben Funktionen wie die funktionellen Merkmale der Ausgangsdatei auf. In einem dritten Schritt wird zumindest ein formales Merkmal der Ausgangsdatei an zumindest ein formales Merkmal einer Referenzdatei angepasst. Die Nummerierung der Schritte legt keine Reihenfolge bei einer Abarbeitung der Schritte fest. Insbesondere kann der dritte Schritt gleichzeitig mit dem zweiten Schritt durchgeführt werden. Das formale Merkmal der Referenzdatei kann insbesondere bei einer Formulierung einer Randbedingung bei einer Erzeugung der Ausgangsdatei verwendet werden.Furthermore, a method for generating an output file for checking an input file of a safety system for a vehicle is proposed. The procedure has the following steps. In a first step, the input file is read. In a second step, the output file is generated using a file generation module depending on the input file. The input file and the output file each form at least part of a respective computer program for controlling the security system. Furthermore, functional characteristics of the input file have, in their entirety, the same functions as the functional characteristics of the output file. In a third step, at least one formal feature of the original file is adapted to at least one formal feature of a reference file. The numbering of the steps does not determine the order in which the steps are processed. In particular, the third step can be carried out simultaneously with the second step. The formal feature of the reference file can be used in particular when formulating a boundary condition when generating the output file.
Weiterhin wird ein Computerprogrammprodukt vorgeschlagen. Das Computerprogramm umfasst ein Programm, das, wenn es von einem Computer ausgeführt wird, den Computer veranlasst, das vorgeschlagene Verfahren durchzuführen.Furthermore, a computer program product is proposed. The computer program comprises a program which, when executed by a computer, causes the computer to carry out the proposed method.
Vorteilhafte Weiterbildungen der Erfindung sind in den abhängigen Ansprüchen angegeben. Bevorzugte Ausführungsbeispiele werden anhand der folgenden Figuren näher erläutert. Dabei zeigt schematisch
-
1 ein Fahrzeug mit einem Steuergerät, einem Sensorsystem und einer Kl-Einheit; -
2 einen Dateigenerator zum Erzeugen einer Ausgangsdatei zur Überprüfung einer Eingangsdatei für ein Sicherheitssystem des in1 gezeigten Fahrzeugs; -
3 den in2 gezeigten Dateigenerator mit einem zweiten Überprüfungsmodul; -
4 den in2 gezeigten Dateigenerator mit einem Dateigenerierungsmodul mit einem Kompilierer und einem Dekompilierer; -
5 Schritte eines Verfahrens zum Erzeugen einer Ausgangsdatei zur Überprüfung einer Eingangsdatei für ein Sicherheitssystem des in1 gezeigten Fahrzeugs.
-
1 a vehicle with a control unit, a sensor system and an AI unit; -
2 a file generator for generating an output file for checking an input file for a security system of the in1 vehicle shown; -
3 the in2 shown file generator with a second verification module; -
4 the in2 shown file generator with a file generation module with a compiler and a decompiler; -
5 Steps of a method for generating an output file for checking an input file for a security system of the in1 shown vehicle.
Die Verkehrsdaten werden bevorzugt während der Verkehrssituation mittels einer Auswertungseinheit 5 des Fahrzeugs 1 gespeichert und bevorzugt verarbeitet. Dadurch kann die Verkehrssituation in Form einer Referenzverkehrssituation erfasst und dokumentiert, insbesondere abgespeichert, werden. Analog zu der Referenzverkehrssituation können zu mehreren unterschiedlichen Zeitpunkten weitere Referenzverkehrssituationen mithilfe von weiteren Verkehrsdaten, die analog zu den Verkehrsdaten mithilfe des Sensorsystems 3 erzeugbar sind, erfasst, insbesondere abgespeichert, werden.The traffic data are preferably stored and preferably processed during the traffic situation by means of an
Die Kl-Einheit 2 ist vorteilhafterweise ausgebildet und eingerichtet, in Abhängigkeit von den Verkehrsdaten und/oder den weiteren Verkehrsdaten ausführbare Dateien oder Teile von ausführbaren Dateien zum Steuern, insbesondere Regeln, eines Sicherheitssystems 9 des Fahrzeugs 1 zu generieren.The
Die derart generierten Dateien können von der Kl-Einheit 2 auf das Steuergerät 6 übertragen werden. Bevorzugt ist die Kl-Einheit 2 ausgebildet und eingerichtet, eine erste generierte ausführbare Datei 10 in einem Speicher 7 des Steuergerätes 6 abzuspeichern. Die erste generierte ausführbare Datei 10 kann insbesondere Befehle zum Steuern oder Regeln des Sicherheitssystems 9 mithilfe des Steuergerätes 6 aufweisen. Die Befehle der ersten generierten ausführbaren Datei 10 können insbesondere zum Steuern oder Regeln des Sicherheitssystems 9 bei neuen Verkehrssituationen verwendet werden, die jeweils ähnlich zu einer der Referenzverkehrssituationen sind. Nach einem Detektieren einer der neuen Verkehrssituationen als eine zu einer der Referenzverkehrssituationen ähnlichen Verkehrssituation kann das Steuergerät 6 die Befehle der ersten generierten ausführbaren Datei 10 ausführen, um das Sicherheitssystem 9 zu steuern oder zu regeln. Ein Generieren der ersten ausführbaren Datei 10 kann somit als ein Anlernen oder Adaptieren des Sicherheitssystems 9 während eines Betriebes des Fahrzeugs 1 betrachtet werden.The files generated in this way can be transferred from the
Ein Prozessor 8 des Steuergerätes 6 kann die erste ausführbare Datei 10 in einen Cache des Prozessors 8 laden und abarbeiten. Unter einem Abarbeiten im Sinne der Erfindung wird ein Ausführen von Befehlen, die in der ersten ausführbaren Datei 10 enthalten sind, mittels des Prozessors 8 verstanden. Führt der Prozessor 8 die Befehle der ersten ausführbaren Datei 10 aus, so wird das Sicherheitssystem 9 des Fahrzeugs 1 gesteuert, insbesondere geregelt.A
Die erste ausführbare Datei 10 kann mithilfe eines Dekompilierers in eine erste Textdatei konvertiert werden. Die erste Textdatei gibt beispielsweise einen Programmcode in einer Hochsprache, wie beispielsweise C++, wieder. Gemäß eines weiteren Ausführungsbeispiels ist die erste Textdatei die Eingangsdatei 21. Es versteht sich von selbst, dass die erste Textdatei durch ein Kompilieren in ein für den Prozessor 8 lauffähiges Programm überführt werden kann. Somit eignet sich die Eingangsdatei 21 in Form der ersten Textdatei für das Sicherheitssystem 9. Vorteilhafterweise weist der Dateigenerator 11 den Kompilierer auf. Die erste Textdatei wird im Folgenden auch als Eingangstext bezeichnet.The first
Die Ausgangsdatei 22 ist bevorzugt ein zweiter Text in einer Hochsprache, wie beispielsweise C++. Der zweite Text wird im Folgenden als Ausgangstext bezeichnet. Möglich ist, dass sich eine Sprache des Eingangstextes von einer Sprache des Ausgangstextes unterscheidet. So können der Eingangstext in der Hochsprache C und der Ausgangstext in der Hochsprache C++ verfasst sein.The
Der Dateigenerator 11 weist ein Dateigenerierungsmodul 12 und eine Datenbasis 13 mit Referenzdateien 14 auf. Die Referenzdateien 14 weisen formale Merkmale auf. Das Dateigenerierungsmodul 12 weist Parameter zum Erzeugen von formalen Merkmalen auf und ist ausgebildet und eingerichtet, in Abhängigkeit von der Eingangsdatei 21 und Werten der Parameter die Ausgangsdatei 22 mit funktionalen Merkmalen und zumindest einem formalen Merkmal zu erzeugen. Das formale Merkmal der Ausgangsdatei 22 ist an zumindest ein formales Merkmal zumindest einer Referenzdatei 14.1 der Referenzdateien 14 angepasst.The
Die Eingangsdatei 21 und die Ausgangsdatei 22 bilden jeweils zumindest einen Teil eines jeweiligen Computerprogrammes, insbesondere ein jeweiliges Computerprogramm, zur Steuerung des Sicherheitssystems 9 aus. Weiterhin weisen die funktionellen Merkmale der Eingangsdatei 21 in ihrer Gesamtheit dieselben Funktionen wie die funktionellen Merkmale der Ausgangsdatei 22 auf.The
Das formale Merkmal kann beispielsweise ein Zeilenabstand, eine Schriftgröße, eine Angabe über eine Programmstruktur oder ein Typ einer Funktion oder Unterfunktion sein, wie dieser beziehungsweise diese in der Referenzdatei 14.1 oder in den Referenzdateien 14 verwendet werden. Entsprechend kann durch eine Veränderung eines jeweiligen Wertes eines ersten, zweiten, dritten und/oder vierten Parameters des Dateigenerierungsmoduls 12 ein Zeilenabstand, eine Schriftgröße, eine Angabe über eine Programmstruktur beziehungsweise ein Typ einer Funktion oder Unterfunktion der Ausgangsdatei veränderbar sein. Die Werte des ersten, zweiten, dritten und/oder vierten Parameters werden bevorzugt derart verändert, dass das formale Merkmal der Ausgangsdatei möglichst ähnlich zu dem formalen Merkmal der Referenzdatei 14.1 bzw. den Referenzdateien 14 ist. Ein derartiges Verändern beziehungsweise Anpassen der Werte der Parameter kann in einer einfachen Variante manuell erfolgen.The formal feature can be, for example, a line spacing, a font size, an indication of a program structure or a type of a function or sub-function, such as this or these are used in the reference file 14.1 or in the reference files 14. Correspondingly, by changing a respective value of a first, second, third and/or fourth parameter of the
Der Dateigenerator kann zur Erzeugung der Ausgangsdatei 22 in Abhängigkeit der Eingangsdatei 21 einen Dekompilierer aufweisen. In diesem Fall ist die erste ausführbare Datei 10 bevorzugt die Eingangsdatei 21. Der erste, zweite, dritte und/oder vierte Parameter können bei dieser Ausgestaltung Freiheitsgrade des Dekompilierers sein.The file generator can have a decompiler to generate the
Gemäß einer bevorzugten Ausführungsform ist das erste Überprüfungsmodul 15 ausgebildet und eingerichtet, den Eingangstext in einen ersten übersetzten Text und den Ausgangstext in einen zweiten übersetzten Text zu überführen. Der erste und zweite übersetzte Text beschreibt vorteilhafterweise den Eingangstext beziehungsweise den Ausgangstext jeweils in einer Prädikatenlogik erster Ordnung. Vorteilhafterweise ist der SMT-Löser ausgebildet und eingerichtet, anhand des ersten und zweiten übersetzten Textes zu überprüfen, ob die funktionellen Merkmale der Eingangsdatei 21 in ihrer Gesamtheit dieselben Funktionen wie die funktionellen Merkmale der Ausgangsdatei 22 aufweisen.According to a preferred embodiment, the
Das Dateigenerierungsmodul 12 weist bevorzugt zumindest eine erste Schnittstelle 17 auf, die für eine Eingabe der Werte der Parameter verwendet werden kann. Über die Schnittstelle 17 oder eine weitere Schnittstelle sind bevorzugt Informationen über die formalen Merkmale der Referenzdateien 14 eingebbar. Diese Informationen können beispielsweise Informationen über den Zeilenabstand, die Schriftgröße, die Angabe über die Programmstruktur oder den Typ der Funktion oder Unterfunktion der Referenzdatei 14.1 enthalten.The
Das zweite Überprüfungsmodul 18 ist ausgebildet und eingerichtet, eine Ähnlichkeit zwischen dem formalen Merkmal der Ausgangsdatei 22 und dem zumindest einen formalen Merkmal der zumindest einen Referenzdatei 14.1 zu bewerten. The
Vorteilhafterweise ist das zweite Überprüfungsmodul 18 in Form eines KI-Moduls ausgebildet. Das zweite Überprüfungsmodul 18 kann insbesondere ein neuronales Netz, wie beispielsweise ein Multilayer-Perceptron, und/oder ein faltendes neuronales Netzwerk (CNN) aufweisen. Das zweite Überprüfungsmodul 18 ist bevorzugt derart trainiert, dass es zumindest das formale Merkmal der Referenzdatei 14.1, insbesondere die formalen Merkmale der Referenzdateien 14, detektieren kann. Ein einzelner Trainingsdatensatz zum Trainieren des zweiten Überprüfungsmoduls umfasst vorteilhaft eine der Referenzdateien 14 oder ist mithilfe zumindest einer der Referenzdateien 14 erzeugt. Die Referenzdateien 14 können manuell oder automatisiert erstellt sein. Vorteilhaft wird zu allen Referenzdateien 14 ein jeweiliger Trainingsdatensatz generiert.The
Die formalen Merkmale der jeweiligen Referenzdateien können beispielsweise jeweils mittels eines Trainingsdatenvektors beschrieben werden. Werte des jeweiligen Trainingsdatenvektors können zum Beispiel die Schriftgröße und/oder den Typ der Funktion der entsprechenden Referenzdatei 14 aufweisen. Analog kann das formale Merkmal oder formale Merkmale der Ausgangsdatei 22 mittels eines Prüfdatenvektors beschrieben werden. Werte des jeweiligen Prüfdatenvektors können zum Beispiel die Schriftgröße und/oder den Typ der Funktion der Ausgangsdatei 22 aufweisen.The formal features of the respective reference files can each be described by means of a training data vector, for example. Values of the respective training data vector can have the font size and/or the type of the function of the
Das zweite Überprüfungsmodul 18 kann die Ähnlichkeit zwischen dem formalen Merkmal der Ausgangsdatei 22 und dem zumindest einen formalen Merkmal der zumindest einen Referenzdatei 14.1 beispielsweise bewerten, indem das zweite Überprüfungsmodul 18 den kleinsten Abstand zwischen dem Prüfdatenvektor und den jeweiligen Trainingsdatenvektoren bestimmt. Hierzu berechnet das zweite Überprüfungsmodul 18 bevorzugt eine Norm eines jeweiligen Differenzvektors. Die jeweiligen Differenzvektoren können als jeweilige Differenzen zwischen dem Prüfdatenvektor und den jeweiligen Trainingsvektoren gebildet werden. Der jeweilige Abstand kann als Norm der Differenzvektoren berechnet werden. Der kleinste Abstand gibt nur ein sehr einfaches Beispiel an, wie das zweite Überprüfungsmodul 18 eine Metrik bestimmen kann, die ein Maß für die Ähnlichkeit zwischen dem formalen Merkmal der Ausgangsdatei 22 und dem zumindest einen formalen Merkmal der zumindest einen Referenzdatei 14.1 ist.The
Praktischerweise kann das KI-Modul mithilfe einer lernenden Vektorquantisierung trainiert werden. Hierbei können sogenannte Codebook-Vektoren mithilfe der Trainingsdatenvektoren erstellt werden. Es können mehrere Codebook-Vektoren für jeweils ein formales Merkmal der Referenzdateien 14 gebildet werden. Bei einer Anwendung des zweiten Überprüfungsmodul 18 kann der Prüfdatenvektor mit den Codebook-Vektoren verglichen werden. Derjenige Codebook-Vektor, der dem Prüfdatenvektor am ähnlichsten ist, kann ein Neuron in dem Überprüfungsmodul 18 aktivieren und dadurch eine Berechnung der Metrik initialisieren.Conveniently, the AI module can be trained using a learning vector quantization. Here, so-called codebook vectors can be created using the training data vectors. A number of codebook vectors can be formed for each one formal feature of the reference files 14 . In an application of the
In Abhängigkeit von einem Ergebnis einer Bewertung der Ähnlichkeit können die Werte der Parameter des Dateigenerierungsmoduls 12 verändert, insbesondere angepasst, werden. Dies kann gemäß einer einfachen Ausgestaltung auch manuell umgesetzt werden. Das zweite Überprüfungsmodul 18 gibt das Ergebnis der Bewertung in Form eines Ausgabewertes aus. Beispielsweise kann der kleinste Abstand der Ausgabewert des zweiten Überprüfungsmoduls 18 sein.Depending on a result of an evaluation of the similarity, the values of the parameters of the
In einer besonderen Ausgestaltung können für ein Training des zweiten Überprüfungsmoduls 18 auch komplementäre Referenzdateien verwendet werden. Die komplementären Referenzdateien können ähnlich wie die Referenzdateien ausgebildet sein, mit dem Unterschied, dass sie nicht die formalen Merkmale der Referenzdateien aufweisen. Die komplementären Referenzdateien können beispielsweise Programme oder Teile von Programmen, insbesondere Unterfunktionen und/oder Subroutinen umfassen. Mithilfe der Referenzdateien 14 und den komplementären Referenzdateien kann das zweite Überprüfungsmodul 18 derart trainiert werden, dass es in einem trainierten Zustand wie ein Diskriminator arbeitet. Die komplementären Referenzdateien weisen bevorzugt formale Merkmale auf, die jeweils unterschiedlich zu allen formalen Merkmalen der Referenzdateien 14 sind.In a special embodiment, complementary reference files can also be used for training the
Gemäß einer vorteilhaften Ausgestaltung weist der Dateigenerator 11 ein Adaptionsmodul 19 auf. Das Adaptationsmodul 19 kann in dem Dateigenerierungsmodul 12 integriert sein. Das Adaptationsmodul 19 ist bevorzugt ausgebildet und eingerichtet, die Werte der Parameter in Abhängigkeit des Ausgabewertes des zweiten Überprüfungsmoduls 18 derart anzupassen, dass das formale Merkmal der Ausgangsdatei möglichst ähnlich zu dem formalen Merkmal der Eingangsdatei ist. Das Adaptionsmodul 19 kann beispielsweise einen Algorithmus aufweisen, der ein Gradientenverfahren zur Anpassung der Werte der Parameter in Abhängigkeit des Ausgabewertes des zweiten Überprüfungsmoduls 18 durchführen kann. Der Ausgabewert des zweiten Überprüfungsmoduls 18 kann von dem zweiten Überprüfungsmodul 18 über die Schnittstelle 17 zu dem Adaptionsmodul 19 gesendet werden.According to an advantageous embodiment, the
Das zweite Überprüfungsmodul 18 ist vorteilhafterweise in Form eines Diskriminators ausgebildet. Der Diskriminator ist ausgebildet und eingerichtet, einen binären Ausgabewert auszugeben und den binären Ausgabewert in Abhängigkeit des formalen Merkmals der Ausgangsdatei 22 zu ermitteln. Beispielsweise kann der binäre Ausgabewert den Wert „1“ annehmen, wenn das zweite Überprüfungsmodul 18 das formale Merkmal der Ausgangsdatei 22 als das zumindest eine formale Merkmal der Referenzdatei 14.1 erkennt. Insbesondere kann der binäre Ausgabewert den Wert „1“ annehmen, wenn die in Abhängigkeit des formalen Merkmals berechnete Metrik als Maß für die Ähnlichkeit einen Schwellwert überschreitet. Ist die Metrik größer als der Schwellwert, kann dies einem „Erkennen“ eines der formalen Merkmale der Referenzdateien 14 mittels des zweiten Überprüfungsmoduls 18 gleichen. Erkennt das zweite Überprüfungsmodul 18 in der Ausgangsdatei 22 keines der formalen Merkmale der Referenzdateien 14, so nimmt der binäre Ausgabewert bevorzugt den Wert „0“ an.The
Für den Fall, dass das zweite Überprüfungsmodul 18 in Form des Diskriminators ausgebildet ist, kann das zweite Überprüfungsmodul 18 bevorzugt mithilfe der Referenzdateien 14 und den komplementären Referenzdateien trainiert werden. Ein jeweiliges „Label“, das heißt ein jeweiliger Sollwert des Ausgabewertes des zweiten Überprüfungsmoduls 18, wird bei einem Training des zweiten Überprüfungsmoduls 18 bevorzugt gleich „1“ gesetzt, falls das zweite Überprüfungsmodul 18 den Ausgabewert in Abhängigkeit von einer der Referenzdateien 14 als Eingangsgröße des zweiten Überprüfungsmoduls 18 berechnet. Für den Fall, dass das zweite Überprüfungsmodul 18 den Ausgabewert in Abhängigkeit von einer der komplementären Referenzdateien als Eingangsgröße des zweiten Überprüfungsmoduls 18 berechnet, wird bei dem Training der Sollwert des Ausgabewertes gleich „0“ gesetzt.In the event that the
Ein jeweiliger tatsächlicher berechneter Ausgabewert des zweiten Überprüfungsmoduls 18 wird stets mit dem entsprechenden Sollwert des Ausgabewertes verglichen, jeweils für den Fall das eine der Referenzdateien oder der komplementären Referenzdateien an einem Eingang des zweiten Überprüfungsmoduls 18 anliegt. Werte von Parametern des zweiten Überprüfungsmoduls 18 können in Abhängigkeit einer Abweichung des jeweiligen tatsächlichen berechneten Ausgabewertes von dem entsprechenden Sollwert verändert werden. Diese Werte werden bevorzugt derart verändert, dass eine Summe der Abweichungen, insbesondere eine mittlere Fehlerquadratsumme der Abweichungen, minimiert wird. Das Training des zweiten Überprüfungsmoduls 18 wird bevorzugt solange durchgeführt, bis die mittlere Fehlerquadratsumme unterhalb einer vorgegebenen Grenze liegt.A respective actually calculated output value of the
Das Dateigenerierungsmodul 12 kann mithilfe des zweiten Überprüfungsmoduls 18 trainiert werden. Bei einem Training des Dateigenerierungsmoduls 12 können weitere Trainingsdateien benutzt werden, die vom Format her gleich der Eingangsdatei 21 sind. Ist beispielsweise die Eingangsdatei 21 die erste generierte ausführbare Datei 10, so sind die weiteren Trainingsdateien auch auf dem Prozessor ausführbare Dateien. Ist beispielsweise die Eingangsdatei 21 die erste Textdatei, so sind die weiteren Trainingsdateien bevorzugt auch Textdateien, die bevorzugt dasselbe Format wie die erste Textdatei aufweisen.The
Bei einem Training des Dateigenerierungsmoduls 12 erzeugt das Dateigenerierungsmodul 12 vorteilhaft eine jeweilige Ausgangstrainingsdatei jeweils in Abhängigkeit einer der weiteren Trainingsdateien. Das zweite Überprüfungsmodul 18 erzeugt bevorzugt zu jeder Ausgangstrainingsdatei einen jeweiligen Ausgangstrainingswert. Die jeweiligen Ausgangstrainingswerte berechnet das zweite Überprüfungsmodul 18 in Form der oben genannten Metrik als Maß für die Ähnlichkeit zwischen dem formalen Merkmal der jeweiligen Ausgangstrainingsdatei und dem zumindest einen formalen Merkmal der zumindest einen Referenzdatei 14.1 oder zu den formalen Merkmalen der Referenzdateien 14. Die entsprechende Metrik kann dabei nach einer der oben genannten Varianten berechnet werden. Bevorzugt wird hierbei die gleiche Berechnungsvariante verwendet wie bei einer Bestimmung der Metrik als Maß für die Ähnlichkeit zwischen dem formalen Merkmal der Ausgangsdatei 22 und dem zumindest einen formalen Merkmal der zumindest einen Referenzdatei 14.1 ist.When training the
Im Anschluss daran können die Werte der Parameter des Dateigenerierungsmoduls 12 an die Ausgangstrainingswerte angepasst werden. Ist beispielsweise das zweite Überprüfungsmodul 18 in Form des Diskriminators ausgebildet, werden die Werte der Parameter des Dateigenerierungsmoduls 12 vorteilhaft derart angepasst, dass die Ausgangstrainingswerte bei einem wiederholten Durchlauf einer Berechnung der Ausgangstrainingswerte Werte nahe „1“ annehmen.Following this, the values of the parameters of the
Zur Berechnung einer Veränderung der Werte der Parameter des Dateigenerierungsmoduls 12 können jeweilige partielle Ableitungen von jeweiligen Abweichungen der Ausgangstrainingswerte von dem Wert „1“ nach den entsprechenden Werten der Parameter des Dateigenerierungsmoduls 12 gebildet werden. In diesem Sinne kann ein Backpropagationverfahren angewendet werden, bei welchem Werte der partiellen Ableitungen anhand der Werte der Parameter des zweiten Überprüfungsmoduls 18 und der Werte der Parameter des Dateigenerierungsmoduls 12 berechnet werden. Die Werte des zweiten Überprüfungsmoduls 18 bleiben bei diesem Schritt bevorzugt unverändert. Die Werte der Parameter des Dateigenerierungsmoduls 12 werden bevorzugt in Abhängigkeit der Werte der partiellen Ableitungen neu berechnet. Das Training des Dateigenerierungsmoduls 12 wird vorteilhaft solange durchgeführt bis die Ausgangstrainingswerte im Mittel einen zweiten Schwellwert, beispielsweise 0,8, überschreiten.In order to calculate a change in the values of the parameters of the
Bevorzugt ist das zweite Überprüfungsmodul 18 in Form eines neuronalen Netzes, beispielsweise eines Multilayer-Perceptrons, ausgebildet. Weiterhin kann das Dateigenerierungsmodul 12 ebenfalls ein neuronales Netz, insbesondere ein Multilayer-Perceptron, aufweisen.The
Vorzugsweise wirkt das Dateigenerierungsmodul 12 derart mit dem zweiten Überprüfungsmodul 18 zusammen, dass das Dateigenerierungsmodul 12 und das zweite Überprüfungsmodul 18 in Form des Diskriminators zusammen ein Generatives Adversariales Netzwerk (GAN) ausbilden.The
Vorteilhafterweise weist der Dateigenerator in einer Weiterbildung dieser Ausgestaltung ein drittes Überprüfungsmodul 43 auf. Das dritte Überprüfungsmodul 43 ist ausgebildet und eingerichtet, eine dritte Überprüfung durchzuführen. Bei einer Durchführung der dritten Überprüfung überprüft das dritte Überprüfungsmodul 43, ob die funktionellen Merkmale der Eingangsdatei 21 in ihrer Gesamtheit dieselben Funktionen wie die funktionellen Merkmale der kompilierten Datei 23 aufweisen. Vorteilhafterweise weist das dritte Überprüfungsmodul 43 einen SMT-Löser auf und ist ausgebildet und eingerichtet, die dritte Überprüfung mit Hilfe des SMT-Lösers durchzuführen.In a further development of this embodiment, the file generator advantageously has a
Gemäß einer bevorzugten Ausführungsform ist das dritte Überprüfungsmodul 43 ausgebildet und eingerichtet, die Eingangsdatei 21 in einen weiteren ersten übersetzten Text und die kompilierte Datei 23 in einen weiteren zweiten übersetzten Text zu überführen. Der weitere erste und zweite übersetzte Text beschreibt vorteilhafterweise einen Text der Eingangsdatei 21 beziehungsweise einen Inhalt der kompilierten Datei 23 jeweils in einer Prädikatenlogik erster Ordnung. Vorteilhafterweise ist der SMT-Löser ausgebildet und eingerichtet, anhand des weiteren ersten und zweiten übersetzten Textes zu überprüfen, ob die funktionellen Merkmale der Eingangsdatei 21 in ihrer Gesamtheit dieselben Funktionen wie die funktionellen Merkmale der kompilierten Datei 23 aufweisen.According to a preferred embodiment, the
Claims (10)
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE102020007244.5A DE102020007244A1 (en) | 2020-11-27 | 2020-11-27 | File generator for checking a file for a security system for a vehicle |
DE102020007244.5 | 2020-11-27 |
Publications (1)
Publication Number | Publication Date |
---|---|
DE102021005227A1 true DE102021005227A1 (en) | 2022-06-02 |
Family
ID=74239639
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE102020007244.5A Withdrawn DE102020007244A1 (en) | 2020-11-27 | 2020-11-27 | File generator for checking a file for a security system for a vehicle |
DE102021005227.7A Pending DE102021005227A1 (en) | 2020-11-27 | 2021-10-19 | File generator for checking a file for a security system for a vehicle |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE102020007244.5A Withdrawn DE102020007244A1 (en) | 2020-11-27 | 2020-11-27 | File generator for checking a file for a security system for a vehicle |
Country Status (1)
Country | Link |
---|---|
DE (2) | DE102020007244A1 (en) |
-
2020
- 2020-11-27 DE DE102020007244.5A patent/DE102020007244A1/en not_active Withdrawn
-
2021
- 2021-10-19 DE DE102021005227.7A patent/DE102021005227A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
DE102020007244A1 (en) | 2021-02-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3701433B1 (en) | Method, device and computer program for developing a deep neural network | |
WO2007060134A1 (en) | Method and apparatus for determination of a model parameter of a reference vehicle model | |
DE102018208763A1 (en) | Method, apparatus and computer program for operating a machine learning system | |
EP1715352A2 (en) | Method and apparatus for diagnosing failures in a mechatronic system | |
DE102019124018A1 (en) | Method for optimizing tests of control systems for automated vehicle dynamics systems | |
WO2021058223A1 (en) | Method for applying automated driving functions efficiently and in a simulated manner | |
WO2020126597A1 (en) | Method, computer program, machine-readable storage medium, and device for data prediction | |
DE102021206880A1 (en) | Method and device for the optimal parameterization of a driving dynamics control system for vehicles | |
WO2020187591A1 (en) | Method and device for controlling a robot | |
DE102021202813A1 (en) | Method, device and computer program for an uncertainty assessment of an image classification | |
DE102018209250A1 (en) | Control device, method for controlling a control device, computer-readable storage medium and control system | |
DE102018209108A1 (en) | Fast fault analysis for machine learning technical devices | |
EP4285295A1 (en) | Method for estimating a vehicle parameter for the operation of a vehicle | |
DE102021110309A1 (en) | Method for modeling human driving behavior for training motion controllers based on a neural network | |
DE102020105783A1 (en) | Method of creating a reduced neural network | |
DE102021005227A1 (en) | File generator for checking a file for a security system for a vehicle | |
DE102018207220A1 (en) | A method, apparatus and computer program for detecting a calculation error or a malfunction | |
DE102018125712A1 (en) | Driving support method for a vehicle | |
DE102021200789A1 (en) | Computer-implemented method and device for manipulation detection for exhaust aftertreatment systems using artificial intelligence methods | |
WO2022135959A1 (en) | Device for a robust classification and regression of time sequences | |
WO2021089499A1 (en) | Method and system for checking an automated driving function by reinforcement learning | |
DE102013200932B4 (en) | Method and device for monitoring a function of an engine control unit for use in an engine system with an internal combustion engine | |
DE102018203137A1 (en) | Method, device and computer program for operating an at least partially autonomous vehicle | |
DE102022203386B4 (en) | Control method, control system, motor vehicle, computer program product and computer-readable medium | |
DE102019128115B4 (en) | Vehicle model for longitudinal dynamics |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
R084 | Declaration of willingness to licence |