страиваются редко. Это в первую очередь алгоритмы слияния, а также не-
которые двухпроходные алгоритмы, рассматриваемые в следующих гла-
вах. Тем не менее следует заметить, что этот способ проверки требует до-
полнительных затрат памяти.
1.4. Алгоритмы триангуляции Делоне
В настоящее время известно значительное количество различных ал-
горитмов построения триангуляции Делоне. На рис. 16 приведена класси-
фикация только основных из них (жирным шрифтом выделены конкретные
алгоритмы). Кроме этих алгоритмов, существуют и другие, менее извест-
ные,
но они обладают заведомо худшими характеристиками.
В табл. 3 собраны основные характеристики всех этих алгоритмов. В
колонке А представлена оценка трудоемкости в худшем случае, в колонке
Б - трудоемкость в среднем случае, в колонке В - время работы на 10
ООО
точек в относительных единицах и в колонке Г - авторская экспертная
оценка простоты реализации по 5-балльной системе (чем больше звездо-
чек, тем алгоритм лучше). Все приведенные оценки времени получены ав-
тором после реализации алгоритмов в одном стиле (на структуре «Узлы и
треугольники») и на одной программно-аппаратной платформе. Некоторые
из алгоритмов не реализованы, поэтому в таблице там стоят прочерки. За-
метим, что оценки времени достаточно условны и они, видимо, будут су-
щественно отличаться в различных программных реализациях и на разных
распределения исходных точек. Более подробные результаты сравнений
отдельных алгоритмов приведены в [15].
В целом из всего множества представленных алгоритмов по опыту
автора лучше всего себя зарекомендовал алгоритм динамического кэширо-
вания. Примерно так же хорошо работает алгоритм послойного сгущения.
Что немаловажно, оба эти алгоритма легко программируются на любых
структурах данных. Из других хороших алгоритмов следует отметить
двухпроходный алгоритм невыпуклого полосового слияния и ленточный ал-
горитм, но они несколько сложнее в реализации.
На практике триангуляция строится для решения каких-либо при-
кладных задач. При этом почти всегда возникает задача локализации неко-
торой точки плоскости на триангуляции - поиска треугольника, в который
она попадает. Только в результате работы алгоритма динамического кэши-
рования создается структура кэша, которая и позволяет эффективно вы-
полнять указанную локализацию. Во всех остальных алгоритмах такой
структуры не создается и её необходимо создавать дополнительно.
В следующих четырех главах все эти алгоритмы построения
триангуляции Делоне будут рассмотрены подробно.