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 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 á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 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 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 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 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 á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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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.
PP Slides Lição 11, Betel, Ordenança para exercer a fé, 2Tr24.pptxLuizHenriquedeAlmeid6
Slideshare Lição 11, Betel, Ordenança para exercer a fé, 2Tr24, Pr Henrique, EBD NA TV, 2° TRIMESTRE DE 2024, ADULTOS, EDITORA BETEL, TEMA, ORDENANÇAS BÍBLICAS, Doutrina Fundamentais Imperativas aos Cristãos para uma vida bem-sucedida e de Comunhão com DEUS, estudantes, professores, Ervália, MG, Imperatriz, MA, Cajamar, SP, estudos bíblicos, gospel, DEUS, ESPÍRITO SANTO, JESUS CRISTO, Comentários, Bispo Abner Ferreira, Com. Extra Pr. Luiz Henrique, 99-99152-0454, Canal YouTube, Henriquelhas, @PrHenrique
Atividade letra da música - Espalhe Amor, Anavitória.Mary Alvarenga
A música 'Espalhe Amor', interpretada pela cantora Anavitória é uma celebração do amor e de sua capacidade de transformar e conectar as pessoas. A letra sugere uma reflexão sobre como o amor, quando verdadeiramente compartilhado, pode ultrapassar barreiras alcançando outros corações e provocando mudanças positivas.
REGULAMENTO DO CONCURSO DESENHOS AFRO/2024 - 14ª edição - CEIRI /UREI (ficha...Eró Cunha
XIV Concurso de Desenhos Afro/24
TEMA: Racismo Ambiental e Direitos Humanos
PARTICIPANTES/PÚBLICO: Estudantes regularmente matriculados em escolas públicas estaduais, municipais, IEMA e IFMA (Ensino Fundamental, Médio e EJA).
CATEGORIAS: O Concurso de Desenhos Afro acontecerá em 4 categorias:
- CATEGORIA I: Ensino Fundamental I (4º e 5º ano)
- CATEGORIA II: Ensino Fundamental II (do 6º ao 9º ano)
- CATEGORIA III: Ensino Médio (1º, 2º e 3º séries)
- CATEGORIA IV: Estudantes com Deficiência (do Ensino Fundamental e Médio)
Realização: Unidade Regional de Educação de Imperatriz/MA (UREI), através da Coordenação da Educação da Igualdade Racial de Imperatriz (CEIRI) e parceiros
OBJETIVO:
- Realizar a 14ª edição do Concurso e Exposição de Desenhos Afro/24, produzidos por estudantes de escolas públicas de Imperatriz e região tocantina. Os trabalhos deverão ser produzidos a partir de estudo, pesquisas e produção, sob orientação da equipe docente das escolas. As obras devem retratar de forma crítica, criativa e positivada a população negra e os povos originários.
- Intensificar o trabalho com as Leis 10.639/2003 e 11.645/2008, buscando, através das artes visuais, a concretização das práticas pedagógicas antirracistas.
- Instigar o reconhecimento da história, ciência, tecnologia, personalidades e cultura, ressaltando a presença e contribuição da população negra e indígena na reafirmação dos Direitos Humanos, conservação e preservação do Meio Ambiente.
Imperatriz/MA, 15 de fevereiro de 2024.
Produtora Executiva e Coordenadora Geral: Eronilde dos Santos Cunha (Eró Cunha)
O Que é Um Ménage à Trois?
A sociedade contemporânea está passando por grandes mudanças comportamentais no âmbito da sexualidade humana, tendo inversão de valores indescritíveis, que assusta as famílias tradicionais instituídas na Palavra de Deus.
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 11, Central Gospel, Os Mortos Em CRISTO, 2Tr24.pptxLuizHenriquedeAlmeid6
Slideshare Lição 11, Central Gospel, Os Mortos Em Cristo, 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
3. Computação Evolutiva
Definição
Série de técnicas que buscam simular a evolução
natural
Trata-se de um modelo bio-inspirado
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 2 / 47
4. Computação Evolutiva
Definição
Série de técnicas que buscam simular a evolução
natural
Trata-se de um modelo bio-inspirado
Nesse caso, na reprodução sexuada e, mais especificamente,
no mecanismo de transmissão de genes a futuras gerações
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 2 / 47
5. Computação Evolutiva
Definição
Série de técnicas que buscam simular a evolução
natural
Trata-se de um modelo bio-inspirado
Nesse caso, na reprodução sexuada e, mais especificamente,
no mecanismo de transmissão de genes a futuras gerações
Usando seleção natural para definir os indivı́duos mais
adequados
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 2 / 47
6. Computação Evolutiva
Definição
Série de técnicas que buscam simular a evolução
natural
Trata-se de um modelo bio-inspirado
Nesse caso, na reprodução sexuada e, mais especificamente,
no mecanismo de transmissão de genes a futuras gerações
Usando seleção natural para definir os indivı́duos mais
adequados
Simulam então a evolução via seleção, mutação e
reprodução
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 2 / 47
9. Computação Evolutiva
Processo
Seleção:
Indivı́duos são selecionados de
acordo com sua função objetivo
→ sua função de adaptação
(fitness function)
Indivı́duos com alta adaptação
têm maior probabilidade de
passarem adiante seus genes
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 3 / 47
10. Computação Evolutiva
Processo
Seleção:
Indivı́duos são selecionados de
acordo com sua função objetivo
→ sua função de adaptação
(fitness function)
Indivı́duos com alta adaptação
têm maior probabilidade de
passarem adiante seus genes
Probabilidade? Sim... sorte ajuda...
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 3 / 47
11. Computação Evolutiva
Processo
Seleção:
Indivı́duos são selecionados de
acordo com sua função objetivo
→ sua função de adaptação
(fitness function)
Indivı́duos com alta adaptação
têm maior probabilidade de
passarem adiante seus genes Fonte: https://www.livescience.com/
60898-asteroid-struck-unlucky-spot-
doomed-dinosaurs.html
Probabilidade? Sim... sorte ajuda...
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 3 / 47
13. Computação Evolutiva
Processo
Mutação:
Indivı́duos têm chance de sofrer
algumas mutações aleatórias em
seus genes
Fonte: https://medium.com/textando/
qual-a-ordem-dos-filmes-x-men-20ff4717f108
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 4 / 47
14. Computação Evolutiva
Processo
Mutação:
Indivı́duos têm chance de sofrer
algumas mutações aleatórias em
seus genes
Fonte: https://medium.com/textando/
qual-a-ordem-dos-filmes-x-men-20ff4717f108
Reprodução:
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 4 / 47
15. Computação Evolutiva
Processo
Mutação:
Indivı́duos têm chance de sofrer
algumas mutações aleatórias em
seus genes
Fonte: https://medium.com/textando/
qual-a-ordem-dos-filmes-x-men-20ff4717f108
Reprodução:
Novos indivı́duos são formados
pelo cruzamento (crossover) de
indivı́duos da população atual
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 4 / 47
16. Computação Evolutiva
Processo
Mutação:
Indivı́duos têm chance de sofrer
algumas mutações aleatórias em
seus genes
Fonte: https://medium.com/textando/
qual-a-ordem-dos-filmes-x-men-20ff4717f108
Reprodução:
Novos indivı́duos são formados
pelo cruzamento (crossover) de
indivı́duos da população atual
Fonte: https://www.ign.
com/articles/2012/03/28/
great-mythological-movie-beasts
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 4 / 47
17. Computação Evolutiva
Nomenclatura
Nome Significado
Cromossomo Arranjo representando um indivı́duo
Gene Atributo ou variável no cromossomo
Alelo Valor do atributo ou variável
Locus Posição do atributo no cromossomo
Genótipo A estrutura do cromossomo → o arranjo de
atributos
Fenótipo A interpretação do genótipo → uma solução
para o problema
População Conjunto de indivı́duos
Geração Cada iteração do algoritmo
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 5 / 47
19. Computação Evolutiva
Resultado
Série de algoritmos de otimização
Geralmente baseados em um conjunto simples de regras
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 6 / 47
20. Computação Evolutiva
Resultado
Série de algoritmos de otimização
Geralmente baseados em um conjunto simples de regras
O processo de otimização iterativamente melhora a qualidade
das soluções, até que uma aceitável seja encontrada
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 6 / 47
21. Computação Evolutiva
Resultado
Série de algoritmos de otimização
Geralmente baseados em um conjunto simples de regras
O processo de otimização iterativamente melhora a qualidade
das soluções, até que uma aceitável seja encontrada
Existem diversos métodos de computação evolutiva
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 6 / 47
22. Computação Evolutiva
Resultado
Série de algoritmos de otimização
Geralmente baseados em um conjunto simples de regras
O processo de otimização iterativamente melhora a qualidade
das soluções, até que uma aceitável seja encontrada
Existem diversos métodos de computação evolutiva
Todos simulam a evolução criando uma população de
indivı́duos; avaliando sua adaptação; gerando uma nova
população (via operadores genéticos); e repetindo esse
processo um número de vezes
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 6 / 47
23. Computação Evolutiva
Resultado
Série de algoritmos de otimização
Geralmente baseados em um conjunto simples de regras
O processo de otimização iterativamente melhora a qualidade
das soluções, até que uma aceitável seja encontrada
Existem diversos métodos de computação evolutiva
Todos simulam a evolução criando uma população de
indivı́duos; avaliando sua adaptação; gerando uma nova
população (via operadores genéticos); e repetindo esse
processo um número de vezes
Veremos Algoritmos Genéticos e Programação Genética
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 6 / 47
25. Algoritmos Genéticos
Definição
Um algoritmo genético é um algoritmo de busca
local estocástico em que estados sucessores são
gerados a partir da combinação de 2 estados
pré-existentes
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 8 / 47
26. Algoritmos Genéticos
Definição
Um algoritmo genético é um algoritmo de busca
local estocástico em que estados sucessores são
gerados a partir da combinação de 2 estados
pré-existentes
Uma nova população é criada a partir da combinação de
indivı́duos da população anterior
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 8 / 47
27. Algoritmos Genéticos
Definição
Um algoritmo genético é um algoritmo de busca
local estocástico em que estados sucessores são
gerados a partir da combinação de 2 estados
pré-existentes
Uma nova população é criada a partir da combinação de
indivı́duos da população anterior
Nesse ponto, difere da busca local tradicional por
esta modificar um único estado
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 8 / 47
29. Algoritmos Genéticos
Funcionamento
Começamos com uma população inicial
Conjunto de k estados (ou indivı́duos) gerados
aleatoriamente
Fonte: Adaptado de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 9 / 47
30. Algoritmos Genéticos
Funcionamento
Cada indivı́duo é representado por uma cadeia, de
tamanho fixo, dentro de um alfabeto finito
Fonte: Adaptado de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 10 / 47
31. Algoritmos Genéticos
Funcionamento
Cada indivı́duo é representado por uma cadeia, de
tamanho fixo, dentro de um alfabeto finito
Ex: 0s e 1s; inteiros de 0 a um limite etc
Fonte: Adaptado de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 10 / 47
32. Algoritmos Genéticos
Funcionamento
Cada estado é avaliado conforme uma função de
adaptação (função de fitness)
Fonte: Adaptado de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 11 / 47
33. Algoritmos Genéticos
Funcionamento
Cada estado é avaliado conforme uma função de
adaptação (função de fitness)
A probabilidade de um indivı́duo ser escolhido para
reprodução é proporcional ao valor da função
Fonte: Adaptado de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 11 / 47
34. Algoritmos Genéticos
Funcionamento
A função de adaptação mede o desempenho do
cromossomo no problema
Fonte: Adaptado de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 12 / 47
35. Algoritmos Genéticos
Funcionamento
A função de adaptação mede o desempenho do
cromossomo no problema
Corresponde ao papel do ambiente na evolução natural
Fonte: Adaptado de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 12 / 47
36. Algoritmos Genéticos
Funcionamento
Pares são aleatoriamente escolhidos para
cruzamento, conforme essas probabilidades
Fonte: Adaptado de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 13 / 47
37. Algoritmos Genéticos
Funcionamento
Pares são aleatoriamente escolhidos para
cruzamento, conforme essas probabilidades
Fonte: Adaptado de AIMA. Russell & Norvig.
Note que um dos in-
divı́duos foi selecionado 2×
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 13 / 47
38. Algoritmos Genéticos
Funcionamento
Pares são aleatoriamente escolhidos para
cruzamento, conforme essas probabilidades
Fonte: Adaptado de AIMA. Russell & Norvig.
Enquanto outro
não foi escolhido
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 13 / 47
39. Algoritmos Genéticos
Funcionamento
Pares são aleatoriamente escolhidos para
cruzamento, conforme essas probabilidades
Para cada par, escolhemos aleatoriamente um ponto
(potencialmente diferente) de cruzamento (crossover)
Fonte: Adaptado de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 13 / 47
40. Algoritmos Genéticos
Funcionamento
Os pares escolhidos produzem filhos
Fonte: Adaptado de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 14 / 47
41. Algoritmos Genéticos
Funcionamento
Os pares escolhidos produzem filhos
Ou seja, indivı́duos com melhor fitness são selecionados
probabilisticamente para produzir a próxima geração. Assim,
membros da geração atual geram a próxima
Fonte: Adaptado de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 14 / 47
43. Algoritmos Genéticos
Funcionamento
A produção dos filhos se dá via crossover
As sub-cadeias dos pais são trocadas a partir do ponto de
crossover, gerando os filhos – Cruzamento de Ponto
Único
Fonte: Adaptado de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 15 / 47
44. Algoritmos Genéticos
Funcionamento
Em geral, a população é bem diversificada no inı́cio
Fonte: Adaptado de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 16 / 47
45. Algoritmos Genéticos
Funcionamento
Em geral, a população é bem diversificada no inı́cio
Assim como simulated annealing, crossover frequentemente
dá passos largos no inı́cio da busca e menores mais tarde,
quando muitos indivı́duos são bastante similares
Fonte: Adaptado de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 16 / 47
46. Algoritmos Genéticos
Funcionamento
Os filhos, por sua vez, estão sujeitos a mutações
aleatórias
Fonte: Adaptado de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 17 / 47
47. Algoritmos Genéticos
Funcionamento
Os filhos, por sua vez, estão sujeitos a mutações
aleatórias
Cada posição na cadeia dos filhos está sujeita a mutação
com uma pequena probabilidade, independentemente das
demais posições
Fonte: Adaptado de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 17 / 47
48. Algoritmos Genéticos
Funcionamento
Como resultado, após um número de reproduções
sucessivas, os menos adaptados são extintos
Fonte: Adaptado de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 18 / 47
49. Algoritmos Genéticos
Funcionamento
Como resultado, após um número de reproduções
sucessivas, os menos adaptados são extintos
Enquanto os mais adaptados gradualmente dominam a
população
Fonte: Adaptado de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 18 / 47
50. Algoritmos Genéticos
Ciclo de um Algoritmo Genético
População Inicial
Seleção
Cruzamento
Mutação
Nova População
Avaliação
Avaliação
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 19 / 47
51. Algoritmos Genéticos
Ciclo de um Algoritmo Genético
População Inicial
Seleção
Cruzamento
Mutação
Nova População
Avaliação
Avaliação
A avaliação se dá
pelo cálculo da função
de fitness de cada
indivı́duo na população
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 19 / 47
52. Algoritmos Genéticos
Ciclo de um Algoritmo Genético
População Inicial
Seleção
Cruzamento
Mutação
Nova População
Avaliação
Avaliação
Aqui, o número de
indivı́duos na po-
pulação permanece
sempre constante
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 19 / 47
53. Algoritmos Genéticos
Ciclo de um Algoritmo Genético
População Inicial
Seleção
Cruzamento
Mutação
Nova População
Avaliação
Avaliação
Isso, contudo, não
é uma exigência,
e outros modelos
podem ser usados
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 19 / 47
55. Algoritmos Genéticos
Exemplo
X
A
Estamos em A e queremos achar um
caminho para X
Temos 4 movimentos permitidos:
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 20 / 47
56. Algoritmos Genéticos
Exemplo
X
A
Estamos em A e queremos achar um
caminho para X
Temos 4 movimentos permitidos:
Para cima (C), baixo (B), esquerda (E) e
direita (D)
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 20 / 47
57. Algoritmos Genéticos
Exemplo
X
A
Estamos em A e queremos achar um
caminho para X
Temos 4 movimentos permitidos:
Para cima (C), baixo (B), esquerda (E) e
direita (D)
Suponha que, ao passarmos de uma borda, apareceremos na
borda do extremo oposto, ou seja, (1, 6) + D = (1, 1)
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 20 / 47
58. Algoritmos Genéticos
Exemplo
X
A
Estamos em A e queremos achar um
caminho para X
Temos 4 movimentos permitidos:
Para cima (C), baixo (B), esquerda (E) e
direita (D)
Suponha que, ao passarmos de uma borda, apareceremos na
borda do extremo oposto, ou seja, (1, 6) + D = (1, 1)
Queremos dar no máximo 8 passos
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 20 / 47
59. Algoritmos Genéticos
Exemplo
X
A
Estamos em A e queremos achar um
caminho para X
Temos 4 movimentos permitidos:
Para cima (C), baixo (B), esquerda (E) e
direita (D)
Suponha que, ao passarmos de uma borda, apareceremos na
borda do extremo oposto, ou seja, (1, 6) + D = (1, 1)
Queremos dar no máximo 8 passos
Esse será o tamanho de nosso cromossomo
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 20 / 47
61. Algoritmos Genéticos
Exemplo
C B E E D C D E
X
A
1
2
3
4
D D D E C C D B
1:
E D E E C B C C
2:
C B E D D C C C
3:
B B E D E C D E
4:
Cromossomo:
Começamos uma população
inicial aleatória:
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 21 / 47
62. Algoritmos Genéticos
Exemplo
C B E E D C D E
X
A
1
2
3
4
D D D E C C D B
1:
E D E E C B C C
2:
C B E D D C C C
3:
B B E D E C D E
4:
Cromossomo:
Começamos uma população
inicial aleatória:
Seleção:
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 21 / 47
63. Algoritmos Genéticos
Exemplo
C B E E D C D E
X
A
1
2
3
4
D D D E C C D B
1:
E D E E C B C C
2:
C B E D D C C C
3:
B B E D E C D E
4:
Cromossomo:
Começamos uma população
inicial aleatória:
Seleção:
A função de fitness dá maior valor a
quem chegou mais perto
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 21 / 47
64. Algoritmos Genéticos
Exemplo
C B E E D C D E
X
A
1
2
3
4
D D D E C C D B
1:
E D E E C B C C
2:
C B E D D C C C
3:
B B E D E C D E
4:
Cromossomo:
Começamos uma população
inicial aleatória:
Seleção:
A função de fitness dá maior valor a
quem chegou mais perto
Nesse caso, escolhemos o 2o
e o 4o
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 21 / 47
65. Algoritmos Genéticos
Exemplo
C B E E D C D E
X
A
1
2
3
4
D D D E C C D B
1:
E D E E C B C C
2:
C B E D D C C C
3:
B B E D E C D E
4:
Cromossomo:
Começamos uma população
inicial aleatória:
Seleção:
A função de fitness dá maior valor a
quem chegou mais perto
Nesse caso, escolhemos o 2o
e o 4o
Mas o 4o
é o pior!
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 21 / 47
66. Algoritmos Genéticos
Exemplo
X
A
1
2
3
4
D D D E C C D B
1:
E D E E C B C C
2:
C B E D D C C C
3:
B B E D E C D E
4:
Seleção (cont.):
Lembre que a seleção é
probabilı́stica, com base no valor
do fitness
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 22 / 47
67. Algoritmos Genéticos
Exemplo
X
A
1
2
3
4
D D D E C C D B
1:
E D E E C B C C
2:
C B E D D C C C
3:
B B E D E C D E
4:
Seleção (cont.):
Lembre que a seleção é
probabilı́stica, com base no valor
do fitness
Então não necessariamente o melhor
é escolhido. Este apenas tem mais
chance que os demais.
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 22 / 47
68. Algoritmos Genéticos
Exemplo
X
A
1
2
3
4
D D D E C C D B
1:
E D E E C B C C
2:
C B E D D C C C
3:
B B E D E C D E
4:
Seleção (cont.):
Lembre que a seleção é
probabilı́stica, com base no valor
do fitness
Então não necessariamente o melhor
é escolhido. Este apenas tem mais
chance que os demais.
Cruzamento:
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 22 / 47
69. Algoritmos Genéticos
Exemplo
X
A
1
2
3
4
D D D E C C D B
1:
E D E E C B C C
2:
C B E D D C C C
3:
B B E D E C D E
4:
Seleção (cont.):
Lembre que a seleção é
probabilı́stica, com base no valor
do fitness
Então não necessariamente o melhor
é escolhido. Este apenas tem mais
chance que os demais.
Cruzamento:
Escolhemos aleatoriamente uma
sub-cadeia dos selecionados
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 22 / 47
70. Algoritmos Genéticos
Exemplo
X
A
1
2 3
4
D D D E C C D B
1:
E D E D E C C C
2:
C B E D D C C C
3:
B B E E C B D E
4:
Cruzamento (cont.):
E as trocamos de lugar
(Cruzamento de Dois Pontos)
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 23 / 47
71. Algoritmos Genéticos
Exemplo
X
A
1
2 3
4
D D D E C C D B
1:
E D E D E C C C
2:
C B E D D C C C
3:
B B E B
E C D E
4:
Cruzamento (cont.):
E as trocamos de lugar
(Cruzamento de Dois Pontos)
Mutação:
Escolhemos posições aleatórias
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 23 / 47
72. Algoritmos Genéticos
Exemplo
X
A
1
2
3
4
D D D E C C D B
1:
E D E D E C E C
2:
C B E D D C C C
3:
B B D E
E C D E
4:
Cruzamento (cont.):
E as trocamos de lugar
(Cruzamento de Dois Pontos)
Mutação:
Escolhemos posições aleatórias
E fazemos mutações aleatórias nelas
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 23 / 47
73. Algoritmos Genéticos
Exemplo
X
A
1
2
3
4
D D D E C C D B
1:
E D E D E C E C
2:
C B E D D C C C
3:
B B D E
E C D E
4:
Cruzamento (cont.):
E as trocamos de lugar
(Cruzamento de Dois Pontos)
Mutação:
Escolhemos posições aleatórias
E fazemos mutações aleatórias nelas
Repetimos a operação até
atingirmos o objetivo
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 23 / 47
74. Algoritmos Genéticos
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 24 / 47
75. Algoritmos Genéticos
Algoritmo
População inicial ge-
rada aleatoriamente
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 24 / 47
76. Algoritmos Genéticos
Algoritmo
A função de fitness
é parte da entrada
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 24 / 47
77. Algoritmos Genéticos
Algoritmo
Ela mede o grau de
adaptação de cada
indivı́duo da populaçã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 24 / 47
78. Algoritmos Genéticos
Algoritmo
Note que, nesse modelo,
o número de indivı́duos
na população perma-
nece sempre constante
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 24 / 47
79. Algoritmos Genéticos
Algoritmo
A saı́da é um único
indivı́duo, representando
o melhor de toda a
população após um certo
número de cruzamentos
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 24 / 47
82. Algoritmos Genéticos
Operadores genéticos
Usados para criar a próxima geração da população
Tipos mais comuns:
Avaliação (função objetivo ou de adaptação):
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 25 / 47
83. Algoritmos Genéticos
Operadores genéticos
Usados para criar a próxima geração da população
Tipos mais comuns:
Avaliação (função objetivo ou de adaptação):
FITNESS()
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 25 / 47
84. Algoritmos Genéticos
Operadores genéticos
Usados para criar a próxima geração da população
Tipos mais comuns:
Avaliação (função objetivo ou de adaptação):
FITNESS()
Seleção
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 25 / 47
85. Algoritmos Genéticos
Operadores genéticos
Usados para criar a próxima geração da população
Tipos mais comuns:
Avaliação (função objetivo ou de adaptação):
FITNESS()
Seleção
SELEÇÃO ALEATÓRIA()
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 25 / 47
86. Algoritmos Genéticos
Operadores genéticos
Usados para criar a próxima geração da população
Tipos mais comuns:
Avaliação (função objetivo ou de adaptação):
FITNESS()
Seleção
SELEÇÃO ALEATÓRIA()
Cruzamento (casamento ou crossover)
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 25 / 47
87. Algoritmos Genéticos
Operadores genéticos
Usados para criar a próxima geração da população
Tipos mais comuns:
Avaliação (função objetivo ou de adaptação):
FITNESS()
Seleção
SELEÇÃO ALEATÓRIA()
Cruzamento (casamento ou crossover)
CRUZA()
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 25 / 47
88. Algoritmos Genéticos
Operadores genéticos
Usados para criar a próxima geração da população
Tipos mais comuns:
Avaliação (função objetivo ou de adaptação):
FITNESS()
Seleção
SELEÇÃO ALEATÓRIA()
Cruzamento (casamento ou crossover)
CRUZA()
Mutação
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 25 / 47
89. Algoritmos Genéticos
Operadores genéticos
Usados para criar a próxima geração da população
Tipos mais comuns:
Avaliação (função objetivo ou de adaptação):
FITNESS()
Seleção
SELEÇÃO ALEATÓRIA()
Cruzamento (casamento ou crossover)
CRUZA()
Mutação
CHANCE MUTAÇÃO() e MUTA()
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 25 / 47
90. Algoritmos Genéticos – Operadores
Avaliação: Função de Adaptação
Define o critério para ordenar e selecionar potenciais
indivı́duos
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 26 / 47
91. Algoritmos Genéticos – Operadores
Avaliação: Função de Adaptação
Define o critério para ordenar e selecionar potenciais
indivı́duos
Altamente dependente do domı́nio do problema
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 26 / 47
92. Algoritmos Genéticos – Operadores
Avaliação: Função de Adaptação
Define o critério para ordenar e selecionar potenciais
indivı́duos
Altamente dependente do domı́nio do problema
Possı́veis critérios
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 26 / 47
93. Algoritmos Genéticos – Operadores
Avaliação: Função de Adaptação
Define o critério para ordenar e selecionar potenciais
indivı́duos
Altamente dependente do domı́nio do problema
Possı́veis critérios
Precisão:
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 26 / 47
94. Algoritmos Genéticos – Operadores
Avaliação: Função de Adaptação
Define o critério para ordenar e selecionar potenciais
indivı́duos
Altamente dependente do domı́nio do problema
Possı́veis critérios
Precisão:
Possui um componente ligado à sua precisão em conjunto de treino
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 26 / 47
95. Algoritmos Genéticos – Operadores
Avaliação: Função de Adaptação
Define o critério para ordenar e selecionar potenciais
indivı́duos
Altamente dependente do domı́nio do problema
Possı́veis critérios
Precisão:
Possui um componente ligado à sua precisão em conjunto de treino
Desempenho geral:
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 26 / 47
96. Algoritmos Genéticos – Operadores
Avaliação: Função de Adaptação
Define o critério para ordenar e selecionar potenciais
indivı́duos
Altamente dependente do domı́nio do problema
Possı́veis critérios
Precisão:
Possui um componente ligado à sua precisão em conjunto de treino
Desempenho geral:
Em vez de medir regras individuais, mede-se o desempenho geral do
conjunto de regras
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 26 / 47
97. Algoritmos Genéticos – Operadores
Seleção: Algoritmo
Seleciona indivı́duos para o cruzamento
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 27 / 47
98. Algoritmos Genéticos – Operadores
Seleção: Algoritmo
Seleciona indivı́duos para o cruzamento
Função SELEÇÃO ALEATÓRIA(população, FITNESS): indivı́duo
para cada indivı́duo ind em população faça
Pind ←
FITNESS(ind)
|população|
X
i=1
FITNESS(indi )
escolhido ← Escolha aleatoriamente um indivı́duo, com base na
distribuição de probabilidades calculada acima (em que cada indivı́duo
tem Pind de chance de ser escolhido)
retorna escolhido
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 27 / 47
99. Algoritmos Genéticos – Operadores
Seleção: Algoritmo
Dispomos, contudo, de métodos baseados em
distribuição uniforme (rand)
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 28 / 47
100. Algoritmos Genéticos – Operadores
Seleção: Algoritmo
Dispomos, contudo, de métodos baseados em
distribuição uniforme (rand)
Como fazemos, então, para selecionar um indivı́duo ind com
base em
Pind ←
FITNESS(ind)
|população|
X
i=1
FITNESS(indi )
?
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 28 / 47
101. Algoritmos Genéticos – Operadores
Seleção: Algoritmo
Dispomos, contudo, de métodos baseados em
distribuição uniforme (rand)
Como fazemos, então, para selecionar um indivı́duo ind com
base em
Pind ←
FITNESS(ind)
|população|
X
i=1
FITNESS(indi )
?
Via o algoritmo da Roda de Roleta (roulette wheel)
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 28 / 47
102. Algoritmos Genéticos – Operadores
Seleção: Roda de Roleta
Fonte: http://www.edc.ncl.ac.
uk/highlight/rhjanuary2007.php
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 29 / 47
103. Algoritmos Genéticos – Operadores
Seleção: Roda de Roleta
Cada cromossomo recebe uma
fatia da roda
Fonte: http://www.edc.ncl.ac.
uk/highlight/rhjanuary2007.php
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 29 / 47
104. Algoritmos Genéticos – Operadores
Seleção: Roda de Roleta
Cada cromossomo recebe uma
fatia da roda
A área da fatia é igual à
probabilidade de escolha do
cromossomo Pind
Fonte: http://www.edc.ncl.ac.
uk/highlight/rhjanuary2007.php
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 29 / 47
105. Algoritmos Genéticos – Operadores
Seleção: Roda de Roleta
Cada cromossomo recebe uma
fatia da roda
A área da fatia é igual à
probabilidade de escolha do
cromossomo Pind
Para selecionar um
cromossomo para cruzamento: Fonte: http://www.edc.ncl.ac.
uk/highlight/rhjanuary2007.php
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 29 / 47
106. Algoritmos Genéticos – Operadores
Seleção: Roda de Roleta
Cada cromossomo recebe uma
fatia da roda
A área da fatia é igual à
probabilidade de escolha do
cromossomo Pind
Para selecionar um
cromossomo para cruzamento: Fonte: http://www.edc.ncl.ac.
uk/highlight/rhjanuary2007.php
Gere um número aleatório entre 1 e 100
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 29 / 47
107. Algoritmos Genéticos – Operadores
Seleção: Roda de Roleta
Cada cromossomo recebe uma
fatia da roda
A área da fatia é igual à
probabilidade de escolha do
cromossomo Pind
Para selecionar um
cromossomo para cruzamento: Fonte: http://www.edc.ncl.ac.
uk/highlight/rhjanuary2007.php
Gere um número aleatório entre 1 e 100
O cromossomo em cujo segmento esse número cair será
selecionado
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 29 / 47
108. Algoritmos Genéticos – Operadores
Seleção: Roda de Roleta – Exemplo
Voltemos ao nosso exemplo
Fonte: AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 30 / 47
109. Algoritmos Genéticos – Operadores
Seleção: Roda de Roleta – Exemplo
Voltemos ao nosso exemplo (e sua tabela associada)
Fonte: AIMA. Russell & Norvig.
ind FITNESS(ind) Pind
1 24 31%
2 23 29%
3 20 26%
4 11 14%
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 30 / 47
110. Algoritmos Genéticos – Operadores
Seleção: Roda de Roleta – Exemplo
Voltemos ao nosso exemplo (e sua tabela associada)
Fonte: AIMA. Russell & Norvig.
ind FITNESS(ind) Pind
1 24 31%
2 23 29%
3 20 26%
4 11 14%
Note que esse exemplo faz Pind ←
FITNESS(ind)
|população|
X
i=1
FITNESS(indi )
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 30 / 47
111. Algoritmos Genéticos – Operadores
Seleção: Roda de Roleta – Exemplo
ind FITNESS(ind) Pind
1 24 31%
2 23 29%
3 20 26%
4 11 14%
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 31 / 47
112. Algoritmos Genéticos – Operadores
Seleção: Roda de Roleta – Exemplo
Distribuı́mos as
probabilidades na roleta
ind FITNESS(ind) Pind
1 24 31%
2 23 29%
3 20 26%
4 11 14%
1 10 20 30 40 50 60 70 80 90 100
1 3 4
2
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 31 / 47
113. Algoritmos Genéticos – Operadores
Seleção: Roda de Roleta – Exemplo
Distribuı́mos as
probabilidades na roleta
Escolhemos um valor a
partir de uma
distribuição uniforme
ind FITNESS(ind) Pind
1 24 31%
2 23 29%
3 20 26%
4 11 14%
1 10 20 30 40 50 60 70 80 90 100
1 3 4
2
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 31 / 47
114. Algoritmos Genéticos – Operadores
Seleção: Roda de Roleta – Exemplo
Distribuı́mos as
probabilidades na roleta
Escolhemos um valor a
partir de uma
distribuição uniforme
ind FITNESS(ind) Pind
1 24 31%
2 23 29%
3 20 26%
4 11 14%
A posição correspondente na roleta dirá qual o
indivı́duo sorteado
1 10 20 30 40 50 60 70 80 90 100
1 3 4
2
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 31 / 47
115. Algoritmos Genéticos – Operadores
Seleção: Roda de Roleta
Por dar mais chance aos melhor adaptados, essa
técnica aplica uma pressão de seleção em direção
a esses indivı́duos, evoluindo-os com o tempo
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 32 / 47
116. Algoritmos Genéticos – Operadores
Seleção: Roda de Roleta
Por dar mais chance aos melhor adaptados, essa
técnica aplica uma pressão de seleção em direção
a esses indivı́duos, evoluindo-os com o tempo
Esse algoritmo, contudo, não funciona para casos
em que a função de adaptação pode retornar valores
negativos
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 32 / 47
117. Algoritmos Genéticos – Operadores
Seleção: Roda de Roleta
Por dar mais chance aos melhor adaptados, essa
técnica aplica uma pressão de seleção em direção
a esses indivı́duos, evoluindo-os com o tempo
Esse algoritmo, contudo, não funciona para casos
em que a função de adaptação pode retornar valores
negativos
Uma vez que probabilidades negativas seriam introduzidas
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 32 / 47
118. Algoritmos Genéticos – Operadores
Seleção: Roda de Roleta
Por dar mais chance aos melhor adaptados, essa
técnica aplica uma pressão de seleção em direção
a esses indivı́duos, evoluindo-os com o tempo
Esse algoritmo, contudo, não funciona para casos
em que a função de adaptação pode retornar valores
negativos
Uma vez que probabilidades negativas seriam introduzidas
Mas, e se nossa função de adaptação tiver que
retornar valores negativos?
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 32 / 47
119. Algoritmos Genéticos – Operadores
Seleção: Roda de Roleta
Por dar mais chance aos melhor adaptados, essa
técnica aplica uma pressão de seleção em direção
a esses indivı́duos, evoluindo-os com o tempo
Esse algoritmo, contudo, não funciona para casos
em que a função de adaptação pode retornar valores
negativos
Uma vez que probabilidades negativas seriam introduzidas
Mas, e se nossa função de adaptação tiver que
retornar valores negativos?
Alternativas são a Seleção por Torneio e por Posição
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 32 / 47
120. Algoritmos Genéticos – Operadores
Seleção: Torneio (K-Way Tournament Selection)
Função TORNEIO(população, FITNESS, k, tamanho pop):
população
selecionados ← ∅
repita
participantes ← Selecione aleatoriamente k indivı́duos da
população
selecionados ← selecionados ∪ indivı́duo com melhor valor
de adaptação (FITNESS) em participantes
até obter o tamanho desejado para selecionados
retorna selecionados
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 33 / 47
121. Algoritmos Genéticos – Operadores
Seleção: Posição (Rank Selection)
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 34 / 47
122. Algoritmos Genéticos – Operadores
Seleção: Posição (Rank Selection)
Muito usado quando os indivı́duos na população
têm valores próximos de adaptação
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 34 / 47
123. Algoritmos Genéticos – Operadores
Seleção: Posição (Rank Selection)
Muito usado quando os indivı́duos na população
têm valores próximos de adaptação
Normalmente ao final do processo
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 34 / 47
124. Algoritmos Genéticos – Operadores
Seleção: Posição (Rank Selection)
Muito usado quando os indivı́duos na população
têm valores próximos de adaptação
Normalmente ao final do processo
Com a roleta isso leva a uma perda na pressão de
seleção em direção aos mais adaptados
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 34 / 47
125. Algoritmos Genéticos – Operadores
Seleção: Posição (Rank Selection)
Muito usado quando os indivı́duos na população
têm valores próximos de adaptação
Normalmente ao final do processo
Com a roleta isso leva a uma perda na pressão de
seleção em direção aos mais adaptados
Pois cada indivı́duo terá aproximadamente a mesma
probabilidade de ser escolhido, não importando quão melhor
seja em relação aos outros
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 34 / 47
126. Algoritmos Genéticos – Operadores
Seleção: Posição (Rank Selection)
Muito usado quando os indivı́duos na população
têm valores próximos de adaptação
Normalmente ao final do processo
Com a roleta isso leva a uma perda na pressão de
seleção em direção aos mais adaptados
Pois cada indivı́duo terá aproximadamente a mesma
probabilidade de ser escolhido, não importando quão melhor
seja em relação aos outros
E, consequentemente, a uma pior seleção de pais
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 34 / 47
127. Algoritmos Genéticos – Operadores
Seleção: Posição (Rank Selection)
Que fazer então?
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 35 / 47
128. Algoritmos Genéticos – Operadores
Seleção: Posição (Rank Selection)
Que fazer então?
Seleção com base na posição em lista ordenada:
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 35 / 47
129. Algoritmos Genéticos – Operadores
Seleção: Posição (Rank Selection)
Que fazer então?
Seleção com base na posição em lista ordenada:
Ordene de modo crescente os indivı́duos pelo seu valor de
adaptação
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 35 / 47
130. Algoritmos Genéticos – Operadores
Seleção: Posição (Rank Selection)
Que fazer então?
Seleção com base na posição em lista ordenada:
Ordene de modo crescente os indivı́duos pelo seu valor de
adaptação
Calcule um novo valor de fitness conforme a posição
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 35 / 47
131. Algoritmos Genéticos – Operadores
Seleção: Posição (Rank Selection)
Que fazer então?
Seleção com base na posição em lista ordenada:
Ordene de modo crescente os indivı́duos pelo seu valor de
adaptação
Calcule um novo valor de fitness conforme a posição
Ex:
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 35 / 47
132. Algoritmos Genéticos – Operadores
Seleção: Posição (Rank Selection)
Que fazer então?
Seleção com base na posição em lista ordenada:
Ordene de modo crescente os indivı́duos pelo seu valor de
adaptação
Calcule um novo valor de fitness conforme a posição
Ex:
O 1o
terá f 0
1 = 1, o 2o
terá f 0
1 = 2 . . . o No
terá f 0
1 = N
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 35 / 47
133. Algoritmos Genéticos – Operadores
Seleção: Posição (Rank Selection)
Que fazer então?
Seleção com base na posição em lista ordenada:
Ordene de modo crescente os indivı́duos pelo seu valor de
adaptação
Calcule um novo valor de fitness conforme a posição
Ex:
O 1o
terá f 0
1 = 1, o 2o
terá f 0
1 = 2 . . . o No
terá f 0
1 = N
Proceda então como na roda de roleta, usando esses novos
valores de adaptação
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 35 / 47
134. Algoritmos Genéticos – Operadores
Seleção: Posição (Rank Selection)
A probabilidade um indivı́duo ser selecionado é,
então, proporcional à sua posição nessa lista
ordenada
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 36 / 47
135. Algoritmos Genéticos – Operadores
Seleção: Posição (Rank Selection)
A probabilidade um indivı́duo ser selecionado é,
então, proporcional à sua posição nessa lista
ordenada
O primeiro (menor fitness) com o menor valor e o último
com o maior
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 36 / 47
136. Algoritmos Genéticos – Operadores
Seleção: Posição (Rank Selection)
A probabilidade um indivı́duo ser selecionado é,
então, proporcional à sua posição nessa lista
ordenada
O primeiro (menor fitness) com o menor valor e o último
com o maior
Assim, o valor de adaptação do indivı́duo não é
usado diretamente
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 36 / 47
137. Algoritmos Genéticos – Operadores
Cruzamento
Produz novos filhos a partir de dois pais, copiando
genes selecionados de cada pai
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 37 / 47
138. Algoritmos Genéticos – Operadores
Cruzamento
Produz novos filhos a partir de dois pais, copiando
genes selecionados de cada pai
O gene na posição i em cada filho é copiado do gene na
posição i de um dos pais
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 37 / 47
139. Algoritmos Genéticos – Operadores
Cruzamento
Produz novos filhos a partir de dois pais, copiando
genes selecionados de cada pai
O gene na posição i em cada filho é copiado do gene na
posição i de um dos pais
Tipos de Cruzamento:
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 37 / 47
140. Algoritmos Genéticos – Operadores
Cruzamento
Produz novos filhos a partir de dois pais, copiando
genes selecionados de cada pai
O gene na posição i em cada filho é copiado do gene na
posição i de um dos pais
Tipos de Cruzamento:
De ponto Único
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 37 / 47
141. Algoritmos Genéticos – Operadores
Cruzamento
Produz novos filhos a partir de dois pais, copiando
genes selecionados de cada pai
O gene na posição i em cada filho é copiado do gene na
posição i de um dos pais
Tipos de Cruzamento:
De ponto Único
De dois pontos
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 37 / 47
142. Algoritmos Genéticos – Operadores
Cruzamento
Produz novos filhos a partir de dois pais, copiando
genes selecionados de cada pai
O gene na posição i em cada filho é copiado do gene na
posição i de um dos pais
Tipos de Cruzamento:
De ponto Único
De dois pontos
Uniforme
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 37 / 47
143. Algoritmos Genéticos – Operadores
Cruzamento: Tipos de Cruzamento
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 38 / 47
145. Algoritmos Genéticos – Operadores
Cruzamento: Tipos de Cruzamento
De ponto único (Single-point crossover):
1 1 4 2 5 1 0 3 3 9
3 5 8 8 4 0 1 1 1 2
1 1 4 2 4 0 1 1 1 2
3 5 8 8 5 1 0 3 3 9
No primeiro filho, os n primeiros genes vêm do primeiro pai,
e os restantes do segundo
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 38 / 47
146. Algoritmos Genéticos – Operadores
Cruzamento: Tipos de Cruzamento
De ponto único (Single-point crossover):
1 1 4 2 5 1 0 3 3 9
3 5 8 8 4 0 1 1 1 2
1 1 4 2 4 0 1 1 1 2
3 5 8 8 5 1 0 3 3 9
No primeiro filho, os n primeiros genes vêm do primeiro pai,
e os restantes do segundo
O segundo filho troca as posições dos pais, ou seja, tem os n
primeiros genes do segundo e os restantes do primeiro
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 38 / 47
147. Algoritmos Genéticos – Operadores
Cruzamento: Tipos de Cruzamento
De ponto único (Single-point crossover):
1 1 4 2 5 1 0 3 3 9
3 5 8 8 4 0 1 1 1 2
1 1 4 2 4 0 1 1 1 2
3 5 8 8 5 1 0 3 3 9
No primeiro filho, os n primeiros genes vêm do primeiro pai,
e os restantes do segundo
O segundo filho troca as posições dos pais, ou seja, tem os n
primeiros genes do segundo e os restantes do primeiro
Assim, ele contém os genes não usados no irmão
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 38 / 47
148. Algoritmos Genéticos – Operadores
Cruzamento: Tipos de Cruzamento
De ponto único (Single-point crossover):
1 1 4 2 5 1 0 3 3 9
3 5 8 8 4 0 1 1 1 2
1 1 4 2 4 0 1 1 1 2
3 5 8 8 5 1 0 3 3 9
Toda vez que o operador de cruzamento de ponto único é
usado, o ponto de cruzamento n é escolhido aleatoriamente
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 39 / 47
149. Algoritmos Genéticos – Operadores
Cruzamento: Tipos de Cruzamento
De ponto único (Single-point crossover):
1 1 4 2 5 1 0 3 3 9
3 5 8 8 4 0 1 1 1 2
1 1 4 2 4 0 1 1 1 2
3 5 8 8 5 1 0 3 3 9
Toda vez que o operador de cruzamento de ponto único é
usado, o ponto de cruzamento n é escolhido aleatoriamente
Modelo visto no inı́cio da aula...
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 39 / 47
150. Algoritmos Genéticos – Operadores
Cruzamento: Tipos de Cruzamento
De ponto único (Single-point crossover):
1 1 4 2 5 1 0 3 3 9
3 5 8 8 4 0 1 1 1 2
1 1 4 2 4 0 1 1 1 2
3 5 8 8 5 1 0 3 3 9
Toda vez que o operador de cruzamento de ponto único é
usado, o ponto de cruzamento n é escolhido aleatoriamente
Modelo visto no inı́cio da aula...
Tende a manter os genes iniciais dos cromossomos na
população
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 39 / 47
152. Algoritmos Genéticos – Operadores
Cruzamento: Tipos de Cruzamento
De dois pontos (Two-point crossover):
1 1 4 2 5 1 0 3 3 9
3 5 8 8 4 0 1 1 1 2
1 1 8 8 4 0 1 3 3 9
3 5 4 2 5 1 0 1 1 2
A prole é criada substituindo-se segmentos intermediários de
um pai no meio da cadeia do segundo pai
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 40 / 47
153. Algoritmos Genéticos – Operadores
Cruzamento: Tipos de Cruzamento
De dois pontos (Two-point crossover):
1 1 4 2 5 1 0 3 3 9
3 5 8 8 4 0 1 1 1 2
1 1 8 8 4 0 1 3 3 9
3 5 4 2 5 1 0 1 1 2
A prole é criada substituindo-se segmentos intermediários de
um pai no meio da cadeia do segundo pai
Também aqui, toda vez que o operador é usado, os pontos
de cruzamento n0 e n1 são escolhidos aleatoriamente
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 40 / 47
154. Algoritmos Genéticos – Operadores
Cruzamento: Tipos de Cruzamento
De dois pontos (Two-point crossover):
1 1 4 2 5 1 0 3 3 9
3 5 8 8 4 0 1 1 1 2
1 1 8 8 4 0 1 3 3 9
3 5 4 2 5 1 0 1 1 2
A prole é criada substituindo-se segmentos intermediários de
um pai no meio da cadeia do segundo pai
Também aqui, toda vez que o operador é usado, os pontos
de cruzamento n0 e n1 são escolhidos aleatoriamente
Tende a manter os genes iniciais e finais dos cromossomos
na população
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 40 / 47
157. Algoritmos Genéticos – Operadores
Cruzamento: Tipos de Cruzamento
Uniforme (Uniform crossover):
1 1 4 2 5 1 0 3 3 9
3 5 8 8 4 0 1 1 1 2
1 5 8 2 5 0 0 1 1 9
3 1 4 8 4 1 1 3 3 2
Combina aleatoriamente (distribuição uniforme) genes dos 2
pais
Cada ponto de cruzamento é definido de forma aleatória, e
independentemente dos demais pontos
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 41 / 47
158. Algoritmos Genéticos – Operadores
Cruzamento: Tipos de Cruzamento
Uniforme (Uniform crossover):
1 1 4 2 5 1 0 3 3 9
3 5 8 8 4 0 1 1 1 2
1 5 8 2 5 0 0 1 1 9
3 1 4 8 4 1 1 3 3 2
Combina aleatoriamente (distribuição uniforme) genes dos 2
pais
Cada ponto de cruzamento é definido de forma aleatória, e
independentemente dos demais pontos
Não dá preferência para manter alguns genes (iniciais ou
finais) na população
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 41 / 47
159. Algoritmos Genéticos – Operadores
Cruzamento: Algoritmo (Ponto Único)
Função CRUZA(x,y): indivı́duo
n ← TAMANHO(x)
c ← número aleatório entre 1 e n
parte x ← SUBSTRING(x,1,c)
parte y ← SUBSTRING(y,c+1,n)
retorna APPEND(parte x, parte y)
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 42 / 47
160. Algoritmos Genéticos – Operadores
Cruzamento: Algoritmo (Ponto Único)
Nesse algoritmo os ı́ndices
dos arranjos vão de 1 a n
Função CRUZA(x,y): indivı́duo
n ← TAMANHO(x)
c ← número aleatório entre 1 e n
parte x ← SUBSTRING(x,1,c)
parte y ← SUBSTRING(y,c+1,n)
retorna APPEND(parte x, parte y)
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 42 / 47
161. Algoritmos Genéticos – Operadores
Cruzamento: Algoritmo (Ponto Único)
Note que, nessa versão,
cada cruzamento de
2 pais produz ape-
nas um filho, não 2
Função CRUZA(x,y): indivı́duo
n ← TAMANHO(x)
c ← número aleatório entre 1 e n
parte x ← SUBSTRING(x,1,c)
parte y ← SUBSTRING(y,c+1,n)
retorna APPEND(parte x, parte y)
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 42 / 47
162. Algoritmos Genéticos – Operadores
Cruzamento: Clonagem
Até agora, cruzamento era mandatório
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 43 / 47
163. Algoritmos Genéticos – Operadores
Cruzamento: Clonagem
Até agora, cruzamento era mandatório
Sempre o fazı́amos
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 43 / 47
164. Algoritmos Genéticos – Operadores
Cruzamento: Clonagem
Até agora, cruzamento era mandatório
Sempre o fazı́amos
Isso, contudo, faz com que boas soluções não sejam
preservadas
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 43 / 47
165. Algoritmos Genéticos – Operadores
Cruzamento: Clonagem
Até agora, cruzamento era mandatório
Sempre o fazı́amos
Isso, contudo, faz com que boas soluções não sejam
preservadas
Uma alternativa a esse modelo clássico é efetuar o
cruzamento com uma certa probabilidade
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 43 / 47
166. Algoritmos Genéticos – Operadores
Cruzamento: Clonagem
Até agora, cruzamento era mandatório
Sempre o fazı́amos
Isso, contudo, faz com que boas soluções não sejam
preservadas
Uma alternativa a esse modelo clássico é efetuar o
cruzamento com uma certa probabilidade
Então, primeiro decidimos se iremos efetuar o cruzamento,
para então fazê-lo
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 43 / 47
167. Algoritmos Genéticos – Operadores
Cruzamento: Clonagem
Nas vezes em que não é feito o cruzamento, a
clonagem acontece
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 44 / 47
168. Algoritmos Genéticos – Operadores
Cruzamento: Clonagem
Nas vezes em que não é feito o cruzamento, a
clonagem acontece
A prole torna-se uma cópia exata dos pais
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 44 / 47
169. Algoritmos Genéticos – Operadores
Cruzamento: Clonagem
Nas vezes em que não é feito o cruzamento, a
clonagem acontece
A prole torna-se uma cópia exata dos pais
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 44 / 47
170. Algoritmos Genéticos – Operadores
Cruzamento: Clonagem
Funcionamento:
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 45 / 47
171. Algoritmos Genéticos – Operadores
Cruzamento: Clonagem
Funcionamento:
Após a seleção dos indivı́duos para cruzamento, é gerado um
número aleatório r ∈ [0, 1]
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 45 / 47
172. Algoritmos Genéticos – Operadores
Cruzamento: Clonagem
Funcionamento:
Após a seleção dos indivı́duos para cruzamento, é gerado um
número aleatório r ∈ [0, 1]
Se r ≤ p, onde p é a probabilidade de ocorrer um
cruzamento, então haverá o cruzamento
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 45 / 47
173. Algoritmos Genéticos – Operadores
Cruzamento: Clonagem
Funcionamento:
Após a seleção dos indivı́duos para cruzamento, é gerado um
número aleatório r ∈ [0, 1]
Se r ≤ p, onde p é a probabilidade de ocorrer um
cruzamento, então haverá o cruzamento
Do contrário, haverá a clonagem
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 45 / 47
174. Algoritmos Genéticos – Operadores
Cruzamento: Clonagem
Funcionamento:
Após a seleção dos indivı́duos para cruzamento, é gerado um
número aleatório r ∈ [0, 1]
Se r ≤ p, onde p é a probabilidade de ocorrer um
cruzamento, então haverá o cruzamento
Do contrário, haverá a clonagem
Em geral, uma probabilidade de cruzamento p = 0.7
produz bons resultados
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 45 / 47
175. 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.
Coley, D.A. (1999): An Introduction to Genetic Algorithms for Scientists
and Engineers. World Scientific.
Miller, B.L.; Goldberg, D.E. (1995): Genetic Algorithms , Tournament
Selection, and the Effects of Noise. Complex System 9. pp. 193-212.
Norton Trevisan Roman(norton@usp.br) 14 de março de 2019 46 / 47