Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции полные ВТиИТ.DOC
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
2.95 Mб
Скачать
  1. Минимизация фал.

В большинстве случаев совершенная форма записи ФАЛ не является самой простой для аналитического задания КЦУ. Следовательно, её техническая реализация приведёт к излишне сложному устройству. Поэтому логическое выражение прежде всего следует упростить, не нарушая при этом значения функции.

Упрощение ФАЛ с сохранением её свойств называется минимизацией.

Целью минимизации является переход от совершенной формы записи ФАЛ к соответствующей нормальной форме с минимальным числом членов и минимальным числом аргументов в каждом из них.

Существует два класса методов минимизации ФАЛ: графические и алгебраические. Из графических методов наибольшее практическое применение получил метод карт Вейча-Карно.

1. Минимизация ФАЛ с помощью карт Вейча-Карно.

Карта Вейча-Карно представляет собой специальную форму таблицы истинности для двух, трёх или четырёх аргументов:

n = 2 n = 3 Число клеток карты определяется числом

х1 х1 х1 х1 возможных наборов значений аргументов и

х 0 х0 при числе аргументов n равно 2n.

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

n = 4

х1 х1 Минимизация производится в следующей

х 0 х3 последовательности. Отмечаются клетки карты, соответствую-

х3 щие членам исходной функции или, иными

х0 х3 словами, наборам аргументов, на которых х2 х2 х2 функция обращается в 1, если используется

СДНФ, либо в 0, если используется СКНФ. При этом, в случае частично определённой функции учитываются и безраз- личные наборы.

Отсюда следует, что размечать карту можно непосредственно по таблице истинности.

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

Например, пусть КЦУ задано таблицей истинности:

№ набора х2 х1 х0 у Соответствующая ей ФАЛ будет иметь вид:

0 0 0 0 0 уСДНФ = х2х1х0  х2х1х0  х2х1х0  х2х1х0  х2х1х0 или

1 0 0 1 0 уСКНФ = (х2  х1  х0)( х2  х1  х0)( х2  х1  х0)( х2

2 0 1 0  х1  х0).

3 0 1 1 1 Первый член функции в СДНФ и третий в СКНФ

4 1 0 0 1 соответствуют безразличному набору.

5 1 0 1 0 Представим таблицу истинности в форме карты

6 1 1 0 1 Вейча-Карно.

7 1 1 1 1 Для разметки карты переменные каждого из членов функции в совершенной форме следует рассматривать как координаты. В соответствии с этим определим клетку, соответствующую первому члену функции в СДНФ. Координата х0 определяет нижнюю строку карты, коорди-

ната х1 - два первых столбца, а координата х2 - два крайних столбца. Все координаты пересекаются на единственной клетке карты - нижней левой угловой.

случай СДНФ случай СКНФ Остальные клет-

х1 х1 х1 х1 ки находятся х0 I х0 I  аналогично не-

1 1 0 зависимо от

х0  1 1 II х0 0 0 II формы предс- тавления ФАЛ. х2 х2 х2 х2 х2 х2

х1 х1

х0 Далее отмеченные клетки объединяются в

х0 замкнутые области. При этом используются

х2 х2 х2 следующие правила:

1) каждая область должна представлять собой прямоугольник с числом клеток 2k, где k = 0, 1, 2, ... Т.е. область может содержать одну клетку (k = 0), две клетки (k = 1), четыре (k = 2), восемь (k = 3) и т.д. Кроме того, нельзя объединять клетки, расположенные по диагонали, а также разделённые неотмеченными клетками.

х х х Например, в область можно объединить две верхние ле-

вые клетки, но нельзя объединить нижние и крайние

х х правые.

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

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

Н апример, при следующей разметке карты х х следует сформировать две пересекающиеся области; х

3) допускается сворачивание карты в цилиндр как по горизонтальной, так и по вертикальной оси с объединением противоположных граней

карты.

Например, карту, размеченную следующим образом, следует свернуть сна-

х х х чала по вертикальной оси, что даёт две области

по две клетки каждая. Затем свернуть карту по

горизонтальной оси, в результате чего получает-

ся область, состоящая из четырёх клеток;

х х х 4) при участии всех отмеченных клеток в

х х процедуре формирования областей следует

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

минимальным.

Вернёмся к нашему примеру и сформируем области из отмеченных клеток. В случае СДНФ учёт безразличного набора позволил расширить первую из областей, что в итоге уменьшит число переменных в соответствующем члене минимальной функции. В случае же СКНФ учёт безразличного набора даст лишнюю область, что увеличит число членов минимальной функции. Поэтому в данном случае безразличный набор учитывать не следует.

Таким образом, учёт безразличных наборов в ряде случаев повышает эффективность минимизации.

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

Запишем минимальную функцию для нашего примера. В случае СДНФ в первую область первая переменная входит только без инверсии, а остальные - как с инверсией, так и без инверсии. Следовательно, соответствующий член минимальной функции состоит только из переменной х1. Во вторую область переменная х0 входит только с инверсией, х2 - только без инверсии, а х1 - как с инверсией, так и без неё. Следовательно, второй член минимальной функции состоит из переменных х0 и х2. Поскольку исходной является функция в СДНФ, то минимальная функция запишется в ДНФ: уМДНФ = х1  х0х2.

В случае СКНФ в первую область переменные х1 и х2 входят только без инверсии, а х0 - как с инверсией, так и без неё. Следовательно, х1 и х2 и составляют соответствующий член минимальной функции. Во вторую область переменная х0 входит только с инверсией, х1 - только без инверсии, а х2 - как с инверсией, так и без неё. Следовательно, вторая переменная отбрасывается. Поскольку исходной является функция в СКНФ, то минимальная функция запишется в КНФ: уСКНФ = (х1  х2)(х0  х1).

Для минимизации функций с числом аргументов более четырёх карты Вейча-Карно практически не используются, поскольку области охвата клеток становятся многомерными (трёх-, четырёхмерными и т.д.). В этих случаях целесообразны алгебраические методы минимизации, из которых наибольшее практическое применение получил метод Квайна.

2. Минимизация ФАЛ методом Квайна.

Минимизация производится в следующей последовательности.

ФАЛ представляется в одной из совершенных форм после чего члены, отличающиеся только в одной переменной, объединяются в пары.

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

Это понятие применимо к членам ФАЛ в совершенной форме, поскольку каждый из них представляет собой функцию конституенты единицы или нуля.

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

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

Например, для функции уСДНФ = х2х1х0  х2х1х0  х2х1х0  х2х1х0 можно образовать три пары: 1) х2х1х0  х2х1х0 (отличаются только в первой переменной), 2) х2х1х0  х2х1х0 (отличаются только во второй переменной), 3) х2х1х0  х2х1х0 (отличаются только в нулевой переменной). Однако третья пара избыточна, поскольку и второй, и четвёртый члены функции уже задействованы в первой и второй парах, соответственно.

К сформированным парам в случае СДНФ применяют операцию скле-ивания, а в случае СКНФ - операцию поглощения.

Так, в результате применения закона склеивания пары нашего примера примут вид:

1) х2х1х0  х2х1х0 = х2х0, 2) х2х1х0  х2х1х0 = х1х0.

Результат преобразования каждой пары представляет собой член минимальной функции.

Для нашего примера получаем: уМДНФ = х2х0  х1х0.

В случае не полностью определённого КЦУ при записи ФАЛ в совершенной форме полагается, что на безразличных наборах функция обращается в 1(при использовании СДНФ) или в 0 (при использовании СКНФ). Т.е. безразличные наборы обязательно учитываются.

Следует отметить, что метод Квайна можно и нужно пытаться применить повторно до получения действительно минимальной функции.