Você está na página 1de 118

UNIVERSIDADE ESTADUAL DE MONTES CLAROS UNIMONTES

Centro de Cincias Exatas e Tecnolgicas CCET


Departamento de Cincias da Computao DCC
Curso de Sistemas de Informao


Samuel Cruz Guimares








ESTUDO COMPARATIVO DAS METAHEURSTICAS DE
ALGORITMOS GENTICOS E COLNIA DE FORMIGAS
APLICADAS NA OTIMIZAO DOS RECURSOS DE REDE
EM UM SISTEMA DE ENGENHARIA DE TRFEGO
UTILIZADO EM REDES IP/MPLS









Montes Claros MG
2010


Samuel Cruz Guimares











ESTUDO COMPARATIVO DAS METAHEURSTICAS DE
ALGORITMOS GENTICOS E COLNIA DE FORMIGAS
APLICADAS NA OTIMIZAO DOS RECURSOS DE REDE EM
UM SISTEMA DE ENGENHARIA DE TRFEGO UTILIZADO EM
REDES IP/MPLS

Projeto Orientado de Concluso de
Curso apresentado ao Departamento
de Cincias da Computao da
Universidade Estadual de Montes
Claros, como requisito parcial para a
concluso do curso Sistemas de
Informao, orientado pelo professor
Dr. Nilton Alves Maia.







Montes Claros MG
2010




















































Dedico este trabalho minha me Bete,
a pessoa que mais se esforou para que
eu alcanasse esta vitria; no posso me
esquecer tambm de toda minha famlia,
amigos, minha companheira Vvian e
uma pessoa, que mesmo antes de chegar
neste mundo, tornou-se a mais
importante em minha vida e serviu de
motivao para concluso deste trabalho,
meu filho, Caio Maurcio.


AGRADECIMENTOS


Em primeiro lugar, agradeo a Deus por mais essa graa concedida e por todo o
conforto recebido nos momentos de dificuldade.

Ao professor e orientador Dr. Nilton Alves Maia, que soube compartilhar toda sua
sabedoria e conhecimento, e a todos os demais professores, que durante todo o curso
contriburam para que fosse possvel a concluso deste trabalho.

Agradeo tambm aos meus colegas de faculdade, que em muitos momentos, com suas
histrias de vida e superao, me ensinaram muito mais do que os prprios professores;
e por todos os momentos de amizade e companheirismo vividos durante todo esse
tempo.

Aos meus colegas da Credinor, principalmente ao meu supervisor Paulo Roberto e
colegas de setor, que sempre contriburam para que fosse possvel conciliar o trabalho e
os estudos.

Por fim, agradeo a toda minha famlia e amigos, em especial minha me Bete, minha
tia Dalva, meus irmos Roney e Fabiana, minha companheira Vvian e meu esperado
filho, Caio Maurcio.














RESUMO


O aumento da demanda de transmisso de dados mistos (dados, voz e vdeo) atravs da rede
mundial de computadores, e a necessidade cada vez maior de atender a estas demandas de
forma compartilhada com a mesma qualidade de um servio local, fazem-se necessria a
criao de novas configuraes de transmisso destes dados. Diversos trabalhos buscam, das
mais diferentes formas, propor novas tcnicas para melhorar a prestao dos servios de
Internet, de forma a atender aos requisitos de Qualidade de Servio (QoS) exigidos. Um
exemplo destes trabalhos a tese de doutorado do Dr. Nilton Alves Maia, de 2006, intitulado
Engenharia de Trfego em Domnio MPLS Utilizando Tcnicas de Inteligncia
Computacional, que prope a criao de um sistema de Engenharia de Trfego (TE)
utilizando MPLS, princpios de Computao Autonmica e tcnicas de Inteligncia
Computacional. Um dos mdulos deste sistema de TE busca otimizar os recursos de rede. O
presente trabalho objetiva a criao de dois algoritmos de otimizao baseados na
Computao Natural, mais especificamente nas heursticas de Algoritmos Genticos e
Colnia de Formigas, para que possam ser testados com os arquivos gerados pelo sistema de
TE proposto. Os algoritmos foram desenvolvidos no software MATLAB. Posteriormente, os
resultados dos testes dos dois algoritmos foram comparados entre si. Os resultados dos testes
mostraram que os dois algoritmos so eficientes para otimizar os recursos de rede. Mostrou
tambm que se torna invivel a utilizao destes algoritmos para redes de topologias simples.
Para os parmetros utilizados neste trabalho o algoritmo gentico mostrou-se mais vantajoso
em relao ao algoritmo de colnia de formigas.

Palavras Chaves: Algoritmos Genticos. Colnia de Formigas. Computao Evolutiva.
Computao Natural. Engenharia de Trfego. Inteligncia Coletiva. MATLAB. MPLS.
Otimizao. QoS.



ABSTRACT

The increased demand for transmission of mixed data (data, voice and video) through the
World Wide Web, and the increasing need to meet these demands that are shared with the
same quality of a local service, make it necessary to creation of new configurations of
transmission of data. Several works look, from different ways, propose new techniques to
improve the delivery of Internet services in order to meet the requirements of Quality of
Service (QoS) requirements. An example of this work is the doctoral thesis of Dr. Nilton
Alves Maia, of 2006, entitled "Engenharia de Trfego em Domnio MPLS Utilizando
Tcnicas de Inteligncia Computacional", which proposes the creation of a Traffic
Engineering (TE) using MPLS , principles of Autonomic Computing and Computational
Intelligence techniques. One of the modules of this system of TE aims to optimize the
network resources. The present work aims to create two optimization algorithms based on
Natural Computation, more specifically in the heuristics of Genetic Algorithms and Ant
Colony, so they can be tested with the files generated by the system of TE proposed. The
algorithms were developed in the software MATLAB. Subsequently, the test results of the
two algorithms were compared between itself. The test results showed that both are efficient
algorithms to optimize network resources. He also showed it is not feasible to use these
algorithms for simple network topologies. For the parameters used in this study, the genetic
algorithm was more advantageous over the ant colony algorithm.

Keywords: Genetic Algorithms. Ant Colony. Evolutionary Computation. Natural Computing.
Traffic Engineering. Swarm Intelligence. MATLAB. MPLS. Optimization. QoS.


LISTA DE FIGURAS

Figura 1: Exemplo de um domnio MPLS e seus componentes. .............................................. 20
Figura 2: Topologia de rede utilizando TE. .............................................................................. 21
Figura 3: Pseudocdigo bsico da CE. ..................................................................................... 26
Figura 4: Representao do Espao de Busca de uma Funo e seus mnimos local e global. 29
Figura 5: Pseudocdigo de um AG. ......................................................................................... 35
Figura 6: Fluxograma que sintetiza um algoritmo gentico. .................................................... 35
Figura 7: Representao de decodificao dos bits de um cromossomo binrio em nmeros
reais. .......................................................................................................................................... 37
Figura 8: Exemplo de seleo atravs do mtodo da roleta. .................................................... 40
Figura 9: Exemplificao de um Cruzamento de um ponto. .................................................... 43
Figura 10: Exemplificao de um Cruzamento de dois pontos. ............................................... 43
Figura 11: Exemplificao de um Cruzamento uniforme. ....................................................... 44
Figura 12: Exemplo do caminho entre o ninho e a fonte de alimento usando duas pontes de
comprimento idnticas na experincia com formigas reais (GOSS et al., 1989). .................... 55
Figura 13: Exemplo do caminho entre o ninho e a fonte de alimento usando duas pontes de
comprimento diferentes na experincia com formigas reais (GOSS et al., 1989).................... 56
Figura 14: Pseudocdigo da metaheurstica ACO. ................................................................... 59
Figura 15: Componentes do sistema de TE bsico (MAIA, 2006). ......................................... 67
Figura 16: Componentes do sistema de TE proposto por MAIA (2006). ................................ 68
Figura 17: Interao entre os programas para a simulao do sistema de TE (MAIA, 2006). 71
Figura 18: Componente principal do Algoritmo Gentico ....................................................... 75
Figura 19: Componente principal do algoritmo de colnia de formigas .................................. 80
Figura 20: Topologia I de simulao (MAIA, 2006)................................................................ 83
Figura 21: Topologia II de simulao (MAIA, 2006). ............................................................. 86
Figura 22: Evoluo do AG na simulao I na topologia I. ..................................................... 92
Figura 23: Evoluo do AG na simulao II na topologia I. .................................................... 93
Figura 24: Evoluo do AG na simulao III na topologia I.................................................... 93
Figura 25: Evoluo do AG na simulao IV na topologia I. .................................................. 93
Figura 26: Evoluo do AG na simulao V na topologia I. .................................................... 94
Figura 27: Simulao do AG em cem execues consecutivas na topologia I. ....................... 95
Figura 28: Evoluo do ACS na simulao I na topologia I. ................................................... 96


Figura 29: Evoluo do ACS na simulao II na topologia I. .................................................. 96
Figura 30: Evoluo do ACS na simulao III na topologia I. ................................................ 97
Figura 31: Evoluo do ACS na simulao IV na topologia I. ................................................ 97
Figura 32: Evoluo do ACS na simulao V na topologia I. .................................................. 97
Figura 33: Simulao do ACS em cem execues consecutivas na topologia I. ..................... 98
Figura 34: Evoluo do AG na simulao I na topologia II. .................................................. 100
Figura 35: Evoluo do AG na simulao II na topologia II. ................................................ 100
Figura 36: Evoluo do AG na simulao III na topologia II. ............................................... 100
Figura 37: Evoluo do AG na simulao IV na topologia II. ............................................... 101
Figura 38: Evoluo do AG na simulao V na topologia II. ................................................ 101
Figura 39: Simulao do AG em cem execues consecutivas na topologia II. .................... 102
Figura 40: Evoluo do ACS na simulao I na topologia II. ................................................ 104
Figura 41: Evoluo do ACS na simulao II na topologia II. .............................................. 105
Figura 42: Evoluo do ACS na simulao III na topologia II. ............................................. 105
Figura 43: Evoluo do ACS na simulao IV na topologia II. ............................................. 105
Figura 44: Evoluo do ACS na simulao V na topologia II. .............................................. 106
Figura 45: Simulao do ACS em cem execues consecutivas na topologia II. .................. 107
Figura 46: Comparao dos menores fitness encontrados entre o AG e o ACS na 1 simulao
................................................................................................................................................ 110
Figura 47: Comparao dos menores fitness encontrados entre o AG e o ACS na 2 simulao
................................................................................................................................................ 110





LISTA DE TABELAS

Tabela 1: Exemplo do operador de Mutao (taxa de mutao = 0,003) ................................. 45
Tabela 2: Lista de caminhos em condies de estabelecer LSPs para as aplicaes. ............. 69
Tabela 3: Exemplo de uma possvel soluo em condies de estabelecer as LSPs para o
conjunto de aplicaes. ............................................................................................................. 70
Tabela 4: Possveis caminhos das aplicaes na simulao da topologia I. ............................. 85
Tabela 5: Larguras de banda dos enlaces na topologia I. ......................................................... 85
Tabela 6: Caractersticas dos enlaces do domnio MPLS na topologia II. ............................... 87
Tabela 7: Necessidades e caractersticas das aplicaes de dados, voz e vdeo ....................... 88
Tabela 8: Possveis caminhos das aplicaes na simulao da topologia II. ........................... 89
Tabela 9: Larguras de banda dos enlaces na topologia I. ......................................................... 90
Tabela 10: Tempo de execuo do AG e fitness da melhor soluo nas simulaes na
topologia I. ................................................................................................................................ 94
Tabela 11: Tempo de execuo do ACS e fitness da melhor soluo nas simulaes na
topologia I. ................................................................................................................................ 98
Tabela 12: Tempo de execuo do AG e fitness da melhor soluo nas simulaes da
topologia II. ............................................................................................................................ 101
Tabela 13: Medidas da simulao do AG na topologia II. ..................................................... 103
Tabela 14: Tempo de execuo do ACS e fitness da melhor soluo nas simulaes da
topologia II. ............................................................................................................................ 106
Tabela 15: Medidas da simulao do ACS na topologia II .................................................... 108
Tabela 16: Resultados da comparao entre AG e ACS ........................................................ 109




LISTA DE ACRNIMOS E SIGLAS

ACO Ant Colony Optimization
ACS Ant Colony System
AG Algoritmos Genticos
AIEC Algoritmo de identificao de enlaces crticos
AS Ant System
CAC Connection Admission Control
CAC Connection Admission Control
CAL Mdulo responsvel pela criao e ativao das LSPs
CARQ Coletor das aplicaes e requisitos de QoS
CBR Constant Bit Rate
CCF Classificador dos caminhos em famlias
CE Computao Evolutiva
CIR Coletor de informaes da rede
CLPC Construtor de lista preliminar de caminhos mais curtos para as LSPs
CPMT Coletor e processador de medies de trfego
DAV Detector de aumento da vazo das aplicaes
DiffServ Differenciated Services
DNA Deoxyribonucleic Acid
ECL Mdulo responsvel pela escolha dos caminhos para as LSPs
FEC Forwarding Equivalence Classe
FIFO First In, First Out
FTP File Transfer Protocol
HTTP Hypertext Transfer Protocol
IANL Identificador de necessidade de LSPs
IETF Internet Engineering Task Force
IG ndice de Gerao
IntServ Integrated Services
IP Internet Protocol
ITU-T International Telecommunication Union Telecom. Standardization Sector
KBps Kilobyte por segundo
LER Label Edge Router
LSP Label Switched Paths
LSR Label Switch Router
MBps Megabyte por segundo
MPLS Multi Protocol Label Switching
NAM Network Animator
NS2 Network Simulator
OAG Mdulo de otimizao utilizando algoritmos genticos
QoS Quality of Service
RCPT
Reconhecimento e classificao dos perfis de comportamento de trfego das
Aplicaes


SI Swarm Intelligence
SIF Sistema de Inferncia Nebulosa
SLA Service Level Agreement
SSS Simple Subpopulation Schemes
TCP Transfer Control Protocol
TE Traffic Engineering
UDP User Datagram Protocol




SUMRIO

1. INTRODUO .................................................................................................................... 14
1.1. PROBLEMA ................................................................................................................. 15
1.2. JUSTIFICATIVA .......................................................................................................... 15
1.3. OBJETIVOS .................................................................................................................. 16
1.3.1. OBJETIVO GERAL ............................................................................................... 16
1.3.2. OJETIVOS ESPECFICOS .................................................................................... 17
1.4. ESTRUTURA DO TRABALHO .................................................................................. 17
2. FUNDAMENTAO TERICA ....................................................................................... 18
2.1. QUALIDADE DE SERVIO (QoS) ............................................................................ 18
2.2. MPLS ............................................................................................................................. 19
2.3. ENGENHARIA DE TRFEGO ................................................................................... 20
2.4. OTIMIZAO .............................................................................................................. 21
2.4.1. MODELAGEM MATEMTICA PARA O PROBLEMA GERAL DE
OTIMIZAO ................................................................................................................. 22
2.5. COMPUTAO NATURAL ....................................................................................... 23
2.5.1. COMPUTAO EVOLUTIVA ............................................................................ 24
2.5.1.1. ALGORITMOS GENTICOS ........................................................................ 27
2.5.2. INTELIGNCIA COLETIVA ............................................................................... 52
2.5.2.1. COLNIA DE FORMIGAS ........................................................................... 53
3. MODELAGEM E DESENVOLVIMENTO ........................................................................ 66
3.1. ENGENHARIA DE TRFEGO EM DOMNIO MPLS UTILIZANDO TCNICAS
DE INTELIGNCIA COMPUTACIONAL (MAIA, 2006) ................................................ 66
3.2. MATLAB ...................................................................................................................... 71
3.3. IMPLEMENTAO DOS ALGORITMOS DE OTIMIZAO ................................ 72
3.3.1. ALGORITMO GENTICO ................................................................................... 73
3.3.2. ALGORITMO DE COLNIA DE FORMIGAS ................................................... 77
4. RESULTADOS OBTIDOS .................................................................................................. 82
4.1. TOPOLOGIAS UTILIZADAS ..................................................................................... 82
4.1.1. TOPOLOGIA I ....................................................................................................... 82
4.1.2. TOPOLOGIA II ...................................................................................................... 86
4.2. RESULTADOS DA IMPLEMENTAO DOS ALGORITMOS DE OTIMIZAO
PARA OS ARQUIVOS DO SISTEMA DE TE ................................................................... 91
4.2.1. RESULTADOS DA IMPLEMENTAO DO ALGORITMO GENTICO NA
TOPOLOGIA I ................................................................................................................. 92
4.2.2. RESULTADOS DA IMPLEMENTAO DO ALGORITMO DE COLNIA DE
FORMIGAS NA TOPOLOGIA I..................................................................................... 96
13



4.2.3. RESULTADOS DA IMPLEMENTAO DO ALGORITMO GENTICO NA
TOPOLOGIA II ................................................................................................................ 99
4.2.4. RESULTADOS DA IMPLEMENTAO DO ALGORITMO DE COLNIA DE
FORMIGAS NA TOPOLOGIA II ................................................................................. 104
4.2.5. COMPARAO DA EXECUO DO ALGORITMO GENTICO COM O
ALGORITMO DE COLNIA DE FORMIGAS ........................................................... 109
5. CONCLUSES .................................................................................................................. 112
6. REFERNCIAS BIBLIOGRFICAS ............................................................................... 115

14




1. INTRODUO


A Internet, devido ao seu crescimento exponencial, cada vez mais, vem se
tornando uma realidade na vida das pessoas em todo o mundo. Em funo da evoluo
tecnolgica e do surgimento de aplicaes com novas demandas de desempenho e segurana,
exemplo das aplicaes multimdia e em tempo real, como vdeo sob demanda,
videoconferncia, voz sobre IP, computao em grupo de trabalho (controle de fluxo de
trabalho, tele-medicina), a necessidade do provimento de Qualidade de Servio (QoS), pelas
operadoras de telecomunicaes, tornou-se notria para o ambiente de aplicaes distribudas,
para que assim o usurio final usufrua os recursos compartilhados em rede, da mesma forma
como se estivessem executando as aplicaes localmente.
Atualmente, o servio oferecido aos usurios da Internet o de melhor esforo
para a transmisso de dados, usando algoritmos para calcular o menor custo de transmisso,
porm, tal custo calculado levando-se em conta apenas a extenso do caminho, sendo que
nenhuma considerao feita sobre as outras mtricas, assim sendo, no h qualquer
compromisso com requisitos de QoS. Em funo da sua simplicidade original, o protocolo IP
apresenta algumas limitaes ao provimento de QoS.
Devido a este novo paradigma das aplicaes distribudas, em que as redes tm
que se confrontar com a integrao de variados tipos de servios, alm de tambm prover a
QoS, torna-se indispensvel utilizao de novas polticas operacionais, mecanismos e
protocolos, que suportem, por exemplo, estratgias de diferenciao de servios, adicionando
flexibilidade e eficincia infra-estrutura de telecomunicaes.
Existem vrias propostas que objetivam adaptar a Internet atual para que esta
possa fornecer QoS, dentre os quais devemos destacar a Engenharia de Trfego, o modelo de
Servios Integrados (IntServ), o modelo de Servios Diferenciados (DiffServ), Roteamento
Baseado em QoS e o Multi Protocol Label Switching (MPLS).
Ainda assim, por causa da elevada taxa de mudana das informaes, tecnologias
e servios e complexidade dos mesmos, os mecanismos atuais esto tornando-se ineficazes ou
imprprios para atender em sua totalidade os sistemas e servios de rede. Isto faz com que
cada vez mais sejam estudadas alternativas para este novo paradigma dos sistemas
distribudos, dentre elas podemos citar a utilizao de diversas heursticas da Computao
15



Natural com o propsito de tratar essas complexidades, como os Algoritmos Genticos,
Colnia de Formigas e os Sistemas Imunolgicos Artificiais dentre outras.


1.1. PROBLEMA


As mudanas no cenrio dos sistemas distribudos tornaram o padro utilizado
atualmente invivel para promover diversos servios com a qualidade esperada pelo usurio.
Portanto, a utilizao de um Sistema de Engenharia de Trfego em domnio MPLS utilizando
tcnicas de Inteligncia Computacional e algoritmos para otimizao dos recursos de rede
baseados nas heursticas de Algoritmos Genticos e Colnia de Formigas seria eficaz para
sustentar um trfego misto e fornecer um servio com QoS?


1.2. JUSTIFICATIVA


A crescente expanso dos sistemas e servios de Internet, e sendo esses cada vez
mais complexos e poderosos, tm evidenciado a incapacidade que as ferramentas atuais
apresentam com relao a suportar tais sistemas e servios de forma a garantir o desempenho
e a segurana necessrios. Portanto, torna-se necessrio o desenvolvimento de novas
tecnologias e abordagens que permitam aos sistemas de Internet uma interao mais eficiente
e que esses possam se adaptar as mudanas do tipo e intensidade do trfego que transpe a
rede. Se ajustar a situaes passveis de ocorrncia ou, ainda, maximizar seu desempenho
automaticamente em virtude de condies observadas, utilizando-se de ferramentas e tcnicas
que apresentem algum tipo de comportamento inteligente, passa a ser caractersticas cogentes
aos novos mecanismos e protocolos utilizados nos servios e sistemas de rede. As
metaheursticas inspiradas na natureza apresentam adaptabilidade, tolerncia a falhas e
robustez a variaes ambientais, sendo estas caractersticas muito desejveis, e o que fez com
que ferramentas que compreendem tais abordagens passassem a ser muito estudadas e
utilizadas com o propsito de suprir as deficincias encontradas nas ferramentas atuais. Duas
dessas metaheursticas, dentre as mais citadas na literatura, so os Algoritmos Genticos e
Colnia de Formigas.
16



Atualmente, os algoritmos de roteamento em uso na Internet, objetivam
minimizar mtricas de caminhos mais curtos tais como nmero de saltos entre origem e
destino de um respectivo fluxo de dados. Levando em considerao QoS, nem sempre o
caminho mais curto o caminho que apresenta o melhor conjunto de recursos necessrios a
uma aplicao. Em grande parte das redes atuais, quando enlaces comeam a apresentar
tendncia de congestionamento, a alternativa mais comum para soluo deste problema o
aumento da capacidade dos mesmos. Devido ao novo paradigma das aplicaes distribudas,
em que as redes tm que se confrontar com a integrao de variados tipos de servios, com o
crescimento das redes e o crescimento da demanda de recursos por parte das aplicaes, surge
a necessidade de uma abordagem mais eficiente e menos custosa de utilizao da rede. Neste
sentido, tcnicas de Engenharia de Trfego (TE) passando a ser utilizadas, contribuem
significativamente com a evoluo das redes de computadores. O resultado direto da ao da
TE o estabelecimento de um balanceamento de carga nos enlaces de rede, de modo a reduzir
os congestionamentos e otimizar a utilizao dos seus recursos. A TE deve apresentar algum
tipo de comportamento inteligente e autnomo, sendo capaz de adaptar-se as mudanas nas
condies da rede, fato este que justifica a utilizao de heursticas de Algoritmos Genticos e
Colnia de Formigas.
Atravs do MPLS possvel alterar o roteamento de uma rede adicionando-se
novas rotas quelas fixadas pelo roteamento IP padro. O MPLS surge como elemento de
suporte a TE em redes baseadas no protocolo IP, uma vez que implementa o modelo de
roteamento explcito, onde os pacotes de dados so transmitidos em caminhos virtuais
denominados Label Switched Paths (LSPs), e usam um rtulo de tamanho fixo a partir do
qual o roteador decide por onde enviar os pacotes. A possibilidade de estabelecimento destes
caminhos virtuais facilita a implementao da TE.


1.3. OBJETIVOS


1.3.1. OBJETIVO GERAL


Desenvolver, avaliar e comparar algoritmos utilizando AG e Colnia de Formigas
visando a otimizao do uso de enlaces de um domnio MPLS alimentado com trfego misto
17



(dados, voz e vdeo) que sero utilizaro os arquivos gerados no Sistema de Engenharia de
Trfego proposto por MAIA (2006).


1.3.2. OJETIVOS ESPECFICOS


Estudo de tcnicas de otimizao, assim como das heursticas de AG e Colnia de
Formigas;
Desenvolvimento e avaliao de algoritmos alternativos para o trfego em enlaces
de um domnio MPLS alimentado com aplicaes de dados, voz e vdeo,
utilizando as tcnicas de otimizao e heursticas exploradas anteriormente;
Implementao dos algoritmos desenvolvidos utilizando os arquivos do Sistema
de Engenharia de Trfego proposto por MAIA (2006), simulao e anlise dos
mesmos, e posterior estudo comparativo entre eles.


1.4. ESTRUTURA DO TRABALHO


Este projeto est organizado da seguinte forma: o presente captulo faz uma
introduo do tema proposto bem como apresenta sua justificativa, seus objetivos e mostra
como o trabalho foi estruturado; o captulo 2 apresenta a fundamentao terica utilizada para
o desenvolvimento deste trabalho, abordando assuntos pertinentes ao Sistema de Engenharia
de Trfego proposto por MAIA (2006) que serve de base para introduo, anlise e testes dos
algoritmos que sero desenvolvidos neste trabalho, assim como assuntos referentes
otimizao e heursticas utilizados por estes mesmos algoritmos; no terceiro captulo
apresentada a implementao do trabalho, descreve a metodologia utilizada nos algoritmos de
otimizao; o captulo 4 apresenta a implantao, testes, resultados obtidos e faz uma
comparao entre os algoritmos utilizados; e por fim o captulo 5 traz as concluses e
dificuldades encontradas e os trabalhos futuros.

18



2. FUNDAMENTAO TERICA


2.1. QUALIDADE DE SERVIO (QoS)


Resultado da necessidade de atender apenas a um tipo especfico de trfego, o de
dados, a rede IP oferece um nico nvel de servio, conhecido como melhor esforo (best
effort): transmisso de datagramas, sem garantia de entrega, de preservao da seqncia de
envio, de limite no atraso fim-a-fim ou de banda (bps) disponvel. Diversas aplicaes atuais
exigem um nvel de servio superior, expresso pelo o que se convencionou chamar de
Qualidade de Servio (QoS Quality of Service). Com relao a QoS, a ITU-T (International
Telecommunication Union Standardization Sector) introduziu a noo de desempenho de
rede (NP Network Performance), englobando todas as funes de rede essenciais para
prover o servio. A NP est definida na Recomendao E.800 (ITU-T, 1993) como a
habilidade de uma rede ou poro de rede em prover as funes relacionadas s comunicaes
entre usurios. A NP definida e tratada em termos de um conjunto de parmetros de
elementos de rede particulares, envolvidos no fornecimento de um servio, que so essenciais
para a eficincia e a eficcia desse fornecimento (GOZDECKI, JAJSZCZYK e
STANKIEWICZ, 2003). J a IETF (Internet Engineering Task Force) entende o conceito de
QoS como sendo um conjunto de requisitos de servio a serem satisfeitos pela rede enquanto
transportando um fluxo (CRAWLEY et al., 1998). Esta definio praticamente equivalente
noo de NP dada pela ITU-T, sendo tambm definida em termos de parmetros. A presente
proposta enfoca o conceito de QoS conforme a viso da IETF, ou seja, uma vez acordado com
o usurio (ou cliente) um conjunto de requisitos de servios, a rede (provedor) deve atender
tais requisitos enquanto estiver transportando os fluxos objeto desse acordo.
A QoS em redes expressa ao menos pelo seguinte conjunto de parmetros, que
so significativos para a maioria dos servios baseados em IP: vazo, atraso fim-a-fim, jitter
(variao do atraso) e perda de pacotes (GOZDECKI, JAJSZCZYK e STANKIEWICZ,
2003). O atraso fim-a-fim o tempo necessrio para um pacote percorrer a rede, medido do
momento em que transmitido pelo emissor at ser recebido pelo receptor. O jitter a
variao no intervalo entre chegadas de pacotes, introduzida pelo comportamento aleatrio do
atraso na rede. A variao do atraso pode provocar uma distoro na informao recebida. A
19



perda de pacotes representa o percentual de pacotes que foram transmitidos na rede, mas no
alcanaram seu destino em um determinado perodo de tempo.
A vazo o volume de dados movidos de um n de rede para outro em um dado
perodo de tempo, tambm expressa em KBps ou MBps (OLIVEIRA, 2001).


2.2. MPLS


O MPLS (MultiProtocol Label Switching) uma tecnologia de encaminhamento
de pacotes baseada em rtulos (labels) que funciona, basicamente, com a adio de um rtulo
nos pacotes de trfego na entrada do domnio (chamados de roteadores de borda) e, a partir
da, todo o encaminhamento pelo domnio passa a ser feito com base neste rtulo.
Comparativamente ao encaminhamento IP, o MPLS torna-se mais eficiente uma vez que
dispensa a consulta das tabelas de roteamento. O MPLS indiferente ao tipo de dados
transportado, pelo que pode ser trfego IP ou outro qualquer.
A informao em uma rede MPLS processada e dividida em classes de servio,
e os dados so encaminhados atravs de rotas estabelecidas anteriormente por essas classes,
sendo feito apenas comutao.
O MPLS permite que os operadores de uma determinada rede tenham alto
desempenho no desvio de trfego de dados em situaes crticas, tais como de falhas e
gargalos ou congestionamentos. O MPLS permite assegurar que a transmisso de
determinados pacotes tenham perdas ou atrasos imperceptveis em funo da capacidade de
uma gesto de trfego mais eficaz, possibilitando assim maior qualidade dos servios e
conseqentemente maior confiabilidade.
O caminho por onde os pacotes iro passar numa rede MPLS so chamados LSPs
(Label Switching Paths). Ao entrar no domnio MPLS o pacote associado a uma Classe de
Equivalncia de Encaminhamento (FEC, Forwarding Equivalence Classe). O responsvel por
inserir o LSP e atribuir a FEC o LSR (Label Switch Router) ou dispositivo da borda de
entrada do domnio (Ingress LSR), tambm denominado Roteador de Borda (LER, Label
Edge Router). O LSP utilizado como um ndice em uma tabela que especifica o prximo
salto e um novo LSP. O LSR seguinte troca o rtulo antigo pelo rtulo novo e encaminha o
pacote para o prximo salto. A Figura 1 mostra os principais componentes que integram uma
arquitetura MPLS.
20






Figura 1: Exemplo de um domnio MPLS e seus componentes.


2.3. ENGENHARIA DE TRFEGO


A Engenharia de Trfego (TE) preocupa-se em otimizar a performance das redes.
Para tanto ela mede, modela, caracteriza e controla o trfego. Seu objetivo principal, ento,
ajudar a prover operaes eficientes e confiveis em uma rede, enquanto otimiza o uso de
seus recursos e sua performance. Em redes do tipo Internet, seus principais objetivos, no que
se refere engenharia de trfego para melhoria de desempenho so, minimizar a perda de
pacotes, minimizar o atraso, minimizar a variao do atraso (jitter), diminuir a probabilidade
de bloqueio, maximizar a capacidade de transferncia e atender aos SLA (Service Level
Agreement) propostos para as redes (BLACK, 2002). Pode se implementar TE manualmente
em redes pequenas ou usando tcnicas automatizadas, como o MPLS que utiliza parmetros
como atraso, jitter e largura de banda para fazer o roteamento.
Para exemplificar o funcionamento da Engenharia de Trfego considere a
topologia mostrada na Figura 2. Em um domnio que no implementa TE, todos os pacotes
devem ser encaminhados pelo caminho T1, no caso, o mais curto, o que poderia resultar em
congestionamento. A existncia de congestionamento pode provocar a degradao da QoS.
Em um domnio que implementa TE, os pacotes so balanceados entres os caminhos
existentes (T1 e T2 no caso), evitando assim congestionamentos e degradao da QoS.

21





Figura 2: Topologia de rede utilizando TE.


A TE hoje a principal aplicao do MPLS devido a possibilidade de controlar o
fluxo de trfego na rede, com o objetivo de reduzir problemas de congestionamento e
conseguir uma utilizao homognea dos recursos disponveis.


2.4. OTIMIZAO


Em termos gerais, a teoria de otimizao um corpo de resultados matemticos e
mtodos numricos utilizados na busca e identificao dos melhores candidatos em uma
coleo de alternativas, sem a necessidade de enumerar-se explicitamente e avaliar todas as
possibilidades. Em outras palavras, consiste em encontrar os mnimos ou mximos de uma
funo de vrias variveis, com valores dentro de uma determinada regio do espao
multidimensional.
A fora dos mtodos de otimizao em determinar o melhor caso, sem a
necessidade real de testar todos os possveis casos, provm do uso de conceitos matemticos e
do custo reduzido na execuo dos clculos numricos, utilizando procedimentos ou
algoritmos lgicos, claramente bem definidos e com o auxlio de computadores nestes
processos iterativos (BEZ, 2005).
A problemtica de adequar um modelo matemtico a uma situao real tambm
pode ser formulada como um problema matemtico, quase sempre de otimizao.
22



Os problemas de otimizao podem ser divididos em duas classes no que diz
respeito a restries: a classe de problemas com restrio e a classe de problemas sem
restrio ou irrestritos. Os problemas de otimizao irrestritos podem ser: unidimensionais ou
multidimensionais, lineares ou no-lineares, no convexos ou convexos, contnuos ou
descontnuos e diferenciveis ou no-diferenciveis. De acordo com as caractersticas
apresentadas, deve-se escolher o mtodo adequado para resoluo do problema. Tais
caractersticas no sero explanadas, pois este no o foco principal deste trabalho. Podem-se
tambm dividir os mtodos de otimizao em duas famlias: a dos mtodos determinsticos e a
dos mtodos estocsticos.
Os mtodos determinsticos so procedimentos que se baseiam na busca sucessiva
de pontos no espao de otimizao, necessitando para esta busca o conhecimento de um vetor
direo de decrescimento da funo. O processo de busca do timo utiliza o ponto corrente
como ponto de partida para a determinao do ponto subsequente (VILA et al., 2003).
Os mtodos estocsticos so parte de uma classe de mtodos que se baseiam em
mecanismos probabilsticos. Estes, ao contrrio dos mtodos determinsticos, no necessitam
de caractersticas como continuidade e diferenciabilidade, requisitadas pela maioria dos
mtodos determinsticos. Por requererem um grande nmero de anlises do problema, tendo
em vista a necessidade de explorar devidamente todas as regies do universo de busca em que
est contida a soluo tima, estas tcnicas tornaram-se mais populares com a evoluo dos
computadores. As heursticas de AG e Colnia de Formigas so exemplos de mtodos
estocsticos de otimizao.


2.4.1. MODELAGEM MATEMTICA PARA O PROBLEMA GERAL DE
OTIMIZAO


O problema geral de otimizao pode ser descrito matematicamente pela seguinte
expresso:

()

()
s.a.

()

23



Onde f, g
i
e h
j
so funes definidas em 9
n
, S c 9
n
e x um vetor de n
componentes x = (x
1
, x
2
, ..., x
n
). O problema a ser solucionado a determinao dos valores
das variveis x
i
que satisfaam as restries, buscando minimizar o valor da funo f. A
funo f (x) chamada funo objetivo; g
i
(x) e h
j
(x) so as restries.
A formulao apresentada refere-se a um problema de minimizao sujeito a um
conjunto de restries.


2.5. COMPUTAO NATURAL


A computao natural constituda por novas abordagens de computao
caracterizadas pela busca de uma maior proximidade com a natureza e altssimo potencial de
soluo de problemas complexos do mundo real. A computao natural pode ser vista como
uma verso computacional do processo de extrao de ideias da natureza para o
desenvolvimento de sistemas artificiais, ou ento a utilizao de meios e mecanismos naturais
para realizar computao.
A computao natural pode ser dividida em trs grandes reas:
Computao inspirada na biologia: utiliza a natureza como fonte de inspirao
para o desenvolvimento de novas tcnicas de soluo de problemas (Computao
evolutiva, Inteligncia coletiva, Neurocomputao, Imunocomputao, etc.);
Biologia inspirada na computao: trata-se basicamente de um processo de sntese
que objetiva criar formas, padres e comportamentos similares queles
conhecidos na natureza. Alm disso, algumas reas visam o desenvolvimento de
organismos artificiais (Vida artificial e autmatos celulares, Geometria fractal,
etc.);
Biocomputao ou Computao com mecanismos naturais: Trata-se de um novo
paradigma de computao que vem com o objetivo principal de substituir as
arquiteturas computacionais conhecidas atualmente por arquiteturas que utilizam
mecanismos naturais (Computao de DNA, Computao quntica, etc.).

Iremos destacar duas subreas da Computao Inspirada na Biologia, a
Computao evolutiva e a Inteligncia coletiva, devido ao grau de importncia no
desenvolvimento deste trabalho.
24





2.5.1. COMPUTAO EVOLUTIVA


A computao evolutiva (CE) um ramo da cincia da computao que prope
um paradigma alternativo ao processamento de dados convencional. Este novo paradigma,
diferentemente do convencional, no exige, para resolver um problema, o conhecimento
prvio de uma maneira de encontrar uma soluo. A CE baseada em mecanismos evolutivos
encontrados na natureza, tais como a auto-organizao e o comportamento adaptativo
(FARMER et al., 1983), (GOLDBERG; HOLLAND, 1988). Estes mecanismos foram
descobertos e formalizados por Darwin em sua teoria da evoluo natural, segundo a qual, a
vida na terra o resultado de um processo de seleo, pelo meio ambiente, dos mais aptos e
adaptados, e por isto mesmo com mais chances de reproduzir-se. A diversidade da vida,
associada ao fato de que todos os seres vivos compartilham uma bagagem gentica comum,
pelo menos em termos de seus componentes bsicos, um exemplo eloquente das
possibilidades do mecanismo de evoluo natural. A CE tem sido muito aplicada em
problemas de otimizao, em especial naqueles em que tcnicas tradicionais de otimizao
no so aplicveis ou apresentam desempenho insatisfatrio.
Historicamente, as primeiras iniciativas na rea de CE foram de bilogos e
geneticistas interessados em simular os processos vitais em computador, o que recebeu na
poca o nome de Processos Genticos.
A CE est baseada em algumas ideias bsicas que, quando implementadas,
permitem simular em um computador o processo de passagem de geraes da evoluo
natural. As ideias que permitem esta simulao so as seguintes:
A criao de uma populao de solues, possivelmente obtida na sua primeira
gerao de modo aleatrio, e na qual os indivduos tenham registrado de modo
intrnseco os parmetros que descrevem uma possvel soluo ao problema posto.
A criao de uma entidade - chamada funo de avaliao - capaz de julgar a
aptido de cada um dos indivduos. Essa entidade no precisa deter conhecimento
sobre como encontrar uma soluo para o problema, mas apenas atribuir uma
nota ao desempenho de cada um dos indivduos da populao.
E, finalmente, a criao de uma srie de operadores que sero aplicados
populao de uma dada gerao para obter os indivduos da prxima gerao.
25



Estes operadores so baseados nos fenmenos que ocorrem na evoluo natural.
Os principais operadores citados na literatura so: (i) seleo: permite escolher um
indivduo ou um par deles para gerar descendncia. Note-se que este operador
simula a reproduo assexuada (no primeiro caso) e a sexuada (no segundo) que
ocorrem na natureza. Obviamente, a prioridade da escolha recai sobre indivduos
mais bem avaliados pela funo de avaliao; (ii) recombinao: operador que
simula a troca de material gentico entre os ancestrais que, por sua vez, determina
a carga gentica dos descendentes; (iii) mutao: operador que realiza mudanas
aleatrias no material gentico.

O conceito chave na CE o de adaptao que unifica a abordagem quanto ao
mtodo de soluo: uma populao inicial de solues evolui, ao longo das geraes que so
simuladas no processo, em direo a solues mais adaptadas, isto , com maior valor da
funo de avaliao, por meio de operadores de seleo, mutao e recombinao.
O conjunto de solues iniciais pode ser aleatrio ou pode ser obtido a partir de
tcnicas convencionais para resolver instncias mais simples do problema que est sendo
tratado. Por um lado, usando-se solues inicialmente aleatrias, pode-se usar sempre o
mesmo algoritmo e os mesmos operadores. Por outro lado, adaptando o conceito de CE a um
problema especfico e empregando solues iniciais obtidas por mtodos convencionais,
necessrio adaptar os operadores usuais da CE para o problema especfico. Em compensao,
na pior das hipteses, a soluo encontrada igual melhor soluo obtida anteriormente
pelas tcnicas convencionais.
Para definir a funo de avaliao necessrio encontrar uma maneira de
codificar as solues para o problema que se quer resolver. O resultado dessa codificao
corresponde aos cromossomos na evoluo natural e chamado de gentipo. A partir desses
cromossomos, a funo de avaliao deve ser capaz de determinar a qualidade de uma
soluo.
As novas solues podem ser geradas a partir de uma nica soluo (assexuada,
na natureza) ou a partir de duas solues (na natureza, sexuada). Estabelecido um conjunto de
novas solues (os descendentes), estas sofrem a ao dos operadores evolutivos, mediante os
quais, os descendentes passaro a ser diferentes dos ascendentes. Os melhores, de acordo com
a funo de avaliao, tero uma descendncia maior do que a dos pouco aptos. Na
reproduo sexuada, a troca de material gentico - chamada de recombinao - leva um par de
26



ascendentes a dar origem a um par de descendentes onde cada descendente herda partes
aleatoriamente escolhidas de cada ascendente. A mutao leva mudana, tambm aleatria,
de uma parte da soluo. No caso mais simples de cromossomos codificados em binrio, a
mutao a simples inverso de um bit. Tanto a recombinao quanto a mutao tendem a
ocorrer segundo uma dada probabilidade (que so parmetros da tcnica).
Tal processo, repetido, simula a passagem das geraes. Como o processo est
sendo simulado em um computador digital, o fator tempo pode ser comprimido sem perda de
qualidade.
Pode-se descrever o algoritmo bsico da CE atravs do pseudocdigo apresentado
na Figura 3. Neste algoritmo pode-se perceber o comportamento bsico dos algoritmos
evolutivos que consiste em buscar dentro da atual populao aquelas solues que possuem as
melhores caractersticas e tentar combin-las de forma a gerar solues ainda melhores,
repetindo este processo at que tenha se passado tempo suficiente ou que tenha obtido uma
soluo satisfatria para nosso problema (LINDEN, 2006).
Como se pode perceber claramente dentro do algoritmo, os algoritmos evolutivos
so extremamente dependentes de fatores probabilsticos, tanto na fase de inicializao da
populao quanto na fase de evoluo, durante a seleo dos pais, principalmente.
Isso faz com que os seus resultados raramente sejam perfeitamente reprodutveis.
Ademais, claramente os algoritmos evolutivos so heursticas
1
que no garantem a obteno
do melhor resultado possvel em todas as suas execues (LINDEN, 2006).


Figura 3: Pseudocdigo bsico da CE.


1
Heursticas so algoritmos polinomiais que no tm garantia nenhuma sobre a qualidade da soluo encontrada,
mas que usualmente tendem a encontrar a soluo tima ou ficar bem prximos dela (LINDEN, 2006).
t:=0 // Inicializamos o contador de tempo
Inicializa_Populao P(0) // Inicializamos a populao randomicamente
Enquanto no terminar faa //condio de trmino: por tempo, por avaliao, etc.
Avalie_Populao P(t) //Avalie a populao neste instante
P':=Selecione_Pais P(t) //Selecionamos sub-populao que gerar nova gerao
P'=Recombinao_e_mutao P' //Aplicamos os operadores genticos
Avalie_Populao P' //Avalie esta nova populao
P(t+1)=Selecione_sobreviventes P(t),P' //Selecione sobreviventes desta gerao
t:=t+1 //Incrementamos o contador de tempo
Fim enquanto
27



Diversas abordagens para a CE foram propostas, sendo que as principais
diferenas entre elas dizem respeito aos operadores genticos empregados. As principais
abordagens propostas na literatura so: Algoritmos Genticos, Estratgias Evolutivas e
Programao Evolutiva. Alm destas tem-se a Programao Gentica (KOZA, 1992) e os
Sistemas Classificadores (BOOKER et al., 1989). A seo que segue abranger maiores
informaes a respeito dos Algoritmos Genticos.


2.5.1.1. ALGORITMOS GENTICOS


Os Algoritmos genticos (AG) foram desenvolvidos por John Holland e sua
equipe, na Universidade de Michigan, em 1975. At esse momento o assunto abrange o
mbito da gentica, economia, teoria de jogos, pesquisa, reconhecimento de padres e
inferncia estatstica, controle e otimizao de funes e sistema nervoso central.
Originalmente, os AG estavam muito fortemente ligados a modelos de aprendizado
automtico, como demonstrada na nfase dada por HOLLAND (1975) aos chamados
sistemas classificadores, que so um modelo de mquina de aprendizado usando AG. S mais
tarde, que GOLDBERG (1989) passa a utilizar a ideia de otimizao como tema central na
teoria dos AG. Por esses motivos que, ao contrrio das abordagens de Estratgias Evolutivas
e Programao Evolutiva, os AG conceitualmente apresentam um escopo mais amplo do que
a simples otimizao, sendo apresentados como um modelo para a aprendizagem de mquina
por HEITKOETTER & BEASLEY (1994).
Portanto, pode-se dizer que o objetivo original de HOLLAND (1975) no foi o de
desenvolver algoritmos para a soluo de problemas especficos, mas sim estudar
formalmente os fenmenos de adaptao, naturais ou artificiais, com o propsito de importar
estes mecanismos de adaptao para ambientes computacionais.
Os AG so o ramo mais conhecido da CE e como tal so algoritmos de otimizao
global, baseados nos mecanismos de gentica e seleo natural (GOLDBERG, 1989),
(LINDEN, 2006). Os AG so um mecanismo de busca de solues que utiliza combinaes
de melhores solues - melhores pais - de uma determinada gerao, com objetivo de obter
novas solues - filhos - para a gerao seguinte, que devem apresentar resultados mais
eficientes para a funo de avaliao, funo esta que a responsvel por manter a gerao
contnua de melhores solues para o problema.
28



A base de um algoritmo gentico pode ser definida por: um procedimento de
descoberta de bons blocos, seleo destes blocos e construo de novos blocos a partir destes,
onde a idia principal que cada novo bloco gerado a partir de outros bons blocos, ser
melhor que os blocos geradores (HOLLAND, 1975).
Os AG no estacionam pelo fato de encontrar uma nica soluo para o problema,
assim como na seleo natural, que s por que encontrou um indivduo que
instantaneamente o melhor de certo grupo no pra de procurar outros indivduos ainda
melhores, j que as circunstncias podem mudar de um lugar para o outro (LINDEN, 2006).
Assim sendo, LINDEN (2006) conclui que os AG no constituem um algoritmo
de busca da soluo tima de um problema, mas sim uma heurstica que encontra boas
solues a cada execuo, mas no necessariamente a mesma todas as vezes.
Os AG empregam uma estratgia de busca paralela e estruturada, mas aleatria,
que voltada em direo ao reforo da busca de pontos de "alta aptido", ou seja, pontos nos
quais a funo a ser minimizada (ou maximizada) tem valores relativamente baixos (ou altos)
(BRAGA et al., 2000). Portanto, apesar de aleatrios, eles no so caminhadas aleatrias no
direcionadas, pois exploram informaes histricas para encontrar novos pontos de busca
onde so esperados melhores desempenhos.
A vantagem principal dos AG ao trabalharem com o conceito de populao, ao
contrrio de muitos outros mtodos que trabalham com um s ponto, que eles encontram
segurana na quantidade. Tendo uma populao de pontos bem adaptados, a possibilidade de
alcanar um falso timo torna-se menor. Os AG conseguem grande parte de sua amplitude
simplesmente ignorando informao que no constitua parte do objetivo, enquanto outros
mtodos apoiam-se fortemente nesse tipo de informao, e em problemas nos quais a
informao necessria no est disponvel ou se apresenta de difcil acesso, estes outros
mtodos falham.
O conceito de mximo local (ou falso timo) acontece quando o algoritmo
converge para uma soluo local e a explora at que encontre seu melhor valor, ignorando,
porm o restante do espao de busca.

29




Figura 4: Representao do Espao de Busca de uma Funo e seus mnimos local e global.

A Figura 4 retrata um exemplo onde o AG encontrou um mnimo local, tambm
conhecido como falso timo. O algoritmo convergiu para a regio em vermelho, que
representa um mximo mnimo local, visto que para aquela regio ela a melhor soluo,
porm no melhor soluo dentro do espao de busca. A melhor soluo do espao de busca
representada pela regio verde. O fato do timo local ocorre quando o algoritmo tende a
buscar aquele ponto, ignorando as demais regies, pois as solues mais prximas so piores
(so os vales laterais ao pico, que representa a melhor soluo local).
Ao utilizar os algoritmos genticos para a soluo de um problema, importante
escolher os parmetros adequados s necessidades do problema e aos recursos disponveis.
Segundo BRAGA et al. (2000), os principais parmetros so tamanho da
populao, taxa de cruzamento, taxa de mutao e intervalo de gerao.
O tamanho da populao afeta o desempenho global e a eficincia dos AG. Com
uma populao pequena o desempenho pode cair, pois deste modo a populao fornece uma
pequena cobertura do espao de busca do problema. Uma grande populao geralmente
fornece uma cobertura representativa do domnio do problema, alm de prevenir
convergncias prematuras para solues locais ao invs de globais. No entanto, para se
Soluo tima
(mnimo global)
Resultado Falso
timo
(mnimo local)
30



trabalhar com grandes populaes, so necessrios maiores recursos computacionais, ou que o
algoritmo trabalhe por um perodo de tempo muito maior.
Uma taxa de cruzamento muito alta faz com que indivduos com bons ndices de
aptido possam ser retirados a uma velocidade que supere a capacidade de gerar melhores
indivduos. Por outro lado, se essa taxa for muito baixa, a busca pode estagnar.
Uma baixa taxa de mutao previne que uma dada posio fique estagnada em um
valor, alm de possibilitar que se chegue em qualquer ponto do espao de busca. Com uma
taxa muito alta, a busca se torna essencialmente aleatria.
O intervalo de gerao controla a porcentagem da populao que ser substituda
para a prxima gerao. Com um valor alto, a maior parte da populao substituda, o que
pode levar perda de indivduos de alta aptido. Com um valor baixo, o algoritmo pode se
tornar muito lento, pois o nmero de geraes necessrias pode ser muito grande.
A partir de tudo que foi visto, GOLDBERG (1989) difere os AGs dos mtodos
tradicionais de tcnicas de busca e otimizao em quatro aspectos principais:
Os AG trabalham com uma codificao do conjunto de parmetros e no com os
prprios parmetros;
Os AG trabalham com uma populao de solues candidatas simultaneamente, e
no com uma nica soluo;
Os AG utilizam informaes de custo ou recompensa, e no derivadas de funes;
Os AG utilizam regras de transio probabilsticas e no determinsticas.

Os AG tm sido mais utilizados para soluo de funes de otimizao, nas quais
eles vm se mostrando bastantes eficientes e confiveis.
Porm, como de se esperar, nem todos os problemas podem ter resultados
satisfatrios ou mesmo ser representados adequadamente para o uso de tcnicas de AG.
Geralmente necessrio levantar as seguintes caractersticas relativas ao problema a ser
resolvido, antes de se tentar utilizar os AG:
O espao de busca (possveis solues) do problema em questo deve estar
delimitado dentro de certa faixa de valores.
Deve ser possvel definir uma funo de aptido (fitness) que nos indique quo
boa ou ruim uma determinada resposta. Funo esta que servir de mtrica para
a soluo do problema.
31



As solues devem poder ser codificadas de uma maneira que resulte
relativamente fcil a sua implementao no computador.

A literatura comumente cita que os AG podem ser utilizados para praticamente
todo tipo de problema, porm sempre interessante considerar as caractersticas citadas acima
para que o desenvolvimento do processo no seja invivel ou mesmo atingir solues
consideradas ruins.
Embora possam parecer simplistas do ponto de vista biolgico, estes algoritmos
so suficientemente complexos para fornecer mecanismos de busca adaptativos, poderosos e
robustos.


2.5.1.1.1. CONCEITOS FUNDAMENTAIS DE GENTICA UTILIZADOS NOS AG


2.5.1.1.1.1. CROMOSSOMO OU INDIVDUO


Uma possvel soluo para o problema em questo, codificada, de acordo com um
modelo selecionado e com informaes do problema a ser resolvido.


2.5.1.1.1.2. GENE


Parte de uma soluo. Isto , supondo um vetor [1, 3, 2] como uma soluo
proposta para o problema, pode-se dizer que 3, que varivel deste vetor soluo, um gene,
ou seja, o valor de uma determinada varivel X
n
, que faz parte de um conjunto de variveis
da soluo S
i
.





32



2.5.1.1.1.3. FITNESS


O conceito de fitness demonstra o quo adaptvel um determinado individuo a
situao qual ele est exposto. No caso dos AG representa o valor obtido pela funo de
avaliao sobre aquele determinado indivduo ou soluo proposta.


2.5.1.1.1.4. FUNO DE AVALIAO OU FUNO DE FITNESS


a funo objetivo do problema em questo, que deve avaliar cada soluo
proposta e determinar se ser possvel a sua permanncia no grupo de solues admissveis
(timas) para o problema.


2.5.1.1.1.5. POPULAO


Conjunto de solues propostas, presentes numa determinada etapa da execuo
do AG. A populao composta por todo tipo de soluo, tanto as admissveis, quanto as
inadmissveis.


2.5.1.1.1.6. CRUZAMENTO


Processo de reproduo de indivduos, onde os indivduos filhos (solues
propostas pela gerao seguinte) so construdos a partir de genes obtidos dos pais (solues
propostas atuais).





33



2.5.1.1.1.7. MUTAO


Processo de modificao aleatria ou guiada de um ou mais genes contidos em
uma determinada soluo (cromossomo), que aplicada nos AG, visa evitar os problema de
mnimos locais e convergncia rpida, diversificando os indivduos da populao corrente.


2.5.1.1.1.8. SELEO


Processo de separao dos indivduos que possuem uma melhor resposta funo
de avaliao daqueles que no possuem boas avaliaes, para que os melhores deem origem
aos indivduos da gerao seguinte.


2.5.1.1.1.9. POPULAO INICIAL


o conjunto inicial de solues para o problema, o ponto de partida da
execuo do AG, a partir destes indivduos, aplicando os operadores genticos, so gerados os
indivduos das geraes futuras.
Geralmente esses indivduos recebem valores aleatrios, mas caso o projetista
tenha um conhecimento considervel do problema a ser abordado ele pode fazer com que
estes indivduos iniciais (populao inicial) recebam uma gama de valores direcionados, ou
seja, recebem valores que no se apresentam absurdos ao contexto do problema.


2.5.1.1.1.10. CONDIO DE PARADA


Condio que deve ser satisfeita para que o algoritmo gentico pare de executar,
condio esta, que deve ser determinada de acordo com o problema a ser resolvido.
Usualmente, esta condio um nmero que representa a quantidade mxima de iteraes
sobre as quais o AG deve ser executado.
34



2.5.1.1.2. ESTRUTURA DO ALGORITMO


necessrio observar uma sequncia de passos para a utilizao de AG em
problemas de otimizao e busca. Segundo BRAGA et al. (2000) um algoritmo gentico deve
executar os passos apresentados a seguir:

1. Escolher um conjunto de cromossomos iniciais.
2. Repetir
2.1. Definir a nota de cada cromossomo.
2.2. Selecionar os cromossomos mais aptos.
2.3. Aplicar operadores de reproduo sobre os cromossomos
selecionados.
3. At cromossomo adequado ser obtido ou serem realizadas N geraes.

O primeiro passo a gerao da populao inicial. Em seguida deve ser realizada
a codificao ou representao, ou seja, deve ser determinado como os indivduos sero
codificados. A codificao da informao em cromossomos um ponto crucial dentro do AG,
e , junto com a funo de avaliao, o que liga o AG ao problema a ser resolvido. Durante o
processo evolutivo, a populao avaliada, sendo que para cada indivduo dada uma nota,
ou ndice, refletindo sua habilidade de adaptao a um determinado ambiente.
O processo de seleo determina quais indivduos da populao podem participar
da fase de reproduo. Os indivduos so selecionados de acordo com uma probabilidade dada
pelos ndices ou notas de aptido.
Os indivduos escolhidos na fase de seleo participam da fase de reproduo, em
que podem ser combinados e modificados, produzindo os indivduos da prxima gerao.
Estas combinaes e modificaes so realizadas pelo conjunto de operadores
genticos.
Depois de concludas essas etapas, a nova gerao formada novamente
submetida avaliao, e assim ser feito at o ponto de parada do algoritmo.
De acordo com os passos vistos acima, o algoritmo gentico em linhas gerais,
pode ser descrito pelo pseudocdigo da Figura 5.

35




Figura 5: Pseudocdigo de um AG.

A Figura 6 abaixo modela exatamente a situao proposta no algoritmo.
Obviamente esta somente uma viso de alto nvel do algoritmo. O que ela esconde a
complexidade do processo de obteno de uma representao cromossomial que seja
adequada ao problema e de uma funo de avaliao que penalize solues implausveis para
nosso problema e que avalie satisfatoriamente o grau de adequabilidade de cada indivduo
como soluo do problema em questo (LINDEN, 2006).


Figura 6: Fluxograma que sintetiza um algoritmo gentico.


Define P
inicial

Define T = Tamanho(P
inicial
)
Enquanto (condio de parada = falso)
P
f
= Cruzamento_entre_individuos(P
i
)
P
t
= Mutao(P
i
+P
f
)
P
i
+1 = Seleo (P
t
,T)
Elimina(P
t
P
i
+1)
Fim-Enquanto
Soluo_Otima = Melhor_individuo (P
n
)
36



2.5.1.1.3. REPRESENTAO DOS CROMOSSOMOS


A representao cromossomial de fundamental importncia para os AG.
Basicamente ela consiste em uma maneira de traduzir a informao do nosso problema em
uma maneira vivel de ser tratada pelo computador.
Cada pedao indivisvel desta representao chamado de um gene por analogia
com os pedaos fundamentais que compem um cromossomo biolgico, como visto
anteriormente.
A representao ou formato de codificao dos cromossomos deve ser escolhido
cuidadosamente mediante a natureza do problema a ser resolvido, pois, a representao
cromossomial completamente arbitrria, ficando sua definio de acordo com o gosto do
programador. interessante apenas que algumas regras gerais sejam seguidas (LINDEN,
2006):
A representao deve ser o mais simples possvel;
Se houver solues proibidas ao problema, ento elas no devem ter uma
representao;
Se o problema impuser condies de algum tipo, estas devem estar implcitas
dentro da nossa representao.
A seguir sero elucidadas as abordagens de codificao existentes atualmente.


2.5.1.1.3.1. REPRESENTAO BINRIA


Normalmente a representao mais usada a binria, isto , um cromossomo nada
mais do que uma sequncia de bits e um gene somente um bit. O que cada bit e/ou
conjunto de bits representa inerente ao problema. Pode-se dizer que cada elemento do vetor
(cromossomo) denota a presena (bit 1) ou ausncia (bit 0) de uma determinada caracterstica.
A utilizao desta representao implica na necessidade de uma funo de
codificao. Esta funo responsvel por transformar, os nmeros reais para a representao
binria. Para realizar esta transformao, necessrio especificar: a faixa de operao de cada
um das variveis do problema e a preciso numrica desejada.
37



Estes dois parmetros so responsveis pela definio de quantos bits por varivel
vamos usar. Usando k bits para uma varivel m
i
que trabalha numa faixa [inf
i
, sup
i
], est-se
definindo que a preciso mxima desta varivel definida pela Equao (1) (LINDEN, 2006).

(1)

Seguindo a equao descrita acima, possvel construir o cromossomo, com
diversas variveis reais, concatenando as strings que representam cada nmero, comum para
cada nmero i que compe o cromossomo, k
i
= k
i
+ 1 = ... = k
n
, no entanto podem existir
situaes em que isto no seja verdade, onde seja preciso nmeros com precises diferentes.
Quando usada a representao binria necessria a transformao do valor
binrio em numrico, a fim de obter o valor do fitness. A Equao (2) pode ser utilizada para
calcular o mapeamento de um gene binrio inteiro em um intervalo dos reais de ponto fixo a
fim de realizar o clculo do fitness, considerando as mesmas constantes da Equao (1) e onde
x
n
corresponde ao valor binrio a ser mapeado, convertido para a base decimal.

(2)

A seguir, a Figura 7 mostra um exemplo de decodificao de um nmero
(representado num cromossomo binrio), para um nmero real, onde o primeiro nmero
representado pelos primeiros 6 bits e o segundo, pelos 6 bits seguintes, e a faixa de cada um
deles [-2,2] e [0,1] respectivamente.


Figura 7: Representao de decodificao dos bits de um cromossomo binrio em nmeros reais.


O fato que acarreta em um consumo maior de tempo em problemas que
necessitam de uma boa preciso a necessidade de se calcular o valor decimal da cadeia
binria que representa o cromossomo na tcnica binria. Alm de que nas cadeias binrias
existe a necessidade da converso dos bits para um valor numrico. Outro problema a
38



presena de Hamming cliffs, que so grandes diferenas nas cadeias de bits que codificam
dois nmeros inteiros prximos (GOLDBERG, 1989).
Segundo HERRERA et al. (1998), devido a estes problemas foram surgindo novas
tcnicas de codificao dos cromossomos, diferentes da tcnica clssica (binria) apresentada
por HOLLAND (1975).


2.5.1.1.3.2. REPRESENTAO REAL


Uma soluo que foi proposta com o intuito de evitar a perda excessiva de tempo
para situaes que necessitam de alta preciso foi a utilizao de valores reais para se
representar os cromossomos, tcnica esta que ficou conhecida como codificao real.
A codificao real a forma de representar diretamente os parmetros de um
problema de otimizao, cria uma igualdade entre a representao interna do AG e o seu
significado no problema.
uma representao, que, por utilizar diretamente os nmeros em ponto-
flutuante, ela obtm o mximo de preciso numrica que o computador pode oferecer, sem
aumentar o tamanho do cromossomo.
Conforme HERRERA et al. (1998), o uso de parmetros reais torna possvel
cobrir um domnio bastante abrangente, mesmo para domnios desconhecidos, das variveis, o
que difcil de se conseguir trabalhando com as cadeias binrias, onde conforme o domnio
do problema vai aumentando a preciso vai caindo.
Outra vantagem em se utilizar parmetros reais a sua capacidade de explorar
gradualmente as funes com variveis contnuas. Esta evoluo gradual se aplica ao fato de
ligeiras mudanas nas variveis corresponderem a ligeiras mudanas na funo. Ou seja,
interessante explorar gradualmente o domnio do problema, pois a soluo obtida pode ser
melhor atravs de uma pequena mudana nos parmetros. J a codificao real no possui esta
opo de evoluir gradualmente.





39



2.5.1.1.3.3. REPRESENTAO BASEADA EM ORDEM


uma representao que delimita os valores dos genes de um cromossomo, a um
domnio discreto e especfico do problema a ser resolvido.
Um exemplo clssico onde a representao em ordem vista, o problema do
caixeiro viajante (Travelling Salesman Problem)
2
, onde cada gene pode ser apenas uma das
cidades numeradas presentes no problema, e o cromossomo ou soluo, um caminho entre
estas cidades.
Este tipo de representao que ser utilizada neste trabalho, onde cada gene do
cromossomo representar uma rota possvel e o cromossomo representa uma possvel LSP.


2.5.1.1.4. SELEO DE INDIVDUOS


A seleo dos indivduos em um algoritmo gentico o processo responsvel por
garantir, de uma maneira geral, uma melhoria na qualidade das solues de cada gerao do
algoritmo.
Existem diversas tcnicas de seleo, segue abaixo a enumerao de algumas
delas, tidas como mais importantes.


2.5.1.1.4.1. MTODO DA ROLETA VICIADA


o mtodo mais comum de seleo utilizado nos AG, este mtodo consiste em
distribuir as solues de acordo com o seu fitness, numa roleta, onde as melhores solues
tm maior probabilidade de serem escolhidas e as piores solues podem ser escolhidas, pois
muitas vezes possuem caractersticas importantes para se garantir uma gerao seguinte ainda
melhor.


2
Consiste na procura de um circuito que possua a menor distncia, comeando numa cidade qualquer, entre
vrias, visitando cada cidade precisamente uma vez e regressando cidade inicial (NILSSON, 1982).
40




Figura 8: Exemplo de seleo atravs do mtodo da roleta.


Durante a seleo a roleta girada N vezes, selecionando n indivduos para
participarem da fase de reproduo. Indivduos com maiores notas, por possurem reas
maiores, tm maiores probabilidades de serem selecionados. Entretanto, a utilizao da
funo de avaliao para escolher os tamanhos das fatias da roleta nem sempre a mais
adequada. Se a nota de um indivduo for muito alta, este pode monopolizar a seleo, levando
a uma seleo prematura do algoritmo gentico. Se por outro lado, os valores de aptido dos
indivduos forem muito prximos, as suas fatias nas roletas sero aproximadamente iguais.
Isto leva a possibilidade da seleo no favorecer os indivduos mais aptos. Uma soluo para
estes problemas a utilizao da tcnica de ranking. Nesta tcnica, a fatia definida no pela
nota relativa de cada indivduo, mas pela posio que eles ocupam no ranking de todas as
notas (BRAGA et al., 2000). Na tcnica de ranking, a fatia de cada indivduo definida por
meio da escolha de um valor no intervalo entre 0,0 e 1,0. Desta forma, em ordem decrescente
de ranking, cada indivduo, ocupa da rea total da roleta que ainda no foi ocupada, uma fatia
proporcional ao valor escolhido.



2.5.1.1.4.2. MTODO DO TORNEIO


Este mtodo busca uma convergncia rpida, visto que dos n indivduos/solues
presentes em uma determinada gerao da execuo do algoritmo so escolhidos k indivduos,
que disputam entre si, e sempre os indivduos de melhor avaliao so preservados. Esta
tcnica executa rpida convergncia, no entanto ocorre com mais frequncia dela caminhar
para um mnimo/mximo local.
41



2.5.1.1.4.3. MTODO DE AMOSTRAGEM ESTOCSTICA UNIFORME


Neste mtodo construda uma linha, mapeando todos os indivduos para
seguimentos contguos, onde o tamanho de cada segmento representado pelo fitness daquela
soluo, os segmentos devem ser normalizados, de forma em que sua soma 1. Em seguida,
sorteado um nmero i entre 0 e

.
Ento, os indivduos que esto nas posies (


()

)
so escolhidos pelo algoritmo de seleo para a aplicao dos operadores genticos. Apesar
de ser parecido com o mtodo da roleta viciada, este mtodo de seleo evita o problema
ocasionado por um gerador de nmeros aleatrios ineficiente.


2.5.1.1.5. OPERADORES GENTICOS


Os indivduos escolhidos na fase de seleo participam da fase de reproduo, em
que podem ser combinados ou modificados, produzindo os indivduos da prxima gerao.
A construo de geraes futuras nos AG se d atravs de dois operadores
genticos fundamentais para a sua execuo, cruzamento (ou crossover) e mutao.


2.5.1.1.5.1. CRUZAMENTO


O cruzamento a utilizao de solues j existentes para dar origem prxima
gerao de solues para a prxima gerao, este processo juntamente com o processo de
seleo responsvel por manter constante a evoluo das solues.
A ideia principal do cruzamento propagar as caractersticas positivas dos
indivduos mais aptos da populao atravs da troca de segmentos de informaes entre os
mesmos, o que originar novos indivduos.
Os indivduos eleitos na etapa de seleo so embaralhados aleatoriamente
criando-se, desta forma, uma segunda lista, chamada lista de parceiros. Cada indivduo
42



selecionado ser ento cruzado com o indivduo que ocupa a mesma posio na lista de
parceiros. Os cromossomos de cada par de indivduos a serem cruzados so particionados em
um ou mais pontos, chamados pontos de corte, sorteados aleatoriamente. Um ponto de corte
constitui uma posio entre dois genes de um cromossomo. Um novo cromossomo gerado
permutando-se a parte de um cromossomo com a mesma parte do outro cromossomo.
Cada indivduo de n genes contm n-1 pontos de corte, e cada um desses pontos
corte o ponto de separao entre cada um dos genes que compem o material gentico de
cada pai.
Ele considerado o operador gentico predominante por isso aplicado com uma
probabilidade, taxa de cruzamento, maior que a taxa de mutao.
O cruzamento pode se tornar um pouco mais complexo, dependendo
principalmente da codificao dos cromossomos. Cruzamentos especficos feitos para
problemas especficos podem melhorar o desempenho dos algoritmos genticos.
Existem diversas tcnicas de cruzamento, as mais utilizadas so: cruzamento de
um ponto, de dois pontos e uniforme, que podem ser utilizados tanto em cromossomos com
codificao binria como em ponto flutuante. Porm existem operadores de cruzamento
especficos para uso com codificao em ponto flutuante, so os chamados operadores de
cruzamento aritmticos. Alguns exemplos de operadores de cruzamento aritmticos so:
mdia, mdia geomtrica, aritmtico e heurstico. No objetivo deste trabalho aprofundar-se
nestas tcnicas de cruzamento aritmticos.


2.5.1.1.5.1.1. CRUZAMENTO DE UM PONTO


A operao deste operador extremamente simples e foi o primeiro cruzamento
proposto por HOLLAND (1975). Depois de selecionados dois pais pelo mdulo de seleo de
pais, um ponto de corte selecionado. Depois de sorteado o ponto de corte, deve-se separar os
pais em duas partes: uma esquerda do ponto de corte e outra direita.
O primeiro filho composto atravs da concatenao da parte esquerda do
primeiro pai e com a parte direita do segundo pai. O segundo filho composto atravs da
concatenao das metades que sobraram (a metade esquerda do segundo pai com a metade
direita do primeiro pai), esse tipo de operao pode ser visualizado na Figura 9.
43



Existem vrios esquemas que o crossover de um ponto no consegue preservar,
portanto, devemos cogitar a possibilidade de utilizar outros operadores de cruzamento para
que o AG no fique limitado na sua capacidade de processar esquemas.

Figura 9: Exemplificao de um Cruzamento de um ponto.



2.5.1.1.5.1.2. CRUZAMENTO DE DOIS PONTOS


Para melhorar a capacidade do processamento de esquemas, pode-se introduzir o
crossover de dois pontos. Seu funcionamento, que podemos ver na Figura 10, similar ao do
crossover de um ponto, com a diferena que em vez de sortearmos um s ponto de corte,
sorteamos dois. O primeiro filho ser ento formado pela parte do primeiro pai externo aos
pontos de corte, e pela parte do segundo pai entre os pontos de corte e segundo filho ser
formado pelas partes restantes.

Figura 10: Exemplificao de um Cruzamento de dois pontos.
44




Obviamente a operao do crossover de dois pontos ligeiramente mais
complexa do que a operao do seu equivalente de um s ponto, mas a diferena de
desempenho conseguida, em geral, faz com que o custo extra seja vlido, pois o nmero de
esquemas que podem ser efetivamente transferidos aos descendentes usando-se este operador
aumenta de forma considervel.


2.5.1.1.5.1.3. CRUZAMENTO UNIFORME


Apesar dos cruzamentos de um e dois pontos serem capazes de combinar vrios
esquemas, existem alguns esquemas que eles podem no ser capazes de manter. Por isto, foi
desenvolvido o cruzamento uniforme, que capaz de combinar praticamente todo e qualquer
esquema existente.
O funcionamento do crossover uniforme, conforme mostrado na Figura 11,
consiste em: para cada gene sorteado um nmero (0 ou 1), se o sorteado for 1 (um), o
primeiro filho recebe o gene do primeiro pai e o segundo filho o gene do segundo pai, e se o
sorteado for 0 (zero), o primeiro filho recebe o gene do segundo pai e o segundo filho recebe
o gene do primeiro pai (LINDEN, 2006).


Figura 11: Exemplificao de um Cruzamento uniforme.

Uma caracterstica interessante do crossover uniforme que ao contrrio dos seus
predecessores, que tendiam a quebrar esquemas de maior comprimento, esse tende a
conservar esquemas longos com a mesma probabilidade que preserva esquemas de menor
comprimento.
1 0 1 1 0 1 1 0 0 1 0 0 1 0 0 1
0 0 1 1 1 0 0 1
0 1 1 1 0 0 0 0 1 0 0 0 1 1 1 1
Vetor de combinao
DESCENDENTES
PAIS
45



2.5.1.1.5.2. MUTAO


A mutao o processo de modificao aleatria e/ou guiada de um ou mais
genes de um ou mais indivduos, e responsvel pela introduo e manuteno da diversidade
gentica da populao (HOLLAND, 1975) ou mesmo restaurar caractersticas que se
perderam em outras operaes, como, por exemplo, de cruzamento, tentando evitar que o
algoritmo tenha rpida convergncia para um mnimo/mximo local. Assim, a mutao
assegura que a probabilidade de se chegar a qualquer ponto do espao de busca nunca ser
zero.
O operador de mutao aplicado aos indivduos com uma probabilidade dada
por uma taxa de mutao definida pelo projetista, taxa esta que geralmente bem baixa, sendo
os valores comumente usados dentro da faixa de 0,001 a 0,02. O cromossomo tem todos seus
genes percorridos. Caso a taxa de mutao seja maior que o valor sorteado pelo gene ento
este sofrer mutao.

Tabela 1
Exemplo do operador de Mutao (taxa de mutao = 0,003)
Cromossomo
original
Nmeros Aleatrios
Novo
bit
Cromossomo
novo
0 1 1 1 0,653 0,001 0,287 0,373 0 0 0 1 1
1 1 1 0 0,721 0,432 0,004 0,84 - 1 1 1 0
1 0 1 0 0,002 0,076 0,934 0,471 0 0 0 1 0
Fonte prpria

Pode acontecer de um cromossomo possuir vrios genes alterados pela mutao
ou mesmo no apresentar nenhuma alterao, caso o valor sorteado seja sempre maior que a
taxa de mutao fornecida pelo projetista.
Considerando a codificao binria, o operador de mutao padro simplesmente
troca o valor de um gene em um cromossomo (HOLLAND, 1992). Assim, se um gene
selecionado para mutao tem valor 1, o seu valor passar a ser 0 aps a aplicao da
mutao, e vice versa.
No caso de problemas com codificao em ponto flutuante, os operadores de
mutao mais populares so a mutao uniforme, mutao gaussiana e mutao no-uniforme
46



(MICHALEWICZ; SCHOENAUER, 1996). Porm, no objetivo deste trabalho aprofundar-
se nestas tcnicas de mutao.


2.5.1.1.5.3. INVERSO


HOLLAND (1975) cita um terceiro operador gentico, a inverso. Esse operador
considerado como secundrio para os AG e foi criado com a finalidade de evitar que bons
esquemas se rompam durante o cruzamento.
O objetivo reordenar a estrutura cromossmica para fortalecer o enlace entre
caracteres fixos de esquemas de grande comprimento de definio, antes de aplicar o
cruzamento.
Segundo VASCONCELOS et al. (1995) o efeito da inverso em um cdigo
gentico no claro e nem de fcil entendimento como os operadores mutao e cruzamento.
Para DAVIS (1991), o operador de inverso traz consigo um custo computacional adicional
aos AG que o inviabiliza na prtica. Assim sendo, este operador no ser mais alvo de estudos
nesse trabalho, estando aqui apresentado apenas para completar a descrio dos operadores
genticos.


2.5.1.1.6. CONSTRUO E CONVERGNCIA DAS GERAES


O desempenho de um algoritmo gentico est diretamente ligado ao tamanho da
sua populao, que no deve ser grande demais, por questes de desempenho ao realizar as
operaes, mas tambm no deve ser pequena demais, pois deve obter uma boa diversidade
de solues.
A construo das geraes num AG pode ocorrer de diversas formas, o algoritmo
pode estar programado para fazer com que o nmero de indivduos seja constante em todas as
geraes, este nmero pode aumentar ou diminuir de acordo com uma determinada
necessidade, e alm da questo tamanho da populao, possvel guiar as geraes futuras,
criando superindivduos, ou at mesmo realizando mortes/nascimentos de indivduos de
47



forma independentes, no somente esperando o fim de uma gerao para surgirem novas
solues.
Aps a aplicao dos operadores genticos, pode acontecer que os indivduos de
uma nova gerao no apresentem melhores resultados que o melhor da gerao anterior. Se
isso ocorrer, o valor da funo de aptido cai do patamar que j havia alcanado. Outro
problema surge em geraes mais avanadas, onde a populao contm vrias cpias de bons
indivduos. Se por acaso surgir um indivduo melhor que os atuais, este corre o risco de no
ser selecionado, justamente pela grande probabilidade proporcionada aos indivduos com mais
cpias.


2.5.1.1.7. CRITRIOS DE CONVERGNCIA


A convergncia acontece de acordo com um critrio pr-determinado. Se a
aptido requerida conhecida, pode-se trabalhar com a opo de um erro mximo admissvel.
Desta forma, assim que os AG encontrarem um indivduo que proporcione um erro menor que
o estipulado, finaliza-se o processo.
Outro mtodo interessante de testar a convergncia atravs da diversidade
gentica da populao. Se os indivduos esto muito parecidos entre si, ou seja, se a avaliao
da equao de mrito de cada indivduo der resultados muito prximos, pode significar que
eles estejam na mesma regio. Isto caracteriza a presena de um mximo ou mnimo da
funo.
Um controle final deve ser feito de maneira obrigatria, pois no se pode ficar
simulando indefinidamente. Este controle pode ser realizado, por exemplo, estipulando um
nmero mximo de geraes admissvel.
Todas estas metodologias possuem falhas. A convergncia por diversidade
gentica falha quando os AGs convergem para um mnimo local, ou seja, quando acontece
convergncia prematura. J o nmero mximo de geraes falha quando no se d tempo
suficiente ao algoritmo para investigar todo o universo de busca. Uma metodologia inteligente
para ser adotada seria a utilizao racional destas duas citadas. Por exemplo, se ao final do
processo evolutivo a diversidade gentica ainda for elevada, pode-se permitir que o nmero
de geraes seja estendido.

48



2.5.1.1.8. ELITISMO


Para melhorar a convergncia dos AG foi desenvolvida uma tcnica chamada
elitismo. O elitismo a tcnica mais utilizada para melhorar a convergncia destes algoritmos.
Ele foi primeiramente introduzido por Kenneth De Jong, em 1975, e uma adio aos
mtodos de seleo que fora os AG a reter certo nmero de "melhores" indivduos em cada
gerao (YEPES, 2000). Tais indivduos podem ser perdidos se no forem selecionados para
reproduo ou se forem destrudos por cruzamento ou mutao.
Em outras palavras, o elitismo seleciona os melhores cromossomos de uma
populao e transporta-os gerao seguinte. Esta tcnica consiste basicamente em realizar o
processo de seleo em duas etapas:
a) Seleciona-se uma elite de r membros entre os melhores da populao inicial, os
quais so incorporados diretamente na populao final;
b) O restante da populao final obtida a partir dos (n - r) elementos restantes da
populao inicial de tamanho n.
Em geral a elite tem um tamanho reduzido, com r = 1 ou 2 para um n = 50 por
exemplo.
O elitismo quase no altera o tempo de processamento, mas garante que a
desempenho do AG esteja sempre crescendo com o decorrer das geraes.
Visto que a maioria dos esquemas de avaliao de desempenho de um AG mede
apenas a adequao da melhor soluo dentre todos os indivduos, a manuteno do melhor
indivduo da gerao k na populao da gerao k+1 garante que o melhor indivduo da
gerao k+1 pelo menos igual que o melhor indivduo da gerao k (no pior caso, em que
nenhum indivduo melhor criado).
O overhead de processamento realmente muito pequeno, visto que j existe a
necessidade de determinar a avaliao de cada indivduo para aplicao da seleo, logo basta
que armazenar o ndice do melhor indivduo e o mdulo de populao encarregar-se- de
copi-lo para a prxima gerao. Quando essa tcnica utilizada, o algoritmo converge mais
rapidamente.
Como na natureza, os indivduos mais aptos podem, alm de reproduzir-se mais,
ter uma vida mais longa, muitas vezes sobrevivendo de uma gerao para a outra e se
reproduzindo. O efeito negativo desta estratgia prende-se ao fato de que a populao inicial
49



pode convergir para uma populao homognea de superindivduos (convergncia
prematura), no explorando outras solues.
O elitismo utilizado da mesma forma, tanto na codificao real quanto na
codificao clssica.


2.5.1.1.9. ESCALONAMENTO


Entre os mtodos de seleo mais utilizados est o da roleta. Este mtodo de
seleo pode em alguns casos conduzir os AG para a convergncia prematura. Isto acontece
porque, quando da criao dos indivduos, geralmente eles possuem um valor de aptido
baixo. Quando entre estes indivduos aparece um com aptido muito alta, pode acontecer que
muitas cpias dele sejam criadas. Isto , ele ocupar uma rea muito grande na roleta e,
consequentemente poder ser selecionado muitas vezes. Se este indivduo corresponder a um
mnimo ou mximo local, a probabilidade de se ficar preso nesta regio ser alta.
Para evitar este problema uma sada seria fazer o escalonamento da populao,
que consiste em limitar o nmero de cpias de um mesmo indivduo na prxima gerao
(GOLDBERG, 1989).


2.5.1.1.10. VARIAO DINMICA DE PROBABILIDADES


A variao dinmica de probabilidades tem o mesmo objetivo do escalonamento,
ou seja, evitar a convergncia prematura. O que esta ferramenta faz utilizar a medida de
diversidade gentica da populao para medir o grau de semelhana entre os indivduos. Se o
grau de semelhana for alto, alteram-se as probabilidades de cruzamento e mutao.
Especificamente, reduz-se o cruzamento e aumenta-se a mutao, aumentando-se assim a
insero de material gentico novo na populao. Se a situao for contrria, ou seja, se os
indivduos estiverem muito dispersos, aumenta-se o cruzamento e reduz-se a mutao.
Os valores das probabilidades de cruzamento e mutao so modificados
observando diversidade gentica m
dg
da populao, ff
med
que o desempenho mdio da
populao e ff
max
o melhor resultado da populao, e esto expressos na Equao (3).
50



(3)

Se m
dg
prximo da unidade, significa que h pouca diversidade, e muita, quando
ele se aproxima de zero.


2.5.1.1.11. FORMAO DE NICHOS


Na natureza, define-se nicho como uma pequena parte do ambiente onde as
populaes vivem relativamente isoladas. Por isso, acabam adquirindo caractersticas
prprias, formando subespcies. Este isolamento pode melhorar o processo de evoluo.
Nos AG possvel utilizar o mesmo conceito. Pode-se trabalhar com
subpopulaes, ocasionando assim o aparecimento e o desenvolvimento de caractersticas
prprias e novas. Isto interessante, pois se estaria explorando melhor diferentes reas do
universo de busca, aumentando assim o conhecimento a respeito do problema.
Existem tcnicas bem conhecidas para a implementao desta ferramenta. As mais
utilizadas so a funo de partilha (GOLDBERG, 1989) e o SSS (Simple Subpopulation
Schemes), proposto por SPEARS (1994).
A funo de partilha mede o grau de vizinhana, ou seja, quantifica a
proximidade de um indivduo em relao aos outros no universo de busca. Neste caso, o
operador de seleo analisaria o indivduo por sua aptido aparente, relativa somente
aptido de seus vizinhos, ou seja, de uma subpopulao local.
J o SSS consiste em criar subpopulaes desde o incio do processo, de modo
que cada indivduo da populao receba uma etiqueta que indica a qual subpopulao
pertence. Da mesma forma que ocorre com a funo partilha de Goldberg, os indivduos so
selecionados de acordo com sua aptido aparente.





51



2.5.1.1.12. REDUO DO ESPAO DE BUSCA


medida que o nmero de geraes vai sucedendo e que a populao vai
melhorando, caminha-se na direo do objetivo. Para se encurtar este caminho, utiliza-se a
reduo do espao de busca.
Esta reduo feita do seguinte modo: primeiramente seleciona-se o melhor
indivduo da populao corrente. A partir deste indivduo obtm-se uma nova populao
fazendo pequenas perturbaes aleatrias em suas variveis, gerando assim novos indivduos.
Com isto, passa-se a explorar somente a regio onde est inserido o melhor indivduo.
Deve-se tomar o cuidado de s comear a fazer as redues do espao de busca no
final do processo de geraes, quando a populao j se organizou em torno do objetivo.
Se isto no for respeitado, o risco da convergncia prematura ser grande.


2.5.1.1.13. PROBLEMAS DE OTIMIZAO COM RESTRIES


A grande maioria dos problemas de otimizao na prtica, esto sujeitos as
restries, restries estas que podem ser de origem fsica, econmica, geogrfica e etc.
O algoritmo gentico deve ser capaz de lidar com as restries, para a resoluo
de um determinado problema, visto que a ausncia das restries ou o descumprimento delas
por parte do modelo de problema desenvolvido pode torn-lo invlido.
No ramo dos algoritmos genticos problemas com restries so denominados
problemas de otimizao multi-objetivo, ou seja, alm da funo objetivo, todas as restries
so tratadas como funes objetivo, fazendo que os indivduos que no respeitem a todas elas,
sejam considerados como solues inadmissveis.
Num problema de otimizao, as restries so caracterizadas como restries
rgidas (hard-constraints), que so as restries que necessariamente devem ser obedecidas,
caso contrrio o modelo invlido, e as restries suaves (soft-constraints), que
preferencialmente devem ser obedecida, no entanto a no obedincia de uma restrio suave
no invalida uma soluo do problema.


52



2.5.2. INTELIGNCIA COLETIVA


O termo Inteligncia Coletiva ou Swarm Intelligence (SI) foi empregado pela
primeira vez em 1988 por BENI (1988), para descrever um sistema robtico celular, no qual
agentes simples se organizaram atravs do conceito do vizinho mais prximo.
Uma definio mais geral, feita por BONABEAU et al. (1999), : Inteligncia
Coletiva qualquer tentativa de projetar algoritmos ou dispositivos distribudos de resoluo
de problemas inspirados no comportamento coletivo das colnias de insetos sociais e de
outras sociedades animais.
Individualmente, os insetos sociais tm capacidade de memria limitada e so
capazes apenas de realizar tarefas simples. Entretanto, de acordo com HLLDOBLER &
WILSON (1994) e FRANKS (1989), o comportamento coletivo de uma colnia de insetos
sociais capaz de prover solues inteligentes a diversos problemas, como:

Carregar grandes objetos;
Formar pontes;
Encontrar o caminho mais curto entre a fonte de alimento e o ninho;
Criao e manuteno do ninho;
Regular a temperatura do ninho com preciso de at 1C;
Dar preferncia fonte de comida mais rica disponvel.

Um inseto social no tem conhecimento sobre como a tarefa que realiza afeta a
colnia. Suas aes so baseadas em decises locais, utilizando-se de conhecimentos
primitivos e com resultados, geralmente, imprevisveis. O comportamento inteligente da
colnia nasce como uma consequncia da organizao das tarefas e do cruzamento de
informaes dos diversos insetos.
De acordo com GAERTNER (2004), cientistas estudam estes tipos de espcies
que se auto organizam para tentar entender como regras to simples podem levar a um sistema
de comportamento to complexo. Atravs de modelos abstratos que imitam esse tipo de
comportamento, diversas aplicaes dotadas de Inteligncia Coletiva so introduzidas no
nosso dia-a-dia.
A Inteligncia Coletiva, na maioria das vezes, segue alguns princpios bsicos:
53



necessrio certo nmero de agentes para que o sistema atue de forma
inteligente;
Interaes aleatrias entre os agentes so necessrias para mudar o sistema de
forma global.

Nas formigas, as interaes entre os agentes so feitas de forma indireta, atravs
do feromnio. As abelhas, por outro lado, se comunicam atravs de uma forma de dana
rtmica, que indica, para as abelhas ociosas, a direo e a distncia em que o alimento se
encontra. Quanto maior a durao e mais frequente a dana feita, melhor a fonte de
comida. Mesmo que as abelhas s vejam uma nica dana antes de partirem rumo ao alimento
e, alm do mais, tendo em vista a inexistncia de um dispositivo que determine o controle
central da qualidade do alimento encontrado por todas elas, ainda assim os agentes coletivos
so capazes de perceber as diferenas no ambiente e aperfeioar a coleta de comida.
tambm conhecido como sinergia esse comportamento de trabalho ou esforo
conjunto de vrios subsistemas para realizao de uma tarefa complexa. De forma genrica,
pode ser definido como o efeito resultante da ao de vrios agentes, que atuam da mesma
forma, tendo valor da ao conjunta resultante mais significativo que a mera atuao
individual.


2.5.2.1. COLNIA DE FORMIGAS


As formigas so insetos sociais que possuem um complexo sistema de
organizao e diviso de tarefas, tendo como funo principal a garantia da sobrevivncia do
formigueiro. Organismos aparentemente simples, formigas podem lidar com tarefas
complexas agindo coletivamente.
Em uma colnia de formigas, cada uma delas um indivduo independente agindo
sem a presena de uma autoridade ou outro indivduo que coordene suas atividades. Esta
caracterstica apropriada para o desenvolvimento de um algoritmo distribudo. Isso porque,
cada indivduo pode ser representado por um processo distinto e independente. Mesmo com
uma anarquia aparente, pela ausncia de um controle centralizado, a colnia de formigas
possui uma organizao, como se existisse um governo central.
54



Os indivduos (operrios) de uma colnia de formigas (DORIGO, 1992),
normalmente, s realizam um conjunto de tarefas definido de acordo com determinadas
condies. Podemos citar como exemplo, entre as vrias condies, a morfologia e a idade do
indivduo. Pode-se dizer que mais eficiente a diviso de trabalho entre os indivduos da
colnia, onde diferentes atividades so realizadas, simultaneamente, por grupos de indivduos
especializados, do que se as mesmas tarefas fossem realizadas por indivduos no
especializados e de forma sequencial.
A capacidade de organizao e de especializao encontrada nas colnias de
formigas soluciona vrios dos seus problemas dirios. Esses problemas incluem basicamente
encontrar comida, alimentar a populao, dividir as tarefas eficientemente entre os indivduos,
alm de responder a mudanas externas entre outros.
Muitos desses problemas so semelhantes aos encontrados nas Engenharias ou na
Cincia da Computao. Uma das caractersticas mais importantes destes indivduos
capacidade de poder solucionar seus problemas de forma flexvel e robusta.
A partir de estudos de Inteligncia Coletiva desenvolveu-se uma metaheurstica,
chamada de Ant Colony Optimization (ACO). Esta metaheurstica, originada nos trabalhos de
DORIGO et al. (1991) que props o algoritmo Ant System (AS) para solucionar o Problema
do Caixeiro Viajante, baseada no comportamento de colnia de formigas. A resoluo de
problemas por uma colnia de formigas emerge da comunicao indireta de cada formiga com
o ambiente.
A metaheurstica ACO inspirou-se numa experincia com formigas reais que
consistiu na submisso de uma colnia de formigas Iridomyrmex humilis a uma fonte de
alimento atravs de dois caminhos distintos (GOSS et al., 1989), um caminho utilizando duas
pontes de mesmo comprimento conforme exemplifica a Figura 12 e o outro caminho utilizava
duas pontes de comprimentos diferentes conforme ilustra a Figura 13.
Inicialmente, elas exploram, aleatoriamente, a rea ao redor do formigueiro
procura de comida. Enquanto se deslocam, depositam sobre o solo uma substncia voltil
chamada feromnio (designao genrica de substncias secretadas pelas formigas que
servem de meio de comunicao entre elas), que as auxilia a encontrar o caminho de volta ao
formigueiro. Desta forma, quando uma formiga estabelece uma trilha ou caminho entre a
fonte de alimento e o formigueiro, o caminho percorrido ficar marcado por um rastro desta
substncia. As demais formigas procura de alimento detectam a presena de feromnio no
solo e tendem a escolher o caminho com a maior concentrao do mesmo, este processo
55



descrito at agora chamado de estigmergia (do ingls stigmergy)
3
. As formigas que
escolheram o caminho mais curto faro o percurso em menor tempo e o rastro de feromnio
ser reforado com uma frequncia maior que nos caminhos mais longos. Assim, os caminhos
mais eficientes, ou seja, de menor distncia percorrida, recebero maior quantidade de
feromnio e tendero a serem os mais escolhidos. Por ser uma substncia voltil, a
evaporao do feromnio evita que, com o tempo, um caminho que no esteja sendo mais
utilizado continue a influenciar a deciso das formigas. Por este processo de busca, formigas
so capazes de encontrar o menor caminho de uma fonte de comida para o seu ninho
(DORIGO & GAMBARDELLA, 1997).
A essncia dos algoritmos ACO a combinao de informaes sobre a estrutura
do problema, conhecidas a priori e imutveis, com as informaes obtidas a partir dos
resultados gerados, conhecidas a posteriori e dinmicas. Esta combinao de informaes
ajuda na convergncia dos resultados e torna o processo auto-cataltico, ou seja, se alimenta
dos prprios dados gerados. Outra grande vantagem dos algoritmos ACO a facilidade com
que pode ser paralelizado computacionalmente.


Figura 12: Exemplo do caminho entre o ninho e a fonte de alimento usando duas pontes de comprimento idnticas na
experincia com formigas reais (GOSS et al., 1989).


3
So as formas de interaes indiretas entre os indivduos de uma colnia que ocorrem quando um deles
modifica de alguma forma o ambiente e, algum tempo depois, outro indivduo responde a essa modificao.
56




Figura 13: Exemplo do caminho entre o ninho e a fonte de alimento usando duas pontes de comprimento diferentes na
experincia com formigas reais (GOSS et al., 1989).


Podem-se determinar as seguintes caractersticas desta metaheurstica:
um algoritmo no determinstico baseado em mecanismos presentes na
natureza, isto , baseado no comportamento de formigas para determinao de
caminhos para procura eficiente de fontes de alimento;
um algoritmo paralelo e adaptativo, pois uma populao de formigas move-se
simultaneamente, de forma independente;
um algoritmo cooperativo, pois cada formiga escolhe um caminho com base na
informao (feromnio) depositada por outras formigas que tenham selecionado
previamente o mesmo caminho.

De acordo com BONABEAU et al. (1999), os algoritmos baseados em Colnia de
Formigas so um dos mais bem sucedidos exemplos de Inteligncia Coletiva e tm sido
aplicado em diversas classes de problemas combinatoriais, como, o problema do caixeiro
viajante, problema do quadrtico de alocao, problema de agendamento (scheduling),
roteamento de veculos, roteamento de redes, colorao de grafos, etc. Enfim, qualquer
problema cujos componentes de soluo possam ser modelados com um grafo completamente
conectado pode ser resolvido com grandes chances de sucesso pelos algoritmos de ACO.



57



2.5.2.1.1. IMPLEMENTAO E MODELAGEM MATEMTICA


A ACO foi desenvolvida para tratar de problemas em que se deseja descobrir o
caminho de custo mnimo em um grafo G = (C, L, W), contanto que estes caminhos sejam
viveis segundo as restries O (C, L, ), definidas abaixo.
O grafo G = (C, L, W) e as restries O (C, L, ), que juntos representam de
maneira geral um problema de otimizao discreto, so definidos da seguinte forma
(DORIGO & CARO, 1999):
C = {c
1
, c
2
,...,

} conjunto finito de n
c
componentes do problema, conjunto
de ns do grafo;
L = {

| c
i
, c
j
e C} o conjunto finito de possveis arrestas entre os
elementos de C;
W o conjunto de pesos associados, ou a C ou a L, ou a ambos. Por exemplo, a
distncia d
ij
das arestas (i, j) e L;
O (C, L, ) o conjunto finito de restries atribudas aos elementos de C e L,
com indicando que mudanas de restrio podero ocorrer ao longo do tempo. Por exemplo,
determinar que cada n possa ser visitado uma nica vez;
Os estados do problema so definidos por seqncias s = <a
1
, a
2
,..., a
k
,...>,
com a
i
= c
k
e C, k = 1,..., n
c
;
Caso c
1
seja o ltimo componente do estado s
1
, ento um estado s
2
dito
vizinho a s
1
, se somente se, - c
2
e C | (

e L) . (s
2
= <s
1
, c
2
>);
Caso a sequncia s = <a
1
, a
2
,..., a
k
>, (a
i
, a
i
+1) e L, seja vivel por satisfazer
as restries O (C, L, ), ento esta sequncia constituir uma soluo vivel do problema
abordado;
S conjunto de todas as solues viveis do problema;
A cada soluo vivel est associado um custo J() dado em funo dos
custos J(

, ) das arrestas

e , ou dos custos J(c


i
, ) dos componentes c
i
e C, ou de
ambos.
Em um algoritmo ACO, as formigas constroem solues para o problema
representado por G e O de forma incremental. Cada formiga k parte de uma soluo parcial

k
(1) composta de um nico elemento pertencente a C, e segue adicionando novos elementos
58



a
k
(h) at alcanar uma soluo vivel . A notao
k
(h) representa a soluo atual parcial
construda em h passos pela formiga k, logo composta por h elementos pertencentes a C. Os
componentes candidatos adio em
k
(h) so aleatoriamente selecionados a partir de uma
vizinhana apropriadamente definida em torno do ltimo elemento de
k
(h). Esta escolha
aleatria e feita aplicando-se uma poltica de deciso que faz uso de informaes locais
relacionadas aos vrtices e/ou conexes visitadas. Aps construir, ou enquanto constri, a
soluo vivel , a formiga deposita feromnio sobre os componentes e/ou arestas visitadas,
segundo a qualidade da soluo encontrada, ou que vem sendo encontrada. Este feromnio
depositado pela formiga o que influenciar a construo da soluo dos demais.
O mtodo de otimizao baseado em colnia de formigas leva em conta as
seguintes consideraes (DORIGO & CARO, 1999):
1. A meta de uma formiga a busca por solues viveis de custo J()
mnimo;
2. Uma formiga k tem uma memria M
k
que armazena o caminho at ento
percorrido. A memria pode ser usada para: (i) construir solues viveis; (ii) avaliar a
soluo encontrada; e (iii) retornar pelo mesmo caminho percorrido;
3. Uma formiga k no estado s
r
= <s
r-1
, i> pode mover-se para qualquer n j,
contanto que este n pertena vizinhana N
i
do n i em que se encontra. Alm disso, a
viabilidade com o estado s
r
deve ser mantida. Ou seja, j deve pertencer a

sendo

= {j |
(j e N
i
) . (<s
r
, j> e S)};
4. Uma formiga k sobre o n i seleciona o n j e

segundo uma regra de


deciso probabilstica;
5. Pode-se atribuir um estado inicial

a uma formiga k, assim como uma ou


mais condies e
k
de parada;
6. As formigas partem de seus respectivos estados iniciais em direo a um
estado vizinho vivel, e assim sucessivamente, at que pelo menos uma condio de parada e
k

seja alcanada por alguma formiga k;
7. medida que se move do n i para seu vizinho j, a formiga pode atualizar a
trilha de feromnio t
ij
sobre a aresta (i, j). Este processo denomina-se atualizao de
feromnio passo-a-passo (online step-by-step pheromone update);
8. Uma vez construda uma soluo, a formiga pode, ao retornar pelo caminho
inverso ao percorrido, atualizar a trilha de feromnio. Este processo denomina-se atualizao
de feromnio com atraso (online delayed pheromone update).
59



Para SOCHA & DORIGO (2008), o ACO consiste de trs algoritmos que formam
a construo do ScheduleActivities (agendamento de atividades). O pseudocdigo que
descreve a metaheurstica ACO est descrito na Figura 14.


Figura 14: Pseudocdigo da metaheurstica ACO.


2.5.2.1.2. CONSTRUO DE SOLUES (CONSTRUCT ANT SOLUTIONS)


Um conjunto de m formigas artificiais constroem solues a partir de elementos
de um conjunto finito de solues disponveis em C = {c
ij
}; i = 1, ... ,n; j = 1, ... ,|D
i
|. A
construo das solues comea com uma soluo parcial vazia s
p
= . Ento, a cada passo
da construo, a soluo parcial atual s
p
estendida pela adio de um componente da soluo
vivel a partir do conjunto de vizinhos viveis N(s
p
) _ C. O processo de construo de
solues pode ser considerado como um caminho para a construo do grafo G (C, L). Os
caminhos permitidos em G so implicitamente definidos pelo mecanismo de construo da
soluo que define o conjunto N(s
p
) com relao a uma soluo parcial s
p
.
A escolha de um componente da soluo N(s
p
) feito probabilisticamente em
cada etapa da construo com base na informao de feromnio e na informao heurstica.
As regras exatas para a escolha probabilstica de componentes da soluo variam entre as
diferentes verses da ACO.

2.5.2.1.3. AES GLOBAIS (DAEMON ACTIONS)


Uma vez que as solues foram construdas, e antes de atualizar os valores de
feromnio, muitas vezes, algumas aes especficas de problemas podem ser necessrias.
Estas so chamadas Aes Globais ou DaemonActions, e podem ser usadas para implementar
Iniciar parmetros, iniciar rastros de feromnio

Agendar Atividades
Construo de Solues
Aes Globais [Opcional]
Atualizao dos Feromnios
Fim do Agendamento
60



um problema especfico e/ou aes centralizadas, o que no pode ser realizado por uma nica
formiga. Essa fase opcional. As aes globais mais utilizadas consistem na aplicao de
uma busca local para a construo de solues: as solues localmente otimizadas so ento
utilizadas para decidir quais os valores de feromnio para atualizao.


2.5.2.1.4. ATUALIZAO DOS FEROMNIOS (UPDATE PHEROMONES)


Essa etapa envolve tanto o depsito de feromnio, quanto a evaporao de
feromnio. As formigas podem depositar feromnio aps cada passo da construo, o que
acontece na fase de construo da soluo. No entanto, a formiga tambm pode depositar
feromnio aps construir uma soluo completa, o que pode ser feito nesta terceira fase do
algoritmo. Alm disso, para evitar uma convergncia muito precoce do ACO, ou que ele fique
preso em um timo local, o feromnio depositado deve evaporar ao longo do tempo. Essa
atividade tambm realizada nesta etapa e atravs dela obtemos um efeito de diversificao.
Diferentes algoritmos de ACO utilizam diferentes maneiras de atualizao do
feromnio.


2.5.2.1.5. COMPARAO ENTRE FORMIGAS REAIS E FORMIGAS ARTIFICIAIS


As formigas artificiais criadas por Dorigo possuem semelhanas e diferenas
com relao s formigas reais encontradas na natureza. Para DORIGO e CARO (1999),
entre as semelhanas encontradas, destacam-se:
Cooperao: tanto na natureza quanto no mundo virtual as formigas cooperam
entre si atravs da deposio e remoo do feromnio;
Modificaes no ambiente: o feromnio depositado pelas formigas atua nas duas
realidades, modificando o ambiente e, consequentemente, fixando o aprendizado
gerado pelas formigas;
Objetivos: as formigas virtuais ou reais partilham alguns objetivos em comum,
como encontrar o caminho mais curto;
61



Inteligncia / Coletividade: nas duas realidades, a inteligncia obtida atravs da
coletividade, pois o comportamento individual insuficiente ou aleatrio;
Comportamento estocstico: a forma probabilstica caracterstica as duas
realidades.

Entretanto, existem vrias diferenas entre as formigas reais e as criadas por
Dorigo. As principais so:
Tipo de Movimento: nas formigas reais, os movimentos so contnuos, enquanto
nas artificiais so discretos;
Memria: as formigas reais no possuem uma estrutura de memria como no caso
das virtuais, que as impea de realizar movimentos.
Feromnio: o depsito de feromnio no mundo artificial ocorre com base na
qualidade da soluo encontrada.


2.5.2.1.6. ANT SYSTEM


O algoritmo S-ACO, Simple-ACO ou AS, foi o primeiro algoritmo baseado no
comportamento de formigas a ser desenvolvido por Marco Dorigo, na dcada de 1990
(DORIGO e STTZLE, 2004). Ele adaptou o comportamento das formigas reais para a
obteno da soluo, por meio de grafos para o problema do caixeiro viajante. Embora o seu
desempenho no seja suficiente para competir com os melhores algoritmos propostos para
resolver o TSP, ele usado como ponto de partida para a formulao de outros algoritmos
ACO.
Inicialmente, na construo da soluo, m formigas so distribudas pelos ns
possveis seguindo algum critrio pr-estabelecido, e todos os caminhos (i, j) e G so
inicializados com a mesma quantidade t
ij
> 0 de feromnio. A quantidade inicial de
feromnio (t
0
) constante para todos os arcos ou arestas. Em seguida, cada formiga k (k =
1,...,m) seleciona o prximo n, dentre os possveis, para ser visitado.
As probabilidades

nas quais ocorrem as decises para uma formiga k percorrer


a conexo ij, so dadas pela Equao (4) (DORIGO e STTZLE, 2004)

62



[t

]
o
[q

]
|
[t

]
o
[q

]
|
e

(4)

Onde, o e | so parmetros para indicar respectivamente a relevncia do
feromnio e da informao heurstica. t
ij
a quantidade de feromnio na aresta ij, q
ij
o
inverso de d
ij
que o custo ou atratividade da aresta ij e

o conjunto dos prximos ns


viveis.
O AS no realiza nenhuma ao global, nem busca local. Assim a prxima fase,
aps a construo da soluo, a atualizao de feromnio, que envolve tanto o incremento
do feromnio, quanto a sua evaporao e realizado por todas as formigas. A atualizao e
definida pela Equao (5).

t

( ) ( ) t

() At

()

(5)

Sendo At

()

()
, onde, t representa a interao atual, um parmetro
para controlar a taxa de evaporao do feromnio, m o nmero de formigas, Q uma
constante do projeto (geralmente igual a 1), L
k
(t) o custo do caminho percorrido pela
formiga.
Todos os procedimentos citados at aqui sero repetidos a cada iterao e quando
o critrio de parada for alcanado a heurstica AS retorna a melhor soluo encontrada at o
instante.
Como se pode notar h vrios parmetros que devem ser ajustados para alcanar
um melhor desempenho com AS, obtendo um bom equilbrio entre intensificao e
diversificao.
O o deve ser maior que 0 (zero). Sendo seu valor alto, isto significa que o
feromnio muito importante e as formigas tendero a escolher caminhos percorridos mais
vezes no passado, no entanto, sendo este alto demais pode provocar a estagnao precoce do
algoritmo num mximo/mnimo local. Se o valor for baixo, a construo tende a se comportar
de maneira semelhante a uma construo gulosa aleatria (DORIGO et al., 1996).
Por sua vez, o valor de | reflete o grau de importncia da informao heurstica,
que se pode dizer ser inversa em relao ao valor de o. Um valor muito baixo provocaria
63



estagnao precoce do algoritmo e um valor alto demais o aproxima de uma construo
gulosa. O ajuste deste parmetro importante para se obter uma boa diversificao.
Normalmente, m=n, ou seja, a quantidade de formigas igual quantidade de
componentes do problema (por exemplo, nmero de cidades no problema do caixeiro
viajante). Um nmero maior de formigas eleva o desempenho do algoritmo, porm, aumenta
o tempo de processamento.
O valor de deve ser ajustado de forma que 0 < s 1, pois, do contrrio, haver
um acumulao ilimitada de feromnio, prejudicando a busca por todo o espao de solues.
Por fim, prope-se inicializar o feromnio de todas as arestas por t

,
onde L
nn
o custo de uma construo puramente gulosa aleatria e n quantidade de
componentes do problema.


2.5.2.1.7. ANT COLONY SYSTEM


O Ant Colony System (ACS) foi proposto com o intuito de ser uma melhoria do
Ant System. Ele possui as seguintes caractersticas que fazem com que essa melhoria de
desempenho acontea:
Utiliza um critrio de seleo mais agressivo;
A evaporao e o depsito de feromnio so alterados somente nos circuitos de
melhor qualidade;
Cada vez que uma formiga percorre um determinado caminho, ela remove parte
do feromnio nele depositado, aumentando assim a explorao de caminhos
diferentes.
Estas alteraes possibilitaram execues com tempos computacionais menores,
alm de encontrar solues factveis timas e apresentar prova de convergncia. Estas razes
determinaram sua escolha para a implementao no problema de otimizao do corrente
trabalho.
Uma das modificaes do ACS em relao ao AS um novo critrio de seleo,
chamado pseudo-aleatrio proporcional, no qual o parmetro q
0
controla se a formao das
solues ser de forma probabilstica ou de forma gulosa. A cada iterao sorteado um
nmero q aleatrio, caso q s q
0
, ento a Equao (6) ser utilizada como critrio de seleo,
64



caso contrrio, ser utilizado o mesmo critrio de seleo do AS, descrito na Equao (4). Os
parmetros q e q
0
so nmeros entre 0 e 1.

[t

]
o
[q

]
|
(6)


A parametrizao do valor de q
0
busca valores em torno da melhor soluo ou
define a explorao de solues alternativas. O parmetro q
0
determina a importncia relativa
da investigao versus a explorao (DORIGO e GAMBARDELLA, 1997). Se q s q
0
,
procede-se uma investigao na qual o elemento com a maior combinao de feromnio e
informao heurstica escolhido. Caso contrrio, se q > q
0
, a explorao de um novo
elemento determinado proporcionalmente sua distribuio probabilstica
(ABACHIZADEH e TAHANI, 2009). Assim como no AS, um valor alto de , que o
parmetro de controle de influncia de feromnio, tende a aumentar a importncia
probabilstica do conhecimento acumulado. E o valor do parmetro influencia a importncia
da caracterstica do problema com o controle da informao heurstica.
O processo de deposio e evaporao do feromnio no ACS foi modificado em
relao ao AS, de modo que a matriz de feromnio seja atualizada de forma global e local. A
atualizao local atua junto construo das solues, onde uma parcela de feromnio
reduzida permitindo a explorao de regies no consideradas e diminuindo a tendncia
estagnao do algoritmo. Segundo ELLABIB et al. (2003), a fase final do algoritmo AS (fase
de evaporao) substituda, no ACS, pela atualizao local do feromnio, com a diferena
de ser aplicada durante a construo das solues. Portanto podemos dizer que cada vez que
um caminho percorrido por uma formiga, ele se torna ligeiramente menos desejvel para as
demais. A forma de atualizao local do feromnio pode ser visto na Equao (7).

t

( ) t

(7)

Onde, um parmetro para controlar a taxa de evaporao do feromnio e t
0
o
valor inicial dos feromnios das arrestas, sendo que os valores destes parmetros so
definidos assim como no algoritmo AS.
65



A atualizao global se faz a cada iterao do algoritmo, e a mesma se processa
tanto com a evaporao quanto com o depsito de feromnio, que so aplicados somente
melhor soluo, ou ao melhor percurso que as formigas encontraram. A aresta correspondente
melhor soluo recebe um reforo de feromnio (DORIGO e GAMBARDELLA, 1997). A
atualizao global dada pela Equao (8). De acordo com DORIGO e GAMBARDELLA
(1997), a atualizao global do ACS evita a lenta convergncia dos resultados, concentrando
as buscas na vizinhana da melhor soluo.

t

( ) t

At

(8)

O valor do feromnio para a melhor soluo da iterao calculado por
At

, onde,

o custo do circuito da melhor soluo da iterao


ou o melhor valor da funo objetivo.
Como se pode notar, o ACS utiliza todos os parmetros utilizados no AS e outros
mais para atender as suas caractersticas especficas. As recomendaes para os ajustes dos
parmetros em comum entre estes dois algoritmos so as mesmas observadas no AS.


66



3. MODELAGEM E DESENVOLVIMENTO


Este captulo apresentar o Sistema de Engenharia de Trfego proposto por MAIA
(2006), mostrar em que componente, dentre os que fazem parte deste sistema de TE, ser
introduzido os algoritmos de otimizao desenvolvidos neste trabalho. Este captulo tambm
apresenta a ferramenta utilizada para construo dos algoritmos. Ser apresentado tambm o
desenvolvimento desses algoritmos de otimizao baseados nas heursticas estudadas de
Algoritmos Genticos e Colnia de Formigas.


3.1. ENGENHARIA DE TRFEGO EM DOMNIO MPLS UTILIZANDO TCNICAS
DE INTELIGNCIA COMPUTACIONAL (MAIA, 2006)


A proposta defendida por MAIA (2006) objetivava desenvolver um sistema de
Engenharia de Trfego, capaz de sustentar trfego misto (dados, voz, vdeo) com QoS na
rede, utilizando MPLS, princpios de Computao Autonmica e tcnicas de Inteligncia
Computacional.
Foram criados algoritmos para descoberta dos caminhos, criao, ativao,
monitorao e re-roteamento das LSPs. Desenvolveu-se tambm um algoritmo para controle
de admisso de conexo (CAC - Connection Admission Control) utilizando reconhecimento e
classificao dos perfis de comportamento de trfego das aplicaes, outro algoritmo para
otimizao dos recursos da rede utilizando AG, e ainda um algoritmo para realizar a
identificao dos enlaces crticos e sinalizar a necessidade de ampliao de suas capacidades
de forma proativa.
A otimizao dos recursos da rede foi planejada para ser efetuada periodicamente.
A meta da otimizao fazer com que as LSPs que atendem as aplicaes, utilizem os
melhores caminhos possveis, efetuando um re-roteamento caso seja preciso. Pois, um
caminho que num determinado momento escolhido como a melhor opo para o
estabelecimento de uma LSP, pode deixar de s-lo dependendo do dinamismo da rede.
O sistema proposto distribudo j que cada roteador de borda toma decises por
si s, pois cada um contm uma unidade de TE; e adaptativo por se ajustar as condies e
alteraes da rede.
67



Conforme mostrado na Figura 15, cada unidade de TE formada pelos seguintes
componentes (MAIA, 2006):
Coletor das aplicaes e requisitos de QoS (CARQ);
Coletor de informaes da rede (CIR);
Coletor e processador de medies de trfego (CPMT);
Construtor de lista preliminar de caminhos mais curtos para as LSPs (CLPC);
Classificador dos caminhos em famlias (CCF);
Identificador de necessidade de LSPs (IANL);
Sistema de Inferncia Nebulosa (SIF);
Mdulo responsvel pela escolha dos caminhos para as LSPs (ECL);
Mdulo responsvel pela criao e ativao das LSPs (CAL).


Figura 15: Componentes do sistema de TE bsico (MAIA, 2006).

A Figura 16 apresenta os componentes do TE aps as incluses dos mdulos
propostos no trabalho de MAIA (2006). O DAV para deteco da vazo de trfego das
aplicaes prioritrias e re-roteamento das LSPs; o CAC para controle de admisso de
conexo; o RCPT para reconhecimento e classificao dos perfis de comportamento de
trfego das aplicaes; o OAG para otimizao dos recursos de rede e o AIEC para
identificao de enlaces crticos.

68




Figura 16: Componentes do sistema de TE proposto por MAIA (2006).

O sistema de TE proposto sem o mdulo de otimizao viabiliza o fornecimento
de QoS fim-a-fim, porm no garante que os recursos de rede sempre estejam sendo utilizados
da melhor forma possvel.
Para melhor entendimento, considere o seguinte exemplo: em um domnio MPLS,
uma LSP criada para encaminhar um trfego de dados, naturalmente, esta LSP utiliza o
menor caminho livre. Em seguida, mais LSPs so criadas para atender outras demandas de
trfego, todos atendendo as necessidades de QoS. Aps algum tempo, o trfego de dados da
primeira LSP criada encerrado, deixando o menor caminho novamente disponvel. Como as
outras LSPs continuam atendendo as necessidades de QoS at o momento o sistema, neste
caso, no realiza o re-roteamento, apesar do sistema no utilizar da forma mais otimizada os
recursos de rede. Sendo assim, o desempenho do sistema seria prejudicado, admitindo-se a
possibilidade de situaes semelhantes ocorrerem com frequncia.
Desta forma, para evitar que situaes parecidas com a descrita acima aconteam,
o mdulo de otimizao dever periodicamente efetuar a otimizao dos recursos da rede.
Para que a otimizao possa ser realizada necessrio que o OAG tenha um conhecimento
prvio de quais so as aplicaes que esto utilizando o domnio MPLS naquele momento e
suas respectivas LSPs. Num sistema de TE sem otimizao, durante o atendimento de uma
determinada solicitao de LSP, verificada a situao da rede e feita a seleo dos caminhos
69



mais curtos que esto em condies de atender a necessidade de QoS da aplicao. O caminho
escolhido aquele que possui o menor valor de custo nebuloso. No caso do sistema de TE
com otimizao o objetivo no a obteno de um conjunto de timas solues individuais,
mas a melhor soluo possvel para o grupo de aplicaes (MAIA, 2006).
O componente ECL o responsvel por preparar a tabela de solues vlidas e a
codificao gentica para utilizao do OAG. A tabela de solues vlidas montada
numerando os caminhos em condies de estabelecer LSPs. A Tabela 2 apresenta uma tabela
hipottica de solues vlidas. A codificao gentica a escolha aleatria de um caminho
para cada LSP para formar uma possvel soluo. A Tabela 3 mostra um exemplo de possvel
soluo.

Tabela 2
Lista de caminhos em condies de estabelecer LSPs para as aplicaes
Aplicao
Nmero do caminho
para a LSP
Vazo desejada
(MBps)
Custo
Nebuloso
Caminhos
possveis
Vdeo0 1 2 80 8_9_10_12

2 2 90 8_11_12
Vdeo1 1 2,1 70 8_12

2 2,1 80 8_9_10_12

3 2,1 90 8_11_12
http0/ftp0 1 2,2 70 8_12

2 2,2 80 8_9_10_12

3 2,2 90 8_11_12
ftp1 1 0,4 70 8_12

2 0,4 80 8_9_10_12

3 0,4 90 8_11_12
Voz 1 0,128 70 8_12

2 0,128 80 8_9_10_12

3 0,128 90 8_11_12
ftp2 1 0,128 50 9_10_12

2 0,128 120 9_8_11_12
ftp3 1 0,128 30 10_12

2 0,128 140 10_9_8_11_12
ftp4 1 0,128 20 11_12
2 0,128 140 11_8_12
Fonte: MAIA (2006)

70



Tabela 3
Exemplo de uma possvel soluo em condies de estabelecer as LSPs para o conjunto
de aplicaes
Vdeo0 Vdeo1 http0/ftp0 ftp1 Voz ftp2 ftp3 ftp4
1 1 2 2 2 1 1 1
Fonte: MAIA (2006)

Este sistema de TE proposto em MAIA (2006) utiliza o software simulador de
redes Network Simulator (ns2) para realizar suas simulaes. O ns2 uma ferramenta
poderosa para configurar simulaes complexas e tambm para comparao de resultados de
pesquisas. Esto implementados no ns2 os protocolos IP, TCP, UDP, FTP, HTTP, alm dos
protocolos de roteamento. Junto com o ns2 distribudo um software para animao da
simulao, o nam (network animator), que pode ser executado aps o trmino da simulao
para a sua visualizao.
Para possibilitar a simulao deste sistema de TE foi necessrio o
desenvolvimento de um conjunto de programas que se interagem e implementam os mdulos
do sistema descritos acima. A Figura 17 apresenta um diagrama que mostra a interao entre
os programas do sistema proposto.
O programa CFLAG.CPP o responsvel pela implementao do mdulo de
otimizao dos recursos de rede. O CFLAG.CPP utilizar os algoritmos desenvolvidos neste
trabalho. Este programa controla e habilita o momento em que o algoritmo de otimizao ser
iniciado, ele tambm que fornece os arquivos com todas as informaes sobre os caminhos
possveis para utilizao no algoritmo de otimizao.
O sistema de TE proposto por MAIA (2006) utiliza um AG no seu mdulo de
otimizao, portanto, o objetivo deste trabalho desenvolver um novo AG e um algoritmo de
Colnia de Formigas que sero utilizados neste mdulo.

71




Figura 17: Interao entre os programas para a simulao do sistema de TE (MAIA, 2006).


3.2. MATLAB


O MATLAB um ambiente de desenvolvimento que integra anlise numrica,
clculo com matrizes, processamento de sinais e criao de grficos. Os comandos do
MATLAB so muito semelhantes forma como se escrevem expresses algbricas, tornando
mais simples seu uso. Podem ser incorporadas as rotinas pr-definidas, pacotes para clculos
especficos, pois esse ambiente possui bibliotecas conhecidas como toolboxes que permite
clculos especficos para diversas reas como Redes Neurais Artificiais, Lgica Nebulosa,
processamento de sinais, etc. (MAIA, 2006).
72



O MATLAB quando carregado apresenta duas janelas, a Janela de Comando
(Command Windows) e Janela Grfica (Graphic Windows). A Janela de Comando ativada
quando se inicializa o MATLAB, e o prompt padro exibido na tela. MATLAB pode ser
usado como um shell interativo de matemtica. Sequncias de comandos podem ser guardadas
em um arquivo de texto, tipicamente utilizando o MATLAB Editor, como um script ou
encapsulado em uma funo, alargando os comandos disponveis.


3.3. IMPLEMENTAO DOS ALGORITMOS DE OTIMIZAO


Nesta seo sero apresentados os mtodos utilizados para implementao dos
algoritmos de otimizao, assim como os valores utilizados como parmetros dos mesmos.
Para o problema proposto por este trabalho, o algoritmo de otimizao tm por
objetivo otimizar os recursos de rede no sistema de TE proposto por MAIA (2006). O
algoritmo apontar, dentre os caminhos possveis de serem estabelecidas LSPs, os
melhores caminhos que atendam os requisitos de QoS de cada aplicao. Para tanto, estes
algoritmos devero minimizar a soma, para todos os caminhos candidatos e para todas as
LSPs, do produto entre o custo nebuloso da cada caminho candidato e a vazo de trfego de
cada LSP. O problema pode ser formulado matematicamente atravs da funo objetivo
apresentada na Equao (9). A vazo desejada pela aplicao prioritria i representada por
i. O custo nebuloso a
ij
indica o grau de adequao do caminho candidato j para encaminhar o
trfego da LSP i. Se o valor do custo nebuloso baixo ento a sua adequao ser alta e vice-
versa (MAIA, 2006).

(9)

A funo objetivo est sujeita a algumas restries, sendo que algumas destas so
tratadas no CFLAG.cpp. Apenas uma restrio utilizada no algoritmo de otimizao, esta
est descrita abaixo:

(10)

73



onde:

= Largura de banda disponvel no caminho candidato j;


G = Conjunto de caminhos disponveis.

Os algoritmos de otimizao utilizaro os arquivos ARQCAMIN.tr, FLUXOS.tr e
MEDENREP.tr que so fornecidos pelo CFLAG.cpp. So nestes arquivos que esto contidas
todas as informaes, a respeito da topologia utilizada e das aplicaes, de que necessitam os
algoritmos para calcular a funo objetivo e para obedecer s restries que o problema est
sujeito.
Nas sees seguintes sero apresentadas as formas de implementao de cada um
dos algoritmos de otimizao que so alvos de estudo deste trabalho, sendo os mesmos,
Algoritmos Genticos e Colnia de Formigas.


3.3.1. ALGORITMO GENTICO


Como visto anteriormente, os AG so algoritmos baseados na gentica e na
seleo natural, e utilizam os princpios fundamentais destas duas reas para definir seus
parmetros e mtodos.
A Tabela 3, apresentada na seo 3.1, nos mostra uma possvel soluo ou
possvel LSP para o sistema de TE, esta mesma representao exemplifica um cromossomo
utilizado no AG. Cada gene desse cromossomo representa um caminho possvel para a
aplicao em questo.
O fitness de cada cromossomo calculado atravs da funo de avaliao
representada matematicamente pela Equao (9).
O algoritmo utiliza uma populao de quarenta indivduos, ou seja, a cada gerao
so institudos 40 novos cromossomos e estes so ento submetidos aos operadores
genticos. A populao inicial definida de forma aleatria seguindo a tabela de solues
vlidas. No presente trabalho, o AG desenvolvido utiliza como critrio de parada o nmero de
geraes, que no caso igual a vinte. Assim sendo ao final de vinte iteraes o algoritmo
cessa sua execuo e retorna a melhor soluo encontrada at o momento.
A Figura 18 apresenta o componente principal do AG, nele est o controle
responsvel por habilitar o incio do algoritmo, a leitura dos arquivos repassados pelo sistema
74



de TE com todas as informaes necessrias, a declarao das variveis e constantes, a
chamada dos procedimentos iniciais, o loop que controla o nmero de geraes, as chamadas
dos demais procedimentos responsveis por implementar os operadores genticos e por fim a
gravao do arquivo com a soluo tima encontrada e a apresentao dos resultados.


function AG_for_TE()
% AG for TE
%
% Este algoritmo implementa um Algoritmo Gentico
% para o arquivos *.tr gerados pelo sistema de TE proposto por MAIA(2006).
% Autor: Samuel Cruz Guimares
% Histrico: Iniciado em 03/2010
% Finalizado em 12/2010

close all;
clear all;
clc;

% Verifica situacao do arquivo habilag.tr.
fid1 = fopen('habilag.tr','r');
Saida = fscanf(fid1,'%d %d');
fclose(fid1);
Saida = Saida';
habilag = Saida;

% Verifica a situacao do recurso compartilhado.
% res = 0 ==> liberado.
% res = 1 ==> bloqueado.
res = lecontrole;

fprintf('\nAguardando autorizacao para ativar AG ........');
while ((habilag(:,2) && ~res) < 1)

% Verifica situacao do arquivo habilag.tr.
fid1 = fopen('habilag.tr','r');
Saida = fscanf(fid1,'%d %d');
fclose(fid1);
Saida = Saida';
habilag = Saida;

% Verifica a situacao do recurso compartilhado.
% res = 0 ==> liberado.
% res = 1 ==> bloqueado.
res = lecontrole;
end

libera = 0;
bloqueia = 1;

% Bloqueia o acesso ao recurso compartilhado.
acesso(bloqueia);

% Desativa o campo ativaag
% Este campo sera ativado novamente pelo CFLAG quando for necessario
% executar novamente o AG
habilag(:,2) = 0;
fid = fopen('habilag.tr','w');
fprintf(fid,'%d %d',habilag);
fclose(fid);


%Inicia a contagem do tempo de execuo
tic;

fprintf('\nAlgoritmo Gentico iniciado.............\n');
75




Figura 18: Componente principal do Algoritmo Gentico
%Nmero de cromossomos
qcrom = 40;
%Nmero de geraes criadas pelo AG
MaxGer = 20;
%Indice de geraes(elitismo)
IG = 0.9;
%Indice de mutao
IndMut = 0.02;
%Vetor auxiliar para gerao dos grficos
vet_menores = zeros(MaxGer, 2);

%Carrega os arquivos ARQCAMIN.tr, FLUXOS.tr E MEDENREP.tr
%e gera um tabela de caminhos e das larguras de banda dos enlaces
[tabcam, larguras_bandas] = carrega_arquivos('arqcamin.tr','fluxos.tr','medenrep.tr');

%Gera uma tabela com a qtde de caminhos por aplicao
%e a qtde de aplicaes
[aplic_cam, qaplic] = NumAplicacoes(tabcam);

%Carrega a populao inicial
crom = PopInicial(aplic_cam,qaplic,qcrom,tabcam,larguras_bandas);

% disp('Primeiros cromossomos:');
% disp(crom);

%Executa a funo de Avaliao
[vet_result, vet_porcentInv, total_porcent] = ExeFunFitness(qaplic,qcrom,crom,tabcam);

%Executa os operadores genticos para todas as geraes
for exe = 1:MaxGer
%Executa a funo de Elitismo
[vet_elite, vet_pais1] = Elite(vet_result,IG,qcrom);

%Executa a funo de Seleo
vet_pais2 = Selecao(vet_pais1,qcrom,IG,total_porcent,vet_porcentInv);

%Executa a funo de Cruzamento
NCrom = Cruzamento(qaplic,qcrom,IG,vet_pais2,vet_elite,crom,tabcam,larguras_bandas);

%Executa a funo de Mutao
crom = Mutacao(NCrom,qcrom,IG,qaplic,IndMut,aplic_cam,tabcam,larguras_bandas);

%Armazena dados para gerar Grficos
vet_menores(exe, 1) = min(vet_result(:,1));
vet_menores(exe, 2) = max(vet_result(:,1));

%Executa a funo de Avaliao
[vet_result, vet_porcentInv, total_porcent] =
ExeFunFitness(qaplic,qcrom,crom,tabcam);
end

[menor_Zx, ind_solotima] = min(vet_result(:,1));

% Grava a melhor solucao no arquivo SOLOTIMA.TR que sera lido depois
% pelo CFLAG.
fid = fopen('solotima.tr','w');
fprintf(fid,'%d',ind_solotima);
fclose(fid);

% Informa ao CFLAG que o AG esta sendo finalizado.
habilag(:,1) = 1;
habilag(:,2) = 0;
fid = fopen('habilag.tr','w');
fprintf(fid,'%d %d',habilag);
fclose(fid);

% Libera o acesso ao recurso compartilhado.
acesso(libera);% End of AG

%Encerra a contagem e exibe o tempo de execuo
termino = toc;
76



A cada gerao do AG, como se pode notar no algoritmo acima, o primeiro
procedimento realizado o calculo do custo (fitness) de cada cromossomo presente na
populao, a funo responsvel por esse procedimento a ExeFunFitness.
De posse do custo de todos os cromossomos, a prxima etapa consiste em realizar
um elitismo, que como descrito neste trabalho, consiste em selecionar uma quantidade de
cromossomos com o menor custo e preserv-los para a gerao seguinte, assim garante-se
que, caso no seja criado um indivduo mais apto na gerao seguinte, a melhor soluo desta
gerao ser igual da gerao anterior. Usando este mecanismo estamos influenciando a
intensificao do algoritmo na zona do espao de busca prximo as melhores solues de
cada gerao. A constante que controla a quantidade de cromossomos que sero mantidos
pelo elitismo o IG, que neste trabalho foi inicializado em 0,9. Deve-se atentar para o valor
desta constante, pois um valor baixo pode levar o algoritmo para uma convergncia
prematura. Esta constante deve possuir um valor entre 0 e 1 (0 s IG s 1) indicando qual o
percentual da populao ir participar dos operadores genticos, o restante da populao ser
preservada. No algoritmo deste trabalho, a populao possui quarenta indivduos e o IG
igual a 0,9, portanto quatro indivduos da populao sero preservados, o que corresponde a
10% do total da populao. Os outros trinta e seis indivduos seguiro pelo restante dos
procedimentos.
O prximo procedimento o operador de seleo. Nele trinta e seis indivduos so
selecionados, dentre os possveis, de forma probabilstica levando-se em considerao o
inverso do custo de cada cromossomo, ou seja, quanto menor o seu custo maior a
probabilidade do cromossomo ser selecionado.
O procedimento seguinte responsvel pelo cruzamento dos cromossomos
selecionados no procedimento anterior. Neste procedimento so escolhidos de forma
seqencial pares de cromossomos que sero chamados de cromossomos pais. O mtodo de
cruzamento escolhido para o desenvolvimento do AG neste trabalho foi o cruzamento de um
ponto, que j teve o seu funcionamento descrito neste mesmo trabalho. Aps a realizao dos
cruzamentos os cromossomos resultantes so denominados de cromossomos filhos e so
encaminhados para a prxima etapa do AG.
A prxima etapa consiste em submeter os cromossomos ao operador de mutao.
A constante que controla o ndice de mutao do algoritmo foi denominada IndMut e foi
inicializada em 0,02. Assim sendo, gerado um nmero aleatrio entre 0 e 1 para cada gene
de todos os cromossomos, caso este nmero seja inferior a constante IndMut o gene em
77



questo alterado para outro valor, dentre os possveis. O operador de mutao contribui para
a diversificao dos indivduos, evitando assim uma convergncia prematura e garantindo a
possibilidade de grande parte do espao de busca ser representado.
Aps a operao de mutao, os cromossomos escolhidos no elitismo so
reinseridos na populao de cromossomos e assim conclumos toda uma gerao do AG. Os
cromossomos resultantes consistem numa nova gerao de indivduos. Estes mesmos
procedimentos se repetiro at que o critrio de parada seja satisfeito, e aps o trmino de
todas as geraes, a melhor soluo encontrada at o momento repassada para o sistema de
TE que tomar as decises cabveis.
Outra importante funo presente neste algoritmo a responsvel por testar se as
solues criadas consistem em uma soluo vlida, levando-se em considerao a restrio
apresentada na Equao (10). Portanto, sempre que uma nova soluo proposta esta
testada pela funo, sendo a mesma utilizada aps a criao dos cromossomos da populao
inicial, aps o operador de cruzamento e aps o operador de mutao.


3.3.2. ALGORITMO DE COLNIA DE FORMIGAS


Este algoritmo inspirado na organizao das formigas em suas colnias, mais
especificamente, na maneira como elas se organizam e se comunicam para encontrar
alimento.
A Tabela 3, que apresenta uma possvel representao de um cromossomo no caso
do AG, no algoritmo de Colnia de Formigas, representa os passos percorridos por um
formiga entre sua colnia e uma fonte de alimentos.
O algoritmo de Colnia de Formigas escolhido para ser implementado neste
trabalho o ACS. Os parmetros iniciais deste algoritmo sero os mais prximos possveis
dos do AG, para que o desempenho dos dois possa ser comparado mais facilmente e com
maior propriedade. Aps os primeiros testes, os valores destes parmetros podero ser
revistos buscando uma maior equivalncia entre os algoritmos, levando-se em conta o tempo
de processamento e as solues encontradas. Sendo assim, o nmero de formigas foi
inicializado com o mesmo nmero de cromossomos do AG, igual a quarenta. O nmero de
iteraes do ACS tambm igual ao nmero de geraes do AG, vinte no total, e este tambm
o parmetro utilizado como critrio de parada.
78



A Figura 19 apresenta a principal parte do algoritmo de Colnia de Formigas.
Podemos observar o controle que habilita o incio do algoritmo, a leitura dos arquivos que
contm as informaes necessrias, a declarao das variveis e constantes, os procedimentos
iniciais, o lao que controla as iteraes e o restante dos procedimentos, e a gravao do
resultado obtido, estrutura esta muito semelhante a do AG, diferenciando-se basicamente
pelos procedimentos diretamente responsveis pela otimizao.


function ACS_for_TE()
% % ACS for TE
% %
% % Este algoritmo implementa um algoritmo de Colnia de Formigas (Ant Colony System -
ACS)
% % para o arquivos *.tr gerados pelo sistema de TE proposto por MAIA(2006).
% % Autor: Samuel Guimares
% % Histrico: Iniciado em 03/2010
% % Finalizado em 12/2010

close all;
clear all;

% Verifica situacao do arquivo habilag.tr.
fid1 = fopen('habilag.tr','r');
Saida = fscanf(fid1,'%d %d');
fclose(fid1);
Saida = Saida';
habilag = Saida;

% Verifica a situacao do recurso compartilhado.
% res = 0 ==> liberado.
% res = 1 ==> bloqueado.
res = lecontrole;

fprintf('\nAguardando autorizacao para ativar AG ........');
while ((habilag(:,2) && ~res) < 1)

% Verifica situacao do arquivo habilag.tr.
fid1 = fopen('habilag.tr','r');
Saida = fscanf(fid1,'%d %d');
fclose(fid1);
Saida = Saida';
habilag = Saida;

% Verifica a situacao do recurso compartilhado.
% res = 0 ==> liberado.
% res = 1 ==> bloqueado.
res = lecontrole;
end

libera = 0;
bloqueia = 1;

% Bloqueia o acesso ao recurso compartilhado.
acesso(bloqueia);

% Desativa o campo ativaag
% Este campo sera ativado novamente pelo CFLAG quando for necessario
% executar novamente o AG
habilag(:,2) = 0;
fid = fopen('habilag.tr','w');
fprintf(fid,'%d %d',habilag);
fclose(fid);
79




%Inicia a contagem do tempo de execuo
tic;

fprintf('\nAlgoritmo Ant Colony System iniciado.............\n');

%Qtde de formigas
m = 40;
%Nmero de iteraes
Num_iteracoes = 20;
%Coeficientes
alpha = 1;
rho = 0.1;
beta = 5;
q0 = 0.2;

%Carrega os arquivos ARQCAMIN.tr, FLUXOS.tr E MEDENREP.tr
%e gera um tabela de caminhos e das larguras de banda dos enlaces
[tabcam, larguras_bandas] = carrega_arquivos('arqcamin.tr','fluxos.tr','medenrep.tr');

%Gera uma tabela com a qtde de caminhos por aplicao
%e a qtde de aplicaes
[aplic_cam, qaplic] = NumAplicacoes(tabcam);

%Tabelas e variavis Auxiliares
auxtau = max(aplic_cam(2,:));
tau = zeros(auxtau,qaplic);
ants = zeros(m,qaplic);
probs = tau;
custo = tau;
aux_passo = 2;
vet_result = zeros(m,2);
vet_max_min = zeros(Num_iteracoes,2);
melhor = zeros(1,qaplic+2);

%Alimenta tabela de feromnio
[tau,tau0] = IniciandoFeromonios(tabcam,qaplic,tau,aplic_cam);
%Alimenta tabela de custos
custo = IniciandoCustoRotas(tabcam,aplic_cam,custo,qaplic);
%Define o primeiro passo de todas as formigas
ants = IniciandoFormigas(m,aplic_cam,ants);
for iteracao = 1:Num_iteracoes
for form = 1:m
form_inviavel = true;
larguras_bandas(:,4) = larguras_bandas(:,3);
while form_inviavel
for passo = aux_passo:qaplic
%Calcula as probabilidades do prximo passo
probs =
CalcularProbabilidades(q0,probs,passo,tau,alpha,beta,custo,aplic_cam);
%Escolhe o proximo passo da formiga
ants = SelecionaProximoPasso(ants,probs,passo,form,aplic_cam);
end
%Testa se a soluo vlida
form_inviavel =
testa_validade_solucao(ants(form,:),tabcam,larguras_bandas,passo);
end
for passo = aux_passo:qaplic
%Realiza a atualizao local dos feromnios
tau = AtualizacaoLocalFeromonio(tau,rho,passo,form,tau0,ants);
end
end
aux_passo = 1;
%Calcula o fitness das formigas
vet_result = CalcularCustoFormigas(vet_result,ants,tabcam,m,qaplic);

vet_max_min(iteracao,1) = min(vet_result(:,1));
vet_max_min(iteracao,2) = max(vet_result(:,1));
[val,ind] = min(vet_result(:,1));
if (val<=melhor(2) | iteracao==1) %#ok<OR2>
melhor(2) = val;
melhor(1) = ind;
melhor(3:qaplic+2) = ants(ind,:);
end
80




Figura 19: Componente principal do algoritmo de colnia de formigas

Inicialmente, so criadas e iniciadas as tabelas de feromnio e de custo dos
caminhos, partindo de uma soluo puramente gulosa, criada aleatoriamente. O feromnio
inicial, t
0
, definido por

, onde L
nn
o custo da soluo gulosa e n quantidade de
aplicaes. Em seguida, inicia-se a construo dos caminhos das formigas, escolhido
aleatoriamente o primeiro passo de cada uma das formigas, dentre os possveis. A partir de
ento, entramos no lao que controla as iteraes do algoritmo.
Para cada uma das formigas, calculada a probabilidade de escolha do prximo
passo. Probabilidade esta calculada pela Equao (4) caso q seja menor que q
0
, caso contrrio
a probabilidade calculada pela Equao (6). Sendo q um nmero entre 0 e 1 sorteado
aleatoriamente, e q
0
uma constante para escolha da equao de probabilidade, que neste
trabalho igual a 0,2. Os demais parmetros das equaes, a relevncia do feromnio e da
informao heurstica, so respectivamente o = 1 e | = 5.
De posse dessas probabilidades, selecionamos o prximo passo das formigas num
processo semelhante ao de seleo do AG, mtodo da roleta. Em seguida efetua-se a
atualizao local de feromnio, que consiste em diminuir o feromnio das arestas que
acabaram de ser selecionadas, tornando-as assim mesmo atraentes para as prximas formigas
e evitando uma estagnao do algoritmo numa parte do espao de busca global. A atualizao
local de feromnio realizada de acordo com a Equao (7), onde o parmetro para controlar
a taxa de evaporao do feromnio = 0,1.
%Realiza a atualizao global dos feromnios
tau = AtualizacaoGlobalFeromonio(tau,ants,melhor,qaplic,rho);
end

menor_Zx = melhor(2); %#ok<NASGU>
ind_solotima = melhor(1);

Grava a melhor solucao no arquivo SOLOTIMA.TR que sera lido depois
pelo CFLAG.
fid = fopen('solotima.tr','w');
fprintf(fid,'%d',ind_solotima);
fclose(fid);


% Informa ao CFLAG que o AG esta sendo finalizado.
habilag(:,1) = 1;
habilag(:,2) = 0;
fid = fopen('habilag.tr','w');
fprintf(fid,'%d %d',habilag);
fclose(fid);
% Libera o acesso ao recurso compartilhado.
acesso(libera);% End of AG for ARQSOL.tr

%Encerra a contagem e exibe o tempo de execuo
termino = toc;
81



Aps a escolha de todos os passos, para todas as formigas, calcula-se ento o
custo de todos os caminhos percorridos pelas formigas atravs da Equao (9). O caminho
que apresentar o menor custo selecionado e armazenado como melhor soluo at o
momento. Nas iteraes futuras as melhores solues encontradas sero comparadas com a
melhor soluo armazenada, caso a soluo encontrada possua menor custo esta substituir a
soluo armazenada.
O procedimento seguinte consiste em efetuar a atualizao global de feromnio,
que obedece a Equao (8). Tal procedimento aumenta a quantidade de feromnio presente
nas arestas que constituem o melhor caminho para aquela iterao. Assim as arestas presentes
no melhor caminho encontrado passam a ser mais atraentes para as formigas nas prximas
iteraes.
Assim como no AG, deve ser destacada a utilizao de uma funo para testar a
validade das solues propostas levando-se em considerao a Equao (10). A cada tentativa
de mudana da soluo a mesma testada para saber se consiste numa soluo vivel, assim
sendo, a cada tentativa de selecionar o prximo passo para uma formiga o caminho percorrido
por ela at o momento e testado por esta funo de validade.
Os procedimentos que acabaram de ser descritos so repetidos por todas as
iteraes, e ao final delas, a melhor soluo ser aquela que se encontra na varivel auxiliar
que armazena a melhor soluo encontrada at o momento. Assim como no AG a melhor
soluo encontrada repassada para o sistema de TE que tomar as decises cabveis.

82




4. RESULTADOS OBTIDOS


Neste captulo sero apresentados os resultados obtidos pelos algoritmos de
otimizao dos recursos de rede na utilizao dos mesmos no sistema de TE proposto por
MAIA (2006). As avaliaes utilizam os arquivos gerados pelo sistema de TE, o algoritmo
habilitado, carrega tais arquivos, executa a otimizao e retorna o resultado com a melhor
soluo encontrada. Os principais indicadores utilizados nas avaliaes foram o tempo de
processamento dos algoritmos de otimizao e o valor da funo objetivo da soluo
encontrada pelos mesmos.


4.1. TOPOLOGIAS UTILIZADAS


Foram utilizadas neste trabalho duas topologias diferentes para simulao, as
mesmas topologias utilizadas no trabalho de MAIA (2006) e com os mesmos objetivos. A
primeira topologia mais simples, portanto, mais fcil de avaliar seu comportamento durante
a simulao. A segunda topologia mais complexa e se assemelha mais com uma situao
real.


4.1.1. TOPOLOGIA I


Esta primeira topologia forma um domnio MPLS contendo cinco ns (LSRs),
alm de outros dezesseis ns, sendo metade ns de origem e a outra metade ns de destino das
aplicaes. A topologia I est apresentada na Figura 20. A disciplina de escalonamento
utilizada nas filas dos LSRs foi a FIFO (First In, First Out).

83




Figura 20: Topologia I de simulao (MAIA, 2006).

Os pargrafos que se seguem detalham esta topologia segundo MAIA (2006).
As oito aplicaes (Video0, Video1, ftp0, ftp1, ftp2, ftp3, ftp4 e Voip) so
conectadas aos respectivos destinos, atravs do domnio MPLS. As aplicaes esto
conectadas aos LSRs atravs de enlaces de 10 MBps e atraso de 1 ms.
O domnio MPLS na topologia I possui trs caminhos alternativos, os quais so
necessrios para realizar a TE. Os cincos LSRs (8, 9, 10, 11 e 12) esto conectados atravs de
enlaces de longa distncia (e consequentemente alto atraso). Os caminhos foram configurados
com as seguintes caractersticas:
Caminho 1: a sequncia de LSRs 8-9-10-12, que possui um atraso mnimo de
90 ms.
Caminho 2: o caminho direto 8-12, que possui um atraso mnimo de 70 ms. Esse
caminho o mais curto, portanto seria o escolhido naturalmente pelos protocolos
de roteamento padro. Este caminho candidato a se transformar num ponto de
congestionamento.
Caminho 3: representado pela sequncia de LSRs 8-11-12, que possui um atraso
mnimo de 90 ms.

84



A sequncia de LSRs de cada caminho pode ser alterada dependendo do LSRs
de entrada no domnio MPLS.
A quantidade de fontes de trfego foi definida de maneira a se verificar o
comportamento da rede e os efeitos da implementao da TE em uma situao controlada.
O sistema foi testado utilizando aplicaes de voz, dados e vdeo. Para gerar os
trfegos das aplicaes de voz foram utilizadas fontes de dados constantes (CBR). Os trfegos
das aplicaes de vdeo foram obtidos com a utilizao de traces reais. No caso das
aplicaes de dados foram utilizadas fontes FTP e traces reais HTTP. As fontes FTP foram
configuradas com pacotes de tamanho de 1000 Bytes. As aplicaes possuem as seguintes
necessidades e caractersticas:
Vdeo0: Vazo mdia 2 MBps e atraso mximo 150ms.
Video1: Foi adotada a vazo de 1.1 MBps. A aplicao foi cadastrada com atraso
mximo de 150ms;
Dados (http0/ftp0 e ftp1): No foram consideradas exigncias, sendo que os
pacotes so encaminhados pelo menor caminho. Foi injetado trfego HTTP obtido
de trace real no n 2. Alm disso, foram configuradas cinquenta fontes de dados
(FTP), sendo vinte originando-se no n 2, e trinta originando-se no n 3. O
momento da ativao destas fontes durante as simulaes foi aleatrio.
Dados (ftp2, ftp3 e ftp4): Destinam-se a gerar trfego de fundo nos caminhos 1 e
3. Foram configuradas trs fontes de dados (FTP) originando-se nos LSRs 9, 10 e
11. Estes dados destinam-se respectivamente aos ns 18, 19 e 20. O momento da
ativao destas fontes foi aleatrio.
Voz: vazo mdia 128 KBps e atraso mximo 150 ms.

Foi realizada uma simulao do sistema de TE utilizando a topologia I. Os
arquivos provenientes desta simulao foram utilizados para os testes com os algoritmos de
otimizao. Os algoritmos de otimizao processam tais arquivos e geram duas tabelas com as
informaes necessrias para execuo da otimizao. Na primeira tabela temos as
informaes sobre os possveis caminhos para todas as aplicaes. A Tabela 4 apresenta estes
caminhos obtidos na simulao. A segunda tabela gerada pelos algoritmos, representada na
Tabela 5, contm as informaes sobre as larguras de banda em cada enlace da topologia,
informaes estas utilizadas para que a restrio apresentada na Equao (10) possa ser
tratada.
85




Tabela 4
Possveis caminhos das aplicaes na simulao da topologia I
Aplicao Caminho
Vazo
Desesjada
(MBps)
Custo
Fuzzy
Prioridade
N de
Origem
N de
Destino
Caminho
1 1 0,140 22,50 0 4 17 4 8 12 17 NaN NaN
1 2 0,140 19,52 1 4 17 4 8 11 12 17 NaN
1 3 0,140 18,83 2 4 17 4 8 9 10 12 17
2 1 1,848 5,73 0 1 14 1 8 12 14 NaN NaN
2 2 1,848 22,50 1 1 14 1 8 11 12 14 NaN
2 3 1,848 22,50 2 1 14 1 8 9 10 12 14
3 1 0,400 30,00 0 3 16 3 8 12 16 NaN NaN
3 2 0,400 30,00 1 3 16 3 8 11 12 16 NaN
3 3 0,400 30,00 2 3 16 3 8 9 10 12 16
4 1 0,256 30,00 0 2 15 2 8 12 15 NaN NaN
4 2 0,256 30,00 1 2 15 2 8 11 12 15 NaN
4 3 0,256 30,00 2 2 15 2 8 9 10 12 15
5 1 2,058 17,90 0 0 13 0 8 12 13 NaN NaN
5 2 2,058 16,97 1 0 13 0 8 11 12 13 NaN
5 3 2,058 15,96 2 0 13 0 8 9 10 12 13
6 1 0,128 30,00 0 7 20 7 11 12 20 NaN NaN
7 1 0,128 30,00 0 5 18 5 9 10 12 18 NaN
8 1 0,128 30,00 0 6 19 6 10 12 19 NaN NaN
Fonte prpria

Tabela 5
Larguras de banda dos enlaces na topologia I
(Continua)
N de Origem N de Destino Largura de Banda
0 8 10
1 8 10
2 8 10
3 8 10
4 8 10
8 9 4
9 10 4
10 12 4
8 12 2,5
8 11 4
11 12 4
7 11 10
5 9 10
6 10 10
12 13 10
12 14 10
86




(Concluso)
N de Origem N de Destino Largura de Banda
12 15 10
12 16 10
12 17 10
12 18 10
12 19 10
12 20 10
Fonte prpria


4.1.2. TOPOLOGIA II


Esta segunda topologia de domnio MPLS composta por dezesseis LSRs, sendo
que destes, dez so LSRs de borda, denominados LERs. O restante so LSRs internos,
responsveis por encaminhar os pacotes para o prximo salto. A Figura 21 traz a
representao desta topologia. Assim como na topologia I, a disciplina de escalonamento
utilizada nas filas dos LSRs foi a FIFO.


Figura 21: Topologia II de simulao (MAIA, 2006).
87




Igualmente topologia I, as aplicaes tanto na origem, como no destino esto
conectadas aos LSRs do domnio atravs de enlaces de 10 MBps e atraso de 1 ms. A Tabela
6 mostra as caractersticas dos enlaces que compem o domnio MPLS na topologia II.

Tabela 6
Caractersticas dos enlaces do domnio MPLS na topologia II
LSR de origem LSR de destino
Largura de banda
(MBps)
Atraso mnimo
(ms)
14 15 4,80 30
14 16 4,00 20
14 20 6,00 30
15 21 6,00 20
16 20 8,00 20
17 16 6,00 20
17 18 6,00 10
17 19 8,00 30
17 25 6,00 10
18 26 6,00 10
19 20 6,00 20
19 23 7,00 20
19 24 5,00 20
19 25 7,00 40
20 21 6,00 20
20 22 6,00 10
20 23 8,00 10
21 22 5,00 20
22 29 6,00 10
23 22 6,00 20
23 24 6,00 10
23 28 4,80 20
23 29 6,00 20
25 24 6,00 30
24 27 4,50 30
24 28 4,50 10
25 26 6,00 30
25 27 6,00 10
26 27 6,00 10
27 28 6,00 80
Fonte prpria

A exemplo do que foi realizada na topologia I, o sistema de TE foi simulado na
topologia II utilizando aplicaes de voz, dados e vdeo. Para gerar os trfegos das aplicaes
88



de voz foram utilizadas fontes de dados constantes (CBR). Os trfegos das aplicaes de
vdeo foram obtidos com a utilizao de traces reais. No caso das aplicaes de dados foram
utilizadas fontes FTP e traces reais HTTP, sendo que o momento da ativao destas fontes
durante as simulaes foi aleatrio. As fontes FTP foram configuradas com pacotes de
tamanho de 1000 Bytes. A Tabela 7 apresenta as necessidades e caractersticas das aplicaes
utilizadas nas avaliaes da funo de TE.

Tabela 7
Necessidades e caractersticas das aplicaes de dados, voz e vdeo
Aplicao Origem Destino Vazo (MBps) Atraso (ms) Prioridade
dados (ftp0) 0 49 - - 0
dados (ftp1) 1 33 - - 0
vdeo0 2 51 2.20 < 150 0
vdeo1 3 50 1.20 < 150 5
dados (ftp2) 4 37 - - 0
dados (ftp3) 31 36 - - 0
dados (ftp4) 32 46 - - 0
voz0 5 48 0.128 < 150 5
voz1 6 47 0.128 < 150 5
dados (ftp5) 7 34 - - 0
vdeo2 8 44 1.20 < 150 5
vdeo3 9 43 1.20 < 150 0
voz2 11 41 0.128 < 150 5
dados (ftp6) 10 42 - - 0
voz3 12 40 0.128 < 150 5
dados (ftp7) 13 39 - - 0
dados (ftp8) 30 45 - - 0
Fonte: MAIA (2006)

Igualmente topologia I, foi realizada uma simulao do sistema de TE utilizando
a topologia II. Os arquivos gerados durante esta simulao serviram de base para os testes
com os algoritmos de otimizao. As mesmas duas tabelas geradas pelo algoritmo de
otimizao para a topologia I, tambm so geradas para a topologia II, com base nos arquivos
provenientes do sistema de TE. Na primeira tabela temos as informaes sobre os possveis
caminhos para todas as aplicaes, esta est representada na Tabela 8.


89



Tabela 8
Possveis caminhos das aplicaes na simulao da topologia II
(Continua)
Aplicao Caminho
Vazo
Desesjada
(MBps)
Custo
Fuzzy
Prioridade
N de
Origem
N de
Destino
Caminho
1 1 0,512 16,38 0 12 40 12 14 20 22 29 40 NaN NaN
1 2 0,512 8,21 1 12 40 12 14 20 23 29 40 NaN NaN
1 3 0,512 23,50 2 12 40 12 14 15 21 22 29 40 NaN
2 1 0,128 28,00 0 11 41 11 14 20 22 29 41 NaN NaN
2 2 0,128 20,50 1 11 41 11 14 20 23 29 41 NaN NaN
2 3 0,128 19,18 2 11 41 11 14 15 21 22 29 41 NaN
3 1 0,128 30,00 0 5 48 5 17 25 27 48 NaN NaN NaN
3 2 0,128 22,34 1 5 48 5 17 18 26 27 48 NaN NaN
3 3 0,128 17,82 2 5 48 5 17 19 25 27 48 NaN NaN
4 1 1,200 30,00 0 9 43 9 14 20 22 29 43 NaN NaN
4 2 1,200 29,50 1 9 43 9 14 20 23 29 43 NaN NaN
4 3 1,200 22,50 2 9 43 9 14 15 21 22 29 43 NaN
5 1 0,128 12,30 0 6 47 6 17 25 27 47 NaN NaN NaN
5 2 0,128 22,50 1 6 47 6 17 18 26 27 47 NaN NaN
5 3 0,128 19,70 2 6 47 6 17 19 25 27 47 NaN NaN
6 1 1,200 22,50 0 8 44 8 14 20 22 44 NaN NaN NaN
6 2 1,200 20,50 1 8 44 8 14 16 20 22 44 NaN NaN
6 3 1,200 22,50 2 8 44 8 14 15 21 22 44 NaN NaN
7 1 2,300 8,07 0 2 51 2 17 25 24 28 51 NaN NaN
7 2 2,300 5,12 1 2 51 2 17 16 20 23 28 51 NaN
7 3 2,300 7,03 2 2 51 2 17 19 23 28 51 NaN NaN
8 1 2,128 30,00 0 4 37 4 17 16 20 21 37 NaN NaN
8 2 2,128 30,00 1 4 37 4 17 19 20 21 37 NaN NaN
8 3 2,128 30,00 2 4 37 4 17 19 23 20 21 37 NaN
9 1 2,128 28,00 0 32 46 32 18 17 25 24 28 46 NaN
9 2 2,128 27,00 1 32 46 32 18 26 25 24 28 46 NaN
9 3 2,128 26,00 2 32 46 32 18 26 27 24 28 46 NaN
10 1 1,128 30,00 0 1 33 1 17 25 26 33 NaN NaN NaN
10 2 1,128 30,00 1 1 33 1 17 18 26 33 NaN NaN NaN
10 3 1,128 30,00 2 1 33 1 17 19 25 26 33 NaN NaN
11 1 2,208 30,00 0 31 36 31 18 17 16 20 21 36 NaN
11 2 2,208 30,00 1 31 36 31 18 17 19 20 21 36 NaN
11 3 2,208 30,00 2 31 36 31 18 17 25 19 20 21 36
12 1 2,132 13,02 0 13 39 13 14 20 22 39 NaN NaN NaN
12 2 2,132 13,01 1 13 39 13 14 16 20 22 39 NaN NaN
12 3 2,132 13,04 2 13 39 13 14 15 21 22 39 NaN NaN
13 1 2,128 19,00 0 7 34 7 14 16 17 25 26 34 NaN
13 2 2,128 19,00 1 7 34 7 14 20 19 25 26 34 NaN
13 3 2,128 18,00 2 7 34 7 14 20 23 19 25 26 34
14 1 2,132 15,10 0 10 42 10 14 20 22 29 42 NaN NaN
90



(Concluso)
Aplicao Caminho
Vazo
Desesjada
(MBps)
Custo
Fuzzy
Prioridade
N de
Origem
N de
Destino
Caminho
14 2 2,132 15,20 1 10 42 10 14 20 23 29 42 NaN NaN
14 3 2,132 15,30 2 10 42 10 14 15 21 22 29 42 NaN
15 1 2,208 23,34 0 0 49 0 17 25 27 49 NaN NaN NaN
15 2 2,208 25,00 1 0 49 0 17 18 26 27 49 NaN NaN
15 3 2,208 5,56 2 0 49 0 17 19 25 27 49 NaN NaN
16 1 2,208 13,98 0 30 45 30 15 21 20 23 28 45 NaN
16 2 2,208 15,46 1 30 45 30 15 21 22 20 23 28 45
16 3 2,208 12,34 2 30 45 30 15 21 22 23 28 45 NaN
17 1 1,517 15,65 0 3 50 3 17 25 27 50 NaN NaN NaN
17 2 1,517 7,02 1 3 50 3 17 18 26 27 50 NaN NaN
17 3 1,517 28,00 2 3 50 3 17 19 25 27 50 NaN NaN
Fonte prpria

A segunda tabela, representada na Tabela 9, contm as informaes sobre as
larguras de banda em cada enlace da topologia, informaes estas utilizadas para que a
restrio apresentada na Equao (10) possa ser tratada.

Tabela 9
Larguras de banda dos enlaces na topologia I (Continua)
N de Origem N de Destino Largura de Banda
7 14 10
8 14 10
9 14 10
10 14 10
11 14 10
12 14 10
13 14 10
30 15 10
14 15 4,8
14 16 4
14 20 6
15 21 6
16 20 8
0 17 10
1 17 10
2 17 10
3 17 10
4 17 10
5 17 10
6 17 10
17 16 6
17 18 6
17 19 8
31 18 10
32 18 10
17 25 6
18 26 6
91



(Concluso)
N de Origem N de Destino Largura de Banda
19 20 6
19 23 7
19 25 7
20 21 6
20 22 6
20 23 8
21 36 10
21 37 10
21 22 5
19 24 5
22 39 10
23 22 6
22 29 6
23 24 6
25 24 6
24 27 4,5
24 28 4,5
23 29 6
25 26 6
26 33 10
26 34 10
25 27 6
26 27 6
27 28 6
27 47 10
27 48 10
27 49 10
27 50 10
28 51 10
28 45 10
28 46 10
23 28 4,8
29 40 10
29 41 10
29 42 10
29 43 10
22 44 10
Fonte prpria


4.2. RESULTADOS DA IMPLEMENTAO DOS ALGORITMOS DE
OTIMIZAO PARA OS ARQUIVOS DO SISTEMA DE TE


Conforme j mencionado neste trabalho, o objetivo dos algoritmos de otimizar
os recursos de rede em um domnio MPLS. Esta otimizao foi planejada para ser efetuada
periodicamente. Um caminho que num determinado momento escolhido como a melhor
opo para o estabelecimento de uma LSP, pode deixar de s-lo dependendo das alteraes
ocorridas na rede. A otimizao objetiva fazer com que as LSPs que atendem as aplicaes,
92



utilizem os melhores caminhos possveis; se preciso for, re-rotear as aplicaes criando novas
LSPs que continuem atendendo as necessidades de QoS, porm de maneira mais otimizada.
Nas simulaes efetuadas no sistema de TE proposto por MAIA (2006), o
algoritmo de otimizao chamado e executado na quarta simulao da topologia.
Nas sees seguintes sero vistos os resultados obtidos nas simulaes do sistema
de TE nas topologias I e II, utilizando os arquivos gerados nestas simulaes e os algoritmos
desenvolvidos neste trabalho.


4.2.1. RESULTADOS DA IMPLEMENTAO DO ALGORITMO GENTICO NA
TOPOLOGIA I


Aps a realizao da simulao do sistema de TE proposto por MAIA (2006)
utilizando a topologia I, os arquivos ARQCAMIN.tr, FLUXOS.tr e MEDENREP.tr gerados
so ento utilizados para simular a otimizao do Algoritmo Gentico.
A princpio foram realizadas cinco simulaes com o AG utilizando os arquivos
citados acima. Da Figura 22 Figura 26 so apresentados os grficos com os menores e
maiores valores da funo objetivo para cada gerao do AG. Lembrando que os parmetros
utilizados nestas simulaes so os descritos na seo 3.3.1. A Tabela 10 apresenta o tempo
de execuo e o custo dos resultados de cada uma das simulaes.


Figura 22: Evoluo do AG na simulao I na topologia I.
93




Figura 23: Evoluo do AG na simulao II na topologia I.


Figura 24: Evoluo do AG na simulao III na topologia I.


Figura 25: Evoluo do AG na simulao IV na topologia I.
94






Figura 26: Evoluo do AG na simulao V na topologia I.


Tabela 10
Tempo de execuo do AG e custo da melhor soluo nas simulaes na topologia I
Simulao Tempo de Execuo (ms)
Custo da
Soluo tima
I 789.65 77.2709
II 713.41 77.2709
III 597.49 77.2709
IV 661.98 77.2709
V 665.04 77.2709
Fonte prpria

Como se pode notar nos grficos e pelos resultados da Tabela 10, nas simulaes
I, II, III e V, o menor resultado da funo objetivo encontrado pelo AG j na populao
inicial, igual ao fitness da soluo tima encontrada pelo algoritmo ao final de sua execuo.
Apenas na simulao IV a premissa apresentada acima falsa, sendo que o menor custo dos
seus cromossomos da populao inicial foi igual a 77,3689, aps a execuo foi encontrado o
custo para sua soluo tima igual a 77,2709, que igual ao das demais simulaes.
A fim de verificar se estes resultados descritos acima permaneceriam sem
alteraes, foi realizada uma nova simulao. Essa prxima simulao consiste em executar o
AG por cem vezes consecutivas e comparar o fitness da populao inicial com o fitness da
soluo apresentada como tima pelo algoritmo em todas as execues. A Figura 27 apresenta
os resultados desta simulao.

95




Figura 27: Simulao do AG em cem execues consecutivas na topologia I.

No primeiro grfico da Figura 27 observa-se o custo das melhores solues
encontradas na populao inicial em todas as cem execues do algoritmo. O segundo grfico
traz o custo das melhores solues encontradas ao final das execues do AG. Pode-se notar
que na grande maioria das simulaes, j na populao inicial encontramos alguma soluo
com custo igual ao custo da melhor soluo apresentada ao final da execuo. Em apenas
nove simulaes esta situao no observada, e nota-se tambm que nestas mesmas
simulaes o AG otimiza os resultados, chegando ento a mesma soluo das demais
simulaes. Em todas as simulaes o AG encontrou o mesmo custo para a soluo tima,
sendo este igual a 77,2709. No terceiro grfico podemos observar a variao do tempo de
execuo do AG para todas as simulaes, sendo que a mdia destes tempos foi igual a
624,3873 ms.






96



4.2.2. RESULTADOS DA IMPLEMENTAO DO ALGORITMO DE COLNIA DE
FORMIGAS NA TOPOLOGIA I


As simulaes do algoritmo ACS utilizam os mesmos arquivos usados para
implementar o AG. Utilizam tambm a mesma sistemtica, foram realizadas cinco simulaes
com o ACS utilizando os arquivos (.tr) gerados pelo sistema de TE.
Da Figura 28 Figura 32 so apresentados os grficos com os menores e maiores
valores da funo objetivo para cada iterao do algoritmo. Os parmetros utilizados nestas
simulaes esto descritos na seo 3.3.2 e so os mais prximos possveis aos do AG. A
Tabela 11 apresenta o tempo de execuo e o custo dos resultados de cada uma das
simulaes do ACS na topologia I.


Figura 28: Evoluo do ACS na simulao I na topologia I.


Figura 29: Evoluo do ACS na simulao II na topologia I.

97




Figura 30: Evoluo do ACS na simulao III na topologia I.


Figura 31: Evoluo do ACS na simulao IV na topologia I.


Figura 32: Evoluo do ACS na simulao V na topologia I.

98



Tabela 11
Tempo de execuo do ACS e custo da melhor soluo nas simulaes na topologia I
Simulao Tempo de Execuo (ms)
Custo da
Soluo tima
I 1336.60 77.2709
II 1423.13 77.2709
III 1469.61 77.2709
IV 1536.18 77.2709
V 1391.15 77.2709
Fonte prpria

Como pode ser visualizado nos grficos acima, o algoritmo ACS apresenta
resultados semelhantes aos da simulao do AG. Em trs simulaes (II, III e V) no houve
otimizao, considerando que no h alterao dos valores dos menores custos da soluo
encontrada entre a primeira e a ltima iterao. Nas outras duas simulaes (I e IV) notamos
que os valores diferentes que foram encontrados esto muito prximos dos valores
encontrados na maioria das iteraes, e observamos tambm uma rpida convergncia para o
valor tido como timo pelo algoritmo.


Figura 33: Simulao do ACS em cem execues consecutivas na topologia I.

99



Assim como nos testes com AG, os arquivos do sistema de TE foram submetidos
a outra simulao. Nesta o ACS executado cem vezes consecutivas e os resultados da
comparao entre os valores mnimos dos custos encontrados na primeira iterao com os
valores mnimos dos custos da ltima iterao. Assim poderemos avaliar se o comportamento
do ACS se manter como observado acima. A Figura 33 apresenta os resultados dessa nova
simulao.
Neste teste pode-se notar, na Figura 33 que em todas as simulaes o ACS
encontrou na primeira iterao uma soluo com o mesmo valor do custo encontrado na
ltima iterao.
Assim como na simulao do AG, em todas as simulaes o ACS encontrou o
mesmo custo para a soluo tima igual a 77,2709. O que mais destoa entre os dois
algoritmos de otimizao utilizados neste trabalho, o tempo de execuo, como pode ser
visto comparando os resultados da Tabela 10 aos resultados da Tabela 11. Outro fato que
evidencia esta diferena o tempo mdio de execuo do ACS encontrado nesta segunda
simulao, sendo este tempo mdio igual a 1475,20 ms, o que corresponde a mais de duas
vezes o tempo mdio encontrado na simulao com AG. A variao dos tempos de execuo
do ACS nesta ltima simulao pode ser observada no terceiro grfico presente na Figura 33.


4.2.3. RESULTADOS DA IMPLEMENTAO DO ALGORITMO GENTICO NA
TOPOLOGIA II


A implementao do AG na topologia II segue os mesmos modelos de testes
utilizados na simulao da topologia I.
Os arquivos gerados durante a simulao do sistema de TE utilizando a topologia
II so utilizados para realizar cinco simulaes com o AG. Da Figura 34 Figura 38 so
apresentados os grficos com os menores e maiores valores da funo objetivo para cada
gerao do AG. Os parmetros aqui utilizados so os mesmos da simulao da topologia I e,
portanto, os mesmos descritos na seo 3.3.1. A Tabela 12 apresenta o tempo de execuo e o
custo dos resultados de cada uma das simulaes.

100




Figura 34: Evoluo do AG na simulao I na topologia II.


Figura 35: Evoluo do AG na simulao II na topologia II.


Figura 36: Evoluo do AG na simulao III na topologia II.
101





Figura 37: Evoluo do AG na simulao IV na topologia II.


Figura 38: Evoluo do AG na simulao V na topologia II.

Tabela 12
Tempo de execuo do AG e custo da melhor soluo nas simulaes da topologia II
Simulao
Tempo de
Execuo (ms)
Custo da
Soluo tima
I 2373.98 442.8506
II 2288.76 445.2533
III 2428.79 442.8506
IV 2307.78 442.6739
V 2353.93 444.6202
Fonte prpria
102




Diferentemente do que foi observado nas simulaes com a topologia I, agora sim
se pode observar nos grficos das simulaes a evoluo do AG. Como se pode notar no
primeiro grfico de cada simulao, o AG vai convergindo para o mnimo da funo objetivo,
ou seja, os valores do fitness das solues encontradas diminuem constantemente ao longo das
geraes. Nos grficos que trazem os valores mximos do fitness das solues podemos
enxergar a mesma tendncia de convergncia.
Algo relevante de ser notado nos grficos que trazem os valores mnimos dos
custos a ao do elitismo utilizado no AG. Ele garante que no pior dos casos, a melhor
soluo da gerao atual ser igual melhor soluo da gerao anterior. Com isso pode-se
notar que em nenhum dos grficos h aumento do fitness de uma gerao para a sua
subsequente.


Figura 39: Simulao do AG em cem execues consecutivas na topologia II.

103



Na Tabela 12 pode-se observar a baixa variao, entre as simulaes, dos tempos
de execuo e dos fitness das melhores solues. O desvio padro dos tempos de execuo
igual a 55,5183 ms, enquanto o desvio padro do fitness igual a 1,1982.
Seguindo o modelo de simulaes utilizado para a topologia I, foi realizada a
simulao de executar por cem vezes consecutivas o AG para os arquivos da topologia II. A
Figura 39 apresenta os resultados desta simulao.
visvel a diferena entre estes grficos acima e os grficos desta mesma
simulao para a topologia I. Podemos notar diversos valores tanto para o custo da populao
inicial como para o custo da soluo encontrada, o que no aconteceu com esse algoritmo na
simulao da topologia I. A Tabela 13 traz os dados das medidas observadas nesta simulao.

Tabela 13
Medidas da simulao do AG na topologia II
Medida Valor
Mdia dos Tempos de Execuo (ms) 2293,9173
Desvio Padro dos Tempos de Execuo 98,5033
Menor Tempo de Execuo (ms) 2011,9378
Maior Tempo de Execuo (ms) 2565,2454
Mdia dos Fitness 445,4298
Desvio Padro dos Fitness 2,8404
Menor Fitness 441,5450
Nmero de ocorrncias do menor Fitness 7
Maior Fitness 456,0627
Mdia da diminuio do Fitness entre a
primeira e a ltima gerao
11,2269
Fonte prpria

importante ressaltar o baixo desvio padro apresentados tanto para os tempos
de execuo como para os fitness. Outra importante informao da Tabela 13 a mdia dos
fitness, nela podemos observar a proximidade deste valor com o menor fitness encontrado. A
mdia da diminuio do fitness comprova mais uma vez a convergncia do AG para a soluo
tima.

104




4.2.4. RESULTADOS DA IMPLEMENTAO DO ALGORITMO DE COLNIA DE
FORMIGAS NA TOPOLOGIA II


Nesta implementao tambm foram utilizados os mesmos modelos de testes
utilizados nas implementaes anteriores.
Os arquivos gerados durante a simulao do sistema de TE utilizando a topologia
II so utilizados para realizar cinco simulaes com o ACS. Da Figura 40 Figura 44 so
apresentados os grficos com os menores e maiores valores da funo objetivo para cada
gerao do AG. Os parmetros aqui utilizados so os mesmos da simulao da topologia I e
esto descritos na seo 3.3.2.


Figura 40: Evoluo do ACS na simulao I na topologia II.

105




Figura 41: Evoluo do ACS na simulao II na topologia II.


Figura 42: Evoluo do ACS na simulao III na topologia II.


Figura 43: Evoluo do ACS na simulao IV na topologia II.
106





Figura 44: Evoluo do ACS na simulao V na topologia II.

A Tabela 14 apresenta o tempo de execuo e o custo dos resultados de cada uma
das simulaes.

Tabela 14
Tempo de execuo do ACS e custo da melhor soluo nas simulaes da topologia II
Simulao
Tempo de
Execuo (ms)
Custo da
Soluo tima
I 14599.08 443.9450
II 12391.04 445.3677
III 12478.29 444.1582
IV 13493.81 441.5450
V 14034.94 446.1792
Fonte prpria

Primeiramente, o que podemos observar nestas simulaes a grande diferena
entre os grficos do AG, presentes na seo 4.2.3, e do ACS presentes acima. Os grficos do
AG mostram os resultados da funo num declnio, pois a cada gerao seus cromossomos
so melhorados e graas ao elitismo utilizado em momento algum a funo objetivo ir
ascender. J os grficos do ACS mostram-se bastante irregulares, com altos e baixos
constantes, isto evidencia a procura por solues pelo espao de busca. O ACS no possui
nenhum tipo de elitismo, por isso o crescimento da funo objetivo em algumas iteraes.
107



A soluo tima do AG considerada como a melhor soluo encontrada na
ltima gerao do algoritmo. No caso do ACS, ele possui uma varivel que armazena a
melhor soluo encontrada at o momento, portanto a cada iterao a melhor soluo
encontrada e comparada com esta varivel, aquela que for melhor ser armazenada nesta
mesma varivel.
Levando-se em considerao o que foi descrito acima, pode-se fazer outra
observao com relao aos grficos dos valores mnimos do ACS. Podemos notar nas
simulaes I, III e V que os melhores fitness foram encontrados at a quinta iterao, na
simulao II foi encontrado na stima iterao e na simulao IV a melhor soluo foi
encontrada na dcima primeira iterao. Deste modo, conclumos que a convergncia do ACS
se d principalmente nas suas primeiras iteraes e que praticamente todos os resultados
encontrados permaneceriam sem alterao caso o ACS empregasse apenas metade das
iteraes utilizadas.


Figura 45: Simulao do ACS em cem execues consecutivas na topologia II.
108



Outro fato importante observado nesta simulao pode ser visualizado na Tabela
14, onde constatamos que o tempo de execuo do ACS bem superior ao tempo de execuo
do AG. Um dos fatores que podem justificar esta observao est exposto no pargrafo
precedente. Como foi dito na seo 3.3.2 os parmetros utilizados no ACS foram os mais
prximos possveis dos do AG, isto para facilitar a comparao de desempenho entre os dois.
Com isso o ACS pode estar sendo super parametrizado, o que faria com que fosse
demandado um processamento desnecessrio. Por exemplo, se diminussemos a quantidade de
iteraes ou a quantidade de formigas, pode ser que encontrssemos os mesmos resultados
encontrados nesta simulao, ou prximos o suficiente que compensasse o ganho obtido no
tempo de execuo.
Para equiparar as simulaes realizadas neste trabalho, o ACS tambm foi
submetido a uma simulao que executa tal algoritmo por cem vezes consecutivas, e
apresenta na Figura 45 os grficos com os resultados desta simulao.
Os grficos apresentados nesta figura assemelham-se bastante aos grficos obtidos
nesta mesma simulao com o AG que podem ser vistos na Figura 39. Podemos notar uma
variao dos valores tanto do custo da populao inicial como do custo da soluo encontrada.
As medidas desta simulao so apresentadas na Tabela 15.

Tabela 15
Medidas da simulao do ACS na topologia II
Medida Valor
Mdia dos Tempos de Execuo (ms) 12962,5564
Desvio Padro dos Tempos de Execuo 765,0863
Menor Tempo de Execuo (ms) 11017,6997
Maior Tempo de Execuo (ms) 15545,9401
Mdia dos Fitness 445,5371
Desvio Padro dos Fitness 2,1824
Menor Fitness 441,5450
Nmero de ocorrncias do menor Fitness 1
Maior Fitness 450,5024
Mdia da diminuio do Fitness entre a
primeira e a ltima gerao
10,4723
Fonte prpria
109




Assim como observado na simulao do AG a mdia dos fitness se aproxima
bastante do menor fitness encontrado. A mdia da diminuio do fitness comprova a
otimizao realizada durante as simulaes. O que tambm observamos atravs da Tabela 15
o mesmo que foi observado nas simulaes I, II, III, IV e V desta mesma seo, que o alto
tempo de execuo do ACS se comparado com o AG. Enquanto o ACS possui uma mdia de
quase treze segundos de execuo o AG possui uma mdia de pouco mais de dois segundos, e
os fitness encontrados nas duas simulaes se equiparam.


4.2.5. COMPARAO DA EXECUO DO ALGORITMO GENTICO COM O
ALGORITMO DE COLNIA DE FORMIGAS


Para finalizar os testes de implementao do AG e do ACS, foram realizadas duas
novas simulaes executando cada um dos algoritmos por cem vezes consecutivas, os
resultados entre a execuo dos dois algoritmos foram comparados, isto pode ser visto na
Tabela 16, e os resultados da funo objetivo dos dois algoritmos foram sobrepostos em um
mesmo grfico para cada simulao, estes esto apresentados na Figura 46 e na Figura 47.

Tabela 16
Resultados da comparao entre AG e ACS
Medida
Valor do AG
1 Simulao
Valor do ACS
1 Simulao
Valor do AG
2 Simulao
Valor do ACS
2 Simulao
Mdia dos Tempos de Execuo (ms) 2177,2792 13922,6516 2133,8527 12828,5467
Desvio Padro dos Tempos de Exec. 75,7769 913,544 96,8698 733,7781
Menor Tempo de Execuo (ms) 2018,4067 11831,7202 1967,5809 11712,0302
Maior Tempo de Execuo (ms) 2353,3640 16202,7410 2408,3095 16009,4581
Mdia dos Fitness 446,055 445,3532 446,166 445,3676
Desvio Padro dos Fitness 3,3239 2,0626 3,0951 2,1695
Menor Fitness 441,5450 441,7582 441,5450 441,5450
Nmero de ocorrncias do menor
Fitness
1 5 1 1
Maior Fitness 457,6897 450,7412 455,3885 450,7441
Mdia da diminuio do Fitness entre a
primeira e a ltima gerao
10,4429 12,2989 10,8613 11,9686
Fonte prpria
110





Figura 46: Comparao dos menores fitness encontrados entre o AG e o ACS na 1 simulao


Figura 47: Comparao dos menores fitness encontrados entre o AG e o ACS na 2 simulao

111



Nesta comparao podemos observar as vantagens e desvantagens de cada um dos
algoritmos em relao ao outro. A vantagem do AG sobre o ACS a mdia dos tempos de
execuo, onde o tempo de execuo do ACS aproximadamente seis vezes maior que o do
AG. J a vantagem do ACS sobre o AG, apesar de pequena, a mdia e o desvio padro do
fitness menores. Nos grficos pode-se observar esta vantagem do ACS, a linha vermelha, que
representa a funo do ACS, fica mais concentrada numa regio enquanto a linha azul, que
representa a funo do AG, fica mais dispersa, com alguns picos muito distantes da melhor
soluo encontrada em todas as execues.

112




5. CONCLUSES


Este trabalho props desenvolver dois algoritmos de otimizao baseados nas
heursticas de Algoritmo Gentico e Colnia de Formigas. Esses algoritmos foram
desenvolvidos para otimizar os recursos de rede em um domnio MPLS utilizando o sistema
de TE proposto por MAIA (2006). Os algoritmos recebem os arquivos gerados pelo sistema
de TE contendo todas as informaes a respeito da topologia utilizada e das aplicaes que
possuem LSPs criadas no domnio MPLS. Com base nas informaes contidas nestes
arquivos o algoritmo deve encontrar uma soluo contendo os melhores caminhos que cada
aplicao deve utilizar. Para encontrar estes melhores caminhos o algoritmo deve minimizar a
soma do produto entre o custo nebuloso da cada caminho candidato e a vazo de trfego de
cada LSP.
Os algoritmos foram testados em duas topologias diferentes, uma mais simples (I)
e outra complexa (II). Os parmetros utilizados para avaliao de desempenho dos algoritmos
foram o tempo de execuo e o custo da soluo encontrada. Primeiramente foram feitas
cinco simulaes em cada uma das topologias onde cada algoritmo era executado uma nica
vez e os resultados apresentados, em seguida, devido ao fato de no encontrar resultados
satisfatrios para avaliar os algoritmos na topologia I apenas com a primeira simulao, foi
proposto uma nova simulao que consistia em executar cada um dos algoritmos por cem
vezes consecutivas, em cada uma das topologias. Por ltimo foram realizados mais duas
simulaes que executava os algoritmos cem vezes consecutivas para os arquivos da
topologia II e os resultados encontrados de cada algoritmo foram comparados entre eles.
Para a topologia I pode-se concluir com os resultados obtidos tanto com o AG
como o ACS, que o algoritmo de otimizao est sendo pouco proveitoso para o sistema de
TE, j que, para a maior parte das simulaes, desde a primeira gerao encontrado o
resultado tido como soluo tima ao final da execuo. Com isso consegue-se concluir que a
topologia I possui um nmero muito pequeno de solues vlidas e levando-se em
considerao que a populao inicial dos algoritmos gerada de maneira aleatria
(respeitando apenas as restries do problema), e levando-se em conta tambm que os
algoritmos de otimizao necessitam de uma demanda de processamento, a utilizao de um
algoritmo de otimizao no ser vantajoso para esta topologia simples. O prprio sistema de
113



TE j possui implementado no CFLAG a criao de uma tabela de solues vlidas de
maneira aleatria, portanto, para a topologia I seria mais vantajoso utilizar esta tabela para
buscar a melhor soluo que nela contm e no utilizar um algoritmo de otimizao.
Diferentemente da topologia I, para a topologia II observa-se a necessidade do
algoritmo de otimizao. Como podemos notar nas simulaes realizadas com o AG e com o
ACS, os algoritmos esto realmente otimizando as solues, por exemplo, na simulao
descrita na seo 4.2.5 podemos ver na Tabela 16 a mdia da diminuio dos fitness entre a
primeira e a ltima gerao de cada execuo do algoritmo, o que comprova a convergncia
dos algoritmos para as solues timas. Os dois algoritmos mostraram-se eficientes, sempre
encontrando solues muito prximas da tima.
Este trabalho propunha fazer uma comparao entre os dois algoritmos
desenvolvidos e testados, AG e ACS. Neste sentido, a definio dos parmetros nos dois
algoritmos foram os mais prximos possveis e tambm foram realizadas simulaes idnticas
com os dois algoritmos. A Tabela 16 apresenta os resultados de duas simulaes com cada um
dos algoritmos, simulao esta que consistia em executar cem vezes consecutivas o algoritmo.
Consegue-se definir as vantagens e desvantagens da cada algoritmo baseados nos dados desta
tabela e das demais simulaes realizadas neste trabalho. O AG mostrou-se mais eficiente no
que diz respeito ao tempo de execuo, o AG foi aproximadamente seis vezes mais rpido que
o ACS. O ACS, por sua vez, mostrou-se um pouco mais eficiente quando tratamos dos custos
das solues encontradas, pois apresentou menor mdia e menor desvio padro dos custos das
solues encontradas.
Fundamentado nas simulaes efetuadas o nos resultados obtidos conclui-se que o
AG mais eficiente para otimizar os recursos de rede em um domnio MPLS utilizando o
sistema de TE proposto por MAIA(2006), pois, apesar de ter apresentado uma pequena
desvantagem no que diz respeito ao fitness das solues, apresentou uma grande vantagem no
que diz respeito ao tempo de execuo.
Este trabalho apresentou resultados satisfatrios, porm mudanas podem ser
realizadas nos algoritmos buscando maior eficincia dos mesmos e novos testes podem ser
realizados utilizando outros parmetros de avaliao. Pensando nisso pode-se propor as
seguintes trabalhos futuros:
Alterar os parmetros inicias dos algoritmos, como nmero de
cromossomos e formigas, nmeros de geraes e iteraes, buscando o equilbrio
114



entre tempo de execuo e resultados obtidos, pois os algoritmos podem estar
super parametrizados, como visto na seo 4.2.4.
Alterar os operadores genticos do AG, como, por exemplo, a Seleo e
o Cruzamento.
Inserir os algoritmos desenvolvidos no sistema de TE, para que os
mesmo possam ser testados junto simulao do sistema e utilizar outros
parmetros para avaliar a eficincia dos algoritmos de otimizao, como os
indicadores de desempenho da rede.


115



6. REFERNCIAS BIBLIOGRFICAS



ABACHIZADEH, M.; TAHANI, M., An ant colony optimization approach to multiobjective
optimal design of symmetric hybrid laminates for maximum fundamental frequency and
minimum cost. Structural and Multidisciplinary Optimization, vol. 37, 2009.


VILA, S. L. et al. Otimizao Conceitos Bsicos, Ferramentas e Aplicaes. Revista de
Automao e Tecnologia da Informao, Florianpolis, v.2, n.1, 2003.


BENI, G. The concept of cellular robotic systems. In Proceedings 1988 IEEE Int. Symp. On
Intelligent Control, 1988.


BEZ, E. D. Procedimento de Representao de Solues em Otimizao Global: Aplicao
em Modelos de Interao Espacial. Tese (Doutorado em Engenharia de Produo),
Universidade Federal de Santa Catarina, Florianpolis, 2005.


BLACK, U. MPLS and Label Switching Networks, Second Edition, Upper Saddle River:
Prantice Hall, 2002.


BONABEAU, E.; DORIGO, M.; THRAULAZ, G. From Natural to Artificial Swarm
Inteligence. Oxford University Press, 1999.


BOOKER, L. B., GOLDBERG, D. E. & HOLLAND, J. H. Classifier Systems and Genetic
Algorithms. Artificial Intelligence, vol. 40, 1989.


BRAGA, A. P.; LUDENIR, T. B.; CARVALHO, A. C. P. L. F. Redes Neurais Artificiais
Teoria e aplicaes. LTC, 2000.


CRAWLEY E.; NAIR R., RAJAGOPALAN, B.; SANDICK, H. A framework for qosbased
routing in the internet. RFC 2386, agosto 1998. Disponvel em:
http://www.rfcarchive.org/getrfc.php?rfc=2386. Acesso em: Outubro de 2009.


DAVIS, L. Handbook of Genetic Algorithms. Van Nostrand Reinhold, New York, 1991.


DORIGO, M. Optimization, Lerning and Natuaral Algorithms. Ph.D Thesis, Politcnico de
Milario, 1992.


116



DORIGO, M.; CARO, G. The ant colony optimization meta-heuristic. In: CORNE, D.;
DORIGO, M.; GLOVER, F. New ideas optimization. Londres, Reino Unido: McGraw-Hill,
1999.


DORIGO, M.; GAMBARDELLA, L. M. Ant colony system: A cooperative learning
approach to the traveling salesman problem. IEEE Transactions on Evolutionary
Computation, vol.1, n 1, 1997.


DORIGO, M.; MANIEZZO, V.; COLORNI, A. Ant system: Optimization by a colony of
cooperatings agents. IEEE Transactions on Systems, Man, and Cybernetics-Part B, 1996.


DORIGO, M.; MANIEZZO, V.; COLORNI, A. Positive feedback as a search strategy,
Technical Report 91-016, Dipartimento di Elettronica e Informazione, Politecnico di Milano,
1991.


DORIGO, M.; STTZLE T. Ant colony optimization. MIT Press, Cambridge, 2004.


ELLABIB, I.; BASIR, O. A. E CALAMAI, P. A new Ant Colony System updating strategy
for Vehicle Routing Problem with Time windows. MIC2003: The Fifth Metaheuristics
International Conference, 2003.


FARMER, J. D.; TOFFOLI, T.; WOLFRAM, S. Cellular Automata: Proceedings of an
Interdisciplinary Workshop at Los Alamos. New Mexico, North-Holland, Amsterdam, 1983.


FRANKS, N. R. Army Ants: A Collective Intelligence. Scientific American, vol. 7, 1989.


GAERTNER, D. Natural Algorithms for Optimization Problems. Final Year Project Report,
2004.


GOLDBERG, D. E. Genetic Algorithms in Search, Optimization and Machine Learning.
Addison Wesley, 1989.


GOLDBERG, D. E.; HOLLAND, J. H. Genetic algorithms and machine learning:
Introduction to the special issue on genetic algorithms. Machine Learning, 1988.


GOSS, S.; ARON, S.; DENEUBOURG, J. L.; PASTEELS, J. M. Self-organized shortcuts in
the Argentine ant. Naturwissenschaften, v. 76, 1989.


117



GOZDECKI, J.; JAJSZCZYK, A.; STANKIEWICZ, R. Quality of Service Terminology in
IP Networks. In: IEEE Communications Magazine, vol. 41, n.3, maro 2003.


HEITKOETTER, J., BEASLEY, D. The hitch-hiker's guide to evolutionary computation: a
list of frequently asked questions (FAQ). 1994. Disponvel em:
ftp://rtfm.mit.edu:/pub/usenet/news.answers/ai-faq/genetic. Acesso em: Outubro de 2009.


HERRERA, F.; LOZANO, M.; VERDEGAY, J. L. Tackling Real-Coded Genetic
Algorithms: Operators and Tools for Behavioural Analysis. Artificial Intelligence Review. v.
12, 1998.


HOLLAND, J. H. Adaptation in Natural and Artificial Systems. The MIT Press, 1992.


HOLLAND, J. H. Adaptation in Natural and Artificial Systems. The University of Michigan
Press, 1975.


HLLDOBLER, B.; WILSON, E. O. Journey to the Ants. Bellknap Press/Harvard
University Press, 1994.


KOZA J. R. Genetic programming: on the programming of computers by means of natural
selection. MIT Press, 1992.


LINDEN, R. Algoritmos Genticos: Uma importante ferramenta da Inteligncia
Computacional. Rio de Janeiro: Brassport, 2006.


MAIA, N. A. Engenharia de Trfego em Domnio MPLS Utilizando Tcnicas de Inteligncia
Computacional. 2006. 192 f. Tese (Doutorado em Engenharia Eltrica) Programa de Ps-
Graduao em Engenharia Eltrica, Universidade Federal de Minas Gerais, Belo Horizonte,
2006. Disponvel em:
http://www.ppgee.ufmg.br/defesas/855D.PDF?PHPSESSID=3b42ed5f702704217569eb18f0
ac91a9. Acesso em: Setembro de 2009.


MICHALEWICZ, Z., SCHOENAUER, M. Evolutionary Algorithms for Constrained
Parameter Optimization Problems. Evolutionary Computation, vol. 4, no. 1, 1996.


NILSSON, N. J. Principals of artificial intelligence. New York: Birkhauser, 1982.


OLIVEIRA, S. S. de. Anlise de trfego na integrao de redes IP e ATM usando simulao.
Dissertao de Mestrado. Programa de Ps-Graduao em Cincia da Computao/UFSC,
118



2001.


SOCHA, K.; DORIGO, M. Ant colony optimization for continuous domain. European
Journal of Operational research, 2008.


SPEARS, W. M. Simple Subpopulation Schemes, Proceedings of Evolutionary Programming
Conference. World Scientific, International Edition, 1994.


VASCONCELOS, J. A., SALDANHA, R. R., KRHENBHL, L., NICOLAS, A.
Algoritmo Gentico Aplicado Otimizao em Eletromagnetismo. Primeiro Congresso
Brasileiro de Eletromagnetismo, Florianpolis, 1995.


YEPES, I. Uma incurso aos algoritmos genticos. 2000. Disponvel em:
http://www.geocities.com/igoryepes/. Acesso em: Setembro de 2009.