소식을 거절한 잠수함을 베이즈 추정으로 찾기
배경
1968년에 미국 해군의 잠수함 스코피온호이 소식을 거쳤습니다. 이때의 수색에 사용된 것이 베이즈 추정을 이용한 베이즈 수색(Bayesian Search)입니다. 비행기나 그 블랙박스 등의 수색에도 사용됩니다.
변수 정의
먼저 수색 영역을 셀로 정의합니다. 여기에서는 간이적으로 20x20의 에리어로 합니다. 이것에 항로나 최종 보고된 위치 등의 정보로부터, 그 셀마다의 추량의 발견 확률을, 사전 확률로서 이하와 같이 확립 분포로 표현합니다. 제 경우에는 정규 분포로 표현했습니다. 빨간색 X는 실종된 수색 대상입니다.
이제 다음과 같이 변수를 정의합니다.
변수 이름
의미
$i$
셀의 인덱스. 위에서 나타낸 수색 대상의 경우 $i=(16,10)$로 표현한다.
$Y_i$
i에 수색 대상이 있는지 여부의 진정한 가치. 있는 경우 1. 없는 경우 0.
$\pi_i$
위의 추측의 사전 확률. $P_r(Y_i=1)$
$Z_i$
i를 수색한 결론. 발견되면 1. 없는 경우 0. Yi=1인 경우에 발견되지 않았던 경우도 0.
$p_i$
i에 수색 대상이 있었을 경우의 발견 확률. $P_r(Z_i=1|Y_i=1)$. 이 예에서는 어느 셀도 일률적으로 0.1로 한다. 실제로는 해저까지의 깊이 등으로 셀마다 변경된다.
$p_i$를 정의하고 있는 바와 같이, 이 추정의 포인트는 거기에 수색 대상이 있었다고 해도, 수색반의 능력 부족등에 의해 발견되지 않는 경우를 고려하고 있는 것입니다.
자, 실제 수색으로 넘어갑시다.
검색 알고리즘
먼저 수색 영역을 셀로 정의합니다. 여기에서는 간이적으로 20x20의 에리어로 합니다. 이것에 항로나 최종 보고된 위치 등의 정보로부터, 그 셀마다의 추량의 발견 확률을, 사전 확률로서 이하와 같이 확립 분포로 표현합니다. 제 경우에는 정규 분포로 표현했습니다. 빨간색 X는 실종된 수색 대상입니다.
이제 다음과 같이 변수를 정의합니다.
변수 이름
의미
$i$
셀의 인덱스. 위에서 나타낸 수색 대상의 경우 $i=(16,10)$로 표현한다.
$Y_i$
i에 수색 대상이 있는지 여부의 진정한 가치. 있는 경우 1. 없는 경우 0.
$\pi_i$
위의 추측의 사전 확률. $P_r(Y_i=1)$
$Z_i$
i를 수색한 결론. 발견되면 1. 없는 경우 0. Yi=1인 경우에 발견되지 않았던 경우도 0.
$p_i$
i에 수색 대상이 있었을 경우의 발견 확률. $P_r(Z_i=1|Y_i=1)$. 이 예에서는 어느 셀도 일률적으로 0.1로 한다. 실제로는 해저까지의 깊이 등으로 셀마다 변경된다.
$p_i$를 정의하고 있는 바와 같이, 이 추정의 포인트는 거기에 수색 대상이 있었다고 해도, 수색반의 능력 부족등에 의해 발견되지 않는 경우를 고려하고 있는 것입니다.
자, 실제 수색으로 넘어갑시다.
검색 알고리즘
$\pi_i\leftarrow\frac{(1-p_i)\pi_i}{1-p_i\pi_i} $
i 이외의 셀 j의 경우 :
$\pi_j\leftarrow\frac{\pi_j}{1-p_i\pi_i}$
사전 확률 갱신의 모습
1000 스텝을 5 스텝 날림으로 그립니다. 파란 점이 그 단계에서 검색 대상으로 한 셀입니다. 빨간색 X를 검색해도 처리를 마치지 않은 이유는 $p_i$가 0.1이기 때문입니다. 10회에 1회에 수색 성공의 판정이 됩니다.
발견되었는지 여부는별로 중요하지 않으므로 끝까지 표시하지 않습니다. 시간이 있을 때 전체 탐색과의 퍼포먼스 비교를 해 봅니다.
고찰
인간이
「대체 여기 편에 있을 것」
라고 하는 추측 정보를 사용해, 그 근처에서 어딘지 모르게 순서대로 수색하는 경우도,
"저기, 이상하구나. 이렇게 추측에서 벗어나 있는 장소에 있는 것은 없어.
또 그 근처에서 찾을까」
라고 하는 상태에, 에리어를 전수색하는 것이 아니라, 어느 정도 수색 끝나면 또 예측 지점으로부터 수색을 스타트한다고 하는 움직임이 된다고 생각합니다.
그래서 위의 GIF 이미지에서,
베이즈 수색은 그것을 더 낭비 없이 합리적으로 하는 방법이라고 생각했습니다.
위의 GIF 결과를 보면, 수색점이 셀의 위치적으로 아치라 코치라를 접하고 있으므로, 실제로 수색하는 경우는
셀내의 검색시간 >> 셀간의 이동시간
그렇지 않으면 발견까지의 시간이 낭비로 길어지네요.
코드
아래로 올렸습니다.
참고문헌
Reference
이 문제에 관하여(소식을 거절한 잠수함을 베이즈 추정으로 찾기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/bunnyhopper_isolated/items/a2550310344e07f46722
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
인간이
「대체 여기 편에 있을 것」
라고 하는 추측 정보를 사용해, 그 근처에서 어딘지 모르게 순서대로 수색하는 경우도,
"저기, 이상하구나. 이렇게 추측에서 벗어나 있는 장소에 있는 것은 없어.
또 그 근처에서 찾을까」
라고 하는 상태에, 에리어를 전수색하는 것이 아니라, 어느 정도 수색 끝나면 또 예측 지점으로부터 수색을 스타트한다고 하는 움직임이 된다고 생각합니다.
그래서 위의 GIF 이미지에서,
베이즈 수색은 그것을 더 낭비 없이 합리적으로 하는 방법이라고 생각했습니다.
위의 GIF 결과를 보면, 수색점이 셀의 위치적으로 아치라 코치라를 접하고 있으므로, 실제로 수색하는 경우는
셀내의 검색시간 >> 셀간의 이동시간
그렇지 않으면 발견까지의 시간이 낭비로 길어지네요.
코드
아래로 올렸습니다.
참고문헌
Reference
이 문제에 관하여(소식을 거절한 잠수함을 베이즈 추정으로 찾기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/bunnyhopper_isolated/items/a2550310344e07f46722
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(소식을 거절한 잠수함을 베이즈 추정으로 찾기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/bunnyhopper_isolated/items/a2550310344e07f46722텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)