Sei sulla pagina 1di 14

FACULDADES SANTO AGOSTINHO

CURSO DE ENGENHARIA ELTRICA


DISCIPLINA: INTELIGNCIA COMPUTACIONAL 7B
PROF (A): MIKAELLA PRICILA ALVES DIAS

ACADMICOS:
CLUDIO NEVES
MATHEUS DE OLIVEIRA MOURA
OSAS LEITE SILVA
THALES AUGUSTO MENDES DE ARAJO

COMPUTAO EVOLUCIONRIA
Tcnicas e Aplicaes

MONTES CLAROS - MG
2017
1 Introduo

A Computao Evolucionria (CE) um ramo da cincia da computao que tem por


base os mecanismos evolutivos encontrados na natureza. Esses mecanismos esto diretamente
relacionados com a teoria da evoluo de Darwin (1859).
A Computao Evolucionria (CE) comeou a ser estudada primeiramente por
bilogos e geneticistas, que possuam interesse em simular os processos vitais de um ser
humano em um computador. Dentre os cientistas destacam-se os nomes de Barricelli, Fraser,
Martin e Cockerham. Na dcada de 60, um grupo de cientistas, em que o nome de Holland se
destaca, iniciaram um estudo em que era implementada uma populao de n indivduos onde
cada um possua seu gentipo e estava sujeito a operaes de seleo, recombinao e
mutao. Tal estudo foi modelado e passou a ser uma das primeiras aplicaes na rea de CE.
Bagley, em 1967, utilizou em uma parte de sua dissertao Algoritmos Genticos para
desenvolver sistemas classificadores.
A Computao Evolucionria compreende um conjunto de tcnicas de busca e
otimizao inspiradas na evoluo natural das espcies. As tcnicas atualmente incluem:
Programao Evolucionria, Estratgias Evolucionrias, Algoritmos Genticos e Programao
Gentica. Estes mtodos esto sendo utilizados, cada vez mais, pela comunidade de
inteligncia artificial para obter modelos de inteligncia computacional.
Os estudos relacionados a CE no pararam. Outras reas surgiram e ganharam
importncia no meio cientfico. Recentemente, novas concepes de meta-heursticas
emergiram e todas diretamente relacionadas com a CE, por exemplo Formaes de Cristais,
Colnia de Formigas e Enxame de Partculas. Tais propostas tambm tm uma forte
motivao fsica ou biolgica tais como bandos de pssaros, cardumes, enxames, entre outros.
Todas essas tcnicas representam um campo novo de pesquisa dentro da Cincia da
Computao. Neste campo muitos problemas continuam em aberto e a espera de novas
solues e ferramentas. Apesar disso, este paradigma vem se mostrando bastante poderoso e
muitos trabalhos vm explorando o uso de CE para solucionar diversos problemas em
diferentes reas do conhecimento desde minerao de dados e biologia molecular at o projeto
de circuitos digitais e inmeras tarefas envolvendo otimizao.

1
2 Algoritmo Gentico

Os Algoritmos Genticos (AG) foram concebidos em 1960 por John Holland, com o
objetivo inicial de estudar os fenmenos relacionados adaptao das espcies e da seleo
natural que ocorre na natureza (Darwin 1859), bem como desenvolver uma maneira de
incorporar estes conceitos aos computadores.
Esses algoritmos simulam processos naturais de sobrevivncia e reproduo das
populaes, essenciais em sua evoluo. Na natureza, indivduos de uma mesma populao
competem entre si, buscando principalmente a sobrevivncia, seja atravs da busca de
recursos como alimento, ou visando a reproduo. Os indivduos mais aptos tero um maior
nmero de descendentes, ao contrrio dos indivduos menos aptos. Os requisitos para a
implementao de um AG so:
Representaes das possveis solues do problema no formato de um cdigo
gentico;
Populao inicial que contenha diversidade suficiente para permitir ao algoritmo
combinar caractersticas e produzir novas solues;
Existncia de um mtodo para medir a qualidade de uma soluo potencial;
Um procedimento de combinao de solues para gerar novos indivduos na
populao;
Um critrio de escolha das solues que permanecero na populao ou que sero
retirados desta;
Um procedimento para introduzir periodicamente alteraes em algumas solues da
populao. Desse modo mantm-se a diversidade da populao e a possibilidade de se
produzir solues inovadoras para serem avaliadas pelo critrio de seleo dos mais
aptos.
Basicamente, o que um algoritmo gentico faz criar uma populao de possveis
respostas para o problema a ser tratado (inicializao) para depois submet-la ao processo de
evoluo, constitudo pelas seguintes etapas:
Avaliao: avalia-se a aptido das solues (indivduos da populao) - feita uma
anlise para que se estabelea quo bem elas respondem ao problema proposto;

2
Seleo: indivduos so selecionados para a reproduo. A probabilidade de uma dada
soluo a ser selecionada proporcional sua aptido;
Cruzamento: caractersticas das solues escolhidas so recombinadas, gerando novos
indivduos;
Mutao: caractersticas dos indivduos resultantes do processo de reproduo so
alteradas, acrescentando assim variedade populao;
Atualizao: os indivduos criados nesta gerao so inseridos na populao;
Finalizao: verifica se as condies de encerramento da evoluo foram atingidas,
retornando para a etapa de avaliao em caso negativo e encerrando a execuo em
caso positivo.

Figura 1 - Estrutura de funcionamento de um AG tradicional.

3
2.1 Populao

o conjunto de indivduos que esto sendo cogitados como soluo e que sero
usados para criar o novo conjunto de indivduos para anlise. O tamanho da populao pode
afetar o desempenho global e a eficincia dos algoritmos genticos.
2.2 Indivduos

O ponto de partida para a utilizao de um algoritmo gentico como ferramenta para


soluo de problemas a representao destes problemas de maneira que os algoritmos
genticos possam trabalhar adequadamente sobre eles. Uma das principais formas
representar cada atributo como uma sequncia de bits e o indivduo como a concatenao das
sequncias de bits de todos os seus atributos.
A codificao usando o prprio alfabeto do atributo que se quer representar (letras,
cdigos, nmeros reais, etc.) para representar um indivduo tambm muito utilizada.
Diversas outras formas so possveis, normalmente a forma mais apropriada est fortemente
ligada ao tipo de problema.
2.3 Avaliao de Aptido (Fitness)

Neste componente ser calculado, atravs de uma determinada funo, o valor de


aptido de cada indivduo da populao. Este o componente mais importante de qualquer
algoritmo gentico. atravs desta funo que se mede quo prximo um indivduo est da
soluo desejada ou quo boa esta soluo.
2.4 Seleo

Dada uma populao em que a cada indivduo foi atribudo um valor de aptido, existe
vrios mtodos para selecionar os indivduos sobre os quais sero aplicados os operadores
genticos. H diversas formas de seleo, entre eles h o mtodo de seleo por Roleta e o
mtodo de seleo por Torneio.
2.5 Operadores Genticos

O princpio bsico dos operadores genticos transformar a populao atravs de


sucessivas geraes, estendendo a busca at chegar a um resultado satisfatrio. Os operadores
genticos so necessrios para que a populao se diversifique e mantenha caractersticas de

4
adaptao adquiridas pelas geraes anteriores. Os operadores de cruzamento e de mutao
tm um papel fundamental em um algoritmo gentico.
2.5.1 Cruzamento (Crossover)
Este operador considerado o operador gentico predominante. Atravs do
cruzamento so criados novos indivduos misturando caractersticas de dois indivduos "pais".
Esta mistura feita tentando imitar (em um alto nvel de abstrao) a reproduo de genes em
clulas. Trechos das caractersticas de um indivduo so trocados pelo trecho equivalente do
outro. O resultado desta operao um indivduo que potencialmente combine as melhores
caractersticas dos indivduos usados como base.
2.5.2 Mutao
Esta operao simplesmente modifica aleatoriamente alguma caracterstica do
indivduo sobre o qual aplicada. Esta troca importante, pois acaba por criar novos valores
de caractersticas que no existiam ou apareciam em pequena quantidade na populao em
anlise. O operador de mutao necessrio para a introduo e manuteno da diversidade
gentica da populao. Desta forma, a mutao assegura que a probabilidade de se chegar a
qualquer ponto do espao de busca possivelmente no ser zero. O operador de mutao
aplicado aos indivduos atravs de uma taxa de mutao geralmente pequena.
2.6 Gerao

A cada passo, um novo conjunto de indivduos gerado a partir da populao anterior.


A este novo conjunto d-se o nome de "Gerao". atravs da criao de uma grande
quantidade de geraes que possvel obter resultados dos Algoritmos Genticos.
2.7 Aplicaes de AGs

Os AGs possuem uma larga aplicao em muitas reas cientficas, entre as quais
podem ser citados problemas de otimizao de solues, aprendizado de mquina,
desenvolvimento de estratgias e frmulas matemticas, anlise de modelos econmicos,
problemas de engenharia, diversas aplicaes na Biologia como simulao de bactrias,
sistemas imunolgicos, ecossistemas, descoberta de formato e propriedades de molculas
orgnicas.

5
3 Princpios da Programao Gentica

Programao Gentica (PG) uma tcnica de gerao automtica de programas de


computador criada por John Koza, inspirada na teoria de AGs de Holland. Em PG possvel
criar e manipular software geneticamente, aplicando conceitos herdados da Biologia para
gerar programas de computador automaticamente.
Programao gentica uma tcnica automtica de programao que propicia a
evoluo de programas de computadores que resolvem (ou aproximadamente resolvem)
problemas. Ela manipula solues corretas e incorretas, encoraja inconsistncias e abordagens
contraditrias, no apresenta uma variabilidade dinmica lgica, predominantemente
probabilstica, produz solues no-parcimoniosas e no apresenta um critrio de terminao
claramente definido.
Na programao gentica, os indivduos da populao no so sequncias de bits, mas
sim programas de computador armazenados na forma de rvores sintticas. Tais programas
que so os candidatos soluo do problema proposto. Na programao gentica, a
recombinao se d pela troca de sub rvores entre dois indivduos candidatos soluo.
A implementao de programao gentica conceitualmente imediata quando
associada a linguagens de programao que permitem a manipulao de um programa
computacional na forma de uma estrutura de dados, inclusive por possibilitar que novos dados
do mesmo tipo e recm-criados sejam imediatamente executados como programas
computacionais.
Como qualquer outro sistema computacional inspirado na natureza, a programao
gentica tem dois propsitos bsicos:
Servir de ferramenta para a soluo de problemas de engenharia;
Servir de modelo cientfico simplificado para processos naturais.
3.1 Algoritmo de Programao Gentica

O algoritmo de Programao Gentica simples e pode ser descrito resumidamente


como:
Criar aleatoriamente uma populao de programas;
Executar os seguintes passos at que um Critrio de Trmino seja satisfeito:

6
a) Avaliar cada programa atravs de uma funo heurstica (fitness), que expressa
quo prximo cada programa est da soluo ideal;
b) Selecionar os melhores programas de acordo com o fitness;
c) Aplicar a estes programas os operadores genticos (reproduo, cruzamento e
Mutao);
Retornar com o melhor programa encontrado;
Cada execuo deste lao representa uma nova gerao de programas.
Tradicionalmente, o Critrio de Trmino estabelecido como sendo encontrar uma soluo
satisfatria ou atingir um nmero mximo de geraes. Porm, existem abordagens baseadas
na anlise do processo evolutivo, isto , o lao permanece enquanto houver melhoria na
populao.
A estrutura bsica do algoritmo de Programao Gentica mostrada na Figura a
seguir:

Figura 2- Estrutura Bsica do Algoritmo de Programao Gentica

7
3.2 Critrio de Trmino

responsvel por interromper o lao de repetio do processo evolutivo que,


idealmente, no teria fim. O critrio mais comum limitar o nmero mximo de geraes ou
at que uma soluo satisfatria seja encontrada, porm existem critrios baseados no prprio
acompanhamento do processo evolutivo, isto , enquanto houver melhoria na mdia da
populao, o processo evolutivo prossegue.
3.3 Limitaes

A obrigatoriedade da propriedade de fechamento (closure) limita os domnios a serem


usados, no possibilitando a aplicao ampla da Programao Gentica. A necessidade do
fechamento devida ao uso irrestrito dos operadores genticos nos programas. Para contornar
estes problemas, John Koza props alteraes que devem ser feitas no algoritmo para adequ-
lo domnios que apresentem restries sintticas. Porm, estas alteraes direcionam o
algoritmo para solucionar problemas de determinado tipo, restringindo a sua aplicabilidade.

4 Inteligncia de Enxame

Inteligncia de enxame o termo utilizado para designar sistemas de inteligncia


artificial onde o comportamento coletivo dos indivduos em uma populao causa simples
solues coerentes ou padres a surgir.
O termo "enxame" (ou populao) utilizado de forma genrica para se referir a
qualquer coleo estruturada de agentes capazes de interagir. O exemplo clssico de um
enxame um enxame de abelhas. Entretanto, de maneira similar podemos considerar tambm
que outros sistemas, como por exemplo uma colnia de formigas, podem ser vistas como um
enxame, onde os agentes so as formigas; uma revoada de pssaros que um enxame, onde os
agentes so os pssaros e at um engarrafamento, onde os agentes so os carros. A noo de
enxame sugere um aspecto de movimento coletivo no espao, todavia, como em um enxame
de pssaros, estamos interessados em todos os tipos de comportamentos coletivos, no
somente espacial.
Logo, podemos dizer que a interao coletiva de todos os agentes dentro do sistema
muitas vezes leva a algum tipo de comportamento ou inteligncia coletiva. Este tipo de

8
inteligncia artificial inclui qualquer tentativa de projetar algoritmos ou dispositivos
distribudos de soluo de problemas sem ter um controle centralizado, inspirado no
comportamento coletivo de agentes sociais e outras sociedades animais.
A inteligncia coletiva uma propriedade de sistemas compostos por agentes no (ou
pouco) inteligentes com capacidade individual limitada, capazes de apresentar
comportamentos coletivos inteligentes. Tais comportamentos seguem as seguintes
propriedades:
Proximidade: Os agentes devem ser capazes de interagir;
Qualidade: Os agentes devem ser capazes de avaliar seus comportamentos;
Diversidade: Permite ao sistema reagir a situaes inesperadas;
Estabilidade: Nem todas as variaes ambientais devem afetar o comportamento de
um agente.
Adaptabilidade: Capacidade de se adequar a variaes ambientais.

4.1 Otimizao Por Colnia de Formigas (ACO)

No mundo real, as formigas andam sem rumo (pelo menos inicialmente) at que,
encontrada comida, elas retornam colnia deixando um rastro de feromnio. Se outras
formigas encontram um desses rastros, elas tendem a no seguir mais caminhos aleatrios.
Em vez disso, seguem a trilha encontrada, retornando e inclusive enfatizando se acharam
alimento.
Com o transcorrer do tempo, entretanto, as trilhas de feromnio comeam a evaporar,
reduzindo, assim, sua fora atrativa. Quanto mais formigas passarem por um caminho
predeterminado, mais tempo ser necessrio para o feromnio da trilha evaporar.
Analogamente, elas marcharo mais rapidamente por sobre um caminho curto, o que implica
aumento da densidade de feromnio depositado antes que ele comece a evaporar. A
evaporao do feromnio tambm possui a vantagem de evitar a convergncia para uma
soluo local tima: se a evaporao no procedesse, todas as trilhas escolhidas pelas
primeiras formigas tornar-se-iam excessivamente atrativas para as outras e, neste caso, a
explorao do espao da soluo delimitar-se-ia consideravelmente.

9
Todavia, quando uma formiga encontra um bom (curto) caminho entre a colnia e a
fonte de alimento, outras formigas tendero a seguir este caminho, gerando assim feedback
positivo, o que eventualmente torna um determinado caminho mais interessante. A idia do
algoritmo da colnia de formigas imitar este comportamento atravs de "formigas virtuais"
que caminham por um grafo que por sua vez representa o problema a ser resolvido.
O ACO tem sido utilizado para produzir solues quase timas para o problema do
caixeiro viajante. Este algoritmo apresenta uma vantagem sobre o algoritmo de arrefecimento
simulado (simulated annealing) e o algoritmo gentico, se o grafo muda dinamicamente. A
colnia de formigas pode mudar vrias vezes e se adaptar s mudanas em tempo real. de
grande interesse para solues de problemas em sistemas de roteamento de redes de
computadores e transporte urbano.

5 Aplicao da tcnica de otimizao heurstica baseada em colnia de formigas (ACO)

No artigo "Otimizao Heurstica por Colnia de formigas com Aplicaes em


Sistemas de Comunicaes" o autor utiliza o mtodo de otimizao por colnia de formigas
(ANT Colony Optimization ACO) para aplicao na resoluo do problema do controle de
potncia em redes CDMA, de modo a garantir QoS a cada usurio de um sistema MPGDS/
CDMA. A taxa de erro de bit (BER) usada como mtrica de QoS, uma vez que esta est
diretamente relacionada relao sinal-rudo-mais-interferncia (SNIR).

Sendo Fi o ganho de processamento do i-simo usurio, pi a potncia de


transmisso, gii o ganho de canal (efeitos de desvanecimento de pequena e larga escala), gij o
ganho de canal dos sinais interferentes e 2 a potncia do rudo aditivo gaussiano branco
(AWGN). O ganho de processamento Fi dado pela razo entre a taxa de chip rc e a taxa de
informao mnima definida para o i-simo usurio ri. A capacidade de Shannon para sistemas
com espalhamento espectral em canal AWGN, considerando o gap entre o limite terico e a
taxa de informao real atingvel dada por:

10
Sendo wi = W.Fi-1 a largura de banda do sinal no espalhado do i-simo usurio, mi =
log2Mi a ordem de modulao utilizada e W rc a largura de banda do sistema. O problema
de alocao de potncia a ser resolvido via ACO (PA-ACO) :

Onde a funo de limiar.

Figura 3- Configuraes do Sistema MPG-DS/CDMA

11
Figura 4- Evoluo do algoritmo RA-ACO para o problema de controle de potncia. a) Evoluo tpica do vetor
de potncias em um sistema com U = 5 usurios. b) Evoluo do NMSE para sistemas com U = {5, 10, 20} usurios.

possvel verificar que o PAACO suficientemente robusto na resoluo do


problema de alocao de potncia de sistemas CDMA.

6 Concluso

Neste trabalho, foi feito um estudo e levantamento bibliogrfico acerca do tema


computao evolucionria, detalhando suas principais subdivises e mtodos mais usados na
atualidade. Observamos que para obteno da melhor tcnica, depende do trabalho a ser
realizado, pois cada um possui suas especificidades e caractersticas prprias que o tornam
mais compatveis com determinada tcnica do que com outra. Percebemos tambm que
possvel formular e trabalhar com sistemas hbridos. E por fim analisamos uma aplicao na
rea de telecomunicaes que se mostrou bastante eficiente na soluo de problemas de
otimizao, garantido convergir soluo tima.

12
7 Referncias Bibliogrficas

MARQUES, M. P.; ANGLICO, B. A.; ABRO, T. Otimizao Heurstica por Colnia de


formigas com Aplicaes em Sistemas de Comunicaes. Semina: Cincias Exatas e
Tecnolgicas, Londrina, v. 35, n. 1, p. 63-76, jan./jun. 2014

LUCAS, D. C. Algoritmos Genticos: uma Introduo. UFRGS, Porto Alegre, maro - 2002.

POZO, A.; CAVALHEIRO, A. F.; ISHIDA, C.; SPINOSA, E.; RODRIGUES, E. M.


Computao Evolutiva. UFPR - Universidade Federal do Paran, 2005.

Introduo Inteligncia de Enxame - Otimizao por Enxame de Partculas (PSO).


Disponvel em: <http://aimotion.blogspot.com.br/2009/04/introducao-inteligencia-de-
enxame.html>. Acesso em 13 de junho de 2017.

Computao Evolucionria: Algoritmos Genticos. Disponvel em:


<http://aimotion.blogspot.com.br/2009/02/computacao-evolucionaria-algoritmos.html>.
Acesso em 13 de junho de 2017.

13