- •Санкт-Петербург – 2011
- •Раздел 1. Характеристики, структура и содержание учебных занятий
- •Цели и результаты учебных занятий.
- •Требования к подготовленности обучающегося к освоению содержания учебных занятий (пререквизиты).
- •Перечень формируемых компетенций (результаты обучения)
- •Знания, умения, навыки, осваиваемые обучающимся.
- •Перечень и объём активных и интерактивных форм учебных занятий.
- •Организация учебных занятий.
- •1.6.1. Трудоёмкость, объёмы учебной работы и наполняемость
- •1.6.2. Виды, формы и сроки текущего контроля успеваемости и промежуточной аттестации
- •1.7. Структура и содержание учебных занятий
- •Раздел 2. Обеспечение учебной дисциплины
- •2.1. Методическое обеспечение
- •2.1.1. Методическое обеспечение аудиторной работы
- •2.1.2. Методическое обеспечение самостоятельной работы
- •2.1.3. Методика проведения текущего контроля успеваемости, промежуточной аттестации и критерия оценивания
- •2.3.2. Требования к аудиторному оборудованию, в том числе к неспециализированному компьютерному оборудованию и программному обеспечению общего пользования
- •2.4.2. Список дополнительной литературы
- •2.4.3. Перечень иных информационных источников
- •Раздел 3. Процедура разработки и утверждение рабочей программы учебной дисциплины
- •Иные документы об оценке качества рабочей программы
- •Внесение изменений в рабочую программу
- •Приложение с1-1
- •1. Еженедельный отчет студента
- •2. Регулярный контроль на аудиторном занятии
- •3. Итоговый контроль на зачетных и экзаменационных мероприятиях
- •Приложение с1-2
- •Приложение с1-3
- •1. Файлы
- •2. Процедуры и функции
- •3. Циклы, массивы, вычисления
- •04. Множества, строки, записи
- •5. Логические выражения и операторы ветвления.
- •Приложение с1-4
- •Ооп: инкапсуляция
- •Ооп: полиморфизм
- •Приложение с1-5
- •Приложение с2-1
- •1. Еженедельный отчет студента
- •2. Регулярный контроль на аудиторном занятии
- •3. Итоговый контроль на зачетных и экзаменационных мероприятиях
- •Приложение с2-2
- •Приложение с2-3
- •1. Файлы
- •2. Процедуры и функции
- •3. Циклы, массивы, вычисления.
- •4. Множества, строки, записи
- •5. Графика
- •6. Сортировки (быстрая сортировка — имеется ввиду нерандомизированная):
- •7. Рекурсия
- •8. Разработка и программная реализация алгоритмов
- •9. Перебор
- •10. Бинарные деревья и поиск
- •11. Перестановки
- •12. Графы
- •13. Стек, очередь, очередь с приоритетатами
- •14. Списки, хеш-таблицы, сбалансированные деревья.
- •Приложение с2-4
- •Приложение с2-5
12. Графы
A) Различные методы представления графов
http://www.intuit.ru/department/algorithms/ingrth/1/
http://school29.smoladmin.ru/arbuzov/glava1.html
до некоторой степени и
http://khpi-iip.mipk.kharkiv.edu/library/datastr/book_sod/kgsu/din_0079.html
Упражнение 12.01. [0] Написать программу конвертирующую граф представленный матрицей смежности в матрицу инцидентности.
Упражнение 12.02. [0] Написать программу конвертирующую граф представленный матрицей инцидентностей в представление списком ребер.
Упражнение 12.03. [0] Написать программу которая строит матрицу инцидентности по заданному списку ребер.
Упражнение 12.04. [0] Степенью вершины называется количество ребер ей инцидентных. Вывести все вершины имеющую четную степень у заданного графа. Метод задания графа на Ваш выбор.
Упражнение 12.05. [0] Полным называется граф любые две вершины которого связаны ребром. Проверить, является ли данный граф полным. Метод задания графа на Ваш выбор.
Упражнение 12.06. [1] В неориентированном графе c ребрами неотрицательного веса, найти два связанных ребра наибольшего суммарного веса.
Упражнение 12.07. [2] Вырезать из графа путь. Если появляются вершины не связанные с другими, уменьшить матрицу. Метод задания графа - матрица смежности или матрица инцеденции.
Упражнение 12.08. [2] Построить граф из набора путей. Метод задания графа — матрица смежности или матрица инцеденции.
B) Алгоритм Флойда-Уоршелла
http://school29.smoladmin.ru/arbuzov/glava3.html
http://school29.smoladmin.ru/arbuzov/floid.html
http://habrahabr.ru/blogs/algorithm/105825/
http://ru.wikipedia.org/wiki/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%A4%D0%BB%D0%BE%D0%B9%D0%B4%D0%B0%E2%80%93%D0%A3%D0%BE%D1%80%D1%88%D0%B5%D0%BB%D0%BB%D0%B0
Упражнение 12.09. [0] Реализовать алгоритм Флойда-Уоршелла.
Упражнение 12.10. [1] С помощью модифицированного алгоритма Флойда-Уоршелла, для заданной вершины X, найти сколько шагов потребуется для достижения любой другой вершины (шаг это переход по ребру).
Упражнение 12.11. [2] Реализовать алгоритм Флойда-Уоршелла и алгоритм Дейкстры, сравнить производительность на графах различного размера.
C) Алгоритм Дейкстры
http://school29.smoladmin.ru/arbuzov/glava3.html
http://school29.smoladmin.ru/arbuzov/deikstra.html
http://www.intuit.ru/department/algorithms/ingrth/9/
http://ru.wikipedia.org/wiki/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%94%D0%B5%D0%B9%D0%BA%D1%81%D1%82%D1%80%D1%8B
http://habrahabr.ru/blogs/algorithm/111361/#habracut
Упражнение 12.12. [0] В графе со взвешенными ребрами найти разницу между двумя самыми короткими путями. Вершины начала и конца заданы. Метод задания графа на Ваш выбор.
Упражнение 12.13. [1] Дан неориентированный граф, ребра содержат веса. Найти кратчайший путь между двумя заданными вершинами. Однако, если степень вершины четная - через нее нельзя пройти.
Упражнение 12.14. [2] Дан ориентированный мульти граф, представляющий карту рейсов авиакомпании. Вершины это города, а ребра содержат информацию о рейсе - длительность перелета, время вылета. Дан города вылета и город прибытия, а так же время вылета. Необходимо найти самое раннее возможное время прибытия.
D) Поиски в ширину и глубину на графе
http://school29.smoladmin.ru/arbuzov/glava2.html
http://school29.smoladmin.ru/arbuzov/glubina.html
http://school29.smoladmin.ru/arbuzov/shirina.html
Упражнение 12.15. [1] Дан неориентированный граф, проверить является ли он связным. Метод задания графа на Ваш выбор.
Упражнение 12.16. [2] В неориентированном графе c ребрами неотрицательного веса, найти цикл наибольшего веса.
Упражнение 12.17. [2] Инфекция распространяется по городам (вершинам графа) при помощи дорог (неориентированные ребра). При этом, на каждом шаге заражаются все соседние города любого зараженного города. Дан инфицированный город, вывести список городов зараженных шаге N.
Упражнение 12.18. [2] Бродячий торговец начинает из города N (вершина графа) и идет по ребрам с помощью поиска в глубину, на каждом шаге выбирая наиболее короткую дорогу (ребро с весом), из тех что он не выбирал. Каждый город обходится только один раз. Вывести последовательность посещенных городов.
E) Алгоритм Краскала или Прима построения минимального остовного дерева
Демонстрации:
http://www.youtube.com/watch?v=vm_9-vnV7PE
http://www.youtube.com/watch?v=sl6W3_Q4HZo
Описание
http://msug.vn.ua/Posts/Details/3751
https://sites.google.com/a/labore.ru/teoria-grafov-i-ee-primenenie/novosti-obrazovania/algoritm-kraskala
Упражнение 12.19. [0] Найти минимальное остовное дерево в данном графе.
Упражнение 12.20. [1] Модифицировать алгоритм нахождения минимального остовного дерева в графе таким образом, чтобы на шаге добавления четного ребра в расчет принималось первое значение из пары, а при нечетном шаге - второе. Пара представляет собой вес ребра.
Упражнение 12.21. [2] Найти разницу между его минимальными остовными деревьями, которые не пересекаются по ребрам, если такие есть.