
- •26.Определениее графа.Основ.Хар-ки.Виды графов
- •27.Связязность.
- •28.Эйлеровы графы.
- •29.Циклы Гамильтона:теорема,ее следствие(теор.Дирака).Задача китайского почтальона.Задача коммивояжера.
- •30. Изоморфизм графов
- •31. Метрические характеристики графов.
- •32. Деревья.
- •33. Планарные графы
- •34. Раскраска графов.
- •35. Паросочетания
- •36. Экстремальные пути в нагруженных ориентировочных графах
- •37. Сети: опр., пути в сетях, алгоритм Форда - Фалкерсона.
- •38.Фундаментальная система циклов графа.
- •39.Операции над графами
- •40. Вычислительная сложность алгоритмов (Дейкстры, Прима, Краскала)
- •41. Мт: опр., примеры.
- •42: Мт как преобразователь.
39.Операции над графами
Р
ассмотрим
семь операций над графами, три из которых
являются бинарными, включающими два
графа, а остальные четыре – унарные, т.
е. определены на одном графе.
Объединение графов
и
, обозначаемое как
,
представляет такой граф
,
что множество его вершин является
объединением
и
, а множество ребер – объединением
и
. Граф
, полученный операцией объединения
графов
и
.
Пересечение графов
и
,
обозначаемое как
,
представляет собой граф
.
Таким образом, множество вершин графа
G4 состоит из вершин, присутствующих
одновременно в
и
.
Кольцевая сумма двух графов
и
,
обозначаемая как
,
представляет собой граф G5 , порожденный
на множестве ребер
.
Другими словами, граф G5 не имеет
изолированных вершин и состоит только
из ребер, присутствующих либо в G1 , либо
в G2 , но не в обоих одновременно.
Удаление вершины Если
-вершина графа G = (X, A), то
-порожденный
подграф графа G на множестве
,
т. е.
является
графом, получившимся после удаления из
графа G вершины
и всех ребер, инцидентных этой вершине.
Удаление ребра или удаление дуги
Если
-дуга графа G=(X, A), то
–
подграф графа G, получающийся после
удаления из G дуги
. Заметим, что концевые вершины дуги
не удаляются. Удаление из графа множества
вершин или дуг определяется как
последовательное удаление определенных
вершин или дуг.
Замыкание или отождествление
Говорят, что пара вершин
и
в графе G замыкается (или отождествляется),
если они заменяются такой новой вершиной,
что все дуги в графе G, инцидентные
и
, становятся инцидентными новой вершине.
Стягивание: Под стягиванием
подразумевают операцию удаления дуги
или ребра и отождествление его концевых
вершин.(а->д)
40. Вычислительная сложность алгоритмов (Дейкстры, Прима, Краскала)
Будем рассматривать алгоритм как эффективное описание действия. Будем считать действие m эффективным, если: 1)m описано конечным числом точных инструкций, каждая из которых выражена конечным числом символов.2) В случае, когда m проводится правильно, то оно обязательно даёт желаемого результата за конечное число шагов и за конечное время. 3) m может быть в принципе проведено человеком, вооружённым пером и бумагой. Алан Тьюринг, человек, вооружённый карандашом, бумагой и системой знаний о предмете – есть пример эффективного вычислителя. Выполнение алгоритма не требует ни проницательности, ни изобретательности. Надо просто следовать инструкциям.
Алгоритмы и их сложность.
Различают массовые и индивидуальные задачи. Примеры массовых задач:
задача о кратчайшем пути, задача
Коммивояжеры, задача о назначениях и
др. Индивидуальная задача получается
из массовой с помощью фиксаций набора
условий. Каждая массовая задача
характеризуется размером (мерой
количества входных данных). Например,
в задаче Коммивояжеры размерность –
это число городов. Алгоритм – это общий
пошаговый способ получения решения
данной задачи. Формализуют понятие
алгоритма машину Тьюринга рекурсивной
функцией и нормальный алгоритм Марка.
Для оценки качества алгоритмов применяют
следующие критерии: 1) Временная сложность
в худшем случае. Пусть размер массовой
задачи определяется параметром n.
Обозначим через t(n)
максимальное число действий для решения
конкретной индивидуальной задачи. t(n)
– есть временная сложность алгоритма.
2) Асимптотическая сложность. Это порядок
роста сложности при условии, что размер
задачи неограниченно возрастает. При
сравнении скорости 2-х неотрицательных
функций f(n)
и g(n)
используют следующие обозначения
f(n)=0(g(n)).
Говорят, что f(n)=0(g(n)),
если существуют такие положительные
константы c и N,
что f(n)<=c*g(n)
для всех n>N.
В этой же ситуации используют g(n)=
.
Алгоритм считается достаточно хорошим,
если его сложность есть O(n^k),
при некотором к>0. В этом случае говорят,
что алгоритм имеет полиномиальную
сложность. Задача решается за полиномиальное
время и называется полиномиально
разрешимой. Если сложность алгоритма
u(n), то его
называют линейным. Если его сложность
,
то его называют экспоненциальным. Задача
о кратчайшем пути и его назначениях
называется полиномиальной. Понятие
сложности иллюстрируется в следующей
таблице:
Сложность алг. |
Макс. Разм. Задачи. |
||
1с |
1м |
1ч |
|
n |
1000 |
6*10^4 |
36*10^5 |
n*log2(n) |
140 |
4895 |
204095 |
n^2 |
31 |
245 |
1897 |
n^3 |
10 |
39 |
153 |
2^n |
10 |
16 |
22 |
Пусть 1 шаг работы алгоритма требует для выполнения 1мс.
ПРИМЕРЫ