Prologue
You're making the classical mistake to, having learned how to use a hammer, assume that every problem in this world is a problem solved through nailing.
Modelling the Problem You Need to Solve
I think you're modelling isn't useful at all:
Either,
- your multi-bit decision problem (in your case, 16 bits) decomposes into independent single-bit decision problems, where you vote individually, and due to an odd number of voters always end up with a majority, no matter what. This problem is already solved. Or,
- the bits actually are logically dependent, and you mustn't decide the things on an individual bit level. Then, you mustn't think of the outputs as "collection of bits" but as symbols from a discrete alphabet, and even thinking about making per-bit decisions should occur to be nonsensical to you.
you need to figure out which kind of problem you're looking at.
Example
In general, you have problem 2! Think about it. Say, you have three temperature sensors, giving you temperature in degree celsius
sensor |
°C |
binary |
1. Sensor |
60°C |
0b0111100 |
2. Sensor |
65°C |
0b1000001 |
3. Sensor |
32°C |
0b0100000 |
|
|
|
per-bit consensus |
|
0b0100000 |
consensus converted back |
32 °C |
|
… which seems unlikely, at least when temperatures around 60°C are as likely as around 30°C.
Estimators
Remember why you do majority votes. You do it to find the most probable value of the underlying phenomenon. Knowing how to do a majority vote is worthless if you don't know in which situation to do a majority vote.
So, what you really want when you do that is an estimate for the most likely explanation for the things you can observer. A maximum likelihood estimator.
Majority Vote as Maximum Likelihood Estimator for Binary Independently Identically Distributed Decision Problems
You use the binary majority vote only for binary outputs \$X_i\$,
$$ X_i \in \{ 0, 1\}, \quad i = 1, 2, 3$$
based on some underlying effect \$U\in \{ 0, 1\}\$ which you try to get, but can't directly but only through the fallible systems \$X_1, X_2, X_3\$,
where you consider all three systems to be equally likely to make a mistake,
$$P(X_1 \ne u | U = u) = P(X_2 \ne u | U = u) = P(X_2 \ne u | U = u) = P_{\text{error}, u},$$
and where you assume these error occur independently,
\begin{align}
P(X_1 \ne u \wedge X_2 \ne u \wedge X_3 \ne u | U = u) &= P(X_1 \ne u | U = u)P(X_2 \ne u | U = u)P(X_3 \ne u | U = u)\\
&= P_{\text{error}, u}^3
\end{align}
it just happens so that the majority vote is the maximum likelihood. (Exercise: write down, compare probability of two observers being wrong to probability of one being wrong. Easy, really do it!)
So, for anything where there's more than one way to be wrong, this is not a Bernoulli experiment, and you will actually have to sit down and do the stochastics modelling to figure out what the most probably right solution is.
Continuous-Value Problems: Modelling Probabilities
Consider the sensor example above: If we assume, indepedently of temperature, the probability of measurement error to be independently Gaussian distributed with a standard deviation > 20 °C, then a value somewhere between 60 °C and 34 °C becomes probable. But if we assumed measurement error to have a standard deviation of 2.9 °C, then it's extremely unlikely that both the first and second sensor are off by this much, and the most probable value will be somewhere between 60°C and 65°C.
Things get more complicated if you know that it's much more likely that your temperature is between 25 °C and 45°C, so that your error probability densities depend on the actual temperature.
Methodology
In all these cases, a designer would:
- model the probability distribution of the true value, the probability density functions of each sensor, and if the sensor have correlated errors, joint probability density functions
- find a good estimator for the use case based that can convert any triplet of values to a good estimate of the true value, based on the model in 1.
- find an implementation of that in digital logic; if that logic ends up being very complete, they might modify the estimator from 2. to be easier but suboptimal.
Applying the Methodology to Binary I.I.D. Decision Problems
Going back to the very beginning of this answer, for your three binary outputs, these three steps would have been:
- \$P_{err} = \text{const.}\$ for all three sensors. They are independent, so no crosscorrelation, the joint probability of the error of all three is just the product of the individual error probabilities.
- We look for the estimator that is most likely to give the right answer. That's the majority vote.
- We implement that with a majority gate. Which is simple enough, and we're done.
Outlook
Where you find that problem all of the time is digital communications! By the very principle of it, all communications is based on noisy observation, and finding the most likely transmitted symbol, considering only what noisy stuff we observed, is the decision problem. We help by building the transmitting system such that we transmit additional redundant data, that a forward error correcting logic at the receiver can use to (approximate) a maximum likelihood observation.
This is sometimes also done in redundancy/reliability engineering, if the problem allows for independent observation which one can use to actually build a error correcting mechanism. It is ubiquitous in quantum computers, where you need so-called quantum stabilizer codes, and apply all your computations to all redundant elements of these redundancy-carrying form of the underlying problem. But quantum computing a) needs that very much by principle of what is "quantum" and b) has the rather rare property that the logic elements that it's made of inherently allow for independent non-destructive modification until an observation of the error-corrected result yields insight on the (most likely) correct answer. That's not as common for a flight computer, or other things where you'd use majority voting methods.