Beyond Evolutionary Algorithms for Search-based Software Engineering
arXiv:1701.07950 · doi:10.1016/j.infsof.2017.08.007
Abstract
Context: Evolutionary algorithms typically require a large number of evaluations (of solutions) to converge - which can be very slow and expensive to evaluate.Objective: To solve search-based software engineering (SE) problems, using fewer evaluations than evolutionary methods.Method: Instead of mutating a small population, we build a very large initial population which is then culled using a recursive bi-clustering chop approach. We evaluate this approach on multiple SE models, unconstrained as well as constrained, and compare its performance with standard evolutionary algorithms. Results: Using just a few evaluations (under 100), we can obtain comparable results to state-of-the-art evolutionary algorithms.Conclusion: Just because something works, and is widespread use, does not necessarily mean that there is no value in seeking methods to improve that method. Before undertaking search-based SE optimization tasks using traditional EAs, it is recommended to try other techniques, like those explored here, to obtain the same results with fewer evaluations.
17 pages, 10 figures, Information and Software Technology 2017
References in corpus (1)
Cited by in corpus (7)
- Better Software Analytics via "DUO": Data Mining Algorithms Using/Used-by Optimizers
- FLASH: A Faster Optimizer for SBSE Tasks
- "Sampling"' as a Baseline Optimizer for Search-based Software Engineering
- RIOT: a Stochastic-based Method for Workflow Scheduling in the Cloud
- Preference Discovery in Large Product Lines
- Building Very Small Test Suites (with Snap)
- Faster SAT Solving for Software with Repeated Structures (with Case Studies on Software Test Suite Minimization)