-
Notifications
You must be signed in to change notification settings - Fork 1
/
GreedyRandomized.m
54 lines (42 loc) · 1.49 KB
/
GreedyRandomized.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
function solution = GreedyRandomized()
matrices;
miu= R*1e9/(8*1000); % capacity in bits / packets of 1000bytes
NumberLinks= sum(sum(R>0)); % number of connections
lambda_s= T*1e6/(8*1000); % packet arrival rate
gama= sum(sum(lambda_s)); % total network traffic (packets/sec)
d= L*1e3/2e8; % speed of propagation / speed of ligh in fiber network
pairs = [];
% descobrir nos ligados por um path bidirecional
for origin=1:16
for destination=(origin+1):17
if T(origin,destination)+T(destination,origin)>0
pairs = [pairs; origin destination];
end
end
end
npairs = size(pairs,1);
b = randperm(npairs); % random sorted numbers up to npairs
aux = [];
% reorder pairs acording to b
for i = 1: npairs
aux(i,:) = pairs(b(i), :);
end
pairs = aux;
lambda = zeros(17);
routes = zeros(npairs,17);
% compute the new lambda between the routes between nodes according the shortestpaths
for i=1:npairs
origin= pairs(i,1);
destination= pairs(i,2);
delay = 1./(miu-lambda) + d; % M/M/1 Atraso médio no sistema Modulo 2 slides
r = ShortestPathSym(delay, origin, destination);
routes(i,:) = r;
j= 1;
while r(j) ~= destination
lambda(r(j), r(j+1)) = lambda(r(j), r(j+1)) + lambda_s(origin, destination);
lambda(r(j+1), r(j)) = lambda(r(j+1), r(j)) + lambda_s(destination, origin);
j = j + 1;
end
end
solution = struct('pairs', pairs, 'routes', routes, 'lambda',lambda);
end