Inteligência Artificial I

Slides:



Advertisements
Apresentações semelhantes
Inteligência Artificial
Advertisements

Unidade VII Algoritmos Genéticos
Algoritmos Genéticos Teresa B. Ludermir.
Algoritmos Genéticos Seminário de MAC5758
Busca Informada Parte 3 – Algoritmos Genéticos
Algoritmos Genéticos Adriano Joaquim de O Cruz ©2003 NCE/UFRJ
Algoritmos Genéticos Alex F. V. Machado. Algoritmos Genéticos Quanto melhor um indivíduo se adaptar ao seu meio ambiente, maior será sua chance de sobreviver.
Algoritmos Genéticos Problema das 8 Rainhas Algoritmo Genético
Fundamentos dos Algoritmos Genéticos Alex F. V. Machado.
Fundamentos dos Algoritmos Genéticos Alex F. V. Machado.
Algoritmos Genéticos Alex F. V. Machado. Algoritmos Genéticos Quanto melhor um indivíduo se adaptar ao seu meio ambiente, maior será sua chance de sobreviver.
Inteligência Artificial I
Computação Evolucionária
GRASP Greedy Randomized Adaptative Search Procedure
Adriano Joaquim de O Cruz
Dárlinton B. Feres Carvalho
Algoritmos Genéticos Marcone Jamilson Freitas Souza
Medida do Tempo de Execução de um Programa
Computação Evolutiva: Programação Genética
Computação Evolutiva: Estratégias Evolutivas
Otimização de Funções Contínuas via Algoritmos Genéticos Adaptado do trabalho realizado por: Frederico Heitor Mônica do Amaral.
Otimização de Funções Contínuas via Algoritmos Genéticos
Inteligência Artificial
Algoritmo Genético.
Algoritmos Genéticos Prof. Luis Otavio Alvares II/UFRGS
Algoritmos Genéticos Rômulo Ferreira Douro.
Capítulo 3 - Russell e Norvig
Apresentação Introdução à Programação Genética Título :
Algoritmos Genéticos – Capítulo 11
Algoritmos Genéticos - Capítulo 10 Representação Numérica
SIMULAÇÃO EM COMPUTADOR: O PENSAMENTO COMO PROCESSAMENTO DE INFORMÇÕES
Inteligência Artificial
INF 1771 – Inteligência Artificial
Métodos Populacionais
Problemas Numéricos com Representação por Números Reais
Buscas em Grafos Prof. André Renato 1º Semestre/2012
Controle de parâmetros em algoritmos evolucionários
A Framework for Robots Development and Programming Based on Genetic Algorithms Palmeira P.F.M Silvino J.S. de Melo J.C.D DEE-UFMG DELT-UFMG.
T ÓPICOS DE I.A. Métodos de Busca Busca em Espaços de Estado Prof. Mário Dantas.
Inteligência Artificial
Otimização por Colônia de Formigas (ACO)
Inteligência Artificial I
Métodos Populacionais
Sistemas Inteligentes
Anne Magály de PaulaCanuto DIMAp/UFRN
Algoritmos Evolutivos Algoritmos Genéticos Introdução
Tópicos Avançados em Inteligência Artificial
Algoritmos Genéticos Ricardo Prudêncio.
INF 1771 – Inteligência Artificial
PROBLEMA DO EMPACOTAMENTO
O PROBLEMA DE SCHEDULING EM JOB-SHOP
Inteligência Artificial
Provas Datas: – P1 : 18/09/2014 – P2: 18/11/2014 – Exame : 09/12/2014.
Resolução de Problemas de Busca
Artigo: Berth allocation planning in the public berth system by genetic algorithms Akio Imai, Etsuko Nishimura, Stratos Papadimitriou, Heurística.
Resolução de problemas por meio de busca
Inteligência Artificial I
Optimização Os problemas de optimização têm como objetivo maximizar ou minimizar uma função definida sobre um certo domínio Optimizar (max ou min)
Inteligência Artificial I
Algoritmos Genéticos Ricardo Prudêncio.
Inteligência Artificial
Computação Evolutiva Nome dado ao estudo de algoritmos cuja inspiração é o processo de evolução natural das espécies. Origem: trabalho de um pesquisador.
Algoritmos Genéticos ÝIntrodução ÝHistórico ÝAlgoritmo Genético Básico: 3Representação de um indivíduo 3Função de aptidão 3Operadores genéticos 3Critério.
Algoritmos Genéticos Uma visão geral do método Cláudio M. N. A. Pereira.
Taís Sineiro Herig Laboratório de Genômica e Expressão / UNICAMP
1 Algoritmos Genéticos em Otimização de Planejamento l Planejamento ocorre em todas as atividades e envolve: PLANEJAMENTO Recursos Tarefas Tempo Objetivos.
Métodos Populacionais. Mantém um conjunto de soluções candidatas e não só uma solução Cada solução será modificada e avaliada Hill-Climbing paralelos.
1 Problemas Numéricos com Representação por Números Reais Prof. Marco Aurélio C. Pacheco.
Universidade do Sul de Santa Catarina Ciência da Computação Técnicas de Inteligência Artificial Aula 10 Algoritmos Genéticos Max Pereira.
Algoritmos com matrizes e vetores
Transcrição da apresentação:

Inteligência Artificial I Universidade Federal de Campina Grande Departamento de Sistemas e Computação Curso de Bacharelado em Ciência da Computação Inteligência Artificial I Resolução de Problemas (Parte VI) Informações Adicionais Prof.a Joseana Macêdo Fechine joseana@dsc.ufcg.edu.br Carga Horária: 60 horas Figura: Capa do Livro Hamburger, H., Richards, D. Logic and Language Models for Computer Science, Prentice Hall.

Em Busca de Soluções Tópico Ilustrações – Algoritmos de Busca Local Algoritmos Genéticos

Algoritmos Genéticos

Algoritmos Genéticos Seleção: escolhemos os indivíduos que participarão do processo reprodutório Avaliação : Aplicamos a função de avaliação a cada um dos indivíduos desta geração Operadores genéticos: Aplicamos os operadores de recombinação e mutação aos indivíduos escolhidos para “pais” Satisfizemos o critério de parada ? (por nº de gerações ou por qua- lidade das soluções) Não Fim Sim Módulo de população : definimos a nova população a partir da geração existente e dos filhos gerados Filhos gerados sobrevivem e são copiados sobre seus pais Toda a antiga geração de pais Cortes a serem efetuados : Filho 1 : Filho 2 : Fonte:http://rico_linden.tripod.com/GA/

Algoritmos Genéticos Esboço do Algoritmo Genético [Início] Geração aleatória de uma população de n cromossomos. [Adaptação] Verificar a função objetivo f(x) de cada cromossomo x. [População] Cria-se uma nova população pela repetição a seguir: [Seleção] Selecione um par de cromossomos da população de acordo com a adaptação de cada um (os mais bem adaptados tem maior chance de serem escolhidos) [Crossover] Produza dois descendentes (filhos) realizando cruzamento com os cromossomos dos pais. O ponto para a realização do cruzamento deve ser aleatório. [Mutação] Com uma certa probabilidade, o descendente sofre mutação em cada posição no cromossomo. [Aceitação] Coloque os descendentes em uma nova população, juntamente com a melhor solução da geração velha.

Algoritmos Genéticos Esboço do Algoritmo Genético [Troca] Substitua a população velha pela nova. [Teste] Se a condição de finalização é satisfeita, pare, e retorne a melhor solução da população atua. [Adaptação] [Laço] Volte ao passo 1

Algoritmos Genéticos Assim como na natureza, a informação deve ser codificada nos cromossomos (ou genomas) A reprodução, que no caso dos GA, é equivalente à reprodução sexuada, se encarregará de fazer com que a população evolua. A mutação cria diversidade, mudando aleatoriamente gens dentro de indivíduos. A reprodução e a mutação são aplicadas em indivíduos selecionados dentro da população.

Algoritmos Genéticos Questões importantes Como criar cromossomos e qual tipo de codificação usar? É a primeira pergunta que deve ser feita ao resolver um problema com AG. A codificação dependerá fortemente do problema. Como escolher os pais para a realização do crossover? A geração de uma população a partir de duas soluções pode causar a perda da melhor solução. O que fazer?

Algoritmos Genéticos Representação “Cromossomial” Cada pedaço indivisível desta representação: gene. A representação cromossomial é completamente arbitrária. É interessante apenas que algumas regras gerais sejam seguidas: A representação deve ser a mais simples possível; Se houver soluções proibidas ao problema, então elas não devem ter uma representação; Se o problema impuser condições de algum tipo, estas devem estar implícitas na representação.

Algoritmos Genéticos Terminologia Linguagem natural GA cromossomo indivíduo,string, cromossomo, árvore gene característica alelo valor locus posição genótipo estrutura fenótipo conjunto de parâmetros

Algoritmos Genéticos Codificação binária É a mais comum devido a sua simplicidade Cada cromossomo é uma string de bits – 0 ou 1 Crom: A = 1 0 1 1 0 0 1 0 1 1 Crom: B = 1 1 1 1 1 1 0 0 0 0 Exemplo de uso: problema da mochila O problema: É dada uma lista de coisas com preços e tamanhos. É fornecido o valor da capacidade da mochila. Escolha as coisas de forma a maximizar o valor daquilo que cabe dentro da mochila, sem ultrapassar sua capacidade. Codificação: Cada bit é usado para dizer se a coisa correspondente está ou não na mochila.

Algoritmos Genéticos Codificação por permutação Mais usado em problemas de ordenação Cada cromossomo é uma string de números que representa uma posição numa seqüência Crom A: 1  5  3  2  6  4  7  9  8 Crom B: 8  5  6  7  2  3  1  4  9 Exemplo de uso: problema do caixeiro viajante O problema: São dadas cidades e as distâncias entre elas. O caixeiro viajante tem que visitar todas elas, sem viajar mais do que o necessário. A solução do problema consiste em encontrar a seqüência de cidades em que as viagens devem ser feitas de forma que a distância percorrida seja a mínima possível. Codificação: os cromossomos descrevem a ordem em que o caixeiro irá visitar as cidades.

Algoritmos Genéticos Codificação por valor Usado em problemas nos quais valores mais complicados são necessários Cada cromossomo é uma seqüência de valores Crom A: 1.2324 5.3243 0.4556 2.3293 2.4545 Crom B: ABDJEIFJDHDIERJFDLDFLFEGT Crom C: (back), (back), (right), (forward), (left) Exemplo de uso: dada uma estrutura, encontrar pesos para uma rede neural. O problema: É dada uma rede neural com arquitetura definida. Encontre os pesos entre os neurônios da rede de forma a obter a resposta desejada da rede. Codificação: Valores reais num cromossomo representam pesos em uma rede neural.

Algoritmos Genéticos Função de Avaliação É a maneira utilizada pelos AG para determinar a qualidade de um indivíduo como solução do problema em questão. É uma nota dada ao indivíduo na resolução do problema. Será usada para a escolha dos indivíduos pelo módulo de seleção de pais, sendo a forma de diferenciar entre as boas e as más soluções para um problema. Dada a generalidade dos AG, a função de avaliação, em muitos casos, é a única ligação verdadeira do programa com o problema real.

Algoritmos Genéticos Função de Avaliação Também chamada de função de custo (função de aptidão). Calcula então um valor numérico que reflete quão bons os parâmetros representados no cromossomo resolvem o problema. Usa todos os valores armazenados no cromossomo (os parâmetros) e retorna um valor numérico, cujo significado é uma métrica da qualidade da solução obtida usando-se aqueles parâmetros. A função de avaliação deve ser tal que se o cromossomo c1 representa uma solução melhor do que o cromossomo c2, então a avaliação de c1 deve ser maior do que a avaliação de c2.

Algoritmos Genéticos Seleção dos Pais O método de seleção de pais deve simular o mecanismo de seleção natural: Pais mais capazes geram mais filhos; Pais menos aptos também podem gerar descendentes. Temos que privilegiar os indivíduos com função de avaliação alta, sem desprezar completamente aqueles indivíduos com função de avaliação extremamente baixa; Até indivíduos com péssima avaliação podem ter características genéticas que sejam favoráveis à criação de um indivíduo ótimo. Estas características podem não estar presentes em nenhum outro cromossomo.

Algoritmos Genéticos Seleção dos Pais Método simples e muito adotado: método da roleta viciada. Criamos uma roleta (virtual) na qual cada cromossomo recebe um pedaço proporcional à sua avaliação (a soma dos pedaços não pode superar 100%). Rodamos a roleta. O selecionado será o indivíduo sobre o qual ela parar.

Seleção de Pais Exemplo: Pedaço da roleta (%) Pedaço da roleta (º) 1.61 5.8 14.51 52.2 25.81 92.9 58.07 209.1 100.00 360.0 Indivíduo Avaliação 0001 1 0011 9 0100 16 0110 36 Total 62

Algoritmos Genéticos Seleção dos Pais Exemplo (cont.) – Graficamente, temos:

Algoritmos Genéticos Operadores de Crossover e Mutação Iremos trabalhar agora com a versão mais simples dos operadores genéticos. Nesta versão, eles atuam em conjunto, como se fossem um só.

Algoritmos Genéticos Operador de Crossover Vamos começar com o operador de crossover mais simples, chamado de operador de crossover de um ponto. Depois de selecionados dois pais pelo módulo de seleção de pais, um ponto de corte é selecionado. Um ponto de corte constitui uma posição entre dois genes de um cromossomo. Cada indivíduo de n genes contem n-1 pontos de corte.

Algoritmos Genéticos Operador de Crossover gen Pontos de Corte: 1 2 3 4

Algoritmos Genéticos Operador de Crossover Depois de sorteado o ponto de corte, separa-se os pais em duas partes: uma à esquerda do ponto de corte e outra à direita. É importante notar que: não necessariamente estas duas partes têm o mesmo tamanho. Primeiro filho: composto através da concatenação da parte esquerda do primeiro pai com a parte direita do segundo pai. Segundo filho: composto através da concatenação das partes que sobraram (a metade esquerda do segundo pai com a metade à direita do primeiro pai).

Algoritmos Genéticos Operador de Crossover A operação deve ser realizada sobre os cromossomos dos pais para a criação de descendentes Crom1: 11010 | 00100110110 Crom2: 11011 | 11000011110 Filho 1: 11010 | 11000011110 Filho 2: 11011 | 00100110110

Um exemplo de crossover de um ponto. Algoritmos Genéticos Operador de Crossover Outro exemplo: Um exemplo de crossover de um ponto. (a) dois indivíduos são escolhidos. (b) um ponto (4) de crossover é escolhido. (c) são recombinadas as características, gerando dois novos indivíduos. Fonte: http://www.icmc.usp.br/~andre/research/genetic/index.htm

Algoritmos Genéticos Operador de Mutação Depois de compostos os filhos, entra em ação o operador de mutação. Este opera da seguinte forma: Ele tem associada uma probabilidade extremamente baixa (da ordem de 0,5%); Sortea-se um número entre 0 e 1. Se ele for menor do que a probabilidade pré-determinada então o operador atua sobre o gene em questão, alterando-lhe o valor aleatoriamente. Repete-se então o processo para todos os gens componentes dos dois filhos.

Algoritmos Genéticos Operador de Mutação O objetivo da mutação é evitar que as soluções na população fiquem apenas num mínimo local Filho1 antes : 1101111000011110 Filho2 antes : 1101100100110110 Filho1 depois : 1100111000011110 Filho2 depois : 1101101100110100 Outro exemplo: Fonte: http://www.icmc.usp.br/~andre/research/genetic/index.htm

Operadores em Conjunto Algoritmos Genéticos (a) (b) Pai 1 Pai 1 Selecionamos um ponto de corte Operadores em Conjunto Pai 2 Pai 2 Depois do operador de crossover Filho 1 Filho 1 Depois do operador de mutação Filho 2 Gen alterado pela mutação Filho 2 (d) (c)

Algoritmos Genéticos Módulo da População Responsável pelo controle da população. Por simplicidade, população não pode crescer permite que armazenemos a população em um vetor de tamanho constante. Pais têm que ser substituídos conforme os filhos vão nascendo Pode parecer estranho, visto que estamos acostumados a ver a população humana sempre crescendo. Entretanto, simula bem ambientes de recursos limitados.

Algoritmos Genéticos Módulo da População Forma simples de obtenção: A cada atuação do operador genético são criados dois filhos. Estes vão sendo armazenados em um espaço auxiliar até que o número de filhos criado seja igual ao tamanho da população. Neste ponto o módulo de população entra em ação. Todos os pais são então descartados e os filhos copiados para cima de suas posições de memória, indo tornar-se os pais da nova geração.

Algoritmos Genéticos Aspectos Práticos A implementação prática de um AG requer atenção para várias questões: 1. Escolha da Função de Avaliação/Aptidão 2. Problemas de convergência 3. Escolha da Técnica de Seleção 4. Lacuna entre gerações (generation gap)

Algoritmos Genéticos Algoritmo Genético Aplicado ao Caixeiro Viajante 1. Uma população inicial é gerada aleatoriamente. Cada indivíduo da população é uma rota. Lembrando que as cidades não podem ser repetidas. 2. Cada indivíduo é avaliado definindo seu fitness (valor de adequação) que é inversamente proporcional a distância total da rota. 3. Um número aleatório de indivíduos (pode ser predefinido) é selecionado na roleta. 4. Alguns dos indivíduos selecionados passam por alterações, através dos operadores genéticos (crossover e mutação). 5. Uma nova população é gerada e repete-se os passos do 2 ao 5 até que um número pré-definido de gerações seja alcançado.

Algoritmos Genéticos http://lsin.unisantos.br/lvcon/experimento?id=3 Exemplo de simulação: solução para o Problema do Caixeiro Viajante (PCV) http://lsin.unisantos.br/lvcon/experimento?id=3