2. УДК 519.17
МАТЕМАТИЧЕСКАЯ ЛОГИКА [Текст]+[Электронный
ресурс]: Методические указания к выполнению кон-
трольных работ № 1, 2 для студентов 1-го курса заочной
формы обучения по направлению подготовки 09.03.01
«Информатика и вычислительная техника» (квалифика-
ция «бакалавр») – Брянск: БГТУ, 2015. – 16 с
Разработал Пугач Л.И.,
канд. физ.-матем. наук, доц.
Рекомендовано кафедрой «Информатика и программное
обеспечение» (протокол № 1 от 01.09.14)
3. 3
ПРЕДИСЛОВИЕ
Методические указания к выполнению контрольных работ
№ 1,2 предназначены для студентов заочной формы обучения по
направлению подготовки 09.03.01 «Информатика и вычислительная
техника» (квалификация «бакалавр»).
В них содержатся краткие теоретические сведения, необходи-
мые для выполнения заданий к контрольным работам, и примеры
выполнения заданий.
Варианты заданий к контрольным работам № 1,2 приведены в
приложении. Варианты заданий к контрольным работам указывает
преподаватель.
Целью выполнения контрольных работ является приобретение
практических навыков использования логических тождеств и таблиц
истинности булевых функций, приведения булевых функций к стан-
дартным формам, а также решения важнейшей задачи о проверке
полноты систем булевых функций.
КОНТРОЛЬНАЯ РАБОТА № 1
Стандартные формы булевых функций
Булевы функции (далее для краткости БФ) можно представлять
в самых разных видах благодаря наличию многочисленных логиче-
ских тождеств.
Приведем несколько наиболее значимых логических тождеств:
1. x x= .
2. x y x yÚ = × – первое правило де Моргана.
3. xy x y= Ú – второе правило де Моргана.
4. (x y)z xz yzÚ = Ú – раскрытие скобок.
5. x ~ y xy x y= Ú × – выражение эквиваленции через основные
логические операции.
4. 4
6. x y xy xyD = Ú – выражение исключающего «или» через
основные логические операции.
7. x y x yÞ = Ú – выражение импликации через основные ло-
гические операции.
8. x ~ y x y= D – отрицание эквиваленции (отсюда ясно, что и
наоборот, x y x ~ yD = ).
9. x y x yÞ = × – отрицание импликации.
10. x x xÚ = .
11. x x x× = .
12. 1x xÚ = .
13. 0x x× = .
14. 1 1 1x , x xÚ = × =
15. 0 0 0x x, xÚ = × =
Пользуясь этими тождествами, можно проводить самые разные
преобразования БФ. Однако при этом необходимо иметь какую-то
цель, а не просто заменять одно выражение другим.
Потребности математической логики привели к трём конкрет-
ным целям.
а) Совершенная дизъюнктивная нормальная форма (СДНФ) –
это дизъюнкция нескольких элементарных конъюнкций (ЭК) вида
1 2 ki i ix x ... x× × × , где отрицания могут стоять на любых местах.
СДНФ обладает наибольшей логической простотой, так как ясно по-
казывает все возможные случаи, когда истинна БФ.
Приводить формулу к виду СДНФ лучше всего с помощью сле-
дующего алгоритма.
Шаг 1. Добиться, чтобы в формуле остались только дизъюнкции,
конъюнкции и отрицания аргументов, применяя тождества 2–9.
Шаг 2. Добиться, чтобы конъюнкции выполнялись раньше дизъюнк-
ций, для этого раскрыть скобки по тождеству 4.
Шаг 3. Сделать все ЭК правильными, применяя тождества 11 и 13.
Шаг 4.Сделать все ЭК полными, применяя тождество 12.
5. 5
Например, если в ЭК отсутствует переменная x, то домножить ее на
1 x x= Ú .
При возникновении скобок вернуться к шагу 2.
Шаг 5. Ликвидировать одинаковые элементарные конъюнкции,
применяя тождество 10.
Пример. Преобразовать в СДНФ по алгоритму формулу
(xÞy)(z+x).
Решение. Применяем алгоритм по шагам:
1. Добьемся, чтобы в формуле остались только дизъюнкции, конъ-
юнкции и отрицания аргументов: ))(())(( xzxzyxxzyx ÚÚ=+Þ .
2. Добьемся, чтобы конъюнкции выполнялись раньше дизъюнкций
(раскроем скобки): xyzxzxxzyxzxxzxzyx ÚÚÚ×=ÚÚ ))(( .
3. Сделаем все элементарные конъюнкции правильными:
yzxzxzxyyzxzxzxyxyzxzxxzyxzx ÚÚ=ÚÚÚ=ÚÚÚ× 0
4. Сделаем все элементарные конъюнкции полными:
yzxzyxyzxzxyyzxzyyxzxyyzxzxzxy Ú×ÚÚ=ÚÚÚ=ÚÚ )(
5. Ликвидируем одинаковые элементарные конъюнкции:
zyxyzxzxyyzxzyxyzxzxy ×ÚÚ=Ú×ÚÚ .
Получили СДНФ.
б) Совершенная конъюнктивная нормальная форма (СКНФ) –
это двойственное к СДНФ выражение, то есть конъюнкция несколь-
ких элементарных дизъюнкций. Так, выражение ( x y )( y z )Ú Ú яв-
ляется СКНФ.
Получить СКНФ для данной БФ f можно с помощью понятия
двойственности.
Определение. Пусть дана БФ f(x1, … ,xn). Двойственной к ней
называется БФ f*, заданная формулой
)...,(),...,(* 11 nn xxfxxf =
Если f*=f, то БФ называется самодвойственной.
6. 6
Для получения СКНФ для заданной БФ f применяется следую-
щий алгоритм из трех шагов:
1. Найти двойственную f* к данной БФ.
2. Привести f* к виду СДНФ.
3. Еще раз взять двойственную БФ: (f*)*= f = СКНФ.
Пример. Преобразовать в СКНФ с помощью двойственности БФ
f=(xÞ y)(z+x).
Решение. Действуем по алгоритму:
1. Находим двойственную БФ:
f* (x y)(z x ) (x y) (z x ) x y z x z x= Þ + = Þ Ú + = × Ú × Ú × .
2. Преобразуем ее к СДНФ:
f* x y( z z ) z x( y y ) z x( y y )= × Ú Ú × Ú Ú × Ú =
xyz xyz xyz xy z xyz x yz x yz xyz xyz xy z xyzÚ Ú Ú × Ú Ú × = × Ú Ú Ú × Ú .
Получили СДНФ.
3. Находим двойственную БФ к f* :
(f*)*= f (x y z)(x y z )(x y z)(x y z )(x y z )= Ú Ú Ú Ú Ú Ú Ú Ú Ú Ú .
Получили СКНФ.
в) Многочлен Жегалкина – это композиция сложений и умноже-
ний, а точнее говоря, выражение вида 1 2 ki i ia x x ...x+ å , где сум-
мирование ведется по некоторому множеству различных наборов
(i1, i2,…, ik), в которых ни один индекс не повторяется.
Так, многочленами Жегалкина являются x+y+1, xy+z,
xyz+y+1, но не являются xxy+y, xz+zx+1 и т.п.
Любую БФ можно привести к виду многочлена Жегалкина, и
притом единственным образом. Чтобы практически это сделать, до-
статочно перейти к трем основным логическим операциям
7. 7
(аналогично шагу 1 преобразования формулы в СДНФ), а затем при-
менить два новых тождества:
16. 1x x= + .
17. x y xy x yÚ = + + .
Теперь, раскрыв скобки и приведя подобные члены по тожде-
ству
18. x+x = 0,
получим многочлен Жегалкина.
Пример. Преобразовать к виду многочлена Жегалкина БФ
f=(xÞy)(z~x).
Решение. Действуем, как указано выше:
1f ( x y )( z x ) ( xy x y )( z x )= Ú D = + + + + =
= 1 1 1 1 1(( x )y x y )( z x ) ( xy x )( z x )+ + + + + + = + + + + =
= 1 1xyz xz z xxy xx x xy x xyz xz x+ + + + + + + + = + + + .
Получили многочлен Жегалкина.
Степень многочлена Жегалкина – это наибольшее число множи-
телей в его одночленах. Так, xyz+x+1 – многочлен Жегалкина степе-
ни 3.
Многочлен Жегалкина степени 1 или 0 называется линейной
функцией. Так, функции x+1 и x+y+ z линейны.
Очевидно, всякая композиция линейных функций также линей-
на.
Задание 1
Преобразовать данную формулу к виду:
а) СДНФ с помощью алгоритма;
б) СКНФ с помощью двойственности;
в) многочлена Жегалкина;
Отметим, что в ответах пунктов а) и б) необходимо строго со-
блюдать следующий порядок записи:
Переменные всегда писать в порядке x, y, z, t.
При записи нескольких ЭК в ответе соблюдать следующий
8. 8
порядок:
1) сначала ЭК, содержащие x , а затем содержащие x.
2) внутри каждой из этих групп сначала ЭК, содержащие y , а
затем содержащие y.
3) внутри каждой из этих групп сначала ЭК, содержащие z , а
затем содержащие z.
4) внутри каждой из этих групп сначала ЭК, содержащие t , а
затем содержащие t.
Отметим, что в приведенном примере преобразования формулы
в СДНФ этот порядок не соблюден (то есть необходимо еще пере-
ставить местами члены!), а вот в примере преобразования формулы в
СКНФ этот порядок строго соблюден.
Варианты задания 1 приведены в Приложении.
Минимизация булевых функций
Длиной ДНФ называется общее число переменных, входящих в
ее запись. ДНФ минимальной длины, тождественно равная данной
функции, называется ее минимальной ДНФ (МДНФ).
Для практической минимизации ДНФ с небольшим числом пе-
ременных (3-4) достаточно двух простых приемов:
а) Прием склейки. Это действие, обратное к шагу 4 алгоритма преоб-
разования формулы в СДНФ. Так, если удалось выделить множитель
вида x xÚ , то, заменив его единицей согласно тождеству 12, мы
существенно уменьшим длину ДНФ.
Пример. Действуя по формулам 1xy xy x( y y ) x xÚ = Ú = × = ,
то есть применив склейку по переменной y, мы уменьшили длину
ДНФ с 4 до 1 и тем самым получили МДНФ.
б) Когда склеек больше нет (то есть получена так называемая тупико-
вая ДНФ), могут помочь два сокращающих логических тождества:
19. xÚ xy = x – закон поглощения,
20. x xy x yÚ = Ú – закон сокращения.
Они позволяют уменьшить длину ДНФ.
9. 9
Примеры
1) xy xyz xyÚ = – по закону поглощения. Здесь длина ДНФ умень-
шилась с 5 до 2.
2) xy xyz x( y yz ) x( y z ) xy xzÚ = Ú = Ú = Ú – по закону сокра-
щения. Здесь длина ДНФ уменьшилась с 5 до 4.
Задание 2
а) Дана двоичная строка, представляющая собой столбец значений
БФ f в ее таблице истинности.
Получить по этой строке СДНФ, затем привести ее к минималь-
ной ДНФ.
Для приведения СДНФ к минимальной применять на первом
этапе процедуру склейки, а на втором – сокращающие логические
тождества 19 и 20.
б) Дана СДНФ в виде формулы. Привести ее к минимальной ДНФ.
Для этого следует сначала привести формулу к какой-нибудь
ДНФ, применив шаги 1 и 2 алгоритма преобразования формулы в
СДНФ. После чего действовать так же, как в части (а) задания 2 кон-
трольной работы № 1, то есть применить прием склейки и сокраща-
ющие логические тождества.
Пример. Преобразовать к МДНФ формулу xy ( x yzt)+ Þ .
Решение. Приведем формулу к ДНФ:
xy ( x yzt ) xy ( x yzt ) xy ( x yzt )+ Þ = × Þ Ú × Þ =
xy x yzt ( x y) ( x yzt)= × × Ú Ú × Ú = xy ( y z t ) ( x yx x yzt )× Ú Ú Ú Ú Ú × =
xy z xy t x yx x yzt× Ú × Ú Ú Ú × – получили ДНФ.
Применяем закон поглощения и получим ДНФ xy z xy t x× Ú × Ú .
Применяем закон сокращения и получим ДНФ y z y t x× Ú × Ú .
Весьма похоже, что она является минимальной ДНФ, длина ее равна
l=5, и уменьшить эту длину не представляется возможным.
Если в Вашем варианте встретилась такая неясная ситуация, то
после проверки работы преподаватель сообщит Вам, получена ли
минимальная ДНФ или же её возможно еще уменьшить.
10. 10
КОНТРОЛЬНАЯ РАБОТА № 2
Полнота систем булевых функций
Напомним два известных факта математической логики:
1. Любая БФ может быть представлена в виде композиции дизъюнк-
ции, конъюнкции и отрицания (например, СДНФ).
2. Любая БФ может быть представлена в виде композиции сложения,
умножения и констант (многочлен Жегалкина).
Обобщив факты 1 и 2, получим
Определение. Система БФ {j1, j2,…,jn} называется полной, если
любая БФ может быть представлена в виде их композиции.
Факты 1 и 2 показывают, например, что система {xÚ y, xy, ̅} полна,
и система {x+y, xy, 0, 1} также полна.
Задача состоит в том, чтобы для любой заданной системы БФ
выяснить, полна она или нет.
Эта задача тесно связана с практической проблемой создания
элементной базы логических схем: из каких стандартных логических
элементов можно собрать любую схему?
Введем несколько важных понятий.
Монотонные БФ
Определение. БФ f называется монотонной, если a £ bÞ f(a) £ f(b)
для всех двоичных наборов a и b длины n.
Двоичные наборы сравниваются не так, как двоичные числа, а по
всем битам. То есть a £ b Û ai £ bi для всех i от 1 до n.
Примеры
1) a=01010
b=11011
Пройдя по всем битам, видим, что ai£bi , поэтому a £ b.
2) a = 010011
b = 110010
11. 11
Как видно, в первом бите ai bi , но в шестом бите ai bi , по-
этому a и b – несравнимые наборы.
Чтобы проверить монотонность функции по определению,
необходимо в её таблице истинности пересмотреть все пары сравни-
мых наборов a и b. Если хотя бы один раз обнаружим, что ab, но
f(a)f(b), то функция немонотонна. Если же такое сочетание нера-
венств найти не удалось, то функция монотонна.
Примеры
1. xxf =)( .
Составляем таблицу истинности:
x f
a 0 1
b 1 0
Видим, что ab , но f(a)f(b). Значит, отрицание не монотонно.
2. f(х,у)=хÚу.
Составляем таблицу истинности
x y f
0 0 0
0 1 1
1 0 1
1 1 1
Cделав все пять проверок, мы не смогли найти ситуацию, когда
ab, но f(a)f(b). Поэтому дизъюнкция монотонна.
Аналогично проверяется, что и конъюнкция монотонна. Доказа-
но, что всякая композиция дизъюнкций и конъюнкций также моно-
тонна.
Пример. f = xyzÚyt – монотонна, так как является композицией дизъ-
юнкций и конъюнкций. В этом случае (и во всех подобных случаях)
составлять таблицу истинности не требуется.
Теперь мы можем привести примеры неполных систем.
Пример 1. Полна ли система {xÚy, xy} ?
Решение. Так как любая композиция дизъюнкций и конъюнкций
12. 12
монотонна, то никакую немонотонную БФ нельзя представить в виде
композиции дизъюнкций и конъюнкций. Следовательно, данная си-
стема неполна.
Пример 2. Полна ли система {x+y, x+y+z, 1} ?
Решение. Так как все эти функции линейны (многочлены Жегалкина
первой или нулевой степени), то любая их композиция также линей-
на. Поэтому ни одна нелинейная БФ не может быть через них выра-
жена. Следовательно, система неполна.
Примеры 1 и 2 можно обобщить, введя следующее понятие.
Функционально замкнутые классы
Определение. Множество БФ называется функционально за-
мкнутым классом (ФЗК), если любая композиция функций из этого
класса снова принадлежит этому классу.
Примеры ФЗК:
1. Монотонные БФ – класс M.
2. Линейные БФ – класс L.
3. Самодвойственные БФ – класс S.
4. Функции сохраняющие нуль, то есть f(0,…,0) = 0 – класс Р0.
5. Функции сохраняющие единицу, то есть f(1,…,1) = 1 – класс Р1.
Существует бесконечное множество ФЗК, но для наших целей
достаточно этих пяти.
Аналогично примерам 1 и 2 видно, что если данная система БФ
{j1, j2,…,jn} содержится целиком в любом из этих пяти ФЗК P0, Р1,
L, M, S, то она не полна (так как их композиция принадлежит тому же
ФЗК, и ни какую функцию, не лежащую в этом ФЗК нельзя через них
выразить).
Доказано, что верно и обратное.
Теорема Поста. Система БФ полна тогда и только тогда, когда
она не содержится целиком ни в одном из пяти ФЗК P0, Р1, L, M, S.
Чтобы применить теорему Поста на практике, обычно заполня-
ют таблицу Поста:
13. 13
P0 P1 L M S
j1 + –
j2 – + –
…
jn + –
Значок + означает «принадлежит», знак минус означает «не
принадлежит», то есть принадлежит ли заданная БФ jk данному
ФЗК.
Согласно теореме Поста, система полна тогда и только тогда,
когда в каждом столбце таблице Поста есть хотя бы один минус.
Система неполна тогда и только тогда, когда в таблице есть
столбец из всех плюсов.
Рассмотрим пример, который подготовит студента к выполне-
нию контрольной работы № 2.
Пример. Полна ли система БФ {x+1, xÞ y, x+y+z} ?
Решение. Заполняем таблицу Поста, объяснив каждый плюс или ми-
нус.
1) f = x+1 .
f(0)=1, так что fÏP0 ;
f(1)=1+1=0, так что fÏP1 ;
f – готовый многочлен Жегалкина 1-й степени, так что f Î L ;
Чтобы проверить монотонность функции, составим её таблицу
истинности:
x f
a 0 1
b 1 0
Как видно, a b , но f(a) f(b). Поэтому fÏM.
Чтобы проверить самодвойственность функции, находим двой-
ственную функцию: 1111* +==++=+= xxxxf .
Как видно, f*=f, так что f Î S.
Заполняем первую строку таблицы Поста найденными плюсами
и минусами: – – + – + (см. таблицу ниже).
14. 14
2) f = x Þ y .
f(0,0)=1, так что fÏP0 ;
f(1,1)=1Þ1=1, так что fÎP1 ;
Чтобы проверить линейность функции f, приведем её к виду
многочлена Жегалкина:
111)1( ++=++++=++++=++=Ú=Þ= xxyyxyxyyxyxyxyxyxyxf
Получили многочлен Жегалкина 2-й степени, так что f Ï L ;
Чтобы проверить монотонность f, составим её таблицу истин-
ности
x y f
a 0 0 1
0 1 1
b 1 0 0
1 1 1
Мы нашли a b, но f(a) f(b). Поэтому fÏM ;.
Чтобы проверить самодвойственность f, находим двойственную
функцию: 1)1)(1(* +++=++=×=Þ= yxxyyxyxyxf .
Получили другой многочлен Жегалкина, чем для функции f.
Как видно, f*¹ f, так что f Ï S.
Заполняем вторую строку таблицы Поста найденными плюсами
и минусами: – + – – – (см. таблицу ниже).
3) f = x+y+z .
f(0,0,0)=0+0+0=0, так что fÎP0 ;
f(1,1,1)=1+1+1=1, так что fÎP1 ;
f – готовый многочлен Жегалкина 1-й степени, так что f Î L ;
Чтобы проверить монотонность f, составим её таблицу истин-
ности:
x y z f
0 0 0 0
0 0 1 1
a 0 1 0 1
b 0 1 1 0
1 0 0 1
15. 15
1 0 1 0
1 1 0 0
1 1 1 1
Мы нашли a b , но f(a) f(b). Поэтому fÏM ;.
Чтобы проверить самодвойственность f , находим двойственную
функцию: zyxzyxzyxf ++=++++++=++= 1)1()1()1(* .
Как видно, f*=f, так что fÎ S.
Заполняем третью строку таблицы Поста найденными плюсами
и минусами: + + + – + .
Получили таблицу Поста
P0 P1 L M S
x+1 – – + – +
xÞ y – + – – –
x+y+z + + + – +
Система полна, так как в каждом столбце таблицы Поста имеет-
ся хотя бы один минус.
Задание
Проверить полноту системы из трех БФ, полностью заполнив
таблицу Поста, объяснив письменно каждый плюс или минус.
Варианты задания к контрольной работе № 2 приведены в При-
ложении.
Отметим, что при оформлении контрольных работ № 1 и № 2
допускается общий титульный лист (или же одна и та же тетрадь).
Однако начинать изложение решения контрольной работы № 2 сле-
дует с новой страницы (или листа).
16. Математическая логика: методические указания к выполнению
контрольных работ № 1,2 для студентов заочной формы обучения по
направлению подготовки 09.03.01 «Информатика и вычислительная
техника» (квалификация «бакалавр»)
ЛЕОНИД ИЗРАИЛЕВИЧ ПУГАЧ
Научный редактор А.А.Азарченков
Редактор издательства Л.Н.Мажугина
Компьютерный набор Л.И.Пугач
Темплан 2014 г., п.101
Подписано в печать Формат 60´84 1¤16 Бумага офсетная. Офсетная
печать Усл. печ. л. 0,93 Уч.-изд. л. 0,93 . Тираж 1 экз. Заказ Бесплатно
Издательство Брянского государственного технического университета.
241035, Брянск, бульвар 50 лет Октября, 7, БГТУ, тел. 58-82-49
Лаборатория оперативной полиграфии БГТУ, ул. Институтская, 16