Roteamento em Redes Ópticas Utilizando
Algoritmo Genético
Eduardo R. Benayon
Faculdade de Engenharia
Universidade do Estad...
É possível observar que os nós são interligados por enlaces
e cada um deles possui um peso, que pode estar relacionado a
d...
Para cada nó de origem um nó de destino é selecionado
através dos limites (parâmetro bounds).
Com o objetivo de eliminar a...
Fig. 4. Menor caminho pelo Algoritmo Dijkstra
C. Simulação usando o Algritumo Genético Proposto
A simulação do Algoritmo G...
Próximos SlideShares
Carregando em…5
×

Roteamento em Redes Ópticas Utilizando Algoritmo Genetico

90 visualizações

Publicada em

0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
90
No SlideShare
0
A partir de incorporações
0
Número de incorporações
1
Ações
Compartilhamentos
0
Downloads
7
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Roteamento em Redes Ópticas Utilizando Algoritmo Genetico

  1. 1. Roteamento em Redes Ópticas Utilizando Algoritmo Genético Eduardo R. Benayon Faculdade de Engenharia Universidade do Estado do Rio de Janeiro Rio de Janeiro, Brasil eduardo.benayon@gmail.com Resumo—As redes ópticas de transmissão estão se tornando cada vez mais complexas e com maior capacidade para atender a crescente demanda de tráfego originada por novos serviços de telecomunicações. Diante desse cenário é importante otimizar os recursos das redes como na solução do problema de roteamento e alocação de comprimento de onda (RWA). O Artigo apresenta um algoritmo genético para resolver o subproblema do roteamento utilizando o GAOT (Genetic Algorithm Genetic Toolbox) e compara com os resultados obtidos com o algoritmo Dijkstra, ambos em ambiente Matlab. Palavras-chave—Roteamento, Alocação de Comprimento de Onda, Redes Ópticas, DWDM, Algoritmo Genético, Função Aptidão. I. INTRODUÇÃO Nos últimos anos o tráfego nas redes de telecomunicações cresceu de forma acentuada devido ao surgimento de novas tecnologias e serviços como a internet banda larga, vídeo em alta definição, vídeo sob demanda, IPTV, comércio eletrônico, internet móvel, etc. O único meio de transmissão capaz de suportar essa enorme demanda por banda é a fibra óptica, e a tecnologia adotada nas redes de transmissão por explorar melhor essa capacidade foi a DWDM (Dense Wavelength Division Multiplexing). As redes DWDM passaram por uma grande evolução nos últimos anos, começando com sistemas ponto a ponto, passando pelas redes em anel e chegando às redes em malha. Com o desenvolvimento e comercialização dos equipamentos OXC (optical cross connect), que possuem a funcionalidade de comutação e roteamento de comprimentos de onda, foi possível implementar redes totalmente ópticas que são conhecidas como redes com roteamento por comprimento de onda (WRON - Wavelength-routed optical network). O estabelecimento de uma conexão entre dois pontos em uma rede WRON exige a escolha de uma rota física (conjunto de segmentos de fibras ópticas) e de uma rota luminosa (conjunto de comprimentos de onda utilizados ao longo da rota física). Este processo é conhecido como o problema de roteamento e alocação de comprimento de onda (RWA - Routing and Wavelength Assignment problem). O problema RWA é bastante complexo e está diretamente ligado ao desempenho e otimização da rede óptica, e é dividido em estático e dinâmico. Além disso, o problema de roteamento geralmente é tratado separadamente da alocação de comprimento de onda com o objetivo de tornar o problema RWA mais simples. Existem muitas soluções na literatura para o problema do RWA dinâmico, como os métodos heurísticos da Alocação aleatória (Random Assignment), Primeiro da fila (First-Fit), Menos usado (Least-Used/SPREAD), Menor carga (Least Loaded) entre outros. Este artigo avalia a viabilidade da utilização de algoritmo genético na solução do subproblema de roteamento e compara seu desempenho com algoritmo Dijkstra, que é um dos mais usados para cálculo de caminho com custo mínimo. A seção II introduz o problema do roteamento em redes ópticas, a técnica utilizada para reproduzir a rede óptica no ambiente Matlab e o objetivo do Trabalho. A seção III descreve sucintamente o funcionamento do algoritmo genético. O algoritmo genético proposto e a ferramenta utilizada para realizar as simulações são explicados na seção IV. A seção V apresenta o algoritmo Dijkstra enquanto a seção VI compara as simulações realizadas no Matlab com ambos os algoritmos. Finalmente, a seção VII apresenta as conclusões e os trabalhos futuros seguida das referências utilizadas na elaboração deste artigo. II. ROTEAMENTO EM REDES ÓPTICAS Ao chegar uma solicitação de conexão entre um nó de origem e um nó de destino em uma rede óptica, deve ser escolhida preferencialmente uma rota que utilize os recursos da rede da melhor forma possível, seja pelo menor número de enlaces percorridos, pela menor distância entre os nós ou pela medição de outros parâmetros de desempenho. A Fig. 1 abaixo mostra um exemplo de rede óptica e algumas possibilidades de roteamento entre os nós 1 e 6: 2 3 1 4 5 6 6 10 32 Fig. 1. Rede óptica e possibilidades de roteamento entre os nós 1 e 6
  2. 2. É possível observar que os nós são interligados por enlaces e cada um deles possui um peso, que pode estar relacionado a distância, a relação sinal ruído, dispersão cromática ou outras características ópticas. Mesmo em uma rede simples, existem diversas possibilidades de roteamento o que mostra a complexidade de solução do problema em cenários mais complexos. A. Definição do Problema Dada uma solicitação de conexão entre dois nós, o objetivo é estabelecer uma rota com o menor número de enlaces (saltos). B. Desenho da Rede Foi considerada uma rede de seis nós, similar a da figura 1, porém com pesos unitários, modelada com um gravo G (V,E), onde V é o conjunto de nós da Rede, representando os equipamentos optical cross connects (OXC) e E o enlace de fibras representando a conexão física entre os nós da rede. A rede será representada através de uma Matriz de Adjacência do Grafo apresentada na figura 2. Nesta matriz, os índices i e j representam os nós e os elementos A(i,j) representam as ligações entre os nós. Quando o elemento da matriz for um significa que os nós estão conectados e no caso de zero não existe conexão. Caso as conexões tenham peso, deverá ser usado o valor do custo ao invés de um. O artigo considera a rede com pesos unitários. Essa representação permite realizar as simulações no Matlab. 1 2 3 4 5 6 1 0 1 1 0 0 0 2 1 0 1 1 0 0 A= 3 1 1 0 0 1 0 4 0 1 0 0 1 1 5 0 0 1 1 0 1 6 0 0 0 1 1 0 Fig. 2. Matriz de adjacência da rede estudada A matriz de adjacência pode ser visualizada no Matlab através do seguinte comando: A = [0 1 1 0 0 0 ; 1 0 1 1 0 0 ; 1 1 0 0 1 0; 0 1 0 0 1 1; 0 0 1 1 0 1; 0 0 0 1 1 0]. C. Objetivo do Trabalho Implementar o roteamento de comprimentos de onda em redes ópticas utilizando algoritmo genético e mostrar a possibilidade do uso dessa técnica para ser explorado em redes mais complexas em trabalhos futuros. A validação da eficiência do algoritmo genético será feita através da comparação com o algoritmo Dijkstra, um dos mais utilizados na literatura para solução desse tipo de problema. III. ALGORITMO GENÉTICO O Algoritmo Genético (GAs-Genetic Algorithm) é uma técnica de busca e otimização inspirada no princípio Darwiniano de seleção natural e reprodução genética. O GA trabalha com indivíduos, cada um representando uma possível solução para o problema que está sendo tratado. Uma função de aptidão (fitness function) é definida a fim de avaliar quão bom uma solução é para um dado problema. A população inicial é criada, geralmente de forma aleatória, e depois evoluída por meio dos operadores genéticos, como a seleção, o crossover e a mutação, formando uma nova geração que se espera ser mais apta que a anterior. O processo de evolução é repetido por um número pré-definido de iterações ou até atingir outro critério (critério de parada). O operador seleção determina a probabilidade dos indivíduos serem selecionados. O operador crossover é aplicado a pares de indivíduos a fim de trocar parte de seus materiais genéticos, imitando a reprodução natural. Aplicando esse operador nos indivíduos mais aptos, as características boas devem se propagar através das gerações. O Operador de mutação realiza uma alteração aleatória no material genético de um indivíduo, permitindo que o GA explore novos pontos no espaço de busca. Ao final do processo de evolução é esperado que a população final possua uma solução próxima da ótima. É importante destacar que o GA é um método genérico e deve ser customizado de acordo com o problema a ser resolvido. IV. O GAOT E ALGORITMO GENÉTICO PROPOSTO O GAOT (Genetic Algorithms Optimization Toolbox) é um toolbox que realiza evoluções simuladas no ambiente Matlab. O programa permite a utilização de representação binária ou real, possui boa flexibilidade na utilização dos operadores genéticos, função de seleção e critério de parada e possibilita acompanhar a evolução do melhor indivíduo e da papulação por gráficos. A ferramenta foi desenvolvido pela Universidade da Carolina do Norte, EUA, Houck et al (1995). O algoritmo genético proposto utiliza o GAOT para realizar as simulações e os parâmetros utilizados estão elencados na sequencia. A. População Inicial A população inicial é formada pelo conjunto de rotas possíveis entre os nós 1 e 6 e foi definida com dez indivíduos. B. Função Aptidão Desenvolvida A função de Aptidão deve ser definida de acordo com cada problema e a evolução satisfatória do algoritmo genético está diretamente ligada a sua correta elaboração. O problema de roteamento em questão tem o objetivo de escolher uma rota possível ente dois nós com o menor número de enlaces (saltos). Diante disso a função de aptidão (fa) de uma possível rota será calculada como o inverso da soma dos enlaces (fibras que conectam dois nós) que compõe a rota, conforme a equação a seguir. N-1 S C (i,j) i=1 1 fa = Onde N é o número de nós da rede (no problema em questão seis) e C(i,j) o custo dois nós adjacentes.
  3. 3. Para cada nó de origem um nó de destino é selecionado através dos limites (parâmetro bounds). Com o objetivo de eliminar as rotas que não são factíveis, ou seja, que não possuem enlace entre nós, os valores da matriz de adjacência marcados como zero foram substituídos por 1000 e com isso essas rotas ficam com notas muito baixa e conseqüentemente tem a probabilidade de serem escolhidas diminuídas durante o processo de evolução. C. Demais parâmetros Utilizados - Representação: Binária - Taxa de Crossover: 75% - Mutação: 2,5% - Critério de Parada: 40 gerações - Função de Seleção: Normalização Geométrica (q=0,08) - Função de Aptidão: gaArtigo5Eval - População Inicial: 10 indivíduos V. O ALGORITMO DE DIJKSTRA O Algoritmo Dijkstra é o mais utilizado para calcular o caminho mais curto entre dois nós de uma rede usando Grafo formado por vértice e Arestas. Escolhido um nó da rede como raiz da busca (origem), este algoritmo calcula o custo mínimo deste vértice para todos os demais vértices do grafo. O algoritmo pode ser usado sobre grafos orientados, ou não, e admite que todas as arestas possuam pesos não negativos. Esta restrição é perfeitamente possível no contexto de redes ópticas, onde as arestas representam normalmente distâncias ou características ópticas (Dispersão cromática, OSNR, PMD, etc). O algoritmo divide os nós em dois conjuntos: provisório e permanente. O nó escolhido é definido inicialmente como provisório e após ser analisado depois marcado como permanente. O algoritmo pode ser definido resumidamente pelas seguintes etapas: 1. O nó de origem é escolhido. 2. Atribuir o custo de 0 ao nó de origem e marcá-lo como permanente e atribuir o custo infinito ao resto dos nós. 3. Examinar cada nó vizinho ao último nó permanente. 4. Atribuir um custo cumulativo para cada nó e torná-lo provisório. 5. Na lista de nós provisórios: a. Encontrar o nó com o menor custo acumulado e marcá-lo como permanente. Um nó permanente não será verificado novamente e seu custo registrado será o final. b. Se um nó pode ser alcançado a partir de mais de uma direção, selecione a direção com o menor custo cumulativo. 6. Os passos de 3 a 5 são repetidos até que cada nó se torne permanente. VI. COMPARAÇÃO DO ALGORITMO DIJKSTRA COM ALGORITMO GENÉTICO Nesta etapa o desempenho do roteamento pelo caminho mais curto utilizando o Algoritmo Dijkstra e o Algoritmo Genético proposto é comparado. O objetivo é avaliar se em ambos os casos a menor rota será escolhida e confirmar a possibilidade de utilização do algoritmo genético para roteamento em redes ópticas. As simulações de ambas as técnicas foram realizadas utilizando o software Matalb. A. Rede utilizada nas Simulações Buscou-se utilizar uma rede de baixa complexidade, uma vez que o objetivo é comprovar a viabilidade da utilização do algoritmo genético em problemas de roteamento. A rede é composta por 6 nós e o custo de cada enlace foi definido como um, neste caso o problema do roteamento se resume a escolha da rota com a menor quantidade de saltos. A figura 3 apresenta a topologia da rede utilizada neste trabalho. Fig. 3. Topologia da rede estudada A rede é criada usando o seguinte comando: A = sparse([1 1 2 2 3 4 4 5],[2 3 3 4 5 5 6 6 ],[1 1 1 1 1 1 1 1],6,6) Onde os vetores linha representam os nós de origem, os nós de destino e os pesos respectivamente. Para visualizar o gráfico, basta utilizar o comando abaixo: h = view(biograph(A,[],'ShowWeights','on')) B. Simulação usando Algritumo Dijkstra No Matlab é possível aplicar o Algoritmo Dijkstra através do comando: [dist,path,pred] = graphshortestpath(A,1,6) Na simulação em questão o objetivo é descobrir a menor rota entre os nós 1 e 6 da rede apresentada. O resultado encontrado pelo algoritmo Dijkstra aponta para uma distância de três percorrendo o caminho pelos nós 1-3-5- 6. Vale ressaltar que o caminho 1-2-4-6 possui o mesmo custo. É possível colorir o caminho encontrado pelo algoritmo através do comando set(h.Nodes(path(1,:)),'Color',[1 0 0]). O resultado é apresentado na figura 3.
  4. 4. Fig. 4. Menor caminho pelo Algoritmo Dijkstra C. Simulação usando o Algritumo Genético Proposto A simulação do Algoritmo Genético foi realizada utilizando Toolboox GAOT em ambiente Matlab de acordo com os parâmetros e função aptidão definidas na seção IV. O algoritmo genético proposto teve resultado idêntico ao do algoritmo Dijkstra e achou como menor caminho a rota passando pelos nós 1, 3, 5 e 6 conforme o print da tela de resposta abaixo: x = 3 3 5 6 6 Vale ressaltar que o nó 1 não apareceu na resposta, uma vez que foi designado como nó de origem na função aptidão. A evolução da melhor solução e das gerações ocorreu de forma satisfatória, considerando que a rede em questão é muito simples e espaço de busca é relativamente pequeno. A evolução começa com o valor zero, que corresponde as rotas que não são viáveis, por não terem conexões entre os nós, passando pelas rotas que passam por 5 enlaces e enfim chegando a menor rota possível que constitui apenas 3 enlaces. A figura 5 apresenta o gráfico da evolução do melhor indivíduo e das gerações do algoritmo Genético Proposto. O valor apresentado na evolução representa o inverso do custo da rota conforme a função de Aptidão, ou seja, para o uma rota com 5 enlaces, o valor apresentado será o inverso de 5, ou seja, 0,2. O mesmo ocorre para a menor rota que percorre 3 enlaces, o valor correspondente encontrado no gráfico é 0,33. 0 5 10 15 20 25 30 35 40 45 50 0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 Gerações Avaliação Fig. 5. Evolução do melhor indivíduo e das gerações no GA proposto VII. COCNLUSÃO E TRABALHOS FUTUROS A utilização do algoritmo genético proposto se mostrou viável para solução do problema de roteamento em uma rede óptica de baixa complexidade composta por seis nós. O resultado das simulações obtido afirmou o potencial do algoritmo proposto que alcançou o mesmo resultado que o algoritmo Dijkstra. As simulações do GA utilizaram o toolbox GAOT enquanto para o algoritmo Dijkstra foram utilizados comandos específicos disponíveis no Matlab. Em trabalhos futuros, pretende-se utilizar o algoritmo genético proposto para realizar o roteamento em redes mais complexas e adequar a função de aptidão para tratar do problema de alocação de comprimento de onda em conjunto com o roteamento. REFERENCES [1] Nagib G. and Ali W. G.: Network Routing Protocol using Genetic Algorithms, International Journal of Electrical & Computer Sciences IJECS- IJENS Vol:10 No:02. [2] Bisbal, D., et al: Dynamic Routing and Wavelength Assignment in Optical Networks by Means of Genetic Algorithms, Photonic Network Communications, 7:1(2004) 43-58. [3] Banerjee, N., Mehta, V. and Pandey, S.: A genetic algorithm approach for solving the Routing and Wavelength Assignment Problem in WDM Networks - International Conference on Networks, ICN'04, Pointe-a-Pitre, Guadeloupe, French Caribbean (2004). [4] Zang H. et al.: A review of routing and wavelength assignment approaches for wavelength-routed optical WDM networks. Optical Networks Magazine, vol. 1, no. 1 (2000) 47-60. [5] Houck, C.R. et al., 1995, "A Genetic Algorithm for Function Optimization: A Matlab Implementation", NCSU-IE Technical Report 95- 09. [6] Finding shortest path in a Network using MATLAB, Available online at http://hubpages.com/hub/Shortest-Path-Routing---Finding-Shortest- Path-in-Network-using-MATLAB.

×