Applying Genetic Improvement to MiniSAT
Genetic Programming (GP) has long been applied to several SBSE problems. Recently there has been much interest in using GP and its variants to solve demanding problems in which the code evolved by GP is intended for deployment. This paper investigates the application of genetic improvement to a challenging problem of improving a well-studied system: a Boolean satisfiability (SAT) solver called MiniSAT. Many programmers have tried to make this very popular solver even faster and a separate SAT competition track has been created to facilitate this goal. Thus genetically improving MiniSAT poses a great challenge. Moreover, due to a wide range of applications of SAT solving technologies any improvement could have a great impact. Our initial results show that there is some room for improvement. However, a significantly more efficient version of MiniSAT is yet to be discovered.
KeywordsGenetic Improvement GISMOE SAT
Unable to display preview. Download preview PDF.
- 1.MiniSAT hack competition. In 2013 this is part of the 16th International Conference on Theory and Applications of Satisfiability Testing (2013)Google Scholar
- 2.Arcuri, A., White, D.R., Clark, J., Yao, X.: Multi-objective Improvement of Software Using Co-evolution and Smart Seeding. In: Li, X., et al. (eds.) SEAL 2008. LNCS, vol. 5361, pp. 61–70. Springer, Heidelberg (2008)Google Scholar
- 3.Arcuri, A., Yao, X.: A novel co-evolutionary approach to automatic software bug fixing. In: Wang, J. (ed.) 2008 IEEE World Congress on Computational Intelligence, Hong Kong, June 1-6. IEEE Computational Intelligence Society, IEEE Press (2008)Google Scholar
- 4.Bjørner, D., Ershov, A.P., Jones, N.D.: Partial evaluation and mixed computation. North–Holland (1987)Google Scholar
- 6.Fry, Z.P., Landau, B., Weimer, W.: A human study of patch maintainability. In: International Symposium on Software Testing and Analysis (ISSTA 2012), Minneapolis, Minnesota, USA (July 2012) (to appear)Google Scholar
- 7.Goues, C.L., Dewey-Vogt, M., Forrest, S., Weimer, W.: A systematic study of automated program repair: Fixing 55 out of 105 bugs for $8 each. In: International Conference on Software Engineering (ICSE 2012), Zurich, Switzerland (2012)Google Scholar
- 8.Harman, M., Langdon, W.B., Jia, Y., White, D.R., Arcuri, A., Clark, J.A.: The GISMOE challenge: Constructing the pareto program surface using genetic programming to find better programs (keynote paper). In: 27th IEEE/ACM International Conference on Automated Software Engineering (ASE 2012), Essen, Germany (September 2012)Google Scholar
- 9.Langdon, W.B., Harman, M.: Evolving a CUDA kernel from an nVidia template. In: Sobrevilla, P. (ed.) 2010 IEEE World Congress on Computational Intelligence, Barcelona, July 18-23, pp. 2376–2383. IEEE (2010)Google Scholar
- 10.Langdon, W.B., Harman, M.: Genetically improving 50000 lines of C++. Research Note RN/12/09, Department of Computer Science, University College London, Gower Street, London WC1E 6BT, UK (September 19, 2012)Google Scholar
- 13.Silva, J.P.M., Lynce, I., Malik, S.: Conflict-driven clause learning SAT solvers. In: Biere, A., Heule, M., van Maaren, H., Walsh, T. (eds.) Handbook of Satisfiability. Frontiers in Artificial Intelligence and Applications, vol. 185, pp. 131–153. IOS Press (2009)Google Scholar
- 14.Weimer, W., Nguyen, T.V., Goues, C.L., Forrest, S.: Automatically finding patches using genetic programming. In: International Conference on Software Engineering (ICSE 2009), Vancouver, Canada, pp. 364–374 (2009)Google Scholar