русс | укр

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

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

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

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


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

Метод Квайна — Мак-Класки


Дата добавления: 2013-12-24; просмотров: 1344; Нарушение авторских прав


Более эффективным является выписывание для функции n переменных не всех возможных конъюнкций, а только тех, которые могут присутствовать в ДНФ, эквивалентной минимизируемой функции. Этот прием позволяет уменьшить таблицу и перебор, который мы проводим с целью нахождения МДНФ.

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

1. Нахождение первичных импликант. Все минитермы данной функции сравнивают между собой попарно. Если минитермы mi и mj таковы, что они имеют вид axi и a`xi, то вписывается конъюнкция a, являющаяся минитермом (n-1)-го ранга. Будем говорить, что минитерм a покрывает минитерм ax и `ax (покрывается ими). Минитермы n-го ранга, для которых произошло склеивание, отмечаются. После построения всех минитермов (n-1)-го ранга вновь сравнивают их попарно, выписывают минитермы (n-2)-го ранга, отмечают склеивающиеся минитермы (n-1)-го ранга и т.д. Этап заканчивается, когда вновь полученные минитермы i-го ранга уже не склеиваются между собой. Все неотмеченные минитермы называются первичными или простыми импликантами.

ПримерПример 6

f(x1,x2,x3,x4)=`x1`x2x3x4Ú`x1x2`x3`x4Ú`x1x2`x3x4Ú

Ú`x1x2x3x4Úx1`x2`x3x4Úx1`x2x3x4Úx1x2`x3`x4Úx1x2x4`x3.

Минитермы 4-го ранга:

x1`x2x3x*4, `x1x2`x3`x*4, `x1`x3x2x*4, `x1x2x3x*4,

x1`x2`x3x*4, x1`x2x3x*4, x1x2`x3`x*4, x1x2`x3x*4.

Образуем минитермы 3-го ранга:

`x1x3x4, `x2x3x4, `x1x2`x*3, x2`x3`x*4,

`x1x2x4, x2`x3x*4, x1`x2x4, x1`x3x4, x1x2`x*3.

Теперь находим минитермы 2-го ранга: x2`x3.

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



`x1x3x4, `x2x3x4, `x1x2x4, x1`x2x4, x1`x3x4, x2`x3.

2. Расстановка меток. Для данной функции f(x1,x2,...,xn)=Úili, где li - простые импликанты, полученные нами на первом этапе. Для нахождения МДНФ нужно найти минимальное подмножество из li, покрывающее конъюнкции исходной СДНФ, для чего необходимо выбросить некоторое количество первичных импликант. На данном этапе составляется таблица, число строк которой равно числу полученных первичных импликант минимизируемой функции, число столбцов совпадает с числом минитермов. Если в некоторый минитерм входит какая-либо из первичных импликант, то на пересечении соответствующего столбца и строки ставится метка.

Продолжение примера 6. Составим таблицу (табл.9) с метками для рассматриваемой функции, в которой будет 6 строк и 8 столбцов.

Таблица 9

`x1`x2 x3x4 `x1x2 `x3`x4 `x1x2 `x3x4 `x1x2 x3x4 x1`x2 `x3x4 x1`x2 x3x4 x1x2 `x3`x4 x1x2 x4`x3
`x1x3x4 Ú     Ú        
`x2x3x4 Ú         Ú    
`x1x2x4     Ú Ú        
x1`x2x4         Ú Ú    
x1`x3x4         Ú     Ú
x2`x3   Ú Ú       Ú Ú

 

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

Продолжение примера 6. Для нашей функции существенной импликантой является x2`x3. Она покрывает минитермы `xx1xx2`xx3`xx4, `xx1xx2`xx3`xx4, xx1xx2`xx3`xx4, xx1xx2xx4`xx3. При переходе к следующему этапу эти минитермы будут вычеркнуты.

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

Продолжение примера 6. После вычеркивания существенной импликанты и минитермов, которые она покрывает, таблица меток принимает вид, как в табл.5.10:

 

 

Таблица 10

  `x1`x2x3x4 `x1x2x3x4 x1`x2`x3x4 x1`x2x3x4
`x1x2x4 Ú Ú    
`x2x3x4 Ú     Ú
`x1x2x4   Ú    
x1`x2x4     Ú Ú
x1`x3x4     Ú  

 

В данном случае одинаковых столбцов нет.

5. Вычеркивание лишних первичных импликант. Если после выбрасывания некоторых столбцов на четвертом этапе в таблице появляются строки, в которых нет ни одной метки, то первичные импликанты, соответствующие этим строкам, исключаются из дальнейших рассмотрений, так как они не покрывают оставшиеся в рассмотрении минитермы.

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

Окончание примера 6. Для рассматриваемой функции выбираем покрытие из импликант `xx1xx3xx4 и xx1`xx2xx4, так как они совместно покрывают все оставшиеся после четвертого этапа минитермы. Минимальная ДНФ для этой функции имеет вид

f(xx1,xx2,xx3,xx4)=`xx1xx3xx4Úxx1`xx2xx4Úxx2`xx3.



<== предыдущая лекция | следующая лекция ==>
Метод неопределенных коэффициентов | Монотонные функции


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


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

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

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


 


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

 
 

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

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