тюмгу / Тишин В.В. Дискретная математика в примерах
.pdf
|
|
|
|
|
Таблица 2.5.2(продолжение) |
||
№ |
/ |
|
g |
|
|
h |
|
9 |
1110 |
1101 |
1011 |
1001 |
1100 |
1101 |
1111 |
|
0011 |
1111 |
1101 |
1101 |
1111 |
0001 |
1011 |
10 |
0111 |
1010 |
1110 |
1010 |
1110 |
0111 |
1110 |
|
0101 |
1110 |
1111 |
0011 |
1 1 1 0 0 1 1 0 |
0101 |
|
11 |
1000 |
1001 |
0001 |
0101 |
1110 |
1110 |
0111 |
|
1111 |
1110 |
1110 |
0111 |
1110 |
1101 |
0110 |
12 |
1011 |
1101 |
1011 |
1010 |
0111 |
1101 |
1111 |
|
0111 |
1110 |
1110 |
1000 |
1111 |
1110 |
1001 |
13 |
0011 |
0111 |
1011 |
1001 |
1100 |
1110 |
1111 |
|
1101 |
0011 |
1110 |
1100 |
1111 |
1010 |
0000 |
14 |
1011 |
1000 |
0110 |
0110 |
1101 |
1111 |
1101 |
|
0111 |
1111 |
1110 |
1111 |
1011 |
0111 |
1110 |
15 |
0111 |
1011 |
1101 |
1010 |
1111 |
1011 |
1101 |
|
0101 |
0011 |
0111 |
0111 |
1110 |
1101 |
1110 |
16 |
0111 |
1100 |
1100 |
1101 |
0111 |
1101 |
1011 |
|
1110 |
0111 |
1100 |
0111 |
1110 |
1111 |
0000 |
17 |
1111 |
0011 |
0111 |
0101 |
1000 |
1111 |
1100 |
|
0110 |
1111 |
1011 |
1000 |
1110 |
1110 |
0111 |
18 |
0111 |
1100 |
1100 |
0100 |
1111 |
1101 |
0111 |
|
1001 |
1110 |
0011 |
1111 |
0101 |
1110 |
1101 |
19 |
1000 |
0111 |
1110 |
0001 |
1111 |
1011 |
1101 |
|
1110 |
0011 |
1110 |
0010 |
1111 |
1000 |
1000 |
20 |
0111 |
1010 |
1110 |
1011 |
0001 |
1111 |
1100 |
|
1001 |
1111 |
1101 |
0111 |
1001 |
1110 |
1110 |
21 |
0101 |
1111 |
0011 |
1001 |
1011 |
1100 |
1110 |
|
1100 |
1011 |
1111 |
0001 |
0111 |
1011 |
1000 |
22 |
0111 |
1100 |
0000 |
1011 |
1111 |
1101 |
0111 |
|
0101 |
1110 |
1101 |
1110 |
1110 |
0111 |
0001 |
23 |
1001 |
1101 |
1110 |
0111 |
1110 |
1110 |
0011 |
|
0110 |
1101 |
1111 |
1111 |
0011 |
1001 |
1111 |
|
|
|
|
|
Таблица 2.5.2(окончание) |
||
№ |
/ |
|
g |
|
|
h |
|
24 |
0001 |
1100 |
1110 |
1010 |
1111 |
1101 |
1100 |
|
1100 |
0111 |
1111 |
1111 |
1010 |
1101 |
0110 |
25 |
1000 |
1010 |
0111 |
0111 |
0111 |
1010 |
0011 |
|
1110 |
1110 |
1100 |
1111 |
0010 |
1010 |
1111 |
26 |
1110 |
1101 |
1001 |
0110 |
1111 |
1110 |
1010 |
|
0101 |
1111 |
0111 |
0110 |
0110 |
1101 |
0010 |
27 |
1101 |
0011 |
0011 |
1001 |
1110 |
1001 |
1111 |
|
1100 |
1011 |
1111 |
0010 |
1001 |
1111 |
0011 |
28 |
1110 |
1010 |
0101 |
0111 |
1011 |
1011 |
1111 |
|
0110 |
1111 |
1011 |
1111 |
1011 |
0010 1111 |
|
29 |
0001 |
1101 |
0111 |
1101 |
0100 |
1111 |
0111 |
|
1111 |
1110 |
0110 |
1110 0110 1111 |
1000 |
||
30 |
1100 |
0110 |
1101 |
0111 |
1010 |
1110 |
0111 |
|
0011 |
1111 |
1000 |
11100111 |
1110 0110 |
||
Пример решения задания 2.5.2. |
|
|
|
|
|||
Решим |
задание |
2.5.2. для |
функций |
f ( x ,y ,z ) = (0111 0011), |
g(x,y,z,w ) = (1111 1101 1010 0000),
h(x,y,z,w,t) = ( \ \ \ \ 0111 1010 0110 1111 0111 1010 1010).
Карту Карнау для функции / (х, у. z ) |
от трёх |
^ ^ ~ ^ |
ч |
переменных имеет такой вид (табл. 2.5.2а):
Мы считаем её как бы наклеенной на поверх ность цилиндра, т.е. отождествляем верхнюю часть карты Карнау с нижней. При отыскании минимальной ДНФ единицы карты Карнау покрываем прямоугольниками вида 2x2 и
Таблица 2.5.2а
ху
1x2, отвечающим импликантам у и xz со
ответственно, получаем минимальную ДНФ
у v xz . Её сложность равна 3.
Для нахождения минимальной КНФ покрываем нули карты Карнау двумя прямоугольниками размерами 1x2, которые соответствуют эле
ментарным дизъюнкциям y v |
х и у v z . В результате получаем мини |
|||||||
мальную КНФ (у v х) • (у v z) . |
|
|
|
|
|
|
||
При нахождении минимальной ДНФ |
|
|
|
Таблица 2.5.2Ь |
||||
функции |
g(x, у, z, и’) заполняем |
|
|
|
||||
карту Карнау и покрываем единицы |
|
|
00 |
01 |
11 |
10 |
||
карты прямоугольниками возможно |
|
|
||||||
больших размеров (табл.2.5.2.Ь): |
00 |
|
:1 '1 |
г |
1 |
|||
Получим |
минимальную |
ДНФ: |
’ |
|||||
01 |
. |
1 |
1, |
1 |
0 |
|||
y w v X Z V XW |
|
11 |
|
0 |
0 |
0 |
0 |
|
Сложность минимальной ДНФ рав |
10 |
' “ Ч |
0 |
0 |
|
на 6.
Таблица 2.5.2с
Отыщем |
минимальную КНФ |
ZW |
00 |
01 |
11 |
10 |
|
функции |
g(x,y,z,w). Для этого |
ху |
|||||
произведём покрытие нулей кар |
00 |
1 |
1 |
1 |
|
1 |
|
ты Карнау (табл.2.5.2с): |
|
||||||
01 |
1 |
1 |
1 |
|
п л |
||
|
|
|
|||||
Минимальная КНФ будет иметь |
11 |
1 0 |
■0 |
0 |
■ |
0 1 |
|
10 |
1 |
0 |
0 |
|
1 |
вид: ( x v y ) - ( x v w ) - ( y v z v w ) .
Рассмотрим функцию
h(x,y,z,w,t) = ( 1111 0111 1010 1111 0111 1010 1010).
Карту Карнау для пяти переменных можно воспринимать, как “двух слойную” карту Карнау для функции от 4 переменных, где верхний слой соответствует значениям х = 0, а нижний - х = 1, причём клет
ки, образующие “двухслойный” прямоугольник, соответствуют импликантам, в которых переменная х отсутствует. Двухслойные прямоуголь ники будем изображать жирными линиями, а однослойные - тонкими
(табл. 2.5.2d).
Все единицы карты Карнау могут быть покрыты тремя двухслойными прямоугольниками и двумя однослойными. Минимальная ДНФ будет
иметь вид: z t v у t v xzwtw x y t .
Её сложность равна 13. |
|
Таблица 2.5.2d |
Таблица 2.5.2е |
wt |
wt |
ООО |
000 |
001 |
001 |
011 |
011 |
010 |
010 |
100 |
100 |
101 |
101 |
111 |
111 |
110 |
110 |
Для отыскания минимальной КНФ покроем прямоугольниками нули карты Карнау (рис. 2.5.2е).
Все нули карты Карнау могут быть покрыты тремя двухслойными прямоугольниками и двумя однослойными.
Минимальная КНФ будет иметь вид:
(у V WV t) ■(у V Zv t) ■(у V Zv Wv t) ■( x v у v t) ■( x v Zv Wv t).
2.6. Частичные функции и схемы
Частичной функцией называется функция, определённая не на всех на
борах своих переменных.
Простой импликантой частичной функции f называется элементарная конъюнкция К, для которой выполняются условия:
1) За^ (а ) = 1, л а ) = 1;
2) V p f(P ) = 0 ^ К (Р ) = 0 -
3)если из импликанты К удалить любую букву, получится формула
К' такая, что 3ГК ' (у) = 1, / (у ) = О .
Доопределением частичной функции f будем назьшать всюду опре
делённую |
функцию g, значения которой совпадают со значениями |
функции f |
на тех наборах, на которых функция f определена. |
Критерий существования декомпозиции заданного вида:
Частичная функция / представляется в виде f(u,v,w)-g(u,w,h(u,v))
тогда и только тогда для каждого фиксированного набора а значений переменных из множества и таблица функции f a(v,w) допускает дооп
ределение до таблицы, содержащей столбцы не более двух различных типов.
Контактной схемой называется неориентированный граф, каждому ребру (контакту) которого приписан символ переменной в некоторой степени и выделены две вершины, которые называются полюсами.
Частная производная булевой функции f(x ^ ,x 2 |
,...,хп) попеременной |
||
х; |
определяется так: |
|
|
/ ъ |
= Д х ь - • • >Д - 1A Д + ъ - ■■, х п ) + |
Л - Ч v • •, Д - l X |
Д +Ъ...,хп). |
Тестом относительно множества |
G = {gt} попарно различных буле |
вых функций называется множество наборов значений переменных Т
такое, что V/УкФ1%еТ (§, (е) * ёк (е))
Задание 2.6.1
1. Реализовать частичную функцию f{x ,y ,z,w ) формулами над бази
сом конъюнкция, дизъюнкция, отрицание четырьмя способами:
а) методом Квайна; б) исходя из минимальной ДНФ, найденной с по мощью карт Карнау; в) исходя из минимальной КНФ, найденной с по мощью карт Карнау; г) методом последовательного разложения по пе ременным xyzw.
2. Для простейшего представления построить схему из функцио
нальных элементов типа конъюнкция, дизъюнкция, отрицание.
3. Реализовать простейшее представление контактной схемой.
4. Проверить возможность разделительной |
декомпозиции функции |
|
f( x ,y ,z ,w ) |
в виде g(u,v,h(p,t)), где u,v,p,t |
- некоторая перестановка |
переменных |
xyzw. |
|
Если декомпозиция указанного вида возможна, реализовать её схемой с ветвлениями из функциональных элементов типа конъюнкция, дизъ юнкция, отрицание. Указать сложность построенной схемы.
№
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
--01 1 - - 1 -0-1 11 -- --10
1--1
0-11 10-1
-10 -
1--0 -1 -0
11--
1 --1 -010
1 О 1 О
f(x, y, z, w) 1 -11 - 0 - -
1 1 о |
010 - |
о |
|
-001 |
- - 1 1 |
0-11 |
- 1 - 1 |
0 - 11 --01 |
|
01 -- |
- 100 |
0-10 |
10-- |
-100 |
10 -- |
101 - |
- 1 - 0 |
-110 - 1 - 0 -011 1 --1
01-0 -01 - 01 - 1 --10
-1 - 0 01 -1
11 -1 - 110
0110
-01 - 10-1
-100
-101
-110
1-1 - 10 --
11-0 11 -0 -011 011 -
00-1
-1 - 0
1 --1
Таблица 2.6.1
№f( x ,y ,z ,w )
16 |
1 - - 0 |
1 - и |
- 0 - 0 110- |
||||
17 |
0 - - 0 |
1 -1 - |
1110 |
1 -11 |
|||
18 |
11 -- |
-0 -1 |
-010 0 - 10 |
||||
19 |
0 -11 1 --1 0 -1 - 00 -1 |
||||||
20 |
1 -10 |
- - - 0 |
11-0 011 - |
||||
21 |
01 -1 |
- 10- |
011 - -01 - |
||||
22 |
- -1 |
- |
01 -0 |
00 - 1 |
111 - |
||
23 |
0 - 1 |
- |
- 1 - 0 |
0 - 11 |
-001 |
||
24 |
- 1 0 - |
-0 |
11 |
1 - 10 |
--01 |
||
25 |
1 - - 0 |
1 -1 |
- |
- 101 |
0 - 10 |
||
26 |
О 1 О 1 |
-111 |
1 -0 - 00 - 1 |
||||
27 |
11-0 0 - 1 0 - - о - 00 - 1 |
||||||
28 |
- - 0 |
1 |
1 -11 |
о |
о |
-001 |
|
1 |
1 |
||||||
29 |
10-- |
|
- 011 |
1 - - 0 |
11 -1 |
||
30 |
-1 -1 |
0 - 11 |
0 - |
1 - |
101 - |
Пример решения задания 2.6.1
Решим задание 2.6.1. для функции |
|
|
Таблица 2.6.1а |
|||||
|
|
|
|
|
||||
f(x,y,z,w ) = (-101 |
01------ 0- |
11-0). |
Z W |
00 |
01 |
11 |
10 |
|
|
|
|
|
|
||||
Запишем таблицу |
функции |
f в виде |
00 |
- |
1 |
1 |
0 |
|
карты Карнау (табл.2.6.1а): |
|
|||||||
|
01 |
0 |
1 |
- |
- |
|||
Для отыскания сокращённой ДНФ вы |
11 |
1 |
1 |
0 |
- |
|||
пишем в список М 0 |
все нулевые набо |
10 |
- |
- |
- |
0 |
||
ры функции, а в М ] |
- единичные набо- |
|
|
|
|
|
||
|
|
|
|
|
|
Таблица 2.6. lb |
|
м х |
0010 |
0001 |
0100 |
0011 |
1010 |
0101 |
1111 |
1100 |
|
1101 |
ры (табл. 2.6.1b).
Будем перебирать все единичные наборы из списка М \, который запи
шем в виде первого столбца. Для каждого из единичных наборов будем заменять последовательно его символы на неопределённый символ “ - ” и смотреть, не будет ли совпадать с точностью до неопределённого символа полученная комбинация с каким-либо набором, вошедшим в
список М (). Если совпадение есть, переходим к следующему символу,
если нет - помечаем набор “крестиком”, выписываем результат замены
во |
второй |
столбец |
и |
|
|
|
|
|
|||
переходим к следующе |
|
|
|
|
Таблица 2.6.1с |
||||||
му символу или к сле |
|
|
|
|
|||||||
|
|
|
|
|
|||||||
дующему набору. |
|
м х |
|
|
|
|
|||||
Затем |
совершаем ана |
0001 |
+ |
0 0 0 - |
+ |
- 0 0 - |
|||||
логичную |
|
процедуру |
ООН |
+ |
0 0 - 1 |
+ |
0 -- 1 |
||||
над наборами из второ |
0101 |
+ |
- - 0 1 |
+ |
- - 0 1 |
||||||
го столбца и так далее. |
1100 |
+ |
- 0 0 1 |
+ |
- 0 - 1 |
||||||
В результате наборы, не |
1101 |
+ |
-0 11 |
+ |
1-0 - |
||||||
помеченные крестиком, |
|
|
0 - 1 1 |
+ |
|
||||||
будут |
соответствовать |
|
|
- 101 |
+ |
|
|||||
простым |
импликантам, |
|
|
01 - 1 |
+ |
|
|||||
из которых состоит со |
|
|
1-00 |
+ |
|
||||||
кращённая ДНФ (табл. |
|
|
11-0 |
|
|
||||||
2.6.1с). |
|
|
|
|
|
|
110- |
+ |
|
||
Итак, простые импли- |
|
|
1-01 |
+ |
|
||||||
канты |
нашей |
функции |
1 столбец |
2 столбец |
3 столбец |
||||||
таковы: |
|
|
|
|
|
|
|
|
|
||
x y w |
, |
y z |
, |
X W |
, ZM) |
, y w , |
x z . |
|
|
|
|
Изобразим матрицу Квайна (табл. 2.5. Id), в которой строки соответст вуют единичным наборам функции, а столбцы - простым импликантам.
|
|
|
|
|
|
Таблица 2.6. Id |
|
xyw |
У* |
X W |
Z W |
yw |
X Z |
0001 |
|
1 |
1 |
1 |
1 |
|
0011 |
|
|
1 |
|
1 |
|
0101 |
|
|
1 |
1 |
|
|
1100 |
1 |
|
|
|
|
1 |
1101 |
|
|
|
1 |
|
1 |
1 |
2 |
3 |
4 |
5 |
6 |
Как видим, ядровых импликант нет. Для нахождения минимальной ДНФ составим символическую КНФ, каждая элементарная дизъюнкция которой соответствует единичному набору нашей функции, которую преобразуем затем в ДНФ. Получим:
(2v3v4v5)-(3v5)-(3v4)-(lv6)-(4v6) = (3v54)-(6vl4) =
= 3-6v54-6v344v5-14.
Видим, что наименьшую длину имеет символическая конъюнкция 3-6,
которая соответствует минимальной ДНФ xw v x z .
Сложность найденной минимальной ДНФ равна 4.
б) При нахождении минимальной ДНФ с помощью карты Карнау (табл. 2.5.1е), мы доопределяем функцию / так, чтобы покрытие имело более простой вид:
|
Таблица 2.6.1е |
|
Таблица 2.6.1/ |
||
ZVT |
\ z v r |
00 |
01 |
11 |
10 |
|
Х>>\ |
||||
|
00 |
- 0 |
1 |
1 |
0 |
|
01 . |
0 |
1 |
-1 |
- 0 |
|
11 |
1 |
1 |
0 |
- 0 |
|
10 |
-1 |
-1 |
-0 |
0 |
Тогда все единицы покроются двумя квадратами |
2x2 |
xw и x z , соот |
ветствующая минимальная ДНФ совпадает с ДНФ, найденной в п. а).
в) Для отыскания минимальной КНФ покрываем нули карты Карнау
(табл.2.6.1/) двумя квадратами 2x2: х vvt’ и x v z .
Соответствующая минимальная КНФ такова: (х vtf )• (х v z ) .
Сложность её равна 4.
г) Проведём разложение по набору переменных xyzw. На первом эта
пе, раскладывая по переменной х, имеем:
f i x , y,z,w) = x ■/(О , y ,z ,w ) v x - /(1 , у, z, w)) .
Изобразим таблицы функций / ( 0 , j ,z ,w ) n |
/( 1 ,y,z,w) (табл.2.6.lg): |
||
|
|
|
Таблица 2.6. lg |
yzw |
f ( 0 ,y,z,w) |
yzw |
f{l,y ,z,w ) |
001 |
1 |
010 |
0 |
010 |
0 |
100 |
1 |
Oil |
1 |
101 |
1 |
100 |
1 |
111 |
0 |
101 |
1 |
|
|
Каждая из функций / (0, у, z,w) и / (1, у, z, w) не доопределима до кон
станты, но f(\,y ,z,w ) доопределима до z .
Изобразим таблицы (табл.2.6.lh) функций /(0,0, z,w) и /(0,l,z, иД :
|
|
|
Таблица 2.6. lh |
ZW |
/(0,0, z,w) |
ZW |
/(ОД, z,w) |
01 |
1 |
00 |
1 |
10 |
0 |
01 |
1 |
11 |
1 |
|
|
Видим, что /(0,0, z, и1) и /(O.l.z, иД доопределимы до w и 1 соответ ственно.
Получаем разложение исходной функции:
/( х , у, z, w) = х ■(у ■w v у ■1) v х ■z = х ■(w v у) v х ■z . Во время уп
рощений мы применяли тождества с константами и правило вычёркива ния. Сложность полученной формулы оказалась равной 5.
2) В качестве простейшего представления возьмём минимальную ДНФ
xw v xz |
и реализуем её |
схемой |
из |
функциональных элементов |
(рис.2.6.1а): |
У |
z |
х |
w |
|
о
.ч/
3) Реализуем ту же минимальную ДНФ контактной схемой (рис.2.6. lb).
Таблица 2.6. li
•xy"' |
00 |
01 |
11 |
10 |
|
|
|
|
|
00 |
- |
1 |
1 |
0 |
01 |
0 |
1 |
- |
- |
11 |
1 |
1 |
0 |
- |
10 |
- |
- |
- |
0 |
4) Запишем двумерную таблицу функции f (табл. 2.6.1 i):
Видим, что таблица допускает доопределение до строк только двух типов (табл.2.6, lj):
Таблица 2.6. lj
ZW |
00 |
01 |
10 |
11 |
|
|
|
х у ^ - |
|
|
|
|
|
|
|
00 |
-0 |
1 |
0 |
|
1 |
I тип |
|
01 |
0 |
1 |
-0 |
-1 |
I тип |
|
|
10 |
-0 |
-1 |
0 |
-1 |
I тип |
|
|
11 |
1 |
1 |
-0 |
0 |
II тип |
|
|
Значит, f i x , у, z,w) |
допускает разделительную декомпозицию вида |
||||||
f(x ,y ,z ,w ) = g(z,w,h(x,y)). |
|
|
|
||||
Найдём вид функций g и |
h. |
|
|
|
|||
1, |
если набор (х ,у ) |
соответствует строке I |
типа |
||||
п ( х ,у ) = < |
если набор (х, у) |
соответствует строке II |
типа |
||||
[О, |
|||||||
те. h(x,y) —(1110), |
h(x,y) = x v y . |
|
|||||
Строкам I типа соответствует функция <y(z,w) = (0101) —w |
|||||||
Строкам II типа соответствует функция i\i(z, w) —(1101) = z |
|||||||
Тогда функция f |
выражается через h, ср, >[/ так: |
|
/(х, у, z, w) — h(x, у) • g>(z, w) v h(x, у) • \\i(z, w) =
=(x v y) ■W V (x v y) ■z .
Соответствующая схема из функциональных элементов с ветвлениями будет иметь вид (рис.2.6.1с):
z |
х |
у |
W |
-V.