Admin, Artigo1
Admin, Artigo1
Admin, Artigo1
1. Introdução
O algoritmo genético (AG) é um dos ramos mais conhecidos da computação evolutiva.
A computação evolutiva é um dos ramos da ciência da computação que utiliza
paradigmas alternativos no processamento de dados convencional. O algoritmo genético
teve origem nos anos 70 nos estudos sobre autômatos celulares, realizados na
Universidade de Michigan pelo professor John HOLLAND (1992). A base teórica do
algoritmo está centrada na teoria da evolução de Charles Darwin, que se baseia no
processo de seleção natural fundamentada na sobrevivência dos indivíduos mais aptos.
Este artigo não faz uma revisão da teoria e prática dos algoritmos genéticos, que pode
ser vista em referências variadas, como MITCHELL (1996), ZBIGNIEW (1994)
O algoritmo genético na atualidade é largamente aplicado na resolução de
problemas que envolvem situações de busca e otimização. Esta classe de problemas, em
razão da grande dificuldade de solução, e de sua constante presença em grande parte dos
problemas da engenharia, têm atraído a atenção do mundo científico nas mais diversas
áreas e gerado inúmeras pesquisas nesse sentido.
Este artigo aplica algoritmo genético no problema de otimização conhecido
como “traveling salesman problem”, ou simplesmente TSP, que pode ser traduzido
como “problema do caixeiro viajante (PCV). Não trataremos das inúmeras abordagens
existentes sobre soluções para o problema do TSP, mas simplesmente a aplicação de
algoritmos genéticos como um modo de resolução.
A motivação desta aplicação partiu do setor de logística de entrega de
mercadorias de uma grande indústria, que necessita diariamente definir, para cada um
de seus entregadores, rotas de entrega. O problema pode ser descrito da seguinte forma:
cada entregador, em média, realiza de trinta a quarenta entregas diárias, sendo
necessário que cada entregador visite todos os pontos da rota para ele definida. Para
tanto, a indústria dispõe da informação de distâncias entre os pontos, ou localidades,
dessa rota a ser percorrida durante o dia.
A solução do problema se deu com o desenvolvimento de um protótipo de
ferramenta que utiliza técnicas evolutivas, capazes de gerar as sequências de localidades
a serem visitadas pelos entregadores. Para descrever a abordagem desse
desenvolvimento, este artigo está dividido em seis seções distintas, organizadas na
seguinte forma: na seção dois é descrito em detalhes a caracterização do problema TSP
a ser modelado; na seção três é apresentada a abordagem do uso de AG para solução do
TSP; na seção quatro descreve-se a concepção do AG utilizado para o desenvolvimento
da solução; na seção cinco são apresentadas as tecnologias utilizadas no
desenvolvimento da ferramenta e os resultados obtidos.
2. Caracterização do TSP
O TSP clássico consiste na seguinte proposição: dadas algumas cidades e a distância
entre elas, o caixeiro viajante deve visitar todas as cidades com o menor custo possível.
A solução deste problema consiste em encontrar a sequência de cidades, de forma que a
distância percorrida na viagem do caixeiro seja a mínima possível. De acordo com
LEWIS e CHRISTOS (2000), tal problema pode ser descrito matematicamente da
seguinte forma: dado um conjunto {𝑐# , 𝑐% , … , 𝑐'
} de cidades e uma matriz 𝑛
𝑥
𝑛 de inteiros
não negativos onde 𝑑-. denota a distância entre a cidade 𝑐- e a cidade 𝑐. admitindo que
𝑑-- = 0 e 𝑑-. =
𝑑.- para todos os 𝑖, 𝑗 , pode-se encontrar a trajetória mais curta pelas
cidades onde 𝜋 𝑖
é a i-ésima cidade visitada nesta trajetória, tal que a distância total
seja a menor possível:
𝑅 𝑛 = (𝑛 − 1)!/2
faz uma analogia aos processos naturais da evolução das espécies: dada uma população
de indivíduos, aqueles que contêm características genéticas melhores terão maiores
chances de sobrevivência e maior probabilidade de gerar descendentes cada vez mais
aptos e adaptáveis, enquanto indivíduos com características menos evoluídas tendem a
desaparecer. As características genéticas dos descendentes são parcialmente herdadas de
seus genitores, e tendem a se propagar para as novas gerações através da hereditariedade
genética, de forma que as qualidades genéticas de uma população anterior poderão ser
melhoradas a cada novo ciclo de novas gerações.
Segundo TAVARES NETO (2005) os algoritmos genéticos são estocásticos,
baseados em população, e seu desempenho depende dos seguintes operadores:
• Reprodução/Seleção,
• Cruzamento,
• Mutação.
A reprodução é um processo iterativo com o objetivo de enfatizar as melhores
soluções e penalizar as piores soluções de uma população. Durante a reprodução são
geradas recombinações chamadas de “crossover” de genes, onde os genes dos pais se
combinam para formar um novo cromossomo. Esse novo cromossomo poderá sofrer
“mutação” devido a fatores ambientais ou por erro de cópias. A mutação é responsável
pela geração de diversificação na população, pois gera alguma mudança na
característica de um indivíduo.
Durante o processo iterativo de recombinação e mutação são gerados os
indivíduos mais evoluídos, ou seja, os que melhor se adaptam ao meio. A aptidão
“fitness” é responsável pelo processo de seleção dos indivíduos, em que são
selecionados os que melhor se adaptam ao meio. Assim, os indivíduos que possuem
maior aptidão terão maiores chances de reprodução.
Na engenharia os algoritmos genéticos são considerados métodos adaptativos
muito utilizados para solucionar problemas de busca e otimização. Seu uso no problema
do caixeiro viajante (TSP) é claramente definido, devido ao fato de possibilitar a
exploração de pontos diferentes no espaço de soluções, de forma que não se prenda a
uma solução ótima local.
A Tabela 2 apresenta uma relação entre os conceitos de algoritmo genético
clássico (AG) e os problemas de otimização encontrados no TSP.
4.2 – Seleção das melhores rotas (cálculo de aptidão do indivíduo, “fitness score”)
Na função utilizada para a avaliação dos indivíduos, foi realizado o cálculo do custo da
sequência de rotas contido em cada indivíduo “cromossomo” (sendo o custo dado pela
distância total da sequência considerada). Tal função retorna o valor específico do custo
de cada cromossomo, sendo que foram considerados como indivíduos com maior
aptidão aqueles que obtiveram menor distância entre as localidades a serem percorridas.
Esta função de aptidão recebe como parâmetro de entrada um vetor de
cromossomos, que são os “indivíduos da população inicial”, e tem como saída um vetor
de cromossomos ordenados da forma que o primeiro elemento do vetor seja o
cromossomo com menor custo, o segundo elemento tenha o segundo menor custo e
assim sucessivamente. Objetivando maior desempenho para a ferramenta na ordenação
dos cromossomos, foi utilizado o algoritmo recursivo de ordenação por intercalação,
conhecido como “merge sort” (ordenação por mistura), onde seu tempo de execução é
da ordem de Θ(n
log
n) (CORMEN, 2001).
os cromossomos com rotas com menor custo, foram escolhidos aleatoriamente dois
cromossomos, “pai” e “mãe”, para gerar o descendente.
O operador utilizado nesta recombinação foi o operador tipo Order Operator
(OX), proposto por DAVIS (1985). Tal operador, conforme exemplificado na Figura 4,
gera o descendente escolhendo uma subsequência de um dos pais e preservando a
ordem relativa das localidades do outro pai. As seguintes etapas são realizadas na
recombinação OX:
1. Seleciona
aleatoriamente
dois
pontos
de
corte
nos
cromossomos.
No
exemplo
apresentado
na
Figura
4,
o
intervalo
de
corte
𝑆# = {4,5,6}
se
refere
ao
primeiro
pai,
o
𝑃# ,
e
o
intervalo
de
corte
𝑆% = 7,8,2
ao
segundo
pai,
o
𝑃% .
2. Uma
cópia
dos
elementos
do
intervalo
de
corte
selecionado
é
realizada.
De
𝑆#
para
o
𝐹%
,
e
𝑆%
para
𝐹# .
Em
que
𝐹#
e
o
𝐹%
serão
os
filhos
resultantes
do
cruzamento.
3. 𝐹#
recebe
o
restante
dos
elementos
de
𝑃# ,
iniciando
a
recombinação
do
ponto
de
corte
𝑆#
,
preservando
os
elementos
já
presentes
no
cromossomo.
A
recombinação
é
realizada
de
forma
circular,
e
ao
término
do
último
elemento
há
o
retorno
para
o
primeiro,
até
que
todos
os
elementos
do
cromossomo
sejam
preenchidos.
4. O
mesmo
procedimento
é
realizado
com
𝐹% .
4.4 – Mutação
Depois de realizado o processo de recombinação dos cromossomos, gerando assim uma
nova população, é realizado o processo de mutação. A mutação é aplicada a cada um
dos cromossomos desta nova população, satisfazendo a regra 𝑅𝑛- , em que a mutação se
dá por troca recíproca, ou “Reciprocal Exchange” (RE), que sorteia aleatoriamente dois
genes “localidade” e inverte sua posição.
A regra 𝑅𝑛- é definida da seguinte forma: para cada 10 recombinações sucessivas
em que o custo das rotas se mantiver, o algoritmo genético deverá aplicar mutação por
troca recíproca a seus descendentes, como ilustrado no exemplo da Figura 5.
6. Conclusões
O trabalho apresenta uma abordagem de utilização de algoritmo genético como solução
do problema de otimização conhecido como TSP. Embora não se possa afirmar que a
solução gerada pela ferramenta seja ótima, verifica-se que os resultados apresentados
são adequadas às necessidades. Nota-se, também, que uma das características mais
importantes da utilização dos algoritmos genéticos, para a solução desse tipo de
problema, se dá pela relativa facilidade de relacionar a abordagem genética ao problema
do TSP, obtendo assim resultados significativos.
No entanto, quando tal abordagem é utilizada para casos que exigem otimização
de número mais elevado de localidades, o tempo de convergência do algoritmo se
prolonga de maneira polinomial em relação à dimensão do roteiro. Dependendo dos
requisitos da aplicação, a estratégia adotada pode ser inadequada para a solução do
problema em questão.
Um avanço da proposta pode se dar pela adoção de abordagem heurística mais
sofisticada, visando melhorar a seleção das soluções “ótimas locais” no processo de
geração da população inicial. A inclusão de uma heurística de busca local, no processo
de reprodução dos indivíduos, pode tornar o algoritmo atual um algoritmo com
características híbridas “meméticas”, combinando as técnicas evolucionárias com as
técnicas heurísticas de busca local. Concluindo, tais mudanças poderão otimizar o
algoritmo atual, levando assim a convergência a um tempo computacional menor,
mesmo para grande número de localidades.
Referências
HOLLAND, J.H. Adaptation in Natural and Artificial Systems. MIT Press. USA.
232 pp. 1992.
LEWIS e CHRISTOS. Elementos de teoria da computação / Harry R. e Chiistos H.
Papadimitriu; trad. Edson Furmankiewicz. -2ª. Ed.- Porto Alegre: Bookman, 2000.
ARAUJO, H.A. Algoritmo Simulated Annealing: Uma nova abordagem [Dissertação
de Mestrado]. Florianópolis: UFSC, 2001. Disponível em
https://repositorio.ufsc.br/xmlui/bitstream/handle/123456789/80386/225675.pdf?seq
uence=1 (Acesso: 04/08/2017).
TAVARES NETO, R. F. Planejamento e Vistoria Usando Robôs Móveis Autônomos
e Otimização pelo Algoritmo de Colônia de Formigas [Dissertação de Mestrado].
Curitiba, PUC-PR, 2005.