Я попытаюсь показать, что эта проблема является NP-трудной, путем сокращения от .Планар- 3 -САТ
Снижение от Планар- 3 -САТ
Некоторые основные гаджеты
Гаджеты - это внутренние конфигурации геометрии, которые позволят нам построить ворота для использования в схеме, к которой мы будем сокращать .Планар- 3 -САТ
4X3-гаджет
Этот гаджет имеет два допустимых состояния минимального квадратного разбиения :
Левая 4X3-гаджет . Посередине и справа: два возможных минимально-квадратных состояния разбиения .
5x4-гаджет
Этот гаджет точно такой же, как 4X3-гаджет , только с большими размерами.
Левая 5x4-гаджет . Посередине и справа: два возможных минимально-квадратных состояния разбиения .
конечная точка-гаджет
TF
Слева: каркас конечной точки-гаджета . Центр: Истинная конечная точка. Справа: ложная конечная точка.
гаджет i-wire
Я-проводное устройство коротко для импликации проволоки .
Правила:
Пример:
72
Вот как это используется:
Рисунок 8,9 , слева: каркасный i-провод через две конечные точки . Справа: Союз.
Теперь, если одна конечная точка находится в правильном состоянии, она переводит другую конечную точку в положение нажатия. Пример:
Слева: квадратная диаграмма перегородок; левый переключатель выключен, «проталкивает» все квадраты вниз по i-проводу и, наконец, нажимает другой переключатель ( конечная точка ). Справа: квадратная диаграмма перегородок; левая конечная точка заполнена, «выталкивает» все квадраты вниз по i-проводу и заставляет конечную точку слева быть «вверх».
A⟹¬ BA⟹В
Однако это оставляет безусловный случай:
Если мы объединим два i-провода , мы можем получить двустороннее значение, по сути, логическое (не) равенство:
Таким образом, два я-провод может нести полные отношения равенства, так же, как цепь - на самом деле, это является схемой. Мы будем использовать эти пары для построения полезного провода .
л - 12+ 2
i-провода могут быть ориентированы по мере необходимости.
провод
Провод состоит из пары I-проводов , которые подключены к тем же воротам в каждой конечной точке.
- В I-провода окрашены в красный и зеленый.
- 3
- Каждый штифт затвора будет иметь зеленый и красный контакт; провод должен правильно подключаться.
- Правило инварианта: один i-провод толкается в противоположном направлении другого i-провода , каждый вентиль принимает это и в этом уверен (если не указано иное).
- Поскольку каждый провод имеет двустороннее значение, он переносит значения от затвора к затвору, как провод в цепи.
- Каждый провод должен быть подключен к воротам на обоих концах. , Если это не удастся, это может разрушить допущения некоторых описываемых мною гейтов и правило инварианта выше; однако ворота, у которых есть конечные точки через выводы , безопасны - вы можете подключить к этим конечным точкам паразитные провода, не беспокоясь о том, что это разрушит ворота.
- провода должны быть нечетной длины, включая провода к любой цепи, к которой он подключается; однако ниже я опишу нечетный пропуск, который позволяет проволоке с четной длиной становиться нечетной.
Фотографии :
Вверху: A провод .
Левая и правая: Два возможных минимален квадратных перегородочные-состояния из в проволоке . Обратите внимание, что если провод только этой длины, он не сможет сместиться вправо или влево и должен будет разбить один квадрат на более мелкие кусочки.
провода могут быть ориентированы по мере необходимости.
изгиб ворот : изгиб провода
Слева: вид каркаса. Справа: союзный вид.
Обратите внимание на использование 4X3-гаджета . Используется для фиксации красного провода на нечетную длину.
Ниже приведены два возможных состояния минимального квадратного разбиения изгиба:
Слева и справа: два возможных состояния разбиения минимального квадрата-квадрата изгибаемого провода.
Ворота могут быть ориентированы по мере необходимости. Очевидно, что эти ворота могут быть отражены для работы в другом направлении.
Перекос провод
Это легко сдвинуть провод. Каркасная иллюстрация:
именованное значение ворота
Назвали значение ворота , по существу , конечная точка , как ворота с одним контактом провода:
odd-skip-gate : странный пропуск провода
Иногда неудобно иметь только провода нечетной длины. Например:
Как видите, это небольшое расширение немного раздражает. Вот соответствующее решение с использованием шлюза 4X3 :
Итак, превратив это в ворота, мы получим странный пропуск (в каркасе):
Ворота могут быть ориентированы по мере необходимости.
поворотные ворота : скручивание провода
Иногда вы получаете красный и черный i-провода на неправильных сторонах для использования с воротами . В этом случае предусмотрен поворотный затвор для скручивания красного и черного i-проводов в противоположные стороны.
Каркасная иллюстрация:
Убедите себя, что это работает:
A
Ворота могут быть ориентированы по мере необходимости.
Сплит-ворота : расщепление провода
Расщепление провода, каркаса:
Убедите себя, что это работает:
A
A
Примечание. Каждый провод, входящий и выходящий из разветвителя, обязательно должен где-то подключаться к конечной точке, чтобы поддерживать инвариант. Кроме того, вы можете добавить конечные точки к каждой из пар отведений сплиттера.
Ворота могут быть ориентированы по мере необходимости.
не ворота
Не гейт берет провод и выводит провод, который имеет обратное значение. Это в основном поворотные ворота , за исключением того, что они помечают окраску проводов. В не-вентильных выглядит следующим образом :
И вид двух возможных состояний:
Ворота могут быть ориентированы по мере необходимости.
пункт ворота
Для clause-gate мы сначала вводим clause-gadget :
3
Вот как выглядят ворота:
3
Объяснение:
- Начните с клаузулы-гаджета и следуйте стрелкам.
- Не-стрелки означают, что он является частью цепи, но он не приводится в состояние воротами.
- Состояние предложения-гаджета заставляет одну из конечных точек быть оцененной как истинная .
3- CNF
Ворота могут быть ориентированы по мере необходимости.
снижение
Φ(x)Planar-3-SAT
Φ(x)=∧niCi,C={(xj∨xk∨xl)}
Наглядное пособие (первоисточник: Terrain Guarding - NP-Hard (PDF) , воспроизведено в тикзе):
Потом:
- xi∈xxi¬xi
- Соедините ворота друг с другом с помощью not-gate , чтобы они логически отрицали значения друг друга.
- Поместите полигоны переменных "gates" в их положения в планарном встраивании.
- Для каждого предложения поместите ворота предложения в месте расположения предложения в планарном встраивании.
- Используя ворота, описанные выше, соедините все переменные с их предложениями.
- Запустите алгоритм минимального квадрата-разбиения для результирующего объединения всех многоугольников гейта (всей схемы).
- Если алгоритм возвращает сумму всех размеров состояния минимального квадрата разбиения затвора (вычитая для общих углов), то он выполним. Если это не выполнимо, оно заставит ограниченный гаджет разделиться на меньшие квадраты, увеличивая таким образом количество квадратов, необходимых для разделения схемы.
Почему это работает
- Каждый гаджет имеет минимальный квадратный размер состояния раздела ; то есть минимальное квадратное разбиение этого гаджета имеет определенный размер.
- Некоторые гаджеты имеют несколько состояний с таким размером; каждое из этих состояний является допустимым минимально-квадратным разбиением .
- Когда гаджеты объединяются только в углах, сумма состояний минимального квадрата разбиения гаджетов * все еще остается минимальным состоянием разбиения квадрата их объединения; Вы можете видеть это интуитивно: соединение в углу не дает достаточно места для квадрата, чтобы расширяться / соединяться с квадратом из другого гаджета.
- В то время как объединение гаджетов на углу не уменьшает общий размер минимальной квадратных разделов , он имеет отношение и ограничить гаджеты с каждым-другой.
- С помощью показанных выше вентилей вы можете достаточно ограничить состояния, чтобы, если логическая формула была неудовлетворительной, то одному или нескольким гадетам пришлось бы разбиваться на еще меньшие квадраты и увеличивать размер минимального разбиения квадрата .
графические источники
Вы также можете увидеть увеличенные изображения, удалив суффиксы imgur url "s", "m", "l". Например, Вы можете увидеть увеличенное изображение этого: http://i.stack.imgur.com/6CKlGs.jpg , перейдя по
ссылке http://i.stack.imgur.com/6CKlG.jpg . Обратите внимание на пропущенные "s" перед .jpg
.