Faculdade Alagoana de Administração FAA Ciência da Computação (Resolução de Problemas em) Espaço de Estados (Adaptado de O.B. Coelho & G. Bittencourt & C. Moraes) Maria Aparecida Amorim Sibaldo maasibaldo@gmail.com Maceió, 2010
Resolução de Problemas como Busca num Espaço de Estados Para construir um sistema para resolver um problema dado precisamos: formular objetivos, com base na situação atual e numa medida de desempenho do agente. A formulação de um problema é o processo de escolher, dado um objetivo, quais estados e quais ações devem ser considerados.
Resolução de Problemas como Busca num Espaço de Estados Para construir um sistema para resolver um problema em particular nós precisamos: definir o problema precisamente (inclusive definindo quais estados finais constituem soluções para o problema); analizar o problema; identificar e representar o conhecimento específico à tarefa que é necessário para se resolver o problema e aplicar as técnicas de resolução de problemas mais adequadas para o problema em particular.
Resolução de Problemas como Busca num Espaço de Estados Podemos representar a solução de problemas como uma seqüência de estados, que leva de um estado inicial até um estado final, onde cada estado é um estado admissível, i.e., produzido a partir de um estado anterior através de uma ação uma mudança de estados admissível.
Resolução de Problemas como Busca num Espaço de Estados Podemos representar as mudanças de estado admissíveis de várias formas; Principalmente por meio de regras de produção, que são estruturas da forma SE P ENTÃO R onde: P é o antecedente (ou lado esquerdo) e R é o resultado (ou lado direito) da regra. Uma questão importante é: quanto do conhecimento sobre a solução do problema deve ser embutido nas regras de produção?
Descrição Formal de Problemas i. Defina um espaço de estados que contenha todas as possíveis configurações das entidades relevantes; ii. Especifique um ou mais dentre os estados que correspondem ao estados iniciais: estados a partir dos quais o processo de resolução de problemas pode se iniciar; iii. Especifique um ou mais estados-objetivo: estados que representam soluções aceitáveis do problema; iv. Especifique um conjunto de regras que descreva os operadores as ações disponíveis; em particular, decida quanto do conhecimento sobre a solução do problema será embutido nessas regras.
Solucionando o problema: formulação, busca e execução Formulação do problema e do objetivo: quais são os estados e as ações a considerar? qual é (e como representar) o objetivo? Busca (solução do problema): processo que gera/analisa seqüências de ações para alcançar um objetivo solução = caminho entre estado inicial e estado final. custo do caminho = qualidade da solução Execução: executar a solução completa encontrada, ou intercalar execução com busca: planejamento
Exemplos de formulação de problema Jogos dos 8 números: estados = cada possível configuração do tabuleiro estado inicial = qualquer um dos estados possíveis teste de término = ordenado, com branco na posição [3,3] operadores = mover branco (esquerda, direita, para cima e para baixo) custo do caminho = número de passos da solução
Árvore de busca para o jogo dos 8 números
Resolução de Problemas como Busca num Espaço de Estados Estado inicial Um estado final que não é um estado objetivo Um estado final que também é um estado objetivo
Resolução de Problemas como Busca num Espaço de Estados
O Problema das 8 Rainhas Colocar oito rainhas em um tabuleiro de xadrez (8 casas 8 casas) de maneira que nenhuma rainha ameace uma outra, isto é, as rainhas não devem compartilhar colunas, linhas ou diagonais do tabuleiro.
Importância da Formulação Formulação A Estados: qualquer configuração com n 8 rainhas Operadores: adicionar uma rainha a qualquer quadrado Espaço: 64^8 possibilidades; vai até o fim para testar se dá certo Formulação B Estados: configuração com 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 Espaço: 2057 possibilidades; melhor que o anterior, mas pode não haver ação possível Formulação C Estados: configuração com 8 rainhas, uma em cada coluna Operadores: mover uma rainha atacada para outra casa na mesma coluna
Resolução de Problemas como Busca num Espaço de Estados Busca é a técnica geral de exploração do espaço de estados; de modo a se achar uma seqüência de estados que leve de um estado inicial a um estado objetivo. A busca se dá construindo (e podando) uma árvore de busca a árvore onde cada nó é um elemento do espaço de estados e cada ramo que é aberto define uma seqüência de estados, representando uma possível solução para o problema.
Resolução de Problemas como Busca num Espaço de Estados Se, durante a resolução do problema, podemos atingir o mesmo estado por caminhos diferentes, então a árvore de busca é na verdade um grafo (algoritmos de percorrimento de grafos são diferentes de algoritmos de percorrimento de árvores). Cada mudança de estados pode ser caracterizada pela aplicação de uma regra de produção.
Resolução de Problemas como Busca num Espaço de Estados Resolução de Problemas = descrição formal de problemas + uso de uma estratégia de controle da busca, que leve de um estado inicial a um estado-objetivo. Busca: é um mecanismo geral; um método fraco; em oposição a métodos baseados em conhecimento sobre a solução do problema.
Estratégias de Controle da Busca A busca se dá construindo uma árvore de busca: saindo de um dos estados iniciais e aplicando uma seqüência de operadores, construa um ramo da árvore que conduza a um estado-objetivo. A questão: que estratégia seguir para desenvolver a árvore de busca? a cada instante, que nó escolher para desenvolver? As duas principais estratégias de controle da busca que não são guiadas por conhecimento (i.e., cegas) são: em largura ou em profundidade.
Problemas clássicos de busca em espaço de estados Caixeiro viajante Quebra-cabeça dos 8 números Os missionários e os canibais O homem, o lobo, o carneiro e o cesto de alface Torre de Hanói Problema dos baldes
O Caixeiro Viajante Um caixeiro viajante deseja visitar N cidades, através de uma rota com custo o menor possível, que inclua cada uma das N cidades, apenas uma vez, e que o ponto de partida também é o de chegada.
Os Missionários e os Canibais Três missionários e três canibais estão à beira de um rio e dispõem de um barco com capacidade para apenas duas pessoas. O problema é determinar as tripulações de uma série de travessias de maneira que todo o grupo passe para o outro lado do rio, respeitada a condição de que em momento algum os canibais sejam mais numerosos do que os missionários em uma das margens do rio.
O Homem, o Lobo, o Carneiro e o Cesto de Alface Uma pessoa, um lobo, um carneiro e um cesto de alface estão à beira de um rio. Dispondo de um barco no qual pode carregar apenas um dos outros três, a pessoa deve transportar tudo para a outra margem. Determine uma série de travessias que respeite a seguinte condição: em nenhum momento devem ser deixados juntos e sozinhos o lobo e o carneiro, ou o carneiro e o cesto de alface.
Torre de Hanói Existem três mastros e em um deles estão colocados, através de um furo no centro, um certo número de discos. Todos os discos têm diâmetros diferentes, e cada disco repousa sobre um disco de diâmetro maior. O problema é encontrar uma maneira de mover todos os discos de um mastro para outro, respeitando as seguintes condições: Somente um disco pode ser movido por vez, Todos os discos, com exceção do que está sendo movido, devem estar sempre em algum dos mastros, Um disco nunca pode ser colocado sobre outro de diâmetro menor.
Problema dos Baldes Dispondo de uma fonte de água e de dois recipientes com capacidades para 4 e 3 litros, respectivamente, obtenha exatamente 2 litros de água no recipiente com capacidade para 3 litros.
Problema dos Baldes Dispondo de uma fonte de água e de dois recipientes com capacidades para 4 e 3 litros, respectivamente, obtenha exatamente 2 litros de água no recipiente com capacidade para 3 litros. Representação do Problema: ( <conteúdo em 4 litros>, <conteúdo em 3 litros> ) Estado inicial: (0, 0) Estado final: (0, 2) Operadores (x, y {4, 3}): Enche(x) Esvazia(x) Joga(x,y)