Добавил:
владимир Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
дискра / к_экзамену / Otvety_na_bilety_temy_1-7.docx
Скачиваний:
0
Добавлен:
17.08.2025
Размер:
15.35 Mб
Скачать

Тема 3.

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

Например, ((𝑥1 ∨ 𝑥2) → (𝑥2|𝑥3)) - формула над множеством функций, состоящим из дизъюнкции, импликации и штриха Шеффера с переменными из множества {𝑥1, 𝑥2, 𝑥3}.

Формула каждому набору значений аргументов ставит в соответствие значение некоторой функции и может служить, наряду с таблицей, способом задания этой функции. При этом говорят, что формула задает (представляет, реализует) функцию.

----

Если 𝐴 - подформула формулы 𝛷, то при замене в формуле 𝛷 любого вхождения 𝐴 на равносильную ей формулу 𝐴1 формула 𝛷 переходит в равносильную ей формулу 𝛷1.

----

(𝑥1 ↔ (𝑥2 ∧ (¬𝑥1))) = 𝑥1 ↔ 𝑥2𝑥̄1

Булевым вектором называется упорядоченный набор (𝛼1, 𝛼2,..., 𝛼n), где 𝛼i принимают значения 0 или 1.

Числа 𝛼i называют координатами вектора, число 𝑛 - его длиной.

Число 𝑣( ) = 𝛼1 ⋅ 2n-1 + 𝛼2 ⋅ 2n-2+... +𝛼k ⋅ 2n-k+… +𝛼n ⋅ 20 называют номером булева вектора = (𝛼1, 𝛼2,..., 𝛼n).

----

𝑣( ) = 𝛼1 ⋅ 23 + 𝛼2 ⋅ 22 + 𝛼3 ⋅ 21 + 𝛼4 ⋅ 20 = 15

8𝛼1 + 4𝛼2 + 2𝛼3 + 𝛼4 = 15

𝛼1 = 1

𝛼2 = 1

𝛼3 = 1

𝛼4 = 1

----

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

Чтобы задать булеву функцию 𝑓 от 𝑛 переменных, достаточно указать ее значение (0 или 1) на каждом наборе (𝛼1, 𝛼2,..., 𝛼n) значений аргументов 𝑥1, 𝑥2,..., 𝑥n. Для задания булевой функции удобно использовать таблицу истинности (табл. 2.1). В каждой строке такой таблицы вначале идет набор (𝛼1, 𝛼2,..., 𝛼n) значений переменных 𝑥1, 𝑥2,..., 𝑥n, а затем значение функции на этом наборе. Булевы векторы перечисляются сверху вниз в порядке возрастания номеров.

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

----

Ответ: 2, 3, n (тк количество переменных – длина булева вектора)

----

Ответ: Число булевых векторов длины n равно 2n. Действительно, с точки зрения комбинаторики булев вектор длины n - упорядоченная выборка элементов множества {0,1}, которую можно построить за n шагов (на первом шаге выбрать первую координату, на втором - вторую и т.д.). Для выбора каждой координаты есть два варианта (0 или 1). Следовательно, согласно правилу произведения, последовательный выбор n координат можно сделать 2 ⋅ 2 ⋅...⋅ 2 = 2n способами.

Если формулы 𝛷1 и 𝛷2 задают одну функцию, то их называют равносильными и пишут 𝛷1 = 𝛷2.

----

Пошагово строим для каждой функции таблицу истинности.

----

Тема 4.

----

Ответ: 2^8-1

  • для сднф мы берем если функция = 1

  • значит можем либо взять, либо не взять => 2 варианта

  • и вырожденный случай когда все значения равны 0

О пр. Формулу вида где для любого 𝑖 𝜎i равно 0 или 1 и все переменные разные (𝑖v ≠ 𝑖µ, если 𝜈 ≠ 𝜇), называют элементарной конъюнкцией ранга r над множеством X.

Константу 1 считают элементарной конъюнкцией ранга 0.

Полиномом Жегалкина над множеством 𝑋 = {𝑥1, 𝑥2, ..., 𝑥n} называется всякая сумма (по модулю два) различных элементарных конъюнкций над 𝑋, не содержащих отрицаний переменных.

Пример: x1+x2x3 =1

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

Алгоритм: 1. Представляем функцию в виде СДНФ функции

2. Избавляемся от отрицания и дизъюнкции с помощью формул 8 и 4

3. Перемножаем скобки воспользовавшись тождествами 3 и 7

4. Упрощаем с помощью равенств 1-6

Пример.

Двойственная функция.

Функция, заданная формулой (𝑥̄1, 𝑥̄2,..., 𝑥̄n), называется двойственной к функции 𝑓(𝑥1, 𝑥2,..., 𝑥n).

Функцию, двойственную к 𝑓, обозначают 𝑓*, таким образом, 𝑓*(𝑥1,𝑥2,...,𝑥n) = (𝑥̄1,𝑥̄2,...,𝑥̄n).

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

1) столбец значений функции 𝑓 переписать в обратном порядке (т.е. число, стоящее в первой строке, записать в последнюю строку; число, стоящее во второй строке, - в предпоследнюю строку и т.д.);

2) в получившемся в результате выполнения п. 1 столбце значений каждое число заменить его отрицанием (0 заменить 1 и 1 заменить 0).

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

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

Eсли функция 𝑔 = 𝑓*, то функция 𝑓 = 𝑔*. Это утверждение несложно обосновать теоретически.

Действительно, пусть 𝑔(𝑥1, 𝑥2,..., 𝑥n) = 𝑓*( 𝑥1, 𝑥2,..., 𝑥n). Тогда

g*(𝑥1, 𝑥2,..., 𝑥n) = (𝑓*( 𝑥1, 𝑥2,..., 𝑥n))*= ( (𝑥̄1,𝑥̄2,...,𝑥̄n))*=

= ( , ,…, )= 𝑓( 𝑥1, 𝑥2,..., 𝑥n).

Пусть функция 𝑓 задана формулой, и мы хотим построить формулу для двойственной к ней функции 𝑓*. Согласно определению, это можно сделать, заменив в формуле, которой задана 𝑓, каждую переменную ее отрицанием и взяв отрицание от самой формулы.

Принцип двойственности.

Если формула 𝛷[𝑓1, 𝑓2,..., 𝑓n] задает функцию 𝑔, то формула, полученная из нее заменой символов функций 𝑓1, 𝑓2,..., 𝑓n на символы двойственных к ним функций 𝑓1*, 𝑓2*,..., 𝑓n*, задает функцию 𝑔*, двойственную к функции 𝑔. Полученную таким образом формулу будем называть двойственной к 𝛷[𝑓1, 𝑓2,..., 𝑓n] и обозначать 𝛷*[𝑓1, 𝑓2,..., 𝑓n].

Если функция задана формулой над множеством 0,1, x, , xy, xy , то, используя пример 1, принципу двойственности можно придать более конкретный вид: если в формуле 𝛷, представляющей функцию 𝑓, все конъюнкции заменить на дизъюнкции, дизъюнкции - на конъюнкции, 1 на 0, 0 на 1, то получим формулу 𝛷*, представляющую функцию 𝑓*, двойственную к 𝑓.

Соседние файлы в папке к_экзамену