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
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;
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
DOI :
10.1109/CEC.2013.6557872