Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
DiskretMat(lab).doc
Скачиваний:
7
Добавлен:
17.11.2019
Размер:
1.84 Mб
Скачать

Теоретическая часть

Рассмотрим элементарные булевы функции определенные на множестве и опишем их как некоторые нестандартные функции произвольного алгоритмического языка:

  • Дизъюнкция: Diz(x,y): if (x=0) and (y=0) then 0 else 1;

  • Конъюнкция: Kon(x,y): if (x=1) and (y=0) then 1 else 0;

  • Отрицание: Ne(x): if (x=0) then 1 else 0;

  • Импликация: Imp(x,y): if (x=1) and (y=0) then 0 else 1;

  • Сумма по модулю 2: Mod2(x,y): if ((x=0) and (y=1)) or ((x=1) and (y=0)) then 1 else 0;

  • Эквивалентность: Akv(x,y): Ne(Mod2(x,y));

  • Штрих Шеффера: Sheff(x,y): Ne(Kon(x,y));

  • Стрелка Пирса: Pirs(x,y): Ne(Diz(x,y)).

Формулой над множеством называется всякое (и только такое) выражение вида:

  1. и , где - нуль-местный, а - n-местный функциональные символы и - переменные их множества .

  2. , где - s-местный функциональный символ и , - либо формула над , либо переменная из .

Пусть заданы на множестве булевых функций заданы две формулы и .

Понятие функции , реализуемой формулой над множеством связок , вводится следующим образом:

  1. формуле , где , сопоставляется тождественная функция ;

  2. если (или , где ), то (соответственно , где символ надо понимать уже как обозначение для соответствующей элементарной булевой функции).

Пусть - множество тех переменных, которые встречаются хотя бы в одной их формул или . Формулы и называются эквивалентными (обозначение: ), если на всяком наборе значений переменных значения функций и , реализуемых соответственно формулами и , совпадают.

Лабораторная работа состоит в построении двух формул на классе булевых функций и проверке их тождественности.

Входные параметры: матрица размерности всех различных наборов значений переменных и две формулы, реализующие булевы функции переменных.

Выходные параметры: , если заданные формулы неэквивалентны и , если заданные формулы эквивалентны.

Указания к выполнению лабораторной работы

  1. Построить матрицу, реализующую все различные наборы значений переменных. Построение может быть основано на принципе записи десятичных чисел в двоичных кодах или вестись по столбцам матрицы, учитывая, что в последнем столбце 0 чередуется с 1 через одну строку, во втором столбце – через две строки, в третьем – через четыре строки и т.д. Алгоритм, выполняющий данное построение, должен быть записан в виде процедуры ( ) или программного модуля ( ). Замечание: алгоритм должен быть построен для n переменных, где n – любое натуральное число, задаваемое с экрана.

  2. Реализовать приведенные выше булевы функции. Алгоритм оформить в виде функций ( ).

  3. Записать указанные в задании формулы с помощью построенных функций (например, запись примет следующий вид: Imp(Kon(x,y),z)).

  4. Продвигаясь в цикле по строкам матрицы, вычислить значения функций, реализованных заданными формулами, на каждом наборе.

  5. Сравнить в цикле полученные вектора и . Результат сравнения , если полученные вектора различны и , если полученные вектора равны между собой.

Варианты заданий

;

;

;

;

;

;

;

;

;

;

;

.

Лабораторная работа № 3.

Построение и быстрое вычисление совершенной ДНФ.

Постановка задачи. Методом элементарных преобразований построить совершенную ДНФ, вычислить ее значение с помощью «быстрого» алгоритма и записать совершенную ДНФ по таблице истинности.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]