I. Introduction
Distributed computing has been a subject of extensive research in the last two decades. Initially, the purpose was to reduce the burden on a single processor and perform computationally large tasks in a distributed manner on multiple processors. Since the processors communicated through a wired medium, communication was usually reliable and not considered to be a scarce resource. With the recent interest in wireless sensor and actuator networks, the focus has shifted to performing simple global computations, e.g., averages, on data that is available locally at each agent in a distributed manner with minimum and unreliable communication. The recent literature on distributed computing in sensor networks solves the following three fundamental problems-optimization (e.g., [1]), function computation (e.g., [2]) and agent consensus (e.g., [3]). The algorithms for these fundamental distributed computation problems form the building blocks for distributed implementations of higher level operations such as detection, estimation, control, filtering and resource allocation. For example, the sum function computation is important in detection algorithms when each data point is the log-likelihood ratio. Another example is the consensus algorithm that is used in the distributed Kalman filter [3].