• Nenhum resultado encontrado

Capítulo 6: Conclusões e Trabalhos Futuros

B: AGs como Algoritmos de Busca e Justificativa de Funcionamento

B.2 Justificativa de Funcionamento dos AGs

A justificativa teórica do funcionamento dos AGs se baseia a representação dos indivíduos por strings binárias e na noção de esquema, que pode ser definido como segue.

Definição B.1 (Esquema): Um esquema é construído pela introdução de símbolos „não

importa‟ (*) no alfabeto de genes.

De forma geral, um esquema representa todas as strings (um subconjunto do espaço de busca) que casam (match) com ele em todas as posições diferentes de *. Assim, pode-se dizer que um esquema representa um conjunto de strings que guardam semelhanças entre si.

Exemplo B.1: Considere strings e um esquema de tamanho 10. O esquema S = (* 1 1 1

1 0 0 1 0 0) casa com duas strings s1 = (0 1 1 1 1 0 0 1 0 0) e s2 = (1 1 1 1 1 0 0 1 0 0). O esquema (1 0 0 1 1 1 0 0 0 1) representa apenas uma string, enquanto que o esquema (* * * * * * * * * *) representa todas as possíveis strings de tamanho 10. Dessa forma, pode-se notar que todo esquema casa com exatamente 2r strings, onde r é o número de símbolos „*‟ no template do esquema. Em contrapartida, cada string de tamanho m será casada por 2m esquemas.

Exemplo B.2: A string (1 0 0 1 1 1 0 0 0 1) é casada pelos 210 esquemas {(1 0 0 1 1 1 0 0 0 1), (* 0 0 1 1 1 0 0 0 1), (1 * 0 1 1 1 0 0 0 1), ..., (* * 0 1 1 1 0 0 0 1), (* 0 * 1 1 1 0 0 0 1), ... ( * * * * * * * * * *)}.

Denota-se (S, t) o número de strings na geração t que casam com o esquema S. Existem varias definições relativas a esquemas. Elas serão apresentadas a seguir:

Definição B.2 (Aptidão de um Esquema): Define-se aptidão de um esquema S em

uma determinada geração t, denotado por apt(S,t), como sendo a média da aptidão das

32

161

strings que são casadas por S. Formalmente, assuma que existam p strings (s1, s2, ..., sp) na população que casam com o esquema S em uma dada geração t, desta forma:

𝑎𝑝𝑡 𝑆, 𝑡 = 𝑎𝑝𝑡(𝑠𝑗)/𝑝

𝑝

𝑗 =1

(B. 1)

onde sj representa a j-ésima string que foi casada por S, e apt(sj) representa o valor da aptidão da j-ésima string.

Definição B.3 (Ordem de um Esquema): A ordem de um esquema S, denotado por

o(S) é o número de posições 0 e 1 presentes no esquema.

Em outras palavras, a ordem do esquema é simplesmente seu número de posições fixas, ou ainda, a ordem do esquema é dada pelo tamanho do esquema menos o número de símbolos * que figuram no esquema.

Exemplo B.3: Os esquemas S1 = (* * * 1 1 0 0 1 0 1), S2 = (* 1 1 1 1 * * 1 * *), S3 = (1

1 1 1 * 0 1 * 1 1), possuem, respectivamente, o(S1) = 7, o(S2) = 5, o(S3) = 8.

Definição B.4 (Comprimento de um Esquema): O comprimento de um esquema S,

denotado por (S), é a distância entre a última e a primeira posição fixa de S.

Exemplo B.4: Os esquemas S1 = (* * * 1 1 0 0 1 0 1), S2 = (* 1 1 1 1 * * 1 * *), S3 = (1 1 1 1 * 0 1 * 1 1), possuem, respectivamente,  (S1) = 6 (10 – 4),  (S2) = 6 (8 - 2),  (S3) = 9 (10 - 1).

Será mostrado posteriormente que a ordem do esquema servirá para calcular a probabilidade de sobrevivência de um esquema quando a mutação é aplicada, enquanto que o conceito de comprimento servirá para calcular a probabilidade de sobrevivência de um esquema quando a recombinação é aplicada.

Como apresentado anteriormente, viu-se que os passos responsáveis pela evolução da população são (I) seleção, (II) recombinação, e (III) mutação dos indivíduos. Será apresentado como estes três passos fundamentais afetam o número esperado de esquemas na população.

Seleção: durante o passo de seleção, uma população intermediária é criada e,

desta forma, cada string (ou indivíduo) é copiada zero, uma ou mais vezes de acordo com sua aptidão. Como visto anteriormente, caso o critério de seleção por roleta seja utilizado, a probabilidade (pi) do indivíduo i ser selecionado, é dada por:

162

𝑝𝑖 = 𝑎𝑝𝑡(𝑠𝑖)/𝐹 𝑡 (B. 2)

onde, como já apresentado, apt(s) é o valor de aptidão para a string s e F(t) é dado por:

𝐹 𝑡 = 𝑎𝑝𝑡 𝑠𝑗

𝑁

𝑗 =1

(B. 3)

em que N é o tamanho da população.

Após o passo de seleção, espera-se ter (S, t + 1) strings casadas pelo esquema S. Uma vez que: (1) para uma dada string s casada pelo esquema S, a sua probabilidade de seleção é igual a apt(S,t)/F(t); (2) o número de strings casadas pelo esquema S é (S, t); (3) o número de seleções efetuadas é igual ao tamanho da população (N), pode-se mostrar que:

𝑆, 𝑡 + 1 =

𝑆, 𝑡  𝑁  𝑎𝑝𝑡(𝑆, 𝑡)/𝐹 (B. 4)

Considerando-se que a média da aptidão da população pode ser expressa por ( ) ( ) /

F tF t N, pode-se reescrever a fórmula acima como:

𝑆, 𝑡 + 1 =

𝑆, 𝑡  𝑎𝑝𝑡(𝑆, 𝑡)/𝐹(𝑡) (B. 5)

O que, em outras palavras, significa que o número de strings na população cresce de acordo com a razão da aptidão do esquema pela aptidão média da população. Isso significa que esquemas “acima da média” (com aptidão acima da média) recebem um número crescente de strings na próxima geração, e que, esquemas “abaixo da média” (com aptidão abaixo da média) recebem um número decrescente de strings ao longo das gerações, enquanto que esquemas “na média” mantêm a mesma quantidade de strings.

O efeito em longo prazo da regra acima pode ser analisado como segue. Caso o esquema S se mantenha sempre como “acima da média” por % (ou seja,

( , ) ( ) ( )

apt S tF t F t ) então

𝑆, 𝑡 =

𝑆, 0  (1 +

)𝑡 (B. 6)

e (apt S t( , )F t( )) /F t( ), sendo  > 0 e  < 0, respectivamente para esquemas a cima e a baixo da média.

Pela equação B.6, nota-se, agora, que esquemas acima da média recebem um número exponencial de strings com o passar das gerações. A equação B.5 é chamada equação de reprodução do crescimento dos esquemas.

163

Como o operador de seleção não introduz nenhuma variação na população, deve-se considerar como a progressão dos esquemas é afetada pelo operador de recombinação. Esta análise será realizada em seguida.

Recombinação: para ilustrar como o operador de recombinação altera o

aparecimento dos esquemas, considere o exemplo B.5.

Exemplo B.5: Suponha duas strings, s1 = (1 1 1 1 1 1 0 1 0 1) e s2 = (0 0 1 0 0 0 1 1 1

1), bem como dois esquemas s1 = (* * * 1 1 * * * * *) e s2 = (1 1 1 * * * * * 0 1). Nota-

se, que tanto s1 quanto s2 casam com s1. Agora, suponha que s1 e s2 sejam selecionados para recombinação, em que o ponto de corte seja destacado por | abaixo:

s1 = (1 1 1 1 1 | 1 0 1 0 1) s2 = (0 0 1 0 0 | 0 1 1 1 1) dando origem a

s1‟ = (1 1 1 1 1 0 1 1 1 1) s2‟= (0 0 1 0 0 1 0 1 0 1).

Pode-se verificar que s1 sobrevive à recombinação, uma vez que ao menos um dos

filhos (s1‟) ainda pode ser casado com ele. O mesmo não ocorre com s2. Diz-se que s2

foi destruído.

Pelo exemplo B.5, pode ser observado que a possibilidade de um esquema sobreviver está ligado ao seu comprimento, uma vez que, (s1) = 1, e (s2) = 9. De forma geral, para uma string de tamanho m, existem m - 1 possíveis pontos para a recombinação de um ponto. Assim, a probabilidade de destruição de um esquema S é dada por:

𝑝𝑑 𝑆 =

(𝑆)

𝑚 − 1 (B. 7)

e, consequentemente, a possibilidade de não destruição é dada por 1 - pd(S). É importante perceber que apenas alguns cromossomos são selecionados para recombinação, assim, a probabilidade de um esquema S sobreviver à recombinação é dada por:

𝑝𝑠 𝑆 = 1 − 𝑝𝑟 

(𝑆)

𝑚 − 1 (B. 8)

em que pr é a probabilidade de ocorrer uma recombinação. Pode-se mostrar que mesmo

se o ponto de corte do operador de recombinação estiver entre posições fixas do esquema, este ainda pode sobreviver, embora isso ocorra raríssimas vezes. Contudo, a

164

fórmula B.8 deve ser modificada para acomodar este acontecimento e, portanto, pode ser rescrita como:

𝑝𝑠 𝑆 ≥ 1 − 𝑝𝑟

(𝑆)

𝑚 − 1 (B. 9)

Considerando a influência do operador de recombinação na progressão dos esquemas, tem-se uma nova fórmula de reprodução do crescimento dos esquemas, dada por:

𝑆, 𝑡 + 1 ≥

𝑆, 𝑡  𝑎𝑝𝑡 𝑆, 𝑡

𝐹(𝑡)

∗ 1 − 𝑝𝑟𝑚 − 1

(𝑆)

(B. 10)

A equação B.10 diz que o número de strings esperadas que casem com um esquema S na próxima geração pode ser visto como uma função do atual número de strings que casam com S, a aptidão relativa de S, e o seu comprimento. Fica claro que esquemas “acima da média” com comprimento reduzido receberão um número crescente de strings com o passar das gerações. Será analisado em seguida como a mutação influencia a progressão dos esquemas.

Mutação: A mutação troca o valor do bit de uma dada posição. Pode-se mostrar

que todas as posições fixas de um esquema devem se manter inalteradas para que o esquema sobreviva à mutação. Para visualizar tal afirmação, considere o exemplo a seguir.

Exemplo B.6: Suponha a string, s1 = (1 1 1 1 1 1 0 1 0 1) bem como o esquema S1 = (* * * 1 1 * * * * *), que casa com s1. Caso s1 sofra mutação e ela ocorra em qualquer

posição que em s1 figure um *, fica claro que s1 continuará casando com s1. Contudo,

caso a mutação ocorra em alguma posição em s1 em que no esquema figure uma posição fixa, s1 será destruído.

Pelo exemplo B.6, fica claro que a probabilidade de destruição de um esquema S pelo operador de mutação é uma função da ordem do esquema. Seja pm a probabilidade

de se alterar um bit, assim, a probabilidade de um único bit não ser alterado é 1 - pm.

Uma mutação é independente das outras, assim, a probabilidade de um esquema S sobreviver dada uma sequencia de mutações de um bit é:

165

Como normalmente pm << 1, pode-se aproximar B.11, por:

𝑝𝑠 𝑆 ≈ 1 − 𝑜 𝑆  𝑝𝑚 (B. 12)

Finalmente, chega-se a uma nova fórmula de reprodução do crescimento dos esquemas que agora é combinada com a influência da seleção, da recombinação e da mutação. Esta fórmula é dada por:

𝑆, 𝑡 + 1 ≥

𝑆, 𝑡  𝑎𝑝𝑡 𝑆, 𝑡

𝐹(𝑡)

∗ 1 − 𝑝𝑟𝑚 − 1

(𝑆) − 𝑜 𝑆  𝑝𝑚

(B. 13)

A equação B.13 diz que o número esperado de strings que casem com um esquema S na próxima geração pode ser visto como uma função do atual número de strings que casam com S, da aptidão relativa de S, do comprimento de S e de sua ordem. Fica claro que esquemas “acima da média” com comprimento e ordem reduzidos receberão um número crescente de strings com o passar das gerações. O resultado final de B.13 pode ser anunciado como (HOLLAND, 1975):

Teorema 1: Esquemas “acima da média”, de pequeno comprimento e de baixa ordem

são propagados de forma exponencial para toda a população em gerações subsequentes do Algoritmo Genético.

A idéia de esquemas com aptidão acima da média da população, com um pequeno comprimento e baixa ordem, é tão importante que Goldberg (GOLDBERG, 1989) chamou essas estruturas de blocos construtores e, propôs a hipótese de blocos construtores. Essa hipótese tenta explicar como um AG é capaz de gerar soluções de alta aptidão e, consequentemente, de obter bons resultados nos mais diversos problemas. A seguir apresenta-se a definição de blocos construtores para posteriormente discuti-la.

Definição B.5 (Blocos Construtores): Blocos construtores são esquemas “acima da

média”, de pequeno comprimento e de baixa ordem.

A hipótese dos blocos construtores é constituída de (GOLDBERG, 1989):

1. Uma descrição do mecanismo de adaptação abstrato que realiza a adaptação pela combinação de blocos construtores.

2. A hipótese de que um Algoritmo Genético realiza sua adaptação pela implementação implícita e eficiente deste mecanismo de adaptação.

166

Goldberg descreve este mecanismo abstrato de adaptação como: “Esquemas com pequeno comprimento, baixa ordem e alta aptidão, são instanciados, recombinados e re- instanciados para formarem strings potencialmente mais adaptadas. Até certo ponto, trabalhar com este tipo específico de esquemas (os blocos construtores), reduz a complexidade do problema. Em vez de construir strings de alta aptidão pela tentativa de combinação de cada string concebível, os AGs constroem strings cada vez melhores pela recombinação das melhores cadeias strings de gerações passadas”.

Assim, uma clássica analogia realizada sobre o procedimento de busca dos AGs é que estes constroem soluções próximas a ótima pela combinação de blocos construtores, assim como uma criança constrói belíssimas fortalezas através da combinação de simples blocos de madeira (GOLDBERG, 1989). Dessa forma, os blocos construtores podem ser vistos como pedaços da solução ótima que, quando combinados, são capazes de remontá-la.

A Hipótese dos Blocos Construtores têm sido fortemente criticada no sentido que ela carece de uma justificação teórica (FOGEL 2000). De qualquer forma, tal hipótese “grosseiramente” descreve o comportamento dos AGs no sentido de que, hoje, eles são usados nas mais diversas formas e, portanto, com várias diferenças em relação ao AG padrão sem, no entanto, perder a sua característica de alcançar bons resultados nos mais variados problemas. De forma mais geral, os blocos construtores estão ligados à estrutura da solução do problema. Este conceito será o principal motivador para os AEDs revisados no capítulo 3.