The soft voting (soft computing) algorithm is a technology used in complex fault-tolerant systems as an alternative to the conventional majority voting algorithm.
It can be used in sensor (signal) management tasks and as a solution to signals consolidation problem.
Both the conventional and the soft voting scheme are based on majority voting. The major difference is the way the like sensor signals contribute to the consolidated signal. (Source)
The algorithm has the following advatanges:
- Easy way to increase the signals quantity. The algorithm allows to add new input signals without the necessity of the logic restructuring unlike conventional majority voting algorithm.
- Every unit monitors others. It means that a unit can decide whether it trusts to other units (for more details, see below).
- Developer can set the preferable algorithm behavior even nonlinear required for a task.
On the other hand, hardware implementation is more complex than the majority voting algorithm and requires more target performance.
The algorthm uses all power of the fuzzy logic philosophy.
It is based on three main stages:
- Determination of trust indices (in terms of fuzzy logic, degrees of membership) of one signal to anothers.
- Determination of the adequate trust index which will be used in consolidation.
- Computing the consolidated signal.
All the stages have their own features.
It will be better to explain the first stage using an analogy with real subjects.
There are 3 subjects which must make a cooperative decision considering data from each of them. In every moment of time, the subjects exchange information.
Every subject is an independent unit which analyzes the data received from other units and forms a number from 0 to 1. This number is called a trust index. The trust index is a formalized expression of trust degree in other units. All units do the same.
Subject's trust index in itself is always equal to 1.
If other unit tells the same value the given unit does, it means that the trust index in one unit to another is equal to 1. If the difference between values has exceeded a determined number, it means that given subject lost its trust to another unit, and thus, its trust index would be
equal to 0.
A membership function is used for calculation of a trust index.
The first step is based on using membership function as a tool to compare signals with each other.
Figure shows the example of determination of the trust index of the first signal
The closer value of another unit to the value of the first unit (
In every round of making a decision, a trust indices matrix is formed where
Obviously, the main diagonal has only ones as a subject completely trusts itself.
After the formation of the matrix, discussion how every subject trusts other subjects is started. Result of the discussion is a right trust index.
The right trust index of the signal
For instance, the right trust index to the second signal defined as
Right trust indices participate in the consolidation.
Consolidation uses one of defuzzification methods.
In the application, the weighted area method is used:
The application demonstrates the operation of the soft voting algorithm with 6 signals.
It has three configuration panels:
- Signals setting,
- Membership function setting,
- Signals values.
It also has 6 graphical spaces and Results panel.
The panel allows you to set the number of signals participated in a process with drop down element Quantity. The list is limited by 6 signals.
Signals ranges are specified with editable fields From and To. Left and right limits are not limited.
IMPORTANT: left limit must be less than the right limit, otherwise the error will be occured.
With this panel, you can set membership function type and its parameters.
In the application, the following membership function are implemented:
Used parameters differ from the ones specified in corresponding help page of a function as modified approach is used.
All functions are presetted for being symmetric relative to its own signal value. Thus, with available parameters, one can adjust width of a function and form of each side if it is provided for the specific function.
Membership functions have the following available parameters:
Type | Number of parameters | Parameter/-s |
---|---|---|
Gaussian | 1 | Width |
Generalized bell-shaped | 2 | Width and form |
Triangular | 1 | Width |
Pi-shaped | 3 | Overall width and form of each side |
Trapezoidal | 3 | Overall width and form of each side |
IMPORTANT: for functions with 3 tunable parameters, the first parameter must be larger than the second and third parameter, otherwise the error will be occured.
The panel contains 6 sliders with which you can set the required values.
Limits of the sliders are values specified in Signals setting panel.
Steps are calculated automatically.
In the Result panel, you can see trust indices
Each text area contains one row of the trust indices matrix. Number of rows is equal to number of signals.