The computational complexity of Evolutionary Algorithms (EAs) is a well-known concern. This paper is concerned with the resource consumption of GELAB, a novel Grammatical Evolution (GE) system implemented in Matlab. GE is an evolutionary technique for program search that manipulates large populations of computer programs over multiple generations. In this paper, we present our reflections on some recently conducted experiments with GELAB. GELAB leverages the power of Matlab to perform hybrid optimization on its individuals. The results show that we can substantially decrease computation time without compromising the accuracy of the system.
Fuzzy pattern trees evolved using grammatical evolution, a system we call Fuzzy Grammatical Evolution, are shown to be a robust Explainable Artificial Intelligence technique. Experimental results show Fuzzy Grammatical Evolution achieves competitive results when compared against SVM, Random Forest and Logistic Regression on a set of real world benchmark problems. Fuzzy Grammatical Evolution allows for human input throughout the evolutionary process. Regularization methods and double tournament selection were investigated to determine what method was most successful at finding smaller, more interpretable models. A domain expert was recruited to investigate the interpretability of the models found and to give a confidence score for each model. This expert successfully identified overfit models, validating that Fuzzy Grammatical Evolution can be regarded a powerful Explainable Artificial Intelligence technique.
A novel approach to induce Fuzzy Pattern Trees using Grammatical Evolution is presented in this paper. This new method, called Fuzzy Grammatical Evolution, is applied to a set of benchmark classification problems. Experimental results show that Fuzzy Grammatical Evolution attains similar and oftentimes better results when compared with state-of-the-art Fuzzy Pattern Tree composing methods, namely Fuzzy Pattern Trees evolved using Cartesian Genetic Programming, on a set of benchmark problems. We show that, although Cartesian Genetic Programming produces smaller trees, Fuzzy Grammatical Evolution produces better performing trees. Fuzzy Grammatical Evolution also benefits from a reduction in the number of necessary user-selectable parameters, while Cartesian Genetic Programming requires the selection of three crucial graph parameters before each experiment. To address the issue of bloat, an additional version of Fuzzy Grammatical Evolution using parsimony pressure was tested. The experimental results show that Fuzzy Grammatical Evolution with this extension routinely finds smaller trees than those using Cartesian Genetic Programming without any compromise in performance. To improve the performance of Fuzzy Grammatical Evolution, various ensemble methods were investigated. Boosting was seen to find the best individuals on half the benchmarks investigated.
Repairing bugs can be a daunting task for even a human experienced in debugging, so naturally, attempting to automatically repair programs with a computer system is quite challenging. The existing methods of automated program repair leave a lot of room for improvement. Fault localization, which aims to find lines of code that are potentially buggy, minimises the search space of an automated program repair system. Recent work has shown improvement in these fault localization methods, with the use of Large Language Models. Here, we propose a system where a LLM-based fault localization tool, which we call SemiAutoFL, is used within a fully automatic program repair program, ARJA-e. We show that utilising LLM-based fault localization with ARJA-e can significantly improve its performance on real world bugs. ARJA-e with SemiAutoFL can repair 10 bugs that ARJA-e was previously unable to so do. This finding adds to our understanding of how to improve fault localization and automated program repair, highlighting the potential for more efficient and accurate fault localisation methods being applied to automated program repair.