Você está na página 1de 24

IA 718 Tópicos em Sistemas Inteligentes

2-Introdução à Programação
Dinâmica

ProfFernandoGomide DCA-FEEC-Unicamp
Conteúdo
1. Introdução
2. Problema do caminho mínimo
3. Solução com programação dinâmica
4. Análise de complexidade
5. Programação dinâmica forward
6. Exemplos

DCA-FEEC-Unicamp
1-Introdução

 Programação dinâmica
– metodologia de otimização
– problemas que requerem decisões sequenciais interelacionadas
– decisão tem um custo imediato e afeta contexto decisões futuras

 Objetivo
– como obter a sequência de decisões
– minimização custo total em um número de estágios
– compromisso entre custo imediato e futuro

DCA-FEEC-Unicamp
Processos de decisão multiestágios

 Decisão multiestágios
– processo que pode ser desdobrado em um número de etapas
seqüenciais, ou estágios

 Estado
– condição do processo num dado estágio é o estado neste estágio

 Decisões
– opções que se tem em cada estágio
– cada decisão causa uma transição do estado

DCA-FEEC-Unicamp
 Estratégia (política)
– uma seqüência de decisões
– uma decisão para cada estado do processo

 Retorno
– custo, benefício, associado a cada estágio de decisão
– pode variar com o estágio e o estado

 Questão
– determinar a política ótima (aquela que resulta no melhor retorno)

DCA-FEEC-Unicamp
Princípio de otimalidade de Bellman

Uma estratégia ótima apresenta a propriedade segundo a qual, a despeito


das decisões tomadas para se atingir um estado particular num certo
estágio, as decisões restantes a partir deste estado devem constituir uma
estratégia ótima.
[Richard Bellman, 1957]

x1

A x2 G

1 n N

DCA-FEEC-Unicamp
2-Problema do caminho mínimo

q 1 c 5 e 2 h
Qual é o caminho de menor
0 4 1 3 esfôrço (tempo, custo, dis -
7 f 1 i 3 tância, etc.) entre q e r ?
d l

3 2 4 5
5 j 2 m 2 • 20 caminhos distinos
g o • 5 adições por caminho
• 19 comparações
4 2 8 2

k
2 n 4 p 1 r

DCA-FEEC-Unicamp
3-Solução com programação dinâmica
vi melhor caminho de i até r
vq = min {1+ vc , 0 + vd}
va vc
vc = min {5 + ve , 4 + vf}
q 1 c 5 e 2 h
vd = min {7 + vf , 3 + vg}
………………………..
0 4 1 3
7 f 1 i 3 vl = 5 + vo
vd d l
vm = min {2 + vo , 8 + vp}
3 2 4 5
vn = 4 + vp
5 j 2 m 2
g o vo = 2
vp = 1
4 2 8 2

k vr= 0
2 n 4 p 1 r

DCA-FEEC-Unicamp
S estado
PS sucessor de S no caminho ótimo de S até r

vq=13 vc Estratégia ótima


q 1 c 5 e 2 h
Po = r Pp = r
0 4 1 3
Pl = o Pm = o Pn = p
7 f 1 i 3
d l
Ph = l Pi = m Pj = m Pk= n
3 2 4 5
5 j 2 m 2 Pe = i Pf = j Pg = j ou k
g o
Pc = f Pd= g
4 2 8 2
Pq = c
k
2 n 4 p 1 r

24 adições
9 comparações
DCA-FEEC-Unicamp
4-Análise de complexidade

 Função objetivo (custo, utilidade, etc.): aditivamente separável

 Ambientes estocásticos: sistemas Markovianos

 Enumeração exaustiva: O(|A|n)

– |A| número decisões (ações) em cada estágio (passo)

 Programação dinâmica: O(n|A||S|)

– |S| número de estados possíveis


– n: número de estágios

DCA-FEEC-Unicamp
5-Programação dinâmica forward
vi melhor caminho de q até i
vr = min {2+ vo , 1 + vp}
va vc vo = min {5+ vl , 2 + vm}
q 1 c 5 e 2 h vm = min {4 + vi , 2 + vj}
vl = min {3 + vh , 3 + vi}
0 4 1 3 vn = min {2 + vj , 2 + vk}
7 f 1 i 3 ......................................
vd d l ve = min {5 + vc}
vf = min {4+ vc , 7 + vd}
3 2 4 5
vg = min {3 + vd}
5 j 2 m 2
g o
vd = 0
4 2 8 2 vc = 1
k
2 n 4 p 1 r vq = 0
DCA-FEEC-Unicamp
6-Exemplos

 Determinístico: caminho mínimo

Ι = conjunto de nós 14
1 2
L = conjunto de arcos (i , j ) 10
8
cij = custo de i para j 3 5
q r
I i+ = conjnto de nós j tal que ∃ (i , j ) ∈ L 15 17

I −j = conjnto de nós i tal que ∃ (i , j ) ∈ L 3


v j = customínimo de j para r

DCA-FEEC-Unicamp
 Equação de Bellman

vi ← min { vi , min (cij + v j )}, ∀i ∈ I


+
j∈I j

 Solução iterativa

custo do caminho a partir do nó


Iteração q 1 2 3 r
100 100 100 100 0
1 100 100 10 15 0
2 30 18 10 15 0
3 26 18 10 15 0
4 26 18 10 15 0

DCA-FEEC-Unicamp
 Algoritmo de Pape

M j ≠ r
vj = 
0 j=r
C = {q} lista de candidatos

1. remover nó j ∈ C do topo de C
2. ∀j ∈ I +j
ˆvi = cij + v j
se v̂i < vi então vi = v̂i
se i ∉ C então C = C ∪ {i}; i no fim de C
3. remover j de C . Se C ≠ φ então passo 1 senão fim

 Pape (e Djkstra) são instâncias do algoritmo geral

DCA-FEEC-Unicamp
 Algoritmo geral caminho mínimo

remover nó i da lista de candidatos C


para cada arco (i, j) ∈ L
se vj > vi + cij então
vj = vi + cij
adicionar j à V se j ∉ C

DCA-FEEC-Unicamp
Proposição: sejam v1, v2, ....,vN escalares satisfazendo

vj ≤ vi + cij ∀(i, j) ∈ L

e seja P um caminho iniciando em um nó i1 e terminando em um nó ik. Se

vj = vi + cij para todos arcos (i, j) de P

então P é menor caminho de i1 para ik.

Prova

Somando vj = vi + cij para arcos de P → valor de P = vik – vi1


Somando vj ≤ vi + cij para arcos de P ' → valor de P ' ≥ P
Logo, P é o menor caminho.

DCA-FEEC-Unicamp
 Estocástico: atribuição dinâmica

– atributos de um técnico

 a1   localzação técnico 
   
at =  a2  =  tipo equipamento 
 a   # dias no trabalho 
 3  

– conjunto de todos técnicos

Rta = # técnicos com atributo a


A = conjnto dos valores de a
Rt = ( Rta ) a∈ A

DCA-FEEC-Unicamp
– demanda serviços técnicos

b = atributos de um equipamento (localização, tipo)


B = conjunto dos valores de b
D̂tb = # equipamentos tipo b instalados entre t e t − 1(necessitaserviço)
D̂t = ( D̂tb )b∈B
Dtb = total equipamento tipo b a ser instalado no instante t
Dt = ( Dtb )b∈B

DCA-FEEC-Unicamp
– decisões

D H = conjunto decisões enviando técnico p/ casa


d ∈ D H = representa um local particular
D D = conjnto decisões enviando técncio p/ demanda
d φ = decisão " fazer nada" com um t' ecnico
D = DH ∪ DD ∪ d φ

DCA-FEEC-Unicamp
– impacto decisões nos atributos: função transição

at +1 = a M (at , d )
1 se a M (at , d ) = a′
δ a′ (at , d ) = 
0 caso contrário

– indicação das decisões tomadas

xtad = número vezes decisão d é aplicada técnico atributo a


xt = ( xtad ) a∈ A,d ∈D

DCA-FEEC-Unicamp
– indicação das decisões tomadas

ctda = custo decisão d é aplicada técnico atributo a


ct = (ctda ) a∈ A,d ∈D

 Modelo míope

min ∑ ∑ catd xatd


xt a∈ A d ∈D

s .a. ∑ xtad = Rta


d ∈D

∑ xtad ≤ Dtbd , d ∈ D D
a∈ A
xtad ≥ 0

DCA-FEEC-Unicamp
– Dinâmica do sistema

Rt +1,a = ∑ ∑ xta′d δ a ( a′, d )


a ′∈ A d ∈D
Dt +1,bd = Dt ,bd − ∑ xtad + D̂t +1,bd , d ∈ D D
a∈ A

– Estado do sistema

St ( Rt , Dt )

DCA-FEEC-Unicamp
 Modelo atribuição dinâmica

Vt = min (Ct ( St , xt ) + γEVt +1 ( St +1 ))


xt ∈ X t

X t = {xt | ∑ xtad = Rta ; ∑ xtad ≤ Dtbd , d ∈ D D ; xtad ≥ 0}


d ∈D a∈ A

DCA-FEEC-Unicamp
Observação

Este material refere-se às notas de aula do curso IA 718 Tópicos em


Sistemas Inteligentes da Faculdade de Engenharia Elétrica e de Computação
da Unicamp. Não substitui o livro texto, as referências recomendadas e nem
as aulas expositivas. Este material não pode ser reproduzido sem autorização
prévia dos autores. Quando autorizado, seu uso é exclusivo para atividades
de ensino e pesquisa em instituições sem fins lucrativos.

DCA-FEEC-Unicamp

Você também pode gostar