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
Link To Document