Introducción a la Programación Lineal - Fundación ... · PDF...

45
Introducción a la Programación Lineal Claudia Liliana Daza Garzón [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 2 de junio de 2005

Transcript of Introducción a la Programación Lineal - Fundación ... · PDF...

Page 1: Introducción a la Programación Lineal - Fundación ... · PDF fileIntroducción a la Programación Lineal Claudia Liliana Daza Garzón cldaza@universia.net.co Trabajo de Grado para

Introducción a la Programación Lineal

Claudia Liliana Daza Garzón [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

2 de junio de 2005

Page 2: Introducción a la Programación Lineal - Fundación ... · PDF fileIntroducción a la Programación Lineal Claudia Liliana Daza Garzón cldaza@universia.net.co Trabajo de Grado para

2

Tabla de contenido

Introducción__________________________________________________________ 3

Programación no lineal_________________________________________________ 4

Optimización clásica variable unidimensional_______________________________ 4

Utilización de métodos numéricos en la determinación de puntos críticos___________ 10

Optimización clásica variable multidimensional ____________________________ 11

Condiciones necesarias y suficientes para la existencia de puntos óptimos __________ 16

Utilización de métodos numéricos en la determinación de puntos estacionarios______ 19 Método de Newton para sistemas de ecuaciones _____________________________________20

Extremos restringidos. Multiplicadores de Lagrange ___________________________ 23 Método de los multiplicadores de Lagrange ________________________________________24

Optimización no clásica variable multidimensional _________________________ 26

Método del gradiente______________________________________________________ 26

Programación separable ___________________________________________________ 29

Algoritmos Genéticos: un cambio de paradigma _______________________________ 35 Características de los algoritmos genéticos _________________________________________43

Conclusiones ________________________________________________________ 44

Bibliografía _________________________________________________________ 45

Page 3: Introducción a la Programación Lineal - Fundación ... · PDF fileIntroducción a la Programación Lineal Claudia Liliana Daza Garzón cldaza@universia.net.co Trabajo de Grado para

3

Introducción

Las matemáticas prestan su servicio a la sociedad mediante la elaboración de modelos matemáticos de la realidad. Esta modelación consiste en crear un objeto conceptual que refleje las características relevantes de un fenómeno para, a partir de tal simplificación, llegar a extraer conclusiones que enriquezcan, en algún sentido, el conocimiento que hasta el momento se tiene del fenómeno. Una modelación de gran importancia y utilidad el la modelación lineal, la cual acude al empleo de funciones lineales para conseguir sus objetivos. Sin embargo, a medida que crece la complejidad de los fenómenos que nos rodean, comienza a hacerse necesario modelar fenómenos con los cuales las aproximaciones lineales son notoriamente ineficaces. Por esta razón es necesario emplear modelos no lineales que se ajustan de una manera más precisa a las realidades de alto grado de complejidad. Uno de los propósitos fundamentales con los cuales se construyen modelos matemáticos es el de obtener respuestas a problemas de óptimización, esto es, a la toma de decisiones inmejorables. La modelación lineal tiene en los métodos símplex y del punto interior (de Karmarkar) unas herramientas de gran poder que le permiten resolver problemas con grandes cantidades de variables y restricciones. Este no es el caso de los modelos no lineales, en los cuales, como se verá, los caminos de fácil recorrido constituyen más la excepción que la norma. Sin embargo, el trabajo realizado en este campo ha estado guiado por unas grandes dosis de ingenio, que han llevado a la creación de algoritmos de base puramente matemática, a otros que mezclan resultados matemáticos con procesos heurísticos y, finalmente, como es el caso de los algoritmos genéticos, a emular los procesos de evolución biológica, que han llevado a muchas formas de vida a elevados niveles de complejidad y sosfisticación, como estrategia para la resolución de problemas. El trabajo, de carácter exploratorio, ha pretendido ser algo más que una recopilación muda de resultados ya plenamente establecidos. No se ha dejado escapar la oportunidad de hacer, lo que se han considerado, pequeños aportes, en su mayoría de tipo pedagógico. Como su talón de Aquiles puede mencionarse la escasez de los métodos tratados, muchos de los cuales ni siquiera están dentro de los considerados como de alto rendimiento, sin embargo, la razón ha sido que, como lo indica el nombre, se trata de una introducción, que busca llamar la atención tanto sobre resultados teóricos de bajo nivel que muchas veces se pasan por alto, así como también sobre el empleo de las herramientas informáticas, tanto como ayuda para las técnicas clásicas, así como cuando son la base de metodologías que están completamente inspiradas en ellas. El campo es extenso y fascinante. El trabajo realizado es de dimensiones modestas, pero aspira a reflejar, al menos en algún momento, algo de la belleza que se encontró en la etapa exploratoria.

Page 4: Introducción a la Programación Lineal - Fundación ... · PDF fileIntroducción a la Programación Lineal Claudia Liliana Daza Garzón cldaza@universia.net.co Trabajo de Grado para

4

Programación no lineal Se puede dar una definición de programación no lineal (PNL) por contraposición con la programación lineal (PL). Recuérdese que esta última trata el problema de optimizar una función lineal RRf n →: sujeta a una serie de restricciones también lineales. Si el problema se modifica, cambiando la función objetivo y/o, al menos, una de las restricciones, por no lineales, se cae en el campo de la PNL. La teoría clásica de la optimización acude al empleo del cálculo diferencial para determinar los puntos en los cuales la función RRf n →: asume valores óptimos (máximos o mínimos). Luego de unas definiciones esenciales se expondrán algunos resultados teóricos así como ejemplos de solución de problemas mediante la aplicación de esta teoría. Se inicia con la teoría propia de las variables unidimensionales, pues este campo permite la comprensión intuitiva de los conceptos y procedimientos empleados, y también, porque algunos de sus resultados tiene aplicación directa en la extensión de la teoría a las variables multidimensionales. Definición 1: se dice que una función nRSRSf ⊂→ ,: tiene un máximo absoluto (o global) en un punto S∈�� �� si

)()( �������� ff ≤

para todo x de S. El número )(����f se llama máximo absoluto de f en S. Definición 2: se dice que una función nRSRSf ⊂→ ,: tiene un máximo relativo (o local) en un punto S∈�� �� si existe 0>r tal que

)()( �������� ff ≤ para todo x ),( rB ����∈ . El número )(����f se llama máximo relativo de f en S. De las definiciones 1 y 2 se concluye que todo máximo absoluto es, a su vez, máximo relativo. Las definiciones de mínimo absoluto (o global) y mínimo relativo (o local) se hacen de manera equivalente.

Optimización clásica variable unidimensional

Definición 3: Un punto crítico de una función RRf →: es un número c para el cual f � (c) = 0 o f �(c) no existe. Teorema 1: Si una función RRf →: tiene un máximo o mínimo relativo en un punto c, entonces c es un punto crítico.

Page 5: Introducción a la Programación Lineal - Fundación ... · PDF fileIntroducción a la Programación Lineal Claudia Liliana Daza Garzón cldaza@universia.net.co Trabajo de Grado para

5

Demostración: si f �(c) no existe, entonces c es un punto crítico. Supóngase ahora que f �(c) existe. Defínase la función

��

��

=

≠−−

=cxparacf

cxparacx

cfxfxg

)('

)()()( (1)

entonces )()(lim cgxg

cx=

→ y, en consecuencia , g es continua en c. Se debe demostrar

que g(c) = 0, para ello se procede por contradicción: si g(c) > 0, por la propiedad de la conservación del signo para funciones continuas, existe un intervalo que contiene a c en el cual g(x) es positiva. Por lo tanto en (1), para x en el intervalo mencionado, x ≠ c, el numerador tiene el mismo signo que el denominador, lo cual implica que si x > c entonces f(x) > f(c), y si x < c entonces f(x) < f(c). Esto contradice la hipótesis de que f tiene un extremo en c. De manera similar se demuestra que suponer que g(c) < 0 conduce a la misma contradicción, por lo tanto g(c) = 0 y como g(c) = )(' cf ha concluido la demostración. El resultado anterior garantiza que si f tiene un óptimo en c, entonces c es un punto crítico. El recíproco no es cierto, como lo demuestra el conocido contraejemplo

3)( xxf = , pues 23)(' xxf = y entonces 0)0(' =f , con lo cual 0 es un punto crítico de f y, sin embargo, f no tiene un óptimo en 0 como se ve en la figura 1.

Figura 1

Entonces, para determinar el conjunto de puntos óptimos de una función debe hacerse un trabajo adicional, luego de haber determinado el conjunto de puntos críticos, pues solo algunos de ellos serán puntos óptimos. El siguiente teorema aporta las herramientas para realizar este trabajo. Teorema 2 (criterio de la primera derivada para extremos en un punto crítico): Supóngase que RRf →: es continua en un intervalo [a, b] y que existe 'f en todo punto de (a, b), excepto posiblemente en c � (a, b), entonces:

1. Si f � es positiva para toda x, con a < x < c, y negativa para toda x, con c < x < b, entonces f tiene un máximo relativo en c.

Page 6: Introducción a la Programación Lineal - Fundación ... · PDF fileIntroducción a la Programación Lineal Claudia Liliana Daza Garzón cldaza@universia.net.co Trabajo de Grado para

6

2. Si f � es negativa para toda x, con a < x < c, y positiva para toda x, con c < x <

b, entonces f tiene un mínimo relativo en c.

3. Si f � es positiva (negativa) para toda x, con a < x < b, x � c, entonces f no tiene un óptimo relativo en c.

Demostración: en el caso 1. f es estrictamente creciente en [a, c] y estrictamente decreciente en [c, b]. Entonces f(x) < f(c) para todo x � c en [a, b] y por lo tanto f tiene un máximo relativo en c. El caso 2 se demuestra de manera análoga. La hipótesis del caso 3 implica que f es estrictamente creciente (decreciente) en [a, b] y, en consecuencia, no puede tener óptimos relativos en el punto interior c. Ejemplo 1: encuentre los puntos en los cuales 2243)( 23 +−−= xxxxf tiene valores óptimos y determine de que clase son. Solución: según el teorema 1 los candidatos a ser puntos óptimos son los puntos críticos, en consecuencia, el primer paso es determinarlos:

)4)(2(32463)(' 2 −+=−−= xxxxxf (2)

la derivada está definida en todo �, en consecuencia, se buscan aquellos puntos críticos para los cuales f �(x) = 0.

0)4)(2(3 =−+ xx (3) tiene como soluciones x = 4 y x = -2. El producto en (2) es positivo cuando los dos términos variables son ambos negativos, o ambos positivos, por lo tanto, f �(x) > 0 en (-�, -2) y en (4, �), y f �(x) < 0 en (-2, 4). Entonces, es posible construir un intervalo alrededor de -2 tal que f �(x) > 0 para x < -2 y, f �(x) < 0 para x > -2 en consecuencia, según el teorema 2, f tiene un máximo en x = -2, con un valor f(-2) = 30. Un razonamiento análogo lleva a concluir que f tiene un mínimo en x = 4, con f(4) = -78. La figura 2 muestra una comprobación gráfica de este hecho.

Figura 2

Page 7: Introducción a la Programación Lineal - Fundación ... · PDF fileIntroducción a la Programación Lineal Claudia Liliana Daza Garzón cldaza@universia.net.co Trabajo de Grado para

7

Ejemplo 2: encuentre los puntos en los cuales 53)( 3/2 += xxf tiene valores óptimos y determine de que clase son.

Solución: 3

3/1 22)('

xxxf == − esta función nunca es cero y no está definida en

x = 0. En consecuencia x = 0 es el único punto crítico. Es evidente que para x < 0, f �(x) < 0, y para x > 0, f �(x) > 0. Aplicando el teorema 2 se concluye que f tiene un mínimo en x = 0. La figura 3 ilustra la situación.

Figura 3

Ejemplo 3: encuentre los puntos críticos de 3)( xxf = y establezca si en ellos f tiene óptimos relativos. Solución: 23)(' xxf = entonces f � está definida en todo �. El único punto crítico de f es entonces x = 0. Sin embargo, f � (x) es positiva para todo x � �, x � 0. Y por el caso 3 del teorema 2 se concluye que f no tiene óptimos relativos en 0, pues es estrictamente creciente en toda vecindad de 0. Véase la figura 1. El siguiente teorema, en algunos casos, facilita los cálculos que permiten concluir que tipo de óptimo se presenta en un punto crítico c. Es aplicable únicamente cuando c es tal que f � (c) = 0 y f ��(c) � 0. Es útil para funciones como la del ejemplo 1; no puede ser usado en funciones como la del ejemplo 2. Para funciones como la del ejemplo 3, para la cual f ��(c) = 0, se expondrá un teorema especial más adelante. Teorema 3 (criterio de la segunda derivada para extremos en un punto crítico): Supóngase que c � (a, b) y que f � (c) = 0. Supóngase, además, que f ��(c) existe, entonces:

1. Si f ��(c) < 0, f tiene un máximo relativo en c. 2. Si f ��(c) > 0, f tiene un mínimo relativo en c.

Demostración: En el caso 1, al ser f �� negativa en c, f � es estrictamente decreciente en una vecindad alrededor de c y como f �(c) = 0 entonces f � pasa de positivo a negativo en c, aplicando el caso 1 del teorema 2 se concluye que f tiene un máximo relativo en c. El caso 2 se demuestra de manera análoga.

Page 8: Introducción a la Programación Lineal - Fundación ... · PDF fileIntroducción a la Programación Lineal Claudia Liliana Daza Garzón cldaza@universia.net.co Trabajo de Grado para

8

Ejemplo 4: En el ejemplo 1 se estableció que x = 4 y x = -2 son los puntos críticos de

2243)( 23 +−−= xxxxf , tales que f �(-2) = 0 y f �(4) = 0. Empleando el teorema 3, determine que clase de valores óptimos son. Solución:

2463)(' 2 −−= xxxf y

66)('' −= xxf

f ��(4) = 18 > 0, entonces f tiene un mínimo relativo en 4. f ��(-2) = -18 < 0, entonces f tiene un máximo relativo en -2. El teorema 3 no dice que ocurre en el caso de que f’��(c) = 0. Este es el caso de

3)( xxf = y 4)( xxf = . El siguiente teorema resuelve este problema. Teorema 4: Sea f que posee n-ésima derivada continua en el intervalo (a, b). Supóngase que para un cierto punto c � (a, b) se tiene:

0)(...)('')(' )1( ==== − cfcfcf n , pero 0)()( ≠cf n . entonces para n par, f posee un mínimo local en c si 0)()( >cf n , y un máximo local en c si 0)()( <cf n . Si n es impar, no existe óptimo en c. Demostración: Como 0)()( ≠cf n existe un intervalo (a, b) que contiene a c, tal que para cada x � (a, b) la derivada )()( xf n tiene el mismo signo que )()( cf n . Por la fórmula de Taylor con resto (con el resto en la forma de Lagrange) se tiene

nn

cxn

xfcfxf )(

!)(

)()( 1)(

−=− , donde ),(1 bax ∈

Si n es par, esta ecuación implica que f(x) ≥ f(c) cuando )()( cf n > 0, y f(x) ≤ f(c) cuando )()( cf n < 0. Si n es impar y )()( cf n > 0, entonces f(x) > f(c) cuando x > c, y f(x) < f(c) cuando x < c, en consecuencia no existe óptimo en c. Se llega a una conclusión análoga cuando n es impar y )()( cf n < 0. Nótese que el teorema 3 es un caso particular del teorema 4. Este hecho puede ser empleado como nemotecnia para recordar el resultado. Ejemplo 5: En el ejemplo 3 se estableció que 0 es el único punto crítico de 3)( xxf = , emplee el teorema 4 para determinar que clase de punto crítico es. Solución:

23)(' xxf = entonces f �(0) = 0

Page 9: Introducción a la Programación Lineal - Fundación ... · PDF fileIntroducción a la Programación Lineal Claudia Liliana Daza Garzón cldaza@universia.net.co Trabajo de Grado para

9

xxf 6)('' = entonces f ��(0) = 0 06)()3( ≠=xf

como 3 es impar y la función constante 6 es continua se concluye que en x = 0 no se presentan óptimos relativos. Ejemplo 6: Determine los puntos críticos de 4)( xxf = y establezca de que clase son. Solución:

34)(' xxf = entonces f � (0) = 0 212)('' xxf = entonces f ��(0) = 0

xxf 24)()3( = entonces 0)0()3( =f 024)()4( ≠=xf

como 4 es par y como, además 0)0()4( >f , entonces en x = 0 la función tiene un mínimo relativo. Hasta el momento no se ha tratado el caso en el cual la función a optimizar se encuentra restringida en su dominio. En tales casos los extremos del intervalo, o los intervalos, son candidatos a ser puntos óptimos. Este caso es tratado en el ejemplo siguiente. Ejemplo 7: Determine los puntos óptimos de 2)( xxf = cuando su dominio se restringe según los casos: a) [-1, 2] b) [2,3]. Solución: La figura ilustra el efecto, sobre los puntos óptimos, de restringir el dominio de una función. En el caso a) el mínimo absoluto es el mismo que cuando no hay restricción, y aparece un máximo absoluto que no existe en el caso irrestricto. Para b) tanto el máximo como el mínimo absolutos no existen en el caso irrestricto y, en este caso, coinciden con los extremos del intervalo.

Figura 4

Page 10: Introducción a la Programación Lineal - Fundación ... · PDF fileIntroducción a la Programación Lineal Claudia Liliana Daza Garzón cldaza@universia.net.co Trabajo de Grado para

10

Utilización de métodos numéricos en la determinación de puntos críticos

En algunos casos la solución de la ecuación f � (x) = 0 no puede calcularse por medios algebraicos y es necesario recurrir a algún método numérico para llevar a cabo esta labor. En el siguiente ejemplo se ilustra esta situación. Ejemplo 8: Determine los puntos en los cuales la función )()( 3 xsenxxg −= presenta óptimos relativos. Solución: En primer lugar se grafíca la función para tener una idea de donde pueden localizarse los óptimos relativos.

Figura 5

La figura 5 permite concluir que, efectivamente, existen óptimos y que estos se encuentran, el primero en [-1, 0] y el segundo en [0, 1]. El procedimiento a seguir es similar al de los ejemplos anteriores.

23)(' xxg = - cos(x)

Esta función está definida en todo �, entonces, los puntos críticos son las soluciones de

3x² - cos(x) = 0 para resolver esta ecuación es necesario acudir a los métodos numéricos. En este caso se empleará el método de Newton. Este método consiste en la aplicación de la ecuación recursiva

)(')(

1n

nnn xf

xfxx −=+

Page 11: Introducción a la Programación Lineal - Fundación ... · PDF fileIntroducción a la Programación Lineal Claudia Liliana Daza Garzón cldaza@universia.net.co Trabajo de Grado para

11

en donde 0x es un número próximo a la raíz buscada. Para este caso se tiene

23)( xxf = - cos(x) xxf 6)(' = + sen(x)

tomando 1x = -0.8 los cálculos son los siguientes:

Iteración ix )( ixf )(' ixf

0 -0.8 1.22329329 -5.517356091 1 -0.5782827 0.16583011 -4.016282878 2 -0.53699325 0.00583458 -3.733514265 3 -0.53543049 8.3762E-06 -3.722794298 4 -0.53542824 1.7364E-11 -3.722778863 5 -0.53542824 0 -3.722778863

Tabla 1 Se tiene entonces, que x = -0.53542824 es el punto crítico que se encuentra en [-1, 0]. En virtud de la simetría de f se concluye que el punto crítico en [0, 1] es x = 0.53542824. Para determinar que clase de óptimo es x = -0.53542824 evaluamos g� en puntos cercanos a x uno a la izquierda y el otro a la derecha:

g�(-0.54) = 1.7*10 2− > 0 y g�(-0.52) = -5.6*10 2− < 0 haciendo analogía con el caso 2 del teorema 2 se concluye que en x = -0.53542824 g tiene un máximo local. Un procedimiento análogo permite concluir que en x = 0.53542824 g tiene un mínimo local. Estos resultados confirman lo observado en la figura 5. (En este ejemplo hemos incurrido en una imprecisión teórica al afirmar que x es igual al número encontrado con el método numérico, sin embargo, para efectos prácticos, este hecho es irrelevante pues la solución puede ser calculada con la precisión requerida por el problema que se este resolviendo en el momento. Como ejemplo se muestra el resultado que se obtiene al emplear Matemática con una precisión de 40 decimales: x = -0.5354282441646569523641119303647428750992).

Optimización clásica variable multidimensional

Definición 4 (Derivadas direccional y parcial): Sea nRSRSf ⊂→ ,: . Si y es un vector unitario y a es un punto interior a S, la derivada

0,)()(

lim)('0

>−+=→

hh

fhff

h

����������������������������

se llama derivada direccional de f en a en la dirección de y. Si y = k���� (el k-ésimo

vector de la base canónica de nR ) la derivada direccional 'f (a; k���� ) se denomina derivada parcial respecto a kx y se representa mediante el símbolo

Page 12: Introducción a la Programación Lineal - Fundación ... · PDF fileIntroducción a la Programación Lineal Claudia Liliana Daza Garzón cldaza@universia.net.co Trabajo de Grado para

12

),...,( 1 nk

aaxf

∂∂

.

En el caso de la variable bidimensional el significado geométrico de esta derivada es una generalización del caso unidimensional. La figura 6 ilustra la situación

Figura 6

las alturas de f (a) y f (a + hy) son perpendiculares a la hoja y pasan por los puntos a y a + hy respectivamente. Como y es unitario la longitud del segmento que une a con a + hy tiene una longitud igual a h. Los cuatro puntos: a, a + hy, f (a) y f (a + hy) están todos contenidos en un plano perpendicular al plano xy que sigue la dirección del segmento que une a con a + hy. Con esto en mente se puede concluir que la derivada direccional representa la pendiente de la recta tangente a la curva que se forma al intersecar la superficie con el plano que es perpendicular al plano xy, que pasa por a y es paralelo a y. Definición 5: El vector

���

���

∂∂

∂∂

∂∂=∇

nxf

xf

xf

f)(

,...,)(

,)(

)(21

����������������

se conoce como el gradiente de f en a. Teorema 5: Sea nRSRSf ⊂→ ,: . Una condición necesaria para que f tenga un óptimo en a es que �������� =∇ )(f . Demostración : Si f tiene un óptimo en a, al dejar constantes n-1 variables y analizar la situación en la variable restante, digamos kx , debe tenerse que, para esta, la proyección de la función tiene un óptimo en ka y, como se estaría en el caso unidimensional, según el teorema 1 la derivada de la función proyección debe ser igual a cero. Como este resultado se tiene para todas y cada una de las variables, necesariamente �������� =∇ )(f . El teorema 5 motiva un método, análogo al empleado en el caso de variable unidimensional, para encontrar puntos óptimos. Este método consiste en determinar los puntos en los cuales el gradiente se hace cero. Sin embargo, como en el caso

Page 13: Introducción a la Programación Lineal - Fundación ... · PDF fileIntroducción a la Programación Lineal Claudia Liliana Daza Garzón cldaza@universia.net.co Trabajo de Grado para

13

unidimensional, la anulación del gradiente es una condición necesaria, pero no suficiente, para la existencia de óptimos. La definición 6 introduce la terminología que se emplea para clasificar los diferentes casos. Mas adelante se establece un criterio, también análogo al del caso unidimensional, basado en las segundas derivadas para establecer que clase de óptimo (si lo es) es un punto en el cual se anula el gradiente. Definición 6: Un punto a para el cual �������� =∇ )(f se conoce como punto estacionario de f. Un punto estacionario se llama de silla (o de ensilladura) si toda n-bola B(a) contiene puntos x tales que f(x) < f(a) y otros para los cuales f(x) > f(a). Ejemplo 9 (método de los mínimos cuadrados): Cada planeta, con una única excepción, se halla entre 1,3 y 2,0 veces tan alejado del Sol en relación al siguiente planeta más cercano. La única excepción es Júpiter, el quinto planeta, que se halla 3,4 veces más alejado de lo que está Marte. Este hecho intrigó notablemente a los astrónomos ¿Podría existir un planeta en el hueco entre Marte y Júpiter? Heinrich Wilhelm Mathias Olbers, astrónomo alemán, reclutó un grupo que planeaba emprender la búsqueda sistemática del planeta faltante. Sin embargo, en la noche del 31 de diciembre de 1800 Giuseppe Piazzi, astrónomo italiano, quien desconocía la existencia y los propósitos del grupo de Olbers, localizó, en el mencionado hueco, un objeto celeste que variaba de posición de un día al siguiente. Lo denominó Ceres y fue el primer asteroide de que se tuvo noticia. Un mes después Ceres desapareció detrás del Sol. En los meses posteriores fue buscado infructuosamente en los cielos. Tres meses después apareció exactamente en el lugar en el cual Carl Friedrich Gauss, matemático alemán, empleando un método de su invención para analizar las observaciones hechas, había predicho que lo haría. El método inventado por Gauss se denomina de los mínimos cuadrados, y consiste en una técnica que se utiliza para encontrar la curva que se ajusta mejor a un conjunto de resultados experimentales, de manera que sea mínima la suma de los cuadrados de las diferencias entre las ordenadas de dichos puntos y las de la curva que tienen la misma abscisa. El ejemplo que sigue desarrolla la idea del método. Dadas n parejas ordenadas distintas ),(,...),,(),,( 2211 nn yxyxyx no siempre es posible encontrar una recta bmxxf +=)( que pase por todos los puntos ),( ii yx . Sin embargo, pueden calcularse las constantes m y b de tal manera que la recta bmxxf +=)( se ajuste de la mejor manera a la colección de puntos. Antes de resolver el problema se considerará el mejor criterio según el cual se puede afirmar que la recta “se ajusta de la mejor manera”. En cada punto el error cometido será igual a la diferencia entre el valor generado por la fórmula bmxxf +=)( y el valor tabulado, esto es, iiiii ybmxyxfe −+=−= )( . Véase la figura 7.

Figura 7

Page 14: Introducción a la Programación Lineal - Fundación ... · PDF fileIntroducción a la Programación Lineal Claudia Liliana Daza Garzón cldaza@universia.net.co Trabajo de Grado para

14

Cualquier método debe, de alguna manera, minimizar el total de los errores cometidos. En un primer momento podría pensarse en minimizar la suma de todos los errores, esto es, minimizar

ii

n

i

yxf −�=

)(1

La figura 8 muestra que no es una buena idea, pues lo mínimo que se espera de la recta de ajuste es que, cuando se tienen exactamente dos puntos, pase por ambos. Este no es el caso, pues cualquier recta que pase por el punto medio, con la única excepción de una vertical, cumple la condición de minimizar la suma de los errores, haciéndola igual a cero (nótese que los errores son iguales en magnitud pero de signo contrario).

Figura 8

Una solución alternativa sería intentar minimizar la suma de los valores absolutos de los errores, o sea, minimizar

ii

n

i

yxf −�=

)(1

la dificultad de este enfoque radica en que es necesario calcular derivadas parciales pero el valor absoluto es una función que se define por partes y que, además, no es derivable en 0. Todas estas dificultades son superadas con el enfoque de los mínimos cuadrados, el cual consiste en minimizar la suma de los errores al cuadrado, esto es, minimizar

( ) ( )��==

−+=−n

iii

n

iii ybmxyxf

1

2

1

2)(

El problema se concreta entonces a determinar las constantes m y b de tal manera que se

minimice S(m, b) = ( )�=

−+n

iii ybmx

1

2

Solución:

( )�=

−+=∂∂ n

iiii xybmx

mS

1

2

( )�=

−+=∂∂ n

iii ybmx

bS

1

2

igualando estas derivadas parciales a cero se obtiene

Page 15: Introducción a la Programación Lineal - Fundación ... · PDF fileIntroducción a la Programación Lineal Claudia Liliana Daza Garzón cldaza@universia.net.co Trabajo de Grado para

15

���===

=+n

iii

n

ii

n

ii yxxbxm

111

2

��==

=+n

ii

n

ii ynbxm

11

Este es un sistema lineal de dos ecuaciones con dos incógnitas, resolviendo por el método de sustitución, de la segunda ecuación se obtiene

n

xmyb

n

ii

n

ii ��

==

−= 11

reemplazando en la primera

����

�==

==

=

=−

+n

iii

n

ii

n

ii

n

iin

ii yxx

n

xmyxm

11

11

1

2

despejando m

2

11

2

1112

1

1

2

11

1

��

��

−=

��

��

−=

��

���

��

���

==

===

=

=

==

=

n

ii

n

ii

n

ii

n

ii

n

iii

n

iin

ii

n

ii

n

iin

iii

xxn

yxyxn

n

xx

n

yxyx

m

resumiendo

2

11

2

111

��

��

−=

��

���

==

===

n

ii

n

ii

n

ii

n

ii

n

iii

xxn

yxyxnm y

n

xmyb

n

ii

n

ii ��

==

−= 11

es la solución pedida. Cualquier hoja de cálculo o calculadora científica genera estás cantidades a partir de los datos introducidos. En consecuencia, la recta de regresión es

bmxYxf iii +==Λ

)(

Ejemplo 10: Demuestre que para la recta de regresión encontrada en el ejemplo anterior se tiene

ii

n

i

yxf −�=

)(1

= 0

Solución:

ii

n

i

yxf −�=

)(1

= ii

n

i

yY −Λ

=�

1

= �=

−+n

iii ybmx

1

=

��==

−+n

ii

n

ii ynbxm

11

=

Page 16: Introducción a la Programación Lineal - Fundación ... · PDF fileIntroducción a la Programación Lineal Claudia Liliana Daza Garzón cldaza@universia.net.co Trabajo de Grado para

16

01111

=−−+ ����====

n

ii

n

ii

n

ii

n

ii yxmyxm

Aunque se ha trabajado únicamente la regresión de tipo lineal en dos variables, el enfoque de los mínimos cuadrados puede extenderse directamente a polinomios de grado n (en el caso de que se tengan n + 1 puntos el polinomio de regresión será precisamente el polinomio de colocación), el grado del polinomio puede establecerse por algún resultado teórico, alguna expectativa o por la aplicación que se le pretenda dar. Mediante transformaciones, problemas no lineales pueden adaptarse para hacer regresión lineal a datos que, por ejemplo, se ajusten aproximadamente a una exponencial del tipo cxaby = , ya que, evaluando en ambos lados logaritmos de base b se obtiene cxay bb += loglog y haciendo las sustituciones Y = yblog y A = ablog se llega a una ecuación de tipo lineal. También es posible trabajar en más de dos dimensiones encontrando, ya no la recta, sino el hiperplano que mejor se ajusta a una “nube” de puntos en nR . Condiciones necesarias y suficientes para la existencia de puntos

óptimos El método empleado en el ejemplo 9 se limitó a determinar un punto estacionario de f. Las derivadas parciales están definidas en todo el plano y, en consecuencia, este punto estacionario es único. Consideraciones teóricas propias del caso particular que se estaba tratando permitían concluir que la solución existía. Por lo tanto se asumió que en este punto se presenta el mínimo buscado. Este procedimiento es lícito. Sin embargo, este no es siempre el caso: la existencia de varios puntos estacionarios puede hacer necesario que se clasifiquen en máximos, mínimos o puntos de silla. También puede ocurrir que el modelo matemático no garantice la existencia de la solución y, en consecuencia, en los puntos estacionarios hallados pueden presentarse puntos de silla u óptimos de naturaleza contraria a los buscados. Estas consideraciones hacen que sea necesario contar con un criterio de clasificación de los puntos estacionarios. Las definiciones y el teorema, sin demostración, que se presentan en seguida suplen esta necesidad. Definición 7: La matriz n x n de las segundas derivadas parciales de f es llamada matriz hessiana y se designa por H(x). Así, se tiene

��������

��������

∂∂

∂∂∂

∂∂∂

∂∂∂

∂∂

∂∂∂

∂∂∂

∂∂∂

∂∂

=

2

2

2

2

1

2

2

2

22

2

12

21

2

21

2

21

2

)()()(

)()()(

)()()(

)(

nnn

n

n

xf

xxf

xxf

xxf

xf

xxf

xxf

xxf

xf

H

������������

������������

������������

����

����

Page 17: Introducción a la Programación Lineal - Fundación ... · PDF fileIntroducción a la Programación Lineal Claudia Liliana Daza Garzón cldaza@universia.net.co Trabajo de Grado para

17

Definición 8: Dada la matriz nxnA se define el k-ésimo menor principal de A como

kkkk

k

k

aaa

aaa

aaa

����

21

22221

11211

k = 1,2, . . . , n

Definición 9: Dada la matriz simétrica nxnA se dice que A es:

1. definida positiva si los valores de los menores principales de A son positivos (no negativos).

2. definida negativa si el valor del k-ésimo menor principal tiene signo k)1(− Teorema 6: sea a un punto estacionario de f entonces

1. Si H(a) es definida positiva f tiene un mínimo en a. 2. Si H(a) es definida negativa f tiene un máximo en a.

Ejemplo 11: encuentre los puntos óptimos de la función

23

22

213231321 2),,( xxxxxxxxxxf −−−++=

Solución: el sistema

021 11

=−=∂∂

xxf

02 232

=−=∂∂

xxxf

022 323

=−+=∂∂

xxxf

tiene como solución el vector a = (1/2, 2/3, 4/3), entonces

���

���

−−

−=

210120

002

)(����H

los menores principales de H tienen valores -2, 4, -6. Según la definición 9, H es definida negativa. Aplicando el teorema 6 se concluye que f tiene un máximo en a. Ejemplo 12: Determine el punto del plano x + 2y + z = 1 más cercano al origen. Solución: El problema puede representarse como

minimizar f (x, y, z) = 222 zyx ++

Page 18: Introducción a la Programación Lineal - Fundación ... · PDF fileIntroducción a la Programación Lineal Claudia Liliana Daza Garzón cldaza@universia.net.co Trabajo de Grado para

18

sujeto a x + 2y + z = 1 despejando z en la restricción se tiene z = 1- x - 2y , reemplazándola en la función objetivo queda

f = 222 )21( yxyx −−++ calculando las derivadas parciales e igualando a cero

0)21(22 =−−−=∂∂

yxxxf

0)21(42 =−−−=∂∂

yxyyf

o

0244 =−+=∂∂

yxxf

04104 =−+=∂∂

yxyf

que tiene como solución y = 1/3, x = 1/6. En consecuencia z = 1/6. Así, el punto estacionario a es igual a (1/6, 1/3). Como ya se mencionó, características propias del problema en particular (en este caso el hecho de que la distancia mínima de un punto a un plano siempre existe) garantizan que el punto encontrado corresponde a la solución. Sin embargo, se harán los cálculos que verifican este hecho.

���

�=

10444

)(����H

Los menores principales de H son 4 y 24. Por consiguiente H es definida positiva y f tiene un mínimo en a. Hecha esta confirmación se puede afirmar que el punto solución es (1/6, 1/3, 1/6).∗ Ejemplo 13: encuentre los puntos estacionarios de

f (x, y, z) = 2xyz - 4xz - 2yz + x² + y² + z² - 2x - 4y + 4z. Solución: calculando las derivadas parciales e igualando a cero

xf

∂∂

= 2yz - 4z +2x - 2 = 0

yf

∂∂

= 2xz - 2z + 2y - 4 = 0

∗ Nota: este problema pude resolverse acudiendo exclusivamente a argumentos geométricos. La distancia mínima de un punto a un plano es la perpendicular del punto al plano. La solución se halla, entonces, intersecando la recta (x, y, z) = t (1, 2 ,1) =(t, 2t, t), t�� – que es perpendicular al plano – con el plano. Para ello se resuelve para t la ecuación t + 2(2t) + t = 1. La solución es t = 1/6 y el punto es 1/6*(1, 2, 1) = (1/6, 1/3, 1/6).

Page 19: Introducción a la Programación Lineal - Fundación ... · PDF fileIntroducción a la Programación Lineal Claudia Liliana Daza Garzón cldaza@universia.net.co Trabajo de Grado para

19

zf

∂∂

= 2xy – 4x - 2y + 2z + 4 = 0

Para resolver este sistema no lineal de 3 ecuaciones con 3 incógnitas se emplea el método de sustitución. Despejando x en la primer ecuación

x = 1 – yz + 2z reemplazando en la segunda

2(1 – yz + 2z)z - 2z + 2y - 4 = 0

haciendo el producto, simplificando y factorizando

z²(4 - 2y) + 2y – 4 = 0

factorizando de nuevo

(4 – 2y)(z² - 1) = (4 – 2y)(z - 1)(z + 1) = 0

de esta última igualdad se concluye que

y = 2 o z = 1 o z = -1.

Reemplazando x en la segunda ecuación

2(1 – yz + 2z)y – 4(1 – yz + 2z) - 2y + 2z + 4 = 0

simplificando y factorizando

z(y² - 4y + 3) = z(y – 3)(y - 1) = 0 en consecuencia

z = 0 o y = 3 o y = 1. Se escogen las parejas (y, z) de tal manera que se cumplan las 2 condiciones, por ejemplo, si se escoge y = 3 en la segunda condición entonces, por la primera condición, z = 1 o z = -1. Se tienen, por lo tanto, las parejas (3, 1) y (3, -1). Consideraciones análogas dan como resultado las parejas (1, 1), (1, -1) y (2, 0). Tomando, por ejemplo, la pareja (3, 1) se obtiene x = 1 – 3*1 + 2*1 = 0, con lo cual se tiene la tripla (0, 3, 1). El mismo procedimiento conduce a la obtención de los puntos (1, 2, 0), (2, 3, -1), (2, 1, 1) y (0, 1, -1) como puntos estacionarios de f.

Utilización de métodos numéricos en la determinación de puntos estacionarios

El ejemplo 13, de fácil solución, ilustra las bondades de un problema artificial, esto es, un problema que ha sido creado para que tenga una solución relativamente fácil. En este caso la solución del sistema de ecuaciones, originado al igualar el gradiente a cero, se pudo realizar acudiendo únicamente al álgebra elemental. Sin embargo, este tipo de

Page 20: Introducción a la Programación Lineal - Fundación ... · PDF fileIntroducción a la Programación Lineal Claudia Liliana Daza Garzón cldaza@universia.net.co Trabajo de Grado para

20

problemas constituyen la excepción y no la regla cuando se presentan como parte de la solución de un problema real de aplicación. En estos casos, de manera similar a lo visto en el trabajo con variable unidimensional, hay que recurrir a algún método numérico para resolver el sistema. El método que se tratará aquí es el de Newton para sistemas de ecuaciones no lineales.

Método de Newton para sistemas de ecuaciones

Dado el sistema de n ecuaciones F(x) = 0, donde

����

����

=

)(

)()(

)( 2

1

����

��������

��������

nf

f

f

El método de Newton para sistemas consiste en la aplicación de la ecuación recursiva

[ ] )()( 11

11 −−

−− −= kkkk J �������������������� en donde 0���� es un punto próximo a la raíz buscada y

��������

��������

∂∂

∂∂

∂∂

∂∂

∂∂

∂∂

∂∂

∂∂

∂∂

=

n

nnn

n

n

xf

xf

xf

xf

xf

xf

xf

xf

xf

J

)()()(

)()()(

)()()(

)(

21

2

2

2

1

2

1

2

1

1

1

������������

������������

������������

����

����

Ejemplo 14: Encuentre los puntos estacionarios de

f (x, y, z) = 2x² + y² + z² + 6(x + y + z) + 2xyz

Solución: Calculando las derivadas parciales e igualando a cero

xf

∂∂

= 4x + 2yz + 6 = 0

yf

∂∂

= 2y + 2xz + 6 = 0

zf

∂∂

= 2z + 2x y + 6 = 0

Para aplicar el método de Newton se construye la matriz J

Page 21: Introducción a la Programación Lineal - Fundación ... · PDF fileIntroducción a la Programación Lineal Claudia Liliana Daza Garzón cldaza@universia.net.co Trabajo de Grado para

21

���

���

=222

222

224

)(xy

xz

yz

J ����

Comenzando con 0���� =(0, 0, 0) se tiene

���

���

=200020

004

)0,0,0(J y [ ]���

���

=−

2/10002/10

004/1

)0,0,0( 1J

además

F(0, 0, 0) = ���

���

66

6

se tiene entonces

1���� = (0, 0, 0) - ���

���

2/10002/10

004/1

���

���

66

6

= (-3/2, -3, -3)

Iteración (i) Xi Yi Zi

0 0 0 0 1 -1.5 -3 -3 2 -0.31578947 -1.10526316 -1.10526316 3 6.5843733 6.76180141 6.76180141 4 3.11386779 2.69855772 2.69855772 5 1.82175404 0.11834204 0.11834204 6 -1.38308621 -0.92876013 -0.92876013 7 0.95034839 2.17392051 2.17392051 8 -1.33794065 1.01241321 1.01241321 9 -3.47952806 2.46146365 2.46146365 10 -2.88978861 1.79535061 1.79535061 11 -2.83385015 1.6406222 1.6406222 12 -2.83556311 1.63437 1.63437 13 -2.83557496 1.63436529 1.63436529 14 -2.83557496 1.63436529 1.63436529

Tabla 2

La tabla 2 resume los cálculos. Nótese que los valores en la iteración 14 coinciden con los de la 13 esto se debe a que F(x) = 0. Así, partiendo del punto (0, 0, 0) se ha encontrado una solución al sistema consistente en x = -2.83557496, y = 1.63436529 y z = 1.63436529. Sin embargo, en el ejemplo 13 se encontraron 5 puntos estacionarios (5 soluciones al sistema no lineal de ecuaciones) por lo tanto es probable que también en este caso existan varias soluciones. Un procedimiento intuitivo consiste en ejecutar las iteraciones a partir de diferentes puntos en busca de las otras raíces del sistema, por ejemplo, a partir del punto (15, -15, 5) se obtiene la solución x = 1, y = - 4.1925824 y z = 1.1925824. Como los papeles de y y z en el sistema son simétricos, a partir de esta última solución se deduce que x = 1, y = 1.1925824 y z = - 4.1925824 también es solución. Obviamente esta técnica de ensayo y error no constituye un método de

Page 22: Introducción a la Programación Lineal - Fundación ... · PDF fileIntroducción a la Programación Lineal Claudia Liliana Daza Garzón cldaza@universia.net.co Trabajo de Grado para

22

aplicación general y además las simetrías son extrañas. Para evadir estas dificultades, se puede, en el caso particular del sistema que se está resolviendo, disminuir la dimensión del problema despejando x en la primera ecuación y reemplazándola en las otras 2 con lo cual se obtiene:

x = -(yz + 3)/2 y el sistema se reduce a

y(2 - z ²) - 3z + 6 = 0

- y²z - 3y + 2z + 6 = 0 como para una solución cualquiera deben satisfacerse simultáneamente las dos ecuaciones, las soluciones se localizan en los puntos de intersección de las 2 gráficas. Esta situación se ilustra en la figura 9

Figura 9

Así, es posible verificar de forma gráfica que las raíces encontradas son todas las existentes. Es importante insistir que la técnica empleada para la resolución de este ejemplo no siempre es aplicable. En general es difícil determinar el número exacto de raíces, como también el lugar aproximado en donde se encuentran. Lo que se desea indicar es que, en la resolución de cada problema en particular, es aconsejable acudir a todas las herramientas que sea lícito emplear en el momento. De manera análoga al caso unidimensional los óptimos de una función f de variable multidimensional, nRSRSf ⊂→ ,: , también pueden presentarse en aquellos puntos para los cuales no existen las derivadas parciales o que corresponden a la frontera. El propósito del ejemplo 15 es ilustrar esta situación. Ejemplo 15: Dada 22),( yxyxf += definida en {(x, y) / x² + y² ≤ 4} que aparece graficada en la figura 10

Page 23: Introducción a la Programación Lineal - Fundación ... · PDF fileIntroducción a la Programación Lineal Claudia Liliana Daza Garzón cldaza@universia.net.co Trabajo de Grado para

23

Figura 10

es evidente que presenta un mínimo en (0, 0), punto en el cual las derivadas parciales

22 yx

xxf

+=

∂∂

y 22 yx

yyf

+=

∂∂

no existen. Además f toma un valor máximo de 2 en todos y cada uno de los puntos de la frontera.

Extremos restringidos. Multiplicadores de Lagrange

De la misma manera que la derivada unidimensional f �(a) representa la pendiente de la recta tangente a la curva f(x) en el punto (a, f(a)), el vector gradiente tiene una interpretación geométrica que es útil en el momento de dar una motivación del método conocido como de los multiplicadores de Lagrange. El vector gradiente )(����f∇ es un vector normal (perpendicular) al plano tangente a la superficie f(x) en el punto (a, f(a)). Este hecho se ilustra en la figura 11.

Figura 11

Se introducen las ideas del método mediante la solución de un problema de aplicación.

Page 24: Introducción a la Programación Lineal - Fundación ... · PDF fileIntroducción a la Programación Lineal Claudia Liliana Daza Garzón cldaza@universia.net.co Trabajo de Grado para

24

Ejemplo 15: Encuentre los puntos de la superficie z² - xy = 1 más próximos al origen. Solución: Al plantear el problema de la forma

Minimizar (x² + y² + z²) 21

Sujeto a z² - xy = 1

Se hace evidente que se trata de un problema de optimización con restricciones. Un punto (x, y, z) se encuentra a una distancia r del origen si, y solo si, está en la esfera

x² + y² + z² = r² Esta esfera es una superficie de nivel de la función f(x, y, z) = x² + y² + z² que hay que minimizar. Como la superficie z² - xy = 1 no pasa por el origen, la idea de la solución consiste en comenzar con r = 0 e ir aumentando hasta que la esfera sea tangente a la superficie. Cada punto de contacto será una solución del problema. En el punto de tangencia las dos superficies tienen el mismo plano tangente y, en consecuencia, gradientes paralelos. El paralelismo de los gradientes se traduce en que uno es múltiplo del otro. Definiendo

1),,( 2 −−= xyzzyxg

se tiene que la superficie queda definida por g(x, y, z) = 0 y que

gf ∇=∇ λ en consecuencia

)2,,()2,2,2( zxyzyx −−= λ que equivale a las 3 ecuaciones

2x = -λy 2y = -λx 2z = 2λz

la cuarta ecuación está dada por g(x, y, z) = 0 o sea 012 =−− xyz . Este sistema tiene como solución: λ = 1, x = y = 0, z = 1 o z = -1. Se tienen, en consecuencia, las dos soluciones (0, 0, 1) y (0, 0, -1). El método empleado en la solución del ejemplo 15 se generaliza de la siguiente manera.

Método de los multiplicadores de Lagrange

Si nRSRSf ⊂→ ,: tiene un óptimo relativo cuando está sometida a m condiciones

0),...,(,...,0),...,( 111 == nmn xxgxxg

Page 25: Introducción a la Programación Lineal - Fundación ... · PDF fileIntroducción a la Programación Lineal Claudia Liliana Daza Garzón cldaza@universia.net.co Trabajo de Grado para

25

con m < n, existen entonces m escalares mλλ ,...,1 tales que

nn ggf ∇++∇=∇ λλ �11

Los escalares mλλ ,...,1 que se introdujeron para resolver este tipo de problemas se denominan multiplicadores de Lagrange. Ejemplo 16: Encuentre las dimensiones de la cubeta que aparece en la figura 12 de tal manera que se minimice el material empleado y se cumplan las dos restricciones:

1. cada uno de los espacios debe tener una sección horizontal cuadrada. 2. el volumen total (sin tener en cuenta las particiones) debe ser igual a 12 pulgadas

cúbicas.

Figura 12

Solución: El problema se plantea de la siguiente manera:

Minimizar 3xz + xy + 6yz Sujeto a x / 5 - y / 2 = 0 xyz-12 = 0 en donde f (x, y, z) = 3xz + xy + 6yz, 2/5/),,(1 yxzyxg −= y 12),,(2 −= xyzzyxg . Entonces

)63,6,3( yxzxyzf +++=∇ , )0,2/1,5/1(1 −=∇g y ),,(2 xyxzyzg =∇ El sistema

2211 ggf ∇+∇=∇ λλ 0),,(1 =zyxg 0),,(2 =zyxg

es un sistema de 5 ecuaciones con 5 incógnitas de solución dispendiosa. Sin embargo, empleando un paquete matemático (en este caso Derive) se obtiene la solución:

Page 26: Introducción a la Programación Lineal - Fundación ... · PDF fileIntroducción a la Programación Lineal Claudia Liliana Daza Garzón cldaza@universia.net.co Trabajo de Grado para

26

260*3 3

1

=x , 560*3 3

1

=y y 960*2 3

1

=z

Al no contarse con un paquete matemático este problema puede simplificarse despejando x en la primera restricción y reemplazándola en la función objetivo y en la segunda restricción, con lo cual se obtiene un problema en dos variables con una restricción. Aún más, este nuevo problema puede a su vez simplificarse despejando z y se tiene un problema en una sola variable sin restricciones. Sin embargo, el método de los multiplicadores de Lagrange está concebido para resolver problemas en los cuales es imposible hacer tales simplificaciones.

Optimización no clásica variable multidimensional Hasta el momento los métodos empleados han sido fruto de la aplicación de resultados teóricos como, por ejemplo, igualar el gradiente a cero o emplear el método de los multiplicadores de Lagrange, las dificultades han aparecido al momento de atacar el problema de resolver los sistemas de ecuaciones no lineales que aparecen al aplicar los resultados teóricos. Para ello se ha acudido al método de Newton, el cual es un método iterativo de aproximaciones sucesivas a partir de un punto inicial. Lo que se hará ahora es emplear una idea similar para encontrar directamente el óptimo: comenzando con un punto inicial, adecuado según algún criterio, iterar hasta estar lo suficientemente cerca del óptimo.

Método del gradiente Existe una relación fundamental entre la derivada direccional y el gradiente la cual es expresada en la siguiente fórmula

θθ cos)(cos)()();(' ���������������������������� ffff ∇=∇=⋅∇=

donde θ es el ángulo formado por �f (a) e y. La figura 13 proporciona una ilustración gráfica del hecho

Figura 13

Page 27: Introducción a la Programación Lineal - Fundación ... · PDF fileIntroducción a la Programación Lineal Claudia Liliana Daza Garzón cldaza@universia.net.co Trabajo de Grado para

27

Al tener la derivada direccional la forma θcos)(����f∇ es claro que esta asume un valor

máximo cuando 0=θ y un valor mínimo cuando πθ = . O sea que, el valor máximo de la derivada direccional es )(����f∇ y ocurre cuando y tiene la misma dirección del

gradiente y el valor mínimo es - )(����f∇ que ocurre cuando y tiene dirección opuesta al

gradiente. En otras palabras, el gradiente de f en a apunta en la dirección de máximo crecimiento de f a partir de a, en tanto que )(����f∇− apunta en la dirección del máximo decrecimiento de f. Este importante hecho constituye la base del método del gradiente el cual consiste en comenzar a partir de un punto inicial, y avanzar en la dirección del gradiente, en el caso de maximización, o en la dirección contraria, en el caso de minimización. Una vez determinada la dirección de avance es necesario escoger la longitud de dicho avance (o tamaño del paso) lo cual constituye, a su vez, un problema de optimización de variable unidimensional. El siguiente ejemplo ilustra el procedimiento. Ejemplo 17: Maximice la función

f(x, y) = 4x + 6y – 2x² -2xy – 2y² Solución: comenzando en el punto inicial (0, 0) y considerando que

� f (x, y) = (4 – 4x – 2y, 6 – 2x – 4y) entonces el vector � f (0,0) = (4, 6) determina la dirección que debe tomarse a partir de (0, 0). Si p controla la longitud del paso, el punto de llegada será (0, 0) + p(4, 6) = (4p, 6p) para determinar el mejor p se optimiza f (4p, 6p), se tiene entonces

f (4p, 6p) = 16p + 36p – 32p² - 48p² - 72p² = 52p – 152p²

derivando e igualando a cero

52 – 304p = 0 entonces p = 52/304 = 13/76 con lo que el nuevo punto es (13/19, 39/38). Evaluando f (13/19, 39/38) = 169/38 = 4.447368421que representa una mejora frente a f (0,0) = 0. Se hacen los cálculos para dar el siguiente paso.

� f (13/19, 39/38) = (-15/19, 10/19) con lo que el nuevo punto es

(13/19, 39/38) + p(-15/19, 10/19) = (13/19 - 15p/19, 39/38 + 10p/19)

entonces

f (13/19 - 15p/19, 39/38 + 10p/19) = -( 700p² - 650p – 3211) / 722

derivando, igualando a cero y despejando se obtiene p = 13/28 con lo que el nuevo punto es (169/532, 169/133) con f (169/532, 169/133) = 169/38 = 4.656361297.

Page 28: Introducción a la Programación Lineal - Fundación ... · PDF fileIntroducción a la Programación Lineal Claudia Liliana Daza Garzón cldaza@universia.net.co Trabajo de Grado para

28

Este proceso es engorroso, sin embargo, como en este caso en el proceso de optimización la p se obtiene de manera explícita, pueden hacerse los cálculos para cualquier punto genérico (a, b), con lo cual se obtiene

� f (a, b) = (4 – 4a – 2b, 6 – 2a – 4b)

entonces el nuevo punto es

(a, b) + p(4 – 4a – 2b, 6 – 2a – 4b) = (4 p +(1– 4 p)a – 2pb, 6p – 2pa + (1– 4 p)b) evaluando f (4 p +(1– 4 p)a – 2pb, 6p – 2pa + (1– 4 p)b), derivando, igualando a cero y despejando p se obtiene

)19237)2213(7(413165)74(25

22

22

+−+−++−+−+=bbbaa

bbbaap

con lo cual el procedimiento se puede automatizar mediante una hoja de cálculo para obtener la tabla

Iteración X f(X) �f(X)� p 0 0 0 0 4 6 0.1710526 1 0.68421053 1.02631579 4.44736842 -0.78947368 0.52631579 0.4642857 2 0.54916898 1.11634349 4.57299572 -0.42936288 0.43628809 0.499936 3 0.47572532 1.19097172 4.62612436 -0.28484473 0.28466249 0.4999999 4 0.42700188 1.23966398 4.64911892 -0.1873355 0.1873403 0.5 5 0.39495765 1.27170903 4.65907156 -0.12324868 0.12324856 0.5 6 0.37387564 1.29279102 4.66337931 -0.08108462 0.08108462 0.5 7 0.3600059 1.30666076 4.66524381 -0.05334514 0.05334514 0.5 8 0.35088108 1.31578559 4.66605082 -0.03509549 0.03509549 0.5 9 0.3448779 1.32178876 4.66640011 -0.02308914 0.02308914 0.5 10 0.34092844 1.32573822 4.6665513 -0.01519022 0.01519022 0.5 11 0.33833012 1.32833655 4.66661673 -0.00999357 0.00999357 0.5 12 0.33662069 1.33004598 4.66664505 -0.00657472 0.00657472 0.5 � � � � � � � 32 0.33333409 1.33333257 4.66666667 -1.52E-06 1.52E-06 0.5 33 0.33333383 1.33333283 4.66666667 -9.98E-07 9.98E-07 0.5

Tabla 3 En la tabla 3 se ve que el algoritmo converge efectivamente hacia la solución (1/3, 4/3) –la cual puede encontrarse de forma analítica- mientras que el gradiente tiende a cero como es de esperarse que ocurra en un punto óptimo.

Page 29: Introducción a la Programación Lineal - Fundación ... · PDF fileIntroducción a la Programación Lineal Claudia Liliana Daza Garzón cldaza@universia.net.co Trabajo de Grado para

29

Programación separable

La idea de la programación separable para resolver un problema de P.N.L. es construir una aproximación lineal del problema, esto es, un problema de programación lineal, y resolver este para encontrar una aproximación a la solución de aquel. Definición 10: Una función f (x) donde ),...,,( 21 nxxx=���� se dice separable si cumple la condición:

�=

=n

iii xff

1

)()(���� (4)

Ejemplo 18: La función 21

2121 432),( xxxxxf ++= es separable pues puede

escribirse )()(),( 221121 xfxfxxf +=

donde

12111 32)( xxxf += y 222 4)( xxf =

Supongamos que en el problema de optimización

Maximizar z = f (x) Sujeto a

mjbg jj ,...,1)( =><

���� (5)

nixi ,...,2,10 =≥ la función objetivo y las restricciones son separables. El problema adquiere entonces la forma

Maximizar z = �=

n

iii xf

1

)(

Sujeto a

mjbxg jiji

n

i

,...,1)(1

=><

�=

(6)

nixi ,...,2,10 =≥

Al hacer la descomposición �=

=n

iii xff

1

)()(���� cada if puede ser lineal o no. En caso de

no serlo se le hace una aproximación lineal de la siguiente manera: sea f (x), definida en [a, b], como aparece en la figura 14

Page 30: Introducción a la Programación Lineal - Fundación ... · PDF fileIntroducción a la Programación Lineal Claudia Liliana Daza Garzón cldaza@universia.net.co Trabajo de Grado para

30

Figura 14

Se toma la partición bxxxxxxxa rrkk =<<<<<<<<= −+ 11210 �� . La función

)(xfΛ

definida por la poligonal ________________

1

________________

21

________________

10 )(),(,,)(),(,)(),( rr xfxfxfxfxfxf −� es una aproximación lineal de la función f (x).

Para estudiar )(xfΛ

se selecciona el intervalo arbitrario ],[ 1+kk xx para el cual se tiene

)(xfΛ

= )()()(

)(1

1k

kk

kkk xx

xxxfxf

xf −−−

++

+ (7)

Por otra parte si x � ],[ 1+kk xx entonces x puede ser representado como combinación convexa de los extremos del intervalo. Se tiene entonces

10)1(1 ≤≤−+= + λλλ kk xxx (8) Sustituyendo (8) en (7) queda

)(xfΛ

= 10))1(()()(

)( 11

1 ≤≤−−+−−

+ ++

+ λλλ kkkkk

kkk xxx

xxxfxf

xf

o

)(xfΛ

= 10)()()(

)( 11

1 ≤≤−−−

+ ++

+ λλ kkkk

kkk xx

xxxfxf

xf

Simplificando y factorizando

)(xfΛ

= 10)()1()( 1 ≤≤−++ λλλ kk xfxf (9) Como se está analizando el intervalo ],[ 1+kk xx se definen λλ =+1k y λλ −= 1k con lo cual (8) y (9) toman la forma

Page 31: Introducción a la Programación Lineal - Fundación ... · PDF fileIntroducción a la Programación Lineal Claudia Liliana Daza Garzón cldaza@universia.net.co Trabajo de Grado para

31

11 +++= kkkk xxx λλ

)(xfΛ

= )()( 11 +++ kkkk xfxf λλ donde 0,,1 11 ≥=+ ++ kkkk λλλλ . En general para cualquier x � [a, b] se puede escribir

�=

=r

kkk xx

0

λ y �=

Λ=

r

kkk xfxf

0

)()( λ

(10)

donde 10

=�=

r

kiλ y rkk ,,1,00 �=≥λ

con la condición de que máximo dos kλ sean positivos, en cuyo caso deben ser adyacentes. Empleando (10) en el problema (6) se obtiene un problema aproximado de naturaleza lineal el cual tiene la siguiente representación:

Maximizar z = ��= =

n

iiki

r

kik xf

1 0

)(λ

Sujeto a

mjbxg jikji

r

kik

n

i

,...,1)(01

=><

��==

λ (11)

nir

kik ,,11

0

�==�=

λ

nirkik ,,1,,,0,0 �� ==≥λ con la condición de que para cada i máximo dos ikλ sean positivos, en cuyo caso deben ser adyacentes. Este problema es casi lineal, no lo es por la propiedad de adyacencia que se acaba de mencionar, en consecuencia, se resuelve (11) por el método símplex (o algún método equivalente) y se verifica que la solución satisfaga dicha propiedad. Ejemplo 18: Dado el problema separable

Maximizar 22112 xxxz +−=

Sujeto a 632 2

221 ≤+ xx

0, 21 ≥xx constrúyase y resuélvase el problema lineal aproximado.

Solución: en primer lugar se separan la función objetivo y la restricción así:

Page 32: Introducción a la Programación Lineal - Fundación ... · PDF fileIntroducción a la Programación Lineal Claudia Liliana Daza Garzón cldaza@universia.net.co Trabajo de Grado para

32

21111 2)( xxxf −=

222 )( xxf = 2

111 2)( xxg = 2

222 3)( xxg = es necesario también encontrar los intervalos de definición de 1x y 2x . De la restricción

632 22

21 ≤+ xx

se tiene, por una parte

236 2

21

xx

−≤

de donde 036 2

2 ≥− x o 4142.122 ≈≤x . De manera análoga

326 2

12

xx

−≤

de donde 026 2

1 ≥− x o 7320.131 ≈≤x . Por comodidad se toman los rangos

.2,120 =≤≤ ixi Para r = 8 se tiene la tabla 4

k Xk f1(x1) f2(x2) g1(x1) g2(x2) 0 0 0 0 0 0 1 0.25 0.4375 0.25 0.125 0.1875 2 0.5 0.75 0.5 0.5 0.75 3 0.75 0.9375 0.75 1.125 1.6875 4 1 1 1 2 3 5 1.25 0.9375 1.25 3.125 4.6875 6 1.5 0.75 1.5 4.5 6.75 7 1.75 0.4375 1.75 6.125 9.1875 8 2 0 2 8 12

Tabla 4

con lo cual (11) para este caso particular asume la forma: Maximizar

282726252423222120

181716151413121110

275.15.125.175.05.025.00

04375.075.09375.09375.075.04375.00

λλλλλλλλλλλλλλλλλλ

+++++++++++++++++=z

Sujeto a

6121875.975.66875.436875.175.01875.00

8125.65.4125.32125.15.0125.00

282726252423222120

181716151413121110

≤+++++++++++++++++

λλλλλλλλλλλλλλλλλλ

Page 33: Introducción a la Programación Lineal - Fundación ... · PDF fileIntroducción a la Programación Lineal Claudia Liliana Daza Garzón cldaza@universia.net.co Trabajo de Grado para

33

1181716151413121110 =++++++++ λλλλλλλλλ

1282726252423222120 =++++++++ λλλλλλλλλ Para resolver este problema se han renombrado las variables de la siguiente manera

2817209188100 ,,,,, λλλλ ==== xxxx �� La salida de MPL con la solución de este problema es:

se tiene entonces que 0909.09091.0,1 625213 === λλλ y

se ve que la solución satisface la propiedad de adyacencia. De acuerdo con (10) se tiene entonces que la solución aproximada es:

272725.15.10909.025.19091.075.075.01 21 =×+×==×= xyx con

2102.2=z .

El problema también puede ser resuelto por un método gráfico análogo al empleado en Programación Lineal. En primer lugar se grafica la región factible (conjunto de puntos que satisfacen simultáneamente todas las restricciones), luego se grafican las diversas curvas que se obtienen al asignar algunos valores a la función objetivo y, finalmente, observando el comportamiento de estas últimas se determina la solución. La figura 15 ilustra el procedimiento.

Page 34: Introducción a la Programación Lineal - Fundación ... · PDF fileIntroducción a la Programación Lineal Claudia Liliana Daza Garzón cldaza@universia.net.co Trabajo de Grado para

34

Figura 15 Se observa que a medida que z va tomando valores cada vez más grandes la gráfica de la función objetivo se desplaza hacia arriba, por lo tanto el punto óptimo es el último punto de contacto que tiene la región factible con la función objetivo en su camino de ascenso, este punto cumple la condición de que en él las dos gráficas – la de la función objetivo que asciende y la que delimita la región factible – son tangentes. Aplicando lo aprendido en la sección dedicada a los Multiplicadores de Lagrange se tiene que en el punto de tangencia las dos funciones deben tener la misma derivada. Despejando 2x en la función objetivo y en la restricción se tiene

2112 2 xxzx +−= y

326 2

12

xx

−=

entonces

11

2 22 xdxdx

+−= y 21

1

1

2

263

2

x

xdxdx

−−

=

igualando las derivadas se obtiene la ecuación

0263

222

21

11 =

−++−

x

xx

aplicando el método de Newton con un valor inicial de 1 se obtiene

1x = 0.7905721355 de donde

2x = 1.258304599 y z = 2.214444568

La tabla 4 contiene una comparación entre la solución del problema lineal aproximado y la solución del problema original

Page 35: Introducción a la Programación Lineal - Fundación ... · PDF fileIntroducción a la Programación Lineal Claudia Liliana Daza Garzón cldaza@universia.net.co Trabajo de Grado para

35

Tabla 4

La precisión del método puede mejorarse resolviendo dos problemas consecutivos, el primero con menos divisiones en los intervalos de definición de las variables (una aproximación no tan refinada) con el objetivo de determinar una aproximación al óptimo. El segundo, con divisiones más finas, en un entorno del punto encontrado en el primer problema, incluyendo las restricciones necesarias.

Algoritmos Genéticos: un cambio de paradigma

A finales de los 50 y comienzos de los 60 del siglo pasado, biólogos evolutivos, en un intento de simular los mecanismos de la evolución biológica, programaron los primeros algoritmos que hoy se conocen como genéticos. Sin embargo, en un primer momento no pensaron que estas técnicas podrían emplearse en la solución de problemas de búsqueda u optimización. En 1965 surgió un desarrollo más exitoso, cuando Ingo Rechenberg, entonces de la Universidad Técnica de Berlín, introdujo una técnica que llamó estrategia evolutiva. En esta técnica no había población ni cruzamiento; un padre mutaba para producir un descendiente, y se conservaba el mejor de los dos, convirtiéndose en el padre de la siguiente ronda de mutación. En 1962 John Holland sentó las bases para estudios posteriores sobre sistemas adaptativos, también fue el primero en proponer explícitamente el cruzamiento y otros operadores de recombinación. Sin embargo, el trabajo fundamental en el campo de los algoritmos genéticos apareció en 1975, con la publicación del libro “Adaptación en Sistemas Naturales y Artificiales”. Basado en investigaciones y publicaciones anteriores del propio Holland y de colegas de la Universidad de Michigan, este libro fue el primero en presentar sistemática y rigurosamente el concepto de sistemas digitales adaptativos utilizando la mutación, la selección y el cruzamiento.

Un algoritmo genético (AG) es una técnica de programación que imita a la evolución biológica como estrategia para resolver problemas. Dado un problema específico a resolver, la entrada del AG es un conjunto de soluciones potenciales a ese problema, codificadas de alguna manera, y una función de aptitud que permite evaluar cuantitativamente a cada candidata. Estas candidatas pueden ser soluciones que ya se sabe que funcionan, con el objetivo de que el AG las mejore, pero también pueden haber sido generadas de manera aleatoria.

Luego el AG evalúa cada candidata de acuerdo con la función de aptitud. En un conjunto de candidatas generadas de manera aleatoria, muchas tendrán desempeños poco satisfactorios y serán eliminadas. Sin embargo, por puro azar, unas pocas pueden ser prometedoras.

Page 36: Introducción a la Programación Lineal - Fundación ... · PDF fileIntroducción a la Programación Lineal Claudia Liliana Daza Garzón cldaza@universia.net.co Trabajo de Grado para

36

Estas candidatas prometedoras se conservan y se les permite reproducirse. También se realizan copias de ellas, pero las copias no son perfectas; se introducen cambios aleatorios durante el proceso de copia (mutaciones). Esta descendencia constituye un nuevo conjunto de soluciones candidatas que se convierte en una nueva entrada al AG. Tras sucesivas generaciones (generalmente una gran cantidad) este proceso evolutivo debe converger hacia una solución óptima (hasta el momento esta última afirmación es heurística).

Los conceptos de codificación, cruzamiento y mutación, así como algunas de las ventajas de los AG serán discutidos de manera simultánea con la solución de un ejemplo.

Ejemplo 19 Maximizar

)20()4(5.21),( 221121 xsenxxsenxxxf ππ ++=

Sujeto a 1.123 1 ≤≤− x 8.51.4 2 ≤≤ x Solución: en primer lugar se hace una gráfica de la función objetivo

Figura 15

En la figura 15 puede apreciarse la gran cantidad de máximos y mínimos relativos que presenta la función en su dominio. El procedimiento clásico nos lleva a igualar las derivadas parciales a cero, con lo cual se tiene el sistema no lineal

0)4()4cos(4 =+ xsenxx πππ

0)20()20cos(20 =+ xsenxx πππ

Page 37: Introducción a la Programación Lineal - Fundación ... · PDF fileIntroducción a la Programación Lineal Claudia Liliana Daza Garzón cldaza@universia.net.co Trabajo de Grado para

37

La tabla 5 contiene los resultados obtenidos al emplear el método de Newton así como los diferentes puntos iniciales usados en cada conjunto de iteraciones

Punto inicial (x, y) Solución encontrada Clase de P. Est -3 4.1 -0.390978477 1.025247045 Fuera del dominio

-2.5 4.5 -0.634922044 1.125225098 Fuera del dominio -2.5 4.7 -0.634922044 1.175215524 Fuera del dominio

0 5 0 0.625404935 Fuera del dominio 5 5 0.634922044 0.625404935 Fuera del dominio

12.1 5.8 12.12552224 0.725349159 Fuera del dominio Tabla 5

A pesar de que la gráfica indica la existencia de una gran cantidad de óptimos en el dominio, para todos los puntos iniciales dados el método de Newton converge en puntos que están por fuera del dominio. Ahora se mostrará la manera de emplear un algoritmo genético para resolver el problema. Codificación: la codificación se hace mediante numeración binaria (cadenas de bits). Para el intervalo [a, b] con una precisión de cinco cifras decimales, se tiene un total de

510)( ×− ab puntos a codificar. Para ello se determina m tal que

1210)(2 51 −≤×−<− mm ab

Lo cual puede hacerse fácilmente empleando logaritmos en base 2. Si x � [a, b] entonces x puede escribirse como x = a + λ(b - a) donde 0 ≤ λ ≤ 1 (combinación convexa). El mayor valor decimal que puede tener una cadena de n bits es 2n – 1, por lo tanto 0 ≤ valor decimal(cadena n bits) / (2n – 1) ≤ 1, entonces, para cualquier cadena de n bits, se tiene que el número

x = )(12

)(_ab

bitsncadenadecimalvalora

n−

−+

está en [a, b]. De esta manera se establece una relación entre las cadenas de n bits y el intervalo [a, b]. En el ejemplo, para el intervalo de x1 se tiene

000.15110))3(1.12( 5 =×−−

204189.17)000.151(log2 =

entonces 12000.1512 1817 −≤< con lo cual se necesitarán 18 bits para codificar el intervalo [-3, 12.1]. De manera análoga, para el intervalo [4.1, 5.8] serán necesarios 15 bits. Se emplearán cadenas de 33 bits, los 18 primeros para x1 y los 15 restantes para x2.

Page 38: Introducción a la Programación Lineal - Fundación ... · PDF fileIntroducción a la Programación Lineal Claudia Liliana Daza Garzón cldaza@universia.net.co Trabajo de Grado para

38

Figura 16

Población inicial: se empleará una población inicial de 10 individuos generada de manera aleatoria

1. 1 1 1 0 0 0 1 1 1 0 0 0 0 1 1 1 1 1 1 1 0 1 0 1 1 1 0 0 1 1 0 1 1 2. 0 1 0 1 0 1 1 0 1 0 1 0 0 1 1 0 1 0 0 0 1 1 0 0 1 0 0 0 0 1 1 0 0 3. 0 0 0 1 1 1 1 0 0 1 0 1 1 1 0 1 1 1 1 0 0 0 1 0 1 1 0 1 0 0 1 0 1 4. 1 1 1 0 0 1 1 1 1 0 1 0 1 0 0 0 0 1 0 0 1 0 0 1 1 1 0 1 0 0 0 1 1 5. 0 1 0 0 0 0 0 0 0 1 1 1 1 0 1 1 1 0 0 1 1 0 1 1 1 1 0 1 1 0 1 1 0 6. 0 0 1 1 0 1 0 0 1 0 0 0 0 1 1 0 0 0 1 0 1 1 0 0 0 0 0 1 0 0 0 1 0 7. 0 0 0 0 0 1 1 0 1 0 1 1 1 0 1 1 1 1 0 0 0 0 0 0 1 1 0 0 1 0 0 1 0 8. 1 0 0 1 0 0 1 1 0 0 1 1 1 0 1 1 1 0 1 0 0 0 0 0 0 0 1 1 0 1 1 0 1 9. 1 0 0 0 0 0 1 1 1 0 0 0 1 1 0 1 1 0 0 1 1 1 0 0 1 1 1 0 0 0 0 1 1 10. 1 0 0 0 0 1 0 0 1 1 0 1 1 1 1 1 1 0 0 0 1 0 1 0 1 1 0 1 0 1 1 1 1

Cada cadena de 33 bits es descompuesta en dos, una de 18 y otra de 15 bits respectivamente y para cada una de ellas se calcula su valor decimal.

1. 232991 27547 2. 88730 6412 3. 31095 17829 4. 237217 5027 5. 66030 14262 6. 53784 22562 7. 6895 402 8. 150766 16493 9. 134710 14787 10. 136062 5551

Mediante la fórmula

x = )(12

)(_ab

bitsncadenadecimalvalora

n−

−+

cada número de la lista anterior es llevado al correspondiente intervalo de definición. Se obtiene:

1. 10.4208 5.52918 2. 2.11104 4.43266 3. -1.20886 5.02499 4. 10.6642 4.36081

Page 39: Introducción a la Programación Lineal - Fundación ... · PDF fileIntroducción a la Programación Lineal Claudia Liliana Daza Garzón cldaza@universia.net.co Trabajo de Grado para

39

5. 0.80347 4.83993 6. 0.098074 5.27055 7. -2.60283 4.12086 8. 5.68445 4.95568 9. 4.75959 4.86717 10. 4.83746 4.38799

Evaluación: la función objetivo es evaluada en cada pareja para medir su desempeño.

1. f(10.4208 , 5.52918 ) = 18.0964 2. f(2.11104 , 4.43266 ) = 27.5072 3. f(-1.20886 , 5.02499 ) = 27.1225 4. f(10.6642 , 4.36081 ) = 28.1568 5. f(0.80347 , 4.83993 ) = 23.8611 6. f(0.098074 , 5.27055 ) = 16.5267 7. f(-2.60283 , 4.12086 ) = 27.9845 8. f(5.68445 , 4.95568 ) = 23.9393 9. f(4.75959 , 4.86717 ) = 16.638 10. f(4.83746 , 4.38799 ) = 14.1858

Selección: la aptitud de un individuo se determina de acuerdo a su comportamiento en la función objetivo. Si se representa el desempeño de acuerdo a la longitud de un segmento de recta se tiene, para el caso de 3 individuos

Figura 17

luego se escalan las cantidades para que la suma sea 1.

Figura 18

Se colocan los segmentos, uno a continuación del otro, de manera que llenen el intervalo [0, 1]. Acto seguido, se generan 10 números aleatorios en [0, 1], el individuo al que pertenece el intervalo en el cual “cayó” el número generado de manera aleatoria pasa a la siguiente generación.

Page 40: Introducción a la Programación Lineal - Fundación ... · PDF fileIntroducción a la Programación Lineal Claudia Liliana Daza Garzón cldaza@universia.net.co Trabajo de Grado para

40

Figura 19

Para el caso de la figura 19 el individuo elegido para pasar a la siguiente generación es b.

Volviendo al ejemplo se tiene que la suma total de las imágenes es 224.018 y para cada individuo su desempeño escalado (dividido por 224.018) es

1. 0.0807811 2. 0.12279 3. 0.121073 4. 0.12569 5. 0.106514 6. 0.0737738 7. 0.124921 8. 0.106863 9. 0.0742706 10. 0.0633242

Ahora se coloca un intervalo a continuación del otro sumando sus longitudes

1. 0.0807811 2. 0.203571 3. 0.324644 4. 0.450334 5. 0.556848 6. 0.630622 7. 0.755542 8. 0.862405 9. 0.936676 10. 1

Se generan 10 números aleatorios y de acuerdo a su valor se indica que individuo pasa a la siguiente generación.

1. 0.353679 4 2. 0.562273 6 3. 0.911527 9 4. 0.865902 9 5. 0.714621 7 6. 0.378155 4 7. 0.222755 3

Page 41: Introducción a la Programación Lineal - Fundación ... · PDF fileIntroducción a la Programación Lineal Claudia Liliana Daza Garzón cldaza@universia.net.co Trabajo de Grado para

41

8. 0.290262 3 9. 0.462966 5 10. 0.781793 8

Se tiene la nueva población

1. 1 1 1 0 0 1 1 1 1 0 1 0 1 0 0 0 0 1 0 0 1 0 0 1 1 1 0 1 0 0 0 1 1 2. 0 0 1 1 0 1 0 0 1 0 0 0 0 1 1 0 0 0 1 0 1 1 0 0 0 0 0 1 0 0 0 1 0 3. 1 0 0 0 0 0 1 1 1 0 0 0 1 1 0 1 1 0 0 1 1 1 0 0 1 1 1 0 0 0 0 1 1 4. 1 0 0 0 0 0 1 1 1 0 0 0 1 1 0 1 1 0 0 1 1 1 0 0 1 1 1 0 0 0 0 1 1 5. 0 0 0 0 0 1 1 0 1 0 1 1 1 0 1 1 1 1 0 0 0 0 0 0 1 1 0 0 1 0 0 1 0 6. 1 1 1 0 0 1 1 1 1 0 1 0 1 0 0 0 0 1 0 0 1 0 0 1 1 1 0 1 0 0 0 1 1 7. 0 0 0 1 1 1 1 0 0 1 0 1 1 1 0 1 1 1 1 0 0 0 1 0 1 1 0 1 0 0 1 0 1 8. 0 0 0 1 1 1 1 0 0 1 0 1 1 1 0 1 1 1 1 0 0 0 1 0 1 1 0 1 0 0 1 0 1 9. 0 1 0 0 0 0 0 0 0 1 1 1 1 0 1 1 1 0 0 1 1 0 1 1 1 1 0 1 1 0 1 1 0 10. 1 0 0 1 0 0 1 1 0 0 1 1 1 0 1 1 1 0 1 0 0 0 0 0 0 0 1 1 0 1 1 0 1

Cruce: por cada individuo se genera un número aleatorio en [0, 1], si el resultado es menor que 0.25 (probabilidad de cruce) el individuo es elegido para ser cruzado. Si se obtiene un número impar de padres se repite la elección. Por este método fueron elegidas para ser cruzadas las parejas 3 y 7, 8 y 10. El mecanismo de cruce se ilustra en la figura 20.

Figura 20

Se determina de manera aleatoria un punto de corte y a partir de él las cadenas padres intercambian sus bits para obtener las cadenas hijos. Los hijos reemplazan a los padres en la población. En este caso se seleccionaron los puntos de corte 5 y 11.

Población luego del cruce de 3 con 7 (punto de corte 5) y 8 con 10 (punto de corte 11).

1. 1 1 1 0 0 1 1 1 1 0 1 0 1 0 0 0 0 1 0 0 1 0 0 1 1 1 0 1 0 0 0 1 1 2. 0 0 1 1 0 1 0 0 1 0 0 0 0 1 1 0 0 0 1 0 1 1 0 0 0 0 0 1 0 0 0 1 0 3. 1 0 0 0 0 0 1 0 0 1 0 1 1 1 0 1 1 1 1 0 0 0 1 0 1 1 0 1 0 0 1 0 1 4. 1 0 0 0 0 0 1 1 1 0 0 0 1 1 0 1 1 0 0 1 1 1 0 0 1 1 1 0 0 0 0 1 1 5. 0 0 0 0 0 1 1 0 1 0 1 1 1 0 1 1 1 1 0 0 0 0 0 0 1 1 0 0 1 0 0 1 0 6. 1 1 1 0 0 1 1 1 1 0 1 0 1 0 0 0 0 1 0 0 1 0 0 1 1 1 0 1 0 0 0 1 1 7. 0 0 0 1 1 1 1 1 1 0 0 0 1 1 0 1 1 0 0 1 1 1 0 0 1 1 1 0 0 0 0 1 1

Page 42: Introducción a la Programación Lineal - Fundación ... · PDF fileIntroducción a la Programación Lineal Claudia Liliana Daza Garzón cldaza@universia.net.co Trabajo de Grado para

42

8. 0 0 0 1 1 1 1 0 0 1 0 1 1 0 1 1 1 0 1 0 0 0 0 0 0 0 1 1 0 1 1 0 1 9. 0 1 0 0 0 0 0 0 0 1 1 1 1 0 1 1 1 0 0 1 1 0 1 1 1 1 0 1 1 0 1 1 0 10. 1 0 0 1 0 0 1 1 0 0 1 1 1 1 0 1 1 1 1 0 0 0 1 0 1 1 0 1 0 0 1 0 1

Mutación: por cada gen (bit) se genera un número aleatorio, si resulta inferior a 0.01 (probabilidad de mutación) el gen muta. El mecanismo de mutación se ilustra en la figura 21

Figura 19

y consiste simplemente en trocar el bit elegido de 0 a 1 o viceversa (puede hacerse simplemente aplicando la fórmula gen_nuevo = 1-gen_original). En este caso fue elegido para mutar el gen 6 del cromosoma (individuo) 2. Población luego de la mutación

1. 1 1 1 0 0 1 1 1 1 0 1 0 1 0 0 0 0 1 0 0 1 0 0 1 1 1 0 1 0 0 0 1 1 2. 0 0 1 1 0 0 0 0 1 0 0 0 0 1 1 0 0 0 1 0 1 1 0 0 0 0 0 1 0 0 0 1 0 3. 1 0 0 0 0 0 1 0 0 1 0 1 1 1 0 1 1 1 1 0 0 0 1 0 1 1 0 1 0 0 1 0 1 4. 1 0 0 0 0 0 1 1 1 0 0 0 1 1 0 1 1 0 0 1 1 1 0 0 1 1 1 0 0 0 0 1 1 5. 0 0 0 0 0 1 1 0 1 0 1 1 1 0 1 1 1 1 0 0 0 0 0 0 1 1 0 0 1 0 0 1 0 6. 1 1 1 0 0 1 1 1 1 0 1 0 1 0 0 0 0 1 0 0 1 0 0 1 1 1 0 1 0 0 0 1 1 7. 0 0 0 1 1 1 1 1 1 0 0 0 1 1 0 1 1 0 0 1 1 1 0 0 1 1 1 0 0 0 0 1 1 8. 0 0 0 1 1 1 1 0 0 1 0 1 1 0 1 1 1 0 1 0 0 0 0 0 0 0 1 1 0 1 1 0 1 9. 0 1 0 0 0 0 0 0 0 1 1 1 1 0 1 1 1 0 0 1 1 0 1 1 1 1 0 1 1 0 1 1 0 10. 1 0 0 1 0 0 1 1 0 0 1 1 1 1 0 1 1 1 1 0 0 0 1 0 1 1 0 1 0 0 1 0 1

Con la obtención de esta nueva generación termina una iteración del algoritmo. Los nuevos valores (convertidos al intervalo de definición) y sus respectivas imágenes por la función objetivo son:

1. f(10.6648 , 4.36109 )= 28.0581 2. f(-0.137743 , 5.27078 )= 16.5494 3. f(4.68953 , 5.02526 )= 29.755 4. f(4.7602 , 4.8674 )= 16.569 5. f(-2.60279 , 4.12111 )= 28.0005 6. f(10.6642 , 4.36108 )= 28.0984 7. f(-1.13902 , 4.86738 )= 18.3006 8. f(-1.20905 , 4.95594 )= 20.2886 9. f(0.803744 , 4.84019 )= 23.7965 10. f(5.68524 , 5.02522 )= 30.6572

Se ha ejecutado el algoritmo 3 veces y en cada una de ellas se han realizado 1000 generaciones (iteraciones), el resultado se muestra en la tabla 5

Page 43: Introducción a la Programación Lineal - Fundación ... · PDF fileIntroducción a la Programación Lineal Claudia Liliana Daza Garzón cldaza@universia.net.co Trabajo de Grado para

43

Obtenido en x y f(x, y) la iteración

11.6302 5.7246 38.8278 381 11.629 5.52438 38.6348 426

11.6273 5.72797 38.7508 490 se ve que el punto óptimo se localiza alrededor de (11.6, 5.7) empleando este punto para iniciar el método de Newton se obtiene que el algoritmo converge al punto (11.62554470, 1.425177726) el cual está fuera del dominio. Sin embargo, empleando el punto inicial (11.6, 5.72) el algoritmo converge a (11.62554470, 5.725044244) y se tiene que f (11.62554470, 5.725044244) = 38.85029448. Este hecho parece explicar cual es la razón por la cual, a pesar de que la gráfica revela la existencia de una gran cantidad de óptimos, el método de Newton converge a puntos por fuera del dominio, y esta es que el valor inicial debe estar “muy cerca” del óptimo. Hemos encontrado así el máximo global combinando el algoritmo genético con la teoría clásica. Las probabilidades de cruce y mutación no son restrictivas, al resolver un problema en particular puede ejecutarse varias veces el algoritmo, variando estos parámetros y observando los resultados.

Características de los algoritmos genéticos

1. Son independientes del problema particular que se esté resolviendo. 2. El proceso de mutación evita que caigan en mínimos locales. 3. Son de fácil programación. 4. Solo pueden emplearse cuando la optimización se restringe a un área concreta.

Page 44: Introducción a la Programación Lineal - Fundación ... · PDF fileIntroducción a la Programación Lineal Claudia Liliana Daza Garzón cldaza@universia.net.co Trabajo de Grado para

44

Conclusiones

Durante el desarrollo del trabajo fue surgiendo, de manera natural, la necesidad de emplear hojas de cálculo, paquetes matemáticos y lenguajes de programación, para lograr aplicar la teoría desarrollada. Este hecho permite concluir que la PNL está compuesta, fundamentalmente, de dos elementos complementarios: el análisis matemático y la implementación de algoritmos en herramientas informáticas. La carencia de uno de estos elementos, así este acompañada de una abundante dosis del otro, tendrá como consecuencia el fracaso de todo intento de lograr resultados fructíferos. Otro elemento a tener en cuenta es el hecho de que los textos de cálculo, y los cursos que con base en ellos se dictan, en un afán pedagógico, emplean problemas artificiales, esto es, problemas que no presentan dificultad alguna en el momento de aplicar la teoría para resolverlos. En el desarrollo del trabajo se ha hecho evidente que tales problemas artificiales son la excepción, y no la regla, en las aplicaciones reales. Este punto es fundamental, pues el enfoque pedagógico encierra un peligro soterrado: que quien aprende con él adquiere la certeza de estar dotado con las herramientas suficientes para enfrentar cualquier tipo de problema. Esta certidumbre lo aleja de ver la necesidad de, en el momento dado, completar por si mismo la teoría para adaptarla a una situación en particular o en otras palabras, lo aleja de considerar la posibilidad de convertirse en investigador. Karl Popper en alguna ocasión afirmó que: “Los grandes progresos solo tienen lugar cuando confluyen las disciplinas” esta afirmación motiva llamar la atención sobre otra gran carencia de la literatura sobre PNL: a diferencia de la forma como es tratada la PL en la cual se muestran situaciones que al ser modeladas conducen a problemas lineales, los textos de PNL se limitan, en la mayoría de los casos, a proponer la optimización de una función objetivo en presencia de algunas restricciones sin previamente mostrar la realidad cuya modelación condujo a ese planteamiento. Algunos métodos, como el del gradiente y el de Newton, necesitan comenzar a partir de un punto inicial. Un conocimiento mas general sobre la realidad modelada permitiría poder inferir la región en la cual debe ubicarse dicho punto inicial así como sacar conclusiones una vez obtenida la solución matemática. Resumiendo: la PNL es un área fascinante, en la cual hay mucho por hacer. Los requisitos para trabajar de manera exitosa en ella incluyen: conocimientos no superficiales de análisis matemático y de algoritmia; dominio de herramientas informáticas; además del conocimiento del área en la cual surgen los problemas de optimización.

Page 45: Introducción a la Programación Lineal - Fundación ... · PDF fileIntroducción a la Programación Lineal Claudia Liliana Daza Garzón cldaza@universia.net.co Trabajo de Grado para

45

Bibliografía

1. [All88] Allen W, Análisis Numérico, Naucalpan de Juárez, Edo. de Méjico: Prentice Hall (1988). 2. [Apo77] Apostol Tom, Análisis matemático, Barcelona España: Reverté (1977). 3. [Apo86] Apostol Tom, Calculus, Barcelona España: Reverté (1986). 4. [Arm85]Armitano Orlando, Programación no lineal, Méjico, D.F.: Limusa

(1985). 5. [Bur98] Burden Richard, Análisis Numérico, Méjico, D.F.: Thomsom (1998). 6. [Pra00] Prawda Juan, Métodos y modelos de Investigación de Operaciones, Méjico, D.F.: Limusa (2000). 7. [Tah95] Taha Hamdy, Investigación de Operaciones, Méjico, D.F.: Alfaomega (1995).