inteligência artificial - busca cega

59
MATA64 – INTELIGÊNCIA ARTIFICIAL SEM 2015.1 Aula 5 – Busca cega Profa. Dra. Tatiane Nogueira Rios 1

Upload: lucas-borges-teixeira

Post on 17-Nov-2015

32 views

Category:

Documents


1 download

DESCRIPTION

Inteligência Artificial - Busca Cega

TRANSCRIPT

  • MATA64

    INTELIGNCIA ARTIFICIAL

    SEM 2015.1 Aula 5 Busca cega

    Pro

    fa. D

    ra. T

    atia

    ne N

    ogu

    eira

    Rio

    s

    1

  • BUSCANDO POR SOLUES

    Uma vez formulado o problema, precisamos

    resolv-lo

    Busca atravs de um espao de estados

    rvore de busca

    Raz: estado inicial

    Expanso do estado atual

    Gerao de novos estados

    Objetivo: estado final

    2

    Pro

    fa. D

    ra. T

    atia

    ne N

    ogu

    eira

    Rio

    s

  • BUSCANDO POR SOLUES

    Essncia da busca:

    Escolha dos estados

    Teste

    Expanso da rvore de busca at encontrar a soluo

    ou no existir nenhum estado a ser expandido

    A escolha de qual estado expandir determinada pela

    estratgia de busca

    3

    Pro

    fa. D

    ra. T

    atia

    ne N

    ogu

    eira

    Rio

    s

  • ESPAO DE ESTADOS X RVORE DE BUSCA

    Espao de estados

    Cada estado define uma situao possvel

    rvore de busca

    Nmero infinito de ns, dependendo do caminho

    definido pela estratgia de busca escolhida

    4

    Pro

    fa. D

    ra. T

    atia

    ne N

    ogu

    eira

    Rio

    s

  • REPRESENTANDO UM N NA RVORE DE

    BUSCA

    N: Estrutura de dados com 5 componentes:

    Estado: corresponde ao estado que o n representa

    no espao de estados

    N-pai: n da rvore de busca que gerou este n

    Ao: o que foi aplicado ao n-pai para gerar este n

    Custo do caminho: custo do caminho do n inicial ao

    n atual, g(n)

    Profundidade: quantidade de passos ao longo do

    caminho a partir do n inicial

    5

    Pro

    fa. D

    ra. T

    atia

    ne N

    ogu

    eira

    Rio

    s

  • ESTRATGIAS DE BUSCA

    Busca no informada ou Cega

    no utiliza informaes sobre o problema para guiar a

    busca

    estratgia de busca exaustiva aplicada at uma

    soluo ser encontrada (ou falhar)

    Profundidade (Depth-first)

    Largura (Breadth-first)

    6

    Pro

    fa. D

    ra. T

    atia

    ne N

    ogu

    eira

    Rio

    s

  • BUSCA EM PROFUNDIDADE 7

    Pro

    fa. D

    ra. T

    atia

    ne N

    ogu

    eira

    Rio

    s

  • BUSCA EM PROFUNDIDADE

    8

    Pro

    fa. D

    ra. T

    atia

    ne N

    ogu

    eira

    Rio

    s

    d f e

    a

    b c

    g

    h i j k

    Inserir na frente, remover da frente: a

  • BUSCA EM PROFUNDIDADE

    9

    Pro

    fa. D

    ra. T

    atia

    ne N

    ogu

    eira

    Rio

    s

    d f e

    a

    b c

    g

    h i j k

    Inserir na frente, remover da frente: b, c

  • BUSCA EM PROFUNDIDADE

    10

    Pro

    fa. D

    ra. T

    atia

    ne N

    ogu

    eira

    Rio

    s

    d f e

    a

    b c

    g

    h i j k

    Inserir na frente, remover da frente: d, e, c

  • BUSCA EM PROFUNDIDADE

    11

    Pro

    fa. D

    ra. T

    atia

    ne N

    ogu

    eira

    Rio

    s

    d f e

    a

    b c

    g

    h i j k

    Inserir na frente, remover da frente: h, e, c

  • BUSCA EM PROFUNDIDADE

    12

    Pro

    fa. D

    ra. T

    atia

    ne N

    ogu

    eira

    Rio

    s

    d f e

    a

    b c

    g

    h i j k

    Inserir na frente, remover da frente: e, c

  • BUSCA EM PROFUNDIDADE

    13

    Pro

    fa. D

    ra. T

    atia

    ne N

    ogu

    eira

    Rio

    s

    d f e

    a

    b c

    g

    h i j k

    Inserir na frente, remover da frente: i, j, c

  • BUSCA EM PROFUNDIDADE

    14

    Pro

    fa. D

    ra. T

    atia

    ne N

    ogu

    eira

    Rio

    s

    d f e

    a

    b c

    g

    h i j k

    Inserir na frente, remover da frente: j, c

  • BUSCA EM PROFUNDIDADE

    15

    Pro

    fa. D

    ra. T

    atia

    ne N

    ogu

    eira

    Rio

    s

    d f e

    a

    b c

    g

    h i j k

    Inserir na frente, remover da frente: c

  • BUSCA EM PROFUNDIDADE

    16

    Pro

    fa. D

    ra. T

    atia

    ne N

    ogu

    eira

    Rio

    s

    d f e

    a

    b c

    g

    h i j k

    Inserir na frente, remover da frente: f, g

  • BUSCA EM PROFUNDIDADE

    17

    Pro

    fa. D

    ra. T

    atia

    ne N

    ogu

    eira

    Rio

    s

    d f e

    a

    b c

    g

    h i j k

    Inserir na frente, remover da frente: k, g

  • BUSCA EM PROFUNDIDADE

    18

    Pro

    fa. D

    ra. T

    atia

    ne N

    ogu

    eira

    Rio

    s

    d f e

    a

    b c

    g

    h i j k

    Inserir na frente, remover da frente: g

  • BUSCA EM PROFUNDIDADE

    19

    Pro

    fa. D

    ra. T

    atia

    ne N

    ogu

    eira

    Rio

    s

    d f e

    a

    b c

    g

    h i j k

  • BUSCA EM PROFUNDIDADE

    Algoritmo para busca em profundidade

    Para encontrar uma soluo (Caminho da soluo) de

    um estado inicial I para um estado final F (busca

    forward) faa:

    Se F foi alcanado (o estado atual F) o Caminho uma

    soluo

    Se o estado atual tem um sucessor, e esse sucessor no faz

    parte do caminho at agora (deteco de loops) insira no

    caminho at agora e continue

    20

    Pro

    fa. D

    ra. T

    atia

    ne N

    ogu

    eira

    Rio

    s

  • BUSCA EM PROFUNDIDADE

    A busca em profundidade o recurso mais

    simples em programao recursiva e, por isso,

    Prolog quando executa metas explora alternativas

    utilizando-a

    21

    Pro

    fa. D

    ra. T

    atia

    ne N

    ogu

    eira

    Rio

    s

  • BUSCA EM PROFUNDIDADE

    Um problema com a busca em profundidade que

    existem espaos de estado nos quais o algoritmo

    se perde

    Muitos espaos de estado so infinitos e, nesse

    caso, o algoritmo de busca em profundidade pode

    perder um n final, prosseguindo por um caminho

    infinito no grafo

    22

    Pro

    fa. D

    ra. T

    atia

    ne N

    ogu

    eira

    Rio

    s

  • BUSCA EM PROFUNDIDADE

    O algoritmo ento explora esta parte infinita do

    espao, nunca chegando perto de um n final

    Para n ns e a arestas, a complexidade de tempo

    O(a+n)

    Para no prosseguir por um caminho infinito no

    grafo e perder uma eventual soluo, uma

    proposta consiste em limitar a busca

    23

    Pro

    fa. D

    ra. T

    atia

    ne N

    ogu

    eira

    Rio

    s

  • BUSCA EM PROFUNDIDADE LIMITADA

    (L=0)

    24

    Pro

    fa. D

    ra. T

    atia

    ne N

    ogu

    eira

    Rio

    s

    d f e

    a

    b c

    g

    h i j k

    Inserir na frente, remover da frente: a

  • BUSCA EM PROFUNDIDADE LIMITADA

    (L=1)

    25

    Pro

    fa. D

    ra. T

    atia

    ne N

    ogu

    eira

    Rio

    s

    d f e

    a

    b c

    g

    h i j k

    Inserir na frente, remover da frente: a

  • BUSCA EM PROFUNDIDADE LIMITADA

    (L=1)

    26

    Pro

    fa. D

    ra. T

    atia

    ne N

    ogu

    eira

    Rio

    s

    d f e

    a

    b c

    g

    h i j k

    Inserir na frente, remover da frente: b, c

  • BUSCA EM PROFUNDIDADE LIMITADA

    (L=1)

    27

    Pro

    fa. D

    ra. T

    atia

    ne N

    ogu

    eira

    Rio

    s

    d f e

    a

    b c

    g

    h i j k

    Inserir na frente, remover da frente: c

  • BUSCA EM PROFUNDIDADE LIMITADA

    (L=2)

    28

    Pro

    fa. D

    ra. T

    atia

    ne N

    ogu

    eira

    Rio

    s

    d f e

    a

    b c

    g

    h i j k

    Inserir na frente, remover da frente: a

  • BUSCA EM PROFUNDIDADE LIMITADA

    (L=2)

    29

    Pro

    fa. D

    ra. T

    atia

    ne N

    ogu

    eira

    Rio

    s

    d f e

    a

    b c

    g

    h i j k

    Inserir na frente, remover da frente: b, c

  • BUSCA EM PROFUNDIDADE LIMITADA

    (L=2)

    30

    Pro

    fa. D

    ra. T

    atia

    ne N

    ogu

    eira

    Rio

    s

    d f e

    a

    b c

    g

    h i j k

    Inserir na frente, remover da frente: d, e, c

  • BUSCA EM PROFUNDIDADE LIMITADA

    (L=2)

    31

    Pro

    fa. D

    ra. T

    atia

    ne N

    ogu

    eira

    Rio

    s

    d f e

    a

    b c

    g

    h i j k

    Inserir na frente, remover da frente: e, c

  • BUSCA EM PROFUNDIDADE LIMITADA

    (L=2)

    32

    Pro

    fa. D

    ra. T

    atia

    ne N

    ogu

    eira

    Rio

    s

    d f e

    a

    b c

    g

    h i j k

    Inserir na frente, remover da frente: c

  • BUSCA EM PROFUNDIDADE LIMITADA

    (L=2)

    33

    Pro

    fa. D

    ra. T

    atia

    ne N

    ogu

    eira

    Rio

    s

    d f e

    a

    b c

    g

    h i j k

    Inserir na frente, remover da frente: f, g

  • BUSCA EM PROFUNDIDADE LIMITADA

    (L=2)

    34

    Pro

    fa. D

    ra. T

    atia

    ne N

    ogu

    eira

    Rio

    s

    d f e

    a

    b c

    g

    h i j k

    Inserir na frente, remover da frente: g

  • BUSCA EM PROFUNDIDADE LIMITADA

    Um problema com a busca em profundidade

    limitada que no se tem previamente um limite

    razovel

    Se o limite for muito pequeno (menor que qualquer

    caminho at uma soluo) ento a busca falha

    Se o limite for muito grande, a busca se torna muito

    custosa

    35

    Pro

    fa. D

    ra. T

    atia

    ne N

    ogu

    eira

    Rio

    s

  • BUSCA EM PROFUNDIDADE LIMITADA

    Para resolver este problema, a busca em

    profundidade limitada pode ser executada de

    forma iterativa:

    variando o limite durante a execuo do

    procedimento: comece com um limite de profundidade

    pequeno e aumente gradualmente o limite at que

    uma soluo seja encontrada

    Esta tcnica denominada busca em

    profundidade iterativa

    36

    Pro

    fa. D

    ra. T

    atia

    ne N

    ogu

    eira

    Rio

    s

  • EXERCCIO 1

    Considere School como o estado inicial e

    Museum como o estado final buscado. Monte a

    rvore de busca gerada pelo algoritmo de busca

    em profundidade.

    37

    Pro

    fa. D

    ra. T

    atia

    ne N

    ogu

    eira

    Rio

    s

  • BUSCA EM LARGURA 38

    Pro

    fa. D

    ra. T

    atia

    ne N

    ogu

    eira

    Rio

    s

  • BUSCA EM LARGURA

    Em contraste com a busca em profundidade, a

    busca em largura escolhe primeiro visitar aqueles

    ns mais prximos do n inicial

    O algoritmo no to simples, pois necessrio

    manter um conjunto de ns candidatos

    alternativos e no apenas um nico, como na

    busca em profundidade

    39

    Pro

    fa. D

    ra. T

    atia

    ne N

    ogu

    eira

    Rio

    s

  • BUSCA EM LARGURA

    O conjunto de ns candidatos todo o nvel

    inferior da rvore de busca

    Alm disso, s o conjunto insuficiente se o

    caminho da soluo tambm for necessrio

    Assim, ao invs de manter um conjunto de ns

    candidatos, necessrio manter um conjunto de

    caminhos candidatos

    40

    Pro

    fa. D

    ra. T

    atia

    ne N

    ogu

    eira

    Rio

    s

  • BUSCA EM LARGURA

    41

    Pro

    fa. D

    ra. T

    atia

    ne N

    ogu

    eira

    Rio

    s

    d f e

    a

    b c

    g

    h i j k

    Inserir no final, remover da frente: a

  • BUSCA EM LARGURA

    42

    Pro

    fa. D

    ra. T

    atia

    ne N

    ogu

    eira

    Rio

    s

    d f e

    a

    b c

    g

    h i j k

    Inserir no final, remover da frente: b, c

  • BUSCA EM LARGURA

    43

    Pro

    fa. D

    ra. T

    atia

    ne N

    ogu

    eira

    Rio

    s

    d f e

    a

    b c

    g

    h i j k

    Inserir no final, remover da frente: c, d, e

  • BUSCA EM LARGURA

    44

    Pro

    fa. D

    ra. T

    atia

    ne N

    ogu

    eira

    Rio

    s

    d f e

    a

    b c

    g

    h i j k

    Inserir no final, remover da frente: d, e, f, g

  • BUSCA EM LARGURA

    45

    Pro

    fa. D

    ra. T

    atia

    ne N

    ogu

    eira

    Rio

    s

    d f e

    a

    b c

    g

    h i j k

    Inserir no final, remover da frente: e, f, g, h

  • BUSCA EM LARGURA

    46

    Pro

    fa. D

    ra. T

    atia

    ne N

    ogu

    eira

    Rio

    s

    d f e

    a

    b c

    g

    h i j k

    Inserir no final, remover da frente: f, g, h, i, j

  • BUSCA EM LARGURA

    47

    Pro

    fa. D

    ra. T

    atia

    ne N

    ogu

    eira

    Rio

    s

    d f e

    a

    b c

    g

    h i j k

    Inserir no final, remover da frente: g, h, i, j, k

  • BUSCA EM LARGURA

    48

    Pro

    fa. D

    ra. T

    atia

    ne N

    ogu

    eira

    Rio

    s

    d f e

    a

    b c

    g

    h i j k

    Inserir no final, remover da frente: h, i, j, k

  • BUSCA EM LARGURA

    49

    Pro

    fa. D

    ra. T

    atia

    ne N

    ogu

    eira

    Rio

    s

    d f e

    a

    b c

    g

    h i j k

    Inserir no final, remover da frente: i, j, k

  • BUSCA EM LARGURA

    50

    Pro

    fa. D

    ra. T

    atia

    ne N

    ogu

    eira

    Rio

    s

    d f e

    a

    b c

    g

    h i j k

    Inserir no final, remover da frente: j, k

  • BUSCA EM LARGURA

    51

    Pro

    fa. D

    ra. T

    atia

    ne N

    ogu

    eira

    Rio

    s

    d f e

    a

    b c

    g

    h i j k

    Inserir no final, remover da frente: k

  • BUSCA EM LARGURA

    52

    Pro

    fa. D

    ra. T

    atia

    ne N

    ogu

    eira

    Rio

    s

    d f e

    a

    b c

    g

    h i j k

  • BUSCA EM LARGURA

    O conjunto de caminhos candidatos ser

    representado como uma lista de caminhos e cada

    caminho ser uma lista de ns na ordem reversa

    A busca inicia com um conjunto de um nico

    candidato:

    [ [Incio] ]

    53

    Pro

    fa. D

    ra. T

    atia

    ne N

    ogu

    eira

    Rio

    s

  • BUSCA EM LARGURA

    Algoritmo de busca em largura:

    Se a cabea do primeiro caminho um n final:

    ento este caminho uma soluo;

    Caso contrrio:

    Remova o primeiro caminho do conjunto de candidatos e

    gere o conjunto de todas as extenses em um passo a partir

    deste caminho,

    Adicione este conjunto de extenses ao final do conjunto de

    candidatos e

    Execute busca em largura para atualizar este conjunto

    54

    Pro

    fa. D

    ra. T

    atia

    ne N

    ogu

    eira

    Rio

    s

  • EXERCCIO 2

    Considere School como o estado inicial e

    Museum como o estado final buscado. Monte a

    rvore de busca gerada pelo algoritmo de busca

    em largura.

    55

    Pro

    fa. D

    ra. T

    atia

    ne N

    ogu

    eira

    Rio

    s

  • COMPLEXIDADE DOS ALGORITMOS DE

    BUSCA

    b = nmero de caminhos alternativos/fator de

    bifurcao/ramificao (branching factor)

    d = profundidade da soluo

    m = profundidade mxima da rvore de busca

    l = limite de profundidade

    56

    Pro

    fa. D

    ra. T

    atia

    ne N

    ogu

    eira

    Rio

    s

    Tempo Espao

    tima?

    (soluo mais

    curta garantida)

    Completa?

    (encontra uma soluo

    quando ela existe)

    Profundidade O(bm) O(bm) No Sim (espaos finitos)

    No (espaos infinitos)

    Profundidade limitada O(bl) O(bl) No Sim se l d

    Profundidade iterativa O(bd) O(bd) Sim Sim

    Largura O(bd) O(bd) Sim Sim

  • MODELE UM PROBLEMA COMO UMA

    RVORE DE BUSCA

    Use aplicativos para facilitar o entendimento dos

    algoritmos de busca

    http://www.aispace.org/search/search.jnlp

    57

    Pro

    fa. D

    ra. T

    atia

    ne N

    ogu

    eira

    Rio

    s

    http://www.aispace.org/search/search.jnlp

  • TAREFA DA SEMANA PROBLEMA DOS JARROS DE GUA

    Existem dois jarros inicialmente vazios. Um possui capacidade igual a 3 litros e o outro igual a 4 litros.

    Ambos podem ser enchidos completamente utilizando uma torneira e podem tambm ser esvaziados, despejando a gua em um ralo.

    Alm disso, a gua presente em um jarro pode ser passada para o outro.

    Os jarros no possuem marcaes e no permitido o uso de qualquer instrumento de medida. Deseja-se colocar exatamente dois litros de gua no jarro maior.

    Pode-se representar as quantidades de gua presentes nos dois jarros pelo par ordenado (x,y), em que x a quantidade de gua no jarro menor e y a quantidade no jarro maior.

    O estado inicial (ambos vazios) o par (0,0) e o objetivo encontrar um par do tipo (x,2), isto , dois litros no jarro maior e qualquer quantidade no jarro menor. 58

    Pro

    fa. D

    ra. T

    atia

    ne N

    ogu

    eira

    Rio

    s

  • TAREFA DA SEMANA PROBLEMA DOS JARROS DE GUA (CONT.)

    Solucione este problema utilizando os algoritmos

    de busca em profundidade e em largura.

    59

    Pro

    fa. D

    ra. T

    atia

    ne N

    ogu

    eira

    Rio

    s