01 Булевы функции. Замкнутые и полные классы.
Ошибка.
Попробуйте повторить позже
Привести пример, когда (при этом, напомним, всегда выполнено включение ).
Возьмём, например, в качестве множества множество из одной булевой функции , в
качестве множества тоже множество из одной функции .
Тогда, понятное дело, и не пересекаются, то есть , а значит и подавно
.
В то время как в пересечении всё таки что-то лежит. Например, в лежит функция
. Действительно, её можно получить из дизъюнкции как . Аналогично, в в
лежит функция . Действительно, её можно получить из конъюнкции как .
Следовательно, . В то время как . Этот пример показывает, что бывают
ситуации, когда включение строгое, то есть равенство там стоять не
обязано.
Ошибка.
Попробуйте повторить позже
Привести пример, когда (при этом, напомним, всегда выполнено включение ).
Возьмём, например, в качестве множества множество из одной булевой функции , в
качестве множества тоже множество из одной функции .
Тогда, как мы знаем, система - полна, то есть .
Однако, понятно, что будет состоять только из конъюнкций, сколь угодно длинных, то есть
конъюнкций вида , однако ничего другого кроме таких длинных конъюнкций
композициями одной только конъюнкции мы получить не сможем.
Точно так же будет представлять из себя только многократно навешиваемые отрицания на одну
переменную, поэтому состоит всего из двух функций - отрицания переменной и самой
переменной, которая получится если дважды взять отрицание. То есть фактически
(более чем двукратные отрицания будут сокращаться друг с дружкой, поскольку ).
Значит, в объединении будут лежать только сколь угодно длинные конъюнкции, переменная
и её отрицание:
А это явно не все возможные булевы функции. В то время как если разрешить композиции между
функциями из и из , то есть рассмотреть , то получается, что - это мы
уже доказывали ранее.
Этот пример показывает, что бывают ситуации, когда включение строгое, то есть
равенство там стоять не обязано.
Ошибка.
Попробуйте повторить позже
Назовём булеву функцию симметрической, если она не изменяет своего значения при
любой перестановке своих аргументов.
То есть, иными словами, , если набор отличается от набора
лишь перестановкой.
Задача. Образует ли множество всех симметрических булевых функций замкнутый класс?
Давайте рассмотрим - симметрическую функцию, поскольку очевидно, что
. Кроме того, - тоже симметрическая, поскольку .
Однако симметрической уже не является, поскольку при наборе
значение такой композиции равно 1, а если просто переставить
местами входные данные, взяв, скажем (мы переставили местами значение и
), то на таком входном наборе композиция равна 0.
Следовательно, - не симметрическая.
Следовательно, композициями симметрических функций можно получить и несимметрическую.
Следовательно, множество всех симметрических функций - не замкнутый класс.
Ошибка.
Попробуйте повторить позже
Доказать, что класс является полным.
Действительно, мы можем каждую функцию из полной системы выразить
через функции класса . А именно, нам достаточно научиться выражать .
Но в силу правил де Моргана: . Следовательно, раз мы каждую функцию полной системы
умеем выражать через систему , то, по лемме (о сводимости полных систем),
система - тоже полна.
Ошибка.
Попробуйте повторить позже
Доказать, что класс является полным, где - так называемая стрелка Пирса, которая определяется так:
Действительно, из стрелки Пирса можно вывести отрицание одной переменной как .
Далее, дизъюнкция - это . Следовательно, системой можно породить
систему , которая полна. А, значит, система сама полна по лемме о сводимости
полных систем.
Ошибка.
Попробуйте повторить позже
Пусть булева функция задана своей таблицей истинности
Задача: Построить её полином Жегалкина.
1. Подставляя все нули в это выражение, получаем, что, так как , то .
2. Подставляем , получаем, что . Следовательно, .
Аналогично, , поэтому , а потому .
Аналогично, , поэтому , а потому .
3. Подставляя получаем, что , так что .
Аналогично, , поэтому , поэтому .
Аналогично, , поэтому , поэтому .
4. В конце концов , поэтому
Значит, . Получаем такой полином Жегалкина:
Ошибка.
Попробуйте повторить позже
Построить полином Жегалкина функции
Воспользуемся основным соотношением, верным для любых функций :
Таким образом, имеем:
Здесь мы воспользовались тем, что, во-первых, (поскольку ) и,
во-вторых, расписали отрицание как .
Далее,
В одном из преобразований выше мы раскрыли скобки по правилу дистрибутивности
А еще мы сокращали в конъюнкциях одинаковые буковки. В конце коцнов выражение преобразуется как
Мы просто посокращали одинаковые слагаемые, потому что они схлопываются в ноль. Действительно, ясно, что для любой функций выполнено, что
- этим мы и пользовались в последнем преобразовании.
Итого получился ответ:
Ошибка.
Попробуйте повторить позже
Для каждой булевой функции действительно можно построить полином Жегалкина. Но почему он будет единственным? Может ли у какой-то булевой функции быть несколько полиномов Жегалкина?
Всего в полиноме Жегалкина от переменных будет слагаемых - столько, сколько существует
различных конюънкций вида при .
Каждая конъюнкция может либо входить в полином Жегалкина функции (коэф. перед ней 1), либо не
входить (коэф. перед ней 0).
То есть всего получается различных полиномов Жегалкина от переменных.
Но булевых функций от переменных тоже .
Поэтому, если бы какой-то функции соответствовало бы 2 различных полинома Жегалкина, то
какой-то функции не соответсововало бы вообще ни одного.
А этого быть не может, поскольку мы раньше уже научились строить полином Жегалкина для
абсолютно любой булевой функции.
Следовательно, у каждой булевой функции полином Жегалкина единственный.
Ошибка.
Попробуйте повторить позже
Пусть - все булевы функции от не более чем переменных. Вычислить, , то есть посчитать количество линейных функций среди всех булевых функций из .
Каждая линейная функция однозначно определяется своим полиномом Жегалкина, то есть каждой однозначно соответствует какой-то полином Жегалкина:
Где все или 1. Поэтому всего линейных булевых функций от переменных будет столько, сколькими способыми можно задать коэффициенты линейного полинома Жегалкина. Каждый из коэффициентов может быть равен 0 или 1, поэтому всего существует различных вариантов для наборов коэффициентов . Следовательно,
Ошибка.
Попробуйте повторить позже
Пусть - все булевы функции от не более чем переменных. Вычислить, , то есть посчитать количество функций, принимающих на нулевом наборе значение 0 среди всех булевых функций из .
Каждая булева функция из должна быть равна 0 на наборе из всех нулей. На остальных наборах она может быть какой угодно. Остальных наборов длины из нулей и единиц есть всего , и на каждом из них наша функция может быть равна 0 или 1. Значит, всего будет вариантов. То есть,
Ошибка.
Попробуйте повторить позже
Какие из следующих функций будут самодвойственными?
Функция - самодвойственна, поскольку очевидно, что .
По аналогичным причинам - тоже самодвойственна.
Функция - не самодвойственна, поскольку
Константы 0 и 1 не будут самодвойственными, поскольку при отрицании их переменных они не
меняются, а должны смениться на противоположные.
Функция - не самодвойственна, поскольку
Функция - не самодвойственна, поскольку
Функция - самодвойственна, поскольку
Тот факт, что функция голосования самодвойственна следует из того, что
функция равна 1 тогда и только тогда, когда единиц в наборе больше, чем нулей. Отсюда
легко понять, что если сменить значения всех переменных в наборе на противоположное, то
единиц станет заведомо меньше, чем нулей, а значит функция сменит своё значение на
противоположное. То есть, из этого рассуждения видно, что для выполняется соотношение
самодвойственности:
Ошибка.
Попробуйте повторить позже
Пусть - все булевы функции от не более чем переменных. Вычислить, , то есть посчитать количество самодвойственных функций среди всех булевых функций из .
Самодвойственная функция - это функция, которая на двойственных наборах (получающихся
поразрядным инвертированием) принимает противоположные значения.
Рассмотрим таблицу истинности какой-то самодвойственной функции от переменных
.
В первой половине таблицы нет двойственных наборов, на ней функцию можно задавать как
угодно. Высота этой половины таблицы - равна ровно половине из наборов, то есть .
Наоборот, значение на любом наборе из второй половины таблицы восстанавливается однозначно,
так как оно должно быть противоположно значению на противоположном наборе из
первой половине таблицы. Следовательно, мы задаем как угодно на наборах -
для этого есть вариантов, а на остальных наборах она определяется однозначно.
То есть,
Ошибка.
Попробуйте повторить позже
Какие из следующих функций будут монотонными?
Функция - будет монотонной, поскольку различных наборов длины 1 всего 2, и при
этом
Функция - будет монотонной, поскольку:
А других сравнимых наборов от двух переменных просто нет.
Функция - будет монотонной, поскольку:
А других сравнимых наборов от двух переменных просто нет.
Функция - не будет монотонной, поскольку , но
Функция будет монотонной, поскольку она зависит лишь от количества
единиц в наборе, а поэтому если набор , то единиц в наборе явно не
меньше, а значит .
Ошибка.
Попробуйте повторить позже
Доказать, что из любой полной системы булевых функций можно извлечь полную подсистему, состоящую не более чем из пяти функций.
Раз система полная, то по необходимому условию из теоремы о функциональной полноте, она не
лежит полностью ни в одном из классов . Следовательно, в ней найдутся
.
Но тогда, из доказательства достаточности в теореме о функциональной полноте следует, что
этих не более чем пяти (т.к. некоторые из них могут совпадать) функций
хватит, чтобы породить все булевы функции. Их и извлечем из нашей полной
системы.