  Starting with Michail, Chatzigiannakis, and Spirakis work, the problem of
Counting the number of nodes in Anonymous Dynamic Networks has attracted a lot
of attention. The problem is challenging because nodes are indistinguishable
(they lack identifiers and execute the same program) and the topology may
change arbitrarily from round to round of communication, as long as the network
is connected in each round. The problem is central in distributed computing as
the number of participants is frequently needed to make important decisions,
such as termination, agreement, synchronization, and many others. A variety of
algorithms built on top of mass-distribution techniques have been presented,
analyzed, and also experimentally evaluated; some of them assumed additional
knowledge of network characteristics, such as bounded degree or given upper
bound on the network size. However, the question of whether Counting can be
solved deterministically in sub-exponential time remained open. In this work,
we answer this question positively by presenting Methodical Counting, which
runs in polynomial time and requires no knowledge of network characteristics.
Moreover, we also show how to extend Methodical Counting to compute the sum of
input values and more complex functions without extra cost. Our analysis
leverages previous work on random walks in evolving graphs, combined with
carefully chosen alarms in the algorithm that control the process and its
parameters. To the best of our knowledge, our Counting algorithm and its
extensions to other algebraic and Boolean functions are the first that can be
implemented in practice with worst-case guarantees.
