Algoritmos Genéticos para Roteamento em Redes



Documentos relacionados
Exacta ISSN: Universidade Nove de Julho Brasil

Arquitetura TCP/IP. Apresentado por: Ricardo Quintão

Árvores Parte 1. Aleardo Manacero Jr. DCCE/UNESP Grupo de Sistemas Paralelos e Distribuídos

UM ESTUDO SOBRE CONFIABILIDADE DE REDES

ESTIMATIVA DOS PARÂMETROS DO CIRCUITO EQUIVALENTE DO MIT UTILIZANDO EVOLUÇÃO DIFERENCIAL

Erros e Incertezas. Rafael Alves Batista Instituto de Física Gleb Wataghin Universidade Estadual de Campinas (Dated: 10 de Julho de 2011.

Lista de Exercícios Critérios de Divisibilidade

Copyright de todos artigos, textos, desenhos e lições. A reprodução parcial ou total deste ebook só é permitida através de autorização por escrito de

Algoritmos Genéticos. CTC15/CT215 - Algoritmos Genéticos 1

Inversão da Velocidade e do Tempo para Incidência Normal por Algoritmos Genéticos a partir de Dados Sísmicos

3.3 Qual o menor caminho até a Escola? 28 CAPÍTULO 3. CICLOS E CAMINHOS

Experimento. Guia do professor. Quantos peixes há no lago? Secretaria de Educação a Distância. Ministério da Ciência e Tecnologia

Capítulo VI Circuitos Aritméticos

Universidade Federal de Uberlândia - UFU Faculdade de Computação - FACOM Lista de exercícios de programação em linguagem C. Exercícios: Structs

Algoritmos de Busca Local. Prof. Sheila Cáceres.Material baseado no livro de Inteligência Artificial de Russel e Norvig, Capítulo 4, Seções 3 4.

Algoritmos e Estruturas de Dados I. Variáveis Indexadas. Pedro O.S. Vaz de Melo

Teoria dos Grafos. Valeriano A. de Oliveira Socorro Rangel Departamento de Matemática Aplicada.

Árvores de Decisão Matemática Discreta

SOLUÇÕES N item a) O maior dos quatro retângulos tem lados de medida 30 4 = 26 cm e 20 7 = 13 cm. Logo, sua área é 26 x 13= 338 cm 2.

Ferramentas para a Qualidade

Circuitos Aritméticos

Seleção de Rotas nos Roteadores Cisco

PLANEJAMENTO E MODELAGEM

Aula 8 Intervalos de confiança para proporções amostras grandes

Avaliação e Desempenho Aula 1 - Simulação

CAPÍTULO O Método Simplex Pesquisa Operacional

XXXII Olimpíada Brasileira de Matemática. GABARITO Segunda Fase

Relatório Técnico: Descrição do algoritmo para pesquisa automática dos egressos do curso de Ciência da Computação

Teoria da Seleção natural. Victor Martin Quintana Flores

Tipos de problemas de programação inteira (PI) Programação Inteira. Abordagem para solução de problemas de PI. Programação inteira

A Dança do Embaralhamento. Série Matemática na Escola. Objetivos 1. Introduzir a noção de grupo de permutação; 2. Mostrar uma aplicação de MMC.

6 CONCEPÇÃO BÁSICA DO SISTEMA DE APOIO À DECISÃO

Relatório da Pesquisa de Satisfação dos Beneficiários

Montadores e Compiladores

Diplomados com o Ensino Superior

Capacidade preditiva como critério para determinação do número de componentes principais em Seleção Genômica Ampla

Unidade 10 Análise combinatória. Introdução Princípio Fundamental da contagem Fatorial

Informática Aplicada

BC-0506: Comunicação e Redes Introdução aos Grafos

Solução da prova da 2a fase OBMEP 2014 Nível 2. Questão 1. item a)

Projetos CUSTOS. Prof. Anderson Valadares

CCNA 2 Conceitos Básicos de Roteadores e Roteamento

TEORIA 5: EQUAÇÕES E SISTEMAS DO 1º GRAU MATEMÁTICA BÁSICA

O SOFTWARE R EM AULAS DE MATEMÁTICA

Ficha de Exercícios nº 2

Métodos Quantitativos Aplicados

Notas de aula de Lógica para Ciência da Computação. Aula 11, 2012/2

OBSERVAÇÕES: EXERCÍCIOS

AMOSTRAGEM: DIMENSIONAMENTO DE AMOSTRAS. SELEÇÃO DOS ELEMENTOS DE UMA AMOSTRA. ESTIMATIVA DA CARACTERÍSTICA TOTAL DA POPULAÇÃO INVESTIGADA

Rastreador RST - VT. Configuração de Hodômetro

Microcontroladores e Microprocessadores. Conversão de Bases Prof. Samuel Cavalcante

de rede são comumente utilizadas nos dias de hoje. Um dos grandes desafios para a tecnologia de redes sem fio no momento é o handoff vertical, onde

Análise de Regressão. Notas de Aula

O QUE É AMOSTRAGEM? PARTE I

Árvore de Decisão. 3. Árvore de Decisão

UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ. Câmpus Ponta Grossa. Coordenação do Curso Superior de Tecnologia em. Automação Industrial

XXXII Olimpíada Brasileira de Matemática GABARITO Segunda Fase

2) Escreva um algoritmo que leia um conjunto de 10 notas, armazene-as em uma variável composta chamada NOTA e calcule e imprima a sua média.

Semana 7 Resolução de Sistemas Lineares

REDES MPLS Engenharia de Tráfego (TE)

a) 2 b) 3 c) 4 d) 5 e) 6

MELHORAMENTOS NO ALGORITMO GENÉTICO CONSTRUTIVO E NOVAS APLICAÇÕES EM PROBLEMAS DE AGRUPAMENTO

PROVA Duração da prova: 120 minutos

Business intelligence para empresas de segurança. Como uma instituição pode gerar recursos e errar menos com ajuda da informação

Sistemas Numéricos. Tiago Alves de Oliveira

Instruções para elaboração de Artigo Científico

PESQUISA OPERACIONAL: NA TOMADA DE DECISÕES ADMINISTRATIVA

MODELAGEM MATEMÁTICA DE UM SISTEMA DE DISTRIBUIÇÃO DE ENERGIA ELÉTRICA EM MÉDIA TENSÃO 1. Gabriel Attuati 2, Paulo Sausen 3.

Resolução do exemplo 8.6a - pág 61 Apresente, analítica e geometricamente, a solução dos seguintes sistemas lineares.

CÁLCULO DO MODELO NUMÉRICO (MDT)

Professor: André Rabelo Curso: Engenharia da Computação Disciplina: Lógica Digital Período: 3º Data Entrega: 21/03/2012 Valor: 15 pts Objetivos:

Gerência de Memória. Algoritmos de Substituição de Páginas

Qualidade de Produto. Maria Cláudia F. P. Emer

Lição 5 Medidas Descritivas Medidas de Dispersão

Disciplina Fundamentos de Redes. Introdução à Mascara de Subrede

RESULTADO DO LEVANTAMENTO DE DADOS DE MONITORAMENTO DA EMISSÃO ATMOSFÉRICA EM PROCESSOS DE QUEIMA DE DERIVADOS DE MADEIRA

Programação Linear - Parte 4

cuja distribuição é t de Student com n 1 graus de liberdade.

PROFMAT AV3 MA (1,0) (a) Prove isto: Se um número natural não é o quadrado de um outro número natural, sua raiz quadrada é irracional.

DIRETRIZES PARA ESTRUTURAÇÃO DO TRABALHO DE CONCLUSÃO DE CURSO DE GRADUAÇÃO DO CURSO DE ENGENHARIA DE PRODUÇÃO

Qual é o estoque mínimo que irá garantir o nível de serviço ao cliente desejado pela empresa?

Congruências Lineares

BCC202 - Estrutura de Dados I

GESTÃO DA MANUTENÇÃO

SOLUÇÃO DA PROVA DE MATEMÁTICA E RACIOCÍNIO LÓGICO DO INSS TÉCNICO DO SEGURO SOCIAL PROVA BRANCA.

Figura 1 - Somador para dois números de 4 bits com extensores lógicos (EL) e Aritméticos(EA).

Integralização do Curso Nova grade de Ciência Proposta

Importação de Dados Raster no TerraView

ANÁLISE EXPLORATÓRIA DE DADOS

Matemática Aplicada às Ciências Sociais

no Estado do Rio de Janeiro

Parte 05 - Técnicas de programação (mapas de Veitch-Karnaugh)

4.2.2 Filtrando Macro filtro

FERRAMENTAS DA QUALIDADE

Aula 11 Teste de hipótese sobre a média de uma população normal - σ 2 conhecida

Calculando seno(x)/x com o interpretador Hall.

Aula 01 Introdução Custo de um algoritmo, Funções de complexidad e Recursão

Introdução. Qualidade de Produto. Introdução. Introdução ISO/IEC Normas

=...= 1,0 = 1,00 = 1,000...

Transcrição:

Algoritmos Genéticos para Roteamento em Redes Ricardo Amaral Pereira, Rodrigo Aboud Nascimento, André da Silva Barbosa, Sidnei Alves de Araújo Departamento de Ciência da Computação Centro Universitário Nove de Julho (UNINOVE) Av. Dr. Adolfo Pinto, 109 São Paulo SP Brasil {ro_aboud, andsbarbosa, neo55br}@yahoo.com.br, saraujo@uninove.br Abstract. Although the Computers Networks are very refined and endowed with modern algorithms, the necessity of new technologies is observed to improve the performance, security, reliability and some others related parameters. Like this, some solutions have been proposed and between these solutions are the Genetic Algorithms that are also explored in other areas of knowledge. In this job, we presented a study of an alternative to find the Routing based on Genetic Algorithms once it has been showed efficient as a solution in optimization problems and it can be used together with the traditional Routing algorithms. Resumo. Embora as Redes de Computadores estejam bastante sofisticadas e dotadas de modernos algoritmos, observa-se a necessidade de novas tecnologias para melhorar o desempenho das mesmas no que diz respeito à velocidade, segurança, confiabilidade entre outros parâmetros. Assim, algumas soluções vêm sendo propostas e entre essas soluções estão os Algoritmos Genéticos que também são explorados em outras áreas do conhecimento. Neste trabalho, apresenta-se um estudo de uma alternativa para o roteamento de Redes baseado em Algoritmos Genéticos, visto que estes tem-se mostrado eficiente em problemas de otimização e podem ser utilizados em conjunto com os tradicionais algoritmos de roteamento. 1. Introdução A busca por alternativas para melhorias dos sistemas computacionais vem crescendo a cada dia, e uma das alternativas vem sendo a utilização de sistemas inteligentes. A Inteligência Artificial é uma área da computação que vem crescendo e uma de suas propostas é a Computação Evolutiva, a qual abrange uma técnica denominada Algoritmos Genéticos (AGs). Os Algoritmos Genéticos são geralmente aplicados em problemas de otimização, e daí a idéia de seu uso na otimização para as rotas de Redes de Computadores. Atualmente este trabalho é feito por algoritmos tradicionais dentro dos chamados protocolos de roteamento. Os protocolos de roteamento utilizam métricas para calcular a melhor rota e vêm evoluindo motivado por varias pesquisas sobre comunicação de computadores na tentativa de obter uma melhor performance.

2. Fundamentação Teórica 2.1. Roteamento de Rede O roteamento de uma Rede de Computadores vem a ser a determinação do caminho e o transporte dos pacotes da origem para o destino na rede [Tanenbaum 1997]. No inicio era necessário uma pessoa para atualizar a tabela de roteamento manualmente, o que tornava o serviço trabalhoso para quem o fazia. Com o crescimento das redes, a atualização manual da tabela de rotas ficou impossível, surgiu então o hardware denominado roteador, onde cada um ficou responsável por sua rede e pela comunicação com outros roteadores independente de sua localização geográfica. O roteador utiliza os protocolos de roteamento para obter informações sobre outras redes e suas distâncias, montando assim a tabela de rotas. Dentro dos protocolos de roteamento, temos os algoritmos de roteamento, que são responsáveis pelo calculo da rota dos pacotes de informação. Esses algoritmos se baseiam em alguns padrões de medidas tais como custo, distância, atraso, confiabilidade, largura de banda, entre outros, para computar o melhor caminho. Os algoritmos utilizados para computar informações métricas em um roteamento se classificam, basicamente, em dois grupos: Algoritmo Vetor de Distância e Algoritmo Estado de Ligação [Gallo 2003]. O algoritmo Vetor de Distância determina a distância entre os nós de origem e destino, calculando o número de pulos e tendo como princípio que o roteador deve conter uma tabela informando todas as rotas possíveis. O AG proposto nesse trabalho é baseado no algoritmo Vetor de Distância. No algoritmo Estado de Ligação, os roteadores trocam informações sobre as ligações estabelecidas uns com os outros. Este algoritmo considera também a largura de banda entre as métricas utilizadas. 2.2. Algoritmos Genéticos O Algoritmo Genético foi proposto inicialmente por John Holland no final da década de 60, e é um método de busca e otimização baseados no processo de seleção natural que simulam a evolução [Goldberg 1989]. Os AGs geram os indivíduos (cadeias de bits) também chamados de cromossomo, para evoluírem em busca da solução de um dado problema. Cada indivíduo representa uma possível solução para o problema, estes são analisados conforme as necessidades (competem entre si) e os mais aptos são selecionados e em seguida cruzados para gerarem um novo indivíduo mais apto e melhor que os anteriores, assim a cada geração estaria próximo de uma solução para o problema [Garcia 2004]. Se um AG for desenvolvido corretamente, a população (conjunto de possíveis respostas) convergirá a uma solução ótima para o problema proposto, e ao contrario dos processos de busca e otimização tradicionais os AGs trabalham num processo de busca sobre a população de indivíduos em paralelo, assim fazendo a busca em diferentes áreas [Madeira 2003].

Na estrutura básica de um AG contém quatro operações, o cálculo de aptidão, a seleção, o cruzamento e a mutação, assim os AGs são muito eficientes para busca de soluções ótimas, ou aproximadamente ótimas, em uma grande variedade de problemas [Haupt 1998]. Na Figura 1 abaixo, temos a estrutura básica do AG. Figura 1. Estrutura básica do AG Segundo [Barbosa 1997], um caso muito comum na geração da população, é o de introduzir indivíduos com algum tipo de informação ou soluções conhecidas. 3. Roteamento com Algoritmos Genéticos O tema em questão consiste em utilizar os AGs para encontrar boas rotas para troca de informação em redes, conseguindo assim, otimizar esse processo. No lugar dos algoritmos tradicionais de roteamento, propõe-se a utilização dos AGs, tomando como base o algoritmo de vetor de distância. Assim, a partir da distância e do custo, poderíamos trabalhar com variáveis visando aumento da velocidade de roteamento e criando condições para futuros estudos com intuito de melhorar a confiabilidade e segurança em redes de computadores. Abaixo na Figura 2, é mostrado uma pequena rede com os custos entre os nós. Utilizaremos esse pequeno modelo para explicar como empregar os AGs na tarefa de roteamento. Figura 2. Exemplo de nós

A rede na Figura 2 mostra um exemplo básico dos chamados nós de rede. Esses nós estão representados por valores de 0 a 7, sendo que cada um representa um dispositivo da rede (roteador). Cada dispositivo troca informação uns com os outros, analisando o melhor caminho para efetuarem tal troca. A idéia é a seguinte: Os AGs trabalham com a população de indivíduos, e nesse trabalho, esses indivíduos são os possíveis caminhos conforme exemplo representado no esquema a seguir: cromossomo = [000 010 001 100 101 111] Onde: Caminho: 0 2 1 4 5 7 Custo: 2 1 2 3 1 Para saber o tamanho dos genes e do cromossomo é necessário saber o número de nós da rede, no caso do exemplo acima se tem oito nós e assim, o total em números binários seria compreendido entre 000 a 111 (três dígitos), contando do nó zero ao nó sete. Como o exemplo (Figura 2) tem oito nós, cada nó representa um gene. Assim ao convertemos os valores binários do cromossomo para decimal, teremos a representação de um possível caminho como mostrado no esquema acima. Já para achar o tamanho máximo do cromossomo basta calcular o caminho excluindo o nó inicial e o nó final, pois sabemos a priori, qual é o nó de origem e o de destino e queremos descobrir apenas o melhor caminho entre eles. Assim, apresentando apenas os nós restantes o nosso cromossomo teria: nº nós - 2, o que é suficiente para ir do nó inicial até o nó final sem revisitação de nós. Pois, sabemos que para isso seria necessário nº nós - 1 pulos, ou seja, 7 pulos. Para entendermos melhor a posição do cromossomo temos a Figura 3. Figura 3. Genes de inicio e fim O cromossomo em questão (Figura 3), contém seis genes, onde três alelos formam um gene totalizando 18 dígitos binários (alelos). Cada gene ao ser convertido para decimal representa um nó da rede. Assim, partimos do nó origem tomando cada par e acumulando o seu respectivo custo seguindo a ordem do caminho gerado, percorrendo nó a nó desde a origem até o destino. A cada nó, verificamos se é válida e se o destino foi encontrado. No caso de um par de nós não representar uma ligação válida, a analise é interrompida nesse ponto do cromossomo. Por exemplo, suponha o seguinte caminho:

Caminho: 0 1 2 6 1 7 3 7 origem cromossomo destino Se analisarmos novamente a Figura 2, vemos que a partir do segundo nó gerado (nó 2), o caminho não é valido, ou seja, o nó 2 não apresenta ligação com o nó 6, então os custos só seriam acumulados até o último nó valido. Agora, vamos considerar que nossa origem seja o nó 3 e o destino o nó 4: Caminho: 3 0 2 1 4 5 7 4 origem cromossomo destino Observando, a ligação da origem (nó 3) com o primeiro nó gerado (nó 0), vemos que esse pulo é válido e apresenta custo 4, então: Caminho 3 ao 0 = 4 Caminho 0 ao 2 = 2 Caminho 2 ao 1 = 1 Caminho 1 ao 4 = 2 Como o nó 4 é nosso destino, ele acumularia o custo até o nó 4 descartando o resto do caminho gerado (cromossomo), tendo como custo total 9 e distância (pulos entre nós) igual a 4. Analisando-se o custo e os pulos (ver Figura 2) vemos que esse não é o melhor caminho do nó 3 ao nó 4, mas os que se aproximassem mais do melhor caminho, obtendo um menor custo e distância, seriam selecionados e após o ciclo genético apresentariam um melhor resultado ou até mesmo poderiam chegar a resposta com o melhor caminho. 3.1. Passos do Algoritmo Para explicação, tomamos como base à rede com oito nós (Figura 2). O primeiro passo é definirmos a população inicial, onde cada indivíduo deve ter uma quantidade de alelos (bits) de acordo com o número de nós da rede. Essa população deve ser criada em uma matriz do tipo: população[indivíduo][alelo], onde, indivíduo é o tamanho da população (número de indivíduos da população) e alelo o número de alelos de cada indivíduo. O algoritmo apresenta dois fatores para calcular a aptidão: custo e número de pulos, sendo o custo o critério principal e o número de pulos critério de desempate caso ocorra de ter duas rotas com mesmo custo. Quando a aptidão é aplicada, é feita uma verificação na tabela de rotas observando se existe ligação entre os nós gerados (nós validos). Caso esta ligação exista, seus custos e pulos são incrementados e no fim são apresentados o custo total e o número de pulos para cada indivíduo. Após a aplicação da aptidão, deve-se ordenar os vetores para a seleção. Essa ordenação é feita de forma decrescente conforme apresente o menor valor de acordo com a seguinte equação: menor valor = pulos + 1 - (custo 10 )

Assim, os N indivíduos mais aptos são ordenados e selecionados de acordo com a sua aptidão. O número de indivíduos a serem selecionados fica a cargo do desenvolvedor, mas recomenda-se que seja um valor que esteja de acordo com o número de indivíduos da população. O cruzamento dos indivíduos selecionados é feito em forma de números binários, selecionando os N melhores. Trabalhamos com um crossover de dois pontos de corte, onde estes pontos mudam conforme as gerações evoluem. O ponto de corte 1, varia de acordo com a média dos pulos válidos da população, ou seja, se a maioria dos indivíduos tiver três pulos válidos, o corte para o cruzamento será definido neste ponto mudando a cada geração, já o ponto de corte 2 pode ser definido de acordo com a seguinte equação: ponto corte2 = ponto corte1 + ((alelo - ponto corte1) 2) Caso o ponto de corte 1 estiver no valor do último gene, o ponto de corte 2 recebe o valor do número de alelos, assim o crossover apresentaria apenas um ponto de corte. A mutação ocorre após a segunda análise da aptidão e os valores são alterados aleatoriamente com uma taxa que varia de 5% a 10 % do total de alelos da população. Abaixo, é mostrada a equação para calcular a taxa de mutação: taxa = 0,05 ( alelo individuo ) Após estes passos o ciclo genético estará completo e para concluir o algoritmo só restará definir o número de gerações (tempo de duração) que o algoritmo irá evoluir. Neste trabalho colocamos para uma evolução de 20 nº nós gerações e assim, basta que na chamada da função principal do algoritmo seja feito um loop com o número de gerações. Ao final do período de evolução, o algoritmo apresentará a melhor rota que ele conseguiu encontrar. 4. Resultados Obtidos Para avaliar a implementação executamos o algoritmo 100 vezes e em cada execução, analisamos o custo e número de pulos de cada rota testada manualmente para que pudéssemos fazer uma estatística do experimento. Os testes realizados foram baseado numa rede de 16 nós, diferente da utilizada para explicação do funcionamento do algoritmo que contem 8 nós. Abaixo na Tabela 1, é mostrado um pequeno resumo dos resultados obtidos. Tabela 1. Resultados das Rotas Qualidade das rotas Quantidade ótima 47 média 35 ruim 12 não encontradas 6

A seguir na Figura 4, é apresentado um gráfico que sintetiza os resultados obtidos nos testes realizados, mostrando em percentuais os níveis de qualidade das rotas encontradas pelo Algoritmo Genético. ótima média ruim não encontrada Figura 4. Gráfico de Situação das Rotas Com base no gráfico gerado, observa-se que as rotas válidas (encontradas) são no total 94%. Dessas, 12% são rotas ruins, 35% são rotas médias e em 47% foram encontrados os melhores caminhos. Podemos observar também que em 6% dos casos, o algoritmo não conseguiu encontrar rotas. Embora tenhamos alguns casos de insucesso, o percentual de rotas que apresentaram um caminho que varia entre bom e ótimo foi de 82% e assim, acreditamos que nesse primeiro momento, os resultados foram satisfatórios. 5. Conclusão Baseado em nossos estudos, concluímos que os Algoritmos Genéticos podem vir a ser uma alternativa para o roteamento de redes, visto que os testes realizados apresentaram resultados satisfatórios sendo na maioria dos casos rotas que variam entre boas e ótimas. Deve-se ressaltar que a dificuldade do algoritmo encontrar uma rota ótima é proporcional à distância entre os nós origem e destino, ou seja, quanto mais distante a origem do destino, maior é a dificuldade para o roteamento pelo Algoritmo Genético. Isso é decorrente de alguns parâmetros do Algoritmo Genético que podem ser melhorados. Referências Barbosa, H.J.C. (1997) Introdução aos Algoritmos Genéticos: minicurso. Rio de Janeiro: SBMAC, 50p. Gallo, M.A.; Hancook, W.M. (2003) Comunicação entre Computadores e Tecnologias de Rede. 1ª ed., São Paulo: Thomson.

Goldberg, D.E. (1989) Genetic algorithms in search, optimization, and machine learning. Addison-Wesley Pub. Co., 412p. Garcia, G. R. and Schnitman, L. (2004) Aplicação de Algoritmos Genéticos para Sequenciamento de Tarefas. XV Congresso Brasileiro de Automática, Universidade Federal do Rio Grande do Sul. Haupt, R.L. and Haupt, S.E. (1998) The Binary Genetic Algorithm. In: Haupt, R.L.; Haupt, S.E. Practical Genetic Algorithms. 1ª ed., New York: Wiley-Interscience. Cap. 2, p. 25-48. Madeira, F. A., Rodrigues, H. and Pina, H. (2003) Otimização Topológica Multi- Objetivo de Estruturas via Algoritmos Genéticos. VII Congresso Nacional de Mecânica Aplicada e Computacional, Universidade de Évora. Tanenbaum, A.S. (1997) A Camada de Rede. In: Tanenbaum, A.S. Redes de Computadores. Tradução [ds 3ª ed. original], Rio de Janeiro: Campus. Cap. 5, p. 387-546.