Abstract-De flesta tillämpningar av genetisk programmering (GP) innebär skapandet av en helt ny funktion, program eller uttryck för att lösa ett specifikt problem. I detta dokument föreslår vi ett nytt tillvägagångssätt som tillämpar GP för att förbättra befintlig programvara genom att optimera dess icke-funktionella egenskaper såsom exekveringstid, minnesanvändning, eller strömförbrukning. I allmänhet, att uppfylla icke-funktionella krav är en svår uppgift och ofta uppnås delvis genom att optimera kompilatorer. Men moderna kompilatorer är i allmänhet inte alltid kunna producera semantiskt likvärdiga alternativ som optimerar icke-funktionella egenskaper, även om sådana alternativ är kända för att existera: detta beror vanligtvis på den begränsade lokala karaktären av sådana optimeringar. I detta dokument diskuterar vi hur man bäst kan kombinera och utvidga befintliga evolutionära metoder för GP, multiobjektiv optimering och koevolution för att förbättra befintlig programvara. Eftersom vi in matar in genomförandet av en funktion, försöker vi att utveckla en semantiskt likvärdig version, i detta fall optimerad för att minska exekveringstiden med en given sannolikhetsfördelning av indata. Vi visar att vårt ramverk kan producera icke-uppenbara optimeringar som kompilatorer ännu inte kan generera på åtta exempelfunktioner. Vi använder en gemensam population av testfall för att främja bevarandet av funktionens semantik. Vi utnyttjar det ursprungliga programmet både genom sådd av befolkningen för att fokusera sökningen, och som ett orakel för teständamål. Förutom att diskutera de frågor som uppstår när vi försöker förbättra mjukvaran använder vi rigorösa experimentella metoder för att ge intressanta och praktiska insikter för att föreslå hur man ska ta itu med dessa frågor.
Vit et al. REF använde GA för att förbättra programs icke-funktionella egenskaper, t.ex. exekveringstid.
Evolutionary Improvement of Programs
{'venue': 'IEEE Transactions on Evolutionary Computation', 'journal': 'IEEE Transactions on Evolutionary Computation', 'mag_field_of_study': ['Computer Science']}