Algoritmos Genéticos. Indivíduos em uma população competem por recursos e parceiros. Os indivíduos mais bem sucedidos em cada competição vão produzir

Documentos relacionados
Técnicas de Inteligência Artificial

Técnicas de Inteligência Artificial

Algoritmos Evolutivos Canônicos

Algoritmos Genéticos

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

Algoritmos Genéticos

Exemplo de Aplicação de Algoritmos Genéticos. Prof. Juan Moisés Mauricio Villanueva cear.ufpb.br/juan

UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ ALGORITMOS GENÉTICOS. Metaheurísticas de Buscas

Algoritmos Genéticos

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

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

Tópicos Especiais em Informática Fatec Indaiatuba

Max Pereira. Inteligência Artificial

Metahuerísticas: Algoritmos Genéticos. Sistemas de Informação/Ciências da Computação UNISUL Aran Bey Tcholakian Morales, Dr. Eng.

Modelos Evolucionários e Tratamento de Incertezas

SOLUÇÕES HEURÍSTICAS PARA O JOGO DE DAMAS

Codificação das variáveis: binária Iniciação da população: aleatória Avaliação: função aptidão Operadores. Critério de parada: número de gerações

Inteligência Artificial

INF 1771 Inteligência Artificial

Inteligência Computacional Aplicada. O que é Inteligência Computacional? Áreas de Aplicação Algoritmos Genéticos

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

Inteligência Artificial

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

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

Lista de Exercícios - Modelagem de representação cromossômica e função fitness

3 Métodos de Otimização

INTRODUÇÃO À INTELIGÊNCIA COMPUTACIONAL. Aula 06 Prof. Vitor Hugo Ferreira

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

Otimização Combinatória - Parte 4

Aplicação de algoritmos genéticos. Problema da Mochila (knapsack problem)

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

Algoritmos genéticos Abordagem unificada de algoritmos evolutivos simples

IF-705 Automação Inteligente Algoritmos Evolucionários

Algoritmos Genéticos. Pontos fracos dos métodos tradicionais. Características de alguns problemas. Tamanho do espaço de busca- Ex. caixeiro viajante:

4 Métodos Existentes. 4.1 Algoritmo Genético

4 Implementação Computacional

Otimização. Unidade 6: Algoritmo Genético. Jaime Arturo Ramírez. 7. Teoria do processo evolutivo num GA. 8. Aspectos avançados

GAs são indicados em problemas complexos de otimização- onde se busca uma solução melhor:

ESTUDO DOS PARAMETROS DE UM ALGORITMO GENÉTICO PARA POSTERIOR USO NA SOLUÇÃO DE PROBLEMAS DO TIPO JOB-SHOP

METAHEURÍSTICAS: 1 SIMULATED ANNEALING (S.A) 1.1 INTRODUÇÃO

4 Modelos Propostos para Otimização de Planejamentos com Restrições de Precedência 4.1 Representação com Algoritmos Genéticos

3 Algoritmos Genéticos

Métodos de Busca. Inteligência Artificial. Algoritmos Genéticos. Algoritmos Evolucionários. Prof. Ms. Luiz Alberto Contato:

Reconhecimento de Padrões

Estratégias Evolutivas EEs. Prof. Juan Moisés Mauricio Villanueva

Computação Evolutiva. Aula 4 Usando AEs Prof. Tiago A. E. Ferreira

UMA INTRODUÇÃO AOS ALGORITMOS GENETICOS

INF 1771 Inteligência Artificial

SISEE. Genetic Algorithms MEE

Busca com informação e exploração. Inteligência Artificial. Revisão da aula passada: Heurística Admissível. Revisão da aula passada: Busca A *

Introdução ao Algoritmo Genético

Estratégias Evolutivas Projeto de Filtros Passa Faixa

Otimização com Algoritmos Genéticos no MATLAB. Prof. Rafael Saraiva Campos CEFET-RJ

ALGORITMOS GENÉTICOS. Adair Santa Catarina Curso de Ciência da Computação Unioeste Campus de Cascavel PR

Introdução a Algoritmos Genéticos

GT-JeDi - Curso de Desenv. de Jogos IA para Jogos. Gustavo Pessin 2007

Prof. Marco Aurélio C. Pacheco. 1. Problema 2. Representação 3. Decodificação 4. Avaliação 5. Operadores 6. Técnicas 7. Parâmetros

BUSCA LOCAL (PARTE 4 Resolução de problemas por meio de busca) (C)Russell & Norvig, capítulo 4

1. Computação Evolutiva

OTIMIZAÇÃO FUNÇÕES UTILIZANDO ALGORITMOS GENÉTICOS NO APLICATIVO MS EXCEL RESUMO INTRODUÇÃO

Créditos. Introdução a Sistemas Inteligentes. Agenda Introdução Breve Histórico. Introdução. Introdução aos Algoritmos Evolutivos

GAs são indicados em problemas complexos de otimização- onde se busca uma solução melhor:

Inteligência Artificial

3 Otimização Aplicada a Reconstituição de Acidentes

Aplicação da Metaheurística Algoritmos Genéticos na solução do problema das n Rainhas

Introdução aos Algoritmos Genéticos

C o m p u t a ç ã o M ó v e l. André Siqueira Ruela

Problema de Satisfação de Restrições

Problema de Satisfação de Restrições. Problema de Satisfação de Restrições. Grafo de restrições. Exemplo: 4 Rainhas como um PSR

NOTAS DE AULA 1 METAHEURÍSTICA 13/10/2016

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

4 Algoritmo Genético com Chaves Aleatórias

Implementação De Um Algoritmo Genético Codificado Para A Solução do Problema do Caixeiro Viajante

Método de Hardy-Cross Capitulo 13- Algoritmo genético engenheiro Plínio Tomaz 24 dezembro de Algoritmo genético 13-1

Sistemas Inteligentes if684. Germano Vasconcelos Página da Disciplina:

Pesquisa Operacional Aplicada à Mineração

CTC-17 Inteligência Artificial Busca Competitiva e Busca Iterativa. Prof. Paulo André Castro

3. ALGORITMOS GENÉTICOS

Algoritmos Evolutivos para Otimização

Marina Andretta. 10 de outubro de Baseado no livro Introduction to Linear Optimization, de D. Bertsimas e J. N. Tsitsiklis.

COMPOSIÇÃO DE UMA CARTEIRA DE AÇÕES COM RISCO MÍNIMO E RETORNO ESPECIFICADO: UM ESTUDO UTILIZANDO ALGORITMO GENÉTICO E A FUNÇÃO SOLVER

Um Estudo Empírico de Hiper-Heurísticas

3 Algoritmos Genéticos

GA Conceitos Básicos. Capítulo 3 Prof. Ricardo Linden

AED2 - Aula 11 Problema da separação e quicksort

Otimização. Algoritmos Genéticos. Teoria da Evolução. Otimização

4 Metáforas de Optimização

1 Introdução 1.1 Motivação

Preditor de números para lotofácil: uma abordagem usando algoritmos evolutivos

Inteligência Artificial

Um Minotauro Perdido & Percolação

Algoritmo Aproximação. Prof. Anderson Almeida Ferreira [DPV]9.2 [ZIV]9.2.2 e 9.2.3

Algoritmo Aproximado. Prof. Anderson Almeida Ferreira [DPV]9.2 [ZIV]9.2.2 e 9.2.3

Algoritmos de ordenação

Um Algoritmo Genético com Aprendizado por Reforço Simples aplicado ao problema do Mundo de Grid

heapsort (int *x, int n) { int i, e, s, f, aux; /*fase de pré-processamento - cria heap inicial*/ for (i=1; i<n; i++) { e = x[i]; s = i; f = (s-1)/2;

Motivação Computação Evolucionária e Algoritmos Genéticos. Teoria da Evolução. Teoria da Evolução. Otimização. Algoritmos Genéticos AG

Coloração de intervalos

Extracção de Conhecimento

Transcrição:

Algoritmos Genéticos Algoritmos Genéticos (GA) são algoritmos de busca heurística baseados em ideias de seleção natural e genética. Dessa forma, eles representam uma forma inteligente de se fazer uma busca aleatória para resolver problemas de otimização 5. As técnicas básicas de algoritmos genéticos foram criadas a fim de simular processos em sistemas naturais necessários para a evolução, especialmente os princípios desenvolvidos por Charles Darwin no sentido de sobrevivência do mais apto. Como Algoritmos Genéticos simulam a sobrevivência do mais apto após sucessivas gerações, cada geração consiste de uma população de vetores, que são análogos aos cromossomos que existem no DNA. Cada indivíduo é um ponto no espaço de busca e uma solução possível para o problema. Os fundamentos dos Algoritmos Genéticos são: 5 Problemas de Otimização são problemas que envolvem a maximização ou minimização de algum parâmetro. Quando o GPS do seu carro escolhe uma rota, ele está resolvo um problema de otimização de caminho, quando você quer escolher quais livros levar na sua mochila de forma a maximizar o número de livros que você leva pra escola também é um problema de otimização. Indivíduos em uma população competem por recursos e parceiros. Os indivíduos mais bem sucedidos em cada competição vão produzir mais prole. Genes de indivíduos bons se propagam na população de forma que dois pais bons produzem, de vez em quando, uma prole melhor que os pais. A cada sucessiva geração a população se torna mais apta ao ambiente. Os Algoritmos Genéticos são compostos, basicamente, de três passos principais: 1. Seleção, que a cada geração elimina os indivíduos menos aptos. 2. Crossover, que representa o acasalamento entre dois indivíduos. 3. Mutação, que introduz mudanças aleatórias nos indivíduos. Suponha que deseja-se saber valores de a, b, c e d que tornam verdade a seguinte igualdade a + 2b + 3c + 4d = 30. Para resolver esse

38 experimentos com matlab problema, podemos minimizar a função f (a, b, c, d) = (a + 2b + 3c + 4d 30) 2. Como nosso problema tem apenas quatro variáveis, nossos cromossomos (indivíduos) podem ser representados por vetores de 4 posições ([a, b, c, d]). Dessa forma, nossa função de aptidão (fitness) pode ser descrita como: function [ y ] = fitness( x ) a = x(:,1); b = x(:,2); c = x(:,3); d = x(:,4); y = (a + 2*b + 3*c + 4*d 30).^2; A função fitness recebe uma matriz x, onde cada linha é um indivíduo da população. Seleção A seleção é a parte do Algoritmo Genético onde os melhores indivíduos são selecionados, segundo a função de fitness, e os piores indivíduos são eliminados. function [ p2 ] = selecao( p1 ) f = fitness(p1); [~,i] = sort(f); p2 = zeros(size(p1)); p2(1:/2,:) = p1(i(1:/2),:); A seleção inicialmente aplica a função de fitness em todos os elementos da população. Após isso, utiliza-se a função sort para ordenar os resutados em ordem crescente, de forma que o primeiro elemento é o mais apto. Após isso, mantmos os 50% mais aptos da população e eliminamos a outra metade. Crossover Cabe aos indivíduos selecionados repopular o ambiente, por meio de acasalamento. Existem diversas técnicas de crossover, mas neste caso será escolhido um índice no cromossomo de forma que o novo indivíduo é composto de valores de um pai até o índice e de outro pai após o índice. function [ p2 ] = crossover( p1 )

algoritmos genéticos 39 n = size(p1); for i=(n(1)/2)+1:n(1) k = randi(n(2) 1); x = p1(randi(n(1)/2),:); y = p1(randi(n(1)/2),:); p1(i,:) = [x(1:k) y(k+1:)]; p2 = p1; Neste caso, escolhe-se aleatoriamente um pivô (k) e dois indivíduos pais (x e y), após isso, gera-se um novo indivíduo composto pelos genes de x até o pivô e os genes de y após o pivô. O processo é repetido até a população voltar ao tamanho convencional. Mutação Um processo que acontece com probabilidade baixa é a mutação,que consiste em mudanças aleatórias de genes em alguns indivíduos da população. function [ p2 ] = mutacao( p1 ) n = size(p1); for i=1:n(1) if rand() < 0.01 k = randi(n(2)); p1(i,k) = 100*rand() 50; p2 = p1; A função mutacao consiste em passar em todos os indivíduos da população e modificar aleatoriamente um gene k com uma probabilidade baixa (1%). Algoritmo Principal O corpo principal de um Algoritmo Genético consiste em, repetidas vezes, chamar as funções desenvolvidas. Para isso foi criado o script abaixo: clc n = 100; m = 4; p = 100*rand(n,m) 50; while 1 p = selecao(p);

40 experimentos com matlab fitness(p(1,:)) if fitness(p(1,:)) < 1e 3 break; p = crossover(p); p = mutacao(p); p(1,:) fitness(p(1,:)) Como pode ser observado, continuamos criando novas gerações até que o valor da função fitness seja inferior a 10 3. Executando o algoritmo, podemos encontrar diversas respostas, dado a natureza aleatória da solução. Em uma execução, foi obtido o seguinte resultado: [28.2097 32.1328 21.5928 0.3204] Podemos verificar a solução com o seguinte cálculo: sum([28.2097 32.1328 21.5928 0.3204].*[1 2 3 4]) Que resulta em: ans = 30.0041 Indicando que o algoritmo foi capaz de resolver o problema de otimização. Exercícios Os exercícios devem ser enviados por e-mail em um documento pdf com o código utilizado em cada exercício e uma análise escrita de cada solução 1. Existem diversas formas de implementar mutações nos indivíduos e uma delas é trocar a posição de dois genes. (a) Implemente uma função que implemente a mutação trocando o valore referente a dois genes escolhidos aleatoriamente de um indivíduo. (b) Modifique a função mutacao para que, caso a mutação seja aplicada, com uma probabilidade de 50% aplique uma mudança aleatória em um gene (como feito no guia) e com probabilidade de 50% aplique a troca de genes (como feito na letra anterior).

algoritmos genéticos 41 2. Um problema muito comum de otimização combinatória é o chamado Problema das 8 Rainhas. Ele trata de um tabuleiro de xadrez (8 8) onde deseja-se colocar 8 rainhas de tal forma que uma rainha não pode capturar outra rainha. As rainhas podem se mover qualquer número de casas na horizontal, na vertical e nas diagonais. (a) Em geral as soluções do problema das 8 rainhas são permutações do vetor [1, 2, 3, 4, 5, 6, 7, 8]. Porque? (b) Usualmente, a operação de crossover convencional não é interessante no caso do problema das 8 rainhas. Porque? (c) Modifique os algoritmos desenvolvidos na aula a fim de resolver o problema das 8 rainhas e encontre uma solução.