Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторная работа 2. KC_2010.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
1.85 Mб
Скачать
      1. Представление и минимизация лф с помощью карт Карно

Как и в таблице истинности, в карте Карно 2n клеток, где n - число аргументов функции. Особенностью же ее является расположение клеток таблицы в пространстве и установление соответствия между клеткой и значением вектора Х. Эти особенности связаны с назначением карт Карно - использованием их для минимизации ЛФ в базисе И, ИЛИ, НЕ. Цель минимизации ЛФ – уменьшить число букв в ее алгебраической записи. Соответственно при этом упрощается и схемная реализация.

В основу минимизации положена операция склеивания двух конъюнкций при представлении функции в дизъюнктивной нормальной форме. Склеивание заключается в замене суммы двух термов одним, если они различаются значением только одной переменной xi (в одном терме xi с инверсией, а в другом - без инверсии). Например:

Цель построения карты Карно – так представить ЛФ, чтобы легко обнаруживались термы, допускающие склеивание. Таблица имеет прямоугольную форму. Число аргументов делится пополам, если n – четное: n1=n2=n/2. Если n – нечетное, то n1=(n+1)/2, n2=(n-1)/2. При этом таблица имеет 2n1 столбцов и 2n2 строк. Легко убедиться, что число клеток в таблице N=2n1*2n2=2n. Присваивание конкретных значений наборов переменных столбцам (строкам) осуществляется так, чтобы смежные столбцы (строки) были закодированы соседними кодами, т.е. кодами, различающимися только в одном разряде. При таком кодировании значения вектора Х, соответствующие двум соседним клеткам по вертикали либо по горизонтали, соответствуют соседним кодам, т.е. удовлетворяют условиям склеивания.

На .1 показаны карты Карно для трех, четырех, пяти и шести аргументов и примеры соседних клеток.

Используя таблицу истинности, алгебраическую либо списочную форму задания ЛФ, можно занести в карту Карно значения "0" и "1" в соответствующие клетки для всех значений вектора Х, на которых функция f(X) определена.

С помощью карт Карно удается эффективно решить задачу минимизации ЛФ, т.е. найти функцию f*, эквивалентную заданной функции f и содержащую минимальное количество литералов (букв) в алгебраическом представлении. Эквивалентность понимается в том смысле, что f* принимает значения истинности на тех же наборах аргументов, что и f, т.е. f* своими "единичными" значениями покрывает все клетки таблицы, в которых функция f=1 и не покрывает ни одной клетки, где f=0.

Если в табличном представлении функции f клеток с "1" больше, чем клеток с "0", или при использовании для реализации КС другого базиса, например, элементов Пирса, может быть целесообразна реализация функции , обратной функции f. Реализация в базисе Шеффера требуемой функции f на основе реализации обратной функции потребует включения инвертора на выходе КС.

Пусть в клетках, помеченных кругами (см. ), находятся единицы. Тогда терм, соответствующий клетке с зачерненным кружком, может быть склеен с любым термом, помеченным светлым кружком. Аналогичным образом можно склеивать клетки, соответствующие нулям и помеченные треугольниками.

Объединять общей склейкой при минимизации ЛФ можно две клетки, содержащие единицы (нули), коды которых отличаются инверсией одного аргумента, т.е. расположенные в одной строке или столбце рядом или симметрично относительно осей симметрии таблиц. Склеенную пару единичных (нулевых) клеток по таким же признакам можно объединить с другой склеенной парой единичных (нулевых) клеток, четыре клетки с другой четверкой и т.д. Таким образом, в процессе склейки могут образовываться группы (фигуры), состоящие из 2i клеток, где i - целое число, i = 1, 2, …, n.. Все возможные варианты склеек, охватывающих максимальное число единиц (нулей), реализуют полное склеивание и дают сокращенную ДНФ.

Рис.2.1. Примеры карт Карно различных размеров.

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

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

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