Upload
others
View
1
Download
0
Embed Size (px)
Citation preview
UUNNIIVVEERRSSIIDDAADDEE FFEEDDEERRAALL DDOO RRIIOO GGRRAANNDDEE DDOO NNOORRTTEE DDEEPPAARRTTAAMMEENNTTOO DDEE IINNFFOORRMMÁÁTTIICCAA EE MMAATTEEMMÁÁTTIICCAA AAPPLLIICCAADDAA
PROGRAMA DE PÓS-GRADUAÇÃO EM SISTEMAS DE COMPUTAÇÃO
CCOOMMPPUUTTAAÇÇÃÃOO EEVVOOLLUUCCIIOONNÁÁRRIIAA AAPPLLIICCAADDAA AA PPRROOBBLLEEMMAASS DDEE
OOTTIIMMIIZZAAÇÇÃÃOO CCOOMMBBIINNAATTÓÓRRIIAA
IILLKKAA MMAARRIIAA SSOOAARREESS CCAAMMPPOOSS
NNAATTAALL RRIIOO GGRRAANNDDEE DDOO NNOORRTTEE
FFEEVVEERREEIIRROO -- 22000066
Livros Grátis
http://www.livrosgratis.com.br
Milhares de livros grátis para download.
2
C198c Campos, Ilka Maria Soares
Computação evolucionária aplicada a Problemas De otimização combinatória/ Ilka Maria Soares
Campos. – Natal, 2006. 183p.
Orientadora: Elizabeth Ferreira Gouvêa Goldbarg Dissertação (Mestrado) – UFRN/DIMAP
1. Computação 2. Computação evolucionaria 3. Otimização combinatória 4. Algoritmos genéticos 5. Meméticos 6. Culturais 7. Transgenéticos
UFPB/Bc CDU: 004(043)
3
CCoommppuuttaaççããoo EEvvoolluucciioonnáárriiaa AApplliiccaaddaa aa PPrroobblleemmaass ddee OOttiimmiizzaaççããoo CCoommbbiinnaattóórriiaa
IILLKKAA MMAARRIIAA SSOOAARREESS CCAAMMPPOOSS
DDIISSSSEERRTTAAÇÇÃÃOO DDEE MMEESSTTRRAADDOO AAPPRREESSEENNTTAADDAA AAOO
PPRROOGGRRAAMMAA DDEE PPÓÓSS--GGRRAADDUUAAÇÇÃÃOO EEMM SSIISSTTEEMMAASS DDEE
CCOOMMPPUUTTAAÇÇÃÃOO DDAA UUNNIIVVEERRSSIIDDAADDEE FFEEDDEERRAALL DDOO RRIIOO
GGRRAANNDDEE DDOO NNOORRTTEE CCOOMMOO PPAARRTTEE DDOOSS RREEQQUUIISSIITTOOSS PPAARRAA
OOBBTTEENNÇÇÃÃOO DDOO TTÍÍTTUULLOO DDEE MMEESSTTRREE EEMM SSIISSTTEEMMAASS DDEE
CCOOMMPPUUTTAAÇÇÃÃOO..
OORRIIEENNTTAADDOORR:: PPRROOFF.. DDRRAA.. EELLIIZZAABBEETTHH FFEERRRREEIIRRAA GGOOUUVVÊÊAA GGOOLLDDBBAARRGG
NNAATTAALL RRIIOO GGRRAANNDDEE DDOO NNOORRTTEE
FFEEVVEERREEIIRROO -- 22000066
4
CCoommppuuttaaççããoo EEvvoolluucciioonnáárriiaa AApplliiccaaddaa aa PPrroobblleemmaass ddee OOttiimmiizzaaççããoo CCoommbbiinnaattóórriiaa
IILLKKAA MMAARRIIAA SSOOAARREESS CCAAMMPPOOSS
DISSERTAÇÃO SUBMETIDA À UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE, COMO PARTE DAS EXIGÊNCIAS DO PROGRAMA DE PÓS-
GRADUAÇÃO EM SISTEMAS E COMPUTAÇÃO, PARA A OBTENÇÃO NO TÍTULO DE MESTRE.
APROVADA POR:
________________________________________ Profa. Drª. Elizabeth Ferreira Gouvêa Goldbarg
Orientadora - UFRN
_______________________________________ Profº. Dr. Marco César Goldbarg
Examinador - UFRN
________________________________________ Profª Drª. Iloneide Carlos de Oliveira Ramos
Examinador - UFRN
________________________________________ Profª. Drª. Maria Terezinha Arns Steiner
Examinadora - UFPR
Natal – Rio Grande do Norte - Brasil 13 de Fevereiro de 2006
5
““CCAADDAA UUMM DDEE NNÓÓSS CCOOMMPPÕÕEE AA SSUUAA HHIISSTTÓÓRRIIAA,, CCAADDAA SSEERR EEMM SSII CCAARRRREEGGAA OO DDOOMM DDEE SSEERR
CCAAPPAAZZ,, DDEE SSEERR FFEELLIIZZ......"" ((AALLMMIIRR SSAARRTTII))
6
DDEEDDIICCAATTÓÓRRIIAA
AA BBEETTHH EE GGOOLLDDBBAARRGG PPEELLAA AABBEERRTTUURRAA DDEE
PPOORRTTAASS,, MMEESSMMOO NNÃÃOO SSEENNDDOO DDAA ÁÁRREEAA..
AA CCHHIICCOO EE MMÁÁRRCCIIAA...... SSIIMMPPLLEESSMMEENNTTEE PPOORR
TTUUDDOO..
7
AAGGRRAADDEECCIIMMEENNTTOOSS
EEMM MMUUIITTAASS OOCCAASSIIÕÕEESS NNÃÃOO HHÁÁ CCOOMMOO EEXXPPRREESSSSAARR OO AAGGRRAADDEECCIIMMEENNTTOO MMEERREECCIIDDOO AA TTOODDAASS AASS
PPEESSSSOOAASS QQUUEE MMEE AAPPOOIIAARRAAMM,, AAJJUUDDAARRAAMM EE QQUUEE CCOOMM SSUUAA SSAABBEEDDOORRIIAA MMEE FFIIZZEERRAAMM CCRREERR QQUUEE
VVAALLEE AA PPEENNAA SSOONNHHAARR EE LLUUTTAARR.. RREESSTTAA--MMEE,, PPOORRTTAANNTTOO,, AAGGRRAADDEECCEERR DDEE CCOORRAAÇÇÃÃOO AA TTOODDAASS
EELLAASS..
AA DDEEUUSS PPEELLAA OOPPOORRTTUUNNIIDDAADDEE CCOONNCCEEBBIIDDAA,, OONNDDEE SSEEMMPPRREE OO BBUUSSCCOO AATTRRAAVVÉÉSS DDEESSSSAA FFÉÉ QQUUEE
TTAANNTTOO TTEENNHHOO,, CCOONNCCEEDDEENNDDOO--MMEE FFOORRÇÇAA EE PPEERRSSEEVVEERRAANNÇÇAA PPAARRAA CCOONNCCLLUUIIRR EESSTTEE TTRRAABBAALLHHOO
EEMM MMEEIIOO ÀÀSS AADDVVEERRSSIIDDAADDEESS DDAA VVIIDDAA.. MMIINNHHAA DDEETTEERRMMIINNAAÇÇÃÃOO!!
AAOOSS MMEEUUSS PPAAIISS,, PPEELLOO AAMMOORR,, CCUUMMPPLLIICCIIDDAADDEE EE CCOOMMPPRREEEENNSSÃÃOO PPEELLAA AAUUSSÊÊNNCCIIAA FFÍÍSSIICCAA.. MMIINNHHAA
PPRROOTTEEÇÇÃÃOO!!
AA MMIINNHHAA OORRIIEENNTTAADDOORRAA BBEETTHH GGOOUUVVÊÊAA,, PPEELLAA AACCOOLLHHIIDDAA NNOO PPRRIIMMEEIIRROO EENNCCOONNTTRROO,,
EENNSSIINNAAMMEENNTTOOSS,, CCOOMMPPRREEEENNSSÃÃOO,, AAPPOOIIOO,, DDEEDDIICCAAÇÇÃÃOO EE AAMMIIZZAADDEE.. NNÃÃOO PPOODDEERRIIAA TTEERR SSIIDDOO
MMEELLHHOORR.. MMIINNHHAA SSOORRTTEE!!
NNÃÃOO PPOODDEERRIIAA DDEEIIXXAARR DDEE EEVVIIDDEENNCCIIAARR,, OO PPRROOFFEESSSSOORR GGOOLLDDBBAARRGG,, CCOO--OORRIIEENNTTAADDOORR,, PPEELLAA
SSUUAA RRIICCAA EEXXPPEERRIIÊÊNNCCIIAA,, PPEELLAA CCOOMMPPRREEEENNSSÃÃOO,, PPEELLAA SSUUAA CCOONNTTRRIIBBUUIIÇÇÃÃOO,, EESSCCLLAARREECCIIMMEENNTTOOSS
EE AAPPOOIIOO.. MMIINNHHAA AADDMMIIRRAAÇÇÃÃOO!!
AA IILLOONNEEIIDDEE PPEELLOO AAPPOOIIOO EE OORRIIEENNTTAAÇÇÕÕEESS.. MMIINNHHAA CCOONNSSIIDDEERRAAÇÇÃÃOO!!
AAOO PPAABBLLOO,, UUNNIICCAAMMPP,, PPEELLAA SSUUAA DDIISSPPOONNIIBBIIDDAADDEE,, EENNVVIIAANNDDOO--MMEE CCOONNHHEECCIIMMEENNTTOOSS EE
MMAATTEERRIIAAIISS.. MMIINNHHAA DDEESSCCOOBBEERRTTAA!!
AAOOSS MMEEUUSS CCOOLLEEGGAASS DDOO LLAABBOORRAATTÓÓRRIIOO DDEE AALLGGOORRIITTMMOOSS EEXXPPEERRIIMMEENNTTAAIISS,, EEMM EESSPPEECCIIAALL
GGIIVVAANNAALLDDOO,, SSEEBBAASSTTIIÃÃOO EE RRIICCAARRDDOO MMAARRXX PPEELLAA AAJJUUDDAA,, CCOOLLEEGGUUIISSMMOO EE CCUUMMPPLLIICCIIDDAADDEE..
MMIINNHHAA PPAARRCCEERRIIAA!!
8
AAOOSS MMEEUUSS AAMMIIGGOOSS DDOO MMEESSTTRRAADDOO,, JJOOSSEEAANNEE,, HHEERREEMMIITTAA,, GGEEOOVVAANNEE EE MMAACCIILLOONN,, PPEELLOOSS BBOONNSS
EENNCCOONNTTRROOSS.. MMIINNHHAA DDEESSCCOONNTTRRAAÇÇÃÃOO!!
AAOOSS FFUUNNCCIIOONNÁÁRRIIOOSS DDOO DDIIMMAAPP,, EEMM EESSPPEECCIIAALL GGRRAAÇÇAA,, VVAAMMBBEERRTTOO EE SSRR.. GGAASSPPAARR,, PPEELLAA
DDIISSPPOONNIIBBIILLIIDDAADDEE EE PPRREESSTTEEZZAA EEMM TTOODDOOSS OOSS MMOOMMEENNTTOOSS QQUUEE AALLII EESSTTIIVVEE.. MMIINNHHAA GGRRAATTIIDDÃÃOO!!
AAOO SSEENNAACC//RRNN,, NNAA PPEESSSSOOAA DDEE DD.. ZZIILLCCAA -- DDIIRREETTOORRAA,, PPEELLAA OOPPOORRTTUUNNIIDDAADDEE DDAADDAA.. MMEEUU
RREESSPPEEIITTOO!!
AAOO SSEENNAACC//PPBB,, NNAA PPEESSSSOOAA DDEE VVEERRAA AALLMMEEIIDDAA -- DDIIRREETTOORRAA,, PPEELLAA CCOOMMPPRREEEENNSSÃÃOO EE AAPPOOIIOO;; EE
AAOOSS CCOOMMPPAANNHHEEIIRROOSS//AAMMIIGGOOSS QQUUEE FFIIZZ NNEESSSSAA IINNSSTTIITTUUIIÇÇÃÃOO,, EEMM PPAARRTTIICCUULLAARR AA CCOOMMUUNNIIDDAADDEE
CCEETTEECC –– EEMM EEVVIIDDÊÊNNCCIIAA WWAALLDDEENNIICCEE,, PPEELLOOSS RREEEECCOONNTTRROOSS AAGGRRAADDÁÁVVEEIISS EE DDEESSCCOONNTTRRAAÍÍDDOOSS..
MMIINNHHAA SSAAUUDDAADDEE!!
AAOOSS MMEEUUSS CCOOLLEEGGAASS EE VVIIZZIINNHHOOSS DDOO CCHHAALLÉÉ CCAANNAAÃÃ,, PPEELLAA FFOORRÇÇAA EE AALLEEGGRRIIAA,, NNOOSS BBOONNSS
MMOOMMEENNTTOOSS QQUUEE AALLII PPAASSSSEEII.. MMIINNHHAA LLEEMMBBRRAANNÇÇAA !!
AAOOSS MMEEUUSS IIRRMMÃÃOOSS,, IIVVAALLDDIIRR,, LLÚÚCCIIAA ((CCUUNNHHAADDAA EE IIRRMMÃÃ)),, BBEEGGAA,, VVOONNAA ,, DDEETTAA EE AA MMOOCCIINNHHAA
((CCOOMMPPAANNHHEEIIRRAA DDEE MMIINNHHAA MMÃÃEE)) PPOORR TTEERREEMM MMEE DDAADDOO,, MMUUIITTAASS VVEEZZEESS,, AA TTRRAANNQQUUIILLIIDDAADDEE EEMM
EESSTTAARR LLOONNGGEE DDOOSS MMEEUUSS PPAAIISS.. MMEEUU AAPPOOIIOO!!
AAOOSS MMEEUUSS IIRRMMÃÃOOSS DDIIDDII,, IILLDDEETTEE EE NNIILLDDAA,, PPEELLAA CCRREEDDIIBBIILLIIDDAADDEE NNAASS MMIINNHHAASS LLUUTTAASS.. EEMM
EESSPPEECCIIAALL,, AA IIVVAANNIILLDDIINNHHOO QQUUEE SSEEMMPPRREE EESSTTEEVVEE PPRREESSEENNTTEE,, CCOOMM SSEEUUSS TTEELLEEFFOONNEEMMAASS DDEE
AAPPOOIIOO,, QQUUAASSEE DDIIAARRIIAAMMEENNTTEE,, NNOOSS MMOOMMEENNTTOOSS DDEE SSOOLLIIDDÃÃOO.. MMEEUU OORRGGUULLHHOO!!
AAOOSS MMEEUUSS SSOOBBRRIINNHHOOSS,, ÍÍTTAALLOO EE MMAARRIIEELLLLYY PPEELLOO AABBRRAAÇÇOO RREECCEEBBIIDDOO AA CCAADDAA RREETTOORRNNOO.. MMEEUU
CCAARRIINNHHOO!!
AA DD.. AANNAA MMEEIIRREELLEESS PPEELLOO CCUUIIDDAADDOO EE DDEEDDIICCAAÇÇÃÃOO.. MMIINNHHAA AADDMMIIRRAAÇÇÃÃOO!!
AA BBEETTHH,, AAMMIIGGAA EE IIRRMMÃÃ PPEELLOO AAMMOORR,, CCOONNFFIIAANNÇÇAA EE ZZÊÊLLOO.. MMIINNHHAA CCEERRTTEEZZAA!!
AA MMEEUU AAMMIIGGOO JJAANNDDUUHHYY,, SSEEMMPPRREE ““PPRREESSEENNTTEE”” CCOOMM EESSTTÍÍMMUULLOO EE MMOOTTIIVVAAÇÇÃÃOO.. MMEEUU DDIIVVÃÃ!!
9
AA JJOOÃÃOO FFRRAANNCCIISSCCOO,, MMEEUU AAMMIIGGOO GGRRAANNDDEE EE GGRRAANNDDEE AAMMIIGGOO,, PPOORR AAQQUUEELLEE EE AAQQUUEELLEESS
RREEEENNCCOONNTTRROOSS EENNEERRGGIIZZAADDOOSS DDEE CCAARRIINNHHOO EE AAMMIIZZAADDEE VVEERRDDAADDEEIIRRAA.. MMEEUU IINNCCEENNTTIIVVOO!!
AA BBEERRNNAARRDDIINNAA FFRREEIIRREE,, GGRRAANNDDEE AAMMIIGGAA,, PPEELLAA CCOONNTTRRIIBBUUIIÇÇÃÃOO DDAADDAA AATTRRAAVVÉÉSS DDEE SSEEUUSS
CCOONNHHEECCIIMMEENNTTOOSS EE EEXXPPEERRIIÊÊNNCCIIAASS AACCAADDÊÊMMIICCAASS;; PPEELLAA CCRREEDDIIBBIILLIIDDAADDEE;; PPEELLAASS
OOPPOORRTTUUNNIIDDAADDEESS ((UUNNIIPPÊÊ)).. MMIINNHHAA LLUUZZ!!
AA CCHHIICCOO DDAANNTTAASS,, PPEELLOO CCOOLLEEGGAA QQUUEE SSOOUUBBEE SSEERR TTÃÃOO BBEEMM,, AAJJUUDDAANNDDOO--MMEE CCOOMM SSEEUUSS
CCOONNHHEECCIIMMEENNTTOOSS EE EEXXPPEERRIIÊÊNNCCIIAA DDEESSDDEE OO PPRRIIMMEEIIRROO MMOOMMEENNTTOO AATTÉÉ HHOOJJEE.. PPEELLOO
VVEERRDDAADDEEIIRROO AAMMIIGGOO,, PPOORR MMUUIITTAASS VVEEZZEESS AAPPOOIIAANNDDOO--MMEE,, AATTRROOPPEELLAANNDDOO OOSS MMOOMMEENNTTOOSS
DDIIFFÍÍCCEEIISS EEMM FFAAMMÍÍLLIIAA ((HHOOSSPPIITTAALL)) PPAARRAA AAJJUUDDAARR--MMEE NNAASS RREEVVIISSÕÕEESS EE EESSTTIIMMUULLAARR CCOOMM SSEEUU
OOMMBBRROO EE CCAARRIINNHHOO.. UUMMAA CCOONNQQUUIISSTTAA IINNDDIISSCCUUTTÍÍVVEELL NNEESSSSAA MMIINNHHAA TTRRAAJJEETTÓÓRRIIAA.. MMEEUU ““TTUUDDOO””!!
EE FFIINNAALLIIZZOO CCOOMM OO IINNCCOONNDDIICCIIOONNAALL AAPPOOIIOO,, PPAACCIIÊÊNNCCIIAA,, PPRREESSEENNÇÇAA EE CCRREENNÇÇAA DDAA AAMMIIGGAA EE
IIRRMMÃÃ,, MMÁÁRRCCIIAA,, QQUUEE SSEE FFEEZZ PPRREESSEENNTTEE MMEESSMMOO EESSTTAANNDDOO AAUUSSEENNTTEE,, EEMM TTUUDDOO OO QQUUEE FFIIZZ.. NNÃÃOO
SSAABBEERRIIAA CCOOMMOO SSEERRIIAA SSEEMM SSUUAA PPRREESSEENNÇÇAA DDUURRAANNTTEE TTOODDAA EESSSSAA TTRRAAJJEETTÓÓRRIIAA.. UUMMAA TTOORRCCIIDDAA
CCEERRTTAA EEMM MMOOMMEENNTTOOSS IINNCCEERRTTOOSS;; UUMMAA CCEERRTTEEZZAA DDÊÊ UUMM PPOORRTTOO SSEEMMPPRREE SSEEGGUURROO.. MMIINNHHAA
CCUUMMPPLLIICCIIDDAADDEE!!
10
RREESSUUMMOO
Os problemas de otimização combinatória têm envolvido um grande número
de pesquisadores na busca por soluções aproximativas, desde a aceitação de
que, quando de grande porte, são considerados insolúveis na forma exata em
tempo polinomial. Inicialmente, essas soluções eram focalizadas por meio de
heurísticas. Atualmente, as metas-heurísticas são as mais utilizadas para
essa tarefa, especialmente aquelas baseadas em algoritmos evolucionários.
Diante dessa realidade, este trabalho traz uma visão geral não só da origem
evolucionária e de algumas das principais técnicas que se reúnem sob o
“guarda-chuva” desse paradigma, como também uma abordagem dos
algoritmos evolucionários bastante difundidos na literatura que são: os
Genéticos, Meméticos, bem como algoritmos mais recentes como os Culturais
e Transgenéticos. Buscando um enfoque mais amplo, fez-se necessário citar
outras abordagens como Colônia de Formigas e Nuvens de partículas,
baseados no comportamento de formigas e aves, respectivamente. O
Problema do Caxeiro Viajante foi escolhido como exemplo didático para
ilustrá-los, por ser um clássico na área. Por sim, relaciona-se um pequeno
resumo de trabalhos que fazem aplicação a cada método.
11
AABBSSTTRRAACCTT
The problems of combinatory optimization have involved a great number of
researchers in search of approximate solutions, from the acceptance that they are
considered insoluble in polynomial time. In the beginning, these solutions were
focused by means of heuristics. At present, the metaheuristics are more used for this
task, specially those based on evolutionary algorithms. By facing this reality, this
work brings a general vision not only about the origin of evolutionary computer
science and some of the main techniques that are put together under the umbrella of
this paradigm, as well as an approach of the evolutionary algorithms that are found in
literature, which are: Genetic Algorithms, Memetic Algorithms, as well as more recent
algorthms such as Cultural and Transgenetic ones. On looking for a broader focus, it
was necessary to talk about other approaches such as Ant Colony and Particle
Swarm, based on the behavior of ants and birds. The Traveling Salesman Problem
was chosen as a didactic example, as it is a classic in the area. Finally, a short
summary of works, which are applied to each method, is listed.
12
LLIISSTTAA DDEE FFIIGGUURRAASS
1. As girafas de pescoço mais longo alimentam-se das folhas................................34
2. Procedimento geral das abordagens darwinianas da Computação Evolucionária
(Gouvêa, 2001).........................................................................................................38
3. O Paradigma da Computação Evolucionária........................................................39
4. Representação inteira de um cromossomo para o PCV.......................................51
5. Representação Binária de um cromossomo para o PCV.....................................52
6. População com valor aptidão................................................................................58
7. Fitness dos cromossomos representados pelo método da roleta…………..…… 60
8. Esquema gráfico do cruzamento de um ponto..................................................... 65
9. Esquema gráfico do cruzamento uniforme….......................................…........ .....66
10. Esquema gráfico de ocorrência de mutação.......................................................67
11. Procedimento de busca local ..............................................................................91
12. Estrutura do Algoritmo Cultural............................................................................96
13. Direcionamento da Busca através de uma Base de Conhecimento....................98 14. Manipulação através da PGM...........................................................................112
13
LLIISSTTAA DDEE QQUUAADDRROOSS
1. Meta-Heurística abordadas……………………………………………………...…….19
2. As principais definições relacionadas com os Algoritmos Genéticos....................50
3. Algoritmo Genético Clássico .................................................................................54
4. Algoritmos Multi-objetivos………………………………………………………………76
5. Aplicação dos Algoritmos Genético 1985 – 2003…………………………………....81
6. Aplicação dos Algoritmos Genéticos 2004- 2005………………………….………...82
7. Pseudo-código do Algoritmo Memético. ................................................................89
88.. AApplliiccaaççããoo PPrrááttiiccaass ddooss AAllggoorriittmmooss MMeemmééttiiccooss……………………………………………………………………..…………9922
9. Pseudo-código do Algoritmo Cultural...................................................... ...........…99
10. Aplicação deAlgoritmos Culturais………………………………………………..…104
11. Métodos de Manipulação dos Agentes da Transgenética Computacionla…….111
12. Pseudo- código do Algoritmo Transgenético………………………………………115
13. Aplicação da Transgenético Computacional………………………………………118
14. Pseudo-código do Algoritmo Colônia de Formigas……………………………….124
15. Algoritmo Colônia de Formigas……………………………………………………..126
16. Aplicação para Colônia de Formigas……………………………………………….129
17. O pseudo-código do algoritmo Nuvem de Partícula...........................................134
18. Aplicação do Algoritmo Nuvem de Partículas……………………………………..137
14
SSUUMMÁÁRRIIOO
11.. IINNTTRROODDUUÇÇÃÃOO 1166 1.1 Otimização Combinatória..................................................................... 17 1.2 Computação Evolucionária................................................................... 19 1.3 O Problema do Caixeiro Viajante(PCV)…............................................ 20 1.4 Organização do Trabalho..................................................................... 22 22.. CCOOMMPPUUTTAAÇÇÃÃOO EEVVOOLLUUCCIIOONNÁÁRRIIAA 2233 2.1 Teorias da Evolução............................................................................ 24 2.1.1 Lamarck............................................................................................ 26 2.1.2 Johan Mendel................................................................................... 27 2.1.3 Thomas Malthus............................................................................... 29 2.1.4 Charles Darwin................................................................................. 31 2.1.4.1 As Girafas – um exemplo de Darwinismo...................................... 34 2.1.4.2 Constatações e Conclusões de Darwin ......................................... 35 2.2 Os Algoritmos Evolucionários.............................................................. 36 2.3 A Evolução Pós-Darwin....................................................................... 43 2.3.1 Teoria Sintética…............................................................................. 44 2.3.2 A Antropologia.................................................................................. 46 33 AALLGGOORRIITTMMOOSS GGEENNÉÉTTIICCOOSS 4477 3.1 Algumas definições.............................................................................. 48 3.2 Os Algoritmos....................................................................................... 49 3.2.1 Expressões Utilizadas....................................................................... 49 3.2.2 Tipos de Representação.................................................................... 51 3.2.2.1 Representação Binária................................................................... 52 3.2.2.2 Representação Inteira.................................................................... 52 3.3 Implementação dos AGs...................................................................... 53 3.3.1 População.......................................................................................... 55 3.3.2 Avaliação de aptidão(fitness) ..................................................... 57 3.3.3 Seleção ..................................................................................... 58 3.4. Variações de Métodos.......................................................................... 62 3.5 Operadores Genéticos........................................................................... 63 3.6 Parâmetros Genéticos........................................................................... 67 3.7 Considerações a respeito das dificuldades dos Algoritmos Genéticos..................................................................................................... 69 3.8 Teorema dos Schemas versus Blocos Construtores ........................... 70 3.9 Algoritmo Genético para Otimização MultiObjetivo.............................. 74
15
3.9.1 Alguns Algoritmos Evolucionários MultiObjetivos........................ 75 3.10 Ajuste de Parâmetros.................................................................... 76 3.11 Aplicações...................................................................................... 77 3.11.1 AG aplicados a PCV................................................................... 78 3.11.2 Outras Aplicações....................................................................... 80 3.12 Hibridização.................................................................................... 82 44.. AALLGGOORRIITTMMOOSS MMEEMMÉÉTTIICCOOSS 8844 4.1 Os Memes......................................................................................... 86 4.2 Idéia geral.......................................................................................... 87 4.3 Pseudo-código.................................................................................. 88 4.4 Aplicações......................................................................................... 91 55.. AALLGGOORRIITTMMOOSS CCUULLTTUURRAAIISS 9933 5.1 Pseudo-código de um Algoritmo Cultural.......................................... 98 5.2 Modelagem do um Algoritmo Cultural............................................... 101 5.3 Operadores Culturais......................................................................... 101 5.4 Aplicações......................................................................................... 102 5.4.1 Outras Aplicações........................................................................... 103 66.. TTRRAANNSSGGEENNÉÉTTIICCAA CCOOMMPPUUTTAACCIIOONNAALL 110044 6.1 Vetores Transgenéticos..................................................................... 108 6.1.1 O Vírus............................................................................................ 111 6.1.2 Partícula Genética Móvel................................................................ 111 6.2 Regras Transgenéticas. ....................................... ............................. 113 6.3 Pseudo-código.................................................................................... 114 6.4 Aplicações.......................................................................................... 116 77.. OOUUTTRRAASS AABBOORRDDAAGGEENNSS EEVVOOLLUUCCIIOONNÁÁRRIIAASS 111188 7.1 Colônia de formigas......................................................................... 118 7.1.1 A Otimização da Colônia de Formigas.......................................... 120 7.1.2 O Algoritmo Colônia de Formigas................................................. 122 7.1.3 Aplicação-PCV.............................................................................. 123 7.1.3.1 Outas Aplicações....................................................................... 127 7.2 Nuvem de Partículas.................................................................. ..... 128 7.2.1 Simulando o Comportamento Social............................................. 129 7.2.2 Vida Artificial................................................................................. 130 7.2.3 O Algoritmo por Nuvem de Partículas.......................................... 131 7.2.4 Controle de Parâmetros............................................................... 134 7.2.5 Aplicações..................................................................................... 135
16
88.. CCOONNCCLLUUSSÕÕEESS 113377 RREEFFEERRÊÊNNCCIIAASS 114411 AAPPEENNDDIICCEE AA –– PPRROOBBLLEEMMAA DDOO CCAAIIXXEEIIRROO VVIIAAJJAANNTTEE 115577
AAPPÊÊNNDDIICCEE BB –– BBUUSSCCAA LLOOCCAALL 116633 AANNEEXXOO II –– IINNSSTTÂÂNNCCIIAA PPAARRAA OO PPCCVV
17
11 IINNTTRROODDUUÇÇÃÃOO
Os problemas de otimização combinatória têm envolvido muitos pesquisadores na
busca de soluções aproximativas de boa qualidade para a classe de problemas NP-
Completos estabelecida por Cook (1971). Há fortes evidências de que não existe
algoritmo polinomial para solucionar problemas dessa classe. Essa constatação foi
reforçada por Karp (1972), que apresentou, em seu trabalho, 24 problemas NP-
Completos, tendo sido amplamente difundida por Garey e Johnson (1979).
Uma revisão a respeito da teoria da NP-Completude, apresentada por Campello e
Maculan (1994), referencia os problemas NP-Árduos como pelo menos tão difíceis
quanto qualquer problema NP-Completo. Incluíram, ainda, definições para
problemas de otimização combinatória, enfatizando que se justifica o uso de
heurísticas – algoritmos especializados na busca de soluções aproximadas de boa
qualidade – inclusive “para a obtenção de boas soluções viáveis iniciais para
diversos algoritmos exatos”. As heurísticas podem ser vistas como algoritmos que
18
exploram o espaço de soluções buscando mínimos ou máximos locais, dependendo
da função objetivo considerada (RAMOS, 2005) .
11..11 OOTTIIMMIIZZAAÇÇÃÃOO CCOOMMBBIINNAATTÓÓRRIIAA
Esse nome meio "assustador" esconde um conceito bastante simples. Suponha que
você possui um conjunto de itens e uma série de regras que podem ser usadas para
selecionar alguns elementos (itens) desse conjunto. Usando essas regras, há várias
maneiras diferentes de escolher os elementos e criar outros conjuntos menores (ou
subconjuntos). Se cada elemento estiver associado a um custo, os subconjuntos
criados, também, terão um custo que é dado, por exemplo, pela soma dos custos de
seus elementos (www.din.uem.br/~ademir). O problema de Otimização
Combinatória, em geral, se resume a encontrar, dentre todos os possíveis
subconjuntos, aquele cujo custo seja o menor ou maior possível.
Uma forma de resolver tais problemas seria simplesmente enumerar todas as
soluções possíveis e guardar aquela de menor custo. Entretanto, essa é uma idéia
ingênua, pois para a maioria dos problemas, esse método torna-se impraticável, já
que existe um elevado número de soluções possíveis. Mesmo que você utilize um
supercomputador para resolver o problema, o tempo de processamento pode ser de
várias horas, vários dias, anos ou séculos. Parece uma coisa absurda, mas estamos
rodeados de problemas práticos dessa natureza. Portanto, técnicas computacionais
mais apuradas são necessárias para resolver esses problemas.
19
•• AALLGGOORRIITTMMOOSS HHEEUURRÍÍSSTTIICCOOSS
Os Métodos Heurísticos são algoritmos que não garantem encontrar sempre a
solução ótima, ou seja, a melhor solução existente para o problema. No entanto,
são capazes de retornar uma solução próxima do ótimo em um tempo adequado
para as necessidades da aplicação.
•• MMEETTAA--HHEEUURRÍÍSSTTIICCAASS
A busca por soluções de qualidade para os problemas de otimização combinatória
tem sido focalizada, ultimamente, através das chamadas metaheurísticas –
algoritmos que exploram o espaço de soluções buscando mínimos (ou máximos)
globais e são consideradas heurísticas de uso geral ou heurística das heurísticas
(VIANA, 1998).
Uma meta-heurística é definida por uma estrutura genérica que deve ser seguida,
adaptando suas partes de acordo com o problema que se pretende resolver.
Diversas propostas de meta-heurísticas surgiram nos últimos anos. Dentre as meta-
heurísticas evolucionárias existentes, destacam-se as listadas no quadro a seguir:
20
QUADRO 1
Meta-Heurísticas abordadas
MMEETTAA-- HHEEUURRÍÍSSTTIICCAASS AABBOORRDDAADDAASS
Algoritmos Genéticos Holland, 1975
Simulated Annealing Kirkpatrick Et Al, 1983
Busca Tabu Glover, 1985
Algoritmos Meméticos Moscato, 1989
Algoritmos Culturais Reynolds, 1994
Colônia de Formigas Dorigo, 1992
Nuvem de Partículas Kennedy e Eberhart,1995
Transgenética Computacional Gouvêa, 2001
11..22 CCOOMMPPUUTTAAÇÇÃÃOO EEVVOOLLUUCCIIOONNÁÁRRIIAA
No campo da Ciência da Computação, encontra-se uma área que possui seu estudo
voltado para uma teoria baseada nos conceitos da evolução natural do seres vivos,
denominada Computação Evolucionária (CE).
A CE compreende todos os algoritmos inspirados em aspectos essenciais da
evolução natural e os aplica na solução de problemas em geral. Essa área, de
acordo com certas particularidades, possui subdivisões: algoritmos genéticos,
programação genética, programação evolutiva, estratégias evolutivas, entre outras.
21
O interesse em técnicas de resolução dos problemas inspirados em processos
biológicos tem sido crescente nas últimas décadas. Tal fato se justifica pela grande
complexidade associada aos problemas, por exemplo, os de natureza combinatória,
o que torna proibitiva a aplicação de métodos exatos para resolução dos mesmos
(LEWIS e PAPADIMITRIOU, 1981).
Diante dessa realidade, este trabalho tem por objetivo fazer um estudo detalhado da
CE, explorando sua teoria desde os seus primórdios até os dias atuais. Serão
apresentados os Algoritmos Evolucionários (AEs) mais utilizados, provendo ao leitor
um conhecimento necessário para aplicá-los na resolução de problemas de
otimização combinatória.
Para fim didático, todos os algoritmos apresentados neste trabalho, utilizarão o
clássico Problema do Caixeiro Viajante (LAPORTE, 1992) exemplificados através do
banco de instâncias TSPLIB – Burna14 (ANEXO I), pelo fato de ser amplamente
conhecido e difundido no campo das ciências exatas em geral.
11..33 OO PPRROOBBLLEEMMAA CCLLÁÁSSSSIICCOO DDOO CCAAIIXXEEIIRROO VVIIAAJJAANNTTEE ((PPCCVV))
O Problema do Caixeiro Viajante é um dos mais proeminentes dentro de um amplo
conjunto de problemas de otimização e por isso, tem atraído pesquisadores de
diferentes campos: pesquisa operacional, matemática, física, biologia, inteligência
artificial, entre outros. Isso se deve ao fato da simplicidade da sua definição:
22
encontrar uma rota de menor distância ou custo que passa por um conjunto de
cidades, sendo cada cidade visitada exatamente uma vez (LAPORTE, 1992).
O interesse da comunidade científica pelo PCV tem três razões principais. A
primeira, prende-se ao fato deste ser um representante de uma classe muito vasta
de outros problemas de Otimização Combinatória. A segunda reside na
simplicidade de sua formulação e na dificuldade de sua resolução. A terceira, Karp
(1972) provou que o PCV é um problema que pertence a categoria de NP-completo.
11..44 OORRGGAANNIIZZAAÇÇÃÃOO DDOO TTRRAABBAALLHHOO
Este trabalho está estruturado em 8 capítulos (esta introdução corresponde ao
capítulo 1) e 2 apêndices, cujos conteúdos estão descritos a seguir:
O capítulo 2 introduz uma abordagem teórica sobre a Computação Evolucionária,
desmistificando o tema através de um breve histórico, começando com os primeiros
pesquisadores da área, chegando até a sua aplicabilidade na resolução dos
problemas.
O capítulo 3 apresenta os Algoritmos Genéticos, de forma clara e objetiva, fazendo
uma relação entre os conceitos da biologia com os termos utilizados nas aplicações
computacionais, apresentando de modo geral o funcionamento de um genético
aplicado ao PCV e por fim, relacionando algumas aplicações.
23
O capítulo 4 traz os algoritmos genéticos híbridos que utilizam um critério de busca
local, denominados Algoritmos Meméticos. São apresentados os conceitos
adicionais necessários ao tema exemplificados através de um memético aplicado ao
PCV. Cabe aqui destacar os ganhos obtidos com essa nova técnica, citando
aplicações.
No capítulo 5 aborda um modelo que pertence ao processo de Evolução Cultural,
chamado Algoritmo Cultural. É mostrado então, o processo de evolução cultural, sua
estrutura e seu pseudo-algoritmo.
O capítulo 6 introduz a Transgenética Computacional. Tráta-se de uma abordagem
evolucionária baseada na simbiogênese. São apresentados um rápido histórico,
seus agentes, um pseudo-algoritmo e algumas aplicações.
O capítulo 7 enfoca a Colônia de Formigas e a Nuvem de Partículas. Ambas,
apesar de não serem baseadas na Teoria Darwiniana, merecem destaques por
terem sua evolução através do comportamento.
Já o capítulo 8 traz uma conclusão referente aos capítulos abordados.
Por fim, têm-se 2 apêndices. o apêndice A que apresenta de forma elucidatória, o
problema clássico do Caixeiro Viajante e o apêndice B, as técnicas de busca local.
24
22 CCOOMMPPUUTTAAÇÇÃÃOO EEVVOOLLUUCCIIOONNÁÁRRIIAA
A Computação Evolucionária abrange métodos computacionais inspirados em
Teorias da Evolução das Espécies, tendo grande aplicação em problemas de
otimização nas mais diversas áreas do conhecimento.
Segundo Yao (1996) a Computação Evolucionária trabalha com um reservatório de
informações codificadas em um formato que imita a informação genética
(cromossomos) e opera segundo uma lógica que permite que tais unidades troquem
informações entre si.
Conforme Eberhart et al (1996) a Computação Evolucionária consiste na otimização
do aprendizado de máquina e em paradigmas de classificação, baseados nos
mecanismos de evolução, tais como: Genética e Seleção Natural.
25
22..11 TTEEOORRIIAASS DDEE EEVVOOLLUUÇÇÃÃOO
Quando a evolução foi proposta, pela primeira vez, para explicar certos fatos
enigmáticos da vida, ela foi obstada por muitas pessoas, porque contradisse a
doutrina religiosa em que acreditavam. A princípio, o paradigma científico da
evolução era muito menos amplo que hoje. Não havia corroboração e muitas das
suposições em que hoje está fundamentado, de modo que mesmo alguns cientistas
estavam inseguros de que a idéia pudesse persistir.
Entretanto, com o passar do tempo, o paradigma evolutivo desenvolveu-se e
consolidou-se até que, atualmente, parece ser inabalável. Na verdade, muitas
pessoas não encontram dificuldade em conciliar suas crenças com as descobertas
científicas sobre evolução.
A maior dificuldade é a doutrina da criação, que sustenta que o mundo foi criado por
uma divindade e não evoluiu como um resultado das propriedades inerentes à
matéria. O criacionismo e crenças religiosas a fins são impossíveis de formulação
em um molde científico (AYALA, 1979).
Não pode haver exame científico do criacionismo porque a hipótese não pode ser
refutada, mesmo em princípio. Uma divindade com o poder de criar a Terra e sua
vida, ou o universo inteiro, é essencialmente uma entidade onipotente, além da
capacidade de descobrir do método científico. Quaisquer resultados de atividade
divina estão claramente além da capacidade de detectar do método científico, se a
divindade desejou ocultá-los. A falta de provas demonstrativas da criação divina
26
pode sempre ser interpretada como devida ao desejo do criador. Como a hipótese
do criacionismo não é refutável, fica inteiramente fora do alcance da ciência (AYALA,
1979).
Teorias evolucionárias têm sido uma fonte de inspiração para diversos
pesquisadores em lidar com problemas combinatórios. A evolução também pode
ser pensada como um método de adaptação às mudanças ambientais, porém, do
ponto de vista computacional, essa linha de raciocínio tem sido pouco explorada. Os
algoritmos baseados em metáforas de evolução são chamados de Algoritmos
Evolucionários (AEs). O desenvolvimento desses algoritmos tem por objetivo
solucionar problemas complexos modelando-os através da metáfora da evolução
biológica.
A evolução biológica é o resultado da diversidade de organismos biológicos que
interagem com o meio ambiente, retirando deste meio as suas condições de vida e,
por sua vez modificando-o. Como os organismos são diferentes, alguns encontram
condições de vida e possibilidade de reprodução maior que outros e assim seu
número tende a aumentar pelo processo chamado seleção natural.
O mecanismo de seleção pode ser considerado como uma busca constante de
maior eficiência. Isto se manifesta no aparecimento das primeiras moléculas, onde a
molécula mais complexa necessita de menor energia para existir que as de seus
constituintes e também na formação de organismos mais complexos.
27
Alguns teóricos, clássicos, contribuíram de forma significativa para o campo da s
Teorias de Evolução como mostra as próximas seções.
22..11..11 LLaammaarrcckk
A primeira teoria sobre a evolução das espécies é laborada
pelo naturalista francês Jean-Baptiste de Lamarck em 1809
(ano em que nasce Charles Darwin). A capacidade dos
seres vivos de mudar e evoluir já havia sido observada e
registrada por muitos estudiosos, mas é apenas com Lamarck que surge a primeira
hipótese sistematizada.
� Adaptação ao Meio
Lamarck diz que os seres vivos evoluem "sem saltos ou cataclismos" de forma "lenta
e segura". Para se adaptar melhor ao meio, os seres vivos se modificam a cada
geração. A girafa, por exemplo, teria desenvolvido um pescoço comprido para se
alimentar das folhas de árvores muito altas. Os órgãos que são menos usados
atrofiam, de geração em geração, e desaparecem. Isto faz parte da primeira lei de
Lamarck chamada lei do uso e desuso 1. Essa lei encerra uma verdade apenas
parcial, pois o ambiente só modifica características fenotípicas dentro de certos
limites predominantes pelo genótipo (norma de reação do genótipo).
1 Para algumas características o uso e o desuso não têm nenhuma influência.
28
� Caracteres adquiridos
Para Lamarck, as características que um animal adquire durante sua vida podem ser
transmitidas hereditariamente. Um animal que perde parte de sua cauda, por
exemplo, pode ter filhos com a cauda curta. No entanto, por tudo que sabemos hoje,
somente uma modificação nos genes (mutação) poderá ser transmitida às gerações
seguintes.
Entre 1870 e 1875, o biólogo alemão Weismann estabeleceu a existência de duas
linhagens de células germinativas (originam gametas) e somáticas (formam corpo),
mostrando que somente as modificações surgidas na linhagem germinativa se
transferem aos descendentes.
22..11..22 JJoohhaannnn MMeennddeell
Johann Mendel, pioneiro descobridor das leis da herança
genética, nascido em Heinzendorf, na Silésia austríaca, região
pertencente ao atual território da República Tcheca, seguiu
desde cedo à vida religiosa, ordenando-se frade em 1847 no
monastério agostiniano de Brunn (atual Brno). Já havia
realizado estudos de Filosofia e, após a ordenação, que lhe consagrou suas
atividades no ensino de Filosofia, ingressou na Universidade de Viena em 1851.
29
Voltou a Brunn em 1854, dedicando-se até 1868 ao ensino de História Natural e
Matemática.
Filho de camponeses, Mendel adquiriu um grande senso na observação dos
fenômenos da natureza desde cedo. No período em que voltou a Brunn para
lecionar, dedicou-se também às suas famosas experiências no cruzamento entre
diversas variedades de plantas de ervilha, realizadas na horta do monastério onde
vivia. Foi a partir destas experiências que Mendel estabeleceu as leis que hoje
levam seu nome. Chegou a realizar centenas de cruzamentos entre plantas de
características diferentes, porém da mesma espécie, tomando notas estatísticas de
todos os resultados, tendo observado que determinadas características das plantas
resultantes de sucessivos cruzamentos predominavam em proporção constante. Do
resultado de suas observações foi originado seu trabalho publicado em 1866, sob o
título “Experimentos com Plantas Híbridas”, em que Mendel formulou suas três
teorias básicas; aí estabeleceu o que conhecemos hoje por “Leis de Mendel”.
A primeira Lei de Mendel é também conhecida por princípio da segregação dos
caracteres, em que as células sexuais, masculinas ou femininas, devem conter
apenas um fator para cada característica a ser transmitida. A segunda lei trata-se
do princípio da independência dos caracteres, ou seja, cada característica
hereditária é transmitida independentemente das demais. Na terceira lei, Mendel
formulou os conceitos da dominância, em que os seres híbridos apresentam um
caráter dominante que encobre segundo determinadas proporções o chamado
caráter recessivo, ou seja, os seres híbridos, resultados do cruzamento entre seres
portadores de caracteres dominantes e recessivos, apresentam as características de
30
dominância. O trabalho de Mendel só passou a obter grande reconhecimento no
meio científico no início do século XX, tendo sido precursor dos posteriores estudos
dos cientistas Hugo de Vries, Karl Erich Correns e Erich Tschermak. Estes três
pesquisadores realizaram, independentemente, muitas das experiências baseadas
na obra de Mendel, tendo então chamado a atenção do mundo científico para as
descobertas do precursor, atribuindo a ele a descoberta das Leis da
Hereditariedade.
Atualmente sabe-se que as teorias de Mendel são apenas parcialmente válidas:
tornou-se parcial a afirmação contida na lei da dominância através dos estudos
posteriores, assim a descoberta de que um único gene pode ser responsável pela
transmissão de mais de um caráter tornou relativa à lei da independência dos
caracteres. No entanto, será sempre atribuído a Mendel o primeiro grande salto na
história da ciência quanto à formulação das teorias sobre os mecanismos que regem
a transmissão de caracteres hereditários.
22..11..33 TThhoommaass MMaalltthhuuss
O economista e demógrafo britânico Thomas Malthus ficou
conhecido, sobretudo, pela teoria segundo a qual o
crescimento da população tende sempre a superar a
produção de alimentos, o que torna necessário o controle
da natalidade.
31
Thomas Robert Malthus nasceu entre 14 e 17 de fevereiro de 1766, em Rookery,
Surrey, Inglaterra. Seu pai era amigo do filósofo David Hume e seguidor ardoroso
de Jean-Jacques Rousseau. O jovem Malthus fez seus primeiros estudos na casa
paterna e, em 1784, ingressou no Jesus College, de Cambridge, onde se formou
quatro anos mais tarde. Ordenou-se sacerdote da Igreja Anglicana em 1797.
Em 1798, Malthus publicou anonimamente seu Essay on Population (Ensaio sobre a
população), no qual afirma que a população cresce em progressão geométrica,
enquanto a produção de alimentos aumenta em progressão aritmética. A solução
para evitar epidemias, guerras e outras catástrofes provocadas pelo excesso de
população, consistiria, segundo ele, na restrição dos programas assistenciais
públicos de caráter caritativo e na abstinência sexual dos membros das camadas
menos favorecidas da sociedade.
Malthus era um pessimista que considerava a pobreza como um destino ao qual o
homem não pode fugir. Sua obra foi ao mesmo tempo criticada e aplaudida.
Enquanto alguns setores da sociedade o acusavam de ser cruel, indiferente e até
mesmo imoral, economistas de renome apoiavam suas teorias. Na segunda edição
da obra, de 1803, Malthus modificou algumas teses mais radicais da primeira
edição. Com o tempo, o "malthusianismo" foi incorporado à teoria econômica,
atuando como freio de teses mais otimistas. Na segunda metade do século XX, os
problemas demográficos mundiais revitalizaram as concepções de Malthus, embora
a agricultura intensiva tenha permitido aumento de produção muito maior do que os
previstos por ele.
32
A partir de 1805, Malthus tornou-se professor de história e economia política em
Haileybury. Eleito membro da Royal Society em 1819, nos anos seguintes recebeu
grande número de homenagens e honras acadêmicas. Malthus morreu em Saint
Catherine, Somerset, em 23 de dezembro de 1834.
22..11..44 CChhaarrlleess DDaarrwwiinn
Charles Darwin, um naturalista, que viveu na Inglaterra
entre 1809 e 1882, tinha um interesse pela evolução, que
nasceu de uma viagem ao redor do mundo. Nessa época
ele tinha 22 anos, e a viagem durou cinco anos. Durante
essa viagem, Darwin coletou vários exemplares de
animais, plantas e fósseis e fez observações sobre as diferenças que encontrava
entre indivíduos da mesma espécie.
Após a sua viagem, em 1837, começou a estudar mais detalhadamente os animais
domésticos. Concluiu que as raças de organismos domésticos (galinhas, pombos
etc.) foram criadas pelo homem, que escolhia os indivíduos para os cruzamentos.
De geração em geração, ao longo dos anos, eram reproduzidos os indivíduos que
possuíam uma determinada característica que fosse de interesse e, ao mesmo
tempo, outros indivíduos eram impedidos de se reproduzir. A isto chamamos de
seleção artificial. Deste modo, eram obtidas novas raças e variedades que
interessavam ao homem.
33
Darwin estava convencido de que as espécies se modificavam, e a partir de então
começou a se perguntar: “Como elas mudavam na natureza?” Para elucidar esta
questão, ele passou a estudar os fósseis2.
Ao comparar os fósseis de diferentes camadas geológicas, Darwin concluiu que os
seres vivos vinham se modificando ao longo do tempo, e que algumas
características de animais extintos continuavam existindo em animais atuais. As
camadas mais recentes mostravam fósseis de organismos mais semelhantes aos
seres viventes. Por exemplo, foi encontrado na patagônia o fóssil de um mamífero
gigantesco, já extinto, muito semelhante ao tatu que vive na América do Sul.
Com base nos fósseis, podemos obter uma série de informações a respeito do
hábito de vida dos organismos do passado.
Apesar de todos os estudos realizados, Darwin ainda procurava uma comprovação
da ocorrência da modificação das espécies. Em 1838, ele conheceu a teoria de
Malthus sobre o crescimento populacional.
As populações poderiam, teoricamente, crescer muito rápido. Mas isso não era
observado na prática. Para explicar a manutenção de níveis mais ou menos
constantes no tamanho da população, ele achava que deveria existir uma “luta pela
vida”. Indivíduos diferentes que possuíssem características favoráveis seriam
2Fóssil é qualquer vestígio petrificado de um ser vivo que já habitou o nosso planeta, como uma
pegada, uma folha, um pedaço de osso.
34
selecionados, isto é, ao longo do tempo, iriam desaparecer as características
desvantajosas ao meio. Desse modo, os indivíduos mais aptos sobreviveriam e
deixariam um maior número de descendentes. Com o passar do tempo, as
diferenças iriam se acentuando a ponto de se constituírem espécies novas,
diferentes dos tipos originais.
Darwin escreveu, então, um dos princípios da teoria da evolução: a seleção natural,
que dizia que as populações não poderiam crescer demais, pois o meio agiria sobre
elas selecionando apenas os indivíduos que estivessem adaptados às condições do
ambiente.
Ele também elaborou toda a sua teoria com base nos dados coletados em sua
viagem, em observações de animais domésticos e na análise de trabalhos de outros
pesquisadores. Ele conseguiu reunir várias idéias em uma mesma teoria: o
Darwinismo ou Teoria da Evolução.
A teoria descrita por esse naturalista para explicar como as espécies animais e
vegetais evoluem diz que o meio ambiente seleciona os seres mais aptos. Em geral,
só estes conseguem se reproduzir e os menos dotados são eliminados. Assim, só
as diferenças que facilitam a sobrevivência são transmitidas à geração seguinte. Ao
longo das gerações, essas características firmam-se e geram uma nova espécie.
35
22..11..44..11 AAss ggiirraaffaass -- uumm eexxeemmpplloo ddee DDaarrwwiinniissmmoo
Darwin observou que nas populações atuais de girafas, todos os indivíduos
possuíam pescoços longos, como mostra a figura 2. Os ancestrais das girafas, de
acordo com os fósseis, tinham pescoço mais curto. Darwin explicava a evolução da
população de girafas dizendo que no passado havia uma pequena variação no
comprimento do pescoço entre os indivíduos das populações ancestrais.
Os indivíduos que possuíam pescoço longo conseguiam alcançar os ramos mais
altos das árvores. Assim, girafas de pescoço longo tinham maior oferta de alimento
e mais chance de sobreviver e de deixar descendentes.
Desse modo, a seleção natural privilegiava os indivíduos que possuíam pescoço
mais comprido. Após milhões de anos, as girafas de pescoço curto desapareceram
e a população de girafas ficou composta apenas por indivíduos de pescoço longo.
Na verdade elas tinham desenvolvido um pescoço comprido para se alimentar das
folhas de árvores muito altas. Os órgãos que são menos usados atrofiam, de
geração em geração, e desaparecem.
Figura 1 – As girafas de pescoço mais longo alimentam-se das folhas
36
22..11..44..22 CCoonnssttaattaaççõõeess ee ccoonncclluussõõeess ddee DDaarrwwiinn
a) Constatações
� As populações têm potencial para crescer rapidamente, porém não o fazem
porque há predadores, parasitas, escassez de alimento e expansão, etc;
� Muitos indivíduos morrem sem deixar descendentes. As mortes são causadas
pelas condições ambientais. Os que sobrevivem estão mais aptos a enfrentar
tais condições e assim deixam descendentes;
� Devido à variação existente entre indivíduos da mesma espécie é possível
que alguns sobrevivam quando há mudanças das condições do meio.
b) Conclusões
� Os indivíduos que conseguem sobreviver e se reproduzir possuem
características adaptadas ao meio. Este é o princípio da seleção natural;
� A seleção natural favorece a permanência de características adaptativas e o
número de indivíduos com tais características, irá aumentar a população ao
longo do tempo.
37
22..22 OOSS AALLGGOORRIITTMMOOSS EEVVOOLLUUCCIIOONNÁÁRRIIOOSS
Os Algoritmos Evolucionários (AEs) são algoritmos baseados na teoria da evolução
apresentada nas seções anteriores. Segundo Yao (1999), todos os algoritmos
evolucionários possuem duas características particulares que os distinguem dos
demais algoritmos. A primeira delas é que todos os Algoritmos são baseados em
uma população de indivíduos. A segunda característica compreende a comunicação
e a troca de informação entre os indivíduos da população, que são resultados das
etapas de seleção e recombinação/manipulação nos primeiros Algoritmos
Evolucionários.
De acordo com a definição de Yao, considerando a segunda característica, Colônia
de Formigas e Nuvem de Partículas são abordagens evolucionárias, partindo do
princípio que a troca de informações é feita, tanto pelos feromônios deixados pelas
formigas, quanto pelas partículas voadoras, respectivamente.
Nos algoritmos pioneiros o processo evolucionário é simulado por procedimentos
chamados de regras de seleção, recombinação e mutação. Cada indivíduo é
avaliado e a ele é atribuído um valor de aptidão que guia o processo de reprodução
direcionando-o ao favorecimento dos indivíduos de maior adequação.
Assim como todas as metaheurísticas, os algoritmos evolutivos são suficientemente
genéricos para serem aplicados a uma variedade de problemas ao invés de um
38
problema específico (MICHALEWICZ e FOGEL, 1998). Entretanto, diversas
decisões são específicas do problema abordado.
Os dados dos algoritmos evolucionários consistem em uma população de objetos
abstratos (por exemplo, estruturas simbólicas, redes neurais, palavras de um
alfabeto, variáveis de um problema de otimização, programas de computador, etc).
Estes objetos são manipulados por operadores inspirados nas regras da seleção e
outros na evolução biológica ou operadores genéticos que agem como operadores
de busca na solução de um determinado problema. Cada indivíduo da população
tem um certo grau de aptidão, o qual depende do ambiente. Os indivíduos de maior
aptidão podem se reproduzir mais facilmente. Dessa forma, a população tem a
tendência de, após várias gerações, ter elementos com altos valores de aptidão.
A Figura 2 (GOUVÊA, 2001) resume o procedimento geral dessa abordagem.
Historicamente, as primeiras técnicas de desenvolvimento de algoritmos
evolucionários basearam-se na seleção natural de Darwin.
Os algoritmos originários dessas abordagens caracterizam-se por manter uma
população de estruturas (quadros 1, 3, 5 e 7 da Figura 2), que evolui de acordo com
regras de seleção (quadro 4 da Figura 2) e outros operadores, tais como os de
recombinação e mutação (quadros 6 e 8 da Figura 2). A estratégia prevê a
avaliação dos indivíduos em relação à sua adequação ao meio-ambiente (quadro 2
da Figura 2), de modo a que o processo de reprodução possa, de uma forma geral,
ser direcionado ao favorecimento dos indivíduos de maior adequação.
39
(1) População não
avaliada
(0) Geração
População
(2) Mecanismo adequação
(4) Mecanismo de Seleção
(5) População
Selecionada Recombinação
ooo
(8) Mecanismo
Mutação
(6) Mecanismo
Recombinação
(7) População de Descendentes
Figura 2 - Procedimento geral das abordagens darwinianas da Computação Evolucionária
O funcionamento desses algoritmos envolve toda uma gama de mecanismos
inspirados na evolução biológica, à maioria deles considerando principalmente os
mecanismos de seleção natural.
A evolução biológica exige diversidade. Na natureza a diversidade deriva, no caso
dos seres que se reproduzem por mitose, de mutações, e no caso da reprodução
sexuada a cada reprodução.
No contexto biológico, pensar na evolução como um fator meramente advindo de
mecanismos de seleção, não é de fato apropriado. Há que se considerar quaisquer
fatores funcionalmente significativos que sejam responsáveis em um dado contexto
pelo diferencial de sobrevivência dos genes, sistemas de interação gênica,
genomas, grupos, populações e espécies (GOLDBARG e GOUVÊA, 2001). As
conseqüências funcionais dos genes ou grupos de genes são as principais
40
responsáveis pela determinação do destino dos indivíduos. Se por um lado a
simples modelagem da Seleção Natural pode ser uma tarefa bastante difícil de
realiza, por outro ela não é suficiente para modelar a evolução biológica (BEHE,
1996).
Inicialmente, a Computação Evolucionária foi classificada através do paradigma
clássico e posteriormente, outros modelos surgiram, conforme mostra a Figura 4. Os
algoritmos genéticos como os outros, serão abordados individualmente por
capítulos.
Figura 4 – O paradigma da Computação Evolucionária
CCOOMMPPUUTTAAÇÇÃÃOO EEVVOOLLUUCCIIOONNÁÁRRIIAA
PPAARRAADDIIGGMMAA
CCLLÁÁSSSSIICCOO
PPRROOGGRRAAMMAAÇÇÃÃOO
EEVVOOLLUUCCIIOONNÁÁRRIIAA
EESSTTRRAATTÉÉGGIIAASS
EEVVOOLLUUCCIIOONNÁÁRRIIAASS
Programação Genética
AALLGGOORRIITTMMOOSS
GGEENNÉÉTTIICCOOSS
OOUUTTRROOSS
MMOODDEELLOOSS
AALLGGOORRIITTMMOO
MMEEMMÉÉTTIICCOO
AALLGGOORRIITTMMOO
CCUULLTTUURRAALL
Algoritmo Transgenético
AALLGGOORRIITTMMOO DDEE FFOORRMMIIGGAASS
AALLGGOORRIITTMMOO NNUUVVEEMM DDEE
PPAARRTTÍÍCCUULLAASS
41
aa)) PPRROOGGRRAAMMAAÇÇÃÃOO EEVVOOLLUUCCIIOONNÁÁRRIIAA
A Programação Evolucionária foi desenvolvida por Lawrence J. Fogel em 1960,
onde utiliza-se de uma população de soluções candidatas para evoluir uma resposta
de um determinado problema. Enfatiza a relação comportamental entre os pais e
seus descendentes diretos, ao invés de simular os operadores genéticos, como
ocorre na natureza, ou seja, seu objetivo está em desenvolver modelos
comportamentais.
Através do livro “Artificial Intelligence Through Simulated Evolution”, de Fogel
(1999), é que a Programação Evolucionária se popularizou, sendo que a primeira
conferência sobre o tema foi realizada em 1992, em La Jolla, Califórnia (FOGEL,
1992).
Para maiores detalhes sobre a Programação Evolucionária, ver Fogel (2000) ou
Eberhart et al (1996).
bb)) EESSTTRRAATTÉÉGGIIAASS EEVVOOLLUUCCIIOONNÁÁRRIIAASS
As Estratégias de Evolução (EE) s.ao um outro algoritmo evolucionário, proposto por
Ingo Rechenberg, no inicio da década de 70, com o objetivo de definir um conjunto
de procedimentos para otimização de funções. Posteriormente foram bastante
desenvolvidos por Back et al (1997). Caracterizam-se por trabalhar com cadeias de
números reais e por incluírem parâmetros, denominados parâmetros estratégicos,
que controlam o próprio andamento do algoritmo.
42
As Estratégias Evolucionárias diferem da Programação Evolucionária com relação
às operações de seleção e recombinação, porque a Programação Evolucionária
utiliza o método estocástico3 e competitivo, onde após a geração de cada elemento,
este é submetido à competição com um certo número de oponentes, podendo
morrer caso o oponente seja mais forte; em Estratégias Evolucionárias, a seleção é
determinística, sendo a morte determinada diretamente pela avaliação da aptidão
dos indivíduos da população.
Já no processo de recombinação a Programação Evolucionária inspira-se na
evolução ao nível populacional. Os indivíduos com quem um novo elemento deve
competir podem ser considerados como uma espécie. Os grupos de indivíduos são
fixos, com exceção dos novos, que nasceram e conseguiram sobreviver. Indivíduos
de espécies diferentes não se cruzam; em Estratégias Evolucionárias a inspiração é
ao nível do indivíduo, não se leva em consideração a informação do fenótipo dos
indivíduos.
Para maiores detalhes sobre as Estratégias Evolucionárias, ver Fogel (2000) ou
EBERHART et al (1996).
cc)) PPRROOGGRRAAMMAAÇÇÃÃOO GGEENNÉÉTTIICCAA
A Programação Genética é um paradigma que se caracteriza por evoluir programas
computacionais hierárquicos, normalmente representados por estruturas de árvores,
de tamanhos, formato e complexidade variáveis.
3 Um processo estocástico é um processo onde a ocorrência de eventos se dá através de leis probabilísticas, ou seja, as características do processo são descritas por variáveis aleatórias.
43
O objetivo da Programação Genética é evoluir um determinado programa, através
da busca de programas em potencial, que forneça saídas desejáveis de acordo com
as entradas.
No programa genético padrão, todos os valores e funções assumem o mesmo tipo,
embora as funções possam variar na quantidade de argumentos. Esse princípio
permite que qualquer sub-árvore seja considerada estruturalmente igual a qualquer
outra sub-árvore, assegurando que os operadores, como o cruzamento de sub-
árvore, produzam descendentes válidos.
Juntas, as quatro áreas, Estratégias Evolucionárias, Programação Evolucionária,
Programação Genética e Algoritmos Genéticos ( próximo capítulo) formam a base
clássica da Computação Evolucionária. Assim como os Genéticos, as novas
abordagens serão tratadas separadamente nos próximos capítulos.
22..33 AA EEVVOOLLUUÇÇÃÃOO PPÓÓSS--DDAARRWWIINN
Teoria da Sintética
Uma modificação revolucionária de atitude em relação ao Darwinismo pode ser
marcada pela publicação, em 1937, do livro "Genetics and the origin of species" de
Theodosius Dobzhansky (1992). Dobzhansky combinou os trabalhos de
Tshetverikoff, Wright, Fisher e Haldane a uma riqueza de evidências experimentais
para mostrar que a seleção natural é, na maioria dos casos, o único agente eficaz
das modificações evolutivas, exatamente como foi proposto por Darwin. Para todos
os efeitos, Dobzhansky mostrou que o Darwinismo e as descobertas da genética
44
eram compatíveis. Novas espécies usualmente originam-se pelo acúmulo de genes
diferentes em populações da mesma espécie parental, isoladas reprodutivamente.
Essa populações tornam-se tão diferentes que não podem retrocruzar com a
população parental e podem, portanto, ser reconhecidas como espécies distintas.
Depois do livro de Dobzhansky, vários autores importantes, entre eles George
Simpson, Ernst Mayr e Ledyard Stebbins, confirmaram que esse modelo revitalizado
do Darwinismo explica uma ampla gama de fatos morfológicos, paleontológicos,
biogeográficos e ecológicos sobre plantas e animais semelhantes. O paradigma
Darwiniano tornou-se impregnado com as descobertas da genética e outros ramos
da biologia, emergindo com um conteúdo de informações e capacidade explicativa
amplamente desenvolvidas. Esse novo paradigma é geralmente chamado de Teoria
Sintética da Evolução, porque resultou de uma síntese das descobertas de várias
disciplinas científicas.
A Teoria Sintética da evolução consiste em uma releitura da teoria da evolução das
espécies proposta por Darwin, a partir de dados experimentais provenientes
particularmente da biologia molecular e da genética. Ela recebeu esse nome por se
tratar de um esforço teórico que fazia uma síntese da Teórica Clássica (darwiniana)
com a Teoria Genética proposta por geneticistas e matemáticos no primeiro terço do
nosso século (HULL, 1975). Entretanto, ao fazer isso, estes cientistas na verdade
abandonam a Teoria da Seleção Natural, e com ela, a importância do modo de vida
no transcurso da evolução das espécies. Por outro lado, eles fixam a estrutura e o
45
determinismo estrutural dos seres vivos em um de seus componentes, o genoma,
afirmando que até mesmo a conduta de um ser vivo é determinada geneticamente.
A Teoria Sintética da Evolução considera que o processo evolutivo resulta de vários
mecanismos interativos:
� Mecanismos que dão origem à variabilidade genética: mutação de genes,
variações no número e estrutura cromossômica e recombinação genética. Sem
variabilidade genética a evolução não poderia ter lugar.
� Mecanismos que guiam as populações de organismos através "canais
adaptativos": (1) a seleção natural e (2) o isolamento reprodutor. Ambos os
mecanismos foram reconhecidos por Darwin;
� Migrações, hibridização e acaso são mecanismos subsidiários dos anteriores.
Quer a migração de indivíduos de uma população para outra, quer a hibridização
entre sub-populações, aumentam o potencial de variabilidade genética
disponível. Os efeitos do acaso só são reconhecíveis em populações pequenas
ou em catástrofes (extinções massivas), em cujos casos pode alterar a direção
da seleção natural.
Nesta perspectiva surgem novas noções como:
46
Lei de HARDY-WEINBERG:
Em condições de estabilidade ambiental, existe um equilíbrio na composição
genética global de uma população (Seleção estabilizadora 4).
A evolução só ocorre quando este equilíbrio é perturbado por um mecanismo de
seleção (natural ou induzido) resultando numa reprodução não aleatória de
genótipos (Seleção direcional). Deste modo a evolução processa-se por
modificações (mutações) genéticas sucessivas, através daquilo que passou a ficar
conhecido como Gradualismo filogenético.
Seleção direcional ("Directional selection"). Representa o fluxo da teoria darwinista
da seleção natural. É a seleção que resulta da variação regular e gradual de uma
população (gradualismo filogenético) como resposta direta a uma variação
progressiva do ambiente, numa dada direção.
Certos autores têm mesmo levantado a questão de formas tidas como de transição,
com características morfológicas de dois ou mais grupos, deverem ser entendidas
como elos arcaicos ou organismos evoluídos que readquiriram características
ancestrais, a fim de melhor se adaptarem a condições ambientais particulares.
Novas propostas de mecanismos evolutivos como a antropologia foram
desenvolvidos e passaram a influenciar outras abordagens algorítmicas baseadas
4Este caso ocorre quando uma população está em equilíbrio com o seu biotipo. Se o ambiente é relativamente estável durante um longo intervalo de tempo a seleção atua no sentido de eliminar aqueles indivíduos que diferem significativamente dos genótipos bem adaptados.
47
na troca de informação como os meméticos, culturais, formigas, etc, que serão
tratados nos capítulos seguintes,.
22..33..22 AA AANNTTRROOPPOOLLOOGGIIAA
A Antropologia sistematiza-se como ciência após Darwin por ter trazido à luz a teoria
evolucionista. A Antropologia Física tem, a partir daí, grande impulso e surgem os
primeiros teóricos da nova ciência: Tylor, Morgan, Bachofen, Maine, Bastian.
A Antropologia é, por excelência, a ciência do homem e da cultura. Apresenta dupla
dimensão: teórica e prática. A Antropologia teórica se dedica à investigação pura e
busca todo conhecimento possível que leve à melhor compreensão da humanidade.
De posse desses conhecimentos, tornam-se capazes de desenvolver atividades
práticas, aplicando suas experiências junto aos grupos simples, ágrafos, quase
sempre sujeitos a influência externas que possam provocar mudanças.
48
33 AALLGGOORRIITTMMOOSS GGEENNÉÉTTIICCOOSS
O desenvolvimento de simulações computacionais de sistemas genéticos teve início,
no século XX, especificamente, nos anos 50 e 60 através de muitos biólogos, mas
foi John Holland quem começou a desenvolver as primeiras pesquisas no tema. Em
1975, Holland publicou o artigo intitulado “Adaptation in Natural and Artificial
Systems”, ponto inicial dos Algoritmos Genéticos. Já David E. Goldberg, aluno de
Holland, nos anos 80 obteve seu primeiro sucesso em aplicação industrial com
Algoritmos Genéticos. Desde então, são utilizados para solucionar problemas de
otimização e aprendizado de máquinas. A idéia de Holland foi tentar imitar algumas
etapas do processo de evolução natural das espécies, incorporando-as a um
algoritmo computacional. O objetivo não era projetar algoritmos para resolver
problemas específicos, mas desenvolver métodos para representar os mecanismos
de adaptação natural nos sistemas de computador (MITCHELL, 1996). O ponto de
referência foi gerar, a partir de uma população de cromossomos, outras novas
populações com propriedades genéticas superiores às de seus antecedentes, onde
os cromossomos são as possíveis soluções de um problema.
49
33..11 AALLGGUUMMAASS DDEEFFIINNIIÇÇÕÕEESS
Durante as últimas décadas a utilização dos AGs para resolver problemas da área
de otimização cresceu consideravelmente. São inúmeras as definições encontradas
na literatura para os AGs. A seguir apresentaremos algumas:
Os Algoritmos Genéticos são algoritmos de busca baseados nos
mecanismos de seleção natural e genética.
Goldberg (1989)
Apresentam os Algoritmos Genéticos como uma área da
Computação Evolucionária, que modela processos biológicos
para otimizar funções de custo complexas.
Haupt et al. (1998)
Os Algoritmos Genéticos de Holland são um método que se
movimenta de uma população de cromossomos para outra,
usando algum tipo de “Seleção Natural” juntamente com os
operadores genéticos inspirados na natureza, que são:
cruzamento, mutação e inversão.
Mitchell (1999)
50
33..22 OOSS AALLGGOORRIITTMMOOSS
Ao representar o processo evolutivo partindo do modelo de cromossomos, Holland
foi capaz de encontrar um caminho de grande e imediata aplicação prática na
determinação de máximos e mínimos de funções matemáticas, facilitando a
aceitação dos algoritmos genéticos no meio acadêmico (GOLDBARG; LUNA, 2000).
Segundo Goldberg (1989), os algoritmos genéticos se diferenciavam das demais
técnicas heurísticas da época por quatro motivos:
� Trabalham em um espaço de soluções codificadas e não diretamente no
espaço de busca;
� Trabalham com um conjunto de pontos (população) e não a partir de pontos
isolados;
� Não necessitam de derivadas ou outro conhecimento auxiliar, pois utilizam
informações de custo ou recompensa (função objetivo);
� Usam regras de transição probabilísticas.
33..22..11 EEXXPPRREESSSSÕÕEESS UUTTIILLIIZZAADDAASS
Para um melhor entendimento do assunto é necessário que se compreenda o uso
de expressões tradicionalmente utilizadas no ramo das ciências biológicas. A
utilização desta terminologia é justificável, visto que, considerando a representação
binária, os Algoritmos Genéticos combinam séries de “uns” e “zeros” da mesma
forma que os cromossomos nos organismos vivos se combinam e recombinam,
51
conduzindo sucessivamente a melhores soluções. A relação entre os termos
utilizados na biologia e o significado desses termos na computação evolucionária é
apresentada no Quadro 2.
QUADRO 2
As principais definições relacionadas com os Algoritmos Genéticos
Termo
Definição
Cromossomo (genótipo) Cadeia de informações que representa uma solução
possível para o problema.
Gene Representação de cada parâmetro de acordo com o
alfabeto utilizado (binário, inteiro ou real).
População Conjunto de pontos (indivíduos) no espaço de busca.
Geração
Iteração completa do algoritmo genético que gera uma
nova população. É representado pelo número da
iteração que executa.
Aptidão Resultado da função de avaliação.
Alelo Genes que ocupam o mesmo locus.
Lócus Posição que o gene ocupa no cromossomo.
Deve ser observado que cada cromossomo, chamado de indivíduo no Algoritmo
Genético, corresponde a um ponto no espaço de soluções, ou seja, a solução, do
problema de otimização. O processo de solução dotado nos Algoritmos Genéticos
consiste em gerar, através de regras específicas, um número de indivíduos
52
(população) de forma a promover uma varredura tão extensa quanto necessária do
espaço de soluções.
Por exemplo, para o PCV, um cromossomo pode ser um vetor representando um
tour pelas n cidades como mostra a Figura 5. Sobre estes cromossomos artificiais,
são aplicados os operadores genéticos de mutação e cruzamento (YAO, 1996).
Nesta relação entre cromossomos e soluções, tem-se que os alelos correspondem à
informação (valor) contida numa certa posição deste vetor; os índices do vetor
representam o locus de um cromossomo; e a variável associada a um determinado
locus corresponde a um gene.
3 2 1 13 7 6 4 10 8 14 5 11 9 12
1 2 3 4 5 6 7 8 9 10 11 12 13 14
Figura 4 - Representação inteira de um cromossomo para o PCV
33..22..22 TTIIPPOOSS DDEE RREEPPRREESSEENNTTAAÇÇÃÃOO
Existem tipos de representação possíveis para os cromossomos: binária e inteira. A
essa representação se dá o nome de alfabeto AG. De acordo com a classe de
problema que se deseje resolver pode-se usar qualquer um dos tipos.
Alelo
Locus
Cromossomo
53
3.2.2.1 Representação Binária
Quando foi inicialmente proposto, o algoritmo genético contemplavam apenas a
representação binária. Os cromossomos não eram mais que uma cadeia de bits(0’ s
e 1’ s). Cabe a função de fitness interpretar esta cadeia de símbolos numa realidade
com significado para o problema, e quantificá-la numa pontuação
(http://laseeb.isr.ist.utl.pt/portas_abertas/ags/Apend_dncc.html - acesso em 20 de
janeiro de 2006).
Apesar dos algoritmos genéticos trabalharem com parêmetros binários, a função de
aptidão necessita de valores contínuos.
Para efeito ilustrativo, a figura 5 , anteriormente mostrada, será representada de
modo binário como mostra a seguir a figura 5.
0011 0010 0001 1101 0111 0110 0100 1010 1000 1110 0101 1011 1001 1100
FIGURA 5 – Representação binária de um cromossomo para o PCV
3.2.2.2 Representação Inteira Embora a representação binária tenha se mostrado eficiente para vários problemas,
observou-se que à medida que foram crescendo as aplicações de AGs, esta passou
a não se mais adequada. Dessa forma, surgiram alternativas, como por exemplo, a
representação pó um vetor de números inteiros no caso do caixeiro viajante, onde
54
cada inteiro representa uma cidade e o vetor representa a rota a seer tomada. Desta
forma, será esta representação utilizada nas demais seções e capítulos deste
trabalho.
33..33 IIMMPPLLEEMMEENNTTAAÇÇÃÃOO DDOOSS AAGGSS
Alguns dos requisitos essenciais para a implementação de um AG são apresentados
a seguir:
� Representações das possíveis soluções do problema no formato de um
código genético;
� População inicial que contenha diversidade suficiente para permitir ao
algoritmo combinar características e produzir novas soluções;
� Existência de um método para medir a qualidade de uma solução potencial;
� Um procedimento de combinação de soluções para gerar novos indivíduos na
população;
� Um critério de escolha das soluções que permanecerão na população ou que
serão retirados desta;
� Um procedimento para introduzir periodicamente alterações em algumas
soluções da população. Desse modo mantém-se a diversidade da população
e a possibilidade de se produzir soluções inovadoras para serem avaliadas
pelo critério de seleção dos aptos.
55
AA EEssttrruuttuurraa ggeerraall ddee uumm AAllggoorriittmmoo GGeennééttiiccoo éé aapprreesseennttaaddaa nnoo QQuuaaddrroo 22.. TTooddooss ooss
pprroocceeddiimmeennttooss ddeessccrriittooss sseerrããoo eexxeemmpplliiffiiccaaddooss uuttiilliizzaannddoo aa iinnssttâânncciiaa bbuurrmmaa1144..ttsspp
((AAnneexxoo II))..
QQUUAADDRROO 33
AALLGGOORRIITTMMOO GGEENNÉÉTTIICCOO CCLLÁÁSSSSIICCOO
Algoritmo Genético
Inicialize a população de cromossomos (geração i = 1)
Avalie indivíduos na população (função objetivo e sobrevivência)
Repita (evolução)
Selecione indivíduos para reprodução
Aplique operadores de recombinação e/ou mutação
Avalie indivíduos gerados na população
Selecione indivíduos para sobreviver (geração i = i + 1)
Até critério de parada satisfeito
Fim
� Inicialmente escolhe-se uma população inicial, formada por indivíduos criados
por algum procedimento definido pelo projetista do algoritmo e geralmente
dependente da natureza do problema.
� Avalia-se toda a população de indivíduos segundo algum critério, determinado
por uma função que avalia a qualidade do indivíduo (função de aptidão ou
“fitness”);
56
� Em seguida através do operador de seleção, escolhem-se os indivíduos como
base para a criação de um novo conjunto de possíveis soluções, chamado de
nova “geração”;
� Esta nova geração é obtida aplicando-se sobre os indivíduos selecionados,
operações que misturem características através dos operadores genéticos:
cruzamento e mutação.
O ciclo evolucionário é executado até que um critério de parada seja satisfeito. Esse
critério, de forma semelhante à criação da população, é definido pelo projetista do
algoritmo, ou seja, quando ocorre convergência. Os mais utilizados são: número pré
- determinado de passos ou iterações (repetições), melhoria estagnada e tempo de
execução, que ocorre quando todos os indivíduos tendem a possuir o mesmo
comportamento.
Nos itens a seguir são comentados em maiores detalhes cada componente de um
Algoritmo Genético.
3.3.1 População
A população de um algoritmo genético é o conjunto de representantes do espaço de
busca de indivíduos que estão sendo cogitados como solução e que serão usados
para criar o novo conjunto de indivíduos para análise. O tamanho da população
pode afetar o desempenho global e a eficiência dos algoritmos genéticos. Em geral,
quanto menor a população, maior é a chance de perder a diversidade necessária
57
para convergir a uma boa solução. Entretanto, dependendo do número de
indivíduos da população, o algoritmo poderá perder grande parte de sua eficiência
pela demora em avaliar a função de aptidão de todo o conjunto a cada iteração,
além de ser necessário trabalhar com maiores recursos computacionais.
� Geração da População Inicial
A população inicial de indivíduos ou cromossomos é na maioria das vezes realizada
de forma aleatória, embora onde existam ocasiões onde é mais apropriada uma
seleção heurística da mesma, introduzindo logo de início, um ou mais indivíduos
“interessantes”, como por exemplo, soluções aproximadas conhecidas contendo
algum tipo de informação prévia. Diversos trabalhos realizados comprovam que a
inicialização, em geral, não é crítica, desde que a população inicial contenha
cromossomos superficialmente variados (GOLDBERG, 1989).
� Indivíduos
O ponto de partida para a utilização de um algoritmo genético como ferramenta para
solução de problemas é a representação destes problemas de maneira que os
algoritmos genéticos possam trabalhar adequadamente sobre eles. Uma das formas
utilizada é representar cada indivíduo como sendo a concatenação de uma
seqüência de atributos como mostrado na figura 3. Os tipos de representação serão
apresentados nas seções seguintes.
58
A codificação usando o próprio alfabeto do atributo que se quer representar (letras,
códigos, números reais, etc.) para apresentar um individuo também é muito utilizada.
Diversas formas são possíveis, normalmente a forma mais apropriada está
fortemente ligada ao tipo de problema.
33..33..22 AAVVAALLIIAAÇÇÃÃOO DDAA AAPPTTIIDDÃÃOO
Uma das tarefas mais difíceis na modelagem dos algoritmos genéticos é o
desenvolvimento apropriado da função de aptidão, que é responsável pela avaliação
da qualidade de cada indivíduo da população (KNOSALA e WAL, 2001). A
adequação pode ser definida como à propensão de um indivíduo sobreviver e se
reproduzir em um ambiente (BACK e FOGEL 2000).
É essencial que esta função seja muito representativa e diferencie na proporção
correta as más soluções das boas. Se houver pouca precisão na avaliação, uma
ótima solução pode ser posta de lado durante a execução do algoritmo, além de
gastar mais tempo explorando soluções pouco promissoras.
Um método muito utilizado para calcular a adequação é atribuir o valor de função
objetivo. Por exemplo, a figura 6, representa uma população avaliada.
59
3 2 1 13 7 6 4 10 8 14 5 11 9 12
2 11 13 5 14 6 3 6 12 10 1 9 4 7
. . .
4 12 11 9 10 5 2 8 9 1 4 3 6 14
Figura 6 – População com o valor aptidão
Considerando que o PCV é um problema de minimização, quanto menor o valor da
função objetivo melhor a adequação do indivíduo. Para refletir tal situação, pode-se
considerar, por exemplo, a adequação como sendo o inverso do valor da função
objetivo. Nesse caso os indivíduos com maiores valores de adequação seriam os
mais aptos a sobreviverem.
3.3.3 Seleção
De uma forma geral, os algoritmos genéticos baseiam-se no princípio da
“sobrevivência dos melhores indivíduos”, onde os cromossomos com melhor aptidão
ou adequabilidade são mais prováveis de serem copiados para um novo conjunto,
denominados população temporária, de onde serão aleatoriamente escolhidos para
reprodução. Em contrapartida, os indivíduos com baixa aptidão serão descartados
da população conforme a pressão de seleção do esquema utilizado.
Aptidão
140
160
130
60
Inúmeros esquemas de seleção já foram propostos e implementados na prática dos
Algoritmos Genéticos, alguns não sendo biologicamente plausíveis (BLICKLE,
1995).
Dada uma população, em que a cada indivíduo foi atribuído um valor de aptidão,
existem vários métodos pra selecionar os indivíduos sobre os quais serão aplicados
os operadores genéticos. Os mais conhecidos métodos de seleção são o da Roleta
e o do Torneio.
� Roleta
Este é o mais comum dos métodos de seleção utilizados, e é também chamado de
“Seleção Proporcional a aptidão”, onde a probabilidade de que um certo indivíduo
seja selecionado é igual à sua aptidão (GOLDBERG, 1989), dividida pela média da
aptidão de toda a população. Segundo afirma Mitchell (1999), isto é equivalente ao
que os biólogos chamam de “Viabilidade de Seleção”.
O método da roleta consiste em dar uma porção de uma “roleta virtual” proporcional
à aptidão, à cada indivíduo da população. Cada indivíduo possui uma chance de ser
escolhido relativa ao seu valor de aptidão. Desta forma, um indivíduo “melhor” tem
maior chance de ser escolhido para sofrer a aplicação dos operadores genéticos.
A Figura 7 exemplifica o procedimento da Roleta para os três cromossomos do PCV
ilustrados na figura 6. Depois de avaliados cada cromossomo possui um valor de
aptidão e terá, de acordo com esse valor, um porção na roleta.
61
Figura 7 – Fitness dos Cromossomos representados pelo método da roleta
Nesse caso a fatia atribuída a cada indivíduo na roleta será dada por:
Uma vez que todos os indivíduos estão devidamente representados na roleta,
sorteia-se um número de forma aleatória entre 0 e 1. Depois do sorteio, será
selecionado o indivíduo que possuir na sua fatia numérica o número sorteado.
Neste método, um dos problemas encontrado pode ser o tempo de processamento,
já que o método exige duas passagens por todos os indivíduos da população.
30%
33%
37%cromossomo 1
cromossomo 2
cromossomo 3
Valor de aptidão do indivíduo
Valor de aptidão - médio da população ) 1 – (
62
� Torneio
Segundo Von Zuben (2002), a seleção por torneio é um dos mais refinados
processos de seleção, por permitir ajustar a pressão seletiva.
A seleção é feita em função do número de vitórias de cada indivíduo em q
competições contra oponentes aleatórios da população. A vitória é atribuída àquele
que apresentar maior aptidão, comparado ao método determinístico.
Para propósitos práticos, q ≥ 10 conduz a uma forte pressão seletiva, enquanto que
valores de q entre 3 e 5 levam a uma fraca pressão seletiva. Para q=1, tem-se
essencialmente uma busca aleatória e para q=x, onde x ∈ ℜ, temos simplesmente a
seleção por ordem de aptidão, sem nenhuma aleatoriedade.
De acordo com Blickle et al. (1995), este método de seleção funciona da seguinte
maneira:
Uma certa quantidade de indivíduos t é selecionada aleatoriamente da população e,
posteriormente, o melhor indivíduo deste grupo é copiado para uma população
intermediária. Este procedimento é repetido até que o critério de parada seja
satisfeito.
Normalmente, o torneio ocorre entre dois indivíduos de cada vez, mas uma
generalização deste caso é possível através da inserção de uma variável para
especificar a quantidade t de indivíduos participantes do torneio, que é usualmente
63
chamada de Tamanho do Torneio. O torneio entre dois indivíduos é comumente
chamado de Torneio Binário.
Dentre suas vantagens citam-se:
1. Não acarreta convergência prematura;
2. Combate à estagnação;
3. Nenhum esforço computacional extra é necessário, tal como ordenamentos;
4. Aptidão explícita é desnecessária;
5. Inspiração biológica do processo.
3.3 Variações de Métodos
Conforme J. Neyman, toda a vez que se emprega matemática com a finalidade de
estudar algum fenômeno deve-se começar por construir um método matemático.
Este método pode ser: determinístico ou, então, probabilístico.
� Método determinístico
Neste método, as condições sob as quais o experimento é executado, determinam o
resultado do experimento. Tome-se, por exemplo, a lei de Ohm, V=I.R. Se R e I
forem conhecidos, então V estará precisamente determinado.
64
� Método não determinístico ou probabilístico
É um método em que de antemão não é possível explicar ou definir um resultado
particular. Este modelo é especificado através de uma distribuição de probabilidade.
É utilizado quando se tem um grande número de variáveis influenciando o resultado
e estas variáveis não podem se controladas. Toma-se, por exemplo, um lançamento
de um dado onde se tenta prever o número da face que irá sair; a retirada de uma
carta de baralho, etc.
O modelo estocástico é caracterizado como um modelo probabilístico que depende
ou varia com o tempo (www.pucrs.br/famat/viali - acessado em 18 de janeiro de
2006).
33..55 OOPPEERRAADDOORREESS GGEENNÉÉTTIICCOOSS
O princípio básico dos operadores genéticos é transformar a população através de
sucessivas gerações, estendendo a busca até chegar a um resultado satisfatório.
Os operadores genéticos são necessários para que a população se diversifique e
mantenha características de adaptação adquiridas pelas gerações anteriores. Os
operadores de cruzamento e de mutação têm um papel fundamental em um
algoritmo genético.
65
Um algoritmo genético padrão evolui, em suas sucessivas gerações, mediante o uso
de 2 operadores básicos: cruzamento e mutação (SHAPIRO, 1999).
� Cruzamento (Crossover)
O operador de cruzamento ou operador de recombinação permite a obtenção de
indivíduos filhos mediante a combinação dos cromossomos dos pais.
Uma das principais características dos algoritmos genéticos que os distinguem das
demais técnicas de busca, Tabu, AS, GRASP, Local é o operador de cruzamento
(MITCHELL, 1996). Cruzamento é a troca de segmentos entre "pares" de
cromossomos selecionados, com a finalidade de originar novos indivíduos que
poderão ser incluídos na próxima geração. A idéia central do cruzamento é a
propagação das características dos indivíduos mais aptos da população. O operador
cruzamento é utilizado após o de seleção.
Na reprodução baseada em um ponto de cruzamento (single-point crossover), o
ponto de quebra do cromossomo é escolhido de forma aleatória sobre a longitude da
cadeia que o representa e a partir desse ponto se realiza a troca de material
cromossômico entre os dois indivíduos. Na Figura 8 temos um esquema da
representação desse tipo de cruzamento, utilizando duas soluções do PCV. Foi
escolhido o ponto de cruzamento 13.
66
3 2 1 13 7 6 4 10 8 14 5 11 9 12
3 2 1 13 7 6 4 10 8 14 5 11 9 14
4 12 11 9 10 5 2 8 9 1 4 3 6 14
Figura 8 – Esquema gráfico do cruzamento de um ponto
O cromossomo gerado na figura 8 possui uma inviabilidade gerada pela repetição do
ponto 14. Cabe ao projetista tratar a inviabilidade ou descartar o cromossomo
gerado. Mecanismos de tratamento de inviabilidade podem ser encontrados em
Goldbarg e Luna (2000).
Na reprodução baseada em dois pontos de cruzamento (two-point crossover),
procede-se de maneira similar ao cruzamento de um ponto, mas a troca de
segmentos é realizada a partir de dois pontos.
Na reprodução baseada em cruzamento uniforme (uniform crossover), cada gene do
descendente é criado através da cópia de um gene dos pais, escolhido de acordo
com uma máscara de cruzamento gerada aleatoriamente. Onde houver 1 na
máscara de cruzamento, o gene correspondente será copiado do primeiro pai e
ponto de cruzamento
67
onde houver 0 será copiado do segundo. O processo é repetido com os pais
trocados para produzir o segundo descendente. Uma nova máscara de cruzamento
é criada para cada par de pais. A Figura 9 demonstra graficamente o processo,
onde há a repetição dos alelos 3 e 8.
3 2 11 13 7 6 12 10 8 14 5 1 9 4
3 12 11 13 7 6 12 8 8 1 5 3 9 4
4 12 11 9 10 6 2 8 9 1 4 3 5 14
Figura 9 – Esquema gráfico do cruzamento uniforme
� Mutação
A mutação é vista como o operador responsável pela introdução e manutenção da
diversidade genética na população. Ela trabalha alterando arbitrariamente, logo
após o cruzamento, um ou mais componentes de uma estrutura escolhida entre a
descendência, fornecendo dessa forma meios para a introdução de novos elementos
na população. O operador de mutação é aplicado aos indivíduos com uma
probabilidade dada por uma taxa de mutação. A Figura 10 ilustra o processo de
mutação em um indivíduo (HOLLAND, 1975).
68
3 2 13 5 14 6 3 6 12 10 11 1 9 4
3 2 13 5 14 6 3 6 12 10 11 1 9 4
Figura 10 – Esquema gráfico de ocorrência de mutação
33..55 PPAARRÂÂMMEETTRROOSS GGEENNÉÉTTIICCOOSS
É importante analisar de que maneira alguns parâmetros influenciam o
comportamento dos algoritmos genéticos para que se possa estabelecê-los
conforme as necessidades do problema e dos recursos disponíveis. A seguir, são
listados alguns parâmetros genéticos utilizados freqüentemente:
� Tamanho da População
O tamanho da população determina o número de cromossomos. Com uma
população pequena, o desempenho pode cair, pois deste modo a população fornece
uma pequena cobertura do espaço de busca do problema. Uma grande população
geralmente fornece uma cobertura representativa do domínio do problema, além de
prevenir convergências prematuras (tendência da população a evoluir para uma
solução não ótima devido a existência de um indivíduo com aptidão muito superior
às demais aptidões). No entanto, para se trabalhar com grandes populações, são
cromossomo original
cromossomo mutado
69
necessários maiores recursos computacionais ou que o algoritmo trabalhe por um
período de tempo muito maior.
� Taxa de Cruzamento
Uma taxa de cruzamento precisa ser especificada para definir com que
probabilidade os cromossomos serão cruzados.
Quanto maior for esta taxa, mais rapidamente novas estruturas serão introduzidas
na população. Mas se esta for muito alta, a maior parte da população será
substituída, e pode ocorrer perda de estruturas de alta aptidão. Com um valor baixo,
o algoritmo pode tornar-se muito lento.
� Taxa de Mutação
A taxa de mutação determina a probabilidade em que uma mutação ocorrerá. Uma
baixa taxa de mutação previne que uma dada posição fique estagnada em um valor.
Com uma taxa muito alta a busca se torna essencialmente aleatória além de
aumentar muito a possibilidade de que uma boa solução seja destruída. A melhor
taxa de mutação é dependente da aplicação, mas, para a maioria dos casos está
entre 0,001 e 0,1(BÄCK, 1996).
70
33..77 CCOONNSSIIDDEERRAAÇÇÕÕEESS AA RREESSPPEEIITTOO DDAASS DDIIFFIICCUULLDDAADDEESS DDOOSS AALLGGOORRIITTMMOOSS
GGEENNÉÉTTIICCOOSS
Os algoritmos genéticos clássicos são uma abordagem eficiente de solução para
vários problemas combinatórios, especialmente pela capacidade de diversificação,
contudo encontram dificuldades em várias circunstâncias. Os fatores que afetam a
habilidade dos Algoritmos Genéticos para resolver problemas formaram uma área
teórica bastante investigada pela comunidade científica. Uma dessas abordagens
direciona o estudo para as funções de decepção propostas por Goldberg (JONES e
FORREST, 1996). Entretanto, Grefenstette (1993) apresenta um estudo em que
mostra que tais funções não são nem necessárias nem suficientes para justificar os
insucessos dos Algoritmos Genéticos. Uma terceira abordagem direciona essa
dificuldade para o tipo de representação utilizada.
Já Radcliffe e Surry (1995) apresentam um estudo quanto à previsão da
performance dos algoritmos genéticos em função da representação. Para isso,
desenvolveram famílias de operadores que fossem independentes da representação
e, assim, permitissem a formulação dos chamados algoritmos evolucionários formais
independentes de representação. Miller e Goldberg (1995) apresentam um estudo
sobre o efeito dos ruídos nos esquemas de seleção. Os ruídos em um AG são os
fatores que fazem com que não haja uma avaliação acurada da adequação dos
indivíduos.
Jones e Forrest (1996) introduzem uma abordagem de investigação que utiliza uma
medida de dificuldade da busca em função da correlação da distância de
71
adequação. A distância de adequação é a diferença de adequação em relação ao
ótimo.
Uma outra abordagem desenvolvida por alguns pesquisadores é a investigação
sobre o porquê e como os Algoritmos Genéticos têm sucesso em diversas
aplicações. Esses estudos direcionam sua investigação para a Hipótese dos Blocos
de Montagem (GOLDBERG, 1989) e baseiam-se na Teoria dos Esquemas
(HOLLAND, 1975).
33..88 TTEEOORREEMMAA DDOOSS EESSQQUUEEMMAASS VVEERRSSUUSS BBLLOOCCOOSS CCOONNSSTTRRUUTTOORREESS
Um “Esquema” é um modelo de similaridades que descreve um subconjunto de
listas de caracteres com os mesmos conteúdos em determinadas posições
(GOLDBERG, 1989).
A teoria tradicional dos Algoritmos Genéticos assume que, num nível de descrição
genérica, os algoritmos genéticos funcionam por meio da descoberta, ênfase e
recombinação de bons building blocks (combinações de valores dos genes que
conferem uma maior aptidão aos cromossomos nos quais estão presentes) de
soluções numa forma altamente paralelizada. A idéia é que boas soluções tendem a
ser compostas por bons blocos de montagens construtores.
Já os esquemas definidos por Holland (1975) vieram para formalizar a noção
informal dos blocos construtores. Na verdade, um esquema é um conjunto de
72
cadeias de bits que podem ser descritos por um modelo formado de “zeros”, “uns” e
“asteriscos”, sendo que os “asteriscos” representam valores quaisquer. Por exemplo,
o esquema H=1****1 representa o conjunto de todos os bit strings que se encaixam
nessa forma (por exemplo 100111 e 110011) são exemplos de H. Diz-se que o
esquema H tem 2 bits definidos (não-asteriscos) ou, equivalentemente, é de ordem
2. Seu comprimento (a distância entre os bits definidos mais externos) é 5.
É importante observar que o símbolo “*” é somente um meta-símbolo que representa
outros símbolos, e que jamais será processado explicitamente pelo Algoritmo
Genético, servindo apenas como notação para a demonstração de todas as
similaridades possíveis de listas de caracteres de um tamanho e alfabeto
particulares. (GOLDBERG, 1989).
Baseado nesses conceitos, Holland desenvolve o Teorema dos Esquemas (schema
Theorem), que descreve o crescimento de um schema de uma geração para a
seguinte. O teorema é freqüentemente interpretado como: cromossomos com
schemas curtos e de baixa ordem, cujas aptidões ficam acima da média receberão
um número exponencialmente crescente de ocorrências ao longo do tempo (o
tamanho desses schemas também cresce). E, analogicamente, cromossomos com
schemas cujas aptidões ficam abaixo da média tenderão a ocorrer menos
freqüentemente.
Essa característica do Algoritmo Genético tem sido descrita por ele como
paralelismo intrínseco, no sentido de que o algoritmo está manipulando um grande
número de schemas em paralelo.
73
A análise de Holland sugere que a seleção direciona crescentemente a busca em
subconjuntos do espaço cuja aptidão estimada se situa acima da média. O
mecanismo de crossover junta blocos de montagens construtores de alta aptidão em
um mesmo cromossomo e cria, assim, cromossomos com aptidões cada vez
melhores. Por outro lado, a mutação garante que a diversidade genética não seja
perdida irremediavelmente.
Holland formula a adaptação como uma tensão entre “exploração” (a busca por
adaptações novas e úteis) e “explotação” (a utilização e propagação dessas
adaptações).
A tensão surge quando qualquer movimento no sentido da exploração – teste de
schemas previamente desconhecidos ou de schemas cujas instâncias anteriores
apresentaram baixa aptidão – prejudica a explotação de schemas já testados e
úteis. Em qualquer sistema (por exemplo, uma população de organismos) que tenha
de enfrentar ambientes com algum grau de imprevisibilidade, um balanço ótimo
entre exploração e explotação deve ser encontrado. O sistema deve continuar
experimentando novas possibilidades (mais ainda, deveria estar robustamente
adaptado perante situações novas), mas deve também incorporar e usar
continuamente as experiências passadas como guia para o comportamento futuro.
74
� Blocos Construtores
De acordo com Goldberg (1989) a performance dos Algoritmos Genéticos é
compreendida a partir do Teorema dos Esquemas, conforme apresentado na seção
anterior. Esquemas curtos, de pequena ordem e com alto valor de aptidão são
gerados, recombinados e novamente gerados com o intuito de formar indivíduos
com um alto valor de aptidão.
De certa forma, através destes esquemas em particular, foi possível reduzir a
complexidade anteriormente existente, e ao invés de construir indivíduos de alta
performance através da tentativa de todas as combinações imagináveis, estes são
construídos a partir das melhores soluções parciais de gerações anteriores.
Devido ao importante papel realizado pelos esquemas curtos, de pequena ordem e
alta adaptabilidade no procedimento executado pelos Algoritmos Genéticos, é que
estes passaram a se chamar “Blocos Construtores”. Sendo assim, Borges (2002) os
define:
Os Blocos Construtores são esquemas com alto valor de
fitness e de pequeno comprimento definidor que se propagam
de geração para geração, produzindo um número
exponencialmente crescente de representantes entre os
cromossomos de melhor aptidão observada.
75
Certamente, uma grande experiência foi adquirida durante anos de estudos, que
suportam tal alegação em uma variedade de classes de problemas. Tal experiência
teve início na década de 1960, através dos trabalhos pioneiros de Bagley (1967) e
Rosenberg (1967) e continuou através das muitas aplicações que foram
desenvolvidas e dedicadas aos Algoritmos Genéticos.
Bethke (1981) usando as Funções de Walsh (GOLDBERG, 1989) e uma hábil
transformação dos esquemas, criou um método analítico para determinar os valores
médios de aptidão dos esquemas através dos coeficientes de Walsh. Este método
possibilita identificar quando, dada uma função e codificações particulares, os blocos
construtores combinados formarão blocos ótimos ou próximos de ótimo.
33..99 AALLGGOORRIITTMMOO GGEENNÉÉTTIICCOO PPAARRAA OOTTIIMMIIZZAAÇÇÃÃOO MMUULLTTIIOOBBJJEETTIIVVOO
Muitos problemas do mundo real apresentam uma coleção de objetivos a serem
otimizados que são na maioria das vezes conflitantes entre si, ou seja, a melhoria de
algum(ns) objetivo(s) causa(m) conseqüentemente a deterioração de outro(s).
Diferentemente das situações em que há problemas com objetivo único, em que a
solução ótima é obtida através da simples maximização (ou minimização) de uma
função objetivo de variáveis de decisão sujeitas a restrições, a análise multiobjetivo
seleciona a solução de melhor compromisso ou, numa abordagem mais detalhada e
segura, a solução mais robusta (considerando-se a incerteza e a subjetividade
inerentes ao processo decisório), em um cenário em que há múltiplos objetivos.
76
A primeira implementação de um MOEA (Multiobjetive Evaluated Algorithm –
Algoritmo Evolucionário Multiobjetivo) foi proposta por Schaffer (1985). O modelo
sugerido foi denominado VEGA (Vector Evaluated Genetic Algorithm).
Goldberg (1989) criou um procedimento para ordenação de soluções baseado no
conceito de dominância. Este método fornece um valor de aptidão para uma
solução i proporcional ao número de soluções que i domina.
3.9.1 Alguns Algoritmos Evolucionários Multi-Objetivos
Nos últimos anos muitos pesquisadores têm modificado as idéias iniciais propostas
por Goldberg (1989) em seu livro para tratamento de problemas multi-objetivos, bem
como aplicado as implementações desenvolvidas em problemas mais complexos do
mundo real. Assim, atualmente, existem inúmeras implementações e, por este
motivo, a enumeração de todas é uma tarefa impossível, logo, serão enumeradas e
posteriormente apresentadas às características fundamentais apenas das principais
correntes e/ou implementações no campo dos algoritmos evolucionários multi-
objetivos (ZITZLER,THIELE, 1998), como mostra o quadro 4 abaixo:
77
QUADRO 4
Algoritmos Multi-objeitvos
ALGORITMOS MULTI-OBJETIVOS AUTORES
VEGA Schaffer (1984)
Agregação dos objetivos por pesos variáveis
Hajela e Lin (1992)
MOGA Fonseca e Fleming (1993)
Npga Horn e Nafpliotis
Nsga Srinivas e Déb (1994)
A diferença fundamental dos MOEA em relação aos Algoritmos Evolutivos
tradicionais é o operador de seleção, dado que a comparação entre duas soluções
deve realizar-se conforme o conceito de dominância de Pareto.
33..1100 AAJJUUSSTTEE DDEE PPAARRÂÂMMEETTRROOSS
A técnica de adaptação consiste em não tomar valores fixos para os parâmetros de
configuração dos algoritmos genéticos. Ou seja, pode-se escolher funções mais
elaboradas que façam estes parâmetros variarem ao longo do processo evolutivo
e/ou de acordo com critérios pré-definidos.
As principais finalidades da adaptação são:
� Melhorar a eficiência dos algoritmos;
� Tornar os algoritmos mais robustos às aplicações a serem tratadas.
78
A adaptação usualmente é feita de maneira estática, isto é, são escolhidos
parâmetros, funções e/ou operadores no início do algoritmo e levados até o fim da
execução. Todavia, recentemente uma maior atenção vem sendo dada à adaptação
dinâmica, que permite que dentro do processo evolutivo o próprio algoritmo
selecione os parâmetros de configuração e/ou os operadores genéticos a serem
utilizados, conforme seus desempenhos.
33.. 1111 AAPPLLIICCAAÇÇÕÕEESS
As aplicações dos algoritmos genéticos são inúmeras, todas relacionadas de uma
forma ou de outra a uma otimização que se procura obter uma solução global. .
Os Algoritmos Genéticos possuem uma larga aplicação em muitas áreas científicas,
entre as quais podem ser destacadas:
� Síntese de circuitos analógicos: para uma certa entrada e uma saída
desejada, por exemplo, tensão, o Algoritmo Genético gera a topologia, o tipo
e o valor dos componentes do circuito;
� Síntese de protocolos: determinação de quais funções do protocolo devem
ser implementadas em hardware e quais devem ser implementadas em
software para que um certo desempenho seja alcançado;
79
� Programação Genética: gera a listagem de um programa, numa determinada
linguagem especificada, para que um determinado conjunto de dados de
entrada forneça uma saída desejada;
� Gerenciamento de redes: supervisão do tráfego nos links e das filas nos
"buffers" de roteadores para descobrir rotas ótimas e para reconfigurar as
rotas existentes no caso de falha de algum link;
� Otimização evolutiva multicritério: otimização de funções com múltiplos
objetivos que sejam conflitantes;
� Problemas de otimização complexos: problemas com muitas variáveis e
espaços de soluções de dimensões elevadas;
� Ciências biológicas: modela processos biológicos para o entendimento do
comportamento de estruturas genéticas.
33..1111..11 AAGGSS AAPPLLIICCAADDOOSS AAOO PPCCVV
Potvin (1996) faz uma relação entre os componentes do AG e o problema. Ele
descreve as representações Ordinal, de Caminho e de Adjacência e vários
operadores de crossover e de mutação, cada um desenvolvido para preservar uma
certa característica das soluções, como posição absoluta dos pontos em uma rota,
posição relativa entre os pontos, etc. Potvin conclui que a representação e os
80
operadores que lidam com a adjacência entre os pontos da rota são os mais
adequados para o PCV e destaca a importância do uso de mutação e o potencial de
paralelização do processo.
Neto (2000) faz uma revisão bibliográfica sobre AG e descreve possibilidades de
representação (binária, adjacência, ordinal e por caminho) e operadores de
crossover, mostrando uma tabela de comparação com resultados encontrados na
literatura. Um sistema informático foi desenvolvido para testar o desempenho de
vários operadores e parâmetros, mostrando os resultados obtidos. Neto chega à
conclusão que a representação por caminho apresenta melhores resultados para
grandes populações e várias gerações, e ressalta a importância da escolha da
representação e dos operadores e da utilização de modelos híbridos com outras
técnicas.
Chatterjee et al (1996) também mostram componentes do AG e aspectos do PCV e
propõem um mecanismo de reprodução assexuada que simplifica muito a
codificação do AG. O mecanismo corta o cromossomo em 2, 3 ou 4 pontos e
rearranja as sub-cadeias. Refinamentos feitos no mecanismo e a introdução de um
esquema de semeadura da população inicial diminuiram o tempo computacional
pela metade, segundo os autores. Os autores concluem que o mecanismo de
reprodução assexuada é uma boa solução para ser utilizada no PCV e os
refinamentos feitos (população semeada e variação no número de cortes)
melhoraram ainda mais os resultados obtidos.
81
Schmitt e Amini (1998) se propõem a desenvolver um experimento estatístico e um
sistema dinamicamente configurável para testar vários parâmetros e componentes
de AG com o objetivo de resolver conflitos de projeto e configuração. Os autores
mostram os resultados a que chegaram e fazem várias observações interessantes
quanto à qualidade das soluções e ao tempo computacional de acordo com as
configurações adotadas. Algumas conclusões foram a dificuldade de estabelecer um
padrão para o projeto de AG e o potencial de hibridização com outras heurísticas e
de paralelização.
Poon e Carter (1995) comparam vários operadores tradicionais de crossover para
representações descritas (como por permutação, lista de adjacência, matriz, dentre
outras), dois novos operadores e uma nova formulação mais rápida de um operador
previamente publicado. Os dois novos operadores são os TBX (Tie-Breaking
Crossover) 1 e 2, utilizados na representação de Lista de Posição. O Crossover de
União da representação de Permutação é modificado para um operador mais rápido.
Os resultados de testes com os operadores são mostrados junto com detalhes de
implementação. Poon e Carter concluem que é importante usar informações
adicionais que se tenham a respeito do problema para diminuir o espaço de busca
e/ou incorporá-las ao crossover.
33..1111..22 OOUUTTRRAASS AAPPLLIICCAAÇÇÕÕEESS
Ressaltando a importância prática dessa abordagem para a solução de problemas
nas mais diversas áreas, transcreve-se na tabela 2 parte do resumo de aplicações
constantes de Goldbarg e Luna (2005) e outras mais recentes.
82
QUADRO 5
Aplicações dos Algoritmos Genéticos 1985 – 2003
Ano Autores Abordando 1990 Karr e Goldberg Aplicados à separação de minério 1991 Davidor Aplicados à robótica 1991 Caldwell e Johnston Aplicados na identificação de rostos humanos 1991 Gibsone Byrne Aplicados à composição musical 1996 Arslan et al. Otimização de circuitos VSLI 1996 Notredame e Higgins Solução do alinhamento genético 1996 Jakobs Solução de acomodação de polígonos 1996 Anderson e Gerbert Projeto de asas de aviões 1997 Zhou e Gen Solução de árvore geradora k-restrita 1997 Ingleston e Smith Auxílio ao combate aéreo 1998 Kim et al. Equilíbrio de linhas de montagem 1998 Pierrot e Hinterding Solução de programação inteira mista 1998 Nayebzadeh et al. Determinação de arritmia fetal 1999 Azadivar e Tompkins Simulação de processo de otimização 2000 Dellaert et al. Otimização de lotes de produção 2001 Preston e Kozan Distribuição de containers em portos 2001 Vico et al. Planejamento de cirurgia 2002 Gantovnik et al Otimização de laminados 2002 Ray e Mahajan Configuração ótima de sensores 2002 Lambert Desmontagem de equipamento eletrônico 2002 Sato et al. Projeto de arquitetura 2002 Carter e Ragsdale Planejamento de jornais 2002 Aytug e Saydam Otimização de problema de localização 2003 Hageman et al. Tabu na otimização de pintura 2003 Zhou et al . Planejamento de alocação bicritério 2003 Hassini e Vickson Otimização de alocação carrocel 2003 Valdés et al. Otimização térmica de turbinas de gás 2003 Topcuoglua et al. Localização de roteadores de redes 2003 Park et al. Solução do planejamento de tarefas 2003 Ho e Ji Otimização de chips eletrônicos
Fonte: adaptada de Goldbarg e Luna, 2005
83
QUANDRO 6
Aplicações dos algarismos Genéticos 2004 - 2005
Ano Autores Abordando 2004 Lim et al. Otimização da mistura para concreto 2004 Liew Otimização de problemas geométricos 2004 Chung e Jung Otimização de acessórios de segurança 2004 Kasprzyk e Jaskua Híbridos (Simplex) para análise química 2004 Mohamed Jenkins Configuração de membranas 2004 Roychowdhury Diagnóstico de doenças 2004 Fühner e Jung Otimização do crescimento cristalino 2004 Kulkarni et al. Otimização micro-estrutural de ligas 2004 Ozturk et al. Estimação da “exergy” de residências 2004 Cordoba et al. Otimização de sistemas contra fogo 2004 Aydin e Yildirim Controle de um sistema laser 2004 Ge e Chen Controle de espaçonaves 2004 Shin et al. Re-configuração de redes de energia 2004 Shokooh-Saremi et al. Otimização de polarizadores 2005 Cartel MTSP 2005 Arthur et al O problema Multiple TSP 2005 Lawrence et al Genéticos para PCV
Fonte: adaptada de Goldbarg e Luna, 2005
33..1122 HHIIBBRRIIDDIIZZAAÇÇÃÃOO
Uma alternativa para melhorar o funcionamento dos Algoritmos Genéticos é a
hibridização (YANG e ELDRED, 1998). É possível acoplar-se aos Algoritmos
Genéticos, por exemplo, qualquer outro método matemático para efetuar uma busca
local mais agressiva. Esta alternativa híbrida resultante apresenta a capacidade
evolucionária de uma grande exploração global da região viável aliada a uma boa
eficiência nas buscas locais.
A técnica de hibridização resulta na integração de uma boa maneira convencional de
resolver um problema aos conceitos usuais de Algoritmos Genéticos. A hibridização
84
agrega a representação usual de dados no domínio original, bem como as técnicas
de otimização já existentes. Isto permite a incorporação de heurísticas otimizadoras
ao conjunto de operadores genéticos (recombinação e mutação) que passam,
portanto, a ser dependentes do domínio. Nesse sentido, o algoritmo genético passa
a ser muito mais uma filosofia de otimização do que um método pronto para
utilização.
No capítulo seguinte, Moscato (1989) descreve um novo algoritmo chamado
memético, definindo limites e diferenças com o genético através do uso da busca
local.
85
44 AALLGGOORRIITTMMOOSS MMEEMMÉÉTTIICCOOSS
No campo da computação evolucionária, o refinamento do conhecimento pode ser
incorporado como uma etapa de apoio ao processo evolutivo. O trabalho de Moscato
(1989) categorizou e descreveu uma nova classe de algoritmos evolutivos
denominados de Algoritmos Meméticos (AMs).
Segundo Moscato (1989), AM, é uma definição mais apropriada para algoritmo
genético híbrido, pois o termo híbrido tira o algoritmo genético de suas raízes da
biologia. Primeiro por causa de sua representação que na maioria dos casos envolve
inteiros, reais e também binários. E segundo, pelo uso de heurísticas que exploram
o espaço de busca através dos comportamentos dos indivíduos.
Em alguns trabalhos, AMs são definidos como algoritmos evolucionários que fazem
uso de busca local para aperfeiçoar os cromossomos (RADCLIFFE e SURRY,
1994). De fato, o objetivo dessa classe de algoritmos é combinar as habilidades dos
operadores evolucionários em determinar boas regiões de busca (diversificação)
86
com as da busca local que se mostra eficiente na determinação de soluções locais
(intensificação) (MERZ e FREISLEBEN, 1999). Na verdade, esses algoritmos
podem incorporar, via de regra, um conceito de adaptação altamente especializada
para um certo cenário, que une os requisitos da adaptação ontogênica (indivíduo no
rumo da otimização de seu potencial genético) e das possibilidades computacionais.
Trata-se de uma adaptação “artificial” promovida no genótipo por um processo
planejado e diferente do processo reprodutivo clássico.
O sucesso dos AMs deve-se à junção das habilidades dos AGs com as habilidades
da busca local, combinando a adaptação evolucionária da população com os
conhecimentos adquiridos pelo indivíduo durante sua existência.
Pode-se diferenciar os AGs dos AMs dizendo que o primeiro tenta imitar o processo
da evolução biológica e o segundo tenta imitar a evolução cultural. Enquanto que
nos AMs ocorre uma evolução cultural, onde a informação é transmitida pela
comunicação entre os indivíduos, nos AGs a evolução se dá por mecanismos de
recombinação, cruzamento e mutação (GARCIA e t al., 2001).
Como os procedimentos de refinamentos dos indivíduos são usados depois da
aplicação dos operadores genéticos, isso implica dizer que os AMs são extensões
dos AGs que aplicam a busca local separadamente, para refinar a busca nos espaço
de soluções. Também são utilizados os conceitos de cooperação e competição
onde o primeiro denota os processos e troca de informações entre os indivíduos e o
segundo denota os processos de seleção em que indivíduos competem entre si
(MOSCATO, 1989).
87
44..11 OOSS MMEEMMEESS
O termo “Algoritmo Memético” deve-se ao uso do conceito de memes como uma
unidade de informação que se propaga como a troca de idéias entre pessoas.
Segundo Dawkins (1976) um meme é definido como sendo uma informação que é
transmitida como uma característica cultural. Desta forma, ele pode ser entendido
como idéia ou experiência propagada como uma cultura.
Um meme, como uma unidade de transmissão de cultura, é replicado por imitação
(MOSCATO e NORMAN, 1992), mas antes de ser transmitido, este é adaptado à
pessoa que o transmite (como essa pessoa pensa, entende e processa o meme),
enquanto que os genes (no caso dos AGs) são transmitidos na íntegra. Eles
também comparam este pensamento com um refinamento local. Desta forma, o uso
na busca local permite que indivíduos evoluam de forma autônoma para ótimos
locais sem sofrer mutações e/ou cruzamentos. A evolução destes indivíduos dar-se-
á pelo acréscimo de memes.
No caso dos AMs, os memes referem-se a estratégias (refinamento local,
perturbação ou métodos construtivos) para melhoria dos indivíduos (KRASNOGOR e
SMITH, 2001).
Fazendo uma analogia à transmissão genética, a transmissão cultural corresponde
ao fluxo de informação num processo evolucionário e os genes correspondem às
partes de um cromossomo que servem como uma unidade viável de seleção natural.
88
44..22 IIDDÉÉIIAA GGEERRAALL
O suporte da proposta memética computacional é a criação de um fluxo de
informações para guiar o processo de busca evolucionária. A metáfora também
pode ser interpretada como uma tentativa de concretizar no contexto genético a
proposta Lamarckiana, que por isso se apóia na Memética. O chamado aprendizado
Lamarckiano (WHITLEY, 1994) força o genótipo a refletir os resultados de alguma
forma de melhoria. A lógica dessa aprendizagem é forçar a herança de
características adquiridas ou aprendidas que se mostrem adequadas ao meio
ambiente. O indivíduo assim aperfeiçoado se integra na população normal
competindo por oportunidade de recombinação. Segundo alguns autores o
aprendizado Lamarckiano inibe a diversidade da população, porque ao mudar as
informações genéticas dos cromossomos, promove-se uma perda nos esquemas
herdados, alterando a informação contida na população ( HOUCK et. al. 1996 e
1997).
No caso dos algoritmos denominados meméticos, isso não ocorre quando o
aperfeiçoamento do cromossomo é baseado apenas em um procedimento de busca
local fortemente associado à informação genética já existente no cromossomo. A
busca local parte das informações codificadas no genótipo (informações endógenas)
e claramente se direciona a uma varredura de âmbito restrito em um certo cenário,
especialmente em se falando de problemas combinatórios. As regras de busca
local, eventualmente, podem ser até semelhantes às que são utilizadas para compor
a população inicial de algumas propostas de algoritmos genéticos, variando apenas
na sua intensidade de aplicação (MOSCATO, 1989).
89
O verdadeiro elemento memético surge dentro da possibilidade do uso de
informações decorrentes de uma análise ambiental e de outros memes (idéias
associadas ao problema) importadas do meio ambiente do problema ou de seu
método de solução. Um exemplo disso é a chamada Fitness Distance Analysis –
FDA – (KAUFFMAN, 1993) que desenvolve a análise marcando as adequações
associadas aos N indivíduos de uma população em comparação a sua distância da
solução ótima (assumindo-se que exista uma medida adequada para avaliar a
distância entre soluções). Mais recentemente alguns trabalhos têm sugerido o uso
de informações decorrentes de interações cooperativas e competitivas entre os
indivíduos da população. Um exemplo dessa tendência pode ser encontrado no
trabalho de Moscato e Norman (1992), onde é proposto um modelo em que os
indivíduos da população alternam períodos de desenvolvimento livre e períodos de
interação.
4.3 PSEUDO-CÓDIGO
Segundo Moscato (2001) a estrutura básica de um AM é muito parecida com a dos
AG´s. A seguir veremos um modelo básico dos AM´s.
90
QUADRO 7
Pseudo-código do Algoritmo Memético
Início
Gerar População Inicial
Otimizar População (realizar busca local)
Avaliar População
Enquanto (ao atender as condições de parada) Fazer
Início
Seleciona os pais
Aplicar operadores de recombinação e mutação
Otimizar População (realizar busca local)
Avaliar População
Fim
Fim
Existem várias etapas que são bastante semelhantes entre AM´s e AG´s, tais como:
• População inicial: um conjunto de agentes representando as soluções atuais
dentro do espaço de soluções do problema;
• Geração: a população num dado instante do tempo;
• Função de avaliação: mede a qualidade da solução representada por cada
agente;
• Recombinação: troca de memes entre dois agentes;
• Mutação: mudança aleatória no valor dos memes para garantir a diversidade
de soluções. É Intensificada nas crises de diversidade quando ocorre uma
estagnação da população.
91
Supostamente os algoritmos meméticos são de implementação mais complexa do
que os algoritmos genéticos clássicos, uma vez que trabalham com um algoritmo
genético clássico em seu substrato, acrescentando ao código computacional
procedimentos normalmente de busca local.
Observe-se, contudo, que o desenho de algoritmos eficientes não pode ser
considerada uma tarefa fácil, em nenhuma hipótese. O caso é que os algoritmos
meméticos mostram um melhor potencial para equilibrar os esforços de
intensificação versos os de diversificação despendidos pela busca estocástica do
algoritmo genético de substrato. Experimentos computacionais de inúmeros
pesquisadores comprovam a vantagem de se embutir no processo clássico de
evolução uma busca local bem projetada (GOLDBARG e LUNA, 2005).
A figura 11 ilustra um procedimento de busca. É realizado um procedimento de
troca, posição a posição, até que uma melhoria seja encontrada ou 30% do
cromossomo seja examinado sem sucesso. Trata-se de um procedimento 2-trocas.
A cada troca realizada o cromossomo é novamente avaliado.
3 2 13 5 14 6 3 6 12 10 11 1 9 4
2 3 13 5 14 6 3 6 12 10 11 1 9 4
Figura 11 – Procedimento de busca local
cromossomo original
cromossomo após a primeira
troca
92
4.4 APLICAÇÕES
Os algoritmos meméticos têm sido amplamente estudados e aplicados em vários
problemas de otimização encontrados na literatura, tais como: designação
quadrática (MERZ; FREISLEBEN, 1997), seqüenciamento em máquinas paralelas
(CHENG; GEN, 1997), caixeiro viajante (MOSCATO; NORMAN, 1992),
seqüenciamento em máquinas (MENDES et al. 2001) entre outros.
AAMM PPAARRAA OO PPCCVV
Diversos MAs têm sido propostos para resolver o PCV. Baseado na análise de
resultados computacionais que utilizam esta técnica, pode-se dizer que um “bom”
AM deve conter algumas características: i) operadores de recombinação e mutação
apropriados e robustos; ii) um eficiente e rápido operador de busca local; iii) uma
população estruturada hierarquicamente; iv) estruturas de dados e mecanismos de
codificação apropriados. O primeiro é obviamente inerente a qualquer algoritmo
genético, enquanto o segundo é crucial para os AMs, devido a 85% - 95% do tempo
de CPU ser gasto, geralmente, com o procedimento de busca local. Muitos
experimentos na literatura têm mostrado que a adoção de estruturas nas quais os
agentes se relacionam conforme uma estrutura hierárquica, provaram ser mais
eficazes quando comparados às implementações não estruturadas (MOSCATO;
NORMAN, 1992)
O algoritmo memético proposto por Freisleben e Merz (1996), denomidado GLS
(Genetic Local Search- Busca Local Genetica) introduz um novo operador de
93
recombinação, chamado de DPX (Distance Preserving Crossover). Neste algoritmo é
usada uma variação da heurística de Lin-Kernighan como operador de busca local,
testando instâncias do caso simétrico, e o operador de busca local fast-3-Opt,
testando instâncias do caso assimétrico,. Em outro artigos, estes resultados foram
melhorados, adotando uma serie de mecanismos de implementação mais
sofisticados que melhoraram a performance do método ( MERZ; FREISLEBEN,
1997).
O quadro 8 apresenta uma relação ressaltando outras aplicações dessa abordagem
(GOLDBARG; LUNA 2005). Acrescida de outras mais recentes.
QUADRO 8 Aplicações Praticas dos Algoritmos Meméticos
Ano Autores Abordando 1990 Ulder et al. Solução do PCV 1992 Moscato e Norman Solução do PCV 1997 Cotta e Troya Problema da mochila 1997 Dengiz et al. Confiabilidade em redes 1998 Charon e Hudry Na solução de implicações lógicas 1998 Morris et al. Modelagem molecular 1999 Burke e Smith Problema de plano de manutenção 1999 Tesfaldet e
Hermosilla Solução do PCV
2000 Knowles e Corne Otimização multi-objetivo 2001 Burke et al Planejamento do trabalho de enfermagem 2002 Lim e Yuan Solução do quadrático de alocação 2002 Kersting et al. Solução do problema de conectividade 2002 Velenzuela e Smith Aplicação ao setor de distribuição de energia 2003 Quintero e Pierre Designação de células em redes móveis 2003 Ljubic e Raidl Algoritmo em grafos 2004 Lima et al. Roteamento de veículos com frota
heterogenia 2004 Krasnogor e
Gustafson, Experimentação de “self-generation”
2004 Berreta e Rodrigues Otimização de lotes de produção Fonte: adaptada de Goldbarg e Luna, 2005
94
55 AALLGGOORRIITTMMOOSS CCUULLTTUURRAAIISS
Do mesmo modo que os Algoritmos Meméticos, os Algoritmos Culturais (ACs),
Reynolds (1994), foram desenvolvidos como um complemento à metáfora usada nos
algoritmos genéticos, que haviam se concentrado nos conceitos genéticos e seleção
natural (COELLO e BECERRA, 2002).
Os ACs são baseados na noção de que em sociedade avançadas o
desenvolvimento do indivíduo pode ser realizado tanto por seleção natural como
regras de seleção cultural (GOLDBARG e LUNA, 2005).
Muitos pesquisadores têm sugerido que a “cultura” pode ser codificada e transmitida
entre as populações de indivíduos. De fato, esses algoritmos estão baseados nas
teorias de alguns sociólogos e arqueólogos, que tratam de modelar a evolução
cultural (COELLO e BECERRA, 2002).
95
Cultura, no sentido dos algoritmos culturais, é vista como o conjunto de informações
acumuladas pela experiência da sociedade de indivíduos. Os algoritmos culturais
propõem utilizar o domínio do conhecimento contido na “cultura” para guiar sua
busca estocástica (GOLDBARG e LUNA, 2005).
Com essa idéia, desenvolveu-se um módulo computacional, no qual, a evolução da
cultura é vista como um processo de herança dupla que opera com dois níveis: o
nível micro-evolutivo, que consiste no material genético herdado por pais e seus
descendentes e o nível macro-evolutivo, que é o conhecimento adquirido pelos
indivíduos através de gerações, e que, uma vez codificado e armazenado, serve
para guiar o comportamento dos indivíduos que pertencem a uma população
(RENFREW e DURHAM, 1994).
�� NNÍÍVVEELL MMIICCRROO--EEVVOOLLUUTTIIVVOO
Os indivíduos podem ser descritos por características (traços) e comportamentos
que podem ser ou não aceitos “socialmente”, para um espaço de população. As
características podem ser modificadas e transmitidas de geração para geração
inspirando operadores baseados em modelos sociológicos, por exemplo,
cruzamento e mutação.
� Macro-evolutivo
As experiências dos indivíduos são coletadas, analisadas e especializadas para um
espaço de crença. O espaço de crença pode ser visto como um banco de
96
características que refletem as experiências dos indivíduos envolvidos. Em
conseqüência disso, as informações de um espaço de crença poderão servir para
guiar as ações das futuras populações e seus indivíduos (CHUNG e REYNOLDS,
1996).
A cultura pode ser vista como um conjunto de fenômenos ideológicos comparados
com uma população, por meio dos quais um indivíduo pode interpretar suas
experiências e decidir seu comportamento. Em outros modelos observa-se muito
claramente a parte do sistema que é comparada pela população: o conhecimento,
adquirido por membros da sociedade, mas codificado de tal forma que todos podem
ter acesso. De maneira igual se distingue a parte do sistema que é individual: a
interpretação desse conhecimento codificado em forma de um conjunto de símbolos,
e os comportamentos que traz como conseqüência esta assimilação; também a
parte individual inclui as experiências vividas e a forma que esta pode contribuir com
algo de conhecimento.
O fenômeno de herança em dobro nos algoritmos culturais é uma tentativa capitada
por Reynolds (1994). O objetivo é incrementar as taxas de aprendizagem a
convergência, e dessa maneira, que o sistema responda melhor a um grande
número de problemas (FRANKLIN e BERGERMAN, 2000).
Os algoritmos culturais operam em 2 espaços, como mostra a figura 12. Primeiro, o
espaço da população, como em todos os métodos de computação evolutiva, onde
se tem um conjunto de indivíduos. Cada indivíduo tem um conjunto de
características independentes dos outros e com essas possibilidades determina sua
97
“fitness”. Através do tempo, tais indivíduos podem ser substituídos por alguns de
seus descendentes, obtidos a partir de um conjunto de operadores aplicados na
população.
Figura 12 - Estrutura do Algoritmo Cultural
O segundo espaço é das crenças, onde se armazenam os conhecimentos que são
adquiridos pelos indivíduos em gerações anteriores. A informação contida neste
espaço deve ser acessada por qualquer indivíduo, que pode utilizá-la para modificar
seu comportamento.
O Espaço de crença representa a influência que está sendo adquirida pela
população durante o processo de evolução.
Espaço de Crença Herança
Herda
Espaço da População
Aceita Influência Protocolo de Comunicação
Protocolo de Comunicação
Desenvolve Avalia
98
Para unir os espaços se estabelece um protocolo de comunicação que dita regras
do tipo de informação que deve ser trocada entre os espaços. O protocolo de
comunicação é usado para determinar a interação entre a população e o espaço de
crença. O protocolo determina o conjunto de indivíduos aceitos e aptos para
atualizar o espaço de crença. Da mesma maneira, o protocolo determina como o
espaço de crença dará impacto e adaptação aos indivíduos da população.
A figura 13 esclarece que a função do processo cultural é criar um viés “positivo” na
busca desenvolvida pelo processo clássico. Uma “crença” é uma informação de
natureza não genética sobre como desenvolver uma boa evolução genética.
Basicamente existe um algoritmo genético sendo guiado por um nível de decisão
denominado “cultural”.
Modificação
de
Reprodução
Função de
Desempenho
Conhecimento
da busca
Guiamento
Viés
Mecanismo de Busca
Base de Conhecimento
Figura 13: Direcionamento da Busca através de uma Base de Conhecimento
O exemplo de uma crença para o Caixeiro Viajante pode ser a exclusão de certas
cadeias. O conhecimento que essa cadeia é indesejável cria o viés de não aceitar
sua formação por ocasião da reprodução ou mutação. O conhecimento cultural
99
também pode ser um elemento de avaliação dos mecanismos de busca. Se houver
mais de um operador de cruzamento disponível, a base de conhecimento poderá ser
capaz de avaliar seus desempenhos relativos e sugerir quando empregá-los.
O Algoritmo Cultural pode ser visto como um sistema de herança dupla, no qual
visualiza uma evolução com o decorrer da geração tanto na população, quanto no
espaço de crença (CHUNG e REYNOLDS, 1996).
55..11 PPSSEEUUDDOO--CCÓÓDDIIGGOO DDEE UUMM AALLGGOORRIITTMMOO CCUULLTTUURRAALL
O pseudo-algoritmo básico para a metaheurística do Algoritmo Cultural é descrito no
quadro a seguir.
100
QUADRO 9
Pseudo-código do Algoritmo Cultural
Início
g = 0
Inicializar População (Pg)
Inicializar Espaço de Crença (Bg)
Enquanto (o algoritmo não converge) faça
Avaliar (Pg)
Desenvolver a população (Pg)
Comunicar (Pg, Bg)
Ajustar crença (Bg)
Comunicar (Bg, Pg)
g=g+1
Selecionar nova população (Pg)
Fim-enquanto
Fim
Primeiramente, inicia-se com uma população e em seguida o espaço de crença.
Enquanto o algoritmo não converge, é através da função avaliar, que os indivíduos
são seqüenciados de acordo com sua aptidão. A informação da avaliação é uma
medida para verificar o desempenho e experiência de cada indivíduo de acordo com
a função objetivo. Em seguida, a função comunicar determina quais indivíduos da
população atual podem ser aceitos para influenciar o espaço de crença. Assim, as
experiências desses indivíduos selecionados são unidas e ajustadas com a de
outros indivíduos, a fim de formar a crença do grupo, com a função ajustar. Esse
grupo de crença será utilizado futuramente para guiar mudanças nas próximas
populações.
101
Na maioria dos passos de um algoritmo cultural corresponde com os dos algoritmos
tradicionais da computação evolutiva, e observa-se que as diferenças estão nos
passos que incluem o espaço de crença. Por exemplo, nos primeiros passos se
encontra a iniciação dos espaços de crença.
No ciclo principal, está a atualização dos espaços de crenças. É nesse momento
onde o espaço de crença incorpora as experiências individuais de um grupo selecto
de indivíduos. Tal grupo se obteve dentre toda a população com a função de
aceitação.
Por outro lado, os operadores de variação dos indivíduos (como a recombinação ou
mutação) são modificados pela função de influência.
A função de influência exerce certa pressão, para que os filhos resultantes da
variação se aproximem dos comportamentos desejáveis, e se distancie dos
indesejáveis, de acordo com as informações armazenadas do espaço de crença.
O processo de Evolução Cultural pode ser visto como um mecanismo para amplificar
a construção de um indivíduo ou grupo de características em consenso. Em outras
palavras, a Evolução Cultural controla comportamentos que podem ser aceitáveis
dentro de uma população (REYNOLDS, 1996).
102
55..22 MMOODDEELLAAGGEEMM DDOO AALLGGOORRIITTMMOO CCUULLTTUURRAALL
�� RREEPPRREESSEENNTTAAÇÇÃÃOO DDAA PPOOPPUULLAAÇÇÃÃOO
A população do algoritmo cultural é modelada do mesmo modo que no algoritmo
genético, programação genética e outras.
�� EESSPPAAÇÇOO DDEE CCRREENNÇÇAA
Espaço de crença é composto por padrões que representam as características dos
melhores indivíduos da população.
55..33 OOPPEERRAADDOORREESS CCUULLTTUURRAAIISS
Alguns operadores culturais desenvolvidos na literatura são: generalização,
especialização, fusão e fissão, descritos a seguir.
Generalização
Caso existam genes na vizinhança de algum intervalo que compõe o Espaço de
Crença, expande-se este intervalo de modo que passe a acomodar estes genes.
103
Especialização
Caso os genes pertencentes a algum intervalo que compõe o Espaço de Crença
estejam concentrados em algum ponto deste intervalo, contrai-se este intervalo.
Fusão
Este é um caso particular de generalização onde existem genes na vizinhança de
dois intervalos bastante próximos e por isso ambos os intervalos acabam se
fundindo.
Fissão
Este é um caso particular de especialização na qual os genes pertencentes a
determinado intervalo estão concentrados em mais de um ponto no interior deste
intervalo.
55..44 AAPPLLIICCAAÇÇÕÕEESS
Rychtyckj et al (1999) propuseram o algoritmo cultural para melhorar a eficiência da
inclusão do algoritmo nas redes semânticas. A inclusão do processo que determina
se um nó da rede é um filho de outro nó. Desta maneira, ele é utilizado como parte
da classificação do nó dentro do algoritmo baseado na aplicação da rede semântica.
104
No método proposto, uma variedade de mecanismos de seleção, operadores,
métodos de comunicação, e busca local são aplicados para cada solução gerada
através dos operadores genéticos e parâmetros como explanados na seqüência. A
estrutura do algoritmo cultural combina o método fraco de busca com o esquema de
representação do conhecimento para coleta, e, o conhecimento do raciocínio com a
experiência individual.
Coello e Becerra (2003) propõem um algoritmo cultural que usa o domínio do
conhecimento para melhorar o desempenho de uma técnica de programação
evolucionária adotada para otimização de restrições. Essa abordagem extrai o
domínio do conhecimento durante o processo do evolucionário e constrói mapas
para guiar às possíveis regiões de busca mais eficiente.
55..44..11 OOUUTTRRAASS AAPPLLIICCAAÇÇÕÕEESS O quadro 10 resume algumas aplicações dessa abordagem, conforme relata no seu
livro Goldbarg e Luna (2005).
QUADRO 10
Aplicações de Algoritmos Cultuais
Ano Autores Abordando
1994a Reynolds Trabalho pioneiro 1994b Reynolds Trabalho pioneiro 1995 Reynolds et al. Aplicação à manipulação de restrições 2002 Coello e Becerra Aplicação à otimização com restrições 2002 Xidong e Reynolds Aplicação à mineração de dados 2004 Coello e Becerra Técnica de mapeamento do espaço das
crenças Fonte: adaptada de Goldbarg e Luna, 2005
105
66 TTRRAANNSSGGEENNÉÉTTIICCAA CCOOMMPPUUTTAACCIIOONNAALL
A Transgenética Computacional (TC) replica o paradigma da simbiogênese, em que
criaturas de diferentes espécies trocam informações, eventualmente até material
genético, de modo a facilitar a adaptação ao meio ambiente (GOLDBARG e LUNA,
2005). De acordo com essa teoria, novas células, novos corpos, novos organismos
e novas espécies surgem por meio de simbiose, onde organismos independentes se
unem para formar compostos enfatizando os efeitos positivos da interação ao invés
da competição.
Os algoritmos transgenéticos foram introduzidos por Gouvêa (2001) e Goldbarg e
Goldbarg (2002).
A simbiogênese enfatiza mais os efeitos positivos resultantes das inter-relações
entre indivíduos do que a sobrevivência e reprodução do mais apto. Pesquisas
recentes indicam que os micro-organismos são as maiores forças evolucionárias que
106
atuam sobre a seleção das espécies através de processos simbióticos (MARGULIS,
1998).
A teoria de Margulis foi rejeitada inicialmente e principalmente pelos darwinistas
mais radicais por “falta de comprovação cientifica”. Contudo, atualmente a teoria da
simbiogêsene é aceita como uma boa explicação para, pelo menos, duas
importantes situações onde a evolução darwiniana clássica falha:
1. A formação da célula eucariótica animal ( por fusão com uma bactéria
procariótica aeróbica – gerando as organelas).
2. A formação da célula eucariótica vegetal ( por fusão com uma bactéria
procariótica fotossíntese- gerando os cloroplastos).
Existem vários processos de interação que podem redundar em alterações
permanentes do código genético. Um conjunto de tais processos está reunido sob o
nome de “transferência horizontal”. Os mecanismos de transferência horizontal
comportam os plasmídios, a transformação e transdução.
Os plasmídios são partículas genéticas móveis – anéis de DNA - que podem ser
intercambiadas entre certas células.
A transformação é um processo que permite transferir DNA “puro” de uma bactéria
para outra. As bactérias podem lançar DNA no contexto extracelular através de um
processo denominado lise.
107
A transdução é um processo que permite o transporte e transferência de genes com
o auxilio de um vírus.
Os algoritmos transgenéticos definem um processo evolucionário desdobrado em
três níveis, nos quais as informações são armazenadas e gerenciadas:
� Nível 1: a população de cromossomos que representa a memória corrente do
processo de busca; o conjunto de configurações em exame. A população de
cromossomos tem estrutura similar à dos algoritmos genéticos. No entanto,
sua forma de evolução é diferenciada baseando-se na troca de informações
entre as populações citadas e não na troca de informações dentro da
população de cromossomos, peculiar dos algoritmos genéticos ( RAMOS,
2005).
� Nível 2: é constituído pelos vetores transgenéticos, indivíduos de natureza
diferentes dos cromossomos e que são utilizados para promover a
intensificação e diversificação da busca. Em geral, quando um vetor
transgenético manipula um cromossomo, a estrutura do cromossomo é
modificada. Dessa forma, uma nova solução no espaço de busca é
investigado;
� Nível 3: é formado pelas regras que administram o processo de interação
entre as populações de vetores e de cromossomos.
108
No processo transgenético, todavia, não se permite troca de informações
diretamente entre os cromossomos. A abordagem não se propõe somente a agregar
informações não genéticas ao reservatório genético, ou a realimentar o processo
evolucionário com informações emergentes da população. Não existe o processo
clássico de recombinação (GOLDBARG; LUNA, 2005). Para explorar o espaço de
busca, os algoritmos transgenéticos obtêm informações que são inseridas em um
cromossomo através dos vetores transgenéticos. Esta informação pode ser obtida a
priori ou a posterori. Uma informação “a priori” pode ter origem em diversas fontes,
tais como conhecimento teórico e heurístico do problema. Uma informação “a
posteriori” surge a partir do processo de busca.
São incorporadas ao algoritmo informações obtidas a priori com três finalidades
adicionais:
� Gerar e realimentar a evolução, na medida em que as regras de
administração do processo podem ser alteradas pelo resultado da busca.
� Avaliar o fluxo de informação dentro de cada nível e na transição entre os
níveis. Os vários estágios de avaliação introduzem a possibilidade de que a
informação seja submetida a diversos processos de seleção bem como que a
informação incorporada a priori possa ter alguns de seus graus de liberdade
ajustados através de parâmetros;
� Conduzir a evolução da população, independentemente de um processo
reprodutivo sexual (recombinação entre indivíduos) ou de mutações,
109
características indispensáveis da abordagem genética e memética, porque
emprega um mecanismo transgenético para efetuar a simbiogênese –
evolução induzida.
Os algoritmos transgenéticos podem decompor o processo de seleção em vários
níveis, tais como:
� Competição entre as regras de administração pela oportunidade de
fornecerem informações que se incorporem aos vetores de manipulação;
� Competição entre os vetores pela possibilidade de manipularem os
cromossomos;
� Competição entre as informações contidas nos cromossomos – genes ou
conjuntos de genes – com as informações transportadas pelos vetores para
preservarem sua continuidade dentro dos genótipos.
O nível associado às regras de administração do modelo transgenético corresponde
ao projeto e coordenação de um processo de inter-relações entre populações de
indivíduos de diferente natureza – co-evolução (EHRLICH; RAVEN, 1964).
66..11 VVEETTOORREESS TTRRAANNSSGGEENNÉÉTTIICCOOSS
Um vetor transgenético transporta uma ou mais cadeias de informação e dispõe de
procedimentos que definem sua atuação na população de cromossomos, ou seja, é
110
constituído por cadeia(s) de informação e de um método de manipulação. O método
inclui a programação necessária para que a cadeia seja capaz de atuar sobre um
cromossomo, realizando a inserção da informação transportada. Um desses
procedimentos corresponde à operação de reorganização do código manipulado –
que, na abordagem clássica, é denominada de “operador”. O método deve conter,
além do operador, as regras de avaliação do sucesso do ataque e as referentes à
inviabilidade de manipulação (RAMOS, 2005).
O processo de transpotar e transcrever informações para a população de
cromossomos foi formalizado da forma descrita a seguir (GOUVÊA; GOLDBARG,
2003). Considere:
° P uma população de q indivíduos, P = {S1, S2, .. ., Sq}, onde cada indivíduo S¡, i =
1, ..., q, é um conjunto de valores inteiros d comprimento n representando uma
solução do problema;
° f a função adequada, f: S¡ → R*, i = 1, ..., q.
Um vetor transgen´rtico λ є C,, onde C é o conjunto de todos os vetores possíveis, é
dado por λ = (I, Φ), em que:
° I representa a cadeia de informação transportada pelo vetor transgenético; e
° Φ representa o método de manipulação com Φ = (p1, p2 ..., ps), onde pј, j = 1, ...,
s, são procedimentos que definem o processo de manipulação.
111
Os vetores transgenéticos são características pelo fato de o seu método de
manipulação, dadaa informação I, alterar a configuração do cromossomo através da
manipulação Φ: S¡ → Sј’. Os procedimentos descritos no quadro 11, a seguir,
compõem o método de manipulação dos vetores de Transgenética Computacional.
Ã
QUADRO 11
Métodos de Manipulação dos Agentes da Transgenéticas Computacional
PROCEDIMENTO DENOMINAÇÃO DESCRIÇÃO
Procedimento 1
(p1)
Ataque
(A)
Define o critério de avaliação que estabelece quando um cromossomo é suscetível à manipulação do vetor.
Procedimento 2 (p2)
Operador de Transcrição
(Γ)
Seja: A: S¡ → Falso ou verdadeiro, i = 1,..., q. Se A(S¡) = “verdadeiro”, esse procedimento define como a informação I, transportada pelo vetor, será transferida para o cromossomo.
Procedimento 3
(p3)
Bloqueio da Informação Transcrita
(Ψ)
Torna o resultado da manipulação inviolável por um certo período de tempo – número de iteração, gerações de cromossomos, etc.
Procedimento 4
(p4) Desbloqueio da
Informação Transcrita
(ψ¹)
Torna o resultado da manipulção sem restrições.
Alguns exemplos de vetores transgenéticos são os Vírus e as Partículas Genéticas
Móveis ( PGMs). O vetor trangenéticos λ = (I, Φ) é dito um Vírus quando incorpora
procedimentos de 1 a 4 do quadro 11 e é chamado de PGM quando sua cadeia de
informações ( I) é traduzida no formato genético e seu método ( Φ) utiliza somente
os procedimentos 1 e 2. nas seções seguintes serão abordadas mais dos 2 vetores.
112
6.1.1 O VÍRUS
Por analogia às suas funções naturais, denomina-se Vírus ao vetor da
Transgenética Computacional que transporta e transcreve diretamente informações
na representação genética adotada (normalmente cromossomo) em conformidade
com as imposições do planejamento de manipulação. Um vírus é um agente capaz
de alterar diretamente a configuração cromossômica de um indivíduo e,
conseqüentemente, sua adequação (GOLDBARG et al., 1999), mantendo a
integridade da informação transcrita ao longo de um certo intervalo de tempo. O
principal objetivo desse agente é somar sua informação a informação do genótipo do
indivíduo. O caráter de multiplicação desse agente é concretizado na medida que o
cromossomo se reproduz, uma vez que a “quebra” da cadeia transcrita pelo vírus é
proibida.
66..11..22 PPAARRTTÍÍCCUULLAA GGEENNÉÉTTIICCAA MMÓÓVVEELL
As partículas genéticas móveis são fragmentos de ADN que podem ser fagocitados
(engolidos) pelas células, acabando por se integrar ao ADN do núcleo.
Formalmente, uma PGM é um agente constituído por uma cadeia de informação (I) e
um método de manipulação (C), formando uma dupla PG = (I, C). A PGM não possui
método de descontaminação porque sua cadeia quando transcrita não é tornada
inviolável - não fixa a cadeia transcrita como geneticamente dominante. A regra de
resistência imunológica ao ataque da PGM é o da estrita melhoria da adequação.
Os operadores de transcrição são semelhantes aos operadores dos Vírus. De fato,
uma PGM, no contexto computacional, pode ser considerada como um caso
113
especial de vírus esquema com duração igual a zero e critério guloso de resistência
imunológica. As PGMs podem representar um vetor extremamente eficiente e
simples para o transporte de informações. Por não fixarem a inviolabilidade de sua
transcrição, elas permitem ao processo de busca uma maior liberdade de
diversificação (GOUVÊA, 2001).
Para o PCV, a PGM, funciona como uma proposta de reorganização. A figura 14
ilustra o procedimento. O ponto inicial da manipulação é a posição do cromossomo
original que contem a mesma informação da primeira posição da PGM. A parti
desse ponto o cromossomo é reorganizado invertendo a posição dos outros genes
da PGM com os genes do cromossomo original. O resultado é o cromossomo
manipulado.
13 2 6
3 2 13 5 14 6 3 6 12 10 11 1 9 4
3 5 13 2 6 14 3 6 12 10 11 1 9 4
Figura 14 – Manipulação através da PGM
cromossomo original
cromossomo manipulado
PGM
114
66..22 RREEGGRRAASS TTRRAANNSSGGEENNÉÉTTIICCAASS
As populações de cromossomos e de vetores transgenéticos evoluem trocando
informações permanentemente. Essa troca de informações é gerenciada por regras
de três tipos:
� As regras do tipo 1 são responsáveis pela construção de cadeias de
informações que poderão ser incorporadas aos cromossomos, modificando
sua estrutura e, provavelmente, sua função de adequação. O modo como
essas cadeias serão incorporadas ao cromossomo são definidas pelas regras
do tipo 2.
� As regras do tipo 2 são orientações para constituição de operadores de
manipulação genética (método de transcrição). Se um vetor não é bem-
sucedido em sua tentativa de manipulação (ataque), diz-se que o
cromossomo “resistiu“ à manipulação. O critério de resistência à manipulação
pode levar em conta a variação da função de adequação decorrente da
manipulação.
� As regras do tipo 3 definem uma área de estratégias para a ação dos vetores
transgenéticos. Essas regras podem ser referir ao número de vetores que
participarão de cada iteração no algoritmo, aos critérios que definirão quantos
cromossomos serão atacados, à seqüência de ataque dos vetores, etc.,
constituindo, em seu lado, um esquema de manipulação.
115
Resumidamente, as regras dos tipos 1 e 2 referem-se à construção de cadeias de
informações e seu método de manipulação no cromossomo ( cadeia + método) –
importantes para a construção de vetores transgenéticos. As regras do tipo 3
referem-se a orientações diversas que podem estar incorporadas ao algoritmo
(RAMOS, 2005).
66..33 PPSSEEUUDDOO--CCÓÓDDIIGGOO
QUADRO 12
Pesudo-código de um Algoritmo Transgenético (GOLDBARG; GOLDBARG, 2005).
gerar população (S1,..., Sn);
carregar_regras_transgenéticas ( Tipo 1, Tipo 2, q, r);
repita
set_ λ← vetor_transgenéticos(r);
set_λ ← seleção_população (S1,..., Sn, q)
para i ← ate q faça
para k ←1 ate r faça
se ataque (S¡ λk) então
S¡ ← manipular (S¡, λk);
se critério_realimentação (S¡) então
incluir _fonte_informações (S¡);
fim_se;
fim_para_k;
fim_para_i;
até que critério_parada ser satisfeito.
116
A população inicial de cromossomo é formada da mesma forma que em outros
algortimos evolucionários. O procedimento carrega_regras_transgenéticas( )
determina como a população de vetores transgenéticos é constituída, informando o
conjunto de regras de administração que serão utilizadas. O procedimento
vetor_transgenético( ) recebe como parâmetro r, o número de vetores a serem
gerados segundo as regras de administração. Cada um dos r vetores carrega uma
informação obtida de alguma regra do tipo 1 e possui um operador definido por uma
regra do tipo 2. os demais procedimentos dos vetores (p1, p3, p4, p5 e p6) já estão
definidos no algoritmo, porque são características inerentes ao vetor que for
selecionado.
Um conjunto com q cromossomo é selecionado no procedimento seleção_
população( ). Os q cromossomos são atacados por todos os vetores de set_λ. Os
vetores q e r, bem como a estratégia que será utilizada para atacar os q
cromossomo com os r vetores são determinados por regras do tipo 3. Algumas
regras do tipo 3 orientam a confecção do código do algoritmo e não são informadas
através de carrega_regras_transgenéticas( ). O procedimento ataque ( ) implementa
p1. caso o procedimento retorne valor “verdadeiro” em alguma iteração, λk completa
a manipulação de Si, o i-ésimo cromossomo de set_S. Se o cromossomo Si é
considerado como um bom exemplo de evolução, segundo algum critério
estabelecido no algoritmo, então a rotina critério_realimentação( ) retorna o valor
“verdadeiro”. Nesse caso, a rotina incluir_fonte_informação ( ) implementa a inclusão
da solução representada em Si como uma fonte de informação genética para ser
considerada pelas regras de admiinstração na formação de futuras gerações de
vetores transgenéticas.
117
Um exemplo de critérios para selecionar um cromossomo para ser incluído como
fonte de informação é apesentado no quadro VII, onde f(·) representa a função de
adequação. O critério descrito no quadro VII considera um cromossomo que
representa uma solução melhor que qualquer outra encontrada ate um determinado
momento um bom exemplo de evolução. O algoritmo continua ate que um critério de
parada, previamente definido,seja atendido. O critério de parada, a exemplo de
máximo de iterações sem melhoria da melhor solução corrente, de um tempo
máximo de processamento, etc.
Os primeiros resultados da transgenética computacional foram obtidos com um
algoritmo que emprega exclusivamente partículas genéticas móveis do tipo
plasmídios como vetor de manipulação - uma estratégia de fácil implementação
computacional. Esse tipo de algoritmo, por sua simplicidade, foi denominado ProtoG.
66..44 AAPPLLIICCAAÇÇÕÕEESS O quadro 13 resume algumas aplicações dessa abordagem extraída do livro Goldbarg e Luna (2005) e outras mais recentes.
118
QUADRO 13
Aplicações da Transgenéticas Computacional
Ano Autores Abordando 2001 Gouvêa Trabalho pioneiro 2001 Goldbarg et al. Aplicação ao problema de coloração de
vértices 2001 Gouvêa e Goldbarg Aplicação ao quadrático de alocação 2002 Goldbarg e Goldbarg Aplicação ao quadrático de alocação 2002 Goldbarg et al. Aplicação à explotação de petróleo 2002 Gouvêa et. al Aplicação à programação de sondas de
produção 2002 Goldbarg et al. Aplicação à localização de poços de petróleo 2002 Castro et al. Aplicação ao gás lift 2003 Goldbarg et al. Aplicação ao PCV 2003 Ramos et al. Aplicação ao PCV 2004ª Goldbarg et al. Aplicação a sistemas de co-geração 2004b Goldbarg et al. Aplicação à explotação de petróleo 2004c Goldbarg et al. Aplicação ao flow shop de permutação 2004d Goldbarg et al. Aplicação à distribuição de gás natural 2004 Leite et al. Aplicação à distribuição de vídeo 2005 Ramos et al Ajuste de Parâmetro por Regressão Logístico 2005 Ramos Aplicação Metodologia Estatísticas ao PCV
Fonte: adaptada de Goldbarg e Luna, 2005
119
77 OOUUTTRRAASS AABBOORRDDAAGGEENNSS EEVVOOLLUUCCIIOONNÁÁRRIIAASS
Este capítulo traz outras abordagens evolucionárias que não utilizam a estrutura
clássica de população, indivíduos, e sim, comportamento de insetos e aves, como
mostra as seções seguintes.
77..11 CCOOLLÔÔNNIIAA DDEE FFOORRMMIIGGAASS
Os Algoritmos baseados em Colônia de Formigas foram primeiramente propostos
por Dorigo (1992) tal como os multiagentes de aproximação para problemas NP-
árduos de otimização combinatória semelhante ao problema do caixeiro viajante e o
problema de atribuição quadrátrica.
Como o próprio nome sugere, a Colônia de Formigas é inspirado pelo
comportamento de colônia de formigas reais, em particular, por seu comportamento
de aquisição de alimentos. Uma das principais idéias é a comunicação indireta entre
os indivíduos de uma colônia de agentes, chamados formigas artificiais. Esta
120
comunicação é realizada através de trilhas de feromônio deixadas pelas formigas
em componentes do problema abordado, analogamente às trilhas de feromônio
depositadas por formigas reais para se comunicar. Estas trilhas artificiais são um tipo
de informação numérica distribuída, que é modificada pelas formigas a fim de
refletirem suas experiências acumuladas enquanto resolvem determinado problema.
As formigas possuem o poder peculiar de descobrir fontes de alimento num vasto
território ao redor do formigueiro, comunicar a descoberta às companheiras e
indicar-lhes o caminho a seguir. Entre outras formas de comunicação química, a
formiga marca a trilha com o feromônio que libera enquanto anda e, havendo uma
bifurcação no percurso, as companheiras tendem a seguir a trilha onde a
concentração do feromônio for maior.
O feromônio, portanto, além de possibilitar a formação de um caminho de volta para
a formiga, também tem a função de informar às outras formigas sobre quais os
melhores caminhos até o alimento. Depois de algum tempo, os caminhos mais
eficientes – ou de menor distância percorrida até o alimento – acumulam uma
quantidade maior de feromônio. Inversamente, os caminhos menos eficientes – ou
de maior distância percorrida até o alimento – apresentam uma pequena
concentração de feromônio, devido ao menor número de formigas que passaram por
ele e ao processo de evaporação natural do feromônio.
No problema de otimização que o formigueiro se defronta, cada formiga é capaz de
construir uma solução completa do problema; contudo, a melhor solução só é obtida
mediante cruzamento das diversas soluções encontradas.
121
As colônias de insetos são estudadas há muito tempo, tanto no contexto biológico
como fora dele. Este estudo normalmente visa explorar aspectos da hierarquia e
auto-organização, bem como relações sociais e o papel de cada indivíduo na
colônia. Observa, porém, que esse trabalho dos naturalistas, com insetos e tantas
outras espécies da fauna, nunca foi devidamente valorizado. Não se acreditava, por
exemplo, que mamíferos carnívoros utilizassem estratégias sofisticadas de caça,
realizando ataques coordenados para enfraquecer a defesa de uma manada,
separar uma presa e colocá-la na trilha com caçadores posicionados. Essa linha de
pesquisa só foi reconhecida em 1973, com o Prêmio Nobel para o zoólogo austríaco
Konrad Lorenz, por seu estudo comparativo do comportamento humano com o
animal. Se hoje existe a computação bio-inspirada, é devido à migração do foco
também para a observação da natureza.
77..11..11 AA OOTTIIMMIIZZAAÇÇÃÃOO DDAA CCOOLLÔÔNNIIAA DDEE FFOORRMMIIGGAASS
Desde o primeiro trabalho com o AS, inúmeras extensões do algoritmo básico têm
sido propostas, entre elas estão o Ant-Q, (GAMBARDELLA, 1995), o Ant Colony
System (ACS) (GAMBARDELLA e DORIGO, 1996), o Max-Min Ant System (MMAS)
(STUETZLE, 1998). Todas estas extensões são de certa forma mais "gulosas" do
que o AS, porém diferem consideravelmente em muitos aspectos do controle da
busca no espaço de soluções.
122
Segundo Dorigo e Di Caro (1999) algoritmos desse tipo têm sido inspirados pelas
experiências realizadas por Goss et al. (1989) usando uma colônia de formigas
reais. A experiência consistiu em construir dois caminhos de comprimentos
diferentes entre uma colônia de formigas e uma fonte de comida. Os caminhos
foram arranjados de modo que as formigas pudessem escolher ambos os caminhos,
tanto no sentido de ida como no de volta.
Sendo assim, observou-se que após uma fase transitória (poucos minutos após o
início do experimento) a maioria das formigas usa o caminho mais curto. Observou-
se também que a probabilidade da colônia escolher o caminho mais curto aumenta
diretamente proporcional a diferença entre os dois caminhos. O aparecimento desse
comportamento, segundo Dorigo e Di Caro (1999), pode ser explicado em termos de
autocatálise (feedback positivo) e comprimento diferencial de caminho, e ele é
possível de ser feito através de uma forma indireta de comunicação mediada por
modificações locais do meio ambiente.
Por analogia, segundo Maniezzo e Carbonaro (1999) uma formiga é definida como
um agente computacional simples, que constrói, iterativamente, uma solução para o
problema a ser resolvido. Soluções parciais do problema são vistas como estados;
cada formiga se move de um estado n para outro estado p, correspondendo a uma
solução parcial mais completa. Em cada passo j, cada formiga k armazena um
conjunto de expansões viáveis para seu estado corrente, e se move para uma
dessas expansões de acordo com uma probabilidade.
123
Conforme Maniezzo e Carbonaro a probabilidade da formiga mover-se de um estado
n para um p depende da combinação de dois valores:
� A atratividade do movimento, que é computado por algumas heurísticas
indicando, a priori, o desejo de se fazer aquele movimento;
� A importância do caminho (o valor da trilha) a ser seguido, indicando quão
proficiente ele foi no passado para realizar aquele movimento particular.
Entretanto, ele representa uma indicação, a posteriori, do desejo daquele
movimento.
As trilhas são atualizadas a cada iteração, aumentando o nível daquelas que
facilitam os movimentos para partes de soluções “boas”, e diminuindo o nível das
outras trilhas.
77..11..22 OO AALLGGOORRIITTMMOO CCOOLLÔÔNNIIAA DDEE FFOORRMMIIGGAASS
A estratégia de busca natural foi adaptada para a solução de problema de busca
algorítmica como uma abordagem multi-agente. Os agentes são as formigas que, de
forma paralela, buscam uma solução para o problema proposto. O quadro 6 pode
resumir a estratégia.
124
QUADRO 14
O pseudo-código para a Colônia de Formigas
Repita
Crie as formigas e posicione cada uma num estado inicial;
Repita
Para cada formiga faça
Aplique a regra de transição de estado para incrementalmente
construir uma solução;
Aplique a regra de atualização local do feromônio;
Fim para;
Até que todas as formigas tenham construído uma solução completa;
Gere a solução associada a cada uma das formigas;
Aplique a regra de atualização global do feromônio;
Guarde a melhor solução encontrada até o momento;
Até que o critério de parada seja satisfeito.
77..11..33 AAPPLLIICCAAÇÇÃÃOO -- PPCCVV
Uma aplicação simples dessa metaheurística é apresentada, de forma mais
detalhada, por Dorigo e Di Caro (1999) na resolução do PCV. Basicamente, a
principal tarefa de cada formiga artificial é encontrar o menor caminho entre um par
de nós em um grafo. Para cada arco (i,j) do grafo é associada uma variável
chamada de feromônio artificial. A quantidade de feromônio em cada arco é
proporcional à utilidade, como estimado pelas formigas, de usar aquele arco para
construir boas soluções. Dessa forma, em cada nó, ou nos arcos adjacentes, são
125
armazenadas informações necessárias para que a formiga selecione o próximo nó a
visitar, construindo assim a solução.
Uma das aplicações desse tipo de metaheurística na área de alocação de motoristas
é o trabalho reportado por Forsyth e Wren (1997). É desenvolvido um sistema de
formigas artificiais em que cada formiga segue uma trilha através de uma rede. Cada
trilha representa uma programação completa de motoristas de ônibus.
Esta heurística é robusta e versátil por poder ser aplicada a diferentes problemas em
Otimização Combinatória. Além disso, é baseada em população. Isto é vantajoso
porque permite que o sistema use um mecanismo de avaliação positiva de retorno
entre agentes e os mecanismos de busca (FREITAS, 2001).
A primeira adaptação proposta na literatura foi para a solução do Problema do
Caixeiro Viajante (DORIGO e GAMBARDELLA, 1997) conforme o algoritmo do
Quadro 15.
126
QUADRO 15
Algoritmo em Colônia Formiga para o PCV 1 Inicialização 2 Para t de 1 até número de iterações faça 3 Para k de 1 até m faça 4 repita até que formiga k encontrar um caminho completo
5 Selecione a próxima cidade a ser visitada segundo regra )(tpktj
6 Fim repita
7 Calcule a distância )(tLk do caminho descoberto pela formiga k
8 Se )(tLk <L* então *S ← )(tSk 9 Fim do para
10 Atualize )1( +tijτ ∀(i,j)∈E, segundo processo de dep. e evap. de feromônio
11 Fim do para 12 Retornar *S Inicialmente m formigas são distribuídas pelas cidades segundo algum critério pré-
estabelecido e todos os caminhos (i,j)∈E são inicializados com a mesma quantidade
0)1( >ijτ de feromônio.
Em seguida cada formiga k, k=1,...,m seleciona a próxima cidade a ser visitada
através da seguinte regra probabilística:
ki
Nlijij
ijijkij Nj
t
ttp
ki
∈=∑∈
seβα
βα
ητητ
][)]([
][)]([)( caso contrário 0)( =tpk
ij
)(tp kij ≡ Probabilidade da facilidade j ser escolhida pela formiga k, atualmente na
facilidade i, durante a t-ésima iteração do procedimento.
127
)(tjτ ≡ A quantidade de feromônio presente no caminho (i,j)∈E na t-ésima iteração
do procedimento.
α ≡ Parâmetro que regula a influência de )(tijτ
ijijj d
1=η ≡ Visibilidade da facilidade j com relação à cidade i.
dij ≡ Distância entre a cidade i e j.
β≡ Parâmetro que regula a influência de ijjη
)(tN ki ≡ O conjunto de cidades ainda não visitadas pela formiga k situada na cidade i
durante a t-ésima iteração do procedimento.
O processo de seleção da próxima cidade a ser visitada é repetido até que todas as
formigas tenham completado um caminho interligando todas as cidades uma vez.
O processo de evaporação do feromônio ocorre da seguinte maneira:
)()()1()1( ttt ijijij ττρτ ∆+−=+
Sendo ∑=
∆=∆m
k
kijij tt
1
)()( ττ
Com )(
)(tL
Qt
k
kij =∆τ , se a formiga k percorre o caminho (i,j)∈E . Caso contrário,
0=∆ kijτ
t ≡ Iteração atual do procedimento
]1,0[∈ρ ≡ Parâmetro que regula a redução de )(tijτ
)(tijτ∆ ≡ Ganho total de feromônio no caminho (i,j)∈E , ocorrido na t-ésima iteração
do procedimento
Q ≡ Quantidade de feromônio excretada por uma formiga a cada iteração
128
m ≡ número de formigas
)(tkijτ∆ ≡ Ganho total de feromônio no caminho (i,j)∈E , causada pela formiga k, na t-
ésima iteração do procedimento
)(tSk ≡ Caminho completo que interliga todas as cidades uma única vez, descoberto
pela formiga k na t-ésima iteração do procedimento.
)(tLk ≡ Distância associada ao caminho completo )(tSk descoberto pela formiga k na
t-ésima iteração do procedimento.
Os procedimentos anteriormente descritos são repetidos a cada iteração na
heurística proposta.
77..11..33..11 OOUUTTRRAASS AAPPLLIICCAAÇÇÕÕEESS
O Quadro 16 a seguir resume algumas aplicações do livro de Goldbarg e Luna (2005).
129
QUADRO 16 Aplicações para Colônia de Formigas
Ano Autores Abordando 1992a Colorni et al. Fundamentos de colônia de formigas 1992b Colorni et al. Propriedades de colônia de formigas 1994 Maniezzo et al. Colônia de formigas para quadrático de
alocação 1994 Artur Colônia de formigas na solução do PCV 1996 Dorigo et al. Fundamentos de colônia de formigas 1997 Costa e Hertz Colônia de formigas na coloração de grafos 1999 Gambardella et al. Colônia de formigas p/ o quadrático de
alocação 1999 Taillard Fundamentos de colônia de formigas 2000 Dorigo et al. Conceitos em colônia de formigas 2000 Stützle e Hoos Colônia de formigas p/ caso Max-Min 2002 Cordon et al. Revisão da abordagem em colônia de
formigas 2002 Middendorf et al. Multi colônia de formigas 2003 Abd-El-Barr Colônia de formigas p/ circuitos digitais 2003 Bonabeau et al. Conceitos em nuvens de partículas 2003 Coello et al. Colônia de formigas p/ circuitos lógicos 2003 Carbonato e
Maniezzo Conceitos em colônia de formigas
77..22 NNUUVVEEMM DDEE PPAARRTTÍÍCCUULLAASS
A Otimização por Nuvem de Partículas (Particle Swarm Optimization- PSO) é uma
técnica baseada em população, desenvolvida pelo psicólogo James Kennedy e o
engenheiro eletricista Russell Eberhart (1995), com base no comportamento de
pássaros em revoadas, modelado pelo biólogo Frank Heppner (1990).
130
Esse método possui muitas semelhanças com os algoritmos evolucionários, tais
como os Algoritmos Genéticos (AG). O sistema é iniciado com uma população de
soluções aleatórias e procura por soluções ótimas atualizando essa população.
Contudo, diferente do Algoritmo Genético, PSO não possui operadores de evolução,
tais como cruzamento e mutação. Na PSO, as soluções potenciais, chamadas de
partículas, “voam” sobre o espaço de soluções seguindo as partículas ótimas atuais,
ou seja, as melhores partículas.
Comparado ao Algoritmo Genético, as vantagens da PSO são: fácil de implementar
e há poucos parâmetros a serem ajustados. A PSO tem sido aplicada com sucesso
em muitas áreas: otimização de funções, treinamento em redes neurais artificiais,
controle de sistemas fuzzy, além de outras áreas.
77..22..11 SSIIMMUULLAANNDDOO OO CCOOMMPPOORRTTAAMMEENNTTOO SSOOCCIIAALL
Vários cientistas têm criado simulações computacionais de várias interpretações do
movimento de organismos em bando de pássaros, em cardume de peixes ou em
enxame de abelhas. Reynolds (1987) e Heppner (1990) apresentaram modelos de
simulações de bando de pássaros. Reynolds estava curioso por causa da estética
da coreografia do vôo dos pássaros, e Heppner estava interessado em descobrir a
base das regras que permitiam um grande número de pássaros juntarem-se
simultaneamente, sempre mudando a direção rapidamente, separando e
reagrupando, etc. Estes cientistas tinham a percepção que processos locais, tais
como os modelados por autômatos celulares, poderiam fundamentar a dinâmica de
131
grupo imprevisível do comportamento social dos pássaros. Ambos os modelos se
concentravam na manipulação das distâncias inter-individuais, ou seja, a sincronia
de comportamento do bando foi pensada como uma função de esforços dos
pássaros em manter uma distância ótima entre eles e seus vizinhos.
Não parece ser um salto muito grande de lógica supor que algumas mesmas regras
fundamentam o comportamento social animal (incluindo rebanhos, cardumes e
bandos) e dos humanos. Wilson (1975) escreveu, com relação ao cardume de
peixes, “Pelo menos em teoria, membros do cardume podem tirar proveito de
descobertas e experiências anteriores dos outros membros durante a procura por
comida. Esta vantagem pode se tornar decisiva, valendo mais que as desvantagens
de competição por comida, sempre que o recurso esteja distribuído
imprevisivelmente em pedaços”. Esta declaração sugere que o compartilhamento
social de informação entre indivíduos oferece uma vantagem evolucionária: esta
hipótese foi fundamental ao desenvolvimento da otimização por nuvem de partículas
(KENNEDY, 1995).
77..22..22 VVIIDDAA AARRTTIIFFIICCIIAALL
O termo “Vida Artificial” (Artificial Life) é usado para descrever pesquisas em
sistemas feitos pelo homem que possuem algumas das propriedades essenciais da
vida real (http://www.alife.org). A Life engloba dois tópicos de pesquisa:
� Como as técnicas computacionais podem ajudar quando se estudam os
fenômenos biológicos;
132
� Como as técnicas biológicas podem ajudar em problemas computacionais.
Como se pode notar, a PSO se inclui no segundo tópico. Há inúmeras técnicas
computacionais inspiradas em sistemas biológicos, por exemplo, redes neurais
artificiais é um modelo simplificado do cérebro humano; algoritmo genético é
inspirado na teoria da evolução; colônia de formigas; etc. O sistema biológico ao
qual a PSO está incluída é o sistema social, mais especificamente, o comportamento
coletivo de indivíduos interagindo com seu ambiente e entre si (swarm intelligence).
O conceito de nuvem de partículas originou-se a partir da simulação de um sistema
social simplificado. A idéia original foi simular graficamente a “coreografia” de um
bando de pássaro ou cardume de peixes. Contudo, descobriu-se que esse modelo
poderia ser usado na otimização de problemas.
77..22..33 OOTTIIMMIIZZAAÇÇÃÃOO PPOORR NNUUVVEEMM DDEE PPAARRTTÍÍCCUULLAASS ((AALLGGOORRIITTMMOO))
Suponha o seguinte cenário: um grupo de pássaros está aleatoriamente procurando
por comida em uma região qualquer, sendo que há somente um pedaço de comida
nesta região e nenhum pássaro sabe onde a comida está. Mas eles sabem o quão
distante a comida está em cada iteração. Qual será a melhor estratégia para
encontrar a comida? Uma boa escolha é seguir o pássaro que está mais próximo da
comida.
A Otimização por Nuvem de Partículas (PSO) tomou como base este cenário e
usou-o para resolver os problemas de otimização. Na PSO, cada solução potencial é
133
um pássaro no espaço de soluções, o qual é chamado de partícula. Todas as
partículas possuem valores de fitness os quais são avaliados pela função-objetivo a
ser otimizada, e têm velocidades as quais direcionam o vôo das partículas. As
partículas voam sobre o espaço de soluções seguindo as partículas ótimas atuais.
Cada partícula tem as seguintes características:
� Possui uma posição e uma velocidade;
� Tem conhecimento da sua posição, e também do valor da função-objetivo
para esta posição;
� Tem conhecimento dos seus vizinhos, assim como da melhor posição e do
melhor valor da função-objetivo dentre eles;
� Guarda sua melhor posição já atingida.
PSO é iniciado com um grupo de partículas aleatórias (que são as soluções
potenciais) e então procura por soluções ótimas atualizando as partículas a cada
geração. Em cada iteração, cada partícula é atualizada seguindo dois valores. O
primeiro é a melhor solução (fitness) encontrada pela partícula ao longo da busca,
chamado de pbest. O outro valor é a melhor solução encontrada por todas as
partículas, chamado de gbest. A cada passo, o comportamento de uma determinada
partícula depende de três possíveis escolhas:
� Seguir seu próprio caminho;
� Seguir em direção à sua melhor posição já encontrada (pbest);
� Seguir em direção à melhor posição do melhor vizinho (gbest).
134
QUADRO 17
O pseudo-código para a Nuvem de Partícula
Início
Para cada partícula
Inicie partícula;
Fim_Para
Faça
Para cada partícula
Calcule o valor do fitness
Se esse fitness é melhor do que o fitness de pbest então
Determine a partícula p[] como pbest
Fim_Para
Defina a partícula com o melhor fitness de todas as partículas como
gbest
Para cada partícula
Calcule a velocidade da partícula de acordo com a equação – (1)
Atualize a posição da partícula de acordo com a equação – (2)
Fim_Para
Enquanto (iterações máximas) ou (critérios de erro mínimo) não são
atendidos.
As velocidades das partículas em cada dimensão são limitadas por uma máxima
velocidade, Vmax.
Há muitas maneiras de definir uma vizinhança (Kennedy, 1999), mas duas classes
podem ser distinguidas:
135
� Vizinhança “física” (ou geográfica), que leva em conta as distâncias. Na
prática, as distâncias são computadas a cada passo e tomadas as k arestas
mais próximas como vizinhas.
� Vizinhança “social”, que leva em conta os relacionamentos. Na prática, para
cada partícula, sua vizinhança é definida com uma lista de partículas.
Portanto, não é necessário calcular distâncias, sendo uma grande vantagem
para alguns casos, particularmente para espaços discretos. Pode notar
também que, se o processo converge, uma vizinhança social tende a se
tornar uma vizinhança física.
77..22..44 CCOONNTTRROOLLEE DDEE PPAARRÂÂMMEETTRROOSS
Há dois passos importantes quando se aplica PSO em problemas de otimização: a
representação da solução e a função de cálculo do fitness. Não há muitos
parâmetros a serem configurados. Abaixo segue uma lista dos parâmetros, assim
como valores típicos para eles:
� Número de partículas: o intervalo típico é 20-40. Para a maioria dos
problemas, 10 partículas são suficientes para alcançar bons resultados.
Para alguns problemas mais difíceis, pode-se tentar 100-200 partículas;
� Dimensão das partículas: determinada pelo problema a ser otimizado;
� Vmax: determine a máxima mudança que uma partícula pode tomar durante
uma interação;
136
� Fatores de aprendizagem: c1 e c2 usualmente são iguais a 2. Contudo,
podem variar no intervalo [0,4];
� Condição de parada: o número máximo de iterações que o algoritmo
executa e o requisito de erro mínimo. Estas condições de parada dependem
do problema.
77..22..55 AAPPLLIICCAAÇÇÕÕEESS
A PSO pode ser aplicada aos problemas de otimização, desde que se defina como
irão funcionar os parâmetros básicos, por exemplo, a interação entre a posição e a
velocidade.
A PSO também é usada em redes neurais artificiais, em lugar do método back-
propagation, para treinar a rede com a mesma eficiência em menor tempo (KEN,
1995). Em virtude disso, algumas aplicações reais nas áreas de diagnóstico médico,
indústria, etc. usam uma rede neural guiada pelo algoritmo PSO.
A Quadro 8 relaciona aplicações a Nuvem de Partículas extraídas do livro de Goldbarg e Luna (2005) e outras mais recentes na literatura.
137
QUADRO 18
Aplicações do Algoritmo Nuvem de Partículas
Ano Autores Abordando 1997 Kennedy e Eberhart Fundamentos de nuvens de partículas 1998 Angeline Nuvens de partículas com seleção 1999 Clerc Nuvens de partículas determinística e
adaptativa 1999 Dorigo e Di Caro Vários exemplos 1999 Bullnheimer et al. Estudo computacional 1999 Yoshida et al. Nuvens de partículas no controle de
voltagem 2001 Eberhart e Shi Aplicações para nuvens de partículas 2002 Ray e Liew Nuvens de partículas p/ multi-objetivo 2002a Parsopoulos e
Vrahatis Revisão da abordagem nuvens de partículas
2002b Parsopoulos e Vrahatis
Nuvens de partículas p/ multi-objetivo
2002 Ciuprina et al. Nuvens de partículas p/ eletromagnética 2002 Salman et al. Nuvens de partículas p/ alocação de tarefas 2002 Laskari et al. Nuvens de partículas p/ programação inteira 2003 Bonabeau et al. Conceitos em nuvens de partículas 2003 Ting et al. Nuvem de partículas p/ geração de energia 2004 Maniezzo et al. Texto didático 2004 Onwubolu e Clerc Nuvem de partículas p/ perfuração
automática 2004 Chang et al. Nuvem de partículas p/ bioquímica 2004 Coello et al. Nuvem de partículas p/ multi-objetivo 2005 Machado e Hetiro Nuvem de partículas para PCV 2005 Jerald et al. Sistemas de Manufaturas 2006 Goldbarg et al. Nuvem de partículas p/ PCV
Fonte: adaptada de Goldbarg e Luna, 2005
138
88..CCOONNCCLLUUSSÕÕEESS
A evolução natural é certamente, o melhor e mais original dos sistemas evolutivos e
projetos criativos têm surgido na natureza por centenas de milhões de anos. Seres
vivos que, de longe, superam quaiquer projetos humanos m termos de
complexidade, performance e eficiência proliferam ao redor do mundo. Mais e mais
os biólogos descobrem informações a respeito das criaturas ao nosso redor.
Baseada nessa evolução, a teoria de seleção de Darwin (1859) representou um
marco para a biologia, e ainda é alvo de intensos debates. É, de fato, uma teoria
singularmente simples se comparada a teorias matemáticas e físicas. Em essência,
consiste simplesmente na idéia de que a pressão seletiva juntamente com
recombinação, caracterizada por hereditariedade e algum grau de variação aleatória,
têm conseqüências inimagináveis se houver tempo para elas serem cumulativas.
Mas há razões de sobra para se julgar essa simplicidade decepcionante.
139
Os Algoritmos Evolucionários, segundo Coelho (2000), tratam de métodos
estocásticos e seu desempenho varia de execução para execução ( a menos que o
mesmo gerador de números aleatórios com a mesma semente seja utilizado):
▪ Apresentam dificuldades para a determinação do ótimo global, sem a utilização de
uma metodologia de otimização local;
▪ Necessitam de análise de todas as amostras do processo a cada avaliação do
fitness ( limitação relevante para aplicações de controle em tempo real).
Pode ser feita uma analogia direta entre algoritmo evolutivos com etapas de busca
local e a uma população de seres humanos vivendo em sociedade. Considere dois
indivíduos desta população que sejam igualmente aptos físicos e intelectualmente.
Se um deles tiver acesso ao conhecimento de técnicas de convivência social e outro
não, então a capacidade de convivência social de ambos será distinta, pois um
deles, além das aptidões genética, aprendeu aptidões culturais ou meméticas. Esta
é a razão pelas quais os algoritmos genéticos com etapas de busca local são
comumente denominados de algoritmos meméticos. De uma forma genérica, é
possível dizer que, se os algoritmos genéticos foram criados tentando simular a
evolução biológica, os algoritmo meméticos tentam simular a evolução cultural
(MORONI, 2003).
O Algoritmo Cultural pode ser caracterizado como uma extensão do Algoritmo
Genético, no qual, tem-se a ideia de que uma cultura praticada nos indivíduos de
uma população pode aumentar as chances de encontrar boas soluções.
140
O Algoritmo Cultural, assim como o Genético, são bons para localizar, velozmente,
as regiões promissoras do espaço de busca. Porém, são muito lentos para refinar as
soluções. Assim, necessitam de um tempo maior para encontrar o ótimo global ou
soluções bem aproximadas.
Já a Transgenética Computacional é uma proposta evolucionária multiagente para o
aproveitamento do fluxo intracelular e que encontra justificativa tanto nas
dificuldades do processo Darwiniano em constituir blocos de montagem.
Sabidamente o estado da arte ainda não alcançou uma “teoria de tudo” – ou uma
teoria que possa integrar todas as disciplinas e solucionar todos os questionamentos
( de fato muitos até duvidam que tal teoria de fato existe, o que comprova o quão
afastados estamos das certezas em nossas atuais teorias). Assim, é natural que os
avanços da ciência provoquem reformulações ou re-acomodações nas teorias
existentes, quaisquer que sejam elas – até que o fundo do poço seja alcançado.
Questionar uma teoria é, no mínino, elogiá-la com a atenção dispensada. O mar das
incertezas cientificas não faz exceções entre teorias, mesmo que isso
eventualmente possa contrariar “a crença” de alguns de seus seguidores.
No que tange ao desenvolvimento de algoritmo evolucionários a mensagem é clara:
Existem outros caminhos que não a abordagem clássica dos algoritmos genéticos
para realizar uma evolução artificial eficiente.
141
TRABALHOS FUTUROS
Sugeri-se como trabalhos futuros a implementação dos algoritmos descritos com
base na teoria apresentada.
142
RREEFFEERRÊÊNNCCIIAA
ARTHUR E.; Et al. A new approach to solving the multiple traveling salesperson
problem using algorithms Department of Business Information Technology, Pamplin
College of Business, Blacksburg, United States, 2005.
ANGELINE, P. J. Using selection to improve particle swarm optimization, in
Proceedings of the IEEE International Conference on Evolutionary Computation, 84-
89, 1998..
ABD-EL-BARR, M., Et al.. A Modified Ant Colony Algorithm for Evolutionary Design
of Digital Circuits, in IEEE Congress on Evolutionary Compatation, 2003..
GANTOVNIK, V. B., GURDAL, Z WATSON, L. T. A genetic algorithm with memory
for optimal design of laminated sandwich composite panels, Composite Structures
58,2002..
ARSLAN, T., HORROCKS, D.H., E OZDEMIR, E. Structural Synthesis of Cell-based
VLSI Circuits using a Multi-Objective Genetic Algorithm, IEE Electronic Letters,
1996.
AZADIVAR, F., E TOMPKINS, G. Simulation optimization with qualitative variables
and structural model changes: A genetic algorithm approach, EJOR, 1999.
AYALA, F.J.; VALENTINE, J.W. Evolving. The theory and processes of organic
evolution. The Benjamin/Cummings Publ. Comp., California. Capítulo 1, pp. 1-17,
1979. (Tradução: Celso Abbade Mourão).
AYTUG, H., E SAYDAM, C. SOLVING large-scale maximum expected covering
location problems by genetic algorithms: A comparative study, EJOR 141(3), 2002.
143
BACK, T.; FOGEL, D. B.; MICHALEWICZ, Z. Evolutionary computation 2: Advance
algorithms and operators. Bistol, UK: IOP, 2000.
_______. Evolutionary Algorithms in Theory and Practice: Evolution Strategies, Evolutionary Programming, Genetic Algorithms. New York: Oxford University Press, 1996. BAGLEY, J. D. The Behavior of Adaptative Systems Wich Employ Genetic and Correlation Algorithms. Tese de Doutorado. University of Michigan, 1967. BARROS, NETO, J. F. Análise de Desempenho dos Operadores Genéticos Aplicados ao Problema do Caxeiro Viajante. Anais do XXIX Seminário Brasileiro de Pesquisa Operacional – SBPO, Salvador-BA, 1997. BEHE, M. Darwin’s Black Box: The Biochemical to Evolution, The Free Press, New York, 1996. BENTLEY, P.; CORNE, D. Creative Evolutionary Systems. San Francisco: Morgan Kaufmann, 2002. BERSINI, H.; RENDERS, B. Hybridizing Genetic Algorithms with Hill-Climb Methods for Global Optimization: Two Possible Ways. In 1994 IEEE International Symposium Evolutionary Computation. 312-317, Orlando, USA, 1994. BETHKE, A. D. Genetic Algorithms As Function Optimizers. Tese de Doutorado. University of Michigan, 1981. BINDER, L.. Monte Carlo Methods in Statistical Physics. New York: Springer, 1978 BLICKLE, T.; THIELE, L. A comparision of selection schemes used in genetic algorithms. TIK-Report nr 11 version 2, Computer Engineering and Communication Networks Lab. Swiss Federal Institute of Technology (ETH), Zurich, Switzerland, December, 1995. BODIN, L. D. at al. Routing and scheduling of vehicles and crews: The state of the art. Computers and Operations Research, vol.10, n.2, 1983.
144
BORGES, Karla A. V. Modelagem de dados geográficos – uma extensão do modelo OMT para aplicações geográficas. Dissertação de mestrado. Belo Horizonte, MG: ESCOLA DE GOVERNO DE MINAS GERAIS, Fundação João Pinheiro, 1997. BOCK, F. Na algorithm for solving “traveling salesman” and related network optimization problems, presented at the 14th National Meeting of the Operations Research Society of America, St. Louis, Missouri, 1958. BONABEU, E.; DORIGO, M.; THERAULAZ, G, Swarm Intelligence: From Natural To Artificial Systems, Oxford University Press, 2003. BULLNEHIMER B.; HARTL R. F. E.; STRAUSS, C. A New Rank Based Version Of The Ant System: A Computational Study, Central European Journal For Operations Research And Economics 7(1), 25-38, 1999. CALDWELL, C. E JOHNSTON, V. S. Tracking A Criminal Suspect Through “Face-Space” With A Genetic Algorithm, In Proceedings Of Fourth International Conference On Genetic Algorithms, 416-421, 1991. CAMPELLO, R.; MACULAN, N Algoritmos e Heurísticas – Desenvolvimento e Avaliação de Performance. Niterói, RJ: EDUFF, 1994. CARBONATO, A.; MANIEZZO, V. The Ant Colony Optimization paradigm for combinatorial optimization in Advances in Evolutionary computing: theory and applications, Springer-Verlag, 539-557, 2003. CHATTERJEE, S .; CARRERA, C.; LYNCH, L.. A. Genetic algotithms and traveling salesman problems – European Journal of Operational Research. Vol 93, 1996. CHENG, R. W.; GEN, M. Parallel machine sheduling problems using memetic\algorithms, Computers & Industrial Engineering 33(34), pp.761-764, 1997. CHUNG, C.; REYNOLDS, R. A Testbed for Solving Optimization Problems Using Cultural Algorithms, Department of Computer Science, Wayne State University. Michigan, USA, 1996. CIUPRINA, G., IOAN, D., E MUNTEANU, I. Use Of Intelligent-Particle Swarm Optimization In Electromagnetics, Ieee Transactions On Magnetics 38(2), 1037-1040, 2002.
145
CLERC, M. The Swarm And The Queen: Towards A Deterministic And Adaptive Particle Swarm Optimisation, In Proceedings Of The Ieee International Congress On Evolutionary Computation 3, 1951-1956, 1999. COELHO, L. S. Identificação e controle de processos multivariáveis via metodologias avançadas e inteligência computacional, Tese de doutorado, Pós-Graduação em Engenharia Elétrica, Universidade Federal de Santa Catarina, florianópolis, SC, 2000. COELHO, C. A. C.; BECERRA, R. L. Evolutionary Multiobjective Optimization using a Cultural Algorithm. IEEE Swarm Intelligence Symposium, SIS ’03, 2003. COELLO, C. A. C., E Becerra, R. L. A Cultural Algorithm For Constrained Optimization, Lecture Notes In Computer Science, In Proceedings Of The Second Mexican International Conference Of Artificial Intelligence: Advances In Artificial Intelligence, 98-107, 2002. COOK, S. A.. The complexity of theorem, proving procedures. In: ACM SYMPOSIUM ON THEORY OF COMPUTING, 3. New York, 1971. CUNHA, C. B. Aspectos práticos da aplicação de modelos de roteirização de veículos a problemas reais. Transportes, v.8, n.2, p. 51-74, 2000. ______. Uma contribuição para o problema de roteirização de veículos com restrições operacionais. São Paulo: EPUSP, Departamento de Engenharia de Transportes, (Tese de Doutorado), 1997. DARWIN, C. Origin of species by means of natural selection, or the preservations of favored races in the struggle for life. 6th Edition, v. I and II. Jonh Murray: London, Albemarle Street, 1859. DAWKINS, R. The Blind Watchmaker. London: Penguin Books, 1991. DAWKINS, R. The Selfish Gene, Oxford: Oxford University Press, 1976. DAVIS, L. Handbook of Genetic Algorithms. Van Nostrand Reinhold, 1991.
146
DELLAERT, N., JEUNET, J., E JONARD, N. A genetic algorithm to solve the general multi-level lot-sizing problem with time-varying costs, International Journal of Production Economics 68(3), 2000. DOBZHANSKY, T. Genetics and the Origin of Species. The Columbia Classiscs in Evolutionary Series. Columbia Univ. Press, New York, 1937. DORIGO, M.; CARO, G. DI. The Ant Colony Optimization Meta-Heuristic. In D. Corne, M. Dorigo and F. Glover, editors, New Ideas in Optimization, McGraw-Hill, 1999. _______.GAMBARDELLA, L. M.. Ant Colonies for the Traveling Salesman Problem, BioSystems, Also Technical Report TR/IRIDIA/1996-3, IRIDIA, 1997. _______. Optimization, leraning ande natural algorithm ( in Italian). Unpublished doctoral dissertation, Politecnico di Milano, Dipartumento di Elettronica, Italy, 1992. EBERHART R. C.;. SHI, Y. Particle swarm optimization: Developments, applications and resources, in Proceedings of the IEEE International Conference on Evolutionary Computation 1, 2001. EBERHART, R.: Simpson, P.; DOBBINS, R. Computational Intelligence PC Tools: an indispensable resource for the latest in fuzzy logic, neural network and evolutionary computing. American Press Inc., 1996. EHRLICH, P. R.; RAVEN, P. H. Butterflis and Plants: A Study in Coevolution. Evolution. 1964. FLOOD, M. M. The Traveling-Salesman Problem. Operattions Research 4, n. 1, p. 61-75, 1956. FREISLEBEN; MERZ, P. New Genetic Local Search Operators for the Traveling Salesman Problem. 4th Conference on Parallel Problem Solving from Nature Springer. 1996. FOGEL, D. B. Evolutionary Computation: toward a new philosophy of machine intelligence. Second Edition. IEEE Press, 2000.
147
_______. ATMAR, W. First Annual Conference on Evolutionary Programming. Evolutionary Programming Society. La Jolla, California, 1992. _______. Artificial Intelligence Through Simulated Evolution, Wiley, New York, 1966. FONSECA, C. M.; FLEMING, P. J. “Genetic Algorithms for Multiobjective Optimization: Formulation, Discussion and Generalization”. In: Proceedins of the Fifth International Conference on Genetic Algorithms, 1993. FORSYTH, P.; WREN, A. An Ant Systems for Bus Driver Scheduling. VII International Workshop on Computer-Aided Scheduling of Public Transport, Boston, 1997, FRANKLIN B.; BERGERMAN M. Cultural algorithms: Concepts and experiments. In Congress on Evolutionary Computation, pages 1245-1251, Piscataway, NJ. IEEE Service Center, 2000. FREITAS, A. A. A. survey of evolutionary algorithms for data mining and knowledge discovery. To appear in: Ghosh, A.; Tsutsui, S. (Eds.) Advances in evolutionary computation. Springer-Verlag, 2001. GAMBARDELLA, L. M.; DORIGO, M. Solving Symmetric and Asymmetric TSPs by Ant Colonies. Proc. Conf. Evolut. Comp. (ICEC’96) IEEE Press, 1996. _______. Macs-Vrptw: A Multiple Ant Colony System For Vehicle Routing Problems With Time Windows. In D. Corne, M. Dorigo, And F. Glover, Editors, New Ideas In Optimization. Mcgraw-Hill, 1999.. GARCIA, V. J.; FRANÇA P. M.; MOSCATO P. A.. Algoritmo Memético paralelo aplicado a Problemas de Seqüenciamento em Máquina Simples. Departamento de Engenharia Elétrica de Sistemas. Universidade Estadual de Campinas, Campinas – SP, 2001. GAREY, M.R.; JOHNSON, D. S. Computers and intractability: a guide to the theory of NP-completeness. San Francisco: Freeman, 1979. GLOVER, F. Tabu search – part I. ORSA Journal on Computing, v. 1, n .3, p. 190-210, 1989a.
148
_______. Future Paths for Integer Programming and Links to Artificial Inteligence. Computers and Operations Research 13, pp. 533-549. 1986. _______. LAGUNA, M. Tabu Search. Kluwer Academic Publisher, Boston, 1997. _______. Tabu Search: fundamental and uses. Rapport Technique, Graduate School of Business, University of Colorado, Boulder, 1996. GREFENSTETTE, J. J. Deception Considered Harmfull. In: Foundations of Genetic Algorithms, Whitley, L. D. (Ed.), v. 2, San Mateo, CA: Morgan Kaufmann, 75-91, 1993. GOLDBARG, M.C.; LUNA, H. P. L. Programação Linear e Otimização Combinatória, Modelos e Algoritmos, Ed. Campus, 2ª Edição, 2005. _______. LUNA, H. P. R. Otimização Combinatória e Programação Linear. Rio de Janeiro: Editora Campus, 1999. _______. GOLDBARG, E. F. Transgenética Computacional: Uma aplicação ao Problema Quadrático de Alocação. Pesquisa Operacional, 2002. _______. GOUVÊA, E. F. Transgenética Computacional, Relatório Técnico, Programa de Engenharia de Produção da COPPE/UFRJ, 2001. _______. LUNA, H. P. C. Otimização Combinatória E Programação Linear: Modelos E Algoritmos. Rio de Janeiro: 2000. _______. FERREIRA, R. P. M. LUNA H. P. L.. Vírus Infections for Acceleration of Genetic Algorithms: Na Introductory Study, III Meta-heuristics International Congress, Angra dos Reis, Brasil, 1999. GOLDBERG, D. E. Genetic Algorithms in Search, Optimization, and Machine Learning, Addison Wesley, 1989. GOUVÊA. E. F., e GOLDBARG M. C. A transgenetic algorithm applied to the quadatic assignment problem. Journal of Heuristics. Submetido em 2003.
149
_______. Transgenética Computacional: Um Estudo Algoritmo, Tese de Doutorado, Programa de Engenharia da Produção, COPPE-UFRJ, Rio de Janeiro, 2001. GOSS, S.; Et al. Self-organized shortcuts in the Argentine ant. Naturwissenschaften, 76:579-581, 1989. HAJELA, P.; LIN, C. Y. “Genetic Search Strategies in Multicriterion Optimal Design”. In: Structural Optimization, v.4, pp.99-107, 1992. HAUPT, R.I.; HAUPT, S. E. Practical Genetic Algorithms, Wiley, New York, 1998. HELSGAUN, K. An effective implementation of the Lin-Kernigham Traveling Salesman Heuristic, European Journal of Operational Research, v. 126, p. 106-130, 2000. HASSINI, E., E VICKSON, R, G. A two-carousel storage location problem, Computers & Ops., 2003. HEPPNER, F. A Stochastic nonlinear model for coordinated bird flocks. In S. Krasner, Ed., The Ubiquity of Caos. AAAS Publications, Washington, DC, 1990. HORN, J.; NAFPLIOTIS, N. Multiobjective Optimization Using the Niched Pareto Genetic Algorithm.IIIiGAL Report No. 93005, IIIinois Genetic Algorithms Laboratory, University of lllinois Urbana, Champaign, Jul. 1993. HOLLAND, J. Adaptation in Natural and Atificial Systems. Ann Arbor: University of Michigan Press, 1975. HOUCK, C. R. et al. Empirical Investigation of Benefits of Partial Lamarckianism, Technical Report _______. JOINES, J. A.; KAY, M. G. Utilizing Lamarckian Evolution and Baldwing Effects in Hybrid Genetic Algorithms, Technical Report No NCSU-IE TR 96-01, Raleigh: North Carolina State University, 1996. HULL, D. Filosofia da ciência biológica. Tradução de Eduardo Almeida. Rio de Janeiro: Zahar, 1975.
150
INGLESTON, B., E SMITH, R. (1997), Na application of genetic algorithms to air combat maneuvering, in Handbook of Evolutionary Computation, IOP Publishing Ltd. 1997. JERALD, J.P.; Et al. Scheuling optimization of flexible manufacturing systems using particle swarm optimization algorithm. Published online: 16 March 2004, Int J Adv Manuf Technol, Springer-Verlag London, 2005. JONES, T.; FORREST, S Fitness Distance Correlation as a Measure of Problems Difficulty for Genetic Algorithm, Technical Report, Santa Fe Institut, CA , 1996. KARR, C.L.,E GOLDBERG, D.E. (1990), Genetic Algorithm Based Design Of An Air-Injected Hydrocyclone, Control 90, Mineral And Metallurgical Processing, 265-272. KARP, R. M. Reducibility Among Combinatorial Problems, Complexity of Computer Compulations, 1972. KAUFFMAN, A. A. The Origins of Order: Self-Organization and Selection in Evolution, Oxford University press, Nova York, 1993. KENNEDY, J. Small worlds and mega-minds: Effects of neighborhood topology on Particle Swarm performance. Congress on Evolutionary Computation, Washington, DC, IEEE, 1999. _______. Particicle Swarm Optimization. Neural Networks. Proceedings, IEEE International Conference on. Perth, WA, Australia. P. 1942-1948, Volume 4, 1995. KENNEDY, J., E EBERHART, R.C. (1997), A discrete binary version of the particle swarm algorithm, in Proceedings of the 1997 Conference on Systems, Man, and Cybernetics, 4101-4109 KIM, Y. J., KIM, Y. K., E CHO, Y. (1998), A heuristic-based genetic algorithm for workload smoothing in assembly lines, Computers & Ops. Res 25(2), 99-111 KIRKPATRICK, S.; GELLAT Jr., C. D.; VECCHI, M. P. Optimization by simulated annealing. Science, v.220, p. 671-680, 1983. KNOSALA, R; WAL, T. A production scheduling problem using genetic algorithm. Journal of Materials Processing Techonology, v.109, p. 90-95, 2001.
151
KRASNOGOR, N.; SMITH, J. Competent Memetic Algorithms: Model, Taxonomy and Dressing Issues. Automatic Scheduling, Optimization and Planning Group School of Computer Science and IT. Universidade de Nottingham, 2001. LAGUNA, M. Tabu Search Tutorial, II Escuela de Verano Latino-Americana de Investigación Operativa, 1991. LAMBERT. A. J. D. Determining optimum disassembly sequences in eletronic equipment, Computers and Industrial Engineering 43(3), 553-575, 2002.. LAPORTE, G. The Vehicle-Routing Problem – An Overview of exact and approximate algorithms, European Journal of Operational Research, v. 59, p. 345-358, 1992. LASKARI, E. C., PARSOPOULOS, K. E., E VRAHATIS, M. N. Particle swarm optimization for integer programming, in Proceedings of the IEEE International Congress on Evolutionary Computation 2. 1582-1587, 2002. LAWRENCE V.; Et al. A random-key genetic algorithm for the generalized traveling salesman problem. European Journal of Operational Research Department of Industrial and Systems Engineering. Bethlehem, USA, 2005. LEWIS, H. E; PAPADIMITRIOU, C. Elements of The Theory of Computation, Prentice-Hall International, 1981. LIN, S.; KERNIGHAN, B. An Effective Heuristic Algorithm for the Traveling Salesman Problem. Operational Research, 21. 498-516, 1973. MACHADO, T. R.; HETIRO, S. L. A. hybrid particle swarm optimization model for the traveling salesman problem. Laboratório de bioinformatica/ CPGEI, CEFET-PR – 2005. MANIEZZO V, GAMBARDELLA L.. M., DE LUIGI F. Ant Colony Optimization, in New Optimization Techniques in Engineering, Springer-Verlag, 101-117, 2004. _______. CARBONARO, A. Ant Colony Optimization: Na Overview. Scienze dell’Informazione, Universidade de Bologna, Itália, 1999.
152
MARGULIS, L.. Symbiotic Planet. Basic Books, Nova York, 1998. MENDES, A.; Et al.. Memetic Algorithms to minimize tardiness on a single machine with sequence-dependent setup times, Journal of Operational Research, accepted, 2001. MERZ, P.; FREISLEBEN, B. A C omparison of Memetic Algoritms, Tabu Search, and Ant Colonies for the Quadratic Assignment Problem, Congress on Evolutionary Computation, vol. 3, pp. 2063-2070, 1999. _______. A Genetic Local Search Approach to the Quadratic Assignment Problem. In Bäck, T. editor, Proceedings of the 7th International Conference on Genetic Algorithms, 465-472. Morgan Kaufmann, 1997. METROPOLIS, N.; ROSENBLUTH, A. W.; TELLER, A., H. Equation of State Calculation by Fast Computing Machines, J. of Chem. Phys., 21, pp. 1087-1091, 1953. MICHALEWICZ, Z.; FOGEL, D. B. HOW TO Solve IT: Modern Heuristics. New York: Springer, 1998. MILLER, B. L.; GOLDBERG, D. E. Genetic Algorithms, Selection Schemes, And The Varying Effects Of Noise, llIigal Report 95009, Department Of General Engineering, University Of IIIinois At Urbana-Champaing, 1995. MITCHELL, M. An Introduction to Gene tic Algorithms. MIT Press, 1999. _______. An Introduction to Genetic Algorithms. Massachusets: MIT Press, 1996. MORITZ, A. Memetic Science: I – General Introduction, The Institute for Memetic Research, Panama City, Florida, 1990. MORONI, A. M. F. Artebitrariedade: uma relfexão sobre a natureza da criatividade e sua possível realização em ambiente computacionais.-Campinas/SP, 2003. MOSCATO, P.; NORMAN, M. G. A memetic approach for the travelling salesman problem – implementation of a computational ecology for optimisation on message-
153
Passing systems, Proceedings of the International Conference on Parallel Computing and Transputer Applications, Amsterdam, IOS Press, 1992. _______. On Evolution, Search, Optimization, Genetic Algorithms and Martial Arts, Caltech Concurrent Computation Program 158-79, California Institute of Technology, 1989. NAYEBZADEH, M. Et al.Real-Time Identification of Fetal Arrhythmia Using a Genetic Algorithm, in 6th European Cpngress on Intelligent Techiniques and Soft Computing, EUFIT ’98, B-27 V3, 1998. NOTREDAME, C., E HIGGINS, D. G. SAGA: sequence alignment by genetic algorithm, Nucleic Acids Research., 24(8), 1515-2154, 1996. PARK, B. J.; CHOI, H. R., KIM, H. S. A hybrid genetic algorithm for the job shop scheduling problems, Computers and Industrial Engineering, 2003. PARSOPOULOS, K. E., E VRAHATIS, M. N. Recent approaches to global optimization problems through Particle Swarm Optimization, Natural Computing 1, 235-306, 2002ª. _______. Particle Swarm Optimization method in multiobjective Problems, in Proceedings ACM Symposium on Applied Computing (SAC 2002), 603-607, 2002b POON, P. W.;CARTER, J. N. Genetic algorithm crossover operators for ordering applications – Computers & Operations Research. Vol. 22, n. 1, 1995. POTVIN, Jean–Yves–Genetic algorithms for the traveling salesman problem - Annals of Operations Research. Vol 63, 1996. PRESTON, P., E KOZAN, E. Na approach to determine storage locations of containers at seaport terminals, Computers & Ops. Res28(10), 983-995, 2001. RADCLIFFE, N. J., SURRY, D. P. Fundamental Limitations on Search Algorithms: Evolutionary Computing in Perspective, In Lecture Notes in Computer Science, 1000, 1995. _______. Formal Memetic Algorithms, Evolutionary Computing: AISB Workshop, Ed: T. Forgaty, Springer-Verlag, 1994.
154
RAMOS, I. C. O. Tese doutorado – Metodologia estatística na solução do problema do caxeiro viajante e na avaliação de algoritmos: um estudo aplicado à transgenética computacional. Natal /RN, 2005. _______. Et al. Ajuste de Parâmetro por Regressão Logística. IEEE, CEC-2005. _______. Uma Técnica Estatística na Solução do Problema do Caxeiro Viajante através de um Algoritmo Evolucionário. In: XXXVII SIMPÓSIO BRASILEIRO DE PESQUISA OPERACIONAL, 2005, Gramado. Anais..., 2005. RAY, P. K., E MAHAJAN, A. (2002), A genetic algorithm-based approach to calculate the optimal configuration of ultrasonic sensors in a 3D position estimation system, Robotics and Autonomous Systems 41(4), 165-177. REINELT, G. The Traveling Salesman – Computational Solutions for TSP Applications. Berlin: Springer-Verlag, 1994. RENFREW, A.C. Dynamic Modeling in Archaelogy: What, When, and Where? In S. E. van der Leeuw, editor, Dynamical Modeling and the Study of Change in Archaelogy. Edinburgh University Press, Edinburgh, Scotland, 1994. REYNOLDS, R. G. A testbed for solving optimization problems using cultural algorithms, Evolutionary Programming V, L. J. Fogel, P. J. Angeline, and T. B¨ack, Eds. Cambridge, MA: MIT Press, 1996, pp. 225-236, 1996. _______. An Introduction to Cultural Algorithms. In A. V. Sebald and L. J. Fogel, editors, Proceedings of the Third Anuual Conference on Evolutionary Programming, pages 131-139. Wolrd Scientific, River Edge, New Jersey, 1994. REYNOLDS, C. W. Flocks, Herds and Schools: a Distributed Behavioral Model. Computer Graphics, 21(4), 24-34, 1987. ROMEO, J.S.; VICENTELLI, A. S. A Theoretical Framework for Simulated Annealing, Algorithmica, 6, pp.302-345, 1991. ROSENBERG, R. S. Simulation of Genetic Populations With Biochemical Properties. Tese de Doutorado. University of Michigan, 1967.
155
SALMAN, A., AHMAD, I., E AL- MADAMI, S. (2002), Particle swarm optimization for task assignment problem, Microprocessors and Microsystems 26(8), 363-371 SATOH, T., NARA, K., MISHIMA. Algorithm for Solving Steiner Problem in Graph, in IASTED International Conference on Simulated Evolution And Learning, 2002. SCHAFFER, J. D. Multiple Objective Optimization with Vector Evaluated Genetic Algorithms. Ph.D. dissertation, Vanderbilt University, 1985. SCHIMITT, Lawrence J.; AMINI, Mohammad M. Performance characteristics of alternative genetic algorithmc approaches to the traveling salesman problem using a path representation: An empirical study – European Journal of Operational Research. Vol 108, n. 3, agosto de 1998. SHAPIRO, J. Genetic Algorithms in Machine Learning, taught at the Advanced Summer School on Machine Learning and Applications, 1999. SHOKOOH-SAREMI, M., et al. Design of multilayer polarizing beam splitters using genetic algorithm, Optics Communications, 2004. SOUZA, P. S., Asynchronous organizations for multi-algorithms problems. Pittsburgh: Carnegie Mellow University, Department of Electrical and Computer Engineering. 139p, (Tese de Doutorado). 1993. SRINIVAS, N.; DEB, K.. “Multiobjective Optimization Using Nondominated Sorting in Genetic Algorithms”. In: Evolutionary Computation, 2(3): pp. 221-248, 1994. STERNBERG, M. Using Cultural Algorithms to Support Re-Engineering of Rulu-Based Expert Systems in Dynamic Performance Environment: A Case Study in Fraud Detection, IEEE Transactions on Evolutionary Computation, Vol.1, No.4, pp.225-243, 1997. STUETZLE T.; HOODS, H. MAX-MIN Ant System and Local Search for Combinatorial Optimization Problems. In Proceedings Second International Conference on Meta-heuristics. MIC’97. Dordrecht: Kluwer Academic, 1998. TAILLARD, E. D. A Heuristic Column Generation Method for the Heterogeneous Fleet VRP, RAIRO 33, 1-34, 1999.
156
TING,T-O., et al. Solving Unit Commitment Problem Using Hybrid Particle Swarm Optimization, Journal of Heuristics 9(6), 507, 2003. TOPCUOGLUA, H.; Et al. Solving the uncapacitated hub location problem using genetic Algorithms, Computers & Ops. Res, a ser publicado, 2003. VÁLDES, M., DURÁN, M. D., E ROVIRA, A.. Thermoeconomic Optimization Of Combined Cycle Gas Turbine Power Plants Using Genetic Algorithms, Applied Thermal Engineering 23(17), 2169-2182, 2003. VARANELLI, J. M. On the Accelaration of Simulated Annealing, Ph. D. Thesis, University of Virginia, USA, 1996. VIANA, G. V. R. Meta-heurísticas e programação paralela em otimização combinatória, Fortaleza: Edições UFC, 1998. VICO, F., et al. Knee surgery planning with genetic algorithms and neural networks, in 4th International Conference “Neural Nteworks and Expert Systems in Medicine and Healthcare” NNESMED 2001. VON ZUBEN, F. J. Computação Evolutiva: Uma Abordagem Pragmática. Universidade de Campinas – UNICAMP, 2002. Disponível em: http://www.dca.fee.unicamp.br/~vonzuben/cousrses/ia707.html. Acessado em: 16 ago 2004. WHITLEY, D. A Genetic Algorithm Tutorial, Technical Report, Computer Science Department, Colorado State University, 1994. YANG, R.; DOUGLAS, I. Simple Genetic Algorithm with Local Tuning: Efficient Global Optimizing Technique. Journal of Optimization Theory and Applications, vol. 98, No. 2, pp.449-465, August 1998. YAO, Xin. Evolutionary Computation: Theory and Applications. World Scientific Birmingham, UK, 1999. YOSHIDA, H., KAWATA, K., FUKUYAMA, Y., A Particle Swarm Optimization For Reactive Power And Voltage Control Considering Voltage Stability, In Proceedings Of International Conference On Intelligent System Application To Power Systems, 117-121, 1999..
157
_______. An overview of evolutionary computation, Chinese Journal of Advanced Software Research, v.3, n. 1 ,p. 12-29, 1996. ZHOU, G., E GEN, M Approach to degree-constrained minimum spanning tree problem using genetic algorithm, Engineering Design & Automation 3(2), 157-165, 1997.. ZHOU, G.,MIN, H.; GEN, M. A genetic algorithm approach to the bi-criteria aloocation of customers to warehouses, Internatioanal Journal of Production Economics 86(1), 35-45, 2003. ZITZLER, E.; THIELE, L. An Evolutionary Algorithm for Multiobjective Optimization: The Strength Pareto Approach. Computer Engineering and Communication Nteworks Lab (TIK), Swiss Federal Institute of Techgnology (ETH), Zurich, 1998.
158
AAPPÊÊNNDDIICCEE -- AA O Problema do Caixeiro Viajante
O Problema do Caixeiro Viajante – PCV (do inglês Traveling Salesman Problem -
TSP) é um dos problemas mais estudado em Otimização Combinatória (LAPORTE,
1992). Apesar da sua definição singela, o PCV representa, até hoje, um dos desafios
da Pesquisa Operacional. Centenas de artigos já foram publicados sobre o PCV.
A definição do problema é direcionada para um conjunto de cidades de modo que,
sempre seja possível viajar de uma cidade à qualquer outra, e que as distâncias
entre elas sejam fixas e conhecidas. O objetivo é encontrar uma seqüência de
cidades de forma que o caixeiro viajante visite cada cidade uma única vez, fazendo
o menor trajeto possível.
Baseado no jogo de Hamilton o Problema do Caixeiro Viajante possui uma
importância fundamental para a Ciência da Computação. Nesse caso deve-se definir
uma seqüência de visitas sobre um conjunto de vértices de um grafo ponderado em
arestas de modo que o custo da trajetória sobre os vértices seja a menor possível,
159
onde o custo da mesma é dado pelo somatório dos pesos das arestas que
compõem a solução.
Sua origem é creditada a William Hamilton, que criou um jogo cujo objetivo era o de
traçar um roteiro através dos vértices de um dodecaedro ( vértices equivalema
cidades) que iniciasse e terminasse no mesmo vértices (cidade) sem, contudo,
repetir uma visita. O Cicllo Hamiltoniano constitui uma solução para o jogo de
Hamilton ( GOLDBAR e LUNA,1999).
Um jogo denominado “Around the World” que consistia em encontrar um ciclo que,
partindo de qualquer vértice do grafo da figura 1, passasse por todos os demais
vértices apenas uma vez e retornasse ao vértice inicial (GOLDBARG e LUNA, 2005),
ilustra o PCV.
Figura 1: O Jogo de Hamilton e uma Solução
Não só a questão do desempenho computacional tem atraído o interesse pelo PCV;
Inúmeros problemas reais são modelados como problemas do tipo caixeiro viajante
160
ou suas variantes. Conseqüentemente, existe uma importante necessidade de novos
algoritmos de solução.
Entre esses problemas pode-se citar o problema de produção que corresponde ao
seqüenciamento de n tarefas em uma única máquina, de forma a minimizar o tempo
total de execução das mesmas. Em linhas de montagem de componentes
eletrônicos busca-se encontrar, por exemplo, o roteiro de mínima distância para um
equipamento cuja tarefa é soldar todos os componentes de uma placa eletrônica. O
menor percurso total do equipamento para percorrer todos os pontos da placa está
diretamente associado à produtividade da linha (SOUZA, 1993). Problemas de
cristalografia e de controle de robôs também são citados (HELSGAUN, 2000,
REINELT, 1994). Isso para não falar nos inúmeros problemas que envolvem a
roteirização de veículos.
Problemas de roteamento de veículos são, muitas vezes, definidos como problemas
de um ou mais caixeiros viajantes que incluem restrições adicionais de capacidade e
de demanda, além de outras que dependem de cada aplicação (CUNHA, 2000).
Sob a ótica de otimização, o PCV pertence à categoria conhecida como NP-difícil
(do inglês “NP-hard”), o que significa que possui ordem de complexidade
exponencial. Em outras palavras, o esforço computacional para a sua resolução
cresce exponencialmente com o tamanho do problema (dado pelo número de pontos
a serem atendidos).
161
Em termos práticos, isto significa que não é possível resolver até a otimalidade
problemas reais pertencentes à classe NP-difícil5. Conseqüentemente, os métodos
de solução aplicados a instâncias reais são, em geral, heurísticos, isto é, não
asseguram a obtenção da solução ótima do ponto de vista matemático.
Os métodos de solução para o PCV podem ser classificados em exatos e
heurísticos. Os métodos exatos geralmente se baseiam em procedimentos de
enumeração implícita em árvore, conhecidos como branch-and-bound (B&B), para
os quais têm sido propostas diferentes funções limitadoras. Conforme discutidos
anteriormente os métodos exatos têm aplicação limitada para a solução do PCV de
grande parte, tendo em vista a complexidade combinatória destes problemas. Os
trabalhos de Laporte (1992), Helsgaun (2000) e Bodin (1983) apresentam maiores
detalhes sobre os métodos exatos.
Em decorrência da incapacidade dos métodos exatos, métodos heurísticos
compõem o principal foco de interesse para a resolução do PCV. Heurísticas são
procedimentos de solução que muitas vezes se apoiam em uma abordagem
intuitiva, na qual a estrutura particular do problema possa ser considerada e
explorada de forma inteligente, para a obtenção de uma solução adequada (CUNHA,
1997). Assim, na maioria dos casos as heurísticas propostas tendem a ser bastante
específicas e particulares para um determinado problema, carecendo de robustez;
isto é, não conseguem produzir boas soluções para problemas com características,
condicionantes ou restrições pouco diferentes daquelas para as quais foram
desenvolvidas.
5 Inclui problemas de otimização cujo espaço de busca para soluções pode ser infinito.
162
Os procedimentos heurísticos para o PCV podem ser divididos em dois grupos:
métodos de construção de roteiros e métodos de melhorias de roteiros. Alguns
autores consideram ainda um terceiro grupo, o dos métodos compostos, em que
heurísticas de construção e de melhorias de roteiros são utilizadas de forma
conjunta (HELSGAUN, 2000).
▪ Métodos de Construção de Roteiros
Nos métodos de construção de roteiros, nós (cidades) vão sendo incluídos no roteiro
gradualmente, de modo seqüencial, segundo alguma regra de construção, sem que
a solução parcial obtida seja melhorada. Em outras palavras, um roteiro é construído
iterativamente, sem modificação posterior das seqüências parciais de cidades,
definidas ao longo do processamento do algoritmo.
Segundo Laporte (1992), a construção do roteiro pode se dar através:
� Do método do vizinho mais próximo, no qual o caixeiro inicia em uma cidade
qualquer e então segue para a cidade mais próxima; a partir desta, busca-se
a cidade mais próxima ainda não visitada e assim sucessivamente até que
todas as cidades sejam visitadas, retornando então à cidade de origem;
� De métodos de inserção, nos quais, partindo-se de um roteiro inicial com
apenas duas cidades, e considerando todas as demais cidades ainda não
incluídas no roteiro, seleciona-se para inserção, no roteiro parcial sendo
163
construído, aquela que atenda um determinado critério; por exemplo, a cidade
que proporciona o menor acréscimo de distância total percorrida, ou a cidade
mais próxima do roteiro, ou a mais distante, ou ainda aquela que forma o
maior ângulo com duas cidades já inseridas no roteiro. Esse procedimento é
repetido sucessivamente, com a análise da inserção entre cada par de
cidades do roteiro parcial, até que todas as cidades sejam inseridas no
roteiro.
164
AAPPÊÊNNDDIICCEE -- BB Busca Local
As heurísticas de construção são importantes não somente pela sua perspectiva,
mas também porque podem ser usadas para gerar pontos de partida usados por
outra classe de heurísticas, as de busca local. Os algoritmos de busca local são
baseados em modificações simples no circuito. Na solução do PCV, por exemplo,
dado um circuito hamiltoniano, esses algoritmos tentam fazer trocas para que seu
comprimento seja reduzido, até que não seja impossível reduzí-lo mais (um circuito
localmente ótimo).
As técnicas de busca local são importantes não somente pela sua perspectiva e
eficiência, mas também porque elas podem ser usadas para gerar pontos de partida
para diversas outras heurísticas, dentre elas, a Simulated Annealing (SA). A própria
SA pode ser considerada uma variante da heurística de busca local, pois também
usa estratégias de vizinhança, só que usa artifícios para escapar de mínimos locais.
165
11.. UUMM BBRREEVVEE HHIISSTTÓÓRRIICCOO
O uso da busca em problemas de otimização combinatória tem uma longa história,
que vem desde o final da década de 50, quando o primeiro “algoritmo de troca de
arestas” para o problema do caixeiro viajante foi desenvolvido (BOCK, 1958). Nos
anos subseqüentes, a abrangência da busca local aumentou, e o conceito básico do
“algoritmo de troca de arestas” foi aplicado com sucesso a uma variedade de
problemas.
Na década passada houve um interesse ainda maior sobre o assunto, surgindo bons
trabalhos, tanto teóricos quanto práticos: foram gerados novos algoritmos, foi
introduzida a complexidade da busca local, a busca local tornou-se uma ferramenta
competitiva no manuseio de instâncias de muitos problemas complexos do mundo
real.
22.. EESSTTRRUUTTUURRAASS DDEE VVIIZZIINNHHAANNÇÇAA
As estruturas de vizinhança dependem do problema que se deseja resolver.
Encontrar funções de vizinhança eficientes consiste em um desafio nos algoritmos
de busca local. Nenhuma regra geral é definida para construir uma estrutura de
vizinhança e cada situação tem que ser considerada separadamente. Existem
inúmeras funções de vizinhança descritas na literatura, as mais simples e famosas
são as 2-Opt e 3-Opt. Existe também a Lin-Kernighan (LIIN, 1973), que tem se
mostrado ser uma das mais eficientes estruturas de vizinhança encontradas na
literatura.
166
2.1 Função 2-Opt
O algoritmo 2-Opt foi proposto primeiramente por (CROCK, 1958), embora o
movimento básico já tinha sido sugerido por (FLOOD, 1956). Esse movimento apaga
duas arestas, quebrando o circuito em dois caminhos, e então reconecta esses
caminhos da outra maneira possível. O movimento é realizado somente se a outra
maneira possível reduz o comprimento do circuito. A Figura 1 mostra o movimento 2-
Opt, enquanto a Figura 2 mostra o esquema de vizinhança para um certo caminho
em uma instância do Problema do Caixeiro Viajante.
Figura 1: movimento 2-Opt.
São excluídas duas arestas e em seguida os caminhos são cruzados, reconectando o caminho, com
a finalidade de formar outro caminho
Figura 2: Esquema de vizinhança do algoritmo 2-Opt para o PCV
167
2.2 Função 3-Opt
O algoritmo 3-Opt, proposto por (BOCK, 1958), funciona quase da mesma maneira
que o algoritmo 2-Opt. A primeira diferença ocorre no movimento básico, onde três
arestas são apagadas, quebrando o circuito em três caminhos. Outra diferença está
na reconexão destes caminhos, que pode ser feita de duas maneiras diferentes da
qual estavam conectados. O movimento é realizado se uma das duas maneiras
diferentes reduz o comprimento do circuito. Se as duas maneiras reduzem o circuito,
então se opta por reconectar os caminhos da maneira que implica na maior redução.
Além dos algoritmos 2-Opt e 3-Opt, tem-se o k-Opt, que é uma generalização que
permite trocas de k arestas. A Figura 3 mostra dois possíveis movimentos usando a
técnica 3-Opt.
Figura 3: Dois possíveis movimentos 3-Opt
33.. CCOONNSSIIDDEERRAAÇÇÕÕEESS FFIINNAAIISS
As heurísticas de busca local podem ser bastante úteis quando unidas a heurísticas
mais poderosas, tais como os algoritmos genéticos, simulated annealling, GRASP e
busca tabu.
168
As estruturas de vizinhança são as mais variadas possíveis, restando ao
pesquisador estudar o problema e definir qual a melhor a ser usada. Sendo assim,
ainda continua um desafio desenvolver técnicas de vizinhanças ainda melhores para
um determinado problema.
Na prática, muitos algoritmos de busca local convergem rapidamente e encontram
soluções de boa qualidade. O desempenho de um algoritmo de busca local pode ser
quantificado pelo tempo de processamento e pela qualidade de solução. Boas
soluções são geralmente encontradas em tempos de processamento polinomial de
baixa ordem.
169
AANNEEXXOO II
NAME: burma14 TYPE: TSP COMMENT: 14-Staedte in Burma (Zaw Win) DIMENSION: 14 EDGE_WEIGHT_TYPE: GEO EDGE_WEIGHT_FORMAT: FUNCTION DISPLAY_DATA_TYPE: COORD_DISPLAY NODE_COORD_SECTION 1 16.47 96.10 2 16.47 94.44 3 20.09 92.54 4 22.39 93.37 5 25.23 97.24 6 22.00 96.05 7 20.47 97.02 8 17.20 96.29 9 16.30 97.38 10 14.05 98.12 11 16.53 97.38 12 21.52 95.59 13 19.41 97.13 14 20.09 94.55 EOF http://www.iwr.uni-heidelberg.de/groups/comopt/software/TSPLIB95/tsp/
170
171
172
173
174
175
176
177
Livros Grátis( http://www.livrosgratis.com.br )
Milhares de Livros para Download: Baixar livros de AdministraçãoBaixar livros de AgronomiaBaixar livros de ArquiteturaBaixar livros de ArtesBaixar livros de AstronomiaBaixar livros de Biologia GeralBaixar livros de Ciência da ComputaçãoBaixar livros de Ciência da InformaçãoBaixar livros de Ciência PolíticaBaixar livros de Ciências da SaúdeBaixar livros de ComunicaçãoBaixar livros do Conselho Nacional de Educação - CNEBaixar livros de Defesa civilBaixar livros de DireitoBaixar livros de Direitos humanosBaixar livros de EconomiaBaixar livros de Economia DomésticaBaixar livros de EducaçãoBaixar livros de Educação - TrânsitoBaixar livros de Educação FísicaBaixar livros de Engenharia AeroespacialBaixar livros de FarmáciaBaixar livros de FilosofiaBaixar livros de FísicaBaixar livros de GeociênciasBaixar livros de GeografiaBaixar livros de HistóriaBaixar livros de Línguas
Baixar livros de LiteraturaBaixar livros de Literatura de CordelBaixar livros de Literatura InfantilBaixar livros de MatemáticaBaixar livros de MedicinaBaixar livros de Medicina VeterináriaBaixar livros de Meio AmbienteBaixar livros de MeteorologiaBaixar Monografias e TCCBaixar livros MultidisciplinarBaixar livros de MúsicaBaixar livros de PsicologiaBaixar livros de QuímicaBaixar livros de Saúde ColetivaBaixar livros de Serviço SocialBaixar livros de SociologiaBaixar livros de TeologiaBaixar livros de TrabalhoBaixar livros de Turismo