406 research outputs found

    Evolutionary improvement of programs

    Get PDF
    Most applications of genetic programming (GP) involve the creation of an entirely new function, program or expression to solve a specific problem. In this paper, we propose a new approach that applies GP to improve existing software by optimizing its non-functional properties such as execution time, memory usage, or power consumption. In general, satisfying non-functional requirements is a difficult task and often achieved in part by optimizing compilers. However, modern compilers are in general not always able to produce semantically equivalent alternatives that optimize non-functional properties, even if such alternatives are known to exist: this is usually due to the limited local nature of such optimizations. In this paper, we discuss how best to combine and extend the existing evolutionary methods of GP, multiobjective optimization, and coevolution in order to improve existing software. Given as input the implementation of a function, we attempt to evolve a semantically equivalent version, in this case optimized to reduce execution time subject to a given probability distribution of inputs. We demonstrate that our framework is able to produce non-obvious optimizations that compilers are not yet able to generate on eight example functions. We employ a coevolved population of test cases to encourage the preservation of the function's semantics. We exploit the original program both through seeding of the population in order to focus the search, and as an oracle for testing purposes. As well as discussing the issues that arise when attempting to improve software, we employ rigorous experimental method to provide interesting and practical insights to suggest how to address these issues

    Autonomous virulence adaptation improves coevolutionary optimization

    Get PDF

    Multi-objective improvement of software using co-evolution and smart seeding

    Get PDF
    Optimising non-functional properties of software is an important part of the implementation process. One such property is execution time, and compilers target a reduction in execution time using a variety of optimisation techniques. Compiler optimisation is not always able to produce semantically equivalent alternatives that improve execution times, even if such alternatives are known to exist. Often, this is due to the local nature of such optimisations. In this paper we present a novel framework for optimising existing software using a hybrid of evolutionary optimisation techniques. Given as input the implementation of a program or function, we use Genetic Programming to evolve a new semantically equivalent version, optimised to reduce execution time subject to a given probability distribution of inputs. We employ a co-evolved population of test cases to encourage the preservation of the program’s semantics, and exploit the original program through seeding of the population in order to focus the search. We carry out experiments to identify the important factors in maximising efficiency gains. Although in this work we have optimised execution time, other non-functional criteria could be optimised in a similar manner

    CoBRA: A Coevolutionary Meta-heuristic for Bi-level Optimization

    Get PDF
    This article presents CoBRA, a new parallel coevolutionary algorithm for bi-level optimization. CoBRA is based on a coevolutionary scheme to solve bi-level optimization problems. It handles population-based meta-heuristics on each level, each one cooperating with the other to provide solutions for the overall problem. Moreover, in order to evaluate the relevance of CoBRA against more classical approaches, a new performance assessment methodology, based on rationality, is introduced. An experimental analysis is conducted on a bi-level distribution planning problem, where multiple manufacturing plants deliver items to depots, and where a distribution company controls several depots and distributes items from depots to retailers. The experimental results reveal significant enhancements with respect to a more classical approach, based on a hierarchical scheme.Cet article présente CoBRA, un nouvel algorithme paralléle et coévolutionnaire pour l'optimisation bi-niveau. CoBRA se base sur un modèle coévolutionnaire pour faire face aux problèmes d'optimisation bi-niveau. Il manipule une méta-heuristique à base de population sur chaque niveau, chacune coopérant avec l'autre de manière à garder une vue générale sur le problème complet. De plus, afin d'étudier la pertinence de CoBRA par rapport aux approches plus classique, une nouvelle méthodologie, basée sur la rationalité est introduite. Est conduite ensuite une étude expérimentale sur un problème bi-niveau de distribution-production, dans lequel des usines contrôlées par une entreprise produisent des marchandises pour des dépôts, et une autre entreprise contrôlant les dépôts se charge de livrer les marchandises à des clients. Cet article se conclut sur l'observation d'un réel gain de performance par rapport à une approche plus classique, basée sur un modèle hiérarchique

    DECMO2: a robust hybrid and adaptive multi-objective evolutionary algorithm.

    Get PDF
    We describe a hybrid and adaptive coevolutionary optimization method that can efficiently solve a wide range of multi-objective optimization problems (MOOPs) as it successfully combines positive traits from three main classes of multi-objective evolutionary algorithms (MOEAs): classical approaches that use Pareto-based selection for survival criteria, approaches that rely on differential evolution, and decomposition-based strategies. A key part of our hybrid evolutionary approach lies in the proposed fitness sharing mechanism that is able to smoothly transfer information between the coevolved subpopulations without negatively impacting the specific evolutionary process behavior that characterizes each subpopulation. The proposed MOEA also features an adaptive allocation of fitness evaluations between the coevolved populations to increase robustness and favor the evolutionary search strategy that proves more successful for solving the MOOP at hand. Apart from the new evolutionary algorithm, this paper also contains the description of a new hypervolume and racing-based methodology aimed at providing practitioners from the field of multi-objective optimization with a simple means of analyzing/reporting the general comparative run-time performance of multi-objective optimization algorithms over large problem sets

    CoBRA: A cooperative coevolutionary algorithm for bi-level optimization

    Get PDF
    International audienceThis article presents CoBRA, a new evolutionary algorithm, based on a coevolutionary scheme, to solve bi-level optimization problems. It handles population-based algorithms on each level, each one cooperating with the other to provide solutions for the overall problem. Moreover, in order to evaluate the relevance of CoBRA against more classical approaches, a new performance assessment methodology, based on rationality, is introduced. An experimental analysis is conducted on a bi-level distribution planning problem, where multiple manufacturing plants deliver items to depots, and where a distribution company controls several depots and distributes items from depots to re- tailers. The experimental results reveal significant enhancements, particularly over the lower level, with respect to a more classical approach based on a hierarchical scheme

    Metaheuristic design of feedforward neural networks: a review of two decades of research

    Get PDF
    Over the past two decades, the feedforward neural network (FNN) optimization has been a key interest among the researchers and practitioners of multiple disciplines. The FNN optimization is often viewed from the various perspectives: the optimization of weights, network architecture, activation nodes, learning parameters, learning environment, etc. Researchers adopted such different viewpoints mainly to improve the FNN's generalization ability. The gradient-descent algorithm such as backpropagation has been widely applied to optimize the FNNs. Its success is evident from the FNN's application to numerous real-world problems. However, due to the limitations of the gradient-based optimization methods, the metaheuristic algorithms including the evolutionary algorithms, swarm intelligence, etc., are still being widely explored by the researchers aiming to obtain generalized FNN for a given problem. This article attempts to summarize a broad spectrum of FNN optimization methodologies including conventional and metaheuristic approaches. This article also tries to connect various research directions emerged out of the FNN optimization practices, such as evolving neural network (NN), cooperative coevolution NN, complex-valued NN, deep learning, extreme learning machine, quantum NN, etc. Additionally, it provides interesting research challenges for future research to cope-up with the present information processing era

    An Evolutionary Approach to Multistage Portfolio Optimization

    No full text
    Portfolio optimization is an important problem in quantitative finance due to its application in asset management and corporate financial decision making. This involves quantitatively selecting the optimal portfolio for an investor given their asset return distribution assumptions, investment objectives and constraints. Analytical portfolio optimization methods suffer from limitations in terms of the problem specification and modelling assumptions that can be used. Therefore, a heuristic approach is taken where Monte Carlo simulations generate the investment scenarios and' a problem specific evolutionary algorithm is used to find the optimal portfolio asset allocations. Asset allocation is known to be the most important determinant of a portfolio's investment performance and also affects its risk/return characteristics. The inclusion of equity options in an equity portfolio should enable an investor to improve their efficient frontier due to options having a nonlinear payoff. Therefore, a research area of significant importance to equity investors, in which little research has been carried out, is the optimal asset allocation in equity options for an equity investor. A purpose of my thesis is to carry out an original analysis of the impact of allowing the purchase of put options and/or sale of call options for an equity investor. An investigation is also carried out into the effect ofchanging the investor's risk measure on the optimal asset allocation. A dynamic investment strategy obtained through multistage portfolio optimization has the potential to result in a superior investment strategy to that obtained from a single period portfolio optimization. Therefore, a novel analysis of the degree of the benefits of a dynamic investment strategy for an equity portfolio is performed. In particular, the ability of a dynamic investment strategy to mimic the effects ofthe inclusion ofequity options in an equity portfolio is investigated. The portfolio optimization problem is solved using evolutionary algorithms, due to their ability incorporate methods from a wide range of heuristic algorithms. Initially, it is shown how the problem specific parts ofmy evolutionary algorithm have been designed to solve my original portfolio optimization problem. Due to developments in evolutionary algorithms and the variety of design structures possible, a purpose of my thesis is to investigate the suitability of alternative algorithm design structures. A comparison is made of the performance of two existing algorithms, firstly the single objective stepping stone island model, where each island represents a different risk aversion parameter, and secondly the multi-objective Non-Dominated Sorting Genetic Algorithm2. Innovative hybrids of these algorithms which also incorporate features from multi-objective evolutionary algorithms, multiple population models and local search heuristics are then proposed. . A novel way is developed for solving the portfolio optimization by dividing my problem solution into two parts and then applying a multi-objective cooperative coevolution evolutionary algorithm. The first solution part consists of the asset allocation weights within the equity portfolio while the second solution part consists 'ofthe asset allocation weights within the equity options and the asset allocation weights between the different asset classes. An original portfolio optimization multiobjective evolutionary algorithm that uses an island model to represent different risk measures is also proposed.Imperial Users onl
    corecore