<<
>>

Упрощение задачи

Подход, принятый в этой работе должен упростить проблему, по существу в проблему поиска во взвешенном графе. Многие из основных идей, если возможно не подробнocти, были вдохновлены работой, предстваленной в [STEF95], и несколькими ранними работами.

Подобные, часто более простые версии методик были использованы программистами компьютерных игр как метод для того чтобы перемещать модули в намного меньших картах, используются в различных стратегиях и других компьютерных играх. См. например [WOOD97]. Для введения в графы и их теорию, см. [BUCK90], [CORM90] или любой другой хороший учебник по теории графов.

5.1.1 Ограничение пространства поиска

Первый шаг в нашем упрощении ограничение числа возможных размещений и числа возможных перемещений между этими размещениями.

5.1.1.1 Ограничение области поиска

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

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

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

При таком подходе может даже оказаться, что не имеется никакого возможного пути, но это неизвестно, пока мы фактически не пробовали, и не сумели найти этот путь. Таким образом, необходимо прибегнуть к использованию некоторой эвристики, чтобы определить подходящий размер области. Это знание применительно к заданому приложению будет очень полезно иметь. Например, протяженность самого большого препятствия, которое мы ожидаем, которое мы будем хотеть обойти вокруг, могла бы быть хорошой исходной точкой для руководства к действию. Плюс расстояние между источником и адресатом. Практические тесты показали, что в небольших областях, первое из этих двух рассмотреных расстояний является намного более важным, в то время как при больших масштабах второе доминирует. Простая эвристика для компромисса может быть создана как b=a+(1+c)*d. Где b - длина диагонали ограничивающего прямоугольника ( от источника и до адресата), d - расстояние между источником и адресатом, c - константа масштабирования ( в большинстве случаев c=1/3, кажется, работает хорошо). В заключение, a - приблизительный размер самого большого препятствия.

В некоторых приложениях, можно взамен дать возможность конечному пользователю, вручную определить область поиска и таким образом уходить от проблемы полностью (насколько мы заинтересованы). И последние замечание, всегда возможно увеличить область поиска и повторить поиск пути в случае, если мы не преуспели в нахождение пути в выбранной области поиска. 5.1.1.2 Разделение пространства на ячейки

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

Точка сама по себе должна называться вершиной. Все ячейки непересекаются и объединение всех ячеек должно закрыть все пространство. Движение нашего транспортного средства ограничено перемещением по 'прямым линиям' между вершинами. Сетка может иметь любой вид, подходящий к заданному пространству и приложению при анализе. Два примера плоских сеток даны на рисунках 3 и 4.

Рисунок 3 - Регулярная квадратная плоская сетка

Рисунок 4 - Регулярная гексоганальная плоская сетка

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

Как упомянуто в 3.1 мы сведем нашу проблему к задаче взвешенного графа. Теперь мы определим вершины графа, как 'центральные точки' ячеек.

5.1.1.3 Ограничение перемещений на гранях

Следующий шаг должен ограничить число возможных перемещений из данной ячейки. Если возможно идти от одной вершины до другой без того, чтобы пройти через другую точку вершины, мы будем говорить, что они соединены (направленной) гранью. Вершина, из которой грань идет, называется источником. Вершина на другом конец называется адресатом. Тривиально, всегда имеется грань от заданной ячейки до самой себя; мы будем пренебрегать этим случаем в дальнейшем как пребывание в одной точке - не очень полезный сегмент 'оптимального пути'. Ячейки или вершины, которые являются адресатами всех граней данной ячейки, называются соседями. Какие ячейки рассматривать как соседей данной ячейки, надо решить. Идеально, все ячейки должны быть соседями всех других ячеек (так называемый 'полный' граф). Однако, это означало бы наличие невероятного числа граней. Поскольку для каждой ячейки требовалось бы, определить так много граней сколько имеется других ячеек, мы например получили бы 1012/2 граней для графа с одним миллионом ячеек.

Мы будем позже использовать оптимизированые алгоритмы на графе, их практическое быстродействие очень сильно зависит от числа граней, так что ясно что это недопустимо. Взамен мы будем идти к другому экстремальному случаю и будем только определять 'физически' смежные ячейки такие как соседи данной ячейки. В случае нашей квадратной сетки, каждая ячейка (которая не размещена на границе области поиска) имеет раскладку как отмечено на рисунке 5. Можно выбрать или четыре или восемь смежных ячеек как соседей. Так как мы хотим максимальную точность, и выбор восьми лучше чем четырех и не будет представлять большой сложности; мы выберем восемь ячеек в качестве соседей, показанных нормально-серым на рисунке 5. Мы позже увидим, что это позволит нам использовать высоко эффективное представление графа. Мы будем добиваться точности при меньшей сложности и лучшего быстродействия. Однако, это очень благоприятно, см. далее 3.1.2.6 и 6.2.2. Число граней теперь линейно зависит от числа вершины ( 8*n ).

Рисунок 5 - ячейка с гранями к восеми соседям

Резюме: мы ограничили число перемещений от каждой вершины до восьми граней (или меньшего количества) и закончили определение представления направленного графа в пространстве.

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

Однако другая аппроксимация, которая очень полезна и может быть использована в нашей типовой реализации, должна игнорировать различие высот между ячейками при вычислении длины грани. То есть только длина плоской проекции грани используется. Побуждающей причиной для этого допущения является то, что обычные транспортные средства не могут передвигаться по сильно пересеченной местности и что различие высот во всех допустимых путях является относительно малым по сравнению с общей длиной грани. Это допущение должно быть небольшим, чтобы можно было игнорировать различие в высоте полностью; кроме того, подъем в вверх для многих транспортных средств, отнимает намного больше много времени и 'дорогостояще', чем перемещение по плоской поверхности. В следующих разделах, мы увидем, что стоимость перемещения вверх или вниз может быть смоделировано, используя модификатор в функции стоимости (см. 3.1.2) вместо того, чтобы использовать истинное расстояние (длина грани).

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

5.1.2

<< | >>
Источник: F. Markus Jonsson. Поиск оптимального пути для транспортных средств на оцифрованых картах реальной местности. 1998

Еще по теме Упрощение задачи:

  1. Упрощенная система налогообложения
  2. Необходимость упрощения реальных явлений
  3. Упрощенная модель явления
  4. 1.2.1 Упрощенный аналитический метод расчета вентиляции салона
  5. Приложение 12. О праве общественных организаций на учреж­дение предприятий по упрощенной системе налогообложения
  6. Упрощенная манера мотивации и легковерие
  7. Процедура упрощения д. н. ф. (алгоритм Блейка)
  8. Мефоприятия к упрощению и Сокращению судебной процедуры.
  9. Упрощение администрирования налогообложения физических лиц.
  10. Упрощенное использование символов из панели инструментов и шаблонов
  11. 4. Избегайте употребления в статьях упрощенного, не знающего полутонов языка заголовков.
  12. 42. проблемная ситуация и задача этапы решения задач способы решения задач.
  13. 11.1. Постановка задачи расчета затрат на противопожарную защиту как задачи многокритериальной оптимизации
  14. 15.Постановка задач математической физики. Начальные и граничные условия. Понятие о корректности задачи.
  15. § 1.25. ПРИМЕРЫ РЕШЕНИЯ ЗАДАЧ Задача 1
  16. §1.14. ПРИМЕРЫ РЕШЕНИЯ ЗАДАЧ Задача 1
  17. § 9.5. ПРИМЕРЫ РЕШЕНИЯ ЗАДАЧ Задача 1
  18. § 7.2. ПРИМЕРЫ РЕШЕНИЯ ЗАДАЧ Задача 1