Application of majority voting and consensus voting algorithms in N-version software

R. Yu Tsarev, M. S. Durmuş, I. Üstoglu, V. A. Morozov

Research output: Contribution to journalConference articlepeer-review

3 Citations (Scopus)


N-version programming is one of the most common techniques which is used to improve the reliability of software by building in fault tolerance, redundancy and decreasing common cause failures. N different equivalent software versions are developed by N different and isolated workgroups by considering the same software specifications. The versions solve the same task and return results that have to be compared to determine the correct result. Decisions of N different versions are evaluated by a voting algorithm or the so-called voter. In this paper, two of the most commonly used software voting algorithms such as the majority voting algorithm and the consensus voting algorithm are studied. The distinctive features of Nversion programming with majority voting and N-version programming with consensus voting are described. These two algorithms make a decision about the correct result on the base of the agreement matrix. However, if the equivalence relation on the agreement matrix is not satisfied it is impossible to make a decision. It is shown that the agreement matrix can be transformed into an appropriate form by using the Boolean compositions when the equivalence relation is satisfied.

Original languageEnglish
Article number042059
JournalJournal of Physics: Conference Series
Issue number4
Publication statusPublished - 22 May 2018
Externally publishedYes
EventInternational Conference on Information Technologiess in Business and Industry 2018, ITBI 2018 - Tomsk, Russian Federation
Duration: 17 Jan 201820 Jan 2018

Bibliographical note

Publisher Copyright:
© Published under licence by IOP Publishing Ltd.


Dive into the research topics of 'Application of majority voting and consensus voting algorithms in N-version software'. Together they form a unique fingerprint.

Cite this