Алгоритм КиркпатрикаПостроение выпуклой оболочки методом «разделяй и властвуй» — алгоритм построения выпуклой оболочки.
ОписаниеДано множество , состоящее из точек.
Поскольку: , сложность этого алгоритма является решением рекурсивного соотношения , где — время построения выпуклой оболочки объединения двух выпуклых многоугольников, каждый из которых имеет около вершин. Далее будет показано, что . ОпределенияОпорной прямой к выпуклому многоугольнику называется прямая , проходящая через некоторую вершину многоугольника таким образом, что все внутренние точки многоугольника лежат по одну сторону от прямой . К выпуклому многоугольнику можно построить опорные прямые из точки , не принадлежащей ему. Воспользуемся тем, что прямая , где — некоторая вершина многоугольника , является опорной к в том и только в том случае, если ребра и лежат в одной полуплоскости, ограниченной этой прямой. Нетрудно видеть, что для построения опорных прямых требуется в худшем случае один обход вершин многоугольника , то есть они ищутся за линейное время. РеализацияПусть мы уже имеем построенные выпуклые оболочки и .
Теперь получена выпуклая оболочка объединения выпуклых многоугольников . Сложность алгоритмаВ сумме все три фазы алгоритма выполняются за время . Таким образом, и получаем соотношение , решением которого, как известно, является , что и определяет сложность алгоритма. Ссылки
Категория:
Источник: Русская википедия 2012 | ||||||
Вы можете разместить ссылку на этот материал у себя на сайте, блоге или форуме
Похожие статьи Алгоритм КиркпатрикаАлгоритм Киркпатрика Построение выпуклой оболочки методом «разделяй и властвуй» — алгоритм построения выпуклой оболочки. Содержание 1 Описание 2 Определения 3 Реализация 4 Сложность алгоритма 5 Ссылки Описание Дано множество , состоящее из точек. Если ( — некоторое небольшое целое число), то построить выпуклую оболочку одним из известных методов и остановиться, иначе перейти к шагу 2. Разобьем исходное множество произвольным образом на два примерно равных по мощности подмножества и (пусть содержит точек, а содержит точек). Рекурсивно Алгоритм Киркпатрика Алгоритм Киркпатрика Алгоритм Киркпатрика Текущая версия (не проверялась) Построение выпуклой оболочки методом «разделяй и властвуй» — алгоритм построения выпуклой оболочки. Содержание 1 Описание 2 Определения 3 Реализация 4 Сложность алгоритма 5 Ссылки Описание Дано множество S, состоящее из N точек. Если |S| k0 (k0 — некоторое небольшое целое число), то построить выпуклую оболочку одним из известных методов и остановиться, иначе перейти к шагу 2. Разобьем исходное множество S произвольным образом на два примерно равных по мощности Алгоритм Ву Алгоритм Ву Распределение интенсивности пикселя в зависимости от расстояния до идеальной линии Алгоритм Ву — это алгоритм разложения отрезка в растр со сглаживанием. Был предложен У Сяолинем (Xiaolin Wu, отсюда устоявшееся в русском языке название алгоритма) в статье, опубликованной журналом Computer Graphics в июле 1991 года. Алгоритм сочетает высококачественное устранение ступенчатости и скорость, близкую к скорости алгоритма Брезенхема без сглаживания. Алгоритм Горизонтальные и вертикальные линии не требуют никакого сглаживания, поэтому их Алгоритм Ли Алгоритм Ли Алгоритм Ли — волновой алгоритм поиска пути на карте, алгоритм трассировки. С его помощью можно построить путь, или трассу, между двумя любыми элементами в лабиринте. Из начального элемента распространяется в четырёх направлениях волна. Тот элемент, в который она пришла, образует фронт волны. Элементы первого фронта волны являются источниками вторичных волн. Элементы второго фронта генерируют волну третьего фронта и так далее. Процесс заканчивается тогда, когда достигается конечный элемент. На втором этапе строится трасса. КМП-алгоритм КМП-алгоритм Алгоритм Кнута — Морриса — Пратта (КМП-алгоритм) — алгоритм поиска образца (подстроки) в строке. Содержание 1 Постановка задачи 2 История возникновения 3 Пример практической реализации 4 Реализация алгоритма на языке Паскаль 5 Реализация алгоритма на языке C++ 6 Реализация алгоритма на языке Си 7 Реализация алгоритма на языке С# 8 Ссылки 9 См. также Постановка задачи Поставим следующую задачу: имеется образец и строка , и нужно определить индекс, начиная с которого строка содержится в строке . Если не содержится в — вернуть индекс, Искать все статьи, похожие на текущую (Алгоритм Киркпатрика) |
| Универсальная энциклопедия 2012 Карта сайта Страница создана за 0.042765 сек. Всего документов включено в базу знаний: 5150576 |