Escolar Documentos
Profissional Documentos
Cultura Documentos
cromossomo
herdado do pai
cromossomo
herdado da mae
alelo
alelo
gene
Dois cromossomos gemeos.
5
Na divisao celular de uma celula reprodutiva, primeiro
acontece uma separa cao e duplica cao dos cromosso-
mos gemeos (e da cadeia cromossomica). Assim, por
exemplo, uma celula reprodutiva masculina gera 4
espermatozoides (gametas) sendo que um esperma-
tozoide representa uma meia celula que depois pode
se juntar com um ovulo (outra meia celula) para for-
mar o ser humano mais elementar, chamado de zig-
oto. Assim, o zigoto e a uniao de duas meias celulas
que se complementam e permitem recuperar, nova-
mente, os 23 pares de cromossomos gemeos. A for-
ma em que a celula reprodutiva se separa
e se duplica representa a principal fonte
de diversidade genetica e, nesse processo,
acontece o fenomeno chamado de recombi-
nacao genetica ou crossing over (crossover).
Outra fonte de diversidade genetica, menos impor-
tante, e a reprodu cao sexuada formal, isto e, a uniao
de dois gametas de pessoas com caractersticas geneticas
diferentes. Essas fontes de diversidade genetica sao
analisadas em separado.
6
2. O Fenomeno de Crossing Over (Recombina cao Genetica)
Quando dois cromossomos gemeos se separam no
processo de divisao celular de uma celula reprodu-
tiva acontece o chamado fenomeno de crossing over
ou de recombina cao genetica. Por exemplo, a especie
humana tem 23 pares de cromossomos onde exis-
tem dezenas de milhares de genes. Para ilustrar este
fenomeno centramos a analise num par de cromosso-
mos gemeos, chamados A e B, de uma pessoa. Assim,
o cromossomo A foi herdado do pai e o cromossomo
B da mae. Quando a celula reprodutiva se separa e se
duplica podemos imaginar que sao gerados gametas
A e B exatamente como foram herdados dos pais.
Entretanto, foi descoberto que nao e exatamente isso
que acontece na natureza. Na verdade, cada gameta
gerado tem parcelas do cromossomo A e B. Portan-
to, antes da separa cao, os cromossomos A e B se re-
combinam, trocando parcelas de genes de tamanho
variado numa forma que ainda nao esta claramente
explicada.
7
O resultado desse processo e a produ cao de gametas
que possuem parcelas dos cromossomos gemeos A e B
numa forma diversicada e diferentes umas das out-
ras. Este fenomeno (crossing over) faz com
que sejam gerados gametas de caractersti-
cas muito diferentes numa mesma pessoa.
A maneira de ilustra cao, supor que a cadeia cro-
mossomica do ser humano apresenta 100000 genes,
que em cada gene existem 2 tipos de alelos e exis-
tem 10.000 pontos provaveis de recombina cao, entao
e possvel gerar em torno de 2
10000
gametas difer-
entes, um n umero realmente grande e que mostra
a importancia do fenomeno de crossing over na for-
ma cao da diversidade genetica de uma especie. Obvi-
amente, existem genes com alelos iguais o que diminui
o n umero de gametas diferentes e tambem nao se con-
hece o n umero de pontos de recombina cao. Entretan-
to, lembramos que o famoso n umero 2
64
ja e absur-
damente grande.
8
3. A Reprodu cao Sexuada:
A reprodu cao sexuada e outra fonte de diversidade
genetica entre os indivduos de uma especie. A uniao
de dois gametas de pessoas diferentes contribui na
gera cao de zigotos de caractersticas geneticas difer-
entes. Entretanto, dois zigotos de um mesmo
casal seriam geneticamente muito proximos
sem a presen ca do fenomeno de crossing
over. Portanto, a reprodu cao sexuada nao e uma
grande fonte de diversidade genetica. Logicamente,
o crossing over e um fenomeno que acontece com
especies de reprodu cao sexuada mas e um fenomeno
que acontece no processo de divisao celular.
9
A analise apresentada e, obviamente, supercial porque
nao foram analisados outros aspectos importantes
que acontecem na natureza. Na natureza existem
seres vivos unicelulares e de reprodu cao assexuada.
Tambem existem seres vivos que se desenvolvem so-
mente a partir dos gametas (meia celula) como acon-
tece em varios tipos de plantas. Existem tambem
fenomenos mais complexos na determina cao das car-
actersticas geneticas. Por exemplo, existe o fenomeno
conhecido como pleiotropia onde um simples gene
pode controlar simultaneamente varias caractersti-
cas fenotpicas, assim como o fenomeno de poligenia
onde uma simples caracterstica fenotpica e contro-
lado pela a cao simultanea de varios genes. Final-
mente existem especies com cadeias cromossomicas
menos complexas que a especie humana. Assim, apare-
cem perguntas do tipo: Qual dos seres vivos sao os
mais evoludos e/ou adaptados na natureza (na ter-
ra)?.
10
Existe ainda outra fonte de diversidade genetica, con-
siderada secundaria, chamada de mutacao. A muta cao
acontece na intera cao dos seres vivos com a natureza.
Assim, podem aparecer mudan cas na estrutura de um
gene produzindo uma modica cao da fun cao do gene e
do correspondente fenotipo.
Holland analisou o fenomeno da evolu cao
natural das especies e encontrou semelhan cas
deste processo com o processo de solucao de
problemas grandes e complexos. Assim, o algorit-
mo genetico inventado por Holland gera uma seq uencia
de popula coes (conjunto de congura coes ou solu coes)
usando os mecanismos de sele cao, recombina cao e mu-
ta cao como mecanismo de busca (operadores geneticos)
atraves do espa co de congura coes de um problema com-
plexo.
11
Esta secao termina analisando a palavra crossover.
Crossover foi uma palavra usada por Holland para in-
dicar o fenomeno de crossing over, isto e, a recombina cao
genetica que acontece no processo de divisao celular de
celulas reprodutivas no organismo de um indivduo. As-
sim, do ponto de vista genetico, crossover nao tem rela c ao
direta (tem rela cao indireta) com reprodu cao sexuada.
Existem publica coes onde se traduz crossover como cruza-
mento e, as vezes, cruzamento e interpretado como re-
produ cao sexuada sendo comum usar termos do tipo
cruzamento de dois pais que geram dois descendentes
ou lhos. Frases desse tipo nao fazem sentido dentro do
contexto de crossover genetico. Autores de livros moder-
nos evitam o uso da palavra crossover e usam a palavra
recombination que traduzido seria equivalente a recom-
bina cao. Portanto, no resto do livro e usada a
palavra recombinacao (genetica) como sendo
a traducao da palavra crossover ou, melhor
ainda, de recombination.
12
Algoritmo Genetico e Selecao
Natural
Na natureza, os indivduos melhores qualicados ge-
neticamente tem maiores possibilidades de sobrevivencia
quando os recursos sao escassos e/ou quando mudam
as condi coes do meio ambiente. Melhor qualicado sig-
nica melhor capacidade de sobrevivencia e, em ultima
instancia, esta qualidade ou capacidade e determinada
pelo conte udo genetico de cada indivduo. Como ja foi
mencionado, a unidade basica de informa cao genetica
e o gene. O conjunto de genes forma o cromossomo ou
conjunto de cromossomos que determina a qualidade de
um indivduo.
As mudancas e a diversicacao do materi-
al genetico constitui a essencia da evolu cao.
Assim, pode-se dizer que a evolucao e uma conse-
quencia da acao conjunta da selecao natural e
dos mecanismos que produzem a diversidade
genetica analisados anteriormente.
13
Na natureza, os indivduos competem por problemas
de alimentos, espa co, doen cas e, tambem, de acasala-
mento produzindo um predomnio dos indivduos mais
qualicados. Portanto, somente os indivduos melhor qual-
icados sobrevivem e se reproduzem repassando seus
genes melhor qualicados para as seguintes gera coes. O
processo, repetido de sele cao no meio de uma grande di-
versidade genetica e a chave da evolu cao segundo Darwin
e seus seguidores, em outras palavras, sem essa grande
diversidade genetica que existe entre os indivduos de
uma popula cao, seria difcil o processo de evolu cao das
especies.
14
O AG usa uma popula cao de indivduos que sao um
conjunto de congura coes, para resolver um problema
de otimiza cao complexo. Portanto, o AG faz seguinte:
1. Representa adequadamente uma congura cao do
problema. A representa cao mais popular e a repre-
senta cao em codica cao binaria onde sao facilmente
simulados os operadores geneticos de recombina cao
e muta cao.
2. Avalia a funcao objetivo ou seu equivalente (t-
ness value). Assim, as melhores congura coes sao
aquelas que apresentam fun coes objetivo de melhor
qualidade.
3. Faz selecao das congura coes com direito a partic-
ipar na conforma cao das congura coes da nova pop-
ula cao.
4. Implementa o operador genetico de recombina cao.
5. Implementa o operador genetico de mutacao.
6. Deve-se especicar o tamanho da popula cao, isto e,
o n umero de congura coes em cada gera cao e taxas
de muta cao e recombina cao.
Uma vez especicados todos esses aspectos para um
problema especco, entao dizemos que foi implementa-
do um algoritmo genetico basico (AGB).
15
Algoritmo Genetico Basico
Nesta se cao sao analisadas, em detalhe, as principais
caractersticas de um algoritmo genetico basico (AGB).
Para ilustrar as caractersticas fundamentais de um AGB
usamos um exemplo do problema da mochila.
Exemplo 7.1: O problema da mochila
Seja o problema da mochila para n = 12 mostrado a
seguir:
16
max z(x) = 3x
1
+ 2x
2
+ 8x
3
+ 4x
4
+ 6x
5
+ 4x
6
+ 12x
7
+
2x
8
+ 6x
9
+ 10x
10
+ 15x
11
+ 9x
12
s.a.
5x
1
+ 4x
2
+ 4x
3
+ 2x
4
+ 4x
5
+ 6x
6
+ 10x
7
+
4x
8
+ 2x
9
+ 8x
10
+ 12x
11
+ 5x
12
36
x
j
{0, 1}, j = 1, . . . , 12.
Os vetores de trabalho podem ser facilmente identi-
cados:
5 4 4 2 4 6 10 4 2 8 12 5
3 2 8 4 6 4 12 2 6 10 15 9
36
Volume: a =
Custo: c =
Este exemplo deve ser usado para ilustrar a implemen-
ta cao do AGB.
17
Algoritmo Genetico Elementar
Um algoritmo genetico elementar realiza a seguinte
seq uencia de opera coes:
1. Gera a popula cao inicial apos escolher o tipo de cod-
ica cao.
2. Calcula a fun cao objetivo de cada congura cao da
popula cao e, armazena e atualiza a incumbente (mel-
hor congura cao encontrada durante o processo).
3. Implementa a sele cao.
4. Implementa a recombina cao.
5. Implementa a muta cao e termina de gerar a popu-
la cao da nova gera cao.
6. Se o criterio de parada (ou criterios de parada) nao
for satisfeito, repetir os passos 2 a 6.
O conjunto de passos de 2 a 5 e conhecido como ciclo
geracional.
18
Tambem e necessario mencionar que existe a seguinte
equivalencia entre os termos usados na genetica e no
problema de otimiza cao matematica:
Problema de otimiza cao genetica
Solu cao (congura cao) cromossomo
Variavel gene
Solu cao (Valor das variaveis{0, 1}) alelo
A seguir sao analisadas todas as etapas do AGB us-
ando exemplos ilustrativos.
19
O Problema da Codicacao
A forma de implementar a codica cao depende, entre
outros aspectos, da natureza das variaveis de decisao do
problema ou da forma de representar uma congura cao
do problema. Existem problemas com variaveis binarias
(que sao os mais simples de representar ou codicar),
com variaveis inteiras e com variaveis reais.
Os primeiros algoritmos geneticos usaram
basicamente codicacao binaria, ou seja, as
variaveis inteiras e reais de um problema sao
transformadas, de alguma maneira, em codi-
cacao binaria. Neste contexto, pode-se tentar
realizar codicacao binaria de varios tipos de
variaveis. Este problema e ilustrado atraves
de exemplos.
20
Problemas com Variaveis Binarias
Este caso e o mais trivial e a codica cao e muito sim-
ples.
Exemplo 7.2: Realizar codica cao binaria de um
problema com 3 variaveis: x
1
, x
2
, x
3
{0, 1}.
Neste caso trivial, onde as variaveis sao naturalmente
binarias, uma congura cao com codica cao binaria as-
sume a seguinte forma:
x
1
x
2
x
3
x =
e um caso particular assume a seguinte forma:
1 0 1
x = = uma congura cao
21
Problemas com Variaveis Inteiras
Este caso ainda e trivial e a codica cao e relativamente
simples.
Exemplo 7.3: Realizar codica cao binaria de um
problema com 3 variaveis: x
1
, x
2
, x
3
{0, 1, 2, 3, 4, 5, 6, 7}.
Neste caso, cada variavel inteira pode ser represen-
tada por seu equivalente binario e ocupando tres casas
binarias na codica cao binaria. Assim, uma congura cao
tpica assume a seguinte forma:
1 0 0 0 1 0 1 1 1
x
1
x
2
x
3
x =
. .. . . .. . . .. .
que neste caso particular representa os n umeros inteiros
x
1
= 4, x
2
= 2 e x
3
= 7.
22
Neste tipo de codica cao aparecem os primeiros
problemas que acontecem quando se deseja codicar
uma variavel inteira como x
j
{0, 1, 2, 3, 4, 5}. Nesse
caso a proposta de codica cao anteriormente mostra-
da apresenta problemas porque se sao usadas 3 casas
binarias para representar x
j
entao existe a possibilidade
de que, em algum momento posterior (apos recombi-
na cao ou muta cao), x
j
assuma valores infactveis como
6 e 7. Este problema e mais complicado quando se dese-
ja codicar variaveis reais variando num intervalo como,
por exemplo, x
j
[3, 25 ; 6, 10]. Este problema foi
contornado usando uma estrategia diferente que e apre-
sentada na codica cao de variaveis reais.
23
Problemas com Variaveis Reais
Este caso mais complexo e mostrado atraves de um
exemplo.
Exemplo 7.4: Realizar codica cao binaria para re-
solver o seguinte problema:
max f(x) = x sen(10x) + 1
para 1 x 2, usando algoritmos geneticos. Pretende-
se encontrar a solu cao com uma aproxima cao de 6 dgitos
signicativos apos a vrgula.
= [b
21
b
20
. . . b
o
] =
21
i=0
b
i
2
i
e a variavel original x e representada da seguinte forma:
x = 1, 0 +
3
2
22
1
x
onde 2
22
1 e o n umero de intervalos. Em geral, para
uma representa cao com n bits binarios existem 2
n
1
intervalos porque:
2
0
+ 2
1
+ 2
2
+ . . . + 2
n
= 2
n
1
Uma congura cao tpica, em codica cao binaria, pode
assumir a seguinte forma:
1000101110110101000111 = x = 0, 637197
O leitor ja deve ter observado a grande diculdade
de realizar codica cao binaria de variaveis reais quan-
do o n umero de variaveis reais cresce para centenas ou
milhares de variaveis. Aparecem evidentes problemas de
manipula cao e de memoria.
25
Problemas da Codicacao Binaria
A codica cao binaria de variaveis inteiras ou reais
apresenta diversos tipos de problemas. A principal
justicativa de realizar codicacao binaria de
variaveis inteiras ou reais e que a teoria basica
de algoritmos geneticos, especialmente na im-
plementacao dos operadores geneticos de re-
combinacao e mutacao e as caractersticas de
convergencia, foi desenvolvida para a codi-
cacao binaria. Outra justicativa obvia e que a cod-
ica cao binaria imita os dois tipos de alelos existentes
num gene de um cromossomo. Entretanto a codica cao
binaria de variaveis nao binarias apresenta muitos prob-
lemas. Esses problemas e as formas encontradas para
contornar esses problemas, pelo menos parcialmente, sao
mostrados a seguir.
26
Quando variaveis inteiras sao representadas em cod-
ica cao binaria aparecem varios problemas. Um desses
problemas, pouco analisado pelos especialistas, e mostra-
do usando o exemplo 7.3. Pretende-se realizar a codi-
ca cao binaria para a congura cao (solu cao) com x
1
= 4,
x
2
= 2 e x
3
= 7. A codica cao binaria dessa congu-
ra cao assume a seguinte forma:
1 0 0 0 1 0 1 1 1
x
1
x
2
x
3
x = = codica cao
binaria . .. . . .. . . .. .
?
y
27
Uma alternativa de codica cao de variaveis inteiras
consiste em representar cada variavel inteira numa casa
decimal. Assim, a congura cao anterior e representada
da seguinte forma:
4 2 7
x
1
x
2
x
3
x = = codica cao decimal.
Neste contexto, a codica cao binaria apresenta com-
portamentos atpicos quando e implementado o operador
de recombina cao e de muta cao. Para a recombina cao
supor, por exemplo, que a congura cao mostrada deve
ser recombinada com outra congura cao com valor de
x
1
= 3 que corresponde a 011 na codica cao binaria e
que o ponto de recombina cao e indicado pela seta na
codica cao binaria. Em outras palavras, o ponto de re-
combina cao esta no limite entre a primeira e segunda
casa binaria de x
1
. Apos a recombina cao o valor de x
1
passa de 4 para 7 numa das congura coes e de 3 para 0
na outra congura cao. Portanto, em rela cao a x
1
acon-
teceu uma muta cao violenta apos a recombina cao. Em
outras palavras, quando e realizada a recombina cao de
congura coes de variaveis inteiras representadas em cod-
ica cao binaria podem acontecer muta coes violentas de
uma variavel no ponto de recombina cao.
28
Obviamente, se o ponto de recombina cao for, por ex-
emplo, a fronteira entre x
1
e x
2
entao nao acontece este
problema. Entretanto, nesse caso, a implementa cao de
recombina cao na codica cao binaria e na decimal seri-
am totalmente equivalentes. Portanto, uma alternativa
para a codica cao binaria de variaveis inteiras consiste
em realizar a codica cao decimal que nao apresenta os
problemas antes mencionados na implementa cao da re-
combina cao e apresenta a grande vantagem de evitar
transforma coes de binario a decimal e vice-versa alem
de usar menor memoria.
29
A mutacao tambem apresenta comportamen-
to atpico na codicacao binaria de variaveis in-
teiras. Supor, por exemplo, que e implementada mu-
ta cao na codica cao binaria mostrada anteriormente na
posi cao indicada por . Assim, a variavel x
3
passa de 7
para 4 apos a muta cao acontecendo, tambem, uma mu-
ta cao violenta. Pode-se concluir que existem vantagens
evidentes ao evitar a codica cao binaria de variaveis in-
teiras. Entretanto, deve-se redenir o operador de mu-
ta cao. Existem varias formas de redenir o operador de
muta cao e a mais simples consiste em incrementar ou
diminuir numa unidade o valor corrente da variavel in-
teira x
j
. Assim, por exemplo, se x
j
= 2, a muta cao mu-
da o valor de x
j
para 1 ou para 3. Obviamente, deve-se
respeitar os limites de x
j
ao implementar essa nova mu-
ta cao. Eventualmente, pode ser necessario incrementar a
taxa de muta cao para compensar a falta de muta coes
violentas que acontecem na recombina cao e muta cao de
variaveis inteiras representadas em codica cao binaria
ou ainda, pode-se denir muta coes duplas, triplas, etc.
Entretanto, muta coes violentas nao fazem sentido dentro
da logica da evolu cao natural que e a base fundamental
dos algoritmos geneticos.
30
Para terminar de ilustrar as formas de codica cao
binaria e decimal de variaveis inteiras, sejam as congu-
ra coes P
1
e P
2
do exemplo 7.3 mostradas a seguir:
0 1 1 1 1 0 0 1 1
1 0 0 0 0 1 1 1 0
x
1
x
2
x
3
P
2
:
P
1
:
. .. . . .. . . .. .
A gura 7.2 mostra as opera coes de recombina cao e
de muta cao realizadas para P
1
e P
2
para a codica cao
binaria e decimal. Os pontos de recombina cao e de mu-
ta cao estao indicados na gura.
31
1 0 0 0 0 1 1 1 0 4 1 6
0 1 1 1 1 0 0 1 1 3 6 3
1 1 1 1 1 0 0 1 1 7 6 3
0 0 0 0 0 1 1 1 0 0 1 6
1 1 1 0 1 0 0 1 1 7 2 3
0 0 0 0 0 1 1 0 0 0 1 4
x
1
x
2
x
3
4 1 6
3 6 3
4 6 3
3 1 6
4 5 3
3 1 7
P
1
:
P
2
:
P
1
:
P
2
:
P
1
:
P
2
:
P
1
:
P
2
:
P
1
:
P
2
:
P
1
:
P
2
:
?
?
t
t
t
t
ponto de recombina cao
ponto de muta cao
recombina cao
muta cao
recombina cao
muta cao =
Binario
Decimal
Figura 7.2: Codica cao binaria e decimal.
32
Um outro problema que aparece com a codica cao
binaria para representar variaveis inteiras (ou reais) e o
chamado penhasco de Hamming (Hamming clis). Este
problema esta relacionado com o fato de que determi-
nados n umeros inteiros consecutivos apresentam dgitos
totalmente diferentes quando representados em sistema
binario. Assim, por exemplo, os inteiros consecutivos 15
e 16 assumem a seguinte forma em binario:
Inteiro Binario
15 01111
16 10000
Portanto, recombina cao e muta cao devem trocar todos
os dgitos binarios para fazer uma transi cao simples de 15
para 16 em variaveis inteiras. Este problema e contorna-
do pelos especialistas em representa cao binaria usando
o chamado codigo Gray. Dois n umeros inteiros consec-
utivos, quando representados em codigo Gray, diferem
em apenas um digito binario, eliminando o problema do
penhasco de Hamming. A tabela 7.1 mostra a equiv-
alencia entre codica cao binaria e Gray onde e possvel
vericar a propriedade antes mencionada.
33
Tabela 7.1: Equivalencia entre codigo Gray e
binario.
Inteiro Binario Gray
0 0000 0000
1 0001 0001
2 0010 0011
3 0011 0010
4 0100 0110
5 0101 0111
6 0110 0101
7 0111 0100
8 1000 1100
34
Transformar a codica cao binaria em Gray, alem de
exigir um esfor co computacional adicional, requer con-
hecer as regras de transforma cao de Gray para binario
e vice-versa. Apresenta-se essas regras de transforma cao
em forma resumida.
Sejam a e b os arranjos em codica cao binaria e Gray,
respectivamente, entao esses arranjos assumem a seguinte
forma:
b
1
b
2
b
3
. . .
b
k
a
1
a
2
a
3
. . .
a
k
b :
a :
= Gray
= Binario
35
Cada elemento do codigo Gray pode ser encontrado a
partir da codica cao binaria usando a rela cao:
b
i
=
a
i
se i = 1
De binario para Gray
a
i1
a
i
se i > 1
(1)
e na transforma cao de Gray para binario, pode-se usar
a rela cao:
a
i
=
i
j=1
b
j
De Gray para binario (2)
O operador tem a seguinte regra:
0 0 = 0 0 1 = 1 0 = 1 1 1 = 0
36
Exemplo 7.5: Transformar o n umero 5 da codica cao
binaria para a codica cao Gray.
A codica cao binaria de 5 e a seguinte: 101. Os ele-
mentos da codica cao Gray, podem-se obter assim:
Para i = 1 = b
1
= 1
Para i = 2 = b
2
= 1 0 = 1
Para i = 3 = b
3
= 0 1 = 1
Portanto, a codica cao Gray equivalente e a seguinte:
111 = codigo Gray.
37
Exemplo 7.6: Transformar o n umero 5 do codigo Gray
para a codica cao binaria.
A codica cao Gray de 5 e a seguinte: 111. Pode-se
obter os elementos da codica cao binaria da seguinte
forma:
Para i = 1 = a
1
= 1
Para i = 2 = a
2
= 1 1 = 0
Para i = 3 = a
3
= 1 1 1 = 0 1 = 1
Portanto, a codica cao binaria equivalente e a seguinte;
101 = codica cao binaria.
38
Alternativas de Codicacao
Existem problemas que apresentam variaveis de difer-
entes tipos: binarias e/ou inteiras e reais. Nesse caso ex-
istem quatro propostas:
1. Implementar codica cao binaria de todas as variaveis.
Nesse caso, uma congura cao tpica seria uma cadeia
de bits binarios geralmente muito grande.
2. Implementar codica cao natural onde cada variavel
e representada por uma unica casa no vetor que rep-
resenta uma congura cao, isto e, uma variavel binaria
e representada por uma casa binaria, uma variavel
inteira por uma casa decimal e uma variavel real
tambem como um unico elemento. Neste caso o taman-
ho do vetor de codica cao e igual ao n umero de
variaveis do problema.
3. Implementar codica cao binaria das variaveis binarias
e inteiras e, adicionalmente, calcular o valor exato das
variaveis reais atraves de um problema subsidiario.
4. Implementar codicacao binaria para as variaveis
binarias e codicacao decimal para as variaveis
inteiras e, adicionalmente, calcular o val-
or exato das variaveis reais atraves de um
problema subsidiario.
39
Em engenharia eletrica, especialmente em
sistemas de potencia, praticamente todos os
pesquisadores escolheram a terceira alternati-
va. Nossa experiencia mostra que e mais inter-
essante usar a quarta alternativa em lugar da
terceira alternativa, quando o problema apre-
senta variaveis inteiras e reais como acontece
com o problema de planejamento de sistemas
de transmissao.
A escolha de uma das quatro alternativas de codi-
ca cao e crucial na formula cao do algoritmo genetico
porque repercute de maneira determinante nas outras
etapas do algoritmo genetico especialmente no aspecto
relacionado com a robustez, a conabilidade e o esfor co
computacional do algoritmo genetico desenvolvido. Es-
colher a terceira ou quarta alternativa implica resolver
um problema subsidiario para conhecer os valores exatos
das variaveis reais que sao usados para vericar a factibil-
idade da congura cao e/ou para encontrar o valor da
fun cao objetivo. Esse problema subsidiario geralmente
e um problema de PL ou um problema de uxo de car-
ga em sistemas eletricos de potencia. Portanto, resolver
esses problemas subsidiarios consome praticamente to-
do o esfor co computacional do algoritmo genetico de-
senvolvido com esta alternativa mas, em compensa cao,
sao conhecidos os valores exatos das variaveis reais.
40
A escolha das duas primeiras alternativas praticamente
nao foi explorada embora sejam as alternativas mais nat-
urais de acordo com a logica da teoria sobre algoritmos
geneticos. Os motivos nao estao muito claros mas po-
dem ser mencionados dois deles: (1) praticamente todas
as congura coes geradas seriam infactveis pois muitas
restri coes seriam violadas e (2) na primeira alternati-
va os vetores usados para representar as congura coes
seria muito grande e na segunda alternativa, deve-se re-
denir o operador de muta cao para variaveis reais de
uma maneira muito eciente. A grande vantagem
dessas alternativas e que nao precisa resolver
subproblemas subsidiarios. Em outras palavras,
nao e necessario resolver problemas de PL ou de uxo de
carga apenas, deve-se vericar a viola cao das restri coes
para cada congura cao da popula cao.
41
Finalmente, existe a proposta formal de implemen-
tar a codica cao respeitando as caractersticas de cada
variavel ou problema, isto e, a codicacao deve ser
realizada respeitando a natureza do problema
e do tipo e forma das variaveis. Portanto, uma
variavel binaria deve ser representada como
um n umero binario, uma variavel inteira como
um n umero inteiro, uma variavel real como
um n umero real, um arco com a identica cao
de um arco, um vertice com a identica cao
do vertice, etc. Nesse contexto, deve-se redenir os
operadores geneticos de recombina cao e de muta cao ou,
melhor ainda, deve-se denir novos operadores geneticos
que sejam compatveis com os tipos de variaveis e com a
natureza do problema. Esses operadores geneticos inven-
tados para cada tipo de problema nao necessariamente
tem um equivalente na evolu cao natural mas mantem
o esprito e a logica da evolu cao natural. Esse tipo de
algoritmos sao conhecidos como algoritmos evolutivos e
o algoritmo genetico e um caso particular. Em outras
palavras, um algoritmo genetico que usa uma estrutura
de dados eciente e redene novos operadores geneticos
dependentes do tipo de problema se transforma num al-
goritmo evolutivo. Assim, a proposta e um con-
vite para explorar a segunda das quatro al-
ternativas de codicacao anteriormente men-
cionadas.
42
Determinacao da Funcao Objetivo e
Manipulacao de Infactibilidades
O valor da fun cao objetivo, ou seu equivalente, dene
a qualidade de uma congura cao. Neste caso, geralmente
a literatura de algoritmos geneticos usa a fun cao
objetivo ou seu equivalente porque nem sem-
pre e possvel usar o valor normal da fun cao
objetivo e, deve-se usar um equivalente que de alguma
maneira permita identicar a qualidade de uma congu-
ra cao ou, melhor ainda, fazer uma compara cao quan-
titativa das congura coes de uma popula cao. Deve-se
mencionar tambem que o valor da fun cao objetivo e us-
ado para implementar adequadamente o operador de se-
le cao e alguns metodos de sele cao nao trabalham com os
valores absolutos da fun cao objetivo, apenas interessa a
diferen ca entre os diferentes valores das fun coes objetivo
das congura coes da popula cao. Esta discussao deve ser
retomada ao analisar o operador de sele cao.
43
A determina cao da fun cao objetivo esta diretamente
relacionada com as infactibilidades de uma congura cao.
Uma vez escolhida uma codica cao para um problema
especco podem acontecer varios casos de infactibili-
dade que dependem da forma em que e especicada a
codica cao, da natureza do problema e dos operadores
geneticos escolhidos ou projetados. Assim, podem acon-
tecer os seguintes casos apos escolher um tipo
de codicacao: (1) qualquer congura cao gerada sem-
pre e factvel e os operadores geneticos geram tambem
congura coes factveis, (2) as congura coes geradas na
popula cao inicial sao sempre factveis mas os operadores
geneticos destroem essa factibilidade e, (3) as congu-
ra coes inicialmente geradas sao factveis e infactveis e
os operadores geneticos, obviamente, mantem essa car-
acterstica.
44
No primeiro caso, que raramente acontece
em problemas reais, nao existe ponto em discussao
e pode acontecer, por exemplo, no problema do caix-
eiro viajante com operadores geneticos adequadamente
desenvolvidos. No segundo caso, que pode acon-
tecer com o problema da mochila que gera uma
popula cao inicial usando algoritmos heursticos rapidos,
deve-se encontrar uma forma de contornar as congu-
ra coes infactveis geradas pelos operadores geneticos. As-
sim, pode-se eliminar as congura coes infactveis geradas
ao implementar uma heurstica rapida para transformar
em factveis as congura coes infactveis geradas ou pe-
nalizar a fun cao objetivo com as infactibilidades. O ter-
ceiro caso acontece com o problema de plane-
jamento de sistemas de transmissao e nesse caso
as infactibilidades devem ser manipuladas usando a mes-
ma estrategia do segundo caso.
45
A escolha de uma das tres estrategias pro-
postas para manipular as infactibilidades de-
pendem do tipo de problema. Existem prob-
lemas onde raramente sao geradas congu-
racoes (candidatas) infactveis como acontece com
o problema de aloca cao otima de bancos de capacitores
em sistemas de distribui cao radial e, nesse caso, a mel-
hor estrategia pode ser eliminar essas congura coes in-
factveis geradas. No outro extremo estao os prob-
lemas de planejamento, como o problema de plane-
jamento de sistemas de transmissao, onde raramente as
congura coes encontradas sao factveis e, ainda mais,
e muito difcil usar heursticas simples para transformar
congura coes infactveis em factveis. Nesse caso, a mel-
hor estrategia pode ser considerar todas as congura coes
como sendo factveis e penalizar as infactibilidades na
fun cao objetivo. Esta estrategia e usada no problema de
planejamneto de sistemas de transmissao.
46
Penalizar a funcao objetivo e uma estrategia
muito usada em otimizacao classica. O meto-
do de barreiras e uma dessas tecnicas e, nesse caso, o
parametro de penaliza cao e crucial no desempenho desse
tipo de algoritmo. Esse fator nao pode ser muito grande
porque eliminaria todas as congura coes infactveis e,
tambem, nao pode ser muito pequeno porque pode levar
o processo a convergir em congura coes infactveis. e tpi-
co usar parametros que variam durante o processo de
otimiza cao iniciando o processo com valores pequenos e
aumentando o valor do parametro durante o processo de
otimiza cao.
Para o problema da mochila, por exemplo, pode-se
aceitar congura coes factveis e infactveis e modicar a
fun cao objetivo da seguinte forma:
max z(x) = cx S
inf
onde e o parametro de penaliza cao e S
inf
e a infactibil-
idade encontrada da seguinte forma:
S
inf
= b
n
j=1
a
j
x
j
47
A funcao objetivo ou seu equivalente deve
preservar a seletividade entre as congura coes,
isto e, deve ter capacidade de identicar as
conguracoes de melhor qualidade. Portanto, a
fun cao objetivo deve permitir uma clara diferencia cao
entre as diferentes congura coes da popula cao para facil-
itar a sele cao. Tambem, e frequente padronizar a fun c ao
objetivo para assumir valores entre 0 e 1.
48
Exemplo 7.7: Diferentes formas de escolher
a funcao objetivo:
Para o problema da mochila mostrado no exemplo 7.1
encontre tres formas alternativas de escolher a fun cao
objetivo (fun cao objetivo verdadeira ou um equivalente).
= 34
b
= 29
b
= 34
b
= 35
Recurso
usado
45
33
39
43
f.o.
Popula cao inicial: 4 congura coes factveis.
49
Neste caso, uma alternativa e usar o valor ver-
dadeiro da funcao objetivo que denominamos de
z(x). Outra alternativa consiste empadronizar a fun cao
objetivo para valores entre 0 e 1, aproveitando o val-
or maximo da fun cao objetivo que, neste caso, e igual
a z(x) = 81 que acontece quando todos os valores dos
x
j
= 1. Outra alternativa consiste em subtrair um
valor constante K do valor verdadeiro da fun cao ob-
jetivo. Esta estrategia de modicar o valor da fun cao
objetivo e chamado de janelamento (windowing) e pode
ser usada por varios motivos sendo o principal deles a
necessidade de preservar a seletividade da fun cao objeti-
vo. As tres alternativas sao apresentadas na Tabela 7.2
para K = 30.
Tabela 7.2: Diferentes tipos de fun cao de adapta cao
I II III
Congura cao z(x) z
1
(x) =
z(x)
z(x)
z
2
(x) = (z(x) K)
P
1
43 0,53 13
P
2
39 0,48 9
P
3
33 0,41 3
P
4
45 0,55 15
50
Na tabela anterior foi usado um K = 30.
Em geral, K e uma constante escolhida levando em
conta a fun cao objetivo da congura cao de pior quali-
dade. Assim, no exemplo, foi escolhido um K que e 0,9
vezes a fun cao objetivo de pior qualidade. Agora, existe
a seguinte pergunta interessante: Qual das 3 alternati-
vas de fun cao de adapta cao apresenta a melhor seletivi-
dade?.
A funcao de adaptacao tipo III apresenta
uma melhor seletividade quando comparada com
as outras duas alternativas. A discussao deste topico e re-
tomada ao analisar o operador de sele cao.
51
O Operador de Selecao
A sele cao e o operador genetico que permite selecionar
as congura coes da popula cao corrente que devem par-
ticipar da forma cao da nova popula cao. Portanto o op-
erador de selecao termina apos decidir o n umero
de descendentes que deve ter cada congu-
racao da populacao corrente. Assim, por exemplo,
algumas congura coes podem gerar varios descendentes
e outras podem ser eliminadas do processo por serem
consideradas de pobre qualidade. Existem varias formas
ou tipos de sele cao e sao apresentadas as mais impor-
tantes mostrando as vantagens e desvantagens de cada
alternativa de sele cao.
52
A Sele cao Proporcional
A forma mais conhecida para implementar a
selecao e a tecnica chamada de selecao propor-
cional. Nesta proposta, cada congura cao tem direito
de gerar um n umero de descendentes que e proporcional
ao valor de sua fun cao de adapta cao. O n umero de de-
scendentes e encontrado usando a rela cao:
No. de descen. =
fun cao de adapt.
media da fun cao objet.
= Nd
i
=
z
i
(x)
z
m
(x)
z
m
(x) =
1
n
n
i=1
z
i
(x)
e portanto:
Nd
i
= n
z
i
n
i=1
z
i
(x)
(3)
em que Nd
i
e o n umero de descendentes da congura cao
i, z
i
(x) e o valor da fun cao de adapta cao, n e o n umero de
congura coes participando da sele cao (tamanho da pop-
ula cao) e z
m
(x) e o valor medio das fun coes de adapta cao
das n congura coes da popula cao.
53
A rela cao (3) encontra valores dos Nd
i
nao inteiros o
que nao faz sentido porque o n umero de descendentes
deve ser um n umero inteiro. Este problema, tpi-
co da selecao proporcional, e resolvido usando
a roleta (roulete wheel selection scheme). Conceitual-
mente, o esquema da roleta consiste em dividir uma
roleta circular em setores proporcionais ao n umero de
descendentes que corresponde a cada congura cao. A
continua cao, deve-se operar a roleta n vezes e, em cada
opera cao, e escolhido um descendente para aquela con-
gura cao que e identicado pelo setor circular ganhador
da roleta. Assim, a roleta resolve o problema de n umero
nao inteiro de descendentes obtido de (3) e, adicional-
mente, introduz uma componente aleatoria no processo
quando opera a roleta.
54
As seguintes observa coes sao importantes em rela cao
ao esquema de sele cao proporcional:
O esquema da sele cao proporcional tem duas partes
fundamentais e com fun coes muito especcas: (1)
determina cao do n umero de descendentes que e pro-
porcional ao valor da fun cao de adapta cao e obtido
usando (3), onde os valores encontrados sao nao in-
teiros, e (2) integraliza cao desses valores nao inteiros
usando a roleta.
Variantes da selecao proporcional e alguns
outros tipos de selecao modicam uma dessas
partes. Entretanto, existem outros meto-
dos de selecao que sao radicalmente difer-
entes e nao apresentam nenhuma dessas
partes.
55
O uso adequado da relacao (3) implica que
os valores dos z
i
(x) devem ser todos posi-
tivos para o problema de maximizacao ou
todos negativos para o problema de min-
imizacao porque nao faz sentido, neste caso, en-
contrar o valor medio de n umeros positivos e neg-
ativos. Na verdade, o problema padrao para usar a
sele cao proporcional e um problema de maximiza cao
e com valores dos z
i
(x) nao negativos. Portanto, se
o problema de maximiza cao apresenta fun coes de
adapta cao de uma popula cao que sao positivos e
negativos entao, deve-se realizar uma transforma cao
das fun coes de adapta cao para que todos eles as-
sumam valores nao negativos. Tipicamente se in-
crementa uma constante K para transfor-
mar os valores negativos em positivos. O ca-
so inverso acontece com problemas de minimiza cao
que apresenta fun coes de adapta cao positivos e, nesse
caso, deve-se subtrair uma constante K das fun coes
de adapta cao para que assumam valores negativos.
56
Na teoria basica de algoritmos geneticos o
problema e de maximizacao e os valores
dos z
i
(x) sao positivos. Quando o problema for
de minimiza cao, como no problema de planejamen-
to de sistemas de transmissao, deve-se realizar uma
transforma cao do problema para um equivalente de
maximiza cao sempre que seja usada a sele cao propor-
cional ou um esquema de sele cao que use a primeira
parte da sele cao proporcional. Outra alternativa con-
siste em manter a forma de minimiza cao e transfor-
mar os valores das fun coes de adapta cao em neg-
ativos em caso necessario como foi mencionado no
item anterior.
57
Exemplo 7.8:: Sele cao proporcional.
Para o problema da mochila apresentado no exemplo
7.4, implementar a primeira parte da sele cao propor-
cional usando as fun coes de adapta cao I e III.
Pode-se vericar facilmente que o valor medio das fun coes
de adapta cao tipo I e igual a z
m1
(x) = 40 e para o tipo
III e igual a z
m2
(x) = 10. Portanto, usando (3), pode-se
montar a tabela 7.3.
Tabela 7.3: N umero de descendentes usando a sele cao
proporcional.
Congura cao Tipo I Tipo III
P
1
1,075 1,3
P
2
0,975 0,9
P
3
0,825 0,3
P
4
1,125 1,5
Total 4,000 4,0
58
Da tabela 7.3, pode-se observar que a estrategia Tipo
I apresenta um n umero de descendentes muito proxi-
mos especialmente quando comparados com os resulta-
dos da estrategia III. Nesse caso, pode-se armar que
a estrategia III apresenta uma melhor sele-
tividade quando comparada com a estrategia I. Assim,
na sele cao proporcional, a seletividade que e a principal
caracterstica do operador de sele cao e altamente depen-
dente dos valores absolutos das fun coes de adapta cao.
A selecao proporcional deve ser terminada
usando a roleta onde a cada congura cao e atribuida
uma parcela da roleta proporcional ao n umero de de-
scendentes usando a seguinte rela cao:
2(
1
n
)Nd
i
360(
1
n
)Nd
i
(4)
isto e, pode-se dividir a roleta em graus ou radianos.
59
Exemplo 7.9: Completando a sele cao proporcional.
Terminar de implementar a sele cao proporcional para
a popula cao com fun cao de adapta cao tipo III do exem-
plo anterior.
Usando (4) e os resultados da tabela 7.3, pode-se en-
contrar o setor circular da roleta que corresponde a cada
congura cao, mostradas a seguir:
P1 =
1,3
4
360 = 117
o
P2 =
0,9
4
360 = 81
o
P3 =
0,3
4
360 = 27
o
P4 =
1,5
4
360 = 135
o
d
Total de
inteira fracionaria descendentes
P
1
43 1, 3 1 0, 3 0 1
P
2
39 0, 9 0 0, 9 1 1
P
3
33 0, 3 0 0, 3 0 0
P
4
45 1, 5 1 0, 5 1 2
68
Selecao Proporcional Limitando o
N umero Maximo de Descendentes
Esta proposta consiste em limitar o n umero
maximo de descendentes que pode ter uma con-
gura cao, isto e, nenhuma congura cao pode ter dire-
ito a gerar um n umero de descendentes maior que um
limite especicado. Esta proposta elimina parcialmente
o problema de aparecimento de supercongura coes nas
fases iniciais do processo. Assim, por exemplo, se for
especicado um n umero maximo de descendentes igual
a 3 e uma supercongura cao tem direito a gerar 5 de-
scendentes, usando a rela cao (4), entao essa congura cao
deve gerar somente 3 congura coes, aumentando a possi-
bilidade de que outras congura coes menos promissoras
participem do processo de sele cao e sejam selecionadas.
A proposta de limitar o n umero maximo de
descendentes pode ser incorporada nas tres
propostas de selecao proporcional analisadas.
69
Selecao Usando Escalonamento
Linear (scaling mechanism)
Esta proposta de selecao tenta atenuar os
dois principais problemas da selecao propor-
cional tradicional, isto e, o aparecimento de
superconguracoes nas fases iniciais do pro-
cesso e a perda de seletividade nas fases nais
do processo.
A ideia fundamental consiste em realizar uma
transformacao linear das funcoes de adapta cao
para melhorar a seletividade do processo quan-
do e usada a rela cao (3). Assim, quando a dispersao dos
valores das fun coes de adapta cao e grande com a pre-
sen ca de supercongura coes, a transforma cao linear pro-
duz novos valores das fun coes de adapta cao com menor
dispersao, melhorando a seletividade. Por outro lado,
quando a dispersao dos valores das fun coes de adapta cao
e pequena com a presen ca de congura coes muito ho-
mogeneas, a transforma cao linear produz novos valores
das fun coes de adapta cao mais dispersos, melhorando
tambem a seletividade.
70
Portanto, a proposta fundamental do escalon-
amento linear e realizar uma transforma cao
linear das funcoes de adaptacao antes de usar
a relacao (3) para melhorar a seletividade e o
restante do processo de sele cao e implementado exata-
mente igual `a sele cao proporcional. Em outras palavras,
a sele cao usando escalonamento linear e um processo
de sele cao que usa transforma cao linear das fun coes de
adapta cao mais sele cao proporcional. Assim, apos a trans-
forma cao linear, o processo de sele cao pode ser termina-
do usando uma das seis propostas de sele cao propor-
cional analisados anteriormente.
71
A transforma cao das fun coes de adapta cao e realizada
usando a seguinte rela cao:
f
= af + b
onde f e o valor da fun cao de adapta cao original, f
= 0, 36 f + 86, 4
A diferen ca entre o n umero de descendentes, usando
a fun cao de adapta cao original e transformada, pode ser
vericada no seguinte quadro:
73
Congura cao f(x) N
d
f
(x) N
d
P
1
40 0, 30 100, 8 0, 75
P
2
60 0, 44 108, 0 0, 80
P
3
80 0, 60 115, 2 0, 85
P
4
360 2, 66 216, 0 1, 60
No quadro anterior, pode-se vericar que
as funcoes de adaptacao que estavam acima
da media foram diminudos e aqueles que es-
tavam abaixo da media foram aumentados,
diminuindo o desvio padrao das funcoes de
adaptacao e melhorando a distribuicao de de-
scendentes. O leitor pode vericar que acontece o con-
trario, com um aumento do desvio padrao, quando as
fun coes de adapta cao estao muito proximas o que pode
ser facilmente vericado resolvendo novamente o exem-
plo para uma popula cao com as seguintes fun coes de
adapta cao: 200, 205, 210, 215.
74
O processo de selecao deve ser terminado
usando qualquer dos esquemas de selecao pro-
porcional anteriormente apresentados. Apenas
foi alterada a distribui cao do n umero de descendentes.
Finalmente, pode-se vericar que esta estrategia contor-
na em parte os dos principais problemas da sele cao pro-
porcional, diminuindo o poder das supercongura coes
que aparecem nas fases iniciais do processo e aumentan-
do a dispersao das fun coes de adapta cao quando elas
sao muito homogeneas, o que acontece nas fases nais
do processo do algoritmo genetico.
75
Selecao Usando Ordenamento (rank
based selection)
Nesta proposta o n umero de descendentes que cor-
responde a cada congura cao depende de uma sele cao
ordenada (ranking) das congura coes em ordem decres-
cente dos valores das fun coes de adapta cao para o proble-
ma de maximiza cao e, em ordem invertida para o proble-
ma de minimiza cao. No ordenamento linear, o n umero de
descendentes que corresponde a cada congura cao varia
linearmente e em forma decrescente com sua localiza cao
no ordenamento (problema de maximiza cao). Portan-
to, o valor da funcao de adaptacao e usado
apenas para fazer o ordenamento. Em outras
palavras, nao e crucial o valor absoluto de uma fun cao
de adapta cao, interessa conhecer se esse valor e melhor
ou pior que as outras.
76
Esta proposta e signicativamente diferente
da selecao proporcional. Na verdade, esta pro-
posta elimina a primeira parte da estrategia
da selecao proporcional que consiste em determi-
nar o n umero de descendentes usando a rela cao (3) que
e substituda por uma distribui cao de descendentes de-
terminado por um ordenamento linear previamente es-
pecicado. No ordenamento linear, o n umero de
descendentes tambem e nao inteiro e, portan-
to, o processo de selecao deve ser terminado
usando a roleta ou uma proposta equivalente que
substitua a roleta.
77
Em rela cao ao esquema de ordenamento linear, deve-se
fazer as seguintes observa coes:
A selecao baseada em ordenamento linear
elimina os dois problemas existentes na se-
lecao proporcional, isto e, o problema de
aparecimento de superconguracoes ou de
conguracoes homogeneas. Este fato decorre
da logica da sele cao por ordenamento onde nao in-
teressa os valores absolutos das fun coes de adap-
ta cao, e sim, a diferen ca entre elas. Por exemplo, a
melhor conguracao de uma populacao de
quatro conguracoes com funcoes de adap-
tacao de 40, 60, 80 e 360 teria um n umero
de descendentes exatamente igual quando
as funcoes de adaptacao assumem os val-
ores de 110, 120, 130 e 150 ou quando as-
sumem os valores de 105, 108, 111 e 112.
78
Do item anterior, pode-se concluir que o n umero
de descendentes que corresponde a uma
populacao de conguracoes e calculado uma
unica vez usando os parametros de ordena-
mento linear que devem ser especicados.
Em outras palavras, se os parametros escolhidos de-
terminam que a melhor congura cao tem direito a
gerar 3,5 descendentes, a segunda melhor 3,2 descen-
dentes, etc., entao, esse n umero de distribui cao de de-
scendentes pode permanecer inalterado durante todo
o processo. Em cada itera cao do algoritmo genetico a
unica tarefa consiste em fazer o ordenamento e iden-
ticar qual congura cao e a melhor, qual a segunda,
etc. Esta forma de trabalho, alem de eliminar os dois
problemas da sele cao proporcional, permite a imple-
menta cao da sele cao com menor esfor co computa-
cional. Logicamente e possvel mudar os parametros
de ordenamento linear.
79
A selecao por ordenamento elimina a ne-
cessidade de transformar um problema de
minimizacao em um equivalente de maxi-
mizacao ou da presenca de valores da fun cao
de adaptacao positivos ou negativos. Entre
um tipo de problema e outro apenas, deve-se inverter
o ordenamento. Este fato e uma consequencia dire-
ta de que a sele cao por ordenamento linear dispensa
a rela cao (3) para determinar o n umero de descen-
dentes.
Como o n umero de descendentes e nao in-
teiro entao, deve-se usar a roleta ou equiv-
alente para terminar o processo de sele cao.
80
A fun cao de designa cao linear que permite encontrar
o n umero de descendentes para cada congura cao deve
satisfazer algumas propriedades teoricas. Assim, seja (x)
a fun cao de designa cao linear, entao ela deve cumprir as
seguintes propriedades:
1. (x) R para x [0, 1].
2. (x) 0
3.
1
0
(x)dx = 1
Seja a forma geral de (x) = c
o
c
1
x. Entao temos
que:
1
0
(x)dx = 1 =
1
0
(c
o
c
1
x)dx =
c
o
x
c
1
2
x
2
1
0
= 1
= c
o
c
1
2
= 1 = c
1
= 2(c
o
1) = (x) = c
o
2(c
o
1)x
(5)
A exigencia de que (x) 0 limita o valor de c
o
para
o intervalo: 1 c
o
2.
81
Exemplo 7.13: Sele cao por ordenamento.
Implementar a sele cao usando ordenamento linear para
um problema de maximiza cao com uma popula cao de 4
congura coes e cujas fun coes de adapta cao sao as seguintes:
43, 39, 33 e 45.
Ordenamos as congura coes pela qualidade das fun coes
de adapta cao. Assim, temos: P
1
= 45, P
2
= 43, P
3
= 39
e P
4
= 33, Usamos a fun cao de designa cao com c
o
= 2
escolhido arbitrariamente no intervalo permitido de c
o
.
Entao separamos o intervalo de varia cao de x em quatro
parcelas que e o tamanho da popula cao.
Seja
1
a fra cao que corresponde `a melhor congu-
ra cao, P
1
, entao temos:
1
=
0,25
0
(x)dx =
0,25
0
(22x)dx = [2xx
2
]
0,25
0
=
7
16
De maneira similar, pode-se encontrar os outros val-
ores dos
i
e o n umero de descendentes que corresponde
a cada congura cao e os resultados sao mostrados no
seguinte quadro:
82
Congura cao f(x)
i
N
d
= 4
i
P
1
45 7/16 1, 75
P
2
43 5/16 1, 25
P
3
39 3/16 0, 75
P
4
33 1/16 0, 25
Total 4, 0
Logicamente, os valores dos
i
depende ex-
clusivamente do parametro c
o
escolhido que
pode permanecer constante durante todo o
processo e assim, pode-se armazenar os
i
des-
de o incio do processo ou melhor ainda os valores
dos Nd
i
= n
i
que e o n umero de descendentes que
corresponde a cada congura cao. Portanto, em cada it-
era cao do algoritmo genetico, deve-se apenas fazer o or-
denamento.
83
Selecao Usando Torneio (tournament
selection)
Esta proposta de sele cao e muito atrativa porque e sig-
nicativamente diferente da sele cao proporcional. Nes-
ta estrategia, os descendentes sao escolhidos
realizando n jogos sendo n o tamanho da pop-
ulacao. Em cada jogo sao escolhidos aleatori-
amente k conguracoes e a conguracao gan-
hadora do jogo e aquela que tem funcao de
adaptacao de melhor qualidade. O valor de k
e geralmente pequeno, tipicamente k {2, 3, 4, 5}. Apos
n jogos se termina o processo de sele cao.
84
Este tipo de selecao e atrativo porque e com-
putacionalmente muito rapido e, tambem, porque
a estrategia e a mesma para problemas de
maximizacao e minimizacao, apenas o criterio
de funcao de adaptacao de melhor qualidade
e diferente. Outra vantagem do metodo e que
elimina os dois problemas existentes na se-
lecao proporcional tradicional porque a sele cao
depende apenas dos valores relativos das fun coes
de adaptacao. Finalmente, o processo encon-
tra um n umero de descendentes inteiro e, por-
tanto, dispensa o uso da roleta. Embora muito
simples, este metodo e rapido e eciente.
Na literatura especializada existem ainda outros meto-
dos de sele cao. Por exemplo, existe o metodo genitor
que faz somente uma substitui cao parcial da popula cao.
Neste contexto, aparece o conceito de elitismo que tenta
preservar as congura coes de melhor qualidade.
85
Manipulacao de Problemas de
Minimizacao
Esta parte da analise do algoritmo genetico
so faz sentido quando e usado um metodo de
selecao que usa a relacao (3), isto e, os meto-
dos de selecao proporcional e escalonamento
linear. Na teoria basica de algoritmos geneticos geral-
mente e apresentado um problema de maximiza cao com
fun coes de adapta cao positivos onde e possvel usar a
rela cao (3) sem problemas. Este tipo de problema e im-
plicitamente considerado como um problema na forma
padrao para algoritmos geneticos. Portanto, se um prob-
lema de maximiza cao apresenta fun coes de adapta cao
negativos entao esses valores sao transformados em pos-
itivos, isto e, sao padronizados. Por outro lado, se um
problema e de minimiza cao entao o problema e transfor-
mado em um problema de maximiza cao, isto e, tambem
e padronizado. Entretanto, a rela cao (3) funciona sem
problemas quando o problema e de minimiza cao e os
valores das fun coes de adapta cao sao todos negativos
nao sendo necessaria nenhuma transforma cao.
86
Quando um problema e de minimiza cao pode ser us-
ada uma das seguintes alternativas:
1. Manter a estrutura de problema de minimiza cao e
transformar as fun coes de adapta cao em negativos,
caso seja necessario, subtraindo uma constante K
de todas as fun coes de adapta cao. Assim, os valores
transformados assumem a seguinte forma:
f
(x) = f(x) K
2. Transformar o problema de minimiza cao em um prob-
lema de maximiza cao usando a seguinte rela cao:
Minimizar f(x) maximizar (1/f(x)) = z(x).
Esta proposta e usada em varias publica coes e, em-
bora nao seja totalmente equivalente apresenta de-
sempenho satisfatorio em aplica coes praticas.
3. Transformar o problema de minimiza cao em um prob-
lema de maximiza cao usando a seguinte rela cao:
Minimizar f(x) maximizar [K f(x)] = z(x)
Esta proposta e uma consequencia direta da pro-
priedade min f(x) [max f(x)]. Se o
problema de minimiza cao apresenta fun coes de adap-
ta cao positivos (nao esta padronizado) entao f(x)
apresenta valores negativos entao, deve-se acrescen-
tar uma constante K para que o problema transfor-
mado se encontre na forma padronizada.
87
Exemplo 7.15: Padronizando um problema de mini-
miza cao.
Usar as tres propostas anteriormente apresentadas para
padronizar o seguinte problema de minimiza cao:
Congura cao f(x) = (min.)
1 43
2 39
3 33
4 45
Para a primeira proposta, mantendo o problema co-
mo sendo de minimiza cao, escolhemos o parametro K =
48. Para o segundo caso nao e necessario escolha de
parametro e para o terceiro caso escolhemos o parametro
K = 50.
88
A escolha do parametro K e realizada de maneira ade-
quada, isto e, deve-se contornar o problema que origina a
escolha de um parametro e tambem manter ou garantir
a seletividade. O seguinte quadro mostra as tres pro-
postas de tratamento de um problema de minimiza cao
para realizar a sele cao.
Congura cao f(x) Primeira alternativa Segunda alternativa
Minimiza cao Maximiza cao
f
(x) N
d
z(x) N
d
1 43 -7 0,7 0,0232 0,92
2 39 -11 1,1 0,0256 1,01
3 33 -17 1,7 0,0303 1,20
4 45 -5 0,5 0,0222 0,87
Total 160 -40 4,0 0,1013 4,00
89
Recombinacao
As congura coes escolhidas no processo de sele cao de-
vem ser submetidas ao operador de recombina cao. No
algoritmo genetico, a recombinacao consiste
em trocar parcelas de duas conguracoes para
formar duas novas conguracoes candidatas.
Em outras palavras, duas conguracoes can-
didatas sao geradas com parcelas de duas con-
guracoes geradoras. Essas novas congura coes ger-
adas devem ainda ser submetidas ao operador de mu-
ta cao para que se transformem em congura coes da nova
popula cao ou gera cao. O operador de recombina cao (re-
combination ou crossing over) tenta simular o fenomeno
de crossing over na genetica. Entretanto, o leitor deve ter
observado que a recombina cao dos algoritmos geneticos
e diferente do crossing over: no primeiro caso duas con-
gura coes geradoras sao recombinadas gerando duas con-
gura coes descendentes que estao formadas por parcelas
(subcadeias) das congura coes geradoras e, no segundo
caso, dois cromossomos gemeos se separam e se duplicam
mas acompanhados de um processo de recombina cao
genetica, isto e, os cromossomos gemeos se recombinam,
separam e duplicam gerando quatro descendentes.
90
No primeiro caso duas unidades (congura coes) se re-
combinam e formam outras duas unidades entanto que,
no segundo caso, uma unidade (formada por dois cro-
mossomos gemeos) se recombina, duplica e separa for-
mando quatro meias unidades. Entretanto, pode-se ar-
mar que ambos os processos tentam simular o processo
de diversidade genetica, isto, produzem descendentes de
caractersticas diferentes. Obviamente, a recombina c ao
dos algoritmos geneticos e uma imita cao grosseira do
crossing over na genetica natural.
Existem varios tipos de recombinacao e a
diferenca entre eles esta no n umero de pon-
tos de recombinacao. Assim, esses tipos de recombi-
na cao sao conhecidos como recombina cao de um ponto,
de dois pontos, multiponto e uniforme. Nem sempre, to-
das as congura coes sao submetidas a recombina cao. A
taxa de recombina cao determina, em forma aleatoria, se
duas congura coes selecionadas devem ser submetidas a
recombina cao.
91
Recombinacao de um Simples Ponto
(single point recombination)
c
= 1, 0.
Em forma aleatoria sao escolhidos os seguintes pares.
{P
1
com P
4
} e {P
2
com P
4
}
1. P
1
e P
4
sao submetidas a recombina cao para gerar
duas congura coes candidatas. e gerado um n umero
aleatorio p = 8 {1, 11}. Portanto, a recombina cao
gera as seguintes congura coes candidatas:
ponto de recombina cao
?
recombina cao
0 0 1 0 0 0 1 0 1 1 0 0
1 1 1 1 1 1 0 0 0 1 1 0
0 0 1 0 0 0 1 0 0 1 1 0
1 1 1 1 1 1 0 0 1 1 0 0
P
2
:
P
1
:
P
4
:
P
1
:
b
= 24
b
= 45
b
= 34
b
= 35
Recurso
usado
36
52
45
43
f.o.
Recombinacao entre P
1
e P
4
.
94
Deve-se observar que a congura cao candidata P
1
esta infactvel porque 45 > 36 (a restri cao esta vio-
lada).
2. P
2
e P
4
sao submetidas a recombina cao para gerar
duas congura coes candidatas.
E gerado o n umero
aleatorio p = 3 {1, 11}. Portanto, a recombina cao
gera as seguintes congura coes candidatas:
ponto de recombina cao
?
recombina cao
0 0 1 1 1 0 0 1 0 1 1 0
0 1 0 0 0 0 1 0 0 1 1 0
0 0 1 0 0 0 1 0 0 1 1 0
0 1 0 1 1 0 0 1 0 1 1 0
P
4
:
P
3
:
P
4
:
P
2
:
b
= 34
b
= 34
b
= 34
b
= 34
Recurso
usado
45
39
45
39
f.o.
Recombinacao entre P
2
e P
4
.
Neste caso as duas congura coes candidatas sao factveis.
95
Outros Tipos de Recombinacao
A diferenca entre a recombinacao de um
ponto e os outros tipos de recombinacao con-
siste simplesmente na escolha do n umero de
pontos de recombinacao. No outro extremo esta a
recombina cao uniforme que consiste em uma recombi-
na cao bit por bit.
E intuitivamente evidente que a mel-
hor estrategia de recombina cao deve ser o tipo de re-
combina cao multiponto com um n umero de pontos de
recombina cao que deve depender do n umero de elemen-
tos de uma congura cao. Deve-se lembrar que a recom-
bina cao na genetica tem um n umero elevado de pontos
de recombina cao mas distante de ser uma recombina cao
uniforme.
96
Para o exemplo anterior, uma recombina cao de dois
pontos e realizada da seguinte forma:
1 0 0 0 0 1 1 1 0
0 1 1 1 1 0 0 1 1
1 0 0 1 1 1 1 1 0
0 1 1 0 0 0 0 1 1
? ?
pontos de recombina cao
depois da recombina cao
97
Muta cao (mutation)
Na codicacao binaria o operador de mu-
tacao simplesmente troca o valor de uma variavel
de 0 para 1 ou vice-versa. Nos trabalhos ini-
ciais sobre algoritmos geneticos, a muta cao
sempre foi considerada um operador secundario.
Entretanto, este ponto de vista esta mudan-
do especialmente quando se trata de resolver
problemas reais de grande porte.
98
A taxa de mutacao
m
indica a probabili-
dade de que uma posicao ou casa binaria seja
modicada. Na analise teorica e nas propostas origi-
nais, sugere-se que a muta cao deve ser tentada bit por
bit, casa por casa, e portanto a decisao de mutar uma
posi cao deve ser independente da decisao realizada em
outras posi coes binarias de uma congura cao. Assim, su-
por que e escolhida uma taxa de muta cao de
m
= 0, 05,
entao cada bit de uma congura cao e submetido a mu-
ta cao com esta probabilidade. Desta forma, e gerado um
n umero aleatorio p [0, 1] e se esse n umero e menor
que
m
= 0, 05 entao e realizada a muta cao. Na im-
plementa cao da muta cao tambem existe necessidade de
gerar n umeros aleatorios introduzindo, novamente, uma
componente aleatoria na implementa cao do algoritmo
genetico.
99
A implementa cao pratica da muta cao em problemas
com popula coes grandes e congura coes com elementos
muito grandes, como acontece, particularmente, quan-
do e usada a codica cao binaria, pode exigir um es-
for co computacional signicativo na implementa cao da
muta cao bit por bit. Assim, por exemplo, um proble-
ma com uma popula cao de 200 congura coes e com
congura coes de 1000 elementos binarios implicaria ger-
ar 200000 n umeros aleatorios e tentativas de muta cao.
Neste tipo de casos, pode-se implementar a
mutacao de uma forma mais rapida e pratica-
mente equivalente. Por exemplo, pode-se de-
terminar o n umero de mutacoes mais provavel
e distribuir aleatoriamente essas mutacoes nas
conguracoes da populacao.
100
Exemplo 7.17: Muta cao.
Implementar a muta cao das congura coes candidatas
obtidas apos a recombina cao no exemplo 7.16, usando
uma taxa de muta cao de
m
= 0, 05 e terminar de gerar
as congura coes da nova popula cao.
Na forma pratica de implementar a muta cao,
deve-se fazer 0, 05(4)(12) = 2, 4 mutacoes, is-
to e, 2 mutacoes. Assim, sao escolhidos dois
n umeros aleatorios entre 1 e 48, gerando-se
os n umeros 6 e 23. Portanto, deve-se mutar a sex-
ta posi cao da primeira congura cao e a decima primeira
posi cao da segunda congura cao. As novas congura coes
candidatas, apos a muta cao assumem a seguinte forma:
0 0 1 1 1 0 0 1 0 1 1 0
0 1 0 0 0 0 1 0 0 1 1 0
0 0 1 0 0 0 1 0 1 1 1 0
1 1 1 1 1 0 0 0 0 1 1 0
P
4
:
P
3
:
P
2
:
P
1
:
b
= 34
b
= 34
b
= 36
b
= 39
Recurso
usado
45
39
51
48
f.o.
Congura coes apos a muta cao.
101
No caso particular do problema da mochila,
com o tipo de codicacao escolhida, tanto a
recombinacao assim como a mutacao podem
gerar conguracoes infactveis. Neste tipo de
casos existem as seguintes alternativas: (1) trans-
formar as congura coes infactveis em factveis usando
uma heurstica rapida, (2) eliminar as congura coes in-
factveis ou, (3) considerar todas as congura coes co-
mo sendo factveis e penalizar aquelas infactveis na
fun cao objetivo. Para gerar a nova popula cao e escol-
hida a primeira alternativa e para eliminar a infactibil-
idade, deve-se passar uma variavel com valor 1 para 0
ate retomar a factibilidade.
102
A variavel que deve passar de 1 para 0 e aquela que tiv-
er a menor rela cao
c
j
a
j
. Assim, na congura cao candidata
P
1
passamos x
2
= 1 para x
2
= 0 e retomamos a factibil-
idade. Portanto, termina o processo de gera cao da nova
popula cao constituda pelas seguintes congura coes:
0 0 1 1 1 0 0 1 0 1 1 0
0 1 0 0 0 0 1 0 0 1 1 0
0 0 1 0 0 0 1 0 1 1 1 0
1 0 1 1 1 0 0 0 0 1 1 0
P
4
:
P
3
:
P
2
:
P
1
:
b = 34
b = 34
b = 36
b = 35
Recurso
usado
45
39
51
46
f.o.
Congura coes apos eliminar as infactibilidades.
103
Quando a codicacao for de outro tipo, difer-
ente da codicacao binaria entao, deve-se de-
senvolver estrategias equivalentes de muta cao
levando em conta a natureza do problema,
do tipo de codicacao escolhida e a essencia
da mutacao na genetica natural, isto e, pe-
quenas mudancas no conte udo genetico mas
que produzem um genotipo que nao existia
com o conseq uente aparecimento de um novo
fenotipo.
104
Ciclo Geracional
schema
=
00000 = instance
01000
10000
11000
em que um elemento do esquema e chamado uma rep-
resenta cao (elemento) ou instancia (instance) do proble-
ma.
117
Cada solu cao representada por um esquema e entao,
um elemento ou uma representa cao do esquema. Assim,
um esquema representa um conjunto de elementos ou
solu coes que tem algumas caractersticas comuns entre
eles, determinadas pelas posi coes xadas e, essa carac-
terstica, e chamada de similarity template (um conjunto
de caractersticas ou propriedades analogas). Em outras
palavras, um esquema representa um subespa co
de solucoes de um problema e quanto maior
for o n umero de posicoes nao xadas, maior
e o subespaco representado pelo esquema. Por-
tanto, a nota cao e um esquema que representa o
espa co de solu coes completo. Para entender a evolu cao
de um esquema sao necessarias algumas deni coes adi-
cionais.
118
Ordem de um Esquema:
esquema
001 = f
1
= 40
101 = f
2
= 60
= f
m
=
40 + 60
2
= 50
121
Esquema de Competicao (schema competition):
O esquema e importante dentro do conceito de com-
peti cao entre esquemas. Para ilustrar, considere-se um
esquema com r posi coes xadas como o seguinte:
01
em que r = 2 (duas posi coes xadas). Entao, existem
2
r
1 = 2
2
1 = 3 outros esquemas com as mesmas
posi coes xadas que podem ser encontradas trocando os
valores 0 e 1 nas posi coes xadas. Assim, temos:
esquema original 01
outros esquemas 00
10
11
= 2
3
= 8 esquemas de competi cao
onde f signica que a posi cao esta xada.
Importante: O algoritmo genetico gera esquemas de
competi cao, tenta analisar os 2
k
esquemas de competi cao
e encontrar o melhor esquema para cada conjunto de
posi coes xadas. Assim, a teoria basica do algoritmo
genetico supoe que o algoritmo genetico produz uma
competi cao entre esquemas e a congura cao otima pode
aparecer como conseq uencia da superposi cao de esque-
mas cujo valor medio da fun cao de adapta cao e de qual-
idade e a distancia de deni cao do esquema e pequeno.
Este tipo especial de esquema e chamado de
bloco construtivo (building blocks).
123
Blocos Construtivos - (building
blocks)
1
c
(h)
k 1
m
O(h)
(6)
onde
c
(h)
k 1
representa a probabilidade de que uma
instancia (elemento) do esquema h seja destruda por
recombina cao e
m
O(h) representa a probabilidade de
que uma instancia do esquema h seja destruda por mu-
ta cao. f(h, t) e o valor medio da fun cao de adapta cao do
esquema h na gera cao t, f(t) e o valor medio da fun cao
de adapta cao da popula cao na gera cao t;
c
e a taxa de
recombina cao,
m
e a taxa de muta cao, (h) e a distancia
de deni cao do esquema h, O(h) e a ordem do esquema
h, N(h, t) e o n umero esperado de copias (instancias) do
esquema h na gera cao t, N(h, t+1) e o n umero esperado
de copias do esquema h na gera cao t +1 e k e o n umero
de casas (bits) do esquema.
127
Importante: Na verdade, o algoritmo genetico sele-
ciona os blocos construtivos a uma taxa muito maior.
Num simples ciclo geracional o algoritmo genetico pro-
cessa somente um n umero de P congura coes (P e o
tamanho da popula cao) mas avalia implicitamente um
n umero muito elevado de esquemas (aproximadamente
P
3
). Esta capacidade do algoritmo genetico, de proces-
sar um n umero elevado de esquemas, e conhecido como
paralelismo implcito.
128