0% encontró este documento útil (0 votos)
40 vistas34 páginas

Programación Dinámica: Teoría y Ejemplos

Tema de recursividad para IOP

Cargado por

Cecilia Gomez
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PPTX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
40 vistas34 páginas

Programación Dinámica: Teoría y Ejemplos

Tema de recursividad para IOP

Cargado por

Cecilia Gomez
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PPTX, PDF, TXT o lee en línea desde Scribd

Título:

Programación
Dinámica
determinística
Recursión hacia adelante y
hacia atras
Teoría sobre Programación Dinámica
La programación dinámica es una técnica muy útil para la toma de
decisiones de problemas complejos que pueden
ser discretizados y secuencializados, proporciona un
procedimiento sistemático para determinar la combinación óptima
de decisiones; este método no tiene una formulación estándar ya
que las ecuaciones que se planteen responden al problema
específico.

Esta técnica es muy útil para la reducción el tiempo de ejecución de


un algoritmo mediante la utilización de subproblemas y
subestructuras óptimas, todo ello haciendo uso del principio de
optimalidad.
Problema de la Diligencia

«Un cazafortunas mítico de Missouri que decide


ir al oeste a sumergirse en la fiebre del oro que
surgió en California a mediados del siglo XIX.
Tiene que hacer ek viaje en diligencia a través de
Para la introducción de las características y
territorios sin ley, donde existen serios peligros
terminologías de la programación dinámica se
de ser atacado por merodeadores. A pesar de
creó el problema de la diligencia por parte del
que su punto de partida y su destino son fijos,
profesor Harvey M Wagner:
tiene muchas opciones en cuanto a qué estados –
o territorios – debe elegir como puntos
intermedios (tomar en cuenta que el viaje es
siempre de izquierda a derecha).
Para lograr el viaje se requieren de 4 etapas para ir desde el estado A a su destino en el
estado J, este cazafortunas es un hombre prudente preocupado por su seguridad.
Después de reflexionar un poco ideó una manera bastante ingeniosa para determinar la
ruta más segura. Se ofrecen pólizas de seguros de vida a los pasajeros. Como el costo de
la póliza de cualquier jornada en la diligencia está basado en una evaluación cuidadosa
de la seguridad del recorrida, la ruta más segura debe ser aquella cuya póliza represente
el menor costo total «.
El costo de la póliza estándar del viaje en diligencia, del estado i al estado j se denota
como
Cij
Creamos las tablas asociadas a cada uno de estos costos tenemos:
FORMULACIÓN
Vamos a dividir el problema en etapas, las etapas serán evaluadas en la
solución óptima y se agregarán en el análisis de la siguiente etapa hasta
encontrar la solución óptima general, entonces:
Sean Xn=El destino inmediato de la etapa n (el n-ésimo viaje que se hará en
diligencia), tal que la ruta seleccionada final para este problema será:
A->X1->X2->X3->X4, donde X4=J
Sea fn(s,xn) el costo total de la mejor política global para enfrentar las etapas
restantes, mientras el cazafortunas se encuentra en el estado «s«, listo para
iniciar la etapa n y elige xn como destino inmediato. Dados s y n, sea yn el valor
de xn – no necesariamente único – que minimiza fn(s,xn) y gn(s) el valor mínimo
correspondiente de fn(s,xn). Entonces:
gn(s)=mínf(s,xn)=f(s,yn)
Donde:
fn(s,xn)=costo inmediato (etapa n) + costo futuro mínimo
(etapas n+1 )

Entonces nuestro objetivo es encontrar g1(A) y su ruta


correspondiente, pero para encontrarlo debemos de resolver de
forma sucesiva g4(s), g3(s), g2(s) para cada uno de los estados
posibles de s y usar g2(s) para encontrar g1(A). Entonces es una
suerte de ir del fin hacia el inicio obteniendo el costo mínimo
(para este caso) en cada una de las etapas.
PROCEDIMIENTO
Recordemos que hemos de ir de adelante hacia atrás, entonces partimos de la última
etapa, en nuestro ejemplo esta es la etapa 4, la cual es la última etapa por recorrer,
cuando esto sucede su ruta está perfectamente definida, sea por H o por I la ruta se dirige
hacia J:

Podemos entonces, hacer lo siguiente:


PROCEDIMIENT
O
•Para el caso de la etapa 4 no existe un
g(S) ya que es la última, podemos
considerar entonces que este es cero,
así que está solo calculado directamente
con el costo que representa ir por cada
una de las rutas H o I hacia J.
•En la etapa 3 se nos representa que
ahora se deben de recorrer 2 etapas,
aquí debemos de tomar especial
atención a lo siguiente; tomemos como
base que desde F podemos ir sea hacia
H o I:
PROCEDIMIENTO

•Sabemos por la resolución anterior que


el g4(H)=3 y g4(I)=4, entonces si decidimos
ir de F->H tendríamos un costo total
6+3=9, ya que estamos haciendo la
ruta F->H->J; si hacemos F-I tendríamos
un costo total de 3+4=7 siendo menor el
costo y haciendo que g3(F)=7, lo mismo
ocurre con E y G, en consecuencia,
realizando la tabla:
En cada una de las celdas hemos hecho la
operación descrita para F.
PROCEDIMIENTO

•Al resolver la segunda etapa,


realizamos los mismos cálculos
donde obtenemos la siguiente tabla:

Solo podemos observar que el destino inmediato de B y D pueden ser E o F ya que


minimizan el valor de «g«, ahora debemos de ocuparnos de la primera etapa:
•Resuelta la última etapa ya nos es posible obtener la ruta o rutas
PROCEDIMIE óptimas para nuestro problema, tenemos entonces que:
NTO •A->C->E->H->J o A->D->E->H->J o A->D->F->I->J
•Tenemos estas 3 rutas disponibles donde todas tienen el costo
mínimo de 11.
Problema de la Ruta más
corta
RECURSIÓN HACIA ADELANTE Y HACIA ATRAS

• En el ejemplo que se ha hecho de las rutas del 1 al 7, se


ha utilizado recursión hacia adelante, en la cual los
cálculos avanzan de la etapa 1 a la etapa 3. El mismo
problema se puede resolver por medio de la recursión
hacia atrás, empezando en la etapa 3 y terminando en la
etapa 1.
• La recursión tanto hacia adelante como hacia atrás
producen la misma solución. Aun cuando el procedimiento
hacia adelante parece más lógico, la literatura de la PD
invariablemente utiliza la recursión hacia atrás.
CARACTERÍSTICAS

El problema se puede dividir Cada etapa tiene cierto número


de estados, los estados son las
por etapas, y cada una de
distintas condiciones posibles
las etapas requiere de en las que se puede encontrar
una política de decisión. el sistema en cada etapa.

El efecto de la política de
decisión en cada etapa es El procedimiento de
transformar el estado actual en resolución de la
un estado asociado con el inicio
de la siguiente etapa, entonces programación dinámica está
podemos decir que un estado diseñado para encontrar
es una columna de nodos, una política óptima para
cada nodo representa un cada etapa logrando así la
estado y cada rama una
política de decisión. política óptima general.
CARACTERÍSTICAS

Se dispone de una relación


Dado el estado actual, una recursiva que identifica la
política óptima para las política óptima para la etapa Cuando se hace uso de la
etapas restantes es n, dada la política óptima relación recursiva, el
independiente de la política para la etapa n+1. La relación procedimiento de
adoptada en etapas recursiva en su forma difiere solución comienza al final
anteriores, por ende, la de un problema a otro, pero
decisión inmediata óptima se puede emplear las se mueve hacia atrás
solo depende del estado notaciones que ya se han etapa por etapa hasta
actual y no de cómo se llegó usado en el problema de la encontrar la política
ahí, esto es el principio de diligencia, tal que finalmente óptima en cada etapa
optimalidad de la siempre será cuestión de hasta la etapa inicial.
programación dinámica. hallar un máximo o un
mínimo.
• La razón de esta preferencia es que,
en general, la recursión hacia atrás
puede ser más eficiente desde el
punto de vista de los cálculos. Se
demostrará el empleo de la recursión
Continuand hacia atrás aplicándolo al ejemplo
explicado antes de la tarea. Así mismo
o con se puede ver los cálculos de la PD en
recursión una forma tabular compacta.
• La ecuación recursiva hacia atrás para
el ejemplo se da como:

(xi) =, i = 1, 2, 3
• Donde fi(xi) =0 para x4 = 7. El orden asociado
de los cálculos es f3 f2 f1
• Etapa 3. Debido a que el nodo 7 (x4 = 7) está
conectado con los nodos 5 y 6 (x3 = 5 y 7)
Continuand exactamente con una ruta cada uno, no hay
alternativas de donde elegir y los resultados de
o con la etapa 3 se pueden resumir como:
recursión
d( x3, x4 ) Solución óptima
x3 x4 = 7 f3 (x3)
5 9 9 7
6 6 6 7
•Etapa 2. La Ruta (2,6) no es una alternativa factible,
debido a que no existe. Dadas f3 (x3)
De la etapa 3 entonces podemos comparar las
alternativas factibles como se muestra en la siguiente
tabla:
d( x2, x3 ) +f3 (x3) Solución óptima
x2 x3 = 5 x3 = 6 f2 (x2)
2 12 + 9 =21 - 21 5
3 8 + 9= 17 9 + 6 = 15 15 6
4 7 + 9 = 16 13 * 6 = 19 16 5

La solución óptima en la etapa 2 se lee como sigue: si usted se


encuentra en la ciudad 2 o 4, la ruta más corta pasa por la
ciudad 5 y si se encuentra en la ciudad 3, la ruta más corta
pasa por la ciudad 6.
Continuación
Etapa 1: Desde el noto 1, se tiene 3 rutas alternativas (1, 2), (1, 3) y (1, 4).
Utilizando f2 (x2) de la etapa 2, se puede calcular la siguiente tabla.
d( x1, x2 ) +f2 (x2) Solución óptima

x1 X2 = 2 X2 = 3 X2 = 4 f1(x1)

1 7 + 21 = 28 8 + 15 = 23 5 + 16 = 21 21 4

La solución óptima en la etapa muestra que la ciudad 1 está unida con la ciudad 4,
después la solución óptima en la etapa 2 en la etapa 3 indica que la ciudad 5 está
unida en la ciudad 7. por consiguiente, la ruta completa se da como 1-4-5-7 y la
distancia asociada es de 21 millas.
APLICACIONE
S SELECTAS
DE LA PD
•Se presentan cuatro aplicaciones, cada una de
las cuales se selecciona para proporcionar una
nueva idea en la puesta en práctica de la PD. A
medida que usted estudie cada aplicación,
présteles una atención especial a los tres
elementos básicos de un modelo de PD.
APLICACIONES • Definición de las etapas
SELECTAS DE • Definición de las alternativas de cada etapa
• Definición de los estados para cada etapa.
LA PD •De los tres elementos, la definición del estado
por lo común es la más sútil. Las aplicaciones
que presentamos a continuación muestran que
la definición del estado varia dependiendo de
la situación que se está modelando. Sin
embargo a medida que usted investigue cada
aplicación, le será útil considerer las siguientes
preguntas:
Continuación Aplicaciones selectas de
la PD

• ¿Qué relaciones unen a las


etapas?
• ¿Qué información se necesita
para tomar decisiones factibles
en la etapa actual, sin
reexaminar las decisiones que
se tomaron en las etapas
anteriores?
Modelo Volumen - Carga
El modelo de volumen - carga aborda el problema de
cargar artículos en un barco con un volumen o capacidad
de peso limitados. Cada artículo produce un nivel de
utilidad. El objetivo es cargar el barco con la carga más
valiosa.
El modelo volumen-carga, conocido también problema del
equipaje de emergencia, en el cual un piloto de jet
debe determinar los artículos más valiosos que debe de
llevar a bordo del jet; y también, como el problema de la
mochila, en el cual un soldado ( o un aficionado a las
caminatas) debe decidir cuáles son los artículos más
valiosos que debe llevar en su mochila.
Modelo Volumen - Carga
La ecuación recursiva se desarrolla para el problema
general de un barco con capacidad de n artículos y W
toneladas. Dejamos que m, sea el número de unidades
del artículo i en la carga. El problema general se
representa por medio de la siguiente PL entera:
Maximice z = r1, m1 + r2m2 + … + rnmn
Sujeta a
= w1, m1 + w2m2 + … + rnmn ≤ W
m1 , m2 , … . mn ≥ 0 y entero
Tres Elementos del modelo volumen-
carga
1. La etapa i está representada por los artículos i, 1, 2, … n
2. Las alternativas en la etapa i, están representadas por
m, el número de unidades del artículo i incluidas en la
carga. La utilidad asociada es ri mi . Si definimos como
el entero más grande menor o igual a , de ellos se sigue
que mi = 0, 1, …
3. El estado de la etapa i se representa por medio de xi el
peso total asignado a las etapas (artículos) i, i+1, … y n
combinado. Esta definición refleja el hecho de que la
estricción del peso es la única restricción que une a
todas las etapas n.
Defina
fi (xi) = utilidad máxima para las etapas i, i + 1 y n dado el estado x i
La forma más sencilla de determinar una ecuación recursiva es un procedimiento de dos pasos:

Paso 1: Exprese fi (xi) como una función de fi (xi+1) , como sigue:


fi (xi) = max ri, mi + fi+1 (xi+1) , i = 1, 2, … n
mi = 0,1,
x i = 0, 1, …, W
donde fn + 1 (xn+1) = 0

Paso 2: Exprese xi+1 como una función xi para asegurar que el lado izquierdo fi (xi) , es una función
de xi solamente. Por definición xi - xi+1 representa el peso consumido en la etapa i, es decir, xi - xi+1 =
wi, mi o xi+1, =xi - wi, mi . Por consiguiente, la ecuación recursiva apropiada se da como:
fi (xi) = max ri, mi + fi+1 (xi - wi mi ) , i = 1, 2, … n
mi = 0,1,
x i = 0, 1, …, W
Ejemplo
Un barco de 4 toneladas se carga con uno o más de tres artículos. La siguiente
tabla proporciona el peso por unidad, wi, en toneladas y la utilidad por unidad ri
en miles de dólares por el artículo i ¿Cómo se debe cargar el barco para
maximizar la utilidad total?
Artículo wi, ri
1 2 31
2 3 47
3 1 14

Debido a que los pesos por unidad, wi, y el peso máximo W


asumen todos los valores enteros, el estado xi, solo puede asumir
valores enteros.
Etapa 3. El peso máximo que se va asignar a la etapa 3 (artículo 3)
no se conoce con anticipación, pero debemos suponer que uno de
los valores, o, 1 …y 4 (debido a que W = 4 toneladas)los estados de
x3 = 0 y x3 =4 respectivamente, representan los casos extremos de
Ejemplo
Asignación particular de la capacidad del barco al artículo
3. En efecto la gama de valores dado para x3, cubre todas
las asignaciones posibles de la capacidad de barco al
artículo 3.
Debido a que w3 = 1 por unidad, el número máximo de
unidades del artículo 3 que se pueden cargar es = 4, lo
que significa que los valores posibles de m3, son 0,1,2,3 y
4. Una m3 alternativa es factible solo si w3m3 ≤ x3. Por lo
tanto, todas las alternativas no factibles. (Aquellas para las cuales w3m3
 x3 ) se excluyen.= 4La siguiente ecuación es la base para
comparar las alternativas de la etapa 3.
Etapa 3. La siguiente tabla compara
las alternativas factibles para cada
valor de x14m3 Solución óptima
3

x3 m3 = 0 m3 = 1 m3 = 2 m3 = 3 m3 = 4 )

0 0 - - - - 0 0
1 0 14 - - - 14 1
2 0 14 28 - - 28 2
3 0 14 28 42 - 42 3
4 0 14 28 42 56 56 4
Etapa 2.
() =max 47 m2 + f3 (x2 – 3m2 ) , max m2 = =1
m2
47 m2 + f3 (x2 – 3m2 ) Solución óptima
x2 m2 = 0 m2 = 1 ()

0 0+0 = 0 - 0 0
1 0 + 14 = 14 - 14 0
2 0 + 28 = 28 - 28 0
3 0 + 42 = 42 47 + 0 = 47 47 1

4 0 + 56 = 56 47 + 14 = 61 61 1
Etapa 1
() =max ( 31 m1 + f2 (x1 – 2m1 ) , max m1 = =2
m1

( 31 m1 + f2 (x1 – 2m1 ) Solución óptima

X1 m1 = 0 m1 = 0 m1 = 1 ()
0 0+0=0 - - 0 0
1 0 + 14 = 14 - 14 0
2 0 + 28 = 28 31 + 0 = 31 - 31 1
3 0 + 47 = 47 31 + 14 = 45 - 47 0
4 0 + 61 = 61 31 + 28 = 59 62 + 0 = 62 62 2
La solución óptima ahora se determina de la siguiente manera: dado que
w = 4 toneladas de la etapa 1, x 1 = 4 da la alternativa óptima = 2 que
significa que se cargaran en el barco 2 unidades del artículo 1. Esta
asignación deja x2 = x1 - 2 = 4 – 2x2 = 0. De la etapa 2, x2 = 0, nos da = 0,
que a su vez nos da x3 = x2 – 3 m2 = 0 – 3 x 0 = 0. Después de la etapa 3,
x3 = 0 nos da = 0, Así la solución óptima completa es = 2, = 0 y m3 = 0. La
utilidad asociada es de 62 000 dólares.
En la tabla para la etapa 1, en realidad necesitamos obtener la óptima
para x3 = 4 solo debido a que es la última etapa que se va a considerar.
Sin embargo, los cálculos para x2 = 0, 1, 2 y 3 se incluyen para permitir
que se lleve a cabo el análisis de sensibilidad. Por ejemplo, ¿Qué
sucedería si la capacidad del barco fuera de 3 toneladas en vez de 4
toneladas?

También podría gustarte