Вы находитесь на странице: 1из 59

UNIVERSIDADE

FEDERAL DO PIAUÍ – UFPI


Departamento de Informática & Estatística
Curso de Ciência da Computação

IN T E LIGÊN CIA A R T IFICIA L


Vinicius Ponte Machado

Unidade II – Resoluções de Problemas Através de Buscas


INTELIGÊNCIA ARTIFICIAL– UNIDADE II
Formulação de Problemas
Clique para editar o estilo do título mestre
o Um problema em IA é definido em termos de...
§ um espaço de estados possíveis, incluindo:
• um estado inicial
• um (ou mais) estado final = objetivo
• exemplo 1: dirigir de Teresina a Parnaíba
• espaço de estados: todas as cidades da região
• exemplo 2: jogo de 8-números
• um conjunto de ações (ou operadores) que
permitem passar de um estado a outro
• ex1. dirigir de uma cidade a outra
• ex2. mover uma peça do jogo de n-números (n-
puzzle)
INTELIGÊNCIA ARTIFICIAL– UNIDADE II
Soluções de Problemas
Clique para editar o estilo do título mestre
o Definição do objetivo:
§ propriedade abstrata
• ex., condição de xeque-mate no Xadrez
§ conjunto de estados finais do mundo
• ex., estar em Parnaíba
o Solução:
§ caminho (seqüência de ações ou operadores) que leva do
estado inicial a um estado final (objetivo).
o Espaço de Estados:
§ conjunto de todos os estados alcançáveis a partir do
estado inicial por qualquer seqüência de ações.
INTELIGÊNCIA ARTIFICIAL– UNIDADE II
Soluções de Problemas
Clique para editar o estilo do título mestre
o Formulação do problema e do objetivo:
§ quais são os estados e as ações a considerar?
§ qual é (e como representar) o objetivo?
o Busca (solução do problema):
§ processo que gera/analisa seqüências de ações para
alcançar um objetivo
§ solução = caminho entre estado inicial e estado final.
§ custo do caminho = qualidade da solução
o Execução:
§ executar a solução completa encontrada, ou
§ intercalar execução com busca: planejamento
INTELIGÊNCIA ARTIFICIAL– UNIDADE II
Exemplos de Formulação de Problemas
Clique para editar o estilo do título mestre
o Jogo de 8 números:
§ estados = cada possível configuração do tabuleiro
§ estado inicial = qualquer um dos estados possíveis
§ teste de término = ordenado, com branco na posição [3,3]
§ operadores = mover branco (esquerda, direita, para cima e
para baixo)
§ custo do caminho = número de passos da solução
o Ida para Parnaíba:
§ estados = cada possível cidade do mapa
§ estado inicial = Teresina
§ teste de término = estar em Parnaíba
§ operadores = dirigir de uma cidade para outra
§ custo do caminho = número de cidades visitadas, distância
percorrida, tempo de viagem, grau de divertimento, etc
INTELIGÊNCIA ARTIFICIAL– UNIDADE II
Medida de Desempenho na Busca
Clique para editar o estilo do título mestre
o Desempenho de um algoritmo de busca:
§ 1. O algoritmo encontrou alguma solução?
§ 2. É uma boa solução?
• custo de caminho (qualidade da solução)
§ 3. É uma solução computacionalmente barata?
• custo da busca (tempo e memória)
o Custo total
§ custo do caminho + custo de busca
o Espaço de estados grande:
§ compromisso entre a melhor solução e a solução mais
barata

Custo diferente => Solução diferente


INTELIGÊNCIA ARTIFICIAL– UNIDADE II
Busca em Espaço de Estados
Clique para editar o estilo do título mestre
o Uma vez o problema bem formulado... o estado final deve
ser “buscado”
o Em outras palavras, deve-se usar um método de busca para
saber a ordem correta de aplicação dos operadores que
lavará do estado inicial ao final
o Uma vez a busca terminada com sucesso, é só executar a
solução (= conjunto ordenado de operadores a aplicar)
INTELIGÊNCIA ARTIFICIAL– UNIDADE II
Busca em Espaço de Estados
Clique para editar o estilo do título mestre
o Geração e Teste
o Fronteira do espaço de estados
§ nós (estados) a serem expandidos no momento.
o Algoritmo:
§ Obs: o algoritmo começa com a fronteira contendo o estado inicial
do problema.
• 1. Selecionar o primeiro nó (estado) da fronteira do espaço de
estados;
• - se a fronteira está vazia, o algoritmo termina com falha.
• 2. Testar se o nó é um estado final (solução):
• - se “sim”, então retornar nó - a busca termina com sucesso.
• 3. Gerar um novo conjunto de estados pela aplicação dos
operadores ao estado selecionado;
• 4. Inserir os nós gerados na fronteira, de acordo com a estratégia
de busca usada, e voltar para o passo (1).
o Exemplo: viajar de Teresina a Parnaíba
INTELIGÊNCIA ARTIFICIAL– UNIDADE II
Busca em Espaço de Estados
Clique para editar o estilo do título mestre
estado inicial => Teresina

Teresina

Altos José de Freitas Timom

Teresina

Altos José de Freitas Timom

Campo Maior Teresina


INTELIGÊNCIA ARTIFICIAL– UNIDADE II
Busca em Espaço de Estados
Clique para editar o estilo do título mestre
o Espaços de Estados
§ podem ser representados como uma árvore onde os
estados são nós e as operações são arcos.
o Os nós da árvore podem guardar mais informação do que
apenas o estado:
o à são uma estrutura de dados com 5 componentes:
1. o estado correspondente
2. o seu nó pai
3. o operador aplicado para gerar o nó (a partir do pai)
4. a profundidade do nó
5. o custo do nó (desde a raiz)
INTELIGÊNCIA ARTIFICIAL– AULA 8
Estratégias de Busca
Clique para editar o estilo do título mestre
o BUSCA ÀS CEGAS (Blind Search ou Uniformed Search):
§ Uma estratégia de busca é dita “CEGA” se ela não leva em
conta informações específicas sobre o problema a ser
resolvido.
§ Existem basicamente duas estratégias cegas para a construção
e pesquisa em uma árvore de busca: Busca em Largura e
Busca em Profundidade.
§ BUSCA EM LARGURA (ou Amplitude)
• Consiste em construir uma árvore de estados a partir do
estado inicial
• aplicando a cada momento, todas as regras possíveis aos
estados do nível mais baixo 11/44

• gerando todos os estados sucessores de cada um destes


estados.
§ Assim, cada nível da árvore é completamente construído antes
que qualquer nodo do próximo nível seja adicionado à árvore.
INTELIGÊNCIA ARTIFICIAL– AULA 8
Busca em largura
Clique para editar o estilo do título mestre

1 Expande-se o nó raiz
2 Expande-se todos os nós gerados pelo raiz

12/44

fronteira

Todos os nós na profundidade d são expandidos


antes dos nós na profundidade d+1
INTELIGÊNCIA ARTIFICIAL– AULA 8
Busca em Profundidade
Clique para editar o estilo do título mestre
o Pode-se utilizar uma pilha para guardar os sucessores a
serem expandidados.
o Coloca-se todos os sucessores recém-chegados no topo da
pilha
o Escolhe como sucessor o primeiro nó da fila (nós chegados
por último expandidos primeiro)

13/44
INTELIGÊNCIA ARTIFICIAL– AULA 8
Busca em profundidade
Clique para editar o estilo do título mestre

14/44
INTELIGÊNCIA ARTIFICIAL– AULA 8
Busca em profundidade
Clique para editar o estilo do título mestre

15/44
INTELIGÊNCIA ARTIFICIAL– AULA 8
Busca em profundidade
Clique para editar o estilo do título mestre

16/44
INTELIGÊNCIA ARTIFICIAL– AULA 8
Busca em profundidade
Clique para editar o estilo do título mestre

17/44
INTELIGÊNCIA ARTIFICIAL– AULA 8
Busca em profundidade
Clique para editar o estilo do título mestre

18/44
INTELIGÊNCIA ARTIFICIAL– AULA 8
Busca em profundidade
Clique para editar o estilo do título mestre

19/44
INTELIGÊNCIA ARTIFICIAL– AULA 8
Busca em profundidade
Clique para editar o estilo do título mestre

20/44
INTELIGÊNCIA ARTIFICIAL– AULA 8
Busca em profundidade
Clique para editar o estilo do título mestre

21/44
INTELIGÊNCIA ARTIFICIAL– AULA 8
Busca em profundidade
Clique para editar o estilo do título mestre

22/44
INTELIGÊNCIA ARTIFICIAL– AULA 8
Busca em profundidade
Clique para editar o estilo do título mestre

23/44
INTELIGÊNCIA ARTIFICIAL– AULA 8
Busca em profundidade
Clique para editar o estilo do título mestre

24/44
INTELIGÊNCIA ARTIFICIAL– AULA 8
Busca em profundidade
Clique para editar o estilo do título mestre

25/44
INTELIGÊNCIA ARTIFICIAL– AULA 8
Clique para editar o estilo do título mestre
Busca de aprofundamento iterativo

26/44
INTELIGÊNCIA ARTIFICIAL– AULA 8
Busca de aprofundamento iterativo
Clique para editar o estilo do título mestre

27/44
INTELIGÊNCIA ARTIFICIAL– AULA 8
Busca de aprofundamento iterativo
Clique para editar o estilo do título mestre

28/44
INTELIGÊNCIA ARTIFICIAL– AULA 8
Busca de aprofundamento iterativo
Clique para editar o estilo do título mestre

29/44
INTELIGÊNCIA ARTIFICIAL– AULA 8
Busca Heurística
Clique para editar o estilo do título mestre
o Os métodos de busca vistos anteriormente fornecem uma
solução para o problema de achar um caminho até um nó
meta.
o Em muitos casos, a utilização destes métodos é impraticável
devido ao número muito elevado de nós a expandir antes de
achar uma solução.
o Como existem limites práticos de valores de tempo e espaço
de armazenamento disponível para uso na busca, devemos
procurar métodos alternativos mais eficientes.
30/44

Para muitos problemas, é possível estabelecer princípios ou


regras práticas para ajudar a reduzir a busca.
INTELIGÊNCIA ARTIFICIAL– AULA 8
Busca Heurística
Clique para editar o estilo do título mestre
o Estratégias de Busca Heurística
§ utilizam conhecimento específico do problema na escolha
do próximo nó a ser expandido
§ barco perdido
• correntes marítimas, vento, etc...
o Qualquer técnica usada para melhorar a busca depende de
informações especiais acerca do problema em questão.
o Chamamos a este tipo de informação de INFORMAÇÃO
HEURÍSTICA e os procedimentos de busca que a utilizam de 31/44

MËTODOS DE BUSCA HEURÍSTICA.


INTELIGÊNCIA ARTIFICIAL– AULA 8
Busca Heurística
Clique para editar o estilo do título mestre
o A informação que pode compor uma informação heurística é
o Custo do Caminho.
o O CUSTO DO CAMINHO pode ser composto pelo somatório
de dois outros custos: O custo do caminho do estado inicial
até o estado atual que está sendo expandido; e uma
estimativa do custo do caminho do estado atual até o estado
meta.
o Aplica de uma função de avaliação a cada nó na fronteira do
espaço de estados
32/44
o essa função estima o custo de caminho do nó atual até o
objetivo mais próximo utilizando uma função heurística
INTELIGÊNCIA ARTIFICIAL– AULA 8
Busca Heurística
Clique para editar o estilo do título mestre
o Heurística
§ do grego heuriskein, encontrar, descobrir
§ introduzida em IA por George Polya em 1957 (livro How
to Solve It)
§ é conhecimento e, por isso, marcou quebra da IA com a
pesquisa operacional
o Função heurística (h)
§ estima o custo do caminho mais barato do estado atual
até o estado final mais próximo.
§ são específicas para cada problema 33/44

o Exemplo:
§ encontrar a rota mais curta entre duas cidades
§ hdd(n) = distância direta entre o nó n e o nó final.
INTELIGÊNCIA ARTIFICIAL– AULA 8
Busca pela Melhor Escolha (BME) Best-First
Clique para editar o estilo do título mestre Search
o Busca genérica onde o nó de menor custo “aparente” na
fronteira do espaço de estados é expandido primeiro
o Duas abordagens básicas:
1. Busca Gulosa (Greedy search)
2. Algoritmo A* e suas variantes
o Busca Gulosa
§ Semelhante à busca em profundidade com backtracking
§ Tenta expandir o nó mais próximo do nó final com base
na estimativa feita pela função heurística h 34/44
INTELIGÊNCIA ARTIFICIAL– AULA 8
Busca pela Melhor Escolha (BME) Best-First
Clique para editar o estilo do título mestre Search
o Exemplo: Ir de Arad a Bucharest

35/44
INTELIGÊNCIA ARTIFICIAL– AULA 8
Busca Gulosa – Arad a Bucareste
Clique para editar o estilo do título mestre

36/44
INTELIGÊNCIA ARTIFICIAL– AULA 8
Busca Gulosa – Arad a Bucareste
Clique para editar o estilo do título mestre

37/44
INTELIGÊNCIA ARTIFICIAL– AULA 8
Busca Gulosa – Arad a Bucareste
Clique para editar o estilo do título mestre

38/44
INTELIGÊNCIA ARTIFICIAL– AULA 8
Busca Gulosa – Arad a Bucareste
Clique para editar o estilo do título mestre

39/44
INTELIGÊNCIA ARTIFICIAL– AULA 8
Avaliação da Busca Gulosa
Clique para editar o estilo do título mestre

40/44
INTELIGÊNCIA ARTIFICIAL– AULA 8
Busca pela melhor escolha (A*)
Clique para editar o estilo do título mestre
o Também conhecido como Algoritmo de Busca O-MELHOR-
PRIMEIRO, “Best First”, ou A*.
o É um método de busca que procura otimizar a solução,
considerando todas as informações disponíveis até aquele
instante, não apenas as da última expansão.
o Todos os estados abertos até determinado instante são
candidatos à expansão.
o Combina, de certa forma, as vantagens tanto da busca em
largura como em profundidade 41/44

o Busca onde o nó de menor custo “aparente” na fronteira do


espaço de estados é expandido primeiro.
INTELIGÊNCIA ARTIFICIAL– AULA 8
Busca pela melhor escolha (A*)
Clique para editar o estilo do título mestre
o É ainda a técnica de busca mais usada
o Tenta minimizar o custo total da solução combinando:
§ Busca Gulosa: econômica, porém não é completa nem
ótima
§ Busca de Custo Uniforme (Djikstra): ineficiente, porém
completa e ótima
o Função de avaliação:
§ f (n) = g (n) + h (n)
§ g (n) = distância de n ao nó inicial 42/44

§ h (n) = distância estimada de n ao nó final


§ A* expande o nó de menor valor de f na fronteira do
espaço de estados.
INTELIGÊNCIA ARTIFICIAL– AULA 8
Busca pela melhor escolha (A*)
Clique para editar o estilo do título mestre
o Exemplo:
o Considere o problema dos missionários e canibais e as
seguintes funções:
§ g(n) = distância do nodo inicial até o nodo n, ou seja, a
cada movimentação do barco, este número é
incrementado de 1.
§ h(n) = número de pessoas que faltam para serem
transportadas para a margem oposta.
• define que um estado está mais perto da solução se
há mais pessoas na margem oposta. 43/44

• se há o mesmo número de pessoas nas duas margens,


então se o barco está na margem original é melhor do
que se o barco está na margem oposta.
§ h(n) = h’(6.5 - (m2+c2+b/2))
INTELIGÊNCIA ARTIFICIAL– AULA 8
Busca pela melhor escolha (A*)
Clique para editar o estilo do título mestre
o Análise do comportameto do A*
§ Custo de tempo:
• exponencial com o comprimento da solução, porém boas
funções heurísticas diminuem significativamente esse
custo
• o fator de expansão fica próximo de 1
§ Custo memória: O (bd)
• guarda todos os nós expandidos na memória
• para possibilitar o backtracking
§ Eficiência ótima
• só expande nós com f(n) ≤ f*, onde f* é o custo do 44/44
caminho ótimo
• f é não decrescente
• nenhum outro algoritmo ótimo garante expandir menos
nós
INTELIGÊNCIA ARTIFICIAL– AULA 8
A* - Arad a Bucareste
Clique para editar o estilo do título mestre

45/44
INTELIGÊNCIA ARTIFICIAL– AULA 8
A* - Arad a Bucareste
Clique para editar o estilo do título mestre

46/44
INTELIGÊNCIA ARTIFICIAL– AULA 8
A* - Arad a Bucareste
Clique para editar o estilo do título mestre

47/44
INTELIGÊNCIA ARTIFICIAL– AULA 8
A* - Arad a Bucareste
Clique para editar o estilo do título mestre

48/44
INTELIGÊNCIA ARTIFICIAL– AULA 8
A* - Arad a Bucareste
Clique para editar o estilo do título mestre

49/44
INTELIGÊNCIA ARTIFICIAL– AULA 8
A* - Arad a Bucareste
Clique para editar o estilo do título mestre

50/44
INTELIGÊNCIA ARTIFICIAL– AULA 8
Jogos
Clique para editar o estilo do título mestre
o A participação em jogos foi uma das primeiras tarefas
empreendidas em IA.
o Os jogos são interessantes:
§ porque são muito difíceis de resolver;
§ o xadrez tem um fator médio de ramificação de cerca
de 35, e as partidas com freqüência chegam até a 50
movimentos por cada jogador, assim, a árvore de
busca tem aproximadamente 35100 ou 10154 nós;
§ os jogos, como o mundo real, exigem portanto a
habilidade de tomar alguma decisão, até mesmo
quando o cálculo da decisão ótima é inviável. 51/44

o A busca de jogos elaborou várias idéias interessantes sobre


como fazer o melhor uso possível do tempo.
INTELIGÊNCIA ARTIFICIAL– AULA 8
Decisões Ótimas em Jogos
Clique para editar o estilo do título mestre
o Consideremos jogos com dois jogadores, que chamaremos MAX e
MIN;
o MAX faz o primeiro movimento, e depois eles se revezam até o jogo
terminar;
o No fim do jogo, os pontos são dados ao jogador vencedor e são
impostas penalidades ao perdedor;
o Um jogo pode ser definido formalmente como uma espécie de
problema de busca com os seguinte componentes:

52/44
INTELIGÊNCIA ARTIFICIAL– AULA 8
Decisões Ótimas em Jogos
Clique para editar o estilo do título mestre
o O estado inicial, que inclui a posição do tabuleiro e identifica o
jogador que fará o movimento;
o Uma função sucessor, que retorna uma lista de
pares(movimento,estado), cada qual indicando um movimento válido
e o estado resultante;
o Um teste de término, que determina quando o jogo termina. Os
estados em que o jogo é encerrado são chamados estados terminais;
o Uma função utilidade(também chamada função objetivo ou função
compensação), que dá um valor numérico aos estados terminais.
53/44
INTELIGÊNCIA ARTIFICIAL– AULA 8
Decisões Ótimas em Jogos
Clique para editar o estilo do título mestre
o Portanto MAX deve encontrar uma estratégia de
contingência que especifique:
§ o movimento de MAX no estado inicial;
§ e depois o movimentos de MAX nos estados resultantes
de cada resposta possível de MIN;
§ e depois os movimentos de MAX nos estados resultantes
de cada reposta possível de MIN a esses movimentos e
assim por diante.
54/44
INTELIGÊNCIA ARTIFICIAL– AULA 8
Decisões Ótimas em Jogos
Clique para editar o estilo do título mestre
o Em termos gerais:
§ uma estratégia ótima leva a resultados no mínimo tão
bons quanto qualquer outra estratégia quando se está
enfrentando um oponente infalível.
o Até mesmo um jogo simples como o jogo da velha é muito
complexo para traçarmos a árvore de jogo inteira.

55/44
INTELIGÊNCIA ARTIFICIAL– AULA 8
Decisões Ótimas em Jogos
Clique para editar o estilo do título mestre

56/44
INTELIGÊNCIA ARTIFICIAL– AULA 8
Decisões Ótimas em Jogos
Clique para editar o estilo do título mestre
o Jogo da Figura:
§ os movimentos possíveis para MAX no nó raiz são identificados por
a1, a2 e a3;
§ as respostas possíveis para a1 correspondentes a MIN são a11, a12 e
a13 e assim sucessivamente;
§ esse jogo específico termina depois de um movimento realizado por
MAX e por MIN;
§ a árvore tem a profundidade de um único movimento, que consiste
em dois meios-movimentos, cada um dos quais é chamado jogada;
§ a utilidade dos estados terminais nesse jogo variam de 2 até 14.

57/44
INTELIGÊNCIA ARTIFICIAL– AULA 8
Decisões Ótimas em Jogos
Clique para editar o estilo do título mestre
o O valor minimax de um estado terminal é simplesmente sua
utilidade.
§ MAX preferirá se mover para um estado de valor
máximo.
§ MIN preferirá se mover para um estado de valor mínimo.
o Essa definição de jogo ótimo para MAX supõe que MIN
também joga de forma ótima.
o E se MIN não jogar de forma ótima?
o Nesse caso, MAX terá um desempenho ainda melhor. 58/44
INTELIGÊNCIA ARTIFICIAL– AULA 8
O Algoritmo Minimax
Clique para editar o estilo do título mestre
o Em jogos reais, o custo de tempo é totalmente impraticável.
o O algoritmo minimax serve como base:
§ para a análise matemática de jogos; e
§ para algoritmos mais práticos.

59/44

Оценить