Первая пара
Содержание:
Задача о мин. остове
Дан взвешанный граф
$G = (V, E, c)$
Остов - подграф, являющийся деревом и содержащий все вершины исходного графа.
$T$ - остов ($T \subset E$), если:
- $T$ - дерево
- граф $T = (V, E, c)$ содержит все вершины
Решения:
1. Алгоритм Борувки-Краскла
(Жадный алгоритм)
Почему?
Жадные алгоритмы начинают с тривиального леса $r_0$
Алгоритм:
- Начать с тривиального леса $r_0$
- До тех пор, пока текущий лес $r$ не сольётся в одно дерево, проводить приращение $r$ по минимальному внешнему ребру
Сложность: $O(n\ln_{n})$
2. Алгоритм Ярника-Прима-Дейкстры
(Пожирающий алгоритм)
Алгоритм:
- Одну из вершин объявить растущим деревом
- Пока растущее дерево не стало остовом, проводить приращение по минимальному внешнему ребру
Сложность: $O(n^{2})$
Проектирование радиоизделий
******************
* ## *
* ###-------## *
* # # | *
* ### #### *
* ##---# # *
* ## #### *
* *
******************
1. Задача о размещении изделий на плате
2. Задача о трассировке
$A = (x_1, y_1)$
$B = (x_2, y_2)$
$\sqrt{(x_1 - x_2)^2 + (y_1 - y_2)^2}$ - так расстояние никто не считает
- Извлечение квадратного корня - трудоёмкая операция
- Теряется целочисленность
Первая (Манхеттенова) метрика
$p_1 = \mid x_1 - x_2\mid + \mid y_1 - y_2\mid$
Задача Штейнера
Задан взвешенный граф
$G = (V, E, c)$
Задано множество выделенных вершин $V’ \subset V$
Требуется найти подграф $G’ = (V’’, E’’, c)$ графа $G$, такой, чтобы:
- $G’$ - минимального веса
-
$V’’ \supset V’$
- $G’$ - дерево
Задачи о кратчайших путях
Задан ориентированный взвешанный граф (сеть)
$G = (V, E, c)$
Задана вершина $v \in V$
$\forall u, w$ стоимость $p = (u, w)$ - путь
$\mid p\mid = \sum {p(e), e \in p}$
Требуется:
Для заданной пары $v,w$ найти $(v, w)$-путь минимального веса
Общий случай
В $G$ нет контура отрицательной длины
Алгоритм Форда-Беллмана
$d_k(w)$ - длина кратчайшего $(w, v)$-пути, среди всех путей, содержащих не более $k$ ребер.
Алгоритм:
Последовательно вычислять для всех $k, w$: $d_1(w), d_2(w), .., d_{n-1}(w)$
используя равенство: $d_{n-1}(w)$ - ответ