는 축-평행 사각형입니다.
직사각형 보존 파티션 의 파티션 인 ,되도록 은 페어 - 내부 - 이산 축에 평행 한 직사각형이고, 각 위해 : 즉, 기존의 각 사각형은 다음과 같이 고유 한 새 사각형에 포함됩니다.
작은 가진 직사각형 보존 파티션을 찾는 알고리즘은 무엇입니까 ?
특히, 부분 으로 직사각형 보존 파티션을 찾기위한 알고리즘이 있습니까?
는 축-평행 사각형입니다.
직사각형 보존 파티션 의 파티션 인 ,되도록 은 페어 - 내부 - 이산 축에 평행 한 직사각형이고, 각 위해 : 즉, 기존의 각 사각형은 다음과 같이 고유 한 새 사각형에 포함됩니다.
작은 가진 직사각형 보존 파티션을 찾는 알고리즘은 무엇입니까 ?
특히, 부분 으로 직사각형 보존 파티션을 찾기위한 알고리즘이 있습니까?
답변:
새로운 답변 : 다음의 간단한 알고리즘이 점진적으로 최적입니다.
각 사각형 가능한 한 사각형이 한 분리되도록 유지하십시오.
구멍의 수는 최대 입니다. 홀 수가 적어도 구성이 있으므로 이는 무조건 최적 입니다.
증거는 이 백서에 있습니다.
오래된 답변 :
다음 알고리즘은 최적은 아니지만 부분 으로 직사각형 보존 파티션을 찾는 데 충분합니다 .
알고리즘은 직선 다각형 작동 직사각형으로 초기화되고, .
1 단계 : 의 서쪽 경계에 인접한 직사각형 를 선택합니다 (즉, 의 서쪽과 의 서쪽 경계 사이에 다른 직사각형 는 없습니다 ). 장소 내 는의 서쪽 경계에 닿을 때까지 그것을 스트레칭 . 하자 (위한 )의 신장 된 버전 일 . 이라고하자 . 모든 까지 단계 1 반복원래 사각형이 배치되고 늘어납니다. 아래 이미지에서 사각형을 배치하는 가능한 순서는 .
이제 는 다음과 같은 직선 다각형입니다.
나는 에서 오목한 꼭짓점 의 수가 최대 이라고 주장한다 . 에서 확장 된 사각형을 제거 할 때마다 세 가지 가능성 이 있기 때문입니다 .
2 단계 : 기존 알고리즘을 사용하여 를 축-평행 사각형으로 분할 합니다 (검토는 Keil 2000, 10-13 페이지 및 Eppstein 2009, 3-5 페이지 참조 ).
Keil은 최소 칸에있는 사각형의 수는 1 + 오목한 꼭짓점의 수에 의해 제한된다는 정리를 인용합니다. 따라서 우리의 경우 숫자는 최대 이고 파티션의 총 사각형 수는 입니다.
이 알고리즘은 최적이 아닙니다. 예를 들어, 위 예제에서 을 제공 하는 반면 최적 솔루션은 입니다. 따라서 두 가지 질문이 남아 있습니다.
A.이 알고리즘이 맞습니까?
B. 최적의 또는 적어도 더 나은 근사값 을 찾기위한 다항식 시간 알고리즘이 있습니까?