Методичка для 2 лабы по ОТКДС (Лабораторная работа 2 ОТКДС)

Посмотреть архив целиком

7



Работа 2. МЕТОДЫ МИНИМИЗАЦИИ ФАЛ И ИХ РЕАЛИЗАЦИЯ НА ЭВМ


Цель работы: изучение алгоритмов минимизации функций алгебры логики (ФАЛ) в классе ДНФ и анализ их применения на базе ЭВМ.


Задание

1.Минимизировать заданную ФАЛ 3-х переменных методом неопределенных коэффициентов. Записать СкДНФ, все ТДНФ, МДНФ. Проанализировать возможность применения метода для минимизации ФАЛ большего числа переменных.

2.Минимизировать вручную заданную ФАЛ 5-ти переменных методом Квайна – Мак-Класки. Записать СкДНФ, найти все ТДНФ используя ЛФП, выбрать все МДНФ.

3.Минимизировать ФАЛ из пп.1и2 и заданную ФАЛ 4-х переменных методом карт Вейча. Записать МДНФ.

4.Минимизировать ФАЛ из л.р. №1 методом карт Вейча. Записать МДНФ. (пп. 4 выполняется индивидуально каждым членом бригады)

5. Минимизировать ФАЛ из п.п. 1 и 2 на ЭВМ с помощью стандартной программы. Сравнить результаты ручного и машинного счета.


Методические указания

Методы минимизации ФАЛ. Под минимальной формой записи ФАЛ в виде дизъюнктивной нормальной формы (МДНФ) понимается та ДНФ, которая содержит наименьшее число букв по сравнению с другими ДНФ данной функции. МДНФ существует для любой ФАЛ кроме константы 0 и может быть не единственной.

Решение задачи нахождения МДНФ может иметь следующие общие этапы:

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

  2. Формирование множества всех тупиковых ДНФ (ТДНФ) минимизируемой функции, соответствующих всем вариантам неупрощаемого покрытия множества Т1 функции простыми импликантами.

  3. Выделение из множества ТДНФ функции одной или нескольких МДНФ.

Наиболее трудоемкими, требующими применения специальных алгоритмов, являются 1-й и 2-й этапы. Существуют компьютерные реализации второго этапа поиска МДНФ: а) анализ импликантных матриц; б) составление и преобразование логической формулы покрытия (ЛФП). 3-й этап преодолевается путем перебора всех ТДНФ.

Для решения задачи нахождения МДНФ используются:

  • метод расчленений и проб,

  • метод карт Вейча,

  • метод неопределенных коэффициентов,

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

Последние два метода поддаются алгоритмизации и успешно реализуются на ЭВМ.


Метод расчленения и проб. ДНФ минимизируемой функции преобразуют с помощью основных аналитических соотношений [1], используя главным образом операции склеивания, поглощения и обобщенного склеивания. Однако далеко не каждая последовательность операций преобразования ФАЛ приводит к минимальной форме. Эффективность данного способа в значительной мере определяется квалификацией и опытом разработчика. Метод не формализован и применяется для функций, зависящих от небольшого числа аргументов.


Метод Карт Вейча. Описание карт Вейча и работа с ними описана в методических указаниях к лабораторной работе №1

При минимизации функцию наносят на соответствующую карту, ставя единицы в квадраты, соответствующие всем дизъюнктивным членам ФАЛ. Каждому минтерму максимального ранга соответствует один квадрат карты, а каждому минтерму меньшего ранга — несколько квадратов. Осуществляя минимизацию, выбирают совокупность минтермов по возможности меньшего ранга, которые покрывают все квадраты, содержащие единицы, и не покрывают остальные квадраты. При этом допускается, чтобы одна и та же единица была покрыта двумя и более минтермами. . Эти минтермы соответствуют простым импликантам функции, а их совокупность – МДНФ, одной из тупиковых ДНФ.

Наглядность, обеспечиваемая при этом, дает возможность “видеть” наиболее рациональные варианты покрытия множества Т1 простыми импликантами и успешно находить МДНФ для функций не сложнее 5-6-местных. Для алгоритмизации метод карт Вейча не приспособлен.

При реализации метода расчленений и проб и метода карт Вейча нет необходимости выделять этапы 1,2,3, описанные выше.


Метод неопределенных коэффициентов. Основан на представлении минимизируемой n - местной ФАЛ в виде дизъюнкции всех минтермов n переменных, причем каждый минтерм Fj в этой дизъюнкции логически умножается на неизвестный булевый коэффициент Kj - одноразрядное двоичное число.

(1)

Множество номеров <j> содержит все n-разрядные двоичные номера и все их собственные части, полученные заменой любой позиции n-разрядного номера символом “-” (прочерк), что говорит об отсутствии соответствующей переменной в минтерме Fj. Таким образом, в записи (1) предусмотрены все минтермы ранга не выше n.

Очевидно, что общее число неопределенных коэффициентов равно числу всех минтермов ранга не выше n и равно . Для n=2


(1a)

При такой форме записи ФАЛ задача минимизации сводится к выбору набора коэффициентов Kj , при котором полученная ДНФ соответствует заданной минимизируемой и содержит наименьшее число букв. Первое требование эквивалентно удовлетворению 2n ограничений, определяемых значениями ФАЛ на всех n-разрядных наборах множества Т.


. (2)

Для n=2 эти ограничения записываются в виде 4-х уравнений:

(2a)

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

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

Работа на следующих этапах сводится к выбору из СкДНФ неизбыточного комплекта коэффициентов , удовлетворяющего (2а) и соответствующего ДНФ с наименьшим числом букв. Для малых n это можно выполнить путем перебора. Для n 4 целесообразно воспользоваться специальными методами, рассмотренными ниже. Главным недостатком метода неопределенных коэффициентов является необходимость формирования и работы с множеством всех минтермов n переменных.

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


Метод Квайна – Мак-Класски. 1-ый этап минимизации – нахождение СкДНФ, реализуется в соответствии с теоремой Квайна: ”Для получения СкДНФ заданной ФАЛ необходимо и достаточно в ее СДНФ выполнить все возможные операции неполного склеивания, а затем все возможные операции поглощения ”. В методе Квайна он сводится к следующему:

1. Минимизируемую ФАЛ представляют в виде СДНФ.

2. Все минтермы максимального n-го ранга пытаются попарно склеить по правилу неполного склеивания

,

где y – минтерм, не содержащий хi . Все минтермы, участвующие в склеивании, отмечаются. Вновь полученные минтермы (n – 1)-го ранга также попарно сравниваются, склеиваются между собой и отмечаются. Далее склеиваются минтермы (n – 2)-го ранга и т.д. Этот процесс продолжается до тех пор, пока склеивания возможны. Дизъюнкция полученных минтермов содержит все минтермы – импликанты функции .

3. Вычеркиванием всех отмеченных минтермов реализуются все возможные поглощения, в результате остаются только простые импликанты, образующие СкДНФ (множество R).

В этом подходе есть одно существенное неудобство. Оно связано с необходимостью полного попарного сравнения всех минтермов на этапе нахождения простых импликант. Поэтому в 1956 г. Мак-Класски предложил модернизацию первого этапа метода Квайна, существенно уменьшающую число сравнений минтермов. Суть предложенной модернизации состоит в следующем. Записывают минтермы в виде их двоичных номеров и все номера разбивают по числу единиц в этих номерах на непересекающиеся группы. При этом в i-ю группу войдут все номера, имеющие в своей двоичной записи ровно i единиц. Попарное сравнение можно производить только между соседними по номеру группами, т.к. только эти группы отличаются для входящих в них минтермов в одном разряде. Склеивание возможно, если два номера различаются только по одной позиции. В результате склеивания образуется новый минтерм (номер), в котором на месте переменной, по которой производилось склеивание, ставится прочерк.

- склеивание по переменной х3 .

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


Анализ импликантной матрицы. Реализует 2-й этап минимизации. Импликантная матрица – таблица, столбцы которой соответствуют наборам из множества , а строки – всем простым импликантам, найденным выше, содержащая метки – “\/” , отражающие факт покрытия каждым простым импликантом вершин из . Метка “\/” ставится на пересечении строки и столбца тогда, когда простой импликант является собственной частью минтерма n-ого ранга, соответствующего конкретной вершине из . Если простой импликант имеет ранг “k”, то в соответствующей строке импликантной матрицы будет 2(n–k) меток.

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

  1. Если в каком-либо столбце импликантной матрицы есть только одна метка, то соответствующий простой импликант объявляется существенным и обязательно входит во все ТДНФ и МДНФ. При обнаружении существенного простого импликанта соответствующая строка импликантной матрицы и все столбцы, в которых она имеет метки, исключаются из дальнейшего рассмотрения (вычеркиваются).

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

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

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


Метод составления и преобразования логической формулы покрытия. Отражает формальную процедуру поиска всех тупиковых ДНФ. Логическая формула покрытия (ЛФП) выражает в форме r – местной ФАЛ условия покрытия вершин из множества простыми импликантами из множества R. Пусть yi – логическая переменная, отражающая факт покрытия i – тым простым импликантом j – той вершины из . Тогда импликантной матрице соответствует истиность ЛФП

, (3)

где: <i> - номер i-го простого импликанта в форме n-разрядного троичного набора, содержащего символы: 0, 1, –. <i> <j> - означает, что <i> является собственной частью <j> (т.е. i-ый простой импликант покрывает j-ю вершину из ).

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

(4)


Левую часть (4) можно трактовать как дизъюнкцию всех минимальных покрытий множества , причем Ql (l = 1,2,...k) – множество номеров простых импликантов, образующих конкретную ТДНФ, k – количество всех тупиковых ДНФ. На этом задача нахождения множества всех ТДНФ решена.


Программная реализация методов минимизации ФАЛ. Для поиска МДНФ используется стандартная программа, написанная на языке C++. Вид экрана при работе по минимизации функций алгебры логики приведен ниже.


Лабораторные работы по курсу: ОТКДС

г====================================================================¬

¦ Минимизация Функций Алгебры Логики ¦

¦====================================================================¦

¦ Число переменных ФАЛ: ¦

¦ 5 ¦

¦ Изображающее число ФАЛ: ¦

¦ 0 0 1 . . . 0 1 0 1 0 0 0 0 0 0 0 0 0 0 ¦

¦====================================================================¦

¦ Работу выполнил: ¦

¦ Файл с результатами: minfal1.rez ¦

¦ Ключи печати ¦

¦ Печать СДНФ Да ¦

¦ Печать Сокращенной ДНФ Да ¦

¦ Печать имликантной матpицы Да ¦

¦ Печать всех вариантов покрытия Нет ¦

L= F4-Вычисления F10-Выход =-


Данная программа рассчитана на минимизацию ФАЛ от 2 до 5 переменных. Для изменения числа переменных ФАЛ требуется установить курсорное поле в позицию под полем «Число переменных ФАЛ» и ввести необходимое значение. После чего количество элементов, отводимых под задание изображаемого числа ФАЛ, на экране будет автоматически скорректированно.

Для ввода изображающего числа ФАЛ требуется установить курсорное поле в соответствующую позицию и нужным образом скорректировать его нажатием клавиши или <Пробел>. По окончанию ввода изображающего числа ФАЛ требуется ввести фамилию выполняющего работу, имя файла результатов и соответствующим образом установить ключи печати. Имя файла с результатами должно быть уникальным, чтобы не затирать файлы других пользователей. Переключение ключей осуществляется также как и корректировка изображающего числа ФАЛ путем нажатия клавиши или <Пpобел>.

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


Контрольные вопросы

  1. Что такое СкДНФ, ТДНФ, МДНФ, КрДНФ?

  2. В чем состоят идея, преимущества, недостатки методов неопределенных коэффициентов, Квайна, Мак – Класски, карт Вейча, метода ЛФП?

  3. Что такое импликантая матрица?

  4. Чему равно число неопределенных коэффициентов для 3-х, 4-х переменных?

  5. В чем состоит операция неполного склеивания?


Варианты ФАЛ для заданий по лабораторной работе №2


Варианты заданий к п. 1 (ФАЛ 3-х переменных)


NN

Элементы множества Т1

1

2

3

4

5

6

7

8

9

10

0, 1, 2, 5, 6, 7

0, 2, 4, 3, 5, 7

1, 4, 0, 7, 3, 6

1, 2, 3, 4, 5, 6

0, 3, 4, 5, 6

0, 6, 1, 3, 5

0, 5, 2, 6, 3

0, 1, 2, 6, 7

0, 2, 3, 4, 5

2, 3, 4, 5, 6



Варианты заданий к п. 4 (ФАЛ 4-х переменных)


NN

Элементы множества Т1

1

2

3

4

5

6

7

8

9


0, 2, 4, 5, 6, 8, 9, 13, 14

9, 10, 2, 0, 1, 5, 6, 12, 13

1, 2, 4, 5, 8, 9, 10, 12, 13

0, 1, 2, 5, 6, 8, 9, 12, 13

0, 4, 8, 10, 12, 1, 3, 11, 13

0, 8, 1, 5, 9, 2, 6, 7, 11

0, 1, 2, 10, 3, 8, 12, 14, 7

0, 1, 4, 3, 6, 7, 8, 9, 13

0, 2, 4, 6, 7, 8, 12, 14, 15

0, 4, 5, 8, 10, 11, 12, 14, 15



Варианты заданий к п. 2 (ФАЛ 5-ти переменных)


NN

Элементы множества Т1

1

2

3

4

5

6

7

8

9

10

0, 1, 2, 3, 5, 7, 10, 13, 14, 15, 19, 20, 22, 23, 26, 28, 30, 31

0, 2, 4, 6, 8, 10, 14, 20, 26, 28, 30, 7, 9, 13, 15, 21, 25, 29, 31

0, 8, 16, 24, 9, 25, 18, 11, 19, 27, 28, 5, 21, 29, 22, 7, 23, 31

0, 16, 1, 17, 18, 19, 5, 22, 7, 23, 25, 10, 11, 27, 13, 14, 15, 31

0, 4, 8, 12, 20, 28, 9, 21, 25, 29, 14, 18, 26, 30, 11, 19, 27, 31

0, 16, 8, 24, 20, 28, 10, 22, 14, 30, 25, 5, 13, 29, 11, 7, 15, 31

0, 1, 16, 17, 9, 25, 20, 13, 28, 29, 19, 10, 18, 27, 21, 14, 30, 31

0, 2, 1, 3, 18, 19, 9, 26, 25, 27, 7, 20, 21, 23, 13, 28, 29, 31

0, 2, 4, 6, 5, 7, 18, 21, 19, 23, 14, 9, 11, 15, 26, 25, 27, 31

0, 8, 4, 12, 10, 14, 5, 11, 7, 15, 28, 18, 22, 30, 21, 19, 23, 31