On &ohgr;-automata and temporal logic
STOC '89 Proceedings of the twenty-first annual ACM symposium on Theory of computing
Adaptation in natural and artificial systems
Adaptation in natural and artificial systems
Genetic programming: on the programming of computers by means of natural selection
Genetic programming: on the programming of computers by means of natural selection
Bounds on shared memory for mutual exclusion
Information and Computation
Genetic programming and emergent intelligence
Advances in genetic programming
Reasoning about infinite computations
Information and Computation
Formally verifying a microprocessor using a simulation methodology
DAC '94 Proceedings of the 31st annual Design Automation Conference
Recombination, selection, and the genetic construction of computer programs
Recombination, selection, and the genetic construction of computer programs
Genetic programming: an introduction: on the automatic evolution of computer programs and its applications
Solution of a problem in concurrent programming control
Communications of the ACM
Evolution and Optimum Seeking: The Sixth Generation
Evolution and Optimum Seeking: The Sixth Generation
Model Checking of Safety Properties
Formal Methods in System Design
Fate and Free Will in Error Traces
TACAS '02 Proceedings of the 8th International Conference on Tools and Algorithms for the Construction and Analysis of Systems
PRISM: Probabilistic Symbolic Model Checker
TOOLS '02 Proceedings of the 12th International Conference on Computer Performance Evaluation, Modelling Techniques and Tools
Automata, Tableaux and Temporal Logics (Extended Abstract)
Proceedings of the Conference on Logic of Programs
CSFW '00 Proceedings of the 13th IEEE workshop on Computer Security Foundations
Economical solutions for the critical section problem in a distributed system (Extended Abstract)
STOC '77 Proceedings of the ninth annual ACM symposium on Theory of computing
Strongly typed genetic programming
Evolutionary Computation
Genetic programming with fitness based on model checking
EuroGP'07 Proceedings of the 10th European conference on Genetic programming
TACAS'05 Proceedings of the 11th international conference on Tools and Algorithms for the Construction and Analysis of Systems
CAV '08 Proceedings of the 20th international conference on Computer Aided Verification
Genetic Programming and Model Checking: Synthesizing New Mutual Exclusion Algorithms
ATVA '08 Proceedings of the 6th International Symposium on Automated Technology for Verification and Analysis
Model Checking Driven Heuristic Search for Correct Programs
Model Checking and Artificial Intelligence
Semantics based crossover for boolean problems
Proceedings of the 12th annual conference on Genetic and evolutionary computation
Semantic similarity based crossover in GP: the case for real-valued function regression
EA'09 Proceedings of the 9th international conference on Artificial evolution
The role of syntactic and semantic locality of crossover in genetic programming
PPSN'10 Proceedings of the 11th international conference on Parallel problem solving from nature: Part II
MCGP: a software synthesis tool based on model checking and genetic programming
ATVA'10 Proceedings of the 8th international conference on Automated technology for verification and analysis
Synthesizing solutions to the leader election problem using model checking and genetic programming
HVC'09 Proceedings of the 5th international Haifa verification conference on Hardware and software: verification and testing
Semantically-based crossover in genetic programming: application to real-valued symbolic regression
Genetic Programming and Evolvable Machines
Examining the landscape of semantic similarity based mutation
Proceedings of the 13th annual conference on Genetic and evolutionary computation
Code mutation in verification and automatic code correction
TACAS'10 Proceedings of the 16th international conference on Tools and Algorithms for the Construction and Analysis of Systems
Improving the generalisation ability of genetic programming with semantic similarity based crossover
EuroGP'10 Proceedings of the 13th European conference on Genetic Programming
Recent challenges and ideas in temporal synthesis
SOFSEM'12 Proceedings of the 38th international conference on Current Trends in Theory and Practice of Computer Science
A new framework for scalable genetic programming
Proceedings of the 14th annual conference companion on Genetic and evolutionary computation
Search-based software engineering: Trends, techniques and applications
ACM Computing Surveys (CSUR)
Searching for pareto-optimal randomised algorithms
SSBSE'12 Proceedings of the 4th international conference on Search Based Software Engineering
On the roles of semantic locality of crossover in genetic programming
Information Sciences: an International Journal
An interpolation based crossover operator for genetic programming
Proceedings of the 15th annual conference companion on Genetic and evolutionary computation
Hi-index | 0.00 |
Two approaches for achieving correctness of code are verification and synthesis from specification. Evidently, it is easier to check a given program for correctness (although not a trivial task by itself) than to generate algorithmically correct-by-construction code. However, formal verification may give quite limited information about how to correct the code. Genetic programming repeatedly generates mutations of code, and then selects the mutations that remain for the next stage based on a fitness function, which assists in converging into a correct program. We use a model checking procedure to provide the fitness value in every stage. As an example, we generate algorithms for mutual exclusion, using this combination of genetic programming and model checking. The main challenge is to select a fitness function that will allow constructing correct solutions with minimal effort. We present our considerations behind the selection of a fitness function based not only on the classical outcome of model checking, i.e., the existence of an error trace, but on the complete graph constructed during the model checking process.