
- •Часть II
- •Алгебра двузначной логики
- •Функции алгебры логики
- •Способы задания функций алгебры логики
- •Эквивалентность функций
- •Реализация функций формулами
- •Эквивалентность формул и тождества
- •Упрощение формул
- •Двойственные функции и принцип двойственности
- •Применение принципа двойственности
- •Аналитическая запись функций алгебры логики
- •Аналитическое построение сднф и скнф
- •Теорема о тройке связок
- •Полные системы функций и полиномы Жегалкина
- •Замыкание систем функций алгебры логики
- •Важнейшие замкнутые классы
- •Теорема Поста о полноте
- •Минимизация булевых функций
- •Основные понятия
- •Метод неопределенных коэффициентов
- •Тупиковые днф и алгоритм наискорейшего спуска
- •Геометрическое представление функций алгебры логики
- •Аналитическое построение сокращенной днф
- •Локальные алгоритмы
- •Алгоритм Куайна
- •Диаграммы Вейча–Карно
- •Построение днф по карте Карно
- •Задачи и упражнения
- •Список литературы
- •Часть II
- •400131, Волгоград, просп. Им. В.И.Ленина, 28
- •400131, Волгоград, ул. Советская, 35
-
Замыкание систем функций алгебры логики
Рассмотрим ещё два понятия: замыкания и замкнутого класса, которые тесно связаны с понятием полноты.
Пусть М Р2 – некоторое подмножество множества всех функций алгебры логики. Замыканием М называется множество тех истинностных функций, которые могут быть выражены формулой над М.
Замыкание М обозначается [M].
Примеры:
Пусть М = Р2, тогда [M] = Р2.
Пусть М = {}, тогда [M] = Р2.
Пусть М = {1,}, тогда [M] = {f(x1,…,xn)P2: f(x1,…,xn) = c0c1x1cnxn, где сi0 или 1}. Т.е. [M] – это множество функций, представимых линейным выражением или класс всех линейных функций.
Свойства замыкания:
Для всякого множества функций алгебры логики М замыкание «шире» самого множества М. Или [M] М.
Для всякого множества функций М замыкание замыкания М есть само замыкание М. Или [[M]] = [М].
Если множество функций М1 является подмножеством множества функций М2, то замыкание М1 является подмножеством замыкания М2. Или если М1 М2, то [М1] [М2].
Объединение замыканий двух множеств является подмножеством замыкания объединения этих множеств. Или [М1] [М2] [М1 М2].
Класс функций М называется функционально замкнутым или просто замкнутым, если его замыкание совпадает с ним самим, т.е. [M] = М.
Так, например, множество всех функций алгебры логики – функционально замкнутый класс. А множества {Ø,&}, {Ø,Ú}, {Ø,®} не являются замкнутыми классами, поскольку их замыканием является множество всех функций алгебры логики. То же можно сказать и о других полных системах функций. Тем самым, определение полной системы функций можно сформулировать в терминах замыканий: система функций М является функционально полной, если её замыкание совпадает с множеством всех функций алгебры логики, т.е. [M]=P2.
-
Важнейшие замкнутые классы
1) Класс функций, сохраняющих ноль. Обозначение: Т0.
Т0={f(x1,x2,…,xn)P2:
f(0,0,…,0)=0}, таким
образом, этот класс состоит из тех
функций алгебры логики, которые на
наборе, состоящем из одних нулей, имеют
значение ноль. Или, что то же самое, в
верхней строке таблицы истинности
значение этих функций равно нулю. И
поскольку, ровно половина всех функций
в верхней строке равны нулю, то число
функций от n переменных,
относящихся к классу Т0, равно
.
Из элементарных функций к этому классу
относятся следующие: 0, х, &, ,
. А такие, как 1,
,
,
не принадлежат классу Т0.
Утверждение:
Т0 – замкнутый класс, т.е. [Т0]=T0.
Доказательство:
По свойствам замыканий Т0 Т0. Покажем, что Т0 Т0. Для этого рассмотрим произвольную функцию Ф Т0. По определению замыкания функция Ф выражается формулой через функции класса Т0, т.е. Ф=f(f1,f2,…,fm), где функции f, f1, f2,…,fmТ0. Тогда Ф(0,0,…,0)=f(f1(0,…,0),f2(0,…,0),…,fm(0,…,0)) = f(0,…,0)=0. Таким образом, функция ФТ0. И так как Ф – произвольная функция из замыкания, то Т0 Т0. И, следовательно, Т0 = Т0.
2) Класс функций, сохраняющих единицу. Обозначение: Т1.
Т1={f(x1,x2,…,xn)P2:
f(1,1,…,1)=1}, таким
образом, этот класс состоит из тех
функций алгебры логики, которые на
наборе, состоящем из одних единиц, имеют
значение 1. Или, что то же самое, в нижней
строке таблицы истинности значение
этих функций равно единице. И, поскольку,
ровно половина всех функций в нижней
строке равны единице, то число функций
от n переменных,
относящихся к классу Т1, равно
.
Из элементарных функций к этому классу
относятся следующие: 1, х, &, ,
, .
А такие, как 0,
,
не принадлежат
классу Т1.
Утверждение:
Т1 – замкнутый класс, т.е. [Т1]=T1.
Доказательство:
По свойствам замыканий Т1 Т1. Покажем, что Т1 Т1. Для этого рассмотрим произвольную функцию Ф Т1. По определению замыкания функция Ф выражается формулой через функции класса Т1, т.е. Ф=f(f1,f2,…,fm), где функции f, f1, f2,…,fmТ1. Тогда Ф(1,1,…,1)=f(f1(1,…,1),f2(1,…,1),…,fm(1,…,1)) = f(1,…,1)=1. Таким образом, произвольно взятая функция Ф из Т1 принадлежит и классу Т1. Поэтому Т0 Т0. Следовательно Т0 = Т0.
3) Класс самодвойственных функций. Обозначение: S.
S={f(x1,x2,…,xn)P2:
f(x1,x2,…,xn)=f *(x1,x2,…,xn)
}, таким образом, этот класс состоит из
тех функций алгебры логики, которые
совпадают с двойственными к ним. Заметим,
что такие функции на противоположных
наборах принимают противоположные
значения, т.к. f(x1,x2,…,xn)=.
Таблицы истинности этих функций имеют
зеркальную симметрию верхней половины
строк таблицы и инвертированной нижней
половины строк относительно середины
всех строк таблицы. Тем самым,
самодвойственные функции полностью
определяются своими значениями на
первой половине строк таблицы. Число
таких строк для функций от n
переменных равно
=2n-1
и, следовательно, число функций от n
переменных, относящихся к классу S,
равно
.
Из элементарных функций самодвойственными
являются только тождественная функция
х и отрицание
.
Утверждение:
S – замкнутый класс, т.е. [S]= S.
Доказательство:
По свойствам замыканий S S. Покажем, что S S. Для этого рассмотрим произвольную функцию ФS. По определению замыкания функция Ф выражается формулой через функции класса S, т.е. Ф=f(f1,f2,…,fm), где функции f, f1, f2,…,fmS. Тогда Ф*=f*(f1*,f2*,…,fm*) = f(f1,f2,…,fm)=Ф. Таким образом, функция ФS. И так как Ф – произвольная функция из замыкания, то S S. Отсюда следует, что S = S.
Лемма о несамодвойственной функции
Если функция алгебры
логики не принадлежит классу
самодвойственных функций, то всегда
можно указать такую замену её переменных
функциями х и
,
что в результате этой замены будет
получена константа 0 или 1.
Доказательство:
Доказательство имеет
конструктивный характер и показывает,
как подобрать такую замену переменных.
Рассмотрим произвольную несамодвойственную
функцию от n переменных
f(x1,x2,…,xn).
Так как fS,
то существует такой набор значений
переменных 1,2,…,n,
что f(1,2,…,n)
,
а это значит, что f(1,2,…,n) =
.
Заметим, что для самодвойственной
функции такого набора не существует
по определению. Введем также в рассмотрение
функции gi(x)=xi,
где i=1,2,…,n,
и gi(x)
равно либо х, либо
,
в зависимости от значения i.
Произведем замену переменных x1,x2,…,xn
в функции f на g1(x),
g2(x),…,
gn(x)
соответственно. Покажем, что полученная
в результате этой замены функция Ф(х)=
f(g1(x),
g2(x),…,
gn(x))
является константой. Действительно,
т.к. Ф(х)=f(x1,x2,…,xn),
то Ф(0)=f(01,02,…,0n),
но 0i
равно
=1,
если i=0,
и равно 0, если i=1,
тем самым, 0i=
.
Тогда Ф(0)=
=(по условию)f(1,2,…,n) =
f(11,12,…,1n) = Ф(1).
Т.е. Ф(х) имеет постоянное значение
для всех значений х, и Ф(х) –
константа.
Пусть функция
f(х,y,z)=.
Заметим, что f(0,0,0)=
f(1,1,1). Поэтому набор
(1,1,1) можно взять для формирования
функций gi(x)=xi,
где i=1,2,3. На выбранном
наборе все эти функции равны тождественной
функции х. Выполним замену каждой
переменной на х. Получим: f(х,х,х)=
.
Понятно, что никакая
замена переменных на х или
в самодвойственной функции не может
привести к константе, а только к х
или
.
4) Класс монотонных функций. Обозначение: М.
Функция f(x1,x2,…,xn)P2
называется монотонной, если для
любых двух наборов =(1,2,…,n)
и =(1,2,…,n)
таких, что i i,
где i=1,2,…,n,
следует f() f().
Про такие наборы говорят, что набор
предшествует
набору , и
обозначают .
Из элементарных функций монотонными
являются 0, 1, тождественная функция х,
, .
А функции
,
, ,
, ,
монотонными не
являются.
Утверждение:
М – замкнутый класс, т.е. [М]= М.
Доказательство:
По свойствам замыканий М М. Покажем, что М М. Т.к. функция хМ, то достаточно рассмотреть произвольную функцию ФМ. По определению замыкания функция Ф выражается формулой через функции класса М, т.е. Ф(x1,x2,…,xn)=f(f1,f2,…,fm), где функции f, f1, f2,…,fmМ. Пусть =(1,2,…,n) и =(1,2,…,n) – два набора значений переменных (x1,x2,…,xn) таких, что i i, где i=1,2,…,n. Эти наборы определяют наборы значений переменных для функций f1,f2,…,fm: а1=(11,12,…,1s1) и b1=(11,12,…,1s1),…, аm=(m1,m2,…,msm) и bm=(m1,m2,…,msm), которые (вследствие того, что ) также попарно предшествуют друг другу. Т.е. а1 b1 и а2 b2 и …аm bm. Но функции f1, f2,…,fm монотонны, поэтому f1(а1) f1(b1), f2(а2) f2(b2), …, fm(аm) fm(bm). Тогда рассматривая =(f1(а1), f2(а2),…, fm(аm)) и =(f1(b1), f2(b2), …, fm(bm)) как наборы значений переменных функции f, имеем: и f( ) f( ) ввиду монотонности f. Но Ф()=f( ) и Ф()=f( ), т.е. для Ф() Ф(). И, следовательно, функция ФМ. Но Ф – произвольная функция из замыкания, поэтому М М. Отсюда по определению равных множеств следует: М = М.
Лемма о немонотонной функции
Если функция алгебры
логики не принадлежит классу монотонных
функций, то из неё путем подстановки
констант 0, 1 и функции х на места
переменных можно получить функцию
.
Доказательство:
Доказательство имеет
конструктивный характер и показывает,
как подобрать такую замену переменных.
Рассмотрим произвольную немонотонную
функцию от n переменных
f(x1,x2,…,xn).
Так как fМ,
то существуют такие наборы значений
переменных
и , что
и f() > f().
Если наборы
и смежны,
т.е. различаются только одной i–той
координатой (при этом в наборе
на i–том месте
стоит ноль, а в наборе
– единица), то цель достигнута – можно
сделать замену переменных (x1,x2,…,xn)
на (1,…,i‑1,x,i+1,…,n).
После этой замены будет получена функция
одной переменной g(x) = f(1,…,i‑1,x,i+1,…,n).
Причем g(0)=f(1,…,i‑1,0,i+1,…,n)=f(),
а g(1)=f(1,…,i‑1,1,i+1,…,n)=f().
И так как f() > f(),
то g(0) > g(1),
а это значит, что g(0)=1
и g(1)=0, т.е. g(x)=.
Если же наборы и несмежны, то они отличаются в нескольких координатах, и пусть число этих координат равно k (где k>1). И так как , то в наборе эти k координат равны 0, а в наборе они равны 1. Поэтому между наборами и можно вставить (k ‑1) промежуточных наборов 1,2,…,k-1 таких, что 1 2 … k-1 , образующих цепь смежных наборов, связывающих и . И так как f() > f(), то в этой цепи существуют два смежных набора i и i+1 (где i i+1), для которых f(i) > f(i+1). Тогда также, как и в первом случае, эти наборы i и i+1 можно использовать для замены.
Пусть функция
f(х,y)=ху.
Заметим, что на наборах (0,0) и (1,0), которые
являются смежными, значения функции
находятся в соотношении: f(0,0)>f(1,0).
Поэтому можно выполнить замену переменной
у на 0, а переменную х оставить
без изменений. После замены получим:
f(х,0)=х0=.
5) Класс линейных функций. Обозначение: L.
L={f(x1,x2,…,xn)P2:
f(x1,x2,…,xn)=c0c1x1c2x2…cnxn,
где c0,c1,c2,…,cn
равны 0 или 1}. Таким образом, этот класс
состоит из тех функций алгебры логики,
которые представимы линейным выражением.
Различные линейные функции от n
переменных отличаются друг от друга
составом слагаемых, входящих в их
линейные выражения. Этот состав
определяется значением коэффициентов:
если соответствующий коэффициент равен
нулю, то слагаемое отсутствует. И так
как число коэффициентов равно n+1,
то число функций от n
переменных, относящихся к классу L,
равно 2n+1.
Из элементарных функций линейными
являются тождественная функция х,
отрицание
,
константы 0 и 1, а также
и .
Утверждение:
L – замкнутый класс, т.е. [L]= L.
Доказательство:
По свойствам замыканий L L. Покажем, что L L. Т.к. хL, то достаточно рассмотреть произвольную функцию ФL. По определению замыкания функция Ф выражается формулой через функции класса L, т.е. Ф=f(f1,f2,…,fm), где функции f, f1, f2,…,fmL. Иными словами функция Ф представляет из себя «линейное выражение от линейных выражений», а оно в свою очередь линейно. Таким образом, функция ФL. И так как Ф – произвольная функция из замыкания, то L L. Следовательно, L = L.
Лемма о нелинейной функции
Если функция алгебры
логики от n переменных
f(x1,x2,…,xn)
нелинейна, то из неё можно получить
х1& x2
путем подстановки констант 0 или 1 и
функций х и
,
а также, возможно, размещением знака
отрицания над f.
Доказательство:
Рассмотрим полином
Жегалкина для функции f:
.
Вследствие нелинейности функции
f(x1,x2,…,xn)
в полиноме обязательно найдется
слагаемое, содержащее не менее двух
сомножителей. Без уменьшения общности
можно считать, что этими сомножителями
являются х1 и х2.
Преобразуем полином к виду:
= х1х2f1(х3,…,хn) х1f2(х3,…,хn) х2f3(х3,…,хn)
f4(х3,…,хn).
Так как f(x1,x2,…,xn)
нелинейна, то f1(х3,…,хn)
0
и существует набор значений 3,…,n такой,
что f1(3,…,n)=1.
Подставим этот набор в полином. Тогда
f(x1,x2,3,…,n) = х1х2f1(3,…,n) х1f2(3,…,n)
х2f3(3,…,n) f4(3,…,n)
= х1х2 х1a х2b c,
где a, b
и с равны нулю или единице. Теперь
заменим х1 на (х1b)
и х2 на (х2а)
– это соответствует подстановке функций
вида: х или
,
в зависимости от значений a
и b. Получим:
f(x1b, x2а,3,…,n) = (х1b)(х2а) (х1b)a (х2а)b c =
= х1х2 х1a х2b ab х1a ab х2b ab c = х1х2 ab c.
К последнему выражению добавим (ab c)
– это соответствует возможному
размещению знака отрицания над функцией.
В итоге будет получена функция двух
переменных (x1,x2) = х1х2 = х1 & х2.
Что и требовалось доказать.
Пусть функция алгебры
логики задана полиномом Жегалкина:
f(х,y,z,t) = xyz yzt xy zt xz x 1.
Здесь для компактности записи пропущен
знак «». Выполним
преобразования полинома, как указано
в доказательстве леммы:
f(х,y,z,t) = xy(z 1) x(z 1) yzt (zt 1).
Таким образом, в соответствии с введенными
в лемме обозначениями f1(z,t) = z 1,
f2(z,t) = z 1,
f3(z,t) = zt,
f4(z,t) = zt 1.
Заметим, что f1(z,t) = 1
при z = 0 и
t = 0
или t = 1.
Для определенности рассмотрим набор
(z,t) = (0,1).
На выбранном наборе f2(0,1) = 1,
f3(0,1) = 0
и f4(z,t) = 1,
т.е. a, b
и с равны соответственно 1, 0 и 1. И
f(х,y,0,1) = xy x 1.
Заменим теперь у на у 1.
Тогда f(х, y1,0,1) = x(y 1) x 1= xy x x 1=
xy 1.
Добавим к последнему выражению
(ab c)=1
и (х,у) = ху.
Тем самым, с помощью замены х на х,
у на
,
z на ноль и t
на единицу, а также установки знака
отрицания над функцией получена
конъюнкция.
|
Т0 |
Т1 |
S |
M |
L |
0 |
+ |
– |
– |
+ |
+ |
1 |
– |
+ |
– |
+ |
+ |
|
– |
– |
+ |
– |
+ |
Таблица 17 |
|
