Булевы функции
1. Булевы функции: определение. Количество булевых функций от n переменных. Способы задания булевых функций.
Определение: Булевой функцией (или функцией алгебры логики) от переменных называется функция , где аргументы и само значение функции принимают значения из множества . Отображение .
Количество булевых функций: Количество различных булевых функций от переменных равно .
- Для : функции.
- Для : функций.
Способы задания:
- Таблица истинности: Перечисление всех наборов значений аргументов и соответствующих им значений функции.
- Аналитический (формульный): Задание функции с помощью формулы, использующей логические операции (например, ).
- Векторный: Задание функции вектором значений (последний столбец таблицы истинности), при фиксированном порядке наборов.
- Графический: Использование карт Карно, диаграмм Эйлера-Венна или булева куба.
- Числовой: Задание номеров наборов (в десятичной системе), на которых функция принимает значение 1 (или 0).
2. Таблица истинности (ТИ) булевой функции.
Таблица истинности — это табличное представление булевой функции, в котором для каждого из возможных наборов значений переменных указано соответствующее значение функции.
Структура:
- Входные столбцы (): Содержат все возможные комбинации 0 и 1. Обычно наборы упорядочиваются лексикографически (как двоичные числа от 0 до ).
- Выходной столбец (): Содержит значения функции на этих наборах.
Пример (для функции ):
| x | y | f(x,y) | | --- | --- | ------ | | 0 | 0 | 0 | | 0 | 1 | 0 | | 1 | 0 | 0 | | 1 | 1 | 1 |
3. Основные функции: дизъюнкция, конъюнкция, импликация, эквивалентность, сложение по модулю два, стрелка Пирса, штрих Шеффера.
1. Конъюнкция (Логическое И, AND, , ): Равна 1 тогда и только тогда, когда оба аргумента равны 1.
2. Дизъюнкция (Логическое ИЛИ, OR, ): Равна 0 тогда и только тогда, когда оба аргумента равны 0.
3. Импликация (Следование, ): Равна 0 тогда и только тогда, когда (посылка истинна), а (следствие ложно).
4. Эквивалентность (Равносильность, , ): Равна 1, если значения аргументов совпадают ( или ).
5. Сложение по модулю 2 (Исключающее ИЛИ, XOR, ): Равна 1, если значения аргументов различны ( или ).
6. Штрих Шеффера (И-НЕ, NAND, ): Отрицание конъюнкции: . Равна 0 только при .
7. Стрелка Пирса (ИЛИ-НЕ, NOR, ): Отрицание дизъюнкции: . Равна 1 только при .
4. Булев куб. Развертка булева куба. Поиск функции по развертке.
Булев куб (): Геометрическая модель множества всех наборов значений переменных. Вершины куба соответствуют наборам из 0 и 1. Две вершины соединены ребром, если соответствующие наборы отличаются значением ровно одной координаты (расстояние Хэмминга = 1).
- : Отрезок (вершины 0 и 1).
- : Квадрат (вершины 00, 01, 10, 11).
- : Трехмерный куб.
Развертка булева куба: Представление -мерного куба на плоскости в виде графа или специальной диаграммы, сохраняющей отношение соседства вершин. Для и часто используется диаграмма, аналогичная карте Карно, где соседние клетки соответствуют соседним вершинам куба.
Поиск функции по развертке: Значения функции (0 или 1) приписываются соответствующим вершинам куба. Это позволяет визуализировать структуру функции, находить интервалы (склейки) и минимизировать функцию геометрическим методом.
5. Сравнимые и несравнимые наборы. Доминирующий набор.
Сравнимые наборы: Наборы и называются сравнимыми, если для всех выполняется (обозначается ) или для всех выполняется ().
- Пример: .
Несравнимые наборы: Наборы, для которых не выполняется ни одно из условий сравнения.
- Пример: и .
Доминирующий набор: В контексте пары , если и , то набор доминирует над (или предшествует ).
6. Существенные и фиктивные переменные: определение и способы нахождения.
Фиктивная переменная: Переменная называется фиктивной для функции , если значение функции не зависит от изменения этой переменной при любых значениях остальных переменных. Формально: для всех наборов остальных аргументов.
Существенная переменная: Переменная, которая не является фиктивной. То есть существует хотя бы один набор значений остальных переменных, при котором изменение меняет значение функции.
Способы нахождения:
- По таблице истинности: Сравнивать пары строк, где меняется только исследуемая переменная. Если значения функции в таких парах всегда совпадают — переменная фиктивная. Если есть хоть одно различие — существенная.
- Аналитический: Привести формулу к СДНФ или полиному Жегалкина. Если переменная входит в минимальную форму или полином — она существенная (с оговорками для некоторых форм, но для полинома Жегалкина это критерий).
- Метод остаточных функций: Разложить функцию по переменной: . Если , то фиктивна.
7. Основные равносильности: коммутативность, ассоциативность, дистрибутивность, законы де Моргана, формулы с константами.
1. Коммутативность:
2. Ассоциативность:
3. Дистрибутивность: (специфично для булевой алгебры)
4. Законы де Моргана (правила отрицания):
5. Действия с константами и идемпотентность: ; ; ; ; ; ; (двойное отрицание)
8. ДНФ, КНФ, СДНФ, СКНФ. Способы приведения функции к СДНФ, СКНФ.
ДНФ (Дизъюнктивная нормальная форма): Дизъюнкция элементарных конъюнкций (произведений). Пример: . КНФ (Конъюнктивная нормальная форма): Конъюнкция элементарных дизъюнкций (сумм). Пример: .
СДНФ (Совершенная ДНФ): ДНФ, в которой каждая конъюнкция содержит все переменных (в прямом или инверсном виде), и все слагаемые различны. СКНФ (Совершенная КНФ): КНФ, в которой каждая дизъюнкция содержит все переменных, и все множители различны.
Способы приведения к СДНФ/СКНФ:
- По таблице истинности:
- СДНФ: Выбираем наборы, где . Для каждого набора записываем конъюнкцию (если , пишем , если , пишем ). Все конъюнкции соединяем .
- СКНФ: Выбираем наборы, где . Для каждого набора записываем дизъюнкцию (если , пишем , если , пишем ). Все дизъюнкции соединяем .
- Равносильные преобразования:
- Привести к ДНФ/КНФ.
- Дополнить недостающие переменные, используя законы: для СДНФ и для СКНФ.
- Раскрыть скобки и удалить повторы.
9. Карты Карно. Склейка на карте Карно.
Карта Карно — графический способ представления булевой функции в виде таблицы, где ячейки расположены так, что соседние (по стороне) ячейки соответствуют наборам, различающимся только в одном разряде (код Грея).
- Левый и правый края, а также верхний и нижний считаются соседними (тор).
Склейка: Процесс объединения соседних ячеек с единицами (для ДНФ) в прямоугольные блоки размером (1, 2, 4, 8, 16 клеток).
- Каждый блок соответствует элементарной конъюнкции (импликанте), из которой исключаются переменные, меняющие свое значение внутри блока.
- Цель: покрыть все единицы минимальным количеством максимально больших блоков.
10. Ранг конъюнкции. Длина ДНФ.
Ранг элементарной конъюнкции: Количество литералов (переменных или их отрицаний), входящих в эту конъюнкцию.
- Пример: ранг равен 3.
Длина ДНФ: Количество элементарных конъюнкций (слагаемых), входящих в данную ДНФ.
- Иногда под сложностью ДНФ понимают суммарное количество литералов во всех конъюнкциях.
11. Минимальные, кратчайшие, сокращенные и тупиковые ДНФ.
Сокращенная ДНФ: Дизъюнкция всех простых импликант функции. Получается после выполнения всех возможных склеиваний и поглощений. Тупиковая ДНФ: ДНФ, полученная из сокращенной путем удаления некоторых простых импликант, так, что оставшиеся все еще покрывают функцию, но удаление любой другой импликанты нарушает покрытие. (Нельзя ничего выкинуть). Кратчайшая ДНФ: Тупиковая ДНФ, имеющая минимальную длину (число слагаемых). Минимальная ДНФ (МДНФ): Тупиковая ДНФ, имеющая минимальную сложность (суммарное число литералов / ранг). Часто понятия кратчайшей и минимальной объединяют или уточняют критерий минимизации.
12. Ядро булевой функции.
Ядро — это совокупность тех простых импликант, которые обязательно должны входить в любую тупиковую (и, следовательно, минимальную) ДНФ функции.
- Импликанта входит в ядро, если она покрывает хотя бы одну единицу функции, которую не покрывает ни одна другая простая импликанта.
13. Что такое функция Патрика.
Функция Патрика — это вспомогательная логическая функция, используемая для выбора минимального покрытия в методе Куайна-Маккласки (или по импликантной матрице). Она строится как конъюнкция дизъюнкций (КНФ), где каждая скобка соответствует одной единице исходной функции и содержит список импликант, покрывающих эту единицу.
- После раскрытия скобок и упрощения, кратчайший терм в ДНФ функции Патрика укажет на набор импликант для минимального покрытия.
14. Алгоритм нахождения МДНФ и КрДНФ.
- Получение сокращенной ДНФ: Найти все простые импликанты функции (методом склеивания/Блейка/карт Карно).
- Построение импликантной матрицы: Строки — простые импликанты, столбцы — конституенты единицы (наборы, где ).
- Выделение ядра: Найти столбцы с единственной меткой. Соответствующие импликанты образуют ядро и обязательно включаются в МДНФ.
- Покрытие оставшихся единиц: Для единиц, не покрытых ядром, выбрать минимальный набор оставшихся импликант, обеспечивающий покрытие (можно использовать метод Петрика или перебор).
- Выбор лучшего варианта: Из полученных тупиковых форм выбрать ту, что имеет минимальную сложность (для МДНФ) или длину (для КрДНФ).
15. Импликантная матрица. Порядок построения импликантной матрицы.
Импликантная матрица (таблица покрытий): Таблица, используемая для выбора минимального покрытия. Порядок построения:
- Столбцы матрицы помечаются всеми конституентами единицы (наборами из СДНФ) данной функции.
- Строки матрицы помечаются всеми простыми импликантами (из сокращенной ДНФ).
- В ячейке ставится метка (крестик/единица), если -я импликанта покрывает -ю конституенту (то есть конституента является частью интервала импликанты).
16. Нахождение ядра булевой функции с помощью импликантной матрицы.
- В построенной импликантной матрице ищем столбцы, в которых стоит ровно одна метка.
- Импликанты, соответствующие строкам, где находятся эти единственные метки, являются ядровыми.
- Они “спасают” соответствующие конституенты, которые больше никем не покрываются.
17. Полиномиальная нормальная форма (ПНФ) и СПНФ. Положительно поляризованный и отрицательно поляризованный полином.
ПНФ: Представление функции в виде суммы по модулю 2 конъюнкций переменных. (Аналог ДНФ, но с вместо и без отрицаний над всем выражением). Полином Жегалкина — это ПНФ, где переменные входят без отрицаний.
Поляризованный полином: Обобщение, где каждая переменная входит либо только как (положительная поляризация), либо только как (отрицательная поляризация) во всем полиноме.
- СПНФ (Совершенная ПНФ): Обычно синоним полинома Жегалкина (канонический полином), который существует и единственен для любой функции.
18. Полином Жегалкина. Способы построения полинома Жегалкина.
Полином Жегалкина: Сумма по модулю 2 элементарных конъюнкций над множеством переменных без инверсий.
Способы построения:
- Метод неопределенных коэффициентов: Записать общий вид полинома, подставить наборы значений переменных и решить систему линейных уравнений над полем GF(2).
- Преобразование ДНФ: Заменить на формулу , , раскрыть скобки и привести подобные (). Если ДНФ состоит из непересекающихся слагаемых (ОДНФ), то просто заменяется на .
- Метод треугольника (Паскаля): По вектору значений функции строится треугольник сумм по модулю 2. Левая боковая грань треугольника дает коэффициенты полинома.
19. Свойства булевых функций (Классы Поста). Полное множество булевых функций. Критерий Поста.
Классы Поста (Замкнутые классы):
- — функции, сохраняющие 0 ().
- — функции, сохраняющие 1 ().
- — самодвойственные функции ().
- — монотонные функции (если , то ).
- — линейные функции (представимы полиномом Жегалкина 1-й степени: ).
Полное множество (Функционально полная система): Множество функций, через которые можно выразить (реализовать суперпозицией) любую другую булеву функцию.
Критерий Поста: Система булевых функций полна тогда и только тогда, когда она целиком не содержится ни в одном из пяти предполных классов (). То есть в системе должна быть:
- хотя бы одна функция не из ,
- хотя бы одна не из ,
- одна не из ,
- одна не из ,
- одна не из .
Теория графов
1. Шесть способов представления графа. Дать определения всем используемым понятиям и привести примеры.
- Графический: Изображение вершин точками, ребер линиями.
- Множественный: Пара множеств , где — вершины, — список пар вершин (ребер).
- Матрица смежности: Квадратная матрица , где , если есть ребро , иначе 0.
- Матрица инцидентности: Матрица (вершины ребра). Для неориентированного графа: 1, если вершина инцидентна ребру. Для орграфа: 1 (начало), -1 (конец).
- Списки смежности: Для каждой вершины указывается список соседних вершин.
- Списки ребер: Просто список пар вершин, образующих ребра.
2. Связные и несвязные графы. Компоненты связности и бикомпоненты. Понятие слабой связности. Алгоритм поиска.
Связный граф (неориентированный): Граф, в котором между любой парой вершин существует путь (цепь). Несвязный: Граф, не являющийся связным. Компонента связности: Максимальный связный подграф.
Для орграфов:
- Сильно связный (бикомпонента): Существует путь как , так и для любых .
- Слабо связный: Граф связен, если заменить все дуги на неориентированные ребра.
Алгоритм поиска по матрице достижимости ():
- Бикомпоненты: . Единицы в строке матрицы указывают на вершины, входящие в одну сильную компоненту с .
- Компоненты связности: Используют транзитивное замыкание неориентированного графа или поиск в ширину/глубину.
3. Метод нахождения количества путей в орграфах по матрице смежности. Алгоритм построения матрицы достижимости. Алгоритм Флойда-Уоршелла.
Количество путей: Элемент матрицы (матрица смежности в степени ) равен количеству путей длины из вершины в вершину .
Матрица достижимости (): (булева сумма).
Алгоритм Флойда-Уоршелла: Динамический алгоритм для нахождения кратчайших путей (или просто достижимости) между всеми парами вершин. Пробегает от 1 до , пытаясь улучшить путь через промежуточную вершину : (для достижимости).
4. Деревья. Минимальные и максимальные покрывающие деревья. Алгоритмы Краскала и Прима.
Дерево: Связный граф без циклов. (Или связный граф с вершинами и ребрами). Остовное (покрывающее) дерево: Подграф, содержащий все вершины исходного графа и являющийся деревом. Минимальное остовное дерево (MST): Остов, сумма весов ребер которого минимальна.
Алгоритм Краскала:
- Сортируем ребра по весу.
- Берем ребро с мин. весом. Если оно не образует цикл с уже выбранными — добавляем в дерево.
- Повторяем, пока не наберем ребер.
Алгоритм Прима:
- Начинаем с произвольной вершины.
- На каждом шаге добавляем ребро минимального веса, соединяющее уже построенную часть дерева с вершиной, еще не входящей в дерево.
5. Эйлеровы пути и циклы. Критерий существования. Алгоритм Флёри. Задача китайского почтальона. Гамильтоновы пути и циклы. Критерии Дирака и Оре.
Эйлеров цикл: Цикл, проходящий по всем ребрам графа ровно по одному разу. Критерий: Граф связен и степени всех вершин четны. Эйлеров путь: Путь, проходящий по всем ребрам. Существует, если граф связен и нечетных вершин 0 или 2.
Алгоритм Флёри: Идем по ребрам, стирая их за собой. Не проходим по реберу-мосту, если есть альтернатива.
Задача китайского почтальона: Найти кратчайший замкнутый маршрут, проходящий через все ребра (допускаются повторы). Сводится к дублированию путей между нечетными вершинами.
Гамильтонов цикл: Цикл, проходящий через все вершины ровно один раз. Критерий Дирака (достаточный): , степень каждой вершины . Критерий Оре (достаточный): Для любых несмежных : .
6. Изоморфизм и гомеоморфизм графов. Полные и двудольные графы. Плоские и планарные графы. Формула Эйлера. Критерий Куратовского.
Изоморфизм: Графы и изоморфны, если существует биекция между их вершинами, сохраняющая смежность. (Графы одинаковы с точностью до переименования вершин). Гомеоморфизм: Графы гомеоморфны, если они могут быть получены из одного графа (подразделением ребер) — вставкой вершин степени 2 на ребра.
Полный граф (): Каждая пара вершин соединена ребром. Двудольный граф: Вершины разбиты на два множества, ребра идут только между множествами.
Планарный граф: Граф, который можно изобразить на плоскости без пересечения ребер. Плоский граф: Конкретное изображение планарного графа без пересечений.
Формула Эйлера (для связного плоского графа): (Вершины - Ребра + Грани = 2).
Критерий Куратовского (Понтрягина-Куратовского): Граф планарен тогда и только тогда, когда он не содержит подграфов, гомеоморфных (полный на 5) или (полный двудольный 3 на 3).\