Jump to content

Brooks–Iyengar algorithm

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by Lateshkj (talk | contribs) at 09:26, 3 June 2019 (→‎Algorithm Influence). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

The Brooks–Iyengar algorithm or Brooks–Iyengar hybrid algorithm [1] 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.[2] 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.[3]

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.[4] This seminal algorithm unified these disparate fields for the first time. Essentially, it combines Dolev’s[5] 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: see Big O notation. It is possible to modify this algorithm to correspond to Crusader’s Convergence Algorithm (CCA),[6] however, the bandwidth requirement will also increase. The algorithm has applications in distributed control, software reliability, High-performance computing, etc.[7]

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.[8] 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 ,

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 , where is the number of faulty PEs
  4. If there are L intervals left, let denote the set of the remaining intervals. We have , where interval and is the weight associated with interval . We also assume .
  5. Calculate the point estimate of PE i as and the interval estimate is

Example:

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

An Example of Brooks-Iyengar Algorithm
An Example of Brooks-Iyengar Algorithm

The values received by are in the next Table.

values
WRD by Brooks-Iyengar Algorithm
WRD by Brooks-Iyengar Algorithm

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

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

and the interval estimate is

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

PE Input Intervals Output Interval Estimation Output Point Estimation
2.625
2.4
2.625
2.375
—— ——

1982 Byzantine Problem:[5] The Byzantine General Problem [9] as an extension of Two Generals' Problem could be viewed as a binary problem.

1983 Approximate Consensus:[10] The method removes some values from the set consists of scalars to tolerant faulty inputs.

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

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

2013 Byzantine Vector Consensus:[11] The method uses vectors as the input.

2013 Multidimensional Agreement:[12] 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 [3] 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.[13] Also, it is easy to implement and embed in any networking systems.[14]

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.

Besides, 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 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 Nav 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

  • 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

Algorithm Influence

The Brooks Iyengar algorithm has made quite a lot of impact since its initial publication. It is classic and insightful even if one reads it today. The technique has been applied in many domains such as software reliability, distributed systems, and OS development etc. The Brooks-Iyengar's algorithm is continued to be cited where fault-tolerant solutions are needed in redundancy system scenarios. The Algorithm has influenced billions of computers and internet users across globe in various domains.

The algorithm is powerful in building hardware integrated application by tolerating the hardware errors. The algorithm is highly useful in deep learning, neural network (DNN) systems where hardware errors may present (i.e., in self-driving cars and machine learning data centers etc). For example, each neuron in DNN can be a PE in the context of Brooks-Iyengar algorithm, broadcasting data to other neurons for processing, and if one such neuron is faulty by hardware errors, we want to know how the neural network can detect and tolerate the faulty neuron, producing correct (or near correct) results as the output of the DNN. One of the challenges is to keep detection overhead low, because my understanding is that the algorithm need to be executed per PE. Using this, we can reduce the overhead by applying software-hardware co-design method. That is, to have special circuits in DNN hardware to execute the Brooks-Iyengar algorithm together with neurons in DNN.

MINIX and Brooks-Iyengar Algorithm The Minix operating system powered by Tanenbaum’s [15] was enhanced to Real-Time (RT) Minix operating system and services by Wainer and it is identified as RT-MINIX [16] Further few noveler features were added to shape up an academic real time operating system called as MINIX v2. This architecture of design was proposed to train the RTOS with few major topics:

Block Structure View of Brooks-Iyengar Algorithm Influence on RT-MINIX
Block Structure View of Brooks-Iyengar Algorithm Influence on RT-MINIX

The Figure [3] describes novel features added to MINIX operating system by Pablo and Gabriel in creation of RT-MINIX by using the intelligence of Brooks-Iyengar Algorithm. The programming of the MINIX source code was dedicated to provide the real-time controls on various services. Many real-time services were added, to begin with rate-monotonic scheduling [17], Earliest Deadline First processor and fault-tolerance are programmed. To make these new changes in the source code of the kernel, the code flow and data structures are slightly modified based on the new updates. Specifically, sensor, timers, schedule and criticality. Further, to adapt live-tasks with interactive CPU bound tasks a multi-queue is developed. The below listed data structure is modified in lieu of RT-MINIX evaluation.

All these changes are tested with various feasibility of MINIX for the real world challenges for real-time development. Numerous work was done using Brooks-Iyengar robust distributed computing alogrithm from the testing of novel scheduling procedures to kernel alterations. In the mean time new version of MINIX was released and hence to sync the RT-MINIX version with MINIX version, some changes were made. The analog to digital conversion, in this update the target was to acquire data from analogic environment as many real-time systems are employed to handle the real process like chemical and a production line. In this requirement the Brooks-Iyengar algorithm’s sensor management intelligence is effectively used for sensing the real world data, to control the noise and to manage the faulty sensors. The interface used for game ports were used to provide the signals from the sensors, this was considered and a device driver for port is developed. The changing environment rely on poor performance of integral systems of RT-MINIX with novel techniques. The Brook-iyengars’s algorithm adopted fast convergance algorithm (FCA) [17] to increase the convergence ratio.

According the Pablo Ragina and Gabrile Weiner, the algorithm is used extensively to extend RT-MINIX with posiblity of several sensors from a fault-tolerance perception. At the outset, the complete coding was performed based on the all the four algorithm’s of Hyrbid brook-iyengar. The next immediate phase was to integrate the smart capability to make use of the real-time data, to do this four potentiometers were used to sense the signals/data from analogic inputs from the joystick port. These sensor positions are arranged with actual positions for a simulation based robotic arm. An accurate and precise functionality of algorithm was noticed by providing a exclusive value from the simulated sensors inspite of faulty, at the same time users were offered open chance to modify the data by varying the potentiometers. At last, all the updated code is test for various feasibility and real-time constraints and then the novel algorithm intelligence is united into MINIX kernel. The Figure shows the RT-MINIX Kernel and new feature additions with Brook-Iyengar Algorithm.

MINIX Kernel and Brooks-Iyengar Algorithm

The software developers were given a set of functions to work with intellectual sensors, using these it was possible to generate many new services and devices like /dev/js0 and after that smart sensors were able to read data in the presence of faulty sensors. Once the operating system is enhanced with RT services, the demand ascended for various computing tools and applications. The Brook-Iyengar’s algorithm needed a test on the novel techniques applied on kernel, in order to evalute the data structure through vivid system and library calls.

Algorithm Usecases The Brooks-Iyengar algorithm was further implemented on Linux using the OpenMPI [18], this is an open source project created to pass message through interface. This is a collaborative consortium of industry partners, research community and groups of academic. Hence, the OpenMPI is powerful and smart because the knowledge, technology and resources are shared from various community. The libraries of MPI provides support to software developers and researchers of computer science and operating researchers. The below Figure shows the hard coded c code in implementing the OpenMPI by using the Brooks-Iyengar algorithm for fault tolerance.

Open Implementation for Fault-Tolerance

A classical problem in distributed computing is Byzantine Generals' Problem, introduced in the 1982 white paper of the same name. It attempted to formalize a definition for faulty (traitorous) nodes in a cluster and how for the system to mitigate it. Solutions such as majority voting or signed messages were suggested. Majority voting requires that all generals have the same information, a suggestion that isn't always possible. Signed messages are a good to verify that it was the correct node in communication, even if it doesn't verify that the content itself is correct. Both are good suggestions, but it would be more interesting to have an algorithm that can survive a traitorous order every now and then. Enter the Brooks-Iyengar algorithm as an attempt to solve this problem. This algorithm uses sensor fusion to mathematically eliminate the faulty sensors. In short, this is achieved by taking measurements over an interval, the measured interval is then shared between all sensors on the network. The fusion step then happens, by creating a weighted average of the midpoints of all the intervals. At this point you can eliminate any sensors with high variance or use heuristics to choose the reliable nodes. It runs in O(NlogN) time and can handle up to N/3 faulty sensors.

The Figure illustrates the recorded output from OpenMPI implementation for eliminating faulty sensors. The figure depicts three colored output curves ranging from o to 6 across the X and Y axis. The analytical results are displayed in blue color, the brooks-iyengar’s 100% accuracy in faulty sensor elimination is displayed in green color and the red color curve denotes the discarded lower weights intervals in the last step of pseudocode for eliminating the faulty sensor. The output representation from the figure is included with faulty sensors and overall an average value is considered across all sensors. Because of high activity in the sensor the data represented in the graph is not ideal to visualize the realistic output of each sensor. Overall, the faulty sensors are controlled from ruining the measurements by benefiting from payback error distribution.

Open MPI with Brook Iyengar Results

To conclude the obtained results it is better to consider the dumb average because, noise generated from real and faulty sensors are from undeviating distribution. If the algorithm has not performed better then the noise would have been twisted and tremendous in one direction causing the red line curve aggressive over the green line. Overall, the algorithm is very difficult to implement as there were no framework/library and demands precision of coding and adequate infrastructure to achieve best results. The results prooved that Brook-Iyengar’s algorithm is smart and scalable across various domains like cyber physical system.

Algorithm Case Study

SN Domain/Technology User and Use-cases
Operating System– MINIX Andres Tanenbaum
IT Industry – Software Systems BBN, BAE Systems, Sense-IT
Research Labs Penn State Applied Research Lab(ARL) USC/ISI
Research Communities – RT:MINIX Pablo J. Rogina and Gabriel Wainer
Transportation – Railway Buke Ao, BYD Company
Education- Training/Journal/Conference Duke, Wisconsin, UCLA, Cornell, Purdue, Georgia Tech, Clemson, Maryland and LSU University
Defense- Thale Groups UK Defense Manufacturer
Navy-Software Maritime Domain Awareness Software
Technology Cyber-physical systems, Data Fusion, Robot Convergence, High-Performance Computing, Artificial Intelligence Systems
Open Source RT Linux, KURT, YARTOS, Spring

See also

References

  1. ^ a b Richard R. Brooks; S. Sithrama Iyengar (June 1996). "Robust Distributed Computing and Sensing Algorithm". Computer. 29 (6): 53–60. doi:10.1109/2.507632. ISSN 0018-9162. Archived from the original on 2010-04-08. Retrieved 2010-03-22. {{cite journal}}: Unknown parameter |dead-url= ignored (|url-status= suggested) (help); Unknown parameter |lastauthoramp= ignored (|name-list-style= suggested) (help)
  2. ^ Mohammad Ilyas; Imad Mahgoub (July 28, 2004). Handbook of sensor networks: compact wireless and wired sensing systems (PDF). CRC Press. pp. 25–4, 33–2 of 864. ISBN 978-0-8493-1968-6. Archived from the original (PDF) on June 27, 2010. Retrieved March 22, 2010. {{cite book}}: |website= ignored (help); Unknown parameter |dead-url= ignored (|url-status= suggested) (help)
  3. ^ a b Ao, Buke; Wang, Yongcai; Yu, Lu; Brooks, Richard R.; Iyengar, S. S. (2016-05-01). "On Precision Bound of Distributed Fault-Tolerant Sensor Fusion Algorithms". ACM Comput. Surv. 49 (1): 5:1–5:23. doi:10.1145/2898984. ISSN 0360-0300.
  4. ^ D. Dolev (Jan 1982). "The Byzantine Generals Strike Again" (PDF). J. Algorithms. 3 (1): 14–30. doi:10.1016/0196-6774(82)90004-9. Retrieved 2010-03-22.[permanent dead link]
  5. ^ a b L. Lamport; R. Shostak; M. Pease (July 1982). "The Byzantine Generals Problem". ACM Transactions on Programming Languages and Systems. 4 (3): 382–401. CiteSeerX 10.1.1.64.2312. doi:10.1145/357172.357176.
  6. ^ D. Dolev; et al. (July 1986). "Reaching Approximate Agreement in the Presence of Faults" (PDF). Journal of the ACM. 33 (3): 499–516. CiteSeerX 10.1.1.13.3049. doi:10.1145/5925.5931. ISSN 0004-5411. Retrieved 2010-03-23.
  7. ^ a b S. Mahaney; F. Schneider (1985). Inexact Agreement: Accuracy, Precision, and Graceful Degradation. pp. 237–249. CiteSeerX 10.1.1.20.6337. doi:10.1145/323596.323618. ISBN 978-0897911689. {{cite book}}: |journal= ignored (help); Unknown parameter |lastauthoramp= ignored (|name-list-style= suggested) (help)
  8. ^ Sartaj Sahni and Xiaochun Xu (September 7, 2004). "Algorithms For Wireless Sensor Networks" (PDF). University of Florida, Gainesville. Retrieved 2010-03-23.
  9. ^ Lamport, Leslie; Shostak, Robert; Pease, Marshall (1982-07-01). "The Byzantine Generals Problem". ACM Trans. Program. Lang. Syst. 4 (3): 382–401. CiteSeerX 10.1.1.64.2312. doi:10.1145/357172.357176. ISSN 0164-0925.
  10. ^ Dolev, Danny; Lynch, Nancy A.; Pinter, Shlomit S.; Stark, Eugene W.; Weihl, William E. (1986-05-01). "Reaching Approximate Agreement in the Presence of Faults". J. ACM. 33 (3): 499–516. CiteSeerX 10.1.1.13.3049. doi:10.1145/5925.5931. ISSN 0004-5411.
  11. ^ Vaidya, Nitin H.; Garg, Vijay K. (2013-01-01). Byzantine Vector Consensus in Complete Graphs. PODC '13. New York, NY, USA: ACM. pp. 65–73. arXiv:1302.2543. doi:10.1145/2484239.2484256. ISBN 9781450320658. {{cite book}}: |journal= ignored (help)
  12. ^ Mendes, Hammurabi; Herlihy, Maurice (2013-01-01). Multidimensional Approximate Agreement in Byzantine Asynchronous Systems. STOC '13. New York, NY, USA: ACM. pp. 391–400. doi:10.1145/2488608.2488657. ISBN 9781450320290. {{cite book}}: |journal= ignored (help)
  13. ^ Kumar, Vijay (2012). "Computational and Compressed Sensing Optimizations for Information Processing in Sensor Network". International Journal of Next-Generation Computing.
  14. ^ Ao, Buke (July 2017). "Robust Fault Tolerant Rail Door State Monitoring Systems: Applying the Brooks-Iyengar Sensing Algorithm to Transportation Applications". International Journal of Next-Generation Computing. 8.
  15. ^ http://journal.info.unlp.edu.ar/JCST/article/view/755. {{cite web}}: |first1= missing |last1= (help); Missing or empty |title= (help)
  16. ^ Rogina, Pablo; Weiner, Gabriel. http://cell-devs.sce.carleton.ca/publications/1999/RW99/RT-MINIX.pdf. {{cite journal}}: Cite journal requires |journal= (help); Missing or empty |title= (help)
  17. ^ R Mahaney, Stephen. "nexact Agreement: Accuracy, Precision, and Graceful Degradation" (PDF). {{cite journal}}: Cite journal requires |journal= (help)
  18. ^ https://github.com/warrenedgar/brooks-iyengar. {{cite web}}: |first1= missing |last1= (help); Missing or empty |title= (help)