Multicast Mono-Sessão Multiobjetivo
3.4 Roteamento Multicast Multissessão
3.4.2 Capacidade Residual
Nesta abordagem, o objetivo é otimizar a capacidade residual da rede. Este objetivo está relacionado ao congestionamento proveniente do uso das arestas durante a ativação das sessões multicast. Este problema foi abordado em (LEE; CHO, 2004), (YOUSSEF et al., 2002) e (ANDRADE; GOLDBARG; GOLDBARG, 2015).
3.4.2.1 Capacidade Residual Sujeito a Limite de Crescimento das Árvores
Lee e Cho (2004) propuseram a otimização da capacidade residual (Definição 2) sujeito a limitação no crescimento das árvores de distribuição. Este trabalho foi comparado contra os resultados obtidos por Chen, Gunluk e Yener (2000) e se mostrou melhor tanto na resolução quanto na modelagem do problema. A consideração do limite de capacidade das arestas é um fator importante da formulação, pois isto aproxima o modelo do problema real.
Os elementos definidos a seguir em conjunto com os já definidos na Seção 3.1.2 serão utilizados para apresentar o modelo dos autores:
d(S) - arestas com um vértice pertencente a V \ S e outro vértice pertencente a S. V representa vértices da rede;
vk
i - indica se o vértice i está na árvore Tk;
xk
(i,j) - variável binária indicando se a aresta (i, j) está na árvore T k;
E(i) - representa as arestas que contém o vértices i.
Definição 2. Capacidade Residual - o valor de capacidade da aresta menos o valor de capacidade já utilizado. O valor é calculado conforme a Equação 3.7.
A Equação 3.7 define o valor de capacidade residual de uma aresta: Zij = b(ij)−
X
k∈W
xk(i,j)· tk, ∀(i, j) ∈ E
3.4. Roteamento Multicast Multissessão
A partir da definição do conceito de capacidade residual e da definição do cálculo para uma aresta (i, j), define-se o valor de capacidade residual mínima na Equação 3.8:
Z = min
(i,j)∈EZij ∀(i, j) ∈ E (3.8)
O modelo proposto por Lee e Cho (2004) é apresentado nas Equações 3.9-3.16 e tem como função-objetivo a Equação 3.8. Os conjuntos de Restrições 3.9, 3.10 e 3.11 indicam que o vértice i está conectado a árvore Tk por uma aresta (i,j), que pelo menos uma
aresta pertencente ao conjunto E(i) está presente em Tk e que o número de arestas em
Tk somado de 1 é igual ao número de vértices em Tk, respectivamente. A Restrição 3.13
garante que a capacidade residual será maior ou igual ao valor de Z.
Maximizar Z Sujeito à: X (i,j)∈d(S) xk(i,j)≥ 1 ∀k ∈ W ∀S ⊂ V | S ∩ Dk 6= Dk (3.9) vki ≥ xk (i,j) ∀v k i ∀k ∈ W ∀(i, j) ∈ E(i) (3.10) vki ≤ X (i,j)∈E(i) xk(i,j) ∀i ∈ V ∀k ∈ W (3.11) X i∈V vki = 1 + X (i,j)∈E xk(i,j) ∀k ∈ W (3.12) b(i,j)− X k∈W tkxk(i,j)≥ Z ∀(i, j) ∈ E (3.13) X (i,j)∈E xk(i,j)≤ αOP Tk ∀k ∈ W (3.14) z ≥ 0 (3.15) vki, xk(i,j)∈ {0, 1} (3.16)
A Restrição 3.14 é utilizada para limitar o crescimento da árvore a medida que se otimiza o valor de Z. Quando Z é maximizado, naturalmente a carga de tráfego sobre as arestas é distribuída entre arestas com maior capacidade residual. Deste modo, é possível elevar o valor de Z. Isto se deve ao fato do valor baixo de Z representar alto consumo da capacidade de um conjunto pequeno de arestas. Então, distribuir este consumo para outras arestas pode levar ao crescimento das árvores. Nos experimentos realizados o valor α = 2 foi utilizado.
Algoritmos
Lee e Cho (2004) propuseram dois algoritmos baseados em substituição de arestas. Os algoritmos consideram dois cenários distintos para lidar com requerimento de tráfego
uniforme e igual a 1 (tk = 1) e requerimento de tráfego não-uniforme (tk >= 1).
O primeiro algoritmo denominado Highest bandwidth-first é aplicado ao cenário com tk = 1. Inicialmente, as árvores de distribuição referentes ao k-ésimo grupo são criadas.
Em seguida, avalia-se a capacidade residual das arestas pertencentes a solução. Após esta avaliação, as arestas são ordenadas de modo crescente por valor de capacidade residual. Neste momento, há a tentativa de substituí-las através da remoção da aresta mais con- gestionada e reconexão da árvore com algoritmo de caminho mais curto. As arestas que entrarão na árvore após a substituição devem conter capacidade residual Zij = Z + 2.
Assim sendo, tem-se o ganho de 1 unidade de capacidade residual.
O segundo algoritmo proposto é denominado Closest-Gap-First. Ele é aplicado ao ce- nário onde tk >= 1. Os mesmos procedimentos de construção de árvores de distribuição
e avaliação da capacidade residual mencionados no parágrafo anterior são aplicados. No entanto, a estratégia de escolha da aresta que vai entrar na árvore para melhorar a capa- cidade residual é diferente. Os autores definiram o termo alternative-gain para indicar a seguinte situação: considere Z1 e Z2 a primeira e segunda arestas com menor capacidade residual, respectivamente. Então, a remoção da aresta de capacidade Z1 leva a um ganho
de no máximo Z2− Z1. As arestas com valor de capacidade mais próximo dessa diferença
são escolhidas.
3.4.2.2 Capacidade Residual Sujeito com Suporte para Múltiplas Fontes
O modelo proposto por Chen et al. (2013) segue na mesma linha de pensamento do modelo definido em (LEE; CHO, 2004). Entretanto, o novo modelo não considera um limite de tamanho para o crescimento das árvores, apenas se utiliza uma restrição de capacidade das arestas. O modelo incorpora um recurso interessante que é a capacidade de lidar com múltiplas fontes por grupo.
Além das definições apresentadas na Seção 3.1.2, considere as seguintes:
xk
(i,j) - variável binária que representa o fluxo que passa pela aresta (i, j) em caso de
tratar o problema como um problema de fluxo;
Fk
(i,j) - é um variável binária que assume valor 1 quando x k
(i,j) for positivo e 0 caso
contrário
A(v) - representa os vizinhos de vértice v ∈ V ;
c = maxk∈W{|Dk|} - parâmetro utilizado no modelo.
O conjunto de Restrições 3.17-3.25 definem o modelo matemático para otimização da capacidade residual considerando múltiplas fontes por grupo. As Restrições 3.19-3.21 são Restrições comuns em problemas de roteamento utilizando fluxo: as Restrições 3.19 garantem que o fluxo que sai do conjunto de fontes Sk é igual ao fluxo que chega ao
3.4. Roteamento Multicast Multissessão
conjunto de demanda Dk; as Restrições 3.20 garantem que o número de cópias chegando
ao vértice de demanda seja 1 a mais que o número de cópias que saem deste vértice e as Restrições 3.21 garantem a conservação de fluxo em vértices intermediários. As Restrições 3.22 são usadas para marcar arestas utilizadas para entrega dos streams aos vértices de demanda, onde a variável F(i,j)= 1 quando há fluxo passando por uma aresta
(i, j) ∈ E. As Restrições 3.23 garantem que não haverá fluxo entrando em nenhum vértice fonte e as Restrições 3.24 evitam que um vértice seja alcançado por mais de um vértice vizinho. Ambas as restrições evitam que ciclos sejam criados. As Restrições 3.25 garantem que a capacidade das arestas seja maior ou igual ao valor de Z.
maximizar Z (3.17) Sujeito à: (3.18) X i∈Sk X j∈A(v) X(i,j)k = |Dk|, ∀wk∈ W (3.19) X j∈A(i) X(j,i)k − 1 = X j∈A(i) X(i,j)k , ∀wk∈W i∈Dk (3.20) X j∈A(i) X(i,j)k = X j∈A(i) X(i,j)k , ∀wk∈W i∈Dk i /∈Sk, i /∈Dk (3.21)
X(i,j)k ≤ cF(i,j), ∀i ∈ V, j ∈ A(i) (3.22)
X j∈A(i) F(i,j)k = 0, ∀wk ∈ W, i ∈ Sk (3.23) X j∈A(i) F(i,j)k ≤ 1, ∀wk ∈ W, i ∈ V, i /∈ Sk (3.24) b(i,j)− X wk∈W
tk· [(F(i,j)+ F(j,i))] ≥ Z ∀(i, j) ∈ E (3.25)
O modelo proposto por Chen et al. (2013) permite tratar o problema de roteamento multicast com apenas uma fonte por grupo, assim como é possível utilizar múltiplas fontes. Em se tratando de utilizar |Sk| = 1, o problema é similar a versão proposta em (LEE;
CHO, 2004). Entretanto, o modelo torna-se importante pela capacidade de lidar com múltiplas fontes - quando |Sk| >= 1. Ademais, o trabalho pode ser ampliado e analisado
de acordo com a otimização do custo de configuração da solução incorporando elementos relacionados a qualidade de serviço.
Os autores definem duas condições importantes para o atendimento de um grupo por múltiplas fontes:
• Cada membro de um grupo só pode ser atendido por uma fonte;
Algoritmos
Chen et al. (2013) propuseram um algoritmo heurístico capaz de resolver o problema de roteamento multicast otimizando a capacidade residual tanto com uma fonte quanto com múltiplas fontes. A ideia básica é construir árvores de caminho aumentado utilizando uma versão modificada do algoritmo de Dijkstra (1959).
O algoritmo de construção de árvores para um dado grupo k possui duas fases. Na primeira fase, uma árvore de caminho aumentado é criada para cada vértice fonte s ∈ Sk.
Em seguida, utiliza-se um procedimento de construção das árvores finais da solução. Este processo consiste em fazer o percurso do vértice cliente até um vértice fonte. Quando o vértice cliente x acha o vértice fonte s, então significa que x está na árvore de s. A busca permite que um vértice cliente x conecte-se a s pelo melhor caminho possível (em termos de capacidade disponível nas arestas).