SlideShare uma empresa Scribd logo
1 de 13
Baixar para ler offline
Introdução
● Algoritmos Bio-inspirados
● Algoritmos Genéticos
– Seleção
– “Crossover”
– Mutação
● Exemplo “Pythonico”
Algoritmos Bio-inspirados
Se um dia desejarmos construir robôs que
se comportam como seres autônomos, que
tal programar esses robôs com algoritmos
inspirados na biologia?
Algoritmos Bio-inspirados
● Heurísticas Bio-Inspiradas:
– Computação Evolutiva;
– Algoritmos Genéticos;
– Inteligência de Enxames
(“Swarm Intelligence”);
– Algoritmos Imunológicos;
– Caos Determinístico;
Algoritmos Genéticos
● Especialmente úteis quando as seguintes
premissas se verificam:
– Soluções para um problema podem ser
encontradas, mas não é simples encontrar a
melhor solução em um tempo aceitável";
– Dada uma determinada solução é possível
compará-la com outras soluções e dizer qual
é a melhor;
Algoritmos Genéticos
● É uma forma interessante de resolver
problemas de otimização combinatória ou
numérica.
– Exemplo: o problema do Caixeiro Viajante
(“Traveling Salesman Problem - TSP”).
Algoritmos Genéticos
● Uma solução para o problema é um
cromossomo;
● Operações de “crossover” e mutação nos
cromossomos criam novas soluções;
● Mutações acontecem com uma
determinada probabilidade, gerando
soluções diferentes das “esperadas”;
Algoritmos Genéticos
● Mecanismos de
seleção fazem as
novas soluções se
reproduzirem ou
serem extintas;
Exemplo “Pythonico”
Achar o valor máximo da equação:
(todo mundo usa o TSP como exemplo, vamos usar algo diferente...)
f  x1 ,x2=21.5x1.sin4 x1x2.sin20 x2
Gráfico (octave)
x1 = linspace(-3.0, 12.1, 100);
x2 = linspace(4.1, 5.8, 100);
[xx1, xx2] = meshgrid(x1, x2);
z1 = 21.5 + xx1 * sin( 4 * pi * xx1)';
z2 = xx2 * sin(20 * pi * xx2)';
z = z1 + z2;
mesh(x1, x2, z);
Gráfico (octave)
Solução
Show me the code!
Algoritmos genéticos em python - PyConBrasil 3 (2007)

Mais conteúdo relacionado

Mais de Fabiano Weimar

Plone Yak Shaving and Bikeshedding
Plone Yak Shaving and BikesheddingPlone Yak Shaving and Bikeshedding
Plone Yak Shaving and BikesheddingFabiano Weimar
 
Otimização de infra estrutura para hospedagem de websites
Otimização de infra estrutura para hospedagem de websitesOtimização de infra estrutura para hospedagem de websites
Otimização de infra estrutura para hospedagem de websitesFabiano Weimar
 
Understanding Plone Security
Understanding Plone SecurityUnderstanding Plone Security
Understanding Plone SecurityFabiano Weimar
 
Tips and Tricks about Plone Development for Mobile Platforms
Tips and Tricks about Plone Development for Mobile PlatformsTips and Tricks about Plone Development for Mobile Platforms
Tips and Tricks about Plone Development for Mobile PlatformsFabiano Weimar
 
Dicas e truques de otimização de websites python
Dicas e truques de otimização de websites pythonDicas e truques de otimização de websites python
Dicas e truques de otimização de websites pythonFabiano Weimar
 
Conhecendo o ubuntu enterprise cloud - UEC
Conhecendo o ubuntu enterprise cloud - UECConhecendo o ubuntu enterprise cloud - UEC
Conhecendo o ubuntu enterprise cloud - UECFabiano Weimar
 
Sistema de protocolo de documentos - SPDO
Sistema de protocolo de documentos - SPDOSistema de protocolo de documentos - SPDO
Sistema de protocolo de documentos - SPDOFabiano Weimar
 
Reconhecimento de fala em português brasileiro
Reconhecimento de fala em português brasileiroReconhecimento de fala em português brasileiro
Reconhecimento de fala em português brasileiroFabiano Weimar
 
Plone na plataforma mobile
Plone na plataforma mobilePlone na plataforma mobile
Plone na plataforma mobileFabiano Weimar
 

Mais de Fabiano Weimar (14)

Plone Yak Shaving and Bikeshedding
Plone Yak Shaving and BikesheddingPlone Yak Shaving and Bikeshedding
Plone Yak Shaving and Bikeshedding
 
Otimização de infra estrutura para hospedagem de websites
Otimização de infra estrutura para hospedagem de websitesOtimização de infra estrutura para hospedagem de websites
Otimização de infra estrutura para hospedagem de websites
 
Understanding Plone Security
Understanding Plone SecurityUnderstanding Plone Security
Understanding Plone Security
 
Tips and Tricks about Plone Development for Mobile Platforms
Tips and Tricks about Plone Development for Mobile PlatformsTips and Tricks about Plone Development for Mobile Platforms
Tips and Tricks about Plone Development for Mobile Platforms
 
Segurança no plone
Segurança no ploneSegurança no plone
Segurança no plone
 
Dicas e truques de otimização de websites python
Dicas e truques de otimização de websites pythonDicas e truques de otimização de websites python
Dicas e truques de otimização de websites python
 
Conhecendo o ubuntu enterprise cloud - UEC
Conhecendo o ubuntu enterprise cloud - UECConhecendo o ubuntu enterprise cloud - UEC
Conhecendo o ubuntu enterprise cloud - UEC
 
Sistema de protocolo de documentos - SPDO
Sistema de protocolo de documentos - SPDOSistema de protocolo de documentos - SPDO
Sistema de protocolo de documentos - SPDO
 
Novidades do plone 4
Novidades do plone 4Novidades do plone 4
Novidades do plone 4
 
O novo plone 4
O novo plone 4O novo plone 4
O novo plone 4
 
Reconhecimento de fala em português brasileiro
Reconhecimento de fala em português brasileiroReconhecimento de fala em português brasileiro
Reconhecimento de fala em português brasileiro
 
IPv6
IPv6IPv6
IPv6
 
Plone na nuvem
Plone na nuvemPlone na nuvem
Plone na nuvem
 
Plone na plataforma mobile
Plone na plataforma mobilePlone na plataforma mobile
Plone na plataforma mobile
 

Algoritmos genéticos em python - PyConBrasil 3 (2007)

  • 1.
  • 2. Introdução ● Algoritmos Bio-inspirados ● Algoritmos Genéticos – Seleção – “Crossover” – Mutação ● Exemplo “Pythonico”
  • 3. Algoritmos Bio-inspirados Se um dia desejarmos construir robôs que se comportam como seres autônomos, que tal programar esses robôs com algoritmos inspirados na biologia?
  • 4. Algoritmos Bio-inspirados ● Heurísticas Bio-Inspiradas: – Computação Evolutiva; – Algoritmos Genéticos; – Inteligência de Enxames (“Swarm Intelligence”); – Algoritmos Imunológicos; – Caos Determinístico;
  • 5. Algoritmos Genéticos ● Especialmente úteis quando as seguintes premissas se verificam: – Soluções para um problema podem ser encontradas, mas não é simples encontrar a melhor solução em um tempo aceitável"; – Dada uma determinada solução é possível compará-la com outras soluções e dizer qual é a melhor;
  • 6. Algoritmos Genéticos ● É uma forma interessante de resolver problemas de otimização combinatória ou numérica. – Exemplo: o problema do Caixeiro Viajante (“Traveling Salesman Problem - TSP”).
  • 7. Algoritmos Genéticos ● Uma solução para o problema é um cromossomo; ● Operações de “crossover” e mutação nos cromossomos criam novas soluções; ● Mutações acontecem com uma determinada probabilidade, gerando soluções diferentes das “esperadas”;
  • 8. Algoritmos Genéticos ● Mecanismos de seleção fazem as novas soluções se reproduzirem ou serem extintas;
  • 9. Exemplo “Pythonico” Achar o valor máximo da equação: (todo mundo usa o TSP como exemplo, vamos usar algo diferente...) f  x1 ,x2=21.5x1.sin4 x1x2.sin20 x2
  • 10. Gráfico (octave) x1 = linspace(-3.0, 12.1, 100); x2 = linspace(4.1, 5.8, 100); [xx1, xx2] = meshgrid(x1, x2); z1 = 21.5 + xx1 * sin( 4 * pi * xx1)'; z2 = xx2 * sin(20 * pi * xx2)'; z = z1 + z2; mesh(x1, x2, z);