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

<

<

<

<

<

<

<

<

<

<

<

<

<

<

<

<

<

<

<

<

<

<

<

<

<

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

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

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

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

<>

<>

<>

<>

<>

<>

0

0

0

<>

1

0

0

0

<>

1

<>

<>

<>

<>

<>

0

0

1

<>

1

0

1

0

<>

1

<>

<>

<>

<>

<>

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

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

< - константа 1;>

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

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

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

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

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

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

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

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

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

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

<>

<>

<>

<>

<>

<>

<>

<>

<>

<>

<>

<>

<>

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. если некоторое выражение < есть формула, то тоже формула;>

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

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

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

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

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

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

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

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

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

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

6. <, >

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

7. <, >

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

<>

8. <, >

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

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

<>

10. <, ,>

<, .>

11. <, >

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

12. <, >

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

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

13. <>

14. <>

15. <>

16. <>

17. <>

18. <>

19. <>

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

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

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

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

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

<>

<>

<>

<>

<>

<>

<>

<>

<>

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 способ (аналитический)

<>

<>

<>

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

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

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

< Отсюда>

<>

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

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

<; >

<>

<>

<>

<>

<>

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

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

<>

<>

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

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

<>

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

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

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

1) <>

2) <>

3) <>

4) <>

5) <>

6) <>

7) <>

8) <>

9) <>

10) <>

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

1) <>

2) <>

3) <>

4) <>

5) <>

6) <>

7) <>

8) <>

9) <>

10) <>

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

1) <>

2) <>

3) <>

4) <>

5) <>

6) <>

7) <>

8) <>

9) <>

10) <>

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

1) <>

2) <>

3) <>

4) <>

5) <>

6) <>

7) <>

8) <>

9) <>

10) <>

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

1) <>

2) <>

3) <>

4) <>

5) <>

6) <>

7) <>

8) <>

9) <>

10) <>

VI. Упростить

1) <>

2) <>

3) <>

4) <>

5) <>

6) <>

7) <>

8) <>

9) <>

10) <>

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

1) < >

2) < >

3) < >

4) < >

5) < >

6) < >

7) < >

8) < >

9) < >

10) < >

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

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

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

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

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

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

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

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

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

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

<>

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

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

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

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

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

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

< (1)>

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

<>

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

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

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

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

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

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

<>

<>

<>

<>

<>

<>

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

<>

<>

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

<>

<.>

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

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

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

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

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

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

< (2)>

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

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

<>

<.>

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

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

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

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

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

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

<>

<>

<>

<>

<>

<>

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

<.>

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

<>

<>

<.>

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

<>

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

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

21. <>

22. <>

23. <>

24. <>

25. <>

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

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

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

<>

При < имеем: ;>

При < имеем: ;>

При < имеем: ;>

При < имеем: , т.е. .>

Отсюда <.>

2 способ.

<.>

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

<>

<>

<>

<>

<>

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

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

1) <>

2) <>

3) <>

4) <>

5) <>

6) <>

7) <>

8) <>

9) <>

10) <>

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

1) <>

2) <>

3) <>

4) <>

5) <>

6) <>

7) <>

8) <>

9) <>

10) <>

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

1) <>

2) <>

3) <>

4) <>

5) <>

6) <>

7) <>

8) <>

9) <>

10) <>

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

1) <>

2) <>

3) < >

4) <>

5) < >

6) <>

7) <>

8) <>

9) <>

10) <>

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

1) <>

2) <>

3) <>

4) <>

5) <>

6) <>

7) <>

8) <>

9) <>

10) <>

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

<>

Найдем <>

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

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

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

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

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

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

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

<>

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

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

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

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

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

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

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

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

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

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

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

<>

0

0

1

1

<>

<>

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

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

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

< >

< >

< >

< >

< >

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

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

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

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

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

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

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

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

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

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

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

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

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

< (*)>

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

<>

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

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

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

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

<>

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

<>

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

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

<>

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

<>

<>

<>

<>

<>

<>

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

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

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

<>

<>

<>

<>

<>

<>

<>

<>

<>

<>

+

<>

<>

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

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

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

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

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

<>

<>

<>

<>

<>

<>

<>

+

+

<>

+

+

<>

+

+

<>

+

+

<>

+

+

<>

+

+

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

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

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

1) <>

2) <>

3) <>

4) <>

5) <>

6) <>

7) <>

8) <>

9) <>

10) <>

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

1) <>

2) <>

3) <>

4) <>

5) <>

6) <>

7) <>

8) <>

9) <>

10) <>

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

1) <>

2) <>

3) <>

4) <>

5) <>

6) <>

7) <>

8) <>

9) <>

10) <>

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

1) <>

2) <>

3) <>

4) <>

5) <>

6) <>

7) <>

8) <>

9) <>

10) <>

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

1) <>

2) <>

3) <>

4) <>

5) <>

6) <>

7) <>

8) <>

9) <>

10) <>

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

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

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

  3. Интервал.

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

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

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

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

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

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

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

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

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

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

<>

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

<>

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

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

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

<>

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

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

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

<>

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

<>

<>

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

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

<>

<>

<>

<>

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

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

<>

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

<>

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

<>

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

<>

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

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

Функция

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

Функция

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

<>

<>

<>

<>

<>

<>

<>

<>

<>

<>

<>

<>

<>

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

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

<>

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

<>

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

Например: <>

<>

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

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

<>

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

Входы

Выходы

<>

<>

<>

<>

<>

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

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

Тогда <, .>

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

<>

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

<>

<>

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

<>

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

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

1) <>

2) <>

3) <>

4) <>

5) <>

6) <>

7) <>

8) <>

9) <>

10) <>

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

1)

<>

2)

<>

3)

<>

4)

<>

5)

<>

6)

<>

7)

<>

8)

<>

9)

<>

10)

<>

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

<>

<>

<>

<>

<>

<>

<>

<>

<>

<>

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

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

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

<, >

<>

<>

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

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

а) < б) >

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

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

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

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

<>

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

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

а) < б) в) >

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

<>

<>

<>

<>

<>

<>

-

-

-

-

-

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

б)

<>

<>

<>

<>

<>

<>

+

-

-

+

+

<>

-

+

-

+

+

<>

+

+

-

-

+

<>

+

+

+

+

-

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

<>

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

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

в)

<>

<>

<>

<>

<>

<>

-

-

+

+

-

<>

+

+

+

-

-

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

<>

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

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

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

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

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

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

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

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

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

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

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

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

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

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

1) <>

2) < >

3) <>

4) <>

5) <>

6) <>

7) <>

8) <>

9) <>

10) <>

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

1) <>

2) <>

3) <>

4) <>

5) <>

6) <>

7) <>

8) <>

9) < >

10) <>

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

1) <>

2) <>

3) <>

4) <>

5) <>

6) <>

7) <>

8) <>

9) <>

10) <>

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

1) <>

2) <>

3) <>

4) <>

5) <>

6) <>

7) <>

8) <>

9) <>

10) <>

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

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

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

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

  4. Классы <.>

  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