  In this paper, we introduce a novel algorithm to solve projected model
counting (PMC). PMC asks to count solutions of a Boolean formula with respect
to a given set of projection variables, where multiple solutions that are
identical when restricted to the projection variables count as only one
solution. Inspired by the observation that the so-called "treewidth" is one of
the most prominent structural parameters, our algorithm utilizes small
treewidth of the primal graph of the input instance. More precisely, it runs in
time O(2^2k+4n2) where k is the treewidth and n is the input size of the
instance. In other words, we obtain that the problem PMC is fixed-parameter
tractable when parameterized by treewidth. Further, we take the exponential
time hypothesis (ETH) into consideration and establish lower bounds of bounded
treewidth algorithms for PMC, yielding asymptotically tight runtime bounds of
our algorithm. While the algorithm above serves as a first theoretical upper
bound and although it might be quite appealing for small values of k,
unsurprisingly a naive implementation adhering to this runtime bound suffers
already from instances of relatively small width. Therefore, we turn our
attention to several measures in order to resolve this issue towards exploiting
treewidth in practice: We present a technique called nested dynamic
programming, where different levels of abstractions of the primal graph are
used to (recursively) compute and refine tree decompositions of a given
instance. Finally, we provide a nested dynamic programming algorithm and an
implementation that relies on database technology for PMC and a prominent
special case of PMC, namely model counting (#Sat). Experiments indicate that
the advancements are promising, allowing us to solve instances of treewidth
upper bounds beyond 200.
