Inteligência Artificial



Documentos relacionados
1. Faça uma função que recebe por parâmetro o raio de uma esfera e calcula o seu volume.

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

Algoritmos e Estruturas de Dados I IEC012. Linguagem C - Estruturas de Controle - Seleção. Prof. César Melo

Códigos de bloco. Instituto Federal de Santa Catarina Curso superior de tecnologia em sistemas de telecomunicação Comunicações móveis 2

Inteligência Artificial

5. Expressões aritméticas

Lista de Exercícios Estrutura de Repetição

UPE/VESTIBULAR/2002 MATEMÁTICA

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

Implementando classes em C# Curso Técnico Integrado em Informática Fundamentos de Programação

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

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

CÁLCULO NUMÉRICO. Profa. Dra. Yara de Souza Tadano

PROPOSTA DE RESOLUÇÃO DA PROVA DE MATEMÁTICA A DO ENSINO SECUNDÁRIO (CÓDIGO DA PROVA 635) 2ª FASE 20 DE JULHO 2018 CADERNO 1

Lista de Exercícios 03a Algoritmos Repetição. 1) Escreva um algoritmo em PORTUGOL que imprima todos os números inteiros de 0 a 50.

ALGORITMOS E PROGRAMAÇÃO DE COMPUTADORES I. Trabalho 1 (T1)

Exemplos. Jogo dos oito :-) Mundo dos blocos (ex: torre de Hanoi) Poblema das rainhas. Criptoaritmética. Missionários e Canibais.

Capítulo 8. Estruturas de Controle no Nível de Sentença

Exercícios de Repetição

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

Conceitos Básicos de Programação

PROPOSTA DE RESOLUÇÃO DA PROVA DE MATEMÁTICA A DO ENSINO SECUNDÁRIO (CÓDIGO DA PROVA 635) 2ª FASE 20 DE JULHO 2018 CADERNO 1

Matemática A. Versão 2 RESOLUÇÃO GRUPO I. Teste Intermédio de Matemática A. Versão 2. Teste Intermédio. Duração do Teste: 90 minutos

Matemática A. Versão 1 RESOLUÇÃO GRUPO I. Teste Intermédio de Matemática A. Versão 1. Teste Intermédio. Duração do Teste: 90 minutos

Resolução de Problemas com Computador. Resolução de Problemas com Computador. Resolução de Problemas com Computador

Técnicas de Inteligência Artificial

Seu pé direito nas melhores Faculdades

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

6. Análise Lógica Combinacional

CÁLCULO NUMÉRICO. Profa. Dra. Yara de Souza Tadano

Algoritmos Genéticos

Lista de Exercícios 03a Algoritmos Repetição

Lógica de Programação. Profas. Simone Campos Camargo e Janete Ferreira Biazotto

TÉCNICO DE INFORMÁTICA - SISTEMAS

Introdução a Algoritmos Genéticos

Aula 07 - Momento (formulação vetorial) 2011 Pearson Prentice Hall. Todos os direitos reservados.

Controle II. Márcio J. Lacerda. 2 o Semestre Departamento de Engenharia Elétrica Universidade Federal de São João del-rei

1ª LISTA DE EXERCÍCIOS

Algoritmos Genéticos

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

Figura 4.1: Diagrama de representação de uma função de 2 variáveis

para x = 111 e y = 112 é: a) 215 b) 223 c) 1 d) 1 e) 214 Resolução Assim, para x = 111 e y = 112 teremos x + y = 223.

Unidade 6: Ambiente de Programação Prof. Daniel Caetano

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

CNC Comando Numérico Computadorizado

Engenharia de Software II

Introdução à Programação. João Manuel R. S. Tavares

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

ENGENHARIA DE SOFTWARE

Introdução à Programação

Lista de Exercícios 03a Repetição. 1) Escreva um programa que imprima todos os números inteiros de 0 a 50.

Ex. 1) Considere que a árvore seguinte corresponde a uma parte do espaço de estados de um jogo de dois agentes: f=7 f=7 f=1 f=2

3 Algoritmos Genéticos

INTELIGÊNCIA ARTIFICIAL 2008/09

ESTRUTURAS DE REPETIÇÃO - PARTE 3

Modelação, Identificação e Controlo Digital

E. S. JERÓNIMO EMILIANO DE ANDRADE DE ANGRA DO HEROISMO. Conteúdo Programáticos / Matemática e a Realidade. Curso de Nível III Técnico de Laboratório

Programação de Computadores III

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

Sociedade Brasileira de Matemática Mestrado Profissional em Matemática em Rede Nacional

Universidade Federal de Ouro Preto - UFOP Departamento de Computação - DECOM Programação de Computadores I - BCC701

Na resposta a cada um dos itens deste grupo, selecione a única opção correta.

Notas de Aula de Cálculo Numérico

7 a Lista de Exercícios Assunto: Funções e passagem por referência com vetor e matriz (Tópico 7)

Resolução de Problemas. Universidade Católica de Pelotas Engenharia da Computação Disciplina: Inteligência Artificial

Unidade 6: Ambiente de Programação

Programação de Computadores III

Aula 5. Uma partícula evolui na reta. A trajetória é uma função que dá a sua posição em função do tempo:

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

MATEMÁTICA A - 12o Ano N o s Complexos - Equações e problemas Propostas de resolução

Resolução das Questões Discursivas

Engenharia)de)resolução)de)problemas)

Agenda Redes Arquitetura de computadores Programação de CLP Instrumentação CLP. Arquitetura do CLP 16 / 54

MAT 111 Cálculo Diferencial e Integral I. Prova 2 14 de Junho de 2012

MAT 111 Cálculo Diferencial e Integral I. Prova 2 14 de Junho de 2012

Fundamentos de Programação 1

Universidade Federal do Rio de Janeiro. Princípios de Instrumentação Biomédica. Módulo 5. Heaviside Dirac Newton

Programação de Computadores:

Prova Escrita de MATEMÁTICA A - 12o Ano a Fase

Transcrição:

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? 2

Programação Genética Extensão de Algoritmos Genéticos no domínio dos programas Indivíduo = programa de computador Espaço de busca = todos os possíveis programas de computador 3

Representação de Programas Expressão matemática composta de funções + terminais. Programa é codificado através de uma estrutura de árvore, ao invés de linhas de código 4

Representação de Programas x2 + y é um programa de computador. Se escrito na forma pré-fixada: (+(*xx)y) Representação sob a forma de árvore: 5

Representação de Programas Funções- aparecem nos vértices internos da árvore: operação aritmética (+, -, *, % etc) função matemática (sen, cos, tan,...) operação booleana (and, or, not) operadores condicionais(se-então-senão) funções que causamiteração (enquanto (condição) faça) funções que causamrecursão funções específicas do domínio do problema Terminais- aparecem nos vértices externos da árvore (folhas) variável (representando possivelmente as entradas) constante (número 3) 6

Representação de Programas GP evolui programas de computador para resolver um problema, a partir do conjunto de terminais e do conjunto de funções; Para que todos os programas de computador criados pelo GP sejam válidos, é necessário que o conjunto de funções e o conjunto de terminais atendam a propriedade de clausura. 7

Propriedade de Clausura Funções devem aceitar como argumento, qualquer valor e tipo de dado, que seja retornado por qualquer função do conjunto de funções, e qualquer valor e tipo de dado que possa ser assumido por qualquer terminal. 8

Passos Preparatórios para GP Existem 5 Passos Preparatórios na aplicação de GP : Determinar o Conjunto de Terminais; Determinar o Conjunto de Funções Primitivas; Definir uma Medida de Aptidão; Estabelecer Parâmetros para Controlar a Execução; Definir um Método para Determinar o Resultado e um Critério para Terminar a Execução. 9

Processo 10

Criação da População Inicial Gera-se a população inicial aleatória, formada por programas de computador; Funções são escolhidas aleatoriamente no conjunto de funções; Terminais são escolhidos aleatoriamente no conjunto de terminais; Altura máxima da estrutura dos programas de computador gerados para a população inicial é controlada por um parâmetro. 11

Medida de Aptidão Cada programa de computador é avaliado em termos do quão bem ele realiza (ou executa) sua tarefa em um ambiente particular de um problema. Por exemplo, executando-se o programa e verificando-se o erro produzido no resultado. Quanto mais próximo de zero, melhor é o programa. 12

Seleção e Reprodução A medida de aptidão de cada programa de computador é usada na seleção probabilística de programas para participar da próxima geração de indivíduos. Na formação da nova população, vários operadores genéticos são aplicados. 13

Operadores Reprodução Crossover Mutação Permutação Edição Encapsulamento Destruição (Decimation) 14

Reprodução um indivíduo da população é selecionado de acordo com algum método baseado na aptidão o indivíduo é copiado, sem qualquer alteração, para a próxima geração 15

Crossover genitores selecionados 16

Crossover Um ponto de corte é escolhido aleatoriamente em cada um dos genitores 17

Crossover as subárvores de cada genitores são trocadas 18

Situações do Crossover Propriedade de clausura das funções garante sempre soluções válidas: se um ponto terminal é escolhido em um dos pais e uma subárvore no outro, o terminal é trocado com a subárvore; se um ponto terminal é escolhido em um dos pais e um ponto terminal no outro, os pontos terminais são trocados; se a raiz é escolhida em um dos pais e uma sub-árvore no outro, a árvore que corresponde ao pai é toda inserida no lugar da subárvore do outro pai. Isto acarreta um crescimento da profundidade da árvore em um dos filhos e o outro filho será formado pela sub-árvore 19

Situações do Crossover caso o ponto de corte seja a raiz em um dos pais, e no outro, o ponto de corte seja um terminal, um filho será formado por um terminal e o outro por uma árvore com alta profundidade, já que será todo o pai inserido no ponto onde estava um terminal; se a raiz dos dois pais é selecionada, ocorre degeneração do crossover, que acarretará uma simples reprodução, ou seja cada filho é idêntico a um dos pais. 20

Crossover GA x Crossover GP Em GA: pais idênticos filhos idênticos Em GP, a chance de pontos de corte iguais é pequena. Assim, pais idênticos filhos diferentes 21

Permutação escolhe-se um ponto interno de uma expressão; ramos são permutados a permutação a ser realizada é escolhida aleatoriamente ( 3 ramos: existem 3! possibilidades de permutação) se a função é comutativa, não há efeito da permutação; 22

Edição Proporciona um meio para editar e simplificar expressões 23

Edição No domínio booleano: (AND X X) X (OR X X) X (NOT(NOT(X)) X Edição pode ser utilizada de duas formas: externo a execução - saída mais legível durante a execução - produzir saída simplificada Edição consome muito tempo Controlada por parâmetro que especifica: 1 - executada em todas as gerações 0 - não é aplicada > 1 = freqüência de aplicação Edição pode tornar a expressão menos vulnerável ao crossover (NOT(NOT(NOT(NOT(X))))) x Reduz a variedade de estruturas disponíveis para o crossover 24

Encapsulamento forma de identificar subárvores potencialmente úteis e dar a elas um nome para que sejam referenciadas e usadas posteriormente; seleciona-se um pai baseando-se na aptidão; seleciona-se um ponto interno desta árvore 25

Encapsulamento remove-se a sub-árvore localizada no ponto selecionado uma nova função é definida para se referenciar a esta subárvore. A esta função é dado um nome 26

Encapsulamento a nova função não tem argumentos; o corpo da nova função encapsulada é a sub-árvore originalmente localizada no ponto selecionado; uma chamada a função criada é inserida no ponto selecionado: o conjunto de funções é acrescido desta nova função; a função encapsulada é fator potencial para interromper o efeito de crossover, pois a função torna-se um ponto indivisível. 27

Destruição Operação assexuada é uma forma de reduzir o número de indivíduos medíocres nas primeiras gerações; controlado por dois parâmetros: percentagem de indivíduos mantídos; e condição que especifica quando este operador será invocado. indivíduos são selecionados para permanecer com base na aptidão. Ex: Percentagem=10%, Quando=geração 0 Na geração 0, 10% da população permanece (população será criada 10 vezes maior na geração 0) 28

Critério de Terminação atingir um número máximo de gerações; ou atingir um ponto ótimo do problema 29

Designação dos Resultados melhor Indivíduo que apareceu em qualquer geração da população. 30

Parâmetros de Controle tamanho da população número máximo de gerações taxa de reprodução taxa de mutação taxa de crossover taxa de distribuição dos pontos de crossover altura da árvore altura inicial da árvore taxa de permutação freqüência de edição taxa de encapsulamento condição de chamada de destruição taxa de destruição método de geração da população inicial método de seleção do pai (primeiro e segundo) uso de ajuste da medida de aptidão uso de elitismo 31

Função Automaticamente Definida ADF forma de implementar subrotinas em GP; indivíduos são estruturas que combinam ADF e programas capazes de fazer uso das ADFs; são desenvolvidas automaticamente e dinamicamente por meio de seleção natural e operadores genéticos; um programa pode definir mais de uma ADF; ADFs podem chamar outras ADFs 32

ADF 33

ADF Geração da População Inicial a geração da população inicial tem que ser criada com mesma estrutura invariante para todos os indivíduos da população a parte variante da estrutura corresponde a: ramo de definição da função, que é formado por funções pertencentes ao conjunto de funções e por terminais pertencentes ao conjunto de terminais ramo de produção de resultados, que é composto de funções pertencentes ao conjunto de funções e por terminais pertencentes ao conjunto de terminais 34

Exemplo de Programa usando ADF 35

ADF Crossover deve preservar a mesma estrutura em todos indivíduos com um ramo de definição da função e um ramo de produção de resultados para programas com uma ADF; para preservar a mesma estrutura em todos os indivíduos o crossover é aplicado apenas na estrutura não invariante do indivíduo 36

ADF - Crossover 37

Aplicação 38

Aplicação da GP Regressão Simbólica Encontrar a expressão matemática que se ajuste melhor a uma amostra de dados: entrada: valor da variável independente saída: valor da variável dependente 39

Exemplo de Regressão Simbólica Tarefa de GP: encontrar o relacionamento entre duas variáveis (raio e diâmetro) e a saída (período) da órbita de um planeta em torno do sol Terceira Lei de Kepler: O período da órbita de um planeta é proporcional a raiz quadrada do cubo do raio. 40

Terceira Lei de Kepler Dados fornecidos 41

Terceira Lei de Kepler Avaliação: soma, nos oito casos de aptidão, do valor absoluto da diferença entre o período P produzido pela expressão e o valor objetivo de P associado com cada planeta 42

Terceira Lei de Kepler conjunto de funções unária: sen, ln, exp, not, binária: +, -, *, /, ^, >, >=, <, <=, =,!= ternária: if-then-else 43

Exemplo usando ADF Tarefa de GP: encontrar o relacionamento entre seis variáveis (L0, W0, H0, L1, W1, H1) e a saída D 44

Exemplo usando ADF 45

Exemplo usando ADF 46

Exemplo usando ADF 47

Aplicação Classificação Determinar qual entre duas espirais entrelaçadas pertence a um determinado ponto entrada: coordenadas cartesianas do ponto saída: identificação da espiral correta 48

Aplicação Planejamento em Robótica Controlar o braço de um robot de forma que ele sempre alcance um dado destino entrada: local definido como entrada saída: produzir os movimentos apropriados 49