33
Desenvolvimento de Desenvolvimento de Sistemas Baseados em Sistemas Baseados em Conhecimento Conhecimento Planejamento com Tempo, Prazos e Recursos Planejamento Hierárquico

Desenvolvimento de Sistemas Baseados em Conhecimento Planejamento com Tempo, Prazos e Recursos Planejamento Hierárquico

Embed Size (px)

Citation preview

Page 1: Desenvolvimento de Sistemas Baseados em Conhecimento Planejamento com Tempo, Prazos e Recursos Planejamento Hierárquico

Desenvolvimento de Sistemas Desenvolvimento de Sistemas Baseados em ConhecimentoBaseados em Conhecimento

Planejamento com Tempo, Prazos e RecursosPlanejamento Hierárquico

Page 2: Desenvolvimento de Sistemas Baseados em Conhecimento Planejamento com Tempo, Prazos e Recursos Planejamento Hierárquico

Relembrando STRIPSAlgoritmo

Conjunto de Operadores

Estado Atual

.

.

.

Op(ACTION: PutOn(b, x, y),PRECOND: On(b, x) ^ Clear(b) ^ Clear(y),EFFECT: On(b, y) ^ Clear(x) ^ On(b, x) ^ Clear(y))

On(A,Table)On(B,Table)On(C,Table)

Clear(A)Clear(B)Clear(C)

On(A,B)

On(B,C) On(C,Table)Clear(A)

On(A,Table)On(B,Table)

On(C,Table)

Clear(A)Clear(B)

Clear(C)

PutOn(B, Table, C)

PutOn(A, Table, B)

On(B,C) Clear(Table)On(A,B)

Page 3: Desenvolvimento de Sistemas Baseados em Conhecimento Planejamento com Tempo, Prazos e Recursos Planejamento Hierárquico

Relembrando POP

StartStart

FinishFinishAt(Home)At(Home)Have(Milk)Have(Milk) Have(Ban.)Have(Ban.)Have(Drill)Have(Drill)

Buy(Ban.)Buy(Ban.)At(SM)At(SM) Sells(SM,Ban.)Sells(SM,Ban.)

Buy(Milk)Buy(Milk)At(SM)At(SM) Sells(SM,Milk)Sells(SM,Milk)

Go(SM)Go(SM)At(HWS)At(HWS)

Go(HWS)Go(HWS)At(Home)At(Home)

Buy(Drill)Buy(Drill)At(HWS), Sells(HWS,Drill)At(HWS), Sells(HWS,Drill)

Go(Home)Go(Home)At(SM)At(SM)

Page 4: Desenvolvimento de Sistemas Baseados em Conhecimento Planejamento com Tempo, Prazos e Recursos Planejamento Hierárquico

Relembrando POP

Page 5: Desenvolvimento de Sistemas Baseados em Conhecimento Planejamento com Tempo, Prazos e Recursos Planejamento Hierárquico

Limitações POP-STRIPS

• O tempo não é levado em conta– Diz “o que”, mas não “quando” nem “por quanto tempo”– “O modelo de planejamento temporal deve ser baseado

numa abordagem de intervalo explicito, o qual permita a representação de referências temporais quantitativas e qualitativas, assim como relações entre eles”.

I

IfIi

a

Duração = If - Ii

Page 6: Desenvolvimento de Sistemas Baseados em Conhecimento Planejamento com Tempo, Prazos e Recursos Planejamento Hierárquico

Limitações POP-STRIPS

• A limitação dos recursos não é considerada– Não custa nada agir (ex: orçamento, pessoas)

» Os recursos de uma brigada de incêndio, assim como a própria brigada, são limitados

– Plano de viagem X orçamento

Page 7: Desenvolvimento de Sistemas Baseados em Conhecimento Planejamento com Tempo, Prazos e Recursos Planejamento Hierárquico

Limitações POP-STRIPS

• Pré-condições e efeitos são muito limitados– Os operadores são essencialmente proposicionais

» ex: sem quantificador universal nos efeitos, não se pode dizer que os componentes de uma esquadrilha atacam juntos

Attack(target)

Identified(target), available(esq)

p Plane(p) p esq Attack(p,target)

Page 8: Desenvolvimento de Sistemas Baseados em Conhecimento Planejamento com Tempo, Prazos e Recursos Planejamento Hierárquico

Limitações POP-STRIPS

• Planos não são hierárquicos– Planejamento em um único nível de granularidade

Page 9: Desenvolvimento de Sistemas Baseados em Conhecimento Planejamento com Tempo, Prazos e Recursos Planejamento Hierárquico

Limitações POP-STRIPS

-Operadores de baixo nível:- Mover- Girar- Zoom câmera- Identificar cadáveres

Page 10: Desenvolvimento de Sistemas Baseados em Conhecimento Planejamento com Tempo, Prazos e Recursos Planejamento Hierárquico

Tempo e Prazos

• Job Shop Scheduling– Completar conjunto de tarefas (jobs)– Cada tarefa é composto por uma 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 11: Desenvolvimento de Sistemas Baseados em Conhecimento Planejamento com Tempo, Prazos e Recursos Planejamento Hierárquico

Tempo e Prazos

• Acrescentar Duration(d) para ações em STRIPS• Exemplo...

– Init (Car(C1) Car(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) Car(c) EngineIn(c), Effect: EngineIn(c) Duration(d))

– Action (AddWheels(w,c), Precond: Wheels(w,c,d) Car(c)

Effect: WheelsOn(c) Duration(d))– Action (Inspect(c),

Precond: EngineIn(c) WheelsOn(c) Car(c)Effect: Done(c) Duration(10))

Page 12: Desenvolvimento de Sistemas Baseados em Conhecimento Planejamento com Tempo, Prazos e Recursos Planejamento Hierárquico

Tempo e Prazos

• Procedimento: “planejar antes e escalonar depois”– Rodar POP normalmente e depois escalonar ações (caminho mais rápido)– Abordagem usada na prática, sobretudo porque o plano pode ser

fornecido por um especialista• Solução encontrada pelo POP “normal”

Page 13: Desenvolvimento de Sistemas Baseados em Conhecimento Planejamento com Tempo, Prazos e Recursos Planejamento Hierárquico

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 14: Desenvolvimento de Sistemas Baseados em Conhecimento Planejamento com Tempo, Prazos e Recursos Planejamento Hierárquico

Tempo e Prazos

[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

Caminho crítico

Page 15: Desenvolvimento de Sistemas Baseados em Conhecimento Planejamento com Tempo, Prazos e Recursos Planejamento Hierárquico

Restrição de Recursos

• Problemas reais de escalonamento são ainda mais complexos devido a restrições sobre recursos– Recursos Consumíveis (Consumable resources) - ex. dinheiro – Recursos Reutilizáveis (Reusable resources) - ex. um único guindaste

para levantar o motor

t

Full

Qf

t

2

1

extinguish(1, F1, t2)

extinguish(2, F2, t4)

extinguish(1, F2, t5)

QWReusable resource Consumable resource

extinguish(1, F1, t2)consume

extinguish(1, F2, t5)consume

producerefill(1,qx, tx)

qx

Page 16: Desenvolvimento de Sistemas Baseados em Conhecimento Planejamento com Tempo, Prazos e Recursos Planejamento Hierárquico

Restrição de Recursos

• Solução para recursos consumíveis– adicionar precondições e efeitos– Action (AddEngine(e,c),

Precond: Engine (e,c,d) Car(c) EngineIn(c) (Money(g) > 100)

Effect: EngineIn(c) Duration(d) Money(g-100))

Page 17: Desenvolvimento de Sistemas Baseados em Conhecimento Planejamento com Tempo, Prazos e Recursos Planejamento Hierárquico

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 18: Desenvolvimento de Sistemas Baseados em Conhecimento Planejamento com Tempo, Prazos e Recursos Planejamento Hierárquico

Exemplo: Montagem de Dois Carros

Init (Car(C1) Car(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) Car(c) EngineIn(c)EFFECT: EngineIn(c) Duration(d) RESOURCE: EngineHoist(1) )

Action (AddWheels(w, c),PRECOND: Wheels(w, c, d) Car(c)EFFECT: WheelsOn(c) Duration(d) RESOURCE: WheelStations(1) )

Action (Inspect(c),PRECOND: EngineIn(c) WheelsOn(c) Car(c)EFFECT: Done(c) Duration(10) RESOURCE: Inspectors(1) )

Page 19: Desenvolvimento de Sistemas Baseados em Conhecimento Planejamento com 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

Page 20: Desenvolvimento de Sistemas Baseados em Conhecimento Planejamento com Tempo, Prazos e Recursos Planejamento Hierárquico

Recursos Reusáveis

• Heurística mais usada: Minimum Slack Algorithm (greedy)1. A cada interação, identifica as ações não escalonadas cujos

predecessores já foram todos escalonados...2. Escalona a com menor brecha/folga (slack)3. Atualiza ES e LS das ações, e recomeça

Slack = LS - ES LSES

LSES

Slack

textra

Slack’ = Slack - textra

Page 21: Desenvolvimento de Sistemas Baseados em Conhecimento Planejamento com Tempo, Prazos e Recursos Planejamento Hierárquico

Planejamento Hierárquico

• 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 22: Desenvolvimento de Sistemas Baseados em Conhecimento Planejamento com Tempo, Prazos e Recursos Planejamento Hierárquico

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 23: Desenvolvimento de Sistemas Baseados em Conhecimento Planejamento com Tempo, Prazos e Recursos Planejamento Hierárquico

Planejamento Hierárquico

Page 24: Desenvolvimento de Sistemas Baseados em Conhecimento Planejamento com Tempo, Prazos e Recursos Planejamento Hierárquico

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/Redefinindo POP

– Decomposição de operadores abstratos» c/ indicação de quem são ou não os operadores abstratos

– Como decompor operadores não primitivos

Page 25: Desenvolvimento de Sistemas Baseados em Conhecimento Planejamento com Tempo, Prazos e Recursos Planejamento Hierárquico

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/Redefinindo POP

– Decomposição de operadores abstratos» c/ indicação de quem são ou não os operadores abstratos

– Como decompor operadores não primitivos

Page 26: Desenvolvimento de Sistemas Baseados em Conhecimento Planejamento com Tempo, Prazos e Recursos Planejamento Hierárquico

Planejamento Hierárquico

• Operador Decompose( )

Page 27: Desenvolvimento de Sistemas Baseados em Conhecimento Planejamento com Tempo, Prazos e Recursos Planejamento Hierárquico

Planejamento Hierárquico

• Algoritmo– Construir POP inicial ao maior nível de abstração– Recursivamente decompor ações abstratas até POP final conter

apenas operadores primitivos (que podem ser executados pelo agente)

– Resolver ameaças e verificar consistência global do POP final

• Obs– Deve-se garantir que todo passo de um plano final P é primitivo

• Decomposição d’ para a ação a’ – Tarefa realizada em 3 fases...

Page 28: Desenvolvimento de Sistemas Baseados em Conhecimento Planejamento com Tempo, Prazos e Recursos Planejamento Hierárquico

Planejamento Hierárquico

Page 29: Desenvolvimento de Sistemas Baseados em Conhecimento Planejamento com Tempo, Prazos e Recursos Planejamento Hierárquico

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

Page 30: Desenvolvimento de Sistemas Baseados em Conhecimento Planejamento com Tempo, Prazos e Recursos Planejamento Hierárquico

Planejamento Hierárquico

• 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: menor engajamento

• 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 31: Desenvolvimento de Sistemas Baseados em Conhecimento Planejamento com Tempo, Prazos e Recursos Planejamento Hierárquico

Planejamento Hierárquico

• Vantagens de Sub-POPs independentes:– espaço de busca reduzido– conhecimento composicional – uso e reuso de sub-POPs pré-planejado

Page 32: Desenvolvimento de Sistemas Baseados em Conhecimento Planejamento com Tempo, Prazos e Recursos Planejamento Hierárquico

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 33: Desenvolvimento de Sistemas Baseados em Conhecimento Planejamento com Tempo, Prazos e Recursos Planejamento Hierárquico

Aplicações Espaciais

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