Совершенная дизъюнктивная нормальная форма (СДНФ) и совершенная конъюнктивная


































25808-masha_katya_kristina.ppt
- Количество слайдов: 34
Совершенная дизъюнктивная нормальная форма (СДНФ) и совершенная конъюнктивная нормальная форма (СКНФ) 1
Простой конъюнкцией (элементарной) называется конъюнкция одной или нескольких переменных, при этом каждая переменная встречается не более одного раза (либо сама, либо ее отрицание). 2 Не соответствует правилу
Дизъюнктивной нормальной формой (ДНФ) называется дизъюнкция простых конъюнкций. 3 ДНФ можно построить для всякой формулы (путем преобразования).
Простой дизъюнкцией (элементарной) называется дизъюнкция одной или нескольких переменных, при этом каждая переменная входит не более одного раза (либо сама, либо ее отрицание). 4 Не соответствует правилу
Конъюнктивной нормальной формой (КНФ) называется конъюнкция простых дизъюнкций. 5 КНФ можно построить для всякой формулы (путем преобразования).
Задача Пусть дана таблица истинности для некоторой логической функции F(X,Y). Перейти от таблицы истинности к формуле, а на ее основе построить функциональную схему. 6
Логическая функция 7 ФОРМУЛА ТАБЛИЦА ИСТИННОСТИ ПРОБЛЕМА Как от таблицы истинности перейти к формуле, чтобы построить функциональную схему? СХЕМА
Совершенной дизъюнктивной нормальной формой (СДНФ) называется такая дизъюнктивная нормальная форма, у которой в каждую конъюнкцию входят все переменные данного списка (либо сами, либо их отрицания), причем в одном и том же порядке. 8 Не соответствует правилу
Совершенной конъюнктивной нормальной формой (СКНФ) называется такая конъюнктивная форма, у которой в каждую дизъюнкцию входят все переменные данного списка (либо сами, либо их отрицания), причем в одном и том же порядке. 9 Не соответствует правилу
Любую функцию можно представить в виде СДНФ, так и СКНФ, кроме константы 0 и константы 1 10 Теорема алгебры логики
Алгоритм получения СДНФ по таблице истинности Отметить те строки таблицы истинности, в последнем столбце которых стоят 1: 11 2. Выписать для каждой отмеченной строки конъюнкцию всех переменных следующим образом: если значение в данной строке равно 1, то в конъюнкцию включать саму эту переменную, если равно 0, то ее отрицание : для 1-й строки , для 3-строки , для 4-строки 3. Все полученные конъюнкции связать в дизъюнкцию:
Алгоритм получения СДНФ по таблице истинности Отметить те строки таблицы истинности, в последнем столбце которых стоят 0: 12 2. Выписать для каждой отмеченной строки дизъюнкцию всех переменных следующим образом: если значение в данной строке равно 0, то в дизъюнкцию включать саму эту переменную, если равно 1, то ее отрицание : - для 2-й строки. 3. Все полученные дизъюнкции связать в конъюнкцию:
Решение Полученные по двум алгоритмам СДНФ и СКНФ эквивалентны. Преобразуем СКНФ по правилам алгебры логики: 13 Примечание: Для нахождения формулы по таблице истинности рекомендуется использовать тот из двух алгоритмов, в котором в таблице помечается меньше строк.
Проверка Покажем, что полученные по двум алгоритмам СДНФ и СКНФ эквивалентны. СДНФ и СКНФ Можем проверить, построив таблицу истинности по найденной формуле. 14
Логическая схема 15
Задача уровня В Представить функцию в виде СДНФ, построить логическую схему этой функции 16
Нахождение сокращенной ДНФ по таблице истинности (карты Карно) Хохряковой Екатерины Гр. Пэ 10-08 (ИТ)
“короткая ДНФ” бывает: минимальной, если она содержит наименьшее число букв кратчайшей, если она содержит минимальное число знаков дизъюнкции V тупиковой, если уничтожение одной или нескольких букв в ней приводит к неравной ДНФ сокращенной ДНФ, если ее упрощение проведено с помощью правила Блейка.
Карта Карно - перестроенная соответствующим образом таблица истинности функции, которая рассматривается как определенная плоская развертка n-мерного булева куба.
Порядок работы с картой Карно А) Составление таблицы истинности Б) передача переменных из таблицы истинности в карту Карно и упорядочивание их с помощью кода Грея В) «Склеивание» элементов в таблице Если необходимо получить минимальную ДНФ, то в Карте рассматриваем только те клетки которые содержат единицы,
Принципы склейки Объединяем смежные клетки, содержащие единицы, в область так, чтобы одна область содержала 2n (n целое число = 0…) клеток (помним про то, что крайние строки и столбцы являются соседними между собой), в области не должно находиться клеток, содержащих нули; Область должна располагаться симметрично оси(ей) (оси располагаются через каждые четыре клетки); Несмежные области, расположенные симметрично оси(ей), могут объединяться в одну; Область должна быть как можно больше, а количество областей как можно меньше; Области могут пересекаться; Возможно несколько вариантов покрытия
Пример 1. Пусть задана функция: Видно, ее СДНФ содержит (по числу 1) 6 дизъюнктных слагаемых, но ее сокращенная ДНФ содержит (после объединения единиц) всего 2 буквы f = X1VX2
Пример 2. Соединение единиц по кругу. Здесь сокращенная ДНФ содержит 2 слагаемых (СДНФ содержала бы 5):
Пример 3. Пример показывает использование карт Карно при п = 4. У мальчика Коли есть мама, папа, дедушка и бабушка. Коля пойдёт гулять на улицу, если ему разрешат хотя бы двое родственников. Для краткости обозначим родственников Коли через буквы: мама — х1 папа — х2 дедушка — х3 бабушка — х4 Условимся обозначать согласие родственников единицей, несогласие - нулём. Возможность пойти погулять обозначим буквой f, Коля идёт гулять — f = 1, Коля гулять не идёт — f = 0.
Составим таблицу истинности: Перерисуем таблицу истинности в 2-х мерный вид. Переставим в ней строки и столбцы в соответствии с кодом Грея. Получили Карту Карно:
Заполним её значениями из таблицы истинности: Минимизируем в соответствии с правилами:
1. Все области содержат 2^n клеток; 2. Оси располагаются на границах Карты и их не видно 3. Все области симметрично осей — смежные между собой 4. Области S3, S4, S5, S6 максимально большие; 5. Все области пересекаются 6. В данном случае рациональный вариант только один. СДНФ содержит 11 слагаемых, а сокращенная ДНФ содержит всего 6
Логическая схема: Из-за отсутствия в наличии шести-входового элемента ИЛИ, реализующего функцию дизъюнкции, пришлось каскадировать пяти- и двух-входовые элементы(D7, D8).
Полиномы Жегалкина
Полиномом (многочленом) Жегалкина от n переменных называется функция 30 или в более формализованном виде как Примеры полиномов Жегалкина:
Всего здесь 2n слагаемых. Напомним, что + сейчас означает сложение по модулю 2, коэффициенты a0, a1,..., a2n-1 являются константами (равными нулю или единице). 31 Теорема Любая функция n переменных может быть представлена полиномом Жегалкина и это представление единственно.
Доказательство Любая функция f(x1, x2, …, xn) имеет свою таблицу истинности. После записи функции в виде полинома Жегалкина с неопределенными коэффициентами по очереди подставляем всевозможные наборы переменных и находим коэффициенты. За каждую подстановку находим только один коэффициент. Так как число наборов равно числу коэффициентов (и равно 2п), отсюда следует утверждение теоремы. Доказательство этой теоремы показывает, как по таблице истинности построить полином Жегалкина. 32
2-й способ нахождения полинома Жегалкина для функций, заданных в виде ДНФ ( xy + 1)((x + 1)(y + 1) + 1)((y + 1)z + 1) + 1 = (xy + 1)(xy + x + y)(yz + z + 1) + 1 = (x + y)(yz + z + 1) + 1= xyz + yz + xz +yz + x + y + 1 = xyz + xz + x +y + 1 33
Функция f (x1,x2,…,xn) называется линейной, если ее полином Жегалкина содержит только первые степени слагаемых f(x1, x2, …, xn) = a0 + a1 x1 + a2 x2 +…+ an xn 34 Замечание Если n≥2 то линейная функция в таблице истинности может содержать только четное число единиц. Действительно, если f(x1,x2,…, xn) = x1+ x2+…+xn, то легко видеть что такая функция в таблице истинности содержит одинаковое число нулей и единиц а именно 2n /2 единиц и нулей, т. е. число это четно при n≥2

