Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
UchebnoePosobie.doc
Скачиваний:
74
Добавлен:
11.11.2019
Размер:
6.36 Mб
Скачать

1.5.8.2. Минимизация кнф булевой функции

Если в СКНФ булевой функции произвести всевозможные операции обобщённого склеивания (xÚF)×(`xÚF)=(xÚF)×(`xÚF)×F, а затем операции поглощения F1×(F1ÚF2)=F1, то будет получена сокращённая КНФ, каждая элементарная дизъюнкция которой есть имплицента длины n или (n-1). На втором этапе выполняется операция обобщенного склеивания для имплицент длины (n-1), а в результате поглощения будут получены имплиценты длины (n-1) и/или (n-2).

Операции обобщённого склеивания и поглощения выполняются до тех пор, пока можно получать имплиценты от меньшего числа булевых переменных. Имплиценты минимальной длины булевой функции называются простыми.

Например, f(x1;x2;x3;x4)=(x1Úx2Úx3Úx4)×(x1Ú`x2Úx3Úx4)×(x1Ú`x2Ú`x3Úx4)×(x1Úx2Ú`x3Úx4)× (`x1Úx2Úx3Úx4)×(`x1Úx2Úx3Ú`x4)×(`x1Úx2Ú`x3Ú`x4).

  • первый этап обобщённого склеивания:

f(x1;x2;x3;x4)=(x1Úx2Úx3Úx4)×(x1Ú`x2Úx3Úx4)×(x1Ú`x2Ú`x3Úx4)×(x1Úx2Ú `x3Úx4)× (`x1Úx2Úx3Úx4)×(`x1Úx2Úx3Ú`x4)×(`x1Úx2Ú`x3Ú`x4)×(x2Úx3Úx4)× (x1Úx3Úx4)×(x1Úx2Úx4)× (x1Ú`x2Úx4)×(x1Ú`x3Úx4)×(`x1Úx2Úx3)×(`x1Úx2Ú`x4);

  • первый этап поглощения:

f(x1;x2;x3;x4)=(x2Úx3Úx4)×(x1Úx3Úx4)×(x1Úx2Úx4)×(x1Ú`x2Úx4)×(x1Ú`x3Ú x4)× (`x1Úx2Úx3)×(`x1Úx2Ú`x4);

  • второй этап обобщённого склеивания:

f(x1;x2;x3;x4)=(x2Úx3Úx4)×(x1Úx3Úx4)×(x1Úx2Úx4)×(x1Ú`x2Úx4)×(x1Ú`x3Ú x4)× (`x1Úx2Úx3)×(`x1Úx2Ú`x4)×(x1Úx4);

  • второй этап поглощения:

f(x1;x2;x3;x4)=(x2Úx3Úx4)×(`x1Úx2Úx3)×(`x1Úx2Ú`x4)×(x1Úx4).

Следующий этап не уменьшает длину КНФ и числа двоичных переменных. Следовательно, получены простые имплиценты и тупиковая КНФ.

Для поиска минимальной КНФ составляется таблица простых имплицент, столбцами которой являются элементарные дизъюнкции СКНФ булевой функции - D(i), а строками - простые имплиценты тупиковой КНФ - Dj.

Если Dj входят в число элементов D(i), то на пересечении строки и столбца ставиться 1, в противном случае 0.

Для каждого значения Dj проверяется условие: если Dj(i)®Úl¹jDl(i)º0, то Dj(i) является ядерной имплицентой минимальной КНФ. Этому условию соответствует единственная 1 в столбце для соответствующего Dj.

Если в столбце несколько 1, то Dj(i)®Úl¹jDl(i)º1. Удаляя из таблицы все ядерные имплиценты и столбцы D(i), в которых они содержат 1, получим сокращённую таблицу неядерных имплицент КНФ, из числа которых следует выбрать набор простых имплицент с минимальным набором числа двоичных переменных.

Ядерные имплиценты и набор неядерных из числа простых имплицент КНФ, покрывающих все “1” таблицы, формирует минимальную КНФ. В таблице 1.28 представлены простые имплиценты тупиковой КНФ и элементарные дизъюнкции СКНФ для рассматриваемого примера.

таблица 1.28

Простые

имплиценты

Di

Элементарные дизъюнкты - Di

x1Úx2Úx3Úx4

x1Ú`x2Úx3Úx4

x1Ú`x2Ú`x3Úx4

x1Úx2Ú`x3Úx4

`x1Úx2Úx3Úx4

`x1Úx2Úx3Ú`x4

`x1Úx2Ú x3Ú`x4

x1Úx4

1

[1]

[1]

[1]

0

0

1

x2Úx3 Úx4

1

0

0

0

0

1

1

`x1Úx2Úx3

0

0

0

0

[1]

1

0

`x1Úx2Ú`x4Ú`x4

0

0

0

0

0

1

0

Элементами этой таблицы являются “1”, если простая имплицента входит в состав элементарной дизъюнкции СКНФ, и “0” – в противном случае. Квадратными скобками выделены те “1”, для которых выполняется условие ядерной имплиценты.

Ядерными имплицентами являются (x1Úx4) и (`x1Úx2Ú`x4), которые покрывают элементарные дизъюнкции СКНФ (x1Úx2Úx3Úx4), (x1Ú`x2Úx3Úx4), (x1Ú`x2Ú`x3Úx4), (x1Úx2Ú`x3Úx4), (`x1Úx2Úx3Ú`x4) и (`x1Úx2Ú`x3Ú`x4).

Из множества элементарных дизъюнкций D(i) осталась непокрытой (`x1Úx2Úx3Úx4) и две неядерных имплиценты: (x1×x2×x3) и (x2×x3×x4). Следовательно, возможны два варианта минимальной КНФ:

. fmin(x1;x2;x3;x4)=(x1Ú x4)×(`x1Úx2Ú`x4)× (x2Úx3Úx4)

fmin(x1;x2;x3;x4)=(x1Ú x4)×(`x1Úx2Ú`x4)× (`x1Úx2Úx3).

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