Upload
lipugach
View
58
Download
0
Embed Size (px)
Citation preview
УДК 519.17
МАТЕМАТИЧЕСКАЯ ЛОГИКА [Текст]+[Электронный ресурс]: Методические указания к выполнению кон-трольных работ № 1, 2 для студентов 1-го курса заочной формы обучения по направлению подготовки 09.03.01 «Информатика и вычислительная техника» (квалифика-ция «бакалавр») – Брянск: БГТУ, 2015. – 16 с
Разработал Пугач Л.И., канд. физ.-матем. наук, доц.
Рекомендовано кафедрой «Информатика и программное обеспечение» (протокол № 1 от 01.09.14)
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
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
Например, если в ЭК отсутствует переменная 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
Для получения СКНФ для заданной БФ 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
(аналогично шагу 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
порядок: 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
Примеры 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
КОНТРОЛЬНАЯ РАБОТА № 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
Как видно, в первом бите ai < bi , но в шестом бите ai > bi , по-этому a и b – несравнимые наборы.
Чтобы проверить монотонность функции по определению, необходимо в её таблице истинности пересмотреть все пары сравни-мых наборов a и b. Если хотя бы один раз обнаружим, что a<b, но f(a)>f(b), то функция немонотонна. Если же такое сочетание нера-венств найти не удалось, то функция монотонна.
Примеры 1. xxf =)( . Составляем таблицу истинности:
x f a 0 1 b 1 0
Видим, что a<b , но f(a)>f(b). Значит, отрицание не монотонно.
2. f(х,у)=хÚу. Составляем таблицу истинности
x y f 0 0 0 0 1 1 1 0 1 1 1 1
Cделав все пять проверок, мы не смогли найти ситуацию, когда a<b, но f(a)>f(b). Поэтому дизъюнкция монотонна.
Аналогично проверяется, что и конъюнкция монотонна. Доказа-но, что всякая композиция дизъюнкций и конъюнкций также моно-тонна. Пример. f = xyzÚyt – монотонна, так как является композицией дизъ-юнкций и конъюнкций. В этом случае (и во всех подобных случаях) составлять таблицу истинности не требуется.
Теперь мы можем привести примеры неполных систем.
Пример 1. Полна ли система {xÚy, xy} ? Решение. Так как любая композиция дизъюнкций и конъюнкций
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
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
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
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 сле-дует с новой страницы (или листа).
Математическая логика: методические указания к выполнению контрольных работ № 1,2 для студентов заочной формы обучения по направлению подготовки 09.03.01 «Информатика и вычислительная техника» (квалификация «бакалавр»)
ЛЕОНИД ИЗРАИЛЕВИЧ ПУГАЧ
Научный редактор А.А.Азарченков Редактор издательства Л.Н.Мажугина Компьютерный набор Л.И.Пугач
Темплан 2014 г., п.101
Подписано в печать Формат 60´84 1¤16 Бумага офсетная. Офсетная печать Усл. печ. л. 0,93 Уч.-изд. л. 0,93 . Тираж 1 экз. Заказ Бесплатно Издательство Брянского государственного технического университета. 241035, Брянск, бульвар 50 лет Октября, 7, БГТУ, тел. 58-82-49 Лаборатория оперативной полиграфии БГТУ, ул. Институтская, 16