O documento discute algoritmos genéticos e representação de cromossomos. Ele explica que os cromossomos podem ser representados de várias formas, incluindo binária, valores inteiros e reais. A representação binária é a mais simples, onde o cromossomo consiste de uma sequência de bits. A mutação e o cruzamento ocorrem durante o algoritmo genético para gerar novas soluções.
O documento descreve a regra de Bayes e redes Bayesianas. Ele fornece um exemplo detalhado sobre como calcular a probabilidade de uma mulher ter câncer de mama dado um resultado positivo em um mamograma usando a regra de Bayes. Ele também define brevemente o que são redes Bayesianas, que representam dependências probabilísticas entre variáveis aleatórias através de um grafo direcionado acíclico.
O documento discute a avaliação de desempenho de classificadores treinados. Explica que é necessário testar o modelo em um conjunto de dados independente para medir seu desempenho em dados novos. Também apresenta métricas como taxa de erro e curva de aprendizagem para avaliar quantitativamente o modelo.
O documento discute busca como uma abordagem para solução de problemas em inteligência artificial. Explica que os problemas podem ser reduzidos a uma busca em um grafo, onde cada nó representa um estado do mundo e as arestas representam ações que levam de um estado a outro. A solução é um caminho no grafo que leva de um estado inicial a um estado final desejado. Exemplos de tipos de problemas incluem determinísticos e não determinísticos.
O documento discute árvores de decisão e florestas aleatórias. Ele explica que árvores de decisão são uma das formas mais simples de aprendizado de máquina, representando uma sequência de regras "se...então" para classificar ou prever saídas com base em atributos de entrada. O documento também descreve características como nós internos representando testes de atributos e folhas especificando saídas, e discute expressividade e variações de árvores de decisão.
O documento discute inferência em lógica proposicional, incluindo tipos de provas como verificação de modelos e aplicação de regras de inferência. Ele explica como aplicar regras de inferência como modus ponens e modus tollens para derivar novas sentenças a partir de premissas, formando uma prova.
O documento discute estimativas de erro em modelos de aprendizagem de máquina. Explica que o erro esperado no conjunto de teste tende a ser maior que no conjunto de treino, devido ao ajuste do modelo aos dados de treino. Também aborda medidas como viés e variância para avaliar estimadores, e como o erro quadrático médio equilibra ambos para medir o desvio total esperado entre a estimativa e o valor real.
O documento descreve um algoritmo de busca retroativa para resolver problemas de satisfação de restrições, utilizando forward checking e heurísticas como valores restantes mínimos, grau e valor menos restritivo. O algoritmo é demonstrado passo a passo em um exemplo de coloração de grafos, definindo variáveis, valores e propagando escolhas.
O documento descreve a regra de Bayes e redes Bayesianas. Ele fornece um exemplo detalhado sobre como calcular a probabilidade de uma mulher ter câncer de mama dado um resultado positivo em um mamograma usando a regra de Bayes. Ele também define brevemente o que são redes Bayesianas, que representam dependências probabilísticas entre variáveis aleatórias através de um grafo direcionado acíclico.
O documento discute a avaliação de desempenho de classificadores treinados. Explica que é necessário testar o modelo em um conjunto de dados independente para medir seu desempenho em dados novos. Também apresenta métricas como taxa de erro e curva de aprendizagem para avaliar quantitativamente o modelo.
O documento discute busca como uma abordagem para solução de problemas em inteligência artificial. Explica que os problemas podem ser reduzidos a uma busca em um grafo, onde cada nó representa um estado do mundo e as arestas representam ações que levam de um estado a outro. A solução é um caminho no grafo que leva de um estado inicial a um estado final desejado. Exemplos de tipos de problemas incluem determinísticos e não determinísticos.
O documento discute árvores de decisão e florestas aleatórias. Ele explica que árvores de decisão são uma das formas mais simples de aprendizado de máquina, representando uma sequência de regras "se...então" para classificar ou prever saídas com base em atributos de entrada. O documento também descreve características como nós internos representando testes de atributos e folhas especificando saídas, e discute expressividade e variações de árvores de decisão.
O documento discute inferência em lógica proposicional, incluindo tipos de provas como verificação de modelos e aplicação de regras de inferência. Ele explica como aplicar regras de inferência como modus ponens e modus tollens para derivar novas sentenças a partir de premissas, formando uma prova.
O documento discute estimativas de erro em modelos de aprendizagem de máquina. Explica que o erro esperado no conjunto de teste tende a ser maior que no conjunto de treino, devido ao ajuste do modelo aos dados de treino. Também aborda medidas como viés e variância para avaliar estimadores, e como o erro quadrático médio equilibra ambos para medir o desvio total esperado entre a estimativa e o valor real.
O documento descreve um algoritmo de busca retroativa para resolver problemas de satisfação de restrições, utilizando forward checking e heurísticas como valores restantes mínimos, grau e valor menos restritivo. O algoritmo é demonstrado passo a passo em um exemplo de coloração de grafos, definindo variáveis, valores e propagando escolhas.
O documento descreve problemas de satisfação de restrições (CSPs), definidos por um conjunto de variáveis, domínios de valores para cada variável, e restrições sobre combinações de valores de variáveis. Apresenta exemplos de agendamento de aulas e coloração de mapas como CSPs, definindo suas variáveis, domínios e restrições.
O documento discute aprendizado supervisionado bayesiano. Ele introduz o aprendizado bayesiano como um método probabilístico e descreve que o aprendizado supervisionado tem como objetivo classificação ou regressão para mapear entradas em saídas com base em exemplos.
O documento descreve uma aula sobre lógica de primeira ordem. Apresenta os elementos básicos da lógica de primeira ordem, incluindo termos, predicados e a gramática formal para construir sentenças. Também explica como modelos e interpretações funcionam na lógica de primeira ordem, diferentemente da lógica proposicional.
O documento discute o tratamento de incerteza em inteligência artificial. Aborda como a probabilidade e a teoria da decisão podem ser usadas para tomar decisões racionais quando os resultados são incertos, levando em conta a probabilidade de cada resultado e sua utilidade segundo as preferências de quem decide.
O documento descreve buscas informadas e heurísticas de busca. Ele discute estratégias como melhor primeiro, gulosa e A*, que usam heurísticas para guiar a busca em direção a soluções mais promissoras. O documento também discute problemas que podem ocorrer dependendo da heurística escolhida.
O documento descreve as bases de dados em lógica de primeira ordem, como interagir com elas fazendo buscas (queries) por meio de sentenças lógicas em LPO, e como qualquer query que possa ser inferida logicamente pela base de dados será respondida afirmativamente. As bases de dados contêm axiomas com informações básicas e teoremas derivados dos axiomas, e o documento discute técnicas como forward chaining, backward chaining e resolução para realizar inferência nas bases de dados.
O documento descreve o algoritmo de máquina de vetor de suporte (SVM), explicando como ele busca encontrar o hiperplano separador de margem máxima entre os dados de treinamento de duas classes. O SVM define fronteiras lineares ótimas para dados linearmente separáveis, maximizando a distância entre o hiperplano separador e os exemplos de treinamento mais próximos, chamados de vetores de suporte. O problema é formulado como um problema de otimização para encontrar os parâmetros ω e b que maximizam essa distância de separação.
O documento descreve as redes neurais e o perceptron. Ele explica que as redes neurais se inspiram nos neurônios biológicos e como o perceptron funciona como a unidade básica de uma rede neural, recebendo sinais de entrada e aplicando uma função de ativação. Também discute possíveis funções de ativação como a função degrau e sigmóide e como os pesos das conexões, incluindo o viés, determinam se um perceptron é ativado ou não.
O documento discute representação do conhecimento através de ontologias, incluindo taxonomias e herança. Ontologias organizam o conhecimento em categorias hierárquicas e permitem raciocinar sobre objetos classificados. Categorias podem ser representadas como predicados ou objetos. A herança permite que propriedades sejam herdadas por subcategorias.
O documento descreve o funcionamento do algoritmo de backward chaining em programação lógica, começando com uma explicação geral do processo de raciocínio de trás para frente a partir de um objetivo. Em seguida, apresenta formalmente o algoritmo de backward chaining, explicando cada parte do processo de forma recursiva para encontrar substituições que satisfaçam a query dada uma base de conhecimento. Por fim, exemplifica o algoritmo em uma base de conhecimento sobre venda de armas.
O documento descreve os passos para executar resolução e encadeamento para frente em lógica de primeira ordem. Primeiro, as expressões lógicas devem ser convertidas para forma clausal sem quantificadores. Em seguida, as variáveis devem ser substituídas durante a resolução usando o processo de unificação. Por fim, a resolução é executada para derivar novas conclusões.
O documento descreve os princípios da computação evolutiva e algoritmos genéticos. Ele define computação evolutiva como técnicas que simulam a evolução natural, usando seleção, mutação e reprodução. O documento então explica o processo de seleção, mutação e reprodução em algoritmos genéticos e fornece detalhes sobre sua terminologia e funcionamento.
O documento discute arquivos e exceções em Java. Primeiramente, explica que dados de configuração precisam ser salvos em arquivos para serem preservados entre execuções do programa. Em seguida, descreve como objetos da classe File representam caminhos para arquivos e diretórios, e que escrever dados em arquivos requer objetos FileWriter. Por fim, discute que métodos que manipulam arquivos podem lançar exceções IOException, as quais precisam ser capturadas ou declaradas no método.
Este documento discute métodos abstratos e classes abstratas em Java. Explica que métodos abstratos não têm implementação definida na classe abstrata, mas sim nas subclasses, que são obrigadas a implementá-los. Também explica que a existência de pelo menos um método abstrato torna a classe abstrata, impedindo sua instanciação direta. A classe Casa é usada como exemplo de classe abstrata, já que no sistema modelo existem apenas casas quadradas e retangulares.
As três frases são:
1) O documento discute listas ligadas como uma alternativa a arranjos para alocar dinamicamente espaço na memória para novos itens.
2) Listas ligadas permitem adicionar itens de forma simples, sem necessidade de alocar um novo arranjo maior e copiar o conteúdo do anterior.
3) Cada nó de uma lista ligada contém um valor e um ponteiro para o próximo nó, permitindo navegar pela lista de forma flexível.
O documento discute especificadores de acesso em Java e como eles afetam a herança entre classes. Apresenta exemplos de como atributos privados na classe pai não podem ser acessados na classe filha, mesmo que estejam na memória do objeto, e como os construtores this() e super() devem ser a primeira instrução no construtor da classe filha.
O documento discute herança em classes. Foi quebrada a classe AreaCasa em subclasses Casa, CasaQuad e CasaRet. A classe Residência foi modificada para receber uma instância de Casa (superclasse) em vez de AreaCasa, permitindo o uso de CasaQuad e CasaRet. Isso é demonstrado em um exemplo de código.
O documento descreve o algoritmo de ordenação por inserção (insertion sort). Ele ordena um array percorrendo-o de esquerda para direita e inserindo cada novo elemento na posição correta na subparte já ordenada, deslocando os demais elementos para a direita quando necessário. O exemplo demonstra graficamente cada etapa do processo de ordenação de um array.
O documento discute a busca binária em arranjos ordenados. Ele explica que a busca binária divide o arranjo ao meio em cada etapa e descarta metade dos elementos, levando a buscas potencialmente muito mais rápidas do que a busca sequencial. A busca binária para no elemento buscado, no fim do arranjo, ou quando encontrar um elemento maior que o buscado.
Strings em Java são imutáveis. Ao modificar um caractere em um String, na verdade se está criando um novo objeto String. Comparar Strings com == verifica se os objetos são os mesmos na memória, não se o conteúdo é igual.
O documento descreve problemas de satisfação de restrições (CSPs), definidos por um conjunto de variáveis, domínios de valores para cada variável, e restrições sobre combinações de valores de variáveis. Apresenta exemplos de agendamento de aulas e coloração de mapas como CSPs, definindo suas variáveis, domínios e restrições.
O documento discute aprendizado supervisionado bayesiano. Ele introduz o aprendizado bayesiano como um método probabilístico e descreve que o aprendizado supervisionado tem como objetivo classificação ou regressão para mapear entradas em saídas com base em exemplos.
O documento descreve uma aula sobre lógica de primeira ordem. Apresenta os elementos básicos da lógica de primeira ordem, incluindo termos, predicados e a gramática formal para construir sentenças. Também explica como modelos e interpretações funcionam na lógica de primeira ordem, diferentemente da lógica proposicional.
O documento discute o tratamento de incerteza em inteligência artificial. Aborda como a probabilidade e a teoria da decisão podem ser usadas para tomar decisões racionais quando os resultados são incertos, levando em conta a probabilidade de cada resultado e sua utilidade segundo as preferências de quem decide.
O documento descreve buscas informadas e heurísticas de busca. Ele discute estratégias como melhor primeiro, gulosa e A*, que usam heurísticas para guiar a busca em direção a soluções mais promissoras. O documento também discute problemas que podem ocorrer dependendo da heurística escolhida.
O documento descreve as bases de dados em lógica de primeira ordem, como interagir com elas fazendo buscas (queries) por meio de sentenças lógicas em LPO, e como qualquer query que possa ser inferida logicamente pela base de dados será respondida afirmativamente. As bases de dados contêm axiomas com informações básicas e teoremas derivados dos axiomas, e o documento discute técnicas como forward chaining, backward chaining e resolução para realizar inferência nas bases de dados.
O documento descreve o algoritmo de máquina de vetor de suporte (SVM), explicando como ele busca encontrar o hiperplano separador de margem máxima entre os dados de treinamento de duas classes. O SVM define fronteiras lineares ótimas para dados linearmente separáveis, maximizando a distância entre o hiperplano separador e os exemplos de treinamento mais próximos, chamados de vetores de suporte. O problema é formulado como um problema de otimização para encontrar os parâmetros ω e b que maximizam essa distância de separação.
O documento descreve as redes neurais e o perceptron. Ele explica que as redes neurais se inspiram nos neurônios biológicos e como o perceptron funciona como a unidade básica de uma rede neural, recebendo sinais de entrada e aplicando uma função de ativação. Também discute possíveis funções de ativação como a função degrau e sigmóide e como os pesos das conexões, incluindo o viés, determinam se um perceptron é ativado ou não.
O documento discute representação do conhecimento através de ontologias, incluindo taxonomias e herança. Ontologias organizam o conhecimento em categorias hierárquicas e permitem raciocinar sobre objetos classificados. Categorias podem ser representadas como predicados ou objetos. A herança permite que propriedades sejam herdadas por subcategorias.
O documento descreve o funcionamento do algoritmo de backward chaining em programação lógica, começando com uma explicação geral do processo de raciocínio de trás para frente a partir de um objetivo. Em seguida, apresenta formalmente o algoritmo de backward chaining, explicando cada parte do processo de forma recursiva para encontrar substituições que satisfaçam a query dada uma base de conhecimento. Por fim, exemplifica o algoritmo em uma base de conhecimento sobre venda de armas.
O documento descreve os passos para executar resolução e encadeamento para frente em lógica de primeira ordem. Primeiro, as expressões lógicas devem ser convertidas para forma clausal sem quantificadores. Em seguida, as variáveis devem ser substituídas durante a resolução usando o processo de unificação. Por fim, a resolução é executada para derivar novas conclusões.
O documento descreve os princípios da computação evolutiva e algoritmos genéticos. Ele define computação evolutiva como técnicas que simulam a evolução natural, usando seleção, mutação e reprodução. O documento então explica o processo de seleção, mutação e reprodução em algoritmos genéticos e fornece detalhes sobre sua terminologia e funcionamento.
O documento discute arquivos e exceções em Java. Primeiramente, explica que dados de configuração precisam ser salvos em arquivos para serem preservados entre execuções do programa. Em seguida, descreve como objetos da classe File representam caminhos para arquivos e diretórios, e que escrever dados em arquivos requer objetos FileWriter. Por fim, discute que métodos que manipulam arquivos podem lançar exceções IOException, as quais precisam ser capturadas ou declaradas no método.
Este documento discute métodos abstratos e classes abstratas em Java. Explica que métodos abstratos não têm implementação definida na classe abstrata, mas sim nas subclasses, que são obrigadas a implementá-los. Também explica que a existência de pelo menos um método abstrato torna a classe abstrata, impedindo sua instanciação direta. A classe Casa é usada como exemplo de classe abstrata, já que no sistema modelo existem apenas casas quadradas e retangulares.
As três frases são:
1) O documento discute listas ligadas como uma alternativa a arranjos para alocar dinamicamente espaço na memória para novos itens.
2) Listas ligadas permitem adicionar itens de forma simples, sem necessidade de alocar um novo arranjo maior e copiar o conteúdo do anterior.
3) Cada nó de uma lista ligada contém um valor e um ponteiro para o próximo nó, permitindo navegar pela lista de forma flexível.
O documento discute especificadores de acesso em Java e como eles afetam a herança entre classes. Apresenta exemplos de como atributos privados na classe pai não podem ser acessados na classe filha, mesmo que estejam na memória do objeto, e como os construtores this() e super() devem ser a primeira instrução no construtor da classe filha.
O documento discute herança em classes. Foi quebrada a classe AreaCasa em subclasses Casa, CasaQuad e CasaRet. A classe Residência foi modificada para receber uma instância de Casa (superclasse) em vez de AreaCasa, permitindo o uso de CasaQuad e CasaRet. Isso é demonstrado em um exemplo de código.
O documento descreve o algoritmo de ordenação por inserção (insertion sort). Ele ordena um array percorrendo-o de esquerda para direita e inserindo cada novo elemento na posição correta na subparte já ordenada, deslocando os demais elementos para a direita quando necessário. O exemplo demonstra graficamente cada etapa do processo de ordenação de um array.
O documento discute a busca binária em arranjos ordenados. Ele explica que a busca binária divide o arranjo ao meio em cada etapa e descarta metade dos elementos, levando a buscas potencialmente muito mais rápidas do que a busca sequencial. A busca binária para no elemento buscado, no fim do arranjo, ou quando encontrar um elemento maior que o buscado.
Strings em Java são imutáveis. Ao modificar um caractere em um String, na verdade se está criando um novo objeto String. Comparar Strings com == verifica se os objetos são os mesmos na memória, não se o conteúdo é igual.
Slides Lição 11, CPAD, A Realidade Bíblica do Inferno, 2Tr24.pptxLuizHenriquedeAlmeid6
Slideshare Lição 11, CPAD, A Realidade Bíblica do Inferno, 2Tr24, Pr Henrique, EBD NA TV, Lições Bíblicas, 2º Trimestre de 2024, adultos, Tema, A CARREIRA QUE NOS ESTÁ PROPOSTA, O CAMINHO DA SALVAÇÃO, SANTIDADE E PERSEVERANÇA PARA CHEGAR AO CÉU, Coment Osiel Gomes, estudantes, professores, Ervália, MG, Imperatriz, MA, Cajamar, SP, estudos bíblicos, gospel, DEUS, ESPÍRITO SANTO, JESUS CRISTO, Com. Extra Pr. Luiz Henrique, de Almeida Silva, tel-What, 99-99152-0454, Canal YouTube, Henriquelhas, @PrHenrique, https://ebdnatv.blogspot.com/
Atividades de Inglês e Espanhol para Imprimir - AlfabetinhoMateusTavares54
Quer aprender inglês e espanhol de um jeito divertido? Aqui você encontra atividades legais para imprimir e usar. É só imprimir e começar a brincar enquanto aprende!
Slides Lição 10, Central Gospel, A Batalha Do Armagedom, 1Tr24.pptxLuizHenriquedeAlmeid6
Slideshare Lição 10, Central Gospel, A Batalha Do Armagedom, 1Tr24, Pr Henrique, EBD NA TV, Revista ano 11, nº 1, Revista Estudo Bíblico Jovens E Adultos, Central Gospel, 2º Trimestre de 2024, Professor, Tema, Os Grandes Temas Do Fim, Comentarista, Pr. Joá Caitano, estudantes, professores, Ervália, MG, Imperatriz, MA, Cajamar, SP, estudos bíblicos, gospel, DEUS, ESPÍRITO SANTO, JESUS CRISTO, Com. Extra Pr. Luiz Henrique, 99-99152-0454, Canal YouTube, Henriquelhas, @PrHenrique
Sistema de Bibliotecas UCS - Chronica do emperador Clarimundo, donde os reis ...Biblioteca UCS
A biblioteca abriga, em seu acervo de coleções especiais o terceiro volume da obra editada em Lisboa, em 1843. Sua exibe
detalhes dourados e vermelhos. A obra narra um romance de cavalaria, relatando a
vida e façanhas do cavaleiro Clarimundo,
que se torna Rei da Hungria e Imperador
de Constantinopla.
1. Inteligência Artificial – ACH2016
Aula 05 – Algoritmos Genéticos e Programação
Genética
Norton Trevisan Roman
(norton@usp.br)
14 de março de 2019
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 1 / 46
2. Algoritmos Genéticos
Voltemos ao algoritmo...
Função GENÉTICO(população, FITNESS): indivı́duo
repita
nova população ← Ø
para i = 1 até TAMANHO(população) faça
x ← SELEÇÃO ALEATÓRIA(população, FITNESS)
y ← SELEÇÃO ALEATÓRIA(população, FITNESS)
filho ← CRUZA(x, y)
se CHANCE MUTAÇÃO() então
filho ← MUTA(filho)
Adicione filho a nova população
população ← nova população
até algum indivı́duo ser apto o suficiente, ou iterações suficientes terem
passado
retorna o melhor indivı́duo na população, de acordo com FITNESS
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 2 / 46
3. Algoritmos Genéticos
Voltemos ao algoritmo...
Já vimos a Seleção
e o Cruzamento
Função GENÉTICO(população, FITNESS): indivı́duo
repita
nova população ← Ø
para i = 1 até TAMANHO(população) faça
x ← SELEÇÃO ALEATÓRIA(população, FITNESS)
y ← SELEÇÃO ALEATÓRIA(população, FITNESS)
filho ← CRUZA(x, y)
se CHANCE MUTAÇÃO() então
filho ← MUTA(filho)
Adicione filho a nova população
população ← nova população
até algum indivı́duo ser apto o suficiente, ou iterações suficientes terem
passado
retorna o melhor indivı́duo na população, de acordo com FITNESS
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 2 / 46
4. Algoritmos Genéticos
Voltemos ao algoritmo...
Falta agora a Mutação
Função GENÉTICO(população, FITNESS): indivı́duo
repita
nova população ← Ø
para i = 1 até TAMANHO(população) faça
x ← SELEÇÃO ALEATÓRIA(população, FITNESS)
y ← SELEÇÃO ALEATÓRIA(população, FITNESS)
filho ← CRUZA(x, y)
se CHANCE MUTAÇÃO() então
filho ← MUTA(filho)
Adicione filho a nova população
população ← nova população
até algum indivı́duo ser apto o suficiente, ou iterações suficientes terem
passado
retorna o melhor indivı́duo na população, de acordo com FITNESS
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 2 / 46
5. Algoritmos Genéticos – Operadores
Mutação: Algoritmo
Assim como o cruzamento, também a mutação
ocorre com uma certa probabilidade
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 3 / 46
6. Algoritmos Genéticos – Operadores
Mutação: Algoritmo
Assim como o cruzamento, também a mutação
ocorre com uma certa probabilidade
Em geral muito menor que a de cruzamento, refletindo a
baixa probabilidade de mutação na natureza
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 3 / 46
7. Algoritmos Genéticos – Operadores
Mutação: Algoritmo
Assim como o cruzamento, também a mutação
ocorre com uma certa probabilidade
Em geral muito menor que a de cruzamento, refletindo a
baixa probabilidade de mutação na natureza
Tipicamente entre 0.001 e 0.01
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 3 / 46
8. Algoritmos Genéticos – Operadores
Mutação: Algoritmo
Assim como o cruzamento, também a mutação
ocorre com uma certa probabilidade
Em geral muito menor que a de cruzamento, refletindo a
baixa probabilidade de mutação na natureza
Tipicamente entre 0.001 e 0.01
Função CHANCE MUTAÇÃO(): boolean
m ← probabilidade independente pequena, pré-definida, de
haver mutação
retorna Valor escolhido aleatoriamente, dentre {V,F}, onde V
tem m% de chance de ser escolhido
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 3 / 46
9. Algoritmos Genéticos – Operadores
Mutação: Algoritmo
Função MUTA(x): void
posição ← Escolha aleatoriamente uma posição do arranjo x
/* Modifica o valor escolhido */
se x[posição] for binário então
/* inverte o bit */
x[posição] ← ∼x[posição]
senão
x[posição] ← escolha aleatoriamente um novo valor (dentre
os possı́veis)
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 4 / 46
10. Algoritmos Genéticos – Operadores
Mutação
Como vimos, a mutação produz uma prole a partir
de um único pai
Fonte: ML. Mitchell.
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 5 / 46
11. Algoritmos Genéticos – Operadores
Mutação
Como vimos, a mutação produz uma prole a partir
de um único pai
Fonte: ML. Mitchell.
Produz mudanças aleatórias pequenas
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 5 / 46
12. Algoritmos Genéticos – Operadores
Mutação
Como vimos, a mutação produz uma prole a partir
de um único pai
Fonte: ML. Mitchell.
Produz mudanças aleatórias pequenas
Escolhe aleatoriamente um ou mais genes, e então muda
seu(s) valor(es)
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 5 / 46
13. Algoritmos Genéticos – Operadores
Mutação
Como vimos, a mutação produz uma prole a partir
de um único pai
Fonte: ML. Mitchell.
Produz mudanças aleatórias pequenas
Escolhe aleatoriamente um ou mais genes, e então muda
seu(s) valor(es)
Seu papel é evitar que o algoritmo fique preso em algum
ótimo local
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 5 / 46
14. Algoritmos Genéticos – Representação
Como representar um cromossomo?
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 6 / 46
15. Algoritmos Genéticos – Representação
Como representar um cromossomo?
Trata-se de associar uma cadeia de sı́mbolos a cada
solução possı́vel representada pelo cromossomo
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 6 / 46
16. Algoritmos Genéticos – Representação
Como representar um cromossomo?
Trata-se de associar uma cadeia de sı́mbolos a cada
solução possı́vel representada pelo cromossomo
A representação de um cromossomo é bastante especı́fica ao
problema, e representações ruins podem levar a um
desempenho ruim
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 6 / 46
17. Algoritmos Genéticos – Representação
Como representar um cromossomo?
Trata-se de associar uma cadeia de sı́mbolos a cada
solução possı́vel representada pelo cromossomo
A representação de um cromossomo é bastante especı́fica ao
problema, e representações ruins podem levar a um
desempenho ruim
As mais comuns são:
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 6 / 46
18. Algoritmos Genéticos – Representação
Como representar um cromossomo?
Trata-se de associar uma cadeia de sı́mbolos a cada
solução possı́vel representada pelo cromossomo
A representação de um cromossomo é bastante especı́fica ao
problema, e representações ruins podem levar a um
desempenho ruim
As mais comuns são:
Binária
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 6 / 46
19. Algoritmos Genéticos – Representação
Como representar um cromossomo?
Trata-se de associar uma cadeia de sı́mbolos a cada
solução possı́vel representada pelo cromossomo
A representação de um cromossomo é bastante especı́fica ao
problema, e representações ruins podem levar a um
desempenho ruim
As mais comuns são:
Binária
De valores inteiros
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 6 / 46
20. Algoritmos Genéticos – Representação
Como representar um cromossomo?
Trata-se de associar uma cadeia de sı́mbolos a cada
solução possı́vel representada pelo cromossomo
A representação de um cromossomo é bastante especı́fica ao
problema, e representações ruins podem levar a um
desempenho ruim
As mais comuns são:
Binária
De valores inteiros
De valores reais
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 6 / 46
21. Algoritmos Genéticos – Representação
Como representar um cromossomo?
Trata-se de associar uma cadeia de sı́mbolos a cada
solução possı́vel representada pelo cromossomo
A representação de um cromossomo é bastante especı́fica ao
problema, e representações ruins podem levar a um
desempenho ruim
As mais comuns são:
Binária
De valores inteiros
De valores reais
Baseada na ordem
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 6 / 46
22. Algoritmos Genéticos – Representação
Representação Binária
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 7 / 46
23. Algoritmos Genéticos – Representação
Representação Binária
A mais simples e mais comum das representações
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 7 / 46
24. Algoritmos Genéticos – Representação
Representação Binária
A mais simples e mais comum das representações
O cromossomo consiste de uma sequência de bits
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 7 / 46
25. Algoritmos Genéticos – Representação
Representação Binária
A mais simples e mais comum das representações
O cromossomo consiste de uma sequência de bits
1 0 0 1 0 1 1 0
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 7 / 46
26. Algoritmos Genéticos – Representação
Representação Binária
A mais simples e mais comum das representações
O cromossomo consiste de uma sequência de bits
1 0 0 1 0 1 1 0
Ideal para representar problemas cujo espaço de
soluções é composto por variáveis booleanas
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 7 / 46
27. Algoritmos Genéticos – Representação
Representação Binária
A mais simples e mais comum das representações
O cromossomo consiste de uma sequência de bits
1 0 0 1 0 1 1 0
Ideal para representar problemas cujo espaço de
soluções é composto por variáveis booleanas
Pode também ser usada para representar qualquer
valor numérico também
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 7 / 46
28. Algoritmos Genéticos – Representação
Representação Binária
A mais simples e mais comum das representações
O cromossomo consiste de uma sequência de bits
1 0 0 1 0 1 1 0
Ideal para representar problemas cujo espaço de
soluções é composto por variáveis booleanas
Pode também ser usada para representar qualquer
valor numérico também
Usando sua representação binária
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 7 / 46
29. Algoritmos Genéticos – Representação
Representação Binária: Exemplo
Queremos o valor máximo de f (x) = 15x − x2
,
onde x é inteiro e 0 ≤ x ≤ 15
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 8 / 46
30. Algoritmos Genéticos – Representação
Representação Binária: Exemplo
Queremos o valor máximo de f (x) = 15x − x2
,
onde x é inteiro e 0 ≤ x ≤ 15
Como representar o cromossomo?
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 8 / 46
31. Algoritmos Genéticos – Representação
Representação Binária: Exemplo
Queremos o valor máximo de f (x) = 15x − x2
,
onde x é inteiro e 0 ≤ x ≤ 15
Como representar o cromossomo? Com 4 bits
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 8 / 46
32. Algoritmos Genéticos – Representação
Representação Binária: Exemplo
Queremos o valor máximo de f (x) = 15x − x2
,
onde x é inteiro e 0 ≤ x ≤ 15
Como representar o cromossomo? Com 4 bits
Todo valor entre 0 e 15 pode ser escrito assim
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 8 / 46
33. Algoritmos Genéticos – Representação
Representação Binária: Exemplo
Queremos o valor máximo de f (x) = 15x − x2
,
onde x é inteiro e 0 ≤ x ≤ 15
Como representar o cromossomo? Com 4 bits
Todo valor entre 0 e 15 pode ser escrito assim
Ex: 0 1 1 0
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 8 / 46
34. Algoritmos Genéticos – Representação
Representação Binária: Exemplo
Queremos o valor máximo de f (x) = 15x − x2
,
onde x é inteiro e 0 ≤ x ≤ 15
Como representar o cromossomo? Com 4 bits
Todo valor entre 0 e 15 pode ser escrito assim
Ex: 0 1 1 0
E a função objetivo?
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 8 / 46
35. Algoritmos Genéticos – Representação
Representação Binária: Exemplo
Queremos o valor máximo de f (x) = 15x − x2
,
onde x é inteiro e 0 ≤ x ≤ 15
Como representar o cromossomo? Com 4 bits
Todo valor entre 0 e 15 pode ser escrito assim
Ex: 0 1 1 0
E a função objetivo?
Será a própria f (x) = 15x − x2
(queremos seu máximo)
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 8 / 46
36. Algoritmos Genéticos – Representação
Representação Binária: Exemplo
Queremos o valor máximo de f (x) = 15x − x2
,
onde x é inteiro e 0 ≤ x ≤ 15
Como representar o cromossomo? Com 4 bits
Todo valor entre 0 e 15 pode ser escrito assim
Ex: 0 1 1 0
E a função objetivo?
Será a própria f (x) = 15x − x2
(queremos seu máximo)
Seguimos então o procedimento já visto...
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 8 / 46
37. Algoritmos Genéticos – Representação
Representação Binária: Exemplo
E se agora quisermos o máximo de
f (x, y) = (1 − x)2
e−x2−(y+1)2
, com −3 ≤ x, y ≤ 3?
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 9 / 46
38. Algoritmos Genéticos – Representação
Representação Binária: Exemplo
E se agora quisermos o máximo de
f (x, y) = (1 − x)2
e−x2−(y+1)2
, com −3 ≤ x, y ≤ 3?
Concatenamos as representações (8 bits) de x e y
1 0 0 1 0 1 1 0 0 0 1 1 0 1 1 1
x y
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 9 / 46
39. Algoritmos Genéticos – Representação
Representação Binária: Exemplo
E se agora quisermos o máximo de
f (x, y) = (1 − x)2
e−x2−(y+1)2
, com −3 ≤ x, y ≤ 3?
Concatenamos as representações (8 bits) de x e y
1 0 0 1 0 1 1 0 0 0 1 1 0 1 1 1
x y
E a função objetivo?
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 9 / 46
40. Algoritmos Genéticos – Representação
Representação Binária: Exemplo
E se agora quisermos o máximo de
f (x, y) = (1 − x)2
e−x2−(y+1)2
, com −3 ≤ x, y ≤ 3?
Concatenamos as representações (8 bits) de x e y
1 0 0 1 0 1 1 0 0 0 1 1 0 1 1 1
x y
E a função objetivo?
Dado um cromossomo, primeiro decodificamos x e y
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 9 / 46
41. Algoritmos Genéticos – Representação
Representação Binária: Exemplo
E se agora quisermos o máximo de
f (x, y) = (1 − x)2
e−x2−(y+1)2
, com −3 ≤ x, y ≤ 3?
Concatenamos as representações (8 bits) de x e y
1 0 0 1 0 1 1 0 0 0 1 1 0 1 1 1
x y
E a função objetivo?
Dado um cromossomo, primeiro decodificamos x e y
E então os usamos em f (x, y)
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 9 / 46
42. Algoritmos Genéticos – Representação
Representação Binária: Exemplo
E se x e y forem números reais?
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 10 / 46
43. Algoritmos Genéticos – Representação
Representação Binária: Exemplo
E se x e y forem números reais?
Mapeamos a esses 8 bits:
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 10 / 46
44. Algoritmos Genéticos – Representação
Representação Binária: Exemplo
E se x e y forem números reais?
Mapeamos a esses 8 bits:
Com 8 bits representamos inteiros de 0 a 255
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 10 / 46
45. Algoritmos Genéticos – Representação
Representação Binária: Exemplo
E se x e y forem números reais?
Mapeamos a esses 8 bits:
Com 8 bits representamos inteiros de 0 a 255
A menor fração do intervalo [−3, 3] representado por esses
bits é 3−(−3)
255−0
= 6
255
= 0.0235294
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 10 / 46
46. Algoritmos Genéticos – Representação
Representação Binária: Exemplo
E se x e y forem números reais?
Mapeamos a esses 8 bits:
Com 8 bits representamos inteiros de 0 a 255
A menor fração do intervalo [−3, 3] representado por esses
bits é 3−(−3)
255−0
= 6
255
= 0.0235294
O inteiro contido nos 8 bits é então multiplicado por
0.0235294 (caindo no intervalo [0, 6])
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 10 / 46
47. Algoritmos Genéticos – Representação
Representação Binária: Exemplo
E se x e y forem números reais?
Mapeamos a esses 8 bits:
Com 8 bits representamos inteiros de 0 a 255
A menor fração do intervalo [−3, 3] representado por esses
bits é 3−(−3)
255−0
= 6
255
= 0.0235294
O inteiro contido nos 8 bits é então multiplicado por
0.0235294 (caindo no intervalo [0, 6])
Subtraı́mos então 3 do resultado, deslocando o intervalo
para [−3, 3]
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 10 / 46
51. Algoritmos Genéticos – Representação
Representação Binária: Exemplo
Ex:
1 0 0 0 1 0 1 0
O inteiro correspondente será 138
Fazemos então 138 × 0.0235294 = 3.2470572
E o valor representado será 3.2470572 − 3 = 0.2470572
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 11 / 46
52. Algoritmos Genéticos – Representação
Representação Binária: Exemplo
Ex:
1 0 0 0 1 0 1 0
O inteiro correspondente será 138
Fazemos então 138 × 0.0235294 = 3.2470572
E o valor representado será 3.2470572 − 3 = 0.2470572
0.2470572 é o valor a ser usado na função objetivo
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 11 / 46
53. Algoritmos Genéticos – Representação
Representação Binária: Exemplo
Ex:
1 0 0 0 1 0 1 0
O inteiro correspondente será 138
Fazemos então 138 × 0.0235294 = 3.2470572
E o valor representado será 3.2470572 − 3 = 0.2470572
0.2470572 é o valor a ser usado na função objetivo
Mas booleanos, inteiros e reais não são as únicas
coisas que podemos representar com binários
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 11 / 46
54. Algoritmos Genéticos – Representação
Representação Binária: Exemplo
Ex:
1 0 0 0 1 0 1 0
O inteiro correspondente será 138
Fazemos então 138 × 0.0235294 = 3.2470572
E o valor representado será 3.2470572 − 3 = 0.2470572
0.2470572 é o valor a ser usado na função objetivo
Mas booleanos, inteiros e reais não são as únicas
coisas que podemos representar com binários
Restrições e Regras também
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 11 / 46
55. Algoritmos Genéticos
Representação Binária: Restrições e Regras
Restrições servem para limitar os possı́veis valores
de uma variável
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 12 / 46
56. Algoritmos Genéticos
Representação Binária: Restrições e Regras
Restrições servem para limitar os possı́veis valores
de uma variável
Ex: −3 ≤ x, y ≤ 3
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 12 / 46
57. Algoritmos Genéticos
Representação Binária: Restrições e Regras
Restrições servem para limitar os possı́veis valores
de uma variável
Ex: −3 ≤ x, y ≤ 3
Na representação binária, podemos fazer com que
cada restrição corresponda a uma cadeia especı́fica
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 12 / 46
58. Algoritmos Genéticos
Representação Binária: Restrições e Regras
Restrições servem para limitar os possı́veis valores
de uma variável
Ex: −3 ≤ x, y ≤ 3
Na representação binária, podemos fazer com que
cada restrição corresponda a uma cadeia especı́fica
Ex:
Atributo: tempo
100 tempo = ensolarado
Representado com 3 bits: 010 tempo = nublado
001 tempo = chuvoso
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 12 / 46
59. Algoritmos Genéticos
Representação Binária: Restrições e Regras
Podemos combinar restrições com OU (∨):
101 tempo = ensolarado ∨ chuvoso
011 tempo = nublado ∨ chuvoso
111 tempo = qualquer tempo
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 13 / 46
60. Algoritmos Genéticos
Representação Binária: Restrições e Regras
Podemos combinar restrições com OU (∨):
101 tempo = ensolarado ∨ chuvoso
011 tempo = nublado ∨ chuvoso
111 tempo = qualquer tempo
Atributo: vento
Representado com 2 bits:
10 vento = forte
01 vento = fraco
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 13 / 46
61. Algoritmos Genéticos
Representação Binária: Restrições e Regras
Podemos combinar restrições com OU (∨):
101 tempo = ensolarado ∨ chuvoso
011 tempo = nublado ∨ chuvoso
111 tempo = qualquer tempo
Atributo: vento
Representado com 2 bits:
10 vento = forte
01 vento = fraco
Conjunções de restrições em atributos múltiplos pode ser
representadas concatenando-se as cadeias de bits:
01110 (tempo = nublado ∨ chuvoso) ∧ (vento = forte)
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 13 / 46
63. Algoritmos Genéticos
Representação Binária: Restrições e Regras
Regras também podem ser representadas assim
Se vento = forte, então viagem = sim
1111010 (tempo = ensolarado ∨ nublado ∨ chuvoso)
∧ (vento = forte) ⇒ (viagem = sim)
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 14 / 46
64. Algoritmos Genéticos
Representação Binária: Restrições e Regras
Regras também podem ser representadas assim
Se vento = forte, então viagem = sim
1111010 (tempo = ensolarado ∨ nublado ∨ chuvoso)
∧ (vento = forte) ⇒ (viagem = sim)
Note que a regra contém uma sub-cadeia para cada
atributo, mesmo que um atributo não seja
restringido por ela
1111010 (tempo = não importa) ∧ (vento = forte) ⇒
(viagem = sim)
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 14 / 46
65. Algoritmos Genéticos
Representação Binária: Restrições e Regras
Isso faz com que a regra tenha um tamanho fixo em
bits
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 15 / 46
66. Algoritmos Genéticos
Representação Binária: Restrições e Regras
Isso faz com que a regra tenha um tamanho fixo em
bits
Sendo que sub-cadeias em posições especı́ficas restringem
atributos especı́ficos
1111010 (tempo = ensolarado ∨ nublado ∨ chuvoso)
∧ (vento = forte) ⇒ (viagem = sim)
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 15 / 46
67. Algoritmos Genéticos
Representação Binária: Restrições e Regras
Isso faz com que a regra tenha um tamanho fixo em
bits
Sendo que sub-cadeias em posições especı́ficas restringem
atributos especı́ficos
1111010 (tempo = ensolarado ∨ nublado ∨ chuvoso)
∧ (vento = forte) ⇒ (viagem = sim)
Regras mais complexas são representadas de
maneira similar, pela concatenação das
representações de cada regra que as compõem
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 15 / 46
68. Algoritmos Genéticos
Representando regras complexas – Exemplo
Se a = V e b = F então c = V
Se b = V então d = F (não importa o valor de a)
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 16 / 46
69. Algoritmos Genéticos
Representando regras complexas – Exemplo
Se a = V e b = F então c = V
Se b = V então d = F (não importa o valor de a)
Representação: 1001111100
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 16 / 46
70. Algoritmos Genéticos
Representando regras complexas – Exemplo
Se a = V e b = F então c = V
Se b = V então d = F (não importa o valor de a)
Representação: 1001111100
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 16 / 46
71. Algoritmos Genéticos
Representando regras complexas – Exemplo
Se a = V e b = F então c = V
Se b = V então d = F (não importa o valor de a)
Representação: 1001111100
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 16 / 46
72. Algoritmos Genéticos
Representando regras complexas – Exemplo
Se a = V e b = F então c = V
Se b = V então d = F (não importa o valor de a)
Representação: 1001111100
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 16 / 46
73. Algoritmos Genéticos
Representando regras complexas – Exemplo
Se a = V e b = F então c = V
Se b = V então d = F (não importa o valor de a)
Representação: 1001111100
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 16 / 46
74. Algoritmos Genéticos
Representando regras complexas – Exemplo
Se a = V e b = F então c = V
Se b = V então d = F (não importa o valor de a)
Representação: 1001111100
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 16 / 46
75. Algoritmos Genéticos
Representando regras complexas – Exemplo
Se a = V e b = F então c = V
Se b = V então d = F (não importa o valor de a)
Representação: 1001111100
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 16 / 46
76. Algoritmos Genéticos
Representando regras complexas – Exemplo
Se a = V e b = F então c = V
Se b = V então d = F (não importa o valor de a)
Representação: 1001111100
Note que os consequentes têm um único bit
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 16 / 46
77. Algoritmos Genéticos
Representando regras complexas – Exemplo
Se a = V e b = F então c = V
Se b = V então d = F (não importa o valor de a)
Representação: 1001111100
Note que os consequentes têm um único bit
Se a cadeia de bits for de tamanho variável, como neste
exemplo, onde ao aumentarmos o número de regras
aumentaremos a cadeia, a função de cruzamento deve ser
alterada para acomodar esse fato
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 16 / 46
78. Algoritmos Genéticos
Problemas com essa representação
Considere a seguinte regra
1111011
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 17 / 46
79. Algoritmos Genéticos
Problemas com essa representação
Considere a seguinte regra
1111011 (tempo = ensolarado ∨ nublado ∨ chuvoso)
∧ (vento = forte) ⇒ (viagem = sim ∨ não)
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 17 / 46
80. Algoritmos Genéticos
Problemas com essa representação
Considere a seguinte regra
1111011 (tempo = ensolarado ∨ nublado ∨ chuvoso)
∧ (vento = forte) ⇒ (viagem = sim ∨ não)
O 11 final torna a regra inútil (se o vento estiver forte, então
a viagem ocorrerá ou não)
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 17 / 46
81. Algoritmos Genéticos
Problemas com essa representação
Considere a seguinte regra
1111011 (tempo = ensolarado ∨ nublado ∨ chuvoso)
∧ (vento = forte) ⇒ (viagem = sim ∨ não)
O 11 final torna a regra inútil (se o vento estiver forte, então
a viagem ocorrerá ou não)
As regras devem ser bem pensadas, para evitar a
representação de hipóteses indesejadas
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 17 / 46
83. Algoritmos Genéticos
Possı́veis soluções
1111011 (tempo = ensolarado ∨ nublado ∨ chuvoso)
∧ (vento = forte) ⇒ (viagem = sim ∨ não)
Alterar a representação da condição posterior
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 18 / 46
84. Algoritmos Genéticos
Possı́veis soluções
1111011 (tempo = ensolarado ∨ nublado ∨ chuvoso)
∧ (vento = forte) ⇒ (viagem = sim ∨ não)
Alterar a representação da condição posterior
Ex: aloque um único bit para “viagem”
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 18 / 46
85. Algoritmos Genéticos
Possı́veis soluções
1111011 (tempo = ensolarado ∨ nublado ∨ chuvoso)
∧ (vento = forte) ⇒ (viagem = sim ∨ não)
Alterar a representação da condição posterior
Ex: aloque um único bit para “viagem”
Alterar os operadores genéticos para evitar essas
cadeias
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 18 / 46
86. Algoritmos Genéticos
Possı́veis soluções
1111011 (tempo = ensolarado ∨ nublado ∨ chuvoso)
∧ (vento = forte) ⇒ (viagem = sim ∨ não)
Alterar a representação da condição posterior
Ex: aloque um único bit para “viagem”
Alterar os operadores genéticos para evitar essas
cadeias
Dar a essa cadeia um valor de fitness muito pequeno
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 18 / 46
88. Algoritmos Genéticos
Representação Inteira
A representação binária, contudo, pode gerar
cromossomos grandes
Especialmente quando tratamos de valores inteiros, reais ou
simbólicos (ex: ’A’, ’σ’ etc)
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 19 / 46
89. Algoritmos Genéticos
Representação Inteira
A representação binária, contudo, pode gerar
cromossomos grandes
Especialmente quando tratamos de valores inteiros, reais ou
simbólicos (ex: ’A’, ’σ’ etc)
Com valores discretos (inteiros ou simbólicos), o que
fazer?
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 19 / 46
90. Algoritmos Genéticos
Representação Inteira
A representação binária, contudo, pode gerar
cromossomos grandes
Especialmente quando tratamos de valores inteiros, reais ou
simbólicos (ex: ’A’, ’σ’ etc)
Com valores discretos (inteiros ou simbólicos), o que
fazer? Representá-los como inteiros
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 19 / 46
91. Algoritmos Genéticos
Representação Inteira
A representação binária, contudo, pode gerar
cromossomos grandes
Especialmente quando tratamos de valores inteiros, reais ou
simbólicos (ex: ’A’, ’σ’ etc)
Com valores discretos (inteiros ou simbólicos), o que
fazer? Representá-los como inteiros
2 4 7 4 8 5 5 2
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 19 / 46
92. Algoritmos Genéticos
Representação Inteira
A representação binária, contudo, pode gerar
cromossomos grandes
Especialmente quando tratamos de valores inteiros, reais ou
simbólicos (ex: ’A’, ’σ’ etc)
Com valores discretos (inteiros ou simbólicos), o que
fazer? Representá-los como inteiros
2 4 7 4 8 5 5 2
C B E E D C D E
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 19 / 46
93. Algoritmos Genéticos
Representação Inteira
A representação binária, contudo, pode gerar
cromossomos grandes
Especialmente quando tratamos de valores inteiros, reais ou
simbólicos (ex: ’A’, ’σ’ etc)
Com valores discretos (inteiros ou simbólicos), o que
fazer? Representá-los como inteiros
2 4 7 4 8 5 5 2
C B E E D C D E
Trata-se da representação que usamos até agora...
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 19 / 46
95. Algoritmos Genéticos
Representação Real
Útil quando queremos definir os genes usando
variáveis contı́nuas
Os cromossomos são então cadeias de valores em um dado
intervalo
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 20 / 46
96. Algoritmos Genéticos
Representação Real
Útil quando queremos definir os genes usando
variáveis contı́nuas
Os cromossomos são então cadeias de valores em um dado
intervalo
Operador: Cruzamento por média (de 2 para 1)
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 20 / 46
97. Algoritmos Genéticos
Representação Real
Útil quando queremos definir os genes usando
variáveis contı́nuas
Os cromossomos são então cadeias de valores em um dado
intervalo
Operador: Cruzamento por média (de 2 para 1)
Os genes do filho são resultado da média dos genes dos pais
(em cada posição)
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 20 / 46
98. Algoritmos Genéticos
Representação Real
Útil quando queremos definir os genes usando
variáveis contı́nuas
Os cromossomos são então cadeias de valores em um dado
intervalo
Operador: Cruzamento por média (de 2 para 1)
Os genes do filho são resultado da média dos genes dos pais
(em cada posição)
1.0 3.5 1.2 8.1 0.7
2.1 4.7 9.2 1.8 0.3
1.6 4.1 5.2 5.0 0.4
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 20 / 46
100. Algoritmos Genéticos
Representação Real
Operador: Mutação aleatória
Um gene é substituı́do por um valor aleatório (num intervalo
pré-definido)
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 21 / 46
101. Algoritmos Genéticos
Representação Real
Operador: Mutação aleatória
Um gene é substituı́do por um valor aleatório (num intervalo
pré-definido)
1.0 3.5 1.2 8.1 0.7 1.0 3.5 1.2 1.4 0.7
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 21 / 46
102. Algoritmos Genéticos
Representação Real
Operador: Mutação aleatória
Um gene é substituı́do por um valor aleatório (num intervalo
pré-definido)
1.0 3.5 1.2 8.1 0.7 1.0 3.5 1.2 1.4 0.7
Operador: Mutação por incremento
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 21 / 46
103. Algoritmos Genéticos
Representação Real
Operador: Mutação aleatória
Um gene é substituı́do por um valor aleatório (num intervalo
pré-definido)
1.0 3.5 1.2 8.1 0.7 1.0 3.5 1.2 1.4 0.7
Operador: Mutação por incremento
O gene é somado a um incremento aleatório
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 21 / 46
104. Algoritmos Genéticos
Representação Real
Operador: Mutação aleatória
Um gene é substituı́do por um valor aleatório (num intervalo
pré-definido)
1.0 3.5 1.2 8.1 0.7 1.0 3.5 1.2 1.4 0.7
Operador: Mutação por incremento
O gene é somado a um incremento aleatório
1.0 3.5 1.2 8.1 0.7
-3.1
1.0 0.4 1.2 8.1 0.7
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 21 / 46
107. Algoritmos Genéticos
Representação Real
Outros tipos de operadores existem
Cruzamento por média geométrica
Mutação com outras distribuições de probabilidade
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 22 / 46
108. Algoritmos Genéticos
Representação Real
Outros tipos de operadores existem
Cruzamento por média geométrica
Mutação com outras distribuições de probabilidade
etc
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 22 / 46
109. Algoritmos Genéticos
Representação Real
Outros tipos de operadores existem
Cruzamento por média geométrica
Mutação com outras distribuições de probabilidade
etc
A representação real também pode ser usada com
inteiros
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 22 / 46
110. Algoritmos Genéticos
Representação Real
Outros tipos de operadores existem
Cruzamento por média geométrica
Mutação com outras distribuições de probabilidade
etc
A representação real também pode ser usada com
inteiros
Nesse caso, a diferença está em como é feito o cruzamento e
(potencialmente) a mutação
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 22 / 46
111. Algoritmos Genéticos
Representação Real
Outros tipos de operadores existem
Cruzamento por média geométrica
Mutação com outras distribuições de probabilidade
etc
A representação real também pode ser usada com
inteiros
Nesse caso, a diferença está em como é feito o cruzamento e
(potencialmente) a mutação
Quando usar qual representação dependerá do problema
modelado
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 22 / 46
113. Algoritmos Genéticos
Representação Baseada na Ordem
Usada para problemas de origem combinatória, onde
a ordem importa
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 23 / 46
114. Algoritmos Genéticos
Representação Baseada na Ordem
Usada para problemas de origem combinatória, onde
a ordem importa
Ex: problema do caixeiro viajante
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 23 / 46
115. Algoritmos Genéticos
Representação Baseada na Ordem
Usada para problemas de origem combinatória, onde
a ordem importa
Ex: problema do caixeiro viajante
Operador: Cruzamento
5 2 1 3 6 4
1 4 5 6 2 3
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 23 / 46
116. Algoritmos Genéticos
Representação Baseada na Ordem
Usada para problemas de origem combinatória, onde
a ordem importa
Ex: problema do caixeiro viajante
Operador: Cruzamento
5 2 1 3 6 4
1 4 5 6 2 3
Note que, por ser um
problema combinatório,
os valores nos genes não
mudam, apenas sua ordem
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 23 / 46
117. Algoritmos Genéticos
Representação Baseada na Ordem
Usada para problemas de origem combinatória, onde
a ordem importa
Ex: problema do caixeiro viajante
Operador: Cruzamento
5 2 1 3 6 4
1 4 5 6 2 3
Inicialmente criamos uma máscara que diz quais genes
mantemos e quais terão a ordem alterada (amarelo)
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 23 / 46
118. Algoritmos Genéticos
Representação Baseada na Ordem
Usada para problemas de origem combinatória, onde
a ordem importa
Ex: problema do caixeiro viajante
Operador: Cruzamento
5 2 1 3 6 4
1 4 5 6 2 3
Note também que os
genes mantidos num
cromossomo são alterados
no outro e vice-versa
Inicialmente criamos uma máscara que diz quais genes
mantemos e quais terão a ordem alterada (amarelo)
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 23 / 46
120. Algoritmos Genéticos
Representação Baseada na Ordem
5 2 1 3 6 4
1 4 5 6 2 3
2 6 4
1 5 6
Os genes a serem alterados são permutados de forma a
ficarem na ordem em que aparecem no outro cromossomo
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 24 / 46
121. Algoritmos Genéticos
Representação Baseada na Ordem
5 2 1 3 6 4
1 4 5 6 2 3
2 6 4
1 5 6
Os genes a serem alterados são permutados de forma a
ficarem na ordem em que aparecem no outro cromossomo
Os genes 5, 1 e 3 do 1o
cromossomo aparecem na ordem 1, 5, 3 no
2o
.
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 24 / 46
122. Algoritmos Genéticos
Representação Baseada na Ordem
5 2 1 3 6 4
1 4 5 6 2 3
1 2 5 3 6 4
1 5 6
Os genes a serem alterados são permutados de forma a
ficarem na ordem em que aparecem no outro cromossomo
Os genes 5, 1 e 3 do 1o
cromossomo aparecem na ordem 1, 5, 3 no
2o
. Então o colocamos nessa ordem no 1o
cromossomo
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 24 / 46
123. Algoritmos Genéticos
Representação Baseada na Ordem
5 2 1 3 6 4
1 4 5 6 2 3
1 2 5 3 6 4
1 5 6
Os genes a serem alterados são permutados de forma a
ficarem na ordem em que aparecem no outro cromossomo
Os genes 5, 1 e 3 do 1o
cromossomo aparecem na ordem 1, 5, 3 no
2o
. Então o colocamos nessa ordem no 1o
cromossomo
Já os genes 4, 2, 3 do 2o
cromossomo aparecem na ordem 2, 3, 4 no
1o
.
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 24 / 46
124. Algoritmos Genéticos
Representação Baseada na Ordem
5 2 1 3 6 4
1 4 5 6 2 3
1 2 5 3 6 4
1 2 5 6 3 4
Os genes a serem alterados são permutados de forma a
ficarem na ordem em que aparecem no outro cromossomo
Os genes 5, 1 e 3 do 1o
cromossomo aparecem na ordem 1, 5, 3 no
2o
. Então o colocamos nessa ordem no 1o
cromossomo
Já os genes 4, 2, 3 do 2o
cromossomo aparecem na ordem 2, 3, 4 no
1o
. Então o colocamos nessa ordem no 2o
cromossomo
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 24 / 46
125. Algoritmos Genéticos
Representação Baseada na Ordem
5 2 1 3 6 4
1 4 5 6 2 3
1 2 5 3 6 4
1 2 5 6 3 4
Os genes a serem alterados são permutados de forma a
ficarem na ordem em que aparecem no outro cromossomo
Os genes 5, 1 e 3 do 1o
cromossomo aparecem na ordem 1, 5, 3 no
2o
. Então o colocamos nessa ordem no 1o
cromossomo
Já os genes 4, 2, 3 do 2o
cromossomo aparecem na ordem 2, 3, 4 no
1o
. Então o colocamos nessa ordem no 2o
cromossomo
Note, mais uma vez, que só permutamos, não mudamos,
valores
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 24 / 46
131. Algoritmos Genéticos
Paralelizando Algoritmos Genéticos
Subdivida a população em subgrupos
Cada sub-grupo evolui separadamente
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 26 / 46
132. Algoritmos Genéticos
Paralelizando Algoritmos Genéticos
Subdivida a população em subgrupos
Cada sub-grupo evolui separadamente
Cruzamento e comunicação entre grupos são menos
freqüentes que intra-grupo
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 26 / 46
133. Algoritmos Genéticos
Paralelizando Algoritmos Genéticos
Subdivida a população em subgrupos
Cada sub-grupo evolui separadamente
Cruzamento e comunicação entre grupos são menos
freqüentes que intra-grupo
Transferências entre grupos ocorrem via migração:
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 26 / 46
134. Algoritmos Genéticos
Paralelizando Algoritmos Genéticos
Subdivida a população em subgrupos
Cada sub-grupo evolui separadamente
Cruzamento e comunicação entre grupos são menos
freqüentes que intra-grupo
Transferências entre grupos ocorrem via migração:
Indivı́duos de um grupo são copiados ou transferidos a outro,
de tempos em tempos
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 26 / 46
135. Algoritmos Genéticos
Paralelizando Algoritmos Genéticos
Subdivida a população em subgrupos
Cada sub-grupo evolui separadamente
Cruzamento e comunicação entre grupos são menos
freqüentes que intra-grupo
Transferências entre grupos ocorrem via migração:
Indivı́duos de um grupo são copiados ou transferidos a outro,
de tempos em tempos
Reduz crowding (veremos mais adiante...)
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 26 / 46
137. Algoritmos Genéticos
Em suma
Algoritmos genéticos geram hipóteses pela mutação
repetitiva e recombinação de partes das melhores
hipóteses
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 27 / 46
138. Algoritmos Genéticos
Em suma
Algoritmos genéticos geram hipóteses pela mutação
repetitiva e recombinação de partes das melhores
hipóteses
A cada passo, a população é atualizada, trocando-se
parte dela pela prole gerada
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 27 / 46
140. Algoritmos Genéticos
Vantagens
Habilidade de combinar grandes porções de genes
que evoluı́ram independentemente
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 28 / 46
141. Algoritmos Genéticos
Vantagens
Habilidade de combinar grandes porções de genes
que evoluı́ram independentemente
Podemos abordar problemas de difı́cil modelagem
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 28 / 46
142. Algoritmos Genéticos
Vantagens
Habilidade de combinar grandes porções de genes
que evoluı́ram independentemente
Podemos abordar problemas de difı́cil modelagem
Facilmente tornados paralelos
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 28 / 46
143. Algoritmos Genéticos
Vantagens
Habilidade de combinar grandes porções de genes
que evoluı́ram independentemente
Podemos abordar problemas de difı́cil modelagem
Facilmente tornados paralelos
Dificilmente caem em mı́nimos locais, por darem
pulos aleatórios no espaço de hipóteses
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 28 / 46
147. Algoritmos Genéticos
Desvantagens
Seu sucesso requer um trabalho cuidadoso da
representação do problema
Crowding
Quando um indivı́duo com fitness maior que os outros
rapidamente se reproduz
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 29 / 46
148. Algoritmos Genéticos
Desvantagens
Seu sucesso requer um trabalho cuidadoso da
representação do problema
Crowding
Quando um indivı́duo com fitness maior que os outros
rapidamente se reproduz
Cópias dele e de indivı́duos muito similares formam uma
grande fração da população
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 29 / 46
149. Algoritmos Genéticos
Desvantagens
Seu sucesso requer um trabalho cuidadoso da
representação do problema
Crowding
Quando um indivı́duo com fitness maior que os outros
rapidamente se reproduz
Cópias dele e de indivı́duos muito similares formam uma
grande fração da população
Reduz a diversidade da população, deixando o progresso do
algoritmo mais lento
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 29 / 46
152. Algoritmos Genéticos
Estratégias contra crowding
Fitness sharing:
Reduzir o valor de adaptação do indivı́duo pela presença de
outros similares na população
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 30 / 46
153. Algoritmos Genéticos
Estratégias contra crowding
Fitness sharing:
Reduzir o valor de adaptação do indivı́duo pela presença de
outros similares na população
Restringir os tipos de indivı́duos que podem se
recombinar para formar a prole
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 30 / 46
154. Algoritmos Genéticos
Estratégias contra crowding
Fitness sharing:
Reduzir o valor de adaptação do indivı́duo pela presença de
outros similares na população
Restringir os tipos de indivı́duos que podem se
recombinar para formar a prole
Fazer com que somente os indivı́duos mais similares se
recombinem, formando grupos de indivı́duos similares
(múltiplas sub-espécies da população)
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 30 / 46
155. Algoritmos Genéticos
Estratégias contra crowding
Fitness sharing:
Reduzir o valor de adaptação do indivı́duo pela presença de
outros similares na população
Restringir os tipos de indivı́duos que podem se
recombinar para formar a prole
Fazer com que somente os indivı́duos mais similares se
recombinem, formando grupos de indivı́duos similares
(múltiplas sub-espécies da população)
Distribuir espacialmente os indivı́duos e permitir que
somente os que estiverem mais próximos se recombinem.
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 30 / 46
156. Algoritmos Genéticos
Estratégias contra crowding
Mudar a função de seleção para usar posição em
lista, e não o mais adaptado
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 31 / 46
157. Algoritmos Genéticos
Estratégias contra crowding
Mudar a função de seleção para usar posição em
lista, e não o mais adaptado
Embora os melhores ainda tenham maior probabilidade, esta
é melhor distribuı́da, por depender da posição, e não do
valor de fitness
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 31 / 46
158. Algoritmos Genéticos
Gráfico de Desempenho
Curva que mostra o
desempenho médio da
população a cada
geração
Fonte: AI. Negnevitsky.
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 32 / 46
159. Algoritmos Genéticos
Gráfico de Desempenho
Curva que mostra o
desempenho médio da
população a cada
geração
Acompanhada de uma
mostrando o desempenho
do melhor indivı́duo da
população
Fonte: AI. Negnevitsky.
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 32 / 46
160. Algoritmos Genéticos
Gráfico de Desempenho
Curva que mostra o
desempenho médio da
população a cada
geração
Acompanhada de uma
mostrando o desempenho
do melhor indivı́duo da
população
Medidos conforme a
função objetivo Fonte: AI. Negnevitsky.
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 32 / 46
161. Algoritmos Genéticos
Gráfico de Desempenho
Curva que mostra o
desempenho médio da
população a cada
geração
Acompanhada de uma
mostrando o desempenho
do melhor indivı́duo da
população
Medidos conforme a
função objetivo
Nesse exemplo,
a população é de
60 cromossomos
Fonte: AI. Negnevitsky.
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 32 / 46
162. Algoritmos Genéticos
Gráfico de Desempenho
Curva que mostra o
desempenho médio da
população a cada
geração
Acompanhada de uma
mostrando o desempenho
do melhor indivı́duo da
população
Medidos conforme a
função objetivo
A probabilidade de um
cruzamento é de 70%
Fonte: AI. Negnevitsky.
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 32 / 46
163. Algoritmos Genéticos
Gráfico de Desempenho
Curva que mostra o
desempenho médio da
população a cada
geração
Acompanhada de uma
mostrando o desempenho
do melhor indivı́duo da
população
Medidos conforme a
função objetivo
E a de mutação
é de 0,1%
Fonte: AI. Negnevitsky.
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 32 / 46
164. Algoritmos Genéticos
Gráfico de Desempenho
Curva que mostra o
desempenho médio da
população a cada
geração
Acompanhada de uma
mostrando o desempenho
do melhor indivı́duo da
população
Medidos conforme a
função objetivo
Bastante útil para
sabermos a partir
de quantas gerações
a população es-
tabiliza na média
Fonte: AI. Negnevitsky.
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 32 / 46
165. Algoritmos Genéticos
Gráfico de Desempenho
Curva que mostra o
desempenho médio da
população a cada
geração
Acompanhada de uma
mostrando o desempenho
do melhor indivı́duo da
população
Medidos conforme a
função objetivo
E a partir de quantas
gerações o melhor
indivı́duo estabiliza
Fonte: AI. Negnevitsky.
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 32 / 46
167. Programação Genética
Técnica de computação evolutiva em que a
população é composta de programas ou expressões,
em vez de valores
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 34 / 46
168. Programação Genética
Técnica de computação evolutiva em que a
população é composta de programas ou expressões,
em vez de valores
Podem evoluir programas completos
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 34 / 46
169. Programação Genética
Técnica de computação evolutiva em que a
população é composta de programas ou expressões,
em vez de valores
Podem evoluir programas completos
Representa as expressões ou
programas por sua árvore
sintática
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 34 / 46
170. Programação Genética
+
sen
√
x +
ˆ y
x 2
Fonte: ML. Mitchell.
Técnica de computação evolutiva em que a
população é composta de programas ou expressões,
em vez de valores
Podem evoluir programas completos
Representa as expressões ou
programas por sua árvore
sintática
Ex: sen(x) +
p
x2 + y
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 34 / 46
171. Programação Genética
+
sen
√
x +
ˆ y
x 2
Fonte: ML. Mitchell.
Técnica de computação evolutiva em que a
população é composta de programas ou expressões,
em vez de valores
Podem evoluir programas completos
Representa as expressões ou
programas por sua árvore
sintática
Ex: sen(x) +
p
x2 + y
Bastante usada em projetos
de circuitos
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 34 / 46
172. Programação Genética
Uso como Aprendizagem de Máquina
Começamos definindo as funções primitivas
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 35 / 46
173. Programação Genética
Uso como Aprendizagem de Máquina
Começamos definindo as funções primitivas
Ex: Seno, raiz etc
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 35 / 46
174. Programação Genética
Uso como Aprendizagem de Máquina
Começamos definindo as funções primitivas
Ex: Seno, raiz etc
Definimos então os sı́mbolos terminais
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 35 / 46
175. Programação Genética
Uso como Aprendizagem de Máquina
Começamos definindo as funções primitivas
Ex: Seno, raiz etc
Definimos então os sı́mbolos terminais
Ex: x, y, 3, 2 etc
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 35 / 46
176. Programação Genética
Uso como Aprendizagem de Máquina
Começamos definindo as funções primitivas
Ex: Seno, raiz etc
Definimos então os sı́mbolos terminais
Ex: x, y, 3, 2 etc
E a função de adaptação (fitness)
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 35 / 46
177. Programação Genética
Uso como Aprendizagem de Máquina
Começamos definindo as funções primitivas
Ex: Seno, raiz etc
Definimos então os sı́mbolos terminais
Ex: x, y, 3, 2 etc
E a função de adaptação (fitness)
É ela que determina quão bem o algoritmo é capaz de
resolver o problema
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 35 / 46
178. Programação Genética
Uso como Aprendizagem de Máquina
Começamos definindo as funções primitivas
Ex: Seno, raiz etc
Definimos então os sı́mbolos terminais
Ex: x, y, 3, 2 etc
E a função de adaptação (fitness)
É ela que determina quão bem o algoritmo é capaz de
resolver o problema
Tipicamente obtida pela execução do algoritmo em um
conjunto de dados de treino
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 35 / 46
179. Programação Genética
Uso como Aprendizagem de Máquina
Definimos os exemplos de treino
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 36 / 46
180. Programação Genética
Uso como Aprendizagem de Máquina
Definimos os exemplos de treino
O tempo de treinamento depende das primitivas escolhidas,
dos exemplos de treino, e da função de adaptação
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 36 / 46
181. Programação Genética
Uso como Aprendizagem de Máquina
Definimos os exemplos de treino
O tempo de treinamento depende das primitivas escolhidas,
dos exemplos de treino, e da função de adaptação
E o algoritmo evolutivo a ser usado
Pode ser o mesmo usado em algoritmos genéticos
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 36 / 46
182. Programação Genética
Uso como Aprendizagem de Máquina
Definimos os exemplos de treino
O tempo de treinamento depende das primitivas escolhidas,
dos exemplos de treino, e da função de adaptação
E o algoritmo evolutivo a ser usado
Pode ser o mesmo usado em algoritmos genéticos
Mesmo modo de calcular a probabilidade
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 36 / 46
183. Programação Genética
Uso como Aprendizagem de Máquina
Definimos os exemplos de treino
O tempo de treinamento depende das primitivas escolhidas,
dos exemplos de treino, e da função de adaptação
E o algoritmo evolutivo a ser usado
Pode ser o mesmo usado em algoritmos genéticos
Mesmo modo de calcular a probabilidade
Mesmo esquema de cruzamento
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 36 / 46
184. Programação Genética
Uso como Aprendizagem de Máquina
Definimos os exemplos de treino
O tempo de treinamento depende das primitivas escolhidas,
dos exemplos de treino, e da função de adaptação
E o algoritmo evolutivo a ser usado
Pode ser o mesmo usado em algoritmos genéticos
Mesmo modo de calcular a probabilidade
Mesmo esquema de cruzamento
Pode ou não haver mutações
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 36 / 46
185. Programação Genética
Algoritmo
população ← População inicial de árvores sintáticas aleatórias
repita
para cada árvore Ai ∈ população faça
fitnessi ← valor indicando quão bem o algoritmo representado por Ai
resolveu o problema
população ← GERA POP(população, {fitnessi })
até até algum Ai atingir um erro aceitável
retorna Ai escolhido
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 37 / 46
186. Programação Genética
Algoritmo
Cada árvore sintática
é uma composição
aleatória de funções
e sı́mbolos terminais
população ← População inicial de árvores sintáticas aleatórias
repita
para cada árvore Ai ∈ população faça
fitnessi ← valor indicando quão bem o algoritmo representado por Ai
resolveu o problema
população ← GERA POP(população, {fitnessi })
até até algum Ai atingir um erro aceitável
retorna Ai escolhido
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 37 / 46
187. Programação Genética
Algoritmo
Executa cada algoritmo
da população e associa
a ele um valor de
adaptação (fitness),
indicando quão bem ele
foi nos dados de treino
população ← População inicial de árvores sintáticas aleatórias
repita
para cada árvore Ai ∈ população faça
fitnessi ← valor indicando quão bem o algoritmo representado por Ai
resolveu o problema
população ← GERA POP(população, {fitnessi })
até até algum Ai atingir um erro aceitável
retorna Ai escolhido
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 37 / 46
188. Programação Genética
Algoritmo
Cria uma nova po-
pulação (nova geração)
população ← População inicial de árvores sintáticas aleatórias
repita
para cada árvore Ai ∈ população faça
fitnessi ← valor indicando quão bem o algoritmo representado por Ai
resolveu o problema
população ← GERA POP(população, {fitnessi })
até até algum Ai atingir um erro aceitável
retorna Ai escolhido
Função GERA POP(população, {fitnessi }): população
Copie os melhores programas da geração atual (clonagem)
Selecione indivı́duos para o cruzamento
Crie novos programas pelo cruzamento dos programas selecionados
Aplique a mutação sobre algumas funções escolhidas aleatoriamente
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 37 / 46
189. Programação Genética
Cruzamentos
Um filho é criado selecionando-se aleatoriamente
um ramo de cada pai
+
sen ˆ
x 2 +
x y
+
sen
√
x +
ˆ y
x 2
Pais
sin(x) +
p
x2 + y
sen(x) + 2x+y
Fonte: ML. Mitchell.
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 38 / 46
190. Programação Genética
Cruzamentos
Um filho é criado selecionando-se aleatoriamente
um ramo de cada pai, e então fazendo-se o
intercâmbio dos ramos selecionados
+
sen ˆ
x 2 +
x y
+
sen
√
x +
ˆ y
x 2
+
sen ˆ
x 2 ˆ
x 2
+
sen
√
x +
+ y
x y
Pais Filhos
sin(x) +
p
x2 + y
sen(x) + 2x+y
sen(x) + 2x2
sen(x) +
√
x + y + y
Fonte: ML. Mitchell.
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 38 / 46
192. Programação Genética
Cruzamentos
E se os pais forem iguais?
É possı́vel que surja uma prole diferente
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 39 / 46
193. Programação Genética
Cruzamentos
E se os pais forem iguais?
É possı́vel que surja uma prole diferente
+
sen ˆ
x 2 +
x y
+
sen ˆ
x 2 +
x y
Pais
sen(x) + 2x+y
sen(x) + 2x+y
Fonte: Adaptado de ML. Mitchell.
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 39 / 46
194. Programação Genética
Cruzamentos
E se os pais forem iguais?
É possı́vel que surja uma prole diferente
+
sen ˆ
x 2 +
x y
+
sen ˆ
x 2 +
x y
+
sen ˆ
x 2 x
+
sen ˆ
+ 2 +
x y x y
Pais Filhos
sen(x) + 2x+y
sen(x) + 2x+y
sen(x) + 2x
sen(x + y) + 2x+y
Fonte: Adaptado de ML. Mitchell.
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 39 / 46
195. Programação Genética
Cruzamentos
Em algoritmos genéticos, pais iguais levam a filhos
idênticos
+
sen ˆ
x 2 +
x y
+
sen ˆ
x 2 +
x y
+
sen ˆ
x 2 x
+
sen ˆ
+ 2 +
x y x y
Pais Filhos
sen(x) + 2x+y
sen(x) + 2x+y
sen(x) + 2x
sen(x + y) + 2x+y
Fonte: Adaptado de ML. Mitchell.
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 40 / 46
196. Programação Genética
Cruzamentos
Em algoritmos genéticos, pais iguais levam a filhos
idênticos
Essa é uma das principais vantagens da programação
genética em relação aos algoritmos genéticos
+
sen ˆ
x 2 +
x y
+
sen ˆ
x 2 +
x y
+
sen ˆ
x 2 x
+
sen ˆ
+ 2 +
x y x y
Pais Filhos
sen(x) + 2x+y
sen(x) + 2x+y
sen(x) + 2x
sen(x + y) + 2x+y
Fonte: Adaptado de ML. Mitchell.
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 40 / 46
199. Programação Genética
Mutações
Mutação no nó:
Escolha aleatoriamente um ou mais nós, e substitua seu(s)
valor(es) por outro(s) valor(es) aleatório(s)
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 41 / 46
200. Programação Genética
Mutações
Mutação no nó:
Escolha aleatoriamente um ou mais nós, e substitua seu(s)
valor(es) por outro(s) valor(es) aleatório(s)
+
sen ˆ
x 2 +
x y
+
sen ˆ
2 2 ×
x y
Pai Filho
sen(x) + 2x+y sen(2) + 2x·y
Fonte: Adaptado de ML. Mitchell.
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 41 / 46
201. Programação Genética
Mutações
Mutação no nó:
Escolha aleatoriamente um ou mais nós, e substitua seu(s)
valor(es) por outro(s) valor(es) aleatório(s)
Substitua função por função, operador por operador, e
terminal por terminal
+
sen ˆ
x 2 +
x y
+
sen ˆ
2 2 ×
x y
Pai Filho
sen(x) + 2x+y sen(2) + 2x·y
Fonte: Adaptado de ML. Mitchell.
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 41 / 46
203. Programação Genética
Mutações
Mutação no ramo:
Um ramo da árvore é escolhido aleatoriamente e substituı́do
por outro gerado aleatoriamente pelo programa
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 42 / 46
204. Programação Genética
Mutações
Mutação no ramo:
Um ramo da árvore é escolhido aleatoriamente e substituı́do
por outro gerado aleatoriamente pelo programa
+
sen ˆ
x 2 +
x y
+
+
x y
+
sen +
x x y
Pai Filho
sen(x) + 2x+y
sen(x) + x + y
Fonte: Adaptado de ML. Mitchell.
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 42 / 46
205. Programação Genética
Mutações
Mutação no ramo:
Um ramo da árvore é escolhido aleatoriamente e substituı́do
por outro gerado aleatoriamente pelo programa
Modifica a estrutura da árvore do programa, pois o novo
ramo não precisa ter o mesmo tamanho do anterior
+
sen ˆ
x 2 +
x y
+
+
x y
+
sen +
x x y
Pai Filho
sen(x) + 2x+y
sen(x) + x + y
Fonte: Adaptado de ML. Mitchell.
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 42 / 46
208. Programação Genética
Hiperparâmetros
Mutações podem ser misturadas
Podemos fazer quantas mutações de cada tipo que
quisermos
São então hiperparâmetros (ou metaparâmetros) do
modelo
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 43 / 46
209. Programação Genética
Hiperparâmetros
Mutações podem ser misturadas
Podemos fazer quantas mutações de cada tipo que
quisermos
São então hiperparâmetros (ou metaparâmetros) do
modelo
Parâmetros definidos de antemão e que não serão
modificados quando ajustamos (treinamos) o modelo
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 43 / 46
212. Programação Genética
Hiperparâmetros
Exemplo:
A cada geração, modificamos valores de nós e a estrutura
das árvores
Essas mudanças são guiadas pelos dados, via função de
fitness → são treinadas
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 44 / 46
213. Programação Genética
Hiperparâmetros
Exemplo:
A cada geração, modificamos valores de nós e a estrutura
das árvores
Essas mudanças são guiadas pelos dados, via função de
fitness → são treinadas
Não modificamos, contudo, quantas mutações fazemos a
cada geração
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 44 / 46
214. Programação Genética
Hiperparâmetros
Exemplo:
A cada geração, modificamos valores de nós e a estrutura
das árvores
Essas mudanças são guiadas pelos dados, via função de
fitness → são treinadas
Não modificamos, contudo, quantas mutações fazemos a
cada geração
Esse não é um parâmetro refinado a partir dos dados → é
um hiper-parâmetro
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 44 / 46
215. Referências
Russell, S.; Norvig P. (2010): Artificial Intelligence: A Modern Approach.
Prentice Hall. 3a ed.
Mitchell, T. (1997): Machine Learning. McGraw-Hil.
Negnevitsky, M. (2005): Artificial Intelligence: A Guide to Intelligent
Systems. Addison-Wesley. 2a ed.
Goldberb, D.A. (1989): Genetic Algorithms in Search, Optimization and
Machine Learning. Addison-Wesley.
Rothlauf, F. (2006): Representations for Genetic and Evolutionary
Algorithms. Springer. 2a ed.
Coley, D.A. (1999): An Introduction to Genetic Algorithms for Scientists
and Engineers. World Scientific
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 45 / 46