русс | укр

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

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

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

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


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

Построение тупиковых ДНФ методом упрощения совершенной ДНФ


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


 

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

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

2°. Осуществляется упорядочивание в исходной ДНФ слагаемых и в каждом слагаемом – множителей. Это упорядочение можно задать записью ДНФ.

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

Затем переходят к следующей элементарной конъюнкции. После обработки последней элементарной конъюнкции еще раз просматривают полученную ДНФ слева направо и пробуют применить операцию удаления элементарной конъюнкции. В результате получаем ТДНФ.

 

 

Пример1. Рассмотрим функцию . В табличной форме:

Таблица 1

 

В качестве исходной ДНФ выберем совершенную ДНФ

,

рассмотрим ее упорядочение и проследим работу алгоритма.

1°. Конъюнкция не может быть удалена, но можно удалить множитель :

.

2°. Конъюнкция не может быть удалена, но можно удалить множитель :

.

3°. Конъюнкция , может быть удалена так как

.

4°. Конъюнкция также может быть удалена (см. п. 1°).

5°. Конъюнкцию удалить нельзя, но можно удалить множитель :

.

6°. Конъюнкцию удалить нельзя, но можно удалить множитель :

.

В результате получаем тупиковую ДНФ:

.

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



,

то в результате работы алгоритма упрощения получим другую тупиковую ДНФ:

.

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

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

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

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

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

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

Выполним оценку трудоемкости такой процедуры минимизации.

Однократное применение алгоритма упрощения содержит проверок возможности удаления конъюнкции, проверок возможности удаления множителя из и при вторичном просмотре не более проверок возможности удаления конъюнкций, то есть

.

Общее число упорядочения с учетом замечания, равно , причем

.

Это число меньше, чем , то есть этот алгоритм лучше, чем алгоритм перебора всех ДНФ, но все же он остается весьма трудоемким.



<== предыдущая лекция | следующая лекция ==>
Определение тупиковой ДНФ | Определение сокращенной ДНФ и геометрический метод ее построения


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


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

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

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


 


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

 
 

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

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