Булевы функции (лабораторные работы)

Загрузить архив:
Файл: ref-31060.zip (460kb [zip], Скачиваний: 231) скачать

<

<

<

<

<

<

<

<

<

<

<

<

<

<

<

<

<

<

<

<

<

<

<

<

<

Лабораторная работа №1

Булевы функции

Функцией алгебры логики (булевой функцией) <0x01 graphic
от переменных 0x01 graphic
называется функция, принимающая значения 1,0 и аргументы которой также принимают значения 1,0.>

Всякая булева функция от <0x01 graphic
переменных может быть задана с помощью таблицы истинности>

<0x01 graphic
>

<0x01 graphic
>

<0x01 graphic
>

<0x01 graphic
>

<0x01 graphic
>

<0x01 graphic
>

0

0

0

<0x01 graphic
>

1

0

0

0

<0x01 graphic
>

1

<0x01 graphic
>

<0x01 graphic
>

<0x01 graphic
>

<0x01 graphic
>

<0x01 graphic
>

0

0

1

<0x01 graphic
>

1

0

1

0

<0x01 graphic
>

1

<0x01 graphic
>

<0x01 graphic
>

<0x01 graphic
>

<0x01 graphic
>

<0x01 graphic
>

Данная таблица состоит из <0x01 graphic
строк, причем в ней все наборы (0x01 graphic
) расположены в порядке возрастания их номеров. Следующие булевы функции мы будем называть элементарными.>

<0x01 graphic
- константа 0;>

<0x01 graphic
- константа 1;>

<0x01 graphic
- тождественная функция;>

<0x01 graphic
- отрицание 0x01 graphic
;>

<0x01 graphic
- конъюнкция 0x01 graphic
и 0x01 graphic
;>

<0x01 graphic
- дизъюнкция 0x01 graphic
и 0x01 graphic
;>

<0x01 graphic
- импликация 0x01 graphic
и 0x01 graphic
;>

<0x01 graphic
- эквивалентность 0x01 graphic
и 0x01 graphic
;>

<0x01 graphic
- сложение 0x01 graphic
и 0x01 graphic
по 0x01 graphic
2;>

<0x01 graphic
- функция Шеффера;>

<0x01 graphic
- функция Пирса.>

Данные функции задаются следующими таблицами истинности

<0x01 graphic
>

<0x01 graphic
>

<0x01 graphic
>

<0x01 graphic
>

<0x01 graphic
>

<0x01 graphic
>

<0x01 graphic
>

<0x01 graphic
>

<0x01 graphic
>

<0x01 graphic
>

<0x01 graphic
>

<0x01 graphic
>

<0x01 graphic
>

0

0

1

1

0

1

0

1

0

0

0

0

1

1

1

1

0

0

1

1

1

1

0

0

0

0

0

1

0

1

1

1

1

1

0

1

1

0

0

1

0

1

1

0

1

1

1

0

1

0

0

0

Приведем определение формулы алгебры логики:

  1. каждая элементарная булева функция - формула;

  2. если некоторое выражение <0x01 graphic
    есть формула, то 0x01 graphic
    тоже формула;>

  3. если некоторые выражения <0x01 graphic
    и 0x01 graphic
    есть формулы, то выражения 0x01 graphic
    0x01 graphic
    0x01 graphic
    , 0x01 graphic
    0x01 graphic
    , 0x01 graphic
    0x01 graphic
    0x01 graphic
    , 0x01 graphic
    0x01 graphic
    0x01 graphic
    , 0x01 graphic
    +0x01 graphic
    , 0x01 graphic
    0x01 graphic
    0x01 graphic
    , 0x01 graphic
    0x01 graphic
    0x01 graphic
    тоже формулы;>

  4. других формул: кроме построенных по п.п.

С целью упрощения записи формул, договоримся, что операция конъюнкция «сильнее» других логических операций, т.е. если в формуле нет скобок, то вначале выполняется операция конъюнкция.

Две формулы <0x01 graphic
и 0x01 graphic
называются равносильными, если они определяют одну и ту же булеву функцию (запись 0x01 graphic
=0x01 graphic
будет означать, что формулы 0x01 graphic
и 0x01 graphic
равносильны).>

Приведем перечень важнейших равносильностей (законов) алгебры логики.

1. <0x01 graphic
- закон тождества;>

2. <0x01 graphic
- закон противоречия;>

3. <0x01 graphic
- закон исключения третьего;>

4. <0x01 graphic
- закон двойного отрицания;>

5. <0x01 graphic
, 0x01 graphic
- законы идемпотентности;>

6. <0x01 graphic
, 0x01 graphic
>

- законы коммутативности;

7. <0x01 graphic
, >

- законы дистрибутивности;

<0x01 graphic
>

8. <0x01 graphic
, 0x01 graphic
>

- законы ассоциативности;

9. <0x01 graphic
, - законы де Моргана;>

<0x01 graphic
>

10. <0x01 graphic
, 0x01 graphic
,>

<0x01 graphic
, 0x01 graphic
.>

11. <0x01 graphic
, 0x01 graphic
>

- законы поглощения;

12. <0x01 graphic
, 0x01 graphic
>

- законы склеивания.

Отметим следующие важнейшие равносильности

13. <0x01 graphic
>

14. <0x01 graphic
>

15. <0x01 graphic
>

16. <0x01 graphic
>

17. <0x01 graphic
>

18. <0x01 graphic
>

19. <0x01 graphic
>

Формула алгебры логики называется тавтологией (тождественно истинной), если при любых значениях переменных она принимает истинное значение.

Формула алгебры логики называется противоречием (тождественно ложной), если при любых значениях переменных она принимает ложное значение.

Формула алгебры логики называется выполнимой, если найдется такой набор значений переменных при котором ее значение истинно.

Пример 1. Является ли формула <0x01 graphic
тавтологией?>

1 способ (табличный)

<0x01 graphic
>

<0x01 graphic
>

<0x01 graphic
>

<0x01 graphic
>

<0x01 graphic
>

<0x01 graphic
>

<0x01 graphic
>

<0x01 graphic
>

<0x01 graphic
>

0

0

0

0

1

1

1

1

0

0

1

1

0

0

1

1

0

1

0

1

0

1

0

1

1

0

0

1

1

0

0

1

1

1

1

1

1

0

0

1

1

1

1

1

0

0

1

1

1

1

1

1

0

1

0

1

1

1

1

1

1

0

0

1

1

1

1

1

1

1

1

1

2 способ (аналитический)

<0x01 graphic
>

<0x01 graphic
>

<0x01 graphic
>

Пример 2. Является ли формула <0x01 graphic
? >

Метод от противного.

Пусть <0x01 graphic
. Тогда>

<0x01 graphic
Отсюда>

<0x01 graphic
>

Из последнего следует, что <0x01 graphic
. Тогда 0x01 graphic
, 0x01 graphic
, что невозможно.>

Пример 3. Равносильны ли формулы?

<0x01 graphic
; 0x01 graphic
>

<0x01 graphic
>

<0x01 graphic
>

<0x01 graphic
>

<0x01 graphic
>

<0x01 graphic
>

Следовательно, формулы равносильны.

Пример 4. Упростить <0x01 graphic
>

<0x01 graphic
>

<0x01 graphic
>

Пример 5. Решить уравнение <0x01 graphic
>

Это уравнение равносильно следующей системе

<0x01 graphic
>

Из второго уравнения следует, что <0x01 graphic
, 0x01 graphic
. Ясно, что тогда 0x01 graphic
. Подставляя в третье уравнение 0x01 graphic
. Следовательно, 0x01 graphic
. Итак, 0x01 graphic
, 0x01 graphic
, 0x01 graphic
- решение искомого уравнения.>

Задания к лабораторной работе №1

I. Построить таблицы истинности для формул

1) <0x01 graphic
>

2) <0x01 graphic
>

3) <0x01 graphic
>

4) <0x01 graphic
>

5) <0x01 graphic
>

6) <0x01 graphic
>

7) <0x01 graphic
>

8) <0x01 graphic
>

9) <0x01 graphic
>

10) <0x01 graphic
>

II. Без построения таблиц истинности докажите, что следующие формулы являются тавтологими

1) <0x01 graphic
>

2) <0x01 graphic
>

3) <0x01 graphic
>

4) <0x01 graphic
>

5) <0x01 graphic
>

6) <0x01 graphic
>

7) <0x01 graphic
>

8) <0x01 graphic
>

9) <0x01 graphic
>

10) <0x01 graphic
>

III. Без построения таблиц истинности докажите, что следующие формулы являются противоречием

1) <0x01 graphic
>

2) <0x01 graphic
>

3) <0x01 graphic
>

4) <0x01 graphic
>

5) <0x01 graphic
>

6) <0x01 graphic
>

7) <0x01 graphic
>

8) <0x01 graphic
>

9) <0x01 graphic
>

10) <0x01 graphic
>

IV. Решить уравнения

1) <0x01 graphic
>

2) <0x01 graphic
>

3) <0x01 graphic
>

4) <0x01 graphic
>

5) <0x01 graphic
>

6) <0x01 graphic
>

7) <0x01 graphic
>

8) <0x01 graphic
>

9) <0x01 graphic
>

10) <0x01 graphic
>

V. Какие из приведенных ниже формул являются тавтологиями, противоречиями, выполнимыми

1) <0x01 graphic
>

2) <0x01 graphic
>

3) <0x01 graphic
>

4) <0x01 graphic
>

5) <0x01 graphic
>

6) <0x01 graphic
>

7) <0x01 graphic
>

8) <0x01 graphic
>

9) <0x01 graphic
>

10) <0x01 graphic
>

VI. Упростить

1) <0x01 graphic
>

2) <0x01 graphic
>

3) <0x01 graphic
>

4) <0x01 graphic
>

5) <0x01 graphic
>

6) <0x01 graphic
>

7) <0x01 graphic
>

8) <0x01 graphic
>

9) <0x01 graphic
>

10) <0x01 graphic
>

VII. Равносильны ли следующие формулы

1) <0x01 graphic
0x01 graphic
>

2) <0x01 graphic
0x01 graphic
>

3) <0x01 graphic
0x01 graphic
>

4) <0x01 graphic
0x01 graphic
>

5) <0x01 graphic
0x01 graphic
>

6) <0x01 graphic
0x01 graphic
>

7) <0x01 graphic
0x01 graphic
>

8) <0x01 graphic
0x01 graphic
>

9) <0x01 graphic
0x01 graphic
>

10) <0x01 graphic
0x01 graphic
>

Контрольные вопросы

  1. Булевы функции. Таблицы истинности.

  2. Число булевых функций от <0x01 graphic
    переменных.>

  3. Элементарные булевы функции.

  4. Формулы алгебры логики. Классификация формул.

  5. Равносильные формулы. Законы равносильости.

  6. Логические уравнения.

Лабораторная работа №2

Нормальные формы булевых функций

Введем обозначение

<0x01 graphic
>

Формула <0x01 graphic
, где 0x01 graphic
, 0x01 graphic
, а среди переменных 0x01 graphic
могут быть совпадающие, называется элементарной конъюнкцией.>

Дизъюнкция элементарных конъюнкций называется дизъюнктивной нормальной формой (сокращенно ДНФ).

Элементарная конъюнкция называется правильной, если в нее каждая переменная входит не более одного раза (включая ее вхождение под знаком отрицания).

Правильная элементарная конъюнкция называется полной относительно переменных <0x01 graphic
, если в нее каждая из этих переменных входит один и только один раз.>

Совершенной дизъюнктивной нормальной формой (СДНФ) относительно переменных <0x01 graphic
называется дизъюнктивная нормальная форма, в которой нет одинаковых элементарных конъюнкций и все элементарные конъюнкции правильны и полны относительно переменных 0x01 graphic
.>

Всякую булеву функцию <0x01 graphic
, не равную тождественно нулю, можно представить совершенной дизъюнктивной нормальной формой:>

<0x01 graphic
(1)>

Пример 1. Найти ДНФ для формулы <0x01 graphic
.>

<0x01 graphic
>

Пример 2. Найти СДНФ для формулы <0x01 graphic
.>

1 способ (табличный). Данный способ основан на разложении (1). Суть его состоит в следующем:

1. составляется таблица истинности для данной формулы;

2. в таблице истинности выделяются наборы <0x01 graphic
, для которых значение формулы истинно;>

3. для каждого такого набора составляются элементарные конъюнкции;

4. составляем дизъюнкции построенных элементарных конъюнкций.

<0x01 graphic
>

<0x01 graphic
>

<0x01 graphic
>

<0x01 graphic
>

<0x01 graphic
>

<0x01 graphic
>

0

0

0

0

1

1

1

1

0

0

1

1

0

0

1

1

0

1

0

1

0

1

0

1

1

1

0

0

0

0

1

1

1

0

0

1

1

0

0

1

1

1

0

1

1

0

1

1

<0x01 graphic
>

<0x01 graphic
>

2 способ (аналитический).

<0x01 graphic
>

<0x01 graphic
.>

Формула вида <0x01 graphic
называется элементарной дизъюнкцией.>

Всякая конъюнкция элементарных дизъюнкций называется конъюнктивной нормальной формой (КНФ).

Элементарная дизъюнкция называется правильной, если у нее каждая переменная входит не более одного раза (включая ее вхождение под знаком отрицания).

Правильная элементарная конъюнкция называется полной относительно переменных <0x01 graphic
, если каждая из этих переменных входит в нее один и только один раз (быть может под знаком отрицания).>

Совершенной конъюнктивной нормальной формой (СКНФ) относительно переменных <0x01 graphic
называется конъюнктивная нормальная форма, в которой нет одинаковых элементарных дизъюнкций и все элементарные дизъюнкции правильны и полны относительно переменных 0x01 graphic
.>

Всякую функцию <0x01 graphic
отличную от тождественно истинной, можно представить совершенной конъюнктивной нормальной формой:>

<0x01 graphic
(2)>

где символ <0x01 graphic
означает, что конъюнкция берется по тем наборам, которые указаны под ним.>

Пример 3. Найти КНФ для формулы <0x01 graphic
.>

<0x01 graphic
>

<0x01 graphic
.>

Пример 4. Найти СКНФ для формулы <0x01 graphic
.>

1 способ (табличный). Данный способ основан на разложении (2). Суть его состоит в следующем:

1. составляется таблица истинности для данной формулы;

2. в таблице истинности выделяются наборы <0x01 graphic
, для которых значение формулы ложно;>

3. для каждого такого набора составляются элементарная дизъюнкция <0x01 graphic
;>

4. составляем конъюнкцию элементарных дизъюнкций.

<0x01 graphic
>

<0x01 graphic
>

<0x01 graphic
>

<0x01 graphic
>

<0x01 graphic
>

<0x01 graphic
>

0

0

0

0

1

1

1

1

0

0

1

1

0

0

1

1

0

1

0

1

0

1

0

1

0

0

1

1

1

1

0

0

1

0

1

0

1

1

1

1

0

0

1

0

1

1

0

0

<0x01 graphic
0x01 graphic
.>

2 способ (аналитический).

<0x01 graphic
>

<0x01 graphic
>

<0x01 graphic
0x01 graphic
.>

Полиномом Жигалкина называется полином вида

<0x01 graphic
>

причем в каждом наборе <0x01 graphic
все различны, а суммирование ведется по некоторому множеству таких не совпадающих наборов, 0x01 graphic
- константа 0 или 1.>

Справедливы следующие равносильности:

21. <0x01 graphic
>

22. <0x01 graphic
>

23. <0x01 graphic
>

24. <0x01 graphic
>

25. <0x01 graphic
>

Каждая булева функция может быть единственным образом выражена при помощи полинома Жегалкина.

Пример 5. Выразить формулу <0x01 graphic
в виде полинома Жегалкина.>

1 способ (метод неопределенных коэффициентов).

<0x01 graphic
>

При <0x01 graphic
имеем: 0x01 graphic
;>

При <0x01 graphic
имеем: 0x01 graphic
;>

При <0x01 graphic
имеем: 0x01 graphic
;>

При <0x01 graphic
имеем: 0x01 graphic
, т.е. 0x01 graphic
.>

Отсюда <0x01 graphic
.>

2 способ.

<0x01 graphic
.>

Приведем полиномы Жегалкина элементарных булевых функций

<0x01 graphic
>

<0x01 graphic
>

<0x01 graphic
>

<0x01 graphic
>

<0x01 graphic
>

Задания к лабораторной работе №2

I. Найти ДНФ для формулы

1) <0x01 graphic
>

2) <0x01 graphic
>

3) <0x01 graphic
>

4) <0x01 graphic
>

5) <0x01 graphic
>

6) <0x01 graphic
>

7) <0x01 graphic
>

8) <0x01 graphic
>

9) <0x01 graphic
>

10) <0x01 graphic
>

II. Найти СДНФ для формулы

1) <0x01 graphic
>

2) <0x01 graphic
>

3) <0x01 graphic
>

4) <0x01 graphic
>

5) <0x01 graphic
>

6) <0x01 graphic
>

7) <0x01 graphic
>

8) <0x01 graphic
>

9) <0x01 graphic
>

10) <0x01 graphic
>

III. Найти КНФ для формулы

1) <0x01 graphic
>

2) <0x01 graphic
>

3) <0x01 graphic
>

4) <0x01 graphic
>

5) <0x01 graphic
>

6) <0x01 graphic
>

7) <0x01 graphic
>

8) <0x01 graphic
>

9) <0x01 graphic
>

10) <0x01 graphic
>

IV. Найти СКНФ для формулы

1) <0x01 graphic
>

2) <0x01 graphic
>

3) <0x01 graphic
>

4) <0x01 graphic
>

5) <0x01 graphic
>

6) <0x01 graphic
>

7) <0x01 graphic
>

8) <0x01 graphic
>

9) <0x01 graphic
>

10) <0x01 graphic
>

V. Найти полином Жегалкина для формулы

1) <0x01 graphic
>

2) <0x01 graphic
>

3) <0x01 graphic
>

4) <0x01 graphic
>

5) <0x01 graphic
>

6) <0x01 graphic
>

7) <0x01 graphic
>

8) <0x01 graphic
>

9) <0x01 graphic
>

10) <0x01 graphic
>

Контрольные вопросы

  1. Разложение булевых функций по переменным.

  2. ДНФ и КНФ. Алгоритм их нахождения.

  3. СДНФ и СКНФ. Алгоритмы их нахождения.

  4. Полином Жегалкина, алгоритмы его нахождения.

Рекомендованная литература

  1. В.Г. Карпов, В.А. Мощенский. Математическая логика и дискретная математика. Минск, «Вышэйшая школа», 1977.

  2. В.А. Мощенский. Лекции по математической логике. Минск, 1973.

  3. А.А. Столяр. Математическая логика. Минск, 1991.

  4. С.В. Яблонский. Введение в дискретную математику. Москва, 1979.

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

Минимизация булевых функций

Дизъюнктивная нормальная форма называется минимальной, если она включает минимальное число символов по сравнению со всеми другими эквивалентными ей дизъюнктивными нормальными формами.

Заметим, что если некоторый символ в формуле, скажем <0x01 graphic
встречается, например, два раза, то при подсчете числа символов в формуле он учитывается два раза.>

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

Сопоставим каждой булевой функции <0x01 graphic
подмножество 0x01 graphic
, которое будем называть областью истинности функции 0x01 graphic
.>

Пусть <0x01 graphic
- ДНФ, где 0x01 graphic
- элементарные конъюнкции. Подмножество 0x01 graphic
называется числом 0x01 graphic
-го ранга, если оно соответствует элементарной конъюнкции 0x01 graphic
0x01 graphic
-го ранга. С каждой ДНФ функции 0x01 graphic
связано покрытие 0x01 graphic
интервалами 0x01 graphic
, таких что 0x01 graphic
.>

Интервал <0x01 graphic
, называется максимальным для булевой функции, если не существует интервала 0x01 graphic
такого, что 0x01 graphic
.>

Если <0x01 graphic
- список всех максимальных интервалов подмножества 0x01 graphic
, то 0x01 graphic
.>

ДНФ <0x01 graphic
булевой функции 0x01 graphic
, соответствующая покрытию подмножества 0x01 graphic
всеми максимальными интервалами, называется сокращенной ДНФ функции 0x01 graphic
.>

Сокращенная ДНФ для любой булевой функции <0x01 graphic
определяется однозначно.>

Рассмотрим алгоритмы построения сокращенная ДНФ.

1 алгоритм - табличный.

Пример 1. Найти сокращенную ДНФ для <0x01 graphic
.>

<0x01 graphic
>

Найдем <0x01 graphic
>

Интервалы <0x01 graphic
и 0x01 graphic
- все максимальные интервалы 0x01 graphic
- сокращенная ДНФ.>

2 алгоритм - метод Блейка:

1) находим ДНФ;

2) производим обобщенные склеивания <0x01 graphic
до тех пор, пока это возможно;>

3) применяем правило поглощения <0x01 graphic
.>

Пример 2. Найти сокращенную ДНФ для <0x01 graphic
.>

Применяя правило обобщенного склеивания, получаем:

<0x01 graphic
>

Затем правило поглощения и находим сокращенную ДНФ <0x01 graphic
.>

3 алгоритм - метод Нельсона:

1) находим КНФ;

2) разрываем скобки в соответствии с дистрибутивным законом;

3) применяем правило поглощения.

Пример 3. Найти сокращенную ДНФ для функции <0x01 graphic
.>

После раскрытия скобок с помощью дистрибутивного закона, получаем <0x01 graphic
. Так как 0x01 graphic
, 0x01 graphic
, то имеем 0x01 graphic
. >

Применяя правило поглощения, получаем сокращенную ДНФ.

IV алгоритм - метод минимизирующих карт.

Пример 4. Найти сокращенную ДНФ для функции <0x01 graphic
.>

Составим минимизирующую карту для данной функции.

<0x01 graphic
>

0

0

1

1

<0x01 graphic
>

<0x01 graphic
0x01 graphic
>

0

1

1

0

0

0

1

0

1

0

0

1

1

0

1

1

1

1

0

0

1

1

1

0

0

1

1

0

Объединяя соседние клетки, соответствующие единичным значениям булевой функции <0x01 graphic
в максимальные интервалы, и сопоставляя им элементарные конъюнкции, получим сокращенную ДНФ. Отметим, что клетки, расположенные по краям таблицы, также считаются соседними.>

Выпишем все максимальные интервалы

<0x01 graphic
0x01 graphic
>

<0x01 graphic
0x01 graphic
>

<0x01 graphic
0x01 graphic
>

<0x01 graphic
0x01 graphic
>

<0x01 graphic
0x01 graphic
>

Итак, <0x01 graphic
- требуемая сокращенная ДНФ.>

Следующее утверждение устанавливает связь между минимальной и сокращенной ДНФ.

Минимальная ДНФ булевой функции получается из сокращенной ДНФ данной функции путем удаления некоторых элементарных конъюнкций.

Покрытие множества <0x01 graphic
максимальными интервалами называется неприводимым, если после удаления из него любого интервала оно перестает быть покрытием. ДНФ булевой функции, соответствующее неприводимому покрытию, называется тупиковой.>

Всякая минимальная ДНФ является тупиковой.

Общая схема решения задачи минимизации булевых функций состоит в следующем:

  1. выделяются все максимальные интервалы и строится сокращенная ДНФ;

  2. строятся все тупиковые ДНФ;

  3. среди всех тупиковых ДНФ выделяются все минимальные ДНФ.

Рассмотрим алгоритм построения всех тупиковых ДНФ. Суть данного алгоритма состоит в следующем:

  1. для булевой функции <0x01 graphic
    строим сокращенную ДНФ;>

  2. для каждого набора <0x01 graphic
    из 0x01 graphic
    , 0x01 graphic
    выделяем в сокращенной ДНФ функции 0x01 graphic
    все такие элементарные конъюнкции 0x01 graphic
    , что 0x01 graphic
    , 0x01 graphic
    ;>

  3. составляем выражение вида

<0x01 graphic
(*)>

  1. применяем к выражению вида (*) законы дистрибутивности и поглощения. В результате получаем

<0x01 graphic
>

Теперь каждая ДНФ <0x01 graphic
является тупиковой ДНФ функции 0x01 graphic
.>

Рассмотрим работу данного алгоритма на следующем примере.

Пример 5. Найти все тупиковые ДНФ для булевой функции <0x01 graphic
.>

Найдем сокращенную ДНФ данной функции по методу Нельсона. Для этого составим СКНФ данной функции используя разложение (2)

<0x01 graphic
>

Применяя закон дистрибутивности, получаем:

<0x01 graphic
>

Обозначим <0x01 graphic
, 0x01 graphic
, 0x01 graphic
, 0x01 graphic
, 0x01 graphic
, 0x01 graphic
.>

<0x01 graphic
составляем выражение (*)>

<0x01 graphic
0x01 graphic
0x01 graphic
0x01 graphic
0x01 graphic
>

Таким образом, <0x01 graphic
имеет шесть тупиковых ДНФ>

<0x01 graphic
>

<0x01 graphic
>

<0x01 graphic
>

<0x01 graphic
>

<0x01 graphic
>

<0x01 graphic
>

Две из них <0x01 graphic
и 0x01 graphic
являются минимальными ДНФ. (метод Квайна)>

Рассмотрим метод импликантных матриц нахождения минимальных ДНФ.

Для булевой функции <0x01 graphic
находим сокращенную ДНФ 0x01 graphic
. Построим для этой функции импликантную матрицу, представляющую собой таблицу, в вертикальные входы которой записываются 0x01 graphic
, и в горизонтальные 0x01 graphic
>

<0x01 graphic
>

<0x01 graphic
>

<0x01 graphic
>

<0x01 graphic
>

<0x01 graphic
>

<0x01 graphic
>

<0x01 graphic
>

<0x01 graphic
>

<0x01 graphic
>

<0x01 graphic
>

+

<0x01 graphic
>

<0x01 graphic
>

Для каждой <0x01 graphic
находим набор 0x01 graphic
такой, что 0x01 graphic
. Клетку импликантной матрицы, образованную пересечением 0x01 graphic
-ой строки и 0x01 graphic
-ого столбца отметим крестиком.>

Чтобы получить минимальную ДНФ заданной функции, достаточно найти минимальное число <0x01 graphic
, 0x01 graphic
, которые совместно накрывают крестиками все столбцы импликантной матрицы.>

Пример 6. Найти минимальные ДНФ для функции <0x01 graphic
.>

Из предыдущего примера следует, что сокращенная ДНФ для данной функции <0x01 graphic
. >

Строим импликантную матрицу

<0x01 graphic
>

<0x01 graphic
>

<0x01 graphic
>

<0x01 graphic
>

<0x01 graphic
>

<0x01 graphic
>

<0x01 graphic
>

+

+

<0x01 graphic
>

+

+

<0x01 graphic
>

+

+

<0x01 graphic
>

+

+

<0x01 graphic
>

+

+

<0x01 graphic
>

+

+

Из таблицы видно, что данная функция имеет две минимальные ДНФ: <0x01 graphic
, 0x01 graphic
.>

Задание к лабораторной работе №3

I. Найти сокращенную ДНФ графическим методом

1) <0x01 graphic
>

2) <0x01 graphic
>

3) <0x01 graphic
>

4) <0x01 graphic
>

5) <0x01 graphic
>

6) <0x01 graphic
>

7) <0x01 graphic
>

8) <0x01 graphic
>

9) <0x01 graphic
>

10) <0x01 graphic
>

II. Найти сокращенную ДНФ методом Блейка

1) <0x01 graphic
>

2) <0x01 graphic
>

3) <0x01 graphic
>

4) <0x01 graphic
>

5) <0x01 graphic
>

6) <0x01 graphic
>

7) <0x01 graphic
>

8) <0x01 graphic
>

9) <0x01 graphic
>

10) <0x01 graphic
>

III. Найти сокращенную ДНФ методом Нельсона

1) <0x01 graphic
>

2) <0x01 graphic
>

3) <0x01 graphic
>

4) <0x01 graphic
>

5) <0x01 graphic
>

6) <0x01 graphic
>

7) <0x01 graphic
>

8) <0x01 graphic
>

9) <0x01 graphic
>

10) <0x01 graphic
>

IV. Найти сокращенную ДНФ методом минимизирующих карт

1) <0x01 graphic
>

2) <0x01 graphic
>

3) <0x01 graphic
>

4) <0x01 graphic
>

5) <0x01 graphic
>

6) <0x01 graphic
>

7) <0x01 graphic
>

8) <0x01 graphic
>

9) <0x01 graphic
>

10) <0x01 graphic
>

VI. Найти все минимальные ДНФ

1) <0x01 graphic
>

2) <0x01 graphic
>

3) <0x01 graphic
>

4) <0x01 graphic
>

5) <0x01 graphic
>

6) <0x01 graphic
>

7) <0x01 graphic
>

8) <0x01 graphic
>

9) <0x01 graphic
>

10) <0x01 graphic
>

Контрольные вопросы

  1. Минимальная дизъюнктивная нормальная форма.

  2. Область истинности булевой функции.

  3. Интервал.

  4. Покрытие области истинности.

  5. Сокращенная ДНФ.

  6. Алгоритмы построения сокращенной ДНФ (Блейка, Нельсона, минимизирующих карт).

  7. Неприводимое покрытие.

  8. Тупиковые ДНФ и алгоритм их построения.

  9. Метод импликантных матриц (метод Квайна).

Лабораторная работа №4

Контактные и логические схемы

В начале нынешнего века известный физик П. Эренфест впервые указал на возможность применения аппарата алгебры логики в технике. Эта идея нашла свое воплощение в работах советского физика В.И. Шестакова, американского математика К. Шеннона и японского инженера А. Касасима. Первыми объектами применения алгебры логики для решения технических задач были контактные схемы. Под контактными схемами мы будем понимать электрические цепи, содержащие только контакты. Каждый контакт может находится в двух состояниях - разомкнут (0) и замкнут (1). Такие цепи мы будем изображать диаграммой, на которой возле контактов пишется <0x01 graphic
или 0x01 graphic
. Причем значение 1 этих переменных соответствует прохождению тока через данный контакт, а значение 0 нет.>

Если контакты <0x01 graphic
и 0x01 graphic
соединены последовательно, то цепь замкнута, когда оба контакта замкнуты и разомкнута, когда хотя бы один из контактов разомкнут. Ясно, что такой схеме >

<0x01 graphic
>

соответствует функция <0x01 graphic
. Схема >

<0x01 graphic
>

соответствует булева функция <0x01 graphic
.>

Указанное соответствие позволяет любую булеву функцию представить в виде контактной схема. С другой стороны любая контактная схема реализуется булевой функцией. Задача анализа контактной схемы и состоит в построении соответствующей ей булевой функции.

Например, контактная схема

<0x01 graphic
>

реализуется булевой функцией <0x01 graphic
.>

Поскольку одна и та же булева функция может быть выражена различными формулами, то ее реализация контактными схемами неоднозначна. Задача синтеза контактной схемы состоит в построении контактной схемы по заданной булевой функции, которая может быть задана как формулой, так и таблицей. Из множества эквивалентных схем, путем упрощения формул выделяют наиболее простую схему. Центральной проблемой синтеза контактных схем является построение для данной булевой функции более простой схемы. Эта проблема сводится к минимизации булевых функций.

Рассмотрим схему

<0x01 graphic
>

Данная схема реализуется следующей формулой <0x01 graphic
. Упростим ее>

<0x01 graphic
>

<0x01 graphic
>

Пример 1. Из контактов <0x01 graphic
, 0x01 graphic
, 0x01 graphic
составить по возможности более простую схему так, чтобы она замкнулась тогда и только тогда, когда замкнуты не менее двух контактов. >

Составим таблицу истинности для булевой функции, соответствующей требуемой контактной схеме

<0x01 graphic
>

<0x01 graphic
>

<0x01 graphic
>

<0x01 graphic
>

0

0

0

0

1

1

1

1

0

0

1

1

0

0

1

1

0

1

0

1

0

1

0

1

0

0

0

1

0

1

1

1

Найдем для данной булевой функции СДНФ

<0x01 graphic
>

Упростим данную формулу

<0x01 graphic
>

Данной формуле соответствует схема

<0x01 graphic
>

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

<0x01 graphic
>

имеющее <0x01 graphic
упорядоченных «входов» и один «выход», причем внутренняя структура этого устройства нас не интересует. На каждый из входов могут подаваться два сигнала, которые мы будем обозначать символами 0 и 1. При каждом наборе сигналов на входах и выходе возникает один из сигналов 0 или 1. Причем набор сигналов на входах однозначно определяет сигнал на выходе. Очевидно, что каждое такое устройство реализует булеву функцию.>

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

Функция

Графическое изображение

Функция

Графическое изображение

<0x01 graphic
>

<0x01 graphic
>

<0x01 graphic
>

<0x01 graphic
>

<0x01 graphic
>

<0x01 graphic
>

<0x01 graphic
>

<0x01 graphic
>

<0x01 graphic
>

<0x01 graphic
>

<0x01 graphic
>

<0x01 graphic
>

<0x01 graphic
>

Из данных логических элементов путем соединения входа одного из них с выходом другого можно строить все более сложные логические схемы. Для получения таким образом схем легко записывают соответствующие им булевы функции.

Например схема

<0x01 graphic
>

реализуется булевой функцией

<0x01 graphic
>

Нетрудно для любой булевой функции построить реализующую ее логическую схему.

Например: <0x01 graphic
>

<0x01 graphic
>

Пример. Построить логическую схему одноразрядного двоичного сумматора.

Сумматор, выполняющий сложение многозначных двоичных чисел, представляет собой последовательное соединение одноразрядных двоичных сумматоров, каждый из которых осуществляет сложение в одном определенном разряде и перенос в старший разряд. Рассмотрим одноразрядный двоичный сумматор, осуществляющий сложение в <0x01 graphic
-м разряде, т.е. устройство с тремя входами 0x01 graphic
, 0x01 graphic
, 0x01 graphic
и двумя выходами 0x01 graphic
и 0x01 graphic
.>

<0x01 graphic
>

Здесь <0x01 graphic
- получаемая сумма, 0x01 graphic
- перенос из младшего разряда, 0x01 graphic
- перенос в старший разряд. Выходы 0x01 graphic
и 0x01 graphic
представляют собой значения некоторых функций, определенных на множестве всевозможных наборов значения входов 0x01 graphic
, 0x01 graphic
, 0x01 graphic
, т.е. 0x01 graphic
, 0x01 graphic
.>

Входы

Выходы

<0x01 graphic
>

<0x01 graphic
>

<0x01 graphic
>

<0x01 graphic
>

<0x01 graphic
>

0

0

0

0

1

1

1

1

0

0

1

1

0

0

1

1

0

1

0

1

0

1

0

1

0

1

1

0

1

0

0

1

0

0

0

1

0

1

1

1

Найдем выражение для <0x01 graphic
и 0x01 graphic
. Для упрощения записей обозначим 0x01 graphic
, 0x01 graphic
, 0x01 graphic
соответственно через 0x01 graphic
, 0x01 graphic
, 0x01 graphic
, а 0x01 graphic
и 0x01 graphic
- через 0x01 graphic
и 0x01 graphic
.>

Тогда <0x01 graphic
, 0x01 graphic
.>

Упростим данные выражения

<0x01 graphic
0x01 graphic
0x01 graphic
>

Таким образом

<0x01 graphic
>

<0x01 graphic
>

Отсюда получаем схему одноразрядного двоичного сумматора

<0x01 graphic
>

Задание к лабораторной работе №4

I. Составить контактные и логические схемы для функций

1) <0x01 graphic
>

2) <0x01 graphic
>

3) <0x01 graphic
>

4) <0x01 graphic
>

5) <0x01 graphic
>

6) <0x01 graphic
>

7) <0x01 graphic
>

8) <0x01 graphic
>

9) <0x01 graphic
>

10) <0x01 graphic
>

II. Упростить схемы

1)

<0x01 graphic
>

2)

<0x01 graphic
>

3)

<0x01 graphic
>

4)

<0x01 graphic
>

5)

<0x01 graphic
>

6)

<0x01 graphic
>

7)

<0x01 graphic
>

8)

<0x01 graphic
>

9)

<0x01 graphic
>

10)

<0x01 graphic
>

III. 1) Нужно, чтобы включение света в комнате осуществлялось с помощью трех различных переключателей так, чтобы нажатие на любой из них приводило к включению света, если он перед этим был включен, и к его выключению, если он включен. Постройте простую цепь удовлетворяющую этому условию.

2) Пусть каждый из пяти членов комитета голосует «за», нажимая кнопку. Постройте простейшую цепь, через которую ток проходил бы тогда и только тогда, когда большинство членов комитета голосует «за».

3) Пусть каждый из пяти членов комитета голосует «за», нажимая кнопку. Постройте простейшую цепь, через которую ток проходил бы тогда и только тогда, когда большинство членов комитета голосует «за», но только при том дополнительном условии, что за него голосует председатель комитета.

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

5) Построить контактные и логические схемы, реализующие функцию от трех аргументов, которая равна I тогда и только тогда, когда один или два аргумента равна I.

6) Построить контактные и логические схемы, реализующие функцию от трех переменных, которая равна I тогда и только тогда, когда один из аргументов принимает значение I.

7) Составьте электронную схему дешифратора, переводящую двоичный код в десятичные цифры.

8) Составить схему-шифратор, переводящую десятичные цифры в соответствующие двоичные коды.

Контрольные вопросы

  1. Контактные схемы.

  2. Логические схемы.

  3. Задача анализа и синтеза контактных схем.

Лабораторная работа №5

Полнота и замкнутость

Система булевых функций <0x01 graphic
называется полной, если любую булеву функцию можно представить в виде суперпозиции функций из 0x01 graphic
.>

Например, следующие системы <0x01 graphic
, 0x01 graphic
, 0x01 graphic
являются полными.>

Множество <0x01 graphic
булевых функций называется замкнутым классом, если любая суперпозиция функций из 0x01 graphic
снова принадлежит 0x01 graphic
.>

Всякая система <0x01 graphic
булевых функций порождает некоторый замкнутый класс. Этот класс состоит из всех булевых функций, которые можно получить суперпозициями из 0x01 graphic
. Такой класс называется замыканием 0x01 graphic
и обозначается 0x01 graphic
. Для замкнутого класса 0x01 graphic
следует, что 0x01 graphic
. Очевидно, что если 0x01 graphic
- полная система, то 0x01 graphic
.>

Рассмотрим следующие классы булевых функций.

<0x01 graphic
- класс булевых функций, сохраняющих константу 0, т.е. функций 0x01 graphic
, для которых 0x01 graphic
.>

<0x01 graphic
- класс булевых функций, сохраняющих константу 1, т.е. функций 0x01 graphic
, для которых 0x01 graphic
.>

Булева функция <0x01 graphic
называется двойственной к функции 0x01 graphic
, если 0x01 graphic
.>

Булева функция <0x01 graphic
называется самодвойственной, если она совпадает с двойственной, т.е. 0x01 graphic
.>

<0x01 graphic
- класс всех самодвойственных функций.>

Булевы функции вида <0x01 graphic
, где 0x01 graphic
, 0x01 graphic
равны нулю или единице, называются линейными.>

<0x01 graphic
- класс всех линейных булевых функций.>

Для того, чтобы определить, является ли данная булева функция линейной или нет, ее надо представить в виде полинома Жегалкина.

Два набора <0x01 graphic
и 0x01 graphic
называются сравнимыми, если 0x01 graphic
, 0x01 graphic
.>

Запись <0x01 graphic
означает, что набор 0x01 graphic
предшествует набору 0x01 graphic
.>

Булева функция <0x01 graphic
называется монотонной, если для любых наборов 0x01 graphic
и 0x01 graphic
таких, что 0x01 graphic
, имеет место неравенство 0x01 graphic
.>

<0x01 graphic
- класс монотонных функций.>

Теорема (о функциональной полноте). Для того, чтобы система булевых функций была полной, необходимо и достаточно, чтобы она целиком не содержалась ни в одном из пяти классов <0x01 graphic
, 0x01 graphic
, 0x01 graphic
, 0x01 graphic
, 0x01 graphic
.>

В тех задачах, где требуется выяснить, является ли данная система булевых функций <0x01 graphic
полной, мы будем составлять таблицы, которые называются таблицами Поста.>

<0x01 graphic
>

<0x01 graphic
>

<0x01 graphic
>

<0x01 graphic
>

<0x01 graphic
>

<0x01 graphic
>

<0x01 graphic
>

<0x01 graphic
>

<0x01 graphic
>

<0x01 graphic
>

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

Пример 1. Выяснить, является ли функция <0x01 graphic
линейной.>

Найдем полином Жегалкина для данной функции.

<0x01 graphic
, >

<0x01 graphic
>

<0x01 graphic
>

<0x01 graphic
Следовательно, данная функция линейна.>

Пример 2. Какие из указанных функций являются монотонными:

а) <0x01 graphic
б) 0x01 graphic
>

а) Упростим формулу <0x01 graphic
. Эта функция равна нулю на наборах (0,0,0), (0,1,0), (1,0,0). Все оставшиеся наборы, исключая (0,0,1) содержат не менее двух единиц, а значит, они могут быть только больше. Набор (0,0,1) 0x01 graphic
(0,0,0), а с остальными двумя он несравним. Значит, рассматриваемая функция монотонна.>

б) Функция немонотонна, т.к. (0,0) <0x01 graphic
(1,0), но 0x01 graphic
.>

Пример 3. Является ли функция <0x01 graphic
самодвойственной?>

Найдем двойственную функцию к данной

<0x01 graphic
>

Следовательно, данная функция самодвойственная.

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

а) <0x01 graphic
б) 0x01 graphic
в) 0x01 graphic
>

а) <0x01 graphic
. Ясно, что 0x01 graphic
, 0x01 graphic
. Так как 0x01 graphic
, то 0x01 graphic
. Найдем полином Жегалкина для 0x01 graphic
. Следовательно, 0x01 graphic
. Так как (0,0) 0x01 graphic
(1,1), но 0x01 graphic
, то 0x01 graphic
. Таблица Поста для системы 0x01 graphic
имеет вид.>

<0x01 graphic
>

<0x01 graphic
>

<0x01 graphic
>

<0x01 graphic
>

<0x01 graphic
>

<0x01 graphic
>

-

-

-

-

-

Итак, <0x01 graphic
- полная система.>

б)

<0x01 graphic
>

<0x01 graphic
>

<0x01 graphic
>

<0x01 graphic
>

<0x01 graphic
>

<0x01 graphic
>

+

-

-

+

+

<0x01 graphic
>

-

+

-

+

+

<0x01 graphic
>

+

+

-

-

+

<0x01 graphic
>

+

+

+

+

-

Функция <0x01 graphic
самодвойственна, так как>

<0x01 graphic
>

Функция <0x01 graphic
немонотонная, так как (0,0,1) 0x01 graphic
(0,1,1), но 1=0+0+1>0+1+1=0.>

Система <0x01 graphic
- полная система.>

в)

<0x01 graphic
>

<0x01 graphic
>

<0x01 graphic
>

<0x01 graphic
>

<0x01 graphic
>

<0x01 graphic
>

-

-

+

+

-

<0x01 graphic
>

+

+

+

-

-

Функция <0x01 graphic
самодвойственная, так как >

<0x01 graphic
>

Итак, система <0x01 graphic
целиком принадлежит классу 0x01 graphic
. Следовательно, по теореме о полноте 0x01 graphic
не является полной системой.>

Задания к лабораторной работе №5

I. Какие из указанных систем функций являются замкнутыми классами?

1) Линейная функция;

2) самодвойственные функции;

3) монотонные функции;

4) монотонно убывающие функции;

5) функции, сохраняющие нуль;

6) функции, сохраняющие единицу;

7) функции, сохраняющие и нуль, и единицу;

8) функции, сохраняющие нуль, но не сохраняющие единицу;

9) функции от одной переменной;

10) функции от двух переменных.

II. Являются ли следующие функции линейными?

1) <0x01 graphic
>

2) <0x01 graphic
>

3) <0x01 graphic
>

4) <0x01 graphic
>

5) <0x01 graphic
>

6) <0x01 graphic
>

7) <0x01 graphic
>

8) <0x01 graphic
>

9) <0x01 graphic
>

10) <0x01 graphic
>

III. Являются ли следующие функции монотонными?

1) <0x01 graphic
>

2) <0x01 graphic
>

3) <0x01 graphic
>

4) <0x01 graphic
>

5) <0x01 graphic
>

6) <0x01 graphic
>

7) <0x01 graphic
>

8) <0x01 graphic
>

9) <0x01 graphic
>

10) <0x01 graphic
>

IV. Являются ли следующие функции самодвойственными?

1) <0x01 graphic
>

2) <0x01 graphic
>

3) <0x01 graphic
>

4) <0x01 graphic
>

5) <0x01 graphic
>

6) <0x01 graphic
>

7) <0x01 graphic
>

8) <0x01 graphic
>

9) <0x01 graphic
>

10) <0x01 graphic
>

V. Являются ли следующие системы функций полными?

1) <0x01 graphic
>

2) <0x01 graphic
>

3) <0x01 graphic
>

4) <0x01 graphic
>

5) <0x01 graphic
>

6) <0x01 graphic
>

7) <0x01 graphic
>

8) <0x01 graphic
>

9) <0x01 graphic
>

10) <0x01 graphic
>

Контрольные вопросы

  1. Полные системы булевых функций.

  2. Замыкание.

  3. Замкнутые классы.

  4. Классы <0x01 graphic
    .>

  5. Теорема о полноте.

9

8

7

6

5

4

3

2

19

18

17

16

15

14

13

12

11

10

29

28

27

26

25

24

23

22

21

20

39

38

37

36

35

34

33

32

31

30

49

48

47

46

45

44

43

42

41

40

59

58

57

56

55

54

53

52

51

50