Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
1 - 31.doc
Скачиваний:
1
Добавлен:
01.03.2025
Размер:
993.28 Кб
Скачать

Равносильность формул

Определение. Две формулы F' и F" называются равносиль­ными, если они задают равные функции. В этом случае пишут F' = F".

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

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

Основные равносильности

К основным относят следующие равносильности, которые ре­комендуется запомнить и применять при упрощении формул.

11) Формула Шенона.Докозательство

Определение. Разложением Шеннона называется следую­щее разложение булевой функции f(x1, ...,xn) по переменной xi:

Доказательство (не умоляя общности, для i =1). Покажем, что формула верна в обоих случаях: для x1 = 0 и x1 = 1.

Если x1 = 0, то f (0, x2, ... , xn) = 0 f (1, x2, ... , xn)  1  f (0, x2, ... , xn) =

= f (0, x2, ... , xn).

Если x1 = 1, то f (1, x2, ... , xn)  = 1 f (1, x2, ... , xn)  0  f (1, x2, ... , xn) = = f (0, x2, ... , xn).

Оп ределение. Сомножитель f (x1, ..., xi -1, 1, xi+1,... , xn) в формуле Шеннона называется коэффициентом разложения функции f (x1, x2, ... , xn) по переменной xi при xi, а сомножитель f (x1, ..., xi -1, 0, xi+1,... , xn) — коэффициентом разложения функции f (x1, x2, ... , xn) по   xi при .

Пример. Функцию разложим по переменной x:

12) Разложение функции по k переменным. Доказательство

Разложим функцию f(x1, ...,xn) последовательно по двум пе­ременным: сначала саму функцию по переменной x1, затем коэф­фициенты разложения по переменной x2.

Рассмотрим булеву функцию f (x1, x2, ... , xn) и, используя формулу Шеннона, последовательно разложим функцию

- по первой переменной,

- по двум первым переменным,

- по k первым переменным.

1. Разложим функцию по первой переменной:

f (x1, x2, ... , xn) = x1  f (1, x2, ... , xn)  x1 f ( 0, x2, ... , xn).

2. Разложим в полученной формуле оба коэффициента разложения по второй

переменной:

f (x1, x2, ... , xn) = x1  f (1, x2, ... , xn)  x1 f ( 0, x2, ... , xn) =

= x1  [ x2 f (1,1, x3, ... , xn) x2 f (1,0, x3, ... , xn) ] 

x1 [ x2 f (0,1, x3, ... , xn) x2 f (0,0, x3, ... , xn) ] =

= x1 x2 f (1,1, x3, ... , xn)  x1x2 f (1,0, x3, ... , xn) 

x1 x2 f (0,1, x3, ... , xn) x1x2 f (0,0, x3, ... , xn) =

[ свернем последнюю формулу в более короткую, используя следующие

обозначения: x = x1 и x = x0, то есть xс, где c  {0,1}, и условимся

читать символы xс как “x в степнени c “]

3. По аналогии с предыдущей формулой запишем формулу разложения

функции по k переменным: и докажем, что данное разложение верно.

Доказательство. Подставим в левую и правую части равенства произвольный набор a1 a2 ... an:

Упростим правую часть, рассуждая следующим образом. Нетрудно проверить, что 1, если и только если ai = ci (в самом деле: 0 0 = 1, 11 = 1, но 0 1 = 0 и 10 = 0), поэтому конъюнкция равна единице лишь в единственном случае, когда наборы a1 a2 ... ak и с1 с2 ... сk совпадают. А это значит, что она не обращает в ноль лишь одно слагаемое правой части — то, для которого a1 a2 ... ak = с1 с2 ... сk и в котором сама обращается в единицу. Подставив в ставшееся слагаемое a1 a2 ... ak вместо с1 с2 ... сk , получим

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

Применив формулу разложения булевой функции f (x1, x2, ... , xn) по k переменным при   k = n, получим:

Поскольку коэффициентами разложения f (c1, c2, ... , cn) в этой формуле являются значения функции f (x1, x2, ... , xn) на всевозможных наборах c1 c2 ... cn, то возможны два случая:

- если набор c1 c2 ... cn  M0 ( f ), то f (c1, c2, ... , cn ) = 0 и поэтому обращается в 0 соответствующее слагаемое правой части;

- если набор c1 c2 ...cn  M1 ( f ), то f(c1, c2, ... , cn ) = 1 и слагаемое упрощается.

В результате имеем формулу разложения функции по всем переменным:

Определение. Совершенная дизъюнктивная нормальная форма булевой функции , или СовДНФ, — это формула вида:

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

Любая булева функция, кроме константы 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).

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