реферат, рефераты скачать
 

Конспект лекций по дискретной математике


В кубическом представлении булевой функции от n переменных все

множество из 2n наборов ее аргументов рассматривается как множество

координат вершин n-мерного куба с длинной ребра равной 1. В соответствии с

этим наборы аргументов, на которых булева функция принимает значение равное

1 принято называть существенными вершинами.

Существенные вершины образуют так называемые ноль-кубы (0-кубы).

Между 0-кубами существует отношение соседства и определена операция

склеивания. Два 0-куба называются соседними если они отличаются только по

одной координате.

Пример : n=4 0101

0001 - два соседних 0-куба

результат склеивания : 0x01 (*)

Склеивание 2-х соседних 0-кубов дает в результате 1-куб. Координата,

отмечаемая символом х, называется свободной (независимой, несвязанной), а

остальные (числовые) координаты называются зависимыми (связанными).

Аналогичное отношение соседства существует между 1-кубами, в результате

склеивания которых получается 2-куб.

0х01

0х11 - 0хх1 (**)

В продолжении аналогии два r-куба называются соседними если они отличаются

только по одной (естественно зависимой) координате. r-куб содержит r

независимых и n-r зависимых координат. В результате склеивания 2-х соседних

r-кубов образуется (r+1)-куб содержащий r+1 независимую координату.

Операция склеивания над кубами соответствует применению закона

склеивания к конъюнктивным термам, отождествляемым с этими кубами.

Пример : для склеивания (*)

_ _ _ _ _ _ _

х1х2х3х4( х1х2х3х4= х1х3х4

(0101) (0001) (0х01)

_ _ _ _

для (**) х1х3х4( х1х3х4= х1х4

(0х01) (0х11) (0хх1)

Определения.

Кубическим комплексом K0(f) булевой функции f называется множество 0-

кубов этой функции. В общем случае кубическим комплексом Kr(f) булевой

функции f называется объеденение множеств кубов всех размерностей этой

функции

m

k(f)=UKr(f) m-максимальная размерность кубов функции f.

r=0

Пример получения кубических комплексов

f3(x)=V(1,2,3,6,7) |001 (1) |0x1 (1-3) (1)

(f=1) |010 (2) |01x (2-3) (2)

K0(f)=|011 (3) K1(f)=|x10 (2-4) (3)

K2(f)=|x1x (2-5)

|110 (4) |x11

(3-5) (4)

|111 (5) |11x (4-5) (5)

K3(f)=пустому множеству

K(f)=K0(f)UK1(f)UK2(f)

Для получения кубического комплекса K(f) необходимо провести

всевозможные операции склеивания над 0-кубами, 1-кубами и т.д. до тех пор

пока на очередном шаге не получится Kr+1(f)=пустому множеству. При

склеивании 1-кубов 2-кубы представлены в 2-х экземплярах как результаты

склеивания 2-х различных пар 1-кубов.

Распространяя этот принцип можно утверждать, что r-кубы как результат

склеивания (r-1)-кубов получаются в r-кратном количестве экземпляров.

Куб, входящий в состав кубического комплекса K(f) называется

максимальным, если он не вступает ни в одну операцию склеивания.

В приведенном примере максимальными кубами являются х1х и 0х17.

Геометрическая интерпретация кубов малой размерности. Графическое

представление булевых функций.

Подобный подход носит ограниченный характер и как правило является

наглядным для булевых функций от 2-х и 3-х переменных.

F3(x)=V(1,2,3,6,7)

(f=1)

[pic]

Геометрическим местом 0-куба является точка, представляющая

существенную вершину.

Два соседних 0-куба являются концами какого-либо ребра.

Геометрическим местом 1-куба является ребро, замыкаемое склеивающимися

0-кубами, образующими данный 1-куб.

Два параллельных ребра, образующих грань, являются образами

склеивающихся 1-кубов. В соответствии с этим геометрической интерпретацией

2-куба является грань, образуемая парой параллельных ребер. Так как любую

грань можно определить одной из пар параллельных ребер, 2-куб может быть

получен как результат склеивания двух различных пар 1-кубов, то есть

представляется в двух экземплярах.

Геометрическим образом 3-куба можно считать 3-х мерный куб. Так как он

может быть образован 3-мя способами как пара параллельных граней, то при

склеивании он получается в трех экземплярах.

Покрытия булевых функций.

Между кубами различной размерности, входящих в кубический комплекс

K(f), существует отношение включения или покрытия. Принято говорить, что

куб А меньшей размерности покрывается кубом Б большей размерности, если куб

А включается в куб Б. Это означает, что при образовании куба Б хотя бы в

одном склеивании учавствует куб А.

Отношение включения (покрытия) между кубами принято обозначать А(Б. В

теории множеств отношение включения связывает между собой некоторое

множество и его подмножества.

Для рассмотренного примера отношения включения имеют место между

001(0х1; 011(x11(x1x... любой 1-куб покрывает 2 0-куба, 2-куб - 4 0-куба и

2 1-куба, 3-куб покрывает 8 0-кубов, 12 1-кубов и 6 2-кубов.

Покрытием булевой функции f называется такое подмножество кубов из

кубического комплекса K(f), которое покрывает все существенные вершины

функции.

В связи с тем, что любому кубу комплекса K(f) можно поставить в

соответствие конъюнктивный терм, для любого покрытия можно представить

некоторую ДНФ булевой функции.

Частным случаем покрытия булевой функции является кубический комплекс

K0(f), покрытие c0(f)=K0(f). Этому покрытию соответствует КДНФ.

Для примера покрытием является также

|0x1

|01x

c1(f)=K1(f)=|x10

|x11

|11x

этому покрытию соответствует ДНФ вида

_ _ _ _ _ _ _ _ _ _

f=x1x3vx1x2vx2x3vx2x3vx1x2 приведенная ДНФ не является минимальной.

В качестве минимальной еще одного покрытия можно использовать

множество максимальных кубов

|0x1

c2(f)=|x1x

Действительно, куб 0х1 покрывает существенные вершины 0х1((001, 011), а куб

x1x((010, 011, 110, 111).

Множество максимальных кубов булевой функции всегда является ее

покрытием.

Покрытие c2(f) соответствует ДНФ вида х1х3vx2. Эта ДНФ является

минимальной. Покрытие булевой функции, которое соответствует минимальной

ДНФ называется минимальным покрытием.

Минимальное покрытие должно состоять только из максимальных кубов.

В частном случае все множество максимальных кубов является

минимальным покрытием. Это справедливо для нашего примера. В общем случае

множество максимальных кубов является избыточным и для получения

минимального покрытия достаточно взять некоторое его подмножество.

Пример : f3(x)=V(0,1,4,6,7)

(f=1)

|000 (1) |00x (1-2)

|001 (2) |x00 (1-3)

K0(f)=|100 (3) K1(f)=|1x0 (3-4)

|110 (4) |11x (4-5)

|111 (5)

Для данного примера множество максимальных кубов совпадает с комплексом

K1(f). Z(f)=K1(f)

Минимальными покрытиями являются

|00x |00x

с1(f)=|11x c2(f)=|11x

|x00 |1x0

Из анализа покрытия существенных вершин максимальными кубами из

комплекса K1(f) следует :

1) Куб 00х должен обязательно включаться в покрытие, так как только он

покрывает существенную вершину 001, аналогично 11х покрывает 111.

Множество максимальных кубов без которых не может быть образовано покрытие

булевой функции называется ядром покрытия T(f)=|00x

|11x

2) Так как ядром покрытия кроме существенных вершин 001 и 111

покрываются также существенные вершины 000 и 110, то не покрытой

ядром остается только существенная вершина 100. Для ее покрытия

достаточно взять 1 из оставшихся максимальных кубов (х00 или 1х0).

Выводы :

Задача получения минимальной ДНФ сводится к задаче получения

минимального покрытия.

Получение минимального покрытия реализуется в таком порядке : а)

Находится множество максимальных кубов б) Выделяется ядро покрытия в) Из

максимальных кубов, не вошедших в ядро, выбирается такое минимальное

подмножество, которое покрывает существенные вершины, не покрытые ядром.

Цена покрытия.

Цена r-куба представляет собой количество несвязанных координат.

Sr=n*r

Для оценки качества покрытия используют два вида цены покрытия :

m

1) Sa=(SrNr, где Nr - количество r-кубов, входящих в по-

r=0

крытие, m - максимальная размерность куба. Цена Sa представляет собой

сумму цен кубов, входящих в покрытие.

2) Sb=Sa+k, где k - количество кубов, входящих в покрытие

m m

Sa =((n-r) Nr ; Sb=((n-r)(Nr+1)

r=0 r=0

Под минимальным покрытием понимают покрытие, обладающее минимальной

ценой Sa по сравнению с любым другим покрытием этой функции.

Можно показать, что покрытие, обладающее минимальной ценой Sa

обладает также и минимальной ценой Sb.

Пример : f3(x)=V(0,1,4,6,7)

(f=1)

C0(f)=K0(f) ; Sa=5*3=15 ; Sb=Sa+5=20

C1(f)=K1(f) ; Sa=4*2=8 ; Sb=Sa+4=12

Cmin(f) : Sa=3*2=6 ; Sb=9

Цена покрытия Sa представляет собой количество букв, входящих в ДНФ,

которая соответствует данному покрытию.

Цена Sb представляет для ДНФ сумму количества букв и количества

термов.

[pic]

Цена покрытия хорошо согласуется с ценой схемы по Квайну, которая

строится по нормальной форме, соответствующей этому покрытию.

Для приведенной схемы цена по Квайну SQ=9=Sb (9-число входов).

В принципе, между SQ и ценами Sa и Sb существует соотношение Sa ( SQ

( Sb Это неравенство имеет место при следующих допущениях по комбинационной

схеме :

1) Схема строится по нормальной форме (ДНФ или КНФ).

2) Схема строится на элементах булевого базиса (И, ИЛИ).

3) На входы схемы можно подавать как прямые, так и инверсные значения

входных переменных, представляющие собой значения аргументов булевой

функции (схема с парафазными входами). Элементы НЕ (инвертора в схеме

отсутствуют.

Нулевое покрытие булевой функции и получение минимальной КНФ.

Выше было рассмотрено покрытие булевой функции на наборах аргументов

для которых функция равна единице.

Такие покрытия можно назвать единичными. Наряду с единичными

покрытиями существуют и нулевые, для которых покрываются наборы аргументов,

на которых функция равна нулю, то есть покрытие реализуется для

существенных вершин, но не самой функции, а ее отрицания (инверсии).

Нулевое покрытие строится также как и единичное, но только для

отрицания исходной функции.

f3(x)=V(0,1,4,6,7) f3(x)=&(2,3,5)

(f=1) (f=0) _ |010

K0( f )=|011

_ _ |101

C0( f )= K0( f ) Sa=9 Sb=12

_ _ _

K1( f )=|01x Z( f )=Cmin( f )=|01x Sa=5 Sb=7

|101

Цена минимального нулевого покрытия оказалась меньше цены

минимального единичного покрытия.

Так как заранее предсказать невозможно, какое из минимальных покрытий

данной функции, единичное или нулевое, будет иметь меньшую цену, то для

построения схемы, обладающей минимальной ценой по Квайну, целесообразно

решать задачу минимзации в отношении обоих покрытий.

Импликанты булевой функции.

Системы импликант.

Решение задачи минимизации булевой функции методом Квайна и

усовершенствованным методом Квайна-МакКласски базируется на понятиях

импликант и их систем.

Определение : Булева функция g(x) называется импликантой булевой функции

f(x), если для любого набора аргументов, на которых g(x)=1, f(x) также

равна единице.

~ ~ ~

g( x )=1 => f( x )=1, где х - некоторый набор аргументов.

Свойства импликант :

1) Между импликантой и самой функцией существует отношение включения

g(x)(f(x).

2) Можно утверждать, что для любого набора аргументов, на котором функция

равна нулю, ее импликанта также равна нулю.

3) Если g(x) и ((x) являются импликантами функции f(x), то их дизъюнкция

также является импликантой этой функции.

Простейшими примерами импликант могут служить конъюнктивные термы,

входящие в ДНФ данной функции.

Пример : для f3(x)=V(0,1,4,6,7) (#)

(f=1) _ _ _

импликантами являются х1х2х3; х1х2х3; х1х2;...

Произвольная дизъюнкция этих термов также является импликантой

функции.

Определение : Простой (первичной) импликантой булевой функции называется

конъюнктивный терм, который сам является импликантой этой функции, но

никакая его собственная часть уже не является импликантой этой функции.

Под собственной частью терма понимается новый терм, полученный из

исходного, путем вычеркивания произвольного числа букв.

Для данного примера функции (#) простыми импликантами являются :

_ _ _

х1х2х3; х1х2х3; х1х2;...

Множеству простых импликант можно поставить в соответствие множество

максимальных кубов.

Определение : Дизъюнкция всех простых импликант булевой функции

представляет собой ДНФ этой функции, которая называется сокращенной - СДНФ.

Для функции (#) из приведенного примера

_ _ _ _ _

СДНФ : y= х1х2v х1х2vх2х3v х1х3

Понятие «сокращенное» присвоено ДНФ в том смысле, что она, как

правило, содержит меньшее количество букв и термов по сравнению с КДНФ. Для

нашего примера КДНФ содержит 15 букв и 5 термов, а СДНФ - 8 букв и 4 терма.

Аналогия между импликантами и кубическим представлением Булевой функции

Любому кубу из К(f) можно поставить в соответствие конъюнктивный терм

который можно рассматривать как импликанту булевой функции .Любой простой

импликанте булевой функции соответствует максимальный куб ,и в свою очередь

множество всех простых импликант соответствует множеству Z(f) всех

максимальных кубов К(f).

Таким образом можно провести некоторую аналогию между сокращенной

СДНФ и Z(f).

В отношении импликант булевой функции также как и в отношении кубов

соответствующих им существует отношение покрытия.

Принято считать ,что импликанта покрывает некоторую существенную

вершину или в общем случае некоторый куб из К(f) ,если значение импликанты

на наборе аргументов представляющем данную существенную вершину равно 1 или

в общем случае значение импликанты равно 1 для всех существенных вершин

покрываемых кубом из К(f).

ПРИМЕР : импликанта х1х2 покрывает существенные вершины (110,111) и в свою

очередь покрывает куб 11х.

Определение :множество импликант булевой функции образует полную

систему импликант ,если любая существенная вершина булевой функции

покрывается хотя бы одной импликантой этого множества.

Если считать ,что в полную систему импликант включаются импликанты

только в виде конъюнктивных термов и не включает импликанты в виде

дизъюнктивных термов ,то полной системе импликант можно поставить в

соответствие некоторое множество кубов из К(f) образующих покрытие булевой

функции f .

Так например ,кубам из кубического комплекса К((f) соответствует

полная система импликант ,представляющая собой множество конституент 1

данной функции f. В свою очередь множеству максимальных кубов Z(f)

,естественно образующих покрытие булевой функции ,соответствует полная

система простых импликант.

Определение :система простых импликант называется приведенной ,если

она является полной ,а никакая ее собственная часть уже не образует полную

систему импликант.

Для функции y= x 1 x 2 ([pic]1 [pic]2([pic]2[pic]3 ( x 1 [pic]3 (*)

система простых импликант

( x 1 x 2, [pic]1[pic]2 , [pic]2 [pic]3 , x 1 [pic]3 (

является полной ,но не является приведенной ,т.к. из нее можно исключить

одну из импликант не нарушая полноты системы .([pic]2 [pic]3 или x1 [pic]2(

Определение: Дизъюнкция всех простых импликант ,образующих некоторую

приведенную систему называется тупиковой ДНФ булевой функции или ТДНФ

Для функции (*) существуют две ТДНФ

[pic]

1) у= x 1 x 2([pic]1[pic]2([pic]2 [pic]3

2) у= x 1 x 2([pic]1[pic]2( x 1 [pic]3

В данном случае они совпадaют с минимальной ДНФ. Но в общем случае

это утверждение не справедливо. Т.е. минимальная ДНФ обязательно является

ТДНФ но не любая ТДНФ является МДНФ. Таким образом множество МДНФ является

подмножеством ТДНФ.

Определение: простая импликанта булевой функции называется

существенной если она и только она покрывает некоторую существенную вершину

этой функции.

Множество существенных импликант соответствует максимальным кубам

образующим ядро покрытия.

ПОСЛЕДОВАТЕЛЬНОСТЬ действий для решения канонической задачи минимизации

методом Квайна-Мак-Класки.

1)Нахождение множества максимальных кубов или простых импликант функции.

2)Выделение ядра покрытия.

3)Дополнение множества кубов ,принадлежащих ядру покрытия таким минимальным

подмножеством из максимальных кубов ,не входящих в ядро покрытия ,для

получения покрытия с минимальной ценой.

С точки зрения последовательного преобразования ДНФ булевой функции с

целью их упрощения каноническая задача минимизации может быть представлена

в виде КДНФ.

КДНФ(СДНФ((ТДНФ(((МДНФ(

Распространение терминологии в отношении нулевого покрытия

определяется на понятии импликанта как соответствие импликанте и на системе

импликант.

ПРИМЕР: (минимизация булевой функции методом Квайна-Мак-Класки)

1) f4(x)=V(0,1,5,7,8,10,12,14,15)

(f=1)

f4(x)=&(2,3,4,6,9,11,13)

(f=0)

На этапе получения множества максимальных кубов целесообразно

разделить множество ноль - кубов (К((f)) на ряд подмножеств ,отличающихся

количеством единиц .

В операцию склеивания в этом случае могут вступать только кубы

,относящиеся к соседним подмножествам ,то есть отличающиеся на единицу

( 000X (

( X000 ( K((f)=C((f)

( 0X01 (

Z(f)= ( 01X1 ( S(=36

( X111 ( S(=45

( 111X (

( 1XX0 (

K1(f)=C1(f) S(=10(3=30

S(=40

Z(f)=C3(f) S(=20

S(=27

При минимизации не полностью определенной булевой функции множество

максимальных кубов определяется на объединении множества существенных

вершин и безразличных наборов в целях получения кубов наибольшей

размерности .

2) Определение ядра покрытия .

Выполнение этого этапа реализуется с помощью таблицы покрытий .

Kаждая строка таблицы - максимальный куб(простая импликанта).

Каждый столбец - существенная вершина булевой функции (безразличные

наборы не включаются).

Элементы этой таблицы отражают отношение покрытия ,то есть на

пересечении i-ой строки и j-ого столбца ставится некоторая отметка в том

случае если i-ый максимальный куб покрывает j-ую вершину .

Таблицу покрытий иногда называют импликантной таблицей с учетом того

,что каждый максимальный куб соответствует простой импликанте а

существенные вершины конституантам

Страницы: 1, 2, 3


ИНТЕРЕСНОЕ



© 2009 Все права защищены.