Você está na página 1de 128

O Algoritmo Genetico

O algoritmo genetico e uma tecnica de busca atra-


ves de conguracoes e foi originalmente formulado
usando os mecanismos da evolu cao e da genetica natural.
Este algoritmo foi inventado por Holland na decada de
70.
A evolu cao das especies esta determinada por um pro-
cesso de sele cao que leva `a sobrevivencia dos indivduos
geneticamente melhor adaptados para superar os prob-
lemas do meio ambiente que geralmente sao variaveis.
O conceito de geneticamente melhor adapta-
do tem um valor relativo porque depende do
fator problematico que existe no meio ambi-
ente. Por exemplo, supor que existe uma popula cao de
gazelas com 3 caractersticas geneticas e com duas pos-
sibilidades em cada caso: gazelas de pesco co curto ou
comprido, gazelas que correm muito ou pouco, e gazelas
que apresentam anticorpos para uma doen ca ou que nao
apresentam esse anticorpo. Nesse contexto, se no meio
ambiente ocorrem varios anos de seca entao sobrevivem
as gazelas de pesco co comprido porque elas sao geneti-
camente melhor qualicadas para o problema crtico ex-
istente no meio ambiente.
1
O aparecimento de um excesso de predadores e o aparec-
imento da doen ca podem levar a novas gera coes, onde
deve existir uma popula cao de gazelas constitudas basi-
camente de gazelas com pesco co comprido, com anticor-
pos para a doen ca e com grande capacidade para cor-
rer. Todas as outras caractersticas desaparecem com a
morte daquelas gazelas que tinham essas caractersticas
geneticas. Assim, as mudancas do meio ambiente
determinam, de maneira signicativa, a mu-
dan ca na composicao genetica dos elementos
de uma populacao.
Os elementos da popula cao geneticamente melhor qual-
icados tem maior possibilidade de chegar a adultos e
gerar descendentes, transmitindo suas caractersticas geneticas
para os descendentes e aumentando essas caractersti-
cas geneticas na popula cao. Neste processo, existe uma
componente aleatoria muito importante na gera cao dos
indivduos da nova popula cao. Por exemplo, uma gazela
que corre muito pode ser ca cada.
Para que exista selecao devem existir in-
divduos geneticamente diferentes. A diferen ca
genetica entre os indivduos de uma popula cao pode
ser explicada pela teoria de Darwin. Existe diversidade
genetica pelos seguintes motivos:
2
1. Divisao e Duplica cao de Celulas Reprodutivas:
A informa cao genetica se encontra nos cromossomos
que, no caso da especie humana, consistem em 23
pares de cadeias de cromossomos. Cada par de cro-
mossomos gemeos trabalham de maneira conjunta
na determina cao de uma caracterstica genetica. Um
cromossomo e constitudo por uma sequencia de unidades
mais elementares chamadas de genes . Assim, em
cada elemento do cromossomo, chamado de gene, ex-
iste uma informa cao genetica dominante que e conse-
quencia da informa cao existente em cada cromosso-
mo gemeo do par cromossomico. O tipo especco
de informacao existente no gene e chama-
do de alelo. Portanto, um gene esta consti-
tudo por 2 alelos, um alelo em cada cro-
mossomo gemeo.
3
Geralmente, um dos alelos e dominante sobre o out-
ro e assim aparece o conceito de genotipo como
uma indica cao dos tipos de alelos existentes e a in-
forma cao do alelo dominante. O genotipo, determi-
nado pelo tipo de gene, determina um fenotipo
que e a caracterstica visual ou seletiva no indivduo.
Por exemplo, o tipo de sangue das pessoas (fenotipo)
e determinado por um tipo de alelo dominante (genotipo)
e como conseq uencia aparecem pessoas com dois feno-
tipos: pessoas de sangue Rh
+
e Rh

. Por outro la-


do, o grupo sanguneo e determinado por outro gene
onde, na especie humana, existem 3 tipos de alelos
sendo que dois deles estao presentes numa pessoa es-
pecca. Assim, dependendo dos tipos de alelos pre-
sentes numa pessoa, aparecem os fenotipos de grupo
sanguneo A, AB, B e universal. Logicamente, emb-
ora existam varios tipos de alelos na especie humana
para denir o grupo sanguneo, em uma pessoa par-
ticular existem somente dois tipos de alelos, um em
cada cromossoma gemeo, e esses alelos podem ser do
mesmo tipo.
4
K
2
K
1
P
1
P
1
S
2
S
1
. .. .
?
6

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.

E um problema com uma unica variavel. Para o inter-


valo de x [1, 2] e para uma aproxima cao de 6 dgitos
apos a vrgula, deve-se dividir o intervalo de varia cao
de x em 3 10
6
intervalos, em outras palavras, sao
necessarios 310
6
n umeros binarios. Portanto, sao necessarios
n umeros binarios com 22 bits porque:
2097152 = 2
21
< 3000000 < 2
22
= 4194304
24
Neste caso, cada n umero binario representa uma variavel
x

de acordo com a seguinte rela cao:


x

= [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).

E gerada uma popula cao inicial de 4 congura coes


factveis, muito pequena em aplica coes reais, em forma
aleatoria e sao mostradas a seguir:
0 0 1 0 0 0 1 0 0 1 1 0
0 1 1 0 0 0 1 1 0 0 0 1
0 1 0 1 1 0 0 1 0 1 1 0
1 1 1 1 1 1 0 0 1 1 0 0
P
4
:
P
3
:
P
2
:
P
1
:
b

= 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

E possvel melhorar a distribui cao dos setores circu-


lares da roleta, dividindo os valores anteriores por 360
e encontrando um arco total unitario. Essa ideia elimi-
na a necessidade de montar uma roleta convencional,
permitindo montar o esquema da roleta no computa-
dor usando apenas um vetor onde e armazenada toda
a informa cao e um gerador de n umeros aleatorios no
intervalo [0, 1]. Todas essas propostas alternativas sao
apresentadas na gura 7.3.
60
Uma vez montada a roleta, deve-se gerar aleatoria-
mente um n umero entre 0 e 360. Esse n umero permite
identicar uma regiao da roleta e a congura cao que
corresponde a essa regiao que deve ter direito a gerar
um descendente. O processo anterior se repete n vezes
para terminar a sele cao. No caso da roleta padroniza-
da, deve-se gerar n umeros aleatorios no intervalo [0, 1] e
identicar a congura cao que corresponde a esse n umero
gerado.
61
Usando a roleta padronizada, pode-se terminar o pro-
cesso de sele cao do exemplo anterior. O resultado desse
processo e o seguinte:
No. aleatorio gerado Congura cao escolhida
(entre 0 y 1)
0,42 2
0,18 1
0,64 4
0,96 4
O processo de sele cao termina com a seguinte dis-
tribui cao de n umero de descendentes:
Congura cao No. de descendentes
P
1
1
P
2
1
P
4
2
62
A sele cao proporcional apareceu juntamente com a
teoria basica dos algoritmos geneticos, isto e, foi a primeira
proposta para implementar o operador de sele cao. Poste-
riormente, foi observado experimentalmente de que esta
proposta de sele cao apresenta dois grandes prob-
lemas: (1) nas fases iniciais do processo podem aparecer
problemas de superseletividade devido a presen ca de al-
gumas supercongura coes com direito a gerar muitos de-
scendentes eliminando, prematuramente, a informa cao
genetica presente nas outra congura coes da popula cao
e produzindo uma convergencia prematura do algorit-
mo para um otimo local. Por outro lado, nas fases nais
do processo, existe o problema de perda de seletividade
porque quase todas as congura coes sao de qualidade
semelhante e com direito a gerar um descendente desa-
parecendo a seletividade no processo. As novas propostas
de sele cao tentam contornar, de alguma maneira, os dois
problemas anteriores.
63
Formas Alternativas da Selecao
Proporcional
Como foi mencionado anteriormente, a selecao pro-
porcional apresenta problemas com a manipula cao ad-
equada de supercongura coes nas fases iniciais do pro-
cesso e de falta de seletividade nas fases nais do proces-
so. Tambem foi mencionado que a sele cao proporcional
apresenta duas partes claramente diferenciadas, sendo
que a primeira consiste em encontrar um n umero de de-
scendentes proporcional ao valor da fun cao de adapta cao
e a segunda parte integraliza o n umero de descendentes
usando a roleta. Nesse contexto, foram propostas for-
mas alternativas da sele cao proporcional que tenta con-
tornar um ou os dois problemas da sele cao proporcional
tradicional, modicando uma ou as duas partes inte-
grantes da sele cao proporcional. Como essas propostas
implicam pequenas mudan cas na sele cao proporcional
entao sao chamadas de formas alternativas da sele cao
proporcional. Sao consideradas formas alterna-
tivas da selecao proporcional os seguintes: (1)
selecao estocastica do resduo, (2) selecao de-
terminstica e, (3) selecao com limitante su-
perior do n umero maximo de descendentes.
64
Selecao Estocastica do Resduo
(stochastic remainder technique)
Esta proposta simplesmente modica a segunda parte
da implementa cao da sele cao proporcional, isto e, o tra-
balho da roleta. A mudan ca consiste em realizar uma
sele cao determinstica da parte inteira do n umero de de-
scendentes e transferir para a roleta somente a parte fra-
cional do n umero de descendentes. Quando a popula cao
e grande, esta proposta e praticamente equivalente `a se-
le cao proporcional tradicional em rela cao `a qualidade da
seletividade. Entretanto, o esfor co computacional pode
diminuir de maneira signicativa porque a roleta e usada
apenas para terminar o processo de sele cao. Obviamente,
esta proposta nao resolve os dois problemas tpicos da
sele cao proporcional tradicional.
65
Exemplo 7.10: Sele cao estocastica do resduo.
Implementar a sele cao estocastica do resduo para um
problema de maximiza cao com uma popula cao de 4 con-
gura coes e as seguintes fun coes de adapta cao: 43, 39,
33 e 45.
O seguinte quadro mostra o processo de sele cao:
Congura cao f(x) N
d
Sele cao Sele cao aleatoria
determinstica usando a roleta
1 43 1, 3 1 0, 3
2 39 0, 9 0, 9
3 33 0, 3 0, 3
4 45 1, 5 1 0, 5
Portanto, a parte determinstica seleciona duas
conguracoes e a roleta deve selecionar as out-
ras duas conguracoes usando a parte fracional do
n umero de descendentes e apos duas opera coes da role-
ta, provavelmente, serao escolhidas as congura coes 2 e
4 completando o processo de sele cao.
66
Selecao Determinstica
Esta proposta simplesmente elimina o trabalho
da roleta e encontra, em forma determinstica, o n umero
de descendentes num processo de dois passos: (1)
faz sele cao determinstica da parte inteira do n umero de
congura coes como na proposta anterior e, (2) termina
a sele cao usando a parte fracional do n umero de descen-
dentes e priorizando as congura coes que apresentam
maior parte fracional.
Esta proposta apresenta um desempenho praticamente
equivalente que as duas propostas anteriores de sele cao
proporcional quando a popula cao e relativamente grande.
Entretanto existe um ganho em esfor co computacional
porque e eliminada a roleta e o consequente trabalho
de gera cao de n umeros aleatorios. Neste caso, tambem a
proposta nao resolve os dois problemas tpicos da sele c ao
proporcional tradicional. A eliminacao da compo-
nente aleatoria desta proposta de selecao faz
com que a selecao determinstica se afaste um
pouco da logica basica dos algoritmos geneticos.
67
Exemplo 7.11: Sele cao determinstica.
Implementar a sele cao determinstica para a popu-
la cao do exemplo 7.10.
O seguinte quadro mostra o processo de implemen-
ta cao da sele cao determinstica:
Congura cao f(x) N
d
Parte Parte N

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

e o valor da fun cao de adapta cao transformada e, a e


b, sao constantes que devem ser calculadas escolhendo
dois pontos da transforma cao linear. e tpico escolher os
seguintes criterios para denir os pontos:
O maior valor dos f

, que corresponde `a fun cao de


adapta cao transformada de melhor qualidade, deve
ser igual ao valor medio das fun coes de adapta cao
multiplicado por uma constante k
t
. Sao valores tpi-
cos de k
t
[1, 2 ; 2, 0]
O valor medio em ambas as popula coes permanecem
constantes. Com essas informa coes e possvel encon-
trar as constantes a e b para realizar a transforma cao.
72
Exemplo 7.12: Escalonamento linear.
Implementar a sele cao usando escalonamento 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: 40, 60, 80 e 360.
No exemplo, pode-se vericar a presen ca de uma su-
percongura cao com fun cao de adapta cao de 360 em
uma popula cao que apresenta valor medio de 135. Pretende-
se implementar sele cao usando escalonamento linear es-
colhendo um valor de k
t
= 1, 6, isto e, um valor maximo
de fun cao de adapta cao transformada igual a 216. Assim,
temos as seguintes rela coes lineares:
Quando f = 360 = f

= 216 = 216 = 360a + b


Quando f = 135 = f

= 135 = 135 = 135a + b


Resolvendo o sistema anterior, pode-se encontrar os
valores de a = 0, 36 e b = 86, 4. Assim, a rela cao de
transforma cao assume a seguinte forma:
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)

E a mais simples forma de recombina cao e


consiste em escolher um unico ponto para faz-
er recombinacao. Supor que uma congura cao tem k
elementos ou casas binarias. Entao, uma vez escolhidas
as duas congura coes para implementar a recombina cao,
deve-se gerar em forma aleatoria um n umero entre 1 e
(k 1) e, esse n umero indica o ponto de recombina cao.
A parcela que esta na direita de ambas as congura coes
sao trocadas para formar as duas novas congura coes
candidatas. As congura coes que devem ser submetidas
a recombina cao sao escolhidas aleatoriamente do conjun-
to de congura coes selecionadas que ainda tem direito a
gerar descendentes.
92
Para que as congura coes selecionadas sejam submeti-
das a recombina cao, deve-se gerar um n umero aleatorio
p [0, 1]. Se p e menor que a taxa de recombina cao
c
entao, deve-se proceder a recombina cao; em caso con-
trario as duas congura coes selecionadas nao sao recom-
binadas.
Neste processo de recombina cao, novamente, estao pre-
sentes tres decisoes de carater aleatorio: (1) as duas con-
gura coes que devem ser submetidas a recombina cao
sao escolhidas aleatoriamente, (2) o ponto de recombi-
na cao e escolhido aleatoriamente e, (3) deve-se gerar um
n umero aleatorio p que determina se as congura coes
selecionadas devem ser submetidas a recombina cao. As-
sim, como no caso da sele cao, algumas das decisoes an-
teriores podem ser substitudas por decisoes de carater
determinstico como, por exemplo, recombinar as mel-
hores congura coes com direito a gerar descendentes.
93
Exemplo 7.16: Recombina cao de um ponto.
Implementar a recombina cao de um ponto para as
congura coes selecionadas no problema da mochila do
exemplo 7.5. Considere uma taxa de recombina cao de

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

E chamado de ciclo geracional o conjunto de processos


de sele cao, recombina cao e muta cao que permitem en-
contrar as congura coes da nova gera cao ou popula cao
a partir da popula cao corrente. Assim, o ciclo geracional
e controlado pelo programa de controle do algoritmo
genetico.
105
Programa de Controle do Algoritmo
Genetico

E o conjunto de parametros que dene o tamanho da


popula cao, a taxa de recombina cao e a taxa de muta cao
e que dene, em forma signicativa, o comportamen-
to do algoritmo genetico. Este conjunto de parametros
e chamado de programa de controle do algoritmo genetico.
Valores tpicos recomendados pela literatura especializa-
da sao os seguintes:
Tamanho da popula cao: n
p
[30 ; 200].
Taxa de recombina cao:
c
[0, 5 ; 1, 0].
Taxa de muta cao:
m
[0, 001 ; 0, 050].
106
Criterio de Parada
Existem varios criterios de parada que podem ser im-
plementados. Assim, pode-se parar o algoritmo genetico
quando:
Foi executado um n umero especicado de gera coes.
A incumbente (melhor solu cao encontrada) assume
um valor pelo menos de igual qualidade que um valor
previamente especicado.
A incumbente nao melhora durante um n umero es-
pecicado de gera coes.
As congura coes da popula cao cam muito homogeneas,
isto e, as congura coes sao muito parecidas e prati-
camente ja nao existe evolu cao.
Usando um criterio que depende do tipo de problema
analisado.
107
Na pratica podem ser implementados varios criterios
de parada simultaneos. O leitor pode observar que al-
guns criterios de parada sao estaticos (previamente es-
pecicados) e outros sao dinamicos (depende da evolu cao
do processo). Em implementa coes praticas de problemas
complexos geralmente sao especicados criterios de para-
da mais objetivos que dependem do tipo especco de
problema. Por exemplo, no problema de planejamento de
sistemas de transmissao, um criterio de parada objetivo
consiste em parar o processo apos resolver um n umero
especicado de problemas de programa cao linear (PL),
ja que na resolu cao desses PLs e usado o maior esfor co
computacional.
108
Geracao da Populacao Inicial
A teoria basica dos algoritmos geneticos sug-
ere que a populacao inicial seja gerada aleato-
riamente porque a qualidade da solucao nal
deve ser independente da populacao inicial us-
ada. Entretanto, esse ponto de vista teorico e verdadeiro
para um esfor co computacional proibitivo, especialmente
em problemas de grande porte e complexos.
Existem problemas onde e possvel gerar uma pop-
ula cao inicial em forma aleatoria e encontrar solu coes
otimas ou quase-otimas de sistemas reais. Em outros ca-
sos, como nos problemas de engenharia eletrica, podem
ser usadas propostas alternativas como as seguintes:
109
Gerar uma popula cao inicial usando um processo
aleatorio controlado. Por exemplo, no proble-
ma de alocacao de bancos de capacitores
em sistemas de distribuicao e possvel usar
esta estrategia. Nesse tipo de problema e conheci-
do que nas melhores topologias sao alocados bancos
num n umero muito reduzido de barras, tipicamente,
entre 2 a 8 barras mesmo em sistemas de grande
porte. Portanto, pode-se gerar uma popula cao inicial
para um sistema de 200 barras do problema antes
mencionado alocando, por exemplo, bancos de ca-
pacitores em ate 10 barras do sistema. Em outras
palavras, escolhe-se um n umero reduzido de barras,
10 de 200 no exemplo, e o processo aleatorio identi-
ca aquelas barras onde devem ser alocados bancos
de capacitores e o n umero de bancos. Um proces-
so totalmente aleatorio produziria congura coes com
aloca cao de capacitores em muitas barras.
110
Gerar uma populacao inicial usando algo-
ritmos heursticos construtivos rapidos e
ecientes. Para problemas muito complex-
os esta proposta e a melhor alternativa. A
ideia consiste em gerar congura coes de boa quali-
dade mas tambem signicativamente diferentes en-
tre elas. Estes objetivos podem ser atingidos usando
algoritmos heursticos construtivos e pequenas mod-
ica coes nesses algoritmos.
111
Observacoes importantes: Apos apresentar os con-
ceitos elementares sobre a evolu cao e a genetica natural,
assim como o algoritmo genetico basico, deve-se observar
os seguintes assuntos:
1. A evolucao de qual tipo de especie e simu-
lada pelo algoritmo genetico basico?
A resposta para essa pergunta e um tanto complica-
da. O algoritmo genetico basico trabalha com uma
popula cao de tamanho constante, cada elemento da
popula cao e representado por um cromossomo, im-
plementa a sele cao proporcional, realiza recombina cao
de um ponto, muta cao simples e nao aparece ex-
plicitamente a reprodu cao sexuada. Por outro lado,
na genetica natural a popula cao nao e de tamanho
constante nem e renovada integralmente, as especies
mais evoludas tem varios cromossomos e esses cro-
mossomos sempre existem formando pares de cro-
mossomos gemeos que trabalham e funcionam como
um modulo unico, existem muitos pontos de recom-
bina cao, para muitos genes existem varios tipos de
alelos e ainda existem fenomenos como a pleiotropia
e a poligenia. Portanto, o algoritmo genetico basico
nao consegue simular adequadamente nem os com-
ponentes mais elementares da evolu cao e da genetica
natural.
112
De todas as limita coes anteriormente mencionadas, a
parte mais crtica corresponde `a represen-
tacao de um elemento da populacao atraves
de um cromossomo sem o correspondente
cromossomo gemeo. Esta representa cao nao per-
mite simular adequadamente a recombina cao genetica,
assim como a reprodu cao sexuada. Portanto, pode-se
tentar responder a pergunta armando que o algo-
ritmo genetico simples simula a evolu cao
de uma especie que tem um unico cromos-
somo (sem o correspondente cromossomo
gemeo), com somente dois tipos de alelo
para todos os genes e com um unico ponto
de recombinacao, isto e, essa especie nao existe na
natureza. Entretanto, mesmo simulando de maneira
muito aproximada a evolu cao e a sele cao natural, o
algoritmo genetico apresenta excelente desempenho
na resolu cao de muitos problemas.
113
Esta aparente contradi cao deixou intrigados muitos
pesquisadores. Como uma resposta natural a este
inquietante problema apareceram muitas pro-
postas sendo as principais as seguintes: (1)
tentar melhorar o algoritmo genetico basico, (2) elim-
inar a recombina cao genetica na formula cao, ja que
ela nao esta adequadamente representada e dar maior
importancia `a muta cao e, (3) retomar a logica funda-
mental da evolu cao e da sele cao natural e desenvolver
operadores geneticos para cada tipo de problema,
em que esses operadores geneticos nao necessaria-
mente devem simular, mecanicamente, os operadores
geneticos da genetica mas o algoritmo, em conjunto,
deve simular a evolu cao e a sele cao natural.
A segunda proposta deu origem aos chama-
dos algoritmos evolucionarios e a terceira
proposta aos programas evolutivos. Assim,
nos ultimos anos, qualquer algoritmo que, de algu-
ma maneira, esta inspirado na evolu cao e na genetica
natural e chamado de algoritmo evolutivo sendo o al-
goritmo genetico, o algoritmo evolucionario e o pro-
grama evolutivo casos particulares do algoritmo evo-
lutivo.
114
2. Proposta de programas evolutivos:
Para mostrar a diferen ca entre os diferentes algorit-
mos evolutivos, apresentamos a diferen ca fundamen-
tal entre dois desses algoritmos, o algoritmo genetico
tradicional e o programa evolutivo. Michlewicz mostra
essa diferen ca fundamental. Um algoritmo genetico
tradicional modica o problema original para que
seja enquadrado na logica do algoritmo genetico, is-
to e, deve-se realizar a codica cao binaria de rep-
resenta cao, mapeamento entre o espa co de solu coes
originais e da representa cao binaria, codica cao e de-
codica cao de solu coes, etc. Por outro lado, um pro-
grama evolutivo mantem a estrutura de um prob-
lema e modica o algoritmo genetico para que seja
enquadrado na estrutura do problema, o que impli-
ca modicar a codica cao e representa cao de uma
solu cao (diferente da binaria), desenvolver operadores
geneticos adequados, etc. Portanto, a logica fun-
damental e inversa; no algoritmo genetico
o problema e transformado e no progra-
ma evolutivo e o algoritmo genetico que
e transformado para se adaptar ao proble-
ma especco.
115
Forma de Trabalho do Algoritmo
Genetico
Na se cao anterior foi analisada em detalhe as diferentes
formas de implementar um algoritmo genetico. Tambem
foram justicadas as diferentes alternativas de imple-
menta cao de cada etapa do algoritmo genetico. Entre-
tanto, ainda nao foi explicado de maneira con-
sistente os argumentos teoricos que justicam
o excelente funcionamento do algoritmo genetico.
Nesta se cao sao apresentadas algumas ideias basicas de
tipo teorico que justica o funcionamento adequado do
algoritmo genetico.
116
Teoria do Esquema (schema)
Schema e uma palavra de origem latina que traduzi-
mos como sendo esquema embora a tradu cao nao seja
totalmente adequada. Um esquema representa um sub-
conjunto de todas as solu coes possveis de uma codi-
ca cao binaria de solu coes e que apresenta uma parcela
de seus elementos com valores xados. Por exemplo, um
esquema pode ser o seguinte arranjo:
000 = esquema
onde o indica que essa posi cao ainda nao foi xada.
Assim, temos uma codica cao binaria com 5 posi coes que
permitem representar 32 elementos (solu coes) diferentes.
O esquema 000 representa um subconjunto desses 32
elementos que tem as tres ultimas posi coes xadas no
valor 0. Portanto, esse esquema representa os seguintes
elementos:
000

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:

E o n umero de posi coes xadas de um esquema. Por


exemplo:
010 e de ordem 3
1 10 e de ordem 3
10 e de ordem 2
Distancia de Denicao de um Esquema (schemas
dening lenght):

E a distancia entre as duas posi coes xadas mais dis-


tantes no esquema. Por exemplo:
010 tem distancia de deni cao de 2
1 10 tem distancia de deni cao de 5
10 tem distancia de deni cao de 1
1 tem distancia de deni cao de 0
119
Propriedade: Qualquer solu cao ou elemento de um es-
quema e simultaneamente uma representa cao (instancia)
de 2
k
esquemas onde k e o n umero de posi coes do esque-
ma.

E facil vericar esta propriedade levando em conta que


em cada posi cao, um bit como por exemplo o 1, pode
ser representado por um 1 ou um nessa posi cao. Por
exemplo, para k = 2, o elemento:
1 1
e um elemento (instancia) dos seguintes esquemas:
1 1 1

1

120
Fun cao de Adaptacao Media de um Esquema
(Average tness of the schema)f
m
:

E o valor medio das fun coes de adapta cao de todas as


solu coes representadas pelo esquema. Por exemplo,
01

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

= esquema de competi cao


A esse conjunto de 2
r
esquemas, cada um deles com
r posi coes xadas, chama-se esquemas de competi cao.
Assim, para k = 3 posi coes, existem 2
3
= 8 esquemas
de competi cao mostradas a seguir:
122
f
f
f
ff
f f
ff

fff

= 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)

E chamado de bloco construtivo a um esquema que


tem um valor medio da fun cao de adapta cao de exce-
lente qualidade e, tambem, uma distancia de deni cao
pequena. Portanto, um bloco construtivo e um esquema
de excelente qualidade e tem essa informa cao de quali-
dade em forma concentrada.
Hipotese de Blocos Construtivos (build-
ing blocks hypothesis):
Os operadores de recombina cao e muta cao geram, se-
lecionam e realizam uma superposi cao de blocos con-
strutivos para encontrar as congura coes de alta qual-
idade ou as congura coes otimas. Recombina cao tende
a preservar a informa cao genetica presente nas congu-
ra coes que devem ser submetidas a recombina cao. Por-
tanto, a recombina cao de duas congura coes muito pare-
cidas perde a capacidade de gerar blocos construtivos.
Muta cao pode gerar (ou destruir) novos blocos constru-
tivos.
124
Pode-se resumir o processo de geracao de
blocos construtivos na seguinte forma:
A selecao favorece a geracao e propaga cao
de blocos construtivos ao selecionar as con-
guracoes de melhor qualidade.
A recombinacao faz a superposicao de blo-
cos construtivos e, por esse motivo, a teoria
basica dos algoritmos geneticos, considera
a recombinacao como o principal gerador e
propagador de blocos construtivos de alta
qualidade.
A mutacao gera novos blocos construtivos.
Observacao: Nem sempre a recombina cao de duas con-
gura coes de alta qualidade geram novas congura coes
de melhor qualidade. Pode acontecer o contrario e a
origem deste acontecimento e que a superposi cao de blo-
cos construtivos de qualidade nem sempre geram novos
blocos construtivos de melhor qualidade. Tipos de prob-
lemas cujas fun coes de adapta cao apresentam este tipo
de comportamento anormal sao chamadas de fun coes de
adapta cao enganosas (GA - deceptive functions).
125
Teorema do Esquema (schema
theorem)
Esquemas com elevado valor da fun cao de adapta cao
e pequena distancia de deni cao (blocos construtivos)
crescem exponencialmente de uma gera cao para outra.
O operador de sele cao aumenta ou diminui o n umero
de esquemas existentes numa gera cao. As congura coes
com excelentes esquemas sao as principais participantes
na conforma cao da nova gera cao. O operador de recom-
bina cao tambem pode destruir um esquema (no ponto de
recombina cao) diminuindo o n umero de esquemas pre-
sentes na nova gera cao. O operador de muta cao tambem
pode destruir um esquema. Portanto, esquemas com ex-
celente fun cao de adapta cao e pequena distancia de de-
ni cao, os chamados blocos construtivos, crescem expo-
nencialmente com o tempo de processamento do algorit-
mo genetico.
126
Matematicamente, o teorema do esquema, que deter-
mina o n umero esperado de elementos de um esquema
h que devem estar presentes na proxima gera cao, pode
ser estimado pela seguinte rela cao:
N(h, t + 1) N(h, t)
f(h, t)
f(t)

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

Você também pode gostar