
2426
.pdfМетодики и алгоритмы поиска кратчайшего пути на графах можно разделить на две группы: методики и алгоритмы неинформированного (слепого) поиска и методики и алгоритмы информированного (эвристического) поиска.
К первой группе относятся: поиск в ширину (BFS, Breadth-first search, волновой алгоритм); поиск в глубину (DFS, Depth-first search);
поиск с ограничением глубины; поиск в глубину с итеративным углублением; двунаправленный поиск [74, 175, 234].
В методах неинформированного поиска узлы графа или состояния делятся на две группы: целевое (в рассматриваемой задаче одно) и нецелевые (т.е. все прочие). Нецелевые узлы/состояния при этом не различаются между собой по степени их «перспективности» с точки зрения нахождения оптимального решения. Расположение цели не влияет на порядок, в котором раскрываются вершины, т.е. поиск идет во всех возможных направлениях одновременно.
Поиск в ширину – наиболее простая неинформированная стратегия. Развертывается начальный узел, затем все преемники начального узла, после этого развертываются преемники этих преемников и т.д. При поиске в ширину, прежде чем происходит развертывание какихлибо узлов на следующем уровне, развертываются все узлы на текущей глубине.
При поиске в ширину необходим большой объем памяти (значительная пространственная сложность). Это может представлять гораздо большую проблему, чем временная сложность метода.
Поиск по критерию стоимости можно рассматривать как обобщение поиска в ширину. Вместо развертывания самого поверхностного узла поиск по критерию стоимости обеспечивает развертывание узла с наименьшей стоимостью пути. В частном случае, если стоимости всех этапов равны, происходит поиску в ширину.
При поиске в глубину (DFS – Depth First Search, бэктрекинг, поиск с возвращением) всегда развертывается самый глубокий узел в текущей периферии дерева поиска. Суть этого метода – продвижение вперед в неисследованную область, пока это возможно. Если вокруг все уже исследовано, необходимо отступить на шаг назад и искать новые пути для продвижения вперед. Главное отличие от поиска в ширину состоит в том, что при поиске в глубину в качестве активной выбирается та из открытых вершин (вершина, у которой не все инцидентные ребра уже исследованы), которая была посещена последней. Достоинством поиска в глубину является малая пространственная сложность.
40

Двунаправленный поиск заключается в том, что запускаются два одновременных поиска в ширину из начального и конечного узлов. Остановка происходит, когда узел из одного фронта поиска находит узел из другого фронта (рис. 1.11, а). Это позволяет сократить как время вычислений, так и объем используемой памяти. Площадь двух небольших кругов (см. рис. 1.11, а) меньше площади одного большого круга с центром в начальном узле, который охватывает конечный узел поиска (рис. 1.11, б).
1 |
2 |
1 |
2 |
а) |
б) |
Рис. 1.11. Схематическое представление двунаправленного (а) и однонаправленного (б) поиска в ширину: 1 – начальный узел; 2 – конечный узел
Поиск с ограничением глубины – это поиск в глубину с заранее определенным пределом глубины l. Т.е. узлы на глубине l рассматриваются как не имеющие преемников. Применение предела глубины позволяет не рассматривать бесконечные или слишком длинные пути.
Поиск в глубину с итеративным углублением заключается в постепенном увеличении глубины поиска (который сначала принимается равным 0 шагов, затем 1, 2 и т.д. шагов) до тех пор, пока не будет найдена цель. При этом сочетаются преимущества поиска в глубину и поиска в ширину. Как и поиск в глубину, он характеризуется малой пространственной сложностью. Как и поиск в ширину, он является полным, если коэффициент ветвления (максимальное количество преемников любого узла) конечен, и оптимальным, если стоимость пути представляет собой неубывающую функцию глубины узла [137, 175].
В табл. 1.1 приведено сравнение стратегий неинформированного поиска по четырем показателям эффективности, приведенным выше (полнота, оптимальность, временная сложность, пространственная сложность) согласно [175]. Используются следующие обозначения: b
41
–коэффициент ветвления; d – глубина самого глубокого решения; m – максимальная глубина дерева поиска; l – предел глубины; c* – стоимость оптимального решения для метода поиска по критерию стоимо-
сти. Ограничения, обозначенные верхними индексами, означают следующее: а – метод полный, если коэффициент ветвления b конечен; б
–метод полный, если стоимость каждого этапа ≥ε при некотором положительном значении ε; в – метод оптимальный, если стоимости всех этапов являются одинаковыми; г – метод применим, если в обоих направлениях осуществляется поиск в ширину.
Таблица 1.1. Сравнение методов неинформированного поиска на графах
Характе- |
Поиск |
Поиск по кри- |
Поиск |
Поиск с |
Поиск |
с |
Двунаправ- |
ограни- |
итератив- |
ленный по- |
|||||
ристика |
в ши- |
терию стои- |
в глу- |
чением |
ным |
уг- |
иск (если он |
|
рину |
мости |
бину |
глубины |
лублением |
применим) |
|
|
|
|
|
||||
Полнота |
Даа |
Даа, б |
Нет |
Нет |
Даа |
|
Даа, г |
Временная |
O(bd+l) |
O(bl+ ëс* / ε û) |
O(bm) |
O(bl) |
O(bd) |
|
O(bd/2) |
сложность |
|
|
|
|
|
|
|
Простран- |
O(bd+l) |
O(bl+ ëс* / ε û) |
O(bm) |
O(bl) |
O(bd) |
|
O(bd/2) |
ственная |
|
||||||
сложность |
|
|
|
|
|
|
|
Оптималь- |
Дав |
Да |
Нет |
Нет |
Дав |
|
Дав, г |
ность |
|
|
|
|
|
|
|
Алгоритмы неинформированного поиска целесообразно использовать, когда заранее неизвестно расположение цели (переменное положение) либо целей несколько. В настоящей монографии в предположении организованности пространства более целесообразным представляется использование методов информированного поиска.
К группе методов информированного поиска относятся: «жадный» поиск «по первому наилучшему совпадению», или best-first search (алгоритмы Дейкстры, Беллмана-Форда); алгоритм Аcтар (альтернативные названия: A*, «А-звездочка», направленный волновой алгоритм); алгоритм A* с итеративным углублением (IDA*); рекурсивный поиск по первому наилучшему совпадению (Recursive BestFirst Search – RBFS); упрощенный поиск A* с ограничением памяти
(SMA* – Simplified Memory-bounded А*); алгоритмы роевого интел-
лекта (муравьиных колоний, роя частиц и др.).
Методики и алгоритмы информированного поиска перечислены в порядке возрастания их эффективности [137, 175, 241].
Охарактеризовать временную и пространственную сложности алгоритмов информированного поиска довольно трудно, т.к. она зави-
42
сит и от точности эвристической функции, и от вычислительной реализации алгоритма, и от того, насколько часто происходит смена наилучшего пути по мере развертывания узлов, и т.п.
A* является более эффективным алгоритмом, чем поиск в ширину (волновой алгоритм) [224, 234]. Алгоритмы RBFS и SMA* представляют собой надежные, оптимальные алгоритмы поиска, в которых используются ограниченные объемы памяти. При наличии достаточного количества времени эти алгоритмы могут решать такие задачи, которые не позволяет решать алгоритм А*, поскольку исчерпыва-
ет доступную память [74, 175, 224, 232, 241].
Методики эвристического поиска используют известные знания, специфические для конкретной задачи. Информированные методики поиска находят решения более эффективно, чем слепые, при этом расходуется меньший объем памяти. Эвристическая информация о глобальном характере графа и общем расположении цели поиска может быть использована для направления поиска в сторону цели, раскрывая в первую очередь наиболее «перспективные» узлы графа. Общее обозначение методов информированного поиска, связанных с выбором наилучшего варианта, – BFS (best-first search). Ключевой компонентой информированных методов является эвристическая функция h(n), которая оценивает наименьшую стоимость пути от узла n до целевого узла. Эвристику можно рассматривать в качестве некоторого правила влияния, которое, хотя и не гарантирует успеха, в большинстве случаев оказывается весьма полезным [74, 175, 224, 232, 234, 241].
Основной проблемой эвристических методов является правильный подбор эвристической функции, которая, с одной стороны, позволяет сократить временную и пространственную сложность алгоритма, с другой стороны, должна обеспечивать оптимальность поиска. Если h близка к истинной стоимости оставшегося пути, то эффективность будет высокой. С другой стороны, если h будет слишком низким, это отразится на эффективности в худшую сторону. Подбор зачастую осуществляется опытным путем и представляет собой поиск компромисса между временной и пространственной сложностью алгоритма и его оптимальностью. В случае неправильного подбора эвристической функции не гарантируется оптимальность найденной траектории [175].
Способы дискретизации непрерывного пространства с препят-
ствиями при поиске на графах. Исходя из специфики рассматриваемой задачи, существенное, а в некоторых случаях определяющее, влияние на эффективность поиска оптимальной траектории на графе
43

может оказывать способ описания (дискретизации) непрерывного пространства с препятствиями. Можно выделить три способа определения вершин графа для описания пространства с препятствиями
[175, 212, 221, 234]:
1) нанесение сетки на пространство, не занятое препятствиями, либо рандомизация свободного пространства (рис. 1.12, а, б, в, рис. 1.13); 2) скелетирование свободного пространства (рис. 1.14); 3) рассмотрение точек только на поверхности препятствий (рис. 1.15).
Начальный узел |
Препятствия |
Конечный узел |
а) |
Начальный узел |
Препятствия |
Конечный узел |
б) |
в)
Рис. 1.12. Способы дискретизации пространства, двухмерный пример: а – способ C-Cells; б – способ квадрантных деревьев; в – треугольная, квадратная и шестигранная (гексагональная) сетки
Каждый подход имеет свои достоинства и недостатки. Сетка может быть нанесена равномерно (способ C-Cells, см. рис. 1.12, а, в) либо неравномерно (квадрантные деревья, см. рис. 1.12, б). C-Cells – наиболее простой способ, при котором возможно неявное описание графа с помощью начального состояния и функции определения преемников.
44

Способ хорошо |
подхо- |
Начальный узел |
|||||
дит для описания простран- |
|
||||||
ства, поиск на котором осу- |
|
||||||
ществляется |
при |
|
помощи |
|
|||
волнового алгоритма и алго- |
|
||||||
ритмов группы A*. Еще од- |
|
||||||
ним достоинством |
неявного |
|
|||||
описания |
является |
|
возмож- |
|
|||
ность динамически изменять |
|
||||||
расположение |
препятствий |
Препятствия |
|||||
прямо в процессе поиска, че- |
|||||||
го лишены способы |
явного |
|
|||||
описания. |
|
|
|
|
|
|
|
Способ квадрантных де- |
Конечный узел |
||||||
ревьев заключается в разде- |
Рис. 1.13. Способ рандомизации пространст- |
||||||
лении пространства на квад- |
ва с последующей триангуляцией (двухмер- |
||||||
раты (кубы или гиперкубы |
ный пример) |
||||||
для многомерного простран- |
Начальный узел |
||||||
ства). Каждый квадрат, не |
|
||||||
являющийся |
однородным, |
|
|||||
т.е. входящий в препятствие, |
|
||||||
разделяется на 4 |
меньших |
|
|||||
квадрата |
(для |
двухмерного |
|
||||
случая). Для многомерного |
|
||||||
пространства |
число |
|
разбие- |
|
|||
ний составит 2n, где n – раз- |
|
||||||
мерность |
пространства |
по- |
Линия Вороного |
||||
ложений |
объекта. |
|
Центры |
Препятствия |
|||
квадратов соединяются меж- |
|||||||
|
|||||||
ду собой и используются для |
Конечный узел |
||||||
поиска траектории (см. рис. |
|||||||
1.12, б). Способ квадрантных |
Рис. 1.14. Способ скелетирования свободно- |
||||||
деревьев |
позволяет |
умень- |
го пространства построением |
||||
шить количество рассматри- |
линий Вороного |
||||||
ваемых узлов по сравнению с |
|
||||||
C-Cells, однако неявное описание графа в этом случае проблематично. |
|||||||
Псевдоравномерная рандомизация с последующим соединением |
|||||||
узлов (способом триангуляции): метод известен под названием веро- |
|||||||
ятностной дорожной карты (PRM – Probabilistic Road Map). Реализу- |
|||||||
ется повторяющийся алгоритм построения случайных точек в свобод- |
45

ном пространстве, которые затем соединяются при помощи простого |
|||||||
и быстрого алгоритма, например триангуляции (см. рис. 1.13). |
|
||||||
Начальный узел |
Способ |
получил |
широкое |
||||
|
распространение для поиска воз- |
||||||
|
можных траекторий перемещения |
||||||
|
тел и механизмов, обладающих |
||||||
|
несколькими степенями свободы, |
||||||
|
в пространстве с препятствиями. |
||||||
|
Достоинством способа |
является |
|||||
|
небольшая временная и про- |
||||||
Препятствия |
странственная сложность в слу- |
||||||
чае многомерных состояний. Не- |
|||||||
|
достатком |
является |
необходи- |
||||
Конечный узел |
мость явного описания графа. |
||||||
Рис. 1.15. Способ выделения точек на |
Кроме того, сравнительно малое |
||||||
поверхности препятствий |
число случайных точек в про- |
||||||
|
странстве состояний не гаранти- |
||||||
|
рует оптимальности метода. Во |
||||||
|
многих, однако не во всех, рас- |
||||||
|
четных случаях возможно дости- |
||||||
|
жение оптимальности (кратчай- |
||||||
|
шей |
траектории) |
последующей |
||||
|
после поиска обработкой (Post- |
||||||
Рис. 1.16. Оптимизация найденной ме- |
оптимизация), например устране- |
||||||
тодом вероятностной дорожной карты |
нием |
|
промежуточных |
точек |
в |
||
траектории устранением промежуточ- |
пределах видимости (рис. 1.16). |
||||||
ных точек в пределах видимости: --- ис- |
Метод |
вероятностной |
дорожной |
||||
ходная траектория; — оптимизирован- |
карты |
|
хорошо |
зарекомендовал |
|||
ная траектория |
себя при решении задач относи- |
||||||
|
|||||||
|
тельного перемещения объемных |
||||||
тел в сильно ограниченных условиях, например при выполнении сбо- |
|||||||
рочных операций. |
|
|
|
|
|
|
|
Рассмотрение точек на поверхности препятствий (см. рис. 1.15) |
|||||||
позволяет значительно (в некоторых случаях на порядок) сократить |
|||||||
количество рассматриваемых вершин графа по сравнению с описан- |
|||||||
ными выше способами описания свободного пространства, однако |
|||||||
при данном способе возможно только явное описание графа, кроме |
|||||||
того, значительные вычислительные затраты времени могут быть за- |
|||||||
трачены на проверку условия соединения отдельных узлов между со- |
|||||||
бой для получения весовой матрицы графа. |
|
|
|
|
|
46
Метод скелетирования (см. рис. 1.14) заключается в приведении свободного пространства к одномерному, для которого задача планирования становится намного более эффективной и быстрой (на порядок или на два). Снижение размерности выполняется при помощи построения линии Вороного (геометрическое место точек, равноудаленных от двух или нескольких препятствий) в свободном пространстве.
Задача поиска траектории при этом сводится к поиску пути на линии Вороного, обычно одномерной. Эта линия имеет малое количество точек, в которых пересекаются две, три или большее количество одномерных кривых. Перемещение по линии Вороного не является кратчайшим путем. Найденная таким образом траектория требует дальнейшей оптимизации. В то же время полученные траектории будут располагаться на максимальном расстоянии от препятствий, что в некоторых случаях является требуемым условием безопасности. Недостатки методов, основанных на использовании линии Вороного, состоят в том, что их сложно применять в многомерных пространствах. При их использовании приходится совершать слишком большие обходные маневры, если пространство характеризуется широким размахом. Кроме того, усложнено вычисление линии Вороного в пространстве, характеризующемся сложной формой препятствий [175].
Альтернативным по отношению к методу на основе линии Вороного является метод скелетирования с использованием вероятностной дорожной карты. Также скелетирование возможно сочетанием методов построения линии Вороного и детерминированного или стохастического разбиения пространства.
Независимо от того, каким из трех способов описывается пространство с препятствиями, на нем возможен поиск при помощи любого из методов информированного поиска.
4.4. К прочим численным методам поиска, не использующим набор переменных и явное представление в виде графов, относятся метод потенциалов и элементарные методики поиска.
Распространенным подходом к решению задачи выбора пути является использование метода потенциалов (другие названия: «искусственных потенциальных полей» artificial potential fields, «полей виртуальных сил» virtual force field-VFF, «гистограммы векторных сил» vector field histogram-VFH) [210, 251].
К достоинствам метода потенциалов следует отнести гладкость получаемой траектории без дополнительной интерполяции, однако он имеет ряд существенных недостатков. Метод не гарантирует от зацикливания в случае, если препятствия имеют вогнутый профиль (по-
47
падание в область локального минимума). Для устранения данного недостатка необходима предварительная обработка данных, описывающих пространство с препятствиями, с целью получения выпуклых оболочек вокруг отдельно расположенных препятствий. Другим недостатком является сильная зависимость решения от значений эмпирических коэффициентов и необходимость их индивидуального (опытного) подбора многократным решением задачи для каждой новой конфигурации препятствий в пространстве.
Наиболее эффективным применение метода потенциалов будет при расчете траектории движения точки в двухмерной среде с препятствиями (на карте). В этом случае возможно применение метода в реальном времени. Основным недостатком метода в этом случае является то, что траектория, по которой движется объект, существенно неоптимальна.
Элементарные методики поиска могут использовать различные подходы. Они также могут использовать как непрерывное, так и дискретное описание пространства с препятствиями. К элементарным алгоритмам можно отнести алгоритм обхода препятствий по правилу правой (левой) руки, алгоритм «разделяй и властвуй» и др. [74, 175]. Алгоритм «разделяй и властвуй» заключается в следующей последовательности. Проводится прямая линия в пространстве между начальной и конечной точками. Берется точка посередине. Если она попадает внутрь препятствия, ее перемещают по определенному правилу (оно может быть различным) до тех пор, пока точка не выйдет из препятствия. Далее это положение точки устанавливается как конечное для первой части пути и одновременно начальное для второй части пути, и операция разбиения повторяется, т.е. используется иерархический рекурсивный подход, когда исходная задача разбивается на ряд элементарных повторяющихся подзадач. Описанный алгоритм может быть распространен на случай многомерного пространства.
Алгоритм «разделяй и властвуй» неоптимален, т.е. не гарантирует, что найденный путь будет кратчайшим, и может не работать в случае сложной формы препятствий (например, U-образных и с внутренними полостями для двухмерной карты), т.е. не является полным. Он предназначен для поиска в пространстве с простой выпуклой формой препятствий. К достоинствам следует отнести его очень низкую временную и пространственную сложность.
Для некоторых методов и алгоритмов поиска устранить часть их недостатков или значительно повысить эффективность позволяет предварительная обработка пространства поиска, например построе-
48
ние выпуклых оболочек вокруг отдельно расположенных препятствий, либо последующая обработка (Post-оптимизация, локализация) найденной траектории, либо и то и другое совместно.
Обзор состояния проблемы в исследуемой области показал, что более гибких и устойчиво эффективных методов и алгоритмов для решения задачи поиска кратчайшей траектории можно добиться, сочетая различные вычислительные подходы.
Так, неоптимальные решения, полученные при некоторых методах поиска на графе либо элементарных методах, могут быть улучшены численными методами локальной многомерной оптимизации. Для этого необходимо выделить и выполнить явное описание переменных, определяющих полученную на графе траекторию. В результате сочетания двух вычислительных подходов, как правило, может быть получена оптимальная или субоптимальная траектория с достаточно хорошей степенью приближения к глобальному оптимуму.
Кроме того, наиболее перспективными для поставленной задачи являются: иерархический подход, метод рекурсии, метод декомпозиции общей задачи на подзадачи, метод случайного поиска (рандомизации), использование «жадных» алгоритмов и эволюционных методов. В настоящей монографии объединены и усовершенствованы некоторые из перечисленных подходов и предложены соответствующие комбинированные методики и алгоритмы.
Классификация известных методов и алгоритмов планирования оптимальной траектории по перечисленным выше классификационным признакам приведена на рис. 1.17. Классификация способов дискретизации непрерывного пространства с препятствиями при поиске на графах приведена на рис. 1.18.
Обзор проблемы, связанной с оптимизацией траекторий (поиском кратчайшего пути), позволяет сделать вывод, что она еще не решена в достаточно полной мере и необходим дальнейший анализ, позволяющий расширить возможности по решению задач больших размеров в многомерных расчетных случаях.
Задача оптимизации траектории (поиска кратчайшего пути), весьма простая в своей концептуальной постановке, является довольно сложной для формализации и еще более сложной для решения, особенно в том случае, когда речь идет о многомерной задаче большого размера и среде с препятствиями.
49