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


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¬BAB

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

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

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

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

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

i-wire 가젯 은 기여합니다.l12+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={(xjxkxl)}

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

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

그때:

  1. xixxi¬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.