Estendendo o Planejamento
Clássico para Aplicações do
Mundo Real
Tempo, prazos e recursos
Planejamento hierárquico
CIn-UFPE
1
Além da sintaxe... outras limitações de
POP-STRIPS
 O tempo não é levado em conta
• Diz “o que”, mas não “quando” nem “por quanto
tempo”
 A limitação dos recursos não é considerada
• Não custa nada agir (ex: orçamento, pessoas)
 Planos não são hierárquicos
• Planejamento a um único nível de granularidade
 Pré-condições e efeitos são simples demais
• Os operadores são essencialmente proposicionais
– ex: sem quantificador universal nos efeitos, não se pode
dizer que os componentes da aeronave sobem com ela
CIn-UFPE
2
Planejando com Tempo, Prazos e
Recursos
CIn-UFPE
3
Tempo e Prazos
 Job Shop Scheduling
• Completar conjunto de tarefas (seqüência de ações)
• Cada ação tem uma duração e pode precisar de recursos
• Encontrar o escalonamento mais rápido para a execução
das tarefas, respeitando restrições de recursos
 Exemplo de Job Shop Problem
• 2 tarefas (jobs): montar dois carros C1 e C2
• Ações: colocar motor, colocar rodas, inspecionar
• Ordem: motor antes das rodas e inspecionar no final
 Como lidar com isto?
CIn-UFPE
4
Tempo e Prazos
 Acrescentar Duration(d) para ações em STRIPS
 Exemplo...
• Init (Chassis(C1)  Chassis (C2)  Engine(E1,C1,30) 
Engine(E2,C2,60)  Wheels(W1,C1,30)  Wheels(W2,C2,15))
• Goal (Done(C1)  Done(C2))
• Action (AddEngine(e,c),
Precond: Engine (e,c,d)  Chassis(c)  EngineIn(c),
Effect: EngineIn(c)  Duration(d))
• Action (AddWheels(w,c),
Precond: Wheels(e,c,d)  EngineIn(c)  Chassis(c)
Effect: WheelsOn(c)  Duration(d))
• Action (Inspect(c),
Precond: EngineIn(c)  WheelsOn(c)  Chassis(c)
Effect: Done(c)  Duration(10))
CIn-UFPE
5
Tempo e Prazos
 Procedimento: “planejar antes e escalonar depois”
• Rodar POP-STRIPS normalmente e depois escalonar ações
(caminho mais rápido) usando programação dinâmica
• Abordagem usada na prática, sobretudo porque o plano pode
ser fornecido por um especialista
 Solução Encontrada pelo POP “normal”
AddEngine 1
AddWheels 1
Inspect 1
30
30
10
Start
CIn-UFPE
Finish
AddEngine 2
AddWheels 2
Inspect 2
60
15
10
6
Tempo e Prazos
 Método do Caminho Crítico (CPM)
• Caminho Crítico: caminho cujo tempo total é maior
• Para cada ação, indicar
– Tempo Mais Cedo de Início (ES – Earliest Start)
– Tempo Mais Tarde de Início (LS – Latest Start)
• Ações no caminho crítico não podem sofrer nenhum atraso
• Ações fora desse caminho podem sofrer atrasos de tolerância
LS - ES
CIn-UFPE
7
Plano
[0,15]
AddEngine1
30
[30,45]
AddWheels1
30
[60,75]
Inspect1
10
[0,0]
Start
[85,85]
Finish
[0,0]
AddEngine2
60
[60,60]
AddWheels2
15
[75,75]
Inspect2
10
Caminho crítico
Escalonamento
AddWheels1
AddEngine1
Inspect1
Inspect2
AddEngine2
AddWheels2
t
0
10
20
30
40
50
60
70
80
Restrição de Recursos
 Problemas reais de escalonamento são ainda mais
complexos devido a restrições sobre recursos
• Consumable resources - ex. grana
• Reusable resources - ex. um único guindaste para
levantar o motor
 Como resolver?
 Solução para recursos consumíveis
• adicionar precondições e efeitos
• Action (AddEngine(e,c),
Precond: Engine (e,c,d)  Chassis(c)  EngineIn(c)
 (Money(g) > 100)
Effect: EngineIn(c)  Duration(d)  Money(g-100))
CIn-UFPE
9
Restrição de Recursos
 Solução para recurso reutilizável:
• Mais complicado porque a quantidade de recursos
permanece inalterada depois da ação!
• Incrementar representação do problema para incluir novo
campo
– “Resource: R(k)”, k unidades de R são necessárias
• Funciona tanto como
– uma pré-condição (não se pode fazer sem ele)
– um efeito temporário (indisponível pela duração da ação)
 Voltando ao exemplo...
• 1 guindaste, um macaco mecânico e 1 inspetor disponível
CIn-UFPE
10
Exemplo: Montagem de Dois Carros
Init (Chassis(C1)  Chassis(C2)  Engine(E1, C1, 30)  Engine(E2, C2, 60) 
Wheels(W1, C1, 30)  Wheels(W2, C2, 15)  EngineHoists(1) 
WheelStations(1)  Inspectors(2) )
Goal (Done(C1)  Done(C2)
Action (AddEngine(e, c, m),
PRECOND: Engine(e, c, d)  Chassis(c)   EngineIn(c)
EFFECT: EngineIn(c)  Duration(d)
RESOURCE: EngineHoist(1) )
Action (AddWheels(w, c),
PRECOND: Wheels(w, c, d)  Chassis(c)
EFFECT: WheelsOn(c)  Duration(d)
RESOURCE: WheelStations(1) )
Action (Inspect(c),
PRECOND: EngineIn(c)  WheelsOn(c)  Chassis(c)
EFFECT: Done(c)  Duration(10)
RESOURCE: Inspectors(1) )
CIn-UFPE
11
Exemplo: Montagem de Dois Carros
EngineHoist(1)
AddEngine 1
AddEngine 2
AddWheels 1
AddWhls 2
Inspect 1
Inspectors(2)
WheelStations(1)
Inspect 2
0
30
60
70
Complexidade: problema NP-hard
90
105
115
Planejamento Hierárquico
CIn-UFPE
13
Decomposição Hierárquica
 Benefício de uma estrutura hierárquica
• A cada nível a quantidade de tarefas é pequena
comparada com o todo
– Ex. planejamento militar e administrativo
 De fato...
• Instruções detalhadas provocam explosão combinatória
– Ex. “Avançar(1 m), Girar(40°), ...”
 Embora...
• instruções abstratas não são diretamente implementáveis
no mundo real.
– Ex. Go(Supermarket), Buy(Milk), Build(House)
CIn-UFPE
14
Planejamento Hierárquico
 Hierarchical Task Network (HTN) Planning
• Planejar refinando um plano inicial completo apenas com
decomposição hierárquica de operadores abstratos
 Operadores
• Primitivos: diretamente executáveis
• Abstratos: não primitivos
 Plan library
• Contém várias decomposições de ações abstratas em
menos abstratas ou mesmo planos inteiros préconcebidos
• Cada ação abstrata tem pré-condições e efeitos que são
comuns a todas as instanciações dela
CIn-UFPE
15
Exemplo de decomposição hierárquica
BuildHouse
Decomposes to
land
Get
Permit
Start
money
Construction
Hire
Builder
Pay
Builder
house
Decomposes to
Build
Foundation
Build
Frame
Build
Roof
Build
Walls
Build
Interior
Finish
Planejamento Hierárquico
 Planejamento hierárquico híbrido
• Na prática, se mistura operadores de decomposição
(HTN) com outros operadores padrão (POP)
 Como implementa?
 Estendendo STRIPS
• Decomposição de operadores abstratos
– c/ indicação de quem são ou não os operadores abstratos
 Redefinindo POP
• Como decompor operadores não primitivos
CIn-UFPE
17
Exemplo de Decompose(o,p)
 Operador Decompose()
Ex. Decompose(Contruction,
Plan(STEPS:{S1:Build(Foundation),S2:Build(Frame),
S3: Build(Roof), S4:Build(Walls),
S5: Build(Interior)}
Orderings:{S1<S2<S3<S5, S2<S4<S5},
Bindings:{},
Links:{S1 Foundation S2, S2 Frame S3, S2 Frame S4,
S3 Roof S5, S4 Walls S5}))
CIn-UFPE
18
Planejamento Hierárquico
 Algoritmo
• Construir POP inicial ao maior nível de abstração
• Recursivamente decompor ações abstratas até POP final
conter apenas de operadores primitivos (que podem ser
executados pelo agente)
• Resolver ameaças e verificar consistência global do POP
final e
 Obs
• Não há necessariamente uma estratégia de escolha entre
decompor um não primitivo ou resolver pré-condição
aberta
• O plano P é uma solução igual ao POP mas com teste
adicional para garantir que todo passo de P é primitivo
CIn-UFPE
19
Planejamento Hierárquico
 Decomposição d’ para a ação a’
• Igual a uma cirurgia de transplante: tudo tem de ficar
conectado!
• Pré-condições e efeitos adicionais podem aparecer com a
decomposição (ex. GetLoan)
• Obs.: Não há especificação de duração dos passos de d’
 Tarefa realizada em 3 fases...
CIn-UFPE
20
Planejamento Hierárquico
 Fase 1: Substituir a’ por d’
• Remover a’
– ex. BuildHouse
• Inserir cada passo de d’
• Transcrever restrições internas à d’
– ex. GetPermit antes Contruction
• Introduzir novos passos quando for o caso
– ex. GetLoan
• Ou, eventualmente, reutilizar um passo já existente
(chamado de compartilhamento)
– ex. GetLoan poderia ser compartilhado por BuildHouse e
MakeWine, para uma fazenda. Senão poderia até estar
dentro da decomposição
CIn-UFPE
21
Planejamento Hierárquico
Buy Land
Start
land
a’
BuildHouse
house
Decomposes to
Buy Land
Get Loan
Start
land
Finish
d’
Get
Permit
Hire
Builder
Construction
Pay
Builder
house
Finish
Balanço
 Fase 2: Transcrever as restrições de ordenamento
• Dado um passo qualquer B < a’ (ou B > a’), como ele fica
em relação à d’?
– solução 1: B antes (ou depois) de todos os passos de d’
=> muito restritivo, pois BuyLand não precisa vir antes de
HireBuilder
– solução 2: gravar as razões de um ordenamento de forma a
poder relaxá-lo onde ele não for necessário
 Fase 3: Ligações causais
• Se B p a’, troque ela por um conjunto de ligações para
todos os passo de d’ contendo a pré-condição p
– Ex.BuyLand
land Permit
land
BuildHouse, é substituído por BuyLand
• Idem para as ligações causais do tipo a’
CIn-UFPE
p
C
23
Balanço
 Vantagens de Sub-POPs independentes:
• espaço de busca reduzido
• conhecimento composicional
• uso e reuso de sub-POPs pré-planejados
 Observações
• Enquanto ações primitivas são pontuais, as não-primitivas
podem interagir no tempo e merecem atenção
CIn-UFPE
24
Algumas Aplicações
CIn-UFPE
25
Aplicações Industriais (Job Shop)
 Sistema Tosca na Hitachi
• planejamento mensal para 350 produtos diferentes, 35
máquinas de montagem, mais de 2000 operações
• menor engajamento (ex. classe de máquina a ser usada)
 Sistema Isis na Westinghouse
• milhares de lâminas de turbinas e várias máquinas de
montagem
• o tempo atribuído depende da prioridade do pedido
• menor engajamento, planejamento hierárquico
CIn-UFPE
26
Aplicações Industriais (Job Shop)
 Sistema Optimun-AIV
• Montagem, integração e verificação de aeronaves
• Gera planos, monitora execução (feita por seres
humanos) e replaneja rapidamente
• Melhor que Pesquisa Operacional para problemas
complexos pois pode replanejar automaticamente
• Implementado com O-Plan (Currie & Tate 91) que
estende POP-Strips (+ tempo, recursos e hierarquia)
CIn-UFPE
27
Download

plan-classico++