The nomore++ approach to answer set solving Christian Anger, Martin Gebser, Thomas Linke, Andr´ e Neumann, and Torsten Schaub Institut f ¨ ur Informatik, Universit¨ at Potsdam, Postfach 90 03 27, D–14439 Potsdam Abstract. We present a new answer set solver, called nomore++, along with its underlying theoretical foundations. A distinguishing feature is that it treats heads and bodies equitably as computational objects. Apart from its operational foun- dations, we show how it improves on previous work through its new lookahead and its computational strategy of maintaining unfounded-freeness. We underpin our claims by selected experimental results. 1 Introduction A large part of the success of Answer Set Programming (ASP) is owed to the early availability of efficient solvers, like smodels [1] and dlv [2]. Since then, many other sys- tems, sometimes following different approaches, have emerged, among them assat [3], cmodels [4], and noMoRe [5]. We present a new ASP solver, called nomore++, along with its underlying theo- retical foundations. nomore++ pursues a hybrid approach in combining features from literal-based approaches, like smodels and dlv, with the rule-based approach of its pre- decessor noMoRe. To this end, it treats heads and bodies of logic programs’ rules equi- tably as computational objects. We argue that this approach allows for more effective (in terms of search space pruning) choices than obtainable when dealing with either heads or bodies only. As a particular consequence of this, we demonstrate that the resulting lookahead operation allows for more effective propagation than previous approaches. Finally, we detail a computational strategy of maintaining “unfounded-freeness”. We empirically show that, thanks to its hybrid approach, nomore++ outperforms smodels on relevant benchmarks. In fact, we mainly compare our approach to that of smodels. Our choice is motivated by the fact that both systems primarily address normal logic programs. 1 dlv and many of its distinguishing features are devised for dealing with the more expressive class of disjunctive logic programs. Also, smodels and nomore++ share the same concept of “choice points”, on which parts of our experiments rely upon. The paper is organised as follows. After some preliminary definitions, we start with a strictly operational specification of nomore++. In fact, its configurable operator-based design is a salient feature of nomore++. We then concentrate on two specific features: First, we introduce nomore++’s lookahead operation and prove that, in terms of propa- gation, it is more powerful than the ones encountered in smodels and noMoRe. Second, we present nomore++’s strategy of keeping assignments unfounded-free. Finally, we provide selected experimental results backing up our claims. 1 Unlike smodels, nomore++ cannot (yet) handle cardinality and weight constraints.