Skip to content

Implementando um Aspirador de Pó

Configuração do ambiente

Para executar esta atividade você terá que criar um projeto e como dependência deste projeto instalar a biblioteca AIGYM:

pip install aigyminsper

Esta biblioteca implementa diversos algoritmos de busca que serão utilizados ao longo da disciplina. Além disso, esta biblioteca permite o desenvolvimento de agentes inteligentes através de uma interface padrão.

Exercício: Aspirador de Pó

Para este exercício vamos utilizar o arquivo AgentSpecification.py.

  • Faça uma cópia deste arquivo e chame ele de AspiradorPo.py, por exemplo.
  • No método __init__ defina a estrutura de dados que você especificou na aula passada.
  • No método sucessors codifique a execução das ações segundo o que você especificou na aula passada. Dica: cada novo estado é uma instância de um novo objeto da classe que é adicionado na lista retornada pelo método.
  • Codifique o comportamento do método is_goal. Ele deve retornar True quando encontrar um estado igual a meta.
  • O médoto description() retorna uma descrição do problema que está sendo resolvido. Por favor, altere o que está descrito no método.
  • Faça um retorno para o método env(). Peça para o professor explicar em sala de aula.
  • Altere o método main() para que o mesmo chame a sua classe.
Conceitos que devem ser explorados neste exercício

Representação de um problema na forma de estado, transição, grafo

Conceitos que devem ser explorados neste exercício

Algoritmos de Busca, começando com o algoritmo de busca em largura.

Importante!

Recomenda-se fortemente que todo estudante faça estas atividades em sua máquina. Os problemas podem ser discutidos em grupo, no entanto, cada aluno precisa ter a sua própria implementação.

Exercício 2: Aspirador de Pó com 4 quartos.

Vamos implementar um aspirador de pó que atua em um ambiente com 4 quartos? Um quadrado \(2 \times 2\)?

Mas, antes de implementar usando uma estrutura similar a descrita acima, responda as questões abaixo:

  • O que é relevante representar nos estados do mundo? Como os estados são estruturados (estrutura de dados) e qual o significado dela (dos campos)?
  • Mostre como ficam representados os estados inicial e final segundo a representação adotada.
  • Quais as operações sobre os estados? (detalhe como cada operação irá alterar os estados e quais as condições para cada operação ser executada)
  • Qual a estimativa do tamanho do espaço de busca (número de estados possíveis)?

Exercício 3: Aspirador de Pó com poltrona.

Neste problema os quartos da casa podem possuir poltronas. Para limpar o quarto da casa que tem poltrona o agente deve antes de executar a ação limpar virar a poltrona. Claro que depois de limpar o agente deve também desvirar a poltrona para deixar o quarto em ordem.

Para este problema considere um ambiente (casa) também com 4 quartos (um quadrado \(2 \times 2\)).

Mas, antes de implementar usando uma estrutura similar a descrita acima, responda as questões abaixo:

  • O que é relevante representar nos estados do mundo? Como os estados são estruturados (estrutura de dados) e qual o significado dela (dos campos)?
  • Mostre como ficam representados os estados inicial e final segundo a representação adotada.
  • Quais as operações sobre os estados? (detalhe como cada operação irá alterar os estados e quais as condições para cada operação ser executada)
  • Qual a estimativa do tamanho do espaço de busca (número de estados possíveis)?