• Nenhum resultado encontrado

Na Seção 6.4.2 foi definido o conjunto de genes a partir dos quais os cromossomos são for- mados. Esse conjunto de genes é chamado de alfabeto do algoritmo genético. Nesta seção detalha-se como os genes são agrupados para formar a primeira população de cromossomos.

O tamanho da população inicial é um parâmetro importante em qualquer algoritmo genético, pois determina a quantidade de elementos que serão usados para pesquisar o domínio na busca pelo ponto ótimo da função sob análise. Ele deve ser uma fração do tamanho do domínio que se deseja pesquisar. Assim, o primeiro passo é descobrir o tamanho desse domínio.

Conforme mostrado na Seção 6.4.2, o alfabeto é formado pelo conjunto gene G. Os cro- mossomos gerados por este alfabeto, comparáveis ao MCest, são aqueles que possuem o mesmo número de proposições, ou seja, a mesma cardinalidade (#). Assim, o tamanho do domínio é a quantidade de MCs diferentes com tamanho igual a MCestque podem ser gerados utilizando-se o alfabeto. O cálculo exato do número de MCs possíveis deve desconsiderar MCs que não se- jam conexos e MCs que tenham ciclos, de acordo com o que está relatado em Rocha & Favero (2004). Uma aproximação desse valor pode ser calculada usando a combinação definida pela Equação 6.1 (Gersting, 2004):

C#MCest

#G =

#G!

#MCest!(#G − #MCest)! (6.1)

Aplicando a fórmula de aproximação da Equação 6.1para o exemplo descrito na Seção 6.4.2 (Figura 6.6 e Tabela 6.4), o tamanho do domínio, considerando que o mapa do aluno possui duas proposições, vale10:

C#MCest

#G =

16!

2!(16 − 2)!= 120 (6.2)

Seguindo este raciocínio, pode-se estabelecer que o tamanho da população inicial é uma diminuta fração do domínio, da seguinte forma11:

#PopInicial = r × #G!

#MCest!(#G − #MCest)! (6.3)

com r > 0 e r ≪1.

Definido o tamanho da população inicial, o passo seguinte é criar os cromossomos. Este processo de criação deve assegurar que os MCs não conexos e cíclicos12sejam descartados.

A exclusão dos mapas desconexos e cíclicos se dá pela aplicação de dois axiomas de for- mação de cromossomos listados a seguir:

10Incluindo mapas cíclicos e os não conexos

11r = 1 na Equação 6.3 implica em fazer uma busca linear por todo o domínio, o que é indesejado.

12Os não conexos são descartados por não simularem aprendizagem e os cíclicos por infringirem as regras de

⊲ afc1≡(∀ c ∈ C, ∀ gi,gk ∈ c, ∃ gi+1,...,gk−1 ∧ ∃i ∈ {1,2,...,k-1}| ci,1=ci+1,1 ∨ ci,1=ci+1,2

∨ ci,2=ci+1,1∨ ci,2=ci+1,2), lê-se para todo cromossomo c cujo conjunto de genes tem

cardinalidade maior ou igual a k, existe pelo menos um caminho entre todos os seus pares de genes gi,gk percorrendo os genes de c no sentido gi para gi+1 ou gi+1 para gi, que começa no conceito ci,1e termina no conceito ck,2, em outras palavras o grafo subjacente ao mapa conceitual representado por c é conexo;

⊲ afc2 ≡(∀ c ∈ C, ∃x ∈ C ( x={gi | ∀ gi ∈ c ei,3=d}) ∧ (∀ gi,gk ∈ x, ∃ gi+1,...,gk−1

c ∧ ∃ i ∈ {1,2,...,k-1} | ci,1=ci+1,1 ∨ ci,1=ci+1,2 ∨ ci,2=ci+1,1∨ ci,2=ci+1,2), lê-se para todo cromossomo c existe um cromossomo x, cujo conjunto de genes é um subconjunto próprio do conjunto de genes de c, composto somente por proposições apreendidas por diferenciação progressiva, cujo grafo subjacente é uma árvore, ou seja, o grafo subjacente de um mapa conceitual que representa aprendizagem por diferenciação progressiva é um grafo conexo acíclico.

A implementação algorítmica da geração da população inicial, respeitando os axiomas afc1

e afc2, compreende os seguintes passos: 1. Cria¸c˜ao do candidato a MC:

(a) Inicializar TamPopula¸c˜ao = 0

(b) Definir um candidato a mapa conceitual mc1= ∅; (c) Escolher um gene aleat´orio (g) do conjunto gene G;

(d) Verificar se g j´a existe em mc1;

(e) Caso g n˜ao exista em mc1, adicion´a-lo a mc1;

(f) Repetir os passos 1(c) a 1(a) at´e que #mc1= #MCest.

2. Verifica¸c˜ao de ciclos no candidato a MC:

(a) Armazenar o primeiro conceito (c1) do primeiro gene de mc1 em um vetor de

conceitos visitados;

(b) Adicionar ao vetor de conceitos visitados todos os vizinhos de c1. S˜ao vizinhos os

conceitos ligados a c1 por genes n˜ao presentes em Gdescart13 e cuja aprendizagem

seja diferencia¸c˜ao progressiva (ek,3=d);

(c) Se um dos vizinhos adicionados no passo anterior j´a existir previamente no vetor de conceitos visitados, ent˜ao h´a ciclo. Descartar mc1 e voltar ao passo 1(b);

13G

(d) Caso contr´ario, adicionar os genes percorridos em Gdescart e voltar ao passo 2b para adicionar ao vetor de conceitos visitados os vizinhos dos vizinhos de c1

(e) Repetir de 2(b) a 2(d) at´e que se encontre um ciclo ou at´e que n˜ao haja mais genes a serem percorridos em mc1.

3. Verifica¸c˜ao de desconex˜ao no candidato a MC:

(a) Esvaziar Gdescart e o vetor de conceitos visitados;

(b) Armazenar o primeiro conceito (c1) do primeiro gene de mc1 no vetor de conceitos

visitados;

(c) Adicionar ao vetor de conceitos visitados todos os vizinhos de c1. S˜ao vizinhos os

conceitos ligados a c1 por genes n˜ao presentes em Gdescart, independentemente do

tipo de aprendizagem;

(d) Adicionar os genes percorridos no passo anterior em Gdescart;

(e) Adicionar ao vetor de conceitos visitados todos os vizinhos de c2, onde c2 ´e o

elemento seguinte no vetor de conceitos visitados;

(f) Repetir o passo anterior para todos os conceitos existentes no vetor de conceitos visitados;

(g) Se, ao fim do la¸co anterior, houver algum conceito de mc1 n˜ao presente no vetor

de conceitos visitados, ent˜ao h´a desconex˜ao no candidato a MC. Portanto, deve-se descartar mc1 e voltar para o passo 1(b).

4. Finaliza¸c˜ao:

(a) Armazenar mc1como um MC v´alido e incrementar TamPopula¸c˜ao de uma unidade; (b) Repetir a partir do passo 1(b) at´e que TamPoPula¸c˜ao = #PopInicial.

O resultado desse algoritmo descrito é uma população inicial definida, composta por mapas conceituais conexos e acíclicos. A seção seguinte mostra como os operadores genéticos atuam sobre os cromossomos, fazendo com que gerações sucessivas de cromossomos se aproximem de MCest.