Вычислительная геометрия - Computational geometry

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

Вычислительная сложность занимает центральное место в вычислительной геометрии и имеет большое практическое значение, если алгоритмы используются для очень больших наборов данных, содержащих десятки или сотни миллионов точек. Для таких наборов разница между O (п2) и O (п бревно п) может быть разницей между днями и секундами вычисления.

Основным толчком к развитию вычислительной геометрии как дисциплины стал прогресс в компьютерная графика и автоматизированное проектирование и производство (CAD /CAM ), но многие задачи вычислительной геометрии имеют классический характер и могут возникать из математическая визуализация.

Другие важные приложения вычислительной геометрии включают: робототехника (планирование движения и проблемы с видимостью), географические информационные системы (ГИС) (геометрическое положение и поиск, планирование маршрута), Интегральная схема дизайн (проектирование и проверка геометрии ИС), компьютерная инженерия (CAE) (создание сетки), компьютерное зрение (3D реконструкция ).

Основные разделы вычислительной геометрии:

  • Комбинаторная вычислительная геометрия, также называемый алгоритмическая геометрия, который имеет дело с геометрическими объектами как дискретный сущности. Основополагающая книга по теме Препарата и Шамос датирует первое использование термина «вычислительная геометрия» в этом смысле 1975 годом.[1]
  • Численная вычислительная геометрия, также называемый геометрия станка, компьютерный геометрический дизайн (CAGD), или геометрическое моделирование, который в первую очередь занимается представлением реальных объектов в формах, подходящих для компьютерных вычислений в системах CAD / CAM. Эту ветвь можно рассматривать как дальнейшее развитие начертательная геометрия и часто считается отраслью компьютерной графики или САПР. Термин «вычислительная геометрия» в этом смысле используется с 1971 года.[2]

Комбинаторная вычислительная геометрия

Основная цель исследований в области комбинаторной вычислительной геометрии - разработка эффективных алгоритмы и структуры данных для решения задач, сформулированных в терминах основных геометрических объектов: точек, отрезков, полигоны, многогранники, так далее.

Некоторые из этих проблем кажутся настолько простыми, что вообще не рассматривались как проблемы до появления компьютеры. Рассмотрим, например, Проблема ближайшей пары:

  • Данный п точки на плоскости, найдите две с наименьшим расстоянием друг от друга.

Можно вычислить расстояния между всеми парами точек, из которых п (п-1) / 2, затем выберите пару с наименьшим расстоянием. Этот грубая сила алгоритм принимает О (п2) время; т.е. время его выполнения пропорционально квадрату количества баллов. Классическим результатом вычислительной геометрии стала формулировка алгоритма, который требует O (п бревно п). Рандомизированные алгоритмы которые принимают O (п) ожидаемое время,[3] а также детерминированный алгоритм, который принимает O (п журнал журнал п) время,[4] также были обнаружены.

Проблемные классы

Основные проблемы вычислительной геометрии можно классифицировать по-разному, в соответствии с различными критериями. Можно выделить следующие общие классы.

Статические проблемы

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

Вычислительная сложность для этого класса задач оценивается временем и пространством (памятью компьютера), необходимыми для решения данного экземпляра проблемы.

Проблемы с геометрическим запросом

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

Вот некоторые фундаментальные проблемы геометрических запросов:

  • Поиск диапазона: Предварительная обработка набора точек для эффективного подсчета количества точек внутри области запроса.
  • Расположение точки: Учитывая разделение пространства на ячейки, создайте структуру данных, которая эффективно сообщает, в какой ячейке находится точка запроса.
  • Ближайший сосед: Предварительно обработать набор точек, чтобы эффективно найти, какая точка находится ближе всего к точке запроса.
  • трассировка лучей: Учитывая набор объектов в пространстве, создайте структуру данных, которая эффективно сообщает, какой объект луч запроса пересекает первым.

Если пространство поиска фиксировано, вычислительная сложность для этого класса задач обычно оценивается следующим образом:

  • время и пространство, необходимые для построения структуры данных, в которой будет выполняться поиск
  • время (а иногда и дополнительное пространство) для ответа на запросы.

В случае, когда разрешено изменять пространство поиска, см. "Динамические проблемы ".

Динамические проблемы

Еще один важный класс - это динамические проблемы, цель которого - найти эффективный алгоритм для многократного поиска решения после каждой инкрементальной модификации входных данных (добавления или удаления входных геометрических элементов). Алгоритмы для задач этого типа обычно включают динамические структуры данных. Любая вычислительная геометрическая задача может быть преобразована в динамическую за счет увеличения времени обработки. Например, поиск диапазона проблема может быть преобразована в поиск динамического диапазона проблема, предусматривающая добавление и / или удаление точек. В динамическая выпуклая оболочка Проблема состоит в том, чтобы отслеживать выпуклую оболочку, например, для динамически изменяющегося набора точек, т.е. пока входные точки вставляются или удаляются.

Вычислительная сложность этого класса задач оценивается следующим образом:

  • время и пространство, необходимые для построения структуры данных, в которой будет выполняться поиск
  • время и пространство для изменения структуры данных поиска после постепенного изменения в пространстве поиска
  • время (а иногда и дополнительное пространство) для ответа на запрос.

Вариации

Некоторые проблемы можно рассматривать как относящиеся к любой из категорий, в зависимости от контекста. Например, рассмотрим следующую проблему.

Во многих приложениях эта проблема трактуется как однократная, т.е. относящаяся к первому классу. Например, во многих приложениях компьютерная графика распространенная проблема - найти, в какой области экрана щелкают указатель. Однако в некоторых приложениях рассматриваемый многоугольник является неизменным, а точка представляет собой запрос. Например, входной многоугольник может представлять границу страны, а точка - положение самолета, и проблема состоит в том, чтобы определить, нарушил ли самолет границу. Наконец, в ранее упомянутом примере компьютерной графики в CAD В приложениях изменяющиеся входные данные часто хранятся в динамических структурах данных, которые могут использоваться для ускорения запросов типа «точка в многоугольнике».

В некоторых контекстах проблем с запросами есть разумные ожидания в отношении последовательности запросов, которые могут быть использованы либо для эффективных структур данных, либо для более точных оценок вычислительной сложности. Например, в некоторых случаях важно знать наихудший случай для общего времени для всей последовательности из N запросов, а не для одного запроса. Смотрите также "амортизированный анализ ".

Численная вычислительная геометрия

Эта ветвь также известна как геометрическое моделирование и компьютерный геометрический дизайн (CAGD).

Ключевыми проблемами являются моделирование и представление кривых и поверхностей.

Наиболее важные инструменты здесь: параметрические кривые и параметрические поверхности, такие как Кривые Безье, сплайн кривые и поверхности. Важным непараметрическим подходом является метод установки уровня.

Области применения вычислительной геометрии включают судостроение, авиастроение и автомобилестроение.

Смотрите также

Рекомендации

  1. ^ Франко П. Препарата и Майкл Ян Шамос (1985). Вычислительная геометрия - Введение. Springer-Verlag. ISBN  0-387-96131-3. 1-е издание:; 2-е издание, исправленное и расширенное, 1988 г.
  2. ^ A.R. Форрест, "Вычислительная геометрия", Proc. Лондонское королевское общество, 321, серия 4, 187-195 (1971)
  3. ^ С. Хуллер и Ю. Матиас. Простой алгоритм рандомизированного сита для задачи ближайшей пары. Инф. Вычисл., 118 (1): 34–37, 1995 (PDF )
  4. ^ С. Форчун и Дж. Э. Хопкрофт. «Заметка об алгоритме ближайшего соседа Рабина». Письма об обработке информации, 8 (1), стр. 20–23, 1979 г.

дальнейшее чтение

Журналы

Комбинаторная / алгоритмическая вычислительная геометрия

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

внешняя ссылка