Abstract
This paper demonstrates the usefulness of distributed local verification of proofs, as a tool for the design of self-stabilizing algorithms. In particular, it introduces a somewhat generalized notion of distributed local proofs, and utilizes it for improving the time complexity significantly, while maintaining space optimality. As a result, we show that optimizing the memory size carries at most a small cost in terms of time, in the context of minimum spanning tree (MST). That is, we present algorithms that are both time and space efficient for both constructing an MST and for verifying it. This involves several parts that may be considered contributions in themselves. First, we generalize the notion of local proofs, trading off the time complexity for memory efficiency. This adds a dimension to the study of distributed local proofs, which has been gaining attention recently. Specifically, we design a (self-stabilizing) proof labeling scheme which is memory optimal (i.e., \(O(\log n)\) bits per node), and whose time complexity is \(O(\log ^2 n)\) in synchronous networks, or \(O(\varDelta \log ^3 n)\) time in asynchronous ones, where \(\varDelta \) is the maximum degree of nodes. This answers an open problem posed by Awerbuch et al. (1991). We also show that \(\varOmega (\log n)\) time is necessary, even in synchronous networks. Another property is that if \(f\) faults occurred, then, within the required detection time above, they are detected by some node in the \(O(f\log n)\) locality of each of the faults. Second, we show how to enhance a known transformer that makes input/output algorithms self-stabilizing. It now takes as input an efficient construction algorithm and an efficient self-stabilizing proof labeling scheme, and produces an efficient self-stabilizing algorithm. When used for MST, the transformer produces a memory optimal self-stabilizing algorithm, whose time complexity, namely, \(O(n)\), is significantly better even than that of previous algorithms (the time complexity of previous MST algorithms that used \(\varOmega (\log ^2 n)\) memory bits per node was \(O(n^2)\), and the time for optimal space algorithms was \(O(n|E|)\)). Inherited from our proof labeling scheme, our self-stabilising MST construction algorithm also has the following two properties: (1) if faults occur after the construction ended, then they are detected by some nodes within \(O(\log ^2 n)\) time in synchronous networks, or within \(O(\varDelta \log ^3 n)\) time in asynchronous ones, and (2) if \(f\) faults occurred, then, within the required detection time above, they are detected within the \(O(f\log n)\) locality of each of the faults. We also show how to improve the above two properties, at the expense of some increase in the memory.
Similar content being viewed by others
Notes
We note, the standard technique (e.g., [38]) for obtaining unique weights is not sufficient for our purposes. Indeed, that technique orders edge weights lexicographically: first, by their original weight \(\omega (e)\), and then, by the identities of the edge endpoints. This yields a modified graph with unique edge weights, and an MST of the modified graph is necessarily an MST of the original graph. For construction purposes it is therefore sufficient to consider only the modified graph. Yet, this is not the case for verification purposes, as the given subgraph can be an MST of the original graph but not necessarily an MST of the modified graph. While the authors in [51] could not guarantee that any MST of the original graph is an MST of the modified graph (having unique edge weights), they instead make sure that the particular given subgraph \(T\) is an MST of the original graph if and only if it is an MST of modified one. This condition is sufficient for verification purposes, and allows one to consider only the modified graph. For completeness, we describe the weight-modification in [51]. To obtain the modified graph, the authors in [51] employ the technique, where edge weights are lexicographically ordered as follows. For an edge \(e=(v,u)\) connecting \(v\) to its neighbour \(u\), consider first its original weight \(\omega (e)\), next, the value \(1-Y_u^v\) where \(Y_u^v\) is the indicator variable of the edge \(e\) (indicating whether \(e\) belongs to the candidate MST to be verified), and finally, the identities of the edge endpoints, \({\mathtt{ID}}(v)\) and \({\mathtt{ID}}(u)\) (say, first comparing the smaller of the two identities of the endpoints, and then the larger one). Formally, let \(\omega '(e) ~=~ \left\langle \omega (e), 1-Y_u^v, {\mathtt{ID}}_{ min}(e), {\mathtt{ID}}_{ max}(e) \right\rangle ~,\) where \({\mathtt{ID}}_{ min}(e) = \min \{{\mathtt{ID}}(v),{\mathtt{ID}}(u)\}\) and \({\mathtt{ID}}_{ max}(e) = \max \{{\mathtt{ID}}(v),{\mathtt{ID}}(u)\}\). Under this weight function \(\omega '(e)\), edges with indicator variable set to 1 will have lighter weight than edges with the same weight under \(\omega (e)\) but with indicator variable set to 0 (i.e., for edges \(e_1\in T\) and \(e_2\notin T\) such that \(\omega (e_1)=\omega (e_2)\), we have \(\omega '(e_1)< \omega '(e_2)\)). It follows that the given subgraph \(T\) is an MST of \(G\) under \(\omega (\cdot ) \) if and only if \(T\) is an MST of \(G\) under \(\omega '(\cdot )\). Moreover, since \(\omega '(\cdot )\) takes into account the unique node identities, it assigns distinct edge weights.
That protocol, called “the strict discipline” in [3], actually provides a stronger property (emulating a coarser grained atomicity), not used here.
Note that we do not include the number of bits needed for storing the component \(c(v)\) at each node \(v\). Recall that for simplicity, we assume here that each component contains a single pointer, and therefore, the size of each component is \(O(\log n)\) bits. Hence, for our purposes, including the size of a component in the memory complexity would not increase the asymptotical size of the memory, anyways. However, in the general case, if multiple pointers can be included in a component, then the number of bits needed for encoding a component would potentially be as large as \(O(\varDelta \log n)\). Since, in this case, the verification scheme has no control over the size of the component, we decided to exclude this part from the definition of the memory complexity.
An input/output algorithm is one whose correctness requirement can be specified as a relation between its input and its output.
An alternative synchronizer can be based on the one of [17], again, coupled with some additional known components, such as a module to compute \(n\).
References
Afek, Y., Bremler-Barr, A.: Self-stabilizing unidirectional network algorithms by power supply. Chic. J. Theor. Comput. Sci. (1998)
Afek, Y., Kutten, S., Yung, M.: Memory-efficient self stabilizing protocols for general networks. In: WDAG (renamed DISC), pp. 15–28 (1991)
Afek, Y., Kutten, S., Yung, M.: The local detection paradigm and its application to self-stabilization. Theor. Comput. Sci. 186(1–2), 199–229 (1997)
Aggarwal, S., Kutten, S.: Time optimal self-stabilizing spanning tree algorithms. In: FSTTCS, pp. 400–410 (1993)
Antonoiu, G., Srimani, P.: Distributed self-stabilizing algorithm for minimum spanning tree construction. Euro-Par 1300, 480–487 (1997)
Arora, A., Gouda, M.G.: Distributed reset. IEEE Trans. Comput. 43(9), 1026–1038 (1994)
Awerbuch, B.: A new distributed depth first search algorithm. Inf. Process. Lett. 20(3), 147–150 (1985)
Awerbuch, B.: Optimal distributed algorithms for minimum weight spanning tree, counting, leader election and related problems. In: STOC, pp. 230–240 (1987)
Awerbuch, B., Kutten, S., Mansour, Y., Patt-Shamir, B., Varghese, G.: Time optimal self-stabilizing synchronization. In: STOC, pp. 652–661 (1993)
Awerbuch, B., Kutten, S., Mansour, Y., Patt-Shamir, B., Varghese, G.: A time-optimal self-stabilizing synchronizer using a phase clock. IEEE Trans. Dependable Secure Comput. 4(3), 180–190 (2007)
Awerbuch, B., Patt-Shamir, B., Varghese, G.: Self-stabilization by local checking and correction. In: FOCS, pp. 268–277 (1991)
Awerbuch, B., Patt-Shamir, B., Varghese, G., Dolev, S.: Self-stabilization by local checking and global reset. In: WDAG, pp. 326–339 (1994)
Awerbuch, B., Varghese, G.: Distributed program checking: a paradigm for building self-stabilizing distributed protocols. In: FOCS, pp. 258–267 (1991)
Azar, Y., Kutten, S., Patt-Shamir, B.: Distributed error confinement. ACM Trans. Algorithms 6(3), 48 (2010)
Blin, L., Dolev, S., Potop-Butucaru, M.G., Rovedakis, S.: Fast self-stabilizing minimum spanning tree construction. In: DISC, pp. 480–494 (2010)
Blin, L., Potop-Butucaru, M., Rovedakis, S., Tixeuil, S.: A new self-stabilizing minimum spanning tree construction with loop-free property. In: DISC, pp. 407–422 (2009)
Boulinier, C., Petit, F., Villain, V.: When graph theory helps self-stabilization. In: PODC, pp. 150–159 (2004)
Bui, A., Datta, A.K., Petit, F., Villain, V.: Snap-stabilization and PIF in tree networks. Distrib. Comput. 20(1), 3–19 (2007)
Chang, E.J.H.: Echo algorithms: depth parallel operations on general graphs. IEEE Trans. Softw. Eng. 8(4), 391–401 (1982)
Chlamtac, I., Kutten, S.: Tree-based broadcasting in multihop radio networks. IEEE Trans. Comput. 36(10), 1209–1223 (1987)
Collin, Z., Dolev, S.: Self-stabilizing depth-first search. Inf. Process. Lett. 49(6), 297–301 (1994)
Cournier, A., Petit, F., Villain, V., Datta, A.K.: Self-stabilizing PIF algorithm in arbitrary rooted networks. In: ICDCS, pp. 91–98 (2001)
Dalal, Y.K.: A distributed algorithm for constructing minimal spanning trees. IEEE Trans. Softw. Eng. 13(3), 398–405 (1987)
Das Sarma, A., Holzer, S., Kor, L., Korman, A., Nanongkai, D., Pandurangan, G., Peleg, D., Wattenhofer, R.: Distributed verification and hardness of distributed approximation. SIAM J. Comput. 41(5), 1235–1265 (2012)
Datta, A.K., Larmore, L.L., Pinigantim, H.: Self-stabilizing leader election in dynamic networks. In: SSS, pp. 35–49 (2010)
Datta, A.K., Larmore, L.L., Vemula, P.: Self-stabilizing leader election in optimal space. In: SSS, pp. 109–123 (2008)
Dijkstra, E.W.: Self-stabilizing systems in spite of distributed control. CACM 17(11), 643–644 (1974)
Dixon, B., Rauch, M., Tarjan, R.E.: Verification and sensitivity analysis of minimum spanning trees in linear time. SIAM J. Comput. 21(6), 1184–1192 (1992)
Dixon, B., Tarjan, R.E.: Optimal parallel verification of minimum spanning trees in logarithmic time. Algorithmica 17(1), 11–18 (1997)
Dolev, S.: Self-Stabilization. MIT Press, Cambridge (2000)
Dolev, S., Gouda, M., Schneider, M.: Requirements for silent stabilization. Acta Inform. 36(6), 447–462 (1999)
Dolev, S., Israeli, A., Moran, S.: Self-stabilization of dynamic systems assuming only read/write atomicity. Distrib. Comput. 7(1), 3–16 (1994)
Even, S.: Graph Algorithms. Computer Science Press, Rockville (1979)
Fraigniaud, P., Gavoille, C.L.: Routing in trees. In: ICALP, pp. 757–772 (2001)
Fraigniaud, P., Korman, A., Peleg, D.: Local distributed decision. In: FOCS, pp. 708–717 (2011)
Fraigniaud, P., Korman, A., Parter, M., Peleg, D.: Randomized distributed decision. In: DISC, pp. 371–385 (2012)
Fraigniaud, P., Halldorsson, M.M., Korman, A.: On the impact of identifiers on local decision. In: OPODIS, pp. 224–238 (2012)
Gallager, R.G., Humblet, P.A., Spira, P.M.: A distributed algorithm for minimum-weight spanning trees. ACM Trans. Program. Lang. Syst. 5(1), 66–77 (1983)
Garay, J., Kutten, S., Peleg, D.: A sub-linear time distributed algorithm for minimum-weight spanning trees. In: FOCS, pp. 659–668 (1993)
Gavoille, C., Peleg, D., Pérennes, S., Raz, R.: Distance labeling in graphs. J. Algorithms 53(1), 85–112 (2004)
Ghosh, S., Gupta, A., Herman, T., Pemmaraju, S.V.: Fault-containing self-stabilizing algorithms. In: PODC, pp. 45–54 (1996)
Goemans, M.X.: Minimum bounded degree spanning trees. In: FOCS, pp. 273–282 (2006)
Goldreich, O., Shrira, L.: Electing a leader in a ring with link failures. Acta Inform. 24(1), 79–91 (1987)
Göös, M., Suomela, J.: Locally checkable proofs. In: PODC, pp. 159–168 (2011)
Gupta, S.K.S., Srimani, P.K.: Self-stabilizing multicast protocols for ad hoc networks. J. Parallel Distrib. Comput. 63(1), 87–96 (2003)
Higham, L., Liang, Z.: Self-stabilizing minimum spanning tree construction on message passing networks. In: DISC, pp. 194–208 (2001)
Israeli, A., Jalfon, M.: Token management schemes and random walks yield self stabilizing mutual exclusion. In: PODC, pp. 119–132 (1990)
Jayaram, G.M., Varghese, G.: The fault span of crash failures. JACM 47(2), 244–293 (2000)
Katz, M., Katz, N.A., Korman, A., Peleg, D.: Labeling schemes for flow and connectivity. SIAM J. Comput. 34, 23–40 (2004)
Katz, S., Perry, K.J.: Self-stabilizing extensions for message-passing systems. Distrib. Comput. 7(1), 17–26 (1993)
Kor, L., Korman, A., Peleg, D.: Tight bounds for distributed MST verification. In: STACS, pp. 69–80 (2011)
Korman, A., Kutten, S.: Distributed verification of minimum spanning trees. Distrib. Comput. 20(4), 253–266 (2007)
Korman, A., Kutten, S., Peleg, D.: Proof labeling schemes. Distrib. Comput. 22(4), 215–233 (2010)
Korman, A., Peleg, D.: Compact separator decomposition for dynamic trees and applications. Distrib. Comput. 21(2), 141–161 (2008)
Kutten, S., Peleg, D.: Fast distributed construction of k-dominating sets and applications. In: PODC, pp. 238–249 (1995)
Lotker, Z., Patt-Shamir, B., Peleg, D.: Distributed MST for constant diameter graphs. Distrib. Comput. 18(6), 453–460 (2006)
McQuillan, J., Richer, I., Rosen, E.: The new routing algorithm for the ARPANET. IEEE Trans. Commun. 28(5), 711–719 (1980)
Naor, M., Stockmeyer, L.: What can be computed locally? In: STOC, pp. 184–193 (1993)
Peleg, D.: Distributed Computing: A Locality-Sensitive Approach. SIAM, Philadelphia (2000)
Peleg, D., Rubinovich, V.: A near-tight lower bound on the time complexity of distributed minimum-weight spanning tree construction. SIAM J. Comput. 30(5), 1427–1442 (2000)
Segall, A.: Distributed network protocols. IEEE Trans. Inf. Theory 29(1), 23–34 (1983)
Stomp, F.A.: Structured design of self stabilizing programs. In: Proceedings IEEE 2nd Israeli Symposium on Theory of Computer Systems, pp. 167–176 (1993)
Tarjan, R.E.: Applications of path compression on balanced trees. JACM 26(4), 690–715 (1979)
Varghese, G.: Self-stabilization by local checking and correction. PhD dissertation, Laboratory for Computer Science, Massachusetts Institute of Technology (1992)
Author information
Authors and Affiliations
Corresponding author
Additional information
Supported in part by a France–Israel cooperation grant (“Mutli-Computing” project) from the France Ministry of Science and Israel Ministry of Science, by the ANR projects ALADDIN and PROSE, by the INRIA project GANG, by a grant from the Israel Science Foundation, by the Technion funds for security research, and by JSPS Grant-in-Aid for Scientific Research ((B)26280022).
Rights and permissions
About this article
Cite this article
Korman, A., Kutten, S. & Masuzawa, T. Fast and compact self-stabilizing verification, computation, and fault detection of an MST. Distrib. Comput. 28, 253–295 (2015). https://doi.org/10.1007/s00446-015-0242-y
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s00446-015-0242-y