16

пугач му по матлогике 2015

Embed Size (px)

Citation preview

Page 1: пугач му по матлогике 2015
Page 2: пугач му по матлогике 2015

УДК 519.17

МАТЕМАТИЧЕСКАЯ ЛОГИКА [Текст]+[Электронный ресурс]: Методические указания к выполнению кон-трольных работ № 1, 2 для студентов 1-го курса заочной формы обучения по направлению подготовки 09.03.01 «Информатика и вычислительная техника» (квалифика-ция «бакалавр») – Брянск: БГТУ, 2015. – 16 с

Разработал Пугач Л.И., канд. физ.-матем. наук, доц.

Рекомендовано кафедрой «Информатика и программное обеспечение» (протокол № 1 от 01.09.14)

Page 3: пугач му по матлогике 2015

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= Ú × – выражение эквиваленции через основные логические операции.

Page 4: пугач му по матлогике 2015

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.

Page 5: пугач му по матлогике 2015

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, то БФ называется самодвойственной.

Page 6: пугач му по матлогике 2015

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 и т.п.

Любую БФ можно привести к виду многочлена Жегалкина, и притом единственным образом. Чтобы практически это сделать, до-статочно перейти к трем основным логическим операциям

Page 7: пугач му по матлогике 2015

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. При записи нескольких ЭК в ответе соблюдать следующий

Page 8: пугач му по матлогике 2015

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Ú = Ú – закон сокращения. Они позволяют уменьшить длину ДНФ.

Page 9: пугач му по матлогике 2015

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, и уменьшить эту длину не представляется возможным.

Если в Вашем варианте встретилась такая неясная ситуация, то после проверки работы преподаватель сообщит Вам, получена ли минимальная ДНФ или же её возможно еще уменьшить.

Page 10: пугач му по матлогике 2015

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

Page 11: пугач му по матлогике 2015

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} ? Решение. Так как любая композиция дизъюнкций и конъюнкций

Page 12: пугач му по матлогике 2015

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.

Чтобы применить теорему Поста на практике, обычно заполня-ют таблицу Поста:

Page 13: пугач му по матлогике 2015

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. Заполняем первую строку таблицы Поста найденными плюсами

и минусами: – – + – + (см. таблицу ниже).

Page 14: пугач му по матлогике 2015

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

Page 15: пугач му по матлогике 2015

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 сле-дует с новой страницы (или листа).

Page 16: пугач му по матлогике 2015

Математическая логика: методические указания к выполнению контрольных работ № 1,2 для студентов заочной формы обучения по направлению подготовки 09.03.01 «Информатика и вычислительная техника» (квалификация «бакалавр»)

ЛЕОНИД ИЗРАИЛЕВИЧ ПУГАЧ

Научный редактор А.А.Азарченков Редактор издательства Л.Н.Мажугина Компьютерный набор Л.И.Пугач

Темплан 2014 г., п.101

Подписано в печать Формат 60´84 1¤16 Бумага офсетная. Офсетная печать Усл. печ. л. 0,93 Уч.-изд. л. 0,93 . Тираж 1 экз. Заказ Бесплатно Издательство Брянского государственного технического университета. 241035, Брянск, бульвар 50 лет Октября, 7, БГТУ, тел. 58-82-49 Лаборатория оперативной полиграфии БГТУ, ул. Институтская, 16