Exemplo: 4 Rainhas como um PSR Grafo de restriçõespauloac/ctc15/ctc15_cap3_6s.pdf · Exemplo:...

11
1 Inteligência Artificial CTC-15 Problema de Satisfação de Restrições Exemplos de PSR (CSP, Constraint Satisfaction Problem) Busca genérica aplicada a PSRs Backtracking Verificação forward Heurísticas para PSRs Inteligência Artificial CTC-15 Problema de Satisfação de Restrições Inteligência Artificial CTC-15 Exemplo: 4 Rainhas como um PSR Inteligência Artificial CTC-15 Grafo de restrições Inteligência Artificial CTC-15 Exemplo: Coloramento de Mapa Inteligência Artificial CTC-15 Exemplos de PSRs no mundo real Problemas de indicação Exemplo: quem ensina que curso, que tripulação faz qual vôo Problemas de organização Qual curso é oferecido quando e onde? Configuração de hardware Problemas de fluxo de transporte Planificação em fábricas Alocação de freqüências em áreas, etc. Observe que muitos problemas reais envolvem variáveis reais

Transcript of Exemplo: 4 Rainhas como um PSR Grafo de restriçõespauloac/ctc15/ctc15_cap3_6s.pdf · Exemplo:...

Page 1: Exemplo: 4 Rainhas como um PSR Grafo de restriçõespauloac/ctc15/ctc15_cap3_6s.pdf · Exemplo: Coloramento de Mapa ... número de valores no domínio ... Se a probabilidade de mutação

1

Inteligência Artificial CTC-15

Problema de Satisfação de Restrições

� Exemplos de PSR (CSP, Constraint Satisfaction Problem)

� Busca genérica aplicada a PSRs

� Backtracking

� Verificação forward

� Heurísticas para PSRs

Inteligência Artificial CTC-15

Problema de Satisfação de Restrições

Inteligência Artificial CTC-15

Exemplo: 4 Rainhas como um PSR

Inteligência Artificial CTC-15

Grafo de restrições

Inteligência Artificial CTC-15

Exemplo: Coloramento de Mapa

Inteligência Artificial CTC-15

Exemplos de PSRs no mundo real

� Problemas de indicação� Exemplo: quem ensina que curso, que tripulação faz qual vôo

� Problemas de organização� Qual curso é oferecido quando e onde?

� Configuração de hardware

� Problemas de fluxo de transporte

� Planificação em fábricas

� Alocação de freqüências em áreas, etc.

� Observe que muitos problemas reais envolvem variáveis reais

Page 2: Exemplo: 4 Rainhas como um PSR Grafo de restriçõespauloac/ctc15/ctc15_cap3_6s.pdf · Exemplo: Coloramento de Mapa ... número de valores no domínio ... Se a probabilidade de mutação

2

Inteligência Artificial CTC-15

Aplicação da Busca Genérica

� Iniciaremos com um método bastante simples (ingênuo) e depois aperfeiçoaremos

� Estados são definidos pelos valores nomeados até o momento

� Estado inicial: nenhuma variável nomeada

� Operadores: indicar um valor a uma variável não nomeada

� Teste de objetivos: todas as variáveis nomeadas, nenhuma restrição violada

� Observe que isto ocorre para todos os PSRs.

Inteligência Artificial CTC-15

Implementação

Inteligência Artificial CTC-15

Busca genérica no coloramento de

gráficos

Inteligência Artificial CTC-15

Avaliação da Solução Ingênua ?

Inteligência Artificial CTC-15

Avaliação da Solução Ingênua

Inteligência Artificial CTC-15

Solução Melhorada: Backtracking

Page 3: Exemplo: 4 Rainhas como um PSR Grafo de restriçõespauloac/ctc15/ctc15_cap3_6s.pdf · Exemplo: Coloramento de Mapa ... número de valores no domínio ... Se a probabilidade de mutação

3

Inteligência Artificial CTC-15

Coloração de Grafos : Austrália

Inteligência Artificial CTC-15

Backtracking no Problema de Coloração

de Grafos

Inteligência Artificial CTC-15

Algoritmo Backtracking

Inteligência Artificial CTC-15

Ordenação de Variáveis

� Qual variável deve ser escolhida para atribuição?

� Heurística de Grau: Selecionar varíavel com maior número de restrições

� VRM: Valores restantes mínimos selecionar variável com menor número de valores no domínio

Inteligência Artificial CTC-15

Verificação Forward (Verificação Prévia)

Inteligência Artificial CTC-15

Simulação Verificação Forward - 1

Page 4: Exemplo: 4 Rainhas como um PSR Grafo de restriçõespauloac/ctc15/ctc15_cap3_6s.pdf · Exemplo: Coloramento de Mapa ... número de valores no domínio ... Se a probabilidade de mutação

4

Inteligência Artificial CTC-15

Simulação Verificação Forward - 2

Inteligência Artificial CTC-15

Simulação Verificação Forward - 3

Inteligência Artificial CTC-15

Heurísticas para PSRs

Inteligência Artificial CTC-15

Algoritmos Iterativos para PSRs

� Idéia: Aceitar estados que não satisfazem a todas as restrições e procurar mudar o valor das variáveis de modo a alcançar estado que satisfaça às restrições

Inteligência Artificial CTC-15

Exemplo: 4 Rainhas

� Estados: 4 rainhas em 4 colunas (44 = 256 estados)

� Operadores: Mover rainha em coluna

� Teste de objetivo: Nenhum ataque

� Avaliação: h(n) = número de ataques

Inteligência Artificial CTC-15

Heurística de Mínimos Conflitos

� Dado estado inicial aleatório, pode-se resolver o problema das n-rainhas em tempo quase constante para n arbitrário, com alta probabilidade (exemplo, n=10.000.000)

� O mesmo parece ser verdade para qualquer PSR aleatoriamente gerado exceto em uma faixa estreita de relação R = (Número de restrições)/(Número de variáveis)

Page 5: Exemplo: 4 Rainhas como um PSR Grafo de restriçõespauloac/ctc15/ctc15_cap3_6s.pdf · Exemplo: Coloramento de Mapa ... número de valores no domínio ... Se a probabilidade de mutação

5

Inteligência Artificial CTC-15

Algoritmo de Mínimos Conflitos

Inteligência Artificial CTC-15

Resumo

� PSRs constituem um tipo especial de problemas: estados definidos por valores de um conjunto fixo de variávei. E e teste de objetivo definido por restrições nos valores das variáveis

� Backtracking = busca em profundidade com� 1. Ordem fixa de variáveis

� 2. Apenas sucessores que atendam as restrições

� Verificação Forward previne nomeações que levem a fracasso posterior

� Ordenamento de variáveis e heurísticas de seleção de valores ajudam significativamente

� Conflitos mínimos iterativo é normalmente efetivo na prática

Inteligência Artificial CTC-15

Busca Competitiva

� Jogos com adversários� Formulação simples (ações bem definidas)

� Totalmente observável (geralmente)

� “Sinônimo” de inteligência� Primeiro algoritmo para jogar Xadrez criado em 1950 (Claude

Shannon)

� Problemas bastante complexos:� Tamanho + limitação (aprox. 35100 nós em jogos de xadrez)

� Incerteza devido as ações do oponente

� Agente deve agir antes de completar a busca totalmente

Inteligência Artificial CTC-15

Busca Competitiva

Inteligência Artificial CTC-15

Jogo da velha - Minimax

Inteligência Artificial CTC-15

Minimax

Page 6: Exemplo: 4 Rainhas como um PSR Grafo de restriçõespauloac/ctc15/ctc15_cap3_6s.pdf · Exemplo: Coloramento de Mapa ... número de valores no domínio ... Se a probabilidade de mutação

6

Inteligência Artificial CTC-15

Problemas do Minimax

Inteligência Artificial CTC-15

Função Heurística

Inteligência Artificial CTC-15

Aplicação do Minimax

Inteligência Artificial CTC-15

Poda Alpha-Beta

Inteligência Artificial CTC-15

Poda Alpha-Beta - Exemplo

Inteligência Artificial CTC-15

Poda Alpha-Beta – Continuação do Exemplo

Page 7: Exemplo: 4 Rainhas como um PSR Grafo de restriçõespauloac/ctc15/ctc15_cap3_6s.pdf · Exemplo: Coloramento de Mapa ... número de valores no domínio ... Se a probabilidade de mutação

7

Inteligência Artificial CTC-15

Poda Alpha-Beta – Continuação do Exemplo

Inteligência Artificial CTC-15

Poda Alpha-Beta – Continuação do

Exemplo

Inteligência Artificial CTC-15

Exercício

Inteligência Artificial CTC-15

Inteligência Artificial CTC-15

Nem todos os jogos são

determinísticos…

� Como tratar problemas onde a situação do ambiente não depende exclusivamente das decisões dos agentes? Ex. Gamão, poquêr, black jack, etc. …

� Pode-se modelar o fator aleatório como um terceiro jogador..Por exemplo, em jogos com dados, os dados seriam um terceiro jogador que age entre MAX e MIN…Veja um exemplo:

Inteligência Artificial CTC-15

Algoritmo Expectminimax

Page 8: Exemplo: 4 Rainhas como um PSR Grafo de restriçõespauloac/ctc15/ctc15_cap3_6s.pdf · Exemplo: Coloramento de Mapa ... número de valores no domínio ... Se a probabilidade de mutação

8

Inteligência Artificial CTC-15

Valores exatos das utilidades importam

� O comportamento não é mais preservado se utilizarmos um escalonamento que apenas preserve a ordem das utilidades dos nós folhas

� Para tanto, deve-se utilizar uma transformação linear positiva (Teoria da decisão)

Inteligência Artificial CTC-15

Algoritmos Expectminimax

� A introdução do elemento ao acaso, faz aumentar enormemente a árvore de busca e o tempo para analisá-la

� A poda alfa-beta pode ser usada, porém é muito menos efetiva

� Jogos com incerteza são muitas vezes tratados com outras técnicas tais como Teoria da decisão, Modelo decisório de Markov, e redes bayesianas que serão estudadas no segundo bimestre

Inteligência Artificial CTC-15

Busca e Otimização

� Toda tarefa de busca e otimização possui vários componentes, entre eles:� espaço de busca, onde são consideradas todas as possibilidades

de solução de um determinado problema e

� função de avaliação (ou função de custo), uma maneira de avaliar os membros do espaço de busca.

� Existem muitos métodos de busca e funções de avaliação.

� As técnicas de busca e otimização tradicionais iniciam-se com um único candidato que, iterativamente, é manipulado utilizando algumas heurísticas (estáticas) diretamente associadas ao problema a ser solucionado

Inteligência Artificial CTC-15

Computação Evolucionária

� Inspira-se na Evolução (biológica) para criar métodos de solução de problemas de busca� Evolução:

� Seleciona indíviduos mais aptos

� Indíviduos mais aptos tem maior probabilidade de sobrevier e procriar

� Indivíduos menos aptos tem maior probabilidade de morrerem antes de procriar

Inteligência Artificial CTC-15

Algoritmos Genéticos

� As técnicas de computação evolucionária operam sobre uma população de candidatos em paralelo,

� Algoritmos Genétiocs fazem busca em diferentes áreas do espaço de solução, alocando um número de membros para a busca em várias regiões.

� Os Algoritmos Genéticos (AGs) diferem dos métodos tradicionais de busca e otimização, principalmente em cinco aspectos:

1. Trabalham com uma codificação do conjunto de parâmetros e

não com os próprios parâmetros.

2. Trabalham com uma população e não com um só elemento.

3. Utilizam informações de custo ou recompensa.

4. Utilizam regras de transição probabilísticas e não

determinísticas.

5. São baseados na técnica gerar-e-testar

Inteligência Artificial CTC-15

Modelagem de Algoritmos Genéricos

� A modelagem de um problema através de Algoritmos genéticos é baseada em:� Codificação da solução

� Função de avaliação

� Função de aptidão (fitness)

Page 9: Exemplo: 4 Rainhas como um PSR Grafo de restriçõespauloac/ctc15/ctc15_cap3_6s.pdf · Exemplo: Coloramento de Mapa ... número de valores no domínio ... Se a probabilidade de mutação

9

Inteligência Artificial CTC-15

Função de Avaliação

� Função de avaliação:� Prover uma medida de desempenho com respeito a um

conjunto particular de parâmetros.

� Deve ser relativamente rápida, uma vez que, em cada iteração, cada membro da população é avaliado e recebe um valor de aptidão.

� A avaliação de um membro (cromossomo) representando um conjunto particular de parâmetros é independente da avaliação de qualquer outro membro

Inteligência Artificial CTC-15

Função de Aptidão

� Função de aptidão:� Transforma a medida da função de avaliação em alocação de

oportunidades reprodutivas.

� É sempre definida de acordo com outros membros da atual população.

� No algoritmo genético canônico, aptidão é definida como fix=f(x)/f ’ onde f(x) é a avaliação associada ao cromossomo x e f ’ é a soma da avaliação (ou média) de todos os membros da população.

� A aptidão pode também ser associada à classificação de um cromossomo na população ou outras medidas.

Inteligência Artificial CTC-15

Codificação

� O cromossomo deve, de algum modo, conter informação sobre a solução a qual representa.

� O modo mais usual de codificação é a seqüência binária. O cromossomo, então deve ser algo como:

� Cada bit na seqüência (gene) pode representar uma característica da solução ou a série como um todo pode representar um número.

Inteligência Artificial CTC-15

Pseudocódigo de um AG

[Início] Gerar uma população aleatória com n cromossomos

Repetir até obter a solução (ou terminar)

1. [Avaliação] Determinar f(x) e fix de cada cromossomo x na população.

2. [Seleção] Selecionar elementos para criar uma população intermediária //Quanto melhor o fix, maior chance de ser selecionado); uma porcentagem dos mais adaptados é mantida, enquanto os outros são descartados (mortos).

3. [Recombinação (Crossover)] Com uma probabilidade de recombinação, realizar uma recombinação sobre os pais para formar uma nova prole

//Se não ocorrer recombinação, a prole é uma cópia exata dos pais.

4. [Mutação] Com uma probabilidade de mutação, realizar mutação sobre a nova prole em cada gene (posição no cromossomo).

5. [Atualização da população] Usar a nova população gerada para repetir os passos 1-5 do algoritmo

Retornar a melhor solução na população atual.

Inteligência Artificial CTC-15

Seleção através da Roleta

� O pais são selecionados de acordo com sua função de aptidão.

� Quanto melhor os cromossomos são, maior a chance de serem selecionados. Imagine uma roleta onde são colocados todos os cromossomos da população, o espaço ocupado depende do valor da sua função de aptidão, como mostra a figura:

Inteligência Artificial CTC-15

Elitismo

� Elitismo é o nome do método, aliado à seleção, que primeiro copia o melhor cromossomo (ou alguns melhores cromossomos) para a nova população. O processo restante é feito do modo clássico.

� O elitismo pode aumentar rapidamente o desempenho do AG porque evita que se perca a melhor solução encontrada até o momento.

Page 10: Exemplo: 4 Rainhas como um PSR Grafo de restriçõespauloac/ctc15/ctc15_cap3_6s.pdf · Exemplo: Coloramento de Mapa ... número de valores no domínio ... Se a probabilidade de mutação

10

Inteligência Artificial CTC-15

Recombinação (Crossover)

� Seleciona genes a partir dos cromossomos pais e cria uma nova prole.

� O modo mais simples: 1. escolher aleatoriamente algum ponto (locus entre genes) no cromossomo, 2. tudo que estiver antes desse ponto será copiado do primeiro pai, 3. tudo que estiver depois será copiado do segundo pai.

� Existem outros meios de realizar recombinação, por exemplo, podemos escolher mais pontos de recombinação.

� Recombinações desenvolvidas para problemas específicos podem melhorar o desempenho do AG.

Inteligência Artificial CTC-15

Mutações

� Mutação permite evitar que a população fique presa em um mínimo (máximo) local.

� A mutação altera aleatoriamente a nova prole. Na codificação binária, podemos mudar alguns bits de 1 para 0 e de 0 para 1:

� A mutação depende tanto da codificação como da recombinação.

Inteligência Artificial CTC-15

Parâmetros - 1

� Probabilidade de recombinação: indica o quão freqüente a recombinação é executada.� Se não ocorre recombinação, a prole é a cópia dos pais.

� Se ocorre recombinação, a prole é formada por partes dos pais.

� Se a probabilidade de recombinação é 100%, então toda a prole será formada com recombinação.

� Se for 0%, a nova geração será formada por cópias exatas da população anterior

� A recombinação é realizada com a esperança de que os novos cromossomos tenham partes boas dos cromossomos anteriores e talvez sejam melhores que seus pais. Entretanto é aconselhável deixar parte da população sobreviver na geração seguinte.

Inteligência Artificial CTC-15

Parâmetros - 2

� Probabilidade de mutação: indica o quão freqüente partes dos cromossomos sofrerão mutações.� Se não ocorrer mutação (probabilidade de mutação = 0%), a prole

não sofrerá mudanças após a recombinação.

� Se ocorrer mutação, parte dos cromossomos será alterada.

� Se a probabilidade de mutação for 100%, todos os cromossomos serão alterados.

� A mutação é realizada para prevenir que o AG caia em um extremo local (mínimo ou máximo, depende das funções usadas), porém ela não deve ocorrer com muita freqüência, pois acarretaria em uma busca aleatória no espaço de soluções.

Inteligência Artificial CTC-15

Parâmetros - 3

� Tamanho da população: indica quantos cromossomos existem em uma população (em uma geração).� Se existirem muito poucos cromossomos, o AG terá poucas

possibilidades de realizar a recombinação e apenas uma pequena porção do espaço de estados será explorada.

� Se existirem muitos cromossomos, o AG ficará lento.

� Pesquisas mostram que após algum limite (que depende principalmente da codificação e do problema) não é vantajoso aumentar o tamanho da população pois não tornará o algoritmo mais rápido.

Inteligência Artificial CTC-15

Parâmetros - 4

� Intervalo de Geração. Controla a porcentagem da população que será substituída durante a próxima geração.� Com um valor alto, a maior parte da população será

substituída, mas com valores muito altos pode ocorrer perda de estruturas de alta aptidão.

� Com um valor baixo, o algoritmo pode tornar-se muito lento.

Page 11: Exemplo: 4 Rainhas como um PSR Grafo de restriçõespauloac/ctc15/ctc15_cap3_6s.pdf · Exemplo: Coloramento de Mapa ... número de valores no domínio ... Se a probabilidade de mutação

11

Inteligência Artificial CTC-15

Exemplo: 8 Rainhas

� Codificação

� Cromossomos compostos por 8 números (genes), a posição do gene indica a coluna, o valor do número indica a linha

Inteligência Artificial CTC-15

Exemplo: 8 Rainhas

Inteligência Artificial CTC-15

Exemplo: 8 Rainhas

Inteligência Artificial CTC-15

Recombinação: 8 Rainhas

Inteligência Artificial CTC-15

Exemplo: 8 Rainhas

� Indíviduos mais aptos (maior função de aptidão) tem maiores chances de serem selecionados