• Nenhum resultado encontrado

Dados:

Con junto_de_Dados : É o conjunto de dados fornecido.

Vari´avel : Objeto que representa uma variável do do SFBR, contendo o nome e o tipo da variável.

Regra: Objeto que representa uma regra do SFBR, contendo um termo linguístico para cada variável.

Instˆancia : Objeto que representa uma instância do Con junto_de_Dados, contendo o valorpara cada variável.

CF : Objeto que representa um conjunto fuzzy de uma variável, contendo o seu nome e sendo capaz de calcular o grau de pertin ˆencia de um valor ao conjunto.

1 início

2 RCD ← novo conjunto de regras vazio

3 para cada Inst ˆancia ∈ Con junto_de_Dados faça

4 Regra ← nova regra vazia

5 para cada Vari ´avel ∈ SFBR faça

6 se Vari ´avel.tipo = ‘uniforme’ então

7 Regra.termo(Vari ´avel) ← Inst ˆancia.valor(Vari ´avel)

8 senão

9 maxP ← 0

10 para cada CF ∈ Vari ´avel faça

11 se CF.pertin ˆencia(Inst ˆancia.valor(vari ´avel)) > maxP então

12 Regra.termo(Vari ´avel) ← CF.nome

13 fim 14 fim 15 fim 16 fim 17 se Regra /∈ RCD então 18 RCD ← RCD ∪ Regra 19 fim 20 fim 21 fim 22 retorna RCD

5.4 Aprendizado genético da base de regras 66

5.4.4 Operadores Genéticos

Buscando reduzir o espaço de busca do AGMO também durante as operações genéticas que modificam os cromossomos de sua população, foi necessária a customização dos operado- res genéticos adotados no algoritmo, a fim de refletir as restrições impostas nas RCD. Adici- onalmente, heurísticas foram criadas para permitir o aprendizado de regras mais simples, que não tenham necessariamente um termo para cada variável do SFBR nos antecedentes da regra (como nas RCD). Isto possibilita melhoria tanto na acurácia quanto na interpretabilidade das soluções encontradas. A seguir, descreveremos os operadores utilizados:

• Seleção: O operador de seleção padrão do NSGA-II foi mantido. Ele seleciona os indiví- duos para a nova população por meio de torneio binário, usando como métrica o nível de cada solução na fronteira de Pareto, ou se elas fizerem parte da mesma fronteira, a com maior distância de multidão (DEB et al., 2002);

• Mutação: Foi criado um operador semelhante à mutação uniforme, porém, ao invés de um gene (CF) do cromossomo ser trocado de maneira aleatória, uma regra inteira é substituída no cromossomo (dada uma probabilidade definida pelo especialista) por uma regra formada a partir das RCD. O ponto onde ocorrerá a mutação é sorteado somente entre as posições que ficam entre regras na codificação do cromossomo.

A regra que for sorteada das RCD para efetuar a mutação não será novamente escolhida para efetuar outra mutação, na mesma solução, em uma geração subsequente, até que todas as regras das RCD tenham sido sorteadas (sorteio sem reposição). Isso minimiza a possibilidade de inserção de regras redundantes nas BR codificadas nas soluções.

A regra sorteada das RCD também sofrerá um processo de simplificação antes de ser inserida no cromossomo, onde, para cada termo do antecedente da regra, existirá a possi- bilidade (definida pelo especialista como um parâmetro) de o termo ser retirado da regra, ou seja, ser substituído por zero (0) na codificação da regra. A Figura 5.4 exemplifica o operador descrito.

• Cruzamento: Foi adaptado o cruzamento de 1 ponto, onde dada uma certa probabilidade (definida pelo especialista como um parâmetro), um ponto de cruzamento é escolhido aleatoriamente entre as posições que ficam entre regras na codificação de dois cromosso- mos pais, C1 e C2, e a porção compreendida depois deste ponto, em cada cromossomo,

é trocada entre eles, para formar dois novos cromossomos filhos C3 e C4. A Figura 5.5

5.4 Aprendizado genético da base de regras 67

Figura 5.4: Exemplo do operador de mutação durante o aprendizado da BR, onde uma regra Ri

sorteada das RCD, é simplificada e substitui a segunda regra de um cromossomo, em um sistema com 4 variáveis de entrada e uma de saída.

Figura 5.5: Exemplo do operador de cruzamento durante o aprendizado da BR, onde, em (a) um cromossomo pai C1 sofre cruzamento com um cromossomo pai C2 para formar dois novos

5.4 Aprendizado genético da base de regras 68

• Redução: Foi introduzido um novo operador genético ao AGMO. O seu objetivo é pos- sibilitar que, ao longo das gerações, as regras que compõem as BR codificadas pelos cro- mossomos sejam simplificadas ou removidas, viabilizando soluções mais interpretáveis e eficientes.

O seu funcionamento é bastante simples: dada uma certa probabilidade (definida pelo es- pecialista como um parâmetro), um ponto é escolhido aleatoriamente no cromossomo e o valor do gene é substituído por zero (0) na codificação, removendo o termo por ele repre- sentado na regra. Caso o ponto aleatório escolhido para substituição seja o consequente da regra, então a regra inteira é desconsiderada na BR codificada pelo cromossomo. Se, por acaso, o valor do gene no ponto escolhido já for igual a zero (0), então, será substituído o valor do ponto imediatamente subsequente na codificação, até que um valor diferente de zero seja encontrado. A Figura 5.6 exemplifica o operador descrito.

Figura 5.6: Exemplo do operador de redução, onde um termo é removido de uma regra codificada no cromossomo, em um sistema com 4 variáveis de entrada e uma de saída.

5.4.5 Simplificação da BR

Com o objetivo de maximizar a interpretabilidade das soluções (BR) resultantes do AGMO, após a execução deste, cada solução é submetida a um processo de simplificação realizado por um algoritmo (Algoritmo 5.3) de complexidade linear (proporcional ao tamanho do cromos- somo), que toma como entrada a codificação da solução e produz uma solução simplificada de igual ou melhor acurácia.

Em linhas gerais, o funcionamento do algoritmo consiste em: aplicar, para cada gene da so- lução, o operador de redução descrito na seção 5.4.4, gerando uma solução temporária; construir um SFBR utilizando a BR codificada nesta solução e a BD definida pelo especialista; avaliar a

5.4 Aprendizado genético da base de regras 69

acurácia do SFBR construído e, caso a acurácia tenha diminuído, retornar a solução ao estado anterior.

Para otimizar sua execução, primeiramente o algoritmo tenta remover uma regra inteira da solução (removendo o consequente); caso a acurácia diminua, só então o algoritmo testará a remoção dos antecedentes desta regra.