Для логических функций, заданных вектором значений, запишите СДНФ (СКНФ), определите сокращённую дизъюнктивную нормальную форму (сокр. ДНФ), а также полином Жегалкина (алгебраическая нормальная форма).
Изобразите в среде программирования PC WorX функциональные блоковые диаграммы, соответствующие СДНФ, СКНФ, сокр. ДНФ и полиномe Жегалкина (алгебраическая нормальная форма) формулы F (сразу 4 на одной рабочей области).
Составьте таблицы истинности и используйте их для проверки в режиме отладки составленные в среде программирования PC WorX функциональные блоковые диаграммы.
Пример выполнения лабораторной работы
Для примера рассмотрим вариант вектора значений F = (01100100).
Таблица истинности, соответствующая формулы F= (01100100), представляет собой таблицу следующего вида (табл. 1).
Для составления формулы в виде СДНФ для формулы, не соответствующей тождественно ложной (противоречию) булевой формулы, необходимо выбрать выражения, соответствующие строкам, где формулы истинны, и соединить их операцией "Логическая дизъюнкция", при этом если в какой-либо строке логическая переменная имеет ложное значение, то в соответствующем выражении она используется с инверсией (в табл. 2 показаны всевозможные «навешивания» инверсии над логическими переменными для построения СДНФ).
Обозначим полученную СДНФ через F1.
Для составления формулы в виде СКНФ для формулы, не соответствующей тождественно истинной (тавтологии) булевой формулы, необходимо выбрать выражения, соответствующие строкам, где формулы ложны, и соединить их операцией "Логическая конъюнкция", при этом если в какой-либо строке логическая переменная имеет истинное значение, то в соответствующем выражении она используется с инверсией (в табл. 3 показаны всевозможные выражения для построения СКНФ).
Обозначим полученную СКНФ через F2.
Получим полином Жегалкина (алгебраическую нормальную форму для формулы F= (01100100)). Заполним таблицу (табл. 4) по следующим правилам:
1. Первые четыре столбца взяты из условия (заполняются стандартным образом).
2. В пятом столбце строится треугольник Паскаля: верхняя строка такого треугольника представляет собой строку значений исходной формулы ; в каждой строке, начиная со второй, любой элемент треугольника равен сумме по модулю 2 (XOR) двух элементов предыдущей строки, расположенной над ним, т.е. элементы второй и последующих строк определяются по следующим правилам: 0 + 1 = 1, 1 + 0 = 1, 0 + 1 = 1, 1 + 1 = 0, 1 + 0 = 1, 0 + 0 = 0, 0 + 1 = 1.
3. В шестом столбце указаны конъюнкции переменных, значения которых в одном из первых трёх столбцов равны 1 (заметим, что набору (0, 0, 0) соответствует слагаемое 1).
Проверим правильность полученного полинома Жегалкина построением таблицы истинности (табл. 5).
Результат таблицы 5 показывает, что полином Жегалкина для формулы F= (01100100) определён верно.
Изобразим в среде программирования PC WorX функциональные блоковые диаграммы для СДНФ F1, СКНФ F2, сокр. ДНФ F3 и полинома Жегалкина F4 для логической функции, заданной вектором значений, F= (01100100).
Проверим правильность построения функциональных блоковых диаграмм в режиме отладки:
Варианты для самостоятельного выполнения лабораторной работы:
Варианты для самостоятельного выполнения лабораторной работы: