다음 문제에 대한 알고리즘을 완료하십시오. 2D 평면에서 n 점의 집합 S가 주어지면 x1> x2이면 점 (x1, y1)이 다른 점 (x2, y2)을 지배하고 y1> y2이다. M이 S의 부분 집합이고 M의 다른 점이 S의 다른 점에 의해 지배되는 점 M의 가장 큰 집합을 찾습니다.최대 비 지배 집합 알고리즘
답변
x 좌표를 증가시켜 모든 점을 정렬하십시오. 두 점의 x 좌표가 같으면 y 좌표를 줄여 정렬합니다. 이제, y 좌표가 정렬 순서에서 증가하지 않는 경우에만 하위 점 집합이 비 지배적임을 나타낼 수 있습니다. 즉, 각 y 좌표는 하위 시퀀스의 이전 좌표와 같거나 작습니다.
그래서 알고리즘은 다음과 같습니다- 정렬 점을 상기 한 바와 같이. 시간 : O (n * logn).
- y 좌표의 가장 길지 않은 증가하지 않는 서브 시퀀스를 찾습니다. 시간 : O (n * logn). 이것은 longest increasing subsequence을 찾는 알고리즘을 적용하여 수행 할 수 있습니다.
이것은 O (n * logn)에서 가능한 가장 큰 세트를 제공합니다.
나는 # 2가 "가장 길지 않은 증가하지 않는 서브 시퀀스"를 요구해야한다고 생각한다. 그렇지 않습니까? –
@JanDvorak 당신은 정확합니다, 고마워요. – interjay
실제 문제는 M의 어떤 점도 S의 다른 점에 의해 지배되지 않는다고 묻습니다. – user1256960
O (n * logn) 시간에이를 수행하는 분할 및 정복 알고리즘이 있습니다.
포인트를 x 좌표에 따라 각각 n/2 크기의 두 개의 절반으로 나눕니다. 우리는 비 지배적 인 점 집합을 양쪽 반에서 찾는다. 오른쪽 반쪽에있는 모든 비 지배 포인트가 최종 목록에 존재한다는 것을 관찰해야합니다.
이 관찰을 통해 우리는 결합 단계를 작성할 수 있습니다. 오른쪽에 비 지배 집합에있는 지점의 가장 높은 y 좌표보다 y 좌표가 낮은 왼쪽 절반에있는 모든 비 지배 지점을 제거합니다 절반. 비 지배 점 집합이 있습니다.
알고리즘 : 시간
Find the median along x axis - O(n) time
Find non-dominated points in the right half - T(n/2)
Find non-dominated points in the right half - T(n/2)
set of non-dominated points could be on O(n) so, the combine step might have to check O(n) points
식 :가
T(n) = 2T(n/2) + O(n) which is O(n*logn)
넌 O이 더욱 향상시킬 수있다 (N * logH) H 비 지배 점의 개수 , 문제에 대한 더 많은 통찰력이 필요하며 작업을 진행하는 좋은 연장입니다.
- 1. 트리에서 지배 집합을 찾는 다항식 시간 알고리즘
- 2. 전력 집합 계산 알고리즘
- 3. 부분 집합 합계 알고리즘 효율
- 4. 지배 색을 얻는 방법 opencv
- 5. 내용 지배 구조 메커니즘
- 6. 변화에 지배 기업은
- 7. 프롤로그에서 최대 독립 집합
- 8. 유전성 속성의 최대 집합
- 9. 동적 프로그래밍 부분 집합 알고리즘
- 10. 알고리즘 : 폭발 목록 (부분 집합)
- 11. 비터 비 알고리즘 이해
- 12. 집합 교차점의 카디널리티에 대한 빠른 근사 알고리즘
- 13. 최대 재미를 결정하는 알고리즘
- 14. 최대 사각형 알고리즘 구현
- 15. 최대 흐름 그래프 알고리즘
- 16. 최대 사각형 알고리즘
- 17. 검색 및 정렬을 사용하여 부 집합 집합
- 18. 집합 A의 점에서 집합 B의 점까지의 최단 거리를 찾는 알고리즘
- 19. GAE ReferencePropertyResolveError - 삭제 지배 기업
- 20. 새로운 이슈 - 지배 구조 문제는
- 21. 최대 카디널리티의 나눗셈없는 하위 집합
- 22. 행을 최대 값으로 유지하는 집합
- 23. Spoj - 배열의 최대 부분 집합
- 24. 뺄셈을 사용한 부분 집합 합계 알고리즘
- 25. 빈번한 항목 집합 최고의 알고리즘 라이브러리
- 26. R - 항목 집합 제거 - ECLAT 알고리즘
- 27. 집합의 숫자가 반복되는 부분 집합 합계 알고리즘
- 28. 최소 가중치 연결된 에지 집합 알고리즘 T
- 29. 알고리즘 질문 : 가장 잘 맞는 하위 집합
- 30. 재귀 하위 집합 합계 알고리즘 수정
좋은 작은 문제, 감사합니다. –
user1256960, 나는 세트 이름 S와 M을 추가하여 질문을 편집했습니다. 마지막 문장에서 "M의 다른 포인트"를 "S의 임의 포인트"로 변경하십시오. (원래의 질문은 다른 점이 S인지 M인지 모호했습니다.) –
이것은 기본적으로 제한된 그래프에서 최대 독립적 인 집합 문제입니다. 일반적인 문제는 NP 완성이므로'O (2^n)'보다 나빠질 수는 없습니다. –