Использование алгоритмов поиска пути перемещения груза автокраном на графах

УДК 621.87

ИСПОЛЬЗОВАНИЕ АЛГОРИТМОВ ПОИСКА ПУТИ ПЕРЕМЕЩЕНИЯ ГРУЗА

АВТОКРАНОМ НА ГРАФАХ

В.С. Щербаков, М.С. Корытов

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

Ключевые слова: автокран, поверхность, препятствия, путь, траектория

При перемещении грузов автомобильными кранами, как правило, не ставится задачи точной отработки траектории перемещения груза. Достаточно обеспечить достижение финишной точки, кроме того, необходимо обеспечить ряд условий при движении груза, например, ограничения ускорения, сохранения ориентации груза в некоторых (обычно довольно широких) пределах (иногда достаточно, чтобы груз не опрокинулся). При перемещении емкостей с жидкостями или хрупких грузов требования могут быть более жесткими [1, 2, 3].

Однако существуют ситуации, при которых задание определенной траектории перемещения груза необходимо. Такие ситуации могут иметь место, например, при наличии различных препятствий между начальным и конечным положениями груза. В этом случае возможно: 1) поднятие груза выше препятствий и его перемещение над ними; 2) можно обходить препятствия сбоку без поднятия груза над ними, особенно если высота препятствий достаточно велика или они вообще непреодолимы по высоте для данной конструкции автокрана. Таким образом, наличие препятствий предусматривает их обход с какой-либо стороны, а следовательно, возникает задача минимизации пути.

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

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

Все преобразования в трехмерном пространстве могут быть сведены к композиции двух преобразований: вращения и переноса вдоль координатных

осей. Это позволяет разделить и выполнять по отдельности: 1) нахождение траектории определенной точки груза в трехмерном пространстве с препятствиями; 2) оптимизацию траекторий трех угловых обобщенных координат груза.

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

Существует несколько традиционных подходов к решению задачи поиска кратчайшего пути. Наиболее известны алгоритмы, работающие на взвешенных графах. Имеется граф с конечным количеством вершин (рис. 1). Граф представляет собой множество вершин, некоторые из которых соединены ребрами. Если каждое ребро обладает числом (весом), такой граф называют взвешенным. Вес ребер графа в нашем случае соответствует расстоянию между точками рассматриваемой области.

Щербаков Виталий Сергеевич - СибАДИ, д-р техн. наук, профессор, тел. (3812) 65-04-55

Корытов Михаил Сергеевич - СибАДИ, канд. техн. наук, доцент, тел. (3812) 65-03-18

Рис. 1. Пример графического изображения взвешенного графа

Классическим алгоритмом поиска пути на графе считается алгоритм Дейкстры [4, 5]. Задаются начальная и конечная вершины, необходимо найти между ними кратчайший путь. Е. Дейкстра разработал алгоритм для прохода по графам, грани которых имеют различный вес. На каждом шаге алгоритм ищет необработанные узлы близкие к стартовому, затем просматривает соседей найденного узла, и устанавливает или обновляет их соответствующие расстояния от старта по минимальному значению. При этом используется приоритетная очередь. При достижении конечной вершины выстраивается путь к начальной вершине в обратном направлении, по критерию минимальности пути.

Частным случаем алгоритма Дейкстры является т.н. «волновой» алгоритм. Также на графах используют другие распространенные алгоритмы поиска кратчайшего пути: поиск в ширину (в англоязычной литературе его называют BFS - «breadth-first search»), алгоритм Беллмана-Форда (Bellman-Ford) и

др [6].

Алгоритмы поиска путей на графе работают с 2-мерным массивом чисел, описывающим пространство с препятствиями как граф. Пространство может быть двухмерным (карта), трехмерным (пространство) или многомерным. К сожалению, недостатком графовых алгоритмов является резкое снижение производительности при увеличении размерности пространства.

Существуют еще более сложные алгоритмы, в частности т.н. «генетический алгоритм» и «муравьиный алгоритм», которые, в том числе, могут использоваться для поиска кратчайшего пути [7, 8, 9]. Однако, эти алгоритмы наиболее эффективно работают в распределенных нестационарных сетях с меняющимися параметрами и требуют гораздо больших временных затрат по сравнению с традиционными алгоритмами поиска пути на графах [9].

j jmimQmin m

zo

k kmin, (kmin+1)---

i imin,(imin

+1),. i

Рис. 2. Пространственная равномерная решетка (пример): о - свободные узлы; • - занятые препятствием узлы

Разработаны и используются уже готовые программные реализации ряда из перечисленных алгоритмов для графов, в том числе в таких мощных математических пакетах, как МЛТЬЛБ. Чтобы их использовать, необходимо подготовить исходные данные в виде матрицы смежности графа [10]. Матрица смежности - таблица, где как столбцы, так и строки соответствуют вершинам графа. В каждой ячейке этой матрицы записывается число, определяющее

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

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

Пусть количество вершин в рассматриваемом графе п, описывающем рассматриваемую часть рабочей области, равно

n) Q^max -kmin),

max? lmmt jmax, j min, kmax, kmin номера начальных и

п (Утах УтУп) (тах у

где

Утах, у

конечных индексов трехмерного массива точек вдоль осей Хо (У), уо (У) и го (к) инерциальной системы координат соответственно, определяющие область, достаточную для рассмотрения и поиска кратчайшего пути.

j+2 j+3

в)

Рис. 3. Направления перемещения от узла к соседям: а - в пределах одного ряда; б - в пределах двух рядов; в - в пределах трех рядов

Используем для перехода от номеров индексов текущей рассматриваемой точки пространства к номеру р вершины в списке вершин графа зависимость:

р (тах—]тт+1) (ктах ктт+1) (У УтУп)+

+

где I, ], к - номера индексов текущей вершины вдоль осей х0 (У), у0 (у) и г0 соответственно.

Чтобы установить влияние количества возможных направлений перемещения от заданного узла к соседним узлам решетки на точность поиска пути, рассмотрим варианты соединения каждого узла с узлами соседних рядов: - в пределах одного ряда; - в пределах двух рядов; - в пределах трех рядов (рис. 3). Обозначим количество рассматриваемых рядов-соседей т.

в)

Рис. 4. Траектории найденных путей, полученных по алгоритмам поиска на графах (пространственный вид) для вариантов соединения узлов графа: а - на один ряд; б - на два ряда; в - на три ряда; 1 - метод Дейкстры без оптимизации; 2 - метод Дейкстры с оптимизацией; 3 - метод Беллмана-Форда без оптимизации; 4 - метод Беллмана-Форда с оптимизацией

Количество направлений возможных перемещений будет составлять

пг=т-

Для (т=1, 2, 3) пг будет равно соответственно

9, 50 и 147. Расстояние / между двумя вершинами графа (1 и 2) будет рассчитываться по формуле

1 = лі

причем х=і-АІ, у=уА/, х=к-А/, где А/ - расстояние между двумя ближайшими соседними узлами дискретной пространственной решетки вдоль любой из осей инерциальной системы координат (которые считаем равными между собой).

Если для какого-либо узла пространственной решетки вертикальная координата хк=к-А/ будет меньше высоты Эквидистантной поверхности 2е$ в точке с данными индексами і и ] и координатами х и У (то есть узел будет находиться внутри препятствия), то расстояние между данным узлом и всеми его рассматриваемыми узлами-соседями примем на графе равным бесконечности (да) [5, 10].

На рис. 4 в качестве примера представлены результаты поиска кратчайшего пути на графе для эквидистантной поверхности с помощью двух наиболее эффективных алгоритмов поиска: Дейкстры и Беллмана-Форда. Начальная точка имеет координаты [х у х] = [0 10 3], конечная - координаты [х у х] = [17 10 3]. Шаг решетки принимался равным А/=0,1 м. Для каждого метода (Дийкстры, Беллмана-Форда) рассмотрены три варианта соединения узлов графа: на один ряд, на два ряда, на три ряда. Длина пути /р для указанных вариантов представлена в табл. 1.

Таблица 1

Значения длины пути 1Р для различных методов и количества рядов, м

Метод Количество рядов Дейкстры Беллмана- Форда

1 23.394 21.701

2 23.503 21.347

3 23.566 22.022

Сравнительный анализ данных табл. 1 показывает, что наилучшие результаты дает метод Беллма-на-Форда при количестве рядов, равном 2. То есть, можно сделать вывод о том, что увеличение количества рассматриваемых рядов-соседей не всегда повышает точность поиска, кроме того, при этом наблюдается резкое (в геометрической прогрессии) увеличение временных затрат на подготовку матрицы смежности графа, что затрудняет практическое использование алгоритма при количестве рядов-соседей т>3.

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

точные точки в пределах видимости между препятствиями.

Суть алгоритма заключается в следующем. Пусть найденная траектория представлена в виде двухмерного массива координат точек

1 ,Х2 ,-Ху,-,Хп

У1,У2,...Уу,...,Уп .

1,22

Возьмем первую и вторую точки в списке [Х] У! 2\]Т, [х2 У2 22]Т, проведем между ними прямую линию, разобьем полученный отрезок на т отрезков, разделив длину исходного отрезка / на шаг дискретности пространственной решетки Д/:

ш=окр.

Получим т точек с координатами [Х1_2(У) У1_2(У) 21_2(у')]7’, у=1,2,...ш. Координаты

[х1_2(у) У1_2(У) Г1_2(у)]7’ будут промежуточными между

двумя точками исходного массива. Для точек исходного массива с индексами о и р проме^точные точки рассчитываются по линейным зависимостям:

Хо_р(У)=Хо+(Хр-Хо)- (у/т); Уо_р(У)=Уо+0р-Уо)-(У/т); 2ор(У)=2о+(2р-20)-(у/т).

Для каждой полученной точки проверим выполнение условия превышения ее вертикальной координаты ^1_2(у') над вертикальной координатой эквидистантной поверхности 2Е1 2(у) в точке с соответствующими значениями Х1 2(у), У1 2(у):

21_2

Если условие (8) выполняется для всех у, то возьмем первую и третью точки в списке [х1 У1 21^, [х3 У3 23]т и для них проделаем аналогичную процедуру, и т. д. до тех пор, пока не будет достигнута конечная точка исходного массива координат.

[Х4 У4 24]

Рис. 5. Пример, иллюстрирующий оптимизацию дискретной траектории устранением промежуточных точек в пределах видимости: (---) - исходная траектория; (—) - оп-

тимизированная траектория

Если для какой-либо точки из исходного массива координат траектории условие (8) для любой из промежуточных точек соединяющего отрезка выполняться не будет (то есть не будет видимости из-за препятствия), данные об этом сохраняются в одномерном массиве а из п элементов. Элементы массива а - это нули при выполнении условия, и единицы при невыполнении. Тогда, если максимальный номер точки из исходного массива, для которой вы-

полняется условие (для всех промежуточных точек соединяющего отрезка), обозначить к, то необходимо взять точку к-1 из исходного массива, и уже для нее рассматривать отрезки [Хк Ук 2к]т Хж Ук+1 г^]7", [Хк Ук 2к]т [Хк+2 Ук+2 2к+2]т, ... и т. д. по описанному алгоритму, пока не достигнем конечной точки исходного массива (рис. 5).

В результате выполнения алгоритма оптимизации найденных траекторий при пост-обработке, из исходного массива точек получается массив, как правило, меньшего размера, точек оптимизированной траектории /(1:3,5).

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

Таблица 2

Значения длины пути /р после оптимизации траекторий, м

Метод Количество рядов Дейкстры Беллмана- Форда

1 18.989 19.257

2 18.855 19.069

3 18.835 19.179

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

Проведем оценку трудоемкости предлагаемых алгоритмов по времени вычисления в зависимости от метода, количества рассматриваемых рядов-соседей и шага дискретности пространственной решетки.

В качестве среды моделирования, в которой происходила реализация алгоритмов, использовался пакет прикладных программ для решения задач технических вычислений МЛТЬЛБ. На встроенном языке программирования МЛТЬЛБ по приведенным выше алгоритмам были написаны программы-скрипты. Это позволило использовать возможности профилировщика МЛТЬЛБ для точного измерения затрат времени на выполнение программ в целом и их отдельных строк.

В табл. 3 представлены временные затраты на создание матриц смежности графа для количества

рассматриваемых рядов-соседей 1, 2 и 3. Шаг дискретности пространственной решетки А/ в данной серии экспериментов принимался фиксированным: А/=0,1 м. Матрица смежности в качестве примера создавалась для области с размерами 1*2x2 м и имела размер 4000*4000= 16000000 элементов (поскольку 1/0,1*2/0,1x2/0,1=4000). Использовался вид разреженных матриц МЛТЬЛБ, позволяющий значительно снизить емкость матрицы в памяти. Создание матриц смежности велось по алгоритму, описанному выше.

Таблица 3

Затраты вычислительного времени алгоритма создания матрицы смежности графа, с

В табл. 4 представлены временные затраты на поиск пути на графе, описывающем пространство для рассматриваемой в качестве примера области размерами 17*3*3 м с дискретностью решетки 0,1 м. Результаты поиска представлены на рис. 4.

- Процессор: AMD Athlon 64 X2 Dual Core Processor 5600+ 2.90 GHz; - Память (RAM): 4,00 ГБ; - Тип системы: 32-разрядная операционная система.

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

Литература

1. Правила устройства и безопасной эксплуатации грузоподъемных кранов и кранов-манипуляторов: ПБ 10382-00 и ПБ 10-257-98. - Новосибирск: Сиб. унив. изд-во, 2007. - 335 с.

2. Котельников, В.С. Комментарий к правилам устройства и безопасной эксплуатации грузоподъемных кранов (ПБ 10-382-00) / В.С. Котельников, Н.А. Шишков. -М.: МЦФЭР, 2007. - 720 с.

3. Правила техники безопасности при эксплуатации стреловых самоходных кранов: ВСН 274-88. - М.: Строй-Инфо, 2007. - 22 с.

4. Dijkstra, E.W. A note on two problems in connexion with graphs / Numerische Mathematik 1, 1959. - pp. 269-271.

5. Богомолов, А.М. Алгебраические основы теории дискретных систем / А.М. Богомолов, В.Н. Салий. - М.: Наука. Физматлит, 1997. - 368 c.

6. Bellman, R. On a Routing Problem / Quarterly of Applied Mathematics 16(1), 1958. - pp. 87-90.

7. Панченко, Т.В. Генетические алгоритмы: учебнометодическое пособие / Под ред. Ю. Ю. Тарасевича. - Астрахань: Издательский дом «Астраханский университет», 2007. - 87 с.

8. Dorigo, M. The ant system: optimization by a colony of cooperating agents / M. Dorigo, V. Maniezzo, A. Col-orni // IEEE Transactions on Systems, Man, and Cybernetics, Part B, № 26, 1996. - pp. 29-41.

9. Штовба, С.Д. Муравьиные алгоритмы // Expo-nenta Pro. Математика в приложениях, 2003. - №4. - С. 7075.

10. Siek, J.G., Lee, L-Q, and Lumsdaine, A. (2002). The Boost Graph Library User Guide and Reference Manual, (Upper Saddle River, NJ:Pearson Education).

Таблица 4

Затраты вычислительного времени алгоритма поиска пути, с

Метод Количество рядов Дейкстры Беллмана- Форда

1 0.546 0.546

2 2.871 3.120

3 8.564 9.311

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

Шаг дискретности решетки, м Количество рядов 0,05 0,1 0,15 0,2

1 11.348 0.723 0.222 0.072

2 184.854 5.836 1.038 0.244

3 2520.218 59.137 4.805 0.752

Сибирская государственная автомобильно-дорожная академия

USE OF A WAY SEARCH ALGORITHMS THE MOVING OF CARGO BY A TRUCK CRANE ON GRAPHS

V.S. Shcerbakov, M.S. Korytov

In article ways the description of environment with obstacles and results of the decision a problem of search the shortest way of moving cargo a truck crane by means of algorithms on columns are considered. Comparison of considered ways on labour input is spent

Key words: truck, surface, obstacles, path, trajectory