DST 크래쉬 코스
Dempster–Shafer Theory (DST) 는 다양한 증거를 결합하여 신념을 형성하는 방법을 제공합니다. 가능한 진술의 목록이 주어지면 (그중 하나가 정답 임), 가능한 진술의 각 조합 에는 증거의 정도를 나타내는 "질량"이 할당됩니다. 모든 조합의 총 질량은 항상 1과 같습니다.
이러한 대량 할당을 통해 해당 조합의 진실에 대한 합리적인 하한 (믿음) 및 상한 (타당성)을 만들 수 있습니다. bel(X)모든 집합 X 의 신념 은 모든 X의 부분 집합 (자체 포함)의 질량의 합입니다. pl(X)임의의 세트 X 의 타당성 은 "1-모든 세트의 질량의 합이 X에 분리되어 있음"입니다. 아래 다이어그램은 믿음과 타당성이 불확실성과 어떻게 관련되어 있는지 보여줍니다.
예를 들어 Green, Yellow 또는 Red 중 하나 일 수있는 신호등이 있다고 가정 해 봅시다 . 옵션 목록과 가능한 대량 할당은 다음과 같습니다.
binary interpretation m(X) bel(X) pl(x)
000 null 0 0 0
001 R 0.2 0.2 0.7
010 Y 0.1 0.1 0.3
011 Y||R 0.05 0.35 0.8
100 G 0.2 0.2 0.65
101 G||R 0.3 0.7 0.9
110 G||Y 0 0.3 0.8
111 G||Y||R 0.15 1 1
이러한 질량은 배열로 표시 할 수 있습니다 [0, 0.2, 0.1, 0.05, 0.2, 0.3, 0, 0.15].
이제 문제는 질량이 무엇인지 어떻게 결정합니까? 우리가 빛을보고있는 센서를 가지고 있고이 센서가 빛 이 녹색이 아니라는 것을 나타냅니다 . 그러나 센서가 임의의 스퓨리어스 신호를 전송했을 가능성이 20 %라는 것을 알고 있습니다. 이 증거는 [0, 0, 0, 0.8, 0, 0, 0, 0.2]{Y, R}의 질량이 0.8이고 {G, Y, R}의 질량이 0.2 인 질량 분포로 설명 할 수 있습니다 .
마찬가지로 일부 두 번째 센서는 빛이 빨간색 이 아니라고 표시 하지만 센서가 잘못되어 빛이 실제로 빨간색 일 가능성이 30 %라는 것을 알고 있습니다. 이 증거는 [0, 0.3, 0, 0, 0, 0, 0.7, 0]{G, Y}의 질량은 0.7이고 {R}의 질량은 0.3입니다.
이 두 가지 증거를 단일 질량 분포로 만들기 위해 Dempster의 조합 규칙을 사용할 수 있습니다.
뎀스터의 조합 규칙
두 질량 할당 m1및 m2형성하기 위해 결합 될 수있는 m1,2경우, 다음 식을 사용하여 A, B그리고 C(위의 테이블의 행) 가능한 조합을 나타낸다.
여기서 K는 정규화에 사용되는 "충돌"의 척도이며 다음과 같이 계산됩니다.
아래 이미지와 같이이 프로세스를 기하학적으로 설명 할 수도 있습니다. 경우 A = 011(황색 또는 적색)과 B = 101(녹색 또는 적색), 다음의 값 m1(A) * m2(B) 에 대한 기여는 의 값 (에 추가) m1,2(001)(빨간색). 이 과정은 가능한 모든 A와 B의 조합에 대해 반복된다 A&B != 0. 마지막으로 값이 총 1이되도록 배열이 정규화됩니다.
다음은 Dempster의 규칙에 따라 두 개의 배열을 결합하는 간단한 Java 메소드입니다.
public static double[] combine(double[] a, double[] b) {
double[] res = new double[a.length];
for (int i = 0; i < a.length; i++) {
for (int j = 0; j < b.length; j++) {
res[i & j] += a[i] * b[j];
}
}
for (int i = 1; i < res.length; i++) {
res[i] /= 1 - res[0];
}
res[0] = 0;
return res;
}
독립적으로 대중을 제공하는, 실제로이 작품은 위의 신호등 센서를 고려하는 방법을 참조하십시오 [0, 0, 0, 0.8, 0, 0, 0, 0.2]하고 [0, 0.3, 0, 0, 0, 0, 0.7, 0]. Dempster의 규칙을 수행 한 후 결과 관절 질량 은 [0, 0.3, 0.56, 0, 0, 0, 0.14, 0]입니다. 질량의 대부분은 "노란색"으로 할당되는데, 두 센서가 각각 "녹색이 아님"과 "빨간색이 아님"을 반환한다는 점에서 직관적입니다. 다른 두 질량 ( "빨강"의 경우 0.3, "녹색 또는 노란색"의 경우 0.14)은 측정의 불확실성으로 인한 것입니다.
도전
두 개의 실수 목록을 가져 와서 두 입력 목록에 Dempster의 규칙을 적용한 결과를 출력하는 프로그램을 작성하십시오. 두 개의 입력 목록의 길이는 같고 길이는 2의 거듭 제곱이되고 최소 4가됩니다. 각 목록에 대해 첫 번째 값은 항상 0이되고 나머지 값은 모두 음이 아니고 더해집니다. 최대 1 개
출력은 입력 목록과 길이가 같은 목록이어야합니다. 솔루션이 존재한다고 가정 할 수 있습니다 (증거와 K = 1이 완전히 충돌하는 경우 솔루션이 존재하지 않을 수 있음). 정밀도를 최소로 요구하려면 소수점 이하 네 자리로 반올림 할 때 정확한 결과를 생성 할 수 있어야합니다.
예제 I / O
in:
[0, 0, 0, 0.8, 0, 0, 0, 0.2]
[0, 0.3, 0, 0, 0, 0, 0.7, 0]
out:
[0.0, 0.3, 0.56, 0.0, 0.0, 0.0, 0.14, 0.0]
in:
[0.0, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.4]
[0.0, 0.2, 0.0, 0.2, 0.0, 0.2, 0.0, 0.4]
out:
[0.0, 0.2889, 0.0889, 0.1556, 0.0889, 0.1556, 0.0444, 0.1778]
in:
[0.0, 0.0, 0.5, 0.5]
[0.0, 0.7, 0.1, 0.2]
out:
[0.0, 0.53846, 0.30769, 0.15385]
in:
[0.0, 0.055, 0.042, 0.098, 0.0, 0.152, 0.0, 0.038, 0.031, 0.13, 0.027, 0.172, 0.016, 0.114, 0.058, 0.067]
[0.0, 0.125, 0.013, 0.001, 0.012, 0.004, 0.161, 0.037, 0.009, 0.15, 0.016, 0.047, 0.096, 0.016, 0.227, 0.086]
out: (doesn't have to be this precise)
[0.0, 0.20448589713416732, 0.11767361551134202, 0.028496524069011694, 0.11809792349331062, 0.0310457664246791, 0.041882026540181416, 0.008093533320057205, 0.12095719354780314, 0.11306959103499466, 0.06412594818690368, 0.02944697394862137, 0.06398564368086611, 0.014369896989336852, 0.03774983253978312, 0.006519633578941643]
in:
[0.0, 0.0, 0.1, 0.1, 0.0, 0.0, 0.0, 0.1, 0.1, 0.1, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1, 0.0, 0.0, 0.1, 0.0, 0.1, 0.1, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1, 0.0, 0.0, 0.0, 0.0]
[0.0, 0.0, 0.1, 0.0, 0.1, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1, 0.0, 0.0, 0.1, 0.0, 0.0, 0.0, 0.1, 0.1, 0.0, 0.0, 0.0, 0.1, 0.0, 0.0, 0.1, 0.0, 0.0, 0.1, 0.0, 0.1, 0.0]
out:
[0.0, 0.09090909090909094, 0.23376623376623382, 0.0, 0.07792207792207795, 0.025974025974026, 0.03896103896103895, 0.0, 0.10389610389610393, 0.05194805194805199, 0.02597402597402597, 0.0, 0.012987012987012984, 0.012987012987012993, 0.012987012987012984, 0.0, 0.09090909090909094, 0.038961038961038995, 0.06493506493506492, 0.0, 0.07792207792207796, 0.0, 0.0, 0.0, 0.012987012987012984, 0.012987012987013, 0.012987012987012984, 0.0, 0.0, 0.0, 0.0, 0.0]




