• Nenhum resultado encontrado

5.4 M ´ ODULO DE ROTEAMENTO

5.4.1 Fase de Avan¸co das Formigas

5.4.1.1 Avan¸co da Formiga: Etapa de Encaminhamento de Mensagens

A etapa de encaminhamento de mensagens do protocolo Cultural GrAnt deter- mina por qual(is) rota(s) uma mensagem deve seguir para eventualmente alcan¸car o seu destino. A decis˜ao de encaminhamento ´e realizada mediante a ado¸c˜ao de uma regra de transi¸c˜ao gulosa do ACO (idem `a sub-regra de intensifica¸c˜ao do algoritmo ACS descrito na Se¸c˜ao 3.2.3.3) que tira vantagem de qualquer oportunidade boa de contato e provˆe uma decis˜ao mais eficiente sobre cada pr´oximo encaminhador. O Algoritmo 3 ilustra o funcionamento geral desta etapa de encaminhamento.

De uma forma geral, as fases de avan¸co e retorno da formiga interferem no processo de encaminhamento das mensagens da seguinte maneira. Na fase de avan¸co da formiga, quando uma mensagem m atinge um n´o i, o melhor encaminhador para esta mensagem ´

e inicializado com /0 no nicho correspondente do conhecimento situacional do espa¸co de cren¸cas do n´o i (linha 2 do Algoritmo 3). O processo transcorre com as formigas avan¸cando e quando atingem os destinos, acontece a fase de retorno onde as m´etricas Utilidade de Intermedia¸c˜ao (do n´o e da rede), que s˜ao m´etricas associadas ao conhecimento Hist´orico, e a Qualidade do Caminho (m´etrica associada ao conhecimento Situacional) s˜ao atualizadas (ver mais detalhes na Se¸c˜ao 5.4.2).

Durante a etapa de encaminhamento, um n´o i decide se encaminhar´a ou n˜ao uma mensagem m (isto ´e, ele ir´a gerar ou n˜ao uma formiga associada `a mensagem m) para um novo contato j (∀ j ∈ Ni, onde Ni ´e o conjunto dos vizinhos atuais de i) de acordo com a influˆencia dos conhecimentos armazenados no seu espa¸co de cren¸cas. Esta decis˜ao de encaminhamento pode ter car´ater explorat´orio (n˜ao h´a necessidade do n´o j ter participado previamente de um caminho para o destino d de m, podendo-se assim abrir uma nova frente de busca atrav´es da nova formiga gerada) ou intensificador (o n´o j precisa ter participado anteriormente de um caminho para o destino d de m, podendo assim refor¸car um caminho j´a existente com a tentativa do envio da nova formiga por este caminho).

Ao receber ou criar uma mensagem m, uma vez que o n´o i ainda n˜ao tenha encaminhado m para nenhum de seus contatos (ou seja, melhor encamm= /0), sua identifi- ca¸c˜ao e sua utilidade (Ui, calculada na linha 6) inicializar˜ao o nicho do seu conhecimento situacional (Situacim) para a mensagem m (ver linhas 8 e 9 do Algoritmo 3).

Algoritmo 3 Etapa de Encaminhamento de Mensagens do Protocolo Cultural GrAnt

1: para cada mensagem m no buffer de um n´o i fa¸ca

2: melhor encamm← /0; {Nenhum melhor encaminhador para m foi definido}

3: fim para

4: {As m´etricas Utilidade de Intermedia¸c˜ao do n´o e da rede (Conhecimento Hist´orico - Histi) e Qualidade do Caminho s˜ao atualizadas na Fase de Retorno das Formigas (ver Se¸c˜ao 5.4.2)}

5: para cada mensagem m no buffer de um n´o i fa¸ca

6: Ui← Ux; {C´alculo da Utilidade (local ou global) do n´o i com x = i na Equa¸c˜ao 5.10}

7: se (melhor encamm= /0) ent˜ao

8: melhor encamm← i {Inicializa o Situacional};

9: f(melhor encamm) ← Ui;

10: fim se

11: status busca explora← verdadeiro; 12: status busca intensi f ica← verdadeiro; 13: se ((GParim= Intm) e (Domi= m´edio)) ent˜ao

14: status busca explora← falso;

15: fim se

16: se ((GParim= Intm) e (Domi= baixo)) ent˜ao

17: status busca explora← falso; 18: status busca intensi f ica← falso;

19: fim se

20: para todo contato j fa¸ca

21: Uj← Ux {C´alculo da Utilidade (local ou global) do n´o j com x = j Equa¸c˜ao 5.10}

22: se ((status busca explora) e (melhor encamm= i) e (Ui= Uj)) ent˜ao 23: explora inic← verdadeiro;

24: sen˜ao

25: explora inic← falso;

26: fim se

27: {Influˆencia dos conhecimentos no encaminhamento} 28: se ((status busca intensi f ica) e (In f luencia())) ent˜ao 29: novo par <msg, encam> (m, j); {Influˆencia do Hist´orico}

30: sen˜ao

31: se ((explora inic) ou (Aceita())) ent˜ao 32: {Atualiza¸c˜ao do Situacional} 33: melhor encamm← j; 34: f(melhor encamm) ← Uj; 35: fim se 36: fim se 37: fim para 38: fim para

39: se (melhor encamm6= i) ent˜ao

40: novo par <msg, encam> (m, melhor encamm); {Influˆencia do Situacional}

41: fim se

42: Fun¸c˜ao In f luencia {Fun¸c˜ao de Influˆencia} 43: se (U Intermj,d> Histdi) ent˜ao

44: retorne verdadeiro {drj= +1}

45: sen˜ao

46: retorne falso {drj= −1 ou drj= 0}

47: fim se

48: Fun¸c˜ao Aceita {Fun¸c˜ao de Aceita¸c˜ao} 49: se (Uj> Situaci m) ent˜ao 50: retorne verdadeiro 51: sen˜ao 52: retorne falso 53: fim se

Considerando o conhecimento de dom´ınio do n´o i (Domi, classificado como alto (dri= +1), m´edio (dri= 0) ou baixo (dri= −1), conforme descrito na Se¸c˜ao 5.3.2) e diante da necessidade de auxiliar o protocolo Cultural GrAnt na decis˜ao de quando encaminhar uma mensagem para um n´o vizinho atrav´es da replica¸c˜ao de sua cust´odia (gera¸c˜ao de uma nova formiga) ou restringir esse encaminhamento, as seguintes observa¸c˜oes quanto ao grau de estagna¸c˜ao dos n´os s˜ao consideradas:

• N´os de origem e n´os intermedi´arios com dom´ınio de estagna¸c˜ao alto (isto ´e, n´os intermedi´arios com baixa mobilidade) tˆem uma probabilidade baixa de serem bons intermediadores de comunica¸c˜oes e podem precisar encaminhar mais formigas de forma a explorar ou intensificar a busca at´e que os destinos de suas mensagens sejam alcan¸cados;

• N´os intermedi´arios com dom´ınio de estagna¸c˜ao baixo tˆem uma probabilidade alta de serem bons intermediadores de comunica¸c˜oes o que resulta em uma necessidade menor de lan¸car novas formigas e por isso podem encaminhar menos cust´odias de mensagens. Assim, de acordo com o Algoritmo 3, o indicador status busca explora, que ´e inicializado com verdadeiro na linha 11 (para os n´os que originaram a mensa- gem ou para os n´os intermedi´arios com alta estagna¸c˜ao), ´e alterado para falso, nos casos em que os n´os intermedi´arios tˆem estagna¸c˜ao baixa ou m´edia (linhas 14 e 17).

No caso da intensifica¸c˜ao da busca por caminhos j´a completados, o indicador status busca intensifica ´e inicializado com verdadeiro na linha 12 (ou seja para os n´os que originaram a mensagem ou para os n´os intermedi´arios com estagna¸c˜ao alta) e s´o ´e alterado para falso nos n´os intermedi´arios com estagna¸c˜ao baixa (linha 18).

Desta forma, de acordo com o indicador status busca, o encaminhamento da cus- t´odia da mensagem para novos n´os com mesma utilidade s´o n˜ao acontece (isto ´e, o n´o n˜ao explora o ambiente) quando o n´o intermedi´ario que est´a com a cust´odia tem grau de estagna¸c˜ao baixo ou m´edio; e o encaminhamento para caminhos j´a tra¸cados s´o n˜ao acon- tece (n´o n˜ao intensifica) quando o n´o intermedi´ario que est´a com a cust´odia tem grau de estagna¸c˜ao baixo. Visto sob o aspecto da classifica¸c˜ao da mobilidade do n´o, pode-se dizer que n´os com alta mobilidade tendem a n˜ao encaminhar cust´odia de mensagens, n´os com mobilidade m´edia tendem a intensificar a busca e n´os com mobilidade baixa realizam tanto uma explora¸c˜ao quanto uma intensifica¸c˜ao na busca. Assim, pode-se dizer que o co- nhecimento de dom´ınio utilizado nesta tese introduz uma heur´ıstica espec´ıfica do dom´ınio de aplica¸c˜ao sendo considerado.

Ap´os a defini¸c˜ao do status da busca, no sentido de guiar o encaminhamento de uma mensagem por um caminho de explora¸c˜ao ou intensifica¸c˜ao, com base no grau de parentesco e do conhecimento de dom´ınio, a sequˆencia do Algoritmo 3 prevˆe as etapas de aceita¸c˜ao, atualiza¸c˜ao e influˆencia dos dois conhecimentos restantes do protocolo: situa- cional e hist´orico. Nos casos em que a decis˜ao ´e por n˜ao restringir o encaminhamento, o conhecimento hist´orico atua quando a decis˜ao ´e por intensificar os caminhos j´a tra¸cados e o conhecimento situacional atua quando a decis˜ao ´e por explorar o espa¸co, conforme detalhado na sequˆencia.

Nos casos em que a busca ´e direcionada para encaminhar a mensagem para cami- nhos j´a completados (status busca intensifica ´e verdadeiro), a influˆencia do conhecimento hist´orico de um n´o i no encaminhamento de uma mensagem para um novo contato j se d´a quando a mudan¸ca na dire¸c˜ao de j (drj) for positiva, indicando que j apresenta utilidade de intermedia¸c˜ao acima da utilidade de intermedia¸c˜ao m´edia da rede de relacionamentos de i (linhas 43, 44 e 29).

Nos casos em que a busca ´e direcionada para encaminhar a mensagem para novos n´os, a possibilidade de encaminhamento para um novo n´o j s´o acontece se a utilidade dele (Uj) for superior `a utilidade do melhor encaminhador encontrado at´e o momento (condi¸c˜ao de aceita¸c˜ao de um novo indiv´ıduo no conhecimento situacional, ver linha 49). Entretanto, h´a uma possibilidade de encaminhamento para novos n´os quando a utilidade do n´o j for igual a do n´o i que mant´em a cust´odia (Ui = Uj): no in´ıcio da explora¸c˜ao, onde o conhecimento situacional acabou de ser inicializado com a identifica¸c˜ao do pr´oprio n´o i (melhor encam = i), conforme testes realizados na linha 22. Neste caso, abre-se uma possibilidade de explora¸c˜ao para novos n´os definida pelo status explora inic.

Em cada n´o i da rede, ap´os analisar a utilidade dos contatos atuais e inferir o melhor deles, o protocolo Cultural GrAnt criar´a o par < msg, encam > (linha 29 e/ou 40), que representa o par da mensagem m e seu correspondente encaminhador. Esses pares passar˜ao por um processo de classifica¸c˜ao e escalonamento (ver Se¸c˜ao 5.5) que determi- nar´a a ordem de suas transmiss˜oes. Ap´os a transmiss˜ao de cada mensagem m, o protocolo Cultural GrAnt atualizar´a no n´o i uma vari´avel local chamada NEncamm que indicar´a o n´umero de vezes que uma mensagem m foi encaminhada para outros n´os. NEncamm ´e indexada pela identifica¸c˜ao da mensagem e ´e incrementada por um em cada encami- nhamento. Ambos NEncamm e os pares < msg, encam > s˜ao utilizados pelos m´odulos de escalonamento e gerenciamento de buffer (ver Se¸c˜oes 5.5 e 5.6) para tomar suas decis˜oes.