Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Конспект.docx
Скачиваний:
35
Добавлен:
28.05.2022
Размер:
2.46 Mб
Скачать
      1. Формулы

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

Выберем некоторую систему функций из P2: P = {f1, f2, ..., fk} P2,

k 1. Назовем функции из системы P элементарными функциями.

Тогда формула над {f1, f2, ..., fk} определяется рекурсивно:

Определение 2.1.3 . 1. Если f P - функция от n аргументов, то

f (x1, ..., xn) - формула над P.

2. Если f P - функция от n аргументов и U1, U2, ..., Un -

формулы или логические переменные, то f (U1, ..., Un) - формула над P.

Замечание 2.1.3 . Мы определили формулу над P . Формула всегда мыслится в связи с каким-то указанным множеством элементарных функций.

Каждой формуле можно однозначно сопоставить функцию:

  1. Если U = f (x1, ..., xn) P, то формуле U сопоставляется функция

fU = f (x1, ..., xn).

  1. Пусть U = f (U1, ..., Un), где f (x1, ..., xn) P и U1, U2, ..., Un - формулы

или логические переменные. Тогда fU = f (fU1 , ..., fUn ), где fUi - функция, сопоставленная формуле Ui, если Ui - формула, и fUi = xi, если Ui = xi

  • логическая переменная.

Говорят, что формула U реализует функцию fU (x1, ..., xn).

Пример 2.1.4 . Пусть дано множество элементарных функций P =

{f (x, y), g(x, y), h(x, y)}, где функции f (x, y), g(x, y), h(x, y) заданы

следующей таблицей:

x

y

f

g

h

0

0

1

1

0

0

1

0

1

1 .

1

0

0

0

1

1

1

1

1

1

Пусть дана формула U = f (g(x, y), h(y, z)). Найдем функцию fU , реализованную формулой U . Для этого сначала найдем столбцы

значений для функций, заданных подформулами g(x, y) и h(y, z), а затем, уже получив нужные значения, подставим их в качестве

аргументов для функции f :

x

y

z

g(x, y)

h(y, z)

f (g(x, y), h(y, z))

0

0

0

1

0

f (1, 0) = 0

0

0

1

1

1

f (1, 1) = 1

0

1

0

1

1

f (1, 1) = 1

0

1

1

1

1

f (1, 1) = 1 .

1

0

0

0

0

f (0, 0) = 1

1

0

1

0

1

f (0, 1) = 0

1

1

0

1

1

f (1, 1) = 1

1

1

1

1

1

f (1, 1) = 1

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

Пусть определено множество элементарных функций P =

{f (x, y, z), g(x, y), h(x)} и дана формула U = f (x, g(h(y), 0), f (z, x, 1)).

Строение формулы U изображено на рисунке 14. Внутренние узлы

представленного дерева помечены символами функций из P. концевые

узлы (листья) помечены символами переменных или констант. Для

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

Определение 2.1.4 . Будем говорить, что формулы U и B

эквивалентны, и писать U = B, если fU = fB с точностью до

несущественных переменных.

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

Всего существует четыре различные функции от одной переменной: тождественный ноль - f (x) = 0; тождественная единица - f (x) = 1; тождественная функция или тождественный x - f (x) = x; отрицание x

или "не x" - f (x) = ¬x, так же обозначается x.

f

x g f

h 0 z x 1 y

Рисунок 14: Строение формулы f (x, g(h(y), 0), f (z, x, 1)).

x

0

1

x

¬x

0

0

1

0

1

1

0

1

1

0

Из них тождественный ноль и тождественная единица не зависят существенно от x. То есть фактически это две функции без аргументов

  • константы: f = 0 и f = 1.

Замечание 2.1.4 . Может показаться, что излишне говорить о 0, 1 и x здесь, как о функциях. Необходимо понимать, что в различном контексте эти символы могут пониматься различным образом. С одной стороны мы имеем константы 0 и 1 и некоторую переменную x. Но в контексте, предполагающем использование функций, эти символы будут пониматься как отображения, указанные в таблице выше.

Численное значение этих величин не меняется, но меняется смысл, который мы вкладываем в запись.

Рассмотрим основные булевы функции от двух переменных.

x

y

x y

x y

x y

x y

x y

x|y

x y

0

0

0

0

0

1

1

1

1

0

1

1

0

1

1

0

1

0

1

0

1

0

1

0

0

1

0

1

1

1

1

0

1

1

0

0

f (x, y) = x y - дизъюнкция, логическое "или".

f (x, y) = x y - конъюнкция, логическое "и", логическое умножение.

Также можно использовать обозначения x&y или xy.

f (x, y) = x y - сложение по модулю два, логическое исключающее

"или". Также можно использовать обозначение x + y.

f (x, y) = x y - импликация, "если, то". Также можно использовать обозначение x y.

f (x, y) = x y - эквивалентность. Также можно использовать обозначение x y.

f (x, y) = x | y - штрих Шеффера.

f (x, y) = x y - стрелка Пирса.

Всего, как мы помним, существует 16 различных функций от

двух переменных. Мы выбрали 7, существенно зависящих от обоих переменных и имеющих наибольшее значение. Добавив к ним функции от одной переменной и константы (функции от 0 переменных) получим систему функций, подмножества которой мы в основном будем испльзовать в качестве множеств элементарных функций для построения формул

P = {0, 1, x, x, x y, xy, x y, x y, x y, x|y, x y}.

Функции {x, xy, xy, xy, x y, x y, x|y, x y} будем также называть операциями.

Пример 2.1.6 . Рассмотрим пример формулы над P :

U = (((xy) (xz)) (yz)).

В этой записи слишком много скобок.

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

наивысший приоритет будет иметь коньюнкция - . Все остальные

операции имеют одинаковый приоритет.

Кроме того, можно убедиться, что операции , , , являются ассоциативными. Таким образом, вместо x (y z) или (x y) z можно

писать x y z, если {∧, , , ≡}. Операции , |, не являются

ассоциативными.

Пример 2.1.7 . С учетом указанных договоренностей, формула из примера 2.1.6 примет вид:

U = xy xz yz.

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

Соседние файлы в предмете Дискретная математика