русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Минимизация ДНФ методом Квайна


Дата добавления: 2015-07-23; просмотров: 1421; Нарушение авторских прав


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

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

1) последовательным применением эквивалентных преобразо­ваний логическая функция приводится к ДНФ, то есть к форме, не содержащей знаков отрицания над функциями, более сложными, чем один из аргументов;

2) каждый член ДНФ, представляющий собой конъюнкцию ме­нее n членов (n – количество аргументов функции), развер­тывается в дизъюнкцию нескольких элементарных конъюнкций умножением на выражение вида (х1 Ú`х1) • (х2 Ú`х2)•…, тождественно равное едини­це;

3) приводятся, если возможно, подобные члены.

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

В результате выявляются группы конъюнкций, содержа­щие по (n - 1) члену. С этой группой конъюнкций проводится та же процедура, после которой получим группы конъюнкций, содержа­щие по (n - 2) членов и так далее, пока не останется ни одного члена, допускающего склеивания с каким либо другим членом.

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



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

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

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

Эту задачу можно выполнить в следующей последовательно­сти:

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

2) если после этого в таблице окажутся такие пары столбцов, что всем отмеченным клеткам второго столбца соответствуют в тех же строках отмеченные клетки первого столбца, а возможно, и неко­торые другие отмеченные клетки, то первый столбец вычеркивается. Это возможно потому, что какую бы совокупность простых импликантов, покрывающую элементарную конъюнкцию, которая соот­ветствует второму столбцу мы ни подобрали, этой совокупностью автоматически будет покрываться и конъюнкция, соответствующая первому столбцу;

3) строки, не содержащие после выполнения п.п. 1 и 2 ни од­ной отмеченной клетки, также вычеркиваются. Это возможно потому, что все конъюнкции, которые могут быть покрыты данным про­стым импликантом, уже покрыты другими простыми импликантами, которые должны войти в окончательное выражение для ДНФ;

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

5) если оказывается несколько вариантов выполнения п. 4, то все они сравниваются, и выбирается простейший вариант.

Пример. Минимизировать функцию:

f(х1, х2, х3, х4) = х1 х2 х4 Ú х2 х3 х4 Ú`х12 х3 Ú`х124.

В результате развертывания элементар­ных конъюнкций получим:


Таблица 2.7. Импликантная таблица

  х1х2 х3 х4 х1х23 х4 1 х2 х3 х4 12 х3 х4 12 х34 1234
х1 х2 х4 Х Х        
х2 х3 х4 Х   Х      
1 х3 х4     Х Х    
12 х3       Х Х  
124         Х Х

 

Вычеркивая строки и столбцы, соответствующие обязательным импликантам х1 х2 х4 и `х124, получим упрощенную импликантную таблицу (табл. 2.8).

Таблица 2.8. Упрощенная импликантная таблица

  1 х2 х3 х4 12 х3 х4
х2 х3 х4 X  
1 х3 х4 X X
12 х3   X

Из упрощенной таблицы видно, что простой импликант `х1х3 х4 покрывает обе оставшиеся конъюнкции. Теперь можно окончатель­но записать минимальную ДНФ для функции f(х1, х2, х3, х4):

f(х1, х2, х3, х4) = х1 х2 х4 Ú`х124 Ú `х1 х3 х4.

Для уменьшения количества проверок на возможность склеи­вания целесообразно все элементарные конъюнкции, содержащие одинаковое число букв, сгруппировать по признаку одинакового количества инвертированных (или не инвертированных) букв.



<== предыдущая лекция | следующая лекция ==>
Этапы минимизации ДНФ | Третий этап


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.404 сек.