선물포장알고리즘
Gift wrapping algorithm계산 기하학에서 선물 포장 알고리즘은 주어진 점 세트의 볼록 선체를 계산하기 위한 알고리즘이다.
플라나 케이스
2차원 사례에서 알고리즘은 1973년에 그것을 발표한 R. A. 자비스 다음에 자비스 행군이라고도 알려져 있다. 여기서 n은 점의 수, h는 볼록 선체의 점의 수인 O(nh) 시간 복잡성을 가진다. n이 작거나 h가 n에[citation needed] 비해 매우 작을 것으로 예상될 때 다른 볼록한 선체 알고리즘에 비해 실제 성능이 유리하다. 일반적으로 알고리즘은 다른 많은 경우에 비해 월등히 우수하다(See Concolfx shell alography).
알고리즘.
단순성을 위해 아래 설명에서는 점들이 일반적인 위치에 있다고 가정한다. 즉, 3개의 점들이 일직선으로 되어 있지 않다. 알고리즘은 극한점(볼록 선체의 수위)만 보고해야 하는지 볼록 선체에[citation needed] 놓여 있는 모든 지점을 보고해야 하는지를 포함하여 공선성을 다루기 위해 쉽게 수정할 수 있다. 또한 완전한 구현은 컴퓨터 연산 및 입력 데이터 둘 다에서 볼록한 선체가 정점 1, 2개에 불과한 퇴행적인 경우뿐만[how?] 아니라 산술 정밀도 제한적인 문제도 다루어야 한다.
선물 포장 알고리즘은 i=0과 볼록 선체에 있는 것으로 알려진 p점0(예: 가장 왼쪽 점)으로 시작하고 모든 포인트가 선 p의ii+1 오른쪽에 있도록 p점을i+1 선택한다. 이 점은 극좌표 중심 p점에i 대해 모든 점의 극 각도를 비교하여 O(n) 시간에 찾을 수 있다. i=i+1을 놔두고 다시h p=p에0 도달할 때까지 반복하면 볼록한 선체가 h계단으로 나온다. 2차원에서 선물포장 알고리즘은 점 집합을 중심으로 끈(또는 포장지)을 감는 과정과 유사하다.
접근은 더 높은 차원으로 확장될 수 있다.
가성음
알고리즘 jarvis(S)는 // S 지점의 집합이다 // P는 볼록 선체를 형성하는 지점의 집합이다. Final set size is i. pointOnHull = leftmost point in S // which is guaranteed to be part of the CH(S) i := 0 repeat P[i] := pointOnHull endpoint := S[0] // initial endpoint for a candidate edge on the hull for j from 0 to S do // endpoint == pointOnHull is a rare case and can happen only when j == 1과 (endpoint == pointOnHull) 또는 (S[j]가 p[i]에서 endpoint의 왼쪽에 있는 경우) endpoint := S[j] // 더 큰 왼쪽 턴을 찾은 다음 endpoint i := i + 1 pointOnHull = 첫 번째 헐로 쌈할 때까지 endpoint i를 업데이트하지 않은 경우 더 나은 끝점은 아직 설정되지 않았다.l 포인트
복잡성
내부 루프는 설정된 S의 모든 지점을 확인하고, 외부 루프는 선체의 각 지점에 대해 반복된다. 따라서 총 실행 시간은 ( ) 입니다 실행 시간은 출력 크기에 따라 달라지기 때문에 자비스의 행진은 출력에 민감한 알고리즘이다.
그러나 가동 시간은 선체의 정점 수에 따라 선형적으로 달라지기 때문에, 선체의 정점 수 h가 로그 n보다 작을 때 그레이엄 스캔과 같은 O log n 알고리즘보다 빠를 뿐이다. 또 다른 볼록한 선체 알고리즘인 챈의 알고리즘은 그레이엄 스캔의 로그 의존도와 선물 포장 알고리즘의 출력 민감도를 결합해 그레이엄 스캔과 선물 포장 모두에서 개선된 점증적 작동 시간 O h h를 달성한다.
참고 항목
참조
- Cormen, Thomas H.; Leiserson, Charles E.; Rivest, Ronald L.; Stein, Clifford (2001) [1990]. "33.3: Finding the convex hull". Introduction to Algorithms (2nd ed.). MIT Press and McGraw-Hill. pp. 955–956. ISBN 0-262-03293-7.
- Jarvis, R. A. (1973). "On the identification of the convex hull of a finite set of points in the plane". Information Processing Letters. 2: 18–21. doi:10.1016/0020-0190(73)90020-3.