Вопрос

Предположим, у меня есть два Crom Formulas $ \ psi_1, \PSI_2 $ .Формулы KROM - это формулы пропозициональных в CNF, которые имеют 2 литерала в каждом пункте.Каждый буквальный может быть отрицательный или не отрицательный.Другими словами, $ \ psi_1, \ psi_2 $ 2-CNF формул.Например:

$ (x_1 \ vee \ neg x_2) \ land (\ neg x_2 \ vee x_3) \ land (x_3 \ vee x_4) $

Я хочу решить, стоит ли $ \ psi_1, \ psi_2 $ логически эквивалентен, то есть $ \ psi_1 \ leftrightarrow\ psi_2 $ .Эквивалентно, я хочу проверить, стоит ли $ f= (\ psi_1 \ vee \ neg \ psi_2) \ enge (\ neg \ psi_1 \ vee \ psi_2) $ Все задания $ x_1, \ dots, x_n $ .

Эта проблема тяготана?

Это было полезно?

Решение

Да, эквивалентность может быть проверена в полиноме времени (на самом деле, в квадратичном времени).

Я опишу, как проверить, будет ли $ \ psi_1 \ lor \ neg \ psi_2 $ для всех заданий. Вы можете сделать то же самое для $ \ neg \ psi_1 \ lor \ psi_2 $ и используйте это, чтобы проверить, будет ли $ F $ - это тавтология, т. Е. Будь то $ \ psi_1, \ psi_2 $ логически эквивалентны.

Я сделаю это, проверив, есть ли $ \ psi_1 \ lor \ neg \ psi_2 $ false для любого назначения, или другими словами, будь то $ \ neg (\ psi_1 \ lor \ neg \ psi_2) $ удовлетворяет. Обратите внимание, что

$$ \ neg (\ psi_1 \ lor \ neg \ psi_2)=neg \ psi_1 \ land \ psi_2, $$

Так что достаточно, чтобы проверить удовлетворяемость $ \ neg \ psi_1 \ land \ psi_2 $ где $ \ psi_1, \ PSI_2 $ являются формулами KROM (2-CNF).

Предположим, что $ \ psi_1= c_1 \ land \ cdots \ land c_k $ где $ C_i $ это $ i $ th prose в $ \ psi_1 $ . Тогда

$$ \ neg \ psi_1= (\ neg C_1) \ lor \ cdots \ lor (\ neg c_k). $$

Следовательно,

$$ \ begin {align *} \ neg \ psi_1 \ land \ psi_2 &= ((\ neg c_1) \ lor \ cdots \ lor (\ neg c_k)) \ land \ psi_2 \\ &= (\ neg c_1 \ land \ psi_2) \ lor \ cdots \ lor (\ neg c_k \ land \ psi_2). \ end {align *} $$

Теперь, $ \ neg \ psi_1 \ land \ psi_2 $ удовлетворяет iff $ \ neg c_i \ land \ psi_2 $ удовлетворяется для некоторых $ i $ . Итак, мы можем произойти за счет $ i $ и тестовая удовлетворяемость каждого $ \ neg c_i \ land \ psi_2 $ ; Если кто-то из них будет удовлетворен, то $ \ neg \ psi_1 \ lor \ psi_2 $ удовлетворяет и $ F $ не тавтология и $ \ psi_1, \ psi_2 $ не логически эквивалентны.

Как проверить удовлетворяемость $ \ neg c_i \ land \ psi_2 $ ? Ну, $ C_i $ имеет форму $ (\ ell_1 \ lor \ ell_2) $ где $ \ ell_1, \ ell_2 $ - это два литерала, поэтому $ \ neg C_i \ land \ psi_2 $ имеет форму < Spaness Class="Math-Container"> $ \ neg \ el_1 \ land \ neg \ el_2 \ land \ psi_2 $ . Это также формула KROM (2-CNF), поэтому вы можете проверить свою удовлетворительность с использованием стандартного алгоритма многонового времени. Вы делаете линейное количество таких испытаний, поэтому общее время работы - многочлена. На самом деле, это квадратично, так как устойчивость к тестированию может быть сделана в линейном времени.

Другие советы

Реконт. 2-SAT STRECT, который использует сильно подключенные компоненты: мы строим график с вершинами $ x_1, \ ldots, x_n, \ lnot x_1, \ ldots, \ lnot x_n $ < / span>, и мы заменяем каждый пункт $ x_i \ lor x_j $ с ребрами $ \ lnot x_i \ to x_j $ < / span> и $ \ lnot x_j \ to x_i $ . Пример от Здесь :

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

Чтобы удовлетворить формулу, необходимо и достаточное назначение вершин, чтобы на графике нет противоречий (без ребра $ true \ для false $ ). Мы будем использовать эти графики для проверки эквивалентности.

  1. Мы создаем эти графики $ G_1 $ и $ G_2 $ для обоих формул $ f_1 $ и $ f_2 $ .
  2. Если есть цикл $ x_i \ readsto \ lnot x_i \ leadsto x_i $ на графике, то его формула не имеет решений. Мы проверяем, что оба формулы разрешимы / неразрешимы.
  3. Если существует путь формы $ x_i \ readsto \ lnot x_i $ (аналогично для случая $ \ lnot x_i \ readsto x_i $ ), мы знаем, что для удовлетворения формулы мы должны выбрать $ x_i $ , чтобы быть ложным (в противном случае у нас есть противоречие). Мы помним этот выбор. Используя график, мы можем назначать значения для всех вершин, доступных из $ \ lnot x_i $ (они должны быть правдой). Опять же, убедитесь, что оба формулы сделали именно те же решения в конце.
  4. Удалите все края в / от всех известных вершин от графиков.
  5. теперь $ f_1 $ и $ f_2 $ эквивалентны $ v_1, v_2 $ путь $ G_1 $ iff, он существует в $ G_2 $ . Это можно проверить в большинстве $ o (| v | \ cdot | e |) $ время (просто запустите dfs от каждой вершины и убедитесь, что оно посетило то же самое вершины для обоих графов). Может быть, это можно сделать быстрее.
  6. <Сильные> Доказательство :

    $ \ fenderarrows $ : очевидно, поскольку после переходного закрытия графов у нас есть те же последствия в обоих формулах.

    $ \ pruralarrow $ : путем противоречия. WLOG Мы предполагаем, что существует путь $ v_1 \ veadsto v_2 $ в $ G_1 $ который не Существуют в $ g_2 $ . Это означает, что назначение $ v_1:= true $ , $ v_2:= false $ возможен в $ f_2 $ (поскольку нет пути $ v_1 \ redsto v_2 $ ), но неисправен в $ f_1 $ .

    Именно следующее назначение удовлетворяет $ f_2 $ :

      .
    • $ true $ Для всех вершин, доступных из $ v_1 $ .
    • $ false $ От всех вершин, которые могут достигать $ v_2 $ .
    • Удалите все известные вершины (упомянутые выше и их дополнения) с графика. Все остальные вершины создают подключенные компоненты. Мы связываем соединенные компоненты в $ TRUE $ и подключенные компоненты, соответствующие их дополнениям - в $ false $ ( см. Примечание ниже).

    Это задание не имеет противоречия, поскольку не может быть никаких преимуществ $ u \ to v $ form $ true \ до false $ :

      .
    • Если $ u $ принадлежит компоненту, который был полностью окрашенным $ true $ , то такое SPAN CLASS= «Математический контейнер»> $ V $ также должен быть правдой.
    • в противном случае, это означает, что $ u $ достижимо от $ v_1 $ , и, следовательно, $ V $ также достижимо от $ v_1 $ и должен быть правдой. $ \ blacksquare $

    <Сильная> Техническая нота : для каждой переменной $ x_i $ Есть две вершины:

Класс="Математический контейнер"> $ v_i $ и $ \ lnot v_i $ - и можно задуматься, что он приведет к некоторым проблемам сназначения.Ответ заключается в том, что после шага 4) $ v_i $ и $ \ lnot v_i $ будет в двухРазличные компоненты (кроме того, они симметричны: $ u \ to v $ в одном компонент означает $ \ lnot u \ to \lnot v $ в другом).Следовательно, какое бы решение мы делаем для $ u $ в одном компонент, мы можем сделать противоположное решение для $ \ lnot u $ в другом.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с cs.stackexchange
scroll top