cin-ufpe 1 estendendo o planejamento clássico para aplicações do mundo real tempo, prazos e...

27
CIn-UFPE 1 Estendendo o Planejamento Clássico para Aplicações do Mundo Real Tempo, prazos e recursos Planejamento hierárquico

Upload: internet

Post on 21-Apr-2015

102 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: CIn-UFPE 1 Estendendo o Planejamento Clássico para Aplicações do Mundo Real Tempo, prazos e recursos Planejamento hierárquico

CIn-UFPE1

Estendendo o PlanejamentoClássico para Aplicações do

Mundo Real

Tempo, prazos e recursos

Planejamento hierárquico

Page 2: CIn-UFPE 1 Estendendo o Planejamento Clá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

Page 3: CIn-UFPE 1 Estendendo o Planejamento Clássico para Aplicações do Mundo Real Tempo, prazos e recursos Planejamento hierárquico

CIn-UFPE3

Planejando com Tempo, Prazos e Recursos

Page 4: CIn-UFPE 1 Estendendo o Planejamento Clássico para Aplicações do Mundo Real Tempo, prazos e recursos Planejamento hierárquico

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?

Page 5: CIn-UFPE 1 Estendendo o Planejamento Clássico para Aplicações do Mundo Real Tempo, prazos e recursos Planejamento hierárquico

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))

Page 6: CIn-UFPE 1 Estendendo o Planejamento Clássico para Aplicações do Mundo Real Tempo, prazos e recursos Planejamento hierárquico

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

Page 7: CIn-UFPE 1 Estendendo o Planejamento Clássico para Aplicações do Mundo Real Tempo, prazos e recursos Planejamento hierárquico

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

Page 8: CIn-UFPE 1 Estendendo o Planejamento Clássico para Aplicações do Mundo Real Tempo, prazos e recursos Planejamento hierárquico

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

Page 9: CIn-UFPE 1 Estendendo o Planejamento Clássico para Aplicações do Mundo Real Tempo, prazos e recursos Planejamento hierárquico

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))

Page 10: CIn-UFPE 1 Estendendo o Planejamento Clássico para Aplicações do Mundo Real Tempo, prazos e recursos Planejamento hierárquico

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

Page 11: CIn-UFPE 1 Estendendo o Planejamento Clássico para Aplicações do Mundo Real Tempo, prazos e recursos Planejamento hierárquico

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) )

Page 12: CIn-UFPE 1 Estendendo o Planejamento Clássico para Aplicações do Mundo Real Tempo, prazos e recursos Planejamento hierárquico

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

Page 13: CIn-UFPE 1 Estendendo o Planejamento Clássico para Aplicações do Mundo Real Tempo, prazos e recursos Planejamento hierárquico

CIn-UFPE13

Planejamento Hierárquico

Page 14: CIn-UFPE 1 Estendendo o Planejamento Clássico para Aplicações do Mundo Real Tempo, prazos e recursos 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)

Page 15: CIn-UFPE 1 Estendendo o Planejamento Clássico para Aplicações do Mundo Real Tempo, prazos e recursos Planejamento hierárquico

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

Page 16: CIn-UFPE 1 Estendendo o Planejamento Clássico para Aplicações do Mundo Real Tempo, prazos e recursos Planejamento hierárquico

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

Page 17: CIn-UFPE 1 Estendendo o Planejamento Clássico para Aplicações do Mundo Real Tempo, prazos e recursos Planejamento hierárquico

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

Page 18: CIn-UFPE 1 Estendendo o Planejamento Clássico para Aplicações do Mundo Real Tempo, prazos e recursos Planejamento hierárquico

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)

Page 19: CIn-UFPE 1 Estendendo o Planejamento Clássico para Aplicações do Mundo Real Tempo, prazos e recursos Planejamento hierárquico

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

Page 20: CIn-UFPE 1 Estendendo o Planejamento Clássico para Aplicações do Mundo Real Tempo, prazos e recursos Planejamento hierárquico

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...

Page 21: CIn-UFPE 1 Estendendo o Planejamento Clássico para Aplicações do Mundo Real Tempo, prazos e recursos Planejamento hierárquico

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

Page 22: CIn-UFPE 1 Estendendo o Planejamento Clássico para Aplicações do Mundo Real Tempo, prazos e recursos Planejamento hierárquico

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’

Page 23: CIn-UFPE 1 Estendendo o Planejamento Clássico para Aplicações do Mundo Real Tempo, prazos e recursos Planejamento hierárquico

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

Page 24: CIn-UFPE 1 Estendendo o Planejamento Clássico para Aplicações do Mundo Real Tempo, prazos e recursos Planejamento hierárquico

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

Page 25: CIn-UFPE 1 Estendendo o Planejamento Clássico para Aplicações do Mundo Real Tempo, prazos e recursos Planejamento hierárquico

CIn-UFPE25

Algumas Aplicações

Page 26: CIn-UFPE 1 Estendendo o Planejamento Clássico para Aplicações do Mundo Real Tempo, prazos e recursos Planejamento hierárquico

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

Page 27: CIn-UFPE 1 Estendendo o Planejamento Clássico para Aplicações do Mundo Real Tempo, prazos e recursos 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)