4511
правок
Irina (обсуждение | вклад) Нет описания правки |
Irina (обсуждение | вклад) |
||
Строка 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 \{ \frac{\pi}{6}, |\alpha| \} </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>. | ||
правок