Você está na página 1de 46

Universidad Nacional Mayor de San Marcos

Facultad de Ingeniera de Sistemas e Informtica


Investigacin Operativa II

Programacin
Dinmica

Docente : Lic. Gabriel Solari Carbajal

Programacin Dinmica
INTRODUCCION
La Programacin Dinmica (PD), es una tcnica que
permite resolver problemas en los cuales se debe tomar
no una sino una secuencia de decisiones.
El francs P. Mass en 1946 utiliz un mtodo
semejante a la PD, pero no recibi toda la atencin que
mereca. En 1957 el matemtico norteamericano
Richard
Bellman
publica
su
obra
Dynamic
Programming, donde describe los fundamentos de la
PD.
La facilidad de su metodologa ha permitido la
resolucin de innumerables problemas.
2

Programacin Dinmica
FUNDAMENTO DE LA PD
Dado un problema:

PROBLEMA

Programacin Dinmica
Este problema se divide en etapas. El nmero de
etapas depender de las caractersticas del problema:

ETAPA
1

ETAPA
2

ETAPA
3

ETAPA
4

Programacin Dinmica
Se resuelve una etapa cualquiera. Seleccionemos, por
ejemplo, la etapa 4:

ETAPA
1

ETAPA
2

ETAPA
3

ETAPA
4

Programacin Dinmica
La solucin ptima se determina de revisar todas las
decisiones posibles de la etapa 4:

ETAPA
1

ETAPA
2

ETAPA
3

ETAPA
4

Programacin Dinmica
La solucin de la etapa 4 se utiliza para resolver la
etapa 3:

ETAPA
1

ETAPA
2

ETAPA
3

ETAPA
4

Programacin Dinmica
La nueva solucin ptima se determina de revisar todas
las decisiones posibles de la etapa 3 (integrando las
soluciones de la etapa 4):

ETAPA
1

ETAPA
2

ETAPAS
3Y4

Programacin Dinmica
La solucin de las etapas 3 y 4 se utiliza para resolver
la etapa 2:

ETAPA
1

ETAPA
2

ETAPAS
3Y4

Programacin Dinmica
La nueva solucin ptima se determina de revisar todas
las decisiones posibles de la etapa 2 (integrando las
soluciones de las etapas 3 y 4):

ETAPA
1

ETAPAS
2, 3 Y 4

10

Programacin Dinmica
La solucin de las etapas 2, 3 y 4 se utiliza para
resolver la etapa 1:

ETAPA
1

ETAPAS
2, 3 Y 4

11

Programacin Dinmica
La nueva solucin ptima se determina de revisar todas
las decisiones posibles de la etapa 1 (integrando las
soluciones de las etapas 2, 3 y 4), sta es la solucin
del problema original:

ETAPAS
1, 2, 3 Y 4

12

Programacin Dinmica
PRINCIPIO DE OPTIMALIDAD DE BELLMAN
El teorema presentado por Bellman, denominado
Principio de Optimalidad, dice: Una poltica ptima slo
puede estar formado por subpolticas ptimas.
Dada la siguiente red:

13

Programacin Dinmica
Si queremos determinar un camino de A a N, este se
denominar una poltica:
H
3

9
8

11
5

8
A

L
4

11

4
3

3
M

6
9

6
G
ETAPA 1

ETAPA 2

4
ETAPA 3

K
ETAPA 4

ETAPA 5

14

Programacin Dinmica
As por ejemplo ADFKMN es una poltica:

H
3

9
8

11
5

8
A

L
4

11

4
3

3
M

6
9

6
G
ETAPA 1

ETAPA 2

4
ETAPA 3

K
ETAPA 4

ETAPA 5

15

Programacin Dinmica
Una subpoltica ser una porcin continua de un
camino. De este modo BEIM es una subpoltica:
H
3

9
8

11
5

8
A

L
4

11

4
3

3
M

6
9

6
G
ETAPA 1

ETAPA 2

4
ETAPA 3

K
ETAPA 4

ETAPA 5

16

Programacin Dinmica
Si se desea determinar el camino mnimo de A a N,
ACEILN es la poltica ptima que responde a este
objetivo:
H
3

9
8

11
5

8
A

L
4

11

4
3

3
M

6
9

6
G
ETAPA 1

ETAPA 2

4
ETAPA 3

K
ETAPA 4

ETAPA 5

17

Programacin Dinmica
Ahora, si se desea determinar una subpoltica ptima
de C a L, esta ser CEIL:
H
3

9
8

11
5

8
A

L
4

11

4
3

3
M

6
9

6
G
ETAPA 1

ETAPA 2

4
ETAPA 3

K
ETAPA 4

ETAPA 5

18

Programacin Dinmica
CARACTERISTICAS DE LOS PROBLEMAS DE PD
En los problemas de PD se localizan:
ETAPAS O PERIODOS
VARIABLES DE ESTADO
VARIABLES DE DECISION
FUNCION COSTO-BENEFICIO
OBJETIVO

19

Programacin Dinmica
ETAPAS O PERIODOS
Es cada una de las partes en las que se divide el
problema.

20

Programacin Dinmica

ETAPA 1

ETAPA 2

ETAPA 3

ETAPA 4

ETAPA 5
21

Programacin Dinmica
VARIABLES DE ESTADO
Es la variable que indica la situacin en que se
encuentra el problema al inicio de cada etapa. Los
valores de esta variable forman el llamado DOMINIO
DE ESTADO.

22

Programacin Dinmica
f1(x1)

f2(x2)

ETAPA 1

f3(x3)

ETAPA 2

f4(x4)

ETAPA 3

f5(x5)

ETAPA 4

f6(x6)

ETAPA 5
23

Programacin Dinmica
VARIABLES DE DECISION
Es la variable que indica la decisin a tomar en cada
etapa. Los valores de esta variable forman el llamado
DOMINIO DE CONTROL.

24

Programacin Dinmica
f1(x1)

f2(x2)

f3(x3)

f4(x4)

f5(x5)

f6(x6)

d(x1, x2)

d(x2, x3)

d(x3, x4)

d(x4, x5)

d(x5, x6)

ETAPA 1

ETAPA 2

ETAPA 3

ETAPA 4

ETAPA 5
25

Programacin Dinmica
FUNCION COSTO-BENEFICIO
Es la funcin que indica el resultado obtenido cuando
en una etapa cualquiera se toma una decisin que
depende del estado inicial. Esta funcin tambin se
denomina FORMULA RECURSIVA DE LA PD.

fi(xi) = min [ d(xi , xi+1) + fi+1(xi+1) ]


todas las
rutas
factibles
( xi , xi+1 )

FORMULA RECURSIVA HACIA ATRAS


26

Programacin Dinmica
Otra forma de presentar la funcin costo-beneficio es:

fi(xi) = min [ d(xi-1 , xi) + fi-1(xi-1) ]


todas las
rutas
factibles
( xi-1 , xi )

FORMULA RECURSIVA HACIA ADELANTE

27

Programacin Dinmica
OBJETIVO
Determina la secuencia de decisiones que optimice la
funcin Costo-Beneficio.
E
8
A

L
4
N

28

Programacin Dinmica
PROCEDIMIENTO DE LA PD
Para resolver un problema por medio de la PD se
pueden utilizar diferentes procedimientos.
Los que ms se utilizan son los de frmulas recursivas
hacia adelante y los de frmulas recursivas hacia atrs.
La metodologa requiere de dos iteraciones.
La primera iteracin denominada DESCENDENTE, es
la
que
resuelve
cada
etapa
integrndolas
sucesivamente a las siguientes soluciones. Esta
iteracin es la ms laboriosa.
29

Programacin Dinmica
La segunda iteracin denominada ASCENDENTE, es la
que permite construir la secuencia ptima de
decisiones. Esta iteracin es la ms simple.
La metodologa descrita puede ser aplicada en
diferente forma sobre un mismo problema.

30

Programacin Dinmica
Ejemplo
Dado el siguiente grafo determinar la ruta ms corta del
vrtice A al vrtice Z.
B

4
4

7
3

5
4

7
2

J
31

Programacin Dinmica
f1(x1)

d(x1, x2)

f2(x2)

d(x2, x3)

f3(x3)

d(x3, x4)

f4(x4)

3
4

4
5

7
3

5
4

D
Etapa 1

f5(x5)

d(x4, x5)

7
2

Etapa 2

4
Etapa 3

J
Etapa 4

32

Programacin Dinmica
Frmula recursiva hacia atrs

fi(xi) = min [ d(xi , xi+1) + fi+1(xi+1) ], i = 1, 2, 3, 4


todas las
rutas
factibles
( xi , xi+1 )

fn(xn) = 0
f1(x1)

d(x1, x2)

f2(x2)

d(x2, x3)

f3(x3)

d(x3, x4)

f4(x4)

D
Etapa 1

f5(x5)

d(x4, x5)

2
Etapa 2

4
Etapa 3

33

J
Etapa 4

Programacin Dinmica
Iteracin descendente

f5(x5) = f5(Z) = 0
ETAPA 4

f4(x4) = min [ d(x4 , x5) + f5(x5) ]


r. f.

x4 = H
f4(H) = min [ d(H , Z) + f5(Z) ]
f1(x1)

d(x1, x2)

f2(x2)

d(x2, x3)

f3(x3)

d(x3, x4)

f4(x4)

3
5

D
Etapa 1

f5(x5)

2
Etapa 2

4
Etapa 3

r. f

d(x4, x5)

f4(H) = min [ 4 + 0 ] = 4
r. f
34

J
Etapa 4

Programacin Dinmica
x4 = I
f4(I) = min [ d(I , Z) + f5(Z) ]
r. f

f4(I) = min [ 3 + 0 ] = 3
r. f

x4 = J
f4(J) = min [ d(J , Z) + f5(Z) ]
r. f
f1(x1)

d(x1, x2)

f2(x2)

d(x2, x3)

f3(x3)

d(x3, x4)

f4(x4)

r. f

D
Etapa 1

f4(J) = min [ 5 + 0 ] = 5

d(x4, x5)

f5(x5)

2
Etapa 2

4
Etapa 3

35

J
Etapa 4

Programacin Dinmica
ETAPA 3

f3(x3) = min [ d(x3 , x4) + f4(x4) ]


r. f.

x3 = E
f3(E) = min [ d(E , H) + f4(H) , d(E , I) + f4(I) ]
r. f

f3(E) = min [ 6 + 4 , 3 + 3 ] = 6
r. f
f1(x1)

d(x1, x2)

f2(x2)

d(x2, x3)

f3(x3)

d(x3, x4)

f4(x4)

D
Etapa 1

f5(x5)

d(x4, x5)

2
Etapa 2

4
Etapa 3

36

J
Etapa 4

Programacin Dinmica
x3 = F
f3(F) = min [d(F, H)+f4(H), d(F, I)+f4(I), d(F, J)+f4(J)]
r. f

f3(F) = min [ 7 + 4 , 5 + 3 , 4 + 5 ] = 8
r. f

x3 = G
f3(G) = min [ d(G , I) + f4(I) , d(G , J) + f4(J) ]
f1(x1)

d(x1, x2)

f2(x2)

d(x2, x3)

f3(x3)

d(x3, x4)

f4(x4)

5
4

D
Etapa 1

f5(x5)

7
2

Etapa 2

4
Etapa 3

r. f

d(x4, x5)

f3(G) = min [ 7 + 3 , 4 + 5 ] = 9
r. f
37

J
Etapa 4

Programacin Dinmica
ETAPA 2

f2(x2) = min [ d(x2 , x3) + f3(x3) ]


r. f.

x2 = B
f2(B) = min [ d(B , E) + f3(E) , d(B , F) + f3(F) ]
r. f

f2(B) = min [ 7 + 6 , 6 + 8 ] = 13
r. f
f1(x1)

d(x1, x2)

f2(x2)

d(x2, x3)

f3(x3)

d(x3, x4)

f4(x4)

D
Etapa 1

f5(x5)

d(x4, x5)

2
Etapa 2

4
Etapa 3

38

J
Etapa 4

Programacin Dinmica
x2 = C
f2(C) = min [d(C, E)+f3(E), d(C, F)+f3(F), d(C, G)+f3(G)]
r. f

f2(C) = min [ 4 + 6 , 3 + 8 , 3 + 9 ] = 10
r. f

x2 = D
f2(D) = min [ d(D , F) + f3(F) , d(D , G) + f3(G) ]
f1(x1)

d(x1, x2)

f2(x2)

d(x2, x3)

f3(x3)

d(x3, x4)

f4(x4)

f2(D) = min [ 4 + 8 , 2 + 9 ] = 11

5
4

D
Etapa 1

r. f

f5(x5)

d(x4, x5)

7
2

Etapa 2

4
Etapa 3

r. f
39

J
Etapa 4

Programacin Dinmica
ETAPA 1

f1(x1) = min [ d(x1 , x2) + f2(x2) ]


r. f.

x1 = A
f1(A) = min [d(A ,B)+f2(B), d(A,C)+f2(C), d(A,D)+f2(D)]
r. f

f1(A) = min [ 3 + 13 , 5 + 10 , 2 + 11 ] = 13
r. f
f1(x1)

d(x1, x2)

f2(x2)

d(x2, x3)

f3(x3)

d(x3, x4)

f4(x4)

D
Etapa 1

d(x4, x5)

f5(x5)

2
Etapa 2

4
Etapa 3

40

J
Etapa 4

Programacin Dinmica
Iteracin ascendente
La ruta mnima ptima de A a Z, resulta:
A

La distancia mnima es: 13

f1(x1)

d(x1, x2)

f2(x2)

d(x2, x3)

f3(x3)

d(x3, x4)

f4(x4)

D
Etapa 1

f5(x5)

d(x4, x5)

2
Etapa 2

4
Etapa 3

41

J
Etapa 4

Programacin Dinmica
FORMA TABULAR
Iteracin descendente
ETAPA 4
ESTADO
INICIAL

f1(x1)

d(x1, x2)

f2(x2)

d(x2, x3)

f3(x3)

d(x3, x4)

f4(x4)

DISTANCIA
MINIMA

ir a Z

ir a Z

ir a Z

ir a Z

ir a Z

ir a Z

d(x4, x5)

f5(x5)

3
5

D
Etapa 1

DECISION
OPTIMA

DECISIONES DISTANCIA
POSIBLES ASOCIADA

2
Etapa 2

4
Etapa 3

J
Etapa 4

42

Programacin Dinmica
ETAPA 3
ESTADO
INICIAL
E

G
f1(x1)

d(x1, x2)

f2(x2)

d(x2, x3)

f3(x3)

d(x3, x4)

f4(x4)

6 + 4 = 10

ir a I

3+3=6

ir a H

7 + 4 = 11

ir a I

5+3=8

ir a J

4+5=9

ir a I

7 + 3 = 10

ir a J

4+5=9

DISTANCIA
MINIMA

ir a I

ir a I

ir a J

f5(x5)

3
5

D
Etapa 1

ir a H

DECISION
OPTIMA

d(x4, x5)

DECISIONES DISTANCIA
POSIBLES ASOCIADA

2
Etapa 2

4
Etapa 3

J
Etapa 4

43

Programacin Dinmica
ETAPA 2
ESTADO
INICIAL
B

D
f1(x1)

d(x1, x2)

f2(x2)

d(x2, x3)

f3(x3)

d(x3, x4)

f4(x4)

7 + 6 = 13

ir a F

6 + 8 = 14

ir a E

4 + 6 = 10

ir a F

3 + 8 = 11

ir a G

3 + 9 = 12

ir a F

4 + 8 = 12

ir a G

2 + 9 = 11

DISTANCIA
MINIMA

ir a E

13

ir a E

10

ir a G

11

f5(x5)

3
5

D
Etapa 1

ir a E

DECISION
OPTIMA

d(x4, x5)

DECISIONES DISTANCIA
POSIBLES ASOCIADA

2
Etapa 2

4
Etapa 3

J
Etapa 4

44

Programacin Dinmica
ETAPA 1
ESTADO
INICIAL
A

f1(x1)

d(x1, x2)

f2(x2)

d(x2, x3)

f3(x3)

d(x3, x4)

f4(x4)

3 + 13 = 16

ir a C

5 + 10 = 15

ir a D

2 + 11 = 13

DISTANCIA
MINIMA

ir a D

13

f5(x5)

3
5

D
Etapa 1

ir a B

DECISION
OPTIMA

d(x4, x5)

DECISIONES DISTANCIA
POSIBLES ASOCIADA

2
Etapa 2

4
Etapa 3

J
Etapa 4

45

Programacin Dinmica
f1(x1)

d(x1, x2)

f2(x2)

d(x2, x3)

f3(x3)

d(x3, x4)

f4(x4)

f5(x5)

d(x4, x5)

3
5

Etapa 1

Etapa 2

Etapa 3

Etapa 4

Iteracin ascendente
La ruta mnima ptima de A a Z, resulta:
A

La distancia mnima es: 13


46

Você também pode gostar