## 4 Simulation-Based Performance Evaluation
### NONE, FLSS, k-Neighbor, LTRT  
In this section, we briefly introduce four algorithms we have compared FTC with. More details can be found in the corresponding references.  
* NONE: once all sensor nodes are deployed in the field, each node configures its communication range to the maximum communication range, and the communication range does not change during the simulation. NONE generates the most connected network, thus gives the upper bound of network connectivity. NONE algorithm is used to simulate the case that there is no topology control applied to WSNs.
* Fault-tolerant Local Spanning Subgraph (FLSS) [2]: each node runs at their maximum communication range to collect neighbors' information, e.g., IDs, locations. Based on this information, each node first sorts all edges in an ascending order, and then only selects edges according to the order if it is not \(k-connected\) to it. Maybe some edges are directed, but it is optional to only consider bi-directional edges by deleting directed edges, or turning directed edges into bi-directional edges.
* k-Neighbor algorithm [10]: each node first runs at its maximum communication range as well, in order to collect neighbor IDs and location information. Its final communication range is set to the distance between itself and its \(k-th\) nearest neighbor. One of the important features of k-Neighbor is that the algorithm is asynchronous. Each node starts running its topology algorithm at a random time. However, the difference between nodes wake up is bounded by a known constant \(\Delta\). By the time \(4\Delta+2d+\tau\), all nodes terminate setting the communication range, where \(d\) is the time to obtain a specific contention free wireless with probability P, and \(\tau\) is the upper bound of processing time for sorting neighbors. In the circumstances that the number of neighbors is less than \(k\), k-Neighbor algorithm modifies its communication range to the distance to the farthest neighbor.
* Local Minimum Spanning Tree (LTRT) [3]: LTRT performs local spanning tree algorithm \(k\) times. Given a network \(G(V,E)\), where \(V\) is the set of nodes, \(E\) is the set of links. LTRT calculates one of its spanning trees \(T(V,\hat{E_{1}})\), and then removes all links in \(\hat{E_{1}}\) from \(E\). The resulting network is denoted as \(G(V,E-\hat{E_{1}})\). Next, the same process is conducted on \(G(V,E-\hat{E_{1}})\). After \(k\) times, the final network is formed by combining all trees together, that is \(G(V,\hat{E_{1}}+\hat{E_{2}}+\cdots+\hat{E_{k}})\). The final communication range of each node is the maximum communication range in \(G(V,\hat{E_{1}}+\hat{E_{2}}+\cdotsbe \(k-connected\) if the original network is at least \(k-connected\). On the contrary, k-Neighbor algorithm only proves that the network is \(1-connected\) with high probability if \(k\) is the order of \(\Theta(\log n)\). Like FLSS, k-Neighbor and LTRT, FTC proposed in this paper is also a fully localized algorithm to find \(k\) neighbors, but FTC does not need location information. Similar to k-Neighbor, FTC cannot guarantee that the network is 100% connected either, but FTC can achieve the desired \(k\), and therefore FTC can make the network connected with high probability if choosing \(k\) appropriately.