User:Against123/sandbox

Abstract
Recent years have witnessed the sharp growth of research interests in Search Based Software Engineering (SBSE) from the society of Software Engineering (SE). In SBSE, a SE task is generally transferred into a combinatorial optimiza-tion problem and search algorithms are employed to achieve solutions within its search space. Since the terrain of the search space is rugged with numerous local optima, it remains a great challenge for search algorithms to achieve high-quality solutions in SBSE. In this paper, we propose a new paradigm of SBSE, namely search Space Transformation Based Software Engineering (STBSE). Given a new SE task, STBSE first transforms its search space into either a reduced one or a series of gradually smoothed spaces, then employ search algorithms to effec-tively seek high-quality solutions. More specifically, we investigate two tech-niques for STBSE, namely search space reduction and search space smoothing. We demonstrate the effectiveness of these new techniques over a typical SE task, namely Next Release Problem (NRP). The work of this paper provides a new way for tackling SE tasks in SBSE.

Introduction
Since Harman and Jones proposed the conception of Search Based Software Engi-neering (SBSE) in 2001, SBSE has attracted a great amount of research interests from the society of Software Engineering (SE). As shown in the SBSE repository, up to Feb. 3, 2015, 1389 relevant research papers involving over 659 authors around the world have been published. As stated in, a SE task in SBSE is firstly transferred into an optimization problem for solving and then various search algorithms are employed to seek solu-tions within its search space, a high-dimensional rugged space consisting of points (solutions). Some typical search algorithms include Evolutionary Algorithms (EA, e.g., Genetic Algorithms, Genetic Programming, and Memetic Algorithms), Ant Colony Algorithms (ACO), Tabu Search (TS), Simulated Annealing (SA), Particle Swarm Op-timization (PSO), Hill Climb (HC), etc. Up to now, SBSE has covered most SE tasks across all the stages of the software lifecycle, including requirement/specification, design, verification, testing/debugging, maintenance, and software project manage-ment.

Since the search spaces in SBSE are usually rugged with numerous local optima, search algorithms are apt to get trapped at poor local optima. In this paper, we pro-pose a new paradigm of SBSE named search Space Transformation Based Software Engineering (STBSE) to tackle this challenge. In STBSE, the search spaces are trans-formed so as to either constrain search algorithms within promising regions or provide better initial solutions for search algorithms. More specifically, we present two tech-niques for search space transformation, namely search space reduction and search space smoothing. Taking the Next Release Problem (NRP) as a case study, we inves-tigate how to resolve SE tasks within STBSE. The remainder of this paper is structured as follows. In Section 2, we present the new SBSE paradigm STBSE. Then in Section 3 we present the related work of the NRP. In Section 4 and Section 5, we present the detailed technique of search space smoothing over NRP and the experimental results, respectively. In Section 6, we dis-cuss the threats to validity. Finally, we conclude this paper and discuss the future work in Section 7.

Search Space Transformation Based Software Engineering
In this section, we introduce the new paradigm of SBSE, namely search Space Trans-formation Based Software Engineering (STBSE). A key challenge lying in SBSE is that search algorithms in SBSE may easily get trapped in poor local optima, due to the rugged terrain of search spaces with numerous local optima. Therefore, STBSE aims to tackle the above challenge by transforming the search spaces. Given a SE task, STBSE firstly transfers it into a combinatorial optimization problem. Then, STBSE transforms the related search space to facilitate the process of searching solutions. More specifically, two techniques are available for search space transformation, namely search space reduction and search space smoothing. Third, search algorithms, e.g., EA, ACO, TS, SA, PSO, are employed to search within the transformed search spaces. In the following part, we illustrate more details of search space reduction and search space smoothing.

Search Space Reduction. In SBSE, a search space may consist of numerous local optima and, search algorithms are apt to get trapped in poor local optima. The basic idea of search space reduction in STBSE is to constrain search algorithms in a re-duced search space consisting of high-quality solutions. In such a way, search algo-rithms could better find high-quality solutions within reasonable running time.

Some related studies [3, 4] in the literature can be viewed as the applications relat-ed to search space reduction. For example, Xuan et al. proposed a backbone based multilevel algorithm to solve NRP. They constrain a shared common part of optimal solutions and reduce the search space into smaller ones. Then, they employ Simulated Annealing to iteratively search for high-quality solutions.

Search Space Smoothing. In SBSE, the terrain of a search space is usually rugged with many poor local optima. Hence, the solutions of search algorithms may heavily depend on the initial solutions fed into search algorithms. For example, Hill Climbing may easily get trapped in a poor local optimum, if it is initialized with a random solu-tion. The idea of search space smoothing is to transform a search space into a series of gradually smoothed ones. In the most smoothed search space, search algorithms are apt to achieve high-quality solutions. Then, the resulting solutions are fed into the second smoothed search space as its initial solutions for search algorithms. Since the terrains of the two search spaces are similar in shape, these initial solutions could lead search algorithms to better hit new high-quality solutions. In such a way, we eventual-ly return to the original search space and achieve the final solutions.



Fig. 1 presents the process of search space smoothing over a one-dimensional search space. The original search space is smoothed into two smoothed search spaces. First, a solution a is initialized in the most smoothed search space (smoothed search space II) and a local optimum b is achieved. Then, the solution b is used as the new initial solution in smoothed search space I, and a local optimum c can be achieved. Finally, the solution c is used as the initial solution in the original search space and the final solution d is eventually returned.

Some early studies in the literature of combinatorial optimization problems could be used to smooth search spaces. However, as to our knowledge, no related work has been done in SBSE. Since for most tasks in SBSE, it is still a challenge on how to prevent search algorithms from getting trapped into poor local optima. We believe that search space smoothing is a promising technique to solve the above problem and may significantly improve the effectiveness of search algorithms in SBSE.