МИНИСТРСТВО ОБРАЗОВАНИЯ РФ БЕЛГОРОДСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ИМ.В. Г. ШУХОВА РАБОЧАЯ ПРОГРАММА ДИСЦИПЛИНЫ ДИСКРЕТНАЯ МАТЕМАТИКА специальность 071900 информационные системы и технологии Факультет АПиИТ Кафедра ИТ Белгород 2003 Рабочая программа составлена на основании государственного стандарта и учебного плана, утвержденного ___________________________ Заведующий кафедрой__________________ «____»_______________________ Рабочая программа утверждена на заседании кафедры информационных технологий «___»_____________________ ПОЯСНИТЕЛЬНАЯ ЗАПИСКА Материал данного предмета используется при изучении дисциплин: "Математическая статистика", "Архитектура ЭВМ, систем и сетей", "Основы алгоритмизации и программирование". "Базы данных", "Автоматизированные системы", "Технология разработки программных продуктов", "Компьютерное моделирование". В результате изучения дисциплины студент должен: иметь представление: - о значении и областях применения данной дисциплины: знать: - основы теории множеств; - аппарат формул логики и теорию булевых функций; - логику предикатов и бинарных отношений; - теорию отображений; - методологию кодирования; методику генерирования основных комбинаторных объектов; - основы теории графов - выполнять операции над множествами, применять аппарат теории множеств для решения -задач: - строить таблицы истинности для формул логики и упрощать формулы логики; - представлять булевы функции в виде формул заданного типа, определять возможность выражения одних булевых функций через другие; - выполнять операции над предикатами, записывать области истинности предикатов, формализовыватъ предложения с помощью логики предикатов, - исследовать бинарные отношения на заданные свойства. - выполнять операции над отображениями, применять структурные особенности отображений для решения задам; - выполнять операции в алгебре вычетов: - применять простейшие коды для кодирования текстов; - доказывать утверждения с помощью метода математической индукции. - генерировать основные комбинаторные объекты; - находить характеристики графов, выделять структурные особенности графов исследовать графы на заданные свойства, применять аппарат теории графов для решения прикладных задач; - строить автоматы с заданными свойствами. Программа paccчитана на 85 часов, в том числе лекционных 51 час, практические занятия 34 часа. Распределение по семестрам: 2 семестр лекций 34 часа, практических занятий 17 часов; расчетно-графическое задание, зачет. 3 семестр лекций 17 часов, практических занятий 17 часов; расчетно-графическое задание, экзамен. ТЕМАТИЧЕСКИЙ ПЛАН ТЕМЫ 3.1 3.2 2 семестр Введение Раздел 1. Основы теории множеств. Раздел 2. Комбинаторика. Раздел 3. Формулы логики Основные логические операции. Формулы логики. Таблицы истинности. Законы логики. Упрощение формул логики с помощью равносильных преобразований конъюнк- Кол. Часов всего В т.ч. прак. 51 17 1 9 3 9 3 13 5 6 7 4.1 4.2 4.3 5.1 5.2 6.1 6.2 8.1 8.2 8.3 8.4 8.5 тивная и дизъюнктивная нормальные формы.(КНФ и ДНФ) Раздел 4. Булевы функции Булевы функции. Понятие булевой функции. Совершенная ДНФ. Представление булевой функции в виде минимальной ДНФ. Полнота множества функций. Важнейшие замкнутые классы. Теорема Поста. Раздел 5. Предикаты. Бинарные отношения. Предикаты. логика предикатов; синтаксис и семантика языка логики предикатов; принцип логического программирования; аксиоматические системы, формальный вывод; метатеория формальных систем; Бинарные отношения Раздел 6. Алгоритмические системы. Понятие алгоритмической системы. Рекурсивные функции. Машины Тьюринга. Алгоритмически неразрешимые проблемы; меры сложности алгоритмов; легко и трудноразрешимые задачи. 3 семестр Раздел 7. Элементы теории кодирования. Раздел 8. Основы теории графов. Понятие неориентированного графа. Теорема о сумме степеней вершин графа. Алгоритм фронта волны. Метрические характеристики графа. Двудольные графы Изоморфные графы. Эйлеровы и гамильтоновы графы. Плоские графы. Циклический ранг графа. Деревья. Всего по дисциплине 9 3 3 3 3 6 4 2 4 2 2 1 2 34 14 17 7 20 2 10 2 2 2 2 4 85 2 4 34 СОДЕРЖАНИЕ ДИСЦИПЛИНЫ ВВЕДЕНИЕ Студент должен: иметь представление: - о содержании предмета дискретной математики; - об основных задачах и областях применения дискретной математики. Предмет дискретной математики, его основные задачи и области применения Раздел 1. ОСНОВЫ ТЕОРИИ МНОЖЕСТВ Студент должен: знать - понятие множество. - понятие подмножество, формулу количества подмножеств конечного множества; - операции над множествами (объединение, пересечение, дополнение, разность, декартово произведение, декартова степень) и их свойства: - формул количества элементов в объединения нескольких (двух, трех) множеств; уметь: - применять теоретико-множественные диаграммы - выполнять операции над множествами; - решать задачи на подсчет количества элементов с использованием формулы количества элементов в объединении нескольких конечных множеств. Понятие множества Конечные и бесконечные множества, пустое множество. Подмножество, количество подмножеств конечного множества Теоретико-множественные диаграммы. Операции над множествами (объединение, пересечение, дополнение, теоретико-множественная разность в их свойства. Формула количества элементов в объединении двух. конечных множеств; соответствующая формула для трех множеств. Декартово произведение множеств. Декартова степень множества. Раздел 2. АЛГОРИТМИЧЕСКОЕ ПЕРЕЧИСЛЕНИЕ (ГЕНЕРИРОВАНИЕ) НЕКОТОРЫХ ВИДОВ КОМБИНАТОРНЫХ ОБЪЕКТОВ Студент должен знать: - понятие алгоритмическое перечисление {генерирование) элементов конечного множества; - принцип генерирования двоичных слов заданной длины в стандартном порядке следования и в порядке следования «коды Грея»; -- принцип генерирования перестановок заданной длины; -- принцип генерирования А- элементных подмножеств данного множества; - принцип генерирования всех подмножеств данного множества. уметь: - генерировать двоичные слова заданной длины в стандартном порядке следования; - генерировать двоичные слова заданной длины в порядке следования «коды Грея»; - генерировать элементы декартова произведения множеств; - генерировать перестановки заданной длины; - генерировать А- элементные подмножества данного множества; - генерировать все подмножества заданного множества. Понятие алгоритмическое перечисление (генерирование) элементов конечного множества. Генерирование двоичных слов заданной длины в стандартном порядке следования (повторение) Генерирование двоичных слов заданной длины Б порядке следования «коды Грея». Генерирование элементов декартова произведения множеств. Генерирование перестановок заданной длины. Генерирование К-элементных подмножеств данного множества. Генерирование всех подмножеств данного множества. Редел 3. ФОРМУЛЫ ЛОГИКИ Студент должен: знать: - основные логические операции; - понятие формула логика, понята: таблица истинности формулы логики? методику построения таблицы истинности, понятие тождественно-истинная формула. - понятие ДНФ, упрощенную методику построения таблицы истинности для ДНФ; - понятие равносильность двух формул логики я его свойства; - законы логики; - методику упрощения формул логики с помощью равносильных преобразовании; - методику проверки двух формул на равносильность; - соответствие между теоретико-множественными и логическими операциями; - методику проверки теоретико-множественных соотношений с помощью формул логики, уметь: - строить таблицу истинности для формулы логики; - строить таблицу истинности для ДНФ упрощенным методом. - упрощать формулы логики с помощью равносильных преобразований, - осуществлять проверку двух формул на равносильность; - проверять теоретико-множественные соотношения с помощью формул логики. Темя 3.1. Основные логические операции. Формулы логики. Таблица истинности. Дизъюнктивная нормальная ферма (ДНФ) Дизъюнктивная нормальная форма (ДНФ). Понятие высказывание. Основные логические операции (дизъюнкция, произведение (конъюнкция), импликация, эквиваленция, отрицание). Формулы логики. Таблица истинности и методика ее построения. Тождественноистинные формулы. Понятие элементарное произведение; понятие дизъюнктивная нормальная форма (ДНФ). Методика построения таблицы истинности дли ДНФ упрощенным методом. Тема 3.2, Законы логики. Упрощение формул логики с помощью равносильных преобразовывая Равносильные формулы; свойства. Законы логики. Методика упрощения формул логики с помощью равносильных преобразований. Методика проверки двух формул на равносильность с помощью их предварительного упрощения. Тема 2.3. Проверка теоретико-множественных соотношений с помощью формул логики Соответствие между теоретико-множественных и логическими операциями. Перевод теоретико-множественного выражения в соответствующую формулу логики. Методика проверки теоретико-множественных соотношений с помощью формул логики. Раздел 4 БУЛЕВЫ ФУНКЦИИ Студент должен : знать - понятие булев вектор, понятия соседний и противоположный булев вектор, - понятие единичный N-мерный куб, понятие булева функция и способы ее задании; - методику представления булевой функции в виде совершенной ДНФ; - методику представления булевой функции (N <= 3) в виде минимальной ДНФ графическим методом; - алгоритм Квайна (для случая N > 3); - методику упрощения формул логики до минимальной ДНФ; - операцию двоичного сложения и се свойства; - методику представления булевой функции в виде многочлена - пошлине выражение одних булевых функций через другие, - понятие полнота множества функций, ~ понятие замкнутый класс; - важнейшие замкнутые классы: Т 0, Т1, S. L, М (определение этих классов, методик проверки функции на принадлежность к этим классам); - теорему Поста; - понятие шефферовская функция; условие того, что функция является шефферовской; функции Шаффера и Пирса: уметь: - изображать единичный N-мерный куб (с разметкой вершин булевыми векторами) в случаях N =1, 2, 3; - представлять булеву функцию в виде совершенно» ДНФ; - представлять булеву функцию (N <=3) в виде минимальной ДНФ графическим методом; - представлять булеву функцию (N > 3) в виде минимальной ДНФ (или ДНФ, близкой к минимальной) с помощью алгоритма Квайна, - упрощать формулу логика до минимальной ДНФ; - представлять булеву функцию в виде многочлена Жегалкина; - проверять булеву функцию на принадлежность к классам Т 0, Т1, S,L,M; - проверять множество булевых функций на полноту (с помощью теоремы Поста); - определять, можно ли функцию f выразить через множество функций К в случаях: а) если множество К - полное, б) если все функции множества К принадлежат какому-либо замкнутому классу, а функция не принадлежит этому классу, - проверять, является ли функция шефферовской. Тема 4.1. Булевы векторы. Булева функция. Совершенная ДНФ Понятие булев вектор. Соседние векторы. Противоположные векторы. Единичный N-мерный куб. Понятие булева функция. Носитель булевой функции. Способы задания булевой функции Проблема представления булевой функции в виде формулы логики. Совершенная ДНФ Представление булевой функции в виде совершенной ДНФ. Тема 4.2. Представление булевой функции в виде минимальной ДНФ Характеристика ДНФ; понятие минимальная ДНФ. Соответствие между гранями единичного N-мерного куба и элементарными произведениями. Представление булевой функции (N <= 3) в виде минимальной ДНФ графическим методом. Алгоритм Квайна. (для случая N > 3) Упрощение формул логики до минимальной ДНФ (с учетом нового материала). Тема 4.3. Полнота множества функции. Важнейшие замкнутые классы. Теорема Поста Понятие выражение одних булевых функций через другие. Проблема возможности выражения одних булевых функций через другие. Полнота множества функций Замыкание множества функций. Понятие замкнутый класс функций. Важнейшие замкнутые классы: Т0 (класс функций, сохраняющих константу 0), Т\ (класс функций, сохраняющих константу 1), S (класс самодвойственных функций), L (класс линейных функций), М (класс монотонных функций) Теорема Поста, Шефферовские функции. Функция Шеффера и функция Пирса как простейшие шефферовские функции. Раздел 5. ПРЕДИКАТЫ. БИНАРНЫЕ ОТНОШЕНИЯ Студент должен: знать: - понятия предикат, область определения и область истинности предиката:, - операции над предикатами (обычные логические и кванторные); - понятия предикатная формула, свободная переменная и связанная переменная: - методику построения отрицаний к предикатам, содержащим кванторные операции; - понятия следование одного предиката из другого и равносильность предикатов; - понятия бинарное отношение, рефлексивное бинарное отношение, симметричное бинарное отношение, транзитивное бинарное отношение, отношение эквивалентности, теорема о разбиении множества на классы эквивалентности; уметь: - записывать область истинности: а) для элементарных предикатов от одной переменной; б) для элементарных предикатов от нескольких переменных; в) для предикатов, составленных из элементарных определять логическое значение («истинно - ложно») для высказывания типа: VxP(x), хР(х), хуР(х,у), xVyP(x,y); - выделять в предикатной формуле свободные переменные н связанные переменные; - записывать область истинности для предикатов, содержащих кванторные операции; - строить отрицания к предикатам, содержащим кванторные операции; - формализовывать предложения с помощью логики предикатов; - проверять два предиката на следование одного из другого н на равносильность; - строить диаграмму бинарного отношения; проверять бинарное отношение на рефлективность; симметричность, транзитивность; выделять классы эквивалентности (в случае, если бинарное отношение является отношением эквивалентности). Тема 5.1. Предикаты Понятие предикат. Область определения и область истинности предиката. Обычные логические операции над предикатами. Кванторные операции над предикатами. Понятие предикатная формула; свободные и связанные временные. Построение отрицаний к предиката», содержащим кванторные операции. Формализация предложений с помощью лотки предикатов. Следование одного предиката из другого; равносильность предикатов. Тема 5.2. Бинарные отношения Понятие бинарное отношение; примеры бинарных отношений. Диаграммы бинарного отношения. Рефлексивные бинарные отношения. Симметричные бинарные отношения. Транзитивные бинарные отношения. Отношения эквивалентности, теорема о разбиении множества на классы эквивалентности. Раздел 6. АЛГОРИТМИЧЕСКИЕ СИСТЕМЫ. Студент должен: знать - понятие алгоритма, - определение машины Тъюринга, - критерии разрешимости алгоритмов. уметь: - составлять простейшие программы для машины Тъюринга. Раздел 7. НЕКОТОРЫЕ ЭЛЕМЕНТЫ ТЕОРИИ И ПРАКТИКИ КОДИРОВАНИЯ Студент должен: иметь представление: - о задачах теория кодирования и областях ее применения; - об историческом аспекте развития теории пи практики кодирования; - о шифросистемах с «открытым ключом», их возможностях и приложениях; знать: - понятие кодирование, - алфавитное кодирование, - алгоритмы оптимального кодирования. уметь: - применять алгоритмы для кодирования текста: - - осуществлять декодирование по заданному коду, Понятие кодирование. Задачи теории кодирования и области ее применения. Краткий исторический обзор развития теории и практики кодирования. Алфавитное кодирование. Алгоритмы Фано и Хаффмена оптимального кодирования. Декодирование по заданному коду. Понятие о шифросистемах с «открытым ключом», их возможностях и приложениях Раздел 8. ОСНОВЫ ТЕОРИИ ГРАФОВ Студент должен: знать: - понятие неориентированный граф, основные определения, связанные с ним; - теорему о сумме степеней вершин графа; - формулу количества ребер в полном графе; - алгоритм фронта волны в графе; - методику выделения компонент связности в графе; - понятия мост и разделительная вершина; - понятия расстояние между вершинами к графе. - метрические характеристики графа и методику их нахождения; - понятие двудольный граф, методику распознавания графа на дву дельность; - понятие изоморфность, методику распознавания изоморфности двух графов; - понятие эйлеров граф, теорему Эйлера, методику нахождения эйлерова цикла в эйлеровом графе; - понятие гамильтоонов граф, некоторые теоремы о распознавании гамилътоновости (негамияьтоновости) графа; - понятие плоский граф, соотношения между количествами вершин, ребер и граней в плоском графе; - - теорему о неплоских графах, простейшие примеры неплоских графов; понятие циклический ранг графа, формулу его вычисления, критерий отсутствия циклов в графе; понятие дерево, свойства деревьев; формулу количества деревьев с заданными N-вершинами. как записать код Пруфера для деревьев с пронумерованными вершинами; понятие ориентированный граф (орграф) и основные определения, связанные с ним; теорему о сумме степеней входа (выхода) вершин орграфа; понятие достижимость вершин в орграфе, матрицу достижимости; понятие эквивалентность вершин в орграфе, диаграмму Герца, понятие сильно связный орграф; понятие бес контурный орграф, теорему о существовании источника и стока в бес котурном орграфе; уровневое представление бес контурного орграфа, методик решения задачи о последовательности с заданной системой условий; понятие эйлеров орграф, критерий эйлеривости орграфа, методику нахождения эйлерова цикла в эйлеровом орграфе; понятие гамильтонов орграф; теорему о существовании гамилыпонова пути в односторонне-полном орграфе; понятие ориентированное дерево и его ярусное представление; понятие бинарное дерево; понятие дисбаланс вершины в бинарном дереве; сущность кодирования бинарных деревьев; понятие бинарное дерево сортировки, методику его построения, использование его для организации хранения и поиска информации; уметь: - записывать матрицу смежности для графа; - находить количество ребер в графе (с помощью теоремы о сумме степеней вершин графа); - выделять компоненты связности в графе; - определять, является ли данное ребро мостом иди является ли данная вершина разделительной; - находить расстояние между двумя вершинами в графе; - находить эксцентриситеты вершин, радиус н диаметр графа; - распознавать, является ли тайный граф двудольным; - распознавать, являются ли два данных графа изоморфными (в простейших случаях); - распознавать, является ли данным граф эйлеровым; находить эйлеров цикл в эйлеровом графе; - распознавать, является як данный граф гамильтововым (в простейших случаях); - распознавать, является ли данный граф плоским (в простейших случаях); - вычислять циклический ранг графа; - записывать для дерева с пронумерованными вершинами его код Пруфера; - восстанавливать по коду Пруфера дерево с пронумерованными вершинами; - записывать матрицу смежности для орграфа, находить степени входа и выхода вершин, выделять в орграфе источники и стоки; - находить множество достижимости вершины в орграфе, записывать матрицу достижимости орграфа; - выделять классы эквивалентных вершин в орграфе, строить для оргафа его диаграмму Герца; - строить для бесконтурного орграфа его уровноюе представление, решать задачу о последовательности заданной системой условий; - распознавать, является ли данный орграф эйлеровым; - находить эйлеров цикл в эйлеровом орграфе; - находить гамилыонов путь в односторонне-полном орграфе (в простейших случаях); - представлять ориентированное дерево в ярусном виде; - использовать ориентированные деревья для представления системы вариантов (строить дерево вариантов), - находить дисбаланс вершины в бинарном дереве; Тема 8.1. Понятие неориентированный граф. Основные определения. Теорема о сумме степеней вершин грифа Понятие сориентированный граф. Способы задания графа. Матрица смежности. Подграф. Полный граф. Путь в графе. Цикл в графе. Связный граф; компоненты связанности графа. Степень вершины Теорема о сумме стелемся вершин графа. Формула количества ребер в полном графе. Тема 8.2. Алгоритм фронта волны. Метрические характеристики графа. Двудольные графы Двудольные графы Алгоритм фронта волны в графе. Методика выделения компонент связности в графе. Мосты н разделительные вершины. Расстояние между вершинами в графе, определение, свойства, методика нахождения. Эксцентриситет вершины. Радиус и диаметр графа. Центральные вершины. Двудольные графы Методика распознавания двудольных графов Полный двудольный граф. Тема 8.3. Изоморфны графы Определение изоморфности двух графов. Методика распознавания изоморфности (неизоморфности} двух графов. Тема 8.4. Эйлеровы и гамиль тошшы графы Эйлеров граф. Теорема Эйлера (критерии эйлеровости графа). Алгоритм нахождения эйлерова цикла в эйлеровом графе. Гамильтонов граф. Некоторые теоремы о распознавании гамильтоновости) графа. Тема 8.5. Плоские графы Понятие плоский граф. Грани плоской укладки плоского графа. Соотношения между количествами вершив, ребер и граней в плоском графе. Теорема о неплоских графах. Примеры неплоских графов. Тема 8.6. Циклический ранг графа. Деревья. Код Пруфера Циклический ранг графа: определение и вычислительная формула. Критерий отсутствия циклов в графе. Деревья к их свойства. Деревья с пронумерованными вершинами. Формула количества деревьев с заданными Nвершинами. Кодирование деревьев с пронумерованными вершинами (код Пруфера) Тема 8.7 Понятие ориентированный граф (орграф). Основные определения Понятие ориентированный граф {орграф) Способы задания орграфа. Матрица смежности для орграфа. Степень входа и степень выхода вершины. Источник Сток. Теорема о сумме степенней входа (выхода) вершин орграфа. Ориентированный путь. Ориентированный цикл (контур). Односторонне-полный орграф. Тема 8.8. Достижимость вершин в орграфе. Диаграмма Герца Понятие достижимость одной вершины из другой вершины в орграфе. Множество достижимости вершины. Матрица достижимости. Эквивалентность (взаимодостижимость) вершин в орграфе; свойства. Классы эквивалентности вершин. Диаграмма Герца. Сильносвязный орграф. Тема 8.9. Бесконтурный орграф. Уровневое представление бесконтурного орграфа. Понятие бесконтурный орграф. Теорема о существовании источника и стока в бесконтурном орграфе. Уровневое представление бесконтурного орграфа. Методика решения задачи о последовательности с заданной системой условий (о возможности зашей элементов заданного множества в виде последовательности с учетом заданной системы условий типа «элемент а ДОЛЖЕН находиться в последовательности раньше элемента в»). Тема 8.10. Эйлеровы и гамильтоновы орграфы Эйлеров орграф. Критерий эйлеровости орграфа. Методика нахождения эйлерова цикла в эйлеровом орграфе. Гамильтонов орграф. Теорема о существовании гамильтонова пути в односторонне-полном орграфе. Темя 8.11. Ориентированные деревья. Бинарные деревья и их использование для организации хранения и поиска информации Понятие ориентированное дерево. Условное представление ориентированного дерева, высота ориентированного дерева Использование ориентированных деревьев для представления системы вариантов (дерево вариантов). Понятие бинарное дерево. Дисбаланс вершины в бинарном дереве. Кодирование бинарных деревьев. Понятие бинарное дерево сортировки. методика его представления для заданной последовательности поступающих элементов, использование его для организации хранения и поиска информации. Литература. 1. Березина Л.Ю. Графы и их применение. – М.: Просвещение, 1979. 2. Берж К. Теория графов и ее применения. – М.: ИЛ, 1962. 3. Булос ДЖ., Джеффри Р. Вычислимость и логика. М.; Мир, 1994. 4. Виленкин Н. Я. Комбинаторика. М.; Наука, 1969. рилов Г.П., Сапоженко А.А. Задачи и упражнения по курсу дискретной математики. – М.: Наука, 1992. 6. Гиндикин С.Г. Алгебра логики в задачах. – М.: Наука, 1972. 7. Горбатов В.А. Основы дискретной математики. – М.: Высшая школа, 1987. 8. Грэхем Р., Кнут Д, Поташник О. Конкретная математика. Основание информатики. М. – Мир, 1998. 9. Евстигнеев В.А. Применение теории графов в программировании. – М.: Наука, 1985. 10. Зыков А.А. Основы теории графов. – М.: Наука, 1987. 11. Кемени Дж., Смелл Дж., Томпсон Дж. Введение в конечную математику. – М.: ИЛ, 1963. 12. Кузнецов О.П., Адельсон-Вельский Г.М. Дискретная математика для инженера. М.: Энергия, 1980. 13. Линский В. Комбинаторика для программистов. – М.: Мир, 1988. 14. Ломазова И. А. Дискретная математика. Математические основы обработки информации. Учеб. пособие.ЯГУ. Ярославль, 2000. 15. Мальцев А. И. Алгоритмы и рекурсивные функции. М. – Наука, 1965. 16. Мелехов А.Н. Ориентированные графы и конечные автоматы. – М.: Наука, 1971. 17. Нефедов В.Н., Осипова В.А. Курс дискретной математики. – М.: Изд-во МАИ, 1992. 18. Никольская И.Л. Математическая логика. – М.: Высшая школа, 1981. 19. Новиков Ф. А. Дискретная математика. – С-Пб.: Питер, 2001. 20. Ттрахтенброт Евстигнеев В.А. Применение теории графов в программировании. – М.: Наука, 1985. школа, 1981. 21. Яблонский С.В. Введение в дискретную математику. – М.: Наука, 1986.