3 research outputs found

    PonyGE2: Grammatical Evolution in Python

    Full text link
    Grammatical Evolution (GE) is a population-based evolutionary algorithm, where a formal grammar is used in the genotype to phenotype mapping process. PonyGE2 is an open source implementation of GE in Python, developed at UCD's Natural Computing Research and Applications group. It is intended as an advertisement and a starting-point for those new to GE, a reference for students and researchers, a rapid-prototyping medium for our own experiments, and a Python workout. As well as providing the characteristic genotype to phenotype mapping of GE, a search algorithm engine is also provided. A number of sample problems and tutorials on how to use and adapt PonyGE2 have been developed.Comment: 8 pages, 4 figures, submitted to the 2017 GECCO Workshop on Evolutionary Computation Software Systems (EvoSoft

    Ensemble SGE

    Get PDF
    Este documento diz respeito a um projeto de investigação que decorreu no âmbito de projeto de final de curso do Mestrado em Informática e Sistemas, ramo de Tecnologias de Informação e Conhecimento que decorreu no Instituto Superior de Engenharia de Coimbra. Está integrado na área da aprendizagem automática e tem como principal objetivo desenvolver uma nova framework suportada pelo SGE para resolver problemas de aprendizagem supervisionada, e tem o nome de Ensemble SGE. O Ensemble SGE, utiliza o SGE que é um algoritmo de evolução automática de programas, para gerar vários modelos capazes de resolver um problema. E posteriormente utiliza técnicas de aprendizagem por Ensemble para agregar alguns dos modelos gerados e produzir um Ensemble. Neste trabalho foram abordados 3 problemas de regressão simbólica. Duas aproximações a funções conhecidas, polinómio de quarto grau e o polinómio de Pagie e por fim Boston Housing, um problema em que dadas características de uma casa é necessário prever o seu preço. Os resultados deste projeto são positivos, é demonstrado que é possível obter Ensembles capazes de resolver alguns problemas de uma melhor forma, que o melhor modelo gerado pelo SGE. A performance obtida pela utilização de Ensembles é maior comparativamente a modelos simples gerados pelo SGE. A framework foi implementada e disponibilizada com possíveis casos de teste. Concluindo, a escolha dos modelos constituintes do Ensemble é a decisão mais importante, pois não foi encontrada nenhuma maneira exata de o fazer, ou seja, apenas por métodos experimentais. O Ensemble SGE também consegue detetar situações de overfitting mais cedo que o melhor modelo do SGE ao longo das gerações. Isto porque o Ensemble SGE utiliza vários indivíduos de uma população

    A study of genetic programming and grammatical evolution for automatic object-oriented programming.

    Get PDF
    Master of Science in Computer Science. University of KwaZulu-Natal, Pietermaritzburg 2016.Manual programming is time consuming and challenging for a complex problem. For efficiency of the manual programming process, human programmers adopt the object-oriented approach to programming. Yet, manual programming is still a tedious task. Recently, interest in automatic software production has grown rapidly due to global software demands and technological advancements. This study forms part of a larger initiative on automatic programming to aid manual programming in order to meet these demands. In artificial intelligence, Genetic Programming (GP) is an evolutionary algorithm which searches a program space for a solution program. A program generated by GP is executed to yield a solution to the problem at hand. Grammatical Evolution (GE) is a variation of genetic programming. GE adopts a genotype-phenotype distinction and maps from a genotypic space to a phenotypic (program) space to produce a program. Whereas the previous work on object-oriented programming and GP has involved taking an analogy from object-oriented programming to improve the scalability of genetic programming, this dissertation aims at evaluating GP and a variation thereof, namely, GE, for automatic object-oriented programming. The first objective is to implement and test the abilities of GP to automatically generate code for object-oriented programming problems. The second objective is to implement and test the abilities of GE to automatically generate code for object-oriented programming problems. The third objective is to compare the performance of GP and GE for automatic object-oriented programming. Object-Oriented Genetic Programming (OOGP), a variation of OOGP, namely, Greedy OOGP (GOOGP), and GE approaches to automatic object-oriented programming were implemented. The approaches were tested to produce code for three object-oriented programming problems. Each of the object-oriented programming problems involves two classes, one with the driver program and the Abstract Data Type (ADT) class. The results show that both GP and GE can be used for automatic object-oriented programming. However, it was found that the ability of each of the approaches to automatically generate code for object-oriented programming problems decreases with an increase in the problem complexity. The performance of the approaches were compared and statistically tested to determine the effectiveness of each approach. The results show that GE performs better than GOOGP and OOGP
    corecore