We investigate the computational complexity of the problem of counting the
maximal satisfying assignments of a Constraint Satisfaction Problem (CSP) over
the Boolean domain {0,1}. A satisfying assignment is maximal if any new
assignment which is obtained from it by changing a 0 to a 1 is unsatisfying.
For each constraint language Gamma, #MaximalCSP(Gamma) denotes the problem of
counting the maximal satisfying assignments, given an input CSP with
constraints in Gamma. We give a complexity dichotomy for the problem of exactly
counting the maximal satisfying assignments and a complexity trichotomy for the
problem of approximately counting them. Relative to the problem #CSP(Gamma),
which is the problem of counting all satisfying assignments, the maximal
version can sometimes be easier but never harder. This finding contrasts with
the recent discovery that approximately counting maximal independent sets in a
bipartite graph is harder (under the usual complexity-theoretic assumptions)
than counting all independent sets.Comment: V2 adds contextual material relating the results obtained here to
earlier work in a different but related setting. The technical content is
unchanged. V3 (this version) incorporates minor revisions. The title has been
changed to better reflect what is novel in this work. This version has been
accepted for publication in Theoretical Computer Science. 19 page