Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Раздел 2-1_А.doc
Скачиваний:
321
Добавлен:
27.03.2016
Размер:
2.19 Mб
Скачать

1.5.1. Метод покрытий

Метод включает в себя последовательное решение следующих задач.

I. Определение множества всех элементарных наборов функции {N}={N1, ... , Nk} и совершенной нормальной формы.

II. Построение сокращенной нормальной формы и определение множества простых наборов {P}={P1,...,Ps}, входящих в её внутренние функции.

III. Формирование матрицы А покрытий множества элементарных наборов {N}={N1, ... , Nk} простыми наборами {P}={P1, ...,Ps}.

IV. Построение решеточного выражения В и упрощение его, построение множества всех тупиковых нормальных форм {Т} и выбор из них минимальной формы (их может быть несколько).

Решение задачи I изложено в предыдущем пункте. Рассмотрим последовательно решение задач II — IV. Вначале II — построение сокращенной нормальной формы и определение множества простых наборов {P} = {P1,...,Ps}.

Обобщенный метод Куайна

Алгоритм основан на применении следующих законов алгебры логики, справедливых для пороговых функций, а, следовательно, и для нормальных форм рассматриваемого вида. Пусть имеется представление булевой функции f в виде некоторой нормальной формы f =F( (x111 ,..., xn1n), ..., (x1k1 ,..., xnkn)). Множества переменных, входящих во внутренние функции, обозначим через Х1 ,..., Хk .

Допустим, у внутренних функций формы есть два набора переменных Xp =(x1p1,...,xnpn) и Xq =(x1q1 ,...,xnqn), соседних по переменной с номером r .У них  p1 =  q1 , ... , p(r-1) =  q(r-1),  p r =  q r ,  p(r+1) =  q(r+1), . . . ,  pn = qn.

Для данной нормальной формы справедливы следующие обобщенные операции склеивания:

а) полное склеивание:

f = F((Х1),...,(Хр),...,(Хq),...,(Xk))=F((Х1),...,(Хр\xrpr),...,

(Хq-1),(Хq+1),..., (X k)).

б) неполное склеивание (дополнение):

f=F((Х1),...,(Хр),...,(Хq),...,(Xk))=F((Х1),...,(Хр),...,(Хq),...,(Xk), (Хр\xrpr)).

В операции а) удаляется функция (Хq), а также переменная xrpr из (Хр). В операции б) к существующему набору внутренних функций  (Х1),...,(Хk) добавляется новая функция (Хр\xrpr), в которой отсутствует переменная с номером r.

Если набор с номером p отличается от набора с номером q отсутствием одной переменной xrpr (Xp = Хq\ xrpr ), то для любой формы справедлива операция.

в) поглощения (удаления внутренней функции с расширенным набором переменных)

f = F((Х1), ..., (Хр), ..., (Хq), ... ,(X k))= F((Х1), ..., (Хр), ... ,(Хq-1), (Хq+1), ...,(Xk)).

Если наборы переменных во внутренних функциях Xp и Хq одинаковы (полностью совпадают), то справедлива операция

г) удаления дубликатов

f = F((Х1), ... ,(Хр), ... ,(Хq), ... , (X k))=F((Х1), ..., (Хр), ... ,(Хq-1), (Хq+1), ... ,(Xk)).

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

Обобщенный алгоритм Куайна включает следующие операции:

1. Проведение в совершенной нормальной форме всех возможных операций неполного склеивания.

2. В полученной дополненной нормальной форме выполнение всех возможных операций полного склеивания.

3. Выполнение всех возможных операций поглощения и удаления дубликатов.

Полученная формула анализируется и, если возможно, к ней снова применяют операции 1) — 3) и т.д.

В результате получается нормальная форма, состоящая из простых наборов, то есть сокращенная нормальная форма рассмотренной функции.

Пример 2. Рассмотрим функцию из Примера 1 и построим для неё СкДНФ.

Решение. СДНФ функции: f =x yz xyz xy z. Элементарные наборы: N1 =(x, y,z), N2 =(x,y,z), N3 =(x,y, z).

1.Производим в СДНФ все операции неполного склеивания. Для этого рассматриваем в ней все возможные пары элементарных наборов и к тем из них, которые являются соседними (отличающимися ровно по одной переменной), применяем операцию неполного склеивания:

а) N1 и N2 не соседние, поскольку у них отличие по двум переменным (x и y),

б) N1 и N3 не соседние, отличие по всем трём переменным,

в) N2 и N3 — соседние,т.к. отличаются ровно по одной переменной — z .

Применяем к этой паре операцию неполного склеивания (дополнения):

f =x yz xyz xy z xy .

2. Применяем операцию поглощения. Вначале – к хуz и ху: f = х уz ху z ху , затем – к ху z и ху : f = х уz ху.

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

Последняя полученная формула и будет искомой СкДНФ функции f = (00101100). Её простыми наборами являются P1 = (х, у,z), P2 = ( х,у).

III. Формирование матрицы А покрытий множества простых наборов {P} = {P1, ... ,Ps} элементарными наборами {N} = {N1, ... , Nk}.

Допустим, на предыдущих шагах построены: множество простых наборов {P} = {P1, ... , Ps}, входящих в сокращенную форму, и множество элементарных наборов {N} = {N1 , ... , Nk}, входящих в совершенную форму. Строим матрицу А размером s k покрытий простых наборов {P} элементарными наборами {N} по следующему правилу. Строки А соответствуют простым наборам Pi, столбцы – элементарным Nj. Элементы aij задаём следующим образом: aij = 1, если набор Pi входит в Nj , если не входит - то aij = 0. В итоге получаем матрицу А, содержащую единичные и нулевые элементы:

N 1

N 2

...

Nk

P1

a 11

a 12

...

a 1k

...

...

...

...

...

Ps

a s1

a s2

...

a sk

IV. Построение решеточного выражения В и упрощение его. Построение множества {Т} всех тупиковых нормальных форм функции.

Для каждого столбца j матрицы покрытий А, который соответствует элементарному набору Nj, выписываем номера строк i = i1 , ... , in , у которых aij = 1. Строим по ним дизъюнкцию D j = (ei1, j  ... einj, j). Она показывает все возможные варианты вхождения простых наборов в элементарный Nj. Решеточное выражение записывают в виде конъюнкции всех Di :

В =  D j .

В решёточном выражении В раскрывают все скобки, представив его в виде дизъюнкции элементарных конъюнкций:

В = (е s 1 е s 2 ... е s ps) .

В полученной дизъюнкции В производим все операции удаления дублирующих членов и все операции поглощения. В том случае, когда операции применялись, получим новый упрощенный вид дизъюнкции В:

В = (е l 1 е l 2 ... е l pl ) .

Каждая элементарная дизъюнкция еl1 еl2 ... еl pl , входящая в В, описывает тупиковую нормальную форму функции f следующим образом: каждый набор переменных еli является набором переменных во внутренней функции формы. Например, в ДНФ - наборы переменных входят во внутренние конъюнкции, а полная ТДНФ образуется в результате их логического сложения: f = K l,1 K l,2  …  K l,pl.

После построения множества {Т} всех тупиковых форм из них выбирается самая короткая (с наименьшим числом переменных), которая и будет искомой минимальной нормальной формой.

Пример 3. Построить МДНФ функции, заданной вектором истинности: f = (01100111).

Решение. Переменные обозначим x, y, z.

1.Множество {N} элементарных наборов, на которых функция равна единице, имеет вид: N1 = (x,y, z); N2 = (x, y,z); N3 = (x,y, z); N4 = ( x, y,z ); N5 = ( x, y, z). При умножении этих наборов получаем конституенты единиц функции.

СДНФ имеет вид: f =xy z x yz xy z x yz x y z.

2. СкДНФ определяем по алгоритму Куайна:

а) неполное склеивание в СДНФ:

f =x y z x yz xy z x yz x y z y z yz x z x y ,

б) полное склеивание:

f = y z yz x z x y .

Полученная форма является искомой СкДНФ. Множество простых наборов {P} имеет вид:

P1 = (y, z), P2 = (y,z ), P3 = (х, z), P4 = (x, y).

3. Строим матрицу покрытий А:

N1

N2

N3

N4

N5

Р1

1

0

1

0

0

Р2

0

1

0

1

0

Р3

0

0

1

0

1

Р4

0

0

0

1

1

4. Строим решёточное выражение. Поскольку элементарный набор N1 покрывается простым набором Р1, N2Р2, N3 – (Р1 и Р3), N4 – (Р2 и Р4), N5 – (Р3 и Р4), то выражение принимает следующий вид:

В =1 2 (1 3) (2 4) (3 4).

5. Поочередно раскрываем скобки в конъюнкции В, устраняя повторные сомножители в слагаемых и применяя правило поглощения:

В = (121  123)  (2  4)  (3  4) = (12  123)  (2  4)  (3  4) = 12   (2  4)  (3  4) = (122  124)  (3  4) = 12  (3  4) = 123  124.

Таким образом, функция имеет две ТДНФ, в которые входят простые наборы (Р1, Р2, Р3) и (Р1, Р2, Р4):

Т1 = y z yz x z , Т2 = y z yz x y .

Так как в обеих формах по 6 символов переменных, то они обе являются искомыми МДНФ рассмотренной функции.

Пример 4. Построить МВНФ функции из Примера 3 с использованием базисных наборов {, } и {}.

Решение.

1. Элементарные наборы, на которых внутренние функции СВНФ образуют конституенты единицы, являются инвертированными по отношению к наборам из ДНФ и имеют вид:

N1 = (x, y,z); N2 = (x,y, z); N3 = (x, y,z); N4 = (x,y, z); N 5 = (x,y,z).

СВНФ для базисного набора { ,  } имеет вид:

f =   ((x, y,z); (x,y, z); (x, y,z); (x,y, z); (x,y,z)).

2.СкВНФ определяем по алгоритму Куайна:

а) неполное склеивание в СBНФ:

f = ( (x, y,z); (x,y, z); (x, y,z); (x,y, z); (x,y,z); (y,z); (y, z); (x,z); (x,y)).

б) полное склеивание:

f = ((y,z ); (y, z); (x,z); (x,y)).

Полученная форма является искомой СкВНФ. Множество простых наборов {P} имеет вид:

P1 = (y, z), P2 = (y, z), P3 = (х,z), P4 = (x,y).

3.Построение матрицы покрытий, решеточного выражения и его преобразования выполняются аналогично Примеру 3.

Полученные в итоге ТВНФ в базисе {, } имеют вид:

Т1 = ((y,z); (y, z); (x,z)),

Т2 = ((y,z ); (y, z); (x,y)).

Обе формы будут минимальными.

Переход к однофункциональном набору {} осуществляем с использованием правила А =  (А, 0). Тождественный нуль формально является функцией, однако на практике его получают, заземляя соответствующий вход элемента {}. После замены получим:

Т1 = (((y, (z, 0)); ((у, 0), z); ((х, 0), (z, 0))), 0),

Т2 = (((y, (z, 0)); ((у, 0), z); ((х, 0), (у, 0)) ), 0).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]