Программа курса «Методы дискретного анализа в информатике». I. Организационно-методический раздел. 1.1. Данный курс реализуется в рамках направления 552800 "Информатика и вычислительная техника" и относится к вузовской компоненте раздела "специальные дисциплины" государственного стандарта. Основной целью освоения дисциплины является изучение теоретического материала и основных алгоритмов в двух разделах дискретного анализа - комбинаторике и теории графов. Для достижения поставленной цели выделяются задачи курса по освоению методов комбинаторики и теории графов и применении их в программировании. 1.2.По окончании изучения указанной дисциплины студент должен – иметь представление об основных комбинаторных объектах; – знать основы комбинаторики и теории графов; – уметь применять методы комбинаторики и теории графов для описания и обоснования важнейших алгоритмов над объектами дискретной математики. 1.4. Для контроля усвоения дисциплины учебным планом предусмотрены 2 зачета, дифзачет и экзамен. Для текущего контроля предусмотрены 2 контрольные работы, коллоквиум и решение задач по индивидуальным заданиям. 2. Содержание дисциплины. 2.1. Настоящий курс является продолжением основного курса "Методы дискретной математики", читаемого студентам ФИТ НГУ во втором и третьем семестрах. В нем продолжено изучение двух основных разделов дискретной математики: теории графов и комбинаторики. Наряду с теоретическими знаниями дается описание важнейших алгоритмов над объектами дискретной математики. Новизной курса является объединение этих двух направлений. Освещаемые разделы отсутствуют в других курсах. 2.2.Тематический план курса (распределение часов). Количество часов Наименование разделов Лаборатор Самостояте и тем Лекци Семина ль-ная и ры ные работа работы Теория графов 36 36 Комбинаторика 32 32 Итого по курсу: 68 68 Всег о Часо в 72 64 136 2.3.Содержание отдельных разделов и тем. Теория графов. Графы. Основные определения. Операции над графами. Представление графов в ЭВМ. Алгоритм поиска в ширину. Алгоритм поиска в глубину с внешней памятью. Алгоритм поиска в глубину без внешней памяти. Дерево поиска и обратные дуги. Алгоритм поиска в глубину для ориентированных графов. Связность. Оценки числа ребер графа порядка n с k компонентами связности. Алгоритм поиска всех компонент связности. Характеризация точек сочленения. Характеризация мостов. Характеризация двусвязных графов. Алгоритм нахождения точек сочленения и блоков. bc-деревья. Связность в орграфах. Топологическая сортировка. Алгоритм определения сильно связных компонент орграфа. Граф конденсации. Транзитивное замыкание. Матрица достижимости. Алгоритм Уоршала. Поиск кратчайших путей. Алгоритм Флойда. Циклы и разрезы. Векторные пространства циклов и коциклов. Размерность и ортогональность этих пространств. Алгоритм отыскания фундаментального множества циклов. Алгоритм порождения всех контуров орграфа. Вершинная независимость. Оценки числа вершинной независимости. Алгоритм построения всех максимальных независимых множеств. Реберная независимость. Паросочетания в двудольных графах. Теорема Фробениуса. Эквивалентность теорем Кенига, Холла и Фробениуса. Алгоритм построения паросочетаний в двудольных графах: венгерский метод. Алгоритм Эдмондса построения наибольшего паросочетания в произвольном графе. Теория потоков. Теорема Форда-Фалкерсона о максимальном потоке и минимальном разрезе. Связь с теоремой Менгера. Алгоритм Форда-Фалкерсона. Алгоритм Эдмондса и Карпа. Алгоритм Диница. Комбинаторика. Алгоритм порождения перестановок в лексикографическом порядке. Векторы инверсий. Вложенные циклы. Порождение перестановок в порядке минимального изменения. Алгоритмы порождения подмножеств конечного множества. Коды Грея. <m,n>-нумерации. Алгоритмы порождения k-подмножеств. Код Грея для k-подмножеств. Композиции целых чисел. Алгоритмы порождения разбиений целых чисел. Некоторые классические символьные последовательности и способы их задания. Последовательность Туэ-Морса. Последовательность Аршона. Подслова и фрагменты. Последовательности де Брёйна. Универсальные слова. Рекуррентные конструкции слов. Фрактальные конструкции. Слова с запрещенными подсловами. Блокирующие множества слов и достоверные свойства символьных последовательностей. Критерий блокируемости. Алгоритмы распознавания блокируемости. Теорема Ван дер Вардена. Комбинаторная сложность слов. Функции роста языка подслов. Графы де Брёйна и их свойства. Графы подслов. Задача о сборке слов. Аддитивная сложность символьных последовательностей. Суффиксная сложность и различные ее модификации. Алгоритмы вычисления сложностных характеристик символьных последовательностей. 3. Учебно-методическое обеспечение дисциплины 3.2.Образцы вопросов для подготовки к экзамену. Вопросы для подготовки к экзамену соответствуют содержанию разделов и тем. 3.3. Список основной и дополнительной литературы. 1. Г.П. Гаврилов, А.А. Сапоженко, Задачи и упражнения по курсу дискретной математики, Наука, 1992. 2. В.А. Евстигнеев, Л.С. Мельников, Задачи и упражнения по теории графов и комбинаторике, Новосибирский государственный университет, 1981. 3. В.А. Емеличев, О.И. Мельников, В.И. Сарванов, Р.И. Тышкевич, Лекции по теории графов, Наука, 1990. 4. Н. Кристофидерс, Теория графов: алгоритмический подход, Мир, 1978. 5. Ф.А. Новиков, Дискретная математика для программистов, Издательский дом "Питер", 2001. 6. Х. Пападимитриу, К. Стайглиц, Комбинаторная оптимизация. Алгоритмы и сложность. М.: Мир, 1985. 7. Э. Рейнгольд, Ю. Нивергельд, Н. Део, Комбинаторные алгоритмы, теория и практика, Мир, 1980. 8. Ф. Харари, Теория графов, Мир,1973. Программу подготовил: к.ф.-м.н. Пережогин А.Л. Программа утверждена на заседании Ученого совета факультета информационных технологий Новосибирского государственного университета 18 декабря 2003 г., протокол заседания №16. Декан ФИТ НГУ, д.ф.-м.н. М.М.Лаврентьев