다각형 일반화 문제 내의 다각형


9

아래의 모든 게시물에 사과하고 싶습니다. 원래 게시 할 포럼을 잘못 선택했습니다. 그러나 이것을 완전한 낭비로 만들기보다는이 문제를 진정한 "이론적 컴퓨터 과학"문제로 재 작업했습니다.

문제 : 2D 평면에서 n 개의 정렬 된 점 집합을 가져와 오목하거나 생길 수없는 간단한 다각형 A의 윤곽을 형성하고 m 개의 점으로 새로운 다각형 B를 만드는 알고리즘을 만듭니다.

  1. A의 모든 포인트는 B 내에 포함됩니다
  2. 3 <= m <n
  3. B는 가장 작은 면적을 가진 모든 B 세트의 다각형입니다.
  4. B는 단순한 다각형이어야합니다 (즉, 자체 교차가 없어야 함).
  5. 알고리즘의 입력은 다각형 A와 "m"입니다.
  6. B의 세그먼트와 A의 세그먼트가 일치 할 수 있습니다.

일부 예제 입력 및 예상 출력 :

  1. A가 정사각형이고 m이 3이면 B는 A를 포함하는 표면적이 가장 작은 삼각형이됩니다.
  2. A가 육각형이고 m이 4이면 B는 A를 포함하는 가장 작은 표면적을 갖는 사변형입니다.

이 문제를 시도하는 모든 사람에게 행운을 빕니다. 특히 솔루션이 최적이어야하므로 이것이 매우 어려울 것이라고 약속 할 수 있습니다.


1
@Joe : 사실이 아님 : A가 정사각형 인 경우 Thirian은 A를 포함하는 최소 면적 삼각형을 요구합니다. 반면에 A가 삼각형 인 경우 (n=) 그런 다음 실제로 유효한 해결책이 없습니다.
Jeffε

3
첫 번째 코멘트에 17을 추가하십시오. 왜 20?
Jeffε

3
FFT가 "복잡한"에 대한 낮은 임계 값이 아닙니까?
Sasho Nikolov

2
m = 3으로 설정하면 문제가 전혀 바뀌지 않는다는 것이 전적으로 사실이라고 생각하지 않습니다. 문제는 m에서 시간 지수가 필요할 수 있다는 것입니다. m이 입력의 일부이면 좋지 않습니다.
Suresh Venkat

5
"문제가 무엇인지 아는 사람"은 사실이 아닙니다. 지정되지 않은 선택은 차이가 있기 때문에 묻습니다.
Suresh Venkat

답변:


10

다각형의 모양을 모르지만 Ramer–Douglas–Peucker 알고리즘 의 단순화 된 버전 이면 충분합니다.

  • 볼록한 부분에 대해 면적을 계산제이 삼각형 중 나는나는+1나는+2 3 개의 연속 점에 의해 형성되고;
  • 오목 부분에 대해 면적을 계산케이 두 삼각형 중 나는나는'나는+1나는+1나는+2'나는+2 두 점의 확장에 의해 형성 나는,나는+2 그리고 중간 점 나는+1
  • 계산 미디엄나는{제이,케이} 대응하는 포인트 (및 오목 부에서 동작이 수행되는 경우 시프트 포인트)를 삭제하고;
  • 까지 반복 미디엄 포인트가 삭제되었습니다.

여기에 이미지 설명을 입력하십시오
다각형의 경계 (제이 녹색 삼각형, 케이빨간색 삼각형). 오른쪽 두 지점을 제거한 후 테두리.

더 복잡한 알고리즘의 경우 " 다각형 일반화 기술 "을 검색 할 수 있지만 첫 번째 조건 (A의 점은 B에 포함됨)에는 몇 가지 추가 스케일링 작업이 포함됩니다.


@Suresh : 나는 확신 현재 4 upvotes가 아니라 (거의 사소한) 알고리즘 :)를 들어, 투명성 있다고 해요
MARZIO 드 BIASI

1
이것은 Ramer-Douglas-Peucker 알고리즘과 같은 문제를 겪습니다. 출력은 단순한 다각형이 보장되지 않습니다!
Jeffε

1
@Jeffe : 맞습니다. (다각형이 복잡한 경우에는 최적의 거리와는 거리가 먼) 단순화를 피할 수 있습니다 . 마지막으로 제거해야하는 다른 점이 있지만 단순하지 않은 다각형을 피할 수없는 경우 충돌 해결 방법을 사용하십시오 (예 : 교차점 계산 및 "구멍"을 완전히 버림). 그러나 OP에서 실제 예를보고 싶습니다.
Marzio De Biasi

1
@MarzioDeBiasi 작동 할 수도 있습니다. 그러나 그렇지 않을 수도 있습니다. 나는 당신이 묘사하는 모든 단순화가 자기 교차를 일으킬 수 있다고 생각합니다 . 그리고 "루프를 던지는 것"은 상황을 나쁘게 만들 수 있습니다. 이것은 아마도 훌륭한 솔루션 일 것입니다. 그러나 우리가 어디에 있는지 기억하십시오!
Jeffε

감사합니다 Marzio, 나는 이제 적어도 이런 종류의 문제가 무엇인지 지금 알고 있습니다! 슬프게도 당신이 준 해결책은 (3)과 (4)가 내 제안한 해결책에 있으며 (4) 문제가 있습니다. 매우 뻗어 있고 대략 30도 이하의 각도를 가진 날카로운 팁을 가진 립은 요구 사항을 쉽게 위반할 것입니다 (1).
Thirlan April

6

나는 오래 전에 포인트 세트 (또는 다각형)를 둘러싸는 가장 작은 면적의 삼각형을 찾기위한 선형 시간 알고리즘을 자세히 설명하는 논문을 썼습니다.

J. O'Rourke, Alok Aggarwal, Sanjeev Maddila, Michael Baldwin, "최소 엔 클로징 삼각형을 찾기위한 최적의 알고리즘", J. Algorithms , 1986, 7 : 258--269. 링크 .

우리의 작업에는 일반적인 알고리즘이 뒤따 랐습니다.

"폴리곤을 둘러싸고있는 최소 면적"Alok Aggarwal, JS Chang 및 Chee K. Yap, The Visual Computer , Volume 1, Number 2 (1985), 112-117. 링크 .

Google Scholar를 사용하여 개선 및 관련 작업을 찾기 위해 인용 한 이후의 논문을 추적 할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.