Плитка ортогонального багатокутника з квадратами


12

Враховуючи ортогональний багатокутник (багатокутник, сторони якого паралельні осям), я хочу знайти найменший набір внутрішньорозрізнених квадратів, об'єднання яких дорівнює багатокутнику.

Я знайшов кілька посилань на дещо різні проблеми, такі як:

  • Покриття ортогонального багатокутника квадратами - аналогічно моїй проблемі, але квадрати покриття дозволяють перекриватися. Ця проблема має поліноміальне рішення ( Aupperle, Conn, Keil і O'Rourke, 1988 ; Bar-Yehuda і Ben-Hanoch, 1996 ).
  • Плитка / розкладання / перегородка ортогонального багатокутника на прямокутники . Ця проблема має поліноміальне рішення ( Keil, 2000 ; Eppstein, 2009 ).
  • Покриття ортогонального багатокутника прямокутниками - ця проблема, як відомо, є NP-повною ( Culberson and Reckhow, 1988 ).

Я шукаю алгоритм мінімальної плитки з квадратами .


ммм. Я можу уявити, що це NP-важко. Я спробую щось сформулювати.
Realz Slaw

1
Версія для мінімізації з дозволеними отворами є NP-Hard, але для просто з'єднаних ортогональних багатокутників (тобто без отворів) він має поліноміальний алгоритм. Однак якщо у вашій проблемі розміри цілі, і ви дійсно маєте на увазі мінімальне покриття, а не мінімальне покриття, то в цьому випадку можливий поліноміальний алгоритм.
Пархам

Ммм, мені потрібен доказ того, що мінімальні квадрати будуть раціонально розміщені та матимуть раціональні розміри; або навіть більше, що якщо вхід має розмір цілого чисельного розміру та ціле число, то мінімальні квадрати будуть також (зменшити його до SAT). Інтуїтивно я здогадуюсь, що це правда, чи є у вас ідеї, щоб довести це?
Realz Slaw

@MahmoudAlimohamadi: чи можете ви навести назви / авторів статті (ив), де вивчається (і вирішується) проблема плитки прямолінійних багатокутників (з отворами або без них) з квадратами.
Vor

2
btw, я припускав, що ви маєте на увазі мінімум um замість мінімум al .
Realz Slaw

Відповіді:


15

Я спробую показати, що ця проблема є важкою для NP, скороченням від .Планар-3-САТ


Скорочення від Планар-3-САТ

Деякі основні гаджети

Гаджети - це внутрішні конфігурації геометрії, які дозволять нам побудувати ворота для використання в ланцюзі, до якої ми зменшимо .Планар-3-САТ

4X3-гаджет

Цей гаджет має два дійсних стани розділення мінімальної площі :

введіть тут опис зображення         введіть тут опис зображення         введіть тут опис зображення

Ліва 4X3-гаджет . Середній і правий: два можливі стани розділення мінімальної площі .

5X4-гаджет

Цей гаджет точно схожий на 4X3-гаджет , просто з більшими розмірами.

введіть тут опис зображення         введіть тут опис зображення         введіть тут опис зображення

Ліва 5x4-гаджет . Середній і правий: два можливі стани розділення мінімальної площі .

кінцева точка-гаджет

Кінцевий гаджет є 5x4-гаджетом . Його часто використовують як кінцеву точку / штифт воріт . Одне з двох станів кінцевої точки можна оцінити як істинне, а інше - хибне. Кінцевих знаки двома кінцями, один , як і інші , як F . Кінець, який охоплює великий квадрат, - це значення кінцевої точки.ТЖ

введіть тут опис зображення

Зліва: каркас кінцевої точки-гаджета . Центр: Кінцева точка, що відповідає дійсності. Праворуч: кінцева точка, що не відповідає дійсності.

i-провідний гаджет

Я-дротове пристрій коротко для імплікації дроту .

Правила:

  • Я-дротове пристрій складається з непарної довжиною прямокутника довжини більш і шириною 2 .22
  • Я-дротове пристрій може мати мінімальні квадратні секції держави , зрушать з одного боку, з іншого, або ні; я-дротовий в цьому третьому стані буде називатися локально unconstrainted .3

Приклад:

введіть тут опис зображення

Малюнок 7: я-дротове пристрій довжини , і шириною 2 .72

Ось як це використовується:

введіть тут опис зображення         введіть тут опис зображення

Малюнок 8,9 , зліва: i-дріт каркаса через дві кінцеві точки . Право: Союз.

Тепер, якщо одна кінцева точка знаходиться у правильному стані, вона змушує іншу кінцеву точку переходити у висунуте положення. Приклад:

введіть тут опис зображення         введіть тут опис зображення

Зліва: Діаграма квадратних перегородок; лівий перемикач вниз, "штовхає" всі квадрати вниз i-дроту і, нарешті, натискає на інший перемикач ( кінцеву точку ). Справа: діаграма квадратних перегородок; ліва кінцева точка заповнена, "проштовхує" всі квадрати вниз i-дротом і змушує кінцеву точку зліва бути "вгору".

А¬БАБ

Однак це залишає необмежений випадок:

введіть тут опис зображення

Якщо ми поєднаємо два i-дроти , ми можемо отримати двостороннє значення, по суті булеву (не) рівність:

введіть тут опис зображення         введіть тут опис зображення

Таким чином, два я-провід може нести повні відносини рівності, так само, як ланцюг - насправді, це є схемою. Ми будемо використовувати ці пари для побудови корисного дроту .

л-12+2

i-дроти можна орієнтувати за потребою.

дріт

Провід складається з пари I-проводів , які підключені до тих же воріт в кожній кінцевій точці.

  • У I-проводу пофарбовані в червоний і зелений.
  • 3
  • Кожен штифт матиме зелений та червоний контакт; провід повинен правильно з'єднуватися.
  • Інваріантне правило: один i-провід буде просунутий у зворотному напрямку, а інший i-провід , кожен затвор передбачає це і робить певне з цього (якщо не зазначено інше).
  • Оскільки кожен провід містить двосторонній сенс, він несе значення від воріт до воріт, як провід в ланцюзі.
  • Кожен провід повинен бути з'єднаний з воротами з обох кінців. . Якщо цього не зробити, це може зруйнувати припущення деяких воріт, які я описую, та інваріантне правило вище; однак ворота, які мають кінцеві точки попереду, є безпечними - до цих кінцевих точок можна підключити бродячі дроти, не турбуючись про те, що це зруйнує ворота.
  • провід повинен бути непарної довжини, включаючи провід до будь-якого ланцюга, до якого він підключається; однак я опишу нижню браму, що пропускає непарні, що дозволяє рівномірному дроту стати непарним.

Фотографії :

введіть тут опис зображення

Вгорі: A провід .

введіть тут опис зображення        введіть тут опис зображення

Права та ліва: Два можливих мінімальний квадратних перегородкові-стану з в дроті . Зауважте, що якщо дріт має лише таку довжину, він не зможе зсунути вправо чи вліво, і доведеться розбити один квадрат на менші шматки.

дроти можна орієнтувати за потребою.

гнуті ворота : Згинання дроту

введіть тут опис зображення       введіть тут опис зображення

Зліва: вигляд дротяної рами. Праворуч: вид союзу.

Зверніть увагу на використання 4X3-гаджета . Він використовується для фіксації червоного відведення до непарної довжини.

Нижче наведено два можливі стани перегину з мінімальними квадратними перегородками :

введіть тут опис зображення         введіть тут опис зображення

Ліворуч і праворуч: два можливих стани перегородки з мінімальною площею-квадратом згинаючого дроту.

Ворота можна орієнтувати за потребою. Очевидно, що ці ворота можуть бути дзеркальними, щоб працювати в іншому напрямку.

Проколювання дроту

Перекласти дріт легко. Ілюстрація каркасною рамкою:

введіть тут опис зображення

gate-name-value

Запропонований параметр із значенням значення є фактично кінцевою точкою як ворота з одним дротяним контактом:

введіть тут опис зображення

непарні ворота : непарний пропуск проводів

Іноді незручно мати лише дроти непарної довжини. Наприклад:

введіть тут опис зображення

Як бачимо, ця розширення трохи дратує. Ось відповідне рішення, використовуючи 4X3-ворота :

введіть тут опис зображення

Отже, перетворюючи це на ворота, ми отримуємо ворота непарного пропуску (в каркасному):

введіть тут опис зображення

Ворота можна орієнтувати за потребою.

твіст-ворота : скручування дроту

Інколи ви отримуєте червоні та чорні дроти з неправильних сторін для використання із воротами . У цьому випадку передбачено поворотні ворота , щоб закрутити червоні та чорні дроти в протилежні сторони.

Ілюстрація каркасною рамкою:

введіть тут опис зображення

Переконайте себе, що це працює:

введіть тут опис зображення         введіть тут опис зображення

А

Ворота можна орієнтувати за потребою.

split-gate : Розщеплення дроту

Розщеплення дроту, каркаса:

введіть тут опис зображення

Переконайте себе, що це працює:

введіть тут опис зображення

А

введіть тут опис зображення

А

Примітка: Кожен провід, що надходить і виходить з розгалужувача, повинен десь підключитися до кінцевої точки, щоб підтримувати інваріант. Крім того, ви можете додати кінцеві точки до кожної з пар відводів розгалужувача.

Ворота можна орієнтувати за потребою.

не-ворота

Не ворота бере провід і виводить провід, який має зворотні наслідки. Це в основному поворотні ворота , за винятком того, що вони відновляють забарвлення проводів. В НЕ-вентильних виглядає наступним чином :

введіть тут опис зображення

І вигляд двох можливих станів:

введіть тут опис зображення         введіть тут опис зображення

Ворота можна орієнтувати за потребою.

пункт-ворота

Для шлюзу-пропозицій спочатку вводимо додаток-додаток :

введіть тут опис зображення

3

Ось як виглядає ворота:

3

Пояснення:

  1. Почніть з пункту-гаджета і слідуйте за стрілками.
  2. Не стрілки-стрілки означають, що вона є частиною ланцюга, але вона не примушена до стану за допомогою воріт.
  3. Стан придатка-гаджета змушує одну з кінцевих точок оцінюватись як істину .

3-CNF

Ворота можна орієнтувати за потребою.

Зменшення

Φ(х)Планар-3-САТ

Φ(х)=iнСi,С={(хjхкхл)}

Наочний посібник (оригінальне джерело: Terrain Guarding is NP-Hard (PDF) , відтворений у tikz):

введіть тут опис зображення

Потім:

  1. хiххi¬хi
  2. Підключіть ворота один до одного за допомогою не-воріт , щоб вони логічно заперечували значення один одного.
  3. Розмістіть багатокутники «ворота» змінних у своїх місцях у планарному вбудовуванні.
  4. Для кожного пункту розмістіть ворота клауз за місцем розташування пункту в планарному вбудовуванні.
  5. Використовуючи описані вище ворота, підключіть всі змінні до їх пунктів.
  6. Запустіть алгоритм розподілу мінімального квадрата на отриманому об'єднанні всіх полігонів ворота (всієї схеми).
  7. Якщо алгоритм повертає суму всіх розмірів стану мінімального квадрата-поділу затвора (віднімання для загальних кутів), то він задоволений. Якщо це не піддається задоволенню, воно змусить обмежений гаджет розділитися на менші квадрати, збільшивши тим самим кількість квадратів, необхідних для розділення ланцюга.

Чому це працює

  • Кожен гаджет має мінімальний розмір стану перегородки ; тобто перегородка цього гаджета мінімальною площею має певний розмір.
  • Деякі гаджети мають кілька станів із таким розміром; кожен із цих станів є дійсними розділами мінімальної площі .
  • Коли гаджети поєднуються лише в кутах, сума мінімум-квадрат-розділ станів гаджетів становить * все-таки мінімальний-квадрат-розділ-стан об'єднання їх; це можна зрозуміти інтуїтивно: приєднання в кутку не дає достатньо місця для розширення / з’єднання квадрата з іншим гаджетом.
  • У той час як об'єднання гаджетів на кутку не зменшує загальний розмір мінімальної квадратних розділів , він має відношення і обмежити гаджети з кожним-другий.
  • За допомогою показаних вище воріт ви можете досить обмежувати стани, так що якщо логічна формула є незадовільною, то одному або декільком гадетам доведеться пробитися на ще менші квадрати та збільшити розмір мінімальної площі-перегородки .

джерела графіка

Ви також можете побачити більші зображення, видаливши суфікси URL-адрес imgur "s", "m", "l". Наприклад, ви можете побачити більше зображення цього зображення: http://i.stack.imgur.com/6CKlGs.jpg , перейшовши на сторінку http://i.stack.imgur.com/6CKlG.jpg . Помітьте пропущені "s" перед.jpg .


3
Ого, це абсолютно вражає. На жаль, я недостатньо розумний, щоб перевірити зменшення, але я приймаю ваше слово за це :) Дякую!
Ерел Сегал-Халеві

1
Отже, ситуація в облицюванні плиткою протилежна ситуації в покритті: в покритті квадратне покриття є поліномом, а прямокутне покриття є NP-твердим, тоді як у плитці квадратне покриття є твердим NP, а прямокутне покриття - поліноміальним.
Ерел Сегал-Халеві


8

NО(N3/2)

"Покриття ортогональних багатокутників квадратами." LJ Aupperle та HE Conn, JM Keil та Joseph O'Rourke. Зб. 26-я конфл. Аллертон Комун. Управління обчисленнями. , с. 97-106, 1988. ( посилання на скачування PDF-сканування )

Однак отримане покриття може включати квадрати, які перекриваються. Ви шукаєте плитку, де квадрати не дозволяють перекриватися, тому ваша проблема не зовсім однакова.


lol Я був на півдорозі через формулювання :(. Дуже цікаво, проте! Ласкаво просимо до cs.SE.
Realz Slaw

2
Якщо я правильно розумію, цей документ дозволяє квадратам перекриватися (тобто це проблема покриття). Мене цікавить випадок, коли квадрати не дозволяють перекриватися (тобто це проблема перегородки / плитки).
Ерел Сегал-Халеві

@ErelSegalHalevi: О, вибачте, я уважно не прочитав ваше запитання.
Джозеф О'Рурк

2
О, тоді я продовжу: D
Realz Slaw
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.