• DocumentCode
    618121
  • Title

    A python-based design-by-contract evolutionary algorithm framework with augmented diagnostic capabilities

  • Author

    Panchapakesan, Ashwin ; Abielmona, Rami ; Petriu, Emil

  • Author_Institution
    Sch. of EECS, Univ. of Ottawa, Ottawa, ON, Canada
  • fYear
    2013
  • fDate
    20-23 June 2013
  • Firstpage
    2517
  • Lastpage
    2524
  • Abstract
    Evolutionary algorithms are a class of algorithms that try to mimic natural, biological evolution a la Darwinian natural selection, to compute solutions to a given problem. They are especially useful when no well known strategies for computing solutions to such a problem exist. Evolutionary algorithms begin by creating a collection (population) of candidate solutions to the problem at hand; and through repeated application of genetic operators such as crossover and mutation, they iterate over multiple generations of this population, until they eventually converge onto an attractive solution. One important problem facing code implementing Evolutionary Algorithms is that due to the dynamic nature of the individual chromosomes in a population, simple coding errors lead to complex bugs that are difficult to both diagnose and debug. This problem is only exacerbated when attempting to develop the algorithms in a dynamically typed language such as Python. This paper presents a novel Evolutionary Algorithm framework for the Python programming language that implements design-by-contract, a paradigm in which each function and class must follow a contractual set of pre-conditions and post-conditions. Failure to follow the contract causes an error condition identifying the violated clause, thereby catching bugs earlier in the development process and in a more descriptive manner.
  • Keywords
    evolutionary computation; program debugging; programming languages; Darwinian natural selection; Python programming language; Python-based design-by-contract evolutionary algorithm framework; augmented diagnostic capability; biological evolution; bug ctaching; crossover operator; development process; genetic operator; mutation operator; post-condition contractual set; precondition contractual set; Arrays; Biological cells; Cities and towns; Contracts; Evolutionary computation; Sociology; Statistics; design-by-contract; evolutionary algorithm; python programming language;
  • fLanguage
    English
  • Publisher
    ieee
  • Conference_Titel
    Evolutionary Computation (CEC), 2013 IEEE Congress on
  • Conference_Location
    Cancun
  • Print_ISBN
    978-1-4799-0453-2
  • Electronic_ISBN
    978-1-4799-0452-5
  • Type

    conf

  • DOI
    10.1109/CEC.2013.6557872
  • Filename
    6557872