2010. 7. 20. 14:44

- majority voter를 일반화 시킨 voter이다.
- 필수적으로 과반수일 필요는 없다.
- 만약 과반수가 존재하지 않을 때 adjudicated된 결과로써의 variant 결과들의 합의값(consensus)을 선택한다.


7.1.4.1 Operation

consensus voter를 위한 adjudication algorithm은 다음과 같다.
n을 variants의 갯수로 놓는다.
만약 과반수의 동의가 있다면, 그리고 유일한 최대 일치값이 있다면(그러나 과반수보다는 적은 variants들의 일치), 그러면 그 유일한 최대값을 옳은 결과로 사용한다. 만약 과반수도 유일한 최대 일치도 없는데, 만약 최대 일치 수가 동일한 것이 존재한다면, 결과는 사용되어져온 기술에 의존하게된다. 만약 NVP를 사용한다면, 랜덤하게 그룸을 선택하고, 그의 답을 옳은 결과로 선택한다. 만약 consensus recovery block을 사용한다면, 모든 일치하는 결과의 그룹은 AT를 통해 보내지게 되며, 그 것이 옳은 결과로 사용된다. (예 참고)

예로 variant results (1.0, 3.0, 5.0, 3.0, 5.0) 이라면,

여기에 과반수는 없다. 
3.0이 두번, 5.0이 두번씩 동등하게 최대로 나타났음을 볼 수 있다.
유일한 최대 일치 수도 없다.
3.0과 5.0 중에 하나를 옳은 결과로 결정을 내려 사용을 하게 되는데,
이 때 NVP를 사용한다면, 이 것이 3.0이나 5.0 중에 하나를 랜덤하게 선택할 것이고, CRB를 사용한다면, AT를 이용하여 둘 중 하나를 선택하게 될 것이다.



Table 7.5는 간략하게 consensus voter를 사용한 예를 보여준다.
Table 7.6은 신드롬의 리스트이고, consensus voter를 사용한 결과를 제공한다.
여기에서 n은 5, A, B, C, D, E는 숫자 값이다.
심볼 Φ 은 상응하는 variant로부터 생산된 결과가 없다는 의미이다.
심볼 εi 는 variant result의 값에 상대적으로 매우 작은 값을 나타낸다.
Exception은 만약 옳은 결과가 결정되지 못하면 발생한다.

변수 Status는 voter의 상태를 나타내며, 그 예는 아래와 같다.


Status 예.

Status = NIL
. voter가 아직 variant의 결과를 다 시험하지 않았다.
. Status는 이 값으로 초기화 된다.
. voter로부터 되돌아온 Status가 NIL이라면, error가 adjudication중에 발생했다.
. 되돌아온 r*은 무시하라.

Status = NO CONSENSUS
. voter가 주어진 input variant results로부터 consensus를 찾을 수 없었다.
. 되돌아온 r*은 무시하라.

Status = SUCCESS
. voter가 processing을 마쳤고, consensus 결과 r*을 찾았다.







Discussion 생략.


'종합설계' 카테고리의 다른 글

Dynamic Majority and Consensus Voters  (0) 2010.07.20
Comparison Tolerances and the Formal Majority Voter  (0) 2010.07.20
(Weighted) Mean Voter  (0) 2010.07.18
Median Voter  (0) 2010.07.18
Exact Majority Voter  (0) 2010.07.16
Posted by 86824★14831