По окончании изучения указанной дисциплины студент должен

advertisement
Программа учебного курса
Комбинаторные алгоритмы обработки графовой информации.
Приложения к программированию
Курс реализуется в рамках направления 552800 «Информатика и вычислительная
техника», относится к циклу специальных дисциплин.
Организационно-методический раздел.
I.
1.1.Цели и задачи курса
Цели курса
-
систематизация знаний о возможностях и особенностях применения различных
алгоритмов обработки графовой информации в зависимости от конкретных
требований к разрабатываемой системе, о взаимозависимости используемых
алгоритмов при создании системы, а также о структурах данных, позволяющих
эффективную реализацию этих алгоритмов.
-
начальное формирование у студента точки зрения аналитика, способного
сделать обоснованный выбор методов, алгоритмов и структур данных для
решения задач разного типа, умеющего определить критерии этого выбора и
увязать принятые решения в единую систему.
Задачи курса
-
дать сравнительный анализ методов и алгоритмов, применяемых для решения
различных подзадач на каждом этапе разработки системы, рассмотреть
основные целевые функции, и способы их оптимизации.
-
продемонстрировать взаимосвязи между алгоритмами и методами,
выбираемыми для реализации отдельных подсистем, и влияние этих выборов на
глобальный результат работы системы.
-
показать значимость и полезность теоретических результатов, излагаемых в
курсе, для решения практических вопросов на уровне создания систем.
1.2.Требования к уровню освоения содержания курса
По окончании изучения указанной дисциплины студент должен
иметь представление
- об основных областях, в которых используются методы данного курса
- о проблемах, решаемых при создании систем генерации и визуализации
графовой информации в различных областях,
- об основных требованиях, предъявляемых к системам в зависимости от области
применения
знать
-
оценки сложности основных алгоритмов и характеристики получаемых
результатов
способы оптимизации различных целевых функций
границы применимости существующих алгоритмов на практике
уметь
- разбить задачу на подзадачи и организовать в систему отдельные подсистемы,
решающие выделенные подзадачи
- сделать сравнительный анализ известных алгоритмов и обосновать их выбор
при разработке систем разных типов
- выбирать структуры данных, позволяющих эффективную реализацию
известных алгоритмов
1.3.Формы контроля
Итоговый контроль. Для контроля усвоения дисциплины учебным планом
предусмотрен экзамен по теоретической части.
Текущий контроль.
2. Содержание дисциплины.
2.1.Новизна и актуальность курса
За последние 10 лет значительно расширился круг областей, в которых
используются алгоритмы автоматической генерации графовой информации и ее
визуализации. Проектирование и реинжениринг программного обеспечения,
проектирование баз данных, различные системы автоматизации пректирования список может оказаться очень длинным. По мере того как возрастают размеры
автоматически генерируемых графов, возрастает необходимость в развитых и
изощренных алгоритмах для их обработки. Знакомство с такими алгоритмами и их
применением при реализации различных систем и является целью данного курса.
2.2.Тематический план курса (распределение часов).
Наименование разделов и тем
Лекции
Раздел 1 Введение
Раздел 2. Задача визуализации
графовой информации
Раздел 3. Вспомогательные
алгоритмы
Раздел 4. Основные этапы
обработки для графов общего
вида.
Раздел 5. Задача разбиения
графа
Количество
ЛабораторСеминар ные работы
ы
часов
Самостоятельная работа
Всего
часов
12
14
12
14
6
6
4
4
8
8
Раздел 6. Задача размещения
Раздел 7. Задача проведения
соединения
на
плоскости
(задача трассировки)
Раздел 8 Задача размещения
иерархических структур
10
10
10
10
8
8
Итого по курсу:
72
72
2.3.Содержание отдельных разделов и тем.
А) Теоретическая часть
1. Базовые понятия.
1.1 Примеры различных практических приложений в области software
engineering, где используются алгоритмы данного курса.
1.2 Напоминание основных определений, касающихся графов и деревьев,
и базовых алгоритмов работы с графами (поиск в глубину и поиск
в ширину, поиск кратчайшего пути, покрывающие деревья и деревья
Штейнера, двусвязные компоненты, задача о максимальном потоке).
2.
Задача визуализации графовой информации
2.1 Задача и методы визуализации графов.
2.2 Расположение графов на плоскости. Критерии для оптимизации
изображений графов: минимизация площади, длины соединений,
изгибов, максимизация углов, симметрии...
2.3Деревья, разные способы изображения деревьев. Простой алгоритм
поуровневого рисования деревьев и его свойства. Алгоритм
оптимальной по площади отрисовки деревьев.
2.4 Изображение плоских графов
2.5 Основные этапы построения ортогонального изображения для планарных графов
2.6 Задача минимизации сгибов
2.7 Построение обзорного изображения графа
2.8 Задача вычисления геометрических размеров для вершин и ребер графа.
2.9 Модель Кандинского
2.10 Поуровневое рисование ориентированных графов
1.11 Некоторые точные пространственно-временные оценки сложности
алгоритмов для разных классов графов.
3. Вспомогательные алгоритмы.
3.1 Метод сканирующей прямой и алгоритм поиска пересечений прямоугольников.
3.2 Задача компактизации и построение графа ограничений при помощи алгоритма
сканирующей прямой
4. Основные этапы обработки для графов общего вида.
4.1 Движение по иерархии сверху вниз и снизу вверх
4.2 Разбиение графа, иерархическое планирование площади, размещение, трассировка
глобальная и детальная.
5.Задача разбиения графа
5.1 Формулировка проблемы
5.2 Алгоритм Kernighan и Lin
5.3 Алгоритм Fiducchia - Mattheyses
5.4 Многуровневое разбиение (hMetis)
6.Задача размещения
6.1 Формулировка проблемы размещения
6.2 Оценка качества размещения
6.3 Метод начального размещения при помощи минимизации квадратичного
функционала
6.4 Силовые методы размещения
6.5 Размещение при помощи алгоритма разбиения графа(Min-Cut algorithm)
6.6 Алгоритм Dunlop и использование информации о позициях терминалов (terminal
propagation)
6.7 Алгоритм квадрисекции
6.8 Размещение при помощи генетического алгоритма
7. Задача размещения иерархических структур (floorplanning).
7.1 Формулировка проблемы планирования площади.
7.2 Разрезающие планы (Slicing Floorplans) и их представление при помощи деревьев
разрезов (Slicing Trees)
7.3 Польская запись для представления разрезающих планов (Slicing Floorplans).
7.4 Оптимизация плана при помощи метода имитации отжига
7.5 Пары цепочек(sequence pair): представление для неразрезающих планов.
7.6 Построение плана по последовательности цепочек
7.7 Оценка размеров кристалла поиском наибольшей общей подцепочки
7.8 Представление плана при помощи графа транзитивных замыканий (TCG) и
модификации плана при помощи локальных трансформаций графа TCG
7.9 Представление плана при помощи В* деревьев и настройка на многоуровневые
методы планирования
8. Задача проведения соединений на плоскости (задача трассировки)
8.1 Формулировка проблемы и классификация алгоритмов трассировки.
8.2 Трассировка лабиринтов:волновой алгоритм Ли и его модификации.Трассировка
многотерминальных соединений. Одновременная трассировка многих соединений.
8.3 Канальные трассировщики. Граф горизонтальных и граф вертикальных ограничений,
плотность канала. Алгоритм левого конца. Многослойные канальные трассировщики
8.4 Глобальная трассировка. Построение графа глобальной трассировки
8.5 Дерево Штейнера и его вариации
8.6 Моделирование пропускной способности при помощи потоковой модели.
Б) Практические занятия
Не предусмотрено
2.4. Перечень примерных контрольных вопросов и заданий для самостоятельной
работы – см. раздел 3.1 (темы рефератов для самостоятельной работы), см. раздел 3.2
(вопросы для подготовки к экзамену).
3. Учебно-методическое обеспечение дисциплины
3.1. Темы рефератов
3.2. Образцы вопросов для подготовки к экзамену
Раздел 1.
1) Алгоритмы поиска в глубину и поиска в ширину на графе
2) Алгоритм поиска кратчайшего пути
3) Алгоритм поиска покрывающего деревья
4) Поиск двусвязных компонент в графе
5) Задача о максимальном потоке в сети.
Раздел 2.
6) Критерии для оптимизации изображений графов на плоскости: минимизация площади,
длины соединений, изгибов, максимизация углов, симметрии.
7) Простой алгоритм поуровневого рисования деревьев и его свойства.
8) Алгоритм оптимальной по площади отрисовки деревьев.
9) Планарные графы и их изображения, критерии планарности графов.
10) Проверка планарности графов
11) Изображение плоских графов
12) Основные этапы построения ортогонального изображения для планарных графов
13) Задача минимизации сгибов
14) Построение обзорного изображения графа
15) Задача вычисления геометрических размеров для вершин и ребер графа.
16) Модель Кандинского
17) Поуровневое рисование ориентированных графов
18) Некоторые точные пространственно-временные оценки сложности
алгоритмов для разных классов графов.
Раздел 3.
19) Метод сканирующей прямой и алгоритм поиска пересечений прямоугольников.
20) Задача компактизации и построение графа ограничений при помощи алгоритма
сканирующей прямой
Раздел 4.
21) Основные этапы построения представления для графов общего вида: разбиение
графа, иерархическое планирование площади, размещение, трассировка глобальная и
детальная.
Раздел 5.
22) Целевые функции используемые при разбиении графа
23) Алгоритм Kernighan и Lin
24)Алгоритм Fiducchia - Mattheyses
25) Многуровневое разбиение (hMetis)
Раздел 6.
26) Формулировка проблемы размещения
27) Оценка качества размещения
28) Метод начального размещения при помощи минимизации квадратичного
функционала
29) Силовые методы размещения
30) Размещение при помощи алгоритма разбиения графа(Min-Cut algorithm)
31) Алгоритм Dunlop и использование информации о позициях терминалов (terminal
propagation)
32) Алгоритм квадрисекции
33) Размещение при помощи генетического алгоритма
Раздел 7.
34) Формулировка проблемы планирования площади.
35)Разрезающие планы ( Slicing Floorplans) и их представление при помощи деревьев
разрезов (Slicing Trees)
36) Польская запись для представления разрезающих планов (Slicing Floorplans)
37) Оптимизация плана при помощи метода имитации отжига
38) Пары цепочек(sequence pair): представление для неразрезающих планов.
39) Построение плана по последовательности цепочек
40) Оценка размеров кристалла поиском наибольшей общей подцепочки
41) Представление плана при помощи графа TCG (граф транзитивного замыкания) и
модификации плана при помощи локальных трансформаций графа TCG
42) Представление плана при помощи В* деревьев и настройка на многоуровневые
методы планирования
Раздел 8.
Задача проведения соединений на плоскости (задача трассировки)
43)Формулировка проблемы и классификация алгоритмов трассировки.
44) Трассировка лабиринтов:волновой алгоритм Ли и его модификации.
45) Трассировка многотерминальных соединений.
46) Одновременная трассировка многих соединений.
47) Канальные трассировщики.
48) Граф горизонтальных и граф вертикальных ограничений, плотность канала.
49) Алгоритм левого конца.
50) Многослойные канальные трассировщики
51) Глобальная трассировка. Построение графа глобальной трассировки
52) Дерево Штейнера и его вариации
53) Моделирование пропускной способности при помощи потоковой модели.
3.3. Список
основной и дополнительной литературы:
1. Ф. Ахо, Дж.Хопкрофт, Дж. Д Ульман Построение и анализ вычислительных
алгоритмов Москва Мир 1979.
2. Емеличев В.А., Мельников О.И., Сарванов В.И., Тышкевич Р.И. Лекции по теории
графов Наука, Физматлит, 1990.
3. В.А.Евстигнеев В.Н.Касьянов Графы в программировании: обработка
визуализация и применение. БХВ Петербург.
4. Isabel F. Cruz, Roberto Tamassia . Graph Drawing - Tutorial
www.cs.brown.edu/people/rt/ papers/gd-tutorial/gd-constraints.pdf
5. Ривест Р., Кормен Т., Лейзерсон Ч. Алгоритмы: построение и анализ.
Москва МЦНМО 2002.
5. Дж. Д Ульман Вычислительные аспекты СБИС Москва Радио и связь 1990
6. Апанович З.В. Марчук А.Г.Современные стили проектирования и алгоритмы
размещения при проектировании СБИС// Системная информатика Вып 1
Проблемы современного программирования.- Новосибирск Наука Сиб отд-ние
1991
7. Апанович З.В. Задача миграции технологии СБИС и алгоритмы
компактизации//Системная информатика Вып 5 Архитектура, формальные и
программные модели Новосибирск Наука Сиб отд-ние 1997
8. Теория и методы автоматизации пректирования вычислительных систем Под
редакцией М.Брейера Мир Москва 1977
9. G Karypis V Kumar Multilevel k-way Hupergraph Partitioning {karypis,
kumar}@cs.umn.edu
Программу подготовил:
к.ф.-м.н.
Апанович З.В.
Программа утверждена на заседании Ученого совета факультета информационных
технологий Новосибирского государственного университета 18 декабря 2003 г., протокол
заседания №16.
Декан ФИТ НГУ,
д.ф.-м.н.
М.М.Лаврентьев
Download