Você está na página 1de 3

UNIVERSIDADE POTIGUAR – UNP

ENGENHARIA DE COMPUTAÇÃO – 3º ANO


Inteligência Computacional
Professor: Allan de Medeiros Martins

Algorítimo Genético

RENATO MONTEIRO BATISTA

NATAL/RN
Dezembro/2003
Algorítimo Genético

Este programa foi desenvolvido em matlab, como uma função de modo que possa
ser utilizado facilmente no prompt de comando do matlab. O programa deve ser
iniciado no console do matlab fornecendo-se os seguintes parâmetros:
genetic([Xmin Xmax],qi,tc,tm,f,qint,tol,g), onde:
[Xmin Xmax] = Espaço de busca;
qi = Quantidade de indivíduos da população, esse valor será fixo para todas as
gerações.
tc = Tamanho do cromossomo em bits, esse valor será usado para subdividir o
espaço de busca.
tm = Taxa de mutação em %. Esse índice define quantos porcento de cada nova
população poderão sofrer mutações.
f = Função em função de X (deve ser informado como string). Função que será
minimizada.
qint = Quantidade limite de iterações.
tol = Tolerância para parada.
g = Flag para plotagem do gráfico da função.

Funcionamento do algorítimo: Uma vez fornecidos os dados de entrada do


algorítimo, é gerada uma população aleatoriamente. Em seguida é feita uma
avaliação de toda a população de modo a determinar ‘o escolhido’ que é o cidadão
que possui menor valor na função. Esse escolhido é clonado automaticamente
para uma nova população, em seguida é feita uma roleta onde cada um dos
cidadãos remanescentes (que não foram escolhidos) terão um peso ponderado
invensamente proporcional ao seu valor na função, de modo que o cidadão com
menor valor na função tem mais participação na roleta em relação a um cidadão
com maior valor na função. Em seguida é feito um sorteio aleatório nessa roleta de
modo que o sorteado será cruzado (crossover) com o escolhido, após o
cruzamento é feito um sorteio para escolher qual dos filhos desse crossover irá
para a nova população e um outro sorteio para decidir se esse filho sofrerá ou não
mutação. Esse procedimento (sorteio da roleta, crossover, sorteio do filho e
possível mutação) é repetido o número de vezes que for necessário até que seja
gerada uma nova população. Uma vez gerada a nova população é repetido o
procedimento de avaliação e todos os procedimentos seguintes até que seja
atingida a quantidade limite de iterações ou a tolerância especificada.
Opcionalmente, caso seja ativada a flag do gráfico, será plotado um gráfico da
função original, estando marcados com uma cruz verde todos a posição de toda a
população (exceto o escolhido) e com uma cruz vermelha ‘o escolhido’.
Por fim, sempre que ocorrer uma alteração no escolhido, haverá uma indicação
desta ocorrência na tela. Ao final é retornado a posição do último escolhido na
função.

Você também pode gostar