MAC 5789

Laboratório de Inteligência Artificial 2005

Projeto III

Planejamento em Inteligência Artificial

Página do curso: http://latin.ime.usp.br/moodle/


Início do projeto III: 03/10/2005
Datas de entrega:
    Primeira Fase: 17/10/2005
    Segunda fase:  31/10/2005
Local: sala 268 - Bloco A
Próxima aula: quinta dia 13 de outubro às 14:00 hs
Professora: Leliane Nunes de Barros
     email: leliane@ime.usp.br


Notas de aula e artigos recomendados para leitura
 
Aula introdutória sobre a área de Planejamento em Inteligência Artificial





Especificação do projeto

Projeto - Fase 1


Construir um sistema de planejamento clássico que receba como entrada um conjunto de ações (STRIPS) proposicionais, uma descrição do estado inicial e um conjunto de proposições que devem ser satisfeitas pelo estado meta. Seu planejador deverá devolver um plano de ações que, quando executadas, transformam o estado inicial num estado meta.

Nessa primeira fase você deverá implementar duas estratégias de busca diferentes:
(1) evitar nós repetidos e
(2) usar uma estrutura de dados que permita uma indexação eficiente de ações aplicáveis ou relevantes.

Domínios de Teste:

Vocês deverão testar os planejadores em dois domínios de teste: Mundo dos Blocos e Domínio dos Satélites. Esses domínios foram originalmente descritos, juntamente com um conjunto de problemas, na linguagem PDDL para a Competição Internacional de Planejamento e são do tipo STRIPS com variáveis (schemas).

Em geral, sistemas de planejamento que fazem busca no espaço de estados, como os que vocês irão implementar, raciocinam diretamente sobre uma descrição de ações proposicionais, ou seja, sem variáveis. Por exemplo, considere o domínio do mundo dos blocos com braço de robô descrito abaixo. 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 dois blocos, A e B, a ação empilha(x,y) deve ser traduzida para um conjunto de ações proposicionais (ou ações instanciadas), 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 de um domínio (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.

Para esse projeto foi gerado um conjunto de ações proposicionais para cada problema. Para isso foi usado um parser (implementado pelo meu ex-aluno de mestrado Aldebaran Perseke) que recebe como entrada:

gerando um arquivo com as ações instanciadas, o estado inicial e a meta. Veja a descrição da linguagem adotada como formato de saída do parser.

Na medida que vocês resolverem os problemas propostos, publiquem no Forum da disciplina as seguintes informações:

        1. o nome do problema resolvido
        2. o tempo de CPU gasto
        3. o número de nós expandidos
        4. estratégia empregada




Domínios de teste


Nessa versão do domínio do Mundo dos Blocos o agente robótico é capaz de executar 4 ações:
Exemplos de problemas para o Mundo dos Blocos

Este é um domínio de planejamento que está muito em moda. A programação de satélites espaciais tem
sido tema de vários projetos financiados pelas grandes agências internacionais de fomento à pesquisa.
Alguns desses projetos desenvolveram sistemas de planejamento que estão sendo de fato utilizados em
estações espaciais.

Exemplos de problemas para o domínio de satélites.


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
A nota deste projeto valerá de 0 a 10.0 pontos que serão distribuídos da seguinte forma:

            3.0 para a implementação da Primeira Fase
            3.0 para a implementação da Segunda Fase
            4.0 para a análise de desempenho e relatório final

           




Links de interesse