CIn-UFPE1
Estendendo o PlanejamentoClássico para Aplicações do
Mundo Real
Tempo, prazos e recursos
Planejamento hierárquico
CIn-UFPE2
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-UFPE3
Planejando com Tempo, Prazos e Recursos
CIn-UFPE4
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-UFPE5
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-UFPE6
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
30
AddEngine 2
60
AddWheels 2
15
AddWheels 1
30
Inspect 1
10
Inspect 2
10
FinishStart
CIn-UFPE7
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
Caminho crítico
[0,0]Start
[0,15]AddEngine1
30
[0,0]AddEngine2
60
[30,45]AddWheels1
30
[60,60]AddWheels2
15
[60,75]Inspect1
10
[75,75]Inspect2
10
[85,85]Finish
Plano
0 10 20 30 40 50 60 70 80
t
AddEngine1
Inspect2AddEngine2
AddWheels1
Inspect1
AddWheels2
Escalonamento
CIn-UFPE9
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-UFPE10
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-UFPE11
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) )
Exemplo: Montagem de Dois Carros
EngineHoist(1)
WheelStations(1)
Inspectors(2)
30 60 105 1150
AddEngine 1 AddEngine 2
AddWheels 1 AddWhls 2
Inspect 2
Inspect 1
9070
Complexidade: problema NP-hard
CIn-UFPE13
Planejamento Hierárquico
CIn-UFPE14
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-UFPE15
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
Exemplo de decomposição hierárquica
BuildHouse
Get Permit
Hire Builder
Pay BuilderConstruction
Decomposes to
FinishhouseStart
land
money
Build Frame
Build Roof
Build Walls
Build Interior
Build Foundation
Decomposes to
CIn-UFPE17
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-UFPE18
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}))
Exemplo de Decompose(o,p)
CIn-UFPE19
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-UFPE20
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-UFPE21
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
Planejamento Hierárquico
BuildHouse
Get Permit
Hire Builder
Pay BuilderConstruction
Decomposes to
Finishhouse
Start
land
Start Buy Land
Get Loan
Finishhouseland
Buy Land
a’
d’
CIn-UFPE23
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 BuildHouse, é substituído por BuyLand
land Permit
• Idem para as ligações causais do tipo a’ p C
CIn-UFPE24
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-UFPE25
Algumas Aplicações
CIn-UFPE26
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-UFPE27
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)