Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Шпоры по дискретной математике1

.doc
Скачиваний:
96
Добавлен:
02.05.2014
Размер:
539.14 Кб
Скачать

19. Элементарные функции алгебры логики Обозначения: E2={0,1}; Е= E2E2...E2 – прямое произведение n сомножителей; (x,..,xn) E2, | E2| – мощность E2, |E2|=2, тогда |Е|=2n. Определение 1. Функцией алгебры логики называется закон, осуществляющий отображение Е E2, причем отображение всюду определено и функционально. Так как множество Е конечно, то задать отображение ЕE2, означает задать множество наборов из Е и для каждого набора указать его образ в Е 2. Определение 2. Таблица, задающая функцию f(x1,x2,...,xn), называется таблицей истинности для этой функции. функция записывается f3(x)1 и называется константой 1. Если стандартным расположением переменной x считать 0 в первой строке и 1 во второй, то функции f0, f1, f2, f3 определяются однозначно наборами значений: f0=(0,0), f1=(0,1), f2=(1,0) и f3=(1,1). Наборы значений функций составляют множество E2Е2, поэтому количество функций одной переменной равно |E2E2|=4. Для удобства функции пронумерованы так, что двоичный код номера совпадает с набором значений функции.

Рассмотрим функции двух переменных f(x1,x2). Функции двух переменных определены на множестве Е={(0 0),(0 1),(1 0),(1 1)}, эти наборы переменных из Е можно тоже рассматривать как двоичные коды чисел 0,1,2,3, именно такой порядок расположения наборов (x1,x2) будем считать стандартным. Тогда функции f(x1,x2) определяются однозначно наборами значений , 34), где каждое iE2, поэтому 3, 4Е. Следовательно, число функций двух переменных равно 24=16.

Cимволы , участвующие в обозначениях элементарных функций, называются логическими связками или просто связками. Переменные 0 и 1 называются логическими или булевыми переменными, причем 0 соответствует «лжи» , а 1 – «истине», а функции алгебры логики называются еще и блевыми функциями.

Рассмотрим функции f(x1...xn), где (x1...xn) Е, тогда число наборов (x1...xn),где функция f(x1...xn) должна быть задана, равно |Е|=2n. Обозначим множество всех функций двузначной алгебры логики Р2. Обозначим через Р2(n) число функций, зависящих от n переменных. Очевидно, Р2(n)=22 n.

С ростом n число Р2(n) быстро растет: P2(1)=4, P2(2)=16, P2(3)=256, P2(4)=65536 . При больших n табличный способ задания функций становится неприемлемым, используется формульное задание функций. Но прежде чем ввести понятие формулы, дадим определение существенной переменной.

Определение 3. Функция f(x1,...,xi–1,xi,xi+1,...,xn) существенно зависит от хi, если существуют такие значения nпеременных x1, ...xi–1, xi+1, ...xn, что f(1, ...i–1  i+1nf1...i–1  i+1n) . Тогда переменная хi называется существенной переменной. В противном случае хi называется фиктивной переменной.

1. Законы склеивания:

xyx=x(y)=x1=x (дистрибутивность & относительно );

(xy)&(x)=x y =x 0=x (дистрибутивность  относительно &).

2. Законы поглощения:

xxy=x(1y)=x1=x; x&(xy)=xxy=x.

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

x

0

1

0

1

0

1

0

1

23. Разложение булевой функции по переменным Обозначим x=

Посмотрим, чему равно x при разных значениях x и .

Из таблицы следует: x=1 тогда и только тогда, когда x=.

Теорема о разложении функции по переменным П усть f(x1, ..., xn) P2. Тогда для любого m: 1 ≤ m ≤ n допустимо представление: f(x1, ..., xm, xm+1, ..., xn) = ,

где дизъюнкция берется по всем наборам из 0 и 1, которое называется разложением функции f по переменным x1, ..., xn. Прежде чем доказать утверждение, рассмотрим примеры. Пример 1. m = 1, запишем разложение по переменным х: f(x1, ..., xn) = = f(0, x2 , …,xnx1f(1, x2, ..., xn). (1)

Пример 2. m=2, запишем разложение по переменным х и : f(x1,x2,…xn) = = . Если f(x, x = xx, то последняя формула дает xx= xx.

Доказательство. Для доказательства возьмем произвольный набор ,,n) и покажем, что левая и правая части формулы (1) принимают на этом наборе одинаковые значения. Слева имеем fn. Cправа : . Дизъюнкция берется по всевозможным наборам (). Если в этих наборах хотя бы одно i (1≤i≤m), то = 0 и , следовательно, ненулевой член будет только на наборе ) = ), тогда c3 fn.

Следствие 1. Любую функцию f(x1, ..., xn) не равную тождественно нулю можно представить в виде: , причём единственным образом. Этот вид называется совершенной дизъюнктивной нормальной формой функции f(x1, ..., xn) и записывается СДНФ.

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

Итак, функций реализуются посредством СДНФ, т.е. каждой функции соответствует единственная СДНФ.

Замечание. – элементарная конъюнкция ранга n по числу входящих переменных, предполагается, что при i  j , хi  хj. СДНФ для f(x1, ..., xn) –дизъюнкция элементарных конъюнкций ранга n. Если функция представлена в виде дизъюнкций элементарных конъюнкций, где ранг хотя бы одной элементарной конъюнкции меньше n, то такая форма называется дизъюнктивной нормальной формой (ДНФ).

Cледствие 2. Любая функция алгебры логики может быть представлена в виде формулы через отрицание, & и  а) Если f ≡ 0, то f(x1, ..., xn) = &.б) Если f(x1, ..., xn)  0 тождественно, тогда ее можно представить в виде СДНФ, где используются только связки , &,  СДНФ дает алгоритм представления функции в виде формулы через &,  .

С ледствие 3. Мы умеем представлять функцию в виде . Нельзя ли представить ее в виде . Пусть функция f(x1, ..., xn) 1 тождественно. Тогда функция f* 0 тождественно, и ее можно представить в виде СДНФ:

. По принципу двойственности заменим & на и наоборот, получим (2) называется элементарной дизъюнкцией ранга n. Представление функции в виде (2) называется совершенной конъюнктивной нормальной формой или в краткой записи – СКНФ. СКНФ для f(x1, ..., xn) – конъюнкция элементарных дизъюнкций ранга n. КНФ для f(x1, ..., xn) – конъюнкция элементарных дизъюнкций, где ранг хотя бы одной элементарной дизъюнкции меньше n. Пример 4. Пусть f(x1, x2, x3) = x1 (x2(x3 ~ x1)). Представим ее в виде СКНФ, для этого получим таблицу истинности.

x1

x2

x3

x3~x1

x 2 (x3~x1)

f

0

0

0

0

1

1

1

1

0

0

1

1

0

0

1

1

0

1

0

1

0

1

0

1

1

0

1

0

0

1

0

1

1

1

1

0

1

1

0

1

1

1

1

1

1

1

0

1

Функция равна нулю только на наборе (1, 1, 0), поэтому

f(x1 x2 x3)=x1x2x3 =xx2x31= x3.

26. Полином Жегалкина. f(x1, ..., xn) P2, представим ее в виде формулы через конъюнкцию и сумму по модулю два, используя числа 0 и 1. Это можно сделать, так как {x1&x2, x1x2, 0, 1} полна в Р2. В силу свойства x & (yz) = xy xz можно раскрыть все скобки, привести подобные члены, и получится полином от n переменных, состоящий из членов вида хх...х, соединенных знаком . Такой полином называется полиномом Жегалкина.

Общий вид полинома Жегалкина:где , s = 0, 1, ..., n, причем при s = 0 получаем свободный член а0.

Представление функции в виде полинома Жегалкина

1. Представим любую функцию формулой над {x1&x2,} и сделаем замену =x1. Этот способ удобен, если функция задана формулой.

Пример 2. (x1(x2x3))(x1 x2) x3 = (x1 x2 x3)(x1 x2) x3 = (x1x2 x1x3 x1x2 x2 x2x3)x3 = (x1x3 x2)x3 = x1x3x2 x3 = ((x1x31)x21)x3 = x1x2x3x2x3x3.

Надо помнить, что четное число одинаковых слагаемых в сумме по mod2 дает 0.

2. Метод неопределенных коэффициентов. Он удобен, если функция задана таблицей.

Пример 3. Запишем с неопределенными коэффициентами полином Жегалкина для функции трех переменных f(x1, x2, x3) = (01101001) = а0 а1х1 а2х2 а3х3 b1x1x2 b2x2x3 b3x1x3cx1x2x3. Затем находим коэффициенты, используя значения функции на всех наборах. На наборе (0, 0, 0) f(0, 0, 0) = 0, с другой стороны, подставив этот набор в полином, получим f(0, 0, 0) = а0, отсюда а0 = 0. f(0, 0, 1) = 1, подставив набор (0, 0, 1) в полином, получим: f(0, 0, 1) = а0 а3, т.к. а0 = 0, отсюда а3 = 1. Аналогично, f(0, 1, 0) = 1 = а2, f(0, 1, 1) = 0 = а2 а3 b2 = b2 = 0; а1 = 1; 0 = а1 а3 b3 = b3 = 0; 0 = а1 а2 b1 = b1 = 0; 1 = 1 1 1 c; c = 0; f(x1, x2, x3) = x1 x2 x3.

3. Многочлен Жегалкина можно получить также с помощью треугольника Паскаля по единицам его левой стороны по таблице следующим образом. Построим многочлен Жегалкина для функции f = (10011110). Верхняя сторона треугольника есть функция f. Любой другой элемент треугольника есть сумма по модулю для двух соседних элементов предыдущей строки. Левая сторона треугольника для функции f содержит шесть единиц. Многочлен Жегалкина будет содержать шесть слагаемых. Первая единица треугольника соответствует набору (000). Первое слагаемое многочлена есть 1. Третья снизу единица в левой стороне треугольника соответсвует набору (101). В качестве слагаемого многочлена берем x1x3. Аналогично для других единиц треугольника. Слева от наборов показаны слагаемые многочлена Жегалкина.

N

x1x2x3

f

Треугольник Паскаля

1

x3

x2

x2x3

x1

x1x3

x1x2

x1x2x3

000

001

010

011

100

101

110

111

1

0

0

1

1

1

1

0

1 0 0 1 1 1 1 0

1 0 1 0 0 0 1

1 1 1 0 0 1

0 0 1 0 1

0 1 1 1

1 0 0

1 0

1

Тогда

Теорема Жегалкина

Каждая функция из может быть представлена в виде полинома Жегалкина единственным образом.

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

, s = 0, 1, ..., n. Доказательство. Любая функция из Р2 может быть представлена формулой над {x1 & x2, x1x2, 0, 1}, а эта формула после раскрытия всех скобок и приведения подобных членов дает полином Жегалкина. Докажем единственность представления. Рассмотрим функции f(x1, ..., xn) от n переменных. Мы знаем, что всего таких функций, т.е. их таблиц истинности , 2n. Подсчитаем число различных полиномов Жегалкина от n переменных, т.е. число вариаций вида: . Число наборов равно числу всех подмножеств множества { x1, ..., xn }, сюда входит и пустое множество (если s = 0). Число подмножеств множества из n элементов равно 2n , а так как каждый набор входит с коэффициентом , принимающим два значения: 0 или 1, то число всевозможных полиномов будет . Так как каждому полиному соответствует единственная функция, число функций от n переменных равно числу полиномов, то каждой функции будет соответствовать единственный полином.

Определение. Функция f(x1, ..., xn), полином Жегалкина для которой имеет следующий линейный относительно переменных вид: f = а0 а1х1 а2х2 ... аnхn, называется линейной.

Лемма о нелинейной функции. Суперпозицией нелинейной функции, отрицания и константы 1 можно получить конъюнкцию.

Доказательство. Пусть f(x1, ..., xn) – нелинейная функция. Тогда полином Жегалкина содержит для нее слагаемое, в котором присутствует произведение xixj. Будем считать для простоты, что x1x2 в многочлене Жегалкина является этим произведением. Произведя группировку слагаемых, функцию f представим в виде

Функция h0 не есть тождественный нуль, иначе в полиноме Жегалкина отсутствует слагаемое с произведением x1x2. Тогда существует набор (3, …, n) из 0 и 1, для которого h0(3, …, n) = 1. Пусть h1(3, …, n) = a, h2(3, …, n) = b, h3(3, …, n) = c. Тогда

Построим функцию:

где d = abc. Если d = 0, то h(x1, x2) = x1x2. Если d = 1, то h(x1, x2) = x1x2  1 и тогда Лемма доказана.

Функция f(x1, ..., xn) сохраняет константу a  {0, 1}, если f(a, …, a) = a.

Пример 4. Функция xy сохраняет 0, сохраняет 1. Функция xy сохраняет 1 и не сохраняет 0