Computer Science > Software Engineering
[Submitted on 26 Aug 2016 (this version), latest version 5 Jan 2018 (v3)]
Title:Is "Sampling" better than "Evolution" for Search-based Software Engineering?
View PDFAbstract:Increasingly, SE researchers use search-based optimization techniques to solve SE problems with multiple conflicting objectives. These techniques often apply CPU-intensive evolutionary algorithms to explore generations of mutations to a population of candidate solutions.
An alternative approach, proposed in this paper, is to start with a very large population and sample down to just the better solutions-- but instead of evaluating all members of that population, just sample and evaluate pairs of distant examples. In studies with a dozen software engineering models, this sampling approach was found to be competitive with standard evolutionary algorithms (measured in terms of hypervolume and spread). Further, as software engineering models get more complex (e.g. heavily-constrained models of operating system kernels) this sampling approach performed as good or better than state-of-the-art evolutionary methods (and did so using up to 333 times fewer evaluations.
That is, sampling algorithms is preferred to evolution algorithms for multi-objective optimization in software engineering domains where (a) evaluating candidates is very expensive and/or slow or (b) models are large and heavily-constrained.
Submission history
From: Jianfeng Chen [view email][v1] Fri, 26 Aug 2016 22:10:01 UTC (495 KB)
[v2] Sun, 1 Oct 2017 22:43:50 UTC (200 KB)
[v3] Fri, 5 Jan 2018 20:13:52 UTC (2,370 KB)
References & Citations
Bibliographic and Citation Tools
Bibliographic Explorer (What is the Explorer?)
Litmaps (What is Litmaps?)
scite Smart Citations (What are Smart Citations?)
Code, Data and Media Associated with this Article
CatalyzeX Code Finder for Papers (What is CatalyzeX?)
DagsHub (What is DagsHub?)
Gotit.pub (What is GotitPub?)
Papers with Code (What is Papers with Code?)
ScienceCast (What is ScienceCast?)
Demos
Recommenders and Search Tools
Influence Flower (What are Influence Flowers?)
Connected Papers (What is Connected Papers?)
CORE Recommender (What is CORE?)
arXivLabs: experimental projects with community collaborators
arXivLabs is a framework that allows collaborators to develop and share new arXiv features directly on our website.
Both individuals and organizations that work with arXivLabs have embraced and accepted our values of openness, community, excellence, and user data privacy. arXiv is committed to these values and only works with partners that adhere to them.
Have an idea for a project that will add value for arXiv's community? Learn more about arXivLabs.