Synchronous Counting and Computational Algorithm Design

  • Danny Dolev
  • Janne H. Korhonen
  • Christoph Lenzen
  • Joel Rybicki
  • Jukka Suomela
Part of the Lecture Notes in Computer Science book series (LNCS, volume 8255)


Consider a complete communication network on n nodes, each of which is a state machine with s states. In synchronous 2-counting, the nodes receive a common clock pulse and they have to agree on which pulses are “odd” and which are “even”. We require that the solution is self-stabilising (reaching the correct operation from any initial state) and it tolerates f Byzantine failures (nodes that send arbitrary misinformation). Prior algorithms are expensive to implement in hardware: they require a source of random bits or a large number of states s. We use computational techniques to construct very compact deterministic algorithms for the first non-trivial case of f = 1. While no algorithm exists for n < 4, we show that as few as 3 states are sufficient for all values n ≥ 4. We prove that the problem cannot be solved with only 2 states for n = 4, but there is a 2-state solution for all values n ≥ 6.


Deterministic Algorithm Consensus Problem Clock Pulse Faulty Node Boolean Circuit 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
  2. 2.
    Ben-Or, M., Dolev, D., Hoch, E.N.: Fast self-stabilizing Byzantine tolerant digital clock synchronization. In: Proc. 27th Symposium on Principles of Distributed Computing (PODC 2008), pp. 385–394. ACM Press, New York (2008)Google Scholar
  3. 3.
    Biere, A.: PicoSAT essentials. Journal on Satisfiability, Boolean Modeling and Computation 4, 75–97 (2008)zbMATHGoogle Scholar
  4. 4.
    Biere, A.: Lingeling and friends entering the SAT challenge 2012. In: Proceedings of SAT Challenge 2012; Solver and Benchmark Descriptions. Department of Computer Science Series of Publications B, vol. B-2012-2, pp. 33–34. University of Helsinki (2012)Google Scholar
  5. 5.
    Clarke, E.M., Emerson, E.A.: Design and synthesis of synchronization skeletons using branching time temporal logic. In: Proc. 3rd Workshop on Logic of Programs (LOP 1981). LNCS, vol. 131, pp. 52–71. Springer, Berlin (1982)CrossRefGoogle Scholar
  6. 6.
    Daliot, A., Dolev, D., Parnas, H.: Self-stabilizing pulse synchronization inspired by biological pacemaker networks. In: Huang, S.-T., Herman, T. (eds.) SSS 2003. LNCS, vol. 2704, pp. 32–48. Springer, Heidelberg (2003)CrossRefGoogle Scholar
  7. 7.
    Dolev, D., Hoch, E.N.: On self-stabilizing synchronous actions despite Byzantine attacks. In: Pelc, A. (ed.) DISC 2007. LNCS, vol. 4731, pp. 193–207. Springer, Heidelberg (2007)CrossRefGoogle Scholar
  8. 8.
    Dolev, S.: Self-Stabilization. The MIT Press, Cambridge (2000)zbMATHGoogle Scholar
  9. 9.
    Dolev, S., Welch, J.L.: Self-stabilizing clock synchronization in the presence of Byzantine faults. Journal of the ACM 51(5), 780–799 (2004)MathSciNetCrossRefzbMATHGoogle Scholar
  10. 10.
    Fischer, M.J., Lynch, N.A.: A lower bound for the time to assure interactive consistency. Information Processing Letters 14(4), 183–186 (1982)MathSciNetCrossRefzbMATHGoogle Scholar
  11. 11.
    Fuhs, C., Schneider-Kamp, P.: Synthesizing shortest linear straight-line programs over GF(2) using SAT. In: Strichman, O., Szeider, S. (eds.) SAT 2010. LNCS, vol. 6175, pp. 71–84. Springer, Heidelberg (2010)CrossRefGoogle Scholar
  12. 12.
    Järvisalo, M., Kaski, P., Koivisto, M., Korhonen, J.H.: Finding efficient circuits for ensemble computation. In: Cimatti, A., Sebastiani, R. (eds.) SAT 2012. LNCS, vol. 7317, pp. 369–382. Springer, Heidelberg (2012)CrossRefGoogle Scholar
  13. 13.
    Junttila, T.A., Niemelä, I.: Towards an efficient tableau method for Boolean circuit satisfiability checking. In: Palamidessi, C., et al. (eds.) CL 2000. LNCS (LNAI), vol. 1861, pp. 553–567. Springer, Heidelberg (2000)CrossRefGoogle Scholar
  14. 14.
    Kojevnikov, A., Kulikov, A.S., Yaroslavtsev, G.: Finding efficient circuits using SAT-solvers. In: Kullmann, O. (ed.) SAT 2009. LNCS, vol. 5584, pp. 32–44. Springer, Heidelberg (2009)CrossRefGoogle Scholar
  15. 15.
    Lynch, N.A.: Distributed Algorithms. Morgan Kaufmann, San Francisco (1996)zbMATHGoogle Scholar
  16. 16.
    Manna, Z., Wolper, P.: Synthesis of communicating processes from temporal logic specifications. ACM Transactions on Programming Languages and Systems 6(1), 68–93 (1984)CrossRefzbMATHGoogle Scholar
  17. 17.
    Moscibroda, T., Oshman, R.: Resilience of mutual exclusion algorithms to transient memory faults. In: Proc. 30th Symposium on Principles of Distributed Computing (PODC 2011), pp. 69–78. ACM Press, New York (2011)Google Scholar
  18. 18.
    Pease, M.C., Shostak, R.E., Lamport, L.: Reaching agreement in the presence of faults. Journal of the ACM 27(2), 228–234 (1980)MathSciNetCrossRefzbMATHGoogle Scholar

Copyright information

© Springer International Publishing Switzerland 2013

Authors and Affiliations

  • Danny Dolev
    • 1
  • Janne H. Korhonen
    • 2
  • Christoph Lenzen
    • 3
  • Joel Rybicki
    • 2
  • Jukka Suomela
    • 2
  1. 1.School of Engineering and Computer ScienceThe Hebrew University of JerusalemIsrael
  2. 2.Helsinki Institute for Information Technology HIIT, Department of Computer ScienceUniversity of HelsinkiFinland
  3. 3.Computer Science and Artificial Intelligence LaboratoryMITUSA

Personalised recommendations