проблема преобразования выражения в форму CNF - PullRequest
1 голос
/ 17 февраля 2020

У меня есть вектор двух логических a1 [n] и a2 [n].

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

Предположим для записи условия для первого бита: (a1 [0] ИЛИ a2 [0]) И (! A1 [0] ИЛИ! A2 [0]). Мы можем расширить это понятие как [(a1 [0] ИЛИ a2 [0]) И (! A1 [0] ИЛИ! A2 [0])] ИЛИ [(a1 [1] ИЛИ a2 [1 ]) И (! A1 [1] ИЛИ! A2 [1])] ............... ИЛИ (a1 [n-1] ИЛИ a2 [n -1]) И (! A1 [n-1] ИЛИ! A2 [n-1]).

Но эти пункты связаны с помощью операций ИЛИ , которые мы должны расширить, используя де Моргана и некоторые другие формулы. Но у меня есть динамическое значение c n: это размер вектора. Как я могу обобщить это условие в CNF? Я новичок в использовании формул CNF. Любой ресурс или руководство очень помогают.

...