- •Графы. Булевы функции
- •231000.62 «Программная инженерия»
- •Оглавление
- •Введение
- •1. Контрольная работа «Исследование графов»
- •1.1. Цель работы
- •1.2. Задание на выполнение работы
- •1.3. Варианты заданий
- •1.4. Пример выполнения работы
- •1.4.1. Исследование неориентированного графа.
- •1.4.2. Исследование ориентированного графа.
- •2. Контрольная работа «Исследование булевых функций»
- •2.1. Цель работы
- •2.2. Задание на выполнение работы
- •2.3. Варианты заданий
- •2.4. Пример выполнения работы
- •2.4.1. Составление таблиц истинности формул.
- •2.4.2. Проверка эквивалентности формул.
- •2.4.3. Приведение формулы к днф, кнф, сднф, скнф, полиному Жегалкина.
- •2.4.4.Нахождение сокращенной, тупиковых и минимальных днф булевой функции.
- •2.4.5. Минимизация по картам Карно.
- •2.4.6. Полнота системы булевых функций.
- •3. Требования к содержанию и оформлению отчетов
2.4. Пример выполнения работы
Рассмотрим выполнение заданий варианта 24.
Текст, указанный в треугольных скобках – <текст> – является пояснением к формульным преобразованиям.
Конъюнкция обозначена как умножение: x&y=xΛy=x·y=xy.
Сложение по модулю 2 (исключающее ИЛИ) обозначено операцией сложения: x+y.
Отрицание обозначено: ⌐x.
В формульных преобразованиях при упрощении выражений используются эквивалентные формулы для следующих операций:
– x→y=⌐xVy <импликация>,
– x↓y=⌐x⌐y <стрелка Пирса>,
– x│y=⌐xV⌐y <штрих Шеффера>,
– x↔y=xyV⌐x⌐y <эквивалентность>,
– x+y=x⌐yV⌐xy <сложение по модулю 2>.
2.4.1. Составление таблиц истинности формул.
F1 = x↔(y(⌐y→x) = <импликация> = x↔(y(⌐⌐yVx) =
= <эквивалентность> = x(y(⌐⌐yVx))V⌐x⌐(y(⌐⌐yVx)).
Представим выражение F1 в виде последовательности простых формул f для получения таблицы истинности (табл. 2.1):
f1=⌐y, f2=f1=⌐⌐y, f3=f2Vx=⌐⌐yVx,
f4=yf3=y(⌐⌐yVx), f5=⌐f4=⌐(y(⌐⌐yVx)), f6=⌐x,
f7=xf4=x(y(⌐⌐yVx)), f8=f6f5=⌐x(⌐(y(⌐⌐yVx))), F1=f7Vf8.
Таблица 2.1
x |
y |
f1= ⌐y |
f2= ⌐f1 |
f3= f2Vx |
f4= yf3 |
f5= ⌐f4 |
f6= ⌐x |
f7= xf4 |
f8= f6f5 |
F1= f7Vf8 |
Л |
Л |
И |
Л |
Л |
Л |
И |
И |
Л |
И |
И |
Л |
И |
Л |
И |
И |
И |
Л |
И |
Л |
Л |
Л |
И |
Л |
И |
Л |
И |
Л |
И |
Л |
Л |
Л |
Л |
И |
И |
Л |
И |
И |
И |
Л |
Л |
И |
Л |
И |
F2=xV(⌐y+(z↓⌐(x│y))) = <штрих Шеффера> =
= xV(⌐y+(z↓⌐(⌐xV⌐y))) = <стрелка Пирса> =
= xV(⌐y+(⌐z⌐⌐(⌐xV⌐y))) = <сложение по модулю 2> =
= xV(⌐y⌐(⌐z⌐⌐(⌐xV⌐y))V⌐⌐y(⌐z⌐⌐(⌐xV⌐y))), (табл. 2.2).
f1=⌐x, f2=⌐y, f3=⌐z, f4=f1Vf2=⌐xV⌐y,
f5=f3⌐⌐f4=⌐z⌐⌐(⌐xV⌐y), f6=⌐f5=⌐(⌐z⌐⌐(⌐xV⌐y)),
f7=f6f2=⌐y⌐(⌐z⌐⌐(⌐xV⌐y)), f8=yf5=y(⌐z⌐⌐(⌐xV⌐y)),
f9=f7Vf8=(⌐y⌐(⌐z⌐⌐(⌐xV⌐y)))V(y(⌐z⌐⌐(⌐xV⌐y))), F2=f9Vx.
Таблица 2.2
x |
y |
z |
f1= ⌐x |
f2= ⌐y |
f3= ⌐z |
f4= f1Vf2 |
f5= f3⌐⌐f4 |
f6= ⌐f5 |
f7= f6f2 |
f8= f5y |
f9= f7Vf8 |
F2= f9Vx |
Л |
Л |
Л |
И |
И |
И |
И |
И |
Л |
Л |
Л |
Л |
Л |
Л |
Л |
И |
И |
И |
Л |
И |
Л |
И |
И |
Л |
И |
И |
Л |
И |
Л |
И |
Л |
И |
И |
И |
Л |
Л |
И |
И |
И |
Л |
И |
И |
И |
Л |
Л |
И |
Л |
И |
Л |
Л |
Л |
Л |
И |
Л |
Л |
Л |
И |
И |
И |
И |
Л |
Л |
Л |
Л |
И |
И |
Л |
И |
Л |
И |
Л |
И |
Л |
И |
И |
Л |
И |
И |
И |
И |
Л |
Л |
Л |
И |
Л |
Л |
И |
Л |
Л |
Л |
И |
И |
И |
И |
Л |
Л |
Л |
Л |
Л |
И |
Л |
Л |
Л |
И |
2.4.2. Проверка эквивалентности формул.
F1=x→(y↓z), F2=(x→y)↓(x→z).
а) Cоставление таблиц истинности.
F1=x→(y↓z) = <импликация> = ⌐xV(y↓z) =
= <стрелка Пирса> = ⌐xV(⌐y⌐z), (табл. 2.3).
f1=⌐x, f2=⌐y,
f3=⌐z, f4=f2f3=⌐y⌐z, F1=f1Vf4.
Таблица 2.3
x |
y |
z |
f1= ⌐x |
f2= ⌐y |
f3= ⌐z |
f4= f2f3 |
F1= f1Vf4 |
Л |
Л |
Л |
И |
И |
И |
И |
И |
Л |
Л |
И |
И |
И |
Л |
Л |
И |
Л |
И |
Л |
И |
Л |
И |
Л |
И |
Л |
И |
И |
И |
Л |
Л |
Л |
И |
И |
Л |
Л |
Л |
И |
И |
И |
И |
И |
Л |
И |
Л |
И |
Л |
Л |
Л |
И |
И |
Л |
Л |
Л |
И |
Л |
Л |
И |
И |
И |
Л |
Л |
Л |
Л |
Л |
F2=(x→y)↓(x→z) = <импликация> = (⌐xVy)↓(⌐xVz) =
= <стрелка Пирса> = =⌐(⌐xVy)⌐(⌐xVz), (табл. 2.4).
f1=⌐x, f2=⌐y, f3=⌐z, f4=f1Vy=⌐xVy,
f5=f1Vz=⌐xVz, f6=⌐f4=⌐(⌐xVy), f7=⌐f5=⌐(⌐xVz), F2=f6f7.
Функции F1 и F2 не эквивалентны.
Таблица 2.4
x |
y |
z |
f1= ⌐x |
f2= ⌐y |
f3= ⌐z |
f4= f1Vy |
f5= f1Vz |
f6= ⌐f4 |
f7= ⌐f5 |
F2= f6f7 |
Л |
Л |
Л |
И |
И |
И |
И |
И |
Л |
Л |
Л |
Л |
Л |
И |
И |
И |
Л |
И |
И |
Л |
Л |
Л |
Л |
И |
Л |
И |
Л |
И |
И |
И |
Л |
Л |
Л |
Л |
И |
И |
И |
Л |
Л |
И |
И |
Л |
Л |
Л |
И |
Л |
Л |
Л |
И |
И |
Л |
Л |
И |
И |
И |
И |
Л |
И |
Л |
И |
Л |
Л |
И |
И |
Л |
Л |
И |
И |
Л |
Л |
Л |
И |
И |
Л |
Л |
И |
Л |
И |
И |
И |
Л |
Л |
Л |
И |
И |
Л |
Л |
Л |
б) Приведение формул к СДНФ или СКНФ.
Упрощение:
F1 = x→(y↓z) = <импликация> = ⌐xV(y↓z)=
= <стрелка Пирса>= ⌐xV(⌐y⌐z) = ⌐xV⌐y⌐z,
F2 = (x→y)↓(x→z) = <импликация> = (⌐xVy)↓(⌐xVz) =
= <стрелка Пирса>=
= ⌐(⌐xVy)⌐(⌐xVz) = <закон де Моргана> =
= (⌐⌐x⌐y)(⌐⌐x⌐z) = x⌐yx⌐z=x⌐y⌐z.
СДНФ:
F1 = ⌐xV⌐y⌐z = ⌐x(yV⌐y)V⌐y⌐z(xV⌐x) =
= ⌐xyV(zV⌐z)V⌐x⌐yV(zV⌐z)V⌐y⌐zxV⌐y⌐z⌐x =
= ⌐xyzV⌐xy⌐zV⌐x⌐yzV⌐x⌐y⌐zV⌐y⌐zxV⌐y⌐z⌐x =
= <поглощение>=
= ⌐xyzV⌐xy⌐zV⌐x⌐yzV⌐x⌐y⌐zVx⌐y⌐z,
F2 = x⌐y⌐z.
Функции F1 и F2 не эквивалентны.
СКНФ:
F1 = ⌐xV⌐y⌐z = (⌐x)V(⌐y⌐z) = (⌐xV⌐y)(⌐xV⌐z) =
= ((⌐xV⌐y)Vz⌐z)((⌐xV⌐z)Vy⌐y) =
= (⌐xV⌐yVz)(⌐xV⌐yV⌐z)(⌐xV⌐zVy)(⌐xV⌐z⌐y) =
= (⌐xV⌐yVz)(⌐xV⌐yV⌐z)(⌐xVyV⌐z),
F2 = x⌐y⌐z = (x)(⌐y)(⌐z) = (xVy⌐y)(⌐yVx⌐x)(⌐zVy⌐y) =
= (xVy)(xV⌐y)(⌐yVx)(⌐yV⌐x)(⌐zVy)(⌐zV⌐y) =
= ((xVy)Vz⌐z)((xV⌐y)Vz⌐z)((⌐yVx)Vz⌐z) &
& ((⌐yV⌐x)Vz⌐z)((⌐zVy)Vx⌐x)((⌐zV⌐y)x⌐x) =
= (xVyVz)(xVyV⌐z)(xV⌐yVz)(xV⌐y⌐z)(⌐yVxVz)(⌐yVx⌐z) &
& (⌐yV⌐xVz)(⌐yV⌐x⌐z)(⌐zVyVx)(⌐zVy⌐x)(⌐zV⌐yVx)(⌐zV⌐y⌐x) =
= <поглощение> =
= (xVyVz)(xVyV⌐z)(xV⌐yVz)(xV⌐y⌐z) &
& (⌐xV⌐yVz)(⌐xV⌐y⌐z)(⌐xVy⌐z).
Функции F1 и F2 не эквивалентны.