- •Введение
- •1. Элементы теории множеств
- •1.1.Понятие множества.
- •1.2. Способы задания множеств.
- •1.3. Свойства множеств.
- •1.4. Конечные и бесконечные множества.
- •1.5. Подмножества.
- •1.6. Множество как абстракция.
- •1.7. Операции над множествами.
- •1.8.Декартово произведение множеств
- •1.9. Контрольные задания
- •2. Отношения
- •2.1. Общие положения
- •2.2. Задание отношений.
- •2.3. Виды отношений.
- •2.3.1. Рефлективность.
- •2.3.2. Симметричность.
- •2.3.3. Транзитивность.
- •2.4. Отношение эквивалентности
- •2.5. Функция.
- •2.6. Отношение как базовое понятие в реляционных
- •2.7. Контрольные задания
- •3. Элементы алгебры логики
- •3.1. Силлогизмы Аристотеля.
- •3.2. Высказывания.
- •3.3. Исчисление высказываний и
- •3.4. Функции алгебры логики
- •3.5. Равносильности алгебры логики
- •3.6. Одна логическая задача
- •3.7. Реализация функций в элементных базисах
- •3.9. Совершенная конъюнктивная нормальная форма
- •3.10. Реализация операции суммирования в компьютере
- •3.11. Контрольные задания
- •4. Элементы теории графов
- •4.1. История возникновения
- •4.2. Основные понятия
- •4.3. Матрицы графа
- •4.4. Деревья
- •4.5. Раскраска
- •5. Элементы теории алгоритмов
- •5.1. Интуитивное понятие алгоритма
- •5.2. Свойства алгоритмов
- •5.3. Вычислительные и комбинаторные алгоритмы
- •5.5. Асимптотические оценки сложности алгоритма
- •Порядки сложности алгоритма
- •5.6. Комбинаторный взрыв
- •6. Полиномиальные алгоритмы
- •6.1. Построение минимального остовного дерева.
- •6.1.1. Жадный алгоритм
- •6.1.2. Алгоритм Прима
- •6.2. Контрольные задания
- •7. Эвристические алгоритмы
- •7.1. Алгоритм последовательной раскраски
- •7.2. Контрольные задания
- •8. Сетевое планирование
- •8.1. Основные понятия
- •8.2 Параметры сетевого планирования
- •8.3. Вычисление параметров сетевого графика
- •8.4. Контрольные задания
- •9. Элементы абстрактной теории автоматов
- •9.1. Определение абстрактного автомата
- •9.2. Методы задания автоматов
- •9.3. Связь между моделями Мили и Мура.
- •9.4.1. Преобразование автомата Мура в автомат Мили
- •9.4.2. Преобразование автомата Мили в автомат Мура
- •9.5. Контрольные задания
- •10. Уточнение понятия алгоритма
- •10.1. Машина Тьюринга
- •Для каждого алгоритма u из класса к1 существует равносильный ему алгоритм l из класса к2.
- •10.2. Нормальный алгоритм Маркова
3.7. Реализация функций в элементных базисах
Устройства, реализующие элементарные булевы функции, называют логическими элементами. Их входы соответствуют булевым переменным, а выход - реализуемой функции. На рис.3.7 изображены различные типы логических элементов.
x 2 x2
а) "НЕ" б) "И" в) "ИЛИ"
x1
x2
x1
x2
x1x2
x1x2
Г) «И-НЕ» д) «ИЛИ-НЕ»
Рис. 3.7. Типы логических элементов
Из логических элементов конструируют логические схемы. Они образуются объединением полюсов логических элементов. Естественно, что множество логических элементов должно быть таким, чтобы из них можно было построить схему для любой логической функции. Такое множество элементов называют базисом.
Базисами являются:
классический базис {НЕ, И, ИЛИ};
базисы шефферовского типа - {И-НЕ} и {ИЛИ-НЕ}.
Рассмотрим, например, реализацию в классическом базисе функции "сложение по модулю два" для двух переменных:
f (х 1, х
2) = х 1
х 2
= х 1 х 2
v х 1
х 2
Таблица истинности функции представлена таблицей 3.10, а логическая схема изображена на рис.3.8.
Таблица 3.10
X1 |
X2 |
X1 |
X2 |
X1∙ X2 |
X1∙ X2 |
X1+X2 |
0 1 0 1 |
0 1 0 1 |
1 1 0 0 |
1 0 1 0 |
0 1 0 0 |
0 0 1 0 |
0 1 1 0
|
Рис.3.8. Логическая схема функции
f = x1 x2 в классическом базисе
Для реализации этой схемы потребовалось 5 логических элементов - 2 элемента "НЕ", 2 элемента "И" и один элемент "ИЛИ". Для реализации такой же функции в базисах шефферовского типа требуется 6 логических элементов. Для базиса "ИЛИ-НЕ" логическая схема показана на рис.3.9.
x
1
x1
x2
x2 x1 x2
Рис. 3.9. Логическая схема функции
f = x1 x2 в базисе "ИЛИ-НЕ"
Эквивалентные преобразования имеют следующий вид:
х
1
х1
х2 = х1
( х1 х2
) = х1 ( х1
х2 ) = х1
х1 х1
х2 = 0
х1 х2 =
= х1 х2
(
х1 х2 )
х2 = ( х1
х2 )
х2 = ( х1
х2 ) х2 =
х1 х2
х2
х2 = х1
х2
0 = х1 х2
х
1
х2 х1
х2 = х1
х2 х1
х2 = ( х1
х2 ) (
х1 х2 )
= ( х1 х2 )
( х1
х2 ) = х1 х1 х1 х2 х2 х1 х2 х2 = 0 х1 х2 х1 х2 0 = х1 х2 х1 х2
х
1
х2 х1
х2 = ( х1
х2) (
х1 х2) =
( х1
х2) (
х1
х2) =( х1
х1 х1
х2
х2 х1 х2 х2) = 0 х1 х2 х1 х2 0 = х1 х2 х1 х2 = х1 х2
В этих преобразованиях использовались, в основном, законы де Моргана.
Количество логических элементов в логической схеме зависит от сложности булевой функции. Поэтому с помощью эквивалентных преобразований стараются ее упростить - минимизировать в ней число логических элементов, а затем уже реализовать в каком-либо элементном базисе. Область науки, которая изучает эти вопросы, называется теорией логического синтеза дискретных устройств.
Для технической реализации получившегося после этапа логического синтеза решения применяют технический синтез. На этом этапе решаются три задачи: компоновки, размещения и трассировки.
На этапе компоновки логическая схема разбивается на части и размещается по корпусам микросхем. Размещение стараются выполнить таким образом, чтобы минимизировать число связей между корпусами.
На этапе размещения корпуса микросхем располагают на многослойной печатной плате, а на этапе трассировки между контактами микросхем проводят электрические соединения. При этом стараются минимизировать число пересечений между проводниками.
x1
x2
x2 x1
Рис.3.10. Пересечение связей
На рис.3.10 полюса логических элементов жестко закреплены на печатной плате. Поэтому трассировку связей х1 - х1 и х2 - х2 следует проводить в различных слоях печатной платы.
Возможно иное решение задачи. Пересечение двух связей можно реализовать в виде логической схемы - (2,2) - полюсника (рис.3.11а). При этом логические элементы можно расположить на плоскости таким образом, чтобы связи между ними не пересекались. Минимальная схема, как в классическом, так и в базисе шефферовского типа содержит 8 логических элементов
( рис 3.11б). Поэтому логические схемы, в которых пересечения замещены подобными "плоскими" (2,2) - полюсниками, обладают большой элементной избыточностью и на практике не применяются.
x1
x2
x1
x2
x2
x1
x2 x1
а) схема (2,2) - полюсника б) реализация в базисе ИЛИ - НЕ
Рис.3.11. Плоская реализация пересечения
Пример. Дана функция f = .
Реализовать
функцию f в классическом базисе {
}и
базисе шефферовского типа {
}.
Дан базис { }.
X
1
f
X
2
X
3
2
.Для
реализации функции f в базисе {
}
обозначим f1=X1, f2=
,
f3=
.
Получим f=
.
Тогда “хвост” схемы будет иметь
следующий вид:
f
Д
ействительно,
.
Инвертируя получим функцию f. Схема будет иметь следующий вид.
1
f
X 2
X
3
3.8. Совершенная дизъюнктивная нормальная форма
X , если
>1
Положим,
что
,
если
=0
{0,1}.
Представление
функции алгебры логики в виде
f=(X1,X2,…Xn)=
называется совершенной дизъюнктивной
нормальной формой (СДНФ).
Алгоритм перехода от табличного задания функции к СДНФ
Выбрать в таблице задания функции все наборы аргументов, на которых функция обращается в единицу.
Выписать конъюнкции, соответствующие этим наборам аргументов, с учетом значений аргументов.
Соединить полученные конъюнкции операцией дизъюнкция.
Пример.
X1 |
X2 |
X3 |
f(X1,X2,X3) |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
0 |
0 |
1 |
1 |
1 |
1 |
0 |
0 |
1 |
1 |
0 |
1 |
0 |
1 |
1 |
0 |
1 |
1 |
1 |
1 |
0 |
f=
Таким
образом, логическая функция полностью
определена совокупностью единичных
наборов значений аргументов. Функцию
f можно определить и через нулевые
наборы:
f=
