휴리스틱 함수로 사용될 때 맨해튼 거리는 단조로운가?


25

정사각형지도가 있습니다. 수평 및 수직 이동 만 허용됩니다 (대각선 없음). 이동 비용은 항상 1입니다.

맨해튼 거리 를 거리 휴리스틱으로 사용하여 해당 맵에서 A * 알고리즘을 구현 하고 있습니다. 이 휴리스틱은 일관됩니까? g(node)CLOSED 세트에있는 노드에 대한 점검 을 피할 수 있습니까 ?

편집 : 일관성으로 나는 단조로운 것을 의미합니다.


1
당신의 이동 비용이 모든 타일에 걸쳐 균일 한 경우와 A * 대체 할 수있는 점프 포인트 검색
닉 Caplinger

이봐, 멋지다!
Emiliano 2016 년

답변:


10

실제로 귀하의 질문에 대답하기 위해 : 가중 그리드를 따라 수직 / 수평으로 이동하도록 제한 되어 있을 때 manhatten 거리가 일관 됩니다 (wikipedia의 정의에 쉽게 표시 될 수 있음) . 따라서 귀하의 경우 닫힌 세트에서 노드를 다시 확인하지 않아도됩니다.

그러나 대각선 또는 모든 각도 이동을 허용하면 대각선 거리를 과대 평가하기 때문에 Manhatten 거리가 허용 되지 않습니다. 이는 반드시 일관성이 없음을 의미합니다.


예, 이것은 내가 찾던 정답입니다. 휴리스틱 함수가 h(x) = min(manhattan(p1), manhattan(p2))(즉, p1 또는 p2가 좋은 종료 점이고 가장 가까운 도달점에 도달하려는 경우) 어떻게되는지 아는 것이 좋을 것 입니다. 이것은 h(x)여전히 단조로운가?
Emiliano 2016

1
@happy_emi : 경우 예 h(x, p1)h(x, p2)일치하고 min(h(x,p1), h(x,p2))도 일치합니다. 이 위키 피 디아의 정의에서 보여 쉽게 (우리는 것을 보여해야합니다 min(h(x, p1), h(x, p2)) <= distance(x,y) + min(h(y, p1), h(y, p2))모든 노드 xy. 그들 사이의 가장자리 이제 가정 h(x, p1)최소한, 당신이 확실히 있다고 보여줄 수있는 <=사실이를 사용하여, 오른쪽 두 휴리스틱이 일관됩니까?)
BlueRaja-Danny Pflughoeft

31

예, 두 점 사이의 맨하탄 거리는 항상 두 점 사이의 일반 거리와 같습니다. 맨해튼 거리는 두 점 사이를 잇는 선의 X 및 Y 구성 요소라고 생각할 수 있습니다.

이 이미지 ( Wikipedia )는 이것을 잘 보여줍니다.

맨해튼 거리

녹색 선은 실제 거리입니다.

청색 , 적색황색 라인 모두 동일한 맨해튼 거리 (12 단위)를 나타낸다. 왼쪽 아래에서 오른쪽 아래로 이동 하는 움직임의 위와 오른쪽의 조합에 관계없이 동일한 총 맨해튼 거리를 얻게됩니다.


2
좋은 대답 : 짧고 달콤하고 요점과 예쁜 그림.
Tom 'Blue'Piddock 2016 년

1
이 답변은 가깝지만 올바르지 않습니다. 이 이미지는 맨해튼 거리가 일정 하다는 것을 보여주지 않으며 (실제로 녹색 선을 거리로 간주하면 일관성 이 없습니다 !) 노드가 "맨해튼 거리 사이에 있기 때문에 노드를 다시 확인할 필요가 없습니다 " 두 점은 항상 동일하다 "주장 하지 않는다 (구문도 사실이며 h(x) = 1000, 이는 일관성이 없다) . 그는 의 노드를 다시 검사하지 않도록하지만, Manhatten에 거리가 일치하는 경우에만 있기 때문에,이 답변이 표시되지 않는다.
BlueRaja-대니 Pflughoeft

2
나는 당신이 연결 한 정의에 의해 맨해튼 거리가 일정하다고 믿습니다. 녹색 선 거리는 다른 휴리스틱을 사용합니다. 빨간색, 파란색 및 노란색 선은 두 노드 사이의 거리가 동일하게 유지됨을 나타냅니다 (같은 휴리스틱을 사용하는 경우). 가까이 다가 가면 휴리스틱이 줄어들고 멀어 질수록 휴리스틱이 증가합니다. 이는 OP의 단조로운 요구 사항을 충족합니다. 그래프가 구성 될 때 각 "교차점"에 노드가 있으면 맨해튼 거리가 일정합니다. 대각선 이동 허용과 같은 다른 시나리오 인 경우 휴리스틱이 나쁩니다.
MichaelHouse

2
나는 이미 Manhatten Distance가 일관성이 있지만 언급 한 이유가 아니라고 말했습니다. 귀하의 답변은 일관성을 나타내지 않으며 의견에 대한 귀하의 주장도 아닙니다. "일관된 / 모노톤 휴리스틱"은 정확한 정의 (위의 링크에서 제공됨) 를 가지고 있는데, 혼동하는 것처럼 보이는 모노톤 함수 와 다릅니다 . 진술 "가까이 이동하는 휴리스틱을 줄이고 멀리 이동하는 것은 발견이 증가한다" 는 예를 들어, 일관된 보여주기 위해 충분하지 않습니다. 2*manhatten이를 만족하지만 일관성이 없습니다.
BlueRaja-대니 Pflughoeft

3
왜 당신이 틀렸다고 말했는지 모르겠다. 당신은 이 답변이 불완전하다고 주장하는 것처럼 보인다 . 대답의 증거는 "약간의 거리가 일정합니다 ..."와 같이 약한 것처럼 보입니다. 그런 다음 시나리오가 다른 경우 어떻게 받아 들일 수 없는지에 따라 질문의 원래 사양을 반복하십시오. . 나는 대답이 완전한 수학적 증거를 보증하는 것처럼 느끼지 않았다. 이 질문에 해당 내용이 필요하다고 생각되면 답변에 포함시켜 주시면 투표하겠습니다. 건설적인 비판에 감사드립니다.
MichaelHouse

6

Byte56의 대답의 확장에서 나는 특정 데이터 세트에서 사용하는 것을 지적하고 싶습니다 맨하탄 거리를 당신의 휴리스틱 함수로하는 것은 실제로 항상있을 것입니다 완벽한 발견 이 항상 반환한다는 점에서 실제 경로 비용 이 가정 ( 경로를 "차단"하는 것은 없습니다).

또한 올바른 방향 (수평 또는 수직)의 모든 노드는 목표에 동일한 경로가 많기 때문에 동일한 예상 거리를 산출합니다. 우선 순위 대기열 (오픈 세트)은 우선 순위가 묶인 경우 가장 최근에 추가 된 노드를 먼저 큐에서 제거해야합니다 (LIFO-Last In First Out). 그렇게함으로써 최적의 경로로 끝나는 노드 만 검사합니다 . FIFO (선입 선출) 방식으로 동일하게 적합한 노드를 검사 하면 최상의 경로에 속하는 모든 노드를 효과적으로 검사 하게 됩니다. 목표 노드에 동일한 경로가 여러 개 있기 때문에이 문제가 발생합니다.


"(경로를 막는 것이 없다고 가정)" -그것은 꽤 큰 가정입니다. 경로를 막는 것이 없다면 경로 찾기 알고리즘을 시작할 필요가 없습니다!
BlueRaja-대니 Pflughoeft

@ BlueRaja-DannyPflughoeft : Byte56의 이미지를 볼 때 나타나는 생각이었습니다. 그럼에도 불구하고 나머지는 사실이다.
Thorkil Holm-Jacobsen 2018

4

"항상"일관성이 무엇을 의미하는지 잘 모르겠습니다. 고정 그리드에서 맨해튼 거리가 경로와 무관합니까? 예, Byte56의 답변이 말했듯이.

그러나 예를 들어 맨해튼 거리는 회전시 변하지 않습니다. 예를 들어, 원점과 점 사이 의 맨해튼 거리 ( L1-norm ) (10,10)|10-0| + |10-0| = 20입니다. 그러나 좌표를 45도 회전하면 (고정 점이 그리드의 방향 중 하나를 따릅니다) 이제 같은 점이에 (10sqrt(2),0)있고 맨해튼의 원점과 거리가 10sqrt(2)~14.14있습니다.


이것을 지적 +1; OTOH, 맨해튼 거리 입니다 정말 이산 그리드 '일관되게'할 수있는 유일한 사람 90도 회전, 아래 불변.
Steven Stadnicki 2016 년

1
잘 잡았지만 가로 및 세로 이동 만 허용된다고 언급했습니다.
Thorkil Holm-Jacobsen

1
원래의 질문은 단조로 일관된 것에 관한 것이었다.
Emiliano 2016 년
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.