정사각형으로 직교 다각형 타일링


12

직교 다각형 (변이 축과 평행 한 다각형)을 감안할 때, 결합이 다각형과 같은 가장 작은 내부 분리 사각형 세트를 찾고 싶습니다.

다음과 같이 약간 다른 문제에 대한 몇 가지 참조가 있습니다.

나는 최소한위한 알고리즘을 찾고 타일 과 사각형 .


음, 이것이 NP-hard라고 상상할 수 있습니다. 나는 무언가를 공식화하려고 노력할 것입니다.
— Realz Slaw

1
구멍이 허용되는 최소화 버전은 NP-Hard이지만 간단하게 연결된 직교 다각형 (예 : 구멍 없음)의 경우 다항식 알고리즘이 있습니다. 그러나 문제에서 크기가 정수이고 실제로 최소 덮개가 아닌 최소 덮개를 의미하는 경우이 경우 다항식 알고리즘이 가능합니다.
— 파햄

음, 최소 제곱이 합리적으로 배치되고 합리적인 크기를 가질 것이라는 증거가 필요합니다. 또는 입력이 정수 크기 및 정수 위치이면 최소 제곱도 (SAT로 줄이기 위해) 줄어 듭니다. 직관적으로, 나는 이것이 사실이라고 추측합니다. 그것을 증명할 아이디어가 있습니까?
— Realz Slaw

@MahmoudAlimohamadi : 사각형이있는 직선형 다각형 (구멍이 있거나없는) 을 타일링 하는 문제를 연구하고 해결 한 논문의 제목 / 저자를 제공 할 수 있습니까 ?
— Vor

2
btw, 나는 당신 이 minim al 대신 minim um 을 의미한다고 가정했다 .
— Realz Slaw

답변:


15

문제가 NP-hard임을 보여 주려고합니다 .Planar-3-SAT


에서 감소Planar-3-SAT

기본 가제트

가제트는 회로에 사용하기 위해 게이트를 구성 할 수있는 내부 구조 형상으로, 있습니다.Planar-3-SAT

4X3 가제트

이 가젯에는 두 개의 유효한 최소 제곱 파티션 상태가 있습니다 .

여기에 이미지 설명을 입력하십시오         여기에 이미지 설명을 입력하십시오         여기에 이미지 설명을 입력하십시오

왼쪽 4X3 - 가제트 . 중간 및 오른쪽 : 가능한 두 개의 최소 제곱 파티션 상태 .

5X4 가제트

이 가제트는 더 큰 치수를 가진 4X3 가제트 와 정확히 같습니다 .

여기에 이미지 설명을 입력하십시오         여기에 이미지 설명을 입력하십시오         여기에 이미지 설명을 입력하십시오

왼쪽 5 × 4-가제트 . 중간 및 오른쪽 : 가능한 두 개의 최소 제곱 파티션 상태 .

엔드 포인트 가제트

엔드 포인트 가젯 입니다 5 × 4 - 가제트 . 게이트 의 엔드 포인트 / 핀으로 자주 사용됩니다 . 엔드 포인트의 두 상태 중 하나는 true로 평가되고 다른 하나는 false로 평가 될 수 있습니다. 끝점은 두 끝을 하나는 로, 다른 하나는 합니다. 큰 사각형으로 덮인 끝은 끝점의 값입니다.FTF

여기에 이미지 설명을 입력하십시오

왼쪽 : endpoint-gadget의 와이어 프레임 . 중심 : 실제 값 끝점. 오른쪽 : 잘못된 값의 끝점

i-wire 가제트

I-와이어 가젯 에 대한 짧은 암시 와이어 .

규칙 :

  • I 선 가제트 이상의 길이의 홀수 길이의 직사각형 구성 및 폭 .222
  • I 선 가제트 수 최소 제곱 파티션 상태 한쪽, 다른, 또는 둘 다에서 푸시를; 이 세 번째 상태 의 i- 와이어 는 국부적으로 구속되지 않은 상태라고 부릅니다 .3

예:

여기에 이미지 설명을 입력하십시오

72

사용 방법은 다음과 같습니다.

여기에 이미지 설명을 입력하십시오         여기에 이미지 설명을 입력하십시오

그림 8,9 , 왼쪽 : 두 끝점에서 와이어 프레임 i 와이어 . 오른쪽 : 연합.

이제 한 엔드 포인트 가 올바른 상태 인 경우 다른 엔드 포인트가 강제 위치로 설정됩니다. 예:

여기에 이미지 설명을 입력하십시오         여기에 이미지 설명을 입력하십시오

왼쪽 : 정사각형 파티션 다이어그램. 왼쪽 스위치가 다운되면 모든 사각형을 i 와이어 아래로 "밀어 내고" 마지막으로 다른 스위치 ( 종료점 )를 밉니다 . 오른쪽 : 정사각형 파티션 다이어그램. 왼쪽 끝 점이 가득 차면 i-wire 아래로 모든 사각형을 "밀어 내고" 왼쪽 끝점 을 "위로" 강제합니다 .

A⟹¬BA⟹B

그러나 이것은 제한되지 않은 경우를 남깁니다.

여기에 이미지 설명을 입력하십시오

두 개의 i-wire를 결합하면 본질적으로 부울 (in) 평등이라는 양방향 의미를 얻을 수 있습니다.

여기에 이미지 설명을 입력하십시오         여기에 이미지 설명을 입력하십시오

그래서,이 I-와이어 많은 회로처럼 완전히 평등 관계를 수행 할 수 있습니다 - 사실, 그것은 이다 회로. 이 쌍을 사용하여 사용 가능한 와이어 를 구성합니다 .

각 i-wire 가젯 은 기여합니다.l−12+2

필요에 따라 i- 와이어의 방향을 지정할 수 있습니다.

철사

와이어는 한 쌍으로 구성 I-와이어 동일한 접속되어 게이트 각 엔드 포인트에있다.

  • I-와이어 빨간색과 녹색으로.
  • 3
  • 각 게이트 핀에는 녹색 및 적색 접점이 있습니다. 전선이 올바르게 연결되어 있어야합니다.
  • 변칙 : 하나의 i- 와이어 가 다른 i- 와이어 의 반대 방향으로 눌려지면각 게이트는 이것을 가정하고 (달리 언급되지 않는 한)이를 확실하게합니다.
  • 각 와이어에는 양방향 영향이 포함되므로 회로의 와이어처럼 게이트에서 게이트로 값을 전달합니다.
  • 모든 와이어 는 양쪽 끝에있는 게이트에 연결해야합니다. . 이것이 실패하면 내가 묘사 한 일부 문과 위의 불변 규칙에 대한 가정을 망칠 수 있습니다. 그러나 리드에 엔드 포인트 가있는 게이트 는 안전 합니다. 게이트를 망칠 염려없이 스트레이 와이어를 이러한 엔드 포인트에 연결할 수 있습니다 .
  • 와이어 는 연결되는 회로의 리드를 포함 하여 홀수 길이 여야합니다 . 그러나 짝수 길이의 와이어가 홀수 길이가되는 홀수 건너 뛰기 게이트를 아래에서 설명합니다 .

사진 :

여기에 이미지 설명을 입력하십시오

위 : 의 선 .

여기에 이미지 설명을 입력하십시오        여기에 이미지 설명을 입력하십시오

왼쪽 및 오른쪽 : 와이어 의 가능한 최소 사각형 파티션 상태 2 개 . 와이어 길이가이 길이이면 오른쪽이나 왼쪽으로 이동할 수 없으며 정사각형을 작은 조각으로 나눠야합니다.

전선 은 필요에 따라 방향을 설정할 수 있습니다.

벤드 게이트 : 와이어 벤딩

여기에 이미지 설명을 입력하십시오       여기에 이미지 설명을 입력하십시오

왼쪽 : 와이어 프레임보기. 오른쪽 : 연합보기.

4X3 가제트 사용에 유의하십시오 . 빨간색 리드를 홀수 길이로 고정하는 데 사용됩니다.

다음은 벤드의 가능한 최소 정사각형 파티션 상태 입니다.

여기에 이미지 설명을 입력하십시오         여기에 이미지 설명을 입력하십시오

왼쪽 및 오른쪽 : 벤딩 와이어의 두 가지 최소 정사각형 파티션 상태 .

게이트는 필요에 따라 방향을 설정할 수 있습니다. 분명히이 게이트는 다른 방향으로 작동하도록 미러링 될 수 있습니다.

와이어 꼬기

전선을 쉽게 옮길 수 있습니다. 와이어 프레임 그림 :

여기에 이미지 설명을 입력하십시오

명명 된 값 게이트

라는 값 게이트는 본질적으로 하나의 와이어와 접촉 게이트로서 엔드 포인트 :

여기에 이미지 설명을 입력하십시오

홀수 이동 게이트 : 홀수 스킵 와이어

홀수 길이의 와이어 만 갖는 것이 불편한 경우가 있습니다. 예를 들면 다음과 같습니다.

여기에 이미지 설명을 입력하십시오

보시다시피, 약간의 확장은 약간 성가시다. 다음은 4X3 게이트를 사용하는 해당 솔루션입니다 .

여기에 이미지 설명을 입력하십시오

그래서 이것을 게이트로 바꾸면 이상한 와이어 게이트가 나타납니다 .

여기에 이미지 설명을 입력하십시오

게이트는 필요에 따라 방향을 설정할 수 있습니다.

twist-gate : 전선 꼬기

Somtimes 는 게이트 와 함께 사용하기 위해 잘못된면에 빨간색과 검은 색 i- 와이어 를 얻습니다 . 이 경우, 적색 및 흑색 i- 와이어 를 반대쪽 으로 비틀기 위해 비틀림 게이트 가 제공됩니다 .

와이어 프레임 그림 :

여기에 이미지 설명을 입력하십시오

그것이 효과가 있다고 확신하십시오 :

여기에 이미지 설명을 입력하십시오         여기에 이미지 설명을 입력하십시오

A

게이트는 필요에 따라 방향을 설정할 수 있습니다.

split-gate : 와이어 분할

와이어 분할, 와이어 프레임 :

여기에 이미지 설명을 입력하십시오

그것이 작동한다는 것을 스스로에게 확신 시키십시오.

여기에 이미지 설명을 입력하십시오

A

여기에 이미지 설명을 입력하십시오

A

참고 : 스플리터로 들어오고 나가는 모든 와이어 는 불변을 유지하기 위해 어딘가에 엔드 포인트에 연결 해야합니다 . 또는 스플리터의 각 리드 쌍에 엔드 포인트를 추가 할 수 있습니다.

게이트는 필요에 따라 방향을 설정할 수 있습니다.

노 게이트

not 게이트는 와이어를 가져와 반대로 영향을주는 와이어를 출력합니다. 와이어의 색상을 재 라벨링하는 것을 제외하고 는 기본적으로 트위스트 게이트 입니다. 하지 게이트 다음과 같다 :

여기에 이미지 설명을 입력하십시오

그리고 두 가지 가능한 상태에 대한 견해 :

여기에 이미지 설명을 입력하십시오         여기에 이미지 설명을 입력하십시오

게이트는 필요에 따라 방향을 설정할 수 있습니다.

조항 게이트

를 들어 절 게이트 , 우리가 처음 소개 절 - 가젯 :

여기에 이미지 설명을 입력하십시오

3

이것이 게이트의 모습입니다 :

3

설명:

  1. 절 가제트 에서 시작 하여 화살표를 따릅니다.
  2. 화살표가 아닌 선은 회로의 일부이지만 게이트에 의해 상태로 강제되지는 않습니다.
  3. 조항-가젯 의 상태는 엔드 포인트 중 하나가 true 값이되도록 합니다 .

3-CNF

게이트는 필요에 따라 방향을 설정할 수 있습니다.

절감

Φ(x)Planar-3-SAT

Φ(x)=∧inCi,C={(xj∨xk∨xl)}

시각 자료 (원본 : Terrain Guarding은 NP-Hard (PDF) , tikz로 재현 됨) :

여기에 이미지 설명을 입력하십시오

그때:

  1. xi∈xxi¬xi
  2. not-gate로 게이트를 서로 연결하여 논리적으로 서로의 값을 무효화합니다.
  3. 변수의 게이트 다각형을 평면 임베딩의 위치에 놓습니다.
  4. 각 절 에 대해 평면 임베딩의 절 위치에 절 게이트 를 배치하십시오 .
  5. 위에서 설명한 게이트를 사용하여 모든 변수를 해당 절에 연결하십시오.
  6. 모든 게이트 다각형 (전체 회로)의 결과 결합에 대해 최소 제곱 분할 알고리즘 을 실행합니다 .
  7. 알고리즘이 모든 게이트의 최소 제곱 파티션 상태 크기 의 합을 반환하면 (공유 코너를 빼기) 만족할 수 있습니다. 만족할 수없는 경우 제한된 가제트를 더 작은 사각형으로 나눌 수 있으므로 회로를 분할하는 데 필요한 사각형 수가 늘어납니다.

작동하는 이유

  • 각 가젯에는 최소 사각형 파티션 상태 크기가 있습니다. 즉, 해당 가제트 의 최소 사각형 파티션 은 특정 크기입니다.
  • 일부 가제트에는이 크기의 여러 상태가 있습니다. 이러한 각 상태는 유효한 최소 제곱 파티션 입니다.
  • 가제트가 코너에서만 결합 될 때, 가제트의 최소 제곱 파티션 상태 의 합은 여전히 이들의 합집합 의 최소 제곱 파티션 상태 이다. 당신은 이것을 직관적으로 볼 수 있습니다 : 모서리에 합류해도 사각형이 다른 가제트의 사각형과 확장 / 연결되는 충분한 공간을 제공하지 않습니다.
  • 코너에서 가젯을 결합하면 감소하지 않는 동안 총 최소 평방 파티션 크기를 , 그것은 않습니다 관련된 각 - 기타와 가젯을 제한.
  • 위에 표시된 게이트를 사용하면 상태를 충분히 제한하여 논리 수식을 만족할 수없는 경우 하나 이상의 가드가 더 작은 사각형으로 나누어 최소 사각형 크기를 늘려야합니다 .

그래프 소스

또한 imgur url의 "s", "m", "l"접미사를 제거하면 더 큰 이미지를 볼 수 있습니다. 예를 들어 http://i.stack.imgur.com/6CKlG.jpg 로 이동하면 http://i.stack.imgur.com/6CKlGs.jpg 이미지를 더 크게 볼 수 있습니다 . 앞에 "s"가없는 것을 확인하십시오 .jpg.


3
와우, 그것은 정말 인상적입니다. 불행히도, 나는 감축을 확인할만큼 똑똑하지는 않지만 그것에 대해 당신의 말을 받아들입니다 :) 감사합니다!
— Erel Segal-Halevi

1
따라서 타일링의 상황은 커버링의 상황과 반대입니다. 커버링에서 정사각형 커버링은 다항식이고 사각형 커버링은 NP- 하드이지만 타일링의 경우 정사각형 커버링은 NP- 하드이고 사각형 커버링은 다항식입니다.
— Erel Segal-Halevi


8

NO(N3/2)

"사각형으로 직교 다각형 커버하기." LJ Aupperle과 HE Conn과 JM Keil과 Joseph O'Rourke. Proc. 26 번 Allerton Conf. 코뮌. 컨트롤 컴퓨팅. , pp. 97-106, 1988. ( PDF 스캔 다운로드 링크 )

그러나 결과 피복에는 겹치는 사각형이 포함될 수 있습니다. 사각형이 겹치지 않는 타일을 찾고 있으므로 문제가 동일하지 않습니다.


롤 나는 배합을 통해 절반 방법을 :(되었지만 오신 것을 환영합니다 매우 흥미로운 cs.SE.에.!
— Realz 양배추

2
올바르게 이해하면이 백서에 사각형이 겹치게됩니다 (즉, 피복 문제). 사각형이 겹치지 않는 경우에 관심이 있습니다 (예 : 파티셔닝 / 타일링 문제).
— Erel Segal-Halevi

@ErelSegalHalevi : 죄송합니다. 귀하의 질문을주의 깊게 읽지 않았습니다.
— Joseph O'Rourke 10

2
아, 그럼 계속하겠습니다 : D
— Realz Slaw
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.