Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Тупиковые ДНФ и алгоритм наискорейшего спуска

Этот метод основан на двух преобразованиях, упрощающих ДНФ: удаление конъюнкции и удаление множителя.

Первое преобразование возможно тогда, когда исходная ДНФ и ДНФ, получающаяся после удаления некоторой элементарной конъюнкции, совпадают на всех наборах значений переменных { x 1, x 2, …, xn }.

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

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

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

Опишем алгоритм по шагам.

Шаг 1. Для функции f (x 1, x 2, …, xn), заданной таблицей, записывается СДНФ, которая считается исходной ДНФ.

Шаг 2. Исходная ДНФ просматривается слева направо. Для текущей конъюнкции исходной ДНФ пытаются применить первое преобразование – удаление конъюнкции. Если это преобразование возможно, то переходят к следующей конъюнкции и т.д.. В противном случае переходят к шагу 3.

Шаг 3. Поочередно (слева направо) рассматривают каждый множитель текущей элементарной конъюнкции с целью применения преобразования «удаление множителя». После просмотра всех множителей этой конъюнкции текущей становится следующая конъюнкция, и процесс возвращается к шагу 2.

После того, как будут рассмотрены все элементарные конъюнкции исходной ДНФ, приступают к выполнению шага 4.

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

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

Для получения других ТДНФ той же функции в исходной СДНФ переупорядочивают множители в элементарных конъюнкциях. Число таких переупорядочиваний в общем случае не превышает (n!) s, где s – число элементарных конъюнкций в исходной СДНФ, а n – число переменных функции. Но s £2 n, поэтому (n!) s £(n!)2 n. Для каждой СДНФ необходимо выполнить не менее s операций по проверке удаления конъюнкций на втором шаге и не более s таких же операций на четвертом шаге. Кроме того, в каждой конъюнкции возможно выполнение n операций по проверке удаления множителя на третьем шаге. Так что общее число проверок для одной СДНФ не больше, чем s + s + n · s = s ·(n +2) £ 2 n ·(n +2). Тем самым трудоемкость построения минимальных ДНФ по этому алгоритму не превышает (n!)2 n ·(n +2)·2 n, что меньше, чем 23 n. Таким образом, трудоемкость метода «наискорейшего спуска» меньше трудоемкости тривиального алгоритма, но для «ручного» просчета слишком велика. Однако алгоритм легко программируется для решения задачи на компьютере.

Таблица 21

x y z f (x, y, z)
       
       
       
       
       
       
       
       

Пример:

Пусть функция трех переменных f (x, y, z) задана таблицей 21. Запишем СДНФ этой функции: СДНФ(f) =

Оформим все вычисления в виде таблицы 22.

 

Таблица 22

ДНФ Текущая конъюнкция Текущий множитель Примечание
1.   не удаляется
2.   удаляется
    не удаляется
    z не удаляется
    не удаляется
    не удаляется
3.   y удаляется
    z не удаляется
    не удаляется
    x не удаляется
4.   удаляется
    не удаляется
5.   удаляется
6.   удаляется
    не удаляется
    не удаляется
    не удаляется

Таким образом, ТДНФ1(f) =

Теперь переставим в третьей конъюнкции исходной ДНФ множитель вперед, тогда новый ход вычислений представится таблицей 23:

Таблица 23

ДНФ Текущая конъюнкция Текущий множитель Примечание
1.   не удаляется
2.   удаляется
    не удаляется
    z не удаляется
    не удаляется
    не удаляется
3.   y удаляется
    z не удаляется
    не удаляется
4.   удаляется
    x не удаляется
    не удаляется
5.   удаляется
    не удаляется
    x не удаляется
6.   y удаляется
    не удаляется
7.   удаляется
    не удаляется
    не удаляется
    не удаляется

Таким образом, ТДНФ2(f) =

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

<== предыдущая лекция | следующая лекция ==>
Метод неопределенных коэффициентов | Геометрическое представление функций алгебры логики
Поделиться с друзьями:


Дата добавления: 2014-01-07; Просмотров: 397; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




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