Я спробую показати, що ця проблема є важкою для NP, скороченням від .Планар- 3 -САТ
Скорочення від Планар- 3 -САТ
Деякі основні гаджети
Гаджети - це внутрішні конфігурації геометрії, які дозволять нам побудувати ворота для використання в ланцюзі, до якої ми зменшимо .Планар- 3 -САТ
4X3-гаджет
Цей гаджет має два дійсних стани розділення мінімальної площі :
Ліва 4X3-гаджет . Середній і правий: два можливі стани розділення мінімальної площі .
5X4-гаджет
Цей гаджет точно схожий на 4X3-гаджет , просто з більшими розмірами.
Ліва 5x4-гаджет . Середній і правий: два можливі стани розділення мінімальної площі .
кінцева точка-гаджет
Кінцевий гаджет є 5x4-гаджетом . Його часто використовують як кінцеву точку / штифт воріт . Одне з двох станів кінцевої точки можна оцінити як істинне, а інше - хибне. Кінцевих знаки двома кінцями, один , як і інші , як F . Кінець, який охоплює великий квадрат, - це значення кінцевої точки.ТЖ
Зліва: каркас кінцевої точки-гаджета . Центр: Кінцева точка, що відповідає дійсності. Праворуч: кінцева точка, що не відповідає дійсності.
i-провідний гаджет
Я-дротове пристрій коротко для імплікації дроту .
Правила:
- Я-дротове пристрій складається з непарної довжиною прямокутника довжини більш і шириною 2 .22
- Я-дротове пристрій може мати мінімальні квадратні секції держави , зрушать з одного боку, з іншого, або ні; я-дротовий в цьому третьому стані буде називатися локально unconstrainted .3
Приклад:
Малюнок 7: я-дротове пристрій довжини , і шириною 2 .72
Ось як це використовується:
Малюнок 8,9 , зліва: i-дріт каркаса через дві кінцеві точки . Право: Союз.
Тепер, якщо одна кінцева точка знаходиться у правильному стані, вона змушує іншу кінцеву точку переходити у висунуте положення. Приклад:
Зліва: Діаграма квадратних перегородок; лівий перемикач вниз, "штовхає" всі квадрати вниз i-дроту і, нарешті, натискає на інший перемикач ( кінцеву точку ). Справа: діаграма квадратних перегородок; ліва кінцева точка заповнена, "проштовхує" всі квадрати вниз i-дротом і змушує кінцеву точку зліва бути "вгору".
А⟹¬ BА⟹Б
Однак це залишає необмежений випадок:
Якщо ми поєднаємо два i-дроти , ми можемо отримати двостороннє значення, по суті булеву (не) рівність:
Таким чином, два я-провід може нести повні відносини рівності, так само, як ланцюг - насправді, це є схемою. Ми будемо використовувати ці пари для побудови корисного дроту .
l - 12+ 2
i-дроти можна орієнтувати за потребою.
дріт
Провід складається з пари I-проводів , які підключені до тих же воріт в кожній кінцевій точці.
- У I-проводу пофарбовані в червоний і зелений.
- 3
- Кожен штифт матиме зелений та червоний контакт; провід повинен правильно з'єднуватися.
- Інваріантне правило: один i-провід буде просунутий у зворотному напрямку, а інший i-провід , кожен затвор передбачає це і робить певне з цього (якщо не зазначено інше).
- Оскільки кожен провід містить двосторонній сенс, він несе значення від воріт до воріт, як провід в ланцюзі.
- Кожен провід повинен бути з'єднаний з воротами з обох кінців. . Якщо цього не зробити, це може зруйнувати припущення деяких воріт, які я описую, та інваріантне правило вище; однак ворота, які мають кінцеві точки попереду, є безпечними - до цих кінцевих точок можна підключити бродячі дроти, не турбуючись про те, що це зруйнує ворота.
- провід повинен бути непарної довжини, включаючи провід до будь-якого ланцюга, до якого він підключається; однак я опишу нижню браму, що пропускає непарні, що дозволяє рівномірному дроту стати непарним.
Фотографії :
Вгорі: A провід .
Права та ліва: Два можливих мінімальний квадратних перегородкові-стану з в дроті . Зауважте, що якщо дріт має лише таку довжину, він не зможе зсунути вправо чи вліво, і доведеться розбити один квадрат на менші шматки.
дроти можна орієнтувати за потребою.
гнуті ворота : Згинання дроту
Зліва: вигляд дротяної рами. Праворуч: вид союзу.
Зверніть увагу на використання 4X3-гаджета . Він використовується для фіксації червоного відведення до непарної довжини.
Нижче наведено два можливі стани перегину з мінімальними квадратними перегородками :
Ліворуч і праворуч: два можливих стани перегородки з мінімальною площею-квадратом згинаючого дроту.
Ворота можна орієнтувати за потребою. Очевидно, що ці ворота можуть бути дзеркальними, щоб працювати в іншому напрямку.
Проколювання дроту
Перекласти дріт легко. Ілюстрація каркасною рамкою:
gate-name-value
Запропонований параметр із значенням значення є фактично кінцевою точкою як ворота з одним дротяним контактом:
непарні ворота : непарний пропуск проводів
Іноді незручно мати лише дроти непарної довжини. Наприклад:
Як бачимо, ця розширення трохи дратує. Ось відповідне рішення, використовуючи 4X3-ворота :
Отже, перетворюючи це на ворота, ми отримуємо ворота непарного пропуску (в каркасному):
Ворота можна орієнтувати за потребою.
твіст-ворота : скручування дроту
Інколи ви отримуєте червоні та чорні дроти з неправильних сторін для використання із воротами . У цьому випадку передбачено поворотні ворота , щоб закрутити червоні та чорні дроти в протилежні сторони.
Ілюстрація каркасною рамкою:
Переконайте себе, що це працює:
А
Ворота можна орієнтувати за потребою.
split-gate : Розщеплення дроту
Розщеплення дроту, каркаса:
Переконайте себе, що це працює:
А
А
Примітка: Кожен провід, що надходить і виходить з розгалужувача, повинен десь підключитися до кінцевої точки, щоб підтримувати інваріант. Крім того, ви можете додати кінцеві точки до кожної з пар відводів розгалужувача.
Ворота можна орієнтувати за потребою.
не-ворота
Не ворота бере провід і виводить провід, який має зворотні наслідки. Це в основному поворотні ворота , за винятком того, що вони відновляють забарвлення проводів. В НЕ-вентильних виглядає наступним чином :
І вигляд двох можливих станів:
Ворота можна орієнтувати за потребою.
пункт-ворота
Для шлюзу-пропозицій спочатку вводимо додаток-додаток :
3
Ось як виглядає ворота:
3
Пояснення:
- Почніть з пункту-гаджета і слідуйте за стрілками.
- Не стрілки-стрілки означають, що вона є частиною ланцюга, але вона не примушена до стану за допомогою воріт.
- Стан придатка-гаджета змушує одну з кінцевих точок оцінюватись як істину .
3 -CNF
Ворота можна орієнтувати за потребою.
Зменшення
Φ ( x )Планар- 3 -САТ
Φ ( x ) = ∧нiСi,С= { ( хj∨ xк∨ xл) }
Наочний посібник (оригінальне джерело: Terrain Guarding is NP-Hard (PDF) , відтворений у tikz):
Потім:
- хi∈ xхi¬ хi
- Підключіть ворота один до одного за допомогою не-воріт , щоб вони логічно заперечували значення один одного.
- Розмістіть багатокутники «ворота» змінних у своїх місцях у планарному вбудовуванні.
- Для кожного пункту розмістіть ворота клауз за місцем розташування пункту в планарному вбудовуванні.
- Використовуючи описані вище ворота, підключіть всі змінні до їх пунктів.
- Запустіть алгоритм розподілу мінімального квадрата на отриманому об'єднанні всіх полігонів ворота (всієї схеми).
- Якщо алгоритм повертає суму всіх розмірів стану мінімального квадрата-поділу затвора (віднімання для загальних кутів), то він задоволений. Якщо це не піддається задоволенню, воно змусить обмежений гаджет розділитися на менші квадрати, збільшивши тим самим кількість квадратів, необхідних для розділення ланцюга.
Чому це працює
- Кожен гаджет має мінімальний розмір стану перегородки ; тобто перегородка цього гаджета мінімальною площею має певний розмір.
- Деякі гаджети мають кілька станів із таким розміром; кожен із цих станів є дійсними розділами мінімальної площі .
- Коли гаджети поєднуються лише в кутах, сума мінімум-квадрат-розділ станів гаджетів становить * все-таки мінімальний-квадрат-розділ-стан об'єднання їх; це можна зрозуміти інтуїтивно: приєднання в кутку не дає достатньо місця для розширення / з’єднання квадрата з іншим гаджетом.
- У той час як об'єднання гаджетів на кутку не зменшує загальний розмір мінімальної квадратних розділів , він має відношення і обмежити гаджети з кожним-другий.
- За допомогою показаних вище воріт ви можете досить обмежувати стани, так що якщо логічна формула є незадовільною, то одному або декільком гадетам доведеться пробитися на ще менші квадрати та збільшити розмір мінімальної площі-перегородки .
джерела графіка
Ви також можете побачити більші зображення, видаливши суфікси URL-адрес imgur "s", "m", "l". Наприклад, ви можете побачити більше зображення цього зображення: http://i.stack.imgur.com/6CKlGs.jpg , перейшовши на сторінку
http://i.stack.imgur.com/6CKlG.jpg . Помітьте пропущені "s" перед.jpg
.