Académique Documents
Professionnel Documents
Culture Documents
Mtodos de Otimizao
no Determinsticos
Evaristo C. Biscaia Jr.
Rogrio L. Pagano
Eduardo R. de A. Lima
16 e 17 de novembro de 2006
PEQ / COPPE / UFRJ
Rio de Janeiro RJ
1.
INTRODUO
1. INTRODUO
1.1.
Mtodos de Otimizao
1.2.
MNIMO
[ ]
3
sempre na direo contrria do gradiente da funo. O correspondente mtodo iterativo pode
ser representado por:
[ ]
3 5.774 . O ponto
[ ]
com X(0) chute inicial. Adotando este algoritmo com X (0 ) = 10 e = 0.1 resulta:
k
X (k )
-10
+10
+30
+290
+25510
X (k )
-10,000
-4,000
-5,560
-5,560
-5,778
-5,773
-5,774
[ ]
com X(0) chute inicial. Adotando este algoritmo com X (0 ) = +10 e = 0.1 resulta:
k
X (k )
+10
-10
-30
-290
-25510
4
k
X (k )
10.000
4.000
5,560
5,560
5,778
5,773
5,774
[ ].
f [X ( k ) ]
f X(k )
f X ( k )
3 X
X (k +1) = X (k )
6 X (k )
com X (0 ) = +10
6 X (k )
resulta:
X (k )
-10,000
-6,667
-5,833
-5,774
-5,774
X (k )
10,000
6,667
5,833
5,774
5,774
resulta:
5
Generalizao dos Mtodos para o Problema Multivarivel
O mtodo do gradiente pode ser generalizado para uma funo escalar de n variveis de
acordo com os algoritmos recursivos:
[ ]
X(k +1) = X(k ) f [X(k ) ]
X(k +1) = X(k ) + f X(k )
f (x )
x1
f (x )
Onde : f [x] = x o Vetor Gradiente da funo f(x).
2
M
f (x )
x
n
Para ilustrar este procedimento a funo: f (x ) = (x1 3)2 + 9 (x 2 5)2 considerada,
3
esta funo apresenta um ponto de mnimo em x = e o Vetor Gradiente desta funo :
5
2 (x1 3)
. O Mtodo da descida mais ngreme aplicado a esta funo traduzido
f [x] =
18 (x 2 5)
pelo procedimento recursivo:
2 X ( k ) 3
X( k +1) X ( k )
6 + (1 2 ) X( k )
1
= 1 1
1
=
( k +1) ( k )
(
k
)
18 X 2 5 90 + (1 18 ) X1( k )
X2
X2
1
considerando o chute inicial : X(0) = e = 0.1 os seguintes resultados numricos so
1
obtidos:
k
X1( k )
X 2( k )
1.4000
8.2000
1.7200
2.4400
MMM
MMM
MMM
51
3.0000
5.0000
Neste procedimento o valor de mantido constante. Uma modificao do mtodo pode ser
feita no sentido de buscar, em cada iterao, o valor timo de [ esta modificao faz com que
6
o mtodo do gradiente seja conhecido por mtodo do gradiente com busca do tamanho do
passo - (em ingls line search) ]. Esta modificao aplicada ao exemplo ilustrativo anterior
onde:
2 X ( k ) 3
X( k +1) X ( k )
6 + (1 2 ) X( k )
1
= 1 1
=
( k +1) ( k )
(
k
)
18 X 5 90 + (1 18 ) X1( k )
X2
X2
2
assim o valor de f(x) no final do passo k seria:
2
f [ X( k ) , ] = (1 2 )2 X1( k ) 3 + 9 (1 18 )2 X1( k ) 5
otimo =
[ X1
(k )
3] 2 + 81 [X 2
5] 2
(k )
(k )
2 [X1 3] 2 + 1458 [X 2 5] 2
f [ X( k ) , ]
= 0 resultando em:
otimo
1
Considerando o mesmo chute inicial : X(0) = e = 0.1 os seguintes resultados numricos
1
so obtidos:
k
X1( k )
X (2k )
timo
0.0557
1.2228
5.011
0.4880
2.9573
4.9146
0.0557
2.9991
5.0002
0.4880
2.9992
4.9982
0.0557
3.0000
5.0000
0.4880
7
Para encerrar a apresentao de algoritmos tipo gradiente o Mtodo de Newton
apresentado. Este procedimento quando aplicado a uma funo escalar de n variveis traduzido
pelo procedimento recursivo:
{ [ ]}1 f [X(k )]
onde: H (x) a Matriz Hessiana de f(x) que armazena os valores das derivadas segundas de f(x)
2f ( x ) 2f ( x )
segundo: Hij =
=
= H ji para i, j = 1, 2, ...., n.
x i x j x jx i
No exemplo ilustrativo anterior a matriz Hessiana uma matriz constante:
2 0
, isto ocorre devido ao fato de f(x) ser uma funo quadrtica. Neste caso, e
H (x) =
0 18
apenas no caso da funo ser quadrtica, o Mtodo de Newton converge em apenas uma iterao
independente do valor inicial adotado! . O custo computacional da implementao do Mtodo de
Newton geralmente muito elevado pois envolve, em cada iterao, o cmputo das derivadas
primeiras e segundas da funo.
Se o seu problema puder ser resolvido por um mtodo tipo gradiente, esta provavelmente
ser sua a melhor alternativa. No entanto, nem todos os problemas podem ser tratados por um
mtodo tipo gradiente. Seu uso inviabilizado sempre que:
1.3.
Mtodos Heursticos
Uma heurstica uma regra prtica derivada da experincia. No existe uma prova
conclusiva de sua validade, e espera-se que a tcnica heurstica funcione muitas vezes mas no
sempre. Uma heurstica nos ajudar a encontrar solues boas, mas no necessariamente timas.
A maior parte do que fazemos no nosso dia-a-dia tanto profissional quanto pessoal
envolve a resoluo heurstica de problemas. Um exemplo: todos os dias, ao sair de casa para ir
para o trabalho, voc precisa escolher que caminho fazer. Voc quer fazer o melhor caminho,
mas a sua definio de melhor envolve vrios fatores: tempo de percurso, aspectos de segurana,
qualidade da pavimentao, probabilidade de ficar preso em um monstruoso engarrafamento,
8
entre outros. Para fazer a otimizao do seu trajeto antes de sair de casa, voc precisaria se
conectar Internet e buscar vrias informaes: verificar as condies de trfego de sua cidade
naquele momento, buscar por notcias relatando acidentes, verificar se h obras nos seus
percursos, etc. Com estas informaes, voc pesaria prs e contras de cada rota e atribuiria uma
nota (um nmero real) a cada um dos possveis percursos. O percurso com a melhor nota naquela
manh seria o escolhido.
Certamente voc no faz isto, ou no teria tempo para o desjejum. Voc conhece, pela
sua experincia, que em alguns horrios algumas estradas devem ser evitadas, e outras
favorecidas. No mximo, voc toma seu desjejum ouvindo a uma rdio que d boletins
peridicos sobre o trnsito. Depois de algumas semanas, nem isto: voc simplesmente entra no
seu carro e vai para o trabalho, usando a rota que, pela sua experincia acumulada, lhe parece a
melhor.
Suas heursticas vo provavelmente funcionar na maioria das vezes, mas nem sempre:
algum dia voc pode ter problemas na rota escolhida. Mas voc no se incomoda: se ficar preso
em um engarrafamento, aproveita para a oportunidade para ligar para sua me, que vive
cobrando mais ateno.
Um mtodo heurstico de otimizao pode ser determinstico ou estocstico, a depender
se empregar ou no nmeros sorteados aleatoriamente para executar seu algoritmo.
Os anos 80 foram marcados pelo ressurgimento de mtodos heursticos de otimizao
como ferramentas adicionais para tentar superar as limitaes das heursticas convencionais.
Embora com filosofias distintas, estas metaheursticas possuem em comum caractersticas que as
distinguem das heursticas convencionais, como por exemplo, incluir ferramentas para tentar
escapar das armadilhas dos timos locais e a facilidade para trabalhar em ambientes paralelos.
So exatamente estes mtodos heursticos estocsticos e inspirados em fenmenos da natureza
o objeto de estudo deste curso.
voltar para INTRODUO
1.4.
a) Otimizao Global
No problema de Otimizao Local, busca-se um minimizador local da funo real F(x)
onde x um vetor de variveis reais. Em outras palavras, busca-se um vetor x* tal que F(x*)
F(x) para todo x prximo a x*. O problema de Otimizao Global consiste em encontrar um x*
que minimiza F(x) para todos os possveis valores de x. Este um problema muito mais difcil, e
9
para a maioria das aplicaes mnimos locais j so bons o suficiente, particularmente quando o
usurio pode usar sua experincia para delimitar a regio de busca e/ou fornecer um bom ponto
de partida para o algoritmo.
H critrios para determinar se um ponto ou no um timo local. Por exemplo, para
funes reais o critrio de primeira derivada nula indica a existncia de um extremo, e o sinal da
segunda derivada indica se este extremo um mximo ou um mnimo. No entanto, no existe
qualquer critrio que permita identificar um mnimo global. Para entender o porqu, considere o
problema de escalar uma montanha com uma neblina muito densa. Mesmo com pouca
visibilidade, fcil dizer que voc est no topo de uma montanha: ao tentar dar um passo
adicional em qualquer direo, voc ver que a tendncia de descida. Voc certamente parar
de caminhar e fincar sua bandeira. No entanto, como distinguir se voc est no topo de uma
montanha muito alta ou apenas no topo de um pequeno morro, como o preguioso abaixo? O
morro um exemplo de mximo local, e um algoritmo que apenas faa buscas locais buscando
por solues melhores no conseguir escapar destas armadilhas para mtodos de otimizao
global.
1
( x + 10 ) ( x + 6 ) ( x + 5 ) ( x + 1 ) ( x 7 ) ( x 10 )
10000
Observe que existem mnimos locais em x = -8,834, x = -2,546 e x = 8,817, sendo este
ltimo o mnimo global. A funo apresenta mximos locais em x= -5,518 e x = 3,914. Um
10
mtodo tipo gradiente no convergiria para o mnimo global desejado para qualquer condio
inicial, como ilustrado nas figuras abaixo.
b) Otimizao Combinatria
Uma outra rea de aplicao de mtodos heursticos a rea de Otimizao
Combinatorial, ou Otimizao Combinatria. Combinatorial geralmente significa que o espao
de estados discreto (e.g., um espao de tipos de molculas, ou caractersticas de um produto).
Este espao pode ser finito ou apenas enumervel. Qualquer problema discreto pode ser visto
como combinatorial.
Talvez o mais conhecido dos problemas combinatoriais seja o Problema do Caixeiro
Viajante. Neste problema, imagina-se que um vendedor precise visitar um certo nmero de
cidades e ento voltar para casa. A tarefa do algoritmo determinar a seqncia tima de cidades
a percorrer, de forma que a distncia percorrida seja mnima. Observe na figura abaixo que
alguns caminhos so melhores que outros, e determinar o menor caminho um problema muito
difcil. A funo objetivo a minimizar no PCV clssico a distncia percorrida, mas pode ser
adicionado um peso ao caminho. Assim, possvel que um trecho da estrada que esteja em
boas condies seja favorecido em detrimento de um trecho perigoso ou com asfalto ruim, ou
que setores onde se cobre pedgio sejam evitados.
11
Vrios
problemas
reais
e
importantes podem ser interpretados como
um PCV: minimizao do tempo que um
rob industrial gasta para soldar a carcaa
de um automvel; minimizao do custo
(em tempo ou combustvel) da rota da
distribuio diria de um jornal;
minimizao do tempo de abastecimento de
vrias bases militares envolvidas numa
guerra, entre muitos outros. Tamanha a
importncia deste problema, a Companhia
Proctor & Gamble fez um concurso em
1962 para determinar a menor rota que
passasse por 33 cidades dos Estados
Unidos. Houve empate entre muitos
candidatos, que puderam encontrar a
soluo tima.
O problema do caixeiro um clssico exemplo de problema de otimizao combinatria.
A primeira coisa que podemos pensar para resolver esse tipo de problema reduzi-lo a um
problema de enumerao: achamos todas as rotas possveis e, usando um computador,
calculamos o comprimento de cada uma delas e ento vemos qual a menor. ( claro que se
acharmos todas as rotas estaremos contando-as, da podermos dizer que estamos reduzindo o
problema de otimizao a um de enumerao ).
Para acharmos o nmero R(n) de rotas para o caso de n cidades, basta fazer um raciocnio
combinatrio simples e clssico. Por exemplo, no caso de n = 4 cidades, a primeira e ltima
posio so fixas, de modo que elas no afetam o clculo; na segunda posio podemos colocar
12
qualquer uma das 3 cidades restantes, e uma vez escolhida uma delas, podemos colocar qualquer
uma das 2 restantes na terceira posio; na quarta posio no teramos nenhuma escolha, pois
sobrou apenas uma cidade; consequentemente, o nmero de rotas 3 x 2 x 1 = 6. De modo
semelhante, para o caso de n cidades, como a primeira fixa, o nmero total de escolhas que
podemos fazer (n-1) x (n-2) x ... x 3 x 2 x 1. De modo que, usando a notao de fatorial, R(n)
= (n-1)!. Nossa estratgia consiste ento em: gerar cada uma dessas R(n) rotas, calcular o
comprimento total das viagens de cada rota e ver qual delas tem o menor comprimento total.
Trabalho fcil para o computador, diria algum. Bem, talvez no. Vejamos o porqu.
Suponha que esteja disponvel um computador muito rpido, capaz de fazer 1 bilho de
adies por segundo (1 Gflops) . Isso parece uma velocidade imensa, capaz de tudo. No caso de
20 cidades, o computador precisa apenas de 19 adies para dizer qual o comprimento de uma
rota, sendo capaz ento de calcular 109 / 19 = 53 milhes de rotas por segundo. Contudo, essa
imensa velocidade um nada frente imensido do nmero 19! de rotas que precisar examinar.
Acredite se puder, o valor de 19! 121 645 100 408 832 000 ( ou , aproximadamente, 1,2 1017
em notao cientfica ). Consequentemente, ele precisar de 1,2 1017 / ( 53 milhes ) = 2,3 109
segundos para completar sua tarefa, o que eqivale a cerca de 73 anos.
A grande dificuldade dos problemas combinatoriais que a quantidade de possveis
solues cresce com uma velocidade fatorial, e rapidamente o computador torna-se incapaz de
enumerar todas as possveis solues do problema. Na tabela abaixo, estes clculos foram
executados para alguns outros tamanhos de problema.
nmero
de cidades
Capacidade
[rotas/s]
rotas a avaliar
[rotas]
tempo
computacional
5
10
15
20
25
2,50 108
1,11 108
7,14 107
5,26 107
4,17 107
2,40 101
3,63 105
8,72 1010
1,22 1017
6,20 1023
Insignificante
~ 0,003 s
~ 3,3 s
73 anos
470 milhes de anos
109/(n-1)
(n-1)!
(n-1)! / [109/(n-1)]
13
nmero
de cidades
Capacidade
[rotas/s]
rotas a avaliar , n3
[rotas]
tempo
computacional
5
10
15
20
25
2,50 108
1,11 108
7,14 107
5,26 107
4,17 107
1,25 102
1,00 103
3,38 103
8,00 103
1,56 104
5,00 10-7 s
9,00 10-6 s
4,73 10-5 s
1,52 10-4 s
3,75 10-4 s
109/(n-1)
n3
n3 / [109/(n-1)]
Ento o mtodo reducionista no prtico (a no ser para poucas cidades), mas ser que
no pode-se inventar algum mtodo prtico (por exemplo, envolvendo esforo polinomial na
varivel n) para resolver o problema do caixeiro? Apesar de inmeros esforos, ainda no foi
encontrado este mtodo. Na verdade, a existncia ou no de um mtodo polinomial para resolver
o problema do caixeiro viajante um dos grandes problemas em aberto da Matemtica na
medida em que S. A. COOK (1971) e R. M. KARP (1972) mostraram que uma grande
quantidade de problemas importantes podem ser reduzidos, em tempo polinomial, ao problema
do caixeiro.
Consequentemente: se descobrirmos como resolver o problema do caixeiro em tempo
polinomial ficaremos sendo capazes de resolver, tambm em tempo polinomial, uma grande
quantidade de outros problemas matemticos importantes; por outro lado, se um dia algum
provar que impossvel resolver o problema do caixeiro em tempo polinomial no nmero de
cidades, tambm se ter estabelecido que uma grande quantidade de problemas importantes no
tem soluo prtica.
No se conhece um algoritmo polinomial para encontrar a soluo tima de um PCV,
mas possvel construir um algoritmo polinomial para testar se um conjunto de solues
propostas a tentativas so solues do problema. E o PCV representante de uma classe
enorme de problemas, que podem ser reduzidos a ele. Costuma-se resumir essas propriedades do
problema do caixeiro dizendo que ele pertence categoria dos problemas no-determinsticos
polinomiais completos, ou NP - completos.
Para problemas de otimizao combinatria, no h algoritmos que levem soluo
tima em um tempo vivel. Assim, usam-se sempre mtodos heursticos determinsticos ou
aleatrios - para chegar a solues que se possam por em prtica, ainda que no sejam timas
(ou no tenhamos provas de que o so). O algoritmo que se utiliza para a obteno de solues
aproximadas tem como finalidade que as solues sejam encontradas num tempo razovel para
os fins prticos a que se destina, e que a sua qualidade seja o melhor possvel tendo em conta as
limitaes de tempo.
14
O problema do caixeiro viajante serve atualmente de problema padro (benchmark) para
testar algoritmos de otimizao combinatria.
voltar para INTRODUO
1.5.
15
16
d) Ant Colony(AC)
As tcnicas de colnia de formigas ( DORIGO, MANIEZZO e COLORNI, 1996)
baseiam-se no comportamento das formigas que apresentam a formidvel capacidade de,
malgrado serem insetos praticamente cegos, conseguirem estabelecer o menor caminho entre o
formigueiro e a fonte de alimento e retornar da mesma forma. Etologistas ( segundo o Houaiss
2001- aquele que se dedica ao estudo do comportamento social e individual de animais!)
verificaram que atravs de uma substncia qumica chamada feromnio que as formigas trocam
informaes relativas aos caminhos. Uma formiga em movimento secreta uma certa quantidade
de feromnio no solo, criando assim uma trilha desta substncia biologicamente muito ativa.
Enquanto uma formiga isolada se move de uma forma absolutamente aleatria, uma formiga
encontrando uma trilha j percorrida por outra(s) formiga(s) detecta seu rastro e decide com alta
probabilidade seguir o mesmo caminho, reforando desta forma a trilha escolhida com seu
prprio feromnio. Este comportamento coletivo cooperativo classificado como autocataltico,
pois quanto maior o nmero de formigas percorrendo um caminho mais atrativo torna-se o
mesmo. Este processo ento caracterizado por uma retroalimentao ( feedback) positiva, uma
vez que a probabilidade de uma formiga escolher um determinado caminho tanto maior quanto
maior for o nmero de formigas que j o tenha percorrido.
A tabela seguinte mostra a popularizao destes mtodos junto comunidade cientfica.
V-se, pelo nmero de artigos publicados em peridicos indexados internacionais, que os trs
primeiros so mais tradicionais. Os recentes PSO e AC ainda esto sendo mais discutidos em
conferncias e congressos.
SA
Tabu
GA
AC
PSO
at
1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002
1986
0
12
11
25
17
19
26
36
76
96
93
95
83
88
84
83
2
0
0
0
0
0
1
0
4
13
27
33
49
36
22
26
33
1
0
0
0
0
2
7
26
22 145 206 278 269 274 296 363 259
3
0
0
0
0
0
0
0
0
0
0
0
0
2
5
4
3
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
2
2
total
846
245
2150
15
4
1.6.
Mtodos Hbridos
17
O tipo de mtodo hbrido mais freqentemente citado aquele em que um mtodo
heurstico utilizado para gerar um certo nmero de boas solues, candidatas soluo tima.
Ento, um mtodo de busca local utilizado para transformar estas solues em um conjunto de
mnimos locais. Esta populao melhorada realimentada no algoritmo heurstico at que o
critrio de terminao do algoritmo seja satisfeito. Vrias variaes deste mtodo podem ser
criadas, modificando o nmero de candidatas otimizadas e a freqncia desta otimizao.
Tais hbridos, ao invs de apresentarem operadores ou representaes padro, incorporam
o conhecimento do problema a resolver por parte do usurio, de forma a produzir solues
melhores e produzi-las ainda mais rapidamente. Mesmo sendo menos genricos e de
implementao um pouco mais sofisticada, sua utilizao em problemas reais, ou de dimenses
maiores, vm se mostrando bem mais eficiente, mais do que compensando suas possveis
desvantagens.
Um exemplo de aplicao bem sucedida de um algoritmo gentico hbrido foi
apresentado por KRAGELUND (1997). O problema foi definir escalas de trabalho de mdicos
durante as frias de vero obedecendo a vrias restries, classificadas em leves (apenas
preferncias, no deveriam mas poderiam ser violadas) e severas (no poderiam ser violadas de
forma alguma). Para resolver o problema, foi utilizado um hbrido de AG com um mtodo de
busca local. Sua implementao foi feita atravs de um operador que atua em 3 etapas:
localizar todas as restries violadas por este quadro de horrios (candidato a soluo)
selecionar randomicamente uma das restries violadas
usar um mtodo de otimizao local simples, que varia com a restrio, e reduzir sua
violao.
Segundo o autor, mtodo simples de busca local j so suficientes para resultados
satisfatrios serem obtidos. Os algoritmos hbridos mostraram-se superiores aos simples Para
exemplificar, foram compilados alguns resultados apresentados pelo autor na tabela a seguir,
onde os nmeros representam violaes s restries leves e severas, perfazendo 397 e 25
restries respectivamente. O critrio de parada correspondeu a 120 minutos de computao.
melhor
mdia
pior
severas
leves
severas
leves
severas
leves
sucesso
Busca Randmica
106
23
114,6
20,9
121
21
0 / 20
Steepest Descent
20
16
26,7
17,6
32
19
0 / 20
1,4
4,3
1 / 20
0,6
3,5
10 / 20
18
1.7.
Se for possvel empregar um mtodo tipo gradiente para resolver o seu problema, ele sem
dvida ser o algoritmo mais eficiente que h, j que ele incorpora muito mais informao sobre
o espao de busca.
Os mtodo heursticos so freqentemente chamados de methods of last resort, algo a
ser empregado quando tudo o mais no funciona. Isto porque estes mtodos so via de regra
lentos, ou pelo menos muito mais lentos para resolver o mesmo problema que um mtodo que
empregue derivadas. No entanto, muitas vezes estes mtodos so os nicos de que se dispem, e
consequentemente so os melhores!
Com o avano da capacidade dos computadores e das linguagens de programao, o
custo computacional associado a estes mtodos se tornou muito menos assustador, e qualquer PC
consegue resolver um problema razovel em alguns minutos. Por exemplo, considere o seguinte
exemplo apresentado por ZUBEN: resolver o problema do caixeiro viajante para 100 cidades. O
autor empregou um Algoritmo Gentico, e foram testados 400.000 solues dentre as possveis
9,33 10155. O tempo de simulao em um Pentium III 450 MHz foi de 287 segundos, pouco
menos de 5 minutos. As figuras abaixo, reportadas pelo autor, mostram a evoluo da resposta
obtida com o nmero de iteraes do algoritmo.
Melhor indivduo na populao inicial
19
1.8.
Usar um computador que apenas segue instrues deterministicamente prprogramadas para sortear nmeros verdadeiramente aleatrios soa como uma contradio. Por
isto, os nmeros gerados por computador so mais apropriadamente denominados de nmeros
pseudo-aleatrios, ou pseudo-randmicos.
Como destacado anteriormente, as metaheursticas propostas inspiradas na natureza tm
em comum seu carter estocstico. Isto significa que vrias decises do algoritmo se baseiam em
nmeros sorteados aleatoriamente segundo alguma distribuio de probabilidades. H vrias
distribuies contnuas de probabilidade, e a funo que as caracteriza a funo Densidade de
Probabilidade (DP). A probabilidade de que um nmero verdadeiramente aleatrio encontre-se
no intervalo fechado [x1,x2] dada pela integral abaixo:
P( x1 x x 2 ) =
x1
DP( x) dx
x2
DP( x ) = (b a )
0
otherwise
A probabilidade de sortear um nmero dentro de um intervalo [c,d] proporcional ao tamanho
deste intervalo, e igual frao do domnio que este intervalo representa. Em outras palavras,
d 1
P(c x d ) =
cb a
dx =
d c
ba
Algumas aplicaes tambm usam a distribuio normal, segundo a qual um valor x to mais
provvel de ser sorteado quanto mais prximo for da mdia , e desvios para mais ou para
menos so igualmente provveis. A funo densidade de probabilidade possui um forma de sino
e representada pela funo:
1 x 2
DP( x ) =
exp
2
2
1
20
d
P(c x d ) = DP( x ) dx =
c
1
x
erf
2
2
onde erf(x) a funo erro. H vrias tabelas para calcular esta integral, e todos os softwares
matemticos possuem a funo erro embutida. As figuras abaixo mostram a forma das funes
densidade de probabilidade para estas duas distribuies.
21
gerador possui repetitividade, ou seja, gerar a mesma seqncia de nmeros aleatrios
sempre que receber a mesma semente; (iv) seu custo computacional baixo.
Qualquer software matemtico possui um ou mais geradores de nmeros randmicos
embutidos, e uns certamente so melhores que outros. Para programadores em linguagens
Fortran e C, h subrotinas descritas e/ou implementadas nos pacotes como LINPACK e
LAPACK e nos manuais tipo Numerical Recipes. Abaixo encontra-se a implementao em
Fortran de um destes algoritmos.
c#######################################################################
c SUBROUTINE RAN3
c Returns a uniform random deviate between 0.0 and 1.0. Set idum to
c any negative value to initialize or reinitialize the sequence.
c This function is taken from W.H. Press', "Numerical Recipes" p. 199.
c#######################################################################
subroutine ran3(idum,rand)
implicit double precision (a-h,m,o-z)
parameter (mbig=4000000.,mseed=1618033.,mz=0.,fac=1./mbig)
c
c
Dimension ma(55)
Data iff /0/
if (idum.lt.0 .or. iff.eq.0) then
iff=1
mj=mseed-dble(iabs(idum))
mj=dmod(mj,mbig)
ma(55)=mj
mk=1
do i=1,54
ii=mod(21*i,55)
ma(ii)=mk
mk=mj-mk
if(mk.lt.mz) mk=mk+mbig
mj=ma(ii)
enddo
do k=1,4
do i=1,55
ma(i)=ma(i)-ma(1+mod(i+30,55))
if(ma(i).lt.mz) ma(i)=ma(i)+mbig
enddo
enddo
inext=0
inextp=31
idum=1
endif
inext=inext+1
if(inext.eq.56) inext=1
inextp=inextp+1
if(inextp.eq.56) inextp=1
mj=ma(inext)-ma(inextp)
if(mj.lt.mz) mj=mj+mbig
ma(inext)=mj
rand=mj*fac
return
C-----end of subroutine ran3-----------------------------------------end
1. INTRODUO
PARTE 2
1.9.
xi = xi ,min + (xi ,max xi ,min ) rnd (1) para i = 1, L, n , onde rnd(1) um gerador de
nmeros aleatrios no intervalo [0,1] com distribuio uniforme.
Aps o novo valor de x ser gerado a funo f (x ) calculada e confrontada
com o melhor valor encontrado at o momento, caso o novo valor da funo for
menor que o menor valor registrado este ltimo ponto e o novo valor da funo so
armazenados como sendo, respectivamente, o melhor ponto e o melhor valor de f. O
nmero de vezes que tal procedimento repetido escolhido pelo usurio.
A forma algortmica do mtodo apresentada a seguir:
Etapa 0: Especificao de N : nmero de pontos de busca e gerao do ponto inicial:
xi(0 ) = xi ,min + (xi ,max xi ,min ) rnd (1) para i = 1, L , n
calcule
( )
f melhor = f x (0 )
x melhor = x (0 ) ;
Etapa 1: Execute N vezes
xi ,novo = xi ,min + (xi ,max xi ,min ) rnd (1) para i = 1, L, n e f novo = f (x novo ) .
2
Compare f novo com f melhor , caso f novo < f melhor faa x melhor x novo e f melhor f novo
e caso f novo f melhor nada faa! .
Etapa 2: Informe os valores de x melhor e f melhor .
Os resultados finais obtidos [os valores de x melhor e f melhor ] sero diferentes
cada vez que se rodar o programa computacional correspondente, porm tal
procedimento bem robusto e sempre apresentar um resultado. So duas as
principais vantagens do mtodo o algoritmo de fcil implementao e adequado para
funes multimodais. Em muitas situaes este algoritmo pode ser considerado como
de explorao inicial do espao de busca vivel e o ponto final fornecido pode ser
adotado com o ponto inicial para um procedimento de otimizao mais sofisticado ou
rigoroso. A principal desvantagem do algoritmo sua total ausncia de aprendizado,
nada aprendendo com as sucessivas buscas, pois procura de forma absolutamente
estpida novos pontos no incorporando informao alguma das buscas anteriores.
Outra possvel desvantagem do procedimento a possibilidade de haver regies do
espao vivel de busca que no tenham sido adequadamente varridas, havendo a
possibilidade de exatamente em uma dessas regies se encontrar o valor mnimo da
funo. Para reduzir o efeito dessas duas vantagens duas novas formas do mtodo de
busca aleatria so sugeridas, sendo apresentadas a seguir.
(1 + m ) ].
i
i =1
3
A seguir, em torno de cada um dos pontos da malha, executam-se N buscas aleatrias
de acordo com:
xi ,novo = xi(k ) + rnd (1) xi para i = 1, L , n e k = 0, L , mi 1 , onde rnd(1) um
apresentada a seguir:
Etapa 0: Especificao de N : nmero de buscas em torno de cada ponto da malha; m1
e m2 : nmero de pontos da malha uniforme em cada uma das duas direes e gerao
do ponto inicial:
xi(0 ) = xi ,min + (xi ,max xi ,min ) rnd (1) para i = 1 e 2
calcule
( )
f melhor = f x (0 )
x1,min
x
x melhor = x (0 ) , zere o contador fazendo k = 0 , calcule x1 = 1,max
m1
x 2,max x 2,min
x 2 =
m2
de acordo com:
Para i de 1 a m1
Para j de 1 a m2
k k +1
x1(k ) x1,inf erior , x 2(k ) x 2,inf erior
4
Zere novamente o contador fazendo k = 0 ;
Etapa 1: Para i de 1 a [m1 m2 ] faa k k + 1
Execute N vezes
xi ,novo = xi( k ) + rnd (1) xi para i = 1 e 2 e f novo = f (x novo ) .
Compare f novo com f melhor , caso f novo < f melhor faa x melhor x novo e f melhor f novo
e caso f novo f melhor nada faa! .
Etapa 2: Informe os valores de x melhor e f melhor .
, onde rnd(1) um
5
xi ,min se xi < xi ,min
xi = xi se xi ,min xi xi ,max
x
i ,max se xi > xi ,max
A forma algortmica do mtodo apresentada a seguir:
Etapa 0: Especificao de N : nmero de pontos de busca e gerao do ponto inicial:
xi(0 ) = xi ,min + (xi ,max xi ,min ) rnd (1) para i = 1, L , n
calcule
( )
f melhor = f x (0 ) ;
x melhor = x (0 ) e k 3 ou 5 ;
Etapa 1: Execute N vezes
xi ,novo = xi ,melhor + (xi ,max xi ,min ) [2 rnd (1) - 1]
xi ,novo
para i = 1, L , n
Compare f novo com f melhor , caso f novo < f melhor faa x melhor x novo , f melhor f novo
se f melhor < faa k 7 ou 9 e caso f novo f melhor nada faa! .
Etapa 2: Informe os valores de x melhor e f melhor .
1
2. MTODO DE RECOZIMENTO SIMULADO (SIMULATED ANNEALING)
2.1. Analogia Fsica: o recozimento de metais (annealing)
2.2. A Traduo Matemtica: o algoritmo bsico
2.3. A Programao de Recozimento
2.4. Critrio de Aceitao de Solues de Maior Energia
2.5. A Estrutura de Vizinhana
2.6. Aspectos de Implementao do Algoritmo
2.7. Exemplo Ilustrativo
3
maior neste novo ponto, ele no automaticamente descartado. H uma certa probabilidade de ele
ser aceito como o novo ponto atual, e esta probabilidade to maior quanto maior for o parmetro
temperatura ou quanto menor for a diferena de energia entre os dois pontos.
Queremos reduzir o valor da energia, mas ainda assim aceitamos como nova soluo um
ponto que seja pior que o anterior? O motivo para esta aparente contradio simples: para que se
v de um mnimo local a um mnimo global da estrutura acessando apenas pontos vizinhos,
necessrio que, pelo menos em alguns pontos ao longo desta trajetria, a energia do sistema
aumente. Em outras palavras, a nica maneira de ir de um mnimo local para o mnimo global (ou
para outro mnimo local) aumentando a energia do sistema. A Figura 2 ilustra este fato.
Figura 2 Para ir de um mnimo local (em x=-2) para o mnimo global (em x=9)
necessrio passar por regies de mximo (em torno de x=4).
4
definir temperatura inicial T
arbitrar ponto inicial x
calcular energia E=f(x)
nT=0, nX=0
nX > nXmax ?
nX=nX+1
x x novo
E Enovo
nT > nTmax ?
FIM
<0?
rand<P ?
5
for muito grande, praticamente qualquer transio aceita, e o algoritmo se comportar como um
algoritmo de busca aleatria simples.
Pode ser demonstrado que, se a temperatura for reduzida de forma lenta o suficiente (o
inverso do logaritmo do tempo) a probabilidade de o mtodo levar ao mnimo global em T=0 tende
a um. Este esquema de resfriamento to lento torna a minimizao de qualquer funo invivel, e o
interesse nesta prova de convergncia mais cientfico que prtico.
Qualquer funo montona decrescente pode ser usada como funo de resfriamento. Uma
escolha muito usual a reduo linear da temperatura, fazendo T k+1 = T k. O parmetro varia
tipicamente entre 0,7 e 0,95. Funes exponenciais de resfriamento so tambm utilizadas na
literatura da rea.
Como definir os parmetros do algoritmo? Como uma regra geral, o nmero de temperaturas
empregadas (n1) deve ser pequeno algo entre 10 e 20 costuma ser suficiente. J o nmero de
iteraes com a mesma temperatura (n2) deve ser um pouco maior, para que se d tempo suficiente
ao algoritmo para buscar o espao de solues com aquela temperatura. Se este nmero for grande
demais, no s o esforo computacional ser desnecessariamente alto com o algoritmo poder ficar
vagando pelo espao, sem se concentrar em uma regio mais promissora. Algo entre 20 e 100
iteraes so empregadas, a depender da complexidade do espao de solues e dos recursos
computacionais disponveis.
Apenas em uma coisa todos os trabalhos da rea concordam: experimentao fundamental
para que se definam os parmetros do mtodo.
voltar para RECOZIMENTO SIMULADO
Uma outra sugesto freqente na literatura consiste em executar vrias vezes o algoritmo
com o mesmo grupo de parmetros, partindo de diversas condies iniciais, seqencialmente ou em
paralelo. Assim, um possvel erro na seleo do chute inicial, do gerador de nmeros aleatrios ou
da programao de resfriamento tem seu efeito suavizado. O preo a pagar o drstico aumento no
custo computacional.
1
10000
( x + 10 ) ( x + 6 ) ( x + 5 ) ( x + 1 ) ( x 7 ) ( x 10 )
Observe que existem mnimos locais em x = -8,834, x = -2,546 e x = 8,817, sendo este
ltimo o mnimo global. A funo apresenta mximos locais em x= -5,518 e x = 3,914. Um mtodo
9
tipo gradiente no convergiria para o mnimo global desejado para qualquer condio inicial:
Figura 10 Possveis resultados de otimizao empregando Recozimento Simulado: (a) =0,75; (b) =0,80.
10
O resfriamento lento demais, mantidos todos os demais parmetros, fez com que o algoritmo
ficasse sempre com a temperatura muito alta. Com isto, foi feita pouca explorao local, e o
algoritmo passou a maior parte do tempo se comportando como um algoritmo de busca aleatria
exaustiva. Encontrar o mnimo questo de sorte: o mtodo pode ou no passar por perto do
mnimo local, como se observa nas Figuras 11a e 11b.
3. ALGORITMOS GENTICOS
PARTE 1
3.1 Analogia Fsica: a evoluo das espcies
3.2 A Traduo Matemtica: o algoritmo bsico
3.3 Codificao dos Indivduos
3.4 Avaliao da Aptido de um Indivduo
3.5 Operador Cruzamento
3.6 Operador Mutao
3. ALGORITMOS GENTICOS
3.1. Analogia Fsica: a evoluo das espcies
At meados do sculo 19, os naturalistas acreditavam que cada espcie havia sido criada separadamente por um ser supremo ou atravs de gerao espontnea. O trabalho do naturalista Carolus Linnaeus sobre a classificao biolgica de organismos despertou o interesse pela similaridade
entre certas espcies, levando a acreditar na existncia de uma certa relao entre elas. Outros trabalhos influenciaram os naturalistas em direo teoria da seleo natural, tais como os de Jean
Baptiste Lamark, que sugeriu uma teoria evolucionria no "uso e desuso" de rgos; e de Thomas
Robert Malthus, que props que fatores ambientais tais como doenas e carncia de alimentos, limitavam o crescimento de uma populao.
Depois de mais de 20 anos de observaes e experimentos, Charles Darwin apresentou em
1858 sua teoria de evoluo atravs de seleo natural, simultaneamente com outro naturalista ingls Alfred Russel Wallace. No ano seguinte, Darwin publica o seu On the Origin of Species by
Means of Natural Selection com a sua teoria completa, sustentada por muitas evidncias colhidas
durante suas viagens a bordo do Beagle.
Este trabalho influenciou muito o futuro no apenas da Biologia, Botnica e Zoologia, mas
tambm teve grande influncia sobre o pensamento religioso, filosfico, poltico e econmico da
poca. A teoria da evoluo e a computao nasceram praticamente na mesma poca: Charles Babbage, um dos fundadores da computao moderna e amigo pessoal de Darwin desenvolveu sua
mquina analtica em 1833. Ambos provavelmente estariam surpresos e orgulhosos com a ligao
entre estas duas reas.
Por volta de 1900, o trabalho de Gregor Mendel, desenvolvido em 1865, sobre os princpios
bsicos de herana gentica, foi redescoberto pelos cientistas e teve grande influncia sobre os futuros trabalhos relacionados evoluo. A moderna teoria da evoluo combina a gentica e as idias
de Darwin e Wallace sobre a seleo natural, criando o princpio bsico de Gentica Populacional: a
variabilidade entre indivduos em uma populao de organismos que se reproduzem sexualmente
produzida pela mutao e pela recombinao gentica. Este princpio foi desenvolvido durante os
anos 30 e 40, por bilogos e matemticos de importantes centros de pesquisa.
Nos anos 50 e 60, muitos bilogos comearam a desenvolver simulaes computacionais de
sistemas genticos. Entretanto, foi John Holland quem comeou, seriamente, a desenvolver as primeiras pesquisas no tema. A idia inicial de Holland foi tentar imitar algumas etapas do processo de
evoluo natural das espcies incorporando-as a um algoritmo computacional. Holland foi gradualmente refinando suas idias e em 1975 publicou o seu livro Adaptation in Natural and Artificial
Systems, hoje considerado a Bblia de Algoritmos Genticos. Desde ento, estes algoritmos vm
sendo aplicados com sucesso nos mais diversos problemas de otimizao e aprendizado de mquina. (http://www.iagenetico.hpg.ig.com.br/introd.html )
voltar para ALGORITMOS GENTICOS
4
uma resposta suficientemente boa para o problema ou ter sido executado um certo nmero de iteraes do algoritmo (geraes).
Assim como a natureza caminha no sentido de maximizar a aptido dos indivduos, os algoritmos genticos caminham no sentido de otimizar o valor da funo objetivo. Estes algoritmos,
apesar de serem computacionalmente muito simples, so bastante poderosos. No h provas matemticas rigorosas da convergncia do algoritmo, mas as aplicaes do algoritmo vm crescendo nos
ltimos anos, principalmente devido s vantagens que este apresenta quando comparado a outros
mtodos de otimizao. Podem-se destacar as seguintes:
i) O algoritmo no requer o clculo de derivadas da funo objetivo;
ii) Descontinuidades na funo objetivo no afetam o desempenho do algoritmo;
iii) A presena de mnimos locais no reduz a eficincia do algoritmo;
iv) O algoritmo se aplica a problemas em que a funo objetivo no pode ser representada por uma
funo matemtica.
Nas prximas sees, cada etapa dos Algoritmos Genticos ser detalhada.
voltar para ALGORITMOS GENTICOS
5
sitadas. Por exemplo, usando a associao mostrada na tabela abaixo, podemos codificar as rotas
mostradas nos esquemas em seguida como seqncias de 8 dgitos.
CIDADE
CDIGO
Rio de Janeiro
00
So Paulo
01
Belo Horizonte
10
Vitria
11
Obviamente no existe sentido em codificar um problema do caixeiro viajante com 4 cidades, pois s h trs possveis rotas, mostradas abaixo. Mas, para o problema com 15 cidades, j h a
necessidade de um mtodo de otimizao para auxiliar na tarefa de encontrar a melhor rota. Neste
problema, so necessrios 4 dgitos para codificar as cidades, e cada rota ser identificada por uma
seqncia de 15*4=60 dgitos.
codificao 01101100
codificao 01100011
codificao 01101100
Se uma varivel real estiver sendo codificada, necessrio primeiro discretizar o domnio.
Apenas como um exemplo imagine que uma das variveis a otimizar em um problema seja uma
frao molar. Esta varivel encontra-se entre 0 e 1, e a depender da preciso requerida para represent-la, um nmero diferente de dgitos necessrio. Para represent-la com uma preciso de 0,1 j
haver 11 possveis valores para esta varivel, e sero necessrios 4 dgitos para represent-la. Observe que sero ocupadas (associadas a um valor numrico da varivel) apenas 11 das 16 possveis seqncias binrias formadas com 4 dgitos. Isto significa que 5 seqncias de dgitos no estaro associadas a qualquer valor da varivel x. Indivduos que possuem uma destas codificaes para
representar a varivel x so chamados de esprios.
A codificao binria, apesar de ser a mais tradicional e conferir generalidade aos operadores, no a mais adequada para qualquer tipo de problema. Apenas para ilustrar, veja que h apenas
3 rotas possveis no PCV com 4 cidades, mas possvel codificar 28 = 256 rotas com 8 dgitos!
6
Outras formas de codificao adaptadas a cada tipo de problema sero apresentadas na prxima
aula e durante os exemplos.
voltar para ALGORITMOS GENTICOS
1 0 1 0 0 1 0 1 1 1 0 1 0 0 1 0 1 0 1 1 0 1 0 1 1 0 1 0 1 1 0 0
P2
1 0 1 1 1 0 1 0 1 0 1 0 1 1 1 0 1 1 0 1 0 1 1 0 0 1 0 1 1 0 1 0
7
No operador mais clssico, chamado de operador cruzamento simples, inicialmente seleciona-se de forma aleatria uma posio, onde se efetua um corte entre dois genes adjacentes em
cada cromossomo pai. No nosso exemplo, o corte foi feito entre o 12o e o 13o bit. possvel gerar
at dois filhos (F1 e F2) pela concatenao dos cromossomos dos pais, mas no incomum que
apenas um destes filhos seja introduzido na nova populao. O nmero de filhos por cruzamento (1
ou 2) uma parmetro a ser definido pelo usurio.
P1
1 0 1 0 0 1 0 1 1 1 0 1
0 0 1 0 1 0 1 1 0 1 0 1 1 0 1 0 1 1 0 0
P2
1 0 1 1 1 0 1 0 1 0 1 0
1 1 1 0 1 1 0 1 0 1 1 0 0 1 0 1 1 0 1 0
F1
1 0 1 1 1 0 1 0 1 0 1 0 0 0 1 0 1 0 1 1 0 1 0 1 1 0 1 0 1 1 0 0
F2
1 0 1 0 0 1 0 1 1 1 0 1 1 1 1 0 1 1 0 1 0 1 1 0 0 1 0 1 1 0 1 0
H um nmero infinito de variaes deste algoritmo bsico. Talvez a mais simples seja o
cruzamento simples em mltiplos pontos, onde no um mais vrios pontos de corte so determinados aleatoriamente. Abaixo est representado o cruzamento com 2 pontos de corte (7o / 8o bit e o
24o / 25o bit).
P1
1 0 1 0 0 1 0
1 1 1 0 1 0 0 1 0 1 0 1 1 0 1 0 1
1 0 1 0 1 1 0 0
P2
1 0 1 1 1 0 1
0 1 0 1 0 1 1 1 0 1 1 0 1 0 1 1 0
0 1 0 1 1 0 1 0
F1
1 0 1 1 1 0 1 1 1 1 0 1 0 0 1 0 1 0 1 1 0 1 0 1 0 1 0 1 1 0 1 0
F2
1 0 1 0 0 1 0 0 1 0 1 0 1 1 1 0 1 1 0 1 0 1 1 0 1 0 1 0 1 1 0 0
1 0 1 0 0 1 0 1 1 1 0 1 0 0 1 0 1 0 1 1 0 1 0 1 1 0 1 0 1 1 0 0
P2
1 0 1 1 1 0 1 0 1 0 1 0 1 1 1 0 1 1 0 1 0 1 1 0 0 1 0 1 1 0 1 0
F1
1 0 1 0 0 0 0 1 1 1 0 0 1 1 1 0 1 0 0 1 0 1 0 1 1 0 1 0 1 1 0 0
F2
1 0 1 1 1 1 1 0 1 0 1 1 0 0 1 0 1 1 1 1 0 1 1 0 0 1 0 1 1 0 1 0
8
No exemplo acima, um parmetro do algoritmo seria 25% de substituio de genes no cruzamento. Para os dois pais selecionados, foram aleatoriamente sorteadas as posies de troca de
material gentico como 2, 3, 6, 12, 13, 14, 19 e 29. Observe que h 50% de chance de a troca de um
gene no modificar o indivduo (como por exemplo para os genes 2, 3 e 29).
Em uma populao real, nem todos os casais tm filhos ao mesmo tempo, e h a coexistncia de indivduos mais novos e mais velhos, possivelmente trocando material gentico. Da mesma forma, nos Algoritmos Genticos, nem todos os indivduos passam pelo operador cruzamento
em todas as iteraes, e muitas vezes os indivduos (especialmente os bons) so mantidos na populao por vrias geraes.
O procedimento implementado em um Algoritmo Gentico padro detalhado a seguir. Se
h Nind indivduos na populao, e deseja-se obter 1 filho por cruzamento, so selecionados por um
sorteio especial Nind pares de indivduos. Este sorteio favorece os indivduos mais aptos, mas no
exclui a possibilidade de os menos aptos serem sorteados. Existe uma certa probabilidade p de o
operador cruzamento ser aplicado, tipicamente da ordem de 70%. Para cada um dos pares formado,
sorteado um nmero aleatrio r uniformemente distribudo no intervalo [0,1]. Se rp, ento o operador cruzamento aplicado a este casal, gerando um indivduo na nova populao. Se r>p ento
no haver um filho, e um dos pais dever ser introduzido na nova populao. Aps a avaliao dos
Nind casais, Nind indivduos (novos ou antigos) tero sido introduzidos na nova gerao de indivduos.
voltar para ALGORITMOS GENTICOS
3. ALGORITMOS GENTICOS
PARTE 2
3.7
3.8
Seleo da Codificao
3.9
3. ALGORITMOS GENTICOS
3.7.
aptido
probabilidade de
seleo
faixa
favorvel
3.80
19.00%
0 0,19
7.80
39.00%
0,19 0,58
1.60
8.00%
0,58 0,66
4.40
22.00%
0,66 0,88
2.40
12.00%
0,88 1,00
20.00
100.00%
Para exemplificar o procedimento, foram sorteados 10 indivduos com o auxlio de um gerador de nmeros randmicos uniforme. Os nmeros gerados esto apresentados na tabela abaixo, e
observa-se que o procedimento de roleta vai gerar distribuies bastante prximas s de probabilidades de seo dado que o nmero de indivduos sorteados seja suficientemente grande e seja empregado um gerador de nmeros randmicos confivel.
3
indivduo
associado
2
4
2
1
3
2
1
5
2
4
0.45
frao sorteada
0.4
probabilidade de seleo
0.35
percentagem
nmero
gerado
.567
.736
.300
.107
.660
.231
.138
1.00
.366
.701
0.3
0.25
0.2
0.15
0.1
0.05
0
1
3
indivduo
J no procedimento de seleo por torneio, sorteiam-se dois indivduos ao acaso, comparam-se suas aptides e o mais apto destes dois selecionado. Este procedimento repetido para
cada indivduo a ser selecionado. No necessrio calcular a probabilidade de seleo ou uma faixa
favorvel, e como conseqncia este procedimento muito mais simples e rpido.
4
Taxa de Mutao. Uma baixa taxa de mutao previne que uma dada posio fique estagnada em um valor, alm de possibilitar que se chegue em qualquer ponto do espao de busca. Com
uma taxa muito alta a busca se torna essencialmente aleatria. Tipicamente, a probabilidade de mutao de cerca de 5%.
Outros parmetros. H outros parmetros a definir no cdigo, mas o seu impacto menor
que os destacados anteriormente. Como um exemplo, podemos citar o nmero de filhos por cruzamento e a porcentagem de genes trocados no cruzamento uniforme.
voltar para ALGORITMOS GENTICOS
3.8.
Seleo da Codificao
Os algoritmos genticos na sua forma original utilizam a representao binria para codificar
os indivduos. A codificao binria certamente confere generalidade ao algoritmo. Uma vez convertidos para o domnio binrio, o problema do caixeiro viajante e um problema de otimizao paramtrica so virtualmente idnticos. Esta representao, no entanto, no a mais eficiente para
diversos problemas de otimizao, por vrios motivos.
z Podem ser criados indivduos no viveis ou esprios.
Em muitas codificaes, nem todos os indivduos so viveis. Este conceito fica melhor esclarecido atravs de um exemplo. Vamos representar atravs de codificao binria os 5 estados
da varivel s que representa a cor de um determinado produto. Observe que no h cor associada s codificaes 101, 110 e 111.
s
000
001
010
011
100
101
110
111
cor
preto
rosa
verde
azul
laranja
H 3/8 de chance que este indivduos esprios sejam introduzidos na populao inicial, aleatoriamente determinada. Mesmo se forem eliminados os indivduos esprios nesta instncia,
ainda assim estes indivduos reapareceriam, durante a execuo do algoritmo, como produto
da aplicao dos operadores genticos aos indivduos vlidos.
Imagine que deva ser aplicado codificao da cor azul (011) o operador mutao, definido
como a alterao de um bit aleatrio do indivduo. Se o segundo ou terceiro bits forem alterados, sero obtidas as cores rosa e verde, respectivamente. No entanto, se o primeiro bit for alterado, ser obtida um valor da varivel ao qual no se associa qualquer cor.
5
H basicamente trs alternativas para contornar este problema: (i) adaptam-se os operadores
genticos para que sempre seja criado um indivduo vivel a partir de dois indivduos viveis;
(ii) penaliza-se o indivduo no vivel no momento de calcular sua aptido; (iii) altera-se o
tipo de codificao (por exemplo, representando as 5 cores por nmeros de 1 a 5).
z A mudana de um bit pode levar a grandes modificaes no indivduo.
Quando se usa a codificao binria para representar nmeros, reais ou naturais, no existe a
garantia de que nmeros com codificao parecida sejam parecidos. Por exemplo, observe a
codificao de alguns nmeros naturais entre 0 e 31. Apenas mudando um dgito (um bit) do
indivduo codificado, podemos obter desde um nmero parecido at um nmero significativamente diferente. Esta aparente falta de coerncia atrapalha a convergncia do algoritmo
gentico.
11111
11110
31
30
11111
11101
31
29
11111
11011
31
27
11111
10111
31
23
11111
01111
31
15
Para contornar este problema, foi proposta por Gray uma forma de codificao binria onde
nmeros vizinhos na escala adotada (real, natural) possuem codificao bastante prxima. O
preo a pagar a maior complexidade no momento de codificao e decodificao do indivduo. Esta codificao pouco usada atualmente.
z A discretizao do espao de busca real aumenta a dimenso do problema.
Para representar estas variveis (reais) como nmeros binrios, primeiro necessrio discretizar o espao de busca real e ento criar uma relao entre estes valores e nmeros binrios.
Queremos otimizar a temperatura de operao e a concentrao de reagente na alimentao de
um processo. A temperatura pode variar entre 50 e 150oC, e a concentrao de reagente na
corrente de alimentao, entre 15 e 30 g/l. A varivel a otimizar x = [ T C ]T um vetor de
2 posies. O tamanho da varivel codificada, no entanto ser funo do nmero de divises
adotado. Se forem usadas 3 divises do intervalo, haver 4 valores possveis para cada varivel, sendo necessrios 2 bits para representar cada uma delas. Cada indivduo seria representado por um vetor de 4 posies.
T (oC)
50
66,6
83,3
100
codificao
00
01
10
11
C
15,0
20,0
25,0
30,0
codificao
00
01
10
11
Provavelmente a preciso requerida seria maior do que esta. O tamanho do vetor codificado
aumenta conforma a preciso aumenta, conforme detalhado na tabela abaixo.
6
nmero de intervalos:
tamanho do intervalo:
em T
em C
bits necessrios
tamanho do indivduo
15
63
255
1023
4095
100
15
1
2
33,3
5
2
4
14,3
2,1
3
6
6,7
1,0
4
8
1,6
0,2
6
12
0,4
0,06
8
16
0,1
0,02
10
20
0,02
0,004
12
24
Um outro exemplo o Problema do Caixeiro Viajante com N cidades. Empregando codificao binria, so necessrios m dgitos para codificar cada cidade, sendo m o menor nmero inteiro
tal que m > log 2 N . Logo, o vetor binrio que representa cada rota ter tamanho m.N. Alm disto,
vimos que praticamente todos os indivduos gerados pela aplicao dos operadores clssicos do
tamanho sero esprios, ou no vlidos. Os trabalhos reportados na literatura que empregam algoritmos genticos para resolver o PCV empregam o que alguns autores chamaram de codificao
inteira, em que as cidades so numeradas de 1 a N. Cada rota representada por um vetor inteiro de
dimenso N em que os cdigos das cidades so ordenados segundo a ordem de visita s cidades.
Para trabalhar com estas codificaes diferenciadas, precisam ser criados operadores especficos. Estes algoritmos particularizados para o problema de interesse costumas ser muito mais eficientes que um AG genrico, j que atravs da codificao e dos operadores so incorporadas informaes sobre o espao de solues.
voltar para ALGORITMOS GENTICOS
3.9.
Para trabalhar com estas codificaes diferenciadas, precisam ser criados operadores especficos. Estes algoritmos particularizados para o problema de interesse costumam ser muito mais eficientes que um AG genrico, j que atravs da codificao e dos operadores so incorporadas informaes sobre o espao de solues. Cada codificao impe uma forma diferente de adaptao
dos operadores.
Operador Cruzamento
O operador cruzamento deve combinar a informao de dois indivduos e gerar um ou dois
outros. Algumas alternativas de cruzamento quando se utiliza codificao real esto exemplificadas
na figura abaixo.
Podemos seguir as mesmas idias dos operadores clssicos (binrios) e copiar parte da informao de cada pai, empregando um ou mais pontos de corte - respectivamente, (a) e (b) na figura
abaixo. Estes pontos de corte so sorteados aleatoriamente para cada par de solues.
Outra alternativa bastante comum fazer a mdia aritmtica de cada posio dos dois vetores,
tal que F1i = (Ai + Bi)/2. Este operador atua deterministicamente sobre o par de solues aleatoriamente escolhido, e apenas um filho por cruzamento gerado, como se observa no esquema (c).
Podemos tambm fazer uma mdia ponderada dos dois vetores empregando um peso aleatrio
p, de forma que cada posio F1i = (1-p) Ai + p Bi. O segundo filho pode ser gerado pela inverso da
regra de cruzamento, ou seja, F2i = (1-p) Bi + p Ai. Observe que o cruzamento por mdia aritmtica
corresponde ao sorteio ponderado com p=0,5. Na figura abaixo o esquema (d) mostra a aplicao
deste operador com peso p=0,2.
pais
filhos
(a)
F1
(b)
F2
F1
F2
(c)
(d) p =0,2
F1
F1
F2
0,53
0,84
0,53 0,84
0,53 0,84
0,69
0,78 0,59
0,04
0,31
0,04 0,31
0,31 0,04
0,18
0,26 0,09
0,85
0,19
0,19 0,85
0,19 0,85
0,52
0,32 0,72
0,04
0,03
0,03 0,04
0,03 0,04
0,04
0,03 0,04
0,68
0,26
0,26 0,68
0,68 0,26
0,47
0,34 0,60
0,69
0,78
0,78 0,69
0,69 0,78
0,73
0,76 0,71
8
Um problema do caixeiro viajante possui a peculiaridade de que no pode haver repetio
dentro do vetor de inteiros. Se os operadores levarem isto em considerao, sempre geraro indivduos vlidos. Um exemplo de operador cruzamento especfico poderia ser o mostrado abaixo:
x
10
10
10
10
10
eliminar da soluo B as cidades que esto no primeiro pedao de A e formar o filho F1 pela concatenao deste pedao de A com o que sobrou de B,
mantendo a ordem das cidades.
repetir o procedimento com o segundo pedao de A
para gerar o segundo filho F2, se desejado.
Na figura ao lado, foi ilustrado o procedimento para
um PCV com 10 cidades. Foi sorteada a quinta cidade
como ponto de corte.
10
F1
10
F2
10
Operador Mutao
O operador deve introduzir mudanas aleatrias em uma parte especfica da representao
do indivduo. Podem ser mantidas as idias dos operadores clssicos, apenas alterando-se sua implementao. Um possvel operador mutao para codificao real consistiria em sortear uma posio do vetor e alter-la (sortear qualquer ponto no domnio desta varivel ou alter-la em um percentual aleatoriamente determinado). Para o PCV, poderamos simplesmente trocar a ordem de visita a duas cidades, contguas ou no na rota associada quekle indivduo. Estas idias esto aplicadas nos esquemas abaixo.
x
B'
0,84
0,84
0,31
0,31
0,19
0,22
0,03
0,03
0,26
0,26
0,78
0,78
10
B'
10
10
B'
10
10
No Micro Algoritmo Gentico (Micro GA), empregada uma populao muito pequena
(at 10 indivduos) e altas taxas de mutao (at 20%). A reinicializao freqente e o elitismo so
cruciais para a convergncia do algoritmo. Para vrias aplicaes, h uma reduo drstica do tempo computacional.
Outra variante o Algoritmo Gentico Paralelo, onde algumas populaes evoluem em paralelo, como se vivessem em ilhas isoladas. De tempos em tempos, ocorre a migrao de indivduos
de uma ilha para a outra, e ocorre a injeo de material gentico novo nas populaes. O nmero de
indivduos a migrar e a freqncia com que ocorre esta migrao so alguns dos parmetros do
novo operador migrao.
voltar para ALGORITMOS GENTICOS
1
4. MTODO DE ENXAME DE PARTCULAS ( PARTICLE SWARM)
4.1. Analogia Comportamental: todos por um e um por todos
4.2. A Traduo Matemtica: o algoritmo bsico
4.3. A Programao do Algoritmo
4.4. Exemplos Ilustrativos
4. MTODO DE ENXAME DE PARTCULAS
4.1. Analogia Comportamental : todos por um e um por todos
Figura 1 Uma imensa nuvem de pssaros [ red-billed queleas] retornam a seu viveiro natural
ao pr do sol, Delta do Okavango, Botswana, frica
O mtodo de enxame de partculas pode ser explicado de uma forma simples atravs de uma
analogia de comportamento social apresentada por M. Clerc [ The Swarm & The Queen. Towards a
Deterministic and Adaptive Particle Swarm Optimization de Maurice Clerc Artigo
disponibilizado na Internet na Home Page http://clerc.maurice.free.fr/PSO/]. O autor sugere a
seguinte situao fictcia: Suponha que voc e alguns amigos esto busca de um tesouro
enterrado em uma ilha. Cada membro da expedio tem um rdio-comunicador-receptor, podendo
se comunicar com todos os membros informando-os sobre a situao em que se encontra, bem
como ouvir todos os comunicados trocados entre os membros. Assim, cada explorador sabe a
localizao de toda a equipe e est informado sobre a situao (quo prximo est do encontro do
tesouro) de cada membro. O seu prximo deslocamento ser feito fundamentado em sua prpria
experincia e nos relatos ouvidos em seu rdio. Desta forma, havendo real cooperao e troca de
informaes entre os membros da equipe, o tesouro ser achado em um tempo bem menor do que se
voc fosse escavar sozinho vrios buracos na ilha... .Em suma, o aspecto cooperativo da busca do
tesouro poderia ter como epteto a famosa frase encontrada no final do Captulo 9 do livro Os Trs
Mosqueteiros de Alexandre Dumas todos por um e um por todos, este nosso lema, no ? .
2
Este mesmo comportamento cooperativo e de troca de informaes encontrado entre vrias
espcies animais: em revoadas de pssaros, em cardumes de peixes, em enxames de abelhas, etc.
Cientistas de diferentes reas tentaram modelar estes comportamentos e simul-los, em particular
Reynolds [ Reynolds, C.W. (1987) Flocks, herds and schools : a distributed behavioral model
em Computer Graphics, 21 (4): 25-34] discute a riqueza do movimento de revoadas de pssaros, de
manadas de animais terrestres ou de cardumes de peixes procurando estabelecer regras bsicas do
comportamento individual que justifiquem o comportamento do grupo. O objetivo do trabalho foi o
desenvolvimento da animao, por computao grfica, do movimento de cada membro do grupo,
estando portanto fora do escopo do presente curso. Entretanto, a concluso mais pertinente do artigo
se refere ao fato do movimento simulado da revoada de pssaros ser o resultado de comportamentos
relativamente simples do movimento de cada um dos indivduos (pssaros). Um outro trabalho
pioneiro o de Heppner & Grenander [ Heppner, F & Grenander, U. (1990) A stochastic
nonlinear model for coordinated birds flocks em The Ubiquity of Chaos Editado por S. Krasner
, AAAS Publications, Washington DC] trabalho conjunto entre um bilogo (primeiro autor!) e um
matemtico que busca estabelecer as regras que descrevam a perfeita sincronia do movimento de
um grande nmero de pssaros tanto em suas sbitas e bem orquestradas mudanas de direo,
como no seu espalhamento e posterior reagrupamento.
O primeiro trabalho sobre o algoritmo de otimizao natural denominado ENXAME DE
PARTCULAS( Particle swarm em Ingls) o de Eberhart & Kennedy [ Kennedy, J. & Eberhart,
R. (1995), - Particle Swarm Optimization em Proceedings IEEE International Conference on
Neural Networks (Perth, Austrlia) pginas 1942-1948 , artigo disponibilizado na Internet na Home
Page:
http://www.engr.iupui.edu/~shi/Coference/psopap4.html]
que,
motivados
pelo
comportamento gregrio do movimento de animais ( pssaros, peixes, abelhas, gado, etc.) ,
propuseram um algoritmo de otimizao no determinstico bastante eficiente, robusto e de simples
implementao computacional.
A traduo matemtica do algoritmo de Eberhart & Kennedy apresentado no prximo
item, entendendo-se que o termo partcula se refere a cada um dos indivduos do grupo (termo
equivalente a indivduo no algoritmo gentico) e o termo enxame se refere ao grupo de indivduos.
importante enfatizar que neste algoritmo, de forma distinta do algoritmo gentico, o indivduo (a
partcula) mantido ntegro durante todo o processo, sobrevivendo sem envelhecer at o final do
procedimento, a nica modificao sofrida pelo indivduo sua localizao no espao.
voltar para ENXAME DE PARTCULAS
3
originalmente proposto.
A idia fundamental do algoritmo o estabelecimento, em cada passo ou iterao, do
movimento de cada uma das partculas do grupo composto por n partculas (sendo o valor de n
escolhido pelo usurio!). Este movimento norteado pela lembrana da melhor posio (melhor
valor da funo objetivo) no espao que a partcula j encontrou em seu movimento e no
conhecimento da melhor posio j encontrada por todo o grupo. A utilizao da melhor posio
individual da partcula pode ser classificada como uma espcie de autoconfiana (ou
coloquialmente como o comportamento sou-mais-eu!) e a informao da melhor posio do grupo
pode ser classificada como um comportamento gregrio do indivduo (ou coloquialmente como o
comportamento maria-vai-com-as-outras!). Para assegurar a existncia de uma certa personalidade
em cada indivduo se dota cada indivduo do grupo de um comportamento distinto e aleatrio em
que a ponderao destas duas informaes sorteada ao longo do processo, assumindo assim um
valor diferente para cada uma das partculas e variando este valor ao longo do processo iterativo
(procurando traduzir uma certa mudana humor do indivduo ao longo do tempo). Assim,
considerando o movimento da partcula em um plano ou em um espao bi-dimensional e sua
localizao neste espao caracterizada por suas coordenadas:
Partcula k posio no plano xy no passo ou iterao i:
(x
(i ) (i )
k , yk
) onde k = 1, 2,...,n
(nmero total de partculas no enxame) e i = 1, 2,...,m (nmero total de passos); melhor posio da
partcula k : x kmelhor , y kmelhor e melhor posio j encontrada pelo enxame (todas as partculas)
x global , y global .
A Fora Motriz que movimentar cada uma das partculas ser proporcional distncia
entre a posio atual da partcula e o ponto resultante da mdia ponderada entre a melhor posio
individual da partcula e a melhor posio do enxame, isto :
X (i ) x ( melhor ) + (1 ) x
global
()
k
X ki = (ki ) =
onde e so dois nmeros aleatrios [0,1].
Y y ( melhor ) + (1 ) y
global
k
k
y kmelhor
MELHOR INDIVIDUAL
y melhor
MELHOR GLOBAL
x kmelhor
x melhor
4
pontos X k(i ) .
Considerando o movimento de cada partcula anlogo ao do movimento do sistema
mecnico carrinho+mola+amortecedor resulta no balano de foras (em forma adimensional!):
Na direo x:
e na direo y:
d 2 x k (t )
dt 2
= 2 k
d 2 y k (t )
dt
dx k (t )
K x k (t ) X k(i )
dt
= 2 k
dy k (t )
K y k (t ) Yk(i )
dt
d k (t )
(i )
dt = 2 k k (t ) K x k (t ) X k
dx k (t )
= k (t )
dt
d (t )
k = 2 k k (t ) K y k (t ) Y (i )
k
dt
dy k (t )
= k (t )
dt
Resolvendo numericamente estas equaes pelo mtodo de Euler explcito, resulta no final
do intervalo:
(i +1) = (i ) 2 t (i ) K t x (i ) X (i )
k
k
k
k
k
k
(i )
(
)
(
+
1
i
i)
xk
= x k + t k
(i +1)
(
i)
= k 2 k t (ki ) K t y k(i ) Yk(i )
k
V (i +1) = V (i ) 2 t V (i ) K t 2 x (i ) X (i )
k
x, k
x, k
k
k
x, k
(
)
i
(
)
(
)
+
1
i
i
xk
= x k + V x, k
(i )
(i )
(i )
(i )
(i )
2
V y , k = V y , k 2 k t V y, k K t y k Yk
[x
(i )
global x k
[y
(i )
global y k
V (i +1) = (i ) V (i ) + c x melhor x (i ) + c
1
2
x, k
k
k
x, k
(
)
i
(
)
(
)
+
1
+
1
i
i
= xk + V x, k
xk
(i +1)
(i ) (i )
melhor
y k(i ) + c 2
V y , k = V y , k + c1 y k
para i = 0 , 1, ..., m-1; sugere-se adotar a ponderao (i) decrescente com i de forma linear segundo
i
a expresso: (i ) = inicial + final inicial
com final < inicial; as constantes c1 e c2
m 1
so valores reais positivos escolhidos pelo usurio e os parmetros , , e so valores
randmicos ou aleatrios sorteados em cada passo do processo iterativo. As posies e velocidades
iniciais das partculas podem ser definidas pelo usurio ou ento geradas aleatoriamente pelo
computador.
Uma forma alternativa do procedimento recursivo pode tambm ser obtida (sendo
referenciada a partir deste instante como algoritmo modificado de enxame de partculas,
abreviadamente PSO-modificado, em contraposio ao de Eberhart & Kennedy denominado de
PSO-clssico) atravs da soluo analtica, em cada intervalo de tempo, do sistema original de
EDOs:
d 2 x k (t )
dx (t )
+ 2 k k + K
dt 2
dt
2
d y k (t ) + 2 dy k (t ) + K
k
dt 2
dt
[x (t ) X ] = 0
[y (t ) Y ] = 0
k
(i )
k
(i )
k
congelando os valores de X k(i ) e Yk(i ) em seus valores no incio do intervalo, sorteando os valores
de k e k apenas uma vez em ti e resolvendo o sistema com as condies iniciais:
Note que na discretizao das equaes diferenciais o procedimento de integrao da posio o Euler implcito
6
dx (t )
dy k (t )
= (ki ) e
= (ki ) , resulta:
x k (t i ) = x k(i ) ; y k (t i ) = y k(i ) ; k
dt t
dt t
i
[ (
(i +1)
sen ( t )
(i )
(i )
(i )
(i )
(i )
= X k + exp( k t ) x k X k cos( t ) + k x k X k + (ki )
xk
(
)
sen
t
k
k
k k
k
k
k
k
(
sen
t )
i
i
i
i
i
(
)
(
)
(
)
(
)
(
)
(
)
(
)
+
i
i
1
y
= Yk + exp( k t ) y k Yk cos( t ) + k y k Yk + k
(
)
sen
t
(i )
i
i
(
)
(
)
(
(
)
i +1)
i
= exp( k t ) k cos( t ) 2 + k2 y k Yk + k k
k
[(
[(
)(
) ]
[ (
)
)(
]
onde: = K 2k e = K 2k .
Esta forma modificada do algoritmo s necessita (alm da especificao do nmero de
partculas , do nmero de iteraes e dos valores iniciais das posies e velocidades das partculas)
da especificao dos parmetros t > 0 e K [K 1 para assegurar o movimento oscilatrio
amortecido das partculas!]. Este a grande vantagem deste mtodo modificado (no algoritmo
clssico se deve especificar os valores das constantes c1, c2 e de inicial e final) e a maior
complexidade do algoritmo apenas aparente j que o procedimento recursivo anlogo ao do
clssico diferindo apenas no clculo em cada passo dos valores de funes trigonomtricas simples
(seno e cosseno) e da funo exponencial o que no aumenta em nada o custo computacional do
cdigo.
voltar para ENXAME DE PARTCULAS
Nos procedimentos a funo .rnd () gera nmeros aleatrios com distribuio uniforme entre 0(zero) e .
7
para k = 1, ...., n faa rnd (1) ; x k x min + ( x MAX x min ) e x kmelhor x k
rnd (1) ; y k y min + ( y MAX y min ) e y kmelhor y k
V x, k 0 e V y , k 0 (optou-se neste caso para partir com as partculas em
repouso!).
Faa x melhor x1 ; y melhor y1 ; f1( melhor ) f ( x1 , y1 ) e fglobal f1( melhor ) ;
Etapa a) para i = 2,...., n faa f i( melhor ) f ( xi , yi )
se f i( melhor ) > fglobal ento faa x melhor xi ; y melhor yi e
fglobal f i( melhor ) volte para o incio da Etapa a com o prximo i;
se f i( melhor ) fglobal volte para o incio da Etapa a com o prximo i;
i 1
Etapa 1 (Iterao i) P ara i = 1, ...., m faa inicial + final inicial
m 1
Etapa 1-a) Para k = 1,...,n faa: rnd (1) ; rnd (1) ; rnd (1) e rnd (1)
V x, k V x, k + c1 x kmelhor x k + c 2 x global x k
V y , k V y , k + c1 y kmelhor y k + c 2 y global y k
x k x k + V x, k e y k y k + V y , k
Se x k > x MAX faa x k x MAX e V x, k 0
Se x k < x min faa x k x min e V x, k 0
Se y k > y MAX faa y k y MAX e V y , k 0
Se y k < y min faa y k y min e V y , k 0
Calcule f atual f ( x k , y k )
8
Se f atual > f k(melhor ) faa f k( melhor ) f atual , x k( melhor ) x k e y k( melhor ) y k ;
verifique a seguir se f atual > fglobal faa fglobal f atual , x global x k e
y global y k ; caso f atual fglobal volte ao incio Etapa 1-a) com o prximo k se
k < n, caso contrrio [ k n] v para o incio da Etapa 1 com o prximo i se i < m,
caso contrrio [ i m] v para a Etapa 2
Se f atual f k(melhor ) volte ao incio Etapa 1-a) com o prximo k se k < n, caso
contrrio [ k n] v para o incio da Etapa 1 com o prximo i se i < m, caso contrrio
[ i m] v para a Etapa 2
Etapa 2 O processo iterativo terminou os melhores valores de x e y so : x global e y global e
neste ponto o valor da funo : fglobal
FIM
O algoritmo PSO-modificado para a busca do mximo de uma funo f(x,y) pode assim ser
sumarizado pelo pseudo-cdigo abaixo:
Etapa Inicial (Iterao zero): Entre com n (o nmero de partculas do enxame), m (o nmero
de iteraes), especifique os valores de t > 0 e K [K 1] e os valores mnimos e mximos de x e de
y. Gere as condies iniciais segundo o procedimento:
para k = 1, ...., n faa rnd (1) ; x k x min + ( x MAX x min ) e x kmelhor x k
rnd (1) ; y k y min + ( y MAX y min ) e y kmelhor y k
k 0 e k 0 (optou-se neste caso para partir com as partculas em
repouso!).
Faa x melhor x1 ; y melhor y1 ; f1( melhor ) f ( x1 , y1 ) e fglobal f1( melhor ) ;
Etapa a) para i = 2,...., n faa f i( melhor ) f ( xi , yi )
se f i( melhor ) > fglobal ento faa x melhor xi ; y melhor yi e
fglobal f i( melhor ) volte para o incio da Etapa a com o prximo i;
9
se f i( melhor ) fglobal volte para o incio da Etapa a com o prximo i;
Etapa 3 (Iterao i) P ara i = 1, ...., m execute Etapa 1-a)
Etapa 1-a) Para k = 1,...,n faa: rnd (1) ; rnd (1) ; rnd (1) e rnd (1)
Calcule : K 2 ; X x k( melhor ) + (1 ) x global ; A x k X ;
B
A + k
; f1 exp( t ) cos( t ) e f 2 exp( t ) sen( t )
x k X + A f1 + B f 2
k k f1 ( A + B ) f 2
Se x k > x MAX faa x k x MAX e k 0
Se x k < x min faa x k x min e k 0
a seguir calcule : K 2 ; Y y k( melhor ) + (1 ) y global C y k Y ;
D
C + k
; g1 exp( t ) cos( t ) e g 2 exp( t ) sen( t )
y k Y + C g1 + D g 2
k k g1 ( C + D ) g 2
Se y k > y MAX faa y k y MAX e k 0
Se y k < y min faa y k y min e k 0
Calcule f atual f ( x k , y k )
Se f atual > f k(melhor ) faa f k( melhor ) f atual , x k( melhor ) x k e y k( melhor ) y k ;
verifique a seguir se f atual > fglobal faa fglobal f atual , x global x k e
y global y k ; caso f atual fglobal volte ao incio Etapa 1-a) com o prximo k se
10
k < n, caso contrrio [ k n] v para o incio da Etapa 1 com o prximo i se i < m,
caso contrrio [ i m] v para a Etapa 2
Se f atual f k(melhor ) volte ao incio Etapa 1-a) com o prximo k se k < n, caso
contrrio [ k n] v para o incio da Etapa 1 com o prximo i se i < m, caso contrrio
[ i m] v para a Etapa 2
Etapa 4 O processo iterativo terminou os melhores valores de x e y so : x global e y global e
neste ponto o valor da funo : fglobal .
FIM
A seleo dos valores dos parmetros/constantes dos dois algoritmos uma tarefa de
tentativa-e-erro, a recomendao que se d nestes casos e para estes tipos de algoritmos a
execuo de um grande nmero de experimentos numricos. A prtica adquirida atravs da
implementao computacional dos algoritmos e a resoluo de exerccios simples fundamental
para se adquirir alguma sensibilidade sobre os valores destes parmetros/constantes. Mesmo assim
se deve alertar que no h valores mgicos destes parmetros/constantes e sempre desconfie de
artigos cientficos que sugiram de forma categrica valores particulares destes parmetros como os
melhores.
voltar para ENXAME DE PARTCULAS
1
10000
( x + 10 ) ( x + 6 ) ( x + 5 ) ( x + 1 ) ( x 7 ) ( x 10 )
11
Figura 2
Observe que existem mnimos locais em x -8,834, x -2,546 e x 8,817, sendo este
12
8.8
X n+ 1 , i 7.5
12 X n , i
8.6
8.817
7.022
8.825
f otimo
8.4
8.263 8.2
10
15
8.129 8.5
20
10
15
20
m
Globais da Varivel
Uma
animao
desta
soluo
pode
ser
reproduzida
clicando-se
no
programa
Univarivel_PSO_clssico.
Abaixo mostrada a evoluo dos valores timos da funo e da varivel x ao longo do
procedimento evolutivo com a forma modificada do algoritmo tendo sido utilizado os seguintes
conjunto de parmetros:t=1; K = 2 ; xMAX = +12 e xmin = -12.Adotando-se uma populao de
10(dez) partculas, um mximo de 20 (vinte) iteraes e partindo de localizaes iniciais aleatrias
(entre 12 e +12) e do repouso.
7.254
9.246
7.5
12 X
n+ 1 , i
f otimo
9.2
n, i
8.817
9
8.129
8.5
10
15
8.81 8.8
20
10
15
20
Globais da Varivel
Uma
animao
desta
Univarivel_PSO_modificado.
soluo
pode
ser
reproduzida
clicando-se
no
programa
13
Notem que o desempenho das duas formas do algoritmo idntico, no sendo possvel
afirmar qual das duas formas mais eficiente.
O funcionamento do algoritmo de enxame de partculas (PSO para os ntimos) agora
ilustrado com a maximizao de uma funo de duas variveis, a chamada Funo Alpina que
representada pela equao :
f ( x, y ) =
x y sen ( x ) sen( y )
14
7.8856
xi
Valor timo
Otimo
4
2.89336
2
10
15
20
20
animao
desta
soluo
pode
ser
reproduzida
clicando-se
no
programa
Alpina_PSO_Clssico.
Abaixo mostrada a evoluo dos valores timos da funo ao longo do
procedimento evolutivo com a forma modificada do algoritmo tendo sido utilizado os seguintes
conjunto de parmetros: :t=1; K = 2; xMAX= yMAX = +10 e xmin = ymin = 0 .Adotando-se uma
populao de 20(vinte) partculas, um mximo de 20 (vinte) iteraes e partindo de localizaes
iniciais aleatrias [entre (0,0) e (10,10)] e do repouso.
7.8856
xi
Valor timo
Otimo
6
5.6
0
10
15
20
m
animao
desta
soluo
pode
ser
reproduzida
clicando-se
no
programa
Alpina_PSO_Modificado.
importante novamente enfatizar que os melhores valores dos parmetros/constantes das
duas formas do algoritmo so muito dependentes do problema particular que se est resolvendo e
que uma anlise da sensibilidade da resoluo do problema a valores particulares dos
15
parmetros/constantes s pode ser feita aps a execuo de um grande nmero de simulaes. Desta
maneira, recomendamos fortemente que sejam feitos todos os exerccios da lista sobre o assunto e
que dvidas sejam tiradas por E-mail ou durante as sesses do chat-room.
voltar para ENXAME DE PARTCULAS
1
4. MTODO DO FORMIGUEIRO (ANT COLONY OPTIMIZATION ACO)
4.1. Analogia Comportamental: a busca de alimentos em um formigueiro
4.2. A Traduo Matemtica: o algoritmo bsico ( verso discreta)
4.3. A Programao do Algoritmo
4.4. Exemplo Ilustrativo: O Problema do Caixeiro Viajante (PCV)
4. MTODO DO FORMIGUEIRO (ANT COLONY OPTIMIZATION)
4.1. Analogia Comportamental : a busca de alimento em um formigueiro.
um bom e pioneiro trabalho sobre o assunto o artigo de : Bonabeau, E. , Dorigo, M. & Theraulaz, G. Inspiration
for optimization from social insect behaviour em NATURE , vol 406, pginas 39 a 42 de 6 de julho de 2000
2
dois ramos. O ramo maior r vezes maior que o menor. No final do experimento todas as formigas
escolhem o menor caminho se r for suficientemente elevado (no experimento se adotou r=2 ). Isto
ocorre devido ao fato das formigas, quando em movimento, secretarem no solo uma certa
quantidade de feromnio. Este feromnio, por ser uma substncia biologicamente muito ativa,
funciona como chamariz para outras formigas. No experimento da Figura 2, as primeiras formigas a
retornarem ao formigueiro com o alimento so aquelas que percorreram o caminho mais curto duas
vezes (na ida e na volta). Assim, quando novas formigas se encontrarem nas duas bifurcaes do
caminho daro preferncia ao caminho mais curto por ter uma maior concentrao de feromnio.
O mesmo experimento foi refeito, tornando disponvel s formigas o caminho mais curto
apenas aps um determinado tempo. Neste caso, as formigas no escolheram o caminho mais curto
devido ao fato do caminho mais longo j estar marcado com feromnio quando o mais curto
disponibilizado. Entretanto, tal comportamento no seria desejvel em algoritmos de otimizao,
quando importante que o caminho mais curto seja sempre o preferencialmente selecionado mesmo
se disponibilizado aps transcorrido um certo tempo. A simulao deste comportamento poderia ser
efetuada atravs da considerao de uma taxa de evaporao do feromnio, traduzindo assim a
maior dificuldade de manuteno do trao de feromnio em trilhas mais longas. Nos experimentos
com a formiga Linepithaema humile, apesar do decaimento do trao de feromnio estar presente,
ocorre a uma taxa to baixa (ou vida mdia to elevada) que no foi possvel verificar tal
comportamento.
3
A primeira verso do algoritmo ACO foi desenvolvida por Dorigo & Gambardella2 para a
resoluo do Problema do Caixeiro Viajante, que um problema de otimizao combinatorial de
busca em um espao de permutao. Este algoritmo fundamentado na distribuio de m formigas
em n cidades e em permitir que cada uma destas formigas percorra um caminho fechado passando
apenas uma vez por cada uma destas n cidades.
As duas caractersticas fundamentais deste algoritmo so:
i-) Seleo da Prxima Cidade: a forma com que cada uma das formigas estando em uma
determinada cidade (cidade i) escolhe a prxima cidade (cidade j), excluindo em sua seleo
todas as cidades j visitadas. Esta seleo feita de uma forma aleatria em forma de roleta
(ver item 3-7-a do curso!), associando-se a cada trilha de ligao com a cidade i a seguinte
funo densidade de probalidade:
se a cidade j j foi visitada
0
ij d
p ij =
ij se a cidade j no foi ainda visitada
p ik
k =1
( )
Onde:
ij : intensidade da trilha de feromnio na trilha que liga a cidade i cidade j 3(uma
grandeza adimensional que expressa o valor relativo entre estas intensidades);
dij : distncia entre a cidade i e a cidade j ( tambm uma grandeza adimensional que
expressa o valor relativo entre estas distncias);
e parmetros positivos que expressam a importncia relativa da intensidade de
feromnio e do tamanho da trilha ij , respectivamente;4
Para saber se a cidade j j foi visitada, cada formiga mantm um registro das cidades
Dorigo, M. & Gambardella, L.M. Ant Colonies for the Tavelling Salesman Problem-Biosystems, Vol. 43, pp 73-
81 (1997).
3
Note que se adotando =0 a busca da prxima cidade independe totalmente da marcao de feromnio na trilha. Por
outro lado, adotando-se =0 apenas a intensidade de marcao de feromnio orienta a seleo da prxima cidade. A
recomendao na literatura para adotar os valores de =1 e =5.
4
anteriormente visitadas at o momento (este registro, que atualizado cada vez que uma
nova cidade visitada, se chama de lista tabu).
Aps o clculo de pij para todos os valores de j, assim se procede:
Fatia0 =0; Fatia J =
p ij
j =1
aleatrio (de distribuio uniforme), a prxima cidade a ser visitada a cidade J , sendo J
o valor do ndice da Fatia tal que : Fatia J 1 < Fatia J .
Para ilustrar este procedimento considera-se o caso de 5 cidades com as seguintes
coordenadas:
Cidade
(0;15)
(20;0)
(20;15)
(20;25)
(25;15)
( cor correspondente
no diagrama)
Localizao
(coordenadas)
10
20
15
d = 20
22.361
25
25 15.811
5
10
11.18
0
0
11.18
25
20 22.361
15
15
25
10
15.811 5
25
5
e a matriz que traduz a intensidade da marcao de feromnio em cada trilha (valores hipotticos) :
0
0.06
= 0.35
0.19
0.39
Uma formiga tendo como ponto de partida a primeira cidade ( cidade vermelha),
apresentaria as seguintes densidades de probalidade de escolher a cidade j (adotando-se : = 1 e
= 5):
0
0.031
p = 0.577
0.182
0.211
0
0
0.031
fatia =
0.607
0.789
O nmero sorteado deu o valor: 0.28, fazendo assim com que a cidade 3 ( cidade verde) seja a
escolhida. A mesma formiga partindo da cidade 3 apresentaria as seguintes densidades de
probalidade de escolher a cidade j:
0
0.001
p= 0
0.076
0.923
0
0
0.001
fatia =
0.001
0.077
O nmero sorteado deu o valor: 0.682, fazendo assim com que a cidade 5 ( cidade amarela) seja
a escolhida. A mesma formiga partindo da cidade 5 apresentaria as seguintes densidades de
probalidade de escolher a cidade j:
0
0.032
p= 0
0.968
0
0
0.032
fatia =
0.032
1
O nmero sorteado deu o valor: 0.722, fazendo assim com que a cidade 4 ( cidade laranja) seja
a escolhida. Como, neste ponto, restou apenas uma cidade no visitada pela formiga e sendo a
mesma a cidade 2 ( cidade azul), esta a ltima cidade visitada antes da formiga retornar a seu
ponto de partida. Desta forma o roteiro percorrido pela formiga : 135421, roteiro este
esquematizado no diagrama a seguir:
IV
III
II
ireforo
=
,j
sendo Ltotal o tamanho total do roteiro percorrido pela formiga (at retornar a seu ponto de
partida!) e Q: um parmetro positivo escolhido pelo usurio. Os novos valores das
intensidades de marcao em cada trilha ij ser a composio destes dois fatores, resultando
reforo
iOLD
assim em: iNEW
.
,j
, j + i, j
No
exemplo
ilustrativo
acima
20+5+11.18+25+25=86.18, assim:
adotando
Q
L total
0.9
Q=1,
0
0 0.012 0.012 0
0.012 0
0 0.012 0
0 0.012
0
= 0.012 0
0 0.012 0
0 0.012
0 0.012 0.012 0
0
tem-se:
Ltotal
7
0
0.063
= 0.323
0.172
0.348
matriz cujo termo geral i,j= j,i a intensidade de marcao de feromnio na trilha que liga a
0 para i = j
cidade i cidade j, no incio do processo iterativo se adota: i, j =
, sendo 0 um
0 para i j
valor no nulo (pequeno!) escolhido pelo usurio.
n n
8
designativo da cidade visitada pela formiga k em seu isimo trecho de seu percurso fechado
k)
(note que i varia de 1 a n!) e Vn +1, k = L(total
que o tamanho total do percurso fechado
Etapa (e)
k)
Se L(total
L min mantenha o valor de L min v para Etapa (e).
9
Este procedimento foi utilizado no desenvolvimento do programa em MATHCAD, mostrado
abaixo:
ACO_Global( N , m) :=
for i 0 .. n 1
for j 0 .. n 1
i , j 0
d distancias
n 1 n 1
trip
i=0 j=0
d,
i j
for iter 0 .. N
for k 0 .. m 1
k
v Rota( , d )
for k 0 .. m 1
Q
v ,
n k
for i 0 .. n 2
Iv,
i k
Jv+ ,
i 1 k
I , J I , J +
J , I I , J
Iv ,
0 k
Jv ,
n 1 k
I , J I , J +
J , I I , J
if v , < trip
n k
trip v ,
n k
for j 0 .. n 1
city v ,
j
j k
for i 0 .. n 1
city
R,
i iter
i
trip
R ,
n iter
R
A construo do melhor percurso para cada formiga k feita de acordo com o procedimento:
(a) Inicializao do Percurso:
Apague todos os registros existentes no Carn em que se anota as cidades percorridas no
percurso.
10
Sorteie aleatoriamente a cidade inicial do percurso e anote o ndice designativo a esta cidade
no topo do Carn, isto Tabu1 rnd(n);
(b) Etapa Principal: para s de 1(um) a n 1, faa:
(b-1) Para i =1 a n , igual0 e pi 0;
para cada valor de i faa
(b-1-1) para j de 1 a s-1 , se i for igual a Tabuj faa igual1 e v para (b-1-2);
se i no for igual a Tabuj e j = s-1 e v para (b-1-2); se i no for igual a Tabuj e j <
s-1 v para (b-1-1) com o valor seguinte de j ( se j <s-1).
(
i, Tabu )
(b-1-2) se igual for igual a 0 faa: p i
(d i, Tabu )
s 1
s 1
seguinte de i (se i <n) ; se igual no for igual a 0 volte para (b-1)com o valor
seguinte de i (se i <n) ;
(b-2) Escolha da Prxima Cidade .
n
p
Faa : S p j e a seguir p i i para i = 1 , 2, L , n , a seguir faa : fatia0 0 ;
S
j =1
i
n 1
D Tabu , Tabu
i =1
i +1
11
Rota ( , d ) :=
lista
floor
v lista
0
rnd ( 100 n )
100
N n 1
lista
for s 1 .. n 2
for i 0 .. N
igual 0
p 0
i
for k 0 .. s 1
i lista
if
< 10
igual 1
break
p i , lista
i
s 1
1
i=0
n
i , lista s 1
1
if igual
fatia
for i 0 .. N 1
fatia + fatia + p
i 1
i
i
rnd ( 100 )
100
for i 0 .. N
a fatia +
i 1
crit a
a
if crit < 0
lista
break
v lista
s
v sort ( v )
lista
for i 0 .. N 1
iv
if
lista
> 10
break
n 2
lista
( lista 0 , lista n 1 )
k =0
( lista k , lista k+ 1 )
lista
12
cada caminho fechado que uma formiga k percorra. A intensidade de feromnio em toda a trilha
ij ento atualizada segundo:
i(,kj)
Q local
d i(,kj)
Aps todas as formigas terem completado suas rotas, h tambm uma atualizao da
intensidade da marcao de feromnio com vaporizao geral e o reforo apenas na melhor
rota (Atualizao Global) segundo:
i, j
Q global
se o trecho ij faz parte da melhor rota
1 global i, j + global
L min
Dorigo, M., Maniezzo, V. & Colorno, _ Ant System: Optimization by a Colony of Cooperating Agents IEEE
Transactions on Systems, Man, and Cybernetics, Vol. 26, No 1, pp. 29-41 (1996)
13
40
20
Ci , 1
0
10
0
20
10
Ci , 0
40
40
0
0
10
10
10
10
C :=
20
20
20
20
30
30
30
30
0
10
20
30
0
10
20
30
0
10
20
30
0
10
20
30
m := 8
N := 20
:= 1
:= 5
:= .5
0 := 10
Q := 100
Verificando-se visualmente a convergncia ao percurso timo aps 10 iteraes sendo este percurso
o seguinte: 1091314151612117843215610, o que resulta
em um comprimento total de L timo = 160
Esquematizado na figura abaixo:
14
40
Ci , 1
40
20
C m ,1
k
)
0
10
0
10
20
Ci , 0 , C m , 0
k
40
40
Na figura abaixo, mostrada a variao do melhor comprimento total versus o ndice designativo da
iterao:
Rn, 0
180
Rn, j
160
160
150
5
1
10
15
Kj
20
20
40
20
Ci , 1
0
10
0
10
20
Ci , 0
40
40
15
cidade
22.48
33.17
32.81
26.84
17.59
7.73
16.39
2.99
10
11
16.39
8.05
17.08
10.71
12
13
4.26
12.97
22.32
10.43
28.66
1.63
2.92
31.43
0.16
23.21
24.43
7.63
14
15
16
4.66
28.85.
17.23
24.25
29.78
18.21
33.42
1.23
40
Ci , 1
20
C m ,1
k
)
0
10
0
10
20
Ci , 0 , C m , 0
k
40
40
Na figura abaixo, mostrada a variao do melhor comprimento total versus o ndice designativo da
iterao:
R n , 0 135
Rn, j
128.384
130
128
5
1
10
15
20
Kj
20
Uma animao deste procedimento mostrada (com distribuio das cidades diferente da
apresentada acima!) no programa AVI : PCV_Random_ACO_Global.
16
Em relao esta aula os seguintes arquivos esto tambm disponveis para Download:
Nome do Arquivo
Especificao
Aula6.pdf
Lista6.pdf
ACO_Lenzi.exe
Manual_ ACO_Lenzi.pdf
PCV_ACO_Global.avi
PCV_Random_ACO_Global.avi
ACO_PCV_primeira verso.mcd
ACO_PCV_primeira verso
random.mcd
ACO_PCV_segunda verso.mcd
ACO_PCV_segunda verso
random.mcd
Lista de Exerccios
1.
( ) ( )
2.
( ) + (1 x0)2
f2( x) := 100 x x
0
1
3.
= ( y observado y predito )
n
k =1
x1
x2
yexp
2.0
36.0
46.5
6.0
8.0
591
9.0
3.0
1285
2.5
6.25
36.8
4.5
7.84
241
9.5
1.44
1075
8.0
4.0
1024
4.0
7.0
151
3.0
9.0
80
7.0
2.0
485
6.5
5.0
632
2
b + b
F
4
2 2
Onde
F(b ) = e
u2
2 2
Utilize os valores das constantes abaixo e encontre o valor de b para o qual o risco
mnimo.
2
c1
= 1.25 105
c2
= 15
= 2000
= 0.25
5.
O custo do leo refinado transportado por navio para o Japo atravs do estreito
de Malacca calculado em dlares por quilolitro. Este custo definido como
uma soma linear dos custos do leo cru, do seguro calculado, do frete para o
leo, da carga e descarga do leo, entre outras. Uma funo para avaliar este
processo foi fornecida por UCHIYAMA (1968)*:
c = cc + ci + c x +
0.861
Onde: a
cc
ci
cx
= taxa, 0.10
= nmero de portos, 2
C = C P AN + CS HAN + C f + Cd + Cb + C L + C x
Onde C
Cp
= Custo total, $.
= Custo por p quadrado de rea de prato, $/ft2.
3
A
= Nmero de pratos.
Nmin
Cs
Cf
Cd
Cb
CL
Cx
D
Destilado
L
Refluxo
F
Alimentao
B
Resduo
As variveis do processo esto relacionadas por duas equaes empricas
L
L
1
=
D 1 (N min N ) D min
A = K (L + D )
A = K (L + D )
= 30
Cd
= 3000
Cs
= 10
Cb
= 2000
=2
Cx
= 8000
Cf
= 4000
= 1500
4
D
= 1000
Nmin
=5
(L D)
min
= 0.01 hft2/lb
=1
Exemplos Aplicados
1) Particle Swarm aplicado a projeto de trocadores de calor
De acordo com MIZUTANI (2003) e SINNOTT (1996), a transferncia de calor
entre fluidos de processo uma parte essencial da maior parte dos processos qumicos.
Segundo esses autores, o tipo de trocador de calor mais utilizado o trocador cascotubo.
Segundo TABOREK (1982), o mtodo de Bell-Delaware o mtodo que
fornece as correlaes mais apropriadas para o projeto detalhado de trocadores cascotubo disponvel e o mais adequado para aplicaes de engenharia. Detalhes do mtodo
de Bell-Delaware podem ser encontrados, passo a passo, em KAKA et al. (1981) ou
em PERRY (1999).
Definio do Problema
Sendo que
= a1
U Ft MLDT
a2
6
P t m t P c m c
C bomb = a3
+
t
c
1
U=
d ext
d
log
t
ex
t
t
d in + r + 1
d ex + rin d ex +
ex
ht d t
hc
2k
d int
in
Este exemplo extrado de Mizutani et al. (2003) consiste em uma corrente quente
e uma corrente fria de fluidos A e B, respectivamente, com suas propriedades fsicas
apresentadas na Tabela 1. Os parmetros a1, a2 e a3 das equaes de custo so,
respectivamente, 123, 0,59 e 1,31. Os resultados do projeto timo, comparados com os
resultados da literatura encontram-se na Tabela 2.Tabela 1 Dados das correntes
Fluido
Tin (K)
Tout
(K)
m
(kg/s)
(kg/ms)
(kg/m3)
Cp
(J/kgK)
k
(W/mK)
P
(kPa)
rd
(W/mK)
368,15
313,75
27,78
3,4e-4
750
2840
0,19
68,95
1,7e-4
298,15
313,15
68,88
8e-4
995
4200
0,59
68,95
1,7e-4
7
Tabela 2 Resultados
Mizutani et al. (2003)
Enxame de Partculas
5250,00
2532,67
2826,00
2419,94
2424,00
112,73
Area (m )
202
155,97
Q (kW)
4339,24
4339,24
Ds (m)
0,687
0,635
Dotl (m)
0,542
0,594
Nt
832
343
Nb
12
ls (m)
0,542
0,475
Ntp
dex (mm)
15,90
19,05
din (mm)
12,60
14,83
L (m)
4,88
6,18
ht (kW/m2C)
6,480
16,607
1,829
3292
Ud (W/m C)
860
1112,16
Uc (W/m2C)
----
1112,64
Pt (kPa)
22,676
3,146
Ps (kPa)
7,494
2,317
rd (m C/W)
-----
3,84e-7
arr
quadrado
quadrado
casco
casco
hs (kW/m C)
Exemplo Aplicado 2:
Minimizao de Energia Livre utilizando mtodos heursticos de
otimizao.
O conhecimento do equilbrio de fases de grande importncia no projeto e
anlise de uma grande variedade de operaes de processos qumicos, incluindo reatores
e unidades de separao. O equilbrio de fases de um sistema corresponde s condies
em que a Energia Livre do sistema atinge seu mnimo global.
8
Para um sistema multifsico e multicomponente, a energia livre de Gibbs
dada por:
F
G = nij g ij
(1)
g ij = g ijo + R T ln(ij )
(2)
j =1 i =1
N i = nij
para i =1 .. C
(3)
j =1
nij 0 para i = 1 .. C , j = 1 .. F
(4)
o
G nij g ij F C n
j =1 i =1
= ij ln(ij )
j =1 i =1 N t
R T N t
(5)
g = j xij ln(ij )
(6)
j =1 i =1
Sendo:
j =
Nf j
Nt
(7)
9
ij = xij ij
(8)
x
G
q, j q, n q, n
q= 1
xn, j Gi, n i, n
x
G
r, j r, n
xk, j k, i Gk, i C
r
=
1
k= 1
ln(i, j) =
+
C
C
n= 1
xm, j G m, i
xp, j Gp, n
m= 1
p= 1
(9)
12 =
g12 g 22
g g11
, 21 = 21
, Gij = exp( ij ij ) , gij um parmetro de interao e
R T
R T