Алгоритмы оптимизации на сетях и графах

advertisement
МИНОБРНАУКИ РФ
Федеральное государственное автономное образовательное учреждение
высшего профессионального образования
«Южный федеральный университет»
Факультет математики, механики и компьютерных наук
Рассмотрено и рекомендовано
на заседании кафедры высшей математики
исследования операций ЮФУ
Протокол №_1___________
"__30___"___августа_______2011г.
Зав. кафедрой ________________
УТВЕРЖДАЮ
Декан факультета
(зам. декана по учебной работе)
___________________
"____"____________2011 г.
УЧЕБНО-МЕТОДИЧЕСКИЙ КОМПЛЕКС
учебной дисциплины "Алгоритмы оптимизации на графах"
вузовского компонента цикла ОПД
по специальности 010501прикладная математика и
информатика
Семестр 8
Всего часов –136, из них – лекции 34, - лабораторные занятия 34
–самостоятельная работа 68 час.
Отчетность по курсу – экзамен
Составитель:
доц. Землянухина Л.Н.
Утвержден Советом Южного федерального университета
Протокол №_____ от «______» _________ 2011г.
Ростов-на-Дону
2011
Пояснительная записка к рабочей программе по дисциплине
" Алгоритмы оптимизации на графах "
Курс «Алгоритмы оптимизации на графах» посвящен алгоритмам
дискретной оптимизации на графах и сетях. Курс знакомит с методами построения
эффективных алгоритмов. В курсе рассматриваются комбинаторные алгоритмы,
связанные с поиском структурных и числовых характеристик графов, а также
введение в теорию матроидов, составляющую теоретическую основу для
построения алгоритмов, основанных на «жадном выборе», что важно каждому
специалисту по компьютерной математике и ее приложениям. Рассматриваются
важнейшие разделы теории графов , имеющие широкий спектр приложений и
позволяющие развить навыки формирования моделей принятия решений и их
реализации. Рассматриваемые разделы являются основой информатики и
программирования. Данный курс позволит студентам освоить основные
алгоритмы оптимизации на графах, применять различные алгоритмы для решения
практических задач .
1.1. Цели преподавания.
Целью изучения курса «Алгоритмы оптимизации на графах» является
освоение основных алгоритмов оптимизации на графах (алгоритмы пометок,
динамическое программирование, «жадный » алгоритм и т.п.), укрепление знаний
по фундаментальным концепциям, получение знаний, применимых в различных
сферах деятельности человека. Основной задачей курса является ознакомление
студентов с теоретическими основами построения эффективных алгоритмов
оптимизации на графах. Кроме этого, большое внимание уделяется вопросам
применения теории графов к решению прикладных задач.
РАБОЧАЯ ПРОГРАММА
курса “ Алгоритмы оптимизации на графах“
Лекций - 34час
Лабораторных занятий - 34 час
Тематический план дисциплины.
Тема 1. «Введение»
2 час
Основные определения. «Жадный » алгоритм. Задача составления расписания и
«жадный » алгоритм. Непрерывная задача о рюкзаке и «жадный » алгоритм.
Поиск в ширину Применение поиска в ширину: определение компонент связности,
кратчайшей цепи, матрицы расстояний, эксцентриситета вершины, радиуса и
диаметра графа, диаметральной цепи.
Тема 2. «Поиск в глубину»
2 час
Классификация ребер неориентированного графа и дуг ориентированного графа.
Построение фундаментальной системы циклов неориентированного графа. Блоки,
мосты и точки раздела графа и поиск в глубину. Сильно связные компоненты
орграфа и разбиение орграфа на сильно связные компоненты с помощью поиска в
глубину.
Тема 3. «Задача о кратчайшем остове»
4 час
Алгоритмы Прима и Краскала. Метод структурных деревьев для повышения
эффективности алгоритма Краскала.
Тема 4. «Задача о кратчайшем пути»
4 час
Алгоритмы Дейкстры и Форда. Обоснование. Алгоритм Флойда построения
матрицы взвешенных расстояний. Динамическое программирование как метод
построения эффективных алгоритмов. Задача о кратчайшем пути в бесконтурном
орграфе
Тема 5. «Задача о кратных центрах и медианах»
4 час
Расстояние вершина-вершина. Задача размещения кратного центра. Задача
размещения кратной медианы. Алгоритм древовидного поиска для отыскания
кратной медианы. Сведение задачи о кратных центрах к задаче целочисленного
программирования
Тема 6. «Задача о независимых множествах вершин графа»
4 час
Независимые множества вершин графа. Метод Магу построения всех независимых
полных множеств вершин графа. Метод древовидного поиска для нахождения
наибольшего взвешенного независимого множества вершин. О наибольшем
независимом множестве вершин интервального графа. «Жадный алгоритм»
Тема 7. «Задача о покрытии и разбиении»
6 час
Задача о минимальном покрытии и минимальном разбиении. Метод древовидного
поиск для задачи разбиения.
Тема 8. «Задача о раскраске вершин графа»
6 час
Раскраска вершин графа. Метод динамического программмирования для
раскраски вершин графа в минимальное число цветов. Алгоритм древовидного
поиска для раскраски. Раскраска вершин интервального графа. «Жадный»
алгоритм.
Тема 9. «Эйлеровы и гамильтоновы циклы»
4 час
Задача о гамильтоновых циклах и задача коммивояжера. Битоническая евклидова
задача коммивояжера и динамическое программирование. Метод ветвей и границ
отыскания гамильтонового цикла. Методы решения задачи почтальона.
Темы лабораторных занятий
час.
( в дисплейном классе)
Тема 1. Разработать программу, позволяющую по заданным параметрам
a,b,c,d,n ввести граф в виде списка ребер или дуг
2
Тема 2. Преобразование списка ребер в списки смежности
2
Тема 3. Поиск в ширину.
2
Тема 4. С помощью ПВШ определить степень связности введенного
графа: число компонент связности. Найти все компоненты
2
Тема 5. С помощью ПВШ построить матрицу расстояний, радиус
и диаметр введенного графа, диаметральную цепь.
2
Тема 6. Поиск в глубину для неориентированного и ориентированного
графов
4
Тема 7. Построение фундаментальной системы циклов с помощью ПВГ
2
Тема 8. ПВГ и компоненты связности
2
Тема 9. ПВГ и выделение мостов, блоков и точек раздела
4
Тема 10. ПВГ и выделение сильно связных компонент орграфа
2
Тема 11. Построение остова разными способами
2
Тема 12. Ввод взвешенного графа
2
Тема 13. Кратчайший остов и алгоритм Краскала
2
Тема 14. Кратчайший остов и алгоритм Прима
4
Литература
1. Землянухин В.Н., Землянухина Л.Н. Алгоритмы на графах: Учеб. Пособие. –
Ростов-на-Дону: Издательский центр ДГТУ, 2004. – 49с.
2. Лекции по теории графов./ Емеличев В.А. и др.-М:наука, Гл.ред. физ.мат.лит.
1990.-384 с.
3. Кормен Т., Лейзерсон Ч., Ривест Р. Алгоритмы: построение и анализ.
М.:МЦНМО, 1999. – 960с.
4. Свами М., Тхуласираман К. Графы , сети и алгоритмы . М:Мир , 1984.
5. Кристофидес H . Теория графов . Алгоритмический подход .М:Мир , 1978.
6. Оре О. Теория графов. Алгоритмический подход. М:Мир.1978.
7. Майника Э . Алгоритмы оптимизации на сетях и графах . М:Мир , 1981.
8. Цой, Цхай. Прикладные задачи теории графов. Алма-Ата.1968.
Дополнительная литература
1. Землянухина Л.Н., Аржанов Г.В. Потоки в сетях. Часть 1. Мет.указания. УПЛ
2.Асанов М.О. и др. Дискретная математика: графы, матроиды, алгоритмы. –
Ижевск: НИЦ «Регулярная и хаотическая динамика», 2001
3. Касьянов ВА.Н., Евстигнеев В.А. Графы в программировании: обработка,
визуализация и применение.-СПб.:БХВ-Петербург,2003. - 1104 с.
Самостоятельная работа
На каждую 2 часовую лекцию в рамках самостоятельной работы
предусмотрено 1 час индивидуальной подготовки студентов, для закрепления
лекционного материала, а также освоения некоторых вопросов заданных лекторам
для самостоятельного изучения.
Контрольные вопросы и задания по самостоятельной работе
1. Дана матрица A размера 4 6 и вектор весов b:
0 0 1 1 0 0 


0 1 0 1 1 0 
, b  2,3,1,4,5,3
A
1 0 0 0 1 1


1
0
1
0
0
0


Решить задачу минимального разбиения.
2. . Построить раскраску в минимальное число цветов графа, заданного списком ребер, при
условии, что вершина 4 должна быть окрашена в цвет 1:
Ребра : (1,2)
(3,5)
(1,3)
(4,5) (2,3)
(4,6) (2,4)
(4,7)
(2,5)
(5,7)
(6,7)
3. Найти кратчайший путь в графе, заданном матрицей весов С, из вершины 1в вершину 9:






C 








0 0
0 0
3
0
0
3
0 1
3 0
2 0
0 3
0 2
3
0
0
4
3
0
3
2
0
0
3
4
0
0
4
3
2
4
0 3
1 0
3 0
0 4
0 0
0 0
0 3
3 0
0 3
2 0 0
0
3 2
3 2 0
3 2 4
0 3
0
3 0 3
0 0 0
0 0 0
0 0 0















4. Решить задачу минимального разбиения, если
вектор коэффициентов следующие
|
А = |
|
|
|
1
1
0
0
0
0
0
1
0
1
1
0
1
0
1
0
1
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
1
1
4
3
3
2
2
3
3
с = {
|
|
|
|
|
-
5. Дана матрица весов C размера 44 :
}
матрица и
M

4
C 
5

2
1 5 6 

M 1 4 
. Решить задачу коммирояжера
6 M 1 

8 6 M 
6. Найти дерево кратчайших путей с корнем в вершине 1. Граф задан списком дуг и их весов.
Дуга
Вес
Дуга Вес
Дуга Вес
Дуга Вес
(1,2)
1
(1,3)
1
(1,4)
2
(3,2)
1
(2,3)
1
(3,4)
1
(4,3)
1
(2,5) 3
(3,5)
2
7. Найти максимальное взвешенное независимое множество вершин графа, заданного списком
ребер: {(1,2),(1,5),(2,3),(2,4),(3,4),(3,5),(4,5),(4,6),(5,6),(5,7),(6,7),(6,8) (6,9),(7,8),(8,9)}
и весами вершин : (2,3,2,3,2,4,1,2,3)
8. Дан произвольный граф с четным числом вершин. На множестве ребер задана весовая
функция. Как с помощью алгоритма построения минимального разбиения найти минимальное
взвешенное совершенное паросочетание.? (Примечание. Совершенное паросочетание – это
множество попарно несмежных ребер, число которых равно половине числа вершин).
9. Дано множество {1,2,3,4,5,6} и набор его подмножеств с весами:
Подмн-во
Вес
Подмн-во
Вес
Подмн-во
Вес
{1,3,5}
1
{2,4}
4
{6}
2
{4,6}
6
{2}
2
{1,2,3}
3
{4,5}
2
{5}
3
{1,4,5}
4
{2,3}
1
Найти минимальное разбиение.
10. Дан произвольный граф и веса ребер. Как с помощью алгоритма построения максимального
взвешенного множества вершин найти максимальное взвешенное паросочетание?
ВОПРОСЫ к экзамену
спецкурса " Алгоритмы оптимизации на графах и сетях "
1. Поиск в ширину. Формальное описание. Сложность алгоритма.
2. Применение поиска в ширину: определение компонент связности.
3. ПВШ и кратчайшая цепь. Дерево кратчайших цепей и матрица расстояний.
4. ПВШ и эксцентриситет вершины, радиуса и диаметра графа, диаметральная цепь.
5. Поиск в глубину. Классификация ребер неориентированного графа и дуг
ориентированного графа. Формальное описание. Сложность алгоритма
6. ПВГ и построение фундаментальной системы циклов неориентированного графа.
Формальное описание алгоритма.
7. ПВГ и блоки, мосты и точки раздела графа. Формальное описание алгоритма.
8. ПВГ и сильно связные компоненты орграфа. Формальное описание алгоритма.
9. Задача кратчайшего остова. Алгоритм Краскала. Метод структурных деревьев для
повышения эффективности алгоритма. Формальное описание.
10. Задача кратчайшего остова. Алгоритм Прима Формальное описание..
11. Задача о кратчайшем пути . Алгоритм Дейкстры. Формальное описание алгоритма.
12. Алгоритм Форда. Обоснование. Формальное описание алгоритма.
13. Алгоритм Флойда построения матрицы взвешенных расстояний. Формальное
описание алгоритма.
14. Задача о независимых множествах вершин графа. Метод древовидного поиска для
нахождения наибольшего взвешенного независимого множества вершин. Формальное
описание алгоритма.
15. О наибольшем независимом множестве вершин интервального графа. Формальное
описание алгоритма.
16. Задача о минимальном разбиении. Метод древовидного поиск для задачи разбиения.
Формальное описание алгоритма.
Федеральное агентство по образованию
Российской Федерации
Государственное образовательное учреждение
высшего профессионального образования
«РОСТОВСКИЙ ГОСУДАРСТВЕННЫЙ
УНИВЕРСИТЕТ»
Механико-математический факультет
Кафедра исследования операций
Экзаменационный билет № 1
по с\к « Алгоритмы оптимизации на сетях и графах»
1. Формальное описание алгоритма Прима. Оценка сложности.
2. Описать схему нахождения диаметра и диаметральной цепи связного графа.
3. На какие подмножества разбивает дуги орграфа поиск в глубину? Как алгоритм ПВГ
распознает принадлежность дуги к какому-либо подмножеству?
4. Описать схему одностороннего обхода дерева вариантов в задаче о наибольшем
независимом множестве вершин графа.
5. Что такое точка раздела? Как алгоритмически ее распознать?
Зав. кафедрой _______________Экзаменатор __________________
15 июня 2006 г.
------------------------------------------------------------------------------------------------------------Федеральное агентство по образованию
Российской Федерации
Государственное образовательное учреждение
высшего профессионального образования
«РОСТОВСКИЙ ГОСУДАРСТВЕННЫЙ
УНИВЕРСИТЕТ»
Механико-математический факультет
Кафедра исследования операций
Экзаменационный билет № 2
по с\к « Алгоритмы оптимизации на сетях и графах»
1. Формальное описание алгоритма Краскала. Оценка сложности.
2. Как с помощью алгоритма Флойда можно найти диаметра связного графа.
3. На какие подмножества разбивает ребра неориентированного графа поиск в глубину?
Как алгоритм ПВГ распознает принадлежность ребра к какому-либо подмножеству?
4. Описать схему одностороннего обхода дерева вариантов в задаче о наименьшем
разбиении.
5. Что такое блок? Как алгоритмически его распознать?
Зав. кафедрой _______________Экзаменатор __________________
15 июня 2006 г.
Федеральное агентство по образованию
Российской Федерации
Государственное образовательное учреждение
высшего профессионального образования
«РОСТОВСКИЙ ГОСУДАРСТВЕННЫЙ
УНИВЕРСИТЕТ»
Механико-математический факультет
Кафедра исследования операций
Экзаменационный билет № 3
по с\к « Алгоритмы оптимизации на сетях и графах»
Формальное описание алгоритма построения фундаментальной системы циклов графа.
Как с помощью алгоритма Флойда можно найти диаметральную цепь связного графа.
Три основных операции над структурными деревьями.
Сформулировать и правила отсечения в методе древовидного поиска для задачи о
наибольшем независимом множестве вершин графа.
5. Что такое мост? Как алгоритмически его распознать?
1.
2.
3.
4.
Зав. кафедрой _______________Экзаменатор __________________
15 июня 2006 г.
--------------------------------------------------------------------------------------------------------------------Федеральное агентство по образованию
Российской Федерации
Государственное образовательное учреждение
высшего профессионального образования
«РОСТОВСКИЙ ГОСУДАРСТВЕННЫЙ
УНИВЕРСИТЕТ»
Механико-математический факультет
Кафедра исследования операций
Экзаменационный билет № 4
по с\к « Алгоритмы оптимизации на сетях и графах»
1. Формальное описание алгоритма построения блоков, мостов и точек раздела графа.
2. Как с помощью алгоритма Флойда можно распознать связность графа?
3. Правило «жадного » выбора для нахождения максимального независимого множества
вершин интервального графа.
4. Сформулировать и правила отсечения в методе древовидного поиска для задачи
оптимального разбиения.
5. Как с помощью ПВШ построить матрицу расстояний «невзвешенного» графа
Зав. кафедрой _______________Экзаменатор __________________
15 июня 2006 г.
Download