Теория графов - Учебно-методические комплексы

advertisement
2
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ
РОССИЙСКОЙ ФЕДЕРАЦИИ
Федеральное государственное бюджетное образовательное учреждение
высшего профессионального образования
«ТЮМЕНСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ»
Институт математики и компьютерных наук
Кафедра программного обеспечения
Зайцева Светлана Сергеевна
ТЕОРИЯ ГРАФОВ
Учебно-методический комплекс.
Рабочая программа для студентов направления 10.03.01«Информационная
безопасность», профиль подготовки «Безопасность распределённых систем»,
очная форма обучения.
Тюменский государственный университет
2014
3
Зайцева С.С. ТЕОРИЯ ГРАФОВ.
Учебно-методический комплекс. Рабочая программа для студентов направления 10.03.01
«Информационная безопасность», профиль подготовки «Безопасность распределённых
систем», очная форма обучения. Тюмень, 2014, 28 стр.
Рабочая программа составлена в соответствии с требованиями ФГОС ВПО с учетом
рекомендаций и ПрОП ВПО по направлению и профилю подготовки.
Рабочая программа дисциплины (модуля) опубликована на сайте ТюмГУ «Теория графов»
[электронный ресурс] / Режим доступа: http://www.umk3.utmn.ru, свободный.
Рекомендовано к изданию кафедрой программного обеспечения. Утверждено директором
Института математики и компьютерных наук.
ОТВЕТСТВЕННЫЙ РЕДАКТОР: Захарова И.Г., д.п.н., профессор.
© Тюменский государственный университет, 2014.
© Зайцева С.С., 2014.
4
1.
Пояснительная записка
1.1.
Цели и задачи дисциплины (модуля)
Дисциплина «Теория графов» ставит своей целью ознакомление студентов
с
важнейшими разделами теории графов и ее приложениями. К задачам курса относятся:
ознакомление
студентов
с
фундаментальными
понятиями
теории
графов
для
последующего свободного их использования, изучение современной проблематики
теории графов, усвоение постановок задач теории графов и методов их решения,
овладение основными теоретико-графовыми алгоритмами, применение графовых
моделей к различным областям науки.
Цели дисциплины:

дать навыки постановки и решения задач оптимизации на графах;

научить выбору адекватных алгоритмов для решения вышеуказанных задач;

отработать умения по программной реализации алгоритмов на персональном
компьютере.
1.2.Место дисциплины в структуре образовательной программы
Дисциплина
«Теория графов» входит в часть дисциплин по выбору цикла
естественнонаучных дисциплин Федерального государственного образовательного стандарта
высшего профессионального образования (ФГОС ВПО) по направлению «Информационная
безопасность». Для её успешного изучения необходимы знания и умения, приобретенные в
результате освоения разделов дискретной математики и программирования.
Знания, полученные при изучении теории графов необходимы как при проведении
теоретических исследований в различных областях математики, так и при решении
практических задач из разнообразных прикладных областей, таких как программирование,
обработка и передача данных, распознавание образов, криптография и др.
№
п/п
1.
2.
Таблица 1.
Разделы дисциплины и междисциплинарные связи с обеспечиваемыми
(последующими) дисциплинами
Наименование
Темы дисциплины необходимые для изучения
обеспечиваемых
обеспечиваемых (последующих) дисциплин
(последующих)
1.1
1.2
2.1
2.2
2.3
3.1
3.2
3.3
дисциплин
Дополнительные
+
+
+
+
главы теории
алгоритмов
Курсовые и
+
+
+
+
+
+
+
+
дипломные работы
5
1.3. Компетенции обучающегося, формируемые в результате освоения данной
образовательной программы.
В результате изучения дисциплины «Теория графов» цикла естественнонаучных
дисциплин по выбору по направлению подготовки 10.03.01 «Информационная безопасность»
с квалификацией (степенью) «бакалавр» в соответствии с целями основной образовательной
программы и задачами профессиональной деятельности, указанными в ФГОС ВПО,
выпускник должен обладать следующими компетенциями:
Профессиональными компетенциями:

умением
демонстрировать
определение
общих
форм,
закономерностей,
инструментальных средств для данной дисциплины (ПК-1);

умением понять поставленную задачу (ПК-2);

умением на основе анализа увидеть и конкретно сформулировать результат (ПК-5).
1.4. Перечень планируемых результатов обучения по дисциплине:
В pезультате изучения дисциплины студент должен:
Знать: основные методы и алгоритмы теории графов, связанные с моделированием и
оптимизацией систем различной природы.
Уметь:
 употреблять
специальную
математическую
символику
для
выражения
количественных и качественных отношений между объектами;
 решать оптимизационные задачи на графах.
Владеть: навыками применения языка и средств теории графов и решения теоретикографовых задач.
6
2. Структура и трудоемкость дисциплины.
Семестр 3. Форма промежуточной аттестации зачёт. Общая трудоемкость
дисциплины составляет 2 зачетных единицы - 72 академических часов, из них
37,7 часов,
выделенных на контактную работу с преподавателем (18 часов - лекции, 18 часов
лабораторные занятия, 1,7 часов – иные виды), 34,3 часа, выделенных на самостоятельную
работу.
3. Тематический план
Самостоятел
ьная работа
Итого
часов
по
теме
Лабораторн
ые занятия
1
2
Модуль 1
Машинное представление
1.1
графов и сетей.
Потоки в сетях. Задача о
потоках в сетях с
ограничениями снизу. Задача
1.2 о потоке минимальной
стоимости, прямой и
двойственный алгоритмы ее
решения.
Всего:
Модуль 2
Паросочетания в двудольных
графах. Задача о наибольшем
паросочетании. Алгоритм
2.1
Хопкрофта-Карпа. Оценка
сложности алгоритма
Хопкрофта–Карпа.
Задача о назначениях.
2.2
Венгерский алгоритм.
Задача о разбиении на
наименьшее число
2.3
паросочетаний. Теорема
Мендельсона-Далмеджа.
Всего:
Модуль 3
Задача составления
3.1
расписания
Задача коммивояжера.Метод
3.2
ветвей и границ. Алгоритмы с
Виды учебной
работы и
самостоятельная
работа, в час.
1-4
4
4
8
16
4
0-15
5-6
2
2
4
8
2
0-10
6
6
12
24
6
0-25
7-8
2
2
4
8
2
0-10
9-10
2
2
4
8
2
0-10
1112
2
2
4
8
2
0-10
6
6
12
24
6
0-30
2
2
4
8
2
0-15
2
2
4
8
2
0-10
1314
1516
Лекции
Тема
недели семестра
№
Таблица 3.
Из
Итого
них в колич
интер ество
актив балло
ной
в
форм
е
7
гарантированной оценкой
точности: минимальная
вставка и остовный обход.
Теоремы об оценки точности
этих алгоритмов.
Общая схема стохастических
алгоритмов. Стохастический
3.3 алгоритм решения задачи
коммивояжера.
Моделирование отжига
Всего:
Итого (часов, баллов):
Из них часов в интерактивной
форме
*-с учётом иных видов работ
1718
2
2
4
8
2
0-20
6
18
6
18
12
36
24
72
6
18
0-45
0-100
9
9
18
4. Виды и формы оценочных средств в период текущего контроля
0-12
0-5
0-17
0-2
0-2
0-2
0-6
0-5
0-4
0-5
0-14
0-2
0-2
0-2
0-6
0-17
0-13
0-5
0-10
0-28
0-59
Информац
инные
системы и
технологии
Электронны
й практикум
0-3
0-2
0-5
контрольная
работа
лабораторна
я работа
Письменные
работы
ответ на
семинаре
Модуль 1
1.1
1.2
Всего
Модуль 2
2.1
2.2
2.3
Всего
Модуль 3
3.1
3.2
3.3
Всего
Итого
Устный опрос
0-3
0-3
0-3
0-4
0-4
0-3
0-6
0-3
0-8
0-8
0-12
0-3
0-12
Итого количество
баллов
Таблица 4.
№ темы
0-15
0-10
0-25
0-10
0-10
0-10
0-30
0-15
0-10
0-20
0-45
0-100
8
5. Содержание дисциплины.
Модуль 1
Тема1.1. Машинное представление графов и сетей.
Матрицы графов. Списки смежности. Структура Вирта.
Тема 1.2. Потоки в сетях.
Задача о потоках в сетях с ограничениями снизу. Задача о потоке минимальной
стоимости, прямой и двойственный алгоритмы ее решения.
Модуль 2
Тема 2.1. Паросочетания в двудольных графах.
Задача о наибольшем паросочетании. Алгоритм Хопкрофта-Карпа. Оценка сложности
алгоритма Хопкрофта–Карпа.
Тема 2.2. Задача о назначениях.
Задача о назначениях. Венгерский алгоритм.
Тема2.3. Задача о разбиении на наименьшее число паросочетаний
Задача о разбиении на наименьшее число паросочетаний. Теорема МендельсонаДалмеджа.
Модуль 3
Тема 3.1. Задача составления расписания.
Задача составления расписания.
Тема 3.2. Задача коммивояжера.
Метод ветвей и границ. Алгоритмы с гарантированной оценкой точности: минимальная
вставка и остовный обход. Теоремы об оценки точности этих алгоритмов.
Тема 3.3. Общая схема стохастических алгоритмов.
Стохастический алгоритм решения задачи коммивояжера. Моделирование отжига.
6. Планы семинарских занятий.
Не планируются
7. Темы лабораторных работ (Лабораторный практикум).
Задания лабораторного практикума выполняются
с
программирования на языках Borland Delphi, С/С++.
Тема1.1. Машинное представление графов и сетей.
Матрицы графов. Списки смежности. Структура Вирта.
использованием
систем
Тема 1.2. Потоки в сетях.
Задача о потоках в сетях с ограничениями снизу. Задача о потоке минимальной
стоимости, прямой и двойственный алгоритмы ее решения.
Тема 2.1. Паросочетания в двудольных графах.
Задача о наибольшем паросочетании. Алгоритм Хопкрофта-Карпа.
Тема 2.2. Задача о назначениях.
Задача о назначениях. Венгерский алгоритм.
Тема2.3. Задача о разбиении на наименьшее число паросочетаний
Задача о разбиении на наименьшее число паросочетаний.
9
Тема 3.1. Задача составления расписания.
Задача составления расписания
Тема 3.2. Задача коммивояжера.
Метод ветвей и границ. Алгоритмы с гарантированной оценкой точности: минимальная
вставка и остовный обход.
Тема 3.3. Общая схема стохастических алгоритмов.
Стохастический алгоритм решения задачи коммивояжера. Моделирование отжига.
8. Примерная тематика курсовых работ.
Не планируются
9. Учебно-методическое обеспечение и планирование самостоятельной работы
студентов.
Таблица5 .
№
Модули и темы
Виды СРС
Неделя
Объем
Кол-во
часов*
баллов
обязатель дополнитель семестра
ные
ные
Модуль 1
1.1 Машинное
представление
графов и сетей.
1.2 Потоки в сетях.
Задача о потоках в
сетях с
ограничениями
снизу. Задача о
потоке
минимальной
стоимости, прямой
и двойственный
алгоритмы ее
решения.
Всего по модулю 1*:
Модуль 2
2.1 Паросочетания в
двудольных
графах. Задача о
наибольшем
паросочетании.
Алгоритм
Хопкрофта-Карпа.
Оценка сложности
алгоритма
Хопкрофта–Карпа.
2.2 Задача о
назначениях.
Венгерский
алгоритм.
2.3 Задача о разбиении
на наименьшее
число
паросочетаний.
Конспекти
рование
материала
на
лекционны
х занятиях
Выполнени
е заданий
лабораторн
ых работ.
Конспекти
рование
материала
на
лекционны
х занятиях
Выполнени
е заданий
лабораторн
ых работ.
Работа с
учебной
литературой
1-4
8
0-15
5-6
4
0-10
12
0-25
7-8
4
0-10
9-10
4
0-10
11-12
4
0-10
Работа с
учебной
литературой
10
Теорема
МендельсонаДалмеджа.
Всего по модулю 2*:
Модуль 3
3.1 Задача составления
расписания
3.2 Задача
коммивояжера.Метод
ветвей и границ.
Алгоритмы с
гарантированной
оценкой точности:
минимальная вставка и
остовный обход.
Теоремы об оценки
точности этих
алгоритмов.
3.3 Общая схема
стохастических
алгоритмов.
Стохастический
алгоритм решения
задачи коммивояжера.
Моделирование отжига
Всего по модулю 3*:
ИТОГО*:
*- учётом иных видов работ
12
Конспектиро
вание
материала
на
лекционных
занятиях
Выполнение
заданий
лабораторны
х работ.
0-30
13-14
4
0-15
15-16
4
0-10
17-18
4
0-20
12
36
0-45
0-100
Работа с
учебной
литературой
10.Фонд оценочных средств для проведения промежуточной аттестации по итогам
освоения дисциплины.
Вопросы к зачёту:
1. Представление графов с помощью матриц. Основные недостатки.
2. Представление графов с помощью списков смежности. Описание типа.
3. Представление графов с помощью ортогональных списков смежности. Описание
типа.
4. Представление графов с помощью структуры Вирта. Описание типа.
5. Представление графов с помощью модифицированной структуры Вирта.
Описание типа.
6. Построение списков смежности, моделирующих ориентированный граф, вывод их
на экран, добавление и удаление дуг.
7. Построение ортогональных списков смежности, моделирующих ориентированный
граф. Вывод на экран структуры ортогональных списков смежности, добавление и
удаление дуг, добавление и удаление вершин.
8. Построение динамической структуры Вирта, моделирующей ориентированный
граф. Вывод на экран его структуры, добавление и удаление ребер, добавление и
удаление вершин.
9. Построение
модифицированной
структуры
Вирта,
моделирующий
ориентированный граф, вывод ее на экран и добавление ребер.
11
10. Задача о потоке в сети с ограничениями снизу.
11. Задача о потоке минимальной стоимости. Транспортная задача.
12. Критерий µ-оптимальности потока.
13. Прямой алгоритм построения потока минимальной стоимости.
14. Двойственный алгоритм построения потока минимальной стоимости.
15. Паросочетания в двудольных графах. Теорема Бержа. Связь понятий
паросочетания и потока в соответствующей цепи. Модификация алгоритма ФордаФалкерсона для построения наибольшего паросочетания.
16. Алгоритм Хопкрофта-Карпа. Основные процедуры этого алгоритма.
17. Оценка сложности алгоритма Хопкрофта-Карпа.
18. Задача о назначениях. Основные леммы.
19. Венгерский алгоритм решения задачи о назначениях.
20. Задача о разбиении на наименьшее число паросочетаний. Теорема МендельсонаДалмеджа и алгоритм разбиения на наименьшее число паросочетаний.
21. Задача составления учебного расписания.
22. Задача коммивояжера. Алгоритмы с гарантированной оценкой точности.
23. Метод ветвей и границ, схема для задачи коммивояжера.
24. Моделирование отжига.
Итоговый тест:
1. Каждый элемент является записью R, содержащей в поле R.Stroka вершину графа, а в
поле R.Next - указатель на следующую запись в списке. Данное описание соответствует:
а) ортогональному списку смежности;
б) списку смежности;
в) структуре Вирта.
2. «Находясь в вершине x, нужно двигаться в любую другую, ранее непосещённую
вершину (если таковая найдется), одновременно запоминая дугу, по которой мы впервые
попали в данную вершину; если из вершины x мы не можем попасть в ранее
непосещённую вершину или таковой нет, то мы возвращаемся в вершину z, из которой
впервые попали в x, и продолжаем движение из вершины z.»
Данный алгоритм предназначен для:
а) обхода графа в глубину;
б) обхода графа в ширину;
в) поиска компонент связности в графе.
3. For vV do D[v]:=A[s,v];
D[s]:=0; T:=V\{s};
While T≠0 do
begin
u:=Произвольная вершина rT, такая, что D[r]=min {D[p]:pT};
T:=T\{u};
For vT do D[v]:=min(D[v],D[v]+A[u,v])
End
Алгоритм предназначен для:
а) поиска минимального остова;
б) поиска дерева кратчайших расстояний;
в) поиска кратчайшего пути между всеми парами вершин.
4 . Размеченный мультиграф (без петель), который отличается от графа тем, что в нем одна и
та же пара (различных) вершин может быть связана более чем одним ребром. При этом
вершины соответствуют городам, а ребра - дорогам. Такой граф называется:
12
а) бесконтурным графом ;
б) системой дорог;
в) сетью.
5. Путь, проходящий через каждое ребро графа только один раз называется:
а) Эйлеровым
б) Гамильтоновым
в) Кратчайшим
6. PROCEDURE ONE (N: Integer; Beg: Massiv);
var UkZv: svqz;
BEGIN
For i:=1 to N do
begin
Write (' ',i,'...'); UkZv:=Beg[i];
If UkZv=Nil then WriteLn ('Пустой список!')
else begin While UkZv<>Nil do
begin
Write (UkZv^.Key:2,' * '); UkZv:=UkZv^.Sled
end;
WriteLn end end END;
Процедура предназначена для :
а) Вывода структуры смежности для графа, заданного ортогональными
списками;
б) Вывода структуры смежности для графа, заданного структурой Вирта;
в) Вывода содержимого списков смежности.
7. type Lref = ^Leader;
Tref = ^Trailer;
Leader = Record
Key : Integer; Count: Integer;
Trail: Tref; Next : Lref
end;
Trailer = Record
Id : Integer; Next: Tref
end;
Данное описание типа соответствует:
а) списку смежности;
б) ортогональному списку смежности;
в) Структуре Вирта.
8. PROCEDURE ONE (r: Lref);
var t: Tref;
BEGIN
t:=r^.Trail; Write (r^.Key,' '); r^.Flag:=FALSE;
While t<>Nil do
begin
If t^.Id^.Flag then ONE (t^.Id);
t:=t^.Next
end
END;
Процедура реализует:
а) рекурсивный обход в глубину для графа, представленного структурой Вирта;
б) рекурсивный обход в глубину для графа, представленного ортогональными
списками;
13
в) рекурсивный обход в ширину для графа, представленного структурой Вирта.
9. Метод ветвей и границ эквивалентен
а) поиску эйлерова пути наименьшего веса
б) поиску гамильтонова пути наименьшего веса
в) поиску кратчайшего пути между всеми парами вершин
10. PROCEDURE ONE (x: Integer; y: Integer; var Head: Lref);
var p,q: Lref;
t,r: Tref;
Res: Boolean;
BEGIN
p:=SearchGraph (x,Head);
q:=SearchGraph (y,Head);
r:=p^.Trail; Res:=FALSE;
While (r<>Nil) AND (NOT Res) do
If r^.Id=y then Res:=TRUE else r:=r^.Next;
If (NOT Res) then begin
New (t); t^.Id:=y; t^.Next:=p^.Trail;
p^.Trail:=t; q^.Count:=q^.Count+1
end
END;
Процедура предназначена для
а) добавления дуги в ортогональный список;
б) добавления вершины в структуру Вирта;
в) добавления вершины в список смежности.
Индекс
компетенции
ПК-5
ПК-2
+
+
5 семестр
+
+
+
Математический анализ *
Алгебра и геометрия *
+
+
+
+
+
6 семестр
ПК-1
+
+
+
Циклы Б.1.-Б.3. дисциплины (модули)
+
+
+
+
Дискретная оптимизация
+
+
+
+
+
+
+
Б.5. практика /НИР
Б.6. ИГА
7 семестр
+
+
+
+
+
+
+
+
+
Сети и системы передачи
информации*
Теория вероятностей и
математическая статистика *
Теория графов
Структуры и алгоритмы
компьютерной обработки
данных
3 семестр
Гуманитарные аспекты
информационной
безопасности*
Имитационное
моделирование
+
Дополнительные разделы
теории алгоритмов
Теория вероятностей и
математическая статистика *
Аппаратные средства
вычислительной техники *
Сети и системы передачи
информации*
Дополнительные главы
теории чисел
+
+
ВКР
+
+
Производственная
практика
+
+
философия *
2 семестр
Учебная практика
ПК-5
+
Безопасность
операционных систем
+
+
Программно-аппаратные
средства защиты
информации*
+
+
Современные
информационные
системы
+
Аппаратные средства
вычислительной техники*
1 семестр
Построение
информационных
приложений на базе
промышленных СУБД
+
Дополнительные главы
высшей алгебры
+
Алгебра и геометрия *
+
Безопасность
операционных систем
Циклы, дисциплины
(модули) учебного
плана ОП
Математическая логика и
теория алгоритмов*
+
Электроника и
схемотехника*
ПК-2
Математический анализ*
ПК-1
Дискретная математика *
Циклы, дисциплины
(модули) учебного
плана ОП
Современные
информационные системы
Индекс
компетенции
Информатика*
14
10.1 Перечень компетенций с указанием этапов их формирования в процессе освоения образовательной программы (выдержка из
матрицы компетенций):
Циклы Б.1.-Б.3. дисциплины (модули)
4 семестр
+
+
+
15
10.2 Описание показателей и критериев оценивания компетенций на различных этапах их формирования, описание шкал
оценивания:
Таблица 6.
Карта критериев оценивания компетенций
ПК-1
код
Результаты обучения по уровням освоения материала
пороговый
(удовл.)
61-75 баллов
Знает:
о
необходимости
использования в компьютерных
технологиях простейших методов
дискретной оптимизации.
Умеет: сообщать идеи, проблемы
использования в компьютерных
технологиях простейших методов
дискретной оптимизации,
как
специалистам,
так
и
неспециалистам
Владеет: способами и методами
составления
сообщений
об
использовании в компьютерных
технологиях простейших методов
дискретной оптимизации.
ПК -2
Знает: общие сведения о моделях
дискретной оптимизации.
Умеет: с помощью справочного
материала выбрать теоретическую
модель для описания реального
объекта или процесса.
базовый (хор.)
76-90 баллов
Знает:
о
необходимости
использования
в
компьютерных
технологиях методов дискретной
оптимизации
в
стандартных
ситуациях
Умеет: сообщать решения, идеи, и
проблемы
использования
в
компьютерных
технологиях
простейших
методов
дискретной
оптимизации, как специалистам, так и
неспециалистам, используя диапазон
качественной
и
количественной
информации в стандартных ситуациях
повышенный
(отл.)
91-100 баллов
Знает:
о
необходимости
использования
в
компьютерных
технологиях методов дискретной
оптимизации в любых ситуациях
Умеет: сообщать решения, идеи, и
проблемы
использования
в
компьютерных
технологиях
простейших
методов
дискретной
оптимизации, как специалистам, так и
неспециалистам, используя диапазон
качественной
и
количественной
информации.
Владеет:
способами и методами
составления
сообщений
об
использовании
в
компьютерных
технологиях
простейших методов
дискретной
оптимизации
в
стандартной ситуации
Знает: общие сведения, алгоритмы и
способы описания основных моделей
дискретной оптимизации.
Владеет:
способами и методами
составления
сообщений
об
использовании
в
компьютерных
технологиях
простейших методов
дискретной оптимизации в любой
ситуации
Знает:
особенности
применения
моделей и алгоритмов дискретной
оптимизации при описании реальных
явлений и процессов.
Умеет:
выбирать
теоретическую
модель для описания объекта или
процесса.
Умеет: анализировать проблему и
выбирать теоретическую модель для
описания объекта или процесса.
Виды
занятий
Оценочные средства
Лекции,
лабораторные
занятия
Аудиторные
контрольные
работы, выполнение
индивидуальных
заданий.
Лекции,
лабораторные
занятия
Аудиторные
контрольные
работы, выполнение
индивидуальных
заданий.
Лекции,
лабораторные
занятия
Аудиторные
контрольные
работы, выполнение
индивидуальных
заданий.
Лекции,
лабораторные
занятия
Лекции,
лабораторные
занятия
Аудиторные
контрольные
работы, выполнение
индивидуальных
заданий.
Аудиторные
контрольные
работы, выполнение
индивидуальных
заданий.
ПК-5
16
Владеет: навыками применения
методов дискретной оптимизации
при решении простых типовых
задач.
Владеет:
навыками
применения
методов дискретной оптимизации при
решении типовых задач.
Владеет:
навыками
применения
методов дискретной оптимизации при
решении профессиональных задач.
Знает:
о
необходимости
использования в организации и
выполнении комплекса мер по
информационной
безопасности
простейших методов теории графов.
Знает:
о
необходимости
использования в организации и
выполнении комплекса мер по
информационной
безопасности
методов теории графов в стандартных
ситуациях
Знает:
о
необходимости
использования в организации и
выполнении комплекса мер по
информационной
безопасности
методов теории графов в любых
ситуациях
Умеет: сообщать идеи, проблемы
использования в организации и
выполнении комплекса мер по
информационной
безопасности
простейших методов теории графов.
Умеет: сообщать решения, идеи, и
проблемы
использования
в
организации и выполнении комплекса
мер по информационной безопасности
простейших методов теории графов,
используя диапазон качественной и
количественной
информации
в
стандартных ситуациях
Владеет:
способами и методами
составления
сообщений
об
использовании в организации и
выполнении комплекса мер по
информационной
безопасности
простейших методов теории графов в
стандартной ситуации.
Владеет: способами и методами
составления
сообщений
об
использовании в организации и
выполнении комплекса мер по
информационной
безопасности
простейших методов теории графов.
Лекции,
лабораторные
занятия
Аудиторные
контрольные
работы, выполнение
индивидуальных
заданий
Лекции,
лабораторные
занятия
Аудиторные
контрольные
работы, выполнение
индивидуальных
заданий
Умеет: сообщать решения, идеи, и
проблемы
использования
в
организации и выполнении комплекса
мер по информационной безопасности
методов теории графов, используя
диапазон
качественной
и
количественной информации.
Лекции,
лабораторные
занятия
Аудиторные
контрольные
работы, выполнение
индивидуальных
заданий.
Владеет:
способами и методами
составления
сообщений
об
использовании в организации и
выполнении комплекса мер по
информационной
безопасности
простейших методов теории графов в
любой ситуации
Лекции,
лабораторные
занятия
Аудиторные
контрольные
работы, выполнение
индивидуальных
заданий
10.3 Типовые контрольные задания или иные материалы, необходимые для оценки
знаний, умений, навыков и (или) опыта деятельности, характеризующей этапы
формирования компетенций в процессе освоения образовательной программы.
Текущий и промежуточный контроль освоения и усвоения материала дисциплины
осуществляется в рамках рейтинговой (100-бальной) системы оценок.
Задания лабораторных работ выполняются повариантно.
Лабораторная работа 1 «Представление графов с помощью матриц»
1. Напишите программу, осуществляющую переход от представления графа с
помощью матрицы смежностей к представлению графа с помощью матрицы
достижимости.
2. Напишите программу, осуществляющую переход от представления графа с
помощью матрицы смежностей к представлению графа с помощью матрицы
инцидентности.
3. Проверьте, имеет ли граф, заданный матрицей инцидентности, петли.
4. Постройте матрицу смежности графа. Установите, будет ли граф связным, если
удалить k-ю заданную вершину.
5. Посчитайте количество ребер в графе, заданном матрицей инцидентности.
6. Определите, существуют ли в графе, заданном матрицей инцидентности,
изолированные вершины.
7. Определите, является ли граф, заданный матрицей инцидентности, полным (в
полном графе любые две вершины смежны).
8. Определите, является ли граф, заданный матрицей инцидентности, кольцом
(кольцо - связный граф, степень каждой вершины которого равна 2).
9. Определите, каково среднее количество ребер в графе, заданном матрицей
инцидентности.
10. Напишите программу, осуществляющую переход от представления графа с
помощью матрицы инцидентности к представлению графа с помощью матрицы
смежностей. Указание: Для произвольного неориентированного графа матрица
смежностей B выражается через матрицу инцидентности A следующим образом:
B=AxAT-diag [d1,...,dn], где AT - транспонированная матрица A, di- степень i-ой
вершины, diag [d1,...,dn] - матрица размерности nxn с элементами d1,...,dn,
расположенными на главной диагонали.
11. Определите степень каждой вершины (количество ребер, инцидентных данной
вершине) в графе, заданном матрицей смежностей.
12. Посчитайте количество ребер в графе, заданном матрицей смежности.
13. Посчитайте количество кратных ребер в графе, заданном матрицей смежности.
14. Посчитайте число вершин в графе (граф задан матрицей смежности), от которых
отходит более m ребер.
15. Напишите программу, осуществляющую переход от представления графа с
помощью матрицы инцидентности к представлению графа с помощью матрицы
достижимости.
2
16. Определите степень каждой вершины (количество ребер, инцидентных данной
вершине) в графе, заданном матрицей инцидентности.
17. Напишите программу, определяющую существуют ли в графе, заданном матрицей
смежности, изолированные вершины.
18. В графе, заданном матрицей смежности, определите количество петель.
19. Установите, является ли граф, заданный матрицей смежности, регулярным (в
регулярном графе степень всех вершин одинакова).
20. Проверьте, есть ли в графе, заданном матрицей смежности, кратные ребра.
21. Определите, каково максимальное (минимальное) количество ребер, выходящих
от одной вершины в графе, заданном матрицей смежности.
22. Проверьте, имеет ли граф, заданный матрицей смежности, петли.
23. Определите максимальную кратность ребер в графе, заданном матрицей
смежности.
24. Напишите программу, определяющую среднее количество ребер в графе,
заданном матрицей смежности.
25. Определите, является ли граф, заданный матрицей инцидентности, звездой (звезда
- граф, у которого одна вершина соединена со всеми, а у остальных степень равна
1).
26. Определите, каково минимальное количество ребер, отходящих от одной
вершины, в графе, заданном матрицей инцидентности.
27. Определите, каково максимальное (минимальное) количество ребер, отходящих от
одной вершины в графе, заданном матрицей инцидентности.
28. Определите, является ли граф, заданный матрицей инцидентности, регулярным (в
регулярном графе степень всех вершин одинакова).
29. Посчитайте количество
инцидентности.
кратных
ребер
в
графе,
заданном
матрицей
30. Посчитайте число вершин в графе (граф задан матрицей инцидентности), от
которых отходит более m ребер.
31. Установите, является ли граф, заданный матрицей смежности, полным (в полном
графе любые две вершины смежны).
32. Определите степень каждой вершины (количество ребер, инцидентных данной
вершине) в графе, заданном матрицей инцидентности.
33. Проверьте, есть ли в графе, заданном матрицей инцидентности, кратные ребра.
34. Определите максимальную кратность ребер в графе, заданном матрицей
инцидентности.
35. В графе, заданном матрицей инцидентности, определите количество петель.
Самостоятельно:
Реализовать граф как класс на основе структуры Вирта. Методы:
- добавление и удаление вершины;
- добавление и удаление ребра (дуги);
- ориентирование (неориентирование).
3
Реализовать процедуры преобразования структуры Вирта во все динамические и
матричные (смежность, инцидентность, достижимость) структуры. Реализовать
интерфейс для всех представлений.
Лабораторная работа 2 «Представление графов с помощью динамических структур»
1. Используя представление графа с помощью списков смежности, определите
количество ребер, инцидентных некоторой вершине (степень вершины).
2. Ориентированный граф задан структурой Вирта. Определите: (a) все вершины,
смежные данной вершине, т.е. такие, в которые входит дуга, выходящая из данной,
или такие, из которых выходит дуга, входящая в данную; (b) существуют ли в графе
изолированные вершины.
3. По ориентированному графу G постройте ориентированный граф G', который
получается из G последовательным применением (пока это возможно) следующей
операции: если v - вершина из G с единственным предшественником u (uv) и
единственным преемником w (wv), то она удаляется из G вместе с дугами (u,v) и
(v,w) и добавляется новая дуга (u,w); если v - вершина без предшественников и
преемников, то она просто удаляется из G.
4. V-интервалом ориентированного графа назовем максимальный среди его подграфов
G, обладающих следующими свойствами: (a) G содержит вершину v; (b) если все
предшественники вершины u содержатся в G, то u также содержится в G. Постройте
v-интервалы для всех вершин v заданного ориентированного графа.
5. Найдите минимальное подмножество вершин заданного ориентированного графа, от
каждой вершины которого достижимы все остальные его вершины.
6. Подмножество вершин графа назовем доминирующим, если каждая вершина вне
подмножества смежна хотя бы с одной вершиной этого подмножества. Найдите
минимальное по числу вершин доминирующее подмножество вершин заданного
графа.
7. Ребро графа накрывает его вершину, если оно инцидентно этой вершине. Найдите
минимальное (по количеству ребер) подмножество ребер, накрывающих все вершины
заданного графа.
8. Гамаком называется подграф заданного графа с таким непустым множеством вершин
A, что существует не более одной вершины в A, к которой ведут ребра от вершин вне
A, и не более одной вершины вне A, к которой ведут ребра от вершин множества A.
Найдите хотя бы один гамак графа.
9. Треугольником графа назовем всякую тройку различных и попарно смежных вершин
этого графа. Склеиванием треугольника называется следующая операция: три
вершины, составляющие треугольник, удаляются из графа вместе со всеми
инцидентными им ребрами; добавляется новая вершина v, а ребро {w,v} добавляется
тогда и только тогда, когда вершина w была смежна хотя бы с одной вершиной
удаленного треугольника. Последовательным применением операции склеивания
треугольника преобразуйте исходный граф в такой, в котором нет треугольников.
10. Ориентированным графом Бержа называется ориентированный граф, в котором из
любой вершины в любую другую идет не более одной дуги, а при каждой вершине
может быть не более одной петли. Определите, является ли заданный граф графом
Бержа?
11. Реберный граф Gl графа G имеет столько же вершин, сколько ребер у графа G. Ребро
между двумя вершинами графа Gl существует тогда и только тогда, когда ребра графа
4
G, соответствующие этим двум вершинам, смежны (инцидентны одной и той же
вершине графа G). Для заданного графа постройте его реберный граф.
12. Пусть G=(V,E) - граф. Элементарное стягивание графа G образуется путем удаления
ребра [vi,vj] из E, замены каждого vi и vj в E новым символом w, удаления vi и vj из V и
добавления w к V. Графически элементарное стягивание G получают путем слияния
двух смежных вершин после удаления ребра между ними и обозначения "составной"
вершины через w. Граф G называется стягиваемым к графу G', если G' можно
получить из G с помощью последовательности элементарных стягиваний. Реализуйте
операцию элементарного стягивания для графа, представленного с помощью
связанного представления.
13. Кольцевой суммой двух графов G1 и G2 называется граф G1+G2, порожденный на
множестве ребер (V1V2)\(V1V2), т.е. на множестве ребер, присутствующих либо в
G1, либо в G2, но не принадлежащих их пересечению G1G2. Для заданных графов G1
и G2 постройте их кольцевую сумму.
14. Пересечением двух графов называется граф, все вершины и все ребра которого
принадлежат как одному, так и другому графу. По заданным двум графам определите
их пересечение.
15. Соединением графов G1 и G2 называется граф G=(V,E), для которого V=V1V2,
E=E1E2И{{vi,vj}: viV1&vjV2}. Соединение графов, обозначаемое G1+G2, содержит
все вершины и ребра графов G1 и G2, а также ребра, соединяющие каждую вершину
из V1 с каждой вершиной из V2. Для заданных двух графов постройте их соединение.
16. Используя представление графа с помощью списков смежности, проверьте, является
ли заданный граф однородным.
17. Установите, имеет ли граф, заданный с помощью списков смежности, петли, и если
да, то указать вершины, обладающие ими.
18. Используя представление графа с помощью списков смежности, продемонстрируйте
на нескольких примерах утверждение теоремы, утверждающей, что число нечетных
вершин любого графа четно.
19. Ориентированный граф задан структурой Вирта. Определите: (а) количество его
вершин и ребер; (б) проверьте, содержит ли данный граф вершину, к которой
примыкают дуги от остальных вершин и из которой не исходит ни одна дуга.
20. Объединением графов G1=(V1,X1) и G2=(V2,X2) называется граф G=(V,X), для
которого V=V1V2 и X=X1X2. Для заданных двух графов постройте их
объединение.
21. Пусть множество вершин ориентированного графа перенумеровано целыми числами
от 1 до n (n - число вершин графа), а сам граф задан структурой Вирта. Найдите: (а)
матрицу смежностей A, элемент которой aij равен TRUE, если из вершины с номером
i выходит дуга, входящая в вершину с номером j; (б) номера всех изолированных
вершин графа (т.е. таких вершин графа, у которых нет ни входящих, ни выходящих
дуг).
22. Продемонстрируйте на нескольких примерах, что дополнение к дополнению графа G
совпадает с графом G.
23. Степень вершины графа равна числу ребер, инцидентных ей. Пусть d(u) - степень
вершины u в графе G. Степенью ребра <u,v> назовем неупорядоченную пару
<d(u),d(v)>. Определите, совпадают ли степени всех ребер заданного графа, и если
нет, то можно ли удалить из него одну вершину (вместе с инцидентными ребрами)
так, чтобы полученный граф обладал этим свойством.
5
24. Дополнение G~ графа G имеет в качестве множества вершин множество V(G), две
вершины в G~ смежны тогда и только тогда, когда они не смежны в G. Постройте
дополнение заданного графа G.
25. Операция надразбиения заключается в замене двух смежных ребер (u,v) и (v,w),
общая вершина v которых имеет степень 2, одним ребром (u,w). Применяя шаг за
шагом операцию надразбиения, можно получить из произвольного графа G,
содержащего вершины степени 2, граф, не содержащий вершин степени 2. Этот граф
будем называть полным надразбиением графа G. По заданному графу постройте его
полное надразбиение.
26. Ориентированный граф Бержа, у которого из каждой вершины выходит хотя бы одна
дуга, называется G-графом. Определите, является ли заданный граф G-графом?
27. Связный граф, степени всех вершин которого четны, обладает эйлеровой линией
Пользуясь этой теоремой, установите, обладает ли заданный граф эйлеровой линией?
28. Будем говорить, что вершина графа накрывает ребро, если она инцидентна этому
ребру. Вершинным покрытием графа назовем множество вершин, накрывающих все
его ребра. Постройте минимальное по числу вершин вершинное покрытие заданного
графа.
29. По графу G постройте последовательность графов G1,G2,...,Gn с тем же множеством
вершин, что и у G (здесь n - максимум расстояний для пар вершин в G, между
которыми имеется соединяющий их путь). Ребро между вершинами в G i проводится
тогда и только тогда, когда расстояние между соответствующими вершинами в G не
превышает i.
30. Пусть есть некоторый связный граф G, множество вершин которого разбито на два
непустых непересекающихся подмножества P=P1P2. Тогда множество всех ребер G,
имеющих одну концевую вершину в P1, а другую - в P2, называется разрезом графа G.
Найдите все разрезы заданного графа.
Самостоятельно:
Часть 1 «Обходы графов»
1. Используйте обход графа в ширину для определения всех вершин графа, находящихся
на фиксированном расстоянии d от данной вершины.
2. Используйте обход графа в глубину для определения всех вершин графа,
находящихся на фиксированном расстоянии d от данной вершины.
3. С помощью обхода в глубину реализуйте алгоритм, который находит такой порядок
узлов ациклического ориентированного графа, при котором v<w, если из v в w ведёт
путь ненулевой длины.
4. С помощью обхода в глубину реализуйте алгоритм, который выясняет, можно ли так
ориентировать рёбра связного неориентированного графа, чтобы получить сильно
связный ориентированный граф. УКАЗАНИЕ: Покажите, что это можно сделать тогда
и только тогда, когда удаление из G любого ребра оставляет граф связным.
5. Перенумеруйте вершины графа в порядке обхода в глубину и вычислить среднюю
плотность графа как частное от деления количества его ребер на число вершин.
6. С помощью обхода в глубину реализуйте алгоритм,
неориентированный граф на его связные компоненты.
который
разбивает
7. С помощью обхода в глубину реализуйте алгоритм, который проверяет ацикличен ли
ориентированный граф.
6
8. Перенумеруйте вершины неориентированного графа в порядке обхода в глубину.
9. Перенумеруйте вершины неориентированного графа в порядке обхода в ширину
10. В вершинах неориентированного графа "хранятся" положительные целые числа.
Подсчитайте, сколько из них являются простыми (совершенными, дружественными).
Часть 2 «Цепи, циклы, пути, контуры»
1. По заданному графу G постройте граф его транзитивного замыкания, т.е. такой граф
G', а вершинами которого являются вершины из множество вершин графа G; две
вершины u,v в G' смежны тогда и только тогда, когда в G существует путь из
вершины u к вершине v.
2. Определите, существуют ли в заданном неориентированном графе циклы?
3. Обод - это граф, вершины которого v1,v2,...,vn (n2) можно занумеровать так, что для
всех i (1in-1) вершина vi соединена ребрами с вершинами vi-1 и vi+1, вершина vo
соединена с вершиной vn, а других ребер нет. Определите, является ли ободом
заданный неориентированный граф.
4. Задан неориентированный граф с циклами. Проверить, можно ли удалить одну
вершину так, чтобы в полученном графе не было циклов.
5. Обозначим R(vi) - множество вершин, достижимых из вершины vi, а Q(vj) - множество
вершин, из которых можно достигнуть vj, тогда R(vi)UQ(vj) - это множество таких
вершин, каждая из которых принадлежит по крайней мере одному пути, идущему от
vi к vj. Эти вершины называются существенными (неотъемлемыми) относительно
вершин vi и vj, а все остальные вершины называются несущественными
(избыточными). Для заданных двух вершин графа найдите существенные вершины.
6. Найдите: (а) для двух выделенных вершин графа соединяющий их простой путь; (б)
самый длинный простой путь в заданном графе.
7. По заданному графу G постройте граф K с тем же множеством вершин, что и у G;
вершины в K смежны тогда и только тогда, когда расстояние между ними в G не
превышает 2. Далее, проверьте, совпадают ли степени всех вершин в K, и если нет, то
нельзя ли удалить из него одну вершину так, чтобы полученный граф удовлетворял
этому требованию.
8. Уграфом (управляющим графом) G=(V,E,po,qo) называется ориентированный граф
(V,E) с двумя выделенными вершинами: начальной po и конечной qo, любая вершина
которого принадлежит хотя бы одному пути по G от начальной вершины до конечной.
Определите, является ли заданный граф уграфом.
9. Найдите такую вершину заданного графа, которая принадлежит каждому пути между
двумя выделенными (различными) вершинами и отлична от каждой из них.
10. В заданном графе найдите: (а) все цепи длины 6; (б) все циклы.
11. В заданном графе найдите все вершины, расстояние от которых до заданной вершины
равно 20
12. Для заданного натурального n (n.3) постройте граф, не содержащий циклов длиной 3,
в котором степени всех вершин равны 3.
13. Из графа удалите все вершины, от которых недостижима заданная.
14. Граф задан структурой Вирта. Найдите номер вершин, через которые проходит
кратчайший путь из данной вершины в данную, и его длину, если такой путь есть.
7
15. Граф называется двудольным, если можно разбить множество его вершин на два
подмножества так, чтобы каждое ребро соединяло вершины из разных подмножеств.
Граф является двудольным тогда и только тогда, когда все его циклы имеют четную
длину. Проверьте при помощи данного утверждения, является ли заданный граф
двудольным.
16. Обхватом графа называется длина его самого короткого цикла. Для заданного графа
найдите его обхват.
Часть 3. Связность
1. Цикломатическим числом l(G) графа G называется величина l(G)=m(G)-n(G)+c(G), где
n(G) - количество вершин графа G, m(G) - количество его ребер, c(G) - количество
компонент связности графа G. Найдите цикломатическое число заданного графа.
2. Дополнением графа G называется граф G' с тем же множеством вершин, что и у графа
G, причем две различные вершины смежны в G' тогда и только тогда, когда они не
смежны в G. Подсчитайте количество компонент связности в дополнении заданного
графа.
3. Определите, является ли дополнение к заданному графу связным.
4. Вершина графа называется точкой сочленения, если ее удаление приводит к
увеличению количества компонент связности. Найдите все точки сочленения
заданного графа.
5. Мостом графа назовем такое ребро, удаление которого увеличивает число компонент
связности графа. Найдите: (а) какой-либо мост заданного графа; (б) все мосты
заданного графа.
6. Реализуйте алгоритм проверки связности графа, основанный на следующем
результате, а именно: "граф G связен в том и только в том случае, если после
применения к нему алгоритмов обхода графа в глубину или в ширину все вершины
будут помечены."
7. Компонентой сильной связности в ориентированном графе называется такой его
подграф, в котором любые две вершины взаимно достижимы и который не
содержится в другом подграфе, удовлетворяющем этому условию. Постройте
компоненты сильной связности для заданного ориентированного графа.
Лабораторная работа 3 «Алгоритмы построения деревьев »
1. Задан орграф G с неотрицательными весами, заданными матрицей A[u,v]. Найдите
кратчайший путь от источника S до выделенной вершины T. Для этого найти по
алгоритму Дейкстры расстояния D[v] от S до прочих вершин графа. Затем найти
вершину V, такую, что D[t]=D[v]+A[v,t]. Это предпоследняя вершина пути.
Предыдущая вершина пути u ищется из условия D[v]=D[u]+D[u,v] и т.д. до тех пор,
пока не найдется первая вершина пути.
2. Задан взвешенный граф Е (дугам графа приписаны веса - вещественные числа).
Определить, существуют ли два пути одинаковой длины из i-ой вершины в j-ю
(написать рекурсивную функцию, определяющую количество путей заданной длины
между двумя вершинами).
3. Задан орграф G с неотрицательными весами, заданными матрицей. Найдите вершины,
длины кратчайших путей до которых от выделенного источника равны.
8
4. Связный граф G с неотрицательными весами задан списком смежных вершин.
Найдите медиану графа G. (Медиана графа - такая вершина графа, что сумма
расстояний от нее до остальных вершин минимальна).
5. Задан орграф G с неотрицательными весами. Постройте по нему последовательность
графов Gi с тем же множеством вершин, что и у графа G. Ребро между вершинами в
Gi проводится тогда, когда расстояние между соответствующими вершинами в G не
превышает S=i+Длина_кратчайшего_пути.
Самостоятельно
Напишите программу, решающую следующую задачу: Построить минимальный остов
графа G. Найти новый минимальный остов, если добавить к графу G новую вершину и
инцидентные ей рёбра. (Реализовать оба алгоритма: Крускала и Прима).
Лабораторная работа 4 «Алгоритмы поиска путей»
1. Реализовать алгоритм Флойда.
2. Напишите программу, которая по заданной матрице смежностей и двум вершинам
графа вычисляет:

количество путей заданной длины между данными двумя вершинами;

общее количество путей между заданными двумя вершинами;

длину кратчайшего пути между заданными двумя вершинами.
Лабораторная работа 5
1. Найти длину самого длинного простого пути от города A до города B в заданной системе
односторонних дорог.
2. Задана система односторонних дорог. Найти путь, соединяющий города A и B и не
проходящий через заданное множество городов.
3. По системе односторонних дорог определить, есть ли в ней город, из которого можно
добраться до каждого из остальных городов, проезжая не более 100 км.
4. Определить, можно ли в заданной системе односторонних дорог проехать из города A в
город B таким образом, чтобы посетить город C и не проезжать никакой дороги более
одного раза.
5. В системе односторонних дорог для каждой пары городов указать длину кратчайшего
пути между ними.
6. По заданной системе односторонних дорог определить, есть ли в ней город, куда можно
попасть из любого другого города, проезжая не более 100 км.
7. В системе двусторонних дорог для каждой пары городов указать длину кратчайшего пути
между ними.
8. Задана система двусторонних дорог. Найти два города и соединяющий их путь, который
проходит через каждую из дорог системы ровно один раз.
9. Задана система двусторонних дорог. Найти замкнутый путь длиной не более 100 км,
проходящий через каждую дорогу ровно один раз.
10. Задана система двусторонних дорог, причем для любой пары городов можно указать
соединяющий их путь. Найти такой город, для которого сумма расстояний до остальных
городов минимальна.
9
11. По системе двусторонних дорог определить, можно ли, построив какие-нибудь новые три
дороги, из заданного города добраться до каждого из остальных городов, проезжая не
более 100 км.
12. По системе двусторонних дорог определить, можно ли, закрыв какие-нибудь три дороги,
добиться того, чтобы из города A нельзя было попасть в город B.
13. Задана система двусторонних дорог. N-периферией называется множество городов,
расстояние от которых до выделенного города (столицы) больше N. Определить Nпериферию для заданного N.
14. В системе двусторонних дорог за проезд каждой дороги взимается некоторая пошлина.
Найти путь из города A в город B с минимальной величиной S+P, где S - сумма длин
дорог пути, а P - сумма пошлин проезжаемых дорог.
15. Заданы две системы двусторонних дорог с одним и тем же множеством городов
(железные и шоссейные дороги). Найти минимальный по длине путь из города A в город
B (который может проходить как по железным, так и по шоссейным дорогам) и места
пересадок с одного вида транспорта на другой на этом пути.
16. Система двусторонних дорог называется трисвязной, если для любой четверки разных
городов A,B,C,D существует два различных пути из A в D, причем один из них проходит
через B, а другой - через C. Определить, является ли трисвязной данная система
двусторонних дорог.
Лабораторная работа 6
1. Составить список всех увеличивающих поток цепей из s в t.
2. В графе построить максимальный поток из s в t.
3. Найти минимальный разрез, который разделяет s и t. Насыщает ли максимальный
поток все дуги этого разреза?
Лабораторная работа 7
1. Проверьте, имеет ли данный граф эйлеров цикл заданной длины.
2. Задан граф, не содержащий эйлерова цикла. Определите, будет ли граф, полученный из
исходного удалением некоторого ребра, эйлеровым?
3. Задан граф, не содержащий эйлерова цикла. Определите, будет ли граф, полученный из
исходного удалением некоторой вершины, эйлеровым графом?
4. Обозначим: Kn - полный граф с n вершинами, а Ks,t - полный двудольный граф, доли
которого имеют s и t вершин. Определите, какие из графов K2, K3, K1,3, K3,3 являются
эйлеровыми.
5. Приведем алгоритм построения эйлеровой цепи в данном эйлеровом графе. Этот метод
известен под названием алгоритма Флёри. Пусть G - эйлеров граф; тогда следующая
процедура всегда возможна и приводит к построению эйлеровой цепи графа G. Выходя
из произвольной вершины u, "идем" по ребрам графа произвольным образом, соблюдая
лишь следующие правила: (1) "стираем" ребра по мере их прохождения и "стираем"
также изолированные вер-шины, которые при этом образуются; (2) на каждом этапе идем
по мосту только тогда, когда нет других возможностей (или другими словами,
запрещается проходить по ребру, если удаление этого ребра приводит к разбиению графа
на две связные компоненты). Реализуйте алгоритм Флёри.
6. Сформулируем задачу, которая называется задачей китайского почтальона: Ребрам графа
G приписаны положительные веса. Требуется найти цикл, проходящий через каждое
ребро графа G по крайней мере один раз и такой, что для него общий вес (а именно сумма
10
величин nj*c(aj), где числа nj показывают, сколько раз проходилось ребро aj, а c(aj) - вес
ребра) минимален. Очевидно, что если граф G содержит эйлеров цикл, то любой такой
цикл будет оптимальным, так как каждое ребро проходится только один раз и вес этого
цикла равен тогда
Напишите программу, решающую задачу китайского почтальона для случая, когда
граф обладает эйлеровым циклом.
7. Обозначим Kn - полный граф с n вершинами, Ks,t - полный двудольный граф, доли
которого имеют s и t вершин. Определите, какие из следующих графов являются
гамильтоновыми: Kn, K1,n, Km,n (зафиксируйте натуральные n и m).
8. Проверьте, имеет ли данный граф гамильтонов цикл заданной длины.
9. Задан граф, не содержащий гамильтонова цикла. Установите, будет ли граф, полученный
из исходного удалением некоторого ребра, гамильтоновым?
10. Задан граф, не содержащий гамильтонова цикла. Установите, будет ли граф, полученный
из исходного удалением некоторой вершины, гамильтоновым?
Лабораторная работа 8
1. Написать программу для решения задачи коммивояжёра, используя метод:
- Во взвешенном неориентированном графе найти гамильтонов цикл наименьшего
веса, где вес цикла определяется как сумма весов входящих в него рёбер.
2. Написать программу для решения задачи коммивояжёра, используя Метод ветвей и
границ.
10.4 Методические материалы, определяющие процедуры оценивания знаний, умений,
навыков и (или) опыта деятельности характеризующих этапы формирования
компетенций.
Промежуточный контроль освоения и усвоения материала дисциплины осуществляется в
рамках рейтинговой (100-бальной) системы оценок.
 Студент получает зачёт автоматически в случае набора в течение семестра 61
балла.
 Студент набирает в течение семестра 35-60 баллов. Для сдачи зачёта
необходимо написать итоговый тест за 1 семестр (20 баллов). Если набранных
баллов по итогам теста не хватает для получения зачёта, студент добирает
баллы путём сдачи самостоятельных работ или выполнения дополнительных
заданий.
 Студент набирает в течение семестра менее 35 баллов (не допущен к сдаче
зачёта). Студент добирает баллы путём сдачи самостоятельных и контрольных
11
работ. После получения допуска (35 баллов), необходимо написать итоговый
тест за семестр (20 баллов). Если набранных балов по итогам теста не хватает
для получения зачёта, студент добирает баллы путём сдачи самостоятельных
работ или выполнения дополнительных заданий.
В случае, если в течение семестра студент не набрал необходимое количество
баллов и не явился на сдачу зачёта (экзамена) во время сессии, добор баллов и
пересдача осуществляются только в сроки, установленные учебной частью института.
11. Образовательные технологии.
Сочетание
традиционных
образовательных
технологий
в
форме
лекций,
компьютерных лабораторных работ и проведение контрольных мероприятий (контрольных
работ, промежуточного тестирования, зачёта).
аудиторные занятия:
лекционные и компьютерные лабораторные занятия; на лабораторных занятиях
контроль осуществляется при сдаче лабораторного задания в виде программы (на одном из
используемых языков программирования) и пояснительной записки к задаче. В течение
семестров студенты выполняют задачи, указанные преподавателем к каждому занятию.
активные и интерактивные формы:
компьютерное моделирование и анализ результатов при выполнении лабораторных
работ;
внеаудиторные занятия:
выполнение дополнительных заданий разного типа и уровня сложности при
выполнении лабораторных работ, подготовка к аудиторным занятиям, изучение отдельных
тем и вопросов учебной дисциплины в соответствии с учебно-тематическим планом,
составлении
конспектов.
Подготовка
индивидуальных
заданий:
выполнение
самостоятельных и контрольных работ, подготовка ко всем видам контрольных испытаний:
текущему
контролю
успеваемости
и
промежуточной
аттестации;
индивидуальные
консультации.
12. Учебно-методическое и информационное обеспечение дисциплины.
12.1 Основная литература:
1. Зайцева, С.С. Дискретная математика: учеб. пособие/ С.С.Зайцева- Тюмень: Изд-во
ТюмГУ, 2007. - 175 с.
12.2 Дополнительная литература:
12
1. Кузнецов, О. П.. Дискретная математика для инженера: [учеб. пособие]/ О. П. Кузнецов. 5-е изд., стер. - Санкт-Петербург: Лань, 2007. - 400 с.
2. Новиков, Ф. А..Дискретная математика для программистов: учеб. пособие для студ.
вузов, обуч. по спец. "Информатика и вычислительная техника"/ Ф. А. Новиков. - 3-е изд.
- Санкт-Петербург: Питер, 2008. - 384 с.
12.3 Интернет-ресурсы:
Не предусмотрены
13. Перечень информационных технологий, используемых при осуществлении
образовательного процесса по дисциплине (модулю), включая перечень программного
обеспечения и информационных справочных систем (при необходимости).
Не предусмотрены
14. Технические средства и материально-техническое обеспечение дисциплины
(модуля).
При освоении дисциплины для проведения лекционных занятий нужны учебные
аудитории, оснащённые мультимедийным оборудованием, для выполнения лабораторных
работ необходимы классы персональных компьютеров с набором базового программного
обеспечения разработчика - системы программирования на языках Borland Delphi, С/С++.
15. Методические указания для обучающихся по освоению дисциплины (модуля).
Для успешной сдачи зачёта студенты должны посещать лекции и практические
занятия, выполнять домашние задания, выполнить все контрольные работы.
Для более эффективного освоения и усвоения материала рекомендуется ознакомиться
с теоретическим материалом по той или иной теме до проведения практического занятия.
Работу с теоретическим материалом по теме с использованием учебника или конспекта
лекций можно проводить по следующей схеме:
- название темы;
- цели и задачи изучения темы;
- основные вопросы темы;
- характеристика основных понятий и определений, необходимых для усвоения
данной темы;
- краткие выводы, ориентирующие на определенную совокупность сведений,
основных идей, ключевых положений, систему доказательств, которые необходимо усвоить.
13
Виды контроля деятельности студентов, применяемые на аудиторных занятиях, их
оценка в рейтинговых баллах
№ п/п Вид контроля
1.
2.
3.
4.
Максимальное количество баллов
В случае пропуска лекции без
Посещение лекционных занятий
уважительной причины текущий рейтинг
снижается на 1 балла
В случае пропуска занятия без
Посещение практических занятий уважительной причины текущий рейтинг
снижается на 1 балла
За защиту практической работы позже
Выполнение практических заданий
установленного срока количество баллов
снижается на 2.
За выполнение по инициативе студента
Выполнение индивидуальных
индивидуальных заданий текущий
заданий в процессе
рейтинг может быть повышен на величину
самостоятельной работы
0 - 10 баллов за задание
Download