Inteligência Artificial Universidade da Madeira Inteligência Artificial Procura Cega Agenda z PARTE 1 z z z z Resoluç Resolução de Problemas Representaç Representação de Problemas / Modelaç Modelação Agente Solucionador de Problemas PARTE 2 z Procura em Espaç Espaço de Estados: z z z Geraç Geração e Teste Implementaç Implementação Modelos de Procura Cega z z z z z z Em Largura Primeiro (Breath - First) Custo Uniforme (Uniform - Cost) Em Profundidade Primeiro (Depth– (Depth–First) Profundidade Limitada (Depth (Depth – Limited) Limited) Aprofundamento Progressivo (Progressive (Progressive Depth) Depth) Bidireccional 1 Inteligência Artificial Universidade da Madeira Resolução de Problemas z Veremos como um agente inteligente pode resolver problemas considerando as diferentes sequências de acções que pode realizar. z Quando um agente exibe este comportamento, orientado a atingir metas particulares diz-se que é um Agente solucionador de problemas. Resolução de Problemas z Este tipo de agente deve ter: z z z z Uma Representaç Representação adequada do seu entorno. Deve conhecer as Acç Acções que pode efectuar. Deve poder Raciocinar sobre o efeito das suas acç acções no ambiente. O raciocí raciocínio neste caso fica reduzido a escolha das acç acções e ao seu efeito sobre o ambiente. 2 Inteligência Artificial Universidade da Madeira O Problema da Representação z z Num sentido geral, concerne à relação existente entre as distintas formas de formular um problema e a eficiência para achar uma solução ao mesmo. Embora um problema possa ser expressado de diversas formas, nem sempre é possível estabelecer uma equivalência formal entre elas. O Problema da Representação z z z A representação de um problema tem uma grande influência no esforço que é requerido para resolve-lo. Um problema raramente resolve-se nos mesmos termos em que foi expressado ao início. Normalmente utilizam-se um conjunto de convenções para representar a informação. Isto chama-se modelar. 3 Inteligência Artificial Universidade da Madeira O Problema da Representação z Quando representamos um problema estamos a criar um modelo do mesmo. Mas, o que é um modelo? O Problema da Representação z z z Um modelo consiste na interpretação de um dado domínio do problema segundo uma determinada estrutura de conceitos. Um esquema é a especificação de um modelo usando uma determinada linguagem, a qual pode ser formal ou informal. Um modelo é uma representação em pequena escala, numa perspectiva particular, de um problema. 4 Inteligência Artificial Universidade da Madeira Os modelos ... z z z Ajudam a visualizar um problema, quer seja a sua situação no passado, presente ou no futuro; Permitem especificar a estrutura ou o comportamento de um problema; Permitem controlar e guiar o processo de resolução de um problema. Abstracção z Abstracção: s. f., acção de abstrair; separação mental de uma das partes de um todo; z Abstracto: adj., que designa uma qualidade separada do objecto a que pertence; 5 Inteligência Artificial Universidade da Madeira Um bom exemplo de modelação … z Quando o primeiro mapa do Underground de Londres foi publicado em 1908, seguia fielmente a geografia das linhas: todas as curvas e voltas das trilhas e a distância relativa entre as estaç estações foram fielmente respeitadas. z Entretanto o propó propósito do mapa era mostrar aos passageiros a ordem das estaç estações em cada linha, e as conexões entre linhas. A fidelidade do mapa dificultava obter essa informaç informação. d e 1 9 0 8 6 Inteligência Artificial Universidade da Madeira Mapa de 1933 Em 1933, o mapa foi substituído por uma representação bem mais abstracta, que mostrava somente a conectividade entre as estações. z Foram abstraídos z z Detalhes da superfície z Distância entre as estações z Orientação das linhas M a p a d e 1 9 3 3 7 Inteligência Artificial Universidade da Madeira Mapa de 1933 z z z O Diagrama deu ás pessoas um bom modelo conceptual; isto é, como podemos ver o sistema do Underground de Londres. É uma especificaç especificação que permite as pessoas entenderem uma implementaç implementação complexa. Alé Além disso, embora sofreu mudanç mudanças e é revisto desde 1931, basicamente continua a ser o mesmo diagrama proposto pelo engenheiro desenhador Harry Beck. Beck. O êxito do diagrama é por causa de: z z Uma apropriada escolha da abstracç abstracção Uma elegante apresentaç apresentação. M a p a A c t u a l 8 Inteligência Artificial Universidade da Madeira M a p a A c t u a l M a p a A c t u a l 9 Inteligência Artificial Universidade da Madeira Características de uma boa Representação z z z Clareza: Deve ser evidente a relação entre o modelo e o problema real. Exactidão: O modelo deve ser fiel á realidade nos aspectos relevantes para a resolução do problema. Completude: O modelo deve representar todos os aspectos relevantes para a resolução do problema. Características de uma boa Representação z z z Eficiência: A representação deve poder ser utilizada em forma eficiente. Conciso: As características irrelevantes devem ser omitidas e os detalhes suprimidos. Utilidade: É importante avaliar se o modelo sugere um bom método para resolver o problema. 10 Inteligência Artificial Universidade da Madeira Hipótese de Representação de Conhecimento (Brian Smith (1982)) Um sistema inteligente utiliza estruturas que: z Podem ser interpretadas como proposições que representam o conhecimento do sistema z Determinam o comportamento do sistema Resolução de Problemas (Acções) z z z O agente deve escolher uma sequência de acções que conduzam-lhe a atingir uma meta desejada. A determinação de escolher entre várias metas possíveis normalmente inclui a ideia de custo. O processo de seleccionar a sequência de acções denomina-se Procura. 11 Inteligência Artificial Universidade da Madeira Agente solucionador de problemas z O agente reactivo z Escolhe suas acç acções com base apenas nas percepç percepções actuais z z z Não tem estado interno Portanto, não pode pensar no futuro Não sabe “para onde vai” vai”. 4 5 8 1 6 7 2 3 z ? 1 2 4 5 7 8 3 6 O Agente solucionador de problemas z Procura uma sequência de acç acções que leve a estados desejá desejáveis (objectivos). Resolução de Problemas: definições Um problema em IA é definido em termos de... 1) um espaç possíveis, incluindo: espaço de estados possí z um estado inicial z um (ou mais) estado final = objectivo z Exemplo 1: dirigir do Funchal ao Porto Moniz z Exemplo 2: jogo de 88-números z z espaç espaço de estados: todas as cidades da Ilha iní início: fim: 4 5 8 1 2 3 4 5 6 1 6 7 2 3 7 8 2) um conjunto de acç acções (ou operadores) operadores) que permitem passar de um estado a outro z Ex1.: dirigir de uma cidade a outra z Ex2.: mover uma peç peça do jogo de 88-números 12 Inteligência Artificial Universidade da Madeira Resolução de Problemas: definições z Definiç Definição do objectivo: z Propriedade abstracta z z Conjunto de estados finais do mundo z z Ex.: estar no Porto Moniz Soluç Solução: z z Ex.: condiç condição de xequexeque-mate no Xadrez Caminho (sequência de acç acções ou operadores) operadores) que leva do estado inicial a um estado final (objectivo). Espaç Espaço de Estados: z Conjunto de todos os estados alcançá veis a partir do estado alcançáveis inicial por qualquer sequência de acç acções. Solucionando o problema: Representação, Procura e Execução z Representaç Representação do problema e do objectivo: z z z Procura (soluç (solução do problema): z z z z Quais são os estados e as acç acções a considerar? Qual é (e como representar) o objectivo? objectivo? Processo que gera/analisa sequências de acç acções para atingir um objectivo. Soluç Solução = caminho entre estado inicial e estado final. Custo do caminho = qualidade da soluç solução. Execuç Execução: ão: z Executar a soluç solução completa encontrada, (procura cega, procura informada, estraté estratégias com adversá adversários). ou z Intercalar execuç execução com procura (planeamento). 13 Inteligência Artificial Universidade da Madeira Regras de Produção Representam conhecimento com pares de condiç condição Æ acç acção z Se a condiç condição (ou premissa ou antecedente) ocorre z Então a acç acção (resultado, conclusão ou consequente) deverá deverá ocorrer. z z z Se o agente percebe luz do freio do carro da frente acesa, então deve travar o carro (regra de acç acção). Se o veí veículo tem 4 rodas e tem um motor então o veí veículo é um automó automóvel (novo conhecimento). São chamadas de regras de produç produção porque, quando utilizadas com raciocí raciocínio progressivo, produzem novos factos a partir dos factos e regras da BC. z Esses novos factos passam a fazer parte da BC. z Exemplo: Problema das Jarras z Temos duas jarras vazias com capacidade de 4 e 3 litros cada uma. Como podemos obter exactamente 2 litros na primeira jarra? As jarras podem ser enchidas, esvaziadas ou pode-se passar o conteúdo de uma jarra para a outra. 14 Inteligência Artificial Universidade da Madeira Exemplo: Problema das Jarras z O estado inicial é [0,0] z A condição de solução é [2,Z], já que não importa o conteúdo da segunda jarra. Exemplo: Problema das Jarras As regras de produç produção são: R1. R1. Encher jarra 1: [X,Y] Æ [4,Y] R2. R2. Encher jarra 2: [X,Y] Æ [X,3] R3. R3. Esvaziar jarra 1: [X,Y] Æ [0,Y] R4. R4. Esvaziar jarra 2: [X,Y] Æ [X,0] R5. R5. Passar o conteú conteúdo de 1 a 2 até até encher 2 [X,Y] / X+Y>=3 Æ [W,3] / W = X+YX+Y-3 R6. R6. Passar todo o conteú conteúdo de 1 a 2 [X,Y] / X+Y<=3 Æ [0,X+Y] R7. R7. Passar o conteú conteúdo de 2 a 1 até até encher 1 [X,Y] / X+Y>=4 Æ [4,Z] / Z = X+YX+Y-4 R8. R8. Passar todo o conteú conteúdo de 2 a 1 [X,Y] / X+Y<=4 Æ [X+Y,0] 15 Inteligência Artificial Universidade da Madeira Exemplo: Problema das Jarras R3. R3. Esvaziar jarra 1: [X,Y] Æ [0,Y] Podemos colocar a pré pré condiç condição X>0 para evitar de usar a regra desnecessariamente. R3. R3. Esvaziar jarra 1: [X,Y] / X > 0 Æ [0,Y] z Exercício: z Achar a solução do Problema das jarras nos próximos 10 minutos. Sistemas de Produção z z São sistemas baseados em regras de produção. Consistem em 3 módulos principais: z A Base de Regras (BR): permanente z A Memó Memória de Trabalho: temporá temporária z Regras de produç produção. z Base de factos derivados durante a “vida” vida” do agente. do agente e factos gerados a partir da BR pelo mecanismo de inferência. z Percepç Percepções z O Mecanismo (má (máquina) de Inferência z Determina o mé método de raciocí raciocínio utilizado (progressivo ou regressivo). z Utiliza estraté estratégias de procura com compromisso (unificaç (unificação). z Resolve conflitos e executa acç acções. 16 Inteligência Artificial Universidade da Madeira Arquitectura dos Sistemas de Produção Memória de Trabalho Base de Regras Conhecimento volátil Conhecimento Permanente • factos • regras de produção Meta-conhecimento • estratégias para resolução de conflito Mecanismo de Inferência • descrição da instância do problema actual • hipóteses actuais • objectivos actuais • resultados intermediários Conjunto de conflito conjunto de possíveis regras a serem disparadas Vantagens e Limitações dos Sistemas de Produção z z Vantagens z As regras são de fá fácil compreensão. z Inferência e explicaç explicações são facilmente derivadas. z Manutenç Manutenção é relativamente simples, devido a modularidade. z São mais eficientes que os sistemas de programaç programação em ló lógica, embora menos expressivos. Desvantagens z Conhecimento complexo requer muitas (milhares de) regras. z Esse excesso de regras cria problemas para utilizaç utilização e manutenç manutenção do sistema. z Não são robustos (tratamento de incerteza). z Não aprendem. 17 Inteligência Artificial Universidade da Madeira Exemplos de formulação de problema z Jogo de 8 nú números: z z z z z estados = cada possí possível configuraç configuração do tabuleiro. estado inicial = qualquer um dos estados possí possíveis. Objectivo = ordenado, com branco na posiç posição [3,3]. custo do caminho = nú número de passos da soluç solução. Exercí Exercício: Pensar as regras de produç produção (5 minutos). Importância da Formulação z Solução 1: z z z z R1. mover 1 para cima R2. mover 1 para a direita etc., 32 regras Solução 2 (o que se move é o espaço vazio) z z z R1. mover vazio para cima R2. mover vazio para a direita etc., somente 4 regras 18 Inteligência Artificial Universidade da Madeira Árvore de procura para o “jogo dos 8 números” up 4 5 8 1 6 7 2 3 down right 5 8 4 1 6 7 2 3 down 4 5 8 1 6 7 2 3 4 5 8 7 1 6 2 3 right 1 2 4 5 7 8 3 6 Importância da formulação z Jogo das 8 Rainhas z dispor 8 rainhas no tabuleiro de forma que não se possam “atacar” atacar”. z z Não pode haver mais de uma rainha em uma mesma linha, coluna ou diagonal. Existem diferentes estados e operadores possí possíveis. z Essa escolha pode ter consequências boas ou nefastas na complexidade da procura ou no tamanho do espaç espaço de estados. 19 Inteligência Artificial Universidade da Madeira Formulações para 8 Rainhas z Formulaç Formulação A z z z z Formulaç Formulação B z z z z estados: qualquer disposiç disposição com n (n £ 8) rainhas. operadores: adicionar uma rainha a qualquer quadrado. 64^8 possibilidades: vai até até o fim para testar se dá dá certo. estados: disposiç disposição com n (n £ 8) rainhas sem ataque mú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ç acção possí possível. Formulaç Formulação C z z estados: disposiç disposição com 8 rainhas, uma em cada coluna. operadores: mover uma rainha atacada para outra casa na mesma coluna. Medida de Desempenho na Procura z Desempenho de um algoritmo de procura: z z 1. O algoritmo encontrou alguma soluç solução? 2. É uma boa soluç solução? z custo z 3. É uma soluç solução computacionalmente barata? z custo z da procura (tempo e memó memória). Custo total z z de caminho (qualidade da soluç solução). custo do caminho + custo de procura Espaço de estados grande: z compromisso (conflito) entre a melhor soluç solução e a soluç solução mais barata. 20 Inteligência Artificial Universidade da Madeira Custo diferente => Solução diferente z Função de custo de caminho z z z z Solução mais barata: z z z z (1) nú número de cidades visitadas, (2) distância entre as cidades, (3) tempo de viagem, etc. (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á clássicos z z z z z z z z z z Torre de Hanoi Missioná Missionários e Canibais Jarro d’á gua d’água Jogo dos 8 nú números Mundo dos blocos Caixeiro viajante Labirinto Lobo, ovelha e verdura Travessia da ponte ... 21 Inteligência Artificial Universidade da Madeira z Problemas clá clássicos z z z z z z z Xadrez Bridge Gamão Go Mancala Damas ... SEND SEND ++ MORE MORE ------------MONEY MONEY Aplicações: Problemas Reais z Cálculo de rotas rotas em redes de computadores. z sistemas de planeamento de viagens. z planeamento de rotas de aviões. z Caixeiro viajante. z z Alocação (Scheduling) Salas de aula. z Máquinas industriais (job shop). z 22 Inteligência Artificial Universidade da Madeira Aplicações: Problemas Reais z Navegação de robots: z z generalizaç generalização do problema da navegaç navegação. Os robots movemmovem-se em espaç espaços contí contínuos, com um conjunto (infinito) de possí possíveis acç acções e estados z controlar os movimentos do robot no chão, dos seus braç ç os e pernas requer espaç bra espaço multimulti-dimensional. dimensional. z Montagem de objectos complexos por robots: z z ordenar a montagem das diversas partes do objecto etc... FIM PARTE 1 23 Inteligência Artificial Universidade da Madeira Agenda z PARTE 1 z z z z Resoluç Resolução de Problemas Representaç Representação de Problemas / Modelaç Modelação Agente Solucionador de Problemas PARTE 2 z Procura em Espaç Espaço de Estados: z z z Geraç Geração e Teste Implementaç Implementação Modelos de Procura Cega z z z z z z Em Largura Primeiro (Breath (Breath - First) First) Custo Uniforme (Uniform (Uniform - Cost) Cost) Em Profundidade Primeiro (Depth –First) (Depth– First) Profundidade Limitada (Depth (Depth – Limited) Limited) Aprofundamento Progressivo (Progressive (Progressive Depth) Depth) Bidireccional Procura em Espaço de Estados z z z Uma vez que o problema é bem formulado... o estado final deve ser “procurado”. Em outras palavras, deve-se usar um método de procura para saber a ordem correcta de aplicação dos operadores que levará do estado inicial ao final. Uma vez a procura terminada com sucesso, é só executar a solução (= conjunto ordenado de operadores a aplicar). 24 Inteligência Artificial Universidade da Madeira Procura em Espaço de Estados: Geração e Teste z Fronteira do espaç espaço de estados z Algoritmo: Algoritmo: z nós (estados) a serem expandidos no momento. Obs.: o algoritmo começ começa com a fronteira contendo o estado inicial do problema. 1. Seleccionar o primeiro nó nó (estado) da fronteira do espaç espaço de estados; - se a fronteira está está vazia, o algoritmo termina com falha. falha. 2. Testar se o nó nó é um estado final (soluç (solução): - se “sim, então retornar nó nó - a procura termina com sucesso. sucesso. 3. Gerar um novo conjunto de estados pela aplicaç aplicação dos operadores ao estado seleccionado; 4. Inserir os nó nós gerados na fronteira, fronteira, de acordo com a estraté estratégia de procura usada, e voltar para o passo (1). Procura em Espaço de Estados: Implementação z Espaç Espaços de Estados z z podem ser representados como uma árvore onde os estados são nó nós e as operaç operações são arcos. Os nó nós da árvore podem guardar mais informaç informação do que apenas o estado: → são uma estrutura de dados com 5 componentes: 1. o estado correspondente 2. o seu nó nó pai 3. o operador aplicado para gerar o nó nó (a partir do pai) 4. a profundidade do nó nó 5. o custo do nó nó (desde a raiz) 25 Inteligência Artificial Universidade da Madeira Procura em Espaço de Estados: implementação Algoritmo: Algoritmo: Funç Funçãoão-Insere: Insere: controla a ordem de inserç inserção de nó nós na fronteira do espaç espaço de estados. funç função ProcuraProcura-Gené Genérica (problema, problema, Funç Funçãoão-Insere) Insere) retorna uma soluç solução ou falha fronteira ← FazFaz-Fila (Faz(Faz-Nó (Estado(Estado-Inicial [problema [problema]] ) ) loop do se fronteira está está vazia então retorna falha nó ← RemoveRemove-Primeiro (fronteira (fronteira)) se TesteTeste-Término [problema [problema]] aplicado a Estado [n [nó] tiver sucesso então retorna nó ma]) fronteira ← Funç Funçãoão-Insere (fronteira (fronteira,, Operadores [proble [problema]) Métodos de Procura z Procura exaustiva - cega z Não sabe qual o melhor nó da fronteira a ser expandido = menor custo de caminho desse nó nó até até um nó final (objectivo). (objectivo). z Estraté Estratégias de Procura (ordem de expansão dos nó nós): z Direcç Direcção de Procura: z z z z Do estado inicial para o objectivo Do objectivo para o estado inicial Procura Bidireccional Procura heurí heurística – informada z z z Estima qual o melhor nó nó da fronteira a ser expandido com base em funç funções heurí heurísticas => conhecimento. Estraté Estratégia de procura: (melhor escolha baseada na funç função heurí heurística). Direcç Direcção de Procura: idem à procura cega. 26 Inteligência Artificial Universidade da Madeira Critérios de Avaliação das Estratégias de Procura z Completude: z z Custo do tempo: z z Quanto tempo gasta para encontrar uma soluç solução? Custo de memória: z z A estraté estratégia encontra sempre uma soluç solução? Quanta memó memória é necessá necessária para realizar a procura? Optimização/qualidade (optimality): z A estraté estratégia encontra a melhor soluç solução quando existem diferentes soluç ç ões? solu Procura Cega Em Largura Primeiro (Breath - First) z Custo Uniforme (Uniform - Cost) z Em Profundidade Primeiro (Depth–First) z Profundidade Limitada (Depth – Limited) z Aprofundamento Progressivo (Progressive Depth) z Bidireccional z 27 Inteligência Artificial Universidade da Madeira Procura Cega Notação z b = factor de ramificação; z d = profundidade da solução; m = profundidade máxima da árvore de procura; z l = limite de profundidade. Procura em Largura(1) z z Procura em largura: largura: o nó nó de menor profundidade, mais á esquerda é escolhido para gerar sucessores. O nó nó raiz é expandido primeiro z z z todos os nó nós gerados são explorados; todos os sucessores dos antecessores são explorados; e assim sucessivamente. z “Os nó nós de profundidade d são explorados antes dos nós de profundidade d+1” d+1” z function BREADTHBREADTH-FIRSTFIRST-SEARCH (problem) return solution return GENERALGENERAL-SEARCH(problem, ENQUEUEENQUEUE-ATATEND) z 28 Inteligência Artificial Universidade da Madeira Procura em Largura(2) Se existe solução será encontrada. z A solução encontrada primeiro será a de menor profundidade. z Completa e óptima. z Factor de ramificação (b) z z deve-se considerar tempo e memória; z solução com profundidade d. z1 + b2+ b3+ ... + bd Procura em Largura(3) 29 Inteligência Artificial Universidade da Madeira Procura em Largura(4) Procura em Largura(5) 30 Inteligência Artificial Universidade da Madeira Procura em Largura(6) Procura em Largura(7) 31 Inteligência Artificial Universidade da Madeira Procura em Largura(8) Algoritmo Procura em Largura Primeiro Funç Função ProcuraLarguraPrimeiro (problema, insere_fila): insere_fila): soluç solução ou falha 1. i_nó i_nós faz_fila(estado_inicial(problema)) faz_fila(estado_inicial(problema)) 2. repete 2.1 se vazia_fila (i_nó i_nós) então 2.1.1 devolve falha fim_de_se 2.2 nó nó retira_fila (i_nó i_nós) 2.3 se teste_objectivo(nó teste_objectivo(nó) então 2.3.1 devolve nó nó senão 2.3.2 insere_fila (i_nó i_nós,espansão(nó s,espansão(nó,operadores(problema))) ,operadores(problema))) fim_de_se fim_de_repete fim_de_funç fim_de_função 32 Inteligência Artificial Universidade da Madeira Procura Cega Em Largura Primeiro (Breath - First) z Custo Uniforme (Uniform - Cost) z Em Profundidade Primeiro (Depth–First) z Profundidade Limitada (Depth – Limited) z Aprofundamento Progressivo (Progressive Depth) z Bidireccional z Custo Uniforme(1) A estratégia de procura uniforme é uma pequena modificação da estratégia de procura em largura. Na procura em largura, primeiro expande-se o nó raiz, depois todos os nós gerados por esse, e assim sucessivamente até que se chegue ao estado meta, ou seja, todos os nós que estão numa profundidade d da árvore serão expandidos e visitados antes que os nós que estão numa profundidade d+1. 33 Inteligência Artificial Universidade da Madeira Custo Uniforme(2) A estraté estratégia de procura uniforme é basicamente a mesma coisa. z Invé Invés de começ começar no primeiro nó nó expandido, que está está na lista aguardando processamento, o nó )) nó que possui o menor custo (g(N (g(N)) será será escolhido para ser expandido. Se certas condiç condições forem cumpridas, garantegarante-se que a primeira soluç solução encontrada será será a mais barata. Uma das condiç condições é a seguinte: z o custo do caminho nunca deve ir diminuindo conforme avanç avançamos, noutras palavras, é importante que: g (Sucessor )>= g (N (Sucessor)>= (N) em todos os nó nós N, g (N) é o custo conhecido de ir da raiz até até o nódulo N. Custo Uniforme(3) Abaixo apresentamos o pseudo có código do mesmo. Algoritmo Procura – Uniforme 1. Definir um conjunto L de nó nós iniciais 2. Ordenar L em ordem crescente de custo 3. Se L é vazio Então a Procura não foi bem sucedida Senão seja n o primeiro nó nó de L; 4. Se n é um nó nó objectivo Então Retornar caminho do nó nó inicial até até N; Parar Senão Remover n de L; Adicionar em L todos os nó nós filhos de n, rotulando cada nó nó com o seu caminho até até o nó nó inicial; Ordenar L em ordem crescente de custo; Voltar ao passo 3. 34 Inteligência Artificial Universidade da Madeira Custo Uniforme(4) Aná Análise da Complexidade O custo de espaç espaço e tempo, referente a estraté estratégia de procura uniforme, pode ser visualizado no quadro abaixo: Profundidade Nó s Tempo Memó Memória 0 1 1 milisegundo 100 bytes 2 111 0.1 segundos 11 kilobytes 4 11,111 11 segundos 6 106 18 minutos 1 megabytes 8 108 31 horas 10 1010 128 dias 1 terabyte 12 1012 35 anos 111 terabytes 14 1014 3500 anos 111 megabytes 11 gigabytes 11,111 terabytes Quadro 1: Tempo, memória e nós gerados para se chegar ao estado meta Custo Uniforme(5) Resumo z Princí Princípio: pio: expandir sempre o nó nó da fronteira com menor custo (dado pela funç função g (n)). z Este mé método é equivalente à procura em largura primeiro quando g (n) = profundidade (n (n). z Caracterí Características: sticas: z z É completo É óptimo function UNIFORMUNIFORM-COSTCOST-SEARCH (problem) returns solution return GENERALGENERAL-SEARCH (problem, COSTCOST-FN,ENQUEUEFN,ENQUEUE-ATAT-END) z 35 Inteligência Artificial Universidade da Madeira Custo Uniforme(6) Algoritmo Procura Custo Uniforme Funç Função ProcuraCustoUniforme (problema, insere_ordem_fila): insere_ordem_fila): soluç solução ou falha 1. i_nó i_nós faz_fila(estado_inicial(problema)) faz_fila(estado_inicial(problema)) 2. repete 2.1 se vazia_fila (i_nó i_nós) então 2.1.1 devolve falha fim_de_se 2.2 nó nó retira_fila (i_nó i_nós) 2.3 se teste_objectivo(nó teste_objectivo(nó) então 2.3.1 devolve nó nó senão 2.3.2 insere_ordem_fila (i_nó s,espansão(nó,operadores(problema))) ,operadores(problema))) i_nós,espansão(nó fim_de_se fim_de_repete fim_de_funç fim_de_função z 36 Inteligência Artificial Universidade da Madeira Procura Cega Em Largura Primeiro (Breath - First) z Custo Uniforme (Uniform - Cost) z Em Profundidade Primeiro (Depth–First) z Profundidade Limitada (Depth – Limited) z Aprofundamento Progressivo (Progressive Depth) z Bidireccional z Profundidade Primeiro(1) z Ordem de expansão dos nó nós: z sempre expande o nó nó no nível mais profundo da árvore: 1. nó nó raiz 2. primeiro nó nó de profundidade 1 3. primeiro nó nó de profundidade 2, etc. z z Quando um nó nó final não é soluç solução, o algoritmo volta para expandir os nó nós que ainda estão na fronteira do espaç espaço de estados. Algoritmo: funç função ProcuraProcura-emem-Profundidade (problema) problema) retorna uma soluç solução ou falha BuscaBusca-Gené Genérica (problema, problema, InsereInsere-nono-Começ Começo) 37 Inteligência Artificial Universidade da Madeira Profundidade Primeiro(2) • O nó de maior profundidade mais a esquerda é escolhido para gerar sucessores. • Quando é expandido um nó de maior profundidade, a procura chega a um nó sem sucessor, logo o algoritmo expande o próximo nó com menor profundidade. Profundidade Primeiro(2) 38 Inteligência Artificial Universidade da Madeira Profundidade Primeiro(3) Profundidade Primeiro(4) 39 Inteligência Artificial Universidade da Madeira Profundidade Primeiro(5) Profundidade Primeiro(6) 40 Inteligência Artificial Universidade da Madeira Profundidade Primeiro(7) Profundidade Primeiro(8) 41 Inteligência Artificial Universidade da Madeira Profundidade Primeiro(9) Profundidade Primeiro(10) 42 Inteligência Artificial Universidade da Madeira Profundidade Primeiro(11) z Esta estraté estratégia não é completa nem é óptima. ptima. z Custo de memó memória: z manté mantém na memó memória o caminho que está está sendo expandido no momento, e os nó nós irmãos dos nó nós no caminho (para possibilitar o backtracking) backtracking) ⇒ necessita armazenar apenas b.m nós para um espaç espaço de estados com factor de expansão b e profundidade m, onde m pode ser maior que d (profundidade da 1a. soluç solução). z Custo de tempo: z O (b m), no pior caso. z Para problemas com vá várias soluç soluções, esta estraté estratégia pode ser bem mais rá rápida do que procura em largura. z Esta estraté estratégia deve ser evitada quando as árvores geradas são muito profundas ou geram caminhos infinitos. infinitos. Profundidade Primeiro(12) Vantagem: • Requer pouca memória - O nó objectivo pode vir a ser encontrado sem examinar a árvore por completo. Desvantagem: • É importante que cada sequência possível possa terminar. - Se não o algoritmo “desce” indefinidamente. 43 Inteligência Artificial Universidade da Madeira Algoritmo Procura em Profundidade Primeiro Funç Função ProcuraProfundidadePrimeiro (problema, insere_pilha): insere_pilha): soluç solução ou falha 1. i_nó i_nós faz_pilha(estado_inicial(problema)) faz_pilha(estado_inicial(problema)) 2. repete 2.1 se vazia_pilha (i_nó i_nós) então 2.1.1 devolve falha fim_de_se 2.2 nó nó retira_pilha (i_nó i_nós) 2.3 se teste_objectivo(nó teste_objectivo(nó) então 2.3.1 devolve nó nó senão 2.3.2 insere_pilha (i_nó s,espansão(nó,operadores(problema))) ,operadores(problema))) i_nós,espansão(nó fim_de_se fim_de_repete fim_de_funç fim_de_função z Procura Cega Em Largura Primeiro (Breath - First) z Custo Uniforme (Uniform - Cost) z Em Profundidade Primeiro (Depth–First) z Profundidade Limitada (Depth – Limited) z Aprofundamento Progressivo (Progressive Depth) z Bidireccional z 44 Inteligência Artificial Universidade da Madeira Profundidade Limitada (1) • Acabamos de ver que um dos grandes problemas da Procura em Profundidade Primeiro prende-se com a incapacidade desta lidar com caminhos infinitos. • O algoritmo de Procura em Profundidade Limitada procura evitar este problema fixando o nível máximo de procura. Profundidade Limitada (2) • Neste processo de procura gera-se um sucessor do nó em cada 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 obter um novo sucessor, e assim sucessivamente. 45 Inteligência Artificial Universidade da Madeira Profundidade Limitada (3) • Em cada nó temos que deixar uma marca, que indica que os operadores adicionais podem utilizar e especificar a ordem em que devem ser aplicados. • Uma vez alcançada a profundidade limite, a procura pára o processo 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 em Profundidade Limitada Funç Função ProcuraProfundidadeLimitada (problema, insere_pilha,nivel_má insere_pilha,nivel_máx): soluç solução ou falha 1. i_nó i_nós faz_pilha(estado_inicial(problema)) faz_pilha(estado_inicial(problema)) 2. repete 2.1 se vazia_pilha (i_nó i_nós) então 2.1.1 devolve falha fim_de_se 2.2 nó nó retira_pilha (i_nó i_nós) 2.3 se teste_objectivo(nó teste_objectivo(nó) então 2.3.1 devolve nó nó senão 2.3.2 insere_pilha (i_nó i_nós,espansão(nó s,espansão(nó,operadores_Nmx(problema))) ,operadores_Nmx(problema))) fim_de_se fim_de_repete fim_de_funç fim_de_função z 46 Inteligência Artificial Universidade da Madeira Procura Cega Em Largura Primeiro (Breath - First) z Custo Uniforme (Uniform - Cost) z Em Profundidade Primeiro (Depth–First) z Profundidade Limitada (Depth – Limited) z Aprofundamento Progressivo (Progressive Depth) z Bidireccional z Aprofundamento Progressivo (1) • Como já vimos, se não conhecermos o valor limite máximo, estaremos condenados a uma estratégia de procura em profundidade primeiro e temos que lidar com o problema dos caminhos infinitos. • A resposta a este problema passa pela alteração do principio da procura limitada fazendo variar esse limite entre zero e infinito. 47 Inteligência Artificial Universidade da Madeira Aprofundamento Progressivo (2) • Assim, o algoritmo consiste na chamada repetida do algoritmo de procura limitada para valores crescentes do limite máximo. • Este algoritmo combina aspectos positivos da procura em largura e da procura em profundidade. • Assim o problema dos caminhos infinitos desaparece. Aprofundamento Progressivo (3) 48 Inteligência Artificial Universidade da Madeira Aprofundamento Progressivo (4) Aprofundamento Progressivo (5) 49 Inteligência Artificial Universidade da Madeira Aprofundamento Progressivo (6) Aprofundamento Progressivo (7) • O algoritmo de procura por aprofundamento progressivo é uma excelente opção para problemas em que 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 Artificial Universidade da Madeira Algoritmo Procura em Aprofundamento Progressivo Funç Função ProcuraAprofundamentoProgressivo (problema, insere_pilha): insere_pilha): soluç solução ou falha 1. para nivé nivél 0 até até infinito faz 1.1 se procura ProcuraProfundidadeLimitada (problema, insere_pilha,nivé insere_pilha,nivél) então 1.1.1 devolve soluç solução fim_de_se fim_de_para fim_de_funç fim_de_função z Procura Cega Em Largura Primeiro (Breath - First) z Custo Uniforme (Uniform - Cost) z Em Profundidade Primeiro (Depth–First) z Profundidade Limitada (Depth – Limited) z Aprofundamento Progressivo (Progressive Depth) z Bidireccional z 51 Inteligência Artificial Universidade da Madeira Busca Bidirecional (1) z Busca em duas direcç direcções: z z z z para frente, a partir do nó nó inicial, e para trá trás, a partir do nó nó final (objectivo). A procura pá pára quando os dois processos geram um mesmo estado intermediá intermediário. É possí possível utilizar estraté estratégias diferentes em cada direcç direcção da procura. Busca Bidirecional (2) z Custo de tempo: z z z Se o factor de expansão b nas duas direç direções, e a profundidade do último nó nó gerado é d: O(2bd/2) = O (b (bd/2) Custo de memó memória: O (b (bd/2) Procura para trá trás gera antecessores do nó nó final z z se os operadores são reversí reversíveis: veis: z conjunto de antecessores do nó nó = conjunto de sucessores do nó nó z poré porém, esses operadores podem gerar árvores infinitas! infinitas! caso contrá contrário, rio, a geraç geração de antecessores fica muito difí difícil z z z descriç descrição desse conjunto é uma propriedade abstracta Ex.: como determinar exatamente todos os estados que precedem um estado de xequexeque-mate? Problemas també também quando existem muitos estados finais (objectivos) no problema. 52 Inteligência Artificial Universidade da Madeira Comparação das Diversas Estratégias de Busca Critério Largura Custo Uniforme Profundidade Tempo bd bd bm Aprofundamento Iterativo bd Espaço bd bd bm bd Otima? Sim Sim* Não Sim Completa? Sim Sim Não Sim b = factor de ramificação; d = profundidade da solução; m = profundidade máxima da árvore de procura; l = limite de profundidade. Conclusão z Os Algoritmos de procura bidireccional são de especial interesse, porque têm o potencial para procurar pequenos espaç e reduzem espaços significativamente o tempo de funcionamento por implementaç implementação paralela. Enquanto o último é geralmente verdade, o primeiro pode ser falso quando existem mú múltiplos caminhos de soluç solução compará comparáveis. z Aplicado de forma incorrecta o mé método de procura bidireccional, bidireccional, pode originar os piores casos de procura, transformandoem casos de procura transformando-se unidireccionais onde os espaç ç os de procura são espa distantes entre si. 53 Inteligência Artificial Universidade da Madeira Fontes Consultadas z z z z z z Russel, Norvig, Artificial Intelligence: A Modern Approach, Cap. 3. Costa, Simões, Inteligência Artificial. Fundamentos e Aplicações. Cap 3.2. Kvitca, Adolfo Resolución de problemas con inteligencia artificial. Editorial Kapeluz. Acetatos Prof. Guillermo Simari. Universidad Nacional del Sur, Argentina Acetatos Alunos IIA semestre 2005/2006 Acetatos Prof. Geber Ramalho. CIN. Universidade Federal de Pernambuco, Brasil. Leituras LIVROS z Russel, Norvig, Artificial Intelligence: A Modern Approach, Cap. 3. z Costa, Simões, Inteligência Artificial. Fundamentos e Aplicações. Cap 3.2. 54 Inteligência Artificial Universidade da Madeira FIM 55