Conceptos y ejemplos básicos de Programación Dinámica
Wilson Julián Rodríguez Rojas
[email protected]
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
I nt r oducci odu cció ón......................................................................................................................4 Pr ogr amaci ón din di n ámi ca...................................................................................................5 E j emplos de f un cion es r ecurs ecur si vas....................................................................................6 Ejemplo 1.1:...................................................................................................................6 1.1:...................................................................................................................6 Ejemplo 1.2:...................................................................................................................6 1.2:...................................................................................................................6
E j emplos emplo s de Pr ogr amaci ón Di n ámi ca.............................................................................7 Ejemplo Ejemplo 1.3 (El problema problema de la diligencia). diligencia)....... ............ ............ ............ ............ ............ ............ ............ ............ ............. ..............7 .......7 Teor Teorem ema a de optim optimal alida idad...............................................................................................12 d...............................................................................................12 Ejemplo Ejemplo 1.4: (Proble (Problema ma de la distribución distribución de la inversión) inversión)...... ............ ............ ............ ............ ................... ............. 13 Ejemplo Ejemplo 1.5: (Proble (Proble ma de la la subdivi subdivisión sión óptim óptima)............ a)................... .............. ............. ...... ................ ........ ................ ........ 17 Ejemplo 1.6: (Problema de Programación Lineal)........................................................23 Ejemplo Ejemplo 1.7: 1.7: (Problema (Problema de Program Programación ación Lineal Lineal Entera).... Entera).......... ............ ............ ............ ................ ................ ......25 25 Ejemplo 1.8: (Problema de Programación no Lineal)...................................................27
Compar Com par ació aci ón entr ent r e los mé todos todo s basados basados en en ecuaci ones on es r ecur sivas de avance y los basados basados en ecuaciones ecuaci ones r ecurs ecur si vas de retr oces oceso ................................ ................................ ........31 Ejemplo 1.9:.................................................................................................................31 1.9:.................................................................................................................31
Concl Con clu u si ón ................................................................................................................ ......................................................................................................................33 ......33 B i bli bl i ogr afí af ía ............................................................................................................. .....................................................................................................................33 ........33
2
I nt r oducci odu cció ón......................................................................................................................4 Pr ogr amaci ón din di n ámi ca...................................................................................................5 E j emplos de f un cion es r ecurs ecur si vas....................................................................................6 Ejemplo 1.1:...................................................................................................................6 1.1:...................................................................................................................6 Ejemplo 1.2:...................................................................................................................6 1.2:...................................................................................................................6
E j emplos emplo s de Pr ogr amaci ón Di n ámi ca.............................................................................7 Ejemplo Ejemplo 1.3 (El problema problema de la diligencia). diligencia)....... ............ ............ ............ ............ ............ ............ ............ ............ ............. ..............7 .......7 Teor Teorem ema a de optim optimal alida idad...............................................................................................12 d...............................................................................................12 Ejemplo Ejemplo 1.4: (Proble (Problema ma de la distribución distribución de la inversión) inversión)...... ............ ............ ............ ............ ................... ............. 13 Ejemplo Ejemplo 1.5: (Proble (Proble ma de la la subdivi subdivisión sión óptim óptima)............ a)................... .............. ............. ...... ................ ........ ................ ........ 17 Ejemplo 1.6: (Problema de Programación Lineal)........................................................23 Ejemplo Ejemplo 1.7: 1.7: (Problema (Problema de Program Programación ación Lineal Lineal Entera).... Entera).......... ............ ............ ............ ................ ................ ......25 25 Ejemplo 1.8: (Problema de Programación no Lineal)...................................................27
Compar Com par ació aci ón entr ent r e los mé todos todo s basados basados en en ecuaci ones on es r ecur sivas de avance y los basados basados en ecuaciones ecuaci ones r ecurs ecur si vas de retr oces oceso ................................ ................................ ........31 Ejemplo 1.9:.................................................................................................................31 1.9:.................................................................................................................31
Concl Con clu u si ón ................................................................................................................ ......................................................................................................................33 ......33 B i bli bl i ogr afí af ía ............................................................................................................. .....................................................................................................................33 ........33
2
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 So me results results of the Mathematical Mathematical theory 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.
3
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 hombremá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.
4
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 {a k }k =1 , 2 ,3 ,..., n una sucesión finita, se dice que am es el máximo de {a k }k =1, 2 , 3,..., n si a m
≥ a k para
k = 1,2,3,..., n .
Definición 1.2 (Mínimo): sea {a k }k =1, 2,3,..., n una sucesión finita, se dice que am es el mínimo de {a k }k =1 , 2 ,3 ,..., n si a m
≤ a k para k = 1,2,3,..., n .
Definición 1.3 (Función Recursiva): Sea f : → S , 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 f (n ) = s n , donde sn 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]
5
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 M i = monto en el i-ésimo mes. Y entonces se tiene M 0 = 100 M i
a la pareja ( M 0 Y esto implica:
= M i −1 * 0.05 + M i −1 = 1.05 M i −1 i = 1,2, . . .
= 100 , M i = 1.05 M i−1 ) , se le llama fórmula de recurrencia.
M 1 = 1.05*100 M 2 = 1.05*(1.05*100) = 1.05 2 *100 M 3 = 1.05*(1.05 2 *100) = 1.05 3 *100 M 4 = 1.05*(1.05 3 *100) = 1.05 4 *100 = 121.55
Ejemplo 1.2: La sucesión de Fibonacci se define según la fórmula recursiva: s0 = 1 s1 = 1 sn = s n−1 + s n−2 para n = 2,3,4,… Si se desarrolla la formula de recurrencia general se obtiene S2 = 2 S3 = 3 S4 = 5 S5 = 8 etc.
6
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.
7 B
6
2
4
3 4
A
2
C
3 H
6 F
3
4 3
1
E
4
4
J
3 I
1 D
4
G
5 Figura 1.1
7
3
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 para fernalia) van ambientando los elementos propios del enfoque de la PD. Sean x n (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 x 2 es { E, F, G }, los elementos de este
8
conjunto se denominan estados de la etapa 2. Entonces la ruta seleccionada es A → x1 → x2 → x3 → J. Sea f n ( s, x n −1 ) 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 x n−1 . Dados s y n, sea x *n −1 el valor de x n−1 (no necesariamente único) que minimiza f n ( s, x n −1 ) , y sea f n* ( s ) el valor mínimo correspondiente de f n ( s, x n−1 ) . Entonces f n* ( s) =
mín x
f n ( s , xn −1 ) = f n ( s, x *n −1 ) (1)
n
en donde f n ( s, x n −1 ) = costo inmediato (etapa n) + costo mínimo etapas 1,2, . . ., n1
en otras palabras + f n ( s, x *n −1 ) (2) f n ( s, x n −1 ) = C sx n−1 Con la notación introducida se tiene que el objetivo es encontrar f 4* ( J ) . 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, x 0 = A y no existen opciones de caminos para s ∈{ B, C , D } por lo tanto se tienen únicamente soluciones óptimas
9
s
*
f 1 ( s) x *0 B 2 A C 4 A D 3 A Tabla 1.1
Para n = 2 se tiene, por ejemplo: f 2 ( E , B ) = c EB1
+ f 1* ( B) = 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 ( c EB ) – este dato aparece en la figura 1.1- más el costo mínimo del viaje de A hasta B ( f 1* ( B) ) -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 ( f 2* ( E ) ) y se consigue llegando a E desde C o D ( x1* ), 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 lect ura de las tablas.
x1
s E F G
f 2 ( s, x1 ) B
9 6 8
= c sx + f 1* ( x1 ) 1
C 7 6 8
D 7 4 8 Tabla 1.2
10
f 2* ( s) 7 4 8
x1* CoD D BoCoD
Para n=3 se tiene
x 2 s
f 3 ( s, x2 ) = c sx2
H I
E
+ f 2* ( x2 )
F
8 11
G
10 11 7 11 Tabla 1.3
f 3* ( s) 8 7
x *2 E F
Y finalmente para n=4 x 2
s
f 4 ( s, x3 ) = c sx3
+ f 3* ( x3 )
H J
11
I 11 Tabla 1.4
f 4* ( s) 11
x3*
HoI
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 c ada uno .
11
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.
12
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: f n ( s, x n−1 ) = C + f n ( s, x *n −1 ) (3) sx n−1 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 prop uestas 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
13
indican la posibilidad de no asignar fondo alguno a la planta. El objetivo, obviamente, es maximizar el ingreso total resultante.
Propuesta 1 2 3 4
Planta 1 C1 R 1 0 0 1 5 2 6 Tabla
Planta 2 C2 R 2 0 0 2 8 3 9 4 12 1.5
Planta 3 C3 R 3 0 0 1 3 -
Las plantas definen las etapas. Las variables de decisión x1, x 2 y x3 se definen de la siguiente manera:
x1 = monto de capital asignado a la planta 1. x 2 = monto de capital asignado a las plantas 1 y 2. x3 = monto de capital asignado a las plantas 1, 2 y 3. Una solución es una tripla (P1 , P2 , P3 ) donde P i 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 x1 corresponde al monto que se asignará a la planta 1, se deben considerar todas las posibilidades desde hacer x1 = 0 lo que significaría emplear los $5 millones en las otras dos plantas, hasta hacer x1 = 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). S e recurre a la siguiente notación: Rn ( P n ) = ingreso de la propuesta P n en la etapa n. f n ( xn ) = rendimiento óptimo de las etapas 1, 2, . . . , n dado el estado x n .
14
*
P j = propuesta óptima asociada a f n ( xn ) Por lo tanto se tiene f 1 ( x1 ) =
máx { R1 ( P 1 ) } (4)
pro pue sta s factib les P 1
en esta ecuación se relacionan dos variables diferentes: por un lado x1 , que como ya se dijo corresponde a la cantidad asignada a la planta 1, y por otro lado P 1 que representa la propuesta que se elige de las presentadas por la planta 1. Dependiendo del valor de x1 no todas las propuestas son factibles, por ejemplo para x1 = 1 la propuesta P 1 = 3 no es factible pues tiene un costo de 2. La tabla 1.6 resume la relación de todos los posibles valores de x1 con todos los posibles valores de P 1 , los asteriscos representan la no factibilidad de algunos casos. n=1 R1 ( P 1) x1
0 1 2 3 4 5
P 1 = 1 0 0 0 0 0 0
P 1 = 2 P 1 = 3 * * 5 * 5 6 5 6 5 6 5 6 Tabla 1.6
f 1 ( x1 ) 0 5 6 6 6 6
*
P 1 1 2 3 3 3 3
La tabla 1.5 informa cual es la política óptima que debe seguirse para cada uno de los posibles valores de x1. 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, . . .
15
f n ( xn ) = máx { Rn ( P n ) + f n−1 ( xn−1 ) } (5) pro pue sta s factibl es Pn
pero como f n ( xn ) es función de x n exclusivamente, el lado derecho también debe serlo, esto se consigue teniendo en cuenta que x n−1
= x n − C n ( P n ) (6)
donde C n ( P n ) es el costo de la propuesta P en la etapa n. Esta ecuación n ilustra la forma en que opera el procedimiento recursivo: de un dado x n se asigna una parte ( C n ( P n ) ) para cubrir la propuesta P n de la etapa n y la cantidad restante ( x n−1 = x n − C n ( P n ) ) se destina a cubrir las propuestas de las etapas 1,2, . . . ,n-1. Se tiene, entonces: f n ( xn ) = máx { Rn ( P n ) + f n−1 ( x n pro pue sta s factib les Pn
− C n ( P n ))} n = 2,3, . . .
(7)
tabulando para n=2
R2 ( P 2 ) + f 1 ( x 2 − C 2 ( P 2 )) x 2
0 1 2 3 4 5
P 2 = 1 P 2 = 2 P 2 = 3 P 2 = 4 f 2 ( x 2 ) 0+0=0 * * * 0 0+5=5 * * * 5 0+6=6 8+0=8 * * 8 0+6=6 8+5=13 9+0=9 * 13 0+6=6 8+6=14 9+5=14 12+0=12 14 0+6=6 8+6=14 9+6=15 12+5=17 17 Tabla 1.7
*
P 2 1 1 2 2 2o3 4
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 x 2 = 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 x1 = 5 – 4 = 1 y para x1 = 1 la tabla 1.6 nos dice que se debe seguir la propuesta 2 de la planta 1. Se
16
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 x3 =5. R3 ( P 3 ) + f 2 ( x3 x3
5
− C 3 ( P 3 ))
P = 1 P = 2 3 3 0 + 17 = 17 3 + 14 = 17 Tabla 1.8
f 3 ( x 3 ) 17
P 3* 1o2
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 x 2 = 5 – 0 = 5, y en la tabla 1.7 se ve que para este valor de x 2 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 x1 = 5 – 4 = 1, finalmente, la tabla 1.6 indica que para este valor de x1 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 var iables 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.
17
Solución del problema
Sea x i la i-ésima parte de q ( i = 1, 2 , . . . , n ). Entonces el problema puede expresarse de la siguiente forma n
∏ x
maximizar p =
i
i =1
n
sujeto a
∑ x = q, x > 0 para toda i i
i
i =1
Se hacen las siguientes definiciones: 1. La etapa i representa la i-ésima parte de q. 2. El estado yi es la parte de q que se asigna a las etapas 1, 2, . . . , i. Es evidente que, según esta definición, yn
= q.
3. La alternativa xi es la parte de q asignada a la etapa i. Sea f i ( y i ) el valor óptimo de la función objetivo para las etapas 1, 2, . . . ,i dado el estado yi y sea xi* el xi asociado con f i ( y i ) . Por lo tanto las ecuaciones recursivas asumen la siguiente forma f 1 ( y1 ) = máx{ x1} (8) x1 ≤ y1
f i ( y i ) = máx{ x i * f i−1 ( yi − xi )} (9) xi ≤ y1
Para i=1 es evidente que f 1 ( y1 ) = máx{ x1 } = y1 y por lo tanto x1* = y1 . x1 ≤ y1
Para i = 2 se debe calcular máx{ x 2 * f 1 ( y 2 − x2 )} pero como f 1 ( y1 ) = y1 x2 ≤ y2
entonces se tiene f 2 ( y 2 ) = máx{ x2 * ( y2 − x 2 )} (10) x2 ≤ y2
o f 2 ( y2 ) = máx{ x2 y2 − x 2 )} (11) 2
x2 ≤ y2
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
18
parábola que abre hacia abajo no deben realizarse más cálculos. Se define la función h como: h( x2 ) = x 2 y2 − x 22 (12)
entonces
h' ( x 2 ) = y 2 − 2 x2 (13) se resuelve la ecuación h' ( x2 ) = 0 y se tiene
= y2 / 2 (14)
*
x 2
como consecuencia de esto se tiene que x1*
= y 2 / 2
(15)
que es la conocida solución para el caso n = 2. De donde f 2 ( y2 ) = y22 / 4 (16)
Para i = 3 se debe calcular f 3 ( y3 ) = máx{ x3 * f 2 ( y 3 − x3 )} lo cual, x3 ≤ y3
aplicando el resultado que se acaba de obtener para la etapa 2, es igual a f 3 ( y3 ) = máx{ x3 * ( y3 − x3 ) 2 / 4} (17) x3 ≤ y3
o f 3 ( y3 ) = máx{( y32 x3 x3 ≤ y3
Se define h ( x3 ) = ( y 32 x3 anterior:
− 2 y 3 x32 + x 33 ) / 4} (18)
− 2 y3 x32 + x33 ) / 4 y se procede como en el caso
h' ( x 3 ) = ( y 32
− 4 y 3 x3 + 3 x32 ) / 4
= 0 (19)
factorizando y trasponiendo el 4 ( y 3
− 3 x3 )( y3 − x3 ) = 0 (20)
19
Se tienen, en consecuencia, dos soluciones: x3 = y 3 /3 y x3 = y 3 . 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. h' ' ( x3 ) =(-4 y3 +6 x3 )/4 (21)
h' ' ( y3 / 3) = − y 3 / 2 < 0 (22) h' ' ( y3 )
= y3 / 2 > 0
(23)
Estos resultados confirman la predicción hecha. Se tiene el siguiente conjunto de resultados: x3* = y3 /3 (24) f 3 ( y3 ) = y33 /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:
= yi / i (26) f i ( yi ) = ( y i / i ) i (27) xi*
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. f i +1 ( yi +1 ) = máx { x i+1 * f i ( yi +1 − xi+1 )} (28) xi +1 ≤ y+11
que aplicando la hipótesis de inducción se transforma en f i +1 ( yi +1 ) = máx { xi +1 * (( y i +1 − xi +1 ) / i ) i } (29) xi+ 1 ≤ y +11
definiendo h( xi+1 ) = x i+1 * (( y i+1 − xi+1 ) / i ) i (30)
y haciendo los respectivos cálculos h' ( xi +1 ) = (( yi +1 − x i +1 ) / i) i − xi +1 (( y i +1 − xi +1 ) / i ) i −1
20
= 0 (31)
factorizando
(( y i +1 − xi+1 ) / i ) i−1 (( y i+1 − xi+1 ) / i − xi +1 ) el modelo permite descartar la posibilidad xi +1 solo es necesario resolver ( y i +1 − xi +1 ) / i − x i+1
= 0 (32)
= y i+1 en
consecuencia
= 0 (33)
que da como resultado xi*+1
= yi +1 /(i + 1) (34)
con lo cual se tiene i
f i +1 ( yi +1 ) =
y − y i+1 i +1 yi +1 i +1 i + 1 y i +1 = * (35) i + 1 i +1 i
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 x *n y n −1
la fórmula xi* lo tanto
= y n / n = q / n (36)
= y n − xn = y n − y n / n =
( n − 1) y n n
=
( n − 1) q (37) n
= yi / i permite concluir que x *n−1 = y n−1 /( n − 1) = q / n y por
y n−2
= y n−1 − xn−1 =
n −1 n
21
q−
q n
=
( n − 2) q (38) n
de donde, aplicando la misma fórmula x *n−2
= q / n (39)
esto permite calcular y n−3
= y n−2 − x *n− 2 =
n−2 n
q−
q n
=
n −3 n
q (40)
Continuando estos cálculos se ve que xi* = q / n para todo i =1,2, . . . ,n y con esto se concluye el producto máximo es ( q / n) n
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 z = c1 x1
+ c 2 x 2 + ... + c p x p
∗
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.
22
sujeto a
a11 x1 + a12 x2
+ ... + a1 p x p ≤ b1 a 21 x1 + a 22 x2 + ... + a 2 p x p ≤ b2 ΜΛ Λ Λ ΜΛ Λ Λ ΜΛ Λ Λ Μ ΛΜ a m1 x1 + a m2 x 2 + ... + amp x p ≤ bm x1 , x 2 ,..., x p ≥ 0 puede formularse como un problema de P.D. Cada actividad j (j = 1, 2, . . . ,p) se considera como una etapa. El nivel de actividad x j ( ≥ 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 (v1 j , v2 j ,..., vmj ) 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 f j (v1 j , v2 j ,..., vmj ) el valor óptimo de la función objetivo para las etapas 1, 2, . . . ,j dados los estados v1 j , v 2 j ,..., v mj . Por lo tanto
f 1 (v11 , v21 ,..., vm1 ) =
f j (v1 j , v2 j ,..., vmj ) = máx { c j x j 0 ≤ aij x j ≤vij i =1, 2 ,..., m
máx { c1 x1} (41)
0 ≤ ai 1 x1 ≤v i1 i =1, 2 ,..., m
+ f j −1 (v1 j − a1 j x1 j ,..., vmj − amj xmj ) },
j = 2, 3, . . . ,p (42) donde 0 ≤ vij
≤ bi para todas i y j.
Ejemplo 1.6: (Problema de Programación Lineal) Resolver
maximizar z = 20 x1
23
+ 16 x 2
sujeto a 5 x1
+ 3 x2 ≤ 105 2 x1 + 4 x 2 ≤ 70 x1, x2 ≥ 0
Solución del problema
A partir de (41) se tiene f 1 (v11 , v21 ) = máx {20 x1} 0 ≤5 x1 ≤v11 0 ≤2 x1 ≤ v21
v v ≤ mín 11 , 21 pero 5 2 v v como se trata de maximizar se tiene x1 = mín 11 , 21 y por lo tanto 5 2 v v f 1 ( v11 , v12 ) = 20 mín 11 , 21 (43) 5 2
Como 5 x1
≤ v11
y 2 x1 ≤ v21 se concluye que x1
Resta hacer los cálculos de la segunda etapa:
f 2 (v12 , v22 ) = máx
0 ≤3 x2 ≤ v12 0 ≤ 4 x2 ≤v22
v − 3 x v − 4 x 16 x2 + 20mín 21 5 2 , 22 2 2 (44)
pero se tiene v12 = 105 y v 22 = 70 , entonces, 3 x 2 ≤ 105 y 4 x2 cual equivale a x 2 ≤ 35 / 2 . Se tiene
≤ 70
lo
105 − 3 x2 , 70 − 4 x 2 (45) x mín 16 20 + 2 5 0 ≤ x ≤35 / 2 2 105 − 3 x 2 70 − 4 x2 Para 0= x 2 ≤ 35 / 2 es necesario resolver que tiene ≤ f 2 ( v12 , v 22 ) = máx 2
5
como solución x2
≤ 10 . Con lo cual se tiene
24
2
105 − 3 x2 5 f 2 (v12 , v22 ) = máx 16 x 2 + 20 70 − 4 x2 2
0 ≤ x 2 10 ≤ x 2
≤ 10 ≤ 35 / 2
o de forma equivalente
(46)
420 + 4 x 2 0 ≤ x2 ≤ 10 f 2 ( v12 , v 22 ) = máx (47) x x 700 − 24 10 ≤ ≤ 35 / 2 2 2 En el intervalo [0,10] la función es creciente y por lo tanto tiene su máximo en x 2 = 10 con un valor de 460; en [10,35/2] la función es decreciente de donde el máximo está también en x2 = 10 y tiene el mismo valor, de donde se concluye que en [0,35] el máximo se localiza en x2 = 10 y tiene un valor de 460. Para obtener x1 se tiene en cuenta que: v11
= v12 − 3 x2 = 105 − 30 = 75
v 21
= v 22 − 4 x 2 = 70 − 40 = 30
y
v11 , v21 entonces x1 = 15 . 5 2
pero como x1 = mín
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
z = 8 x1
25
+ 7 x2
sujeto a
2 x1 + x2
≤8 5 x1 + 2 x 2 ≤ 15 x1, x2 enteros no negativos Solución del problema
f 1(v11 , v21 ) = máx {8 x1} x1 entero 0 ≤ 2 x1 ≤v11 0 ≤5 x1 ≤ v21
Como 2 x1
≤ v11 y
5 x1
≤ v21 se concluye que
x1
v v ≤ mín 11 , 21 además 2 5
tratándose de un problema de maximización con valores enteros se tiene x1
v v = mín 11 , 21 (donde x representa la parte entera de x) y por lo 2 5
tanto
v11 , v 21 (48) 2 5
f 1 ( v11 , v12 ) = 8 mín
Dado que v12 = 8 y v 22 = 15 para la etapa 2 se tiene :
0 ≤ x ≤8 0 ≤ 2 x ≤15
f 2 (v12 , v22 ) = máx 7 x2 2
2
+ 8mín8 − x2 , 15 − 2 x2 (49) 5 2
las desigualdades x 2 ≤ 8 y 2 x 2 ≤ 15 equivalen a x2 ≤ 7 , entonces para 8 − x2 15 − 2 x2 este rango resolvemos la desigualdad que tiene como ≤ 2 5 solución x2 ≥ 10 por lo tanto se tiene
15 − 2 x2 (50) f 2 (v12 , v22 ) = máx 7 x2 + 8 0 ≤ x2 ≤7 5 La tabla 1.9 permite encontrar la solución de (50)
26
x 2
15 − 2 x2 7 x 2 + 8 5
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 x 2 =7 y que tiene un valor de 49. Como
8 − x2 , 15 − 2 x 2 entonces x1 5 2
x1 = mín
1 1 = mín , = 0 . 2 5
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 z = 7 x12 + 6 x1 sujeto a x1 + 2 x2 ≤ 10 x1 − 3 x2
≤9 x1 , x2 ≥ 0
27
+ 5 x22
Solución del problema
f 1 (v11 , v21 ) = máx {7 x1
2
0 ≤ x1 ≤v11 0 ≤ x1 ≤v 21
entonces x1
≤ mín{v11 , v21 }. Sea
h( x1 ) = 7 x1
2
+ 6 x1 }
(51)
+ 6 x1 entonces
h' ( x1 ) = 14 x1 + 6 (52)
3 como x1 ≥ 0 7 entonces la función h es creciente en el rango de interés y por lo tanto se resuelve la desigualdad h' ( x1 ) ≥ 0 y se obtiene x1
x1*
≥−
= mín{v11 , v21 } (53)
y f 1 ( v11 , v 21 )
= 7 x1*2 + 6 x1* (54)
Para la etapa 2 se tiene 2 f 2 (v12 , v22 ) = máx {5 x 2 0 ≤ 2 x2 ≤10 − 3 x2 ≤9
+ f 1 (10 − 2 x 2 ,9 + 3 x 2 } (55)
se tiene entonces, que
x 2 está en el rango [0,5] y sobre él debe optimizarse. Se resuelve la desigualdad 9 + 3 x 2 ≤ 10 − 2 x2 y se obtiene x 2 ≤ 1 / 5 con lo cual (55) se transforma en
5 x 22 + 7(3 x 2 + 9) 2 + 6(3 x 2 + 9) f 2 (v12 , v22 ) = máx 2 5 x 2 + 7( −2 x2 + 10) 2 + 6 ( −2 x 2 + 10 )
0 ≤ x 2
≤ 1/ 5 1 / 5 ≤ x2 ≤ 5
(56)
que simplificado queda
68 x22 + 396 x 2 + 621 f 2 (v12 , v22 ) = máx 33 x 22 − 292 x 2 + 760
28
0 ≤ x 2
≤ 1/ 5 1 / 5 ≤ x 2 ≤ 5
(57)
para resolver esta optimización se definen h( x2 ) = 68 x 22 + 396 x2 + 621 y g ( x 2 ) = 33 x22 − 292 x2 entonces h' ( x2 ) = 136 x 2 + 396 y g ( x 2 ) = 66 x 2 − 292
+ 760
resolviendo h' ( x2 ) ≥ 0 y g ' ( x2 ) ≥ 0 se obtiene x 2
≥−
99 34
y x 2 ≥
146 33
= 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 calcula n entonces: h (1/5) = 702.92 g (1/5) = 702.92 g (5) = 125
de lo cual se concluye que x *2 = 1 / 5 = 0.2 y f 2 ( v12 , v 22 ) = 702.92 y como x1*
= mín {10 − 2 x 2 ,9 + 3 x 2 }
entonces *
x1
= mín {9.6,9.6} = 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.
29
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: 10 − x1 2
=
−9
x1
3
que tiene como solución x1 = 9.6
de donde
x 2 = 0.2 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.
30
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 pi . 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: x j : = número de ovejas conservadas
y j : = número de ovejas vendidas z j
= x j + y j
La gráfica 2 ilustra la situación planteada
Gráfica 2.
31
Se tiene z 1
= 2 x 0 = 2k
= 2 x j −1 j = 1,2,..., n
z j
Ecuación recursiva de retroceso: f n ( z n ) = máxn { pn yn } yn = z n ≤2 k
f j ( z j ) = máx j { p j y j y j ≤ z j ≤ 2 k
+ f j +1 ( 2[ z j − y j ]} ,
j = 1,2, . . . ,n-1
Ecuación recursiva de avance: f 1 ( x1 ) = máx { p1 y1 } y1 =2 k − x1
f j ( x j ) =
máx j
{ p j y j
y j ≤ 2 k − x j ( x j + y j ) / 2 entero
x j
+ f j−1 (
+ y j 2
} , 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 todas en ese instante, para ello se determina el mayor
2 i pi . 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.
32
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. co nstituya 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.
33