Programacion dinamica

24
PROGRAMACIÓ N DINÁMICA Investigación Operativa II ESCUELA PROFESIONAL: . INGENIERÍA INDUSTRIAL . INGENIERÍA DE COMPUTACIÓN Y SISTEMAS Adolfo Prado Mar. 2013

description

Ruta minima

Transcript of Programacion dinamica

Page 1: Programacion dinamica

PROGRAMACIÓN DINÁMICA

Investigación Operativa II

ESCUELA PROFESIONAL:

. INGENIERÍA INDUSTRIAL

. INGENIERÍA DE COMPUTACIÓN Y SISTEMAS

Adolfo PradoMar. 2013

Page 2: Programacion dinamica

CASO 2 EL PROBLEMA DE LA RUTA MAS CORTA

A

B

C

D

E

F

G

Page 3: Programacion dinamica

EL PROBLEMA DE LA RUTA MAS CORTA

La distancia entre las ciudades nodo i al nodo j, que se denota por cij, es:

B C D

A 7 8 5

E F

B 12

C 8 9

D 7 13

G

E 9

F 6

Page 4: Programacion dinamica

EL PROBLEMA DE LA RUTA MAS CORTA

A

B

C

D

E

F

G

88

5

712

9

7

13

6

9

Page 5: Programacion dinamica

EL PROBLEMA DE LA RUTA MAS CORTA

A

B

C

D

E

F

G

88

5

712

9

7

13

6

9

Page 6: Programacion dinamica

EL PROBLEMA DE LA RUTA MAS CORTA

S3 f*3 X*3

E

F

f*2 (s2 , x3= Min (c2 + f*3)

x2

E F f*2(S) x*2

S2

B

C

D

Page 7: Programacion dinamica

EL PROBLEMA DE LA RUTA MAS CORTA

f*1 (s1 , x1)= Min (c1 + f*2)

x1

B C D f*1(S) x*1s1

A

Page 8: Programacion dinamica

EL PROBLEMA DE LA RUTA MAS CORTA

S3 f*3 X*3

E 9 G

F 6 G

f*2 (s2 , x3= Min (c2 + f*3)

x2

E F f*2(S) x*2

S2

B

C

D

X4= G

Page 9: Programacion dinamica

EL PROBLEMA DE LA RUTA MAS CORTA

S3 f*3 X*3

E 9 G

F 6 G

f*2 (s2 , x3= Min (c2 + f*3)

x2

E F f*2(S) x*2

S2

B12+9=21

- 21 E

C8+9=17

9+6=15

15 F

D7+9=16

13+6=19

16 E

Page 10: Programacion dinamica

EL PROBLEMA DE LA RUTA MAS CORTA

f*1 (s1 , x1)= Min (c1 + f*2)

x1

B C D f*1(S) x*1s1

A7+21=28

8+15=23

5+16=21

21 D

Page 11: Programacion dinamica

EL PROBLEMA DE LA RUTA MAS CORTA

f*1 (s1 , x1)= Min (c1 + f*2)

x1

B C D f*1(S) x*1s1

A7+21=28

8+15=23

5+16=21

21 D

Solución:A -> D -> E -> G

Page 12: Programacion dinamica

1. El problema puede dividirse en etapas

que requieren una política de decisión

en cada una de ellas.

2. Cada etapa tiene cierto número de

estados asociados con su

inicio.

3. El efecto de la política de decisión en cada etapa

es transformar el estado actual en

un estado asociado con el inicio de la siguiente etapa.

CARACTERÍSTICAS BÁSICAS DE LOS PROBLEMAS DE P.D.

Page 13: Programacion dinamica

5. Dado el estado actual, una

política óptima para las etapas restantes es independiente de la

política adoptada en etapas anteriores (la decisión inmediata óptima depende sólo del estado

actual y no de cómo se llegó ahí).

6. El procedimiento de solución se inicia al encontrar la política

óptima para la última etapa.

7. Se dispone de una relación recursiva que

identifica la política óptima para la etapa n, dada la política óptima para la

etapa n+1.

CARACTERÍSTICAS BÁSICAS DE LOS PROBLEMAS DE P.D.

Page 14: Programacion dinamica

N = número de etapas

n = etiqueta para la etapa actual (n = 1,2, ......., N)

Sn = estado actual para la etapa n

Xn = variable de decisión para la etapa n

X*n = valor óptimo de xn (dado Sn)

fn (Sn, xn) = contribución a la función objetivo de las etapas n, n+1, ....., N

f*n (Sn) = fn (Sn, x*n) f*n (Sn) = mínxn (fn (Sn, xn))

para el ejemplo f*n (Sn) = mínxn [Cs,xn + f*n+1 (xn)]

NOTACIÓN

Page 15: Programacion dinamica

8. Cuando se usa la relación recursiva, el procedimiento de solución comienza al final y se mueve hacia atrás etapa por

etapa -encontrando la política óptima para esa etapa- hasta

que encuentra la política óptima desde la etapa inicial.

Para todos los problemas de

Programación dinámica se obtiene una tabla

para cada etapa (n = N, N-1, ....., 1)

xn fn (Sn, xn)

Sn f*n (Sn) x*n

CARACTERÍSTICAS BÁSICAS DE LOS PROBLEMAS DE P.D.

Page 16: Programacion dinamica

N = número de etapas

n = etiqueta para la etapa actual (n = 1,2, ......., N)

Sn = estado actual para la etapa n

Xn = variable de decisión para la etapa n

X*n = valor óptimo de xn (dado Sn)

fn (Sn, xn) = contribución a la función objetivo de las etapas n, n+1, ....., N

fn (Sn, xn) = fn(Sn) + f*n+1 (Sn+1)]

fn (Sn, xn) = fn(Sn) + f*n+1 (Sn-xn)]

f*n (Sn) = mín o máxxn [fn(Sn) + f*n+1 (Sn-Xn)]

NOTACIÓN

Page 17: Programacion dinamica

Supongamos que un problema se resuelve tras tomar una secuencia d1, d2,….,dn de decisiones

Sea Eo el estado inicial del problema

Sea D1={v11,…,v1n} el conjunto de valores de decisión posibles para la decisión d1

Sea E1i, el estado del problema tras la elección del valor v1i , 1<=i<=n

Sea S1, una secuencia óptima de decisiones respecto al estado E1i

Principio de Optimalidad de Bellman:Una secuencia óptima de decisiones respecto a Eo es la mejor de las secuencias de decisión {v1,S1}, 1<=i<=n El mismo razonamiento puede aplicarse a cualquier subsecuencia de decisiones dk, …, dl , 1 <= k <= l <= n, partiendo como estado inicial de Ek-1

Una solución dinámica para este problema, simbolizado como (k,l), debe expresarse en términos de valores de decisión existentes para la decisión dk y el subproblema (k+1,l) resultante de aplicar cada valor de decisión.

Page 18: Programacion dinamica
Page 19: Programacion dinamica
Page 20: Programacion dinamica

Etapa i Etapa 1: Nodo A Etapa 2: Nodos B,C,DEtapa 3: Nodos E,F Etapa 4: Nodo G

Sea Yi un nodo en etapa i y fi(Yi) la distancia más corta del nodo Yi al destino G

Sea los Estados Yi (Nodos origen) y las Alternativas Yi+1 (Nodo destino)

f4 (y4) = 0 para y4 = G

fi(yi) = min { d(yi,yi+1) + fi+1(yi+1) } para i= 3,2,1

rutas viables (yi, yi+1)

PD – EN REVERSA (Backward)

CASO 2 : EL PROBLEMA DE LA RUTA MAS CORTA

Page 21: Programacion dinamica

Etapa i Etapa 1: Nodo A Etapa 2: Nodos B,C,DEtapa 3: Nodos E,F Etapa 4: Nodo G

Sea Xi un nodo en etapa i y fi(Xi) la distancia más corta del nodo Xi al origen A

Sea los Estados Xi (Nodos destino) y las Alternativas Xi+1 (Nodos origen)

f0 (x0) = 0 para X0 = A

fi(xi) = min { d(xi-1,xi) + fi-1(xi-1) } para i= 1,2,3

rutas viables (xi-1, xi)

PD – EN AVANCE (forward)

CASO 2 : EL PROBLEMA DE LA RUTA MAS CORTA

Page 22: Programacion dinamica

File -> New

Nodo Origen

Nodo Destino

DistanciaPersonalizar Nombre de NodosEdit.Edit Nodo Names

Titulo

Nro. Nodos

WinqsbDP.EXE

CASO 2 : EL PROBLEMA DE LA RUTA MAS CORTA

Page 23: Programacion dinamica

Solve and AnalyzeSolve the problem

Nodo Inicial

NodoFinal

Boton Solve

Boton Resolver

Problema

y Solución

CASO 2 : EL PROBLEMA DE LA RUTA MAS CORTA

Page 24: Programacion dinamica

Resumen Result.Show Solution Summary

Detallado Result.Show Solution Detail

Resultados

CASO 2 : EL PROBLEMA DE LA RUTA MAS CORTA