Projeto de Estruturas Neuro-Fuzzy do Tipo Takagi-Sugeno Utilizando Programação Genética

Tamanho: px
Começar a partir da página:

Download "Projeto de Estruturas Neuro-Fuzzy do Tipo Takagi-Sugeno Utilizando Programação Genética"

Transcrição

1 Programa de Pós-Graduação em Engenharia Elétrica Centro de Pesquisa e Desenvolvimento em Engenharia Elétrica Projeto de Estruturas Neuro-Fuzzy do Tipo Takagi-Sugeno Utilizando Programação Genética Por: Renato Dourado Maia Dissertação de mestrado submetida à Banca Examinadora designada pelo Colegiado do Programa de Pós-Graduação em Engenharia Elétrica da Universidade Federal de Minas Gerais, como requisito para a obtenção de título de Mestre em Engenharia Elétrica. Orientador: Prof. Dr. João Antônio de Vasconcelos DEE Departamento de Engenharia Elétrica Co-orientador: Prof. Dr. Walmir Matos Caminhas DEE Departamento de Engenharia Elétrica Belo Horizonte setembro de 2005

2 Agradecimentos Poder concluir um trabalho, tal como uma dissertação de mestrado, é uma grande satisfação. É inegável que a boa condução das atividades requer de quem as realiza seriedade, dedicação, paciência e perseverança. Mas é certo que o sucesso só é pleno quando há cooperação. Em sendo assim, gostaria de agradecer, inicialmente, a DEUS, meu PAI e SENHOR, à minha família e à minha namorada Denize, pelo amor, pelo apoio, e pela paciência. Algumas dificuldades se apresentaram no decorrer do trabalho. E, nesses momentos, o meu orientador João Antônio de Vasconcelos, e o meu co-orientador, Walmir Matos Caminhas, sempre se mostraram compreensivos, ajudando-me a ser persistente e apontando-me os caminhos a serem seguidos. A vocês, João e Walmir, fica o meu intenso agradecimento pela orientação segura e amiga, indispensável para a realização deste trabalho. 2

3 Resumo Este trabalho propõe a utilização de programação genética para o projeto de estruturas neuro-fuzzy do tipo Takagi-Sugeno. A abordagem proposta utiliza funções de pertinência gaussianas, sendo que não há restrições quanto à utilização de funções de pertinência de outros tipos. As funções de pertinência gaussianas são criadas com médias uniformemente espaçadas no universo de discurso de cada variável, sendo que o ponto de cruzamento entre as funções gaussianas ocorre no valor de pertinência igual a 0,5. As funções para o cálculo dos conseqüentes de cada regra dos modelos gerados são determinadas por meio da utilização da programação genética, que atua como ferramenta de regressão simbólica. Por manipular programas diretamente, a Programação Genética lida com uma estrutura relativamente complexa e variável. Tradicionalmente, os programas são representados por árvores de sintaxe abstrata. Neste trabalho, é utilizada uma codificação matricial para as árvores envolvidas na programação genética, o que simplifica a implementação computacional. Para finalizar, o desempenho da abordagem proposta é avaliado por meio de sua aplicação em quatro classes de problemas: aproximação de função bidimensional não-linear, aproximação de sistema dinâmico não-linear, predição de série temporal, e classificação de padrões. 3

4 Abstract This work considers the use of genetic programming for the project of structures neuro-fuzzy of the type Takagi-Sugeno. The boarding proposal uses gaussian membership functions, being that it does not have restrictions how much to the use of functions of other types. The gaussian membership functions are created with averages uniformly spaced in the universe of speech of each variable, being that the point of crossing between the gaussians functions occurs in the value 0.5 for the membership grades. The functions for the calculation of the consequences of each rule of the generated models are determined by means of the use of the genetic programming, that acts as tool of symbolic regression. For manipulating programs directly, the Genetic Programming chore with a relatively complex and changeable structure. Traditionally, the programs are represented by an abstract syntax tree. In this work, a matrical codification for the involved trees in the genetic programming is used, that simplifies the computational implementation. To finish, the performance of the boarding proposal is evaluated by means of its application in four classrooms of problems: approach of nonlinear bidimensional function, approach of nonlinear dynamic system, time series prediction, and classification of standards. 4

5 Sumário Lista de Figuras... 8 Capítulo 1 - Introdução Capítulo 2 - Programação Genética Introdução Detalhamento da Programação Genética Visão Geral do Algoritmo Representação e Codificação Conjuntos de Funções e Terminais Criação da População Inicial Método Grow [3] Método Full [3] Método Ramping [3] Método Ramped-Half-and-Half [3] Método Randon Branch [15] Método Uniform [17] Métodos Probabilistic Tree Creation 1 e 2 [14] Funções de Aptidão Técnicas de Seleção Seleção Proporcional [4] Seleção por Truncamento [18] Seleção por Torneio [19] Seleção por Nivelamento Linear Seleção por Nivelamento Exponencial Operadores Genéticos Reprodução Cruzamento Mutação Permutação Edição Critérios de Parada

6 Capítulo 3 - Projeto de Estruturas Neuro-Fuzzy do Tipo Takagi-Sugeno Utilizando Programação Genética Sistemas Nebulosos O Modelo Nebuloso de Takagi-Sugeno Projeto de Estruturas Neuro-Fuzzy do Tipo Takagi-Sugeno Utilizando Programação Genética Determinação das Funções Para o Cálculo dos Conseqüentes das Regras Regressão Simbólica de uma Expressão Programação Genética e Regressão Simbólica Exemplo de Execução da Programação Genética: Regressão Simbólica de um Polinômio Quadrático Objetivo Conjuntos de Funções e Terminais Avaliação de Fitness Parâmetros Critério de Parada População Inicial Segunda Geração Comentários Aplicando Programação Genética como Ferramenta de Regressão Simbólica para Determinação das Funções Para o Cálculo dos Conseqüentes das Regras Determinação da Quantidade de Regras Determinação dos Tipos de Funções de Pertinência dos Conjuntos Nebulosos e seus Respectivos Parâmetros Detalhamento da Implementação Realizada Representação dos Indivíduos Parâmetros de Entrada

7 Capítulo 4 - Simulações e Resultados Aproximação de Função Não-Linear Parâmetros de Entrada Resultados Dados do Modelo Obtido Comentários Aproximação de Sistema Dinâmico Não-Linear Parâmetros de Entrada Resultados Dados do Modelo Obtido Comentários Predição de Série Temporal Caótica Parâmetros de Entrada Resultados Dados do Modelo Obtido Comentários Classificação de Padrões Resultados Dados do Modelo Obtido Comentários Capítulo 5 - Conclusões Perspectivas Futuras Anexo A A.1 - Notação A.2 - Aproximação de Função Não-Linear A.3 - Classificação de Padrões Referências Bibliográficas

8 Lista de Figuras Figura Fluxograma de um Algoritmo Básico de Programação Genética Figura Árvore Representando a Expressão 2 3x 2x Figura Algoritmo do Método Grow para Criação de Árvores Figura Algoritmo do Método Randon Branch para Criação de Árvores Figura Algoritmo do Método Probabilistic Tree Creation 1 para Criação de Árvores Figura Visualização do Cruzamento entre Dois Indivíduos Figura Visualização da Mutação Padrão Num Indivíduo Figura Visualização da Mutação Alelo Num Indivíduo Figura Visualização da Mutação Shrink Num Indivíduo Figura Visualização da Permutação Num Indivíduo Figura Diagrama de Blocos de um Sistema Nebuloso Figura Conjunto de regras para um modelo Takagi-Sugeno genérico com M regras e n entradas Figura Visualização do Processamento de Entradas de um Modelo Nebuloso de Takagi-Sugeno de Ordem Um Figura Visualização da Determinação do Peso de Uma Regra Figura População Inicial e Visualização Gráfica dos Valores de Fitness dos Indivíduos Figura População da Segunda Geração Figura Funções de Pertinência dos Conjuntos Nebulosos Figura Exemplo de Indivíduo Codificado na Forma Matricial Figura Árvore Correspondente Figura Expressão Correspondente Figura Evolução do Melhor Erro Quadrático Acumulado Durante a Evolução da Função do Conseqüente da Segunda Regra Figura Resultado Obtido ao fim da Evolução da Função do Conseqüente da Segunda Regra Figura Histograma do Erro Absoluto de Validação

9 Figura Evolução do Melhor Erro Quadrático Acumulado Durante a Evolução da Função Figura Resultado Obtido ao fim da Evolução da Função Figura Validação do Modelo Obtido Figura Validação do Modelo Obtido - Zoom Figura Histograma do Erro Absoluto de Validação Figura Série Temporal Gerada Figura Evolução do Melhor Erro Quadrático Acumulado Durante a Evolução da Função do Conseqüente da Quarta Regra Figura Resultado Obtido ao fim da Evolução da Função do Conseqüente da Quarta Regra Figura Validação do Modelo Obtido com 4 Regras Figura Validação do Modelo Obtido com 4 Regras - Zoom Figura Erro de Validação do Modelo Obtido com 4 Regras - Zoom Figura Visualização das Classes a Serem Separadas Figura Evolução do Melhor Erro Quadrático Acumulado Durante a Evolução da Função do Conseqüente da Terceira Regra Figura Superfície de Separação Obtida

10 Capítulo 1 - Introdução A demanda pelo desenvolvimento de ferramentas computacionais genéricas, que possam atuar na resolução de diversas classes de problemas, sempre foi significativa. Com o avanço da computação e dos algoritmos propostos por estudiosos da computação, métodos complexos, cuja execução manual era inviável, passaram a ser passíveis de realização de modo preciso, rápido e eficiente, mas permaneceram ainda pouco genéricos. Dentro desse contexto, a pesquisa por métodos que apresentassem robustez e aplicabilidade numa grande variedade de problemas ganhou maior intensidade. Assim, diversas técnicas que atuam de maneira mais inteligente num domínio qualquer foram criadas, fazendo surgir a área conhecida por Computação Evolucionária. A Computação Evolucionária compreende um conjunto de técnicas de busca e otimização inspiradas na evolução natural das espécies. Inicialmente, cria-se uma população de indivíduos que irão interagir, reproduzindo e competindo pela sobrevivência. As técnicas atualmente incluem [1]: Programação Evolucionária; Estratégias Evolucionárias; Algoritmos Genéticos; Programação Genética. O conceito de Programação Genética foi desenvolvido por John Koza [2], [3], possuindo seu alicerce nos trabalhos de John Holland sobre Algoritmos Genéticos [4]. A Programação Genética constitui, hoje, uma área de intensa pesquisa dentro da Inteligência Artificial, dadas a sua simplicidade e robustez. Sua utilização tem sido estendida a problemas de diversas áreas do conhecimento, tais como [5]: Biotecnologia; 10

11 Engenharia elétrica; Análises financeiras; Processamento de imagens; Reconhecimento de padrões; Mineração de dados; Linguagem natural. A Programação Genética já levou a pelo menos 36 resultados que competem com aqueles obtidos por humanos, sendo que, em seis casos, ela permitiu a duplicação da funcionalidade de invenções patenteadas após 1 de janeiro de 2000, o que faz com que ela possa ser assumida como um meio automático de se inventar [6]. A sua fundamentação reside numa das questões principais da ciência da computação, apresentada por Samuel [7]: Como os computadores podem aprender a resolver problemas, sem serem explicitamente programados para tal? A Programação Genética busca responder à questão acima proposta, pois promove a evolução de uma população de programas de computador, com o objetivo de se alcançar a aprendizagem por indução [1]. A idéia central é fazer com que os computadores aprendam a se programar: partindo de especificações de comportamento, o computador deve ser capaz de induzir um programa que as satisfaça por completo, ou, pelo menos, de maneira aproximada [3]. Resumidamente, a Programação Genética funciona da seguinte maneira: uma população de programas de computador é mantida, sendo aplicados operadores genéticos para que os programas sejam modificados e combinados, além de métodos de seleção, para que o processo venha a convergir para uma solução. O objetivo é encontrar uma solução no espaço de todos os programas possíveis, utilizando apenas valores de fitness como orientação no processo de busca [9]. 11

12 O princípio de funcionamento da Programação Genética pode ser representado por um ciclo criar-testar-modificar, que é perfeitamente similar ao ciclo humano de programação: inicialmente, criam-se programas com base no conhecimento que se possui sobre o problema; posteriormente, os programas são testados, sendo que, no caso de não se obter um desempenho apropriado, modificações são realizadas. O ciclo é repetido até que se alcance uma solução apropriada ou até que algum critério de parada seja satisfeito [10]. As especificações de comportamento são, em geral, representadas por meio de um conjunto de valores de entrada-saída, denominados fitness cases. De posse desse conjunto, a Programação Genética busca um programa que [11]: Produza, para cada entrada, a saída correta, sem realizar um mapeamento por meio de alguma forma de tabela de conversão: o programa deverá realmente aprender alguma forma de algoritmo. Possua capacidade de generalização, ou seja, produza saídas corretas para entradas que não fazem parte dos fitness cases. Por manipular programas diretamente, a Programação Genética lida com uma estrutura relativamente complexa e variável. Tradicionalmente, essa estrutura é uma árvore de sintaxe abstrata composta por funções em seus nós internos e por terminais em seus nós-folha. A especificação do domínio do problema é feita simplesmente pela definição dos conjuntos de funções e terminais [3]. Há diversas formas de se representar, computacionalmente, uma árvore. É desejável utilizar uma representação que seja o mais eficiente possível, uma vez que as árvores são intensamente manipuladas pela Programação Genética, ou seja, a representação dos indivíduos é um fator que interfere diretamente no desempenho. A Programação Genética e sua família de ferramentas deverão revolucionar o desenvolvimento tradicional de programas de computador, visto que os métodos tradicionais não são amadurecidos o suficiente para desenvolver automaticamente 12

13 sistemas inteligentes de programação. Assim, a Programação Genética tem obtido alguns avanços na busca pela automação da programação tradicional, e pode-se prever que continuará em intenso desenvolvimento nos próximos anos. O objetivo deste trabalho é desenvolver uma ferramenta computacional baseada em Programação Genética para evoluir, por meio de regressão simbólica, funções para o cálculo dos conseqüentes de regras de modelos nebulosos do tipo Takagi-Sugeno. Este texto está estruturado em cinco capítulos. Após esta introdução, o capítulo 2 apresentará as bases da teoria de Programação Genética. No capítulo 3, são discutidos alguns fundamentos sobre a teoria de sistemas nebulosos, essencialmente sobre o modelo nebuloso do tipo Takagi-Sugeno, e é descrita a metodologia para evolução de funções para cálculo de conseqüentes utilizando programação genética. No capítulo 4, serão apresentados resultados de simulações em alguns domínios de aplicação. Por fim, o capítulo 5 apresenta as conclusões e as perspectivas futuras. 13

14 Capítulo 2 - Programação Genética Introdução A Programação Genética é uma abordagem para a geração automática de programas de computador desenvolvida por John Koza [2], [3]. Em resumo, a técnica é um método que busca, dentro de um espaço grande e restrito de programas de computador, uma solução exata ou pelo menos aproximada para resolver determinado problema. Como resultado de vários anos de pesquisa como naturalista, Charles Darwin publicou, em 1859, o livro Origem das Espécies por meio da Seleção Natural [12]. Darwin dedicou parte de sua vida em uma viagem pelo mundo, estudando a relação entre as espécies e o seu meio-ambiente, concluindo que indivíduos melhores adaptados a um certo ambiente têm mais chance de sobrevivência, reproduzindo-se com mais freqüência, e repassando suas características a seus descendentes. Esse fenômeno é conhecido como Seleção Natural. Com o passar das gerações, a tendência é que as características dos melhores indivíduos sejam disseminadas, de tal modo que os seus descendentes as absorvam, tornando-se, com alta probabilidade, tão ou melhor adaptados do que os seus progenitores. Dessa forma, ao final de muitas gerações, tem-se uma população de indivíduos com características selecionadas naturalmente. Na Programação Genética, trabalha-se com uma população de programas de computador, sendo que o objetivo é promover a evolução dos programas, de modo a encontrar um que resolva apropriadamente um determinado problema. Para tanto, parte-se de uma população inicial aleatória e, a cada geração, aplicam-se os operadores genéticos para simular o processo evolutivo, até que um determinado critério de término seja satisfeito. 14

15 2.2 - Detalhamento da Programação Genética Visão Geral do Algoritmo A Programação Genética pode ser enxergada como uma especialização do Algoritmo Genético, onde a codificação dos indivíduos passa a ser capaz de representar programas de computador. O mecanismo da Programação Genética é similar ao do Algoritmo genético, e pode assim ser sintetizado: 1. Criar aleatoriamente uma população inicial de programas; 2. Executar os passos 2.1, 2.2 e 2.3, até que se alcance um critério de parada: 2.1. Avaliar cada programa, de modo a se ter uma medida de sua qualidade (fitness); 2.2. Selecionar, com base no fitness, os melhores programas; 2.3. Aplicar na população os operadores genéticos; 3. Retornar o melhor programa encontrado. Cada execução dos passos 2.1, 2.2 e 2.3 representa uma nova geração de programas. Tradicionalmente, o critério de término é estabelecido como sendo encontrar uma solução satisfatória ou atingir um número máximo de gerações [3]. Todavia, há abordagens baseadas na análise do processo evolutivo, isto é, o laço permanece enquanto houver melhoria na população. A Figura 2.1 apresenta a estrutura básica do algoritmo de Programação Genética. 15

16 Figura Fluxograma de um Algoritmo Básico de Programação Genética Representação e Codificação A Programação Genética, em sua forma de representação original, utiliza árvores para codificação e representação dos programas, ou seja, os programas são formados pela livre combinação de terminais e funções apropriados para o domínio do problema. O esquema de representação e codificação dos programas utilizado neste trabalho será descrito com mais detalhes na seção Conjuntos de Funções e Terminais Em virtude do fato de a Programação Genética poder ser aplicada em diferentes classes de problemas, as funções e procedimentos para a construção dos programas devem ser escolhidos de acordo com o problema em questão. Em sendo assim, dois conjuntos, o de funções e o de terminais, devem ser estabelecidos para que sejam criados os programas. O conjunto de funções, denotado por F, é constituído por operadores aritméticos, tais como +, -, /, *, 16

17 funções matemáticas, tais como tangente, exponecial, seno, cosseno, operadores lógicos, tais como e, ou, sentenças, tais como IfThenElse, For, Case, DoWhile, dentre outros. Para cada f F, está associada uma aridade 1 positiva e não-nula. O conjunto de terminais, denotado por T, contém constantes, variáveis, e funções de aridade nula. 2 3x 2x 1 Considere o seguinte exemplo: F = { +,,^,/,*} T = {1, 2,3, 4,5, x} A Figura 2.1 apresenta um exemplo de árvore representando a expressão + +. Figura Árvore Representando a Expressão 2 3x 2x Os conjuntos F e T devem ser tais que cada função do conjunto F aceite como argumento qualquer valor que possa ser retornado por qualquer função, ou um terminal. Essa é a propriedade de Fechamento (Closure), definida por John Koza [3], que garante a correta avaliação de qualquer árvore. Uma outra propriedade, ainda relacionada aos conjuntos F e T, e também definida por John Koza [3], diz que os conjuntos F e T devem ser suficientes para representar uma solução para o problema. Essa é a propriedade de Suficiência (Sufficiency), que pode ser óbvia nalgumas vezes, ou exigir prévio conhecimento de como será a solução. 1 A aridade de uma função é igual ao seu número de argumentos. 17

18 Criação da População Inicial A população inicial é, normalmente, criada de maneira aleatória, tal como nos Algoritmos Genéticos [28]. Porém, as árvores são estruturas complexas e sua inicialização deve ser feita de maneira mais cautelosa. A população inicial é um fator determinante na convergência do processo evolutivo, devendo constituir uma amostra representativa do espaço de busca. Com o objetivo de se obter uma população inicial de boa qualidade, diversos métodos para criação da população inicial foram propostos. A seguir, há uma descrição dos métodos mais usuais. Na Programação Genética, é importante que se imponha limites para o tamanho das árvores, para que a população não possua indivíduos de grande complexidade. Normalmente, ao se criar os indivíduos, impõe-se esse limite, que é geralmente especificado por uma profundidade 2 máxima, podendo-se também especificar uma profundidade mínima. Uma outra abordagem consiste em limitar o tamanho 3 ao invés da profundidade das árvores Método Grow [3] O método Grow permite a criação de árvores com profundidade variável: a escolha dos nós é feita aleatoriamente entre funções e terminais, respeitando-se uma profundidade máxima. A Figura 2.2 apresenta o algoritmo desse método. 2 A profundidade de um nó n em uma árvore é o comprimento de caminho da raiz até n, e a profundidade de uma árvore é igual à profundidade do nó de maior profundidade [13]. 3 O tamanho de uma árvore é igual ao número de nós que a compõem [3]. 18

19 Dados: Profundidade máxima D Conjunto de funções F e terminais T Faça: Árvore = Grow(0) Grow (profundidade d) Retorna: árvore de profundidade máxima D d Se d = D Retorne aleatoriamente um terminal Senão Escolha aleatoriamente um elemento e {F U T} Se e F Para cada argumento a de e Preencha a com Grow (d + 1) Retorne e com todos os argumentos preenchidos Figura Algoritmo do Método Grow para Criação de Árvores Método Full [3] As árvores criadas com o método Full serão completas, ou seja, a profundidade de qualquer nó terminal é sempre igual à profundidade máxima especificada. Para tanto, basta escolher funções para os nós cuja profundidade seja inferior à desejada, e terminais para os nós de profundidade máxima. 19

20 Método Ramping [3] No instante da criação, a população é dividida em segmentos. A cada um dos segmentos, é atribuída uma profundidade máxima, que varia entre a profundidade mínima real e a máxima real, sendo essa atribuição feita, normalmente, em ordem crescente. Considere-se, por exemplo, uma população de 50 indivíduos, e suponha-se que a profundidade mínima seja 2 e a máxima 6. Assim, a população seria dividida em cinco segmentos, cada um com 10 indivíduos, sendo que as profundidades máximas para cada um dos segmentos seriam 2, 3, 4, 5 e Método Ramped-Half-and-Half [3] Segundo Jonh Koza [3], é o método mais recomendado, pois permite a criação de indivíduos com uma grande diversidade, produzindo árvores com formas e tamanhos distintos. O método consiste em fazer com que uma metade de um segmento produzido pelo método Ramping seja criada com o método Grow, e a outra metade com o método Full. Segundo Luke [14], o método possui algumas desvantagens: Impõe uma faixa fixa de profundidades, que normalmente varia entre 2 e 6, independentemente do tamanho da árvore. Dependendo da aridade de cada função, mesmo com a mesma profundidade, podem ser geradas árvores de tamanhos e complexidades muito diferentes; A escolha da profundidade máxima é feita de maneira proporcional, ao invés de aleatória; Se o conjunto de funções for maior do que o de terminais, como ocorre na grande maioria das vezes, a tendência é gerar a maior árvore possível ao se aplicar o método Grow. 20

21 Método Randon Branch [15] O método Random-Branch permite a criação de árvores respeitando um tamanho máximo ao invés de uma profundidade. A Figura 2.3 apresenta o algoritmo desse método. Dados: Tamanho máximo S Conjunto de funções F e terminais T Randon-Branch (tamanho máximo desejado S) Retorna: árvore de tamanho S Se um não-terminal com aridade S não existe Retorne aleatoriamente um terminal Senão Escolha aleatoriamente um não terminal n com aridade S Seja b n a aridade de n Para cada argumento a de n Preencha a com Random-Branch( a / b n ) Retorne n com todos os argumentos preenchidos Figura Algoritmo do Método Randon Branch para Criação de Árvores. Uma desvantagem do método é que há muitas árvores que não são possíveis de serem produzidas. Isso torna o método muito restritivo, apesar de sua complexidade ser linear [16]. 21

22 Método Uniform [17] O método Uniform objetiva garantir que as árvores sejam geradas uniformemente dentro do conjunto de todas as árvores possíveis. O algoritmo é extremamente complexo, pois necessita calcular em várias tabelas o número de árvores possíveis de serem geradas para cada tamanho desejado. Assim, o seu custo computacional é extremamente elevado e sua utilização pouco recomendada Métodos Probabilistic Tree Creation 1 e 2 [14] Os métodos Probabilistic Tree Creation 1 e 2 trabalham com probabilidades de ocorrência das funções nas árvores. O método Probabilistic Tree Creation 1 é uma variação do método Grow, na qual, para cada terminal t T, associa-se uma probabilidade de escolha q t, e, para cada função f F, associa-se uma probabilidade de escolha q f. Antes da geração de uma árvore, o algoritmo calcula uma probabilidade p de se escolher uma função ao invés de um terminal, de modo que se crie uma árvore com tamanho esperado E tree. A probabilidade p é obtida por meio da Equação 2.1: 1 1 Etree p =, onde bf é a aridade de função f qb f f f F (2.1) Na Figura 2.4 está apresentado o algoritmo do método Probabilistic Tree Creation 1. 22

23 Dados: Profundidade máxima D Conjunto de funções F e terminais T Probabilidade p de escolha de uma função ao invés de um terminal Probabilidades q t, para cada t T, e q f, para cada f F Faça: Árvore = PTC1(0) PTC1 (profundidade d) Retorna: árvore de profundidade máxima D d Se d = D Retorne aleatoriamente um terminal de T, baseando-se em q t Senão Se uma função deve ser escolhida, baseando-se em p Escolha aleatoriamente f F, baseando-se em q f Para cada argumento a de f Preencha a com PTC1 (d + 1) Retorne f com todos os argumentos preenchidos Senão Retorne aleatoriamente um terminal t T, baseando-se em q t Figura Algoritmo do Método Probabilistic Tree Creation 1 para Criação de Árvores. O método Probabilistic Tree Creation 2 utiliza, além de um tamanho máximo S, uma distribuição de probabilidades para os tamanhos de 1 a S. Assim, além de se controlar o tamanho esperado da árvore, controla-se também a distribuição desses tamanhos. 23

24 Funções de Aptidão A função de aptidão é responsável por mensurar o fitness de cada indivíduo, ou seja, medir a qualidade da solução representada pelo indivíduo em relação aos demais indivíduos da população. A avaliação de fitness é fortemente dependente da área de aplicação, e pode ser realizada direta ou indiretamente. Normalmente, para que se possa realizar a avaliação de aptidão, deve-se possuir um conjunto de treinamento, conhecido como fitness cases, que contém valores de entrada e saída. Para cada indivíduo, é realizado o processamento das entradas, e o resultado obtido é comparado com o resultado desejado: quanto mais próximos forem esses resultados, melhor é o indivíduo. Assim, o fitness é que permite a diferenciação entre os melhores e piores indivíduos, direcionando o algoritmo de Programação Genética na busca pela solução. Em sendo assim, a escolha da função de aptidão deve ser realizada com cautela. Jonh Koza [3] propôs os seguintes métodos para avaliação de aptidão: Raw Fitness (Aptidão Nata): representa a medida de fitness dentro do próprio domínio do problema. O método mais comum de aptidão nata é a avaliação do erro cometido total, isto é, a soma de todas as diferenças absolutas entre o resultado obtido pelo programa e o valor correto. Uma possível variação, que reforça a diferença entre os valores de fitness dentro da população, é utilizar a soma dos quadrados das diferenças entre o resultado obtido pelo programa e o valor correto. Standardized Fitness (Aptidão Padronizada): como a aptidão nata depende do domínio do problema, um bom indivíduo pode ser aquele que possuir um pequeno valor, em caso de avaliação do erro cometido, ou um grande valor, em caso de avaliação da taxa de eficiência. A avaliação da aptidão padronizada é feita por meio de uma função que adapta o valor da aptidão nata de forma que, quanto melhor o programa, menor deve ser a aptidão padronizada, sendo que o melhor programa apresentará o valor 24

25 zero como aptidão padronizada, independentemente do domínio do problema. Adjusted Fitness (Aptidão Ajustada): seja s(i, t) a aptidão padronizada do indivíduo i na geração t. Então, a aptidão ajustada a(i, t) é calculada utilizando-se a Equação ait (, ) = 1 + s ( it, ) (2.2) A aptidão ajustada varia entre 0 e 1, sendo que os melhores indivíduos são aqueles que possuírem maior aptidão. Segundo Jonh Koza [3], a aptidão ajustada promove uma melhor separação entre os indivíduos, quando a aptidão padronizada se aproxima de zero, ou seja, pequenas diferenças entre os melhores indivíduos ficam mais evidentes. Normalized Fitness (Aptidão Normalizada): seja a(i, t) a aptidão ajustada do indivíduo i na geração t. Então, a aptidão normalizada n(i, t) é calculada utilizando-se a Equação 2.2, de modo que a soma das aptidões normalizadas dentro de uma população vale sempre 1. nit (, ) = m k= 1 ait (, ) akt (, ) (2.3) Técnicas de Seleção O processo de seleção é responsável por escolher dentro da população os indivíduos que serão repassados para a geração seguinte, de modo que os indivíduos que possuírem melhores valores de fitness tenham maior probabilidade de serem selecionados. A seguir será apresentada uma descrição das técnicas de seleção mais usuais. 25

26 Seleção Proporcional [4] Proposta por Jonh Holland [4], consiste em dispor a aptidão normalizada numa roleta, sendo que cada indivíduo da população ocupa uma fatia da roleta proporcional à sua aptidão normalizada. A seleção é realizada com a geração de um número aleatório entre zero e um, representando a posição da agulha da roleta e indicando o indivíduo a ser selecionado. A principal desvantagem dessa técnica é a possibilidade de ocorrer convergência prematura Seleção por Truncamento [18] Apresentada por Muhlenbein [18], consiste em realizar a seleção dentro de um percentual da população, determinado por um valor de limiar T. Por exemplo, se T = 0,3, a seleção é feita dentre os 30% melhores indivíduos da população Seleção por Torneio [19] Apresentada por David Goldberg [19], é realizada da seguinte maneira: t indivíduos são escolhidos aleatoriamente na população, e o melhor deles é selecionado, sendo que o procedimento é repetido até que se complete a população para a geração seguinte. O parâmetro t é conhecido como o tamanho do torneio Seleção por Nivelamento Linear Essa técnica, proposta por Baker [20], objetiva eliminar a principal desvantagem da seleção proporcional, que é o risco de convergência prematura, e consiste em ordenar os N indivíduos de acordo com os valores de aptidão, de modo que o primeiro nível é associado ao pior indivíduo, e o último nível, ao melhor. Feito isso, associa-se a cada indivíduo i uma probabilidade p i de seleção, de acordo com a Equação i 1 + pi = n + ( n n ), onde i {1,2,..., N}, n 0 e n + n = 2 N N 1 (2.3) 26

27 O valor de n + N representa a probabilidade do melhor indivíduo ser escolhido, e o valor de n N representa a probabilidade do pior indivíduo ser escolhido. É interessante perceber que cada indivíduo pertence a um único nível, isto é, mesmo que dois indivíduos tenham a mesma aptidão, eles apresentam probabilidades diferentes de serem escolhidos Seleção por Nivelamento Exponencial A diferença entre as seleções por nivelamento linear e exponencial reside no fato de que, na seleção por nivelamento exponencial, as probabilidades p i de seleção de cada indivíduo i são exponencialmente ponderadas, sendo utilizado um parâmetro c, que varia entre zero e um, como base. Quanto mais próximo de um for o parâmetro c, menos intensa é a ponderação exponencial. Assim como na seleção por nivelamento linear, os N indivíduos são ordenados de acordo com os valores de fitness, de modo que o primeiro nível é associado ao pior indivíduo, e o último nível, ao melhor. Feito isso, associa-se a cada indivíduo i uma probabilidade p i de seleção, de acordo com a Equação 2.4 [20]. 1 c N i pi = c, onde i {1, 2,..., N} N 1 c (2.5) Operadores Genéticos Tal como no Algoritmo Genético, a Programação Genética faz uso de técnicas que promovam combinação e modificação dos materiais genéticos da população. A seguir, serão detalhados os principais operadores genéticos [3]. 27

28 Reprodução Um indivíduo é selecionado, com base em alguma técnica de seleção dentre as apresentadas na seção 2.2.5, e copiado para a próxima geração Cruzamento O operador de cruzamento pode ser realizado por meio da troca de subárvores dos progenitores. O procedimento é realizado da seguinte maneira: aleatoriamente, um nó é escolhido em cada progenitor. Em seguida, as subárvores cujas raízes correspondam aos nós escolhidos são comutadas, gerando-se dois novos indivíduos. A escolha dos pares de progenitores é feita aleatoriamente, de modo que, para uma população de N indivíduos, são gerados N 2 pares, sendo que um indivíduo participa de apenas um par. Para cada um dos pares, o cruzamento ocorre respeitando uma probabilidade p c de cruzamento. A propriedade de fechamento, apresentada na seção 2.2.3, é essencial para que se possa escolher qualquer nó nos progenitores. A Figura 2.5 apresenta um exemplo de cruzamento entre dois indivíduos A e B, gerando os novos indivíduos A e B. 28

29 Figura Visualização do Cruzamento entre Dois Indivíduos Mutação A mutação é um operador genético que tem a finalidade de provocar perturbações na informação genética da população, sendo o grande responsável pela introdução de novas informações, ampliando a diversidade e permitindo a exploração de novas regiões do espaço de busca. No contexto da Programação Genética, a mutação padrão é implementada da seguinte maneira: para cada indivíduo, respeitando-se uma probabilidade p m de mutação, um nó é escolhido aleatoriamente. A árvore cuja raiz é o nó escolhido é excluída, e substituída por uma outra árvore, gerada aleatoriamente. A Figura 2.6 apresenta um exemplo de mutação padrão num indivíduo A, gerando um novo indivíduo A. 29

30 Figura Visualização da Mutação Padrão Num Indivíduo. Existem duas variações da mutação padrão: alelo e shrink. Na mutação alelo, um nó da árvore é escolhido aleatoriamente e substituído por outro, escolhido dentre os conjuntos de funções e terminais, de modo que o novo nó tenha a mesma aridade do nó original. A Figura 2.7 apresenta um exemplo de mutação alelo num indivíduo A, gerando um novo indivíduo A. Figura Visualização da Mutação Alelo Num Indivíduo. Na mutação shrink, o tamanho do indivíduo é reduzido. O procedimento consiste em, depois de escolhido um nó não-terminal, selecionar um de seus ramos, e inseri-lo na posição do nó não-terminal escolhido, excluindo-se os demais ramos. A Figura 2.8 apresenta um exemplo de mutação shrink num indivíduo A, gerando um novo indivíduo A. 30

31 Figura Visualização da Mutação Shrink Num Indivíduo Permutação A permutação é um operador genético que altera a ordem dos argumentos de uma função qualquer, o que faz com que ele possa ser aplicado apenas em nós não-terminais de aridade maior do que 1. A Figura 2.9 apresenta um exemplo de permutação num indivíduo A, gerando um novo indivíduo A. Figura Visualização da Permutação Num Indivíduo Edição O operador de edição promove uma simplificação nos indivíduos, sempre que possível, eliminando redundâncias e elementos que não executam nenhuma tarefa. Como exemplo, pode-se citar a expressão substituída pelo número um. ( ) + cos ( ), que pode ser 2 2 sen x x 31

32 A grande desvantagem desse operador é o seu alto custo computacional, o que faz com que sua utilização não seja fortemente recomendada. Uma possível abordagem é realizar a edição apenas no melhor indivíduo encontrado ao final do processo evolutivo Critérios de Parada O critério mais usual de parada na Programação Genética é impor um número máximo de gerações [3], mas, para cada problema, outros critérios podem ser estabelecidos. Uma outra abordagem é manter a execução enquanto houver melhoria na aptidão média da população [21]. 32

33 Capítulo 3 - Projeto de Estruturas Neuro-Fuzzy do Tipo Takagi-Sugeno Utilizando Programação Genética Sistemas Nebulosos Os sistemas nebulosos, também conhecidos como sistemas de inferência nebulosa, sistemas nebulosos baseados em regras, ou modelos nebulosos, representam a mais importante ferramenta baseada na teoria dos conjuntos nebulosos. A sua aplicação vem sendo realizada com sucesso em diversas áreas, tais como: controle automático, classificação e reconhecimento de padrões, tomada de decisão, sistemas inteligentes, previsão de séries temporais e robótica. A estrutura básica de um sistema nebuloso possui três componentes conceituais: uma base de regras, que contém o conjunto de regras nebulosas; uma base de dados, que define as funções de pertinência utilizadas nas regras nebulosas, e um mecanismo de raciocínio, que processa o raciocínio nebuloso para obter a saída ou conclusão, baseado nas regras e fatos conhecidos. É importante ressaltar que um sistema nebuloso básico pode receber como entradas tanto valores determinísticos como conjuntos nebulosos, mas as saídas são quase sempre conjuntos nebulosos. Todavia, nalgumas vezes, é necessária uma saída determinística, o que implica na necessidade de um método de defuzzificação, responsável por extrair de um conjunto nebuloso um valor determinístico que o represente [22]. A Figura 3.1 apresenta um diagrama de blocos de um sistema nebuloso com saída determinística, no qual a linha pontilhada representa um sistema nebuloso básico com saída determinística, e o bloco de deffuzificação representa a transformação de uma saída nebulosa em saída determinística. 33

34 Figura Diagrama de Blocos de um Sistema Nebuloso O Modelo Nebuloso de Takagi-Sugeno O modelo Takagi-Sugeno [23] foi proposto como resultado de um esforço para se desenvolver, de forma sistemática, uma abordagem para a geração de regras nebulosas a partir de dados de entrada-saída. O conjunto de regras para o modelo nebuloso do tipo Takagi-Sugeno, considerando n entradas e M regras, está apresentado na Figura 3.2. Regra 1: Se ( x é F ) e ( x é F ) e... e ( x é F ) e ( x é F ) i i n n então y1 = f( x1, x2,..., xn ) Regra l: Se ( x é F ) e ( x é F ) e... e ( x é F ) e ( x é F )... l l l l i i n n então yl = f( x1, x2,..., xn) Regra M: Se ( x é F ) e ( x é F ) e... e ( x é F ) e ( x é F ) M M M M i i n n então ym = f( x1, x2,..., xn) l Fi = conjunto nebuloso l para a entrada i, definido pela função de pertinência µf l. i Figura Conjunto de regras para um modelo Takagi-Sugeno genérico com M regras e n entradas 34

35 A notação utilizada é a seguinte: o o o x i : entrada i; l F i : conjunto nebuloso l para a entrada i; f l : função para cálculo do conseqüente da regra l. As funções para o cálculo dos conseqüentes, f l, normalmente são polinômios, cujo grau define a ordem do modelo. Os modelos mais comuns são os de ordem zero, onde os conseqüentes são constantes, e os de ordem 1, onde os conseqüentes são lineares. Todavia, modelos mais gerais, como o modelo com conseqüentes não-lineares apresentado em [24], têm sido propostos. O fato dos conseqüentes das regras serem calculados por meio de uma função justifica a escolha do modelo do tipo Takagi-sugeno, uma vez que, tal como será detalhado na seção 3.2.1, a Programação Genética será utilizada como ferramenta de regressão simbólica para determinar a forma de tais funções. Uma metodologia bastante difundida, e de eficiência comprovada, para o projeto de sistemas nebulosos do tipo Takagi-Sugeno é o ANFIS [22], que apresenta algumas desvantagens: como discutido por [26], o uso do ANFIS é restringido pela quantidade de parâmetros a serem definidos pelo usuário, o que compromete a automatização do projeto, e, conforme apresentado por [27], pelo problema dos mínimos locais, resultante do uso do método de otimização baseado no gradiente, que pode comprometer a eficácia do processo de aprendizado do ANFIS em algumas aplicações específicas. Para exemplificar o funcionamento do processamento do raciocínio nebuloso no modelo Takagi-Sugeno, será dado um exemplo de um modelo de ordem um. Considere um sistema com duas entradas, x e y, e uma saída z. Sejam as regras: Regra 1: Se x é A 1 e y é B 1, então z 1 = p 1 *x + q 1 *y + r 1 Regra 2: Se x é A 2 e y é B 2, então z 2 = p 2 *x + q 2 *y + r 2 35

36 A Figura 3.3 ilustra graficamente o processamento do raciocínio, considerando x e y como entradas determinísticas. Figura Visualização do Processamento de Entradas de um Modelo Nebuloso de Takagi-Sugeno de Ordem Um Uma vez que cada regra tem saída não-nebulosa, e a saída final é obtida pela média ponderada dessas saídas, não existe a necessidade da transformação da saída nebulosa em não-nebulosa. O peso de cada uma das regras é determinado da seguinte maneira: cada uma das entradas é avaliada dentro dos respectivos conjuntos nebulosos da regra l, gerando uma quantidade de valores igual à quantidade de regras. Em seguida, aplicando-se nesses valores um operador de t-norma, tem-se o peso w l da regra. A Equação 3.1 apresenta a fórmula para cálculo da saída, considerando um modelo Takagi-Sugeno com M regras e n entradas, tal como apresentado na Figura 3.2. y = M l= 1 M l= 1 w y l w l l (3.1) A notação utilizada é a seguinte: o w i : peso da regra i; 36

37 o o y s : saída do modelo; y i : conseqüente da regra i. A Figura 3.4 ilustra o procedimento de determinação do peso w da regra l. l Figura Visualização da Determinação do Peso de Uma Regra Considerando o produto como operador de t-norma, o valor do peso uma regra é determinado por meio da equação 3.2: w l de w l n = µ F i= 1 l i ( x ) i (3.2) Projeto de Estruturas Neuro-Fuzzy do Tipo Takagi-Sugeno Utilizando Programação Genética Observando-se o conjunto de regras do modelo Takagi-Sugeno genérico com M regras e n entradas, apresentado na Figura 3.2, percebe-se que os seguintes parâmetros devem ser determinados: o Funções para o cálculo dos conseqüentes das regras. o Quantidade de Regras; 37

38 o Tipos das funções de pertinência dos conjuntos nebulosos e seus respectivos parâmetros; Nas seções seguintes deste capítulo, será descrita a metodologia baseada em Programação Genética que foi utilizada para a evolução de funções para o cálculo dos conseqüentes de regras de modelos de inferência nebulosa de Takagi- Sugeno e para a determinação dos demais parâmetros necessários ao modelo Determinação das Funções Para o Cálculo dos Conseqüentes das Regras Regressão Simbólica de uma Expressão A regressão simbólica consiste em inferir simbolicamente uma expressão, tomando-se como base um conjunto de valores de entrada-saída, que, no contexto da Programação Genética, é representado pelos fitness cases. O objetivo essencial é encontrar uma expressão simbólica que minimize a discrepância entre os valores desejados e os valores determinados pela expressão simbólica. n Sejam F s o conjunto de todas as funções, f : R R, admissíveis para o problema, { p1, p2,..., p k } o conjunto de pontos conhecidos, e { Y 1, Y 2,..., Y k } o conjunto de valores tais que Y i corresponde ao valor observado para o ponto p i, e k o número de pontos conhecidos. Então, a regressão simbólica consiste em encontrar uma função Equação 3.3: * f, dita a mais adaptada aos pontos fornecidos, segundo a f * = arg min d( f, Y ) f F s (3.3) A função de discrepância d( f, Y ) mede a discrepância entre os valores observados e os valores determinados pela função * f. Uma escolha comum para 38

39 a função d( f, Y ) corresponde a tomar o somatório de uma potência dos erros absolutos, e está apresentada na Equação 3.4: k d( f, Y) = f( p ) Y i= 1 i i q (3.4) Quando o parâmetro q é escolhido como 2, tem-se um ajuste pelo método dos mínimos quadrados. Uma segunda escolha possível para a função discrepância é tomá-la como sendo o máximo dos erros absolutos. Essa função é apresentada na Equação 3.5. d( f, Y) = max f( p ) Y 1 i k i i (3.5) Uma outra alternativa, apresentada na Equação 3.6, é tomá-la como sendo a média dos erros absolutos. d( f, Y) = med{ f( p ) Y, f( p ) Y,..., f( p ) Y } k k (3.6) Programação Genética e Regressão Simbólica As técnicas clássicas para o ajuste de funções consistem, normalmente, em determinar parâmetros de modelos polinomiais pré-definidos, o que as torna pouco flexíveis e pouco genéricas. Um método mais flexível e genérico deve identificar simultaneamente a estrutura e os parâmetros da função, o que representa um imenso espaço de busca, que, como já foi evidenciado no Capítulo 2, pode ser representado e manipulado utilizando-se a Programação Genética. A seguir será apresentado um exemplo simples de execução da Programação Genética, que confirma a potencialidade dessa ferramenta em problemas de regressão simbólica. 39

40 Exemplo de Execução da Programação Genética: Regressão Simbólica de um Polinômio Quadrático Nessa seção, será apresentada uma execução ilustrativa da Programação Genética [24], para demonstrar a sua potencialidade em problemas de regressão simbólica Objetivo O objetivo é criar automaticamente um programa que aproxime o polinômio quadrático x 2 + x + 1, no intervalo [-1, 1] Conjuntos de Funções e Terminais O conjunto de terminais será representado por: T = {, x R }, onde R denota constantes reais dentro de um determinado intervalo, como [-3, 3]. O conjunto de funções será representado por: F = { +,,*,%}, correspondendo às operações de adição, subtração, multiplicação e divisão protegida, sendo que todas elas possuem aridade 2. A função divisão protegida, denotada por %, foi proposta por John Koza [3], e retorna 1 em caso de divisão por zero, retornando o resultado da divisão, caso contrário Avaliação de Fitness A avaliação de fitness foi realizada tomando-se a integral do erro absoluto entre a expressão representada pelo indivíduo e a expressão a ser aproximada, de modo que, quanto menor o fitness, melhor é o indivíduo, sendo que o fitness igual a 0 corresponde a uma aproximação perfeita. É importante ressaltar que, na prática, normalmente não se conhece a expressão a ser aproximada, e a utilização da integração analítica é inviável. Assim, uma alternativa seria utilizar algum procedimento de integração numérica. 40

41 Parâmetros Por se tratar de um exemplo simplificado, a população será constituída de 4 indivíduos, e apenas os operadores de cruzamento e mutação serão utilizados. O operador de cruzamento será efetuado entre dois indivíduos e a mutação será efetuada em um indivíduo Critério de Parada A execução será encerrada quando se encontrar um indivíduo com fitness menor do que 0, População Inicial O processo de geração da população inicial será omitido. A Figura 3.5 apresenta a população inicial em forma de árvores, além de uma visualização gráfica do fitness de cada indivíduo. Figura População Inicial e Visualização Gráfica dos Valores de Fitness dos Indivíduos Os valores de fitness para os indivíduos a, b e c e d são, respectivamente: 0,67, 1, 1,67 e 2,67. 41

42 Segunda Geração Suponha-se que apenas o indivíduo c sofra a seguinte mutação: o terminal 2 é escolhido como nó base para a mutação, sendo substituído por uma árvore correspondente à expressão x% x (divisão protegida, que retorna um em caso de divis). Nesse caso, a mutação faz com que o fitness mude de 1,67 para 1, ou seja, promove uma melhoria no indivíduo. Após a mutação, realiza-se o cruzamento. Suponha que os indivíduos a e b da população se cruzem, que no indivíduo a o nó raiz da subárvore a ser permutada corresponda ao nó que realiza a operação de adição, representado por +, e que no indivíduo b o nó raiz da subárvore a ser permutada corresponda ao nó terminal x mais à esquerda do nó que realiza a operação de multiplicação, representado por *. Por ser o indivíduo com o melhor fitness da primeira geração, o indivíduo a é selecionado e copiado para a geração seguinte. A Figura 3.6 apresenta a população da segunda geração, em forma de árvores, após a mutação e o cruzamento. Figura População da Segunda Geração O indivíduo b da segunda geração é equivalente à expressão x 2 + x + 1, e seu fitness é nulo e menor do que 0,01. Assim, a execução é encerrada e o indivíduo b corresponde à solução obtida. 42

43 Comentários O exemplo apresentado na seção é simples, mas evidencia que a Programação Genética é uma ferramenta de grande viabilidade para a resolução de problemas de regressão simbólica. Um outro ponto a ser destacado é que esse exemplo mostra como o operador de cruzamento é importante e poderoso: o indivíduo que representa a solução final foi fruto do cruzamento entre os indivíduos a e b da população inicial, herdando dos seus progenitores boas 2 informações genéticas: de b o termo quadrático ( x ) e de a o termo linear ( x ) Aplicando Programação Genética como Ferramenta de Regressão Simbólica para Determinação das Funções Para o Cálculo dos Conseqüentes das Regras A metodologia desenvolvida neste trabalho utiliza a programação genética como ferramenta de regressão simbólica para a determinação das funções para o cálculo dos conseqüentes das regras de Modelos Nebulosos de Takagi-Sugeno, com a configuração de M regras e n entradas, apresentada na seção O funcionamento é simples: durante um número pré-determinado de gerações, tenta-se resolver o problema encontrando apenas uma função, ou seja, realizar a programação genética pura. Em seguida, é iniciado o processo de acréscimo de regras nebulosas: durante o mesmo número pré-determinado de gerações, evoluise a função de cada regra, até um número máximo de regras: ao se acrescentar uma regra, as demais são mantidas inalteradas. O encerramento do processo evolutivo se dá ou por se atingir uma determinada precisão, ou por se alcançar um número máximo de regras. Todos os modelos gerados ao longo do processo evolutivo são armazenados, para que, posteriormente, se possa escolher aquele que fornece o melhor resultado. 43

44 Determinação da Quantidade de Regras Tal como apresentado na seção , as regras nebulosas são acrescentadas gradativamente, até que se alcance uma determinada precisão ou um número máximo de regras, sendo que todos os modelos obtidos ao longo do processo evolutivo são armazenados, para que se possa escolher o melhor dentre eles. A escolha do melhor modelo não é realizada pelo programa implementado, e deve ser feita pelo usuário Determinação dos Tipos de Funções de Pertinência dos Conjuntos Nebulosos e seus Respectivos Parâmetros Observando-se o modelo Takagi-Sugeno genérico com M regras e n entradas, apresentado na Figura 3.2, percebe-se que a quantidade de conjuntos nebulosos para cada entrada é igual à quantidade de regras. Isso implica que, ao se acrescentar uma regra, deve ser acrescentado um conjunto nebuloso para cada uma das entradas. Sendo assim, um critério para determinação dos conjuntos nebulosos, à medida que as regras são acrescentadas, deve ser determinado. Na implementação feita para este trabalho, o critério adotado foi o seguinte: os conjuntos nebulosos possuem funções de pertinência gaussianas, que são criadas com médias uniformemente espaçadas no universo de discurso de cada variável, sendo que o ponto de cruzamento entre as funções gaussianas se dá para o valor de pertinência igual a 0.5. Naturalmente, a cada regra acrescentada, os conjuntos nebulosos são novamente determinados. A Figura 3.7 mostra um exemplo no qual há cinco conjuntos nebulosos. 44

45 Figura Funções de Pertinência dos Conjuntos Nebulosos Detalhamento da Implementação Realizada A implementação foi realizada utilizando-se o MATLAB 6.5. A seguir, está um breve resumo das técnicas utilizadas na implementação: o Geração da população inicial: foi utilizado o método grow, detalhado na seção , com uma adaptação: ao invés de se trabalhar com uma profundidade máxima, trabalha-se com um número máximo de funções. o Seleção: foi utilizada a técnica da seleção proporcional, detalhada na seção o Mutação: foi utilizada a mutação padrão, apresentada na seção o Cruzamento: o cruzamento foi realizado tal como detalhado na seção o Avaliação de fitness: a avaliação de fitness foi realizada utilizando-se o Raw Fitness, ou Aptidão Nata, especificamente a soma dos erros quadráticos, que corresponde à utilização da Equação 7, apresentada na seção , com o parâmetro q com o valor igual a dois. 45

46 Representação dos Indivíduos Tal como apresentado na seção 2.2.2, a Programação Genética, em sua forma original, utiliza árvores para codificação e representação dos programas. As árvores são estruturas difíceis de serem manipuladas computacionalmente. Em função dessa dificuldade, foi proposta e implementada uma representação aonde os indivíduos são codificados em forma de uma matriz, em que cada linha corresponde a uma função da árvore. Para cada linha, as colunas têm a seguinte representatividade: o Coluna 1: função a ser aplicada. o Colunas 2 a (n + 1), sendo n o número de argumentos da função (aridade): tipo dos argumentos para a função a ser aplicada, podendo ser constante, variável, ou uma nova função a ser encadeada. o Colunas (n + 2) a (2n + 1): valores para os argumentos. Se o argumento for do tipo constante, o valor corresponde ao índice dentro do vetor de constantes; se o argumento for do tipo variável, o valor corresponde ao índice da variável, e se o argumento corresponder ao encadeamento de uma função, o valor indica a posição relativa da linha correspondente à função a ser encadeada. Para exemplificar o funcionamento da codificação utilizada, será dado um exemplo. Considere os seguintes dados: o Funções Disponíveis - [+ - *]: Índice 1: Adição. Índice 2: Subtração. Índice 3: Multiplicação. o Constantes Disponíveis - [1 2 3]: 46

47 Índice 1: Constante igual a 1. Índice 2: Constante igual a 2. Índice 3: Constante igual a 3. o Argumentos Disponíveis - [ C V I ]: Índice 1: o argumento será uma constante. Índice 2: o argumento será uma variável. Índice 3: o argumento será o encadeamento de outra função. A Figura 3.8 mostra um exemplo de um indivíduo codificado na forma matricial, enquanto as Figuras 3.9 e 3.10 apresentam, respectivamente, a árvore e a expressão correspondentes Figura Exemplo de Indivíduo Codificado na Forma Matricial Figura Árvore Correspondente (( X X * X )* X ) + ( X *2) ( X X )* X + 2* X Expressão : X X + 2* X Figura Expressão Correspondente 47

48 A matriz apresentada na Figura 3.8 será analisada linha por linha. Na primeira linha, tem-se, na primeira coluna, o número um, indicando a função de adição; na segunda e na terceira colunas, tem-se o número 3, indicando que a função de adição receberá como primeiro e segundo argumentos o encadeamento de outra função; o número 1 contido na quarta coluna indica que a função correspondente ao primeiro argumento está uma linha abaixo, ou seja, na segunda linha, e o número 4 contido na quinta coluna indica que a função correspondente ao segundo argumento está quatro linhas abaixo, ou seja, na quinta linha. Será analisada, agora, a quinta linha: tem-se, na primeira coluna, o número 3, indicando a função de multiplicação; na segunda coluna, tem-se o número 2, o que indica que o primeiro argumento da função é uma variável; na terceira coluna, tem-se o número 1, que indica que o segundo argumento da função é uma constante; por fim, o número 1 contido na quarta coluna indica que a variável correspondente ao primeiro argumento é a de índice 1, e o número 2 contido na quinta coluna indica que a constante correspondente ao segundo argumento está na segunda posição do vetor de constantes. Agora, será apresentada a análise da segunda linha, que corresponde ao primeiro argumento da função de adição da primeira linha: o número 3 contido na primeira coluna indica que a função é de multiplicação; o primeiro argumento é uma função, dado o número 3 presente na segunda coluna, e o segundo argumento é uma variável, dado o número 2 presente na terceira coluna; a função correspondente ao primeiro argumento está uma linha abaixo, ou seja, na terceira linha, dado o número 1 contido na quarta coluna, e a variável correspondente ao segundo argumento é a de índice 1, dado o número 1 contido na quinta coluna. Agora, será detalhada a terceira linha, correspondente ao primeiro argumento da função de multiplicação da segunda linha: o número 2 presente na primeira coluna indica que a função é de subtração; o número 2 contido na segunda coluna indica que o primeiro argumento é uma variável; o número 3 contido na terceira coluna indica que o segundo argumento é uma função; o número 1 presente na quarta coluna indica que a variável correspondente ao primeiro argumento é a de índice 1, e o número 1 contido na quinta coluna indica que a função correspondente ao segundo argumento está uma linha abaixo, ou seja, na quarta linha. Para finalizar, será analisada a quarta linha: a função é de multiplicação, dado o número 3 48

49 presente na primeira coluna; os dois argumentos são variáveis, visto que, na segunda e terceira colunas, tem-se o número 2, e as duas variáveis são de índice 1, pois na quarta e quinta colunas tem-se o número Parâmetros de Entrada O programa implementado recebe os seguintes parâmetros de entrada: o Precisão desejada para o valor do erro quadrático acumulado. o Fitness Cases: matriz com padrões de entrada, sendo que cada linha representa um padrão, e vetor contendo as saídas desejadas para da padrão de entrada. o Número de constantes aleatórias: as constantes aleatórias são geradas com base nos valores máximo e mínimo encontrados dentro dos fitness cases. o Constantes fixas: pode-se optar pela imposição da utilização de algumas constantes. o Probabilidades de cruzamento e mutação. o Número máximo de funções para os indivíduos da população inicial: esse parâmetro é utilizado no método grow, para a criação da população inicial, e limita a quantidade de funções presentes em cada indivíduo. o Número de gerações por regra: determina o número máximo de gerações para evolução da função do conseqüente de cada regra. o Número máximo de regras. o Número de Indivíduos da população. o Elitismo: pode escolher por habilitar ou não a utilização de elitismo 49

50 o Intervalo para apresentação e armazenamento de resultados parciais: corresponde ao intervalo de gerações para apresentação na tela e armazenamento em disco de resultados parciais. o Funções ativas: indica as funções a serem utilizadas nos indivíduos. o Arquivo: string que será utilizada para o nome dos arquivos armazenados em disco. 50

51 Capítulo 4 - Simulações e Resultados O objetivo deste capítulo é testar, em alguns domínios de aplicação, a ferramenta desenvolvida, para que se verifique a sua funcionalidade. A ferramenta é aplicada em um problema de aproximação de função não-linear, em um problema de identificação de sistema dinâmico não-linear, em um problema de predição de série temporal caótica, e em um problema de classificação de padrões. A metodologia adotada para apresentação dos resultados foi a seguinte: para os quatro problemas, o programa implementado foi executado até que fosse alcançado o número máximo de regras fornecido como parâmetro de entrada, visto que a precisão desejada para o erro quadrático acumulado não foi alcançada. Após a execução, foi escolhido, dentre os modelos salvos para cada problema, o modelo que apresentou o menor valor de erro quadrático acumulado, sendo que os resultados apresentados correspondem à validação desse modelo Aproximação de Função Não-Linear A função não-linear a ser aproximada é uma sinc bidimensional, cuja forma está apresentada na Equação 4.1: f( x, x ) = 1 2 sen( x1) sen( x2) x x 1 2 (4.1) Os valores utilizados de x 1 e x 2 para geração dos fitness cases pertencem ao intervalo [-7 7]. Os valores foram gerados com um espaçamento de 0,53, totalizando 729 pontos Parâmetros de Entrada o Precisão desejada para o valor do erro quadrático acumulado: 0,001; o Número de constantes aleatórias: 15; o Constantes fixas: nenhuma; 51

52 o Probabilidades de cruzamento e mutação: 0,7; o Elitismo: habilitado; o Número máximo de funções para os indivíduos da população inicial: 5; o Número de gerações por regra: 1500; o Número de indivíduos da população: 15; o Número máximo de regras: 3; o Funções ativas: adição, subtração, multiplicação, seno, cosseno, divisão protegida e exponencial Resultados Neste teste, o melhor resultado obtido foi com a utilização de duas regras. A Figura 4.1 apresenta a evolução do melhor erro quadrático acumulado durante a evolução da função do conseqüente da segunda regra, sendo que o valor final obtido foi de 7,365. Figura Evolução do Melhor Erro Quadrático Acumulado Durante a Evolução da Função do Conseqüente da Segunda Regra 52

53 A Figura 4.2 apresenta o resultado obtido ao fim da evolução da função do conseqüente da segunda regra. Figura Resultado Obtido ao fim da Evolução da Função do Conseqüente da Segunda Regra A Figura 4.3 apresenta o histograma do erro absoluto de validação. Figura Histograma do Erro Absoluto de Validação 53

54 Dados do Modelo Obtido O modelo obtido possui duas regras, com os seguintes parâmetros: o Funções Para o Cálculo dos conseqüentes: apresentadas no anexo A. o Desvios Padrão das Funções de Pertinência Gaussianas: Regra 1: 5,8518; 5,8518 Regra 2: 5,8518; 5,8518 o Médias das Funções de Pertinência Gaussianas: Regra 1: -7,0000; -7,0000 Regra 2: 6,7800; 6, Comentários Observando-se a Figura 4.2, percebe-se que o modelo obtido representa bem a função sinc na região mais próxima do pico, perdendo um pouco de qualidade nos pontos afastados dessa região. O histograma do erro absoluto de validação, apresentado na Figura 4.3, mostra que o erro está concentrado em torno de zero: valor médio do erro foi de -0,0029, e o valor do desvio padrão foi de 0, Aproximação de Sistema Dinâmico Não-Linear O sistema dinâmico a ser identificado foi apresentado por [25]. A Equação 4.2 apresenta a equação de diferenças que descreve o sistema. y ( k) y k u k u p 3 p ( + 1) = + ( ( )), onde representa a entrada do sistema, ( yp ( k)) e y p representa a saída do sistema. (4.2) 54

55 Na Equação 4.3, está apresentado o sinal utilizado para geração dos fitness cases para treinamento. 2π k uk ( ) = sin 25 (4.3) A Equação 4.4, por fim, apresenta o sinal utilizado para geração dos dados de validação. 2π k 2π k uk ( ) = sin + sin (4.4) Parâmetros de Entrada o Precisão desejada para o valor do erro quadrático acumulado: 0,001; o Número de constantes aleatórias: 8; o Constantes fixas: nenhuma; o Probabilidades de cruzamento e mutação: 0,7; o Elitismo: habilitado; o Número máximo de funções para os indivíduos da população inicial: 5; o Número de gerações por regra: 150; o Número de Indivíduos da população: 15; o Número máximo de regras: 5; o Funções ativas: adição, subtração e multiplicação. Foram utilizados um atraso do sinal de entrada do sistema, e um atraso da saída do sistema como entradas, além da própria entrada do sistema, totalizando três variáveis. 55

56 Resultados Neste teste, foi alcançado um bom resultado sem a utilização de regras nebulosas, ou seja, foi determinada uma única função para identificação do sistema dinâmico. A Figura 4.41 apresenta a evolução do melhor erro quadrático acumulado durante a evolução dessa única função, sendo que o valor final obtido foi de 0, Figura Evolução do Melhor Erro Quadrático Acumulado Durante a Evolução da Função A Figura 4.5 apresenta o resultado obtido ao fim da evolução da função obtida. Figura Resultado Obtido ao fim da Evolução da Função 56

57 A Figura 4.6 apresenta o resultado da validação do modelo obtido, e a figura 4.7 apresenta um zoom da Figura 4.6. Figura Validação do Modelo Obtido Figura Validação do Modelo Obtido - Zoom A Figura 4.8 apresenta o histograma do erro absoluto de validação. 57

58 Figura Histograma do Erro Absoluto de Validação Dados do Modelo Obtido O modelo obtido possui uma única função, que está apresentada na Equação ,01x + 2x + x x 0,01x x + 2x x x x x (4.5) Comentários A observação das Figuras 4.6 e 4.7, que apresentam um gráfico que superpõe a saída desejada e a saída obtida pelo modelo na validação, evidencia que o resultado obtido se aproximou bastante do desejado. O histograma do erro absoluto de validação, apresentado na Figura 4.8, demonstra que o erro cometido está fortemente concentrado em torno de zero: o valor médio do erro foi de - 0,0032, e o valor do desvio padrão foi de 0,

59 4.3 - Predição de Série Temporal Caótica A série caótica para predição, retirada de [22] é gerada pela Chaotic Mackey-Glass Differential Delay Equation, que tem a forma apresentada na Equação 4.6: dx() t 0.2 x( t τ ) = 0.1 xt ( ) 10 dt 1 + x ( t τ ) (4.6) Utilizando-se o método de Runge-Kutta de quarta ordem, com x(0) = 1,2 e τ = 17, a equação diferencial foi resolvida para geração da série caótica. A Figura 4.9 apresenta um gráfico da série gerada, que corresponde à função x() t gerada pela resolução da Equação 4.6, cuja predição se deseja realizar. Figura Série Temporal Gerada A definição dos fitness cases é a seguinte: o Entradas: x(t - 18), x(t - 12), x(t - 6), x(t). o Saída: x(t + 6) predição seis segundos à frente. 59

60 Na série gerada, foram coletados 1000 padrões conforme a definição apresentada, com t variando de 118 a Os primeiros 500 padrões foram utilizados para treinamento e os outros 500 para validação Parâmetros de Entrada o Precisão desejada para o valor do erro quadrático acumulado: 0.001; o Número de constantes aleatórias: 8; o Constantes fixas: nenhuma; o Probabilidades de cruzamento e mutação: 0,7; o Elitismo: habilitado; o Número máximo de funções para os indivíduos da população inicial: 5; o Número de gerações por regra: 250; o Número de indivíduos da população: 15; o Número máximo de regras: 5; o Funções ativas: adição, subtração e multiplicação Resultados Neste teste, o melhor resultado obtido foi com a utilização de 4 regras. A Figura 4.10 apresenta a evolução do melhor erro quadrático acumulado durante a evolução da função do conseqüente da quarta regra, sendo que o valor final obtido foi de 2,

61 Figura Evolução do Melhor Erro Quadrático Acumulado Durante a Evolução da Função do Conseqüente da Quarta Regra A Figura 4.11 apresenta o resultado obtido ao fim da evolução da função do conseqüente da quarta regra. Figura Resultado Obtido ao fim da Evolução da Função do Conseqüente da Quarta Regra A Figura 4.12 apresenta o resultado da validação do modelo obtido com 4 regras, e a figura 4.13 apresenta um zoom da figura

62 Figura Validação do Modelo Obtido com 4 Regras Figura Validação do Modelo Obtido com 4 Regras - Zoom A Figura 4.14 apresenta o erro absoluto de validação. 62

63 Figura Erro de Validação do Modelo Obtido com 4 Regras - Zoom Dados do Modelo Obtido O modelo obtido possui quatro regras, com os seguintes parâmetros: o Funções Para o Cálculo dos conseqüentes: Regra 1: 1, x1 Regra 2: x xx + x Regra 3: x4 x2 + 0, Regra 4: 0, xx 3 4 0, x4 + 0, o Desvios Padrão das Funções de Pertinência Gaussianas: Regra 1: 0,1266; 0,1266; 0,1266; 0,1266 Regra 2: 0,1266; 0,1266; 0,1266; 0,1266 Regra 3: 0,1266; 0,1266; 0,1266; 0,1266 Regra 4: 0,1266; 0,1266; 0,1266; 0,

Figura 3.1: Fluxograma do algoritmo da Programação Genética.

Figura 3.1: Fluxograma do algoritmo da Programação Genética. 3 Programação Genética O termo Programação Genética passou a ser utilizado em 1990 nos trabalhos publicados por Koza [30] e De Garis [31]. A definição de Koza para este termo passou a predominar após a

Leia mais

Estratégias Evolutivas EEs. Prof. Juan Moisés Mauricio Villanueva

Estratégias Evolutivas EEs. Prof. Juan Moisés Mauricio Villanueva Estratégias Evolutivas EEs Prof. Juan Moisés Mauricio Villanueva jmauricio@cear.ufpb.br www.cear.ufpb.br/juan Estratégias Evolutivas Desenvolvidas por Rechenberg e Schwefel, e estendida por Herdy, Kursawe

Leia mais

Algoritmos Genéticos. Princípio de Seleção Natural. Sub-áreas da Computação Evolutiva. Idéias básicas da CE. Computação Evolutiva

Algoritmos Genéticos. Princípio de Seleção Natural. Sub-áreas da Computação Evolutiva. Idéias básicas da CE. Computação Evolutiva Computação Evolutiva Algoritmos Genéticos A computação evolutiva (CE) é uma área da ciência da computação que abrange modelos computacionais inspirados na Teoria da Evolução das Espécies, essencialmente

Leia mais

Inteligência Artificial. Algoritmos Genéticos. Aula I Introdução

Inteligência Artificial. Algoritmos Genéticos. Aula I Introdução Universidade Estadual do Oeste do Paraná Curso de Bacharelado em Ciência da Computação Inteligência Artificial Algoritmos Genéticos Aula I Introdução Roteiro Introdução Computação Evolutiva Algoritmos

Leia mais

3 Algoritmos Genéticos

3 Algoritmos Genéticos Técnicas de Inteligência Computacional 33 3 Algoritmos Genéticos Este capítulo resume os principais conceitos sobre o algoritmo evolucionário empregado nesta dissertação. É apresentada uma breve explicação

Leia mais

Algoritmos Genéticos. Estéfane G. M. de Lacerda DCA/UFRN Outubro/2008

Algoritmos Genéticos. Estéfane G. M. de Lacerda DCA/UFRN Outubro/2008 Estéfane G. M. de Lacerda DCA/UFRN Outubro/2008 Introdução São técnicas de busca e otimização. É a metáfora da teoria da evolução das espécies iniciada pelo Fisiologista e Naturalista inglês Charles Darwin.

Leia mais

Algoritmos Genéticos. Pontos fracos dos métodos tradicionais. Características de alguns problemas. Tamanho do espaço de busca- Ex. caixeiro viajante:

Algoritmos Genéticos. Pontos fracos dos métodos tradicionais. Características de alguns problemas. Tamanho do espaço de busca- Ex. caixeiro viajante: Algoritmos Genéticos Prof. Luis Otavio Alvares INE/UFSC Características de alguns problemas Tamanho do espaço de busca- Ex. caixeiro viajante: 10 cidades: 181.000 soluções 20 cidades: 10.000.000.000.000

Leia mais

Pós-Graduação em Engenharia de Automação Industrial SISTEMAS INTELIGENTES PARA AUTOMAÇÃO

Pós-Graduação em Engenharia de Automação Industrial SISTEMAS INTELIGENTES PARA AUTOMAÇÃO Pós-Graduação em Engenharia de Automação Industrial SISTEMAS INTELIGENTES PARA AUTOMAÇÃO AULA 06 Algoritmos Genéticos Sumário Introdução Inteligência Artificial (IA) Algoritmos Genéticos Aplicações de

Leia mais

De que modo computadores podem resolver problemas, sem que tenham que ser explicitamente programados para isso?

De que modo computadores podem resolver problemas, sem que tenham que ser explicitamente programados para isso? Programação Genética Genetic Programming - GP De que modo computadores podem resolver problemas, sem que tenham que ser eplicitamente programados para isso? Programação Genética - GP Etensão de Algoritmos

Leia mais

INTRODUÇÃO À INTELIGÊNCIA COMPUTACIONAL. Aula 06 Prof. Vitor Hugo Ferreira

INTRODUÇÃO À INTELIGÊNCIA COMPUTACIONAL. Aula 06 Prof. Vitor Hugo Ferreira Universidade Federal Fluminense Escola de Engenharia Departamento de Engenharia Elétrica INTRODUÇÃO À INTELIGÊNCIA COMPUTACIONAL Aula 06 Prof. Vitor Hugo Ferreira Representação por cromossomos Codificação

Leia mais

Algoritmos Genéticos

Algoritmos Genéticos Algoritmos Genéticos Roteiro Introdução Algoritmos Genéticos Otimização Representação Seleção Operadores Genéticos Aplicação Caixeiro Viajante Introdução Algoritmos Genéticos (AGs), são métodos de otimização

Leia mais

Algoritmo Genético. Inteligência Artificial. Professor: Rosalvo Ferreira de Oliveira Neto

Algoritmo Genético. Inteligência Artificial. Professor: Rosalvo Ferreira de Oliveira Neto Algoritmo Genético Inteligência Artificial Professor: Rosalvo Ferreira de Oliveira Neto Estrutura 1. Introdução 2. Conceitos Básicos 3. Aplicações 4. Algoritmo 5. Exemplo Introdução São técnicas de busca

Leia mais

Inteligência Artificial

Inteligência Artificial Inteligência Artificial Aula 6 Algoritmos Genéticos M.e Guylerme Velasco Roteiro Introdução Otimização Algoritmos Genéticos Representação Seleção Operadores Geneticos Aplicação Caixeiro Viajante Introdução

Leia mais

3. Resolução de problemas por meio de busca

3. Resolução de problemas por meio de busca Inteligência Artificial - IBM1024 3. Resolução de problemas por meio de busca Prof. Renato Tinós Local: Depto. de Computação e Matemática (FFCLRP/USP) 1 Principais Tópicos 3. Resolução de problemas por

Leia mais

Introdução aos Algoritmos Genéticos

Introdução aos Algoritmos Genéticos Introdução aos Algoritmos Genéticos Prof. Matheus Giovanni Pires EXA 868 Inteligência Artificial Não-Simbólica B Universidade Estadual de Feira de Santana 2 Algoritmos Genéticos: Introdução Introduzidos

Leia mais

Técnicas de Inteligência Artificial

Técnicas de Inteligência Artificial Universidade do Sul de Santa Catarina Ciência da Computação Técnicas de Inteligência Artificial Aula 9 Algoritmos Genéticos Max Pereira Algoritmos Genéticos Algoritmos Genéticos São técnicas de busca e

Leia mais

Técnicas de Inteligência Artificial

Técnicas de Inteligência Artificial Universidade do Sul de Santa Catarina Ciência da Computação Técnicas de Inteligência Artificial Aula 9 Algoritmos Genéticos Max Pereira Algoritmos Genéticos São técnicas de busca e otimização. Uma metáfora

Leia mais

4 Implementação Computacional

4 Implementação Computacional 4 Implementação Computacional 4.1. Introdução Neste capítulo é apresentada a formulação matemática do problema de otimização da disposição das linhas de ancoragem para minimizar os deslocamentos (offsets)

Leia mais

Computação Evolutiva Eduardo do Valle Simões Renato Tinós ICMC - USP

Computação Evolutiva Eduardo do Valle Simões Renato Tinós ICMC - USP Computação Evolutiva Eduardo do Valle Simões Renato Tinós ICMC - USP 1 Principais Tópicos Introdução Evolução Natural Algoritmos Genéticos Aplicações Conclusão 2 Introdução http://www.formula-um.com/ Como

Leia mais

INSTITUTO DE PÓS GRADUAÇÃO ICPG GESTÃO DA TECNOLOGIA DA INFORMAÇÃO

INSTITUTO DE PÓS GRADUAÇÃO ICPG GESTÃO DA TECNOLOGIA DA INFORMAÇÃO INSTITUTO DE PÓS GRADUAÇÃO ICPG GESTÃO DA TECNOLOGIA DA INFORMAÇÃO Prof. Msc. Saulo Popov Zambiasi (saulopz@gmail.com) Informação - ICPG - Criciuma - SC 1 Características Gerais, operadores, algoritmo.

Leia mais

Computação Evolutiva. Computação Evolutiva. Principais Tópicos. Evolução natural. Introdução. Evolução natural

Computação Evolutiva. Computação Evolutiva. Principais Tópicos. Evolução natural. Introdução. Evolução natural Computação Evolutiva Eduardo do Valle Simões Renato Tinós ICMC - USP Principais Tópicos Introdução Evolução Natural Algoritmos Genéticos Aplicações Conclusão 1 2 Introdução Evolução natural http://www.formula-um.com/

Leia mais

Max Pereira. Inteligência Artificial

Max Pereira. Inteligência Artificial Max Pereira Inteligência Artificial Algoritmos Genéticos Algoritmos Genéticos São técnicas de busca e otimização. Uma metáfora da teoria da evolução das espécies iniciada pelo Naturalista inglês Charles

Leia mais

1. Computação Evolutiva

1. Computação Evolutiva Computação Bioinspirada - 5955010-1 1. Computação Evolutiva Prof. Renato Tinós Programa de Pós-Graduação Em Computação Aplicada Depto. de Computação e Matemática (FFCLRP/USP) 2 Computação Bioinspirada

Leia mais

Codificação das variáveis: binária Iniciação da população: aleatória Avaliação: função aptidão Operadores. Critério de parada: número de gerações

Codificação das variáveis: binária Iniciação da população: aleatória Avaliação: função aptidão Operadores. Critério de parada: número de gerações AG Simples/Canônico (AGS) AG introduzido por Holland Funciona bem para problemas de otimização simples e/ou de pequenas dimensões A maior parte da teoria dos AGs está baseada no AGS Utilidade didática

Leia mais

APLICAÇÃO DE ALGORITMOS BIO-INSPIRADOS EM CONTROLE ÓTIMO

APLICAÇÃO DE ALGORITMOS BIO-INSPIRADOS EM CONTROLE ÓTIMO APLICAÇÃO DE ALGORITMOS BIO-INSPIRADOS EM CONTROLE ÓTIMO Profa. Mariana Cavalca Baseado em: Material didático do Prof. Dr. Carlos Henrique V. Moraes da UNIFEI Curso de verão da Profa. Gisele L. Pappa Material

Leia mais

Algoritmos Genéticos. Texto base: Stuart Russel e Peter Norving - Inteligência Artificial

Algoritmos Genéticos. Texto base: Stuart Russel e Peter Norving - Inteligência Artificial Algoritmos Genéticos Texto base: Stuart Russel e Peter Norving - Inteligência Artificial junho/2007 Algoritmo Genético Uma variante da busca em feixe estocástica Estado sucessor gerado pela combinação

Leia mais

Um Algoritmo Genético com Aprendizado por Reforço Simples aplicado ao problema do Mundo de Grid

Um Algoritmo Genético com Aprendizado por Reforço Simples aplicado ao problema do Mundo de Grid 1 Um Algoritmo Genético com Aprendizado por Reforço Simples aplicado ao problema do Mundo de Grid Luciana Conceição Dias Campos Resumo Este trabalho consiste da aplicação de um algoritmo genético ao método

Leia mais

Regressão Polinomial e Simbólica

Regressão Polinomial e Simbólica Regressão Polinomial e Simbólica Fabrício Olivetti de França Universidade Federal do ABC Tópicos 1. Variáveis Não-Lineares 2. Regressão Simbólica 1 Variáveis Não-Lineares Variáveis Não-Lineares Considere

Leia mais

ALGORITMOS GENÉTICOS. Adair Santa Catarina Curso de Ciência da Computação Unioeste Campus de Cascavel PR

ALGORITMOS GENÉTICOS. Adair Santa Catarina Curso de Ciência da Computação Unioeste Campus de Cascavel PR ALGORITMOS GENÉTICOS Adair Santa Catarina Curso de Ciência da Computação Unioeste Campus de Cascavel PR Fev/2018 Introdução Algoritmos Genéticos são algoritmos heurísticos de busca, que utilizam regras

Leia mais

Algoritmos Evolutivos para Otimização

Algoritmos Evolutivos para Otimização Algoritmos Evolutivos para Otimização A área de aplicação que tem recebido mais atenção é a otimização. Uma das razões é que existem uma variedade de problemas de otimização e a maioria deles sem solução

Leia mais

3 Métodos de Otimização

3 Métodos de Otimização 3 Métodos de Otimização Problemas de otimização são relacionados a minimização ou maximização de função de uma ou mais variáveis num determinado domínio, possivelmente com a existência de um conjunto de

Leia mais

Inteligência Artificial

Inteligência Artificial Inteligência Artificial Prof. Kléber de Oliveira Andrade pdjkleber@gmail.com Algoritmos Genéticos Conteúdo Introdução O Algoritmo Genético Binário Noções de Otimização O Algoritmo Genético com Parâmetros

Leia mais

REGRESSÃO SIMBÓLICA COM SELEÇÃO POR AMOSTRAGEM

REGRESSÃO SIMBÓLICA COM SELEÇÃO POR AMOSTRAGEM REGRESSÃO SIMBÓLICA COM SELEÇÃO POR AMOSTRAGEM Rodrigo Morgon¹, Silvio do Lago Pereira² ¹Aluno do Curso de Análise e Desenvolvimento de Sistemas FATEC-SP ²Prof. Dr. do Departamento de Tecnologia da Informação

Leia mais

Exercícios Repetição

Exercícios Repetição Curso de Engenharia de Controle e Automação Disciplina: Informática para a Automação Professor: Marcelo Cendron Exercícios Repetição 1.1 8.3 Exercícios 1. Faça um programa utilizando o comando while, que

Leia mais

Tópicos Especiais em Informática Fatec Indaiatuba

Tópicos Especiais em Informática Fatec Indaiatuba Prof. Dilermando Piva Jr. ((Compilação de diversas fontes na Internet)) Principal motivação para o estudo da computação evolutiva Otimização de processos complexo e que possuem um grande número de variáveis

Leia mais

3 Aprendizado por reforço

3 Aprendizado por reforço 3 Aprendizado por reforço Aprendizado por reforço é um ramo estudado em estatística, psicologia, neurociência e ciência da computação. Atraiu o interesse de pesquisadores ligados a aprendizado de máquina

Leia mais

1. Computação Evolutiva

1. Computação Evolutiva Computação Bioinspirada - 5955010-1 1. Computação Evolutiva Prof. Renato Tinós Programa de Pós-Graduação Em Computação plicada Depto. de Computação e Matemática (FFCLRP/USP) 2 Computação Bioinspirada -

Leia mais

Algoritmos 3/17/ Algoritmos como área de estudo e investigação

Algoritmos 3/17/ Algoritmos como área de estudo e investigação Algoritmos e Complexidade Ana Teresa Freitas INESC-ID/IST ID/IST 3/17/2005 1 O que é um algoritmo? Algoritmos: Sequência de instruções necessárias para a resolução de um problema bem formulado [passíveis

Leia mais

Modelagem para previsão/estimação: uma aplicação Neuro-Fuzzy

Modelagem para previsão/estimação: uma aplicação Neuro-Fuzzy Proceeding Series of the Brazilian Society of pplied and Computational Mathematics, Vol., N., 0. Trabalho apresentado no XXXV CNMC, Natal-RN, 0. Modelagem para previsão/estimação: uma aplicação Neuro-Fuzzy

Leia mais

CONSTRUÇÃO AUTOMÁTICA DE OPERADORES MORFOLÓGICOS UTILIZANDO PROGRAMAÇÃO GENÉTICA.

CONSTRUÇÃO AUTOMÁTICA DE OPERADORES MORFOLÓGICOS UTILIZANDO PROGRAMAÇÃO GENÉTICA. CONSTRUÇÃO AUTOMÁTICA DE OPERADORES MORFOLÓGICOS UTILIZANDO PROGRAMAÇÃO GENÉTICA. Emerson Carlos Pedrino * e-mail: ecpedrin@sel.eesc.sc.usp.br Valentin Obac Roda ** e-mail: valentin@sel.eesc.sc.usp.br

Leia mais

Assim, no algoritmo BIOCLIM, qualquer ponto do espaço pode ser classificado como:

Assim, no algoritmo BIOCLIM, qualquer ponto do espaço pode ser classificado como: ANEXO A ALGORITMOS BIOCLIM E GARP A.1 Algoritmo BIOCLIM O algoritmo BIOCLIM implementa o conceito de envelope bioclimático (Nix, 1986). O algoritmo calcula a média e o desvio-padrão para cada variável

Leia mais

4 Métodos Existentes. 4.1 Algoritmo Genético

4 Métodos Existentes. 4.1 Algoritmo Genético 61 4 Métodos Existentes A hibridização de diferentes métodos é em geral utilizada para resolver problemas de escalonamento, por fornecer empiricamente maior eficiência na busca de soluções. Ela pode ser

Leia mais

5 Estudo de Caso e Resultados

5 Estudo de Caso e Resultados 5 Estudo de Caso e Resultados 5.1. Introdução Finalizado o desenvolvimento da ferramenta, é indispensável testar suas funcionalidades e a eficácia da aplicação conjunta dos seus módulos de geração de experimentos

Leia mais

Processos de software

Processos de software Processos de software 1 Processos de software Conjunto coerente de atividades para especificação, projeto, implementação e teste de sistemas de software. 2 Objetivos Introduzir modelos de processos de

Leia mais

Aprendizagem por treinamento de redes de aproximação

Aprendizagem por treinamento de redes de aproximação Aprendizagem por treinamento de redes de Marco H. Terra Departamento de Eng. Elétrica - EESC - USP SEL 0362 - Inteligência Artificial 1 Introdução Neste capítulo, serão apresentados conceitos sobre redes

Leia mais

UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ ALGORITMOS GENÉTICOS. Metaheurísticas de Buscas

UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ ALGORITMOS GENÉTICOS. Metaheurísticas de Buscas PR UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ ALGORITMOS GENÉTICOS Metaheurísticas de Buscas ALGORITMOS GENÉTICOS (AG) Popularizados por John Holland podem ser considerados os primeiros modelos algorítmicos

Leia mais

ANÁLISE DE COMPLEXIDADE DOS ALGORITMOS

ANÁLISE DE COMPLEXIDADE DOS ALGORITMOS 1/18 ANÁLISE DE COMPLEXIDADE DOS ALGORITMOS Algoritmos 2/18 Algoritmos Algoritmo - sequência de instruções necessárias para a resolução de um problema bem formulado (passíveis de implementação em computador)

Leia mais

ALGORITMO GENÉTICO COMO REPRESENTAÇÃO DAS MUTAÇÕES NA BIOLOGIA

ALGORITMO GENÉTICO COMO REPRESENTAÇÃO DAS MUTAÇÕES NA BIOLOGIA Patrocínio, MG, outubro de 2016 ENCONTRO DE PESQUISA & EXTENSÃO, 3., 2016, Patrocínio. Anais... Patrocínio: IFTM, 2016. ALGORITMO GENÉTICO COMO REPRESENTAÇÃO DAS MUTAÇÕES NA BIOLOGIA Igor Acassio Melo

Leia mais

Introdução a Algoritmos Genéticos

Introdução a Algoritmos Genéticos Introdução a Algoritmos Genéticos Tiago da Conceição Mota Laboratório de Inteligência Computacional Núcleo de Computação Eletrônica Universidade Federal do Rio de Janeiro Outubro de 2007 O Que São? Busca

Leia mais

Sistema de Inferência Fuzzy baseado em Redes Adaptativas (ANFIS) Sistema de Inferência Fuzzy

Sistema de Inferência Fuzzy baseado em Redes Adaptativas (ANFIS) Sistema de Inferência Fuzzy Redes Neurais Sistema de Inferência Fuzzy baseado em Redes Adaptativas (ANFIS) Sistema de Inferência Fuzzy Um Sistema de Inferência Fuzzy (SIF) é um tipo especial de Sistema Baseado em Conhecimento (SBC).

Leia mais

IF-705 Automação Inteligente Algoritmos Evolucionários

IF-705 Automação Inteligente Algoritmos Evolucionários IF-705 Automação Inteligente Algoritmos Evolucionários Aluizio Fausto Ribeiro Araújo Universidade Federal de Pernambuco Centro de Informática - CIn Departamento de Sistemas da Computação aluizioa@cin.ufpe.br

Leia mais

2. Complexidade de Algoritmos

2. Complexidade de Algoritmos Introdução à Computação II 5952011 2. Complexidade de Algoritmos Prof. Renato Tinós Depto. de Computação e Matemática (FFCLRP/USP) 1 Principais Tópicos 2.1. Introdução 2.1.1. Revisão de Pseudo-Código 2.1.2.

Leia mais

Inteligência Artificial Escola de Verão Laboratório Associado de Computação e Matemática Aplicada LAC.

Inteligência Artificial Escola de Verão Laboratório Associado de Computação e Matemática Aplicada LAC. Inteligência Artificial Escola de Verão 28 Laboratório Associado de Computação e Matemática Aplicada LAC www.lac.inpe.br/~demisio/ia_lac.html Lógica Nebulosa A Lógica Nebulosa (ou Lógica Difusa Fuzzy Logic

Leia mais

Aprendizado Evolutivo: Introdução aos Algoritmos Genéticos

Aprendizado Evolutivo: Introdução aos Algoritmos Genéticos Aprendizado Evolutivo: Introdução aos Algoritmos Genéticos SCC-230 Inteligência Artificial Thiago A. S. Pardo Solange O. Rezende 1 Computação Evolutiva (CE) Trata de sistemas para a resolução de problemas

Leia mais

Laboratório 4 - Controle nebuloso

Laboratório 4 - Controle nebuloso Laboratório 4 - Controle nebuloso PTC 2619 / PTC 3418 Laboratório de Automação 1º semestre de 2017 Bruno A. Angélico Laboratório de Automação e Controle Departamento de Engenharia de Telecomunicações e

Leia mais

Modelos Evolucionários e Tratamento de Incertezas

Modelos Evolucionários e Tratamento de Incertezas Ciência da Computação Modelos Evolucionários e Tratamento de Incertezas Aula 01 Computação Evolucionária Max Pereira Motivação Se há uma multiplicidade impressionante de algoritmos para solução de problemas,

Leia mais

Programação Procedimental

Programação Procedimental Programação Procedimental Maria Adriana Vidigal de Lima Universidade Federal de Uberlândia - 2013 1 Escrita de Algoritmos 1.1 Técnicas de Programação e Algoritmos Na elaboração de programas maiores e complexos

Leia mais

ESTUDO DOS PARAMETROS DE UM ALGORITMO GENÉTICO PARA POSTERIOR USO NA SOLUÇÃO DE PROBLEMAS DO TIPO JOB-SHOP

ESTUDO DOS PARAMETROS DE UM ALGORITMO GENÉTICO PARA POSTERIOR USO NA SOLUÇÃO DE PROBLEMAS DO TIPO JOB-SHOP ESTUDO DOS PARAMETROS DE UM ALGORITMO GENÉTICO PARA POSTERIOR USO NA SOLUÇÃO DE PROBLEMAS DO TIPO JOB-SHOP Gilson Rogério Batista, Gideon Villar Leandro Universidade Regional do Noroeste do Estado do Rio

Leia mais

Inteligência Artificial

Inteligência Artificial Inteligência Artificial Aula 7 Programação Genética M.e Guylerme Velasco Programação Genética De que modo computadores podem resolver problemas, sem que tenham que ser explicitamente programados para isso?

Leia mais

Computação Evolutiva. Prof. Eduardo R. Hruschka (Slides baseados nos originais do Prof. André C. P. L. F. de Carvalho)

Computação Evolutiva. Prof. Eduardo R. Hruschka (Slides baseados nos originais do Prof. André C. P. L. F. de Carvalho) Computação Evolutiva Prof. Eduardo R. Hruschka (Slides baseados nos originais do Prof. André C. P. L. F. de Carvalho) Principais Tópicos Computação Evolutiva Algoritmos Genéticos Codificação Função de

Leia mais

Algoritmos Genéticos. 1 Semestre de Cleber Zanchettin UFPE - Universidade Federal de Pernambuco CIn - Centro de Informática

Algoritmos Genéticos. 1 Semestre de Cleber Zanchettin UFPE - Universidade Federal de Pernambuco CIn - Centro de Informática Algoritmos Genéticos 1 Semestre de 2015 Cleber Zanchettin UFPE - Universidade Federal de Pernambuco CIn - Centro de Informática 1 2 Introdução Darwin Naturalistas: cada espécie havia sido criada separadamente

Leia mais

étodos uméricos INTERPOLAÇÃO, EXTRAPOLAÇÃO, APROXIMAÇÃO E AJUSTE DE FUNÇÕES Prof. Erivelton Geraldo Nepomuceno

étodos uméricos INTERPOLAÇÃO, EXTRAPOLAÇÃO, APROXIMAÇÃO E AJUSTE DE FUNÇÕES Prof. Erivelton Geraldo Nepomuceno étodos uméricos INTERPOLAÇÃO, EXTRAPOLAÇÃO, APROXIMAÇÃO E AJUSTE DE FUNÇÕES Prof. Erivelton Geraldo Nepomuceno PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA ELÉTRICA UNIVERSIDADE DE JOÃO DEL-REI PRÓ-REITORIA

Leia mais

IMPLEMENTAÇÃO DE UM ALGORITMO GENÉTICO PARA DETERMINAÇÃO DO PONTO DE MÁXIMO E/OU MÍNIMO DA FUNÇÃO DO 2 e 3 GRAU

IMPLEMENTAÇÃO DE UM ALGORITMO GENÉTICO PARA DETERMINAÇÃO DO PONTO DE MÁXIMO E/OU MÍNIMO DA FUNÇÃO DO 2 e 3 GRAU IMPLEMENTAÇÃO DE UM ALGORITMO GENÉTICO PARA DETERMINAÇÃO DO PONTO DE MÁXIMO E/OU MÍNIMO DA FUNÇÃO DO 2 e 3 GRAU Ana Cláudia M. SILVEIRA 1 ; Renato Machado PEREIRA 2 RESUMO A história da equação de segundo

Leia mais

INF 1771 Inteligência Artificial

INF 1771 Inteligência Artificial INF 1771 Inteligência Artificial Aula 06 Algoritmos Genéticos Edirlei Soares de Lima Algoritmos Genéticos Método de busca local. Boa abordagem para lidar com espaços de busca muito

Leia mais

étodos uméricos AJUSTE DE FUNÇÕES Prof. Erivelton Geraldo Nepomuceno PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA ELÉTRICA

étodos uméricos AJUSTE DE FUNÇÕES Prof. Erivelton Geraldo Nepomuceno PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA ELÉTRICA étodos uméricos AJUSTE DE FUNÇÕES Prof. Erivelton Geraldo Nepomuceno PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA ELÉTRICA UNIVERSIDADE DE JOÃO DEL-REI PRÓ-REITORIA DE PESQUISA CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA

Leia mais

3 Técnicas de Previsão de Séries Temporais 3.1. Introdução

3 Técnicas de Previsão de Séries Temporais 3.1. Introdução 3 Técnicas de Previsão de Séries Temporais 3.1. Introdução A previsão de séries temporais é um problema prático de extrema importância, presente em diversas áreas: economia, indústria, serviços, previsão

Leia mais

3 Algoritmos Genéticos

3 Algoritmos Genéticos Algoritmos Genéticos Algoritmos Genéticos (AGs) constituem um mecanismo de busca adaptativa que se baseia no princípio Darwiniano de seleção natural e reprodução genética [101]. AGs são tipicamente empregados

Leia mais

6 Modelo Gamma-Cetuc (GC)

6 Modelo Gamma-Cetuc (GC) 6 Modelo Gamma-Cetuc (GC) Um modelo de sintetização de séries temporais de atenuação por chuva envolve a geração de dados aleatórios que satisfaçam especificações de estatísticas de primeira e de segunda

Leia mais

Capítulo 2- Funções. Dado dois conjuntos não vazios e e uma lei que associa a cada elemento de um único elemento de, dizemos que é uma função de em.

Capítulo 2- Funções. Dado dois conjuntos não vazios e e uma lei que associa a cada elemento de um único elemento de, dizemos que é uma função de em. Conceitos Capítulo 2- Funções O termo função foi primeiramente usado para denotar a dependência entre uma quantidade e outra. A função é usualmente denotada por uma única letra,,,... Definição: Dado dois

Leia mais

Métodos de Busca. Inteligência Artificial. Algoritmos Genéticos. Algoritmos Evolucionários. Prof. Ms. Luiz Alberto Contato:

Métodos de Busca. Inteligência Artificial. Algoritmos Genéticos. Algoritmos Evolucionários. Prof. Ms. Luiz Alberto Contato: Inteligência Artificial Prof. Ms. Luiz Alberto Contato: lasf.bel@gmail.com Métodos de Busca Busca Cega ou Exaustiva: Não sabe qual o melhor nó da fronteira a ser expandido. Apenas distingue o estado objetivo

Leia mais

Algoritmos Genéticos

Algoritmos Genéticos Algoritmos Genéticos Introdução Um Algoritmo Genético (AG), conceitualmente, segue passos inspirados no processo biológico de evolução natural segundo a teoria de Darwin Algoritmos Genéticos seguem a idéia

Leia mais

Metahuerísticas: Algoritmos Genéticos. Sistemas de Informação/Ciências da Computação UNISUL Aran Bey Tcholakian Morales, Dr. Eng.

Metahuerísticas: Algoritmos Genéticos. Sistemas de Informação/Ciências da Computação UNISUL Aran Bey Tcholakian Morales, Dr. Eng. Metahuerísticas: Algoritmos Genéticos Sistemas de Informação/Ciências da Computação UNISUL Aran Bey Tcholakian Morales, Dr. Eng. (Apostila 8) Meta-heurísticas Classificação de métodos heurísticos: os métodos

Leia mais

Comportamento de vigas de aço sujeitas a cargas concentradas através de técnicas de inteligência computacional

Comportamento de vigas de aço sujeitas a cargas concentradas através de técnicas de inteligência computacional Comportamento de vigas de aço sujeitas a cargas concentradas através de técnicas de inteligência computacional Elaine Toscano Fonseca Pedro C G S Vellasco Escopo da Apresentação Introdução Revisão Bibliográfica

Leia mais

Exemplo de Aplicação de Algoritmos Genéticos. Prof. Juan Moisés Mauricio Villanueva cear.ufpb.br/juan

Exemplo de Aplicação de Algoritmos Genéticos. Prof. Juan Moisés Mauricio Villanueva cear.ufpb.br/juan Exemplo de Aplicação de Algoritmos Genéticos Prof. Juan Moisés Mauricio Villanueva jmauricio@cear.ufpb.br cear.ufpb.br/juan Estrutura do Algoritmo Genético Algoritmo genético Inicio t = 0 inicializar P(t)

Leia mais

INTELIGÊNCIA ARTIFICIAL

INTELIGÊNCIA ARTIFICIAL Figura: Capa do Livro Russell, S., Norvig, P. Artificial Intelligence A Modern Approach, Pearson, 2009. Universidade Federal de Campina Grande Unidade Acadêmica de Sistemas e Computação Curso de Pós-Graduação

Leia mais

Redes Neurais e Sistemas Fuzzy

Redes Neurais e Sistemas Fuzzy Redes Neurais e Sistemas Fuzzy O ADALINE e o algoritmo LMS O ADALINE No contexto de classificação, o ADALINE [B. Widrow 1960] pode ser visto como um perceptron com algoritmo de treinamento baseado em minimização

Leia mais

Algoritmos Genéticos

Algoritmos Genéticos Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Algoritmos Genéticos Aluno: Fabricio Aparecido Breve Prof.: Dr. André Ponce de Leon F. de Carvalho São Carlos São Paulo Maio

Leia mais

)XQGDPHQWRVGHSUREDELOLGDGHHHVWDWtVWLFD

)XQGDPHQWRVGHSUREDELOLGDGHHHVWDWtVWLFD )XQGDPHQWRVGHUREDELOLGDGHHHVWDWtVWLFD,QWURGXomR A história da estatística pode ser dividida em três fases. De acordo com PEANHA (00), a estatística inicialmente não mantinha nenhuma relação com a probabilidade,

Leia mais

Inteligência Artificial. Conceitos Gerais

Inteligência Artificial. Conceitos Gerais Inteligência Artificial Conceitos Gerais Inteligência Artificial - IA IA é um campo de estudo multidisciplinar e interdisciplinar, que se apóia no conhecimento e evolução de outras áreas do conhecimento.

Leia mais

Tópicos Especiais: Inteligência Artificial REDES NEURAIS

Tópicos Especiais: Inteligência Artificial REDES NEURAIS Tópicos Especiais: Inteligência Artificial REDES NEURAIS Material baseado e adaptado do Cap. 20 do Livro Inteligência Artificial de Russell & Norvig Bibliografia Inteligência Artificial Russell & Norvig

Leia mais

Regressão simbólica sobre séries temporais de dados meterológicos utilizando programação genética

Regressão simbólica sobre séries temporais de dados meterológicos utilizando programação genética Regressão simbólica sobre séries temporais de dados meterológicos utilizando programação genética Roberto Oliveira Santos 12, Heitor Silvério Lopes 2 1 Programa de Pós-graduação em Computação Aplicada

Leia mais

Otimização. Unidade 6: Algoritmo Genético. Jaime Arturo Ramírez. 7. Teoria do processo evolutivo num GA. 8. Aspectos avançados

Otimização. Unidade 6: Algoritmo Genético. Jaime Arturo Ramírez. 7. Teoria do processo evolutivo num GA. 8. Aspectos avançados Otimização Jaime Arturo Ramírez Conteúdo 1. Introdução 2. Analogia de mecanismos de seleção natural com sistemas artificiais 3. Algoritmo genético modelo 4. Um GA simples 5. Representação, genes e cromossomos

Leia mais

TÓPICOS EM INTELIGÊNCIA ARTIFICIAL Redes Neurais Artificiais

TÓPICOS EM INTELIGÊNCIA ARTIFICIAL Redes Neurais Artificiais TÓPICOS EM INTELIGÊNCIA ARTIFICIAL Redes Neurais Artificiais ricardo.kerschbaumer@ifc.edu.br http://professor.luzerna.ifc.edu.br/ricardo-kerschbaumer/ Introdução O Cérebro humano Mais fascinante processador

Leia mais

Paradigma Simbólico. Sistemas de Informação UNISUL Aran Bey Tcholakian Morales, Dr. Eng. (Apostila 2)

Paradigma Simbólico. Sistemas de Informação UNISUL Aran Bey Tcholakian Morales, Dr. Eng. (Apostila 2) Paradigma Simbólico Sistemas de Informação UNISUL Aran Bey Tcholakian Morales, Dr. Eng. (Apostila 2) Revisão da aula anterior: definição de IA Podemos associar o termo IA com: Parte da ciência da computação

Leia mais

Motivação Computação Evolucionária e Algoritmos Genéticos. Teoria da Evolução. Teoria da Evolução. Otimização. Algoritmos Genéticos AG

Motivação Computação Evolucionária e Algoritmos Genéticos. Teoria da Evolução. Teoria da Evolução. Otimização. Algoritmos Genéticos AG Motivação Computação Evolucionária e Algoritmos Genéticos Sabedoria da natureza aplicada à computação Eduardo J. Spinosa Adaptado por Huei Diana Lee e Newton Spolaôr...Se variações úteispara qualquer organismo

Leia mais

Estrutura comum dos AEs Seleção

Estrutura comum dos AEs Seleção Estrutura comum dos AEs Seleção Todos os AEs mantém uma população de tamanho m por: Utilizando uma população como fonte de pais para produzir n descendentes Reduzindo o tamanho da população expandida de

Leia mais

Redes Neurais e Sistemas Fuzzy

Redes Neurais e Sistemas Fuzzy 1. Inteligência Computacional Redes Neurais e Sistemas Fuzzy Apresentação da disciplina Conceitos básicos A chamada Inteligência Computacional (IC) reúne uma série de abordagens e técnicas que tentam modelar

Leia mais

Métodos de pesquisa e Optimização

Métodos de pesquisa e Optimização Métodos de pesquisa e Optimização Victor Lobo Importância para os SAD Definir o caminho a tomar depois de se ter trabalhado os dados 1ª Fase: Analisar os dados disponíveis Visualização OLAP, relatórios

Leia mais

6.Elaboração de algoritmos...13

6.Elaboração de algoritmos...13 Índice de conteúdos Capítulo 1. Computação Científica...1 1.Definição...1 2.Modelo genérico...2 3.Modelo matemático...2 4.Tipos de modelos matemáticos...3 5.Modelação matemática...5 5.1.Definição (formulação)

Leia mais

Método de Hardy-Cross Capitulo 13- Algoritmo genético engenheiro Plínio Tomaz 24 dezembro de Algoritmo genético 13-1

Método de Hardy-Cross Capitulo 13- Algoritmo genético engenheiro Plínio Tomaz 24 dezembro de Algoritmo genético 13-1 1 Algoritmo genético 13-1 2 Capítulo 13-Algoritmo genético 13.1 Introdução As tecnologias recentes para dimensionamento de redes de água são: Algoritmo genético Programação Dinâmica Decision Support System

Leia mais

Cálculo Numérico BCC760

Cálculo Numérico BCC760 Cálculo Numérico BCC760 Resolução de Sistemas de Equações Lineares Simultâneas Departamento de Computação Página da disciplina http://www.decom.ufop.br/bcc760/ 1 Introdução! Definição Uma equação é dita

Leia mais

Regressão simbólica sobre séries temporais de dados meterológicos utilizando programação genética

Regressão simbólica sobre séries temporais de dados meterológicos utilizando programação genética Regressão simbólica sobre séries temporais de dados meterológicos utilizando programação genética Roberto Oliveira Santos 1, Heitor Silvério Lopes 2 1 Programa de Pós-graduação em Computação Aplicada -

Leia mais

Transformada de Discreta de Co senos DCT

Transformada de Discreta de Co senos DCT Transformada de Discreta de Co senos DCT O primeiro passo, na maioria dos sistemas de compressão de imagens e vídeo, é identificar a presença de redundância espacial (semelhança entre um pixel e os pixels

Leia mais

UNIVERSIDADE DO ESTADO DE MATO GROSSO - UNEMAT. Faculdade de Ciências Exatas e Tecnológicas FACET / Sinop Curso de Bacharelado em Engenharia Elétrica

UNIVERSIDADE DO ESTADO DE MATO GROSSO - UNEMAT. Faculdade de Ciências Exatas e Tecnológicas FACET / Sinop Curso de Bacharelado em Engenharia Elétrica PERCEPTRON MULTICAMADAS: TÉCNICAS DE VALIDAÇÃO Prof. Dr. André A. P. Biscaro 2º Semestre de 2016 UNIVERSIDADE DO ESTADO DE MATO GROSSO - UNEMAT Aspectos de seleção topológica de redes PMC A especificação

Leia mais

étodos uméricos SISTEMAS DE EQUAÇÕES LINEARES (Continuação) Prof. Erivelton Geraldo Nepomuceno PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA ELÉTRICA

étodos uméricos SISTEMAS DE EQUAÇÕES LINEARES (Continuação) Prof. Erivelton Geraldo Nepomuceno PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA ELÉTRICA étodos uméricos SISTEMAS DE EQUAÇÕES LINEARES (Continuação) Prof. Erivelton Geraldo Nepomuceno PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA ELÉTRICA UNIVERSIDADE DE JOÃO DEL-REI PRÓ-REITORIA DE PESQUISA CENTRO

Leia mais

Controle Ótimo - Aula 2 (Exemplos 2, 3 e 4)

Controle Ótimo - Aula 2 (Exemplos 2, 3 e 4) Controle Ótimo - Aula 2 (Exemplos 2, 3 e 4) Adriano A. G. Siqueira e Marco H. Terra Departamento de Engenharia Elétrica Universidade de São Paulo - São Carlos Sistemas dinâmicos discretos no tempo O Problema

Leia mais

Programação de Computadores

Programação de Computadores Programação de Computadores Instituto de Computação UFF Departamento de Ciência da Computação Otton Teixeira da Silveira Filho Conteúdo Fluxograma e pseudocódigo Elementos de um fluxograma Pseudocódigo

Leia mais