русс | укр

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

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

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

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


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

Теорема 4.1.


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


  1. Если функция f не равна тождественно 0, то формула - это совершенная ДНФ, задающая функцию f.
  2. Если функция f не равна тождественно 1, то формула - это совершенная КНФ, задающая функцию f.

Доказательство получается непосредственным вычислением значения каждой из указанных формул с учетом того, что для любого σ {0, 1} имеют место равенства: 1σ = σ и 0σ = σ (см. задачу 4.4).

Следствие 4.1.1. Каждая булева функция может быть задана формулой, содержащей переменные и функции конъюнкции, дизъюнкции и отрицания.

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

Процедура Приведение к совершенной ДНФ

Вход: формула Φ, включающая функции , , , и +.

  1. Используя эквивалентность (7), заменить все вхождения функции в Φ на , и , затем использовать эквивалентность (8) для замены всех вхождений функции + на , и .
  2. Используя законы де Моргана (5) и снятия двойного отрицания(4), внести все знаки отрицания внутрь скобок так, чтобы все оставшиеся отрицания находились непосредственно перед переменными.
  3. Получившаяся после шага (2) формула имеет одну из двух форм:
    • или
    • .

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

Тогда в случае (а) имеем:

Каждый член этой дизъюнкции представляет собой конъюнкцию переменных и их отрицаний. Применяя эквивалентности групп (1), (2) и (6), можно удалить из нее повторения переменных, после чего она превратится в некоторую элементарную конъюнкцию или константу. Проделав такие преобразования со всеми парами (i,j), 1 i r, 1 j s, и удалив, если потребуется, константы 0, мы получим ДНФ, эквивалентную исходной формуле Φ.



В случае (б) формула сама уже является ДНФ.

  1. Используя эквивалентности групп (1), (2) и (6), удалить из получившейся после шага (3) формулы повторные вхождения одинаковых конъюнкций.
  2. Пусть после шага (4) получилась ДНФ . Чтобы получить эквивалентную совершенную ДНФ, построим для каждой Ki (i=1,…, m) , эквивалентную совершенную ДНФ (см. задачу 4.5),заменим ею Ki , а затем устраним повторения одинаковых конъюнкций.

Из формулировок эквивалентностей (7) и (8) непосредственно вытекает

Предложение 4.1. На этапе (1) процедуры при последовательном выполнении преобразований (7), а затем - (8), до тех пор, пока ни одно из них не применимо, полученная в результате формула не будет содержать функций и +.

Доказательство этого предложения оставляем в виде упражнения (см. задачу 4.7).

Следующее утверждение гарантирует корректность этапа (2).

Предложение 4.2. На этапе (2) процедуры при любом порядке выполнения преобразований групп (4) и (5) до тех пор, пока ни одно из них не применимо, в полученной в результате формуле все знаки отрицания будут стоять непосредственно перед переменными.

Перед доказательством этого утверждения введем некоторые обозначения. Напомним, что в определениях 3.2 и 3.3 для каждой формулы Φ была определена ее глубина dep(Φ). Например, формула Φ=(X+Y) ((X Z) Y), построенная над системой F={ , , , , +}, имеет глубину dep(Φ)=5.

Пусть Φ - это формула над F={ , , }. Определим для каждой ее "отрицательной" подформулы вида (Ψ) высоту h((Ψ)) как 3dep(Ψ)-1 . И пусть высота всей формулы H(Φ) равна сумме высот всех ее отрицательных подформул. Например, для приведенной выше формулы Φ ее высота равна H(Φ)= h((X+Y)) +h((X Z))+ h( Z) = (31-1) + (32-1) +(30-1) = 10.

Доказательство предложения 4.2 проведем индукцией по высоте формул.

Базис индукции. Если H(Φ)=0, то либо в Φ нет отрицаний, либо все отрицания находятся непосредственно перед переменными. Следовательно, Φ удовлетворяет требованию предложения 4.2.

Шаг индукции. Предположим, что при n k для всех формул высоты n Предложение 4.2 выполнено. Пусть Φ - произвольная формула высоты H(Φ)= k+1. Докажем наше утверждение для нее. Поскольку H(Φ) 1, то Φ содержит хотя бы одну отрицательную подформулу (Ψ), у которой h((Ψ)) 1 и, следовательно, dep(Ψ) 1. К такой формуле обязательно можно применить либо снятие двойного отрицания (4), либо один из законов де Моргана (5). (Объясните почему.) Пусть (Ψ) - это та подформула Φ, которая на (2)-ом этапе процедуры первой заменяется на эквивалентную формулу Ψ' в соответствии с одной из указанных эквивалентностей. Пусть Φ' - это формула, получившаяся в результате этой замены из Φ. Нетрудно проверить (проделайте эту проверку!), что при любом из преобразований (4), (5) H(Ψ') < H((Ψ)) и, следовательно, H(Φ') < H(Φ). Тогда H(Φ') k и по предположению индукции применение эквивалентностей (4), (5) в произвольном порядке приведет в конце концов к формуле, у которой все отрицания будут стоять непосредственно перед переменными. Тем самым, предложение 4.2 выполнено при n=k+1, что завершает индукционный шаг и все доказательство.

Рассмотрим применение процедуры приведения к совершенной ДНФ на примере.

Пример 4.1. Пусть формула .

На (1)-ом этапе процедуры получаем следующую цепочку эквивалентностей:

На (2)-ом этапе вносим отрицание внутрь первой скобки и получаем формулу

Устранив двойное отрицание, получим

Нетрудно видеть, что это уже ДНФ. Удалим на (4)-ом этапе повторное вхождение первой конънкции и получим ДНФ

Эта ДНФ не является совершенной, так как в каждую из ее трех конъюнкций входят не все переменные. Построим на этапе (5) для них эквивалентные совершенные ДНФ (используя решение задачи 4.5).

Подставив эти формулы в Φ1 и устранив повторения конъюнкций, получим совершенную ДНФ, эквивалентную исходной формуле Φ:

Мы видим, что ДНФ Φ1 , полученная после 4-го этапа, выглядит существенно проще, т.е. является более короткой, чем совершенная ДНФ Φ2 . Однако совершенные ДНФ и КНФ обладают важным свойством единственности, которое следует из их конструкции в теореме 4.1.

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

Это следствие позволяет предложить следующую процедуру для проверки эквивалентности формул Φ и Ψ.

  1. Построить для Φ и Ψ эквивалентные совершенные ДНФ Φ' и Ψ' используя процедуру приведения к совершенной ДНФ.
  2. Упорядочить в соответствии с нумерацией переменных X вхождения переменных в каждую конъюнкцию, а затем лексикографически упорядочить между собой конъюнкции, входящие в Φ' и Ψ'. Пусть в результате получатся совершенные ДНФ Φ'' и Ψ''
  3. Если Φ'' = Ψ'', то выдать ответ "Да", иначе - ответ "Нет".

Замечание. Аналогичную процедуру можно построить с использованием совершенных КНФ.



<== предыдущая лекция | следующая лекция ==>
Совершенные ДНФ и КНФ | Сокращенные ДНФ


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


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

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

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


 


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

 
 

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

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