Анимация алгоритма Форчуна, техники заметающей прямой для построения диаграмм Вороного.

Алгоритм заметающей прямой или алгоритм выметания плоскости — это алгоритмическая парадигма, которая использует умозрительную выметающую прямую или выметающую поверхность для решения различных задач в евклидовом пространстве. Это одна из ключевых техник в вычислительной геометрии.

Идея алгоритмов этого типа заключается в представлении себе воображаемой прямой (обычно вертикальной), которая движется по плоскости, перемещаясь от точки к точке. Геометрические операции ограничены геометрическими объектами, которые или пересекаются, или примыкают к выметающей прямой, а полное решение доступно, когда прямая пройдёт через все объекты.

История

править

Этот подход можно отследить от алгоритмов построчного сканирования[англ.] в компьютерной графике, затем он использовался в ранних алгоритмах компоновки интегральных схем[англ.], в которых геометрическое описание интегральной схемы проводилось в виде параллельных полосок, поскольку полное описание не помещалось в память.

Приложения

править

Применение этого подхода привело к прорыву в вычислительной сложности геометрических алгоритмов, когда Шамос[англ.] и Хоуи представили алгоритмы для пересечения отрезков на плоскости, и, в частности, они описали, как комбинация подхода сканирующей прямой с эффективными структурами данных (сбалансированных бинарных деревьев[англ.]) делает возможным обнаружить, имеются ли пересечения N отрезков на плоскости, со сложностью O[1]. Тесно связанный алгоритм Бентли — Оттманна использует технику выметающей прямой, чтобы получить все K пересечений среди любых N отрезков на плоскости с временной сложностью и сложностью по памяти [2].

С того времени этот подход использовался для разработки эффективных алгоритмов для ряда задач, таких как построение диаграммы Вороного (алгоритм Форчуна) и триангуляции Делоне или булевых операций над многоугольниками.

Обобщения и расширения

править

Топологическое выметание — это вид выметания плоскости с ослаблением требований к порядку обрабатываемых точек, что позволяет избежать полной сортировки точек и позволяет алгоритму выметающей прямой работать более эффективно.

Техника вращающегося кронциркуля[англ.] для построения геометрических алгоритмов может также быть проинтерпретирована как вид выметания в проективной двойственной плоскости — проективная двойственность преобразует наклон прямой в плоскости в x-координату точки в двойственной плоскости, так что прохождение прямой отсортировано по её наклону. Таким образом, процесс алгоритма вращающегося кронциркуля является двойственным процессом прохождения через точки, отсортированные по их x-координатам в алгоритме выметания плоскости.

Подход «выметания» может быть обобщён для более высоких размерностей.

Примечания

править

Литература

править
  • Michael I. Shamos, Dan Hoey. Geometric intersection problems // Proc. 17th IEEE Symp. Foundations of Computer Science (FOCS '76). — 1976. — С. 208–215. — doi:10.1109/SFCS.1976.16.
  • Diane Souvaine. Line Segment Intersection Using a Sweep Line Algorithm. — 2008.

📚 Artikel Terkait di Wikipedia

Алгоритм Марзулло

количество источников за вычетом наилучших отобранных.  (англ.)Intersection algorithm (алгоритм пересечений) K. A. Marzullo. Maintaining the Time in a

Algorithm (C++)

algorithm — заголовочный файл в стандартной библиотеке языка программирования C++, включающий набор функций для выполнения алгоритмических операций над

Алгоритм Моллера — Трумбора

Ray/Triangle Intersection Архивная копия от 17 мая 2017 на Wayback Machine, Möller & Trumbore. Journal of Graphics Tools, 1997. Möller-Trumbore algorithm . scratchapixel

Бабаи, Ласло

related problems of String Isomorphism (under action group) (SI) and Coset Intersection (CI) can be solved in quasipolynomial exp ⁡ ( ( log ⁡ n ) O ( 1 ) ) {\displaystyle

Применение искусственного интеллекта

Tijana Radivojevic; Héctor García Martín* (2019). Opportunities at the Intersection of Synthetic Biology, Machine Learning, and Automation. ACS Synthetic

Случайное блуждание

 — ISBN 0-262-16097-8. — OCLC 10208449. Erdős, P.; Taylor, S. J. Some intersection properties of random walk paths (англ.) // Acta Mathematica Academiae

Алгоритм Дикстры

Boyle J. P., Dykstra R. L. A method for finding projections onto the intersection of convex sets in Hilbert spaces // Lecture Notes in Statistics. — 1986

Кабанов, Владислав Владимирович

71-76 (1981). MSC: 74S05 74K15 74H55 74B20 74H50 Kabanov, V. V. The intersection of Sylow 2-subgroups in finite groups. (Russian) Zbl 0469.20012 6th All-Union