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

Estendendo o Planejamento Clássico para Aplicações do Mundo Real

  • Upload
    dori

  • View
    42

  • Download
    0

Embed Size (px)

DESCRIPTION

Estendendo o Planejamento Clássico para Aplicações do Mundo Real. Tempo, prazos e recursos. Relembrando sobre POP-STRIPS. Diferenças principais entre busca e planejamento? Tipo de problema Representação de estados e ações Planos gerados Processo de geração do plano - PowerPoint PPT Presentation

Citation preview

Page 1: Estendendo o Planejamento Clássico para Aplicações do Mundo Real

CIn-UFPE1

Estendendo o PlanejamentoClássico para Aplicações do

Mundo Real

Tempo, prazos e recursos

Page 2: Estendendo o Planejamento Clássico para Aplicações do Mundo Real

CIn-UFPE2

Relembrando sobre POP-STRIPS

Diferenças principais entre busca e planejamento?• Tipo de problema• Representação de estados e ações• Planos gerados• Processo de geração do plano

Vantagens de planejamento de POP-STRIPS?• Flexibilidade, expressividade,... • Redução de complexidade (STRIPS, forma de planejar,...)

Limitações• Ambientes acessíveis, deterministas, estáticos...• E várias outras: quais?

Page 3: Estendendo o Planejamento Clássico para Aplicações do Mundo Real

CIn-UFPE3

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)

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 4: Estendendo o Planejamento Clássico para Aplicações do Mundo Real

CIn-UFPE4

Planejando com Tempo, Prazos e Recursos

Page 5: Estendendo o Planejamento Clássico para Aplicações do Mundo Real

CIn-UFPE5

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 6: Estendendo o Planejamento Clássico para Aplicações do Mundo Real

CIn-UFPE6

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

• Action (AddWheels(w,c), Precond: Wheels(e,c,d) Chassis(c)^ EngineIn(c)

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

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

Page 7: Estendendo o Planejamento Clássico para Aplicações do Mundo Real

CIn-UFPE7

Tempo e Prazos

Procedimento: “planejar antes e escalonar depois”• Rodar POP-STRIPS 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”

AddEngine 1

30

AddEngine 2

60

AddWheels 2

15

AddWheels 1

30

Inspect 1

10

Inspect 2

10

FinishStart

Page 8: Estendendo o Planejamento Clássico para Aplicações do Mundo Real

CIn-UFPE8

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 9: Estendendo o Planejamento Clássico para Aplicações do Mundo Real

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 80t

AddEngine1

Inspect2AddEngine2

AddWheels1

Inspect1

AddWheels2

Escalonamento

Page 10: Estendendo o Planejamento Clássico para Aplicações do Mundo Real

CIn-UFPE10

Restrição de Recursos

Problemas reais de escalonamento são ainda mais complexos devido a restrições sobre recursos• Consumable resources - ex. dinheiro• 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) (Money(g) > 100) Effect: EngineIn(c) Duration(d) Money(g-100))

Page 11: Estendendo o Planejamento Clássico para Aplicações do Mundo Real

CIn-UFPE11

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 12: Estendendo o Planejamento Clássico para Aplicações do Mundo Real

CIn-UFPE12

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

Action (AddWheels(w, c),PRECOND: Wheels(w, c, d) Chassis(c) EngineIn(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 13: Estendendo o Planejamento Clássico para Aplicações do Mundo Real

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 14: Estendendo o Planejamento Clássico para Aplicações do Mundo Real

CIn-UFPE14

Recursos reusáveis

Encontrar o melhor escalonamento que obedece as restrições de recursos é um problema NP-hard

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 e para as quais existem recursos disponíveis

2. Escalona a que começo o mais cedo possível (earliest start)...

3. Atualiza ES e LS da ação, e recomeça