Você está na página 1de 7

Aluna: Adriano Medeiros Pinheiro

Curso: Engenharia da Computação – Belém Professor: Dr. Limão

Lista de Exercícios 02 - Computação Evolutiva (17 de Abril de 2020)

1. O que é um Algoritmo Genético?


- Qual é a estrutura do algoritmo computacional (fluxograma) ?

Algoritmo Genético é um algoritmos de otimização global, baseados nos mecanismos de seleção


natural e da genética. Eles empregam uma estratégia de busca paralela e estruturada, mas
aleatória, que é voltada em direção ao reforço da busca de pontos de "alta aptidão", ou seja,
pontos nos quais a função a ser minimizada (ou maximizada) tem valores relativamente baixos
(ou altos). A forma básica de um algoritmo genético geral é:

Etapa 1 Gere uma população aleatória de cromossomos N.

Etapa 2 Avalie cada cromossomo na população usando a função fitness

Etapa 3 Crie uma nova população repetindo as etapas a seguir até que a nova população seja
concluída

Etapa 3.1 Seleção

Selecione dois cromossomos parentais de uma população de acordo com suas fitness (quanto
melhor fitness, maior a chance de ser selecionado)

Etapa 3.2 Crossover

Com uma probabilidade de cruzamento, cruze os pais para formar novos filhos (filhos). Se
nenhum cruzamento foi realizado, a prole é a cópia exata dos pais.

Etapa 3.3 Mutação

Com uma probabilidade de mutação, modifique novos filhotes em cada locus

(posição no cromossomo).

Etapa 3.4 substituição

Coloque novos filhos na nova população

Etapa 4 Use a nova população gerada para uma nova geração (iteração) do algoritmo

Etapa 5 Se a condição de término for satisfeita, pare e retorne a melhor solução na população
atual

Etapa 6 Vá para a Etapa 2


Figura 1 - Fluxograma de um Algoritmo Genético

2. O que é o operador Seleção ? -


para que serve ?
- como é implementado ?
- quais os tipos de Seleção existentes ?

Operador Seleção

O papel do mecanismo de seleção é distinguir os indivíduos com base em sua aptidão, a fim de
permitir que indivíduos melhores se tornem pais da próxima geração. Na computação evolutiva, a
seleção dos pais é probabilística: indivíduos de alta qualidade têm mais chances de se tornar pais.
Indivíduos de baixa qualidade também recebem uma mudança baixa para se tornarem pais, a fim
de evitar ficarem presos em ótimas localidades. O processo de seleção em um algoritmo genético
ocorre quando os pais que serão usados posteriormente para o cruzamento devem ser
selecionados. De maneira padrão, alta prioridade e chances são dadas aos indivíduos mais aptos.

Alguns dos mecanismos de seleção mais utilizados são:

• seleção de torneios;

• seleção proporcional de aptidão;

• seleção de roleta;

• seleção baseada em classificação.

3. O que é o operador Cruzamento ? -


para que serve ?
- como é implementado ?
- quais os tipos de Cruzamento existentes ?

Este operador é considerado o operador genético predominante. Através do cruzamento são


criados novos indivíduos misturando características de dois indivíduos "pais". Esta mistura é feita
tentando imitar (em um alto nível de abstração) a reprodução de genes em células. Trechos das
características de um indivíduo são trocados pelo trecho equivalente do outro. O resultado desta
operação é um indivíduo que potencialmente combine as melhores características dos indivíduos
usados como base. Alguns tipos de cruzamento bastante utilizados são o cruzamento em um
ponto e o cruzamento em dois pontos, mostrados nas Figuras 5 e 6. Com um ponto de
cruzamento, seleciona-se aleatoriamente um ponto de corte do cromossomo. Cada um dos dois
descendentes recebe informação genética de cada um dos pais (Figura 2)

Figura 2 - Cruzamento em 1 ponto

Com dois pontos de cruzamento, um dos descendentes fica com a parte central de um dos pais e
as partes extremas do outro pai e vice versa (Figura 3).
Figura 3 - Cruzamento em 2 pontos

4. O que é o operador Mutação ?


- para que serve ?
- como é implementado ?
- quais os tipos de Mutação existentes ?

O operador de mutação é um operador unário (aplicado apenas a um indivíduo) e geralmente


afeta (ou modifica levemente) um genótipo. A mutação pode afetar um ou vários alelos,
dependendo do tamanho da solução candidata. Os alelos afetados serão escolhidos de maneira
aleatória. Provou-se que, com tempo suficiente, um algoritmo evolutivo pode atingir o ideal
global, dependendo da adequação de que cada genótipo representando uma possível solução
pode ser alcançado por operadores de variação. A principal característica desta operação é evitar
uma convergência prematura e gerar um novo material genético.

Mutação para representação binária

Para indivíduos com valor binário, mutação significa a inversão de valores de variáveis, porque
cada variável possui apenas dois estados. Assim, o tamanho da etapa de mutação é sempre 1.
Para cada indivíduo, o valor da variável a ser alterado é escolhido (principalmente uniforme ao
acaso). A Figura 1 mostra um exemplo de uma mutação binária para um individual com 10
variáveis, em que a variável 4 é mutada.

Figura 4 - Exemplo de mutação de um bit.


Mutação para representação real

A mutação de variáveis reais significa que os valores criados aleatoriamente são adicionados às
variáveis com baixa probabilidade. Assim, a probabilidade de mutação de uma variável (taxa de
mutação) e o tamanho das alterações para cada variável mutada (etapa de mutação) devem ser
definidos.

A probabilidade de alterar uma variável é inversamente proporcional ao número de variáveis


(dimensões). Quanto mais dimensões um indivíduo tem, menor é a probabilidade de mutação.

Mutação não uniforme com distribuição fixa

Essa forma de mutação é projetada para que a quantidade de alteração introduzida seja pequena.
Isso é obtido adicionando ao valor atual do gene uma quantidade sorteada aleatoriamente de
uma distribuição gaussiana (ou normal) com zero médio e desvio padrão especificado pelo
usuário. O valor obtido é então dimensionado para o domínio de definição, se necessário. A
distribuição gaussiana tem a propriedade de que aproximadamente dois terços das amostras
coletadas estão dentro de um desvio padrão. Isso significa que a maioria das alterações feitas será
pequena, mas existe uma probabilidade diferente de zero de gerar alterações muito grandes, pois
a cauda da distribuição nunca chega a zero. Esse operador geralmente é aplicado com
probabilidade de um por gene. Uma alternativa à distribuição gaussiana é usar a distribuição de
Cauchy. A probabilidade de gerar valores maiores é um pouco maior que a da distribuição
gaussiana com o mesmo desvio padrão.

Mutação para representação baseada em ordem

Para permutações, não é possível usar nenhuma das formas dos operadores de mutação
apresentados acima. Existem quatro formas comuns de operador de mutação para representação
baseada em ordem:

(i) mutação de swap;

(ii) inserir mutação;

(iii) mutação de embaralhamento;

(iv) mutação inversa.

Mutação para representação de número inteiro


Existem duas formas principais de mutação usadas para representação inteira; ambos mudam
cada gene independentemente, com uma probabilidade definida:

- Reinicialização aleatória

A mutação de troca de bits da representação binária é estendida para redefinição aleatória, de


modo que, com uma probabilidade, um novo valor é escolhido aleatoriamente no conjunto de
valores permitidos em cada posição.

- Mutação por fluência

Esse tipo de mutação funciona adicionando - com uma certa probabilidade - um valor pequeno
(positivo ou negativo) a cada gene. Geralmente, esses valores são amostrados aleatoriamente
para cada gene a partir de uma distribuição simétrica em torno de zero e é mais provável gerar
pequenas mudanças que grandes.

5. O que é "Convergência" no Algoritmo Genético ?

Se traçarmos a adequação da população (geralmente média ou melhor) contra as gerações,


veríamos que a adequação muda rapidamente no início do algoritmo. Para as gerações mais altas,
o condicionamento físico se comporta mais ou menos constante. Este é o momento em que os
indivíduos no AG estão muito próximos dos mínimos globais e estão se movendo em direção aos
mínimos globais muito lentamente. Nessas gerações mais altas, dizemos que a adequação do AG
convergiu ao ponto de mínimos globais, e outras otimizações podem não ser benéficas.

5.1) Qual é o efeito da Seleção na Convergência ?

A finalidade da seleção em um AG é escolher os elementos da população que devem se


reproduzir, de tal forma que dê maior chance de reprodução àqueles mais adaptados ao meio
ambiente, isto é, àqueles que apresentam melhor fitness. O Elitismo é uma adição aos métodos
de seleção que força os AGs a reter um certo número de "melhores" indivíduos em cada geração.
Tais indivíduos podem ser perdidos se não forem selecionados para reprodução ou se forem
destruídos por cruzamento ou mutação. A utilização do elitismo reduz o tempo de convergência
dos AGs, mas pode fazê-los convergir para um ótimo local.

5.2) Qual é o efeito do Cruzamento na Convergência ?

O Crossover inspeciona todos os indivíduos no espaço de pesquisa e, com base neles, tenta
encontrar uma região de ótima adequação. Essa região geralmente está dentro do domínio
coberto por esses indivíduos. O cruzamento arrasta os indivíduos para mais perto dos pontos
suspeitos de mínimos. Como resultado, o espaço de pesquisa fica cada vez mais curto e, dessa
maneira, a solução converge muito acentuadamente.

5.3) Qual é o efeito da Mutação na Convergência ?

Mutação faz exatamente o oposto. Ele tenta explorar áreas cada vez mais novas, na esperança de
encontrar pontos ideais. Isso resulta em um aumento no espaço de pesquisa e na colocação de
indivíduos em regiões mais novas que podem estar fora do domínio de pesquisa onde os
indivíduos foram colocados até o momento. Obviamente, isso atrasa a convergência. A natureza
contrastante do cruzamento e da mutação desempenha um papel quando falamos sobre ótimos
locais e globais. A rápida convergência do crossover pode fazê-lo convergir para algumas ótimas
locais, o que é indesejável.

Nessa situação, precisaríamos de um meio para fazer o algoritmo procurar os mínimos globais.
Isso significa que é feito por mutação. Se a mutação for mantida em 0, a convergência é muito
rápida no GA. No entanto, isso geralmente leva a um mínimo local. Ao mesmo tempo, um valor
muito alto de mutação e baixo crossover pode resultar no algoritmo agindo de maneira aleatória.
Nesse caso, o gráfico de treinamento revelaria tendências muito incertas no valor médio de
condicionamento físico da população. Assim, a convergência não seria alcançada a menos que o
cruzamento fosse alto o suficiente.

6. O que é "Diversidade" no Algoritmo Genético ? (alguns erraram essa resposta no


Exercicio anterior !)

Uma das características importantes para o funcionamento apropriado dos algoritmos genéticos e
evolucionários é a manutenção da diversidade. A efetividade da busca depende da existência de
genes distintos na população. Consequentemente, a recombinação e a mutação dos genes
também podem contribuir mais efetivamente para a criação de novidades. Quando os indivíduos
são muito semelhantes entre si, a busca torna-se estagnada e novos pontos no espaço não podem
mais ser verificados. Por causa disto, as medidas de diversidade procuram quantificar o quão
heterogênea é uma população. Essa quantidade funciona como um indicador importante para
determinar a qualidade da evolução do algoritmo. A diversidade pode ser medida em relação ao
fenótipo ou genótipo. As medidas que utilizam uma função de distância são comuns quando se
usa o genótipo para determinar a diversidade. Por exemplo, dado uma população qualquer é
possível obter a distância entre o genótipo de todos os pares de indivíduos. A soma destas
distâncias pode representar a diversidade da população em um determinado momento da
evolução. Outra forma de mensuração envolve o cálculo de estatísticas, como, por exemplo, a
soma da variância de cada gene em todos os indivíduos da população. Quando a diversidade do
fenótipo é utilizado, esta é geralmente associada aos valores de fitness do indivíduo. Neste caso é
possível utilizar medidas estatísticas de dispersão do fitness em cada época da otimização. Além
disto, também são possíveis medidas de entropia em relação à distribuição probabilística do
fitness na população. A manutenção da diversidade é tão significativa que deu origem a muitas
técnicas ou variações dos algoritmos genéticos canônicos.

6.1) Qual é o efeito da Seleção na Diversidade ?

A seleção é reconhecida como um fator importante na manutenção da diversidade. Na literatura


existem propostas que reconhecem que essa etapa deve ser projetada para permitir que todos os
indivíduos sejam selecionados, não somente os mais aptos. Isto dá-se porque quando os
esquemas tradicionais de seleção são utilizados, por exemplo, roleta ou torneios, estes levam a
população a uma rápida convergência para o elemento mais apto e a perda da diversidade. Na
tentativa de evitar esse resultado, a seleção por ranqueamento é uma possibilidade dentro dos
métodos clássicos. No grupo de seleção por ranqueamento, o procedimento conhecido por
espaço de ranqueamento (do inglês ranked-space) constitui-se em uma variação que
explicitamente procura preservar a diversidade do genótipo. O algoritmo usa uma medida de
distância genotípica para ajustar as probabilidades de seleção dos indivíduos após um
ranqueamento com base em fitness.

A seleção também pode ser influenciada indiretamente através do ajuste do fitness. O ajuste do
fitness antes do processo de seleção é uma característica de duas técnicas comuns na literatura:
compartilhamento de fitness e clearing. No algoritmo de compartilhamento de fitness, o fitness
de toda a população é recalculado para reduzir a importância daqueles indivíduos que sejam
muito semelhantes. Na técnica de clearing, os indivíduos são agrupados em q centros. Dentro de
cada grupo são mantidos somente os melhores k indivíduos. Os demais são configurados com
fitness mínimo, o que os coloca como inelegíveis ao processo de seleção. Em ambos os casos, uma
complexidade computacional é adicionada ao algoritmo genético padrão, além da necessidade de
estimar o raio de cada nicho ou grupo.
6.2) Qual é o efeito do Cruzamento na Diversidade ?

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. Diversidade é gerada por cruzamento e mutações. A
probabilidade cruzamento é o parâmetro responsável pela recombinação de características dos
pais durante a reprodução, permitindo que as próximas gerações herdem essas características.
Ele deve ser muito maior que a probabilidade de mutação, ja que é considerado o parâmetro
genético predominante.

6.3) Qual é o efeito da Mutação na Diversidade ?

O operador mutação é considerado um operador secundário e consiste em inverter cada bit


cromossoma com uma probabilidade de mutação, muito baixa. É aplicado depois do cruzamento,
a todos os descendentes nos quais cada bit poderá ser para o seu complementar. Necessário para
a introdução e manutenção da diversidade genética da população, fornece assim, meios para
introdução de novos elementos na população. Desta forma, a mutação assegura que a
probabilidade de se chegar a qualquer ponto do espaço de busca nunca será zero, além de
contornar o problema de mínimos locais, pois com este mecanismo, altera-se levemente a direção
da busca.

Você também pode gostar