Skip to content

Implementando um Aspirador de Pó

Importante!

As orientações sobre a entrega deste exercício estão abaixo. Este é um exercício individual. Os alunos poderão discutir sobre o problema, mas a implementação deve ser feita individualmente. Se usarem ferramentas de IA então tentem entender o que a ferramenta de IA está fazendo.

Importante 2!

Neste tipo de exercício é muito comum as ferramentas de IA gerarem código que não funciona. Por isso, se usarem ferramentas de IA, tentem entender o que a ferramenta de IA está fazendo. Se o código gerado não funcionar, tente entender o que a ferramenta de IA fez e corrija o código. Nem o professor da discipina, nem o ninja poderão ajudar a corrigir o código gerado por ferramentas de IA.

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. Para entender melhor como esta biblioteca funciona, por favor, leia a documentação oficial da biblioteca em https://insper.github.io/ai_gym/.

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. Não esqueça de alterar o nome da classe dentro do arquivo.
  • No método __init__ defina a estrutura de dados que você especificou na aula passada.
  • No método successors 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.

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)?