MAC 5789

Laboratório de Inteligência Artificial 2003

Projeto II

Planejamento em Inteligência Artificial


Início das aulas: 01/04/2003
Data de entrega do Projeto: 05/05/2003
Local: sala 259 - Bloco A
Professora: Leliane Nunes de Barros
Assistente: Aldebaran Perseke  --   mail: aldeba@ime.usp.br


Notas de aula
    Aula  introdutória sobre a área de Planejamento em Inteligência Artificial
    Especificação do projeto: Planejador de Busca Local

Especificação do projeto

Implementação do Planejador

Construir um sistema de planejamento que receba como entrada um conjunto de ações proposicionais, uma descrição do estado inicial e estado meta (ou estado objetivo) e devolva um plano de ações que, quando executadas, transformam o estado inicial no estado meta.

Serão dadas duas especificações de domínios de planejamento: Mundo dos Blocos e Satélite. Esses domínios são descritos na linguagem PDDL e são do tipo STRIPS com variáveis (schemas). Para a geração das ações proposicionais os alunos poderão usar um programa dado.

O algoritmo de planejamento que deverá ser implementado é o HSP dado em sala de aula. Cada grupo de dois alunos deverá implementar uma das seguintes estratégias de busca:

Todos os grupos deverão implementar os dois tipos de função heurística do HSP discutidas em sala de aula: h_aditiva e h_max. O maior desafio deste projeto será implementar a função heurística. Todas as terças estarei na sala de aula para tirar dúvidas. Artigos que ajudarão vocês a desenvolverem o projeto podem ser encontrados na página do autor.

As duplas deverão entregar um relatório (detalhado abaixo) descrevendo o planejador, a implementação da função heurística, as curvas de desempenho (tempo e número de estados examinados pelo algoritmo de busca) e de comprimento de planos soluções. Além disso, o relatório deverá conter:



Domínios de teste

Parser de ações descritas na linguagem PDDL (do tipo STRIPS com variáveis) em uma descrição de ações STRIPS Proposicional (sem variáveis)

Em geral, sistemas de planejamento que fazem busca local, como o HSP, raciocinam sobre uma descrição de ações proposicionais, ou seja, ações sem variáveis. Por exemplo, considere o domínio do mundo dos blocos com braço de robô descrito acima. Nesta versão do Mundo dos Blocos, a ação empilha(x,y) move um bloco x que está na mão do robô para cima de um outro bloco y.
Para resolvermos um problema nesse domínio que envolva apenas 2 blocos, A e B, a ação empilha(x,y) deve ser traduzida para um conjunto de ações proposicionais, neste caso, empilha(A,B) e empilha(B,A).  Note que empilha(x,y) é um nome de ação. O que chamamos de fluente ou literal, por exemplo, sobre(x,y), são os elementos das listas de pré-condições e efeitos da ação. Após a tradução, chamamos os fluentes de proposições. Daí o nome de ações do tipo Strips Proposicional.

O Parser  PDDL para Strips Proposicional

Este programa foi escrito em Perl pelo meu aluno de mestrado Aldebaran Perseke.
Instruções de utilização do parser PDDL/Strips-proposicional


Análise de Desempenho
 
A análise de desempenho deve ser feita a partir das curvas no tempo, número de estados visitados na busca e tamanho dos planos encontrados para os problemas e domínios estudados.




Critério de Avaliação
As duplas deverão dividir as tarefas de forma equilibrada e os dois alunos deverão saber explicar todo o projeto, inclusive as partes implementadas pelo seu parceiro. Um dos critérios de avaliação que será aplicado é a entrevista individual com os membros do grupo.

A nota deste projeto valerá de 0 a 10.0 pontos que serão distribuídos da seguinte forma:
            5.0 para a implementação
            4.0 para os testes de desempenho e relatório
            1.0 para um novo domínio modelado como um problema de planejamento, ou seja, um conjunto de ações




Mais informações