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

Математическая логика и теория алгоритмов. Учебное пособие-1

.pdf
Скачиваний:
0
Добавлен:
15.08.2026
Размер:
932 Кб
Скачать

Булевы функции

две переменные, входящие в выбранное слагаемое, оставляем без изменения, например xi1 и xi2;

остальные переменные (при k > 2), входящие в это слагаемое, заменяем на 1:

xi3 = … = xik = 1;

переменные, не входящие в выбранное слагаемое, заменяем на 0: xj = 0.

Таким образом, из полинома Pf (x1, x2, …, xn) получим полином вида

Pf' (xi1 , xi2 ) xi1 xi2 xi1 xi2 ,

где α, β, γ {0, 1}.

В следующей таблице представим все восемь полиномов Pf' (x, y) ,

получающихся при различных α, β, γ (здесь для простоты переобозначили xi1 = x, xi2 = y):

i

α

β

γ

Pfi

 

 

 

fi

1

0

0

0

xy

 

 

 

xy

2

0

0

1

xy 1

 

 

 

 

 

 

 

 

 

 

 

 

 

xy

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3

0

1

0

xy y

 

 

 

 

 

y

 

 

 

x

 

 

 

 

 

 

 

 

 

 

 

 

 

4

0

1

1

xy y 1

 

x

 

 

 

 

 

y

 

 

 

 

 

 

 

 

 

 

 

5

1

0

0

xy x

 

 

x

 

 

 

 

y

 

 

 

 

 

 

 

 

 

6

1

0

1

xy x 1

 

 

y

 

x

 

 

 

 

 

 

 

 

7

1

1

0

xy x y

 

x y

8

1

1

1

xy x y 1

 

 

 

 

 

 

 

 

 

 

 

x y

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Доказательство леммы завершим примером получения дизъюнкции и конъюнкции из функций f1 f3:

1) xy f1(x, y), x y x y f1(x, y);

2)xy xy f2 (x, y), x y f2 (x, y);

3)xy xy f3 (x, y), x y f3 (x, y).

Из остальных функций f4 f8 конъюнкция и дизъюнкция с помощью отрицания получаются аналогично. Лемма доказана.

31

Глава 2

2.7. Класс монотонных функций (M)

На множестве {0, 1}n введем отношение частичного порядка « ≤ » следующим образом.

Определение. 0 ≤ 0,0 ≤ 1,1 ≤ 1

((α1, α2, …, αn) ≤ (β1, β2, …, βn)) ↔ (αi ≤ βi для всех i = 1, 2, …, n).

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

если из (α1, α2, …, αn) ≤ (β1, β2, …, βn) следует неравенство f 1, α2, …, αn) ≤ f 1, β2, …, βn)

Из определения функций 0,1, xy, x ˅ y, x, y следует, что они монотонны.

На практике полезна следующая теорема.

Теорема. Если функция f (x1, x2, …, xn) не равна постоянной 1 и f (0, 0, …, 0) = 1, то она не является монотонной.

Так же как и для рассмотренных ранее классов функций, для монотонных функций имеет место теорема.

Теорема. Класс монотонных функций является замкнутым.

Доказательство: Пусть

g (x1, x2, …, xn), f1 (x1, x2, …, xm), …, fn (x1, x2, …, xm) M.

Построим суперпозицию этих функций

F (x1, x2, …, xm) = g (x1, x2, …, xm), …, fn (x1, x2, …, xm) и рассмотрим F 1, α2, …, αm), если (α1, α2, …, αn) ≤ (β1, β2, …, βn),

F1, α2, …, αm) = g (f1 1, α2, …, αm), …, fn 1, α2, …, αm)) ≤

g (f1 1, β2, …, βm), …, fn 1, β2, …, βm)) = F 1, β2, …, βm).

Таким образом, функция F (x1, x2, …, xm) монотонна и теорема дока-

зана.

Лемма (о немонотонных функциях). Из всякой немонотонной функции с помощью подстановок функций 0 и 1 вместо некоторых переменных можно получить функцию отрицания, то есть

f M → ( x [{f, 0,1}]).

Доказательство: Пусть f M, тогда существуют такие u и v, что u v, но 1 = f (u) f (v) = 0. Построим последовательность {wi}, облада-

ющую свойствами:

1) соседние wi и wi+1 отличаются только одной компонентой;

32

Булевы функции

2) u = w1 w2 ≤ … ≤ wk = v.

В этой последовательности найдутся wj и wj+1, для которых f (wj) = 1, f (wj+1) = 0.

Пусть wj и wj+1 отличаются i-й компонентой, тогда w j (w1j , , wij 1,0, wij 1, , wnj ),

w j 1 (w1j , , wij 1,1, wij 1, , wnj ).

Построим функцию g(xi ) f (w1j , , wij 1, xi , wij 1, , wnj ) . Для нее имеем:

g(0) f (w1j , , wij 1,0, wij 1, , wnj ) 1; g(1) f (w1j , , wij 1,1, wij 1, , wnj ) 0.

Таким образом, g (xi) = xi и лемма доказана.

Пример. Дана немонотонная функция f (x, y, z) = (x ˅ y ˅ z) (x y z ).

С помощью данной функции построить отрицание. Решение. Приведем таблицу значений данной функции:

x

y

z

f (x, y, z)

0

0

0

0

0

0

1

1

0

1

0

1

0

1

1

1

1

0

0

1

1

0

1

1

1

1

0

1

1

1

1

0

В качестве u можем взять (0,0,1), в качестве v возьмем (1,1,1). Построим последовательность wj:

u = (0,0,1) ≤ (1,0,1) ≤ (1,1,1) = v

f (0,0,1) = 1, f (1,0,1) = 1, f (1,1,1) = 0,

поэтому в качестве wj возьмем (1,0,1), а в качестве wj+1 – (1,1,1). Тогда g( y) f (1, y,1) 1 y 1 1 y 1 1y y.

33

Глава 2

2.8. Полнота систем булевых функций

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

P2 (n) = [Σ].

Примеры полных систем:

1)Σ1 = { , , } – полна на основании теорем о существовании СДНФ

иСКНФ;

2)Σ2 = { , } – полна, так как дизъюнкцию можно выразить через конъюнкцию и отрицание:

xy x y x y;

3)Σ3 = { , } – полна, так как конъюнкцию можно выразить через дизъюнкцию и отрицание:

xy x y x y;

4)Σ4 = { , } – полна, так как конъюнкцию и дизъюнкцию можно выразить через импликацию и отрицание:

xy x y x y,

x˅ y = x y.

5)Σ5 = { , , } – полна;

6)Σ6 = {↓} – полна;

7)Σ7 = {|} – полна.

Упражнение. Докажите полноту систем Σ5 – Σ7.

Теорема (Поста). Для того чтобы система булевых функций была полна, необходимоидостаточно, чтобывнеёвходилиследующиефункции: несохраняющая ноль, несохраняющая единицу, несамодвойственная, нелинейная и немонотонная.

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

Предположим, что такой функции в системе нет. Значит Σ P0. Так как система Σ полна, то (по определению) любая булева функция есть суперпозиция функций системы Σ и сохраняет ноль, так как класс P0 замкнут.

34

Булевы функции

Но, например, функция x не сохраняет ноль. Полученное противоречие означает, что наше предположение неверно и в Σ входит несохраняющая ноль функция.

Аналогично, опираясь на замкнутость классов P0, S, L, M, доказывается существование в системе перечисленных в теореме функций.

Достаточность.

Пусть в систему Σ входят функции f0, f1, fS, fL, fM, обладающие свойствами:

f0 P0, f1 P1, fS S, fL L, fM M.

Докажем, что конъюнкцию, дизъюнкцию и отрицание можно выразить с помощью суперпозиций функций системы Σ. Это и будет означать полноту системы Σ. Доказательство проведем по плану:

1.Выразим постоянные 0 и 1 через функции f0, f1, fS.

2.Выразим отрицание через функции fM, 0,1.

3.Выразим конъюнкцию и дизъюнкцию через функции fL, 0,1 x . По условию f0 (0, …, 0) = 1, f1 (1, …, 1) = 0. Возможны четыреварианта:

 

1

2

3

 

4

 

 

 

f0 (1, …, 1) = 0

f0 (1, …, 1) = 0

f0 (1, …, 1) = 1

 

f0 (1, …, 1) = 1

 

 

f1 (0, …, 0) = 0

f1 (0, …, 0) = 1

f1 (0, …, 0) = 0

 

f1 (0, …, 0) = 1

 

Обозначим g (x) = f0 (x, …, x), h (x) = f1 (x, …, x).

следовательно,

Рассмотрим вариант 1. Для него g (0) = 1,

g (1) = 0,

g (x) = x ; h (0) = 0, h (1) = 0, следовательно, h (x) = 0.

 

 

Имеем: 0 = h (x) = f1 (x, …, x), 1 = g (h (x)) = f0 (f1 (x, …, x), …, f1 (x, …, x))

Рассмотрим вариант 2. Для него: g (0) = 1,

g (1) = 0,

следовательно,

g (x) = x . Так как функция fS несамодвойственная, то существует набор (α1, …, αn), для которого

fS ( 1, , n ) fS ( 1, , n ).

Обозначим y(x) fS (x 1 , , x n ) , тогда

y(0) fS (0 1 , ,0 n ) fS ( 1, , n )fS ( 1, , n ) fS (1 1 , ,1 n ) y(1).

Полученное равенство означает, что y (x) постоянная и если y (x) = 0, то 1 = g (y (x)); если y (x) = 1, то 0 = g (y (x)). Таким образом, и в этом случае постоянные 0 и 1 получены.

Рассмотрим вариант 3. Для него g (x) = 1, h (x) = 0. Рассмотрим вариант 4. Для него g (x) = 1, h (x) = x .

35

Глава 2

Таким образом, доказали, что постоянные 0 и 1 выражаются через

функции f0, f1, fS.

Заметим далее, что в случаях 1, 2, 4 отрицание также получено как суперпозицияфункций системы Σ. В случае3 его можно получить по лемме о немонотонных функциях с помощью немонотонной функции fM и постоянных 0 и 1.

По лемме о нелинейных функциях с помощью нелинейной функции fL, постоянных 0, 1 и отрицания можно получить конъюнкцию и дизъюнкцию.

Из полноты системы Σ1 = { , , } следует полнота нашей системы Σ.

Теорема доказана.

Напрактикедлярешениявопросаополнотесистемыфункцийудобно строить так называемую таблицу Поста. В этой таблице знаками «+» и «–» отражается принадлежность или непринадлежность рассматриваемых функций классам P0, P1, S, L, M. Вывод делается на основании теоремы Поста: если в каждой строке таблицы Поста есть хотя бы один минус, то система функций полна; если в некоторой строке таблицы все плюсы, то система не полна.

Пример. Полна ли система функций Σ = {x y, 1, f (x, y, z)}? Функция f (x, y, z) задана таблицей значений:

x

y

z

f

0

0

0

0

0

0

1

1

0

1

0

1

0

1

1

0

1

0

0

0

1

0

1

0

1

1

0

1

1

1

1

0

Решение.

Исследуем свойства функции f (x, y, z).

Так как f (0,0,0) = 0, значит функция сохраняет ноль (f P0) и в соответствующей ячейки таблицы ставим «+».

Так как f (1,1,1) = 0, значит функция не сохраняет единицу (f P1) и в соответствующей ячейке ставим «–».

Функция не является самодвойственной, так как таблица её значений не антисимметрична относительно линии центрального разреза: например,

f (0,1,1) = 0, но f *(0,1,1) f (1,0,0) 0 1. В соответствующей ячейке ставим знак «–».

36

Булевы функции

Для выяснения вопроса о линейности данной функции сначала по таблице ее значений восстановим f (x, y, z), а затем построим полином Жегалкина Pf этой функции:

Pf x y z y z x y z y z x y z y z

x y z y z (x 1)( y 1)z y(z 1)

=xyz xz yz z yz y = xyz xz z y.

Функция не является линейной и в соответствующей ячейке ставим знак «–».

Анализируя таблицу значений функции, делаем вывод, что она не является монотонной, так как, например, (0,1,0) ≤ (0,1,1), но f (0,1,0) = 1 0 =

= f (0,1,1). В соответствующей ячейке ставим знак «–».

Такимобразом, заполнилипервыйстолбецтаблицыПостадляданной системы функций. Второй и третий столбцы, соответствующие свойствам функций x y и 1, заполняем аналогично первому, исходя из таблиц значений данных функций:

x

y

x y

1

0

0

0

1

0

1

1

1

1

0

1

1

1

1

0

1

В результате исследования получим следующую таблицу Поста:

Класс

f (x, y, z)

x y

1

P0

 

 

 

 

 

 

 

P1

 

 

 

 

 

 

 

S

 

 

 

L

 

 

 

M

 

 

 

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

Определение. Система функций Σ = {f1, …, fk} называется базисом множества P2 (n) всех булевых функций n переменных, если:

1)Σ – полна;

2)Σ \ {fi} не является полной i (i 1, …, k).

37

Глава 2

Возвращаясь к ра смотренному вы ше примеру и анализируя таблицу Поста для системы Σ = {x y, 1, f (x, y, z)}, видим, что система Σ \ { x y}

тоже

вляется полной. Следовательно, система Σ = {x y, 1, f (x, y, z)} яв-

ляется

полной но не является базисом, система {1, f (x, y, z)} является

полной и является базисом.

2.9. Булевы функции и релейно-контактные схемы

Релейноконтактная схема (РКС) – это устройство, состоящее из проводников, реле и контактов – замыкающих и размыкающих. При вкл ючении РКС в электрическую цепь ток ерез нее проходит или не проходит. Осознани связи Р С и булевых функций произошло в30-е годы XX века.

Замыкающие кон акты в РКС будем обозначать x, y, z, …, размыкающие связанные с теми же реле, – x, y, z , . При прохождении тока через

контакт x будем полагать x = 1, x = 0. Всей РКС также сопоставляется 1, если через нее проходит ток, и 0, если не проходит. Но 0 и 1 – значения булевых функций. В эт м и была усмотрена связь между РКС и булевыми функциями.

Определение. Функцией проводимости РКС (x1, x2, …, xn) c контак-

тами x 1, …, xn

называется булева функция π(x1, …, xn), равная 1, если РКС

проводит ток,

равная , если Р КС не проводит ток.

Определимфункции проводимостиРКС, изображенных нарис. 2.1, 2.2:

Рис. 2.1

Рис. 2.2

1. C одной сторо ы, левая РКС(x, y) на рис.2.1 проводит ток тогда и толькотогда, когдаx = 1 и y = 1. Сдругойсторон ы, x ˄y = 1 тогдаитолько

тогда, когда x 1 и y = 1. Следовательно, π1 (x, y) = x ˄ y. В этом случае говорят, что конъюнкция реализуется последовательным соединением кон-

тактов.

38

Булевы функции

2. C одной стороны, правая РКС(x, y) на рис. 2.1 проводит ток тогда

итолько тогда когда x = 1 или y = 1. С другой стороны, x ˅ y = 1 тогда

итолько тогда, когда x 1 или y = 1. Следовательно, π2 (x, y) = x ˅ y. В этом

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

3. C одной стороны, РКС(x, y) на рис. 2.2 проводит ток тогда и только тогда, когда x = 0. С другой стороны, x = 1 тогда и только тогда, когда x = 0. Следовательно, π3 (x) = x . Отрицаниереализуетсяразмыкающимконтактом.

Теорема. Каждой РКС соответствует некоторая булева функция проводимости и, наоборот, каждая булева функция реализуется некоторой РКС.

Пример. Дана РКС (x, y, z), рис. 2.3.

Рис. 2. 3

Определ ть функ ию проводимости данной РКС.

Решение.

Так как РКС представляет собой параллельное соединение трех проводников, то ее функци й проводимости будет функция вида

π(x, y, z) = f1 (x, y , z) ˅ f2 (x, y, z) ˅ f3 (x, y, z).

Так как параллельные ветви представляют собой последовательное соединение ко тактов, то

f1 ( x, y, z) = x ˄ y , f2 (x, y, z) = y ˄ z, f3 (x, y, z) = x ˄z .

Таким образом, функция проводимости данной РКС имеет вид

π(x, y, z) = (x ˄ y ) ˅ (y ˄ z) ˅ ( x ˄z ).

Пример. Дана булева функция f (x, y, z) = (x y)(y z). Построить РКС, реализующую данную функцию.

Решение. Для построения РКС сначала нужно привести данную функцию к ДНФ или К Ф (если функция не имееттакой формы):

f (x, y, z) = (x y)(y z) = (x y)(y z)

(x y)(( y z)(z y)) (x y)(( y z) ((z y))) (x y)( yz zy) .

39

Глава 2

Данная ф ункция представ ляет собой конъюнкцию дизъюнкций, поэтому реализуется РКС с последовательным соединением двух частей, в каж ой из которых параллельное соединение двух частей. Искомая РКС изображена на рис. 2.4.

Рис. 2.4

В теори и РКС рассматриваютcя две основные задачи – синтеза

ианализа. Они формулируются следующ им образом:

построить РКС, соответствующу ю определенным условиям;

упростить име щуюся РКС, то есть построить равносильную ей РКС с меньши м числом контактов.

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

свою кнопку. остроить, по воз можности, более простую схему, через которую ток проходил бы тогда и только тогда, когда не менее двух членов комитета голосуют «за».

Решение. Обозначим через x, y, z – контакты, соответствующие трем членам комитета. Функцию проводимости π(x, y, z) зададим таблично, учтя, что о а должна быть равна 1, если не менее двух из переменных x, y, z равны 1.

x

y

 

z

π

0

0

 

0

0

0

0

 

1

0

0

1

 

0

0

0

1

 

1

1

1

0

 

0

0

1

0

 

1

1

1

1

 

0

1

1

1

 

1

1

Использовав таблицу значений функции проводимости, построим СДНФ этой функции:

π(x, y, z) = x yz ˅ x y z ˅ xy z ˅xyz.

40

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]