Скачать 230.83 Kb.
|
Правительство Российской Федерации Федеральное государственное автономное образовательное учреждение высшего профессионального образования "Национальный исследовательский университет "Высшая школа экономики" Факультет бизнес-информатики Программа дисциплины Построение и анализ алгоритмов для направления для направления 231000.62 «Программная инженерия» подготовки бакалавра Автор программы: Морозенко В.В., доцент, к.ф.-м.н., v.morozenko@mail.ru Одобрена на заседании кафедры информационных технологий в бизнесе «___»_________201 г. Зав. кафедрой О.Л.Викентьева _______________________ Утверждена Учебно-методическим Советом НИУ ВШЭ - Пермь «___»_____________201 г. Председатель Г.Е. Володина ________________________ Пермь, 2012 Настоящая программа не может быть использована другими подразделениями университета и другими вузами без разрешения кафедры-разработчика программы. 1Область применения и нормативные ссылкиНастоящая программа учебной дисциплины устанавливает минимальные требования к знаниям и умениям студента и определяет содержание и виды учебных занятий и отчетности. Программа предназначена для преподавателей, ведущих данную дисциплину, учебных ассистентов и студентов направления подготовки 231000.62 «Программная инженерия», изучающих дисциплину «Построение и анализ алгоритмов». Программа разработана в соответствии с: Образовательным стандартом НИУ ВШЭ по направлению подготовки 231000.62 «Программная инженерия» (протокол от 02.07.2010 г. № 15); Образовательной программой направления подготовки 231000.62 Программная инженерия; Рабочим учебным планом университета по направлению подготовки 231000.62 Программная инженерия, утвержденным в 2012г. 2Цели освоения дисциплиныЦелью дисциплины «Построение и анализ алгоритмов» является изучение основных приемов и методов, используемых при разработке и анализе математических моделей и алгоритмов для решения сложных прикладных задач. Освоение дисциплины должно обеспечить базовые знания, которые дадут возможность выпускнику успешно работать в сфере организации процессов жизненного цикла ИС и ИКТ, аналитической поддержки процессов принятия решений для управления предприятием, обладать универсальными и предметно-специализированными компетенциями, способствующими его социальной мобильности и устойчивости на рынке труда. Программа дисциплины нацелена на формирование организованности, трудолюбия, ответственности, способности к саморазвитию, повышению своей квалификации и мастерства. Содержание программы дисциплины «Построение и анализ алгоритмов» должно обеспечить базовую подготовку студентов в процессе формирования устойчивых теоретических знаний и практических навыков разработки и анализа математических моделей для дальнейшей учебной, научной и профессиональной деятельности. Для достижения поставленной цели при изучении дисциплины решаются следующие задачи: – познакомить студентов с основными классами алгоритмов, их математическими моделями; – дать знания о существующих эффективных алгоритмах для решения наиболее известных задач комбинаторной оптимизации, об их сложности и требованиям к памяти; – познакомить с классификацией оптимизационных задач и алгоритмов для их решения, особенностями задач комбинаторной оптимизации большой размерности; – дать представление о методах анализа сложности алгоритмов и доказательства их корректности. Курс призван повысить общую эрудицию студентов, дать им возможность ориентироваться в данной предметной области, подготовить к применению теоретических знаний при решении различных задач оптимизации, при изучении и разработке средств поддержки принятия решений. Студенты должны получить знания о существующих эффективных алгоритмах, используемых в теории расписаний, методах их разработки и анализа в объеме, достаточном для успешного изучения курсов «Оптимизация и математические методы принятия решений», «Распределенные алгоритмы и параллельное программирование». Изучение данной дисциплины углубляет знания, полученные студентами при изучении курсов «Информатика и программирование» и «Дискретная математика». 3Компетенции обучающегося, формируемые в результате освоения дисциплиныВ результате освоения дисциплины студент должен: Знать: – о различных методах классификации существующих алгоритмов; – наиболее известные алгоритмы для работы с различными структурами данных; – точные и приближенные подходы к решению типовых задач, возникающих в области программной инженерии; – особенности точных, приближенных, эвристических, переборных, «жадных» алгоритмов. Уметь: – анализировать существующие алгоритмы с точки зрения их эффективности и применимости для решения прикладных задач; – разрабатывать новые алгоритмы для решения конкретных задач в области программной инженерии; – оценивать сложность разработанных алгоритмов и обосновывать их корректность. Иметь навыки (приобрести опыт): – применения известных и разработки собственных алгоритмов для решения практических задач с учетом требований к точности, времени работы алгоритма и вычислительным ресурсам; – формализации и разработки математических моделей и алгоритмов для решения конкретных практических проблем в сфере программной инженерии или их сведения к известным модельным задачам. В результате освоения дисциплины студент осваивает следующие компетенции:
4Место дисциплины в структуре образовательной программыНастоящая дисциплина относится к циклу математических и естественно научных дисциплин. Изучение данной дисциплины базируется на следующих дисциплинах:
Для освоения учебной дисциплины, студенты должны владеть следующими знаниями и компетенциями:
Основные положения дисциплины должны быть использованы в дальнейшем при изучении следующих дисциплин:
5Тематический план учебной дисциплиныДополнительные разделы комбинаторики
6Формы контроля знаний студентов
Критерии оценки знаний, навыков При выполнении контрольной работы студент должен продемонстрировать знания основных понятий и алгоритмов из соответствующего раздела учебного курса, умения применять указанные алгоритмы для решения предложенных задач и обосновывать корректность полученных решений. Количество задач в контрольных работах – от 6 до 8. Каждая задача оценивается в 1-2 балла, так что общая сумма баллов равна 10. При выполнении домашнего задания студент должен продемонстрировать знания основных понятий и алгоритмов из соответствующего раздела учебного курса, умения самостоятельно изучать учебную литературу и применять полученные знания при решении предложенных задач. Количество задач в домашнем задании равно 10. Каждая задача оценивается в 1 балл. При выполнении письменной экзаменационной работы студент должен продемонстрировать знания основных понятий и алгоритмов из всего учебного курса, умения применять указанные алгоритмы для решения предложенных задач и обосновывать корректность полученных решений. Работа содержит 1 теоретический вопрос, который оценивается в 2 балла, и 5 практических заданий, каждое из которых оценивается в 1-2 балла, так что общая сумма баллов равна 10. Оценки по всем формам текущего контроля выставляются по 10-ти балльной шкале. Порядок формирования оценок по дисциплине Оценка за итоговый контроль основывается на результатах выполнения контрольных работ, домашнего задания и экзамена. Преподаватель оценивает работу студентов на практических занятиях: студенты работают по карточкам, на которых указаны практические задания. Работа каждого студента оценивается с учетом количества задач, решенных им во время занятия. Оценки за работу на практических занятиях преподаватель выставляет в рабочую ведомость. Оценка по 10-ти балльной шкале за работу на практических занятиях определяется перед промежуточным или итоговым контролем и называется - Оаудиторная. 1,2 модули Накопленная оценка за текущий контроль учитывает результаты студента по текущему контролю следующим образом: Онакопленная= 2/3*Отекущий + 1/3* Оаудиторная где Отекущий рассчитывается как взвешенная сумма всех форм текущего контроля, предусмотренных в РУП: Отекущий = n1·Ок/р + n2·Одз, при этом n1 = 0,7,n2 = 0,3. Способ округления накопленной оценки текущего контроля: арифметический. Результирующая оценка за дисциплину рассчитывается следующим образом Орезультирующая = 0,6* Онакопленная + 0,4*·Оэкз/зач Способ округления накопленной оценки промежуточного (итогового) контроля в форме зачета: арифметический. 3,4 модули Накопленная оценка за текущий контроль учитывает результаты студента по текущему контролю следующим образом: Онакопленная= 2/3*Отекущий + 1/3* Оаудиторная где Отекущий рассчитывается как взвешенная сумма всех форм текущего контроля, предусмотренных в РУП: Отекущий = n1·Ок/р, при этом n1 = 1. Способ округления накопленной оценки текущего контроля: арифметический. Результирующая оценка за дисциплину рассчитывается следующим образом Орезультирующая = 0,6* Онакопленная + 0,4*·Оэкз/зач Способ округления накопленной оценки промежуточного (итогового) контроля в форме зачета: арифметический. Результирующая оценка по дисциплине – это взвешенная сумма результирующих оценок за все модули прохождения дисциплины. О промежуточная 1 – результирующая оценка за 2 модуль О промежуточная 2 – результирующая оценка за 4 модуль О результирующая = r1*Опромежуточная 1 + r2*О промежуточная 2 где ri– вес результирующих оценок, при этом r1 = 0,5, r2 = 0,5. Способ округления накопленной оценки промежуточного (итогового) контроля в форме экзамена: арифметический. На пересдаче студенту не предоставляется возможность получить дополнительный балл для компенсации оценки за текущий контроль. На экзамене студент может получить дополнительный вопрос (дополнительную практическую задачу, решить к пересдаче домашнее задание), ответ на который оценивается в 1 балл. В диплом выставляет результирующая оценка по учебной дисциплине, которая формируется равной результирующей оценке (О результирующая) с учетом весов ri. 7Содержание дисциплиныРаздел 1. Дополнительные разделы комбинаторики Тема 1. Однородные системы рекуррентных соотношений Решение однородных систем линейных рекуррентных соотношений с постоянными коэффициентами методом исключения неизвестных и матричным методом (через нахождение собственных значений и собственных векторов матрицы, составленной из коэффициентов). Количество часов аудиторной работы: 4. Общий объем самостоятельной работы студента: 8 часов. Тема 2. Производящие функции Полиномиальные и экспоненциальные производящие функции. Нахождение производящих функций для конкретных последовательностей с использованием рядов Тейлора и известных разложений элементарных функций в ряд Маклорена. Количество часов аудиторной работы: 6. Общий объем самостоятельной работы студента: 8 часов. Тема 3. Неоднородные рекуррентные соотношения Решение линейных неоднородных рекуррентных соотношений с постоянными коэффициентами (методом неопределенных коэффициентов) и с переменными коэффициентами (через производящие функции). Количество часов аудиторной работы: 6. Общий объем самостоятельной работы студента: 8 часов. Тема 4. Симметрическая группа подстановок. Теорема Бернсайда Свойства симметрической группы подстановок. Теорема Бернсайда. Подсчет числа неэквивалентных комбинаторных объектов с помощью теоремы Бернсайда. Количество часов аудиторной работы: 6. Общий объем самостоятельной работы студента: 8 часов. Тема 5. Цикловой индекс группы подстановок. Теория перечисления Пойя Цикловой индекс подстановки и группы подстановок. Теория перечисления Пойа. Первая и вторая теоремы Пойа. Подсчет числа неэквивалентных комбинаторных объектов с помощью теорем Пойа. Количество часов аудиторной работы: 6. Общий объем самостоятельной работы студента: 8 часов. Литература по разделу: Кормен Т., Лейзерсон Ч., Ривест Р., Штайн К. Алгоритмы: построение и анализ, 2-е издание. М.: Издательский дом «Вильямс», 2012, часть 1. Раздел 2. Графовые и потоковые алгоритмы Тема 6. Алгоритм поиска максимального паросочетания в двудольном графе Чередующиеся цепи. Метод «волны» для поиска чередующихся цепей. Теорема Бержа. Алгоритм поиска максимального паросочетания с помощью чередующихся цепей. Количество часов аудиторной работы: 4. Общий объем самостоятельной работы студента: 8 часов. Тема 7. Алгоритм поиска совершенного паросочетания в двудольном графе Чередующееся дерево. Метод «волны» для поиска чередующихся деревьев. Теорема Холла. Алгоритм поиска совершенного паросочетания с помощью чередующихся деревьев. Количество часов аудиторной работы: 4. Общий объем самостоятельной работы студента: 8 часов. Тема 8. Венгерский алгоритм для решения задачи о назначении Матрица затрат и её свойства. Диагональная редукция матрицы затрат. Венгерский алгоритм для решения задачи о назначении. Количество часов аудиторной работы: 4. Общий объем самостоятельной работы студента: 8 часов. Тема 9. Алгоритм поиска максимального потока в сети Поток в двухполюсной сети. Величина потока. Разрез сети. Пропускная способность разреза. Теорема Форда-Фалкерсона. Остаточная сеть. Алгоритм поиска максимального потока в двухполюсной сети с помощью остаточной сети. Количество часов аудиторной работы: 4. Общий объем самостоятельной работы студента: 8 часов. Тема 10. Алгоритм поиска максимального потока минимальной стоимости Стоимость потока в двухполюсной сети. Остаточная сеть. Алгоритм поиска максимального потока минимальной стоимости путем устранения циклов отрицательной стоимости в остаточной сети. Количество часов аудиторной работы: 8. Общий объем самостоятельной работы студента: 12 часов. Литература по разделу: Сэджвик Р. Фундаментальные алгоритмы на С++. Алгоритмы на графах: Пер. с англ. СПб: ООО «ДиаСофтЮП», 2002, глава 22. Раздел 3. Алгоритмы теории расписаний Тема 11. Полиномиальные алгоритмы теории расписаний Построение расписания минимальной стоимости для независимых заданий и одного исполнителя. Построение расписания минимальной длительности для единичных заданий с древовидным графом предшествования. Построение расписания минимальной длительности с прерываниями для независимых заданий. Конвейерная задача. Количество часов аудиторной работы: 18. Общий объем самостоятельной работы и распределение самостоятельной работы для разных видов подготовки студента: 28 часов. Литература по разделу: Коффман Э.Г. Теория расписаний и вычислительные машины. М.: Наука, 1984, главы 1,2. Раздел 4. Приближенные алгоритмы Тема 12. Точные и приближенные алгоритмы для решения задачи о рюкзаке Метод ветвей и границ для точного решения задачи о рюкзаке. Приближенный алгоритм для задачи о рюкзаке с гарантированной погрешностью. Количество часов аудиторной работы: 4. Общий объем самостоятельной работы студента: 8 часов. Тема 13. Точные и приближенные алгоритмы для решения задачи коммивояжера Метод ветвей и границ для точного решения задачи коммивояжера. Алгоритм Литтла. Приближенный алгоритм Кристофидиса. Количество часов аудиторной работы: 4. Общий объем самостоятельной работы студента: 8 часов. Тема 14. Генетические алгоритмы Общая схема и параметры генетического алгоритма. Операторы скрещивания, мутации и отбора. Решение задачи коммивояжера с помощью генетического алгоритма. Количество часов аудиторной работы: 6. Общий объем самостоятельной работы студента: 10 часов. Тема 15. Методы доказательства нижних оценок сложности комбинаторных алгоритмов Методы доказательства нижних оценок сложности комбинаторных алгоритмов на примере задач поиска и сортировки. Количество часов аудиторной работы: 6. Общий объем самостоятельной работы студента: 10 часов. Литература по разделу: Сигал М.Х., Иванова А.П. Введение в прикладное дискретное программирование: модели и вычислительные алгоритмы: Учеб. пособие. М.: ФИЗМАТЛИТ, 2002, раздел 3. 8Образовательные технологииНа лекциях рекомендуется иллюстрировать материал примерами, показывающими все этапы решения задачи: формализацию и построение математической модели, разработку алгоритма, доказательство его корректности, нахождение его сложности, написание программы, её отладку и тестирование, выполнение программы на реальных входных данных. На практических занятиях используются следующие методы обучения и контроля усвоения материала: разработка алгоритмов для конкретных задач и их практическая реализация в виде программного продукта с последующей отладкой и тестированием. При оценке выполненных заданий особое внимание рекомендуется обратить на оценки разработанных программ (получение теоретических оценок, сравнение проведенных экспериментов с результатами, полученными различными способами). Методические указания студентам: Студенту рекомендуется следующая схема выполнения домашних заданий:
При подготовке рекомендуется использовать электронные учебные материалы, имеющиеся в медиатеке. Выполненные задания должны сопровождаться данными анализа результатов (теоретическими оценками, сравнением результатов, полученных различными способами). 9Оценочные средства для текущего контроля и аттестации студента
10Учебно-методическое и информационное обеспечение дисциплины
Кормен Т., Лейзерсон Ч., Ривест Р., Штайн К. Алгоритмы: построение и анализ, 2-е издание. М.: Издательский дом «Вильямс», 2012.
Для успешного освоения дисциплины, студент использует следующие программные средства:
11Материально-техническое обеспечение дисциплиныДля проведения лекционных занятий используется компьютер с установленным программным обеспечением для демонстрации презентаций и проектор. Практические занятия проводятся в компьютерных классах с установленным программным обеспечением, перечисленным выше. |