IA-Aula4

download IA-Aula4

of 41

Transcript of IA-Aula4

  • Inteligncia Artificial

  • Resoluo de problemas por meio de buscaCaptulo 3 Russell & NorvigSees 3.4 e 3.5

  • Formulao de problemasUm problema definido por quatro itens:

    Estado inicial ex., em Arad"Aes ou funo sucessor S(x) = conjunto de pares ao-estadoex., S(Arad) = {, }Teste de objetivo, pode serexplcito, ex., x = em Bucareste"implcito, ex., Cheque-mate(x)

    Custo de caminho (aditivo)ex., soma das distncias, nmero de aes executadas, etc.c(x,a,y) o custo do passo, que deve ser sempre 0

    Uma soluo uma seqncia de aes que levam do estado inicial para o estado objetivo.Uma soluo tima uma soluo com o menor custo de caminho.

  • Algoritmo geral de busca em rvore

  • Estratgias de Busca Sem Informao (ou Busca Cega)Estratgias de busca sem informao usam apenas a informao disponvel na definio do problema.Apenas geram sucessores e verificam se o estado objetivo foi atingido.

    As estratgias de busca sem informao se distinguem pela ordem em que os ns so expandidos.Busca em extenso (Breadth-first)Busca de custo uniformeBusca em profundidade (Depth-first)Busca em profundidade limitadaBusca de aprofundamento iterativo

  • Estratgias de buscaEstratgias so avaliadas de acordo com os seguintes critrios:completeza: o algoritmo sempre encontra a soluo se ela existe?complexidade de tempo: nmero de ns geradoscomplexidade de espao: nmero mximo de ns na memriaotimizao: a estratgia encontra a soluo tima?Complexidade de tempo e espao so medidas em termos de:b: mximo fator de ramificao da rvore (nmero mximo de sucessores de qualquer n)d: profundidade do n objetivo menos profundom: o comprimento mximo de qualquer caminho no espao de estados (pode ser )

  • Busca em extensoExpandir o n no-expandido mais perto da raiz.Implementao:a borda uma fila FIFO (first-in, first-out), isto , novos itens entram no final.

  • Busca em extensoExpandir o n no-expandido mais perto da raiz.Implementao:a borda uma fila FIFO (first-in, first-out), isto , novos itens entram no final.

  • Busca em extensoExpandir o n no-expandido mais perto da raiz.Implementao:a borda uma fila FIFO (first-in, first-out), isto , novos itens entram no final.

  • Busca em extensoExpandir o n no-expandido mais perto da raiz.Implementao:a borda uma fila FIFO (first-in, first-out), isto , novos itens entram no final.

  • Propriedades da busca em extensoCompleta? Sim (se b finito)Tempo? 1+b+b2+b3+ +bd + b(bd-1) = O(bd+1)Espao? O(bd+1) (mantm todos os ns na memria)tima? Sim (se todas as aes tiverem o mesmo custo)

  • Requisitos de Tempo e Memria para a Busca em Extenso Busca com fator de ramificao b=10.Supondo que 10.000 ns possam ser gerados por segundo e que um n exige 1KB de espao.

    ProfundidadeNsTempoMemria211000.11 segundo1 megabyte4111.10011 segundos106 megabytes610719 minutos10 gigabytes810931 horas1 terabyte101011129 dias101 terabytes12101335 anos10 petabytes1410153.523 anos1 exabyte

  • Busca de custo uniformeExpande o n no-expandido que tenha o caminho de custo mais baixo.Implementao:borda = fila ordenada pelo custo do caminhoEquivalente a busca em extenso se os custos so todos iguaisCompleta? Sim, se o custo de cada passo Tempo? # de ns com g custo da soluo tima, O(bC*/ ) onde C* o custo da soluo timaEspao? de ns com g custo da soluo tima, O(b C*/ ) tima? Sim pois os ns so expandidos em ordem crescente de custo total.

  • ExerccioAplicar busca de custo uniforme para achar o caminho mais curto entre Arad e Bucareste.

  • Busca em ProfundidadeExpande o n no-expandido mais profundo.Implementao:borda = fila LIFO (last-in, first-out) = pilha

  • Busca em ProfundidadeExpande o n no-expandido mais profundo.Implementao:borda = fila LIFO (last-in, first-out) = pilha

  • Busca em ProfundidadeExpande o n no-expandido mais profundo.Implementao:borda = fila LIFO (last-in, first-out) = pilha

  • Busca em ProfundidadeExpande o n no-expandido mais profundo.Implementao:borda = fila LIFO (last-in, first-out) = pilha

  • Busca em ProfundidadeExpande o n no-expandido mais profundo.Implementao:borda = fila LIFO (last-in, first-out) = pilha

  • Busca em ProfundidadeExpande o n no-expandido mais profundo.Implementao:borda = fila LIFO (last-in, first-out) = pilha

  • Busca em ProfundidadeExpande o n no-expandido mais profundo.Implementao:borda = fila LIFO (last-in, first-out) = pilha

  • Busca em ProfundidadeExpande o n no-expandido mais profundo.Implementao:borda = fila LIFO (last-in, first-out) = pilha

  • Busca em ProfundidadeExpande o n no-expandido mais profundo.Implementao:borda = fila LIFO (last-in, first-out) = pilha

  • Busca em ProfundidadeExpande o n no-expandido mais profundo.Implementao:borda = fila LIFO (last-in, first-out) = pilha

  • Busca em ProfundidadeExpande o n no-expandido mais profundo.Implementao:borda = fila LIFO (last-in, first-out) = pilha

  • Busca em ProfundidadeExpande o n no-expandido mais profundo.Implementao:borda = fila LIFO (last-in, first-out) = pilha

  • Propriedades da Busca em ProfundidadeCompleta? No: falha em espaos com profundidade infinita, espaos com loopsSe modificada para evitar estados repetidos completa para espaos finitosTempo? O(bm): pssimo quando m muito maior que d. mas se h muitas solues pode ser mais eficiente que a busca em extensoEspao? O(bm), i.e., espao linear!118 kilobytes ao invs de 10 petabytes para busca com b=10, d=m=12tima? No

  • Busca em Profundidade Limitada= busca em profundidade com limite de profundidade l,isto , ns com profundidade l no tem sucessores

    Implementao Recursiva:

  • Propriedades da Busca em Profundidade LimitadaCompleta? No; a soluo pode estar alm do limite.Tempo? O(bl)Espao? O(bl)tima? No

  • Busca de Aprofundamento Iterativo em Profundidade

  • Busca de Aprofundamento Iterativo em Profundidade l =0

  • Busca de Aprofundamento Iterativo em Profundidade l =1

  • Busca de Aprofundamento Iterativo em Profundidade l =2

  • Busca de Aprofundamento Iterativo em Profundidade l =3

  • Busca de Aprofundamento IterativoNmero de ns gerados em uma busca de extenso com fator de ramificao b: NBE = b1 + b2 + + bd-2 + bd-1 + bd + (bd+1 b)

    Nmero de ns gerados em uma busca de aprofundamento iterativo at a profundidade d com fator de ramificao b: NBAI = (d+1)b0 + d b1 + (d-1)b2 + + 3bd-2 +2bd-1 + 1bd

    Para b = 10, d = 5,NBE = 10 + 100 + 1.000 + 10.000 + 100.000 + 999.990= 1.111.100

    NBAI = 6 + 50 + 400 + 3.000 + 20.000 + 100.000 = 123.456

    Overhead = (123.456 111.111)/111.111 = 11%

  • Propriedades da busca de aprofundamento iterativoCompleta? SimTempo? (d+1)b0 + d b1 + (d-1)b2 + + bd = O(bd)Espao? O(bd)tima? Sim, se custo de passo = 1

  • Resumo dos algoritmos

  • Estados repetidosO processo de busca pode perder tempo expandindo ns j explorados antesEstados repetidos podem levar a loops infinitosEstados repetidos podem transformar um problema linear em um problema exponencial

  • Estados RepetidosNo detectar estados repetidos pode transformar um problema linear em um problema exponencial.

  • Deteco de estados repetidosComparar os ns prestes a serem expandidos com ns j visitados. Se o n j tiver sido visitado, ser descartado.Lista closed (fechado) armazena ns j visitados.Busca em profundidade e busca de aprofundamento iterativo no tem mais espao linear.A busca percorre um grafo e no uma rvore.

  • ResumoA formulao de problemas usualmente requer a abstrao de detalhes do mundo real para que seja definido um espao de estados que possa ser explorado atravs de algoritmos de busca.

    H uma variedade de estratgias de busca sem informao (ou busca cega).

    A busca de aprofundamento iterativo usa somente espao linear e no muito mais tempo que outros algoritmos sem informao.