Você está na página 1de 65

Problema de Satisfao de Restries

Exemplos de PSR (CSP, Constraint Satisfaction Problem) Busca genrica aplicada a PSRs Backtracking Verificao forward Heursticas para PSRs

Inteligncia Artificial

CTC-15

Problema de Satisfao de Restries

Inteligncia Artificial

CTC-15

Exemplo: 4 Rainhas como um PSR

Inteligncia Artificial

CTC-15

Grafo de restries

Inteligncia Artificial

CTC-15

Exemplo: Coloramento de Mapa

Inteligncia Artificial

CTC-15

Exemplos de PSRs no mundo real


Problemas de indicao
Exemplo: quem ensina que curso, que tripulao faz qual vo

Problemas de organizao
Qual curso oferecido quando e onde? Configurao de hardware

Problemas de fluxo de transporte Planificao em fbricas Alocao de freqncias em reas, etc. Observe que muitos problemas reais envolvem variveis reais
Inteligncia Artificial CTC-15

Aplicao da Busca Genrica


Iniciaremos com um mtodo bastante simples (ingnuo) e depois aperfeioaremos Estados so definidos pelos valores nomeados at o momento Estado inicial: nenhuma varivel nomeada Operadores: indicar um valor a uma varivel no nomeada Teste de objetivos: todas as variveis nomeadas, nenhuma restrio violada Observe que isto ocorre para todos os PSRs.
Inteligncia Artificial CTC-15

Implementao

Inteligncia Artificial

CTC-15

Busca genrica no coloramento de grficos

Inteligncia Artificial

CTC-15

Avaliao da Soluo Ingnua ?

Inteligncia Artificial

CTC-15

Avaliao da Soluo Ingnua

Inteligncia Artificial

CTC-15

Soluo Melhorada: Backtracking

Inteligncia Artificial

CTC-15

Colorao de Grafos : Austrlia

Inteligncia Artificial

CTC-15

Backtracking no Problema de Colorao de Grafos

Inteligncia Artificial

CTC-15

Algoritmo Backtracking

Inteligncia Artificial

CTC-15

Ordenao de Variveis
Qual varivel deve ser escolhida para atribuio?
Heurstica de Grau: Selecionar varavel com maior nmero de restries VRM:Valores restantes mnimos selecionar varivel com menor nmero de valores no domnio

Inteligncia Artificial

CTC-15

Verificao Forward (Verificao Prvia)

Inteligncia Artificial

CTC-15

Simulao Verificao Forward - 1

Inteligncia Artificial

CTC-15

Simulao Verificao Forward - 2

Inteligncia Artificial

CTC-15

Simulao Verificao Forward - 3

Inteligncia Artificial

CTC-15

Heursticas para PSRs

Inteligncia Artificial

CTC-15

Algoritmos Iterativos para PSRs


Idia: Aceitar estados que no satisfazem a todas as restries e procurar mudar o valor das variveis de modo a alcanar estado que satisfaa s restries

Inteligncia 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 Avaliao: h(n) = nmero de ataques

Inteligncia Artificial

CTC-15

Heurstica de Mnimos Conflitos


Dado estado inicial aleatrio, pode-se resolver o problema das n-rainhas em tempo quase constante para n arbitrrio, com alta probabilidade (exemplo, n=10.000.000) O mesmo parece ser verdade para qualquer PSR aleatoriamente gerado exceto em uma faixa estreita de relao R = (Nmero de restries)/(Nmero de variveis)

Inteligncia Artificial

CTC-15

Algoritmo de Mnimos Conflitos

Inteligncia Artificial

CTC-15

Resumo
PSRs constituem um tipo especial de problemas: estados definidos por valores de um conjunto fixo de varivei. E e teste de objetivo definido por restries nos valores das variveis Backtracking = busca em profundidade com
1. Ordem fixa de variveis 2. Apenas sucessores que atendam as restries

Verificao Forward previne nomeaes que levem a fracasso posterior Ordenamento de variveis e heursticas de seleo de valores ajudam significativamente Conflitos mnimos iterativo normalmente efetivo na prtica
Inteligncia Artificial CTC-15

Busca Competitiva
Jogos com adversrios
Formulao simples (aes bem definidas) Totalmente observvel (geralmente) Sinnimo de inteligncia
Primeiro algoritmo para jogar Xadrez criado em 1950 (Claude Shannon)

Problemas bastante complexos:


Tamanho + limitao (aprox. 35100 ns em jogos de xadrez) Incerteza devido as aes do oponente Agente deve agir antes de completar a busca totalmente

Inteligncia Artificial

CTC-15

Busca Competitiva

Inteligncia Artificial

CTC-15

Jogo da velha - Minimax

Inteligncia Artificial

CTC-15

Minimax

Inteligncia Artificial

CTC-15

Problemas do Minimax

Inteligncia Artificial

CTC-15

Funo Heurstica

Inteligncia Artificial

CTC-15

Aplicao do Minimax

Inteligncia Artificial

CTC-15

Poda Alpha-Beta

Inteligncia Artificial

CTC-15

Poda Alpha-Beta - Exemplo

Inteligncia Artificial

CTC-15

Poda Alpha-Beta Continuao do Exemplo

Inteligncia Artificial

CTC-15

Poda Alpha-Beta Continuao do Exemplo

Inteligncia Artificial

CTC-15

Poda Alpha-Beta Continuao do Exemplo

Inteligncia Artificial

CTC-15

Exerccio

Inteligncia Artificial

CTC-15

Inteligncia Artificial

CTC-15

Nem todos os jogos so determinsticos


Como tratar problemas onde a situao do ambiente no depende exclusivamente das decises dos agentes? Ex. Gamo, poqur, black jack, etc. Pode-se modelar o fator aleatrio como um terceiro jogador..Por exemplo, em jogos com dados, os dados seriam um terceiro jogador que age entre MAX e MINVeja um exemplo:

Inteligncia Artificial

CTC-15

Algoritmo Expectminimax

Inteligncia Artificial

CTC-15

Valores exatos das utilidades importam

O comportamento no mais preservado se utilizarmos um escalonamento que apenas preserve a ordem das utilidades dos ns folhas Para tanto, deve-se utilizar uma transformao linear positiva (Teoria da deciso)
Inteligncia Artificial CTC-15

Algoritmos Expectminimax
A introduo do elemento ao acaso, faz aumentar enormemente a rvore de busca e o tempo para analisla A poda alfa-beta pode ser usada, porm muito menos efetiva Jogos com incerteza so muitas vezes tratados com outras tcnicas tais como Teoria da deciso, Modelo decisrio de Markov, e redes bayesianas que sero estudadas no segundo bimestre

Inteligncia Artificial

CTC-15

Busca e Otimizao
Toda tarefa de busca e otimizao possui vrios componentes, entre eles:
espao de busca, onde so consideradas todas as possibilidades de soluo de um determinado problema e funo de avaliao (ou funo de custo), uma maneira de avaliar os membros do espao de busca.

Existem muitos mtodos de busca e funes de avaliao. As tcnicas de busca e otimizao tradicionais iniciam-se com um nico candidato que, iterativamente, manipulado utilizando algumas heursticas (estticas) diretamente associadas ao problema a ser solucionado

Inteligncia Artificial

CTC-15

Computao Evolucionria
Inspira-se na Evoluo (biolgica) para criar mtodos de soluo de problemas de busca
Evoluo:
Seleciona indviduos mais aptos Indviduos mais aptos tem maior probabilidade de sobrevier e procriar Indivduos menos aptos tem maior probabilidade de morrerem antes de procriar

Inteligncia Artificial

CTC-15

Algoritmos Genticos
As tcnicas de computao evolucionria operam sobre uma populao de candidatos em paralelo, Algoritmos Gentiocs fazem busca em diferentes reas do espao de soluo, alocando um nmero de membros para a busca em vrias regies. Os Algoritmos Genticos (AGs) diferem dos mtodos tradicionais de busca e otimizao, principalmente em cinco aspectos:
1. Trabalham com uma codificao do conjunto de parmetros e no com os prprios parmetros. 2. Trabalham com uma populao e no com um s elemento. 3. Utilizam informaes de custo ou recompensa. 4. Utilizam regras de transio probabilsticas e no determinsticas. 5. So baseados na tcnica gerar-e-testar

Inteligncia Artificial

CTC-15

Modelagem de Algoritmos Genricos


A modelagem de um problema atravs de Algoritmos genticos baseada em:
Codificao da soluo Funo de avaliao Funo de aptido (fitness)

Inteligncia Artificial

CTC-15

Funo de Avaliao
Funo de avaliao:
Prover uma medida de desempenho com respeito a um conjunto particular de parmetros. Deve ser relativamente rpida, uma vez que, em cada iterao, cada membro da populao avaliado e recebe um valor de aptido. A avaliao de um membro (cromossomo) representando um conjunto particular de parmetros independente da avaliao de qualquer outro membro

Inteligncia Artificial

CTC-15

Funo de Aptido
Funo de aptido:
Transforma a medida da funo de avaliao em alocao de oportunidades reprodutivas. sempre definida de acordo com outros membros da atual populao.

No algoritmo gentico cannico, aptido definida como fix=f(x)/f onde f(x) a avaliao associada ao cromossomo x e f a soma da avaliao (ou mdia) de todos os membros da populao. A aptido pode tambm ser associada classificao de um cromossomo na populao ou outras medidas.
Inteligncia Artificial CTC-15

Codificao
O cromossomo deve, de algum modo, conter informao sobre a soluo a qual representa. O modo mais usual de codificao a seqncia binria. O cromossomo, ento deve ser algo como:

Cada bit na seqncia (gene) pode representar uma caracterstica da soluo ou a srie como um todo pode representar um nmero.

Inteligncia Artificial

CTC-15

Pseudocdigo de um AG
[Incio] Gerar uma populao aleatria com n cromossomos

Repetir at obter a soluo (ou terminar)


1. [Avaliao] Determinar f(x) e fix de cada cromossomo x na populao. 2. [Seleo] Selecionar elementos para criar uma populao intermediria //Quanto melhor o fix, maior chance de ser selecionado); uma porcentagem dos mais adaptados mantida, enquanto os outros so descartados (mortos). 3. [Recombinao (Crossover)] Com uma probabilidade de recombinao, realizar uma recombinao sobre os pais para formar uma nova prole //Se no ocorrer recombinao, a prole uma cpia exata dos pais. 4. [Mutao] Com uma probabilidade de mutao, realizar mutao sobre a nova prole em cada gene (posio no cromossomo). 5. [Atualizao da populao] Usar a nova populao gerada para repetir os passos 1-5 do algoritmo

Retornar a melhor soluo na populao atual.

Inteligncia Artificial

CTC-15

Seleo atravs da Roleta


O pais so selecionados de acordo com sua funo de aptido. Quanto melhor os cromossomos so, maior a chance de serem selecionados. Imagine uma roleta onde so colocados todos os cromossomos da populao, o espao ocupado depende do valor da sua funo de aptido, como mostra a figura:

Inteligncia Artificial

CTC-15

Elitismo
Elitismo o nome do mtodo, aliado seleo, que primeiro copia o melhor cromossomo (ou alguns melhores cromossomos) para a nova populao. O processo restante feito do modo clssico. O elitismo pode aumentar rapidamente o desempenho do AG porque evita que se perca a melhor soluo encontrada at o momento.

Inteligncia Artificial

CTC-15

Recombinao (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 recombinao, por exemplo, podemos escolher mais pontos de recombinao. Recombinaes desenvolvidas para problemas especficos podem melhorar o desempenho do AG.

Inteligncia Artificial

CTC-15

Mutaes
Mutao permite evitar que a populao fique presa em um mnimo (mximo) local. A mutao altera aleatoriamente a nova prole. Na codificao binria, podemos mudar alguns bits de 1 para 0 e de 0 para 1:

A mutao depende tanto da codificao como da recombinao.


Inteligncia Artificial CTC-15

Parmetros - 1
Probabilidade de recombinao: indica o quo freqente a recombinao executada.
Se no ocorre recombinao, a prole a cpia dos pais. Se ocorre recombinao, a prole formada por partes dos pais. Se a probabilidade de recombinao 100%, ento toda a prole ser formada com recombinao. Se for 0%, a nova gerao ser formada por cpias exatas da populao anterior

A recombinao realizada com a esperana de que os novos cromossomos tenham partes boas dos cromossomos anteriores e talvez sejam melhores que seus pais. Entretanto aconselhvel deixar parte da populao sobreviver na gerao seguinte.

Inteligncia Artificial

CTC-15

Parmetros - 2
Probabilidade de mutao: indica o quo freqente partes dos cromossomos sofrero mutaes.
Se no ocorrer mutao (probabilidade de mutao = 0%), a prole no sofrer mudanas aps a recombinao. Se ocorrer mutao, parte dos cromossomos ser alterada. Se a probabilidade de mutao for 100%, todos os cromossomos sero alterados.

A mutao realizada para prevenir que o AG caia em um extremo local (mnimo ou mximo, depende das funes usadas), porm ela no deve ocorrer com muita freqncia, pois acarretaria em uma busca aleatria no espao de solues.

Inteligncia Artificial

CTC-15

Parmetros - 3
Tamanho da populao: indica quantos cromossomos existem em uma populao (em uma gerao).
Se existirem muito poucos cromossomos, o AG ter poucas possibilidades de realizar a recombinao e apenas uma pequena poro do espao de estados ser explorada. Se existirem muitos cromossomos, o AG ficar lento.

Pesquisas mostram que aps algum limite (que depende principalmente da codificao e do problema) no vantajoso aumentar o tamanho da populao pois no tornar o algoritmo mais rpido.

Inteligncia Artificial

CTC-15

Parmetros - 4
Intervalo de Gerao. Controla a porcentagem da populao que ser substituda durante a prxima gerao.
Com um valor alto, a maior parte da populao ser substituda, mas com valores muito altos pode ocorrer perda de estruturas de alta aptido. Com um valor baixo, o algoritmo pode tornar-se muito lento.

Inteligncia Artificial

CTC-15

Exemplo: 8 Rainhas
Codificao Cromossomos compostos por 8 nmeros (genes), a posio do gene indica a coluna, o valor do nmero indica a linha

Inteligncia Artificial

CTC-15

Exemplo: 8 Rainhas

Inteligncia Artificial

CTC-15

Exemplo: 8 Rainhas

Inteligncia Artificial

CTC-15

Recombinao: 8 Rainhas

Inteligncia Artificial

CTC-15

Exemplo: 8 Rainhas
Indviduos mais aptos (maior funo de aptido) tem maiores chances de serem selecionados

Inteligncia Artificial

CTC-15

Você também pode gostar