Jump to content

Превращение Цейтина

Преобразование Цейтина , альтернативно называемое преобразование Цейтина , принимает на вход произвольную комбинаторную логическую схему и создает эквивалентную булеву формулу в конъюнктивной нормальной форме (КНФ). Длина формулы линейно зависит от размера схемы. Входные векторы, которые делают выход схемы «истинным», находятся в однозначном соответствии с присваиваниями, удовлетворяющими формуле. Это сводит проблему выполнимости схем на любой схеме (включая любую формулу) к проблеме выполнимости формул 3-КНФ. Его открыл российский учёный Григорий Цейтин .

Мотивация

[ редактировать ]

Наивный подход состоит в том, чтобы записать схему в виде логического выражения и использовать закон Де Моргана и распределительное свойство для преобразования ее в КНФ. Однако это может привести к экспоненциальному увеличению размера уравнения. Преобразование Цейтина выводит формулу, размер которой растет линейно относительно размера входной схемы.

Выходное уравнение — это константа 1, равная выражению. Это выражение представляет собой объединение подвыражений, где выполнение каждого подвыражения обеспечивает правильную работу одного вентиля во входной схеме. Таким образом, удовлетворение всего выходного выражения гарантирует, что вся входная схема работает правильно.

Для каждого вентиля вводится новая переменная, представляющая его выход. Небольшое предварительно рассчитанное выражение CNF, связывающее входные и выходные данные, добавляется (через операцию «и») к выходному выражению. Обратите внимание, что входными данными для этих элементов могут быть либо исходные литералы, либо введенные переменные, представляющие выходные данные подэлементов.

Хотя выходное выражение содержит больше переменных, чем входные, оно остается равновыполнимым , что означает, что оно выполнимо тогда и только тогда, когда исходное входное уравнение выполнимо. Когда найдено удовлетворительное присвоение переменных, эти присвоения введенным переменным можно просто отбросить.

К последнему предложению добавляется один литерал: выходная переменная последнего вентиля. Если этот литерал дополняется, то выполнение этого предложения приводит к тому, что выходное выражение становится ложным; в противном случае выражение становится истинным.

Рассмотрим следующую формулу .

Рассмотрим все подформулы (исключая простые переменные):

Введите новую переменную для каждой подформулы:

Соедините все замены и замену на :

Все замены могут быть преобразованы в CNF, например

Подвыражения шлюза

[ редактировать ]

Перечислены некоторые возможные подвыражения, которые можно создать для различных логических элементов. В выражении операции C действует как выход; в подвыражении CNF C действует как новая логическая переменная. Для каждой операции подвыражение CNF истинно тогда и только тогда, когда C придерживается контракта логической операции для всех возможных входных значений.

Тип Операция Подвыражение CNF
И символ И
NAND-символ NAND
символ ИЛИ ИЛИ
Символ НО НИ
НЕ символ НЕТ
символ исключающее ИЛИ БЕСПЛАТНО
символ XNOR ИСНО-ИЛИ

Простая комбинаторная логика

[ редактировать ]

Следующая схема возвращает true, если хотя бы некоторые из ее входных данных верны, но не более двух одновременно. Он реализует уравнение y = x1 · x2 + x1 · x2 + x2 · x3 . Для выхода каждого вентиля вводится переменная; здесь каждый отмечен красным:

Обратите внимание, что на выходе инвертора с x 2 входом представлены две переменные. Хотя это и избыточно, но не влияет на эквивыполнимость полученного уравнения. Теперь замените каждый элемент соответствующим подвыражением CNF:

ворота Подвыражение CNF
ворота1 (ворота1 ∨ x1) ∧ ( ворота1 x1 )
ворота2 ( ворота2 ∨ ворота1) ∧ ( ворота2 ∨ x2) ∧ ( x2 ∨ ворота2 ∨ ворота1 )
ворота3 (ворота3 ∨ x2) ∧ ( ворота3 x2 )
ворота4 ( ворота4 ∨ x1) ∧ ( ворота4 ∨ ворота3) ∧ ( ворота3 ∨ ворота4 ∨ x1 )
ворота5 (ворота5 ∨ x2) ∧ ( ворота5 x2 )
ворота6 ( ворота6 ∨ ворота5) ∧ ( ворота6 ∨ x3) ∧ ( x3 ∨ ворота6 ∨ ворота5 )
ворота7 (ворота7 ∨ ворота2 ) ∧ (ворота7 ∨ ворота4 ) ∧ (ворота2 ∨ ворота7 ∨ ворота4)
ворота8 (ворота8 ∨ ворота6 ) ∧ (ворота8 ∨ ворота7 ) ∧ (ворота6 ∨ ворота8 ∨ ворота7)

Последней выходной переменной является Gate8, поэтому для обеспечения того, чтобы вывод этой схемы был истинным, добавляется еще одно последнее простое предложение: (ворота8). Объединение этих уравнений приводит к окончательному варианту SAT:

(ворота1 ∨ x1) ∧ ( ворота1 x1 ) ∧ ( ворота2 ∨ ворота1) ∧ ( ворота2 ∨ x2) ∧
( x2 ∨ ворота2 ∨ ворота1 ) ∧ (ворота3 ∨ x2) ∧ ( ворота3 x2 ) ∧ ( ворота4 ∨ x1) ∧
( ворота4 ∨ ворота3) ∧ ( ворота3 ∨ ворота4 ∨ x1 ) ∧ (ворота5 ∨ x2) ∧
( ворота 5 x2 ) ∧ ( ворота 6 ∨ ворота 5) ∧ ( ворота 6 ∨ x3) ∧
( x3 ∨ ворота6 ∨ ворота5 ) ∧ (ворота7 ∨ ворота2 ) ∧ (ворота7 ∨ ворота4 ) ∧
(ворота2 ∨ ворота7 ∨ ворота4) ∧ (ворота8 ∨ ворота6 ) ∧ (ворота8 ∨ ворота7 ) ∧
(ворота6 ∨ ворота8 ∨ ворота7) ∧ (ворота8) = 1

Одним из возможных удовлетворительных назначений этих переменных является:

переменная ценить
ворота2 0
ворота3 1
ворота1 1
ворота6 1
ворота7 0
ворота4 0
ворота5 1
ворота8 1
х2 0
х3 1
х1 0

Значения введенных переменных обычно отбрасываются, но по ним можно проследить логический путь в исходной схеме. Здесь, действительно соответствует критериям исходной схемы для вывода истины. Чтобы найти другой ответ, предложение (x1 ∨ x2 ∨ x3 можно добавить ) и снова запустить решатель SAT.

Представлен один из возможных вариантов получения подвыражения CNF для некоторых выбранных вентилей:

ИЛИ Ворота

[ редактировать ]

Логический элемент ИЛИ с двумя входами A и B и одним выходом C удовлетворяет следующим условиям:

  1. если выход C истинен, то хотя бы один из его входов A или B истинен,
  2. если выход C ложен, то оба его входа A и B ложны.

Мы можем выразить эти два условия как сочетание двух импликаций:

Замена импликаций эквивалентными выражениями, включающими только союзы, дизъюнкции и отрицания, дает

что уже почти находится в конъюнктивной нормальной форме . Распределение крайнего правого предложения дважды дает

и применение ассоциативности соединения дает формулу КНФ

НЕ ворота

[ редактировать ]

Вентиль НЕ работает правильно, когда его вход и выход противоположны друг другу. То есть:

  1. если выход C истинен, вход A ложен
  2. если выход C ложен, вход A истинен

выразить эти условия в виде выражения, которое должно быть удовлетворено:

,

НО-ворота

[ редактировать ]

Вентиль NOR работает правильно, если выполняются следующие условия:

  1. если вывод C истинен, то ни A, ни B не являются истинными
  2. если выход C ложный, то хотя бы один из A и B был истинным

выразить эти условия в виде выражения, которое должно быть удовлетворено:

, , , ,
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: c50896633a06e96490332b0b4bf325a6__1716538440
URL1:https://arc.ask3.ru/arc/aa/c5/a6/c50896633a06e96490332b0b4bf325a6.html
Заголовок, (Title) документа по адресу, URL1:
Tseytin transformation - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)