Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
дискретная математика 2.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
1.04 Mб
Скачать

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), то его называют линейным. Если его сложность , то его называют экспоненциальным. Задача о кратчайшем пути и его назначениях называется полиномиальной. Понятие сложности иллюстрируется в следующей таблице:

Сложность алг.

Макс. Разм. Задачи.

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мс.

ПРИМЕРЫ