Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
AI-ASSISTED AUTOMATIC SOFTWARE CODE OPTIMISATION
Document Type and Number:
WIPO Patent Application WO/2022/161677
Kind Code:
A1
Abstract:
The invention relates to a computer-implemented method for optimising a software code by means of refactoring, comprising the steps of: a) providing n entry points (2) for refactoring the source code; b) providing (100) an n-dimensional refactoring vector (1) and, for each entry point (2), an associated parameter vector (3), - wherein the refactoring vector (1) has a "zero" at the point if refactoring is not performed for the associated entry point (2) and has a "one" if refactoring is carried out for the associated entry point (2), - and wherein parameters (4) which are required for each refactoring are made available in the parameter vector (3); c) generating (101) refactored source codes using the refactoring vector (1) and the associated parameter vector (3) and further refactoring vectors (1) with further entry points (2) and their associated parameter vectors (3); and d) determining (102) the fitness of the refactored source code by means of a predetermined fitness function (F). The invention also relates to an associated apparatus having a computing unit, to an associated computer program product and to a computer-readable medium.

Inventors:
HÖFIG KAI (DE)
Application Number:
PCT/EP2021/084808
Publication Date:
August 04, 2022
Filing Date:
December 08, 2021
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
SIEMENS AG (DE)
International Classes:
G06F8/72; G06N3/12
Other References:
ANONYMOUS: "Refactoring - Wikipedia", 23 October 2020 (2020-10-23), pages 1 - 6, XP055823824, Retrieved from the Internet [retrieved on 20210713]
BAQAIS ABDULRAHMAN AHMED BOBAKR ET AL: "Automatic software refactoring: a systematic literature review", SOFTWARE QUALITY JOURNAL, CHAPMAN AND HALL, LONDON, GB, vol. 28, no. 2, 3 December 2019 (2019-12-03), pages 459 - 502, XP037156258, ISSN: 0963-9314, [retrieved on 20191203], DOI: 10.1007/S11219-019-09477-Y
ANONYMOUS: "Code refactoring - Wikipedia", 24 January 2022 (2022-01-24), XP055894841, Retrieved from the Internet [retrieved on 20220223]
LEISERSON CHARLES E. ET AL: "There's plenty of room at the Top: What will drive computer performance after Moore's law?", SCIENCE, vol. 368, no. 6495, 5 June 2020 (2020-06-05), US, XP055894837, ISSN: 0036-8075, Retrieved from the Internet [retrieved on 20220223], DOI: 10.1126/science.aam9744
FOWLER MARTIN: "IsOptimizationRefactoring", 2 September 2004 (2004-09-02), XP055894833, Retrieved from the Internet [retrieved on 20220223]
MOGHADAM: "Code-Imp: a tool for automated search-based refactoring", WRT '11: PROCEEDINGS OF THE 4TH WORKSHOP ON REFACTORING TOOLS, May 2011 (2011-05-01), pages 41 - 44, Retrieved from the Internet
P. TECHAPALOKULE. TILEVICH: "Code Quality Improvement for All: Automated Refactoring for Scratch", 2019 IEEE SYMPOSIUM ON VISUAL LANGUAGES AND HUMAN-CENTRIC COMPUTING (VL/HCC), MEMPHIS, TN, pages 117 - 125
S. HERBOLDJ. GRABOWSKIH. NEUKIRCHEN: "Automated Refactoring Suggestions Using the Results of Code Analysis Tools", 2009 FIRST INTERNATIONAL CONFERENCE ON ADVANCES IN SYSTEM TESTING AND VALIDATION LIFECYCLE, PORTO, 2009, pages 104 - 109, XP031542339
MOGHADAM I.H: "Search Based Software Engineering. SSBSE 2011. Lecture Notes in Computer Science", vol. 6956, 2011, SPRINGER, article "Multi-level Automated Refactoring Using Design Exploratio"
Download PDF:
Claims:
Patentansprüche

1. Computer-implementiertes Verfahren zur Erzeugung von Softwarecodes durch Ref aktorisierung, gekennzeichnet durch: a) Bereitstellen von n Einstiegspunkten (2) zur Refaktori- sierung des Quellcodes, b) Bereitstellen (100) eines n-dimensionalen Refaktorvek- tors (1) und für jeden Einstiegspunkt (2) einen zugehörigen Parametervektor (3) , wobei der Ref aktorvektor (1) an der Stelle eine „Null" aufweist, wenn keine Ref aktorisierung für den zugehörigen Einstiegspunkt (2) vorgenommen wird, und eine „Eins" aufweist, wenn eine Ref aktorisierung für den zugehörigen Einstiegspunkt (2) durchgeführt wird, und wobei in dem Parametervektor (3) Parameter (4) bereitgehalten werden, die für die jeweilige Refaktori- sierung erforderlich sind, c) Erzeugen (101) von ref aktorisierten Quellcodes mit Hilfe des Ref aktorvektors (1) und dem zugehörigen Parametervektor (3) und weiteren Ref aktorvektoren (1) mit weiteren Einstiegspunkten (2) und ihren zugehörigen Parametervektoren (3) , und d) Ermittlung (102) der Fitness der ref aktorisierten Quellcodes durch eine vorgegebene Fitnessfunktion (F) .

2. Verfahren nach Anspruch 1, gekennzeichnet durch: e.l) Auswahlen (103) des Quellcodes und von refaktori- sierten weiteren Quellcodes, die eine vorgegebene Schwelle der Fitness übersteigen, und f) Erzeugung von Crossover-Ref aktorvektoren durch Vermischen der den ausgewählten Quellcodes zugeordneten weiteren Ref aktorvektoren (1) .

3. Verfahren nach Anspruch 2, dadurch gekennzeichnet, dass das Vermischen mit Hilfe einer Crossover Funktion erfolgt, wobei die Crossover Funktion ran- domisiert ist oder einer vorgegebenen Verteilung folgt. 4. Verfahren nach Anspruch 1, gekennzeichnet durch: e.) Auswahlen (103) des Quellcodes und von refaktori- sierten weiteren Quellcodes, die einer vorgegebenen Anzahl von ref aktorisierten weiteren Quellcodes, die die beste Fitness aufweisen, und f) Erzeugung von Crossover-Ref aktorvektoren durch Vermischen der den ausgewählten Quellcodes zugeordneten weiteren Ref aktorvektoren .

5. Verfahren nach einem der Ansprüche 2 bis 4, gekennzeichnet durch: g) Iterieren (104) der Schritte c) bis f) solange, bis eine vorgegebene Ziel-Fitness erreicht ist.

6. Verfahren nach einem der vorherigen Ansprüche, dadurch gekennzeichnet, dass die weiteren Ref aktorvektoren (1) durch Randomisierung des Ref aktorvektors (1) erzeugt werden .

7. Einrichtung mit einer Recheneinheit, die ausgebildet und programmiert ist, das Verfahren nach einem der Ansprüche 1 bis 6 durchzuführen.

8. Computerprogrammprodukt, umfassend ein Computerprogramm, wobei das Computerprogramm in eine Speichereinrichtung einer Einrichtung nach Anspruch 6 ladbar ist, wobei mit dem Computerprogramm die Schritte eines Verfahrens nach einem der Ansprüche 1 bis 5 ausgeführt werden, wenn das Computerprogramm auf der Einrichtung ausgeführt wird.

9. Computerlesbares Medium, auf welchem ein Computerprogramm gespeichert ist, wobei das Computerprogramm in eine Speichereinrichtung einer Einrichtung nach Anspruch 6 ladbar ist, wobei mit dem Computerprogramm die Schritte eines Verfahrens nach einem der Ansprüche 1 bis 5 ausgeführt werden, wenn das Computerprogramm auf der Einrichtung ausgeführt wird.

Description:
Beschreibung

Kl-gestützte automatische Softwarecodeoptimierung

GEBIET DER ERFINDUNG

Die Erfindung betri f ft ein computer-implementiertes Verfahren zur Optimierung eines Softwarecodes durch Ref aktorisierung . Eine zugehörige Einrichtung mit einer Recheneinheit , ein zugehöriges Computerprogrammprodukt sowie ein computerlesbares Medium sind ebenfalls betrof fen .

HINTERGRUND DER ERFINDUNG

Die Qualität von Quellcode ist mehrdimensional und schwer zu verbessern oder zu erfassen . Die verschiedenen Qualitätsattribute wie etwa Maintainability, Performance , Testablity oder Reliability spielen bei der Beurteilung, ob es sich um einen guten Code handelt eine wichtige Rolle . Je größer der Quellcode ist , desto schwerer wird es , die Qualität zu verbessern oder manuell zu überblicken . Daher ist es an der Zeit , nicht nur die Messung der Qualitätsattribute zu verbessern, sondern auch den Prozess der Codeverbesserung selbst zu automatisieren . Da dies einer Mehrzieloptimierung mit unendlich vielen Möglichkeiten entspricht , handelt es sich dabei um ein schweres , mit aktuellen Techniken sogar unlösbares Problem .

Bisher wurde die Messung der Qualitätseigenschaften durch eine Automatisierung unterstützt . So gibt es zahlreiche Entwicklungswerkzeuge , die in der Lage sind, verschiedene Qualitätseigenschaf ten automatisiert zu messen . Beispiele dafür sind zahlreich und zielen häufig auf die statische Codeanalyse ab, wie https : / /de . wikipedia . org/wiki/Liste von Werkzeugen zur statis chen Codeanalyse . Betrachtet man das Feld der automatischen Codeverbesserung, findet man wissenschaftliche Artikel zur automatisierten Durchführung von Codeverbesserungen, wie etwa in Iman Hemati Moghadam et. Al, "Code-Imp: a tool for automated search-based refactoring", WRT 'll: Proceedings of the 4th Workshop on Refactoring Tools, May 2011 Pages 41-44; https://doi.org/10.1145/1984732.1984742 und P. Techapalokul and E. Tilevich, "Code Quality Improvement for All: Automated Refactoring for Scratch, " 2019 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC) , Memphis, TN, USA, 2019, pp. 117-125, doi: 10.1109/VLHCC .2019.8818950.

Dabei sind allerdings nur die „Refactorings" automatisiert, aber diese muss der Bediener vorher manuell auswählen oder festlegen. Vorschläge dafür können auch unterbreitet werden, wie etwa in S. Herbold, J. Grabowski and H. Neukirchen, "Automated Refactoring Suggestions Using the Results of Code Analysis Tools, " 2009 First International Conference on Advances in System Testing and Validation Lifecycle, Porto, 2009, pp. 104-109, doi: 10.1109/VALID.2009.12 oder Moghadam I.H. (2011) Multi-level Automated Refactoring Using Design Exploration. In: Cohen M.B., Ö Cinneide M. (eds) Search Based Software Engineering. SSBSE 2011. Lecture Notes in Computer Science, vol 6956. Springer, Berlin, Heidelberg, https : //doi .org/10.1007/978-3-642-23716-4_9.

Eine vollständige Automatisierung, die völlig selbstständig Code verbessert und die Erzeugung von verbesserten Quellcodes beschleunigt, ist nicht vorhanden.

ZUSAMMENFASSUNG DER ERFINDUNG

Es ist Aufgabe der Erfindung, eine Lösung anzugeben, die das Erzeugen von Quellcodes mittels Ref aktorisierung (auf Englisch Refactoring) beschleunigt.

Die Erfindung ergibt sich aus den Merkmalen der unabhängigen Ansprüche. Vorteilhafte Weiterbildungen und Ausgestaltungen sind Gegenstand der abhängigen Ansprüche. Weitere Merkmale, Anwendungsmöglichkeiten und Vorteile der Erfindung ergeben sich aus der nachfolgenden Beschreibung.

Um das beschriebene Problem zu lösen, wird ein Quellecode zunächst in eine andere Darstellung gebracht, mit Hilfe derer sich Maßnahmen festlegen lassen. Dann werden die Maßnahmen ergriffen und der Quellcode wird erneut geprüft, ob der erwünschte Grad der Qualität bereits erreicht ist. Diese Prüfung ist nicht Teil der Erfindung, da hierfür, wie zuvor beschrieben, bereits zahlreiche Techniken existieren.

Eine Ref aktorisierung ist, ganz allgemein, eine Veränderung des Quellcodes, ohne die funktionalen Eigenschaften des Quellcodes zu verändern. Das bedeutet, ein Programm welches ausreichend getestet wurde und die geforderten funktionalen Eigenschaften erfüllt, verändert seine Funktion auf Grund von Refactorings nicht mehr, wohl aber seine nicht-funktionalen Eigenschaften (zum Beispiel könnte sich die Laufzeit verbessern oder verschlechtern, die Ausführbarkeit und die Wartbarkeit verbessern) .

Beispiele für eine Ref aktorisierung sind:

1) Änderung eines Symbolnamens

2) Verschieben eines Symbols in ein anderes Modul, z. B. eine Methode in eine andere Klasse

3) Aufteilung eines Moduls (z. B. Paket, Klasse, Methode) in mehrere, kleinere Module

4) Zusammenlegung kleinerer Module zu einem größeren

5) Im weitesten Sinne auch die Umformatierung eines Quelltextes, z. B. mit einem Beautifier 6 ) Bei geänderten Geschäftsprozessen bei Darstellung mittels der Uni fied Modeling Language UML kann mittels „Refactoring" der Programmcode geändert werden . Dadurch wird eine robuste und stabile Systemarchitektur geschaf fen, da unübersichtliche Änderungen nicht im Code initiiert werden müssen .

7 ) Anwenden von Funktionen höherer Ordnung in funktionalen Programmiersprachen

8 ) Auslagern (refactor' n) der gemeinsamen abstrakten Logik mehrerer Module in Funktoren . ( Funktoren sind parametrisierte Module , die Module als Parameter erhalten und Module als Ergebnis liefern . )

Eine Ref aktorisierung oder eine anders geartete Art und Weise Softwareodes zu verändern, so dass der Zweck des Programms erhalten bleibt , hat in dem Sinne dieser Erfindung einen sogenannten „Einstiegspunkt" . Zum Beispiel bei Refactoring 2 ) : ein Verschieben einer Methode in eine andere Klasse . Hier ist der Einstiegspunkt eine Methode . Weiterhin hat ein Refactoring einen Zielbereich . In diesem Beispiel sind das alle in Frage kommenden Klassen, in die die Methode verschoben werden könnte .

Ein Einstiegspunkt im Sinne dieser Erfindung ist also eine einzelne oder sind mehrere bestimmte Stellen im Quellcode oder auch eine Teilmenge des Quellcodes , der durch eine Ref aktorisierung verändert werden soll .

Für Refactorings , die als Einstiegspunkt mehrere Parameter benötigen, zum Beispiel Refactoring 3 ) , Aufteilung eines Moduls in mehrere kleinere : Hier gibt es einen Einstiegspunkt ( zum Beispiel den Klassennamen) und mehrere Parameter ( die neuen Klassen, die entstehen sollen und welche Methoden und Parameter den neuen Klassen zugeordnet werden) . Für Refactorings , die sich über mehrere Einstiegspunkte erstrecken, zum Beispiel für Refactoring 4 ) : Zusammenlegen mehrere Module zu einem einzelnen großen Modul ; die Parameter j edes Einstiegspunkts enthalten den neuen Klassennamen für das zu erstellende größere Modul (und eventuelle weitere spezi fische Informationen für den Einstiegspunkt ) .

Dadurch ergibt sich pro Quellcode ein langer Vektor von Einstiegspunkten (= Ref aktorvektor ) und orthogonal dazu j e einen Vektor zur Parametrisierung (= Parametervektor ) . In dem Ref aktorvektor wird eine „Null" eingetragen, wenn kein Refactoring für diesen Einstiegspunkt vorgenommen werden soll , und eine „Eins" , falls ein Refactoring für diesen Einstiegspunkt durchgeführt werden soll .

In dem Parametervektor, der für j edes durchzuführende Refactoring vorgehalten werden muss ( also da, wo eine „Eins" im Ref aktorvektor eingetragen ist ) , wird das j eweilige Refactoring mit einer eindeutigen Nummer referenziert und die Parameter bereitgehalten, die benötigt werden, um das Refactoring durchzuführen .

Die dieser Erfindung zu Grundlegende technische Weiterentwicklung besteht in der technischen Darstellung von identi fizierten Refactorings einer einzelnen Codevariante . Dadurch lässt sich der Prozess systematisch automatisieren und beschleunigen . Durch Randomisierung wird, zumindest theoretisch bei unendlich langer Lauf zeit , erreicht , dass alle möglichen Ref aktorisierungen auf alle möglichen Einstiegspunkte angewandt werden können . Die hier vorgestellte Vorrichtung automatisiert den kompletten Prozess , von der Übersetzung des Quellcodes in die Darstellung des Ref aktorvektors , der Generierung neuer Varianten, der Mutation und des Vermischens von verbesserten Varianten und der Analyse der Verbesserung . Auf diese Weise hat die Vorrichtung die Fähigkeit , ohne eine genaue Vorgabe eines Menschen Quellcode automatisch und beschleunigt zu verbessern . Die Erfindung beansprucht ein computer-implementiertes Verfahren zur Optimierung eines Softwarecodes durch Refaktori- sierung durch : a) Bereitstellen von n Einstiegspunkten zur Ref aktorisie- rung des Quellcodes , b) Bereitstellen eines n-dimensionalen Ref aktorvektors und für j eden einstiegspunkt einen zugehörigen Parametervektor, wobei der Ref aktorvektor an der Stelle eine „Null" aufweist , wenn keine Ref aktorisierung für den zugehörigen Einstiegspunkt vorgenommen wird, und eine „Eins" aufweist , wenn eine Ref aktorisierung für den zugehörigen Einstiegspunkt durchgeführt wird, und wobei in dem Parametervektor die Parameter bereitgehalten werden, die für die j eweilige Ref aktorisierung erforderlich sind, c) Erzeugen von ref aktorisierten Quellcodes aus dem Refak- torvektor und dem zugehörigen Parametervektor und weiteren Ref aktorvektoren mit weiteren Einstiegspunkten und ihren zugehörigen Parametervektoren, und d) Ermittlung der Fitness der ref aktorisierten Quellcodes durch eine vorgegebene Fitness funktion .

Die Erfindung bietet den Vorteil , dass eine Ref aktorisierung und die daraus folgende Erzeugung von Mutationen des Quellcodes automatisiert und beschleunigt wird . Durch die Erfindung können in wesentlich kürzere Zeit neue Varianten des Quellcodes erzeugt werden .

In einer Weiterbildung erfolgen : e . l ) Auswahlen des Quellcodes und von ref aktorisierten weiteren Quellcodes , die eine vorgegebene Schwelle der Fitness übersteigen, und f ) Erzeugung von Crossover-Ref aktorvektoren durch Vermischen der den ausgewählten Quellcodes zugeordneten weiteren Ref aktorvektoren . In einer weiteren Ausgestaltung erfolgt das Vermischen mit Hil fe einer Crossover Funktion, wobei die Crossover Funktion randomisiert ist oder einer vorgegebenen Verteilung folgt .

In einer Weiterbildung erfolgen : e . 2 ) Auswahlen des Quellcodes und von ref aktorisierten weiteren Quellcodes , die einer vorgegebenen Anzahl von refak- torisierten weiteren Quellcodes , die die beste Fitness aufweisen, und f ) Erzeugung von Crossover-Ref aktorvektoren durch Vermischen der den ausgewählten Quellcodes zugeordneten weiteren Ref aktorvektoren .

In einer Weiterbildung erfolgt : g) Iterieren der Schritte c ) bis f ) solange , bis eine vorgegebene Ziel-Fitness erreicht ist .

In einer weiteren Ausprägung können die weiteren Refaktorvek- toren durch Randomisierung des Ref aktorvektors erzeugt werden .

Die Erfindung beansprucht auch eine Einrichtung mit einer Recheneinheit , die ausgebildet und programmiert ist , das erfindungsgemäße Verfahren durchzuführen .

Die Erfindung beansprucht außerdem ein Computerprogrammprodukt , umfassend ein Computerprogramm, wobei das Computerprogramm in eine Speichereinrichtung einer Einrichtung ladbar ist , wobei mit dem Computerprogramm die Schritte eines erfindungsgemäßen Verfahrens ausgeführt werden, wenn das Computerprogramm auf der Einrichtung ausgeführt wird .

Die Erfindung beansprucht schließlich auch ein Computerlesbares Medium, auf welchem ein Computerprogramm gespeichert ist , wobei das Computerprogramm in eine Speichereinrichtung einer Einrichtung ladbar ist , wobei mit dem Computerprogramm die Schritte eines erfindungsgemäßen Verfahrens ausgeführt wer- den, wenn das Computerprogramm auf der Einrichtung ausgeführt wird .

Weitere Besonderheiten und Vorteile der Erfindung werden aus den nachfolgenden Erläuterungen eines Aus führungsbeispiels anhand von schematischen Zeichnungen ersichtlich .

KURZE BESCHREIBUNG DER ZEICHNUNGEN

Es zeigen :

FIG . 1 ein Schaubild des Ref aktorvektors und

FIG . 2 ein Ablauf diagramm zur Ref aktorisierung eines Quellcodes .

DETAILLIERTE BESCHREIBUNG DER ERFINDUNG

Für das erfindungsgemäße Verfahren ergibt sich für den Refak- torvektor 1 eine Darstellung gemäß FIG . 1 für die Einstiegspunkte 3 von möglichen Ref aktorisierungen für einen gegebene Quellcode . Jedem Einstiegspunkt 3 ist ein Parametervektor 2 mit Parametern 4 für den j eweiligen einstiegspunkt 3 zugeordnet .

Auf diese Weise können einfach verschiedene Varianten eines Quellcodes durch Refactorings erzeugt werden . Die Varianten können nun durch einen generativen Designprozess , zum Beispiel durch genetische Programmierung, erzeugt werden . Dabei wird schrittweise vorgegangen, wie in FIG . 2 dargestellt : a ) Erzeuge die initiale Population ( Schritt 100 ) , zum Beispiel durch die Analyse des vorhandenen Quellcodes und die Erzeugung des initialen Ref aktorvektors der ersten Generation ( Phänotyp ) . b ) Erzeuge ( schritt 101 ) durch Randomisierung des Refak- torvektors und der dazugehörigen Parametervektoren weitere Varianten des Quellcodes (Mutation) . c) Analysiere (Schritt 102) die Varianten durch bekannte Techniken des Stands der Technik und entscheide, ob die Qualität des Quellcodes bereits ausreichend ist (mit Hilfe einer Fitnessfunktion F) . d) Wähle (Schritt 103) die besten Varianten anhand der Fitnessfunktion F aus und unterwerfe sie einem Crossover (Vermischen der Ref aktorvektoren) . e) Iteriere (Schritt 104) über Schritt b) , bis die gewünschte Qualität erreicht ist.

Die Mutation des Ref aktorvektors , wie in Schritt b) beschrieben, kann randomisiert erfolgen oder durch eine Vorauswahl, beispielsweise eines „Reccommender Sytems", weiter eingeschränkt werden oder die Verteilungsfunktion kann angepasst werden, so dass bestimmte Ref aktorierungen weniger wahrscheinlich werden als andere.

Eine Fitnessfunktion ist die Zielfunktion eines evolutionären (Optimierungs- ) Algorithmus (EA) . Gelegentlich wird eine Fitnessfunktion auch als Teil einer Zielfunktion beschrieben oder andersherum. Wie auch evolutionäre Algorithmen haben Fitnessfunktionen ein biologisches Vorbild, die biologische Fitness, die den Grad der Anpassung eines Organismus an seine Umgebung angibt. Bei evolutionären Algorithmen beschreibt die Fitness eines Lösungskandidaten, wie gut er das zugrunde liegende Optimierungsproblem löst. Die Fitnessfunktion berechnet aus den Eigenschaften eines Lösungsversuchs, wie gut sich dieses „Individuum" bzgl. des gestellten Problems als Lösung eignet .

Eine Fitnessfunktion muss nicht zwangsläufig einen absoluten Wert berechnen können, da es oft reicht, Kandidaten zu vergleichen, um den besseren auszuwählen. Eine relative Angabe der Fitness (Kandidat a ist besser als b) genügt in manchen Fällen[2] , wie z. B. bei der Turnierselektion.

Ein Empfehlungsdienst (englisch Recommender System) ist ein Softwaresystem, welches das Ziel hat, eine Vorhersage zu tref fen, die quanti fi ziert , wie stark das Interesse eines Benutzers an einem Obj ekt ist , um dem Benutzer genau die Obj ekte aus der Menge aller vorhandenen Obj ekte zu empfehlen, für die er sich wahrscheinlich am meisten interessiert .

Die Crossover Funktion ( im Schritt d) ) kann ebenfalls rando- misiert sein oder einer vorgegebenen Verteilung folgen . Gegebenenfalls kann der Schritt d) auch ausgelassen werden . Die Fitness funktion kann beispielsweise durch die zuvor beschriebenen analytischen Verfahren automatisiert werden .

Als Crossing-over oder Crossover wird in der Genetik der Vorgang bzw . das Ergebnis eines gegenseitigen Austausches von einander entsprechenden Abschnitten zweier homologer Chromosomen (und damit der Austausch von Genen) . In der Patentanmeldung wird Crossover analog auf den Austausch von Abschnitten des Ref aktorvektors angewandt .

Es ist anzunehmen, wie auch aus Studien zum generativen Design oder zur genetischen Programmierung zu erkennen ist , dass durch diesen Prozess zumindest lokale Optima zu erwarten sind .

Obwohl die Erfindung im Detail durch die Aus führungsbeispiele näher illustriert und beschrieben wurde , ist die Erfindung durch die of fenbarten Beispiele nicht eingeschränkt und andere Variationen können vom Fachmann daraus abgeleitet werden, ohne den Schutzumfang der Erfindung zu verlassen .

Bezugs zeichenliste

1 Ref aktorvektor

2 Einstiegspunkt 3 Parametervektor

4 Parameter

F Fitness funktion 100 Erzeugung des Ref aktorvektors und Quellcode der ersten Generation

101 Erzeugung weiterer Ref aktorvektoren und Mutationen des Quellcodes

102 Analyse der Quellcodes anhand einer Fitness funktion F 103 Auswahl der besten Varianten der Quellcodes

104 Iteration