MAC 5789

Laboratório de Inteligência Artificial 2009

Projeto IV

Planejamento em Inteligência Artificial




Início do projeto: 01/06/2009
Datas de entrega: 30/06/2009
Professora: Leliane Nunes de Barros
     email: leliane@ime.usp.br


 
Aula introdutória sobre a definição, conceitual e formal, da tarefa de planejamento em Inteligência Artificial e apresentação de alguns algoritmos.




Projeto: Heuristic Search Planning
O sistema deverá ser desenvolvido em duplas. O objetivo do projeto é implementar diferentes versões de um sistema de planejamento clássico que faz busca heurística no espaço de estados. O sistema deverá receber como entrada um conjunto de ações proposicionais, uma descrição do estado inicial e um conjunto de proposições que devem ser satisfeitas no estado meta. O planejador deverá devolver um plano de ações (totalmente ordenado) que, quando executadas, transformam o estado inicial num estado meta.

Cada dupla deverá implementar: 
(1) armazenar estados gerados (de forma eficiente) evitando estados 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:

O sistema de planejamento, com as diferentes heurísticas, deverá ser analisado 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 de ações).

Em geral, sistemas de planejamento que fazem busca no espaço de estados, como o que será implementado nesse projeto,  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, que também deverão ser instanciados com os objetos do problema.

Assim, para a realização desse projeto será preciso gerar um conjunto de ações proposicionais para cada tamanho de problema. Para isso, será preciso usar um parser (implementado por Aldebaran Perseke, ex-aluno de mestrado do IME), que recebe como entrada:

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

Para se ter uma idéia de como os planejadores implementados resolvem 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. heurística 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 deverá ser feita com base nos tempos de execução, número de estados visitados pela busca e tamanho dos planos encontrados para os problemas e domínios estudados. esses resultados deverão ser apresentados na forma de gráficos.




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 do A*
            3.0 para a implementação das funções heurísticas
            4.0 para a análise de desempenho e relatório final

           




Links de interesse e bibliografia