SlideShare una empresa de Scribd logo
1 de 15
Introdução a Computação Natural: Algoritmo Genético
aplicado a maximização de funções
Por Diego de Souza Silva
RA 090911
Introdução
Os algoritmos genéticos, assim como outros bioinspirados, são
heurísticas utilizadas na busca de resolução em problemas
complexos que ou não tem solução exata ou demanda mais tempo
do que se é desejável para ser descoberta.
Este trabalho consiste em utilizar um algoritmo genético
clássico na maximização de uma função e analisar a
qualidade das soluções encontradas por meio de gráficos
gerados.
Roteiro
● Referencial Teórico,
● Materiais e Métodos,
● Resultados e Discussão,
● Bibliografia.
Referenciais Teóricos: Computação natural
Consiste em uma abordagem relativamente nova na resolução
de problemas computacionais caracterizada por se basear em
eventos da natureza.
Podemos definir a computação natural como uma linha
de pesquisa que permite o desenvolvimento de novas
ferramentas de computação na resolução de problemas
e se baseia em mecenismos naturais para o
desenvolvimento de novos algoritmos.
Algoritmo Genético
Algoritmos genéticos é uma classe dentre os algoritmos evolutivos
(beseados na evolução biológica) que usam técnicas inspiradas pelos
conceitos da teoria Darwinista da evolução como hereditariedade,
mutação, seleção natural e recombinação (ou crossing over).
São implementados como uma simulação de computador em que uma
geração de indivíduos que representam soluções são escolhidos os mais
aptos a se gerarem descendentes-soluções.
A evolução geralmente se inicia a partir de um conjunto de soluções
criado aleatoriamente e é realizada por meio de gerações. A cada nova
geração, a adaptação de cada solução na população é avaliada, alguns
indivíduos são selecionados para a próxima geração, e recombinados ou
mutados para formar uma nova população. A população gerada então é
utilizada como entrada para a próxima iteração do algoritmo.
O experimento
O experimento proposto neste trabalho
consiste em desenvolver um algoritmo
genético clássico, utilizá-lo na maximização
da função f1:
f1 = x * sin(4*pi*x) – y*sin(4*pi*y+pi)+1
com parâmetros diversos e gerando para
cada versão dos parâmetros um gráfico com
o fitness médio e melhor de cada geração.
Configuração dos experimentos
Experime
nto
Indivíduos
por
população
Probabilid
ade de
Crossover
Probabilid
ade de
Mutação
Gerações
1 20 90% 20% 100
2 5 90% 20% 100
3 50 90% 20% 100
4 20 90% 0% 100
5 20 90% 100% 100
6 20 90% 20% 5
7 20 90% 20% 500
Experimento 1
0 20 40 60 80 100 120
0.0000
0.5000
1.0000
1.5000
2.0000
2.5000
3.0000
Fitness Por Geração
Fitness Médio e Melhor Fitness para cada Geração
Fitness Médio
Melhor Fitness
Geração
Fitness
Experimento 2
0 20 40 60 80 100 120
0.0000
0.5000
1.0000
1.5000
2.0000
2.5000
3.0000
Fitness Por Geração
Fitness Médio e Melhor Fitness para cada Geração
Fitness Médio
Melhor Fitness
Geração
Fitness
Experimento 3
0 20 40 60 80 100 120
0.0000
0.5000
1.0000
1.5000
2.0000
2.5000
3.0000
Fitness Por Geração
Fitness Médio e Melhor Fitness para cada Geração
Fitness Médio
Melhor Fitness
Geração
Fitness
Experimento 4
0 20 40 60 80 100 120
0.0000
0.5000
1.0000
1.5000
2.0000
2.5000
3.0000
Fitness Por Geração
Fitness Médio e Melhor Fitness para cada Geração
Fitness Médio
Melhor Fitness
Geração
Fitness
Experimento 5
0 20 40 60 80 100 120
0.0000
0.5000
1.0000
1.5000
2.0000
2.5000
3.0000
Fitness Por Geração
Fitness Médio e Melhor Fitness para cada Geração
Fitness Médio
Melhor Fitness
Geração
Fitness
Experimento 6
0 1 2 3 4 5 6
0
0.5
1
1.5
2
2.5
3
Fitness Por Geração
Fitness Médio e Melhor Fitness para cada Geração
Fitness Médio
Melhor Fitness
Geração
Fitness
Experimento 7
0 100 200 300 400 500 600
0.0000
0.5000
1.0000
1.5000
2.0000
2.5000
3.0000
Fitness Por Geração
Fitness Médio e Melhor Fitness para cada Geração
Fitness Médio
Melhor Fitness
Geração
Fitness
Conclusão
Embora possa ignorar a melhor solução, o
algoritmo oferece boas respostas para o
problema de maximização desde que se use
populações suficientemente numerosas e se
equilibre a probabilidade de reprodução por
crossover e por mutação.

Más contenido relacionado

La actualidad más candente

Funções irracionais
Funções irracionaisFunções irracionais
Funções irracionais
silvia_lfr
 
Ensinando computacao sem_computador
Ensinando computacao sem_computadorEnsinando computacao sem_computador
Ensinando computacao sem_computador
Hudson Augusto
 
Aula 1 introdução a algoritmos
Aula 1   introdução a algoritmosAula 1   introdução a algoritmos
Aula 1 introdução a algoritmos
Adilio Tavares
 

La actualidad más candente (20)

Funções irracionais
Funções irracionaisFunções irracionais
Funções irracionais
 
Algoritmos em portugol
Algoritmos em portugolAlgoritmos em portugol
Algoritmos em portugol
 
Governança de Dados e Big Data
Governança de Dados e Big DataGovernança de Dados e Big Data
Governança de Dados e Big Data
 
Informática para concursos públicos completa
Informática para concursos públicos completaInformática para concursos públicos completa
Informática para concursos públicos completa
 
Avaliação ingles 8° ano
Avaliação ingles  8° anoAvaliação ingles  8° ano
Avaliação ingles 8° ano
 
Problema das N rainhas (Backtracking)
Problema das N rainhas (Backtracking)Problema das N rainhas (Backtracking)
Problema das N rainhas (Backtracking)
 
Aula03 - JavaScript
Aula03 - JavaScriptAula03 - JavaScript
Aula03 - JavaScript
 
Gerenciamento de Arquivos Nos Sistemas Operacionais
Gerenciamento de Arquivos Nos Sistemas OperacionaisGerenciamento de Arquivos Nos Sistemas Operacionais
Gerenciamento de Arquivos Nos Sistemas Operacionais
 
Ensinando computacao sem_computador
Ensinando computacao sem_computadorEnsinando computacao sem_computador
Ensinando computacao sem_computador
 
Python - Programação funcional
Python - Programação funcionalPython - Programação funcional
Python - Programação funcional
 
Estatística básica
Estatística básicaEstatística básica
Estatística básica
 
Analise de Sensibilidade
Analise de SensibilidadeAnalise de Sensibilidade
Analise de Sensibilidade
 
Aula 5 manipulacao de arquivos e pastas
Aula 5   manipulacao de arquivos e pastasAula 5   manipulacao de arquivos e pastas
Aula 5 manipulacao de arquivos e pastas
 
Sistemas Operacionais - Aula 9 (Gerencia do Processador)
Sistemas Operacionais - Aula 9 (Gerencia do Processador)Sistemas Operacionais - Aula 9 (Gerencia do Processador)
Sistemas Operacionais - Aula 9 (Gerencia do Processador)
 
Lógica matemática (exercícios resolvidos)
Lógica matemática (exercícios resolvidos)Lógica matemática (exercícios resolvidos)
Lógica matemática (exercícios resolvidos)
 
Matemática e trava língua gráfico e folclore
Matemática  e trava língua gráfico e folclore Matemática  e trava língua gráfico e folclore
Matemática e trava língua gráfico e folclore
 
Treinamento processos draw io
Treinamento processos draw ioTreinamento processos draw io
Treinamento processos draw io
 
Linguagens Formais
Linguagens FormaisLinguagens Formais
Linguagens Formais
 
Aula 1 introdução a algoritmos
Aula 1   introdução a algoritmosAula 1   introdução a algoritmos
Aula 1 introdução a algoritmos
 
Análise de Algoritmos
Análise de AlgoritmosAnálise de Algoritmos
Análise de Algoritmos
 

Similar a Algoritmo Genético para busca de máximo de função

59 algoritmosgeneticos(1)
59 algoritmosgeneticos(1)59 algoritmosgeneticos(1)
59 algoritmosgeneticos(1)
arapido
 
Algorítimos Genéticos
Algorítimos GenéticosAlgorítimos Genéticos
Algorítimos Genéticos
iaudesc
 
Programação Genética
Programação GenéticaProgramação Genética
Programação Genética
iaudesc
 
Obtenção de Combinação Ótima de Classificadores
Obtenção de Combinação Ótima de ClassificadoresObtenção de Combinação Ótima de Classificadores
Obtenção de Combinação Ótima de Classificadores
LCoN Mackenzie
 

Similar a Algoritmo Genético para busca de máximo de função (20)

Algoritmos genéticos: princípios e aplicações
Algoritmos genéticos: princípios e aplicaçõesAlgoritmos genéticos: princípios e aplicações
Algoritmos genéticos: princípios e aplicações
 
59 algoritmosgeneticos(1)
59 algoritmosgeneticos(1)59 algoritmosgeneticos(1)
59 algoritmosgeneticos(1)
 
Aprendizagem de máquina aplicada na neurociência
Aprendizagem de máquina aplicada na neurociênciaAprendizagem de máquina aplicada na neurociência
Aprendizagem de máquina aplicada na neurociência
 
Atps
AtpsAtps
Atps
 
mod2-mecanismos
mod2-mecanismosmod2-mecanismos
mod2-mecanismos
 
Algorítimos Genéticos
Algorítimos GenéticosAlgorítimos Genéticos
Algorítimos Genéticos
 
Biofisica14
Biofisica14Biofisica14
Biofisica14
 
Testes metamórficos em problemas complexos
Testes metamórficos em problemas complexosTestes metamórficos em problemas complexos
Testes metamórficos em problemas complexos
 
Analise Algoritmos
Analise AlgoritmosAnalise Algoritmos
Analise Algoritmos
 
Po aula 01
Po aula 01Po aula 01
Po aula 01
 
Aprendizado de máquina
Aprendizado de máquinaAprendizado de máquina
Aprendizado de máquina
 
Programação Genética
Programação GenéticaProgramação Genética
Programação Genética
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Descritiva Narrativa (Lógica de Programação)
Descritiva Narrativa (Lógica de Programação)Descritiva Narrativa (Lógica de Programação)
Descritiva Narrativa (Lógica de Programação)
 
Algoritmos Genéticos
Algoritmos GenéticosAlgoritmos Genéticos
Algoritmos Genéticos
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Obtenção de Combinação Ótima de Classificadores
Obtenção de Combinação Ótima de ClassificadoresObtenção de Combinação Ótima de Classificadores
Obtenção de Combinação Ótima de Classificadores
 
Algoritmos de ordenação
Algoritmos de ordenaçãoAlgoritmos de ordenação
Algoritmos de ordenação
 
Math
MathMath
Math
 
Machine learning - O que é isso?
Machine learning - O que é isso?Machine learning - O que é isso?
Machine learning - O que é isso?
 

Algoritmo Genético para busca de máximo de função

  • 1. Introdução a Computação Natural: Algoritmo Genético aplicado a maximização de funções Por Diego de Souza Silva RA 090911
  • 2. Introdução Os algoritmos genéticos, assim como outros bioinspirados, são heurísticas utilizadas na busca de resolução em problemas complexos que ou não tem solução exata ou demanda mais tempo do que se é desejável para ser descoberta. Este trabalho consiste em utilizar um algoritmo genético clássico na maximização de uma função e analisar a qualidade das soluções encontradas por meio de gráficos gerados.
  • 3. Roteiro ● Referencial Teórico, ● Materiais e Métodos, ● Resultados e Discussão, ● Bibliografia.
  • 4. Referenciais Teóricos: Computação natural Consiste em uma abordagem relativamente nova na resolução de problemas computacionais caracterizada por se basear em eventos da natureza. Podemos definir a computação natural como uma linha de pesquisa que permite o desenvolvimento de novas ferramentas de computação na resolução de problemas e se baseia em mecenismos naturais para o desenvolvimento de novos algoritmos.
  • 5. Algoritmo Genético Algoritmos genéticos é uma classe dentre os algoritmos evolutivos (beseados na evolução biológica) que usam técnicas inspiradas pelos conceitos da teoria Darwinista da evolução como hereditariedade, mutação, seleção natural e recombinação (ou crossing over). São implementados como uma simulação de computador em que uma geração de indivíduos que representam soluções são escolhidos os mais aptos a se gerarem descendentes-soluções. A evolução geralmente se inicia a partir de um conjunto de soluções criado aleatoriamente e é realizada por meio de gerações. A cada nova geração, a adaptação de cada solução na população é avaliada, alguns indivíduos são selecionados para a próxima geração, e recombinados ou mutados para formar uma nova população. A população gerada então é utilizada como entrada para a próxima iteração do algoritmo.
  • 6. O experimento O experimento proposto neste trabalho consiste em desenvolver um algoritmo genético clássico, utilizá-lo na maximização da função f1: f1 = x * sin(4*pi*x) – y*sin(4*pi*y+pi)+1 com parâmetros diversos e gerando para cada versão dos parâmetros um gráfico com o fitness médio e melhor de cada geração.
  • 7. Configuração dos experimentos Experime nto Indivíduos por população Probabilid ade de Crossover Probabilid ade de Mutação Gerações 1 20 90% 20% 100 2 5 90% 20% 100 3 50 90% 20% 100 4 20 90% 0% 100 5 20 90% 100% 100 6 20 90% 20% 5 7 20 90% 20% 500
  • 8. Experimento 1 0 20 40 60 80 100 120 0.0000 0.5000 1.0000 1.5000 2.0000 2.5000 3.0000 Fitness Por Geração Fitness Médio e Melhor Fitness para cada Geração Fitness Médio Melhor Fitness Geração Fitness
  • 9. Experimento 2 0 20 40 60 80 100 120 0.0000 0.5000 1.0000 1.5000 2.0000 2.5000 3.0000 Fitness Por Geração Fitness Médio e Melhor Fitness para cada Geração Fitness Médio Melhor Fitness Geração Fitness
  • 10. Experimento 3 0 20 40 60 80 100 120 0.0000 0.5000 1.0000 1.5000 2.0000 2.5000 3.0000 Fitness Por Geração Fitness Médio e Melhor Fitness para cada Geração Fitness Médio Melhor Fitness Geração Fitness
  • 11. Experimento 4 0 20 40 60 80 100 120 0.0000 0.5000 1.0000 1.5000 2.0000 2.5000 3.0000 Fitness Por Geração Fitness Médio e Melhor Fitness para cada Geração Fitness Médio Melhor Fitness Geração Fitness
  • 12. Experimento 5 0 20 40 60 80 100 120 0.0000 0.5000 1.0000 1.5000 2.0000 2.5000 3.0000 Fitness Por Geração Fitness Médio e Melhor Fitness para cada Geração Fitness Médio Melhor Fitness Geração Fitness
  • 13. Experimento 6 0 1 2 3 4 5 6 0 0.5 1 1.5 2 2.5 3 Fitness Por Geração Fitness Médio e Melhor Fitness para cada Geração Fitness Médio Melhor Fitness Geração Fitness
  • 14. Experimento 7 0 100 200 300 400 500 600 0.0000 0.5000 1.0000 1.5000 2.0000 2.5000 3.0000 Fitness Por Geração Fitness Médio e Melhor Fitness para cada Geração Fitness Médio Melhor Fitness Geração Fitness
  • 15. Conclusão Embora possa ignorar a melhor solução, o algoritmo oferece boas respostas para o problema de maximização desde que se use populações suficientemente numerosas e se equilibre a probabilidade de reprodução por crossover e por mutação.