- •Введение………………………………………………………………………………………..1
- •1.Элементы функциональной полноты в классе двоичных функций.
- •1.1 Основные двоичные функции и их своства. Булевой функцией f(x1 … xn) называют функцию, аргументы которой принимают значения из множества , и значение функции также из множества {0;1}.
- •Бинарная операция ассоциативна, если тождественно выполняется: ;
- •1.2 Утверждение о числе функций от n переменных.
- •1.3 Представление функции в виде совершенной дизъюнктивной и совершенной конъюнктивной формах. Разложение функции по начальному множеству переменных.
- •1.4 Утверждение о представлении двоичной функции в виде полинома Жегалкина .
- •1.5 Основные замкнутые классы двоичных функций относительно суперпозиций функций.
- •X1 x2 X
- •I этап :
- •3 Случай :
- •II этап :
- •1); 2); 3); 4).
- •1) ; 2); 3);
- •4) ; 5);
- •1.7 Предполные классы двоичных функций.
- •Все полные системы для классов t0, t1, s, m, l в утверждениях выше являются базисами для этих систем.
- •2 .Минимизация днф заданной функции.
- •2.1 Геометрическая интерпретация двоичных функций.
- •2.2 Утверждение о максимальных интервалах и тупиковых покрытиях.
- •1 Этап:
- •2 Этап:
- •2.3 Метод поиска всех максимальных интервалов заданной функции с помощью операции склеивания и сокращения.
- •2.4 Метод нахождения всех тупиковых покрытий максимальными интервалами.
- •Достаточно ясна связь задачи нахождения тупиковых покрытий и минимизации функции покрытия.
- •2.5 Метод построения сокращённой д.Н.Ф. С помощью обобщенного склеивания
- •3. Элементы математической логики. Исчисление высказываний, его полнота.
- •Семь теорем.
- •2) . Запишем аксиому а3 в следующем виде: вместоВ подставим формулу а, а вместо а подставим
- •Доказательство полноты исчисления высказываний.
- •4 Графы
- •4.1 Неориентированные, ориентированные графы. Способы задания графов.
- •Представление графов
- •1. Задание графа с помощью матрицы смежности.
- •2. Задание графа с помощью матрицы инцидентности.
- •3. Задание графа с помощью списка смежности.
- •4.2 Азбука теории графов. Маршрут, путь, простой путь. Цикл. Простой цикл. Связность в графе.
- •Связные графы
- •4.3 Методы анализа графа. Поиск в ширину. Нахождение кратчайших путей в графе.
- •4.4 Поиск в глубину. Нахождение остовного дерева с помощью поиска в глубину.
- •4.5 Укладки графов. Планарные графы.
- •Теорема Эйлера
- •4.6 Критерий Понтрягина-Куратовского планарности графа.
- •4.7 Хроматическое число графа.
- •5 Элементы комбинаторики.
- •5.1 Упорядоченные наборы с повторением и без повторений.
- •5.2 Неупорядоченные наборы элементов изданных без повторений.
- •5.3 Неупорядоченные наборы элементов изп данных с возможными повторениями.
- •5.4 Метод включения-исключения.
- •Упражнения.
- •5.5 Основы метода производящих функций.
- •1324 0100.
- •5.6 Основы теории перечисления Пойа. Лемма Бернсайда.
- •Упражнения.
- •6 Основы схем из функциональных элементов. Проблема минимизации
- •6.1 Сложность мультиплексора порядка .
- •1) Мультиплексор порядка
- •6.2 Сложность дешифратора порядка n.
- •2) Дешифратор порядка .
- •6.3 Сложность универсального многополюсника.
- •3) Универсальный многополюсник.
- •6.4 Оценка сложности функций n переменных .
- •7. Элементы теории конечных автоматов.
- •7.1 Ограниченно- детерминированные функции и автоматные языки. Эквивалентность.
- •8. Элементы теории кодирования.
- •Теория кодирования.
- •8.1 Критерий однозначности кодирования.
- •8.2 Критерий префиксного кодирования Мак-Миллана.
- •1. Можно ли выразить конъюнкцию через дизъюнкцию и отрицание.
Упражнения.
1. Найти число ожерелий из пяти бусин трех цветов. Два ожерелья одинаковы, если одно на другого можно получить циклической перестановкой в плоскости.
2. Найти число раскрасок граней тетраэдра в четыре цвета. Два тетраэдра одинаковы, если один иа них можно получить из другого вращением в пространстве.
3. Найти число раскрасок ребер тетраэдра в четыре цвета. Два тетраэдра одинаковы, если один из другого можно получить вращениями в пространстве.
4. Найти число существенно различных булевых функций от трех переменных. Две функции одинаковы, если одну из другой можно получить переименованием переменных.
Ответы
К главе 1.
1) 2)3)4). 5). 6)7)8)8!=40320. 9) 5!=120. 10) 311)
12) 13)14)=252.
15) 16)17).
18) . 19). 20).
21) 22)23)24) 25) 26) 27) . 28) Порядок существенен: 5!; порядок не существенен:. 29)30)
31) . 32). 33)34)35)66660:3 (1111+2222+3333+4444). 36)33330. 37)11110. 38) 16665. 39) 12. 40) 864. 41) 2220. 42)43)44)45)
46) 47) а)
Разное.
1.
2.
3.
4. (6).
5.
6.
7.
8.
9.
10.
11. Ответ нужно поделить на 2.
К главе 2.
1.
2.
3.
4.
5.
К главе 4.
1.
2.
3.
4.
6 Основы схем из функциональных элементов. Проблема минимизации
схемы заданной функции.
Пример. Рассмотрим базовые элементы: . Задача состоит в построении схемы из данных элементов, которая вычисляет функцию суммы двух элементов по модулю ().
Рассмотрим представление функции в виде СДНФ. Рассмотрим следующий функциональный граф, вершинам которого поставлены в соответствие логические элементы.
Этот граф естественным образом вычисляет требуемую сумму . Каждая вершина совершает соответствующую ей логическую операцию. Таким образом, подавая на входы данной схемы определенные значения , на выходе получим требуемую сумму по .
Определение. Схемой из функциональных элементов называется последовательность элементов, где каждый элемент совершает определенную логическую операцию над результатами, ранее вычисленными операционными элементами.
Удобно графовое представление схемы из функциональных элементов. Рассмотрим ациклический ориентированный граф (ацикличность – отсутствие циклов).
В таком графе обязательно найдется хотябы одна вершина, в которой нет входящих ребер. Такую вершину назовем источником. Аналогично, в таком графе найдется хотябы одна вершина, в которой нет исходящих ребер. Такую вершину назовем стоком.
Причем, рассматривая ациклический граф, число входящих ребер в каждой вершине . Глубиной вершины в таком графе назовем длину максимального пути из источника к данной вершине. Если ребро в графе , то глубина вершины меньше глубины вершины ().
Каждой вершине поставим в соответствие функциональный элемент . Если у вершины входящих ребра, то это или , как элементы с входами. Если у вершины входящее ребро, то поставим в соответствие . Источникам поставим в соответствие переменные . В результате получим схему из функциональных элементов. Каждой вершине схемы соответствует определенная логическая функция от входных переменных , которая определяется индукцией по глубине вершин в схеме. Для источников это соответствующие тождественные функции. Пусть мы определили функции всех вершин, глубина которых , тогда рассмотрим вершины, глубина которых . Если вершине соответствует элемент , а соответствуют входам элемента, то выходу этого элемента соответствует .
Если вершине соответствует элемент , то получаем соответственно выход . если вершине соответствует элемент , то на выходе получаем отрицание входа.
Таким образом, каждая схема из функциональных элементов вычисляет набор функций от входных элементов , которые определены в стоках программы.
Определение. Сложностью схемы функциональных элементов называется число элементов в ней . Схема из любых других элементов строится подобным образом. Сложность схемы обозначим .
Определение. Сложностью логической функции будем называть следующую величину , где минимум берется по всем схемам, которые реализуют функцию , то есть минимальное число элементов “” “” “”, необходимое для реализации функции с помощью какой-либо схемы.
Определение. Сложностью класса функций K назовем величину
В дальнейшем нас будет интересовать сложность класса всех двоичных функций неболее чем от n :
Оценим сложность класса двоичных функций не более чем от переменных при больших n. Будем использовать следующие обозначения:
1) , если ;
2) если;
3) , если (“≲” – ассимптотически не превосходит).
Оценим сложность сумматора двух двоичных чисел.
Входами сумматора являются разрядов входных двоичных чисел, а выходами цифр , которые являются разрядами суммы. На рисунке показано подсхем блока, каждый блок соответствует вычислению определенного разряда суммы.
Входом i-ого блока являются входы -ых разрядов суммируемых чисел ( – вход -ого разряда -ого числа, – вход -ого разряда -ого числа), а также значение переносимого числа из предыдущего разряда. Выходом i-ого блока является значение двоичной суммы разрядов на входе , а также значение переносимого числа в очередной разряд.
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
1 |
0 |
1 |
0 |
0 |
1 |
1 |
0 |
1 |
1 |
0 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
1 |
1 |
0 |
0 |
1 |
1 |
1 |
1 |
1 |
1 |
Покажем, что общая сложность сумматора не более, чем линейная. Действительно, сумматор состоит из блоков, поэтому сложность сумматора не превышает (сложность реализации отдельного блока).
Отдельный блок зависит не более чем от -х входов и имеет выхода, тогда сложность реализации отдельного блока не более, чем const. Например, используя представление двоичной функции в виде СДНФ, выход определяется формулой:
Потребуется операции конъюнкции (“”), т.к. в СДНФ слагаемых, в каждом слагаемом операция “” выполняется раза. Операций дизъюнкций (“”) потребуется и операций отрицания (“”). Общее число элементов для реализации -ого выхода: , .
Оценим сложность реализации . Для этого будем использовать представление в виде СДНФ. имеет единицы, поэтому в СДНФ будет слагаемых, тогда число используемых элементов “” равно , “” – , “” – . Общее число элементов
, следовательно, суммарная сложность сумматора, построенного по СДНФ .
Оценим сложность двоичной функции не более чем от переменных.
При построении схемы, реализуем двоичную функцию не более чем от переменнх. Будем использовать следующие схемы: