Inteligência Artificial

Inteligência Artificial Inteligência Artificial

12.07.2015 Views

Inteligência ArtificialUniversidade da MadeiraInteligência ArtificialProcura CegaAgenda• PARTE 1• Resolução de Problemas• Representação de Problemas / Modelação• Agente Solucionador de Problemas• PARTE 2• Procura em Espaço o de Estados:• Geração e Teste• Implementação• Modelos de Procura Cega• Em Largura Primeiro (Breath - First)• Custo Uniforme (Uniform - Cost)• Em Profundidade Primeiro (Depth–First)• Profundidade Limitada (Depth(– Limited)• Aprofundamento Progressivo (Progressive(Depth)• Bidireccional1

Inteligência <strong>Artificial</strong>Universidade da MadeiraInteligência <strong>Artificial</strong>Procura CegaAgenda• PARTE 1• Resolução de Problemas• Representação de Problemas / Modelação• Agente Solucionador de Problemas• PARTE 2• Procura em Espaço o de Estados:• Geração e Teste• Implementação• Modelos de Procura Cega• Em Largura Primeiro (Breath - First)• Custo Uniforme (Uniform - Cost)• Em Profundidade Primeiro (Depth–First)• Profundidade Limitada (Depth(– Limited)• Aprofundamento Progressivo (Progressive(Depth)• Bidireccional1


Inteligência <strong>Artificial</strong>Universidade da MadeiraResolução de Problemas• Veremos como um agente inteligente poderesolver problemas considerando as diferentessequências de acções que pode realizar.• Quando um agente exibe este comportamento,orientado a atingir metas particulares diz-seque é um Agente solucionador de problemas.Resolução de Problemas• Este tipo de agente deve ter:• Uma Representaçãoadequada do seu entorno.• Deve conhecer as Acçõesque pode efectuar.• Deve poder Raciocinarsobre o efeito das suasacções no ambiente.• O raciocínio neste caso fica reduzido a escolha dasacções e ao seu efeito sobre o ambiente.2


Inteligência <strong>Artificial</strong>Universidade da MadeiraO Problema da Representação• Num sentido geral, concerne à relação existenteentre as distintas formas de formular umproblema e a eficiência para achar uma soluçãoao mesmo.• Embora um problema possa ser expressado dediversas formas, nem sempre é possívelestabelecer uma equivalência formal entre elas.O Problema da Representação• A representação de um problema tem umagrande influência no esforço o que é requeridopara resolve-lo.lo.• Um problema raramente resolve-se se nosmesmos termos em que foi expressado aoinício.• Normalmente utilizam-se um conjunto deconvenções para representar a informação. Istochama-semodelar.3


Inteligência <strong>Artificial</strong>Universidade da MadeiraO Problema da Representação• Quando representamos um problemaestamos a criar um modelo do mesmo.Mas, o que é um modelo?O Problema da Representação• Um modelo consiste na interpretação de umdado domínio do problema segundo umadeterminada estrutura de conceitos.• Um esquema é a especificação de um modelousando uma determinada linguagem, a qualpode ser formal ou informal.• Um modelo é uma representação em pequenaescala, numa perspectiva particular, de umproblema.4


Inteligência <strong>Artificial</strong>Universidade da MadeiraOs modelos ...• Ajudam a visualizar um problema, quer seja asua situação no passado, presente ou no futuro;• Permitem especificar a estrutura ou ocomportamento de um problema;• Permitem controlar e guiar o processo deresolução de um problema.Abstracção• Abstracção: s. f., acção de abstrair;separação mental de uma das partes deum todo;• Abstracto: adj., que designa umaqualidade separada do objecto a quepertence;5


Inteligência <strong>Artificial</strong>Universidade da MadeiraUm bom exemplo demodelação…• Quando o primeiro mapa do Underground de Londres foipublicado em 1908, seguia fielmente a geografia daslinhas: todas as curvas e voltas das trilhas e a distânciarelativa entre as estações foram fielmente respeitadas.• Entretanto o propósito do mapa era mostrar aospassageiros a ordem das estações em cada linha, e asconexões entre linhas. A fidelidade do mapa dificultavaobter essa informação.de19086


Inteligência <strong>Artificial</strong>Universidade da MadeiraMapa de 1933• Em 1933, o mapa foi substituído por umarepresentação bem mais abstracta, quemostrava somente a conectividade entreas estações.• Foram abstraídos• Detalhes da superfície• Distância entre as estações• Orientação das linhasMapade19337


Inteligência <strong>Artificial</strong>Universidade da MadeiraMapa de 1933• O Diagrama deu ás s pessoas um bom modeloconceptual; isto é, , como podemos ver o sistema doUnderground de Londres. É uma especificação quepermite as pessoas entenderem uma implementaçãocomplexa.• Além m disso, embora sofreu mudanças as e é revistodesde 1931, basicamente continua a ser o mesmodiagrama proposto pelo engenheiro desenhador HarryBeck.• O êxito do diagrama é por causa de:• Uma apropriada escolha da abstracção• Uma elegante apresentação.MapaActual8


Inteligência <strong>Artificial</strong>Universidade da MadeiraMapaActualMapaActual9


Inteligência <strong>Artificial</strong>Universidade da MadeiraCaracterísticas de uma boaRepresentação• Clareza: : Deve ser evidente a relação entre omodelo e o problema real.• Exactidão: O modelo deve ser fiel á realidadenos aspectos relevantes para a resolução doproblema.• Completude: O modelo deve representar todosos aspectos relevantes para a resolução doproblema.Características de uma boaRepresentação• Eficiência: A representação deve poder serutilizada em forma eficiente.• Conciso: As características irrelevantes devemser omitidas e os detalhes suprimidos.• Utilidade: É importante avaliar se o modelosugere um bom método mpara resolver oproblema.10


Inteligência <strong>Artificial</strong>Universidade da MadeiraHipótese de Representação deConhecimento (Brian(Smith (1982))Um sistema inteligente utiliza estruturasque:• Podem ser interpretadas como proposiçõesque representam o conhecimento do sistema• Determinam o comportamento do sistemaResolução de Problemas (Acções)• O agente deve escolher uma sequência deacções que conduzam-lhe a atingir uma metadesejada.• A determinação de escolher entre várias vmetaspossíveis normalmente inclui a ideia de custo.• O processo de seleccionar a sequência deacções denomina-seProcura.11


Inteligência <strong>Artificial</strong>Universidade da MadeiraAgente solucionador de problemas• O agente reactivo• Escolhe suas acções com base apenas nas percepções actuais• Não tem estado interno• Portanto, não pode pensar no futuro• Não sabe “para onde vai”.4 5 81 67 2 3?1 2 34 5 67 8• O Agente solucionador de problemas• Procura uma sequência de acções que leve a estados desejáveis(objectivos).Resolução de Problemas: definiçõesUm problema em IA é definido em termos de...1) um espaço o de estados possíveis, incluindo:• um estado inicial• um (ou mais) estado final = objectivo• Exemplo 1: dirigir do Funchal ao Porto Moniz• espaço o de estados: todas as cidades da Ilha• Exemplo 2: jogo de 8-números 8• início:4 5 81 67 2 3fim:1 2 34 5 67 82) um conjunto de acções(ou operadores) ) que permitem passar de umestado a outro• Ex1.: dirigir de uma cidade a outra• Ex2.: mover uma peça a do jogo de 8-números 812


Inteligência <strong>Artificial</strong>Universidade da MadeiraResolução de Problemas: definições• Definição do objectivo:• Propriedade abstracta• Ex.: condição de xeque-mate no Xadrez• Conjunto de estados finais do mundo• Ex.: estar no Porto Moniz• Solução:• Caminho (sequência de acçõesou operadores) ) que leva doestado inicial a um estado final (objectivo).• Espaço o de Estados:• Conjunto de todos os estados alcançáçáveis a partir do estadoinicial por qualquer sequência de acções.Solucionando o problema:Representação, Procura e Execução• Representaçãodo problema e do objectivo:• Quais são os estados e as acçõesa considerar?• Qual é (e como representar) o objectivo?• Procura (solução do problema):• Processo que gera/analisa sequências de acções para atingir umobjectivo.• Solução= caminho entre estado inicial e estado final.• Custo do caminho = qualidade da solução.• Execuçãoão:• Executar a solução completa encontrada, (procura cega, procurainformada, estratégias com adversários).rios).ou• Intercalar execução com procura (planeamento).13


Inteligência <strong>Artificial</strong>Universidade da MadeiraRegras de Produção• Representam conhecimento com pares de condição acção• Se a condição (ou premissa ou antecedente) ocorre• Então a acção (resultado, conclusão ou consequente) deveráocorrer.• Se o agente percebe luz do freio do carro da frente acesa, então deve travaro carro (regra de acção).• Se o veículo tem 4 rodas e tem um motor então o veículoé um automóvel(novo conhecimento).• São chamadas de regras de produção porque, quando utilizadascom raciocínio progressivo, produzem novos factos a partir dosfactos e regras da BC.• Esses novos factos passam a fazer parte da BC.Exemplo: Problema das Jarras• Temos duas jarras vazias com capacidadede 4 e 3 litros cada uma. Como podemosobter exactamente 2 litros na primeirajarra? As jarras podem ser enchidas,esvaziadas ou pode-se passar oconteúdo de uma jarra para a outra.14


Inteligência <strong>Artificial</strong>Universidade da MadeiraExemplo: Problema das Jarras• O estado inicial é [0,0]• A condição de soluçãoé [2,Z], jájque nãoimporta o conteúdo da segunda jarra.Exemplo: Problema das JarrasAs regras de produção são:R1. . Encher jarra 1: [X,Y] [4,Y]R2. . Encher jarra 2: [X,Y] [X,3]R3. . Esvaziar jarra 1: [X,Y] [0,Y]R4. . Esvaziar jarra 2: [X,Y] [X,0]R5. . Passar o conteúdo de 1 a 2 até encher 2[X,Y] / X+Y>=3 [W,3] / W = X+Y-3R6. . Passar todo o conteúdo de 1 a 2[X,Y] / X+Y=4 [4,Z] / Z = X+Y-4R8. . Passar todo o conteúdo de 2 a 1[X,Y] / X+Y


Inteligência <strong>Artificial</strong>Universidade da MadeiraExemplo: Problema das JarrasR3. . Esvaziar jarra 1: [X,Y] [0,Y]Podemos colocar a pré condição X>0 para evitar de usar aregra desnecessariamente.R3. . Esvaziar jarra 1: [X,Y] / X > 0 [0,Y]• Exercício:cio:• Achar a solução do Problema das jarras nospróximos 10 minutos.Sistemas de Produção• São sistemas baseados em regras de produção.• Consistem em 3 módulos mprincipais:• A Base de Regras (BR): permanente• Regras de produção.• A Memória de Trabalho: temporáriaria• Base de factos derivados durante a “vida” do agente.• Percepções do agente e factos gerados a partir da BRpelo mecanismo de inferência.• O Mecanismo (máquina) de Inferência• Determina o método mde raciocínio utilizado(progressivo ou regressivo).• Utiliza estratégias de procura com compromisso(unificação).• Resolve conflitos e executa acções.16


Inteligência <strong>Artificial</strong>Universidade da MadeiraArquitectura dos Sistemas deProduçãoBase de RegrasConhecimento Permanente• factos• regras de produçãoMeta-conhecimento• estratégias para resolução deconflitoMecanismodeInferênciaMemória de TrabalhoConhecimento volátil• descrição da instância doproblema actual• hipóteses actuais• objectivos actuais• resultados intermediáriosConjunto de conflitoconjunto de possíveisregras a serem disparadasVantagens e Limitações dosSistemas de Produção• Vantagens• As regras são de fácil fcompreensão.• Inferência e explicações são facilmente derivadas.• Manutençãoé relativamente simples, devido a modularidade.• São mais eficientes que os sistemas de programação em lógica, lembora menos expressivos.• Desvantagens• Conhecimento complexo requer muitas (milhares de) regras.• Esse excesso de regras cria problemas para utilização emanutenção do sistema.• Não são robustos (tratamento de incerteza).• Não aprendem.17


Inteligência <strong>Artificial</strong>Universidade da MadeiraExemplos de formulação deproblema• Jogo de 8 números: n• estados = cada possível configuração do tabuleiro.• estado inicial = qualquer um dos estados possíveis.• Objectivo = ordenado, com branco na posição [3,3].• custo do caminho = número nde passos da solução.• Exercício:cio:Pensar as regras de produção (5 minutos).Importância da Formulação• Solução 1:• R1. mover 1 para cima• R2. mover 1 para a direita• etc., 32 regras• Solução 2 (o que se move é o espaço o vazio)• R1. mover vazio para cima• R2. mover vazio para a direita• etc., somente 4 regras18


Inteligência <strong>Artificial</strong>Universidade da MadeiraÁrvore de procura para o “jogo dos 8 númerosnmeros”down5 84 1 67 2 3upright4 5 81 67 2 3right4 5 81 67 2 3down4 5 87 12631 2 34 5 67 8Importância da formulação• Jogo das 8 Rainhas• dispor 8 rainhas no tabuleiro de forma que não se possam“atacar”.• Não pode haver mais de uma rainha em uma mesma linha, colunaou diagonal.• Existem diferentes estados e operadores possíveis.• Essa escolha pode ter consequências boas ou nefastasna complexidade da procura ou no tamanho do espaço o deestados.19


Inteligência <strong>Artificial</strong>Universidade da MadeiraFormulações para 8 Rainhas• Formulação A• estados: qualquer disposição com n (n £ 8) rainhas.• operadores: adicionar uma rainha a qualquer quadrado.• 64^8 possibilidades: vai até o fim para testar se dádcerto.• Formulação B• estados: disposição com n (n £ 8) rainhas sem ataquemútuo (teste gradual).• operadores: adicionar uma rainha na coluna vazia mais àesquerda em que não possa ser atacada.• melhor (2057 possibilidades), mas pode não haver acçãopossível.• Formulação C• estados: disposição com 8 rainhas, uma em cada coluna.• operadores: mover uma rainha atacada para outra casana mesma coluna.Medida de Desempenho naProcura• Desempenho de um algoritmo de procura:• 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 procura (tempo e memória).• Custo total• custo do caminho + custo de procura• Espaço o de estados grande:• compromisso (conflito) entre a melhor solução e asolução mais barata.20


Inteligência <strong>Artificial</strong>Universidade da MadeiraCusto diferente => Soluçãodiferente• Função de custo de caminho• (1) número nde cidades visitadas,• (2) distância entre as cidades,• (3) tempo de viagem, etc.• Solução mais barata:• (1) Funchal, (via Paul da Serra), Porto Moniz• (2) Funchal, São Vicente, Porto Moniz• (3) Funchal, São Vicente (viaduto), Porto Moniz• Problemas clássicos• Torre de Hanoi• Missionários e Canibais• Jarro d’ád’água• Jogo dos 8 númerosn• Mundo dos blocos• Caixeiro viajante• Labirinto• Lobo, ovelha e verdura• Travessia da ponte• ...21


Inteligência <strong>Artificial</strong>Universidade da Madeira• Problemas clássicos• Xadrez• Bridge• Gamão• Go• Mancala• Damas• ...SEND SEND+ MORE MORE------- -------MONEY MONEYAplicações: Problemas Reais• Cálculo de rotas• rotas em redes de computadores.• sistemas de planeamento de viagens.• planeamento de rotas de aviões.• Caixeiro viajante.• Alocação(Scheduling)• Salas de aula.• Máquinas industriais (job(shop).22


Inteligência <strong>Artificial</strong>Universidade da MadeiraAplicações: Problemas Reais• Navegação de robots:• generalização do problema da navegação.• Os robots movem-se em espaços contínuos, nuos, com umconjunto (infinito) de possíveis acções e estados• controlar os movimentos do robot no chão, dos seusbraços e pernas requer espaço multi-dimensionaldimensional.• Montagem de objectos complexos por robots:• ordenar a montagem das diversas partes do objecto• etc...FIM PARTE 123


Inteligência <strong>Artificial</strong>Universidade da MadeiraAgenda• PARTE 1• Resolução de Problemas• Representação de Problemas / Modelação• Agente Solucionador de Problemas• PARTE 2• Procura em Espaço o de Estados:• Geração e Teste• Implementação• Modelos de Procura Cega• Em Largura Primeiro (Breath(- First)• Custo Uniforme (Uniform(- Cost)• Em Profundidade Primeiro (Depth(Depth–First)• Profundidade Limitada (Depth(– Limited)• Aprofundamento Progressivo (Progressive(Depth)• BidireccionalProcura em Espaço o de Estados• Uma vez que o problema é bem formulado... oestado final deve ser “procurado”.• Em outras palavras, deve-se usar um método deprocurapara saber a ordem correcta deaplicação dos operadores que levará do estadoinicial ao final.• Uma vez a procura terminada com sucesso, ésó executar a solução(= conjunto ordenado deoperadores a aplicar).24


Inteligência <strong>Artificial</strong>Universidade da MadeiraProcura em Espaço o de Estados:Geração e Teste• Fronteira do espaço o de estados• nós s (estados) a serem expandidos no momento.• Algoritmo:Obs.: o algoritmo começa a com a fronteira contendo o estadoinicial do problema.1. Seleccionar o primeiro nó n (estado) da fronteira do espaço o de estados;- se a fronteira está vazia, o algoritmo termina com falha.2. Testar se o nóné um estado final (solução):- se “sim, então retornar nón- a procura termina com sucesso.3. Gerar um novo conjunto de estados pela aplicação dos operadoresao estado seleccionado;4. Inserir os nós n s gerados na fronteira, , de acordo com a estratégia deprocura usada, e voltar para o passo (1).Procura em Espaço o de Estados:Implementação• Espaços de Estados• podem ser representados como uma árvore onde os estadossão nós n s e as operações são arcos.• Os nós n s da árvore podem guardar mais informação doque apenas o estado:→ são uma estrutura de dados com 5 componentes:1. o estado correspondente2. o seu nónpai3. o operador aplicado para gerar o nó n (a partir do pai)4. a profundidade do nón5. o custo do nó n (desde a raiz)25


Inteligência <strong>Artificial</strong>Universidade da MadeiraProcura em Espaço o de Estados:implementaçãoAlgoritmo:Funçãoão-Insere: : controla a ordem de inserção de nós n s nafronteira do espaço o de estados.funçãoProcura-GenGenérica(problema, Funçãoão-Insere)retorna uma solução ou falhafronteira ← Faz-Fila Fila (Faz-Nó (Estado-Inicial [problema[problema] ] ) )loop dose fronteira está vazia então retorna falhanó ← Remove-Primeiro (fronteira(fronteira)se Teste-Término [problema[problema] ] aplicado a Estado [nó][] tiversucessoentão retorna nófronteira ← Funçãoão-Insere (fronteira(fronteira, , Operadores [proble[problema])Métodos de Procura• Procura exaustiva - cega• Não sabe qual o melhor nó da fronteira a ser expandido = menor custo decaminho desse nónaté um nó final (objectivo).• Estratégias de Procura (ordem de expansão dos nós): n• Direcção de Procura:• Do estado inicial para o objectivo• Do objectivo para o estado inicial• Procura Bidireccional• Procura heurística– informada• Estima qual o melhor nónda fronteira a ser expandido com base em funçõesheurísticas=> conhecimento.• Estratégia de procura: (melhor escolha baseada na função heurística).• Direcção de Procura: idem à procura cega.26


Inteligência <strong>Artificial</strong>Universidade da MadeiraCritérios rios de Avaliação dasEstratégias de Procura• Completude:• A estratégia encontra sempre uma solução?• Custo do tempo:• Quanto tempo gasta para encontrar uma solução?• Custo de memóriaria:• Quanta memóriaé necessária para realizar aprocura?• Optimização/qualidade (optimality(optimality):• A estratégia encontra a melhor solução quandoexistem diferentes soluções?Procura Cega• Em Largura Primeiro (Breath - First)• Custo Uniforme (Uniform - Cost)• Em Profundidade Primeiro (Depth–First)• Profundidade Limitada (Depth – Limited)• Aprofundamento Progressivo (ProgressiveDepth)• Bidireccional27


Inteligência <strong>Artificial</strong>Universidade da MadeiraProcura CegaNotação• b = factor de ramificação;• d = profundidade da solução;m = profundidade máxima da árvore deprocura;• l = limite de profundidade.Procura em Largura(1)• Procura em largura: : o nónde menor profundidade, mais áesquerda é escolhido para gerar sucessores.• O nónraiz é expandido primeiro• todos os nós n s gerados são explorados;• todos os sucessores dos antecessores são explorados;• e assim sucessivamente.• “Os nós n s de profundidade d são explorados antes dosnós s de profundidade d+1”• function BREADTH-FIRSTFIRST-SEARCH SEARCH (problem) returnsolution• return GENERAL-SEARCH(problem, ENQUEUE-ATAT-END)28


Inteligência <strong>Artificial</strong>Universidade da MadeiraProcura em Largura(2)• Se existe solução será encontrada.• A solução encontrada primeiro será a demenor profundidade.• Completa e óptima.• Factor de ramificação (b)• deve-se considerar tempo e memória;• solução com profundidade d.• 1 + b2+ b3+ ... + bdProcura em Largura(3)29


Inteligência <strong>Artificial</strong>Universidade da MadeiraProcura em Largura(4)Procura em Largura(5)30


Inteligência <strong>Artificial</strong>Universidade da MadeiraProcura em Largura(6)Procura em Largura(7)31


Inteligência <strong>Artificial</strong>Universidade da MadeiraProcura em Largura(8)Algoritmo Procura em LarguraPrimeiroFunção ProcuraLarguraPrimeiro (problema, insere_fila): solução oufalha1. i_nós faz_fila(estado_inicial(problema))2. repete2.1 se vazia_fila (i_nós)) então2.1.1 devolve falhafim_de_se2.2 nón retira_fila (i_nós)2.3 se teste_objectivo(nó) ) então2.3.1 devolve nónsenão2.3.2 insere_fila(i_nós,espansão(nó,operadores(problema)))fim_de_sefim_de_repetefim_de_função32


Inteligência <strong>Artificial</strong>Universidade da MadeiraProcura Cega• Em Largura Primeiro (Breath(- First)• Custo Uniforme (Uniform(- Cost)• Em Profundidade Primeiro (Depth(Depth–First)• Profundidade Limitada (Depth(– Limited)• Aprofundamento Progressivo (Progressive(Depth)• BidireccionalCusto Uniforme(1)A estratégia de procura uniforme é umapequena modificação da estratégia de procuraem largura.Na procura em largura, primeiro expande-seo nónraiz, depois todos os nós n s gerados por esse,e assim sucessivamente até que se chegue aoestado meta, ou seja, todos os nós n s que estãonuma profundidade d da árvore serãoexpandidos e visitados antes que os nós n s queestão numa profundidade d+1.33


Inteligência <strong>Artificial</strong>Universidade da MadeiraCusto Uniforme(2)A estratégia de procura uniforme é basicamente a mesmacoisa.• Invés s de começar no primeiro nónexpandido, que está na listaaguardando processamento, o nónque possui o menor custo (g(N(g(N))será escolhido para ser expandido.Se certas condições forem cumpridas, garante-se que aprimeira solução encontrada será a mais barata.Uma das condiçõesé a seguinte:• o custo do caminho nunca deve ir diminuindo conforme avançamos,amos,noutras palavras, é importante que:g (Sucessor(Sucessor)>= g (N)(em todos os nós n N, g (N) é o custo conhecido de ir da raiz até onódulo N.Custo Uniforme(3)Abaixo apresentamos o pseudo código cdo mesmo.Algoritmo Procura – Uniforme1. Definir um conjunto L de nós n s iniciais2. Ordenar L em ordem crescente de custo3. Se L é vazioEntão a Procura não foi bem sucedidaSenão seja n o primeiro nónde L;4. Se n é um nónobjectivoEntãoRetornar caminho do nóninicial até N;PararSenãoRemover n de L;Adicionar em L todos os nós n s filhos de n, , rotulando cada nóncom o seu caminhoaté o nóninicial;Ordenar L em ordem crescente de custo;Voltar ao passo 3.34


Inteligência <strong>Artificial</strong>Universidade da MadeiraCusto Uniforme(4)Análise da ComplexidadeO custo de espaço o e tempo, referente a estratégia de procura uniforme, podeser visualizado no quadro abaixo:ProfundidadeNósTempoMemória011 milisegundo100 bytes21110.1 segundos11 kilobytes411,11111 segundos1 megabytes610 618 minutos111megabytes810 831 horas11 gigabytes1010 10128 dias1 terabyte1210 1235 anos111 terabytes1410 143500 anos11,111terabytesQuadro 1: Tempo, memória e nós gerados para se chegar ao estado metaCusto Uniforme(5)Resumo• Princípiopio: : expandir sempre o nónda fronteira com menorcusto (dado pela funçãog (n)).• Este método mé equivalente à procura em largura primeiroquando g (n)) = profundidade (n).(• Característicassticas:• É completo• É óptimo• function UNIFORM-COSTCOST-SEARCH SEARCH (problem) returns solutionreturn GENERAL-SEARCH (problem, COST-FN,ENQUEUEFN,ENQUEUE-AT-END)35


Inteligência <strong>Artificial</strong>Universidade da MadeiraCusto Uniforme(6)Algoritmo Procura Custo Uniforme• FunçãoProcuraCustoUniforme (problema, insere_ordem_fila): solução ou falha1. i_nós faz_fila(estado_inicial(problema))2. repete2.1 se vazia_fila (i_nós) então2.1.1 devolve falhafim_de_se2.2 nón retira_fila (i_nós)2.3 se teste_objectivo(nó) então2.3.1 devolve nónsenão2.3.2 insere_ordem_fila (i_nós,espansão(nó,operadores(problema)))fim_de_sefim_de_repetefim_de_função36


Inteligência <strong>Artificial</strong>Universidade da MadeiraProcura Cega• Em Largura Primeiro (Breath(- First)• Custo Uniforme (Uniform(- Cost)• Em Profundidade Primeiro (Depth(Depth–First)• Profundidade Limitada (Depth(– Limited)• Aprofundamento Progressivo (Progressive(Depth)• BidireccionalProfundidade Primeiro(1)• Ordem de expansão dos nós: n• sempre expande o nónno nível mais profundo da árvore:1. nónraiz2. primeiro nónde profundidade 13. primeiro nónde profundidade 2, etc.• Quando um nónfinal não é solução, o algoritmo volta paraexpandir os nós n s que ainda estão na fronteira do espaço o deestados.• Algoritmo:funçãoProcura-emem-Profundidade(problema)retorna uma solução ou falhaBusca-GenGenérica(problema, Insere-nono-Começo)37


Inteligência <strong>Artificial</strong>Universidade da MadeiraProfundidade Primeiro(2)• O nó de maior profundidade mais a esquerda éescolhido para gerar sucessores.• Quando é expandido um nó de maior profundidade, aprocura chega a um nó sem sucessor, logo o algoritmoexpande o próximo nó com menor profundidade.Profundidade Primeiro(2)38


Inteligência <strong>Artificial</strong>Universidade da MadeiraProfundidade Primeiro(3)Profundidade Primeiro(4)39


Inteligência <strong>Artificial</strong>Universidade da MadeiraProfundidade Primeiro(5)Profundidade Primeiro(6)40


Inteligência <strong>Artificial</strong>Universidade da MadeiraProfundidade Primeiro(7)Profundidade Primeiro(8)41


Inteligência <strong>Artificial</strong>Universidade da MadeiraProfundidade Primeiro(9)Profundidade Primeiro(10)42


Inteligência <strong>Artificial</strong>Universidade da MadeiraProfundidade Primeiro(11)• Esta estratégia não é completa nem é óptima.• Custo de memória:• mantém m na memória o caminho que está sendo expandido nomomento, e os nós n s irmãos dos nós n s no caminho (para possibilitar obacktracking)⇒ necessita armazenar apenas b.m nós s para um espaço o deestados com factor de expansão b e profundidade m, , onde mpode ser maior que d (profundidade da 1a. solução).• Custo de tempo:• O (b m ), no pior caso.• Para problemas com várias vsoluções, esta estratégia pode serbem mais rápida rdo que procura em largura.• Esta estratégia deve ser evitada quando as árvores geradassão muito profundas ou geram caminhos infinitos.Profundidade Primeiro(12)Vantagem:• Requer pouca memória- O nó objectivo pode vir a ser encontrado semexaminar a árvore por completo.Desvantagem:• É importante que cada sequência possível possaterminar.- Se não o algoritmo “desce” indefinidamente.43


Inteligência <strong>Artificial</strong>Universidade da MadeiraAlgoritmo Procura emProfundidade Primeiro• FunçãoProcuraProfundidadePrimeiro (problema, insere_pilha): solução oufalha1. i_nós faz_pilha(estado_inicial(problema))2. repete2.1 se vazia_pilha (i_nós) então2.1.1 devolve falhafim_de_se2.2 nón retira_pilha (i_nós)2.3 se teste_objectivo(nó) então2.3.1 devolve nónsenão2.3.2 insere_pilha (i_nós,espansão(nó,operadores(problema)))fim_de_sefim_de_repetefim_de_funçãoProcura Cega• Em Largura Primeiro (Breath(- First)• Custo Uniforme (Uniform(- Cost)• Em Profundidade Primeiro (Depth(Depth–First)• Profundidade Limitada (Depth(– Limited)• Aprofundamento Progressivo (Progressive(Depth)• Bidireccional44


Inteligência <strong>Artificial</strong>Universidade da MadeiraProfundidade Limitada (1)• Acabamos de ver que um dos grandes problemas daProcura em Profundidade Primeiro prende-se com aincapacidade desta lidar com caminhos infinitos.• O algoritmo de Procura em Profundidade Limitadaprocura evitar este problema fixando o nível máximo deprocura.Profundidade Limitada (2)• Neste processo de procura gera-se um sucessor do nó emcada passo.Por exemplo, no primeiro passo gera-se o sucessor do nóinicial.• Assim decidimos que cada vez que temos um nósucessor, aplicamos a este um operador, de modo a obterum novo sucessor, e assim sucessivamente.45


Inteligência <strong>Artificial</strong>Universidade da MadeiraProfundidade Limitada (3)• Em cada nó temos que deixar uma marca, que indica queos operadores adicionais podem utilizar e especificar aordem em que devem ser aplicados.• Uma vez alcançada a profundidade limite, a procura pára oprocesso de sucessores.- Este limite permite-nos desprezar as partes do grafo,em que se supõe que não encontramos um nó objectivo,o suficientemente perto do nó inicial.Algoritmo Procura emProfundidade Limitada• FunçãoProcuraProfundidadeLimitada (problema, insere_pilha,nivel_máx):solução ou falha1. i_nós faz_pilha(estado_inicial(problema))2. repete2.1 se vazia_pilha (i_nós) então2.1.1 devolve falhafim_de_se2.2 nón retira_pilha (i_nós)2.3 se teste_objectivo(nó) então2.3.1 devolve nónsenão2.3.2 insere_pilha (i_nós,espansão(nó,operadores_Nmx(problema)))fim_de_sefim_de_repetefim_de_função46


Inteligência <strong>Artificial</strong>Universidade da MadeiraProcura Cega• Em Largura Primeiro (Breath(- First)• Custo Uniforme (Uniform(- Cost)• Em Profundidade Primeiro (Depth(Depth–First)• Profundidade Limitada (Depth(– Limited)• Aprofundamento Progressivo (Progressive(Depth)• BidireccionalAprofundamento Progressivo (1)• Como já vimos, se não conhecermos o valor limitemáximo, estaremos condenados a uma estratégia deprocura em profundidade primeiro e temos que lidar como problema dos caminhos infinitos.• A resposta a este problema passa pela alteração doprincipio da procura limitada fazendo variar esse limiteentre zero e infinito.47


Inteligência <strong>Artificial</strong>Universidade da MadeiraAprofundamento Progressivo (2)• Assim, o algoritmo consiste na chamada repetida doalgoritmo de procura limitada para valores crescentes dolimite máximo.• Este algoritmo combina aspectos positivos da procuraem largura e da procura em profundidade.• Assim o problema dos caminhos infinitos desaparece.Aprofundamento Progressivo (3)48


Inteligência <strong>Artificial</strong>Universidade da MadeiraAprofundamento Progressivo (4)Aprofundamento Progressivo (5)49


Inteligência <strong>Artificial</strong>Universidade da MadeiraAprofundamento Progressivo (6)Aprofundamento Progressivo (7)• O algoritmo de procura por aprofundamentoprogressivo é uma excelente opção para problemas emque somos obrigados a recorrer a um método cego.• O espaço de procura é grande, mas não sabemos qual éo nível máximo em que pode estar uma solução.50


Inteligência <strong>Artificial</strong>Universidade da MadeiraAlgoritmo Procura emAprofundamento Progressivo• FunçãoProcuraAprofundamentoProgressivo (problema, insere_pilha):solução ou falha1. para nivél 0 até infinito faz1.1 se procura ProcuraProfundidadeLimitada (problema,insere_pilha,nivél) então1.1.1 devolve soluçãofim_de_sefim_de_parafim_de_funçãoProcura Cega• Em Largura Primeiro (Breath(- First)• Custo Uniforme (Uniform(- Cost)• Em Profundidade Primeiro (Depth(Depth–First)• Profundidade Limitada (Depth(– Limited)• Aprofundamento Progressivo (Progressive(Depth)• Bidireccional51


Inteligência <strong>Artificial</strong>Universidade da MadeiraBusca Bidirecional (1)• Busca em duas direcções:• para frente, a partir do nóninicial, e• para trás, a partir do nónfinal (objectivo).• A procura pára pquando os dois processos geram ummesmo estado intermediário.rio.• É possível utilizar estratégiasdiferentes em cadadirecção da procura.Busca Bidirecional (2)• Custo de tempo:• Se o factor de expansão b nas duas direções, e aprofundidade do último nóngerado é d: O(2b d/2 ) = O (b(d/2• Custo de memória:O (b(d/2)• Procura para trás s gera antecessores do nónfinal• se os operadores são reversíveisveis:• conjunto de antecessores do nó n = conjunto de sucessores do nón• porém, esses operadores podem gerar árvoresinfinitas!• caso contráriorio, , a geração de antecessores fica muito difícil• descrição desse conjunto é uma propriedade abstracta• Ex.: como determinar exatamente todos os estados queprecedem um estado de xeque-mate?• Problemas também m quando existem muitos estados finais(objectivos) no problema./2)52


Inteligência <strong>Artificial</strong>Universidade da MadeiraComparação das DiversasEstratégias de BuscaCritério Largura CustoUniformeProfundidadeAprofundamentoIterativoTempo b d b d b m b dEspaço b d b d bm bdOtima? Sim Sim* Não SimCompleta? Sim Sim Não Simb = factor de ramificação; d = profundidade da solução;m = profundidade máxima da árvore de procura; l = limite de profundidade.Conclusão• Os Algoritmos de procura bidireccionalsão deespecial interesse,porque têm o potencial paraprocurar pequenos espaços e reduzemsignificativamente o tempo de funcionamento porimplementação paralela. Enquanto o últimoégeralmente verdade, o primeiro pode ser falso quandoexistem múltiplos mcaminhos de solução comparáveis.• Aplicado de forma incorrecta o método mde procurabidireccional, , pode originar os piores casos de procura,transformando-se se em casos de procuraunidireccionais onde os espaços de procura sãodistantes entre si.53


Inteligência <strong>Artificial</strong>Universidade da MadeiraFontes Consultadas• Russel, Norvig, <strong>Artificial</strong> Intelligence: : A ModernApproach, Cap. . 3.• Costa, Simões, Inteligência <strong>Artificial</strong>.Fundamentos e Aplicaçõesões. Cap 3.2.• Kvitca, , Adolfo Resolución n de problemas coninteligencia artificial. Editorial Kapeluz.• Acetatos Prof. Guillermo Simari. UniversidadNacional del Sur, , Argentina• Acetatos Alunos IIA semestre 2005/2006• Acetatos Prof. Geber Ramalho. CIN.Universidade Federal de Pernambuco, Brasil.LeiturasLIVROS• Russel, Norvig, <strong>Artificial</strong> Intelligence: : AModern Approach, Cap. . 3.• Costa, Simões, Inteligência <strong>Artificial</strong>.Fundamentos e Aplicaçõesões. Cap 3.2.54


Inteligência <strong>Artificial</strong>Universidade da MadeiraFIM55

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!