Изменения

Перейти к: навигация, поиск
Алгоритм
==Алгоритм ==
Сперва приведем алгоритм, корректность которого позднее будет доказана.
Рассмотрим метод <tex> MinDisc </tex>, который будет принимать на вход множество точек, а возвращать будет искомую охватывающую окружность. Идея метода в том, что он генерирует случайную перестановку из точек, которые поступили на вход и в получившимся порядке по одной добавляет их в текущую охватывающую окружность. Как будет доказано позднее, если на каком-то шаге алгоритма текущая точка оказалась вне текущей минимальной окружности, то утверждается, что она лежит на границе новой окружности, которая будет содержать в себе ее и все предыдущие точки. Опишем приведенный выше алгоритм псевдоком:
 
MinDisc(S)
Let P - random permutation of S
Let D2 - be the smallest enclosing disc for {p1, p2}.
for i = 3 to n {
if pi <tex> \in </tex> Di−1 then Di = Di−1 // point is inside. nothing to do here
else Di = MinDiscWithPoint ({p1,...,pi−1}, pi) // point is lying on the boundary of minimal circle
}
return Dn
==Корректность алгоритма==
333
правки

Навигация