Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
гл7.doc
Скачиваний:
12
Добавлен:
13.04.2015
Размер:
501.76 Кб
Скачать

56

7.1. Установление функциональной полноты системы логических функций путем ее сведения к заведомо полной системе

Функционально полной будет любая система , через функции которой можно выразить дизъюнкцию, конъюнкцию и отрицание. Действительно, для любой логической функции представляющую ее формулу над , можно построить следующим образом: взять булеву формулу для (по теореме 3.2 такая формула обязательно найдется), и все булевы операции в ней заменить формулами над , представляющими эти операции. Аналогично доказывается и более общее утверждение: если все функции функционально полной системы представимы формулами над системой , то также функционально полна. В этом случае говорят, что сводится к .

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

Пример 7.1. Доказать функциональную полноту систем и .

Из законов де Моргана (2.8) и двойного отрицания (2.6) следует, что в каждой из этих двух систем недостающая до функция выражается через две остальные:

,

.

Булева формула в системе перейдет в формулу , а в системе – в формулу .

Пример 7.2. Системы (штрих Шеффера) и (стрелка Пирса) функционально полны, т.к. из (1.3), (1.4) следует, что

; ;

Следовательно, сводится к , а – к (полнота и доказана в примере 7.1).

7.2. Замкнутые классы. Монотонные функции. Критерий функциональной полноты Поста-Яблонского

Метод установления функциональной полноты системы путем ее сведения к заведомо полной системе , рассмотренный в предыдущей главе, удобен для человека, но не поддается алгоритмизации. Поэтому, в общем случае, для установления полноты системы используют критерий полноты Поста-Яблонского, который будет рассмотрен в данной главе (теорема 7.3 и 7.4). Критерий основан на анализе свойств функций, образующих , и использует понятие замкнутого класса.

Множество логических функций называется замкнутым классом,

если любая суперпозиция функций из снова принадлежит .

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

Пример 7.3.

а) Множество всех линейных функций является замкнутым классом, так как подстановка формул вида в формулу такого же вида снова дает формулу того же вида.

б) Аналогично множество всех дизъюнкций, то есть, функций вида является замкнутым классом.

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

Например (6,0.3,-9) < (7, 0.3,-4); (0,1,1) < (1,1,1), а вектора (0,1,1) и (1,0,1), (6,0.3,-9) и (7,0,-9) не сравнимы.

Воспользуемся этим отношением для двоичных векторов.

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

Пример 7.4.

а) Константы 0,1 и функция монотонны. Отрицание немонотонно.

б) Дизъюнкция и конъюнкция любого числа переменных являются монотонными функциями.

в) Функция (табл.7.1) немонотонна, так как (001)<(101), а (001)>(101). Функция (табл.7.1) монотонна.

Таблица 7.1

0 0 0

0 0 1

0 1 0

0 1 1

1 0 0

1 0 1

1 1 0

1 1 1

0 0

1 0

0 1

1 1

1 0

0 1

0 1

1 1

Проверка монотонности функции непосредственно по определению требует анализа таблицы функции и может оказаться довольно громоздким делом. Поэтому, для опознавания монотонности полезна теорема 7.1, которая здесь приводится без доказательства. (Доказательство данной теоремы см. в [1,с.74]).

Теорема 7.1. Всякая булева формула, не содержащая отрицаний, представляет монотонную функцию, отличную от 0 и 1. И наоборот: для любой монотонной функции, отличной от 0 и 1, найдется представляющая ее булева формула без отрицаний.

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

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

Доказательство. Эта теорема непосредственно следует из теоремы 7.1. и того очевидного обстоятельства, что подстановка формул без отрицаний в формулу без отрицаний снова дает формулу без отрицаний. Теорема доказана.

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

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

Теперь перейдем к основной проблеме этой главы: каковы необходимые и достаточные условия функциональной полноты для произвольной системы функций ? Как отмечалось в главе 7.1, система полна, если дизъюнкция, конъюнкция и отрицание являются суперпозициями функций из . Поэтому, будем искать свойства функций, позволяющие выразить через них булевы операции.

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

Доказательство: Пусть немонотонна. Тогда существуют наборы и , такие, что, , ,. Если и отличаются k компонентами, то в этих компонентах в стоят нули, а в единицы. Берем набор и, заменяя эти компоненты по одному единицами, получаем цепочку , в которой любые два набора, стоящие рядом, отличаются только в одной компоненте (такие наборы называются соседними). Ясно, что в такой цепочке найдутся два соседних набора , , таких, что , . Пусть они отличаются в i-й компоненте, тогда ,, остальные их компоненты одинаковы. Подставим эти значения остальных компонент в . Получим функцию от , обозначим ее . Но ; . Следовательно, . Лемма доказана.

Пример 7.5. Функция (см. пример 7.4,в) немонотонна. Минимизировав данную функцию, получим:

.

Подставив , , получим отрицание:

.

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

Доказательство: Пусть нелинейна. Тогда ее полином Жегалкина содержит конъюнкции переменных. Выберем самую короткую из них: . Положим , а для всех , не входящих в , . Подстановка этих констант в полином обратит в , а остальные конъюнкции в 0, и полином функции примет вид , где - коэффициенты, равные 0 и 1 и зависящие от конкретной функции . Функции, получающиеся при всех восьми возможных комбинациях значений , приведены в табл. 7.2, в которой, для наглядности, обозначено , а отрицание в последнем столбце обозначено через . Поскольку каждая из функций , - результат подстановки констант в , то последний столбец табл.7.2 содержит искомое представление дизъюнкции или конъюнкции в виде суперпозиции отрицаний, констант и исходной функции . Для перехода от полученного представления к представлению двойственной функции (от конъюнкции к дизъюнкции и наоборот) дополнительно требуется отрицание (по закону де Моргана). Лемма доказана.

Таблица 7.2

Вид полинома

Эквивалентная булева функция

Искомая суперпозиция

0 0 0

0 0 1

0 1 0

0 1 1

1 0 0

1 0 1

1 1 0

1 1 1

Пример 7.6. . Самая короткая конъюнкция.Полагаем . Тогда , что соответствует в табл.7.2. Отсюда получаем: ;

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

Сформулируем первую теорему о функциональной полноте.

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

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

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

Для формулировки необходимых и достаточных условий сильной полноты рассмотрим еще три замкнутых класса.

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

Напомним, что функция называется самодвойственной, если . Класс самодвойственных функций замкнут.

Его замкнутость доказывается прямой выкладкой. (Чтобы избежать громоздких обозначений, далее она проводится не в самом общем виде, обобщение очевидно.)

Пусть , - самодвойственные функции. Подставим в вместо . Получим:

.

Тогда в силу самодвойственности и :

то есть, является самодвойственной.

Теперь сформулируем вторую - основную теорему о функциональной полноте (критерий полноты Поста-Яблонского).

Теорема 7.4. Для того, чтобы система функций была функционально полной (в сильном смысле), необходимо и достаточно, чтобы она содержала: 1) нелинейную функцию, 2) немонотонную функцию, 3) несамодвойственную функцию, 4) функцию, не сохраняющую 0, 5) функцию, не сохраняющую 1.

Необходимость. Необходимость следует из замкнутости пяти классов, упомянутых в условии теоремы.

Достаточность. При доказательстве достаточности отметим следующее. Леммы 1 и 2 используют константы. Поэтому, сначала нужно получить константы (из условий 3-5 теоремы) и только потом можно воспользоваться теоремой 7.3.

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

Пусть теперь не сохраняет 0, не сохраняет 1, несамодвойственна (, , не обязательно должны быть различными). Рассмотрим два случая:

1. Если , то функция есть константа 1, так как по определению и , а функция , то есть есть константа 0.

2. Если же , то , так как по определению и . Но тогда, из подстановкой и получим функцию , являющуюся константой, а используя еще раз , получим вторую константу. Итак, в любом случае выполнение условий 3-5 теоремы достаточно для получения констант 0, 1.

Используя этот факт и теорему 7.3, получаем теорему 7.4. Теорема доказана.

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