How to implement the following task in MATLAB ?

2 views (last 30 days)
Hello all, I am trying to code the following part in MATLAB. It is related to the queue length of a node which depenfds upon packet arrival and packet departure at the nodes and is mentioned as:
Queue length at a node in time slot 't+1' = Queue length at a node in time slot 't' + number of packet arrived in time slot 't' - number of packet departed in time slot 't'.
Note : Packet arrival follows binomial distribution and Packet departure is based on status of the link between the nodes (if status is 1 then packet is departed else not). The packet departed is calculated as: data rate * total time.
Following are my efforts:
sr = [1,2,2,2,3,3,3,4,5]; % various possible source
ta = [2,3,6,8,6,4,7,6,6]; % various possible targets
G = graph(sr,ta); % models the Graph
% Initial queue length
q_len = zeros(nodes,T); % Queue length
% assume 10 initially
q_len(:,1) = 10;
n = 10; % number of packets
p = 0.2; % probability of successful arrival of packets
pack_arr = binornd(n,p,[nodes,T]); % number of packets arrival
nodes = 8;
status = [1 2 2 1 2 2 2 1 1 ];
data_ rate = [0.399, 1.918 ,1.259, 1.289, 2.228, 1.099, 1.736, 1.469, 0.131]; % Total Time
T = 100;
%% Queue length of each nodes
for t = 1:T-1
for i = 1:nodes
q_len(i,t+1) = q_len(i,t)+pack_arr(i,t);
end
end
My query is that, I am unable to code for packet departed part in above for loop. Any help in this regard will be highly appreciated.
  2 Comments
Torsten
Torsten on 10 May 2023
Don't you think it would be better first to read a book on queuing theory before starting to simulate such processes in MATLAB ?
charu shree
charu shree on 10 May 2023
Thank u sir for ur response...But I think I had written correct code ...

Sign in to comment.

Answers (1)

Shubham Dhanda
Shubham Dhanda on 22 Jun 2023
Hi,
I understand that you want to find the number of packets departed at the nodes. Packets departed depend on status value and is given by data rate* total time
Below is the MATLAB code implementation of the problem:
sr = [1,2,2,2,3,3,3,4,5]; % various possible source
ta = [2,3,6,8,6,4,7,6,6]; % various possible targets
G = graph(sr,ta); % models the Graph
nodes = 8;
status = [1 2 2 1 2 2 2 1 1 ];
data_rate = [0.399, 1.918 ,1.259, 1.289, 2.228, 1.099, 1.736, 1.469, 0.131]; % Total Time
T = 100;
% Initial queue length
q_len = zeros(nodes,T); % Queue length
% assume 10 initially
q_len(:,1) = 10;
n = 10; % number of packets
p = 0.2; % probability of successful arrival of packets
pack_arr = binornd(n,p,[nodes,T]); % number of packets arrival
%% Queue length of each nodes
for t = 1:T-1
for i = 1:nodes
% Calculate number of packets departed
if status(i) == 1 % link is available
pack_dep = round(data_rate(i)*T); % round to nearest integer
else
pack_dep = 0; % no packets depart
end
% Update queue length
q_len(i,t+1) = q_len(i,t) + pack_arr(i,t) - pack_dep;
end
end
Hope this helps.

Categories

Find more on Startup and Shutdown in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!