inteligência artificial i - computação unioesteinf.unioeste.br/~claudia/resulucao_a1.pdf ·...

47
Resolução de problemas por meio de algoritmos de busca Aula I - Introdução Universidade Estadual do Oeste do Paraná Curso de Bacharelado em Ciência da Computação Inteligência Artificial

Upload: lamngoc

Post on 01-Jan-2019

235 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Inteligência Artificial I - Computação Unioesteinf.unioeste.br/~claudia/resulucao_a1.pdf · Apesar de a técnica exaustiva, ou de “força bruta”, teoricamente sempre funcionar,

Resolução de problemas por meio de algoritmos de busca

Aula I - Introdução

Universidade Estadual do Oeste do Paraná

Curso de Bacharelado em Ciência da Computação

Inteligência Artificial

Page 2: Inteligência Artificial I - Computação Unioesteinf.unioeste.br/~claudia/resulucao_a1.pdf · Apesar de a técnica exaustiva, ou de “força bruta”, teoricamente sempre funcionar,

Roteiro

Experimentação de desafios (página)

Introdução aos problemas de busca

Explosão combinatória

Problemas e soluções

Características do algoritmo de busca

Toy Problems ou mini problemas

Busca cega

Page 3: Inteligência Artificial I - Computação Unioesteinf.unioeste.br/~claudia/resulucao_a1.pdf · Apesar de a técnica exaustiva, ou de “força bruta”, teoricamente sempre funcionar,

Introdução

A capacidade das pessoas para resolver problemas

é um importante indicador de inteligência – o

mesmo é válido para a IA.

A maneira mais simples de resolver um problema é

através do uso exaustivo (força bruta) de um

procedimento que garanta a solução, caso ela

exista.

Page 4: Inteligência Artificial I - Computação Unioesteinf.unioeste.br/~claudia/resulucao_a1.pdf · Apesar de a técnica exaustiva, ou de “força bruta”, teoricamente sempre funcionar,

Introdução: motivação

Resolvendo problemas: imagine que você

tenha perdido as chaves de seu carro.

Você sabe que elas estão em algum lugar de

sua casa, que possui a seguinte planta (Herbert

Schildt).

Você está no local marcado com X

Page 5: Inteligência Artificial I - Computação Unioesteinf.unioeste.br/~claudia/resulucao_a1.pdf · Apesar de a técnica exaustiva, ou de “força bruta”, teoricamente sempre funcionar,

Um grafo do caminho-solução

Uma alternativa para encontrar as chaves seria

seguir este caminho:

Page 6: Inteligência Artificial I - Computação Unioesteinf.unioeste.br/~claudia/resulucao_a1.pdf · Apesar de a técnica exaustiva, ou de “força bruta”, teoricamente sempre funcionar,

Explosão combinatória

Para este caso, o método de ir a todos os

cômodos da casa é uma boa maneira de encontrá-

las.

Porém, a maioria dos problemas a situação é

diferente.

Em particular, o computador é usado para

solucionar problemas nos quais o número de nós

do espaço de busca é muito grande e, conforme

o espaço de busca cresce, cresce também o

número de diferentes caminhos possíveis para

alcançar o objetivo.

Page 7: Inteligência Artificial I - Computação Unioesteinf.unioeste.br/~claudia/resulucao_a1.pdf · Apesar de a técnica exaustiva, ou de “força bruta”, teoricamente sempre funcionar,

Explosão combinatória

O problema é que a cada nó adicionado ao espaço

de busca é acrescentado mais de um caminho, ou

seja, a quantidade de caminhos até o objetivo

aumenta muito a cada novo nó.

Outro exemplo: existem três objetos A, B e C.

Identifique todas as maneiras de arranjá-los.

Page 8: Inteligência Artificial I - Computação Unioesteinf.unioeste.br/~claudia/resulucao_a1.pdf · Apesar de a técnica exaustiva, ou de “força bruta”, teoricamente sempre funcionar,

Explosão combinatória

O problema é que a cada nó adicionado ao espaço

de busca é acrescentado mais de um caminho, ou

seja, a quantidade de caminhos até o objetivo

aumenta muito a cada novo nó.

Outro exemplo: existem três objetos A, B e C.

Identifique todas as maneiras de arranjá-los.

A B C

A C B

B C A

B A C

C B A

C A B

Page 9: Inteligência Artificial I - Computação Unioesteinf.unioeste.br/~claudia/resulucao_a1.pdf · Apesar de a técnica exaustiva, ou de “força bruta”, teoricamente sempre funcionar,

Explosão combinatória

Pode-se encontrar esse resultado utilizando

análise combinatória.

O teorema afirma que o número de maneira que N

objetos podem ser permutados é igual a N! (o

fatorial do número é o produto deste por todos os

números menores que ele até 1)

Assim, 3! é 3x2x1= 6

4! = 4x3x2x1 = 24

5! = 5x4x3x2x1 = 120

6! = 6x5x4x3x2x1 = 720

1000! = ? – explosão combinatória

Page 10: Inteligência Artificial I - Computação Unioesteinf.unioeste.br/~claudia/resulucao_a1.pdf · Apesar de a técnica exaustiva, ou de “força bruta”, teoricamente sempre funcionar,

Explosão combinatória

Gráfico:

3! = 3x2x1= 6

4! = 4x3x2x1 = 24

Page 11: Inteligência Artificial I - Computação Unioesteinf.unioeste.br/~claudia/resulucao_a1.pdf · Apesar de a técnica exaustiva, ou de “força bruta”, teoricamente sempre funcionar,

Introdução

Busca no espaços de estados é uma das

técnicas mais utilizadas para resolução de

problemas em Inteligência Artificial.

No início das pesquisas em IA, desenvolver

bons métodos de busca foi o primeiro objetivo

em função da necessidade e do desejo.

Era necessário que programadores

desenvolvessem boas técnicas de busca para

solucionar esses problemas por causa da

limitação dos computadores usados na época.

Page 12: Inteligência Artificial I - Computação Unioesteinf.unioeste.br/~claudia/resulucao_a1.pdf · Apesar de a técnica exaustiva, ou de “força bruta”, teoricamente sempre funcionar,

Explosão combinatória

Apesar de a técnica exaustiva, ou de “força bruta”,

teoricamente sempre funcionar, isto não é prático,

porque consome muito tempo, muitos recursos de

computação ou ambos.

Por essa razão, outras técnicas de busca têm sido

desenvolvidas.

Page 13: Inteligência Artificial I - Computação Unioesteinf.unioeste.br/~claudia/resulucao_a1.pdf · Apesar de a técnica exaustiva, ou de “força bruta”, teoricamente sempre funcionar,

Introdução

Em IA, a questão é definir como representar o

conhecimento sobre um determinado problema e o

modo como se processará essa representação para

a solução de problemas.

Quanto de conhecimento preciso representar para

resolver um problema?

Exemplo: que conhecimento preciso para

representar o problema das chaves perdidas, das

jarras ou dos missionários e canibais?

Page 14: Inteligência Artificial I - Computação Unioesteinf.unioeste.br/~claudia/resulucao_a1.pdf · Apesar de a técnica exaustiva, ou de “força bruta”, teoricamente sempre funcionar,

Introdução

Para construir um sistema para resolver um problema

específico nós precisamos:

Analisar o problema

Definir o problema precisamente (inclusive definindo

quais estados finais constituem soluções para o

problema)

Identificar e representar o conhecimento

específico à tarefa que é necessário para se

resolver o problema

Aplicar técnicas de resolução de problemas

Avaliar resultados

Page 15: Inteligência Artificial I - Computação Unioesteinf.unioeste.br/~claudia/resulucao_a1.pdf · Apesar de a técnica exaustiva, ou de “força bruta”, teoricamente sempre funcionar,

Introdução

Representação da solução de problemas

Podemos representar a solução de problemas

como uma sequência de estados, que leva de um

estado inicial até um estado final, onde cada estado

é um estado admissível, isto é, produzido a partir

de um estado anterior através de uma ação.

Page 16: Inteligência Artificial I - Computação Unioesteinf.unioeste.br/~claudia/resulucao_a1.pdf · Apesar de a técnica exaustiva, ou de “força bruta”, teoricamente sempre funcionar,

Problemas e Soluções

Componentes de um problema de busca:

Nó = um ponto discreto e um possível objetivo

Nó terminal = um nó que finaliza um caminho

Espaço de busca = o conjunto de todos os nós

Objetivo = o nó que é o objeto da busca

Caminho para a solução = um grafo dirigido dos

nós visitados que leva à solução

Avaliação = indicação de quanto “custa” essa

solução

Page 17: Inteligência Artificial I - Computação Unioesteinf.unioeste.br/~claudia/resulucao_a1.pdf · Apesar de a técnica exaustiva, ou de “força bruta”, teoricamente sempre funcionar,

Problemas e Soluções

De outra maneira, um problema pode ser definido

formalmente por quatro componentes (Russell e

Norvig):

1) Estado inicial: é o estado inicial dado.

2) Ações possíveis: uma descrição das ações que

estão disponíveis;

3) O teste de objetivo: este teste determina se um

dado estado é um estado objetivo.

4) Uma função de custo de caminho: esta função

atribui um custo numérico a cada caminho.

Page 18: Inteligência Artificial I - Computação Unioesteinf.unioeste.br/~claudia/resulucao_a1.pdf · Apesar de a técnica exaustiva, ou de “força bruta”, teoricamente sempre funcionar,

Problemas e Soluções

Assim:

O espaço de estados forma um grafo em que os

nós são estados e os arcos são ações / conexões.

Um caminho no espaço de estados é uma

seqüência de estados conectados por uma

seqüência de ações.

Do exemplo:

Page 19: Inteligência Artificial I - Computação Unioesteinf.unioeste.br/~claudia/resulucao_a1.pdf · Apesar de a técnica exaustiva, ou de “força bruta”, teoricamente sempre funcionar,

Avaliar uma Busca

Avaliar a performance de uma técnica de busca

pode ser complicado.

Mas, resumidamente, existem duas medidas

elementares que são importantes:

1) Com que velocidade a busca encontra a solução

2) Quão boa é a solução.

Existem diversos tipos de problemas em que a

única preocupação é encontrar uma solução –

qualquer que seja – com o mínimo de esforço.

Page 20: Inteligência Artificial I - Computação Unioesteinf.unioeste.br/~claudia/resulucao_a1.pdf · Apesar de a técnica exaustiva, ou de “força bruta”, teoricamente sempre funcionar,

Avaliar uma Busca

Para os problemas que só requerem uma solução,

a primeira medida é importante (velocidade).

Para outras, o importante é que a solução esteja

perto de ser a solução ótima (qualidade).

O comprimento do caminho da solução como a

quantidade de nós visitados determinam a

velocidade da busca.

Qualidade da solução é ótima: se ela tem o

menor custo de caminho entre todas as soluções.

Page 21: Inteligência Artificial I - Computação Unioesteinf.unioeste.br/~claudia/resulucao_a1.pdf · Apesar de a técnica exaustiva, ou de “força bruta”, teoricamente sempre funcionar,

Avaliar uma Busca

É importante entender a diferença entre encontrar

uma solução ótima e encontrar uma boa

solução.

Encontrar uma solução ótima, frequentemente

implica uma busca exaustiva.

Encontrar uma boa solução significa encontrar

uma solução que obedeça a um conjunto de

restrições – não importando se existe ou não uma

solução melhor.

Page 22: Inteligência Artificial I - Computação Unioesteinf.unioeste.br/~claudia/resulucao_a1.pdf · Apesar de a técnica exaustiva, ou de “força bruta”, teoricamente sempre funcionar,

Formulação de problemas

Voltando à questão da abstração:

Para formular problemas é importante abstrair

detalhes;

A abstração é útil se a execução de cada uma das

ações na solução é mais fácil que o problema

original.

Page 23: Inteligência Artificial I - Computação Unioesteinf.unioeste.br/~claudia/resulucao_a1.pdf · Apesar de a técnica exaustiva, ou de “força bruta”, teoricamente sempre funcionar,

Formulação de problemas

A questão da abstração:

Exemplo (Russell e Norvig): sair de uma cidade e

chegar em outra.

Abstrações:

Companheiros de viagem

Paisagem

Outros veículos

Distância até a próxima parada

Condições da estrada

Condições do tempo

...

Page 24: Inteligência Artificial I - Computação Unioesteinf.unioeste.br/~claudia/resulucao_a1.pdf · Apesar de a técnica exaustiva, ou de “força bruta”, teoricamente sempre funcionar,

Mini problema Toy Problems

Um Mini problema ou “toy problem” se destina a

ilustrar ou exercitar diversos métodos de resolução

de problemas.

Ele tem uma descrição concisa e exata.

Isto significa que ele pode ser usado com facilidade

visando comparar o desempenho de algoritmos.

Exemplos: problema das jarras de água,

missionários e canibais, quebra-cabeças de 8 peças,

o problema das 8 rainhas...

Page 25: Inteligência Artificial I - Computação Unioesteinf.unioeste.br/~claudia/resulucao_a1.pdf · Apesar de a técnica exaustiva, ou de “força bruta”, teoricamente sempre funcionar,

Problema Real

Um problema real é aquele cujas soluções de fato

preocupam as pessoas.

Eles tendem a não apresentar uma única descrição

consensual.

Exemplos: xadrez, problemas de roteamento,

problemas de tour, caixeiro viajante, navegação de

robôs, sequência automática de montagem, projeto

de proteínas, pesquisas na Internet…

Page 26: Inteligência Artificial I - Computação Unioesteinf.unioeste.br/~claudia/resulucao_a1.pdf · Apesar de a técnica exaustiva, ou de “força bruta”, teoricamente sempre funcionar,

Exemplos de Problemas

Xadrez

Etapas: especificar a posição inicial do tabuleiro, as regras

que definem os movimento, as posições que representam a

vitória.

O que se sabe: como representar a posição inicial (matriz

8x8), identificar peças brancas e pretas.

Meta: qualquer posição no tabuleiro na qual o oponente não

tenha um movimento legal, e seu rei esteja sendo atacado.

Movimentos legais: a maneira de sair de um estado inicial e

chegar a um estado-meta, descrito por um conjunto de

regras (movimento do peão, da torre, do bispo...).

Page 27: Inteligência Artificial I - Computação Unioesteinf.unioeste.br/~claudia/resulucao_a1.pdf · Apesar de a técnica exaustiva, ou de “força bruta”, teoricamente sempre funcionar,

Exemplos de Problemas

Xadrez

Existem vária maneiras pelas quais estas regras

podem ser escritas.

Para escrever uma a uma as regras, será

necessário considerar, aproximadamente, as 10120

possíveis posições no tabuleiro, ou seja, uma regra

para cada uma dessas posições.

Page 28: Inteligência Artificial I - Computação Unioesteinf.unioeste.br/~claudia/resulucao_a1.pdf · Apesar de a técnica exaustiva, ou de “força bruta”, teoricamente sempre funcionar,

Exemplos de Problemas

Xadrez

O uso de tantas regras resulta em pelo menos as

seguintes dificuldades:

a) nenhuma pessoa seria capaz de fornecer um

conjunto completo dessas regras.

Este processo demoraria muito e certamente não poderia

ser realizado sem erros;

b) nenhum programa conseguiria lidar facilmente

com essas regras.

Daí a necessidade de abstração

Page 29: Inteligência Artificial I - Computação Unioesteinf.unioeste.br/~claudia/resulucao_a1.pdf · Apesar de a técnica exaustiva, ou de “força bruta”, teoricamente sempre funcionar,

Parênteses!!

Deep Blue: supercomputador + software criado pela

IBM para jogar xadrez.

Capaz de analisar aproximadamente 200 milhões de

posições por segundo.

Em sua base de dados havia mais de 700 mil

partidas de Mestres e Grandes Mestres

Em 1997, Deep Blue venceu Garry Kasparov em uma

partida controversa.

Discussões: o movimento nº 44, foi interpretado

como estratégico, mas teria sido um erro. Kasparov

foi surpreendido com o movimento e mudou sua

forma de jogar, sendo derrotado por isto.

Page 30: Inteligência Artificial I - Computação Unioesteinf.unioeste.br/~claudia/resulucao_a1.pdf · Apesar de a técnica exaustiva, ou de “força bruta”, teoricamente sempre funcionar,

Mini problemas ou Toy Problems

Novamente os exemplos:

Missionários e canibais

Quebra-cabeças de 8 peças,

O problema das 8 rainhas

A ovelha e o lobo

Travessia da ponte…

Page 31: Inteligência Artificial I - Computação Unioesteinf.unioeste.br/~claudia/resulucao_a1.pdf · Apesar de a técnica exaustiva, ou de “força bruta”, teoricamente sempre funcionar,

Missionários e canibais

Três missionários e três canibais estão em um lado

do rio, juntamente com um barco que pode conter

uma ou duas pessoas.

Descubra uma maneira de fazer todos

atravessarem o rio, sem deixar que um grupo de

missionários de um lado fique em número menor

que o número de canibais nesse lado do rio.

Page 32: Inteligência Artificial I - Computação Unioesteinf.unioeste.br/~claudia/resulucao_a1.pdf · Apesar de a técnica exaustiva, ou de “força bruta”, teoricamente sempre funcionar,

Missionários e canibais

Que elementos são necessários?

Quais abstrações devem ser feitas?

Qual estrutura de dados pode ser utilizada?

Qual é o estado inicial?

Qual é o objetivo?

Como avaliar a solução?

Page 33: Inteligência Artificial I - Computação Unioesteinf.unioeste.br/~claudia/resulucao_a1.pdf · Apesar de a técnica exaustiva, ou de “força bruta”, teoricamente sempre funcionar,

Missionários e canibais

MMM CCC B Rio Estado inicial

MMM C CC B

MMM CC B C

MMM CCC B

MMM C B CC

M C MM CC B

MM CC B M C

CC MMM C B

CCC B MMM

C MMM CC B

CC B MMM C

Estado final MMM CCC B

Page 34: Inteligência Artificial I - Computação Unioesteinf.unioeste.br/~claudia/resulucao_a1.pdf · Apesar de a técnica exaustiva, ou de “força bruta”, teoricamente sempre funcionar,

Missionários e canibais

MMM CCC B Rio Estado inicial

MMM C CC B

MMM CC B C

MMM CCC B

MMM C B CC

M C MM CC B

MM CC B M C

CC MMM C B

CCC B MMM

C MMM CC B

CC B MMM C

Estado final MMM CCC B

Page 35: Inteligência Artificial I - Computação Unioesteinf.unioeste.br/~claudia/resulucao_a1.pdf · Apesar de a técnica exaustiva, ou de “força bruta”, teoricamente sempre funcionar,

Missionários e canibais

MMM CCC B Rio Estado inicial

MMM C CC B

MMM CC B C

MMM CCC B

MMM C B CC

M C MM CC B

MM CC B M C

CC MMM C B

CCC B MMM

C MMM CC B

CC B MMM C

Estado final MMM CCC B

Page 36: Inteligência Artificial I - Computação Unioesteinf.unioeste.br/~claudia/resulucao_a1.pdf · Apesar de a técnica exaustiva, ou de “força bruta”, teoricamente sempre funcionar,

Toy Problems/Mini problemas

Page 37: Inteligência Artificial I - Computação Unioesteinf.unioeste.br/~claudia/resulucao_a1.pdf · Apesar de a técnica exaustiva, ou de “força bruta”, teoricamente sempre funcionar,

Toy Problems/Mini problemas

Page 38: Inteligência Artificial I - Computação Unioesteinf.unioeste.br/~claudia/resulucao_a1.pdf · Apesar de a técnica exaustiva, ou de “força bruta”, teoricamente sempre funcionar,

Toy Problems/Blocos deslizantes

4 5 8

1 6

7 3 2

5 8

4 1 6

7 3 2

4 5 8

7 1 6

3 2

4 5 8

6

7 3 2

1

1 2 3

4 6

7 8

5

Page 39: Inteligência Artificial I - Computação Unioesteinf.unioeste.br/~claudia/resulucao_a1.pdf · Apesar de a técnica exaustiva, ou de “força bruta”, teoricamente sempre funcionar,

Toy Problems: blocos deslizantes

Usado com freqüência como problema de teste

para novos algoritmos de busca em IA.

Sabe-se que essa classe geral é NP-completa;

Com 8 peças existem 181.440 estados

acessíveis (9!/2);

Com 15 peças tem 1.3 trilhões de estados

Com 24 peças tem 1025 estados

Page 40: Inteligência Artificial I - Computação Unioesteinf.unioeste.br/~claudia/resulucao_a1.pdf · Apesar de a técnica exaustiva, ou de “força bruta”, teoricamente sempre funcionar,

Toy Problems: 8 rainhas

O objetivo do problema das 8 rainhas é posicionar

oito rainhas em um tabuleiro de xadrez de tal forma

que nenhuma rainha ataque qualquer outra.

Uma rainha ataca qualquer peça situada na mesma

linha, coluna ou diagonal.

Page 41: Inteligência Artificial I - Computação Unioesteinf.unioeste.br/~claudia/resulucao_a1.pdf · Apesar de a técnica exaustiva, ou de “força bruta”, teoricamente sempre funcionar,

Toy Problems: 8 rainhas

Page 42: Inteligência Artificial I - Computação Unioesteinf.unioeste.br/~claudia/resulucao_a1.pdf · Apesar de a técnica exaustiva, ou de “força bruta”, teoricamente sempre funcionar,

Exercício com Jarras de água

Você tem duas jarras, uma de 4 litros e uma de 3

litros.

Nenhuma delas tem qualquer marcação de

medidas.

Há uma bomba que pode ser usada para encher as

jarras com água.

Como você consegue colocar exatamente 2 litros

de água na jarra de 4 litros?

Page 43: Inteligência Artificial I - Computação Unioesteinf.unioeste.br/~claudia/resulucao_a1.pdf · Apesar de a técnica exaustiva, ou de “força bruta”, teoricamente sempre funcionar,

Características do Algoritmo de busca

Características de um algoritmo de busca:

Completude (completeza): o algoritmo sempre

encontra uma solução, se ela existe

Complexidade temporal: se refere ao tempo

máximo exigido pelo algoritmo para realizar a busca

Complexidade espacial (memória): quantidade

máxima de memória usada pelo algoritmo

(geralmente p/guardar os nós visitados)

Otimalidade (otimização): quando o algoritmo

encontra a solução ótima

Page 44: Inteligência Artificial I - Computação Unioesteinf.unioeste.br/~claudia/resulucao_a1.pdf · Apesar de a técnica exaustiva, ou de “força bruta”, teoricamente sempre funcionar,

Algoritmo de busca

Complexidade: a complexidade depende de b, o

fator de ramificação no espaço de estados, e de d, a

profundidade da solução mais rasa.

Page 45: Inteligência Artificial I - Computação Unioesteinf.unioeste.br/~claudia/resulucao_a1.pdf · Apesar de a técnica exaustiva, ou de “força bruta”, teoricamente sempre funcionar,

b

d

Page 46: Inteligência Artificial I - Computação Unioesteinf.unioeste.br/~claudia/resulucao_a1.pdf · Apesar de a técnica exaustiva, ou de “força bruta”, teoricamente sempre funcionar,

Estratégias de busca sem informação / busca cega

“Busca cega” denomina o conjunto de estratégias de

busca que não têm nenhuma informação sobre

estados, além daquelas fornecidas na definição do

problema;

Tudo o que elas podem fazer é gerar sucessores e

distinguir um estado objetivo de um estado não-

objetivo;

As estratégias que sabem se um estado não-objetivo

é “mais promissor” que outro são chamadas

estratégias de busca com informação ou busca

heurística.

Page 47: Inteligência Artificial I - Computação Unioesteinf.unioeste.br/~claudia/resulucao_a1.pdf · Apesar de a técnica exaustiva, ou de “força bruta”, teoricamente sempre funcionar,

Próxima aulas

Algoritmos de busca

Busca em amplitude/largura

Busca em profundidade

Busca em profundidade limitada

Busca em profundidade de custo uniforme

Busca de aprofundamento iterativo

Busca bidirecional