Аноним

Алгоритмы обхода препятствий в беспроводных сетях датчиков: различия между версиями

Материал из WEGA
м
 
(не показано 5 промежуточных версий этого же участника)
Строка 22: Строка 22:
'''Возможности простой географической маршрутизации'''
'''Возможности простой географической маршрутизации'''


Ранние алгоритмы «пересылки наиболее продвинутому узлу в пределах диапазона» (most forward within range, MFR) или жадной географической маршрутизации [14] направляли сообщения, исходя из соображений максимизации в процессе каждого скачка продвижения по спроецированной линии на пути к точке назначения – или, напротив, минимизации оставшегося расстояния до точки назначения сообщения. Обе эти жадные эвристики объединяются по общим названием «''жадная переадресация''» (greedy forwarding, GF). Эта техника маршрутизации выглядит весьма многообещающей для применения в беспроводных сетях датчиков, чему есть немало причин. (1) Жадная переадресация, как это почти повсеместно требуется, является ''полностью децентрализованной''. (2) Это ''легкая'' техника в том смысле, что она не добавляет расходов на управление топологией. (3) Она обеспечивает коммуникацию типа «''все со всеми''», а не «все с одним». (4) Благодаря отсутствию предположений о структуре коммуникационного графа, который может быть ориентированным, неориентированным, стабильным или динамическим (например, вершины могут быть мобильными, а беспроводные связи могут появляться и исчезать – скажем, в силу изменений окружающей обстановки или в результате работы более низких уровней стека протоколов, таких как схемы перехода в спящий режим и выхода из него с целью экономии энергии), техника оказывается весьма ''надежной''. (5) Она работает ''по запросу'': до распространения сообщения не строится таблицы маршрутизации или градиента. (6) Ее ''эффективность'' связана с тем, что сообщения находят короткие пути к точкам назначения (в терминах количества скачков). (7) Техника ''проста'' и в силу этого ''удобна для внедрения''. (8) Она ''эффективно использует память'' в том смысле, что (8а) в заголовке сообщения хранится только информация о точке назначения и (8б) процесс работает «экологично», поскольку в посещаемых сообщением сенсорных узлах не остается «мусорной» информации.
Ранние алгоритмы «пересылки наиболее продвинутому узлу в пределах диапазона» (most forward within range, MFR) или жадной географической маршрутизации [14] направляли сообщения, исходя из соображений максимизации в процессе каждого скачка продвижения по спроецированной линии на пути к точке назначения – или, напротив, минимизации оставшегося расстояния до точки назначения сообщения. Обе эти жадные эвристики объединяются под общим названием «''жадная переадресация''» (greedy forwarding, GF). Эта техника маршрутизации выглядит весьма многообещающей для применения в беспроводных сетях датчиков, чему есть немало причин. (1) Жадная переадресация, как это почти повсеместно требуется, является ''полностью децентрализованной''. (2) Это ''облегченная'' техника в том смысле, что она не добавляет расходов на управление топологией. (3) Она обеспечивает коммуникацию типа «''все со всеми''», а не «все с одним». (4) Благодаря отсутствию предположений о структуре коммуникационного графа, который может быть ориентированным, неориентированным, стабильным или динамическим (например, вершины могут быть мобильными, а беспроводные связи могут появляться и исчезать – скажем, в силу изменений окружающей обстановки или в результате работы более низких уровней стека протоколов, таких как схемы перехода в спящий режим и выхода из него с целью экономии энергии), техника оказывается весьма ''надежной''. (5) Она работает ''по запросу'': до распространения сообщения не строится таблицы маршрутизации или градиента. (6) Ее ''эффективность'' связана с тем, что сообщения находят короткие пути к точкам назначения (в терминах количества скачков). (7) Техника ''проста'' и в силу этого ''удобна для внедрения''. (8) Она ''эффективно использует память'' в том смысле, что (8а) в заголовке сообщения хранится только информация о точке назначения и (8б) процесс работает «экологично», поскольку в посещаемых сообщением сенсорных узлах не остается «мусорной» информации.


== Формулировка задачи ==
== Формулировка задачи ==
Строка 60: Строка 60:
'''Режим инерции'''
'''Режим инерции'''


Идея режима инерции заключается в том, что сообщению необходим мощный стимул для движения к точке назначения, но этот стимул должен быть смягчен для того, чтобы следовать по направлению текущего движения, «как небесное тело в планетной системе...» [12]. В режиме инерции сообщения движутся вблизи периметра дыр в маршрутах и препятствий, чтобы в конечном итоге обойти их и спланировать маршрут к точке назначения. Для реализации режима инерции необходимо сделать одно дополнительное предположение: сенсорные узлы должны знать положение узла, из которого они получают сообщение. Это может быть достигнуто, например, за счет фиксации односкачковой истории маршрутизации в заголовке сообщения. Зная свою собственную позицию p, точку назначения сообщения и предыдущее положение сообщения в одном скачке от себя, сенсорный узел может вычислить векторы <math>v_{cur}</math> и <math>v_{dst}</math>, начинающиеся в позиции p и указывающие в направлении текущего движения и в направлении точки назначения сообщения, соответственно. Режим инерции определяет идеальное направление прогресса, <math>v_{idl}</math>, как вектор, начинающийся в точке p и направленный «примерно посередине» между векторами <math>v_{cur}</math> и <math>v_{dst}</math>. Более точно, пусть <math>\alpha</math> – единственный угол в диапазоне <math>[ - \pi, \pi [</math>, такой, что <math>v_{dst}</math> получается в результате поворота <math>v_{cur}</math> на угол <math>\alpha</math>, тогда вектор <math>v_{idl}</math> получается в результате поворота <math>v_{cur}</math> на угол <math>\alpha'</math>, где <math>\alpha' = sign(\alpha) \cdot min \Big\{ \frac{\pi}{6}, |\alpha| \Big\} </math>. Наконец, сообщение жадным образом переадресуется к соседнему узлу, обеспечивающему максимальный прогресс в вычисленном идеальном направлении прогресса <math>v_{idl}</math>.
Идея режима инерции заключается в том, что сообщение должно иметь твердое намерение двигаться к точке назначения, но это намерение должно быть смягчено для того, чтобы следовать по направлению текущего движения, «как небесное тело в планетной системе...» [12]. В режиме инерции сообщения движутся вблизи периметра дыр в маршрутах и препятствий, чтобы в конечном итоге обойти их и спланировать маршрут к точке назначения. Для реализации режима инерции необходимо сделать одно дополнительное предположение: сенсорные узлы должны знать положение узла, из которого они получают сообщение. Это может быть достигнуто, например, за счет фиксации односкачковой истории маршрутизации в заголовке сообщения. Зная свою собственную позицию p, точку назначения сообщения и предыдущее положение сообщения в одном скачке от себя, сенсорный узел может вычислить векторы <math>v_{cur}</math> и <math>v_{dst}</math>, начинающиеся в позиции p и указывающие в направлении текущего движения и в направлении точки назначения сообщения, соответственно. Режим инерции определяет идеальное направление прогресса, <math>v_{idl}</math>, как вектор, начинающийся в точке p и направленный «примерно посередине» между векторами <math>v_{cur}</math> и <math>v_{dst}</math>. Более точно, пусть <math>\alpha</math> – единственный угол в диапазоне <math>[ - \pi, \pi [</math>, такой, что <math>v_{dst}</math> получается в результате поворота <math>v_{cur}</math> на угол <math>\alpha</math>, тогда вектор <math>v_{idl}</math> получается в результате поворота <math>v_{cur}</math> на угол <math>\alpha'</math>, где <math>\alpha' = sign(\alpha) \cdot min \Big\{ \frac{\pi}{6}, |\alpha| \Big\} </math>. Наконец, сообщение жадным образом переадресуется к соседнему узлу, обеспечивающему максимальный прогресс в вычисленном идеальном направлении прогресса <math>v_{idl}</math>.




'''Режим восстановления'''
'''Режим восстановления'''


Для повышения эффективности работы алгоритма в целом и для обхода сложных препятствий режим восстановления имитирует правило правой руки (right-hand rule, RHR) – хорошо известную технику следования вдоль стены для выхода из лабиринта. Схематичное описание RHR-компонента алгоритма GRIC приведено ниже, полное изложение можно найти в работе [12]. В контексте GRIC компонент RHR использует виртуальный компас и флаг. Виртуальный компас присваивает вектору <math>v_{cur}</math> значение кардинальной точки, считая точку назначения сообщения находящейся на севере. Рассматривая угол, определенный выше, компас возвращает строку x-y, где x соответствует северу или югу, если <math>| \alpha |</math> меньше или больше <math>\pi / 2</math>, соответственно, а y соответствует востоку или западу, если <math>\alpha</math> является отрицательным или положительным, соответственно. В первый раз, когда компас возвращает значение «юг», флаг поднимается и помечается значением (x, y) компаса. Поднятие флага обозначает направление сообщения в обход препятствия по правилу RHR, если компас указывает на юго-восток. Симметричный случай, когда компас указывает на юго-запад, здесь не рассматривается; в этом случае взамен RHR будет использоваться аналогичное правило левой руки (left-hand rule, LHR). После поднятия флага он остается поднятым, а его пометка неизменной до тех пор, пока компас не укажет на север, что говорит о том, что обход препятствия завершен. Можно слегка оптимизировать процесс, опуская флаг только тогда, когда компас указывает на северо-восток (при использовании RHR), а не на северо-запад; подробнее об этом – в [12]. Согласно правилу RHR, следует двигаться в тесной близости к периметру препятствия и держаться правой стороны относительно текущего направления движения сообщения. В случае расхождения пометок компаса и флага, например, если флаг помечен значением «юго-восток», а компас выдает значение «юго-запад», считается, что сообщение слишком сильно ушло влево, рискуя уйти от препятствия и нарушить правило правой руки (симметричный подход применим к правилу левой руки). В этом случае алгоритм GRIC переходит в режим восстановления, в котором изменяется принятый по умолчанию способ вычисления vidl: в режиме восстановления сообщение принудительно поворачивается направо (налево в случае применения правила LHR) путем определения <math>v_{idl}</math> как вектора, полученного поворотом <math>v_{cur}</math> на угол <math>\alpha ''</math> (вместо применяемого в режиме инерции <math>\alpha '</math>), где <math> \alpha '' = - sign(\alpha)(2 \pi - | \alpha |)/6</math>.
Для повышения эффективности работы алгоритма в целом и для обхода сложных препятствий режим восстановления имитирует правило правой руки (right-hand rule, RHR) – хорошо известную технику следования вдоль стены для выхода из лабиринта. Схематичное описание RHR-компонента алгоритма GRIC приведено ниже, полное изложение можно найти в работе [12]. В контексте GRIC компонент RHR использует виртуальный компас и флаг. Виртуальный компас присваивает вектору <math>v_{cur}</math> значение кардинальной точки, считая точку назначения сообщения находящейся на севере. Рассматривая угол <math>\alpha</math>, определенный выше, компас возвращает строку x-y, где x соответствует северу или югу, если <math>| \alpha |</math> меньше или больше <math>\pi / 2</math>, соответственно, а y соответствует востоку или западу, если <math>\alpha</math> является отрицательным или положительным, соответственно. В первый раз, когда компас возвращает значение «юг», флаг поднимается и помечается значением (x, y) компаса. Поднятие флага обозначает направление сообщения в обход препятствия по правилу RHR, если компас указывает на юго-восток. Симметричный случай, когда компас указывает на юго-запад, здесь не рассматривается; в этом случае взамен RHR будет использоваться аналогичное правило левой руки (left-hand rule, LHR). После поднятия флага он остается поднятым, а его пометка неизменной до тех пор, пока компас не укажет на север, что говорит о том, что обход препятствия завершен. Можно слегка оптимизировать процесс, опуская флаг только тогда, когда компас указывает на северо-восток (при использовании RHR), а не на северо-запад; подробнее об этом – в [12]. Согласно правилу RHR, следует двигаться в тесной близости к периметру препятствия и держаться правой стороны относительно текущего направления движения сообщения. В случае расхождения пометок компаса и флага, например, если флаг помечен значением «юго-восток», а компас выдает значение «юго-запад», считается, что сообщение слишком сильно ушло влево, рискуя уйти от препятствия и нарушить правило правой руки (симметричный подход применим к правилу левой руки). В этом случае алгоритм GRIC переходит в режим восстановления, в котором изменяется принятый по умолчанию способ вычисления <math>v_{idl}</math>: в режиме восстановления сообщение принудительно поворачивается направо (налево в случае применения правила LHR) путем определения <math>v_{idl}</math> как вектора, полученного поворотом <math>v_{cur}</math> на угол <math>\alpha ''</math> (вместо применяемого в режиме инерции <math>\alpha '</math>), где <math> \alpha '' = - sign(\alpha)(2 \pi - | \alpha |)/6</math>.




Строка 75: Строка 75:
'''Основные выводы'''
'''Основные выводы'''


Эффективность алгоритма GRIC оценивалась посредством моделирования. В качестве основных параметров рассматривались присутствие (или отсутствие) крупных препятствий различной формы, блокирующих коммуникацию, и плотность сети, которая варьировалась от очень низкой до очень высокой, от которой зависели средняя степень графа коммуникаций и наличие дыр в маршрутах. Основными метриками эффективности были степень успешности, т.е. процент сообщений, достигших точки назначения, и длина пути. Согласно результатам исследований, алгоритм GRIC эффективно, т.е. при помощи коротких путей, обходит дыры в маршрутах, но в присутствии сложных препятствий его эффективность падает со снижением плотности сети. На рис. 1 изображены типичные маршруты, найденные алгоритмом GRIC для препятствий разной формы. См. в [ ] подробное описание среды моделирования.
Эффективность алгоритма GRIC оценивалась посредством моделирования. В качестве основных параметров рассматривались присутствие (или отсутствие) крупных препятствий различной формы, блокирующих коммуникацию, и плотность сети, варьировавшаяся от очень низкой до очень высокой, от которой зависели средняя степень графа коммуникаций и наличие дыр в маршрутах. Основными метриками эффективности были степень успешности, т.е. процент сообщений, достигших точки назначения, и длина пути. Согласно результатам исследований, алгоритм GRIC эффективно, т.е. при помощи коротких путей, обходит дыры в маршрутах, но в присутствии сложных препятствий его эффективность падает со снижением плотности сети. На рис. 1 изображены типичные маршруты, найденные алгоритмом GRIC для препятствий разной формы. См. в [12] подробное описание среды моделирования.




Результат 1. В отсутствие препятствий дыры в маршрутах обходятся при любой плотности сети: процент успеха близок к 100% в случаях, когда исходная точка и точка назначения заданы корректно. Маршрутизация является эффективной с точки зрения длины маршрутов.
Результат 1. В отсутствие препятствий дыры в маршрутах обходятся при любой плотности сети: процент успеха близок к 100% в случаях, когда исходная точка и точка назначения тесно связаны друг с другом. Маршрутизация является эффективной с точки зрения длины маршрутов.




Строка 97: Строка 97:
'''Беспроводные сети датчиков с крупными препятствиями'''
'''Беспроводные сети датчиков с крупными препятствиями'''


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




'''Динамические сети'''
'''Динамические сети'''


Существуют мощные альтернативы алгоритму GRIC, такие как широко известные протоколы гарантированной доставки GFG [ ], GPSR [ ] и GOAFR [ ]. Эти протоколы основываются на этапе планаризации, выполняемом, например, при помощи протокола обнаружения перекрестных ссылок (CLDP) [9]. LCR подразумевает значительные издержки на поддержку топологии сети, которые со временем могут быть амортизированы в случае достаточно высокой стабильности сети. Напротив, при высокой динамичности сети необходимость частых обновлений делает затраты на поддержку топологии неприемлемо высокими. Таким образом, GRIC может быть самым практичным вариантом для динамических сетей с нестабильной структурой графа коммуникаций.
Существуют мощные альтернативы алгоритму GRIC, такие как широко известные протоколы гарантированной доставки GFG [3], GPSR [8] и GOAFR [10]. Эти протоколы основываются на этапе планаризации, выполняемом, например, при помощи протокола обнаружения перекрестных ссылок (CLDP) [9]. LCR подразумевает значительные издержки на поддержку топологии сети, которые со временем могут быть амортизированы в случае достаточно высокой стабильности сети. Напротив, при высокой динамичности сети необходимость частых обновлений делает затраты на поддержку топологии неприемлемо высокими. Таким образом, GRIC может быть самым практичным вариантом для динамических сетей с нестабильной структурой графа коммуникаций.


== Открытые вопросы ==
== Открытые вопросы ==
(1) Сложные вогнутые объекты, наподобие представленного на рис. 1d, по-прежнему представляют серьезную проблему для облегченных протоколов, поскольку в этой конфигурации эффективность GRIC напрямую зависит от плотности сети. (2) Низкая и очень низкая плотность сети порождает проблемы в присутствии крупных препятствий, даже если они оказываются «простыми» и выпуклыми, как на рис. 1b. (3) Задача, относящаяся к случаю трехмерных сетей, остается открытой. Инерция отчасти помогает делу, однако виртуальный компас и правило правой руки жестко привязаны к двумерной плоскости. (4) GRIC не свободен от циклов. Для практических задач очень нужен механизм выявления циклов или слишком длинных маршрутов. (5) Работа GRIC недостаточно изучена. Не имеется аналитических результатов, можно также рассмотреть такие новые метрики, как срок жизни сети, потребление энергии или перегрузка по трафику.
(1) Сложные вогнутые объекты, наподобие представленного на рис. 1d, по-прежнему представляют серьезную проблему для облегченных протоколов, поскольку в этой конфигурации эффективность GRIC напрямую зависит от плотности сети.
 
(2) Низкая и очень низкая плотность сети порождает проблемы в присутствии крупных препятствий, даже если они оказываются «простыми» и выпуклыми, как на рис. 1b.
 
(3) Задача, относящаяся к случаю трехмерных сетей, остается открытой. Инерция отчасти помогает делу, однако виртуальный компас и правило правой руки жестко привязаны к двумерной плоскости.
 
(4) GRIC не свободен от циклов. Для практических задач очень нужен механизм выявления циклов или слишком длинных маршрутов.
 
(5) Работа GRIC недостаточно изучена. Не имеется аналитических результатов, можно было бы также рассмотреть такие новые метрики, как срок жизни сети, потребление энергии или перегрузка по трафику.


== См. также ==
== См. также ==
4430

правок