17.06.2015 Views

Monografia - UFF

Monografia - UFF

Monografia - UFF

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

3.6 Otimizações 47<br />

1: function updateCostMARARP(from) {<br />

2:<br />

3: usedStatistics = probeRateChoice(from);<br />

4: sourceRate = probeRates[usedStatistics];<br />

5: P ab = nLq[from, usedStatistics];<br />

6: P ba = Lq[from, usedStatistics];<br />

7:<br />

8: for (c in sizeClasses) {<br />

9:<br />

10: bestCost = infinity;<br />

11:<br />

12: for (i in availableRates) {<br />

13:<br />

14: newETX = computeETXAtRateMARAP(P ab , P ba , sourceRate, i, c);<br />

15: newCost = (newETX * c) / i;<br />

16:<br />

17: if (newCost < bestCost) {<br />

18:<br />

19: bestCost = newCost;<br />

20: bestRate = i;<br />

21: }<br />

22: }<br />

23:<br />

24: if (bestCost != infinity) {<br />

25:<br />

26: rateForLink[from, c] = bestRate;<br />

27: }<br />

28: costForLink[from, c] = bestCost;<br />

29: }<br />

30: }<br />

Figura 3.10: Pseudocódigo da função modificada no MARA-RP.<br />

updateCost original esta variável representava um vetor, na função modificada ela se transforma<br />

em uma tabela bidimensional. Cada entrada desta tabela relaciona um vizinho,<br />

uma classe de tamanho de pacotes e a taxa de transmissão correspondente.<br />

É importante notar que a variável costF orLink continua com a mesma dimensão.<br />

Ao contrário da rateF orLink, essa variável não passa a ser dependente do tamanho de<br />

quadro. De fato, o pseudocódigo apresentado supõe que o percorrimento das classes<br />

de tamanho na repetição mais externa ocorre em ordem crescente de intervalos. Desta<br />

forma, o custo final do enlace (para efeito das decisões de roteamento) será relativo ao<br />

maior quadro possível.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!