  In this paper, we present a distributed algorithm which implements the
$k$-means algorithm in a distributed fashion for multi-agent systems with
directed communication links. The goal of $k$-means is to partition the
network's agents in mutually exclusive sets (groups) such that agents in the
same set have (and possibly share) similar information and are able to
calculate a representative value for their group.During the operation of our
distributed algorithm, each node (i) transmits quantized values in an
event-driven fashion, and (ii) exhibits distributed stopping capabilities.
Transmitting quantized values leads to more efficient usage of the available
bandwidth and reduces the communication bottleneck. Also, in order to preserve
available resources, nodes are able to distributively determine whether they
can terminate the operation of the proposed algorithm. We characterize the
properties of the proposed distributed algorithm and show that its execution
(on any static and strongly connected digraph) will partition all agents to
mutually exclusive clusters in finite time. We conclude with examples that
illustrate the operation, performance, and potential advantages of the proposed
algorithm.
