TY - GEN
T1 - Dynamic fitness functions for genetic improvement in compilers and interpreters
AU - Krauss, Oliver
AU - Mössenböck, Hanspeter
AU - Affenzeller, Michael
N1 - Publisher Copyright:
© 2018 Copyright held by the owner/author(s). Publication rights licensed to Association for Computing Machinery.
PY - 2018/7/6
Y1 - 2018/7/6
N2 - When attempting to improve the non-functional requirements of software, specifically run-time performance of code, an important requirement is to preserve the correctness of the optimized code. Additionally when attempting to integrate Genetic Improvement into a compiler or interpreter, the large search spaces resulting from the amount of operators and operands a language provides needs to be dealt with. This publication explores dynamic fitness functions as a foundation for a use in Genetic Improvement to optimize programs. An approach of using a test suite to verify code correctness in the Truffle Framework [19, 20] and Graal Compiler [11] is presented. Two types of fitness functions are explored, which split the test suite according to their complexity and attempt to generate correct solutions with a growing set of increasingly complex tests. One of them increases the amount of tests sequentially over several iterations. The parallel fitness function attempts to split a test suite and to re-combine the results with increasingly large suites. The results show that these functions only marginally improve the fitness landscape on their own, but show that more partially correct solutions can be found with dynamic fitness functions. In the future, our approach may be improved by implementing specific crossover and mutator operations to accompany the dynamic fitness functions.
AB - When attempting to improve the non-functional requirements of software, specifically run-time performance of code, an important requirement is to preserve the correctness of the optimized code. Additionally when attempting to integrate Genetic Improvement into a compiler or interpreter, the large search spaces resulting from the amount of operators and operands a language provides needs to be dealt with. This publication explores dynamic fitness functions as a foundation for a use in Genetic Improvement to optimize programs. An approach of using a test suite to verify code correctness in the Truffle Framework [19, 20] and Graal Compiler [11] is presented. Two types of fitness functions are explored, which split the test suite according to their complexity and attempt to generate correct solutions with a growing set of increasingly complex tests. One of them increases the amount of tests sequentially over several iterations. The parallel fitness function attempts to split a test suite and to re-combine the results with increasingly large suites. The results show that these functions only marginally improve the fitness landscape on their own, but show that more partially correct solutions can be found with dynamic fitness functions. In the future, our approach may be improved by implementing specific crossover and mutator operations to accompany the dynamic fitness functions.
KW - Fitness Functions
KW - Genetic Improvement
KW - Test Complexity
KW - Test Driven Verification
UR - http://www.scopus.com/inward/record.url?scp=85051508663&partnerID=8YFLogxK
U2 - 10.1145/3205651.3208308
DO - 10.1145/3205651.3208308
M3 - Conference contribution
T3 - GECCO 2018 Companion - Proceedings of the 2018 Genetic and Evolutionary Computation Conference Companion
SP - 1590
EP - 1597
BT - GECCO 2018 Companion - Proceedings of the 2018 Genetic and Evolutionary Computation Conference Companion
PB - Association for Computing Machinery, Inc
T2 - 2018 Genetic and Evolutionary Computation Conference, GECCO 2018
Y2 - 15 July 2018 through 19 July 2018
ER -