Алгоритм построение матрицы смежности графа поверхности с препятствиями для поиска кратчайшей траектории перемещения груза автокраном
Изучение способа описания среды с препятствиями и результатов решения задачи поиска кратчайшего пути перемещения груза автокраном при помощи алгоритмов на графах. Сравнение способов создания матрицы смежности графа, описывающей среду, по трудоемкости.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | статья |
Язык | русский |
Дата добавления | 31.08.2018 |
Размер файла | 90,1 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Сибирская государственная автомобильно-дорожная академия (СибАДИ)
Алгоритм построения матрицы смежности графа поверхности с препятствиями для поиска кратчайшей траектории перемещения груза автокраном
М.С. Корытов
Аннотация
путь перемещение алгоритм автокран
Рассматривается способ описания среды с препятствиями и результаты решения задачи поиска кратчайшего пути перемещения груза автокраном при помощи алгоритмов на графах. Проводится сравнение способов создания матрицы смежности графа, описывающей среду, по трудоемкости и по точности последующего поиска траектории.
Ключевые слова: автокран, матрица смежности графа, поверхность с препятствиями, поиск пути, кратчайшая траектория.
Введение
При перемещении грузов автомобильными кранами, как правило, не ставится задачи точной отработки траектории перемещения груза. Однако существуют ситуации, при которых задание определенной траектории перемещения груза необходимо. Такие ситуации могут иметь место, например, при наличии различных препятствий между начальным и конечным положениями груза. Наличие препятствий предусматривает их обход с какой-либо стороны, а следовательно, возникает задача управления грузом в трех координатах пространства и минимизации пути [1, 2].
Использование методик поиска кратчайшего пути в системе автоматического управления автокраном позволит перемещать груз по оптимальной траектории, обеспечивая минимизацию расстояния (а следовательно, повышение производительности) и одновременно плавность перемещения.
Необходимо переместить груз из начального положения в конечное, минуя препятствия, расположение и форма которых известны. Дополнительно необходимо минимизировать длину траектории перемещения. Форма и размеры груза предполагаются известными.
Все преобразования в трехмерном пространстве могут быть сведены к композиции двух преобразований: вращения и переноса вдоль координатных осей. Это позволяет разделить и выполнять по отдельности: 1) нахождение траектории определенной точки груза в трехмерном пространстве с препятствиями; 2) оптимизацию траекторий трех угловых координат груза.
Выполнение п. 1 предполагает расчет и оптимизацию пути перемещения характерной точки начала координат системы груза в среде с поверхностями-препятствиями, представляющими собой пространственные эквидистантные (равноудаленные) поверхности от реальных поверхностей-препятствий (чтобы исключить столкновение груза с реальными поверхностями препятствий).
Существуют традиционные подходы к решению задачи поиска минимального пути. Наиболее эффективны алгоритмы на взвешенных графах. Это относительно сложные алгоритмы. Все более простые алгоритмы не гарантируют, что путь обязательно будет найден, и найденный путь будет именно кратчайшим [3, 4].
Алгоритмы поиска путей на графе работают с 2-мерным массивом чисел, описывающим пространство с препятствиями как граф. Разработаны и используются готовые программные реализации ряда из перечисленных алгоритмов. Чтобы их использовать, необходимо подготовить исходные данные в виде матрицы смежности графа [4].
Р и с. 1 Пространственная равномерная решетка (пример): o - свободные узлы; ? - занятые препятствием узлы
В каждой ячейке этой матрицы записывается число, определяющее наличие связи от вершины-строки к вершине-столбцу (либо наоборот). В нашем случае это число будет расстоянием между двумя точками в пространстве - вершинами графа.
Возможны разные подходы к созданию матрицы смежности, от эффективности и удачности выбора которых зависит точность и быстродействие применения алгоритмов поиска.
Наиболее универсальным способом задания значений матрицы смежности, применение которого описывается простым алгоритмом и возможно при любой конфигурации препятствий, является способ рассмотрения всех без исключения узлов трехмерной равномерной пространственной решетки ограниченной области пространства, где происходит движение груза из начального положения в конечное (рис. 1). При этом для каждого узла описываются его связи только с ближайшими узлами-соседями в реальном пространстве.
Для каждого узла возможно рассмотрение соседних узлов в пределах одного ряда, в пределах двух или нескольких рядов.
Если для какого-либо узла пространственной решетки вертикальная координата z будет меньше высоты эквидистантной поверхности в точке с данными координатами x и y (то есть узел будет находиться внутри препятствия), то расстояние между данным узлом и всеми его рассматриваемыми узлами-соседями принимается на графе равным бесконечности (?) [3, 4].
Вычислительные затраты на подготовку матрицы смежности при увеличении рассматриваемых узлов-соседей возрастают в геометрической прогрессии и при количестве рядов-соседей более трех становятся недопустимо большими для практического использования. Вычислительные эксперименты показали, что влияние количества рассматриваемых рядов-соседей на точность найденной траектории незначительно, то есть можно ограничиться рассмотрением одного ряда. В этом случае затраты на подготовку матрицы смежности относительно невелики. Однако в общем случае траектория, найденная любым алгоритмом поиска пути на графе при таком способе задания значений матрицы смежности, не является кратчайшей.
Улучшить эффективность поиска кратчайшего пути в среде с препятствиями можно за счет изменения алгоритма подготовки матрицы смежности графа. Предлагается, во-первых, уменьшить количество вершин графа, принимая в рассмотрение только точки, расположенные на поверхности препятствий выше определенного уровня, например, уровня нижней из двух точек начала/окончания пути (рис. 2).
Свободные узлы (вне препятствий), равно как и узлы, находящиеся внутри препятствий, при этом способе исключаются из рассмотрения, что значительно уменьшает размеры матрицы смежности и ускоряет поиск пути. Исключение составляют две точки: начальная и конечная, которые также учитываются, хотя находятся вне препятствий. Начальная точка будет первой в списке вершин графа, конечная - последней. Рассматриваемые точки будут располагаться на равномерной сетке относительно координат X и Y.
Р и с. 2 Точки поверхности (пример): o - не учитываемые в графе; ? - учитываемые в графе
Во-вторых, в матрице смежности будут заданы расстояния только между теми узлами, которые видимы между собой (то есть между ними нет препятствий). Такие точки будут считаться соединенными между собой. Если прямая, соединяющая какие-либо две точки, содержащиеся в списке вершин графа, проходит через препятствие, данные два узла не будут иметь соединения между собой. Кроме того, чтобы уменьшить вычислительные затраты на проверку условия «видимости» между текущим рассматриваемым узлом графа и остальными узлами, можно исключить проверку указанного условия для всех узлов, которые расположены дальше относительно конечной цели, т. е. дальше от последнего узла, чем текущий узел.
Размещено на http://www.allbest.ru/
Р и с. 3 Упрощенная блок-схема алгоритма создания матрицы смежности
Для этого систему координат, в которой рассматривается сцена с препятствиями и происходит поиск траектории, необходимо представить (преобразовать) таким образом, чтобы начальная и конечная точки траектории располагались на прямой, параллельной одной из осей координат, например оси X (см. рис. 2), а список вершин графа формировать таким образом, чтобы большему номеру вершины в списке соответствовало большее значение X. Тогда для каждого узла достаточно проверить условие «видимости» только для вершин с большими, чем у текущего узла, порядковыми номерами.
Таким образом, алгоритм создания матрицы смежности по «точкам видимости» будет следующим (рис. 3): 1) преобразование системы координат, в которой описывается поверхность препятствий, с целью расположения начальной и конечной точек вдоль одной из осей координат (центроаффинное преобразование); 2) формирование последовательного списка точек поверхности, учитываемых в графе (вершин графа) в виде одномерного вектора; 3) последовательный перебор всех вершин графа с первой до предпоследней и проверка каждого текущего узла на условие «видимости» относительно всех вершин с большими, чем у текущего узла, порядковыми номерами в списке вершин.
Выполнение п. 1 алгоритма возможно следующим образом. Пусть имеются точки начала и цели (конца) перемещения с координатами [x1 z1 y1] и [xn zn yn] соответственно в исходной системе координат X'Y'Z' (рис. 4). Переход от исходной к преобразованной системе координат будет осуществляться поворотом вокруг вертикальной оси Z. Угол поворота б будет равен
atn((xn- x1)/(yn- y1)). (1)
Точка с координатами x, y, z в исходной системе координат XYZ будет иметь в преобразованной системе координат X'Y'Z' следующие значения координат:
'=x•cos(б)-y•sin(б); y'= x•sin(б)+y•cos(б); z'=z. (2)
Р и с. 4 Преобразование системы координат (вид сверху, навстречу оси Z)
Подобным образом необходимо получить значения координат в преобразованной системе X'Y'Z' для всех точек поверхности. Затем в преобразованной системе координат необходимо сформировать ту же поверхность, но уже на новой равномерной дискретной сетке X'Y' с заданным шагом. Для этого предлагается использовать известный способ двухмерной табличной линейной интерполяции.
Выполнение п. 2 алгоритма происходит в следующем порядке. Рабочая область с препятствиями задана в виде двухмерного массива чисел - высот точек поверхности z'ij.
При помощи циклов, меняющих i и j в последовательности [i, затем j], осуществим перебор каждой точки сетки с высотой z'ij и проверим выполнение условия z'ij>min(z1, zn). При выполнении данного условия точка заносится в список узлов графа. Первой в списке предварительно ставится начальная точка (№1 на рис. 2), последней - конечная (№74 на рис. 2).
Выполнение п. 3 алгоритма предлагается осуществлять следующим способом. Выполняется последовательный перебор всех вершин графа из списка, и для каждой текущей вершины m=2, 3, …, n осуществляется построение прямой в пространстве между данной вершиной и всеми вершинами с большими номерами (m+1, m+2, …, n). Прямая разбивается на p отрезков в соответствии с шагом дискретности, и на данной прямой рассматриваются p промежуточных точек. Для каждой из промежуточных точек проверяется условие превышения ее вертикальной координаты над поверхностью. Если для всех p точек прямой, соединяющей узел m с узлом (m+q), q=1, …, (n-m), данное условие выполняется, делается вывод о том, что узлы m и (m+q) «видимы» между собой, и информация об этом заносится в матрицу смежности графа.
Затраты вычислительного времени предлагаемого алгоритма создания матрицы смежности графа на порядок меньше, чем для универсального алгоритма создания матрицы смежности. Вычислительные затраты собственно на поиск пути на графе также снижаются на порядок или на два порядка.
Выводы
Поиск пути на графе, сформированном подобным образом по «точкам видимости», показал лучшие результаты, чем при универсальном способе задания значений матрицы смежности по всем точкам пространства, при одновременном снижении времени вычислений. Вычислительные эксперименты на различных поверхностях показали, что траектория в пределах погрешности, создаваемой шагом дискретности сетки, приближалась к кратчайшей при любой форме поверхности препятствий. Использование предложенного алгоритма построения матрицы смежности графа поверхности с препятствиями произвольной формы является более эффективным, чем применение универсального алгоритма рассмотрения всех узлов пространственной решетки.
Библиографический список
1. Правила устройства и безопасной эксплуатации грузоподъемных кранов и кранов-манипуляторов: ПБ 10-382-00 и ПБ 10-257-98. Новосибирск: Сиб. унив. изд-во, 2007. 335 с.
2. Правила техники безопасности при эксплуатации стреловых самоходных кранов: ВСН 274-88. М.: СтройИнфо, 2007. 22 с.
3. Dijkstra E.W. A note on two problems in connexion with graphs / Numerische Mathematik 1, 1959. pp. 269-271.
4. 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).
Размещено на Allbest.ru
...Подобные документы
Программа формирования матрицы смежности по заданному списку окрестностей вершин ориентированного графа. Формирование динамического списка дуг ориентированного графа по заданному списку окрестностей. Анализ временной и емкостной сложности алгоритма.
курсовая работа [8,1 M], добавлен 07.09.2012Области применения теории графов. Алгоритм решения задачи поиска инвариантного и полного графа. Реализация программы с графическим интерфейсом пользователя на основе алгоритма. Реализация редактора графа и вывод полученных результатов в понятной форме.
курсовая работа [493,3 K], добавлен 27.12.2008Использование понятий из теории графов при разработке сетей и алгоритмов маршрутизации. Построение матрицы смежности и взвешенного ориентировочного графа. Результаты работы алгоритмов Дейкстры и Беллмана-Форда. Протоколы обмена маршрутной информацией.
курсовая работа [334,1 K], добавлен 20.01.2013Алгоритм сортировки Шейкер: математическое описание задачи и описание алгоритма. Алгоритм покрытия: построение одного кратчайшего покрытия. Описание схемы и работы алгоритма на графах: нахождение кратчайшего пути. Контрольные примеры работы алгоритмов.
курсовая работа [43,8 K], добавлен 19.10.2010Способ представления графа в информатике. Алгоритмы поиска элементарных циклов в глубину в неориентированных графах. Описание среды wxDev-C++, последовательность создания проекта. Руководство пользователю программы поиска и вывода на экран простых циклов.
курсовая работа [783,2 K], добавлен 18.02.2013Разработка алгоритма реализации на ЭВМ процесса поиска кратчайшего пути в графе методом Дейкстры. Программная реализация алгоритма поиска кратчайшего пути между двумя любыми вершинами графа. Проверка работоспособности программы на тестовых примерах.
реферат [929,8 K], добавлен 23.09.2013Основные понятия и определения алгоритмов на графах. Связные графы без циклов, свободное дерево или дерево без корня. Ориентированные графы (орграфы), их использование для представления отношений между объектами. Матрицы смежности и инциденций.
презентация [93,9 K], добавлен 13.09.2013Математические графы, области их применения. Способы раскраски вершин и ребер графов, задачи на их применение. Разработка алгоритма, работающего на основе операций с матрицей смежности. Описание логической структуры программы. Пример зарисовки графа.
курсовая работа [145,5 K], добавлен 27.01.2013Пример матрицы смежности для соответствующей сети. Функция распределения степеней узлов. Вариант матрицы смежности для взвешенной сети. Распределение степеней для случайных графов. Требования к интерфейсу. Алгоритм модели Баррат-Бартелэмью-Веспиньяни.
контрольная работа [1,4 M], добавлен 13.06.2012История возникновения, основные понятия и теоремы теории графов. Способы предоставления графов в компьютере. Матрица смежности, инциденций, списки смежности и массив дуг. Программа определения кратчайшего пути в графах. Язык программирования Delphi.
курсовая работа [823,5 K], добавлен 24.11.2010Блок-схема алгоритма Флойда. Разработка его псевдокода в программе Microsoft Visual Studio. Программа реализации алгоритмов Беллмана-Форда. Анализ трудоемкости роста функции. Протокол тестирования правильности работы программы по алгоритму Флойда.
курсовая работа [653,5 K], добавлен 18.02.2013Разработка, макетирование и реализация экспертной системы для решения задачи о коммивояжере, используя возможности языка Prolog. Составление графа "Карта Саратовской области" и решение проблемы поиска кратчайшего пути между двумя пунктами на карте.
курсовая работа [366,4 K], добавлен 12.05.2009Способы построения остовного дерева (алгоритма поиска в глубину и поиска в ширину). Вид неориентированного графа. Понятие и алгоритмы нахождения минимальных остовных деревьев. Последовательность построения дерева графов по алгоритмам Крускала и Прима.
презентация [22,8 K], добавлен 16.09.2013Задача о кратчайшем пути как одна из важнейших классических задач теории графов. Общий обзор трех наиболее популярных алгоритмов для решения задачи о кратчайшем пути. Написание программы, которая реализует алгоритм Дейкстры и алгоритм Форда-Беллмана.
курсовая работа [2,1 M], добавлен 23.06.2014Графы: определения, примеры, способы изображения. Смежные вершины и рёбра. Путь в ориентированном и взвешенном графе. Матрица смежности и иерархический список. Алгоритм Дейкстры - алгоритм поиска кратчайших путей в графе. Работа в программе "ProGraph".
презентация [383,8 K], добавлен 27.03.2011Понятие алгоритма как набора инструкций, описывающего порядок действий. Поиск в ширину - метод обхода графа и поиска пути в нем. Пример работы алгоритма поиска в ширину, его неформальное и формальное описание. Реализация с помощью структуры "очередь".
курсовая работа [684,8 K], добавлен 05.04.2015Задача нахождения кратчайшего покрытия булевой матрицы. Алгоритмы поиска кратчайших покрытий методом Патрика и методом Закревского. Метод предварительного редуцирования булевой матрицы. Описание программы "Нахождение кратчайшего покрытия булевых матриц".
курсовая работа [884,1 K], добавлен 12.12.2010Разработка программного продукта для поиска максимально удалённых вершин в графе. Характеристика ориентированного, смешанного и изоморфного графов. Обзор способов представления графа в информатике. Алгоритм поиска пути. Графический интерфейс программы.
курсовая работа [384,0 K], добавлен 10.01.2015Разработка программной реализации решения задачи о минимальном покрывающем дереве графа (построение минимального остова), используя алгоритмы Прима и Крускала. Подсчет времени работы алгоритмов. Их программная реализация на практике с помощью Delphi 7.
курсовая работа [538,1 K], добавлен 29.08.2010Описание алгоритма сортировки с двоичным включением, выбор структур данных. Пример сортировки массива, отсортированного случайным образом. Алгоритм покрытия по методу "Построение одного кратчайшего покрытия". Волновой алгоритм поиска длиннейшего пути.
курсовая работа [78,2 K], добавлен 24.09.2010