Сделай Сам Свою Работу на 5

Утверждение о единственности СовДНФ





Любая булева функция, кроме константы 0, представима совершенной дизъюнктивной нормальной формой, единственной для данной функции.

Алгоритм построения СовДНФ (по таблице истинности) вытекает из определения СовДНФ и состоит в циклическом выполнении следующих шагов:

Шаг 1: в векторе – столбце значений функции выбирается очередная единица. Если единицы исчерпаны, то идем на конец.

Шаг 2: по набору значений аргументов выбранной строки формируется конъюнкция всех аргументов с соблюдением следующего правила: если i – я компонента набора 0, то i – я переменная входит в конъюнкцию в степени 0 (с инверсией), иначе – в степени 1 (без инверсии). Полученная конъюнкция добавляется в формулу как очередное слагаемое. Идем на шаг 1.

Конец.
Пример.

Соединив полученные конъюнкции знаками дизъюнкции, получим:


14) Получение СовКНФ из разложения функции по переменным. Утверждение о существовании и единственности СовКНФ. Алгоритм построения СовКНФ по таблицк истинности.

Пусть дана функция f(x1, x2, ... , xn). Представим ее инверсию СовДНФ:

Инвертируем обе части этого равенства:

По законам двойного отрицания и де Моргана имеем:



[заметив, что , так как при c = 0 `x = x, а при c = 1`x =`x , получим ]

 

Определение.Совершенная дизъюнктивная нормальная форма функции

f(x1, x2, ... , xn), или СовКНФ, — это формула вида:

Сформулируем утверждение с очевидностью вытекающее из СовКНФ.

Утверждение о единственности СовКНФ

Любая булева функция, кроме константы 1, представима cовершенной конъюнктивной нормальной формой, и она единственна для данной функции.

Алгоритм построения СовКНФ по таблице истинности вытекает из определения СовКНФ и состоит в циклическом выполнении следующих шагов:

Шаг 1: в векторе - столбце значений функции выбирается ноль. Если нули исчерпаны, то идем не конец.

Шаг 2: по набору значений аргументов выбранной строки формируется дизъюнкция всех аргументов с соблюдением следующего правила: если i-я компонента набора равна 0, то i-я переменная входит в дизъюнкцию в степени 1 (без инверсии), иначе – в степени 0 (с инверсией). Полученная дизъюнкция добавляется в формулу как очередной сомножитель. Идем на шаг 1.



Конец.


Пример.

Соединив полученные дизъюнкции знаками конъюнкции, имеем:


15) Двойственная функция и двойственная формула.Принцип двойственности.

Определение.Булева функция f*(x1, ...,xn) называется двой­ственной булевой функции f(x1,..., хп), если она получена из функ­ции f(x1, ...,хп) инверсией всех аргументов и самой функции, т.е.

Определение.Формула F* называется двойственной форму­ле F, если она получена из F заменой символов функций на сим­волы двойственных им функций.

Теорема(принцип двойственности.) Если формула F задает булеву функцию f(x1, ...,xn), то двойственная ей формула F* задает двойственную функцию f*(x1, ...,xn).

Пример.Рассмотрим формулу , задающую функ­цию НЕ-ИЛИ, то есть стрелку Пирса. Двойственная ей формула должна задавать функцию, двойственную стрелке Пир­са - это штрих Шеффера: в самом деле - это функция НЕ-И, то есть штрих Шеффера.

 

 

16) Двойственная функция. Построение двойственной функции по таблице истинности.

Определение.Булева функция f*(x1, ...,xn) называется двой­ственной булевой функции f(x1,..., хп), если она получена из функ­ции f(x1, ...,хп) инверсией всех аргументов и самой функции, т.е.

Алгоритм построения таблицы истинности двойствен­ной функции(основан на определении двойственной функции).

Инверсия всех переменных превращает наборы в их антиподы. Поскольку в таблице истинности антипод первого набора распо­ложен последним, антипод второго набора - предпоследним и так далее, то для построения функции нужно перевер­нуть вектор-столбец значений исходной функции , a для получения функции еще и инвертировать компо­ненты столбца.



Пример.Построим функцию, двойственную импликации.


17) Элементарная конъюнкция.Ортогональные, соседние и смежные конъюнкции

Пусть имеем множество переменных X = {x1,x2, ...,xn}.

Определение. Элементарной конъюнкцией назовем конъюнк­цию переменных множества X, в которую каждая переменная входит не более одного раза (с инверсией или без инверсии).

Примеры.Пусть X = {x1,x2,x3,x4}, тогда , x1x3, x1, 1 - элементарные конъюнкции, a не являются элементарными.

Определение.Две конъюнкции называются ортогональны­ми по переменной xi, если эта переменная входит в одну конъ­юнкцию с инверсией, а в другую без инверсии.

Пример.Конъюнкции ортогональны по пе­ременным x1 и x3.

Определение. Две конъюнкции называются соседними, ес­ли они ортогональны по одной и только одной переменной xi и совпадают по остальным.

Пример.Конъюнкции являются соседними по переменной x3 (ортогональны только по x3 и совпадают по x1 и x2).

Определение.Две конъюнкции называются смежными, ес­ли они ортогональны по одной и только одной переменной xi .

Пример.Конъюнкции являются смежными по переменной x3 (ортогональны только по x3).

 


18) Утверждение о конъюнкции и интервале. ДНФ и достаточное множество интервалов

Утверждение о конъюнкции и интервале.Каждая элемен­тарная конъюнкция K ранга r может быть задана интервалом IK ранга r следующего вида: если переменная xi не входит в K, то iкомпонента интервала IK является внутренней; иначе iкомпо­нента является внешней, она равна 0, если переменная xi входит в конъюнкцию K с инверсией, и равна 1, если переменная xi входит в K без инверсии.

ДНФ и достаточное множество интервалов:

Рассмотрим ДНФf = К1 V ... V Кm. По определению дизъ­юнкции, булева функция f(x1, ...,xn) принимает значение 1 тогда и только тогда, когда хотя бы одна из конъюнкций К1,..., Кm принимает значение 1. Это означает, что соответствующие ин­тервалы I1,..., Im образуют множество, достаточное для функции f(х1, ...,хn). Таким образом и в этом случае можно пользоваться двумя "параллельными" языками: языком ДНФ и языком интер­валов. Последний оказывается наиболее наглядным при задании булевых функций матрицами Грея.


19) Импликанты и простые импликанты функции

Рассмотрим булевы функции f(x1, ...,xn) и g(x1, ...,xn).

Определение.Булева функция g(x1, ...,xn) называется импликантой функции f(x1, ...,xn), если

Так как x → у = 0 только на наборе 10, то для того, что­бы функция g(x1, ...,xn) была импликантой функции f(x1, ...,xn) достаточно, чтобы на всех тех наборах α, на которых g(α) = 1, функция f(x1, ...,xn) также принимала значение 1.

Определение.Элементарная конъюнкция К называется про­стой импликантой функции f(x1, ...,xn), если она является импликантой этой функции, и не существует другой конъюнкции К', которая является импликантой функции f(x1, ...,xn) и поглощает конъюнкцию К.

Другими словами, простая импликанта функции - это такая импликанта-конъюкция, которая не может быть упрощена выбра­сыванием из нее переменных, то есть неупрощаемая конъюнкция. Это означает, что всякая простая импликанта К булевой функции f(xi,...,xn) задается максимальным для этой функции интерва­лом IK.


20) Cокращённая, кратчайшая, минимальная и безызбыточная ДНФ

Определение.ДНФ, состоящая из всех простых импликант булевой функции f(x1, ...,xn), называется сокращенной ДНФ этой функции (СокрДНФf).

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

Теорема о кратчайшей ДНФ.Существует кратчайшая ДНФ булевой функции, состоящая из простых импликант.

Определение.Простой кратчайшей ДНФ булевой функции f(x1, ...,хn) назовем ее кратчайшую ДНФ, состоящую из простых импликант.

Определение. Минимальной ДНФ (МинДНФf) булевой функции f(x1, ...,xn) называется ДНФ наименьшего ранга из всех ДНФ, задающих функцию f(x1, ...,xn).

Теорема о минимальных ДНФ.Любая минимальная ДНФ булевой функции состоит из простых импликант.

Итак, если булева функция задана матрицей Грея, то:

- для построения сокращенной ДНФ необходимо выделить все
максимальные интервалы;

- для построения кратчайшей ДНФ - их достаточное множе­ство минимальной мощности;

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

Определение.ДНФ булевой функции f(x1, ...,xn) называет­ся безызбыточной ДНФ (БезДНФf, если из нее нельзя удалить ни одной конъюнкции и ни одной переменной из конъюнкции так, чтобы она оставалась равносильной исходной ДНФ.

В частности, безызбыточной является любая минимальная и любая кратчайшая ДНФ (не простая кратчайшая ДНФ явно из­быточна).

 


21. Метод Закревского получения приближенной кратчайшей ДНФ

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

Алгоритм Закревского(ориентирован на матричное пред­ставление функции и визуальный способ решения).

Начало.Задана матрица Грея булевой функции.

Шаг 1. Для каждой точки вычислим цену - количество сосед­них ей точек. Все точки будем считать неотмеченными.

Шаг 2. Среди неотмеченных точек рассмотрим точку мини­мальной цены и найдем все максимальные интервалы, которым она принадлежит. Выберем из них тот максимальный интервал, который содержит наибольшее число неотмеченных точек. Если таких интервалов несколько, то выберем из них интервал макси­мальной мощности.

Шаг 3. Включим выбранный интервал в решение и отметим на матрице его точки. Если не все точки отмечены, то идем на шаг 2.

Конец. Включенные в решение интервалы задают приближен­ную кратчайшую ДНФ.

 

 


22. Поиск сокращенной ДНФ: теорема Квайна и алгоритм Квайна-МакКласки.

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

Опираясь на теорему Квайна, МакКласки сформулировал ал­горитм, который организует построение сокращенной ДНФ более эффективно, чем это предложено в теореме.

Алгоритм Квайна-МакКласки:

Начало. Задана совершенная ДНФ булевой функции.

Шаг 1. Построим список всех точек функции (булевых векто­ров) и упорядочим их по неубыванию числа единиц - веса.

Шаг 2. Разобьем список на подмножества (классы) векторов одинакового веса. Обозначим через Сi класс векторов веса i.

Шаг 3. Выполним неполные склеивания всех соседних векто­ров классов Ci и Ci+1, i=0,1, ...,n-1. Векторы, участвующие в склеивании (α и β), отметим, а полученные векторы (γ) занесем в новый список и приведем в нем подобные.

Шаг 4. Если новый список векторов не пуст, возвратимся с ним на шаг 2 (заметим, что троичные векторы списка оказываются уже упорядоченными по числу единиц).

Конец. Выписав из всех списков неотмеченные векторы, полу­чим множество всех максимальных интервалов, оно задает сокра­щенную ДНФ исходной функции.

 

Сравнивая алгоритм Квайна-МакКласки с теоремой Квайна, оценим предложения МакКласки.

Во-первых, представление конъюнкций булевыми и троичны­ми векторами делает вычисления более простыми и более приспо­собленными для компьютерной реализации.

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

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


23. Поиск сокращенной ДНФ: теорема Блэйка и алгоритм Блэйка-Порецкого.

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

На основе теоремы Блейка сформулирован алгоритм, который организует построение сокращенной ДНФ более эффективно, чем это предложено в теореме.

 








Не нашли, что искали? Воспользуйтесь поиском по сайту:



©2015 - 2024 stydopedia.ru Все материалы защищены законодательством РФ.