Код Matlab для случайной точки пути в MANET - PullRequest
1 голос
/ 15 сентября 2010

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

Любое тело может предложить любой хороший учебник или коды, доступные в произвольной путевой точке? Помощь приветствуется.

ОБНОВЛЕНИЕ:

Модель произвольной путевой точки (RWP) - это широко используемая синтетическая модель для мобильности, например, в специальных сетях. Это элементарная модель, которая описывает схему движения независимых узлов простыми терминами.

Вкратце, в модели RWP:

Каждый узел движется по зигзагообразной линии от одной путевой точки к следующей Путевые точки равномерно распределены по заданной выпуклой области, например, единичный диск. В начале каждой ноги случайная скорость берется из распределения скорости (в базовом случае скорость постоянна 1) Необязательно, узлы могут иметь так называемые «времена мышления», когда они достигают каждой точки пути перед продолжением на следующем участке, где длительности являются независимыми и одинаково распределенными случайными величинами

! [1. Общие проблемы со случайной моделью путевых точек] [1]

Зигзагообразные траектории: модель RWP является элементарной, и легко спорить о неестественных путях. Опять же, любой практический протокол или механизм должен быть надежным и обеспечивать разумную производительность с широким диапазоном движущихся моделей, включая движение, подобное модели RWP. Распределение скоростей. Наиболее распространенной проблемой при имитационных исследованиях с использованием модели случайных точек является плохой выбор распределения скоростей [4], например, равномерное распределение U (0, Vmax). Такое распределение скоростей (которое, по-видимому, является общим для моделирования NS-2!) Приводит к ситуации, когда в стационарном состоянии каждый узел перестает двигаться. Чтобы избежать этого, распределение скорости должно быть таким, чтобы 1 / E [1 / V]> 0 Обратите внимание, что среднее время, которое узел проводит на одной ноге, пропорционально 1 / E [1 / V]. 2. Случайная путевая точка на границе (RWPB)

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

[1]: http://i.stack.imgur.com/VKobC.gif [источник: http://www.netlab.tkk.fi/~esa/java/rwp/rwp-model.shtml]

Это то, что я нашел хороший источник. Как я могу реализовать эту модель в MATLAB?

ОБНОВЛЕНИЕ

СЛУЧАЙНАЯ ТОПОЛОГИЯ СЕТИ:

 maxx=1000;
 maxy=1000;
 maxn=100;
%node generation
 node = rand(maxn,2);
 node(:,1) = node(:,1)*maxx;
 node(:,2) = node(:,2)*maxy;
 maxd=2;
 noded = rand(maxd,2);
 noded(:,1) = noded(:,1)*maxx;
 noded(:,2) = noded(:,2)*maxy;
 maxs=4;
 nodes = rand(maxs,2);
 nodes(:,1) = nodes(:,1)*maxx;
 nodes(:,2) = nodes(:,2)*maxy;
    % make background white, run only once
    colordef none,  whitebg
    figure(1);
    axis equal
    hold on 
    box on;
    plot(node(:, 1), node(:, 2), 'k.', 'MarkerSize', 25);
    hold on 

   % plot(noded(:, 1), noded(:, 2), 'r.', 'MarkerSize', 25);
    hold on
  %  plot(nodes(:, 1), nodes(:, 2), 'b.', 'MarkerSize', 25);
    hold on
    title('Network topology');
    xlabel('X');
    ylabel('Y'); 
    grid on
    Xminor grid on 
    axis([0, maxx, 0, maxy]);
    set(gca, 'XTick', [0; maxx]);
    set(gca, 'YTick', [maxy]);

Результат:

RANDOM WAY POINT MOBILITY:

clear;
hold on;
X = 1500;
Y = 500;

MINSPEED = 0;
MAXSPEED = 20;
PAUSETIME = 2;
TIME = 900;
N = 10;
AMOSTRAS = 30;
nodes = zeros(N,6);
nodes_speed = zeros(N,TIME);
nodes_speed_mean = zeros (AMOSTRAS,TIME);

for a=1:AMOSTRAS
    for i=1:N
        j=1;
        x = rand*X;
        y = rand*Y;
        waypointX = rand*X;
        waypointY = rand*Y;
        speed = MINSPEED+(MAXSPEED - MINSPEED)*rand;
        time = 1;
        node = [x y speed waypointX waypointY time];
        nodes(j,:) =node;
        while time <= TIME
            node = nodes(j,:);
            x = node(1);
            y = node(2);
            speed = node(3);
            waypointX = node(4);
            waypointY = node(5);
            dist = sqrt((x-waypointX)^2+(y-waypointY)^2);
            new_waypointX = rand*X;
            new_waypointY = rand*Y;
            new_speed =  MINSPEED+(MAXSPEED - MINSPEED)*rand;
            time = time + dist/speed + PAUSETIME;
            node = [waypointX waypointY new_speed new_waypointX new_waypointY time];
            j=j+1;
            nodes(j,:) =node;
        end
        for k=1:j-1
            node_ant = nodes(k,:);
            speed = node_ant(3);
            time_ant = node_ant(6);
            node_next = nodes(k+1,:);
            time_next = node_next(6);
            if time_next >TIME
                time_next = TIME;
            end
            times = ceil(time_ant):floor(time_next);
            if ~isempty(times)
                nodes_speed(i,times) = speed ;
            end
        end
    end
    nodes_speed_mean(a,:) = mean(nodes_speed);
end
plot (mean(nodes_speed_mean),'r');
grid on 

! [Альтернативный текст] [3]

  1. Я сгенерировал топологию сети, которая является статической в ​​первом коде. Во втором коде я генерировал мобильность RWP. Теперь мой вопрос: могу ли я сделать так:

    Генерирует сеть случайным образом печатает его. Далее модель мобильности применяется в сети. Я снова построю сеть и увижу, что узлы сместились. Lat Я строю график как (рисунок 2.).

Спасибо за помощь.

1 Ответ

1 голос
/ 15 сентября 2010

Итак, на каждом шаге вам нужно сгенерировать 3 случайных числа:

  1. для представления времени, когда актер остается в текущем местоположении.

  2. для представления x-координаты следующий шаг актера.

  3. для представления y-координаты следующий шаг актера.

(Вы могли бы заменить координаты x и y вектором скорости, но вам все еще нужно 2 случайных числа.)

Теперь все, что вам нужно сделать, это выяснить, из каких распределений вывести случайные числа, чтобы соответствовать вашей модели. Очень наивным подходом Matlab было бы выполнить:

rand(10,3)-0.5

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...