Escolar Documentos
Profissional Documentos
Cultura Documentos
DISSERTAO
apresentada ao CEFET-PR
para obteno do ttulo de
MESTRE EM CINCIAS
por
Banca Examinadora:
Presidente e Orientador:
Prof. LUIS ALLAN KNZLE
CEFET-PR
Examinadores:
Prof. MARCOS CASTILHO
UFPR
UFPR
UFPR
Dissertao
apresentada
Ps-Graduao
em
ao
programa
Engenharia
de
Eltrica
Curitiba
2005
AGRADECIMENTOS
Para algumas pessoas, a nalizao deste trabalho representa apenas mais uma dissertao de Mestrado concluda, porm para aqueles que acompanharam este processo, h
a certeza, de uma etapa de grandes mudanas e diculdades, transformando-o numa
grande conquista.
Dentre as diculdades encontradas veio a certeza de que difcil dizer s pessoas o
quanto so importantes e quanto vale a presena delas. Alcanar com exatido o que se
deveria expressar a cada pessoa aqui mencionada ser impossvel, porm ca o registro
um pequeno agradecimento.
Sem dvidas, as primeiras pessoas mencionadas, so aquelas a quem devo minha
vida. So pessoas que nunca puderam me oferecer dinheiro e conforto, porm me ensinaram a imensa fortuna que a honestidade e a perseverana representam ao ser humano
e o imenso conforto espiritual que a integridade nos proporciona. Uma homenagem especial a ti, mezinha Julieta, que, embora o perodo que estiveste conosco tenha sido
curto, deixaste a marca do que ser uma verdadeira guerreira. Pai e Me minha
gratido a vocs ser eterna.
Nesse perodo, tive a sorte de conviver com uma segunda famlia, a famlia LSIP.
Sim, pois considero nosso relacionamento no apenas prossional, mas uma ddiva de
Deus. Marcos, Jean, Andrey e Erik, meu muito obrigado. Valter e Evan um obrigado
especial pelo ombro amigo nas horas em que a dureza da rapadura era maior que a
doura, obrigada pelo caf, pelas gargalhadas e, claro, pelo apoio nas horas em que a
vida virou um grande mutex.
Aqui deixo meu agradecimento especial ao Fabiano. Obrigada pela pacincia, pelo
incentivo e porque no pelas palavras duras, pois elas foram responsveis pelo meu
despertar e zeram com que eu "continuasse nadando".
Agradeo aqui a uma pessoa que ainda no compreende o quanto ela foi importante
nesse perodo, Maria Eduarda, devo a ti a dose extra de nimo que tantas vezes precisei
para a concluso deste trabalho.
E especialmente ao meu Orientador, Luis Allan, pela compreenso, diante dos meus
problemas e pelo apoio tanto prossional quanto pessoal.
Obrigada CAPES, pelo apoio nanceiro durante o desenvolvimento desse trabalho.
Agradeo tambm a todos aqueles que de alguma maneira contriburam na concluso
dessa dissertao.
Malgarete R. da Costa
ii
Contedo
1 Introduo
2.1
Conceitos Fundamentais . . . . . . . . . . . . . . . . . . . . . . . . . .
2.1.1
Planejador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.1.2
Plano . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.1.3
Domnio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2
Representao STRIPS . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.3
10
2.4
. . . . . . . . . . . . .
11
2.5
12
2.5.1
Planejamento Heurstico . . . . . . . . . . . . . . . . . . . . . .
13
2.5.2
15
18
3.1
Graphplan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
19
3.2
Grafo de Planos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
19
3.3
Expanso do Grafo . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
22
3.4
25
3.5
Petriplan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
26
3.6
O Algoritmo Petriplan . . . . . . . . . . . . . . . . . . . . . . . . . . .
26
Contedo
3.7
. . . . . . . . . . . . . . . . . . . . . . . .
27
3.7.1
Ns Ao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
28
3.7.2
Ns Proposio . . . . . . . . . . . . . . . . . . . . . . . . . . .
28
3.7.3
Arestas Pr-Condio . . . . . . . . . . . . . . . . . . . . . . . .
28
3.7.4
Aresta Efeito . . . . . . . . . . . . . . . . . . . . . . . . . . . .
29
3.7.5
Excluso Mtua . . . . . . . . . . . . . . . . . . . . . . . . . . .
29
Exemplo de Aplicao . . . . . . . . . . . . . . . . . . . . . . . . . . .
30
3.8.1
Descrio do Problema . . . . . . . . . . . . . . . . . . . . . . .
31
3.8.2
32
36
37
3.8
3.9
4 Planejamento Temporal
40
4.1
PDDL+ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
40
4.2
Planejadores Temporais . . . . . . . . . . . . . . . . . . . . . . . . . .
41
4.2.1
Planejador TGP
. . . . . . . . . . . . . . . . . . . . . . . . . .
43
4.2.2
Planejador LPGP . . . . . . . . . . . . . . . . . . . . . . . . . .
44
4.2.3
Planejador Sapa . . . . . . . . . . . . . . . . . . . . . . . . . . .
46
4.2.4
Planejador TP4 . . . . . . . . . . . . . . . . . . . . . . . . . . .
47
4.2.5
Planejador TPSYS . . . . . . . . . . . . . . . . . . . . . . . . .
48
5.2
50
. .
51
5.1.1
51
5.1.2
54
5.1.3
56
Petriplan Temporal . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
58
ii
Contedo
5.3
5.4
60
5.3.1
63
65
6 Concluso
68
76
B REDES DE PETRI
82
iii
Lista de Figuras
1.1
3.1
21
3.2
23
3.3
23
3.4
24
3.5
24
3.6
28
3.7
29
3.8
29
3.9
30
35
36
38
4.1
42
5.1
Grafo de Planos atemporal para o domnio do jantar, com uma das pos-
. . . . . . . . . . . . .
sveis solues. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.2
52
Grafo de Planos temporal para o domnio do jantar com uma das possveis solues. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
iv
55
Lista de Figuras
5.3
5.4
Rede de Petri gerada pelo Petriplan em sua primeira verso para o problema do jantar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.5
58
59
5.6
60
5.7
61
5.8
62
5.9
64
65
66
80
84
89
91
91
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Resumo
Neste trabalho se estuda os principais mtodos de planejamento temporal. Prope
solues baseadas no grafo de planos, bem como solues baseadas na traduo deste
em Redes de Petri Temporais.
Objetivando a contextualizao do cenrio em que o presente trabalho se insere,
apresentada uma reviso dos algoritmos que fazem o tratamento de problemas de planejamento clssico e o planejamento temporal. Prope-se um novo mtodo de tratamento
temporal sobre o grafo de planos e sua traduo para uma Rede de Petri Temporal.
vi
Abstract
In this work it is studied the main methods of temporal planning. It is proposed
solutions based on graph of plans as well as solutions based on the translation of graph
of plans into time Petri nets.
A review is presented about the algorithms for the treatment of classical planning
and temporal planning. This review aims at to present the context of this work. Subsequently, it is proposed a new method of temporal treatment for the graph of plans
and its translation into a time Petri net.
Captulo 1
Introduo
A revoluo tecnolgica do ltimo sculo tem entre seus trs principais temas o computador. Avalia-se que a capacidade dos computadores tem duplicado a cada dezoito
meses. Porm existem habilidades humanas que os computadores, aliados aos mais
ecientes cdigos, ainda no so capazes de reproduzir de forma to perfeita e natural
que a do ser humano. Entre estas habilidades est a capacidade de planejar.
Buscando encontrar um conjunto de aes que seja soluo para algum problema prdenido, o Planejamento passou a ser um dos objetos de estudo na rea de Inteligncia
Captulo 1. Introduo
Nos anos 90, o avano se deu em termos de ecincia e aperfeioamento de algoritmos, com seu potencial de aplicao focado nos problemas de nosso cotidiano, j que
at ento os planejadores eram baseados em tcnicas de busca, cuja inecincia no
permitia tratar problemas simples que apresentavam amplos espaos de busca.
Note-se que desde a retomada das pesquisas em Planejamento na dcada de 90,
inmeras so os trabalhos que direcionam o tratamento de problemas para planejamento, transformando-o numa rea multidisciplinar e dinmica. Com essa multidisciplinaridade criaram-se competies, diversicaram-se os domnios e conseqentemente
ampliou-se a complexidade dos sistemas e surgiram novos mtodos, entre eles os baseados em Funes Heursticas [10], Redes de Petri [50, 15, 51], Satisfao de Restries
[31, 32, 33], Algoritmos Genticos [35], entre outros.
Atualmente a rea de planejamento est subdividida em dois segmentos: o plane-
jamento clssico e o planejamento no clssico. No primeiro, a preocupao est principalmente na gerao de planos que atinjam um conjunto de objetivos previamente
denidos em uma situao. Resumidamente, pode-se armar que o planejamento clssico distingue-se por:
Captulo 1. Introduo
e explorava diferentes espaos de busca. A partir de STRIPS ocorreu o desenvolvimento de uma ampla variedade de algoritmos para Planejamento, alguns deles sero
apresentados ao longo deste trabalho.
Em STRIPS, os autores propunham a soluo de um determinado problema utilizandose de busca tradicional, ou seja, uma busca em uma rvore de estados do mundo, que
pode alcanar um tamanho exponencial. Apesar de tratar uma classe restrita de problemas, o trabalho de Fikes e Nilson foi de extrema importncia por apresentar um sistema
formal que permitiu representar aes e estados de fcil compreenso, dando ao sistema
uma independncia entre o algoritmo e a linguagem que vai solucionar o problema.
Durante a dcada de 80, a pesquisa em planejamento se restringiu basicamente a
duas abordagens: a busca em STRIPS e a por prova de teorema. Nestas duas abordagens recaa-se em busca exaustiva com a exploso combinatria de estados, o que
tornava ambas inecientes do ponto de vista da praticidade. Em 1992, Kautz e Selman
propuseram a traduo da representao STRIPS para o clculo proporcional, surgindo
assim o Satplan [31, 21].
Logo em seguida, Blum e Furst apresentaram o Graphplan [9] que, assim como
os demais planejadores, apresentava um modelo de planejamento baseado em grafos,
porm inovando ao mostrar que, a partir de uma descrio STRIPS, era possvel a
construo de um grafo cujo espao de busca do problema era sensivelmente reduzido.
Das inovaes propostas no Satplan e no Graphplan ocorre uma retomada dessa
rea de pesquisa, motivando o resgate das antigas tcnicas de busca. Surgiram ento
planejadores modernos e expressivos, que buscavam agregar condies de anlise mais
precisa atravs de funes heursticas para guiar a busca.
Surgiu tambm os planejadores hbridos, conbinando elementos do planejamento
com heurstica, com as abordagens baseadas em grafo de planos e satisfabilidade. Dentre
os inmeros planejadores que surgiram nos ltimos anos podemos citar o IPP [7, 28],
Blackbox [34], UCPOP [45], ZENO [29] [6, 56], STAN [36], TGP [52], HSP [10], FF
Captulo 1. Introduo
[25], TP4 [23], SAPA [14], LPG [20], entre outros.
Na gura 1.1, baseada em [53], os planejadores foram agrupados de acordo com a
principal tcnica de busca.
Planejadores baseados em Heuristica
VHPOP
Planejadores Hibridos
FF
LPG
TP4
BlackBox
HSP
SAPA
IPP
TPSYS
STAN
Graphplan
LPGP
ZENO
TGP
SGP
SatPlan
LPSAT
UCPOP
Captulo 1. Introduo
Na competio de 1998 foi apresentado o planejador HSP [10] baseado em busca
heurstica, capaz de produzir planos com extrema ecincia e rapidez. Na competio
de 2000, o grande destaque foi para o sistema FF (Fast-Forward Planning System)[24].
O sistema FF utiliza-se da j conhecida heurstica do HSP [10], e obteve um grande
destaque, mostrando ser um sistema robusto e rpido. Nas duas competies que se
seguiram, 2000 e 2002, foi apresentada uma gama muito grande de novos planejadores
que enfatizavam a resoluo de problemas prticos. Particularmente, em 2002, deu-se
maior destaque a problemas que incluam o raciocnio numrico e temporal.
O planejamento temporal o foco principal desta dissertao de mestrado. O objetivo principal do trabalho consistiu em estudar as especicaes temporais presentes nas
linguagens de descrio de problemas e propor solues para sua insero nos mtodos
desenvolvidos pela equipe de pesquisa, de forma a obter planos que atendam s restries temporais. Desta forma, o captulo dois desta dissertao se rev os principais
conceitos de Planejamento em Inteligncia Articial, das linguagens de descrio de
problemas e das estratgias de busca mais importantes. Como so inmeros os planejadores que se utilizam do Grafo de Planos, inclusive o Petriplan, desenvolvido pela
equipe na qual este trabalho est inserido, o captulo trs apresenta de forma detalhada
estes mtodos. No captulo quatro a linguagem PDDL+, que inclui a durao das aes
como parte da descrio temporal, estudada, assim como so descritos os principais
planejadores que se propem a tratar quantitativamente as restries temporais.
Finalmente, no captulo 5 so apresentadas duas abordagens de gerao de planos
temporais. A primeira baseada sobre o Grafo de Planos e a segunda baseada sobre o
Petriplan. Um exemplo federador permite ilustrar, para diferentes mtodos, as possibilidades de anlise de planos cuja dimenso temporal tratada de forma explcita.
Uma comparao dos resultados e das diferentes caractersticas dos mtodos propostos
conclui o captulo.
Captulo 2
Linguagens de Descrio e
Planejamento em IA
Neste captulo sero apresentados conceitos fundamentais para a rea de planejamento,
linguagens de descrio, bem como alguns planejadores que representam a rea de
planejamento clssico.
O objetivo desse captulo apresentar ao leitor caractersticas gerais das linguagens
de descrio, caractersticas e limitaes de alguns planejadores tidos como eixo central
no planejamento clssico e formalizar alguns conceitos que representam a descrio de
um planejador automtico.
plano e domnio.
6
2.1.1 Planejador
De maneira informal um planejador um algoritmo que necessita de uma entrada
inicial, um objetivo e uma descrio do comportamento das aes em uma linguagem
formal, ou seja, um problema de planejamento uma tupla P = < O, I, G >, sendo O a
descrio do conjunto de aes, I a descrio do estado inicial do problema e G o estado
meta. Um plano soluo para P uma seqncia de aes de O que transformam I
em G .
Para melhor compreender o conceito acima, imagine uma empresa de logstica que
precisa transportar um pacote (pk2 ) que est na localidade 1 (loc1 ) para a localidade
2 (loc2 ) e outro pacote (pk1 ) que est na localidade 2 (loc2 ) para a localidade 1 (loc1 ).
Para fazer esse transporte dispe-se de um nico caminho (t1 ). Logo pode-se armar
que um problema particular para o domnio envolvido pode ser denido pela dupla I
e G . Sendo o estado inicial I representado pela situao descrita acima, ou seja, a
localidade onde o pacote encontra-se inicialmente. Tem-se tambm que G onde a
empresa deve entregar os pacotes, estado objetivo e
2.1.2 Plano
Para o planejamento, o problema obter uma seqncia de aes chamada Plano ; e
esta seqncia, se aplicada a algum mundo, satisfaz as descries iniciais e alcance o
objetivo. De modo informal, um planejador um algoritmo que apresenta a capacidade
de resoluo de um problema de planejamento e possui as trs entradas que sero
codicadas em alguma linguagem formal, ou seja, a codicao gera a partir da entrada
inicial um plano como sada.
2.1.3 Domnio
Conforme descrito nas subsees 2.1.1 e 2.1.2, um problema de planejamento um
algoritmo que faz a formalizao deste problema, e atrves de um conjunto de premissas,
busca encontrar de forma automtica uma soluo para o problema, quando esta existir,
a esse conjunto de premissas d-se o nome domnio.
A denio de um domnio descrita bsicamente pelas aes, ou seja, o conjunto
Por ltimo, tem-se os efeitos que a ao executada ir gerar descritos por uma
conjuno que pode incluir literais positivos ou negativos. Tais literais descrevem
as alteraes que devem ser realizadas sobre o mundo objetivando obter um outro
aps a execuo da ao.
Em termos de limitao, os sistemas de planejamento baseados em STRIPS possuem
restries quanto capacidade de representao da linguagem, pois supem que todos
os sub-objetivos so independentes uns dos outros, ou seja, considera a linearidade.
Entretanto, existem interaes de sub-objetivos que podem forar que eles tenham que
9
a;
Update(s, t), faz a descrio do conjunto dos pares de estados s, t de forma que
ao executar a ao a no estado s obtem-se o estado t.
Em termos de ampliaes, quando comparada linguagem STRIPS, podemos observar que em ADL ocorre:
1. Incluso de efeitos condicionais;
2. Incluso de efeitos quantitativos; e
10
12
relaxado, gerado pelo Graphplan, que muito similar heurstica utilizada pelo sistema
HSP, o que permite estimar a distncia em nmeros de aes desde o estado atual at
o estado objetivo.
Apesar do FF basear-se na heurstica do sistema HSP, ele apresenta uma funo de
estimativa diferenciada de HSP, pois s faz uso das interaes com valor positivo na
construo dos objetivos. Alm de utilizar um plano relaxado tomando um grafo de
planejamento sem a presena de efeitos negativos.
Dessa maneira, o sistema FF gera um plano, entretanto ao invs de determinar as
relaes de mutex entre aes, usa o grafo para obter a heurstica que ir conduzir o
processo de busca para a soluo.
14
16
17
Captulo 3
Planejadores Graphplan e Petriplan
Por diversas dcadas, muitos sistemas de planejamento foram desenvolvidos com o
intuito de automatizar solues para diversos problemas. Porm, na dcada de 90,
que obtiveram-se sistemas de planejamento com resultados satisfatrios. Os novos
planejadores apresentados estabeleceram um novo paradigma na rea, como pioneiro
podemos citar o sistema Graphplan [8, 9].
Dentre os diversos planejadores concretizados a partir do Graphplan est o Petri-
plan, cuja primeira verso foi apresentada em [50], onde se faz a traduo do grafo de
planos gerado pelo Graphplan para uma Rede de Petri. Os conceitos sobre Redes de
Petri so encontradas no Anexo B, deste trabalho.
O objetivo desse captulo apresentar de forma mais detalhada os planejadores
Graphplan e o Petriplan, bem como um exemplo de aplicao. A partir dos resultados
obtidos pretendemos avaliar suas vantagens e desvantagens quando usados na resoluo
de problemas com caractersticas de situaes reais.
18
Captulo 3.
3.1 Graphplan
Se analisada a literatura sobre a evoluo da rea de planejamento nota-se que at
meados de 1994, todos os algoritmos para planejadores tinham seus alicerces derivados
de trs classes:
Expanso do grafo;
Extrao da soluo.
Para isso, o algoritmo executa repetidamente estas duas fases at que uma soluo
seja obtida.
ao.
19
Captulo 3.
Captulo 3.
c
Q
Captulo 3.
proposies n 2.
manuteno.
Dessa forma quando iniciamos um grafo temos apenas uma camada de proposies
que ir representar o estado inicial do problema. Todas as aes cujas pr-condies
esto presentes na camada atual iro compor uma nova camada de aes. A prxima
camada a ser adicionada ser a camada de proposies composta pelos literais originados
dos efeitos das aes da camada anterior.
No decorrer de uma expanso do grafo podemos nos deparar com inconsistncias e
conitos. Isso acontece em decorrncia de inconsistncias existentes entre proposies
e aes, gerando restries nas camadas do grafo. Um exemplo muito comum de inconsistncia em um grafo, termos em uma mesma camada o efeito de uma ao que a
negao do efeito da outra, conforme podemos observar na gura 3.2.
Visando o controle de tais ocorrncias dene-se a relao como uma excluso mtua
(mutex) e sua representao feita por uma aresta que liga aes contidas na mesma
camada. As situaes de relaes mutuamente exclusivas podem apresentar-se de quatro
maneiras diferentes.
Por denio duas aes so mutuamente exclusivas em uma camada n se:
22
Captulo 3.
T
a
U
b
Captulo 3.
T
a
U
b
V
podero ser obtidas simultaneamente na mesma camada. Por denio temos que duas
proposies so mutuamente exclusivas em uma camada n se qualquer das condies
a seguir for vericada:
c
Q
24
Captulo 3.
Nesse caso temos as proposies P e Q, que so mutuamente exclusivas em decorrncia da excluso existente entre as aes que do origem a P (a e b) e as aes que
do origem a Q (c e a ao de manuteno)
busca regressiva, que consiste em analisar cada sub-meta da camada n e encontrar uma
ao, na camada n - 1, que a contenha como efeito.
Considerando a uma ao e sendo ela consistente, ou seja, no relao de excluso com as demais aes escolhidas anteriormente, passamos ento para a anlise da
prxima sub-meta, porm se detectarmos qualquer caso de excluso das enumeradas na
seo 3.3, retornamos e escolhemos outra ao. A partir do momento que encontramos
um conjunto de aes consistentes para a camada n - 1, de forma recursiva vamos
para a camada n - 2, agora considerando como sub-metas as pr-condies das aes
escolhidas na camada n - 1, usamos esse processo recursivo at alcanarmos a camada
zero. Se o procedimento nos permitir alcanar um conjunto de aes consistentes nas
camadas anteriores, temos ento uma soluo para o problema. Caso o retrocesso falhe
aps tentar todas as possibilidades, faz-se necessria uma nova expanso do grafo.
Se aps uma nova expanso do grafo observarmos que as duas ltimas camadas
25
Captulo 3.
mpares no sofreram nenhuma alterao, ou seja, nenhum mutex foi eliminado, assim
podemos concluir que nenhum plano poder ser encontrado para o problema em questo.
Para melhor compreender os conceitos acima abordados ser apresentado na subseo 3.8.1 um exemplo de aplicao.
3.5 Petriplan
Conforme mencionamos no incio desse captulo, a partir do Graphplan originaram-se
vrios planejadores entre eles o Petriplan.
O algoritmo Petriplan utiliza-se de uma estrutura semelhante do Graphplan, porm
faz a traduo do grafo de planos para uma Rede de Petri, objetivando a reduo do
espao de busca.
26
Captulo 3.
Aps execuo da terceira etapa, se nenhuma soluo for encontrada para o problema de P.I., o algoritmo ir retornar para a primeira fase e uma nova expanso do
grafo ser realizada. Este lao ir permanecer de forma a encontrar uma soluo ou at
que uma condio de falha seja apresentada na primeira etapa.
ns ao;
ns proposio;
arestas de ns proposio;
arestas de ns ao para ns proposio; e
relaes de excluso mtua.
A traduo para um RdP segundo [50] se d da seguinte maneira:
27
Captulo 3.
3.7.1 Ns Ao
A traduo de um n ao do grafo se faz atravs de uma nica transio na RdP,
conforme a representao mostrada na gura 3.6.
Aps a traduo, a transio s estar habilitada se, e somente se, todas as prcondies forem validadas, ou seja, se existirem marcas em todos os lugares que representam as arestas pr-condies ligadas ao representada pela transio.
3.7.2 Ns Proposio
Um n proposio traduzido em um lugar e uma transio com um arco do lugar para
a transio, conforme a representao abaixo.
Captulo 3.
Figura 3.7: Traduo das arestas pr-condio em um lugar com dois arcos na RdP.
Captulo 3.
Como podemos observar na gura 3.9, o lugar que representa a excluso mtua
possui uma nica marca. O disparo de qualquer uma das transies que representa as
aes desabilita a outra transio.
Inicialmente temos a rede marcada com peso inicial um. A existncia de uma marca
em determinado lugar na rede, indica uma proposio vlida, ou ainda, um mutex entre
duas aes.
Se algum lugar da rede receber mais de uma marca, podemos concluir que h mais
de um caminho que torna vlida a proposio representada por esse lugar.
Finalmente, o estado inicial do problema traduzido pelo incluso de uma marca em
cada um dos lugares que representam as proposies iniciais alm das marcas presentes
nos mutex.
30
Captulo 3.
locality (locn ), package (pkn ). Com estes elementos trs aes so passveis de serem
executadas:
A ao Load ser executada se existir uma localidade (loc), um caminho (t) nesta
localidade e se nesta localidade existir um pacote (pk) disponvel para carregar.
so todos os elementos necessrios para a execuo das aes exigidas pelo problemas
em questo.
31
Captulo 3.
O pacote 1 na localidade 1.
O pacote 2 na localidade 2.
A seguir estaremos buscando a soluo para o problema a partir dos planejadores
propostos inicialmente nesse captulo.
O problema proposto ser descrito em PDDL que consistir de trs partes: descrio
do domnio, descrio do problema, estado inicial e estado meta.
loc1)
32
Captulo 3.
(:goal (and
Conforme descrito em [8, 9] para que seja possvel sairmos do estado Inicial e alcanarmos nosso estado Objetivo, faz-se necessrio o cumprimento de algumas prcondies, na descrio em PDDL, o exemplo acima proposto ca com a seguinte estrutura:
Captulo 3.
:parameters
(?obj
?truck
?loc)
:precondition
(and (OBJ ?obj) (TRUCK ?truck) (LOCATION ?loc)
(at ?truck ?loc) (in ?obj ?truck))
:effect
(and (not (in ?obj ?truck)) (at ?obj ?loc)))
(:action DRIVE-TRUCK
:parameters
(?truck
?loc-from
?loc-to)
:precondition
(and (TRUCK ?truck) (LOCATION ?loc-from) (LOCATION ?loc-to)
(at ?truck ?loc-from))
:effect
(and (not (at ?truck ?loc-from)) (at ?truck ?loc-to)))
)
O exemplo citado, aps passar pelas fases descritas no captulo anterior, ir nos
gerar um grafo, podendo este ser ou no soluo do problema. Do exemplo abordado,
as camadas iniciais so representadas na gura 3.10 :
Captulo 3.
at(t1, loc1)
2
1
0
at(t1, loc1)
~at(t1, loc1)
at(t1, loc1)
3
~at(t1, loc1)
drive(t1, loc1, loc2)
at(t1, loc2)
load(t1, loc1, pk2)
at(pk1, loc2)
~at(t1, loc2)
~at(pk2, loc1)
load(t1, loc1, pk2)
at(pk2, loc1)
at(pk2, loc1)
in(pk2, t1)
~at(pk1, loc2)
in(pk1, t1)
~in(pk2, t1)
at(pk2, loc1)
at(pk1, loc2)
at(pk2, loc2)
35
Captulo 3.
m_11_25
pk2_loc1_7
noop_at_pk2_loc1_0
noop_at_pk2_loc1_11
at_pk2_loc1_27
at_pk2_loc1_16
m_21_25
load_pk2_t1_loc1_25
m_0_9
m_17_21
noop_in_pk2_t1_17
m_7_9
load_pk2_t1_loc1_9
in_pk2_t1_17
m_20_21
t1_loc1_6
noop_at_t1_loc1_8
in_pk2_t1_28
m_20_25
m_20_23
at_t1_loc1_14
unload_pk2_t1_loc1_21
noop_at_t1_loc1_23
at_t1_loc1_25
m_13_20
drive_t1_loc1_loc2_20
m_7_8
drive_t1_loc1_loc2_7
at_t1_loc2_15
noop_at1_loc2_24
m_13_24
pk1_loc2_5
noop_at_pk1_loc2_6
at_t1_loc2_26
noop_at_pk1_loc2_19
at_pk1_loc2_13
at_pk1_loc2_23
drive_t1_loc2_loc1_13
m_10_13
in_pk1_t1_24
load_pk1_t1_loc2_10
P0
A0
P1
A1
36
P2
Captulo 3.
Nas camadas iniciais geradas pelo Petriplan conforme podemos observar na gura
3.11 possvel notar que a transio t1 , que representa a ao load, est habilitada, uma
vez que os lugares que so pr-condies para seu disparo contm marcas. O mesmo
podemos observar com a transio t2 (drive).
A segunda camada da rede gerada pelo Petriplan composta pelas transies que
podem ser disparadas a partir dos lugares marcados da primeira camada. A terceira camada ser composta pelos lugares gerados pelo disparo dessas transies e pelos lugares
denominados manuteno que consistem basicamente na repetio das pr-condies
existentes na primeira camada. Esse processo de expanso executado at serem encontrados todos os literais denidos inicialmente como estado objetivo. Neste momento
busca-se resolver o problema de alcanabilidade da marcao correspondente ao estado
objetivo, a partir da marcao inicial. Se o estado objetivo no alcanvel, novas expanses devem ser executadas. Em caso de sucesso, necessrio identicar a seqncia
de disparo de transies capaz de levar a rede do estado inicial ao estado objetivo. Essa
seqncia corresponder ao plano que resolve o problema de planejamento.
Para o problema aqui apresentado, o estado objetivo alcanado na dcima primera
camada do grafo. No grafo obtido aplicamos todas as simplicaes propostas em [15],
e obtemos a seqncia t1 , t2 , t3 , t4 , t5 e t6 .
Captulo 3.
do problema;
Trabalhando sobre este modelo possvel obter no somente as aes que permitem inferir relaes de causalidade e de concorrncia entre aes;
Sobre este modelo podem ser agregadas informaes adicionais relativas ao planejamento no-clssico, tais como dados temporais, incerteza, dados probabilsticos
entre outras. O modelo com estas informaes adicionais, passa a ser uma RdP
de alto nvel, sobre a qual, a melhor soluo pode ser buscada.
t3
t1
at(pk2, loc1)
in(pk2, t1)
load(pk2, t1, loc1)
at((pk2, loc2)
unload(pk2, t1, loc2)
t4
at(t1, loc1)
at(t1, loc1)
t6
at(t1, loc2)
t2
at(t1, loc2)
at(t1, loc1)
at(pk1, loc1)
t5
in(pk1, t1)
at(pk1, loc2)
38
Captulo 3.
39
Captulo 4
Planejamento Temporal
Neste captulo ser abordado o desenvolvimento do planejamento temporal. Ser mostrado
que o planejamento temporal um modelo extendido, que tem suas razes no planejamento clssico, agregando nos domnios, alm da necessidade da enumerao das aes,
a ordenao das mesmas. Sero apresentados resumidamente alguns planejadores temporais citados na literatura e a linguagem de descrio PDDL+.
4.1 PDDL+
Ao ser traada a linha do tempo em termos de evoluo dos planejadores automticos,
nota-se a evoluo da expressividade dos mesmos.
Em paralelo evoluo dos planejadores ocorre a evoluo das linguagens de representao de problemas de planejamento, como, por exemplo, a linguagem PDDL.
Mediante a necessidade de avaliao dos Planejadores na soluo de problemas reais
durante o IPC de 2002 foi proposta uma extenso da PDDL [19] denominada PDDL+.
A PDDL+ foi subdividida em 5 nveis, sendo que os nveis compreendidos 1 e
4 so chamados coletivamente de PDDL2.1. A deciso por dividir o PDDL+ para
tratar de caractersticas especcas, incorporadas aos domnios, ao longo da evoluo
40
Nvel 5 Capacidade de representao de eventos exgenos 1 , cujos domnios apresentem variveis temporais discretas e contnuas. Este nvel tambm denido
como "real-time", sendo o mesmo uma proposta alternativa para o modelo temporal, porm no usado nas competies.
Ao longo desse trabalho se opera com variveis temporais cujas caractersticas so
melhor comportadas pelo nvel 3. Um detalhamento desse nvel pode ser observado no
anexo A deste trabalho.
41
Analisando a gura 4.1, observa-se que a partir do momento que se tem denido o
domnio do problema, aplica-se uma linguagem de modelagem, de acordo com a mtrica
42
43
O plano
mutex condicional (cmutex), representando as relaes de excluso que uma vez inclusas no grafo se faro presentes at que a expanso seja nalizada ou ainda relaes
de excluso que ao longo da expanso so eliminadas respectivamente.
Na segunda etapa, TGP faz o tratamento de aes com durao distinta, desfazendo
assim a simetria existente no grafo de planos do Graphplan e exigindo um clculo de
mutex mais minucioso.
Por fazer um tratamento completo e otimizado das aes envolvidas no problema e
por utilizar-se de um modelo conservativo TGP agrega maior preciso quando aplicado
a problemas reais.
proposies de uma camada x - 2. Como exemplo podemos imaginar uma ao cujo efeito a prpria
pr-condio.
44
ao invariante.
As aes invariantes devero estar presentes entre os nveis de ao em que se executam, respectivamente:
45
goals).
SAPA tambm rigoroso quanto ordem de execuo das aes, no permitindo
que duas aes que se utilizem do mesmo recurso sejam executadas simultaneamente.
Assim como TGP, SAPA faz a construo de um grafo de planos relaxado. Dessa
46
pode fazer isso quando a heurstica for aceitvel, ou seja, quando ocorre uma reduo
considervel em seus resultados.
47
48
49
Captulo 5
Planejamento Temporal Baseado em
Grafo de Planos e Redes de Petri
Temporais
Neste captulo so propostos dois mtodos de planejamento temporal. O primeiro
mtodo consiste em uma extenso do grafo de planos em que as camadas, ao invs de
corresponderem execuo do conjunto de aes que podem ser aplicadas ao conjunto
de proposies vlidas, so geradas a cada evento de incio ou trmino de execuo de
todas as aes aplicveis e sero rotuladas com a data do evento correspondente. O
segundo mtodo consiste tambm de uma extenso, mas da rede de planos, anexando
um rtulo temporal a cada transio que corresponde execuo de uma ao do plano.
Um mesmo problema exemplo de planejamento em inteligncia articial ser utilizado
para ilustrar os dois mtodos propostos.
50
silncio e sua execuo tem como efeito presente. A ao triturar o lixo, tem como
como efeito no ter lixo e no ter silncio. A ao carregar o lixo tambm tem como
51
at(lixo)
manut
at(lixo)
carregar
triturar
at(silencio)
manut
manut
cozinhar
at(lixo)
carregar
~at(lixo)
at(maoslimpas)
manut
manut
~at(lixo)
triturar
at(maoslimpas)
manut
at(maoslimpas)
~at(maoslimpas)
manut
~at(maoslimpas)
at(silencio)
manut
at(silencio)
~at(silencio)
manut
~at(silencio)
jantar
cozinhar
manut
jantar
embrulhar
embrulhar
presente
manut
presente
Figura 5.1: Grafo de Planos atemporal para o domnio do jantar, com uma das possveis
solues.
53
embrulhar, com durao de 2 unidades de tempo. Isto faz com que a quarta camada
seja rotulada com a data 2 ) e contenha o evento correspondente nalizao da ao
embrulhar. Como esta a nica ao nalizada nesta data, as demais aes que esto
em execuo so mantidas com eventos de "manuteno de ao". A quinta camada,
datada de [2] contm os efeitos da nalizao da ao embrulhar, ou seja, a proposio
presente aparece pela primeira vez no Grafo de Planos a Eventos duas unidades de
tempo aps o incio do plano. Esta j uma informao temporal quantitativa no
disponvel no grafo de planos, j que a primeira camada deste contm um conjunto
de aes com diferentes duraes, o que induz a considerar vlidas as proposies da
54
at(Silencio)
at(MaosLimpas)
at(lixo)
Ex_Carregar
~at(MaosLimpas)
solues.
55
Mat(Silencio) at(Silencio)
at(Silencio)
Mat(Silencio)
at(Presente)
F_Embrulhar
Ex_Embrulhar
I_Embrulhar
MEx_Triturar Ex_Triturar
MEx_Cozinhar Ex_Cozinhar
Ex_Triturar
Ex_Cozinhar
I_Triturar
I_Cozinhar
at(Presente)
Ex_Triturar
Mat(Silencio) at(Silencio)
I_Embrulhar Ex_Embrulhar
MEx_Triturar
Ex_Triturar
Ex_Cozinhar
I_Cozinhar
I_Triturar
Ex_Cozinhar
MEx_Cozinhar
Mat(Silencio)
M_Embrulhar
M_at(Presente)
F_Triturar
at(Silencio)
Ex_Embrulhar
at(Presente)
~at(Silencio)
MEx_Triturar Ex_Triturar
MEx_Cozinhar Ex_Cozinhar
MEx_Cozinhar Ex_Cozinhar
Mat(MaosLimpas)at(MaosLimpas)
Mat(MaosLimpas) at(MaosLimpas) Mat(MaosLimpas) at(MaosLimpas)
F_Carregar
~at(lixo)
MEx_Carregar Ex_Carregar
at(lixo)
at(MaosLimpas)
MEx_Carregar Ex_Carregar
I_Carregar
at(lixo)
Mat(lixo)
Mat(MaosLimpas)
at(lixo)
Mat(lixo)
+
2
MEx_Carregar Ex_Carregar
Mat(lixo)
Ex_Carregar
at(lixo)
I_Carregar
Mat(lixo)
~at(lixo)
Ex_Carregar
Ex_Carregar
at(lixo)
Ex_Triturar
Ex_Triturar
Ex_Cozinhar
Ex_Cozinhar
Ex_Cozinhar
Ex_Embrulhar
Mat(Silencio) at(Silencio)
I_Embrulhar
M_Embrulhar Ex_Embrulhar
M_at(Presente) at(Presente)
M~at(Silencio) ~at(Silencio)
MEx_Triturar
I_Cozinhar
MEx_Cozinhar
MEx_Cozinhar
Mat(MaosLimpas) at(MaosLimpas)
I_Triturar
M~at(MaosLimpas) ~at(MaosLimpas)
M~at(lixo)
I_Carregar
MEx_Carregar
Mat(lixo)
3+
at(lixo)
~at(lixo)
Ex_Triturar
Ex_Cozinhar
Ex_Cozinhar
Ex_Cozinhar
at(MaosLimpas)
Ex_Triturar
Mat(Silencio)
M_Embrulhar
F_Embrulhar
M_at(Presente)
at(Silencio)
Ex_Embrulhar
at(Presente)
M~at(Silencio) ~at(Silencio)
MEx_Triturar
MEx_Cozinhar
MEx_Cozinhar
MEx_Cozinhar
Mat(MaosLimpas)
MEx_Triturar
M~at(MaosLimpas) ~at(MaosLimpas)
M~at(lixo)
MEx_Carregar Ex_Carregar
MEx_Carregar Ex_Carregar
Mat(lixo)
~at(lixo)
Ex_Carregar
M~at(lixo)
MEx_Carregar
F_Carregar
MEx_Carregar
Mat(lixo)
~at(lixo)
Ex_Carregar
Ex_Triturar
Ex_Triturar
Ex_Cozinhar
Ex_Cozinhar
Ex_Cozinhar
MEx_Triturar
Ex_Triturar
Ex_Cozinhar
Ex_Cozinhar
Ex_Cozinhar
Ex_Cozinhar
Mat(Silencio) at(Silencio)
I_Cozinhar
Mat(Silencio)
at(Silencio)
Mat(Silencio)
M_Embrulhar Ex_Embrulhar
MEx_Triturar Ex_Triturar
MEx_Cozinhar Ex_Cozinhar
M_at(Presente) at(Presente)
I_Embrulhar Ex_Embrulhar
at(Silencio)
Ex_Embrulhar
Ex_Triturar
Ex_Cozinhar
at(Presente)
Ex_Triturar
M~at(Silencio) ~at(Silencio)
I_Triturar
MEx_Cozinhar Ex_Cozinhar
MEx_Cozinhar Ex_Cozinhar
MEx_Cozinhar Ex_Cozinhar
F_Embrulhar
M_Embrulhar
MEx_Triturar
MEx_Cozinhar
M_at(Presente)
M~at(Silencio) ~at(Silencio)
F_Triturar
MEx_Cozinhar
MEx_Cozinhar
MEx_Cozinhar
Ex_Embrulhar
Ex_Embrulhar
Ex_Triturar
Ex_Cozinhar
at(Presente)
Ex_Triturar
MEx_Triturar
M_Embrulhar
I_Embrulhar
I_Triturar
I_Cozinhar
M_at(Presente)
M~at(Silencio) ~at(Silencio)
MEx_Triturar
MEx_Cozinhar
MEx_Cozinhar
MEx_Cozinhar
Mat(MaosLimpas) at(MaosLimpas)
MEx_Triturar
~at(lixo)
Ex_Carregar
Ex_Carregar
M~at(MaosLimpas) ~at(MaosLimpas)
M~at(lixo)
MEx_Carregar
I_Carregar
MEx_Carregar Ex_Carregar
Ex_Carregar
at(lixo)
Mat(lixo)
+
5
at(lixo)
M~at(lixo)
MEx_Carregar
Ex_Carregar
Ex_Carregar
I_Carregar
MEx_Carregar
at(lixo)
Mat(lixo)
+
4
~at(lixo)
Ex_Carregar
Ex_Carregar
at(lixo)
Mat(Silencio)
MEx_Cozinhar
M_Embrulhar
F_Embrulhar
MEx_Triturar
MEx_Cozinhar
M_at(Presente)
M~at(Silencio)
MEx_Triturar
MEx_Cozinhar
MEx_Cozinhar
F_Cozinhar
Mat(MaosLimpas)
F_Triturar
at(Silencio)
Ex_Cozinhar
Ex_Embrulhar
Ex_Triturar
Ex_Cozinhar
at(Presente)
~at(Silencio)
Ex_Triturar
Ex_Cozinhar
Ex_Cozinhar
at(jantar)
at(MaosLimpas)
M~at(MaosLimpas) ~at(MaosLimpas)
M~at(lixo)
F_Carregar
MEx_Carregar
MEx_Carregar
Mat(lixo)
~at(lixo)
Ex_Carregar
Ex_Carregar
Ex_Carregar
at(lixo)
M~at(lixo)
MEx_Carregar
MEx_Carregar
F_Carregar
Mat(lixo)
~at(lixo)
Ex_Carregar
Ex_Carregar
at(lixo)
M~at(lixo)
MEx_Carregar
MEx_Carregar
I_Carregar
Mat(lixo)
+
7
~at(lixo)
Ex_Carregar
Ex_Carregar
Ex_Carregar
at(lixo)
M~at(lixo)
MEx_Carregar
F_Carregar
MEx_Carregar
Mat(lixo)
Ex_Triturar
Ex_Triturar
Ex_Cozinhar
Ex_Cozinhar
at(jantar)
Ex_Cozinhar
at(Silencio)
Mat(Silencio)
Ex_Cozinhar
Ex_Embrulhar
Ex_Embrulhar
Ex_Triturar
Ex_Cozinhar
I_Cozinhar
MEx_Cozinhar
M_Embrulhar
M_Embrulhar
I_Embrulhar
MEx_Triturar
MEx_Cozinhar
M_at(Presente) at(Presente)
M~at(Silencio) ~at(Silencio)
MEx_Triturar
MEx_Cozinhar
MEx_Cozinhar
Mat(jantar)
Mat(MaosLimpas) at(MaosLimpas)
I_Triturar
Ex_Triturar
~at(Silencio)
Ex_Triturar
Ex_Cozinhar
Ex_Cozinhar
at(jantar)
Ex_Triturar
Ex_Cozinhar
Ex_Cozinhar
at(jantar)
Mat(Silencio) at(Silencio)
at(Silencio)
Mat(Silencio)
Ex_Cozinhar
Ex_Cozinhar
Ex_Embrulhar
Ex_Embrulhar
Ex_Triturar
Ex_Cozinhar
MEx_Cozinhar
MEx_Cozinhar
I_Embrulhar
M_Embrulhar
I_Triturar
MEx_Cozinhar
M_at(Presente) at(Presente)
M~at(Silencio) ~at(Silencio)
MEx_Triturar
MEx_Cozinhar
MEx_Cozinhar
Mat(jantar)
Ex_Cozinhar
Ex_Cozinhar
Ex_Embrulhar
Ex_Cozinhar
Ex_Triturar
MEx_Triturar
at(Silencio)
MEx_Cozinhar
MEx_Cozinhar
M_Embrulhar
F_Embrulhar
MEx_Triturar
MEx_Cozinhar
M_at(Presente)
M~at(Silencio)
F_Triturar
MEx_Cozinhar
F_Cozinhar
Mat(jantar)
MEx_Triturar
MEx_Cozinhar
MEx_Cozinhar
F_Embrulhar
M_Embrulhar
F_Triturar
MEx_Cozinhar
M_at(Presente) at(Presente)
M~at(Silencio)
MEx_Triturar
MEx_Cozinhar
MEx_Cozinhar
Mat(jantar)
Mat(MaosLimpas) at(MaosLimpas)
MEx_Triturar
~at(MaosLimpas) M~at(MaosLimpas)
M~at(MaosLimpas) ~at(MaosLimpas) M~at(MaosLimpas) ~at(MaosLimpas) M~at(MaosLimpas)
M~at(lixo)
I_Carregar
MEx_Carregar
MEx_Carregar
Mat(lixo)
at(Silencio)
Ex_Cozinhar
Ex_Cozinhar
Ex_Embrulhar
Ex_Triturar
Ex_Cozinhar
at(Presente)
~at(Silencio)
Ex_Cozinhar
at(jantar)
at(MaosLimpas)
Ex_Triturar
~at(MaosLimpas)
~at(lixo)
Ex_Carregar
Ex_Carregar
at(lixo)
Ex_Triturar
Ex_Triturar
Ex_Cozinhar
Ex_Cozinhar
at(jantar)
at(Silencio)
MEx_Cozinhar
MEx_Cozinhar
M_Embrulhar
I_Embrulhar
MEx_Triturar
MEx_Cozinhar
M_at(Presente)
at(Silencio)
Ex_Cozinhar
Ex_Cozinhar
Ex_Embrulhar
Ex_Embrulhar
Ex_Triturar
Ex_Cozinhar
at(Presente)
M~at(Silencio) ~at(Silencio)
I_Triturar
MEx_Cozinhar
I_Cozinhar
Mat(jantar)
M~at(lixo)
F_Carregar
MEx_Carregar
MEx_Carregar
Mat(lixo)
at(Silencio)
MEx_Cozinhar
MEx_Cozinhar
F_Embrulhar
M_Embrulhar
MEx_Triturar
MEx_Cozinhar
M_at(Presente)
M~at(Silencio)
MEx_Triturar
F_Cozinhar
MEx_Cozinhar
Mat(jantar)
Mat(MaosLimpas)
F_Triturar
~at(MaosLimpas) M~at(MaosLimpas)
~at(lixo)
Ex_Carregar
Ex_Carregar
Ex_Carregar
at(lixo)
Mat(MaosLimpas) at(MaosLimpas)
MEx_Triturar
M~at(MaosLimpas)
M~at(lixo)
MEx_Carregar
I_Carregar
MEx_Carregar
Mat(lixo)
8+
at(Silencio)
Ex_Cozinhar
Ex_Cozinhar
Ex_Embrulhar
Ex_Triturar
Ex_Cozinhar
at(Presente)
~at(Silencio)
Ex_Triturar
Ex_Cozinhar
at(jantar)
at(MaosLimpas)
~at(MaosLimpas)
~at(lixo)
Ex_Carregar
Ex_Carregar
at(lixo)
Figura 5.2: Grafo de Planos temporal para o domnio do jantar com uma das possveis
Cozinhar
Carregar
Embrulhar
Figura 5.3: Possvel Soluo do Grafo de Planos a Eventos para o Domnio do Jantar.
57
at(lixo)
manut.
~at(lixo)
at(maoslimpas)
~at(maoslimpas)
at(silencio)
manut.
manut.
~at(lixo)
triturar
triturar
manut.
at(lixo)
carregar
carregar
at(maoslimpas)
manut.
at(silencio)
~at(silencio)
manut.
manut.
manut.
manut.
at(maoslimpas)
~at(maoslimpas)
at(silencio)
~at(silencio)
cozinhar
cozinhar
at(jantar)
manut.
at(jantar)
embrulhar
embrulhar
at(presente)
manut.
at(presente)
Figura 5.4: Rede de Petri gerada pelo Petriplan em sua primeira verso para o problema
do jantar.
at(lixo)
Man
Man
Man
Carregar
~at(lixo)
at(MaosLimpas)
at(silencio)
Man
at(silencio)
Cozinhar
Jantar
Man
2
Jantar
Embrulhar
Presente
Figura 5.5: Marcao Final da Rede de Petri gerada pelo Petriplan em sua primeira
verso para o problema do jantar.
Note que a Rede de Petri gerada para o problema do jantar pelo Petriplan original,
obtm a marcao nal para o problema do jantar conforme descreve a gura 5.5. Associando a essa marcao, as mesmas duraes das aes utilizadas no exemplo anterior,
59
lini
tini
at(maoslimpas)
at(lixo)
at(silencio)
Figura 5.6: Estado inicial para o problema do jantar, gerado pela Rede de Planos.
Na fase seguinte, com a incluso das aes, seus efeitos e da estrutura de controle,
60
tini
at(maoslimpas)
at(lixo)
at(silencio)
triturar
~triturar
carregar
~carregar
cozinhar
Pcarregar
Ptriturar
~cozinhar
Pcozinhar
embrulhar
~embrulhar
Pembrulhar
o
triturar
~triturar
carregar
~carregar
cozinhar
~cozinhar
embrulhar
~embrulhar
F
jantar
~at(lixo)
presente
Figura 5.7: Rede de planos aps incluso da segunda camada para o problema do jantar.
61
cozinhar
embrulhar
carregar
jantar
~lixo
presente
Figura 5.8: Sub-Rede obtida pela Rede de Planos para o problema do jantar.
Note que para alcanar o estado meta para esta sub-rede representada na gura 5.8,
efetua-se:
S1 = cozinhar//embrulhar
S2 = carregar
Observe que para este mesmo problema, utilizando o grafo de planos original, se
fazem necessrios no mnimo duas expanses para se alcanar o estado meta e apenas
uma no caso da Rede de Planos.
63
tini
at(maoslimpas)
at(lixo)
at(silencio)
[3]
triturar
[3]
carregar
~triturar
[6]
coznhar
~carregar
Pcarregar
Ptriturar
~cozinhar
Pcozinhar
[2]
embrulhar
~embrulhar
Pembrulhar
o
triturar
~triturar
carregar
~carregar
cozinhar
~cozinhar
embrulhar
~embrulhar
F
jantar
~at(lixo)
presente
64
cozinhar
[6]
embrulhar
[3]
[2]
carregar
jantar
~lixo
presente
Figura 5.10: Sub-Rede temporizada obtida pela Rede de Planos para o problema do
jantar.
Cozinhar
Embrulhar
Carregar
Figura 5.11: Possvel Soluo do Grafo de Planos a Eventos para o Domnio do Jantar
com os Novos Tempos.
Com relao aos mtodos baseados em Redes de Petri temos restries semelhantes.
66
67
Captulo 6
Concluso
Este trabalho investigou o planejamento temporal em inteligncia articial. Para tanto,
foram apresentados os principais conceitos relacionados com o tema de planejamento
e as principais abordagens existentes para resolver problemas a ele relacionados. A
abordagem baseada no Grafo de Planos foi estudada com maior profundidade. Tambm
foram apresentadas as diferentes linguagens de descrio de problemas e sua evoluo
recente, sobretudo na especicao de restries temporais relativas durao de aes
na construo de planos.
Entre os mtodos derivados do Grafo de Planos foi estudado com maior ateno o
mtodo Petriplan, proposto pela equipe de pesquisa que envolve o LSIP (Laboratrio
de Sistemas Inteligentes de Produo) do CPGEI/CEFET-PR e o LIC (Laboratrio de
Inteligncia Computacional) do Departamento de Informtica da UFPR. Para tanto,
foram estudadas as Redes de Petri, assim como suas extenses temporais.
O desenvolvimento do trabalho resultou na proposta de duas abordagens para a
questo temporal em planejamento em inteligncia articial. A primeira baseada apenas
no Grafo de Planos e a segunda na Rede de Planos, uma evoluo do Petriplan, tambm
desenvolvida na equipe de pesquisa. Ambas as propostas geram planos temporalmente
robustos, isto , que minimizam sua durao total. A primeira com elevado custo
68
Captulo 6. Concluso
computacional, pois implica gerar em camadas no Grafo de Planos a Eventos para
cada data em que ocorre incio ou trmino de aes. Qualquer modicao nos dados
temporais implica gerar um novo grafo. Uma vantagem inerente a este mtodo est
em utilizar grande parte das solues j existentes para o Grafo de Planos, como os
algoritmos de elevado desempenho para o processo de busca. Outra vantagem est na
possibilidade de se denir como objetivo uma durao mxima para o plano. Caso
seja alcanada uma camada com tempo superior ao mximo denido, pode-se armar
a impossibilidade de soluo dentro do objetivo xado.
A grande vantagem da segunda abordagem est na capacidade da Rede de Planos
de representar, de forma mais completa e correta, que as demais abordagens j desenvolvidas, as diferentes relaes de ordem existentes entre as aes que compem os
planos que resolvem o problema de planejamento. Desta forma, a incluso do tempo ou
a modicao dos dados temporais associados s aes pode ser efetuada diretamente
sobre a rede, sem custo computacional adicional.
Ambas as abordagens propostas podem facilmente ser extendidas para atender s
novas especicaes temporais da linguagem PDDL, tais como efeitos de incio, prcondies para trmino e efeitos que permanecem vlidos somente durante a execuo
das aes.
Como trabalhos futuros, indicamos:
69
Bibliograa
[1] Wolfman S. A. and Weld D. S. The lpsat engine & its application to resource
planning. IJCAI, 1999.
[2] Y. Sun A. Barret, J. Penberthy and D. Weld. UCPOP v4.0 user's manual. Informe
Tcnico TR 93-09-06d, Dep. of Computer Science and Engineering, University of
Washington, Seattle, WA., 1996.
[3] E. Onainda A. Garrido and F. Barber. A temporal planning system for timeoptimal planning. In 10th Portuguese Conference on AI (EPIA-2001), pages 379
392, Springer-Verlang, 2001.
[4] M. Fox A. Garrido and D. Long. A temporal planning system to manege level 3
durative actions of pddl2.1. In En Proc. 20th UK Planning and Scheduling SIG
of AIPS98, 1998.
[7] Y.Dimopoulos B. Nebel and J.Kehler. Ignoring irrelevant facts and operators in
plan generation. Proc. European Conference on Planning, pages 338350, 1997.
70
Bibliograa
[8] A. Blum and M. Furst. Fast planning through planning graph analysis. In Pro-
71
Bibliograa
[19] M. Fox and D. Long. Pddl2.1: An extension pddl for expressing temporal planning
domains. 2003.
[20] A. Gerevini and I. Serina. Lpg: A planner bad on local search for planning graphs
with action costs. En Proc. 6th Int. Conference on AI Planning and Scheduling
72
Bibliograa
[30] H. Kautz and B.Selman. Blockbox: A new approach to the aplicacation of theorem
proving to problem solving. En Proc. Workshop on Planning as Combinatorial
Search, 1998.
[31] H. Kautz and B. Selman. Planning as satisability. Proc. 10th Eur. Conf. AI,
pages 359363, 1992.
[32] H. Kautz and B. Selman. ushing the envelope: Planning, propositional logic, and
stochastic search. Proceedings of the Thirteenth National Conference on Articial
73
Bibliograa
[40] D. McDermott. Pddl - the planning domain denition language. AIPS-98 - Plan-
Nets. PhD thesis, Cambridge, Mass: MIT, Dep. Electrical Enginnering, 1974.
[48] V. Schastai. Mtodos de anlise para redes de petri temporais. Master's thesis,
Centro Federal de Educao Tcnolgica do Paran, 2002.
[49] V. Schastai and L. A. Knzle. Anlise de redes de petri temporais combinando
grafo de classes e processos. Congresso Brasileiro de Automtica, 2-5 setembro
2002.
74
Bibliograa
[50] F. Silva. Algoritmos para planejamento baseada em strips. Master's thesis, Universidade Federal do Paran, 2000.
[51] F. Silva. Rede de Planos: Uma Proposta para a Soluo de Problemas de Plane-
75
Apndice A
PDDL2.1 E A DESCRIO
TEMPORAL
Conforme mencionado na seo 4.1 a PDDL+ foi dividida em 5 nveis, sendo o nvel 3
objeto desse trabalho, este apndice destina-se ao detalhamento desse nvel.
(:durative-action
<NameOfAction>
:parameters
<ListOfArgumentsWithTypes>
:duration
<LogicalExprOnDurationVariable>
:condition
<LogicalExpr>
:effect
<LogicalExpr>
)
Onde cada nova varivel tem a seguinte nalidade:
76
<LogicalExprOnDurationVariable> - Listar as combinaes, proposies e restries temporais na durao de uma ao, onde a restrio numrica pode ser
uma desigualdade;
(:durative-action drive
:parameters (pk1 ?pk2-obj ?t-truck ?loc ?loc-loc)
:duration (= ?duration (driving-time ?loc1 ?loc2})
(0)
(1)
(2)
77
(03)
)
:effect (and
(at start (not (at ?t ?loc1)))
(4)
(5)
(6)
)
)
No fragmento do domnio adicionada uma identio numrica s linhas, objetivando descrever a notao utilizada no domnio.
(0), uma restrio temporal: garante que o tempo de deslocamento entre duas
localidades nunca seja superior ao estipulado pelo agente, uma pr-condio
para que (6) seja atualizada. Permite que esta ao seja concorrente com todas
as aes que afetam o deslocamento do caminho durante a execuo da ao;
78
(3) (4) e (6), so os efeitos gerados pela ao executada, bem como o tempo
decorrido na execuo da ao.
Conforme j mencionado anteriormente, a extenso de PDDL2.1 nvel 3 tem como
objetivo principal a avaliao de caractersticas temporais dos domnios, bem como
avaliao de planos concorrentes. A representao da concorrncia entre aes gera
um modelo mais preciso das transies de estados no decorrer da execuo das aes.
Em conseqncia, novas relaes de excluso so geradas, uma nova nomeclatura
inserida, novos efeitos so obtidos e novas precondies so exigidas, tornando assim,
PDDL2.1 nvel 3, mais complexo em termos de anlise, porm, mais preciso em termos
de resultados obtidos [19, 53].
Por tratar-se de aes com durao, primeiramente deve-se apresentar a denio
de Ao Durativa conforme [19, 5, 53].
sero gerados no incio de a ,sendo Sadd e Sdel so efeitos positivos e efeitos negativos,
respectivamente. Enquanto, EE = { Eadd
reais positivos.
Inv(a)
ECond(a)
a (dur(a))
SEff(a)
EEff(a)
80
Denio A.2 Mutex Esttico Diz-se que um mutex esttico quando o mesmo se
mantm, independentemente do instante temporal da ao que ocorre. So denominados
estticos, pois dependem exclusivamente de aes do domnio independente do tempo.
Como exemplo, observar-se na gura 3.10: quando a ao drive(t1 , loc1 , loc2 )
executada, so gerados os efeitos at(t1 , loc1 ) e at(t1 , loc1 ). Este mutex permanente
e no se altera devido ao fato dele ser gerado por uma ao de manuteno, a qual se
far presente at a ltima camada do grafo. Como resultado tem-se conitos gerados
em virtude da simultaneidade dos efeitos gerados pelas mesmas.
Denio A.3 Mutex Dinmico Diz-se que um mutex dinmico se o mesmo for
temporal e desaparecer no decorrer da ao.
Um exemplo de Mutex Dinmico tambm pode ser observado na gura 3.10, onde
tem-se na camada 1 a ao load(t1 , loc1 , pk2 ), que ir gerar um mutex entre as aes
at(pk2 , loc1 ) e in(pk2 , t1 ), porm, este mutex ir desaparecer a partir do instante em
que surgir in(pk2 , t1 ).
Ao trabalhar com aes que apresentem durao, torna-se necessrio efetuar o clculo de mutex entre as mesmas, em funo de suas diversas formas de execuo. A
formalizao desses calculos podero ser observados em [53].
81
Apndice B
REDES DE PETRI
Redes de Petri Convencionais
A teoria sobre Redes de Petri surgiu em 1962 como resultado do trabalho da tese Kom-
munication Mit Automaten (Comunicao com Autmatos) defendida por Carl Adam
Petri [46]. Entre 1968 e 1976 foram lanadas as RdP por um grupo de pesquisadores
orientados por Anatol W. Holt do Instituto de Tecnologia de Massachussetts (MIT),
nos Estados Unidos, sendo estas denidas como Redes de Petri convencionais.
Desde ento as Redes de Petri tm sido amplamente utilizadas para modelar, analisar e controlar sistemas dinmicos e eventos discretos. Segundo Cardoso & Valette [12]
uma RdP adaptvel a aplicaes em que os eventos envolvem de forma concorrente e
tem como vantagem, quando utilizadas como modelo formal para a busca de solues
em termos de aplicaes prximas de problemas reais:
83
T=(t1 ,t2 ,...tn ), um conjunto nito de transies denido como o conjunto de transies de N, sendo P T = ;
p1
t1
p3
t3
p2
t2
p5
p4
M' : M t M'.
Generalizando a frmula para calcular uma nova marcao aps o disparo de uma
seqncia s de transies, considere a matriz C = P ost P re, chamada de matriz de
Mg = M + C.s.
Esta equao denotada Equao Fundamental de N. Podemos usar a equao
fundamental para determinar uma vetor s para uma dada rede N e duas marcaes de
86
contnuo, enquanto as RdPN operam com o tempo no modo discreto. Segundo [12, 43] o
modelo TPN engloba o modelo RdPN, de forma que possvel representar um instante
de disparo t como um intervalo [t, t]. Diante dessa possibilidade de transformao,
neste trabalho sero utilizadas as RPN devido ao fato de as mesmas serem um modelo
mais geral, oferecendo um universo de anlise mais completo para as informaes que
deseja-se obter. Em decorrncia disso, na seo a seguir sero apresentados os conceitos
bsicos de TPN.
mim expressa o tempo mnimo necessrio que uma transio deve permanecer habilitada antes do disparo e max representa o tempo mximo que a transio permanecer
87
(P, T, P re, P ost, M, I), onde (P, T, P re, P ost, M ) a representao de uma Rede de
Petri Convencional e I matematicamente descrito como: I : T (Q+ (Q+ {}))
| I(t) = [a, b], sendo Q+ o conjunto dos nmeros racionais no negativos. I faz a
associao de um intervalo de disparo I(t) = [a, b] a cada transio t da rede, em que a
e b Q+ , com 0 a b e com a = [41]. a dito limite esttico inferior (LEI)
e b, limite esttico superior (LES) de cada transio da rede.
A introduo do conceito esttico no texto acima tem como objetivo esclarecer que
em uma rede de Petri Temporal, por razes dos limites temporais associados a cada
transio, somente a marcao no suciente para denir, sem ambigidade, um
estado da rede. Alm da marcao, faz-se necessrio descrever os limites temporais das
transies habilitadas por essa marcao, pois os mesmos devem ser respeitados. Isso
signica que os limites de uma transio da rede, quando analisada de forma isolada,
requerem que a transio, isoladamente, necessite de um tempo mnimo (LEI) e um
tempo mximo (LES) para disparar, conforme pode ser observado na gura B.2.
Conforme pode ser observado com maior detalhamento em [48], ao ser representado
o comportamento dinmico da Rede, deve-se considerar tanto a evoluo temporal
(passagem do tempo) como a possibilidade de outras transies que estejam habilitadas
e possam vir a impor restries aos intervalos de tempo. Decorrente disso, os limites
das transies resultantes do comportamento dinmico da Rede sero chamados limite
inferior de disparo (LID) e limite superior de disparo (LSD).
A representao de uma Rede de Petri Temporal, de maneira geral, pode ser descrita
como E = (M, IT ) onde M a marcao da Rede e IT representa o mapeamento das
transies habilitadas pela marcao M juntamente com seus intervalos de disparo,
dessa forma pode-se dizer que, IT : HAB(M ) (Q+ (Q+ {})) | IT (t) = [c, d],
em que 0 c d , e c = . Sendo c o limite inferior de disparo (LID) e d limite
88
t1[1,2]
p3
t3[2,4]
p2
t2[1,2]
p5
p4
p2
t1 [0,1]
p1
t1
p3
t6 [1,5]
t3 [1,2]
p4
t4 [1,2]
p6
p5
p7
p9
p8
t5 [0,1]
O grafo de classes que se obtm a partir da rede ilustrada na gura B.3 o grafo
B.4.
C3 : p2p5p6
2 <= t2 <= 5
0 <= t4 <= 1
2 <= t2t4 <= 5
C1 : p1
0 <= t1 <= 1
t1[0,1]
t3[0,1]
t3[1,2]
C2 : p2p4p6
4 <= t2 <= 6
1 <= t3 <= 2
1 <= t4 <= 2
t4[1,2]
t4[0,1]
C5 :p2p5p7
2 <= t2 <= 5
0 <= t5 <= 1
t5[0,1]
C6 : p2p8
1 <= t2 <= 5
C4 : p2p4p7
2 <= t2 <= 5
0 <= t3 <= 1
2 <= t2t3 <= 5
t2[1,5]
t6[1,5]
C9 : p9
C7 : p3p8
1 <= t6 <= 5
Do grafo B.4, o sistema de inequaes que ser gerado pela metodologia proposta
em [49] ser obtido tendo a primeira inequao resultante da classe inicial do caminho,
pois representa a seqncia de transies do grafo. A inequao obtida faz a descrio
das possveis datas de disparo para a transio t1 .
As demais inequaes sero obtidas quando percorrido o caminho das demais classes,
sendo que as mesmas estaro representando as depndencias nas datas de disparo das
91
Restrio Temporal
I1
0 e1t1 1
I2
4 e1t2 e1t1 6
I3
1 e1t3 e1t1 2
I4
1 e1t4 e1t1 2
I5
2 e1t2 e1t3 5
I6
0 e1t4 e1t3 1
I7
2 e1t2 e1t4 5
I8
0 e1t5 e1t4 1
I9
1 e1t2 e1t5 5
I10
1 e1t6 e1t2 5
Tabela B.1: Restries Temporias para a Seqncia: ((t1 , 1 ) (t3 , 2 ) (t4 , 3 ) (t5 , 4 )
(t2 , 5 ), (t6 6 ))
A rede descrita na gura B.4, se analisada por outras metodologias teria como data
mxima de disparo 15 unidades de tempo, enquanto que se a mesma for analisada pelo
grafo de classes em decorrncia do paralelismo existente, pode-se disparar t6 em at 12
unidades de tempo.
Alm dessa possvel reduo de unidades de tempo, tambm poder ser obtido
atrves do sistema de inequaes outras anlises, tais como, a busca pela maior seqncia temporal entre as transies t1 e t6 conforme mostrado em [49].
92