Programacion dinamica

7,341 views

Published on

0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
7,341
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
244
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

Programacion dinamica

  1. 1. Conceptos y ejemplos básicos de Programación Dinámica Wilson Julián Rodríguez Rojas julianrodriguez1212@hotmail.com Trabajo de Grado para Optar por el Título de Matemático Director: Pervys Rengifo Rengifo Ingeniero Universidad Nacional de Colombia Fundación Universitaria Konrad Lorenz Facultad de Matemáticas Bogotá D.C. 2005
  2. 2. 2 Introducción......................................................................................................................4 Programación dinámica...................................................................................................5 Ejemplos de funciones recursivas....................................................................................6 Ejemplo 1.1:...................................................................................................................6 Ejemplo 1.2:...................................................................................................................6 Ejemplos de Programación Dinámica.............................................................................7 Ejemplo 1.3 (El problema de la diligencia).....................................................................7 Teorema de optimalidad...............................................................................................12 Ejemplo 1.4: (Problema de la distribución de la inversión)...........................................13 Ejemplo 1.5: (Proble ma de la subdivisión óptima)........................................................17 Ejemplo 1.6: (Problema de Programación Lineal)........................................................23 Ejemplo 1.7: (Problema de Programación Lineal Entera)............................................25 Ejemplo 1.8: (Problema de Programación no Lineal)...................................................27 Comparación entre los métodos basados en ecuaciones recursivas de avance y los basados en ecuaciones recursivas de retroceso........................................31 Ejemplo 1.9:.................................................................................................................31 Conclusión......................................................................................................................33 Bibliografía.....................................................................................................................33
  3. 3. 3 Resumen Se presentan algunos resultados de la teoría matemática de Programación Dinámica y se exponen ejemplos que muestran la gran versatilidad de la técnica. También se muestra un esquema de demostración del Principio de Optimalidad. Abstract Some results of the Mathematical theory of Dynamic Programming are presented and some of the consequences of these results are exposed through examples that demonstrate the great versatility this technique owns; There is here also included a demonstration scheme of the Optimal Principle.
  4. 4. 4 Introducción El presente trabajo comprende la exposición de la teoría y algunos ejemplos de Programación Dinámica (P.D.). La P.D. está comprendida dentro de un conjunto de técnicas matemáticas que a su vez forman parte de un área más amplia, conocida como Investigación de Operaciones. Esta última puede definirse como una ciencia interdisciplinaria que tiene por objeto la búsqueda de estrategias que permitan obtener resultados óptimos en el desarrollo de actividades por parte de sistemas hombre- máquina (estos sistemas pueden estar formados exclusivamente por hombres, por máquinas o por una combinación de los dos). Como se verá más adelante, los problemas propios de la P.D. son aquellos que pueden ser divididos en subproblemas, los cuales, a su vez, tienen una estructura igual al problema original (en este sentido podría decirse que tienen una estructura “fractal”). Para este propósito, el método consiste en dividir el problema en etapas, resolver la primera de estas, utilizar esta solución para resolver la etapa siguiente y continuar así sucesivamente hasta encontrar la solución del problema en su totalidad. Son características esenciales de la P.D. por un lado, la versatilidad con respecto a la amplia gama de problemas que puede atacar y, por otra parte, que la P.D. se limita a aportar un esquema de solución (ya mencionado arriba) dejando al ingenio de quien resuelva el problema la construcción del modelo matemático para realizar la optimización de cada caso en particular. En este sentido el trabajo en P.D. está más en relación directa con la labor del matemático que del ingeniero, pues este último no necesita comprender la base teórica en la cual descansa el procedimiento, sino únicamente conocer el algoritmo propio del problema particular que pretende resolver. Para lograr la comprensión de la técnica el trabajo se ha estructurado sobre ejemplos que ilustran la versatilidad de la P.D., con este fín se presentan soluciones de problemas propios del trabajo en Programación Lineal, Programación Lineal Entera, Programación No Lineal etc. El objetivo es más presentar la potencia de la P.D. que proponerla como la panacea de los métodos de Investigación de Operaciones, pues también se verá que aunque funciona, en ocasiones la técnica puede resultar impractica al momento de resolver problemas de cierta envergadura.
  5. 5. 5 Programación dinámica Las características propias de la Programación Dinámica (PD) como son: el no tener un tipo específico de problemas sobre el cual operar, el carecer de un algoritmo estándar de solución , etc.,hacen que exista una gran dificultad en el momento de intentar dar una definición de ella. Sin embargo, para comenzar, se debe tener alguna definición que, aunque parcial e incompleta, sirva para ir demarcando el terreno al que se circunscribirá este trabajo. Definición 1.0: La programación dinámica es un procedimiento matemático diseñado principalmente para mejorar la eficiencia de cálculo de problemas de programación matemática seleccionados, descomponiéndolos en subproblemas de menor tamaño y por consiguiente mas fáciles de calcular. La PD normalmente resuelve el problema en etapas. Los cálculos en las diferentes etapas se enlazan a través de cálculos recursivos de manera que se genere una solución óptima factible a todo el problema. ∗ Para ayudar a aclarar algunos conceptos presentes en la definición anterior y en el trabajo posterior se dan las siguientes definiciones: Definición 1.1 (Máximo): sea { } nkka ,...,3,2,1= una sucesión finita, se dice que ma es el máximo de { } nkka ,...,3,2,1= si km aa ≥ para nk ,...,3,2,1= . Definición 1.2 (Mínimo): sea { } nkka ,...,3,2,1= una sucesión finita, se dice que ma es el mínimo de { } nkka ,...,3,2,1= si km aa ≤ para nk ,...,3,2,1= . Definición 1.3 (Función Recursiva): Sea SNf →: , donde N es el conjunto de los números naturales y S cualquier conjunto, a F se le denomina una sucesión en S, y se denota ( ) nsnf = , donde ns se denomina el n-ésimo elemento de la sucesión. A una función se le llama función de recurrencia si es una sucesión donde el n-ésimo elemento se ∗ Tomado de [Tah95]
  6. 6. 6 obtiene a partir de un elemento o varios elementos anteriores de la sucesión. Ejemplos de funciones recursivas Ejemplo 1.1: Interés Compuesto Supóngase que se consigna $100 en una cuenta que produce un rendimiento del 5% mensual. ¿Cuál será el monto 4 meses mas tarde?. Se define =iM monto en el i-ésimo mes. Y entonces se tiene 1000 =M 111 05.105.0* −−− =+= iiii MMMM i = 1,2, . . . a la pareja ( )10 05.1,100 −== ii MMM , se le llama fórmula de recurrencia. Y esto implica: M1 = 1.05*100 M2 = 1.05*(1.05*100) = 1.05 2 *100 M3 = 1.05*(1.05 2 *100) = 1.05 3 *100 M4 = 1.05*(1.053 *100) = 1.05 4 *100 = 121.55 Ejemplo 1.2: La sucesión de Fibonaccise define según la fórmula recursiva: 10 =s 11 =s 21 −− += nnn sss para n= 2,3,4,… Si se desarrolla la formula de recurrencia general se obtiene S2 = 2 S3 = 3 S4 = 5 S5 = 8 etc.
  7. 7. 7 Ejemplos de Programación Dinámica El siguiente ejemplo fue desarrollado por el profesor Harvey M. Wagner cuando estaba en la universidad de Stanford con el fin de ilustrar los elementos y la terminología propios de la PD. Ejemplo 1.3 (El problema de la diligencia) Una diligencia debe atravesar el oeste estadounidense en plena fiebre del oro. Cada uno de los tramos de su recorrido está cubierto por una póliza de seguro, cuyo costo es directamente proporcional al riesgo presente durante el viaje. El recorrido se inicia en la ciudad A y tiene como destino la ciudad J. La figura 1.1 ilustra la situación. Los números en los arcos indican el costo de la póliza que cubre el viaje entre las dos ciudades, por ejemplo, la póliza del viaje entre A y C tiene un costo de 3. El conductor supone que la ruta más segura es aquella para la cual la suma total de los costos de las pólizas sea mínima. Figura 1.1 D C B G F E I H J A 2 4 3 7 4 6 3 2 4 4 1 5 1 4 6 3 3 3 3 4
  8. 8. 8 Solución del problema En primer lugar debemos notar que la estrategia de escoger, en cada etapa, la ruta con el costo mínimo no conduce a la solución óptima, pues al seguir esta táctica se obtiene la ruta A→B→F →I →J la cual tiene un costo total de 13. Sin embargo un pequeño sacrificio en una etapa puede conducir a mejores resultados más adelante. Para este caso tenemos que A →D →F ofrece un mejor resultado que A→B→F. Un procedimiento que sí conduce a encontrar la solución óptima es la enumeración exhaustiva de todas las posibilidades, las cuales en este caso son: 3x3x2 = 18. Se procedería de la siguiente manera: Ruta 1. A→B→E →H →J costo total 13 Ruta 2. A→B→E →I →J costo total 17 Μ Ruta 18. A→D→G →I→J costo total 15 Recuérdese que la definición de PD habla de mejorar la eficiencia de cálculo y por lo tanto, se observa que la enumeración exhaustiva de casos no es eficiente porque, por ejemplo, al calcular los costos de las rutas 1 y 2 se repite el trabajo correspondiente al segmento A→B →E y a su aporte al costo total, que en este caso es de 9. Un procedimiento más eficiente “guarda” este resultado intermedio para evitar la redundancia en los cálculos, este es precisamente el enfoque de la PD para este tipo de problemas. En primer lugar debe notarse que cualquiera que sea la solución la diligencia deberá realizar 4 etapas de camino. Por lo tanto se resolverá el problema para cada una de las etapas , agregando en cada paso una etapa más hasta llegar a la primera y con ello a la solución del problema. Sin embargo, antes de comenzar a resolver el problema se introducirán algunos conceptos que, aunque excesivos para este problema en particular, (pues este problema puede resolverse desde el punto de vista de la PD pero sin tanta parafernalia) van ambientando los elementos propios del enfoque de la PD. Sean nx (n = 1,2,3) las variables de decisión que representan la ciudad por la cual deberá pasar la diligencia en la etapa n. Por ejemplo, el conjunto de valores que puede tomar 2x es { E, F, G }, los elementos de este
  9. 9. 9 conjunto se denominan estados de la etapa 2. Entonces la ruta seleccionada es A→x1 → x2 → x3 →J. Sea ),( 1−nn xsf el costo total de la mejor política global para las etapas anteriores, dado que la diligencia se encuentra en la ciudad s y acaba de llegar de 1−nx . Dados s y n, sea * 1−nx el valor de 1−nx (no necesariamente único) que minimiza ),( 1−nn xsf , y sea )(* sfn el valor mínimo correspondiente de ),( 1−nn xsf . Entonces )(* sfn = mín n x ),( 1−nn xsf = ),( * 1−nn xsf (1) en donde ),( 1−nn xsf = costo inmediato (etapa n) + costo mínimo etapas 1,2, . . ., n- 1 en otras palabras ),( 1−nn xsf = 1−nsx C + ),( * 1−nn xsf (2) Con la notación introducida se tiene que el objetivo es encontrar )(* 4 Jf . Si alguna de estas definiciones no ha logrado ser entendida completamente esto deberá lograrse viendo el proceso de solución, el cual extrae la información de la figura 1.1 y de las tablas que se vayan generando: Para n = 1, 0x = A y no existen opciones de caminos para },,{ DCBs∈ por lo tanto se tienen únicamente soluciones óptimas
  10. 10. 10 s )(* 1 sf * 0x B 2 A C 4 A D 3 A Tabla 1.1 Para n = 2 se tiene, por ejemplo: )(),( * 12 1 BfcBEf EB += = 7+2 = 9 esta ecuación tiene el siguiente significado: el costo mínimo para llegar a E desde A pasando por B es igual al costo de ir de B a E ( EBc ) – este dato aparece en la figura 1.1-más el costo mínimo del viaje de A hasta B ( )(* 1 Bf ) -este dato se toma de la tabla 1.1, en general se tomará de la tabla anterior -. De esta forma se calculan todas las entradas de la tabla 1.2. La tabla 1.2 nos permite ver ya un resultado interesante: en este momento hemos resuelto el problema si el destino de la diligencia fuera alguna de las ciudades E, F o G. Por ejemplo, el costo mínimo para ir de A a E es de 7 ( )(* 2 Ef ) y se consigue llegando a E desde C o D ( * 1x ), si por ejemplo se llega por D la tabla 1.1 nos informa que a D debe llegarse en la ruta óptima desde A, aunque este último resultado es trivial la atención se centra en la lógica que sigue la construcción y lectura de las tablas. )(),( 1 * 112 1 xfcxsf sx +=1x s B C D )(* 2 sf * 1x E 9 7 7 7 C o D F 6 6 4 4 D G 8 8 8 8 B o C o D Tabla 1.2
  11. 11. 11 Para n=3 se tiene )(),( 2 * 223 2 xfcxsf sx +=2x s E F G )(* 3 sf * 2x H 8 10 11 8 E I 11 7 11 7 F Tabla 1.3 Y finalmente para n=4 )(),( 3 * 334 3 xfcxsf sx +=2x s H I )(* 4 sf * 3x J 11 11 11 H o I Tabla 1.4 De la tabla 1.4 se concluye que el costo mínimo es 11 y que puede llegarse a J tanto de H como de I. Si se escoge la ruta que llega por H de la tabla 1.3 se tiene que la ruta óptima llega a H a través de E. A su vez la tabla 1.2 informa que existen rutas óptimas que llegan a E a través de C tanto como de D. Finalmente, si se escoge la ruta que llega a E por C la tabla 1.1 indica que la ruta optima llega a C a través de A (trivial). Con la información anterior se concluye que una ruta óptima es A →C→E →H →J Análisis similares arrojan las siguientes rutas óptimas alternativas A →D→E →H→J A →D→F → I →J Obviamente todas tienen un costo total de 11.∗ ∗ Nota: este mismo ejemplo se encuentra resuelto en la página 533 de [Hil02] siguiendo un procedimiento conocido como de retroceso, el cual consiste en atacar el problema de adelante hacia atrás. Sin embargo, se ha considerado que el procedimiento de avance, seguido aquí, es mas intuitivo. Más adelante se discutirán las ventajas de cada uno.
  12. 12. 12 Teorema de optimalidad El ejemplo 1.3 también permite ambientar la discusión de la base fundamental de la PD que es el llamado Teorema (o principio) de optimalidad, cuyo enunciado es el siguiente: Una política óptima solo puede estar formada por subpolíticas óptimas. En esencia lo que significa es que las diferentes restricciones de la solución al problema total (política óptima) a cada uno de los subproblemas (subpolítica) es también solución óptima de dicho subproblema. Acudiendo al ejemplo, se tiene que la ruta A →C →E →H→J es una política óptima y que C →E→H es una subpolítica de A→C →E →H →J. Lo que afirma el teorema es que, en estas condiciones, C →E →H es a su vez subpolítica óptima, o sea, que es solución óptima del subproblema que surge al considerar como punto inicial C y como destino H. La justificación es intuitiva: supóngase que la afirmación es falsa, existirá entonces un nodo X tal que C→X →H es mejor que C→E→H, pero de ello surge una contradicción, pues en ese caso se tendría que A →C →X →H→J sería mejor que A→C→E →H →J con lo cual esta última no sería política óptima. Con esto se tiene una motivación, no a una demostración, sino a un esquema de demostración del principio de optimalidad. Consiste en una generalización de lo discutido en el párrafo anterior: sea x1, x2, . . . ,xk, . . . ,xk+r, . . . ., xn una sucesión de soluciones óptimas a los subproblemas en los cuales se ha dividido uno mayor o, en otras palabras, una solución óptima del problema general. Supóngase además que xk, . . . ,xk+r no constituyen una solución optima al subproblema restringido que las posee como variables de decisión, entonces deben existir x’k, . . . ,x’k+r tales que constituyen una solución óptima del mencionado subproblema, con lo cual se tendría que x1, x2, . . . ,x’k, . . . ,x’k+r, . . . ., xn sería una solución mejor que x1, x2, . . . ,xk, . . . ,xk+r, . . . ., xn y esto contradice el hecho de que esta última sea una solución óptima. Este esquema debe ser adaptado para que constituya una demostración de cada caso particular al cual se esté aplicando la PD. Esto último no debe verse como una dificultad gratuita, sino como un paso adelante en el empeño por adquirir el dominio total de las características del modelo matemático particular que se pretende aplicar.
  13. 13. 13 Como ya se dijo, el ejemplo 1.3 fue creado con el propósito de introducir los elementos y la terminología propios de la P.D. Se tienen entonces las siguientes características: 1. El problema se puede dividir en etapas que requieren una política de decisión en cada una de ellas. Esta es quizá la principal característica de los problemas de P.D. y se verá que la esencia de la solución será identificar las etapas, en algunos ejemplos, como el anterior, estas serán evidentes, sin embargo, se verán casos en los cuales esto no será siempre así. 2. Los estados son las distintas condiciones posibles en las que se puede encontrar el sistema en cada etapa del problema. 3. El procedimiento de solución está diseñado para encontrar una política óptima para el problema completo, a partir de un procedimiento que inicia analizando una etapa y que en cada uno de los pasos agrega una nueva, hasta abarcar el problema en su totalidad. 4. La decisión inmediata óptima depende sólo del estado actual y no de cómo se llegó ahí. En el ejemplo anterior, esta afirmación se evidencia en el hecho de que en cada paso únicamente se consultaba la tabla anterior y no el conjunto total de tablas. 5. El procedimiento de solución emplea una relación recursiva que identifica la política óptima para la etapa n, dada la política óptima para la etapa n-1. Para el caso del ejemplo anterior esta relación tenía la forma: ),( 1−nn xsf = 1−nsx C + ),( * 1−nn xsf (3) Con la ayuda de estas nuevas herramientas conceptuales se atacará otro problema típico de la P.D. Ejemplo 1.4: (Problema de la distribución de la inversión) Una corporación recibe propuestas de sus tres plantas respecto a la posible expansión de las instalaciones. La corporación tiene un presupuesto de 5 millones de dólares para asignarlo a las tres plantas. Cada planta expone sus propuestas indicando el costo total (C) y el ingreso total (R) para cada propuesta. En la tabla 1.5 se muestran los costos e ingresos (en millones de dólares). Las propuestas de costo cero
  14. 14. 14 indican la posibilidad de no asignar fondo alguno a la planta. El objetivo, obviamente, es maximizar el ingreso total resultante. Planta 1 Planta 2 Planta 3 Propuesta C1 R1 C2 R2 C3 R3 1 0 0 0 0 0 0 2 1 5 2 8 1 3 3 2 6 3 9 - - 4 - - 4 12 - - Tabla 1.5 Las plantas definen las etapas. Las variables de decisión 1x , 2x y 3x se definen de la siguiente manera: 1x = monto de capital asignado a la planta 1. 2x = monto de capital asignado a las plantas 1 y 2. 3x = monto de capital asignado a las plantas 1, 2 y 3. Una solución es una tripla (P1, P2, P3) donde Pi corresponde a la propuesta que se escoge de la planta i, por ejemplo (2, 3, 1) significa escoger la propuesta 2 para la planta 1, la propuesta 3 para la planta 2 y la propuesta 1 para la planta 3; esta solución tendría un costo de 1 + 3 + 0 = 4 millones y produciría un ingreso de 5 + 9 + 0 = 15 millones. Existen solucione no factibles como (3, 4, 2) pues tiene un costo de 7 millones. Solución del problema Como 1x corresponde al monto que se asignará a la planta 1, se deben considerar todas las posibilidades desde hacer 1x = 0 lo que significaría emplear los $5 millones en las otras dos plantas, hasta hacer 1x = 5 en cuyo caso se asignaría la totalidad de los recursos a la planta 1 (Este último caso, evidentemente, no corresponde a una solución óptima, pues la máxima cantidad que puede aprovechar la planta 1 es $2 millones). Se recurre a la siguiente notación: )( nn PR = ingreso de la propuesta nP en la etapa n. )( nn xf = rendimiento óptimo de las etapas 1, 2, . . . , ndado el estado nx .
  15. 15. 15 * jP = propuesta óptima asociada a )( nn xf Por lo tanto se tiene )( 11 xf = 1Pfactibles propuestas máx { )( 11 PR } (4) en esta ecuación se relacionan dos variables diferentes: por un lado 1x , que como ya se dijo corresponde a la cantidad asignada a la planta 1, y por otro lado 1P que representa la propuesta que se elige de las presentadas por la planta 1. Dependiendo del valor de 1x no todas las propuestas son factibles, por ejemplo para 1x = 1 la propuesta 1P = 3 no es factible pues tiene un costo de 2. La tabla 1.6 resume la relación de todos los posibles valores de 1x con todos los posibles valores de 1P , los asteriscos representan la no factibilidad de algunos casos. n=1 )( 11 PR 1x 1P = 1 1P = 2 1P = 3 )( 11 xf * 1P 0 0 * * 0 1 1 0 5 * 5 2 2 0 5 6 6 3 3 0 5 6 6 3 4 0 5 6 6 3 5 0 5 6 6 3 Tabla 1.6 La tabla 1.5 informa cual es la política óptima que debe seguirse para cada uno de los posibles valores de 1x . Puede parecer redundante en su construcción pues para cada estado la propuesta más alta que puede cubrirse es la que genera el mayor ingreso, sin embargo, como ocurre en la realidad, no siempre la mayor inversión genera el más alto beneficio. Ahora se define la parte faltante de la ecuación recursiva y que corresponde a las etapas 2, 3, . . .
  16. 16. 16 )( nn xf = Pnfactibles propuestas máx { )( nn PR + )( 11 −− nn xf } (5) pero como )( nn xf es función de nx exclusivamente, el lado derecho también debe serlo, esto se consigue teniendo en cuenta que )(1 nnnn PCxx −=− (6) donde )( nn PC es el costo de la propuesta nP en la etapa n. Esta ecuación ilustra la forma en que opera el procedimiento recursivo: de un dado nx se asigna una parte ( )( nn PC ) para cubrir la propuesta nP de la etapa n y la cantidad restante ( )(1 nnnn PCxx −=− ) se destina a cubrir las propuestas de las etapas 1,2, . . . ,n-1. Se tiene, entonces: )( nn xf = Pnfactibles propuestas máx { )( nn PR + ))((1 nnnn PCxf −− } n = 2,3, . . . (7) tabulando para n=2 )( 22 PR + ))(( 2221 PCxf − 2x 2P = 1 2P = 2 2P = 3 2P = 4 )( 22 xf * 2P 0 0+0=0 * * * 0 1 1 0+5=5 * * * 5 1 2 0+6=6 8+0=8 * * 8 2 3 0+6=6 8+5=13 9+0=9 * 13 2 4 0+6=6 8+6=14 9+5=14 12+0=12 14 2 o 3 5 0+6=6 8+6=14 9+6=15 12+5=17 17 4 Tabla 1.7 Como en el ejemplo anterior, la tabla 1.5 contiene la solución total del problema restringido a las dos primeras etapas, esto es, si el problema total se limitara a las plantas 1 y 2, ya estaría resuelto, pues en la fila correspondiente a 2x = 5 vemos que se obtiene una ganancia máxima de 17, siguiendo la propuesta 4 de la planta 2 y como por la tabla 1.5 sabemos que esta tiene un costo de 4 tenemos 1x = 5 – 4 = 1 y para 1x = 1 la tabla 1.6 nos dice que se debe seguir la propuesta 2 de la planta 1. Se
  17. 17. 17 tendría entonces la solución al problema reducido (2,4) que tiene un costo de 5 millones y, como ya se dijo, reporta una ganancia de 17 . La tabla para la última etapa posee solamente una fila, pues al no haber etapas restantes no deben considerarse todas las posibilidades de inversión sino, únicamente, el caso 3x =5. )( 33 PR + ))(( 3332 PCxf − 3x 3P = 1 3P = 2 )( 33 xf * 3P 5 0 + 17 = 17 3 + 14 = 17 17 1 o 2 Tabla 1.8 Se tiene, por lo tanto, de la tabla 1.8, que el ingreso máximo es de 17 millones, el cual se obtiene implementando las propuestas 1 o 2 de la planta 3. En el caso de escogerse la propuesta 1 la cual, según la tabla 1.5 tiene un costo de 0 se tiene 2x = 5 – 0 = 5, y en la tabla 1.7 se ve que para este valor de 2x se debe implementar la propuesta 4 de la planta 2, la cual, según la tabla 1.5 tiene un costo de 4, con lo cual se tiene 1x = 5 – 4 = 1, finalmente, la tabla 1.6 indica que para este valor de 1x el procedimiento óptimo es implementar la propuesta 2 de la planta 1. Resumiendo la discusión anterior, se tiene como una solución optima (2, 4, 1) . Un procedimiento análogo permite encontrar otras dos soluciones óptimas: (3, 2, 2) y (2, 3, 2), cada una de las cuales reporta ingresos de 17 millones. Los dos últimos ejemplos comunican la sensación de que la P.D. consiste en la resolución de problemas que involucran variables discretas y que son susceptibles de una representación tabular, los ejemplos que se exponen a continuación muestran que ese no es el hecho. Ejemplo 1.5: (Problema de la subdivisión óptima) El problema consiste en dividir una cantidad q, mayor que cero, en n partes. El objetivo es determinar la subdivisión óptima de q que maximiza el producto de las n partes.
  18. 18. 18 Solución del problema Sea ix la i-ésima parte de q ( i = 1, 2 , . . . , n ). Entonces el problema puede expresarse de la siguiente forma maximizar p = ∏= n i ix 1 sujeto a ∑= n i ix 1 = q, ix > 0 para toda i Se hacen las siguientes definiciones: 1. La etapa i representa la i-ésima parte de q. 2. El estado iy es la parte de q que se asigna a las etapas 1, 2, . . . , i. Es evidente que, según esta definición, qyn = . 3. La alternativa ix es la parte de q asignada a la etapa i. Sea )( ii yf el valor óptimo de la función objetivo para las etapas 1, 2, . . . ,i dado el estado iy y sea * ix el ix asociado con )( ii yf . Por lo tanto las ecuaciones recursivas asumen la siguiente forma )( 11 yf = }{ 1 11 xmáx yx ≤ (8) )( ii yf = )}(*{ 1 1 iiii yx xyfxmáx i −− ≤ (9) Para i=1 es evidente que )( 11 yf = }{ 1 11 xmáx yx ≤ = 1y y por lo tanto * 1x = 1y . Para i = 2 se debe calcular )}(*{ 2212 22 xyfxmáx yx − ≤ pero como )( 11 yf = 1y entonces se tiene )( 22 yf = )}(*{ 222 22 xyxmáx yx − ≤ (10) o )( 22 yf = )}{ 2 222 22 xyxmáx yx − ≤ (11) para encontrar este máximo se acude al cálculo elemental y se sigue el conocido recurso de derivar e igualar a cero, como la ecuación es de una
  19. 19. 19 parábola que abre hacia abajo no deben realizarse más cálculos. Se define la función h como: )( 2xh = 2 222 xyx − (12) entonces )(' 2xh = 22 2xy − (13) se resuelve la ecuación )(' 2xh = 0 y se tiene 2/2 * 2 yx = (14) como consecuencia de esto se tiene que 2/2 * 1 yx = (15) que es la conocida solución para el caso n = 2. De donde )( 22 yf = 4/2 2y (16) Para i = 3 se debe calcular )( 33 yf = )}(*{ 3323 33 xyfxmáx yx − ≤ lo cual, aplicando el resultado que se acaba de obtener para la etapa 2, es igual a )( 33 yf = }4/)(*{ 2 333 33 xyxmáx yx − ≤ (17) o )( 33 yf = }4/)2{( 3 3 2 333 2 3 33 xxyxymáx yx +− ≤ (18) Se define )( 3xh = 4/)2( 3 3 2 333 2 3 xxyxy +− y se procede como en el caso anterior: )(' 3xh = 4/)34( 2 333 2 3 xxyy +− = 0 (19) factorizando y trasponiendo el 4 0))(3( 3333 =−− xyxy (20)
  20. 20. 20 Se tienen, en consecuencia, dos soluciones: =3x 3y /3 y =3x 3y . El cálculo de la segunda derivada permitirá determinar la raíz correcta aunque el modelo ya insinúa que se trata de la primera. )('' 3xh =(-4 3y +6 3x )/4 (21) 02/)3/('' 33 <−= yyh (22) 02/)('' 33 >= yyh (23) Estos resultados confirman la predicción hecha. Se tiene el siguiente conjunto de resultados: =* 3x 3y /3 (24) )( 33 yf = 3 3y /27 (25) Los cálculos realizados con i = 1, 2 y 3 insinúan que para cada etapa i los resultados siguen el siguiente patrón: iyx ii /* = (26) i iii iyyf )/()( = (27) Se recurrirá a la inducción matemática para demostrar este hecho. Para i = 1 ya se tiene el resultado. Supóngase que se cumple para i y calcúlese para i + 1. )( 11 ++ ii yf = )}(*{ 111 111 +++ ≤ − ++ iiii yx xyfxmáx i (28) que aplicando la hipótesis de inducción se transforma en )( 11 ++ ii yf = })/)((*{ 111 111 i iii yx ixyxmáx i +++ ≤ − ++ (29) definiendo i iiii ixyxxh )/)((*)( 1111 ++++ −= (30) y haciendo los respectivos cálculos 0)/)(()/)(()(' 1 111111 =−−−= − ++++++ i iii i iii ixyxixyxh (31)
  21. 21. 21 factorizando 0)/)(()/)(( 111 1 11 =−−− +++ − ++ iii i ii xixyixy (32) el modelo permite descartar la posibilidad 11 ++ = ii yx en consecuencia solo es necesario resolver 0/)( 111 =−− +++ iii xixy (33) que da como resultado )1/(1 * 1 += ++ iyx ii (34) con lo cual se tiene )( 11 ++ ii yf = 1 1 1 1 1 1 1* 1 + + + + +       + =             + − + i i i i i i i y i i y y i y (35) con lo cual finaliza la demostración. Este resultado permite pasar directamente a la evaluación de la etapa n. Para i = n se tiene nqnyx nn //* == (36) q n n y n n nyyxyy nnnnnn )1()1( /1 − = − =−=−=− (37) la fórmula iyx ii /* = permite concluir que nqnyx nn /)1/(1 * 1 =−= −− y por lo tanto q n n n q q n n xyy nnn )2(1 112 − =− − =−= −−− (38)
  22. 22. 22 de donde, aplicando la misma fórmula nqxn /* 2 =− (39) esto permite calcular q n n n q q n n xyy nnn 32* 223 − =− − =−= −−− (40) Continuando estos cálculos se ve que nqxi /* = para todo i =1,2, . . . ,n y con esto se concluye el producto máximo es n nq )/( lo cual confirma el resultado anticipado por la fórmula (27).∗ La utilización del cálculo en la solución de este ejemplo muestra que la técnica de la P.D. se limita a la descomposición en etapas pero no dice nada acerca de la forma como se optimiza el problema en cada etapa. Refiriéndose a esta característica de la P.D. en la página 533 de [Hil02] aparece la siguiente afirmación: “La P.D. se trata de un enfoque de tipo general para la solución de problemas y las ecuaciones específicas que se usan se deben desarrollar para que representen cada situación individual. Entonces, se necesita cierto grado de creatividad y un buen conocimiento de la estructura general de los problemas de P.D. para reconocer cuando y como se puede resolver un problema por medio de estos procedimientos”. Solución de problemas de Programación lineal El problema maximizar pp xcxcxcz +++= ...2211 ∗ Nota: este ejemplo se encuentra resuelto en la página 425 de [Tah95] siguiendo un procedimiento de retroceso, el procedimiento de avance, seguido aquí, simplifica los cálculos.
  23. 23. 23 sujeto a mpmpmm pp pp bxaxaxa bxaxaxa bxaxaxa ≤+++ ≤+++ ≤+++ ... ... ... 2211 22222121 11212111 ΜΛΜΛΛΛΜΛΛΛΜΛΛΛΜ 0,...,, 21 ≥pxxx puede formularse como un problema de P.D. Cada actividad j (j = 1, 2, . . . ,p) se considera como una etapa. El nivel de actividad jx ( ≥ 0 ) representa la alternativa en la etapa j. Como en el ejemplo anterior, al tratarse de variables continuas, cada etapa posee un número infinito de alternativas dentro del espacio factible. Los estados pueden definirse como las cantidades de recursos que se asignan a la etapa actual y a las anteriores. Una diferencia con los problemas resueltos hasta el momento radica en el hecho de que al existir m recursos los estados deben representarse con un vector de m dimensiones. Sean ),...,,( 21 mjjj vvv los estados del sistema en la etapa j, o sea, las cantidades de los recursos 1, 2, . . . , m, asignadas a las etapas 1, 2, . . . , j. Sea jf ),...,,( 21 mjjj vvv el valor óptimo de la función objetivo para las etapas 1, 2, . . . ,j dados los estados mjjj vvv ,...,, 21 . Por lo tanto 1f ),...,,( 12111 mvvv = mi vxa ii máx ,...,2,1 0 111 = ≤≤ { 11xc } (41) jf ),...,,( 21 mjjj vvv = mi vxa ijjij máx ,...,2,1 0 = ≤≤ { ),...,( 1111 mjmjmjjjjjjj xavxavfxc −−+ − }, j = 2, 3, . . . ,p (42) donde iij bv ≤≤0 para todas i y j. Ejemplo 1.6: (Problema de Programación Lineal) Resolver maximizar 21 1620 xxz +=
  24. 24. 24 sujeto a 10535 21 ≤+ xx 7042 21 ≤+ xx 0, 21 ≥xx Solución del problema A partir de (41) se tiene }20{),( 1 20 50 21111 211 111 xmáxvvf vx vx ≤≤ ≤≤ = Como 1115 vx ≤ y 2112 vx ≤ se concluye que       ≤ 2 , 5 2111 1 vv mínx pero como se trata de maximizar se tiene       = 2 , 5 2111 1 vv mínx y por lo tanto =),( 12111 vvf 20       2 , 5 2111 vv mín (43) Resta hacer los cálculos de la segunda etapa: 2f ),( 2212 vv =             −− + ≤≤ ≤≤ 2 4 , 5 3 2016 222221 2 40 30 222 122 xvxv mínxmáx vx vx (44) pero se tiene 10512 =v y 7022 =v , entonces, 1053 2 ≤x y 704 2 ≤x lo cual equivale a 2/352 ≤x . Se tiene 2f ),( 2212 vv =             −− + ≤≤ 2 470 , 5 3105 2016 22 2 2/350 2 xx mínxmáx x (45) Para 0= 2/352 ≤x es necesario resolver 2 470 5 3105 22 xx − ≤ − que tiene como solución 102 ≤x . Con lo cual se tiene
  25. 25. 25 2f ),( 2212 vv =                   ≤≤ − ≤≤ − + 2/3510 2 470 100 5 3105 2016 2 2 2 2 2 x x x x xmáx (46) o de forma equivalente 2f ),( 2212 vv =       ≤≤− ≤≤+ 2/351024700 1004420 22 22 xx xx máx (47) En el intervalo [0,10] la función es creciente y por lo tanto tiene su máximo en 102 =x con un valor de 460; en [10,35/2] la función es decreciente de donde el máximo está también en 102 =x y tiene el mismo valor, de donde se concluye que en [0,35] el máximo se localiza en 102 =x y tiene un valor de 460. Para obtener 1x se tiene en cuenta que: 75301053 21211 =−=−= xvv y 3040704 22221 =−=−= xvv pero como       = 2 , 5 2111 1 vv mínx entonces 151 =x . Una leve variación a procedimiento anterior permite resolver problemas de Programación Lineal entera, esto se ilustra en el siguiente ejemplo. Ejemplo 1.7: (Problema de Programación Lineal Entera) Resolver maximizar 21 78 xxz +=
  26. 26. 26 sujeto a 82 21 ≤+ xx 1525 21 ≤+ xx 21, xx enteros no negativos Solución del problema enteroxxmáxvvf vx vx 11 50 20 21111 }8{),( 211 111 ≤≤ ≤≤ = Como 1112 vx ≤ y 2115 vx ≤ se concluye que       ≤ 5 , 2 2111 1 vv mínx además tratándose de un problema de maximización con valores enteros se tiene             = 5 , 2 2111 1 vv mínx (donde  x representa la parte entera de x) y por lo tanto =),( 12111 vvf 8             5 , 2 2111 vv mín (48) Dado que 812 =v y 1522 =v para la etapa 2 se tiene: 2f ),( 2212 vv =                   −− + ≤≤ ≤≤ 5 215 , 2 8 87 22 2 1520 80 2 2 xx mínxmáx x x (49) las desigualdades 82 ≤x y 152 2 ≤x equivalen a 72 ≤x , entonces para este rango resolvemos la desigualdad 5 215 2 8 22 xx − ≤ − que tiene como solución 102 ≥x por lo tanto se tiene 2f ),( 2212 vv =           − + ≤≤ 5 215 87 2 2 70 2 x xmáx x (50) La tabla 1.9 permite encontrar la solución de (50)
  27. 27. 27 2x       − + 5 215 87 2 2 x x 0 24 1 23 2 30 3 29 4 36 5 43 6 42 7 49 Tabla 1.8 se ve que el máximo se consigue con 2x =7 y que tiene un valor de 49. Como 1x =             −− 5 215 , 2 8 22 xx mín entonces 1x = 0 5 1 , 2 1 =            mín . Un procedimiento similar al seguido en los dos ejemplos anteriores sirve también para resolver algunos problemas de programación no lineal como se verá en el siguiente ejemplo. Ejemplo 1.8: (Problema de Programación no Lineal) Resolver el problema de Programación no Lineal: maximizar 2 21 2 1 567 xxxz ++= sujeto a 0, 93 102 21 21 21 ≥ ≤− ≤+ xx xx xx
  28. 28. 28 Solución del problema }67{),( 1 2 1 0 0 21111 211 111 xxmáxvvf vx vx += ≤≤ ≤≤ (51) entonces { }21111 ,vvmínx ≤ . Sea 1 2 11 67)( xxxh += entonces 614)(' 11 += xxh (52) se resuelve la desigualdad 0)(' 1 ≥xh y se obtiene 7 3 1 −≥x como 01 ≥x entonces la función h es creciente en el rango de interés y por lo tanto { }2111 * 1 ,vvmínx = (53) y * 1 2* 121111 67),( xxvvf += (54) Para la etapa 2 se tiene 2f ),( 2212 vv = { }221 2 2 93 1020 39,210(5 2 2 xxfxmáx x x +−+ ≤− ≤≤ (55) se tiene entonces, que 2x está en el rango [0,5] y sobre él debe optimizarse. Se resuelve la desigualdad 22 21039 xx −≤+ y se obtiene 5/12 ≤x con lo cual (55) se transforma en 2f ),( 2212 vv =     ≤≤+−++−+ ≤≤++++ 55/1)102(6)102(75 5/10)93(6)93(75 22 2 2 2 2 22 2 2 2 2 xxxx xxxx máx (56) que simplificado queda 2f ),( 2212 vv =     ≤≤+− ≤≤++ 55/176029233 5/1062139668 22 2 2 22 2 2 xxx xxx máx (57)
  29. 29. 29 para resolver esta optimización se definen 62139668)( 2 2 22 ++= xxxh y 76029233)( 2 2 22 +−= xxxg entonces 396136)(' 22 += xxh y 29266)( 22 −= xxg resolviendo 0)(' 2 ≥xh y 0)(' 2 ≥xg se obtiene 34 99 2 −≥x y 33 146 2 ≥x = 4.42 con lo cual, en los intervalos que nos ocupan se tiene que h(x) es creciente en [0,1/5] y g(x) tiene un mínimo dentro de [1/5,5] por lo tanto h(x) tiene máximo en 1/5 y lo tiene en alguno de los extremos de [1/5,5], se calculan entonces: h (1/5) = 702.92 g(1/5) = 702.92 g(5) = 125 de lo cual se concluye que 5/1* 2 =x = 0.2 y 2f ),( 2212 vv = 702.92 y como { }22 * 1 39,210 xxmínx +−= entonces { }6.9,6.9* 1 mínx = = 9.6. Este problema de programación no lineal también puede ser resuelto por un método gráfico que sigue la misma idea que el empleado en programación lineal. La gráfica 1 ilustra el procedimiento.
  30. 30. 30 Gráfica 1. La parte sombreada corresponde a la región factible. También se ha graficado la función objetivo con diferentes valores para z. Es evidente que al aumentar z el gráfico de la función objetivo “crece” alejándose del centro y que su último punto de contacto con la región factible coincide con la intersección de las rectas que corresponden a las restricciones del problema, en consecuencia el punto solución se halla resolviendo el sistema de ecuaciones que determinan las rectas: 3 9 2 10 11 − = − xx que tiene como solución 6.91 =x de donde 2.02 =x que coincide con la solución encontrada empleando P.D. La sencillez de este método parece contradecir la definición de P.D. dada al comienzo, más adelante se harán algunas conclusiones al respecto de esta observación.
  31. 31. 31 Comparación entre los métodos basados en ecuaciones recursivas de avance y los basados en ecuaciones recursivas de retroceso Un aspecto importante de la P.D. es la diferencia en el grado de dificultad que se presenta al resolver un problema empleando ecuaciones recursivas de avance o de retroceso. En este trabajo se ha optado por las primeras y se ha indicado además, para algunos ejemplos, la bibliografía en la cual se pueden consultar las soluciones que emplean ecuaciones recursivas de retroceso. La razón de ello radica en que en la mayoría de los libros se sigue un enfoque contrario, por lo cual se ha querido llamar la atención sobre la otra cara de la moneda. En algunos casos, como en los ejemplos tratados hasta ahora, el grado de dificultad es igual para ambos enfoques, sin embargo este no es siempre el caso, como se ilustra con el siguiente ejemplo. Ejemplo 1.9: Al comienzo del año 0 un campesino posee k ovejas. Al final de cada año decide cuántas debe vender y cuantas conservar. La ganancia obtenida por la venta de una oveja en el año i es ip . Las ovejas que conserve duplicarán su número en el transcurso del año. El campesino venderá todas sus ovejas al cabo de n años. Para el año j se considerarán las siguientes variables: jx : = número de ovejas conservadas jy : = número de ovejas vendidas jjj yxz += La gráfica 2 ilustra la situación planteada Gráfica 2.
  32. 32. 32 Se tiene kxz 22 01 == njxz jj ,...,2,12 1 == − Ecuación recursiva de retroceso: }{)( 2 nn kzy nn ypmáxzf n nn ≤= = ]}[2({)( 1 2 jjjjj kzy jj yzfypmáxzf j jj −+= + ≤≤ , j = 1,2, . . . ,n-1 Ecuación recursiva de avance: }{)( 11 2 11 11 ypmáxxf xky −= = } 2 ({)( 1 2/)( 2 jj jjj enteroyx xky jj yx fypmáxxf jj j j j + += − + −≤ , j = 2, 3,. . . ,n Al comparar las formulaciones se ve que el método de avance incluye una condición de integridad lo que constituye una dificultad adicional que no está presente en el método de retroceso. ∗ El ejemplo anterior ilustra que en algunos casos puede resultar conveniente preferir un método al otro en pro de la simplificación de los cálculos. ∗ Nota: el ejemplo de las ovejas tiene más un propósito pedagógico que uno práctico, pues se trata de un caso en el cual la solución se encuentra determinando el mejor momento para vender las ovejas y venderlas todasen ese instante, para ello se determina el mayor i i p2 . En caso de presentarse un empate existirán soluciones alternativas a la venta de todas las ovejas en un instante dado, pero la ganancia será la misma. Por lo tanto atacar este problema con el enfoque de P.D. resultaría sumamente impráctico.
  33. 33. 33 Conclusión Las técnicas de P.D. nos han permitido resolver, entre otros, problemas de Programación Lineal, de Programación Lineal Entera, de Programación No Lineal etc. Esto no quiere decir que la P.D. constituya una panacea para la solución de los problemas de todos estos campos, por dos razones: en primer lugar, porque las técnicas de P.D. son aplicables únicamente a un conjunto reducido de problemas en cada campo. Y en segundo lugar porque, aunque la técnica sea aplicable, al resolver problemas grandes (de Programación Lineal por ejemplo) el número de evaluaciones de todas las alternativas crece de forma exagerada (este problema se conoce como la plaga de la dimensionalidad) lo cual hace que este enfoque sea impráctico. Sin embargo, el propósito buscado al resolver este tipo de problemas no ha sido proponer una alternativa a los métodos estándar de solución de tales campos (como el método símplex en el caso de la Programación Lineal) sino sencillamente poner en evidencia la versatilidad propia de la P.D. Por otra parte, cuando enfrenta problemas propios de su campo la P.D. aporta una marco de procedimiento que ayuda a disminuir enormemente el exceso de trabajo ocasionado por la redundancia en los cálculos a la vez que estimula la creatividad al dejar espacios en blanco que deben ser llenados al resolver cada caso en particular. Debe emplearse la P.D. cuando la forma del problema permita dividirlo en subproblemas que tengan la misma estructura del problema original. También es importante tener en cuenta que el tamaño de los cálculos tenga proporciones razonables.
  34. 34. 34 Bibliografía 1. [Hil02] Hillier Frederick, Investigación de Operaciones, México, D.F.: McGraw-Hill (2002). 2. [Tah95] Taha Hamdy, Investigación de Operaciones, México, D.F.: Alfaomega (1995). 3. [Pra00] Prawda Juan, Métodos y modelos de Investigación de Operaciones, México, D.F.: Limusa (2000).

×