평면의 n 지점 세트가 o (nlogn) 시간에 볼록한 n 다각형을 형성하는지 테스트


13

평면에 n 개의 점이 주어졌고 볼록한 n 다각형을 형성하는지 여부, 즉 모두 볼록 껍질에 있는지 확인하려고한다고 가정합니다. 누군가가 o (nlogn) 시간에, 즉 CH를 계산하지 않고이 작업을 수행하는 방법을 알고 있는지 궁금합니다.


O (n log n) 시간으로 볼록 껍질을 계산할 수 있습니다. 그보다 적은 시간 에 할 수 있다면 말입니까?
당 Vognsen

예,이 문제에 대한 선형 시간 알고리즘이 있어야한다고 생각합니다. 그러나 나는 방법을 모른다
Babis Tsourakakis

4
그는 O (nlogn)가 아닌 o (nlogn)을 썼으므로 그의 질문은 정확합니다.
시바 킨 탈리

1
나는 작은 o 표기법을 사용하므로 질문은 그대로 유지됩니다.
Babis Tsourakakis

4
사용중인 계산 모델에 대한 명시 적 진술없이 Θ (n log n) 시간이 걸리는 것으로 표시된 숫자 정렬 (또는 동등한 데카르트 점 선체)을 볼 수 있습니다. 비교 정렬에는 Θ (n log n) 시간이 걸리지 만 비교 모델에서는 선체를 전혀 계산할 수 없습니다. 대수 의사 결정 트리의 경우 여전히 Θ (n log n) 시간이지만 (허용 된 답변에서 볼 수 있듯이) 실제 컴퓨터와 더 유사한 계산 모델에서는 더 빠릅니다.
David Eppstein

답변:


17

적어도 비교 / 대수 트리 모델에서는 그럴 것 같지 않습니다. 먼저 정의 :

점 집합 어떠한 경우 볼록 점 위치에있는 나머지 점의 볼록 조합으로 기록 될 수 없다 .P PPPP

이제 숫자 집합 이 모두 고유 한지 확인하려면 시간이 걸립니다 (UNIQUENESS라고 함). 이러한 숫자 세트가 주어지면 점 세트 반복되는 숫자가 없으면 점은 볼록한 위치에 있습니다.Ω ( n log n ) n X P = { ( x , x 2 ) | x X } .nΩ(nlogn)nX

P={(x,x2)|xX}.

반복되는 숫자가있는 경우,이 반복 된 숫자는 나머지 점의 볼록한 조합으로 기록 될 수있는 점에 해당합니다. 즉, 포인트가 볼록한 위치에 있지 않습니다.

즉, 점 세트가 볼록한 위치에 있는지를 결정하는 것은 UNIQUENESS만큼 어렵습니다.


12
X[i](X[i],X[i]2+i/n2) . 원래 배열 X에 복제본이있는 경우 결과 점은 볼록 껍질 내부에 하나 이상의 점이 있습니다. 그렇지 않으면 점이 볼록한 위치에 있습니다.
Jeffε

1
@Babis : 중복 점이 허용되지 않으면 Jeff의 축소가 작동합니다. 축소에 의해 생성 된 포인트는 초기 배열이 무엇이든 고유합니다.
Vinayak Pathak

따라서 두 점이 동일한 x 좌표를 갖지 않는 경우에만 볼록 껍질의 모서리 수는 n과 같습니다. 고마워요, 처음에는 정렬하는 것보다 쉬워야한다고 생각했습니다.
Babis Tsourakakis

Vinayak에게 감사합니다. 위의 내용으로 대체했던 이전의 의견을 게시 할 때 동시에 게시 된 이후 Jeff의 감소를 보지 못했습니다.
Babis Tsourakakis

2
Suresh, 나는 "표준 모델"이라는 문구에 동의하지 않습니다. 바로 이것이 바로 워드 RAM입니다. :) 실제 컴퓨터와 가장 일치하는 모델이며 대부분의 TCS에서 알고리즘을 분석하는 데 사용합니다. Geometry는 Real RAM을 사용하여 예외적 인 문제를 처리 할 필요가 없도록 예외를 요구했습니다. 그러나 그것은 "표준 모델"이 아닙니다.
Mihai

-1

O(nlogn)

점의 순서를 알면 시퀀스의 각 점에서 다음 점까지의 각도는 단조로운 것이어야합니다. 이것은 필요한 조건을 형성하고 충분한 것으로 생각합니다.

내부 포인트를 얻는 것은 독자를위한 연습으로 남습니다.


O(nlogn)


내가 한 것처럼 그의 o (n log n)를 O (n log n)로 잘못 읽었을 것입니다. 어쨌든, 당신이 설명한 알고리즘은 배아 형태의 선물 포장입니다. 실제로 내부 지점을 사용할 필요는 없습니다. 경계에있는 점 (예 : 최소 x 좌표의 점)을 사용할 수 있습니다.
Per Vognsen

O(nlogn)o()
BCS

요점은 O (n log n)에서 실행되는 많은 볼록 껍질 알고리즘이 있다는 것입니다. 알고리즘은 기본적으로 오래된 선물 포장입니다. 그는 선형 시간과 같이 더 빠른 것을 요구하고있었습니다. 다른 응답을보십시오.
당 Vognsen

1
편집과 관련하여 위의 답변을 볼 수 있으면 문제가 O (n log n) 하한을 갖는 요소 고유성과 동일하다는 것을 알 수 있습니다.
당 Vognsen

2
@ BCS : Sariel Har-Peled의 대답에 대해 약간의 오해가 있다고 생각합니다. 감소는 다른 방향이 아니라 독창성에서 볼록한 위치 테스트까지입니다. 즉, Sariel (및 JeffE)은 일련의 숫자가 주어지고 고유성을 테스트하려는 경우이를 일련의 점으로 변환하고 볼록한 위치 테스트에 알고리즘을 사용할 수 있다고 말했습니다.
Ito Tsuyoshi
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.