Brooks–Iyengar algorithm

{{Short description|Distributed algorithm for sensor networks}}

The Brooks–Iyengar algorithm or FuseCPA Algorithm or Brooks–Iyengar hybrid algorithm{{cite journal

|url = http://www.computer.org/portal/web/csdl/abs/mags/co/1996/06/r6053abs.htm

|author1 = Richard R. Brooks

|author2 = S. Sithrama Iyengar

|name-list-style = amp

|title = Robust Distributed Computing and Sensing Algorithm

|journal = Computer

|volume = 29

|issue = 6

|pages = 53–60

|date = June 1996

|issn = 0018-9162

|doi = 10.1109/2.507632

|access-date = 2010-03-22

|archive-url = https://web.archive.org/web/20100408191214/http://www.computer.org/portal/web/csdl/abs/mags/co/1996/06/r6053abs.htm

|archive-date = 2010-04-08

|url-status = dead

}} is a distributed algorithm that improves both the precision and accuracy of the interval measurements taken by a distributed sensor network, even in the presence of faulty sensors.

{{cite book

|title=Handbook of sensor networks: compact wireless and wired sensing systems

|url=http://bit.csc.lsu.edu/~iyengar/final-papers/robust_algo.pdf

|author1=Mohammad Ilyas

|author2=Imad Mahgoub

|publisher=CRC Press

|date=July 28, 2004

|pages=25–4, 33–2 of 864

|isbn=978-0-8493-1968-6

|access-date=2010-03-22

|archive-url=https://web.archive.org/web/20100627095239/http://bit.csc.lsu.edu/~iyengar/final-papers/robust_algo.pdf

|archive-date=June 27, 2010

|url-status=dead

|df=mdy-all

}}

The sensor network does this by exchanging the measured value and accuracy value at every node with every other node, and computes the accuracy range and a measured value for the whole network from all of the values collected. Even if some of the data from some of the sensors is faulty, the sensor network will not malfunction. The algorithm is fault-tolerant and distributed. It could also be used as a sensor fusion method. The precision and accuracy bound of this algorithm have been proved in 2016.{{Cite journal|last1=Ao|first1=Buke|last2=Wang|first2=Yongcai|last3=Yu|first3=Lu|last4=Brooks|first4=Richard R.|last5=Iyengar|first5=S. S.|date=2016-05-01|title=On Precision Bound of Distributed Fault-Tolerant Sensor Fusion Algorithms|journal=ACM Comput. Surv.|volume=49|issue=1|pages=5:1–5:23|doi=10.1145/2898984|s2cid=13760223 |issn=0360-0300}}

Background

The Brooks–Iyengar hybrid algorithm for distributed control in the presence of noisy data combines Byzantine agreement with sensor fusion. It bridges the gap between sensor fusion and Byzantine fault tolerance.{{cite journal

|url=https://www.cs.huji.ac.il/~dolev/pubs/byz-strike-again.pdf

|author=D. Dolev

|title=The Byzantine Generals Strike Again

|journal=J. Algorithms

|date=Jan 1982

|pages=14–30

|volume=3

|issue=1

|access-date=2010-03-22

|doi=10.1016/0196-6774(82)90004-9

}} This seminal algorithm unified these disparate fields for the first time. Essentially, it combines Dolev's{{cite journal

|author1=L. Lamport |author2=R. Shostak |author3=M. Pease |title=The Byzantine Generals Problem

|journal=ACM Transactions on Programming Languages and Systems

|volume=4

|issue=3

|pages=382–401

|date=July 1982

|doi=10.1145/357172.357176

|citeseerx=10.1.1.64.2312 |s2cid=55899582 }} algorithm for approximate agreement with Mahaney and Schneider's fast convergence algorithm (FCA). The algorithm assumes N processing elements (PEs), t of which are faulty and can behave maliciously. It takes as input either real values with inherent inaccuracy or noise (which can be unknown), or a real value with apriori defined uncertainty, or an interval. The output of the algorithm is a real value with an explicitly specified accuracy. The algorithm runs in O(NlogN) where N is the number of PEs. It is possible to modify this algorithm to correspond to Crusader's Convergence Algorithm (CCA),{{cite journal

|url=http://groups.csail.mit.edu/tds/papers/Lynch/jacm86.pdf

|author=D. Dolev

|title=Reaching Approximate Agreement in the Presence of Faults

|journal=Journal of the ACM

|volume=33

|issue=3

|date=July 1986

|pages=499–516

|issn=0004-5411

|access-date=2010-03-23

|doi=10.1145/5925.5931

|display-authors=etal|citeseerx=10.1.1.13.3049

|s2cid=496234

}} however, the bandwidth requirement will also increase. The algorithm has applications in distributed control, software reliability, High-performance computing, etc.{{cite book

|citeseerx=10.1.1.20.6337

|author1=S. Mahaney |author2=F. Schneider

|title=Proceedings of the fourth annual ACM symposium on Principles of distributed computing - PODC '85 |chapter=Inexact agreement: Accuracy, precision, and graceful degradation

|year=1985

|pages=237–249

|doi=10.1145/323596.323618 |isbn=978-0897911689 |s2cid=10858879 }}

Algorithm

The Brooks–Iyengar algorithm is executed in every processing element (PE) of a distributed sensor network. Each PE exchanges their measured interval with all other PEs in the network. The "fused" measurement is a weighted average of the midpoints of the regions found.{{cite web

|url=http://www.cise.ufl.edu/~sahni/papers/sensors.pdf

|title=Algorithms For Wireless Sensor Networks

|author=Sartaj Sahni and Xiaochun Xu

|publisher=University of Florida, Gainesville

|date=September 7, 2004

|access-date=2010-03-23

}} The concrete steps of Brooks–Iyengar algorithm are shown in this section. Each PE performs the algorithm separately:

Input:

The measurement sent by PE k to PE i is a closed interval [l_{k,i}, h_{k,i}], 1 \leq k \leq N

Output:

The output of PE i includes a point estimate and an interval estimate

  1. PE i receives measurements from all the other PEs.
  2. Divide the union of collected measurements into mutually exclusive intervals based on the number of measurements that intersect, which is known as the weight of the interval.
  3. Remove intervals with weight less than N-\tau, where \tau is the number of faulty PEs
  4. If there are L intervals left, let A_i denote the set of the remaining intervals. We have A_i = \{(I_1^i, w_1^i), \dots, (I_L^i, w_L^i)\}, where interval I_l^i = [l_{I_l^i}, h_{I_l^i}] and w_l^i is the weight associated with interval I_l^i . We also assume h_{I_l^i} \leq h_{I_{l+1}^i}.
  5. Calculate the point estimate v_i' of PE i as v_i' = \frac{\sum_l \frac{(l_{I_l^i}+h_{I_l^i})\cdot w_l^i}{2}}{\sum_l w_l^i} and the interval estimate is [l_{I_1^i}, h_{I_L^i}]

Example:

Consider an example of 5 PEs, in which PE 5 (S_5) is sending wrong values to other PEs and they all exchange the values.

File:Brooks-iyengar algorithm exchange values.png

The values received by S_1 are in the next Table.

class="wikitable"

!

!S_1

!S_2

!S_3

!S_4

!S_5

S_1 values

|[2.7, 6.7]

|[0, 3.2]

|[1.5, 4.5]

|[0.8, 2.8]

|[1.4, 4.6]

File:An example of brooks-iyengar algorithm.png

We draw a Weighted Region Diagram (WRD) of these intervals, then we can determine A_1 for PE 1 according to the Algorithm:

A_1 = \{([1.5, 2.7], 4), ([2.7, 2.8], 5), ( [2.8, 3.2], 4) \}

which consists of intervals where at least 4(= N-\tau = 5−1) measurements intersect. The output of PE 1 is equal to

\frac{4*\frac{1.5+2.7}{2} + 5* \frac{2.7+2.8}{2} + 4*\frac{2.8+3.2}{2}} {13} = 2.625

and the interval estimate is [1.5, 3.2]

Similar, we could obtain all the inputs and results of the 5 PEs:

class="wikitable"

!PE

!Input Intervals

!Output Interval Estimation

!Output Point Estimation

S_1

|[2.7, 6.7],[0,3.2],[1.5,4.5],[0.8,2.8],[1.4,4.6]

|[1.5, 3.2]

|2.625

S_2

|[2.7, 6.7],[0,3.2],[1.5,4.5],[0.8,2.8],[-0.6,2.6]

|[1.5, 2.8]

|2.4

S_3

|[2.7, 6.7],[0,3.2],[1.5,4.5],[0.8,2.8],[0.9,4.1]

|[1.5, 3.2]

|2.625

S_4

|[2.7, 6.7],[0,3.2],[1.5,4.5],[0.8,2.8],[-0.7,2.5]

|[1.5, 2.8]

|2.375

S_5

|[2.7, 6.7],[0,3.2],[1.5,4.5],[0.8,2.8],[\text{--},\text{--}]

|——

|——

Related algorithms

File:History of Brooks-Iyengar Algorithm.png1982 Byzantine Problem: The Byzantine General Problem {{Cite journal|last1=Lamport|first1=Leslie|last2=Shostak|first2=Robert|last3=Pease|first3=Marshall|date=1982-07-01|title=The Byzantine Generals Problem|journal=ACM Trans. Program. Lang. Syst.|volume=4|issue=3|pages=382–401|doi=10.1145/357172.357176|issn=0164-0925|citeseerx=10.1.1.64.2312|s2cid=55899582 }} as an extension of Two Generals' Problem could be viewed as a binary problem.

1983 Approximate Consensus:{{Cite journal|last1=Dolev|first1=Danny|last2=Lynch|first2=Nancy A.|last3=Pinter|first3=Shlomit S.|last4=Stark|first4=Eugene W.|last5=Weihl|first5=William E.|date=1986-05-01|title=Reaching Approximate Agreement in the Presence of Faults|journal=J. ACM|volume=33|issue=3|pages=499–516|doi=10.1145/5925.5931|issn=0004-5411|citeseerx=10.1.1.13.3049|s2cid=496234 }} The method removes some values from the set consists of scalars to tolerant faulty inputs.

1985 In-exact Consensus: The method also uses scalar as the input.

1996 Brooks-Iyengar Algorithm: The method is based on intervals.

2013 Byzantine Vector Consensus:{{Cite book|last1=Vaidya|first1=Nitin H.|last2=Garg|first2=Vijay K.|title=Proceedings of the 2013 ACM symposium on Principles of distributed computing |chapter=Byzantine vector consensus in complete graphs |date=2013-01-01|series=PODC '13|location=New York, NY, USA|publisher=ACM|pages=65–73|doi=10.1145/2484239.2484256|isbn=9781450320658|arxiv=1302.2543|s2cid=5914155 }} The method uses vectors as the input.

2013 Multidimensional Agreement:{{Cite book|last1=Mendes|first1=Hammurabi|last2=Herlihy|first2=Maurice|title=Proceedings of the forty-fifth annual ACM symposium on Theory of Computing |chapter=Multidimensional approximate agreement in Byzantine asynchronous systems |date=2013-01-01|series=STOC '13|location=New York, NY, USA|publisher=ACM|pages=391–400|doi=10.1145/2488608.2488657|isbn=9781450320290|s2cid=13865698 }} The method also use vectors as the input while the measure of distance is different.

We could use Approximate Consensus (scalar-based), Brooks-Iyengar Algorithm (interval-based) and Byzantine Vector Consensus (vector-based) to deal with interval inputs, and the paper proved that Brooks–Iyengar algorithm is the best here.

Application

Brooks–Iyengar algorithm is a seminal work and a major milestone in distributed sensing, and could be used as a fault tolerant solution for many redundancy scenarios.{{Cite journal|last=Kumar|first=Vijay|year=2012|title=Computational and Compressed Sensing Optimizations for Information Processing in Sensor Network|url=http://www.perpetualinnovation.net/ojs/index.php/ijngc/article/viewFile/181/65|journal=International Journal of Next-Generation Computing}} Also, it is easy to implement and embed in any networking systems.{{Cite journal|last=Ao|first=Buke|s2cid=13592515|date=July 2017|title=Robust Fault Tolerant Rail Door State Monitoring Systems: Applying the Brooks-Iyengar Sensing Algorithm to Transportation Applications|journal=International Journal of Next-Generation Computing |volume=8}}

In 1996, the algorithm was used in MINIX to provide more accuracy and precision, which leads to the development of the first version of RT-Linux.

In 2000, the algorithm was also central to the DARPA SensIT program's distributed tracking program. Acoustic, seismic and motion detection readings from multiple sensors are combined and fed into a distributed tracking system. Besides, it was used to combine heterogeneous sensor feeds in the application fielded by BBN Technologies, BAE systems, Penn State Applied Research Lab(ARL), and USC/ISI.

The Thales Group, a UK Defense Manufacturer, used this work in its Global Operational Analysis Laboratory. It is applied to Raytheon's programs where many systems need to extract reliable data from unreliable sensor network, this exempts the increasing investment in improving sensor reliability. Also, the research in developing this algorithm results in the tools used by the US Navy in its maritime domain awareness software.

In education, Brooks–Iyengar algorithm has been widely used in teaching classes such as University of Wisconsin, Purdue, Georgia Tech, Clemson University, University of Maryland, etc.

In addition to the area of sensor network, other fields such as time-triggered architecture, safety of cyber-physical systems, data fusion, robot convergence, high-performance computing, software/hardware reliability, ensemble learning in artificial intelligence systems could also benefit from Brooks–Iyengar algorithm.

Algorithm characteristics

{{div col}}

  • Faulty PEs tolerated < N/3
  • Maximum faulty PEs < 2N/3
  • Complexity = O(N log N)
  • Order of network bandwidth = O(N)
  • Convergence = 2t/N
  • Accuracy = limited by input
  • Iterates for precision = often
  • Precision over accuracy = no
  • Accuracy over precision = no

{{div col end}}

See also

References