Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ВВЕДЕНИЕ.docx
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
898.6 Кб
Скачать

7. Дискретная информация

(Овсепян)

8. Количество информации, единицы измерения информации

(Попова)

9. Высказывательные логические связки

  1. Логика высказываний. Логические связки, высказывательные формы, полные системы связок. Логические эквивалентности. Дизъюнктивная нормальная форма. Булевы функции. Таблицы истинности.

Булевы функции от n переменных

Булевы функции1)названы в честь английского математика ХIХ века Дж. Буля, который впервые применил алгебраические методы для решения логических задач. Они образуют самый простой нетривиальный класс дискретных функций - их аргументы и значения могут принимать всего два значения (если мощность множества значений функции равна 1, то это тривиальная функция - константа !). С другой стороны, этот класс достаточно богат и его функции имеют много интересных свойств. Булевы функции находят применение в логике, электротехнике, многих разделах информатики.

Обозначим через B двухэлементное множество {0,1}. Тогда

это множество всех двоичных последовательностей (наборов, векторов) длины n. Булевой функцией от n переменных (аргументов) называется любая функция f(x1, xn): Bn  B . Каждый из ее аргументов xi, 1  i  n , может принимать одно из двух значений 0 или 1 и значением функции на любом наборе из Bn также может быть 0 или 1. Обозначим через  множество всех булевых функций от n переменных. Нетрудно подсчитать их число.

Теорема 3.1. 

Доказательство.Действительно, по теореме 1.1 число функций из k-элементного множества A в m-элементное множество B равно mk . В нашем случае B={0, 1}, а A = Bn . Тогда m=2 и k= |Bn| = 2n . Отсюда следует утверждение теоремы.

Имеется несколько различных способов представления и интерпретации булевых функций. В этом разделе мы рассмотрим геометрическое и табличное представления, а также представление с помощью логических формул. В лекции 4 будет показано, как булевы функции можно представлять с помощью формул специального вида - дизъюнктивных и конъюнктивных нормальных форм и многочленов Жегалкина. Кроме того, в лекциях 1 и 2 (курс "Введение в схемы, автоматы и алгоритмы") будет рассмотрено еще два способа представления булевых функций: логические схемы и упорядоченные бинарные диаграммы решений.

Геометрическое представление

Bn можно рассматривать как единичный n-мерный куб. Каждый набор из нулей и единиц длины n задает вершину этого куба. На рис. 3.1 представлены единичные кубы Bn при n=3,4.

Рис. 3.1. 

При этом существует естественное взимнооднозначное соответствие между подмножествами вершин n-мерных единичных кубов и булевыми функциями от n переменных: подмножеству A  Bnсоответствует его характеристическая функция

Например, верхней грани куба B3 (ее вершины выделены на рисунке) соответствует функция f: f(0,0,1)=f(0,1,1)=f(1,0,1)=f(1,1,1) =1 и f(0,0,0)=f(0,1,0)=f(1,0,0)=f(1,1,0) =0. Очевидно, что указанное соответствие действительно взаимнооднозначное: каждая булевая функция f от n переменных задает подмножество Af={(x1, …, xn)|f(x1, …, xn)=1} вершин Bn . Например, функция, тождественно равная 0, задает пустое множество  Bn , а функция, тождественно равная 1, задает множество всех вершин Bn .

Табличное представление

Булевы функции от небольшого числа аргументов удобно представлять с помощью таблиц. Таблица для функции f(x1, …, xn) имеет n+1 столбец. В первых n столбцах указываются значения аргументов x1, …, xn , а в (n+1)-ом столбце значение функции на этих аргументах - f(x1, …, xn) .

Таблица 3.1. Табличное представление функции f(x1, …, xn)

x1

.

.

.

xn-1

xn

f(x1, …, xn)

0

.

.

.

0

0

f(0, …, 0,0)

0

.

.

.

0

1

f(0, …, 0,1)

0

.

.

.

1

0

f(0, …, 1,0)

.

.

.

.

.

.

1

.

.

.

1

1

f(1, …, 1,1)

Наборы аргументов в строках обычно располагаются в лексикографическом порядке:

( 1, …,  n) < (β1, …, βn существует такое i  [1,n], что при j < i  j = βj , а  i < βi .

Если эти наборы рассматривать как записи чисел в двоичной системе счисления, то 1-ая строка представляет число 0, 2-ая - 1, 3-я - 2, … , а последняя - 2n-1 .

При больших n табличное представление становится громоздким, например, для функции от 10 переменных потребуется таблица с 1024 строками. Но для малых n оно достаточно наглядно.

Булевы функции от 1-ой и 2-х переменных

Представим вначале в табличном виде все булевы функции от 1-ой переменной. Как мы знаем, их всего четыре.

Таблица 3.2. Булевы функции от 1-ой переменной

x1

f1

f2

f3

f4

0

0

1

0

1

1

0

1

1

0

В этой таблице представлены следующие функции:

  1. f1(x1)= 0 - константа 0;

  2. f2(x1)= 1 - константа 1;

  3. f3(x1)= x1 - тождественная функция;

  4. f4(x1)= ¬ x1 - отрицание x1 (используется также обозначение x 1 , а в языках программирования эта функция часто обозначается как NOTx1 ).

В следующей таблице представлены все 16 функций от 2-х переменных.

Таблица 3.3. Булевы функции от 2-х переменных

x1

x2

f1

f2

f3

f4

f5

f6

f7

f8

f9

f10

f11

f12

f13

f14

f15

f16

0

0

0

1

0

1

0

1

0

0

1

0

1

1

1

0

0

1

0

1

0

1

0

1

1

0

0

1

1

1

0

1

0

1

0

0

1

0

0

1

1

0

0

1

0

1

0

1

0

1

0

0

1

1

1

1

0

1

1

0

1

0

1

1

1

0

1

0

0

0

0

1

Многие из этих функций часто используются в качестве "элементарных" и имеют собственные обозначения.

  1. f1(x1,x2)= 0 - константа 0;

  2. f2(x1,x2)= 1 - константа 1;

  3. f3(x1,x2)= x1 - функция, равная 1-му аргументу ;

  4. f4(x1,x2)= ¬ x1 - отрицание x1 ;

  5. f5(x1,x2)= x2 - функция, равная 2-му аргументу ;

  6. f6(x1,x2)= ¬ x2 - отрицание x2 ;

  7. f7(x1,x2)= (x1  x2) - конъюнкция, читается " x1 и x2 " (используются также обозначения (x1 & x2) , (x1x2) , min(x1,x2) и (x1 AND x2) );

  8. f8(x1,x2)= (x1  x2) - дизъюнкция, читается " x1 или x2 " (используются также обозначения (x1  x2) , (x1 + x2) , max(x1,x2) и (x1 OR x2) );

  9. f9(x1,x2)= (x1  x2) - импликация, читается "x_1 влечет x_2" или "из x1 следует x2 " (используются также обозначения ( x1  x2 ), и ( IF x1 THEN x2 ));

  10. f10(x1,x2)= (x1 + x2) - сложение по модулю 2, читается " x1 плюс x2 " (используется также обозначение (x1  x2) );

  11. f11(x1,x2)= (x1 ~ x2) - эквивалентность, читается " x1 эквивалентно (равносильно) x2 " (используется также обозначение (x1  x2) );

  12. f12(x1,x2)= (x1 | x2) - штрих Шеффера (антиконъюнкция), иногда читается как "не x1 и x2 ";

  13. f13(x1,x2)= (x1  x2) - стрелка Пирса (антидизъюнкция), иногда читается как "не x1 или x2 ".

В качестве элементарных функций будем также рассматривать 0-местные функции-константы 0 и 1.

Отметим, что функции f1(x1,x2) и f2(x1,x2) фактически не зависят от значений обоих аргументов, функции f3(x1,x2) и f4(x1,x2) не зависят от значений аргумента x2, а функции f5(x1,x2) и f6(x1,x2) не зависят от значений аргумента x1.

Определение 3.1. Функция f(x1,…, xi,…, xn) не зависит от аргумента xi, если для любого набора значений σ1,…,σi-1>, σi+1,…, σn остальных аргументов f имеет место равенство

Такой аргумент xi называется фиктивным. Аргументы, не являющиеся фиктивными, называются существенными.

Функции f1(x1,…, xn) и f2(x1,…,xm) называются равными, если функцию f2 можно получить из функции f1 путем добавления и удаления фиктивных аргументов.

Например, равными являются одноместная функция f3(x1) и двухместная функция f3(x1,x2) , так как вторая получается из первой добавлением фиктивного аргумента x2 . Мы не будем различать равные функции и, как правило, будем использовать для обозначения равных функций одно и то же имя функции. В частности, это позволяет считать, что во всяком конечном множестве функций все функции зависят от одного и того же множества переменных.

Формулы

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

Пусть  - некоторое (конечное или бесконечное) множество булевых функций. Зафиксируем некоторое счетное множество переменных V={X1, X2, …} . Определим по индукции множество формул над  с переменными из V. Одновременно будем определять числовую характеристику dep(Φ) формулы Φ, называемую ее глубиной, и множество ее подформул.

Определение 3.2.

  1. Базис индукции. Каждая переменная Xi  V и каждая константа c  является формулой глубины 0, т.е. dep(Xi)= dep(c)=0 . Множество ее подформул состоит из нее самой.

  2. Шаг индукции. Пусть  и A1, … , Am - формулы, и max {dep(Ai) | i = 1,…, m} = k . Тогда выражение Φ = f(A1,… , Am) является формулой, ее глубина dep(Φ) равна k+1, а множество подформул Φ включает саму формулу Φ и все подформулы формул A1, …, Am.

Каждой формуле Φ(X1,…, Xn) сопоставим булеву функцию, которую эта формула задает, используя индукцию по глубине формулы.

Базис индукции. Пусть dep(Φ)=0. Тогда Φ = Xi  V или Φ =c  . В первом случае Φ задает функцию fΦ(Xi)=Xi, во втором - функцию, тождественно равную константе c.

Шаг индукции. Пусть Φ - произвольная формула глубины dep(Φ)= k+1. Тогда Φ(X1,…, Xn)= fi(A1,…, A_m) , где fi  и A1, …, Am - формулы, для которых max m{dep(Ai)}=k . Предположим (по индукции), что этим формулам уже сопоставлены функции g1(X1,…, Xn), … , gm(X1,…, Xn) . Тогда формула Φ задает функцию fΦ(X1,…, Xn) = fi(g1(X1,…, Xn), … , gm(X1,…, Xn)) .

Далее мы будем рассматривать формулы над множеством элементарных функций  . Все эти функции, кроме констант, называются логическими связками или логическими операциями. При этом для 2-местных функций из этого списка будем использовать инфиксную запись, в которой имя логической связки помещается между 1-ым и 2-ым аргументами. Тогда определение формулы над  имеет следующий вид.

Определение 3.3.

  • Таблица 3.4. Функция f Φ2

    X1

    X2

    X3

    ((X1

    ¬

    ¬

    X2)

    (X3

    ~

    (X1

    ¬

    X2)))

    0

    0

    0

    0

    0

    0

    1

    0

    1

    0

    1

    0

    0

    1

    0

    0

    0

    1

    0

    0

    0

    1

    0

    1

    1

    0

    0

    0

    0

    1

    0

    1

    0

    0

    1

    1

    0

    1

    0

    0

    0

    0

    1

    0

    1

    0

    1

    1

    0

    1

    1

    0

    1

    1

    1

    1

    0

    1

    0

    1

    1

    0

    0

    1

    1

    0

    1

    0

    1

    0

    1

    1

    0

    1

    0

    1

    0

    1

    1

    1

    0

    1

    0

    0

    1

    0

    1

    0

    1

    0

    1

    1

    0

    1

    1

    1

    0

    1

    1

    0

    1

    1

    0

    0

    1

    1

    1

    1

    1

    1

    1

    0

    1

    0

    1

    0

    1

    0

    0

    1

    Базис индукции. 0, 1 и каждая переменная Xi  V являются формулами глубины 0.
  • Шаг индукции. Пусть Φ1 и Φ2 - формулы, ˆ  { ,  ,  , +, ~, |,  }.

Тогда выражения ¬ Φ1 и (Φ1 ˆ Φ2) являются формулами. При этом dep(¬ Φ1)=1 + dep( Φ1) , а dep((Φ1 ˆ Φ2))= 1 + max {dep(Φ1), dep(Φ2)} .

В соответствии с этим определением выражения Φ1(X1,X2) = ¬ (X1  ¬ X2) и Φ2(X1,X2,X3) = ( (X1  ¬ ¬ X2)  (X3 ~ (X1  ¬ X2))) являются формулами. Глубина Φ1 равна 3, а глубина Φ2 равна 4. Выражения же ¬ X1 +( ¬ X2  X3) , (X1 ¬  X2) и (X1 + X2 + X3) формулами не являются (почему?).

Для определения функции, задаваемой формулой, удобно использовать таблицу, строки которой сответствуют наборам значений переменных, а в столбце под знаком каждой логической связки стоят значения функции, задаваемой соответствующей подформулой. Например, для формулы Φ2 функция fΦ2 задается выделенным столбцом  следующей таблицы.

Булевы функции и логика высказываний

Как мы уже отметили, Дж. Буль ввел булевы функции для решения логических задач. В логике под высказыванием понимают некоторое повествовательное предложение, относительно которого можно сказать, истинно оно или ложно. Логика высказываний занимается выяснением истинности тех или иных высказываний, связью между истинностью различных высказываний и т.п.

Булевы функции могут служить полезным инструментом при решении многих логических задач.

Каждую переменную можно рассматривать как некоторое элементарное высказывание, принимающее одно из двух значений: 1 (истина) или 0 (ложь). Сложным высказываниям сооответствуют формулы, построенные из элементарных высказываний с помощью логических связок. Вычисляя значения задаваемых ими функций, можно устанавливать зависимости истинностных значений сложных высказываний от значений входящих в них элементарных высказываний. Рассмотрим следующий пример.

Пример 3.1.Пусть известно, что в дорожном проишествии участвовали три автомобиля с водителями A, B и C. Свидетели проишествия дали следующие показания:

  • 1-ый свидетель: если A виновен, то из остальных B и C хоть один не виновен;

  • 2-ой свидетель: если C не виновен, то виновен кто-то один из пары A, B но не оба вместе;

  • 3-ий свидетель: в столкновении виновны не менее двух водителей.

Опишите показания свидетелей в виде булевых формул и постройте таблицу значений их конъюнкции. Можно ли на основании этих показаний сделать вывод, что C является виновником проишествия? Можно ли однозначно определить второго виновника?

Для ответа на эти вопросы введем три переменные, соответствующие следующим высказываниям: X1 : " виновен A ", X2 : " виновен B " и X3 : " виновен C ". Тогда показания 1-го свидетеля описываются формулой Φ1=(X1  (¬X2  ¬X3)) , показания 2-го свидетеля - Φ2= (¬ X3  (( X1  X2)  ¬(X1  X2))), а 3-го свидетеля - Φ3= ((X1  X2)\vee ((X1  X3)  ( X2  X3))) . Показаниям всех трех свидетелей соответствует конъюнкция этих формул Ψ= (Φ1  (Φ2  Φ3)) . Составим таблицы значений для функций fΦi (i=1,2,3) , а затем - для fΨ.

Таблица 3.5. Функция fΦ1

X1

X2

X3

(X1

X2

¬

X3))

0

0

0

0

1

1

0

1

1

0

0

0

1

0

1

1

0

1

0

1

0

1

0

0

1

0

1

1

1

0

0

1

1

0

1

0

1

0

0

1

1

0

0

1

1

1

0

1

1

0

1

0

1

1

1

1

0

1

0

1

1

1

0

1

1

0

1

1

1

0

1

1

0

1

1

0

1

1

1

0

1

1

1

1

0

0

1

0

0

1

Таблица 3.6. Функция f Φ2

X1

X2

X3

X3

(( X1

X2)

¬

(X1

X2)))

0

0

0

1

0

0

0

0

0

0

1

0

0

0

0

0

1

0

1

1

0

0

0

0

1

0

0

0

0

1

0

1

0

1

0

1

1

1

1

0

0

1

0

1

1

0

1

1

0

1

1

1

1

0

0

1

1

0

0

1

0

1

1

1

0

1

1

1

0

0

\ 1

0

1

0

1

1

1

1

0

1

1

1

0

0

1

1

0

1

0

0

1

1

1

0

0

1

1

1

1

1

1

0

1

1

1

1

1

0

0

1

1

1

Таблица 3.7. Функция f Φ3

X1

X2

X3

((X1

X2)

((X1

X3)

( X2

X3)))

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

1

0

0

0

0

0

0

1

0

0

0

1

0

1

0

0

0

1

0

0

0

0

0

1

0

0

0

1

1

0

0

1

1

0

0

1

1

1

1

1

1

0

0

1

0

0

0

1

0

0

0

0

0

0

1

0

1

1

0

0

1

1

1

1

1

0

0

1

1

1

0

1

1

1

1

1

0

0

0

1

0

0

1

1

1

1

1

1

1

1

1

1

1

1

1

1

Таблица 3.8. Функция f Ψ

X1

X2

X3

(\Phi1

(\Phi2

\Phi3))

0

0

0

1

0

0

0

0

0

0

1

1

0

1

0

0

0

1

0

1

0

1

0

0

0

1

1

1

1

1

1

1

1

0

0

1

0

1

0

0

1

0

1

1

1

1

1

1

1

1

0

1

0

0

0

1

1

1

1

0

0

1

1

1

Из этой таблицы следует, что fΨ(X1,X2,X3)=1 на двух наборах: (X1=0, X2=1, X3=1) и (X1=1, X2=0, X3=1) (строки с этими наборами подчеркнуты). Поскольку в обоих случаях X3=1 , можно сделать вывод, что С является одним из виновников проишествия. Однозначно определить второго виновника полученная от свидетелей информация не позволяет, так как в одном случае им является А, а в другом - В.

Важную роль в логике играют понятия тождественно истинной и выполнимой формулы.

Определение

Булева формула Φ называется тождественно истинной, если она истинна при любых значениях входящих в нее переменных, т.е. функция fΦ тождественно равна 1.

Булева формула Φ называется выполнимой, если существует такой набор значений переменных, на котором она истинна, т.е. функция fΦ равна 1 хоть на одном наборе аргументов.

Как проверить тождественную истинность или выполнимость формулы Φ? На первый взгляд кажется, что ответ прост - построим по Φ таблицу для функции fΦ , и, если в столбце значений стоят только единицы, то заключаем, что Φ тождественно истинна, если там есть хоть одна единица, то Φ выполнима. К сожалению, этот способ пригоден только для формул с небольшим числом переменных. Уже для нескольких десятков и сотен переменных он не годится из-за большого размера получающейся таблицы - нетрудно подсчитать, что число 290 превосходит количество атомов во всей видимой вселенной.

В математической логике построены аксиоматические системы, позволяющие формализовать человеческие рассуждения о выводимости одних тождественно истинных формул из других (см., например, [15]). В некоторых случаях они позволяют доказать тождественную истинность достаточно длинных формул, имеющих регулярную структуру. Но в общем случае и они практически не применимы для произвольных формул с большим числом переменных.

В теории сложности алгоритмов имеется ряд результатов (они выходят за рамки нашего курса), которые свидетельствуют о том, что эффективных алгоритмов для проверки выполнимости или тождественной истинности произвольной булевой формулы не существует. Вместе с тем для некоторых подклассов формул эти задачи решаются достаточно эффективно. Один такой подкласс - Хорновские формулы - будет рассмотрен далее в лекции 6

Эквивалентность булевых формул

Определение 4.1. Булевы формулы Φ и Ψ называются эквивалентными, если соответствующие им функции fΦ и fΨ равны.

Обозначение: Φ  Ψ. Эквивалентные формулы называют также тождественно равными, а выражения вида Φ  Ψ логическими тождествами .

Основные эквивалентности (тождества)

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

Пусть ˆ - это одна из функций  ,  , +. Для этих трех функций выполнены следующие две эквивалентности (законы ассоциативности и коммутативности).

  1. Ассоциативность:

(1)

  1. Коммутативность:

(2)

  1. Дистрибутивные законы:

(3)

  1. Двойное отрицание:

(4)

  1. Законы де Моргана (внесение отрицания внутрь скобок):

(5)

  1. Законы упрощения:

(6)

Некоторые законы упрощения имеют собственные названия: эквивалентности в первой строке называются законами идемпотентности,  - это закон противоречия,  - это закон исключенного третьего. Эквивалентности в двух последних строках иногда называют законами 0 и 1.

Следующие две эквивалентности позволяют выразить импликацию и сложение по модулю 2 через дизъюнкцию, конъюнкцию и отрицание.

(7)

(8)

Проверку правильности этих эквивалентностей оставляем читателям (см. задачу 4.1).

Эквивалентные преобразования формул

Соглашения об упрощенной записи формул.

  1. Законы ассоциативности показывают, что значения формул, составленных из переменных и одних операций конъюнкции, не зависят от расстановки скобок. Поэтому вместо формул ((X1  X2)  X3) и (X1  (X2  X3)) мы будем для упрощения писать выражение (X1  X2  X3) , которое не является формулой, но может быть превращено в нее с помощью расстановки скобок. Аналогично, будем использовать выражения (X1  X2  X3) и (X1 + X2 + X3) для сокращения формул, состоящих из одних дизъюнкций или одних сложений по модулю 2, соответственно.

  2. Если внешней функцией в формуле является одна из функций  ,  , +,  , то внешние скобки в записи формулы можно опустить.

Таким образом, с использованием этих соглашений формула

может быть записана как

Из определения эквивалентности формул непосредственно следует Принцип замены эквивалентных подформул:

пусть формула  является подформулой формулы Φ, формула  ' эквивалентна  и формула Φ' получена из Φ посредством замены некоторого вхождения  на  '. Тогда Φ' эквивалентна Φ, т.е. Φ'  Φ.

Применяя этот принцип и используя основные тождества, можно находить для заданной формулы другие эквивалентные ей формулы. Часто это может приводить к существенному упрощению исходной формулы. Например, если в формуле ((X  0)  Y) заменим на основании тождеств (6) подформулу (X  0) на 0, то получим эквивалентную формулу (0  Y). По закону коммутативности(2) эта формула эквивалентна формуле (Y  0), которая, в свою очередь, по одному из тождеств группы (6) эквивалентна формуле Y. Эту цепочку эквивалентных преобразований можно записать также следующим образом:

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

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

  1.  

(П1)

2.      Действительно,

  1.  

(П2)

  1. Действительно,

  2.  

(П3)

  1. Действительно,

Дизъюнктивные и конъюнктивные нормальные формы

Определение ДНФ и КНФ

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

Пусть  - это множество пропозициональных переменных. Введем для каждого i=1,...,n обозначения:  и  . Формула  , в которой  и все переменные разные, т.е.  при  , называется элементарной конъюнкцией (элементарной дизъюнкцией).

Определение 4.2. Формула  называется дизъюнктивной нормальной формой (ДНФ), если она является дизъюнкцией элементарных конъюнкций, т.е. имеет вид  где каждая формула  - это элементарная конъюнкция.  называется совершенной ДНФ, если в каждую из ее конъюнкций  входят все  переменных из  Аналогично, формула  называется конъюнктивной нормальной формой (КНФ), если она является конъюнкцией элементарных дизъюнкций, т.е.  , где каждая формула Dj (j=1,...,r) - это элементарная дизъюнкция. Она является совершенной КНФ, если в каждую Dj входят все n переменных из 

Совершенные ДНФ и КНФ

Рассмотрим произвольную булеву функцию f(X1,…,Xn) , зависящую от переменных из  . Oбозначим через Nf+ множество наборов значений переменных, на которых f принимает значение 1, а через Nf- множество наборов, на которых f принимает значение 0, т.е.  и 

Определим по этим множествам две формулы:

и

Теорема 4.1.

  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. Если Φ'' = Ψ'', то выдать ответ "Да", иначе - ответ "Нет".

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

Сокращенные ДНФ

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

Напомним, что мы рассматриваем булевы функции над переменными  . С каждой элементарной конъюнкцией  связано множество  наборов переменных, на которых K принимает значение 1. Нетрудно понять, что это множество содержит 2(n-k) наборов, в которых каждая из входящих в K переменных  имеет фиксированное значение σr , а значения остальных (n-k) переменных произвольны.

Определение Пусть f - произвольная булева функция над  . Элементарная конъюнкция K называется допустимой для f, если  .

Элементарная конъюнкция K называется максимальной для f, если для любой элементарной конъюнкции L из условия  следует, что 

Сокращенной ДНФ для функции f называется дизъюнкция всех максимальных для этой функции элементарных конъюнкций.

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

Примером сокращенной ДНФ является формула  из примера 4.1.

Сокращенную ДНФ можно получить из произвольной ДНФ D, используя процедуру, называемую методом Блейка.

  1. Применять, сколько возможно, закон поглощения

(П3): 

слева направо при условии, что конъюнкция (K1  K2) непротиворечива, т.е. не содержит одновременно некоторую переменную и ее отрицание. (Заметим, что на этом этапе число элементарных конъюнкций в ДНФ, вообще говоря, увеличивается).

  1. Применять, сколько возможно, правило поглощения

(П1):  .

Затем удалить повторные вхождения конъюнкций.

Теорема 4.2. В результате применения метода Блейка к произвольной ДНФ через конечное число шагов будет получена эквивалентная ей сокращенная ДНФ.

Доказательство Пусть после (1)-го этапа процедуры ДНФ D функции f преобразовалась в эквивалентную ДНФ D1 . Покажем, что для всякой допустимой для f элементарной конъюнкция K в D1найдется такая конъюнкция K', что  . Доказательство проведем возвратной индукцией по числу переменных в K.

Базис индукции. Пусть K содержит все n переменных из  . Тогда  состоит из единственного набора и, поскольку  , то в  сущетсвует конъюнкция K', для которой  .

Шаг индукции. Пусть для некоторого k < n утверждение верно для всех допустимых для f конъюнкций, содержащих не менее (k+1)-ой переменной. Докажем, что оно верно и для допустимых конъюнкций с k переменными.

Пусть допустимая для f элементарная конъюнкция K содержит k переменных и пусть  - переменная, не входящая в K. Тогда обе элементарные конъюнкции  и  являются допустимыми для f и по предположению индукции для них в Φ1 найдутся такие  и  , что  и  . Если хотя бы одна из них не содержитX, то ее можно выбрать в качестве K'. В противном случае, их можно представить в виде  и  При этом  и  . Поскольку все преобразования вида (П3) выполнены, то D1 тогда содержит и конъюнкцию  для которой  .

Заметим, что если K максимальна для f, то  . Таким образом, все максимальные конъюнкции входят в D1 .

Теперь, чтобы завершить доказательство теоремы, нужно показать, что на этапе (2) из D1 будут удалены все немаксимальные элементарные конъюнкции. (Докажите это индукцией по числу немаксимальных конъюнкций в D1 .)

Пример 4.2. Применим метод Блейка к совершенной ДНФ функции f(X1,X2,X3) , принимающей значение 1 на наборах множества  .

Ее совершенная ДНФ 

После применения преобразований (П3) на (1)-ом этапе получим

После поглощений (П1) на втором этапе останется сокращенная ДНФ

Заметим, что она не является самой короткой ДНФ для f, т.к.  .

Многочлены Жегалкина

Многочлены Жегалкина являются еще одним интересным подклассом формул, позволяющим однозначно представлять булевы функции.

Определение 4.4. Многочленами Жегалкина назваются формулы над множеством функций FJ={ 0, 1, *, +} (здесь * - это другое обозначение конъюнкции).

Таким образом, каждый многочлен Жегалкина (возможно, после раскрытия скобок и "приведения" подобных членов) представляет сумму (по модулю 2) положительных (монотонных)элементарных конъюнкций (т.е. элементарных конъюнкций без отрицаний). Поскольку для + и * справедливы законы ассоциативности, мы будем при записи многочлена Жегалкина опускать скобки, считая, что * связывает аргументы сильнее, чем +

Нетрудно проверить, что справедливы следующие эквивалентности:

Из этих эквивалентностей и теоремы 4.1 легко получить первую часть следующего утверждения.

Теорема 4.3. Для любой булевой функции существует задающий ее многочлен Жегалкина. Он единственен с точностью до перестановок слагаемых и порядка переменных в конъюнкциях.

Доказательство. Существование такого многочлена следует из того, что для любой ДНФ или КНФ можно с помощью указанных эквивалентностей найти эквивалентный многочлен Жегалкина: (J1)-(J3) позволяют заменять все вхождения ¬,  и  на + и *, а (J4) - перемножать получившиеся после такой замены многочлены.

Для доказательства единственности представления подсчитаем число различных многочленов Жегалкина от  переменных. Каждая положительная элементарная конъюнкция имеет вид Xi1 * … * Xik , где 1  i1 < … < ik  n . Таких конъюнкций столько же, сколько подмножеств множества  , т.е. 2n . (Конъюнкция, соответствующая пустому подмножеству переменных равна 1). Упорядочим их произвольным образом (например, лексикографически):  Tогда каждый многочлен Жегалкина единственным образом можно представить как сумму

где каждый из коэффициентов  i равен 0 или 1. Следовательно, число многочленов Жегалкина равно  , т.е. числу всех булевых функций от n переменных. Поэтому каждая функция задается в точности одним многочленом Жегалкина.

Пример 4.3. Пусть функция f(X1,X2,X3) задается ДНФ  . Найдем полином Жегалкина, который также задает эту функцию.

Сначала заменяем  на *, а затем,применяя эквивалентность (J1), устраняем отрицания и получаем:

Перемножив по правилам (J4), получим:

Эквивалентность (J3) позволяет устранить  :

Снова, используя (J4), перемножим первые две скобки и устраним повторения переменных в конъюнкциях:

Упростим эту сумму, используя эквивалентности: X + X  0 и X + 0  X. В результате получим многочлен Жегалкина

эквивалентный исходной ДНФ Φ.

Если функция f(X1, …, Xn) задана таблично, то для построения реализующего ее многочлена Жегалкина можно применить метод неопределенных коэфициентов. Сопоставим i-ому набору значений переменных  в таблице положительную конъюнкцию  переменных, равных 1 в этом наборе. В частности, K1 - пустая конъюнкция, K2 = Xn, K3 = Xn-1, K4 = (Xn * Xn-1). и т.д. Тогда для получения нужного многочлена Жегалкина достаточно определить все коэффициенты  i, i = 1, …, 2n, в выражении

Подставляя в это равенство значения переменных из набора σi, i = 1, …, 2n, мы получим 2n линейных уравнений относительно 2n неизвестных коэффициентов  i. Решив эту систему, получим требуемый многочлен Жегалкина. Эта система треугольная и легко решается "сверху-вниз": каждое  i определяется по значениям  1, …,  i-1 из уравнения, соответствующего набору σi.

Пример 4.4. Рассмотрим в качестве примера функцию f(X1, …, Xn), заданную следующей таблицей.

Таблица 4.1. Функция f(X1, X2, X3)

X1

X2

X3

f(X1, X2, X3)

0

0

0

1

0

0

1

0

0

1

0

0

0

1

1

0

1

0

0

1

1

0

1

0

1

1

0

0

1

1.

1

1

Многочлен Жегалкина для нее (как и для любой функции от 3-х переменных) представляется в виде

В этом представлении в индексах у коэффициентов  перечислены переменные, входящие в соответствующие конъюнкции.

Последовательно подставляя значения переменных и f из таблицы, получаем:

Следовательно, функция f(X1, X2, X3) представляется многочленом Жегалкина

Д.з 2 определение Информации….

Слово «информация» происходит от латинского слова informatio,что в переводе означает сведение, разъяснение, ознакомление. Понятие «информация» является базовым в курсе информатики, однако невозможно дать его определение через другие, более «простые» понятия

.

Понятие «информация» используется в различных науках, при этом в каждой науке понятие «информация»связано с различными системами понятий.

Информация в биологии: Биология изучает живую природу и понятие «информация» связывается с целесообразным поведением живых организмов. В живых организмах информация передается и храниться с помощью объектов различной физической природы (состояние ДНК), которые рассматриваются как знаки биологических алфавитов. Генетическая информация передается по наследству и хранится во всех клетках живых организмов. 

Филосовский подход: Информация – это взаимодействие, отражение, познание. 

Кибернетический подход: Информация – это характеристики управляющего сигнала, передаваемого по линии связи.

В информатике: Информация – это сведения, знания, сообщения о положении дел, которые человек воспринимает из окружающего мира с помощью органов чувств (зрения, слуха, вкуса, обоняния, осязания).

В теории об информации: Информация – это сведения об объектах и явлениях окружающей среды, их параметрах, свойствах и состоянии, которые уменьшают имеющуюся о них степень неопределённости и неполноты знаний.

Для человека: Информация – это знания, которые он получает из различных источников с помощью органов чувств.