A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Inteligência Artificial I

Apresentações semelhantes


Apresentação em tema: "Inteligência Artificial I"— Transcrição da apresentação:

1 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 Carga Horária: 60 horas Figura: Capa do Livro Hamburger, H., Richards, D. Logic and Language Models for Computer Science, Prentice Hall.

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

3 Algoritmos Genéticos

4 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:

5 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.

6 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

7 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.

8 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?

9 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.

10 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

11 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 = Crom: B = 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.

12 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.

13 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:  0.4556  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.

14 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.

15 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.

16 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.

17 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.

18 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

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

20 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ó.

21 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.

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

23 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).

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

25 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:

26 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.

27 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 : Filho2 antes : Filho1 depois : Filho2 depois : Outro exemplo: Fonte:

28 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)

29 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.

30 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.

31 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)

32 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.

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


Carregar ppt "Inteligência Artificial I"

Apresentações semelhantes


Anúncios Google