Sei sulla pagina 1di 75

OPTIMIZACIN PARA INGENIEROS CON HERRAMIENTAS INFORMTICAS

Versin 1.0
Ing. M.Sc. Antonio Medrano

3 de septiembre de 2013

ndice general
I. ASPECTOS BSICOS
1. INTRODUCCION 2. CONCEPTOS BSICOS DE OPTIMIZACIN
2.1. 2.2. Tipos de Optimizacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Desarrollo de un Modelo para Optimizacin . . . . . . . . . . . . . . . . . . . . .

5
6 8
8 9

3. HERRAMIENTAS INFORMTICAS
3.1. 3.2. Introduccin al Software Libre de Cdigo Abierto . . . . . . . . . . . . . . . . . . Software a utilizar 3.2.1. 3.2.2. 3.2.3. 3.2.4. 3.2.5. 3.2.6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Maxima . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OpenOce Calc/LibreOce Calc . . . . . . . . . . . . . . . . . . . . . . . SmathStudio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Sage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Octave . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Scilab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

12
12 13 13 14 15 16 16 18

II. OPTIMIZACIN APLICADA


4. OPTIMIZACIN NO LINEAL NO RESTRINGIDA EN UNA VARIABLE
4.1. 4.2. 4.3. Desarrollo de un modelo de Optimizacin . . . . . . . . . . . . . . . . . . . . . . Optimizacin No Lineal en Maxima . . . . . . . . . . . . . . . . . . . . . . . . . . Optimizacin No Lineal en Sage . . . . . . . . . . . . . . . . . . . . . . . . . . . .

20
21
21 22 27

5. OPTIMIZACIN LINEAL RESTRINGIDA EN VARIAS VARIABLES


5.1. Programacin Lineal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.1.1. 5.1.2. 5.2. 5.2.1. 5.2.2. 5.2.3. 5.2.4. 5.2.5. Programacin Lineal en Maxima . . . . . . . . . . . . . . . . . . . . . . . Programacin Lineal en OpenOce/LibreOce Calc . . . . . . . . . . . . Modelo de Transporte Modelo de Asignacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

32
32 35 38 44 46 51 53 58 62

Modelos de Redes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Modelo de Ruta Ms Corta Modelo de Flujo Mximo

Arbol Mnimo de Expansin . . . . . . . . . . . . . . . . . . . . . . . . . .

6. OPTIMIZACIN NO LINEAL NO RESTRINGIDA EN VARIAS VARIABLES 7. OPTIMIZACIN NO LINEAL RESTRINGIDA ENVARIAS VARIABLES
7.1. 7.2. RESTRICCIONES DE IGUALDAD . . . . . . . . . . . . . . . . . . . . . . . . . RESTRICCIONES DE DESIGUALDAD . . . . . . . . . . . . . . . . . . . . . . .

67 71
71 73

8. MTODOS HEURSTICOS PARA OPTIMIZACIN

74

ndice general

III. MODELOS DE LINEAS DE ESPERA

75

ndice de guras
1.1. 2.1. 2.2. 3.1. 3.2. 3.3. 3.4. 3.5. 3.6. 5.1. 5.2. 5.3. 5.4. 5.5. Mapa Conceptual del Contenido . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 9 11 14 15 16 17 18 19 45 45 46 53 63 Proceso de Solucin de Problemas de Optimizacin . . . . . . . . . . . . . . . . . Proceso para el desarrollo de un modelo de optimizacin . . . . . . . . . . . . . . Imagenes de Maxima . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Solver de Calc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Imagen de SmathStudio Imagenes de Octave . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Imagenes de Sage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Imagenes de Scilab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ejemplos de Redes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Tipos de Grafos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ejemplo de una red con pesos (distancia) y sus respectivas matrices Ruta Mas Corta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Ejemplos de rbol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Parte I.

ASPECTOS BSICOS

1. INTRODUCCION
La idea de desarrollar estas notas surgi hace algunos aos cuando me fu solicitado por primera vez impartir el curso denominado Algebra y Tecnologa Informtica en la Maestra en Ingeniera Vial de la Universidad de San Carlos de Guatemala. El objetivo de ese curso, como me fu planteado en ese momento, era que los estudiantes de maestra aprendieran a utilizar herramientas informticas para la solucin de problemas matemticos complejos. Inicialmente se me solicit que el curso se orientara al uso del programa Matlab

1 como la

base del curso. Matlab es reconocido a nivel mudial como la herramienta de clculo matemtico mas utilizada en ciencia e ingeniera. Sin embargo, por tratarse de un programa de tipo comercial, su uso implica el pago de una licencia por un perodo de tiempo limitado. Esto trae serias desventajas ya que para desarrollar el curso se requiere un laboratorio equipado con el programa y las respectivas licencias, lo cual presentaba un obstculo, tanto para impartir las clases magistrales como para que los estudiantes llevaran a cabo las respectivas prcticas de aplicacin para familiarizarse con el aplicativo. Otro aspecto que vale la pena mencionar, es algo que he podido observar y comprobar a travs de mi propia experiencia: Para aprender a utilizar una herramienta, del tipo que sea (mecnica, tecnolgica u otro tipo) es necesario tener un propsito u objetivo denido para su uso. El proceso de aprendizaje de los procedimientos y mtodos para el uso de aplicaciones informticas, cuando no se d dentro de un contexto especco, es frgil y poco ecaz, ya que los estudiantes aprenden el cmo pero no el para qu, por lo que mas temprano que tarde los conocimientos caen en el olvido. Muchos de los estudiantes que cursan la maestra son profesionales que culminaron sus estudios a nivel de licenciatura hace ya varios aos y mucho de sus conceptos matemticos se encuentran en desuso lo que diculta an mas el proceso, ya que en muchos casos hay que volver a visitar temas bsicos en las distintas reas como lgebra, clculo diferencial e integral, algebra matricial, etc. Para subsanar la primera dicultad, relacionada con el uso de programas comerciales que requieren licencia, he optado en los ltimos aos por el uso de aplicaciones que pertenecen a la corriente del Software Libre (FOSS, Free and Open Source Software, por sus siglas en ingls). Dentro de esta categora se encuentra un conjunto de herramientas que poseen todas o casi todas las caractersticas requeridas para cumplir el objetivo del curso, que son igual o en algunos casos ms poderosas que el software comercial y que tienen la enorme ventaja de que pueden obtenerse sin ningn tipo de restriccin para su instalacin y uso, en forma gratuita y por tiempo indenido. Otro aspecto que considero importante es el no restringir el curso a una sola aplicacin, puesto que eso limita al estudiante al uso del software que conoce, lo que ocasiona que al encontrarse en el ejercicio profesional, si dicho progrma no est disponible y ms an si se trata de un software comercial cuyo costo de licenciamiento es elevado, no pueda tener las herramientas necesarias para la solucin de problemas. Es por tal razn que en este curso se presentan varias herramientas que pueden usarse en distintas situaciones, algunas en ms de una situacin, lo que abre las posibilidades de tener un arsenal bien equipado para afrontar cualquier problema matemtico. En lo que respecta al segundo inconveniente, el del propsito denido, opt por un campo de suma importancia en todas las ramas de ingeniera, pero que lamentablemente no siempre est includo en las redes de estudio de algunas ingenieras: la optimizacin. El objetivo de todo ingeniero, independientemente de su rea de especializacin, es resolver problemas haciendo uso ptimo de los recursos a su disposicin, por lo que este tema debera ser de inclusin obligada en

http://www.mathworks.com/products/matlab/

1. INTRODUCCION

Figura 1.1.: Mapa Conceptual del Contenido

todos los programas acadmicos de ingeniera. En el caso de la Ingeniera Civil, que es de donde provienen la mayora de profesionales que cursan la Maestra en Ingeniera Vial, este tema no se incluye en su malla curricular. Combinando entonces un propsito claramente denido con un conjunto de herramientas disponibles y aptas para tal n, surge el curso que ms apropiadamente se denomina Optimizacin para Ingenieros con Herramientas Informticas y esta compilacin de apuntes que tienen como propsito servir como gua y referencia para los estudiantes, debido a la poca disponibilidad de material sobre el tema especco. Cabe aclarar que el objetivo del curso y por ende de estos apuntes, es presentar al estudiante y al profesional un enfoque prctico y aplicado de las metodologas discutidas, en vez de profundizar en el aspecto terico y el rigor matemtico de los temas ya que sobre eso existe suciente material de muy buena calidad y que se encuentra disponible, por lo que se pide a los lectores mantener esto en mente al utilizar los apuntes. Estas notas no pretenden servir como libro de texto, por lo que si se requiere profundizar en la parte terica y conceptual de los mtodos y las herramientas aqu presentadas, en la seccin de Bibliografa se encuentra una lista de referencias que pueden ser consultadas.

2. CONCEPTOS BSICOS DE OPTIMIZACIN


Para iniciar, es necesario denir y delimitar el campo de accin sobre el cual se desarrollar el curso: la optimizacin. Al enfrentarse al proceso de solucin de problemas, los ingenieros se encuentran generalmente con una o varias soluciones al mismo, sin embargo, la solucin ptima en un sentido muy general es aquella que es la mejor entre todas las soluciones posibles. La optimizacin en ingeniera es una mezcla de ciencia y arte. La existencia de un conjunto de algoritmos de optimizacin, es decir, procedimientos ya denidos, demostrados y probados para obtener la solucin ptima para determinados modelos de problema es la parte que cae dentro del mbito cientco y abarca reas de conocimiento tales como la matemtica, la estadstica y las ciencias de la computacin. Sin embargo, la parte generalmente ms difcil y que se convierte en un arte que requiere de mucho criterio y experiencia consiste en convertir el problema real en un modelo al cual pueda aplicarse alguno de los algoritmos mencionados, luego seleccionar y aplicar el algoritmo adecuado al modelo y nalmente analizar la solucin obtenida y convertirla en una o varias decisiones que puedan ser tomadas sobre el problema real ya que muchas veces la respuesta proporcionada por el algoritmo no puede aplicarse tal cual al problema original.

2.1.

Tipos de Optimizacin
1

Existen muchos criterios bajo los cuales puede categorizarse un problema de optimizacin. En este curso no se pretende abarcar todos los tipos de problema de optimizacin existentes. Los tipos de optimizacin puede clasicarse de acuerdo a los siguientes criterios:

Por la cantidad de variables de decisin involucradas Univariada: Una sola variable de decisin. Multivariada: Dos o mas variables de decisin. Por el grado de las variables de decisin y sus relaciones en la funcin objetivo y/o las restricciones: Lineal: Todas las variables en el objetivo y las restricciones tienen un exponente igual a 1 y las
operaciones que se realizan entre ellas son solamente suma y resta.

No_Lineal: Existen variables con exponentes distintos a 1 y/o existen operaciones distintas a
suma/resta entre las variables de decisin.

Por la presencia o ausencia de restricciones en el modelo: No_Restringida: Se desea optimizar una funcin objetivo pero no existen restricciones adicionales a considerar en el modelo.

Restringida: Se desea optimizar una funcin objetivo sujeto al cumplimiento de una o mas
restricciones.

http://en.wikipedia.org/wiki/Mathematical_optimization

2. CONCEPTOS BSICOS DE OPTIMIZACIN

Figura 2.1.: Proceso de Solucin de Problemas de Optimizacin

Por el dominio de las variables de decisin: Continua: Las variables de decisin pertenecen al conjunto de los nmeros reales y pueden tomar
cualquier valor en dicho conjunto.

Discreta: Las variables solo pueden tomar ciertos valores. Un caso especial es el caso de la
optimizacin entera.

Combinatoria: Las variables de decisin solo pueden tomar valores dentro de un conjunto denido
y se busca encontrar la combinacin de valores para las distintas variables que hace ptimo el resultado.

Por la cantidad de objetivos de optimizacin: Uniobjetivo: Un solo objetivo o funcin objetivo. Multiobjetivo: Dos o mas objetivos que compiten entre s por los recursos.
Estos son solamente algunos de los criterios de clasicacin de un problema de optimizacin, pero cada uno de ellos puede a su vez dividirse en otras categoras. En el sentido estrctamente matemtico, una solucin ptima est asociada directamente con un punto de inexin de una funcin, el cual, dependiendo del objetivo, puede tratarse de un

mximo o un mnimo, por lo que cuando hablamos de optimizar, estamos hablando de encontrar
para un conjunto de variables de decisin, los valores que maximizan o minimizan una funcin objetivo al mismo tiempo que satisfacen un conjunto de restricciones que existen en el modelo.

2.2.

Desarrollo de un Modelo para Optimizacin

A continuacin se describe un procedimiento para el desarrollo de un modelo matemtico. Al principio, mientras el estudiante se acostumbra a realizar el proceso de pensamiento para modelar, se sugiere seguir paso a paso este algoritmo en forma sistemtica. Con el paso del tiempo y la prctica constante, el proceso se volver algo natural e intuitivo.

2. CONCEPTOS BSICOS DE OPTIMIZACIN

1.

Entender el problema:

Aunque pueda parecer obvio e innecesario inclur este paso explci-

tamente, la experiencia en la solucin de problemas muestra que la causa principal por la que se fracasa, es precisamente porque no se ha denido y delimitado correctamente el problema a resolver por lo que no existe una comprensin del mismo. Para asegurar el correcto entendimiento del problema, hay varias estrategias que pueden seguirse, entre las cuales una de las ms tiles es hacer un esquema, dibujo o diagrama del problema, de una forma simple pero tratando de representar grcamente todos los aspectos de la situacin. 2.

Identicar el objetivo:

Como se mencion en la seccin anterior, un problema de opti-

mizacin busca siempre uno de dos objetivos posibles, maximizar o minimizar algo. En funcin a la informacin proporcionada y al contexto del problema en cuestin, es posible identicar dicho objetivo. Por ejemplo, si en un problema se est tratando con aspectos como costos, distancia, mano de obra o materiales, es fcil llegar a la conclusin que lo que se busca es minimizar dichos aspectos. Por el contrario, si se est hablando de cosas como ventas, ingresos, dinero, ganancias, rendimiento, etc. puede inferirse que el objetivo perseguido es maximizar tales cosas. 3.

Identicar las variables de decisin:

Las variables de decisin son, como su nombre lo

sugiere, aquellos aspectos del modelo que se encuentran bajo el control del tomador de decisiones, de manera que ajustando el valor de dichas variables, se modica el resultado del modelo. Generalmente estas variables son representadas matemticamente en forma de un vector de la forma el modelo. 4.

X = x1 , x2 , x3, ...segn

sea la cantidad de variables que existen en

Expresar el objetivo como una funcin matemtica de las variables de decisin:


tivo. Expresado en forma matemtica:

Este paso

consiste en identicar las relaciones matemticas existentes entre las variables de decisin que producen el objetivo del paso 2. A esta funcin matemtica se le llama Funcin Obje-

max o min Z = f (x1 , x2 , x3 , ...)


5.

Identicar las restricciones en el problema: Una restriccin en un problema de optimizacin


se reere a cualquier obstculo que nos impide obtener un resultado ideal o deseado. Generalmente las restricciones se originan de las siguientes situaciones:

a) b) c)

Limitaciones de recursos disponibles, tales como materia prima, tiempo, espacio, personal, etc. Requerimientos que deben ser cumplidos, tales como cantidades mnimas de produccin, especicaciones de producto, calidad, etc. Condiciones sobre las variables de decisin para su aplicacin en la prctica, como por ejemplo, variables no negativas, variables enteras, variables binarias, etc.

6. Expresar las restriccines como relaciones entre las variables de decisin: Las relaciones para representar las restricciones no se limitan solamente a relaciones de igualdad sino que pueden expresarse tambin como desigualdades, por lo que es importante tener muy clara la naturaleza de la restriccin, es decir, saber si:

a ) Debe cumplirse con un valor especco: Restriccin de igualdad = b ) Existe un valor mnimo que debe alcanzarse: Restriccin de desigualdad del tipo c ) Existe un valor mximo que no puede excederse: Restriccin de desigualdad del tipo

7. Expresar el modelo en una forma cannica o estndar: Esto permitir identicar y aplicar correctamente el algoritmo de solucin en la etapa correspondiente. Ciertos algoritmos

10

2. CONCEPTOS BSICOS DE OPTIMIZACIN

Figura 2.2.: Proceso para el desarrollo de un modelo de optimizacin

requieren que el problema est expresado en una forma denida para iniciar el proceso de solucin. Este proceso se entender mas claramente en los siguientes captulos cuando se desarrolle en el contexto de un caso especco.

11

3. HERRAMIENTAS INFORMTICAS
Como se mencion en la introduccin, este es un curso eminentemente prctico y aplicado, por lo que la solucin de los modelos de optimizacin se har nicamente por medio de herramientas informticas, as que en este captulo se har una breve introduccin a las mismas. Se presentan en la seccion de bibliografa varias referencias donde el estudiante puede consultar en detalle la teora detrs de cada uno de los algoritmos, as como su desarrollo en forma manual si necesita conocerlo.

3.1.

Introduccin al Software Libre de Cdigo Abierto


1

El movimiento de software libre de cdigo abierto (Free and Open Source Software o FOSS)

surgi durante la dcada de 1980 como una respuesta al cambio en el modelo de negocios en el mundo de la informtica. Anteriormente, los programas de computadoras eran includos como parte de la venta del equipo o hardware y era permitido realizar copias del mismo y tener acceso incluso al cdigo fuente para poder hacer modicaciones para adaptarlo a las necesidades particulares. Con el advenimiento del mercado de programas informticos, principalmente impulsado a nales de la dcada de 1970 con el surgimiendo de Microsoft, el software se convirti en un producto que se venda por separado, bajo un modelo de licenciamiento para su uso, lo cual implica una serie de restricciones ya que las compaas desarrolladoras mantienen todos los derechos sobre el mismo, lo cual impide al comprador copiarlo, instalarlo en otras computadoras, ver el cdigo fuente para entender su funcionamiento o hacer modicaciones o adaptaciones de acuerdo a sus propias necesidades. En 1983 Richard Stallman , un acadmico e informtico de MIT funda el movimiento de software libre cuyo objetivo es desarrollar programas que puedan ser de libre acceso para quienes deseen usarlos. Las caractersticas de una aplicacin de software libre son principalmente las siguientes: Puede ser obtenido en forma gratuita, aunque esto no siempre es totalmente cierto, ya que algunas veces se puede cobrar el costo del medio en el cual se distribuya, pero no existe un pago por licencia para su uso. Puede copiarse las veces que se desee e instalarse en todas las computadoras que se requiera, sin limitaciones ni restriccin alguna. Se puede tener acceso al cdigo fuente para poder estudiar y comprender su funcionamiento. Tambin puede modicarse si es necesario para adaptarlo a distintas necesidades. Este ltimo aspecto es especialmente importante en el caso especco de los programas cientcos debido a que en el proceso de investigacin y desarrollo, as como en la solucin de problemas, no es vlido el modelo de caja negra utilizado por el software comercial, donde se aceptan los resultados obtenidos sin validar la forma de obtenerlos, por lo que es sumamente importante entender los algoritmos que los programas utilizan. Con la llegada y expansin de internet a nivel global, el movimiento de software libre se ha fortalecido y extendido de tal forma que en la actualidad, los programas desarrollados bajo este modelo, compiten con los programas comerciales en calidad, incluso en algunos casos superando

1 2

http://en.wikipedia.org/wiki/Free_and_open-source_software http://es.wikipedia.org/wiki/Richard_Stallman

12

3. HERRAMIENTAS INFORMTICAS

a sus pares comerciales. Muchas organizaciones en todo el mundo han adoptado el sofware libre por diversas razones, siendo una de ellas el ahorro en los costos de licencia, pero en muchos casos no es la principal, sino que se ha comprobado la calidad y versatilidad de los programas libres por encima del software comercial. En este curso estaremos utilizando varias aplicaciones que pertenecen a la categora de software libre, lo cual presenta una serie de ventajas para el desarrollo del programa del curso. Entre las ventajas podemos mencionar las siguientes: Todos los programas a utilizar pueden ser descargados de internet sin ningn costo. Pueden instalarse en las computadoras personales de los estudiantes, lo que les permite tenerlos siempre disponibles para realizar prcticas y tareas. La mayora de ellos puede ser instalado en diversos sistemas operativos como MS Windows, Linux o Mac OS Pueden utilizarlo sin restriccin, incluso para nes comerciales por lo que pueden aplicarlo en su ejercicio profesional. Existe una gran cantidad de material de referencia disponible en internet para aprender a utilizarlo. Los programas se encuentran en constante desarrollo por parte de una comunidad muy activa alrededor del mundo, por lo que frecuentemente se liberan versiones actualizadas y mejoradas.

3.2.

Software a utilizar

En esta seccin se enumera cada una de las aplicaciones de software libre que pueden utilizarse para resolver problemas de optimizacin y se hace una breve resea de ellas, indicando su principal rea de aplicacin as como algunas de sus caractersticas mas importantes. Cuando es pertinente se indica el nombre de un programa comercial similar para usarlo como referencia y punto de comparacin en cuanto a funcionalidad. Es posible que no todas sean utilizadas en el curso, pero es importante conocer su existencia y aplicacin para quienes deseen en un futuro profundizar sobre alguna de ellas.

3.2.1. Maxima
Maxima puede ser catalogado dentro de la categora de los CAS (Computer Algebra Systems). Un CAS es un programa matemtico cuya fortaleza radica en la capacidad de realizar operaciones y manipulacin sobre objetos simblicos. Es decir, un CAS es capaz de tomar una expresin representada en forma simblica y realizar operaciones bsicas (suma, multiplicacion, exponenciacin, etc.) y tambin operaciones ms avanzadas como derivacin e integracin simblica, representacin grca, solucin de ecuaciones, etc. Maxima desciende del programa ms antguo dentro de los CAS, llamado Macsyma, que fu desarrollado en la dcada de 1960. Es una herramienta sumamente completa, poderosa, verstil y estable, aparte de ser una aplicacin 100 % libre. Dentro del tema de optimizacin, puede ser aplicado en los siguientes casos: Optimizacin No Lineal y No Restringida para una variable Optimizacin Lineal Restringida Multivariada Optimizacion No Lineal Restringida Multivariada

13

3. HERRAMIENTAS INFORMTICAS

Figura 3.1.: Imagenes de Maxima

Maxima es similar en funcionalidades a algunos programas comerciales tales como Mathematica , Maple

4 o MathCad5 .

Maxima puede ser descargado en la siguiente direccin:

http://maxima.sourceforge.net/

3.2.2. OpenOce Calc/LibreOce Calc


OpenOce es una suite de ocina que compite con la omnipresente Microsoft Oce. De hecho, existe un alto nivel de compatibilidad entre ellas de manera que OpenOce puede abrir archivos de Oce. Aunque la suite se compone de una serie de aplicaciones (procesador de texto, herramienta de presentaciones, base de datos, etc.) nos interesa principalmente su aplicacin de Hoja Electrnica, llamada Calc, muy similar y compatible con Excel de MS Oce, por lo que los procedimientos de optimizacin pueden fcilmente y con pocos cambios, replicarse de una herramienta a otra. Existen 2 opciones para escoger en el caso de Calc. La primera es OpenOce (anteriormente llamada StarOce), que es la herramienta ms antigua, con casi 20 aos de existencia y que ha alcanzado un nivel de madurez y estabilidad que permite sea utilizado en muchas organizacones en el mundo como un sustituto de Excel. La segunda opcin es LibreOce, que es una derivacin que hizo un grupo de desarrolladores en el 2010 a partir de OpenOce cuando ste fu adquirido por Oracle. Por tratarse de aplicaciones de software libre, el cdigo fuente original de LibreOce era el mismo que OpenOce por lo que ambos son casi idnticos, lo que implica que puede usarse uno u otro indistintamente.

3 4 5

http://www.wolfram.com/ http://www.maplesoft.com/products/maple/ http://www.ptc.com/product/mathcad/

14

3. HERRAMIENTAS INFORMTICAS

Figura 3.2.: Solver de Calc

Por tratarse de una hoja electrnica, Calc puede utilizarse para un sinfn de propsitos como herramienta de clculo. En el caso de la optimizacin, las 3 aplicaciones aqu mencionadas cuentan con una herramienta denominada solver que permite resolver problemas de distinta ndole. Dado que muchas personas estn familiarizadas con el uso de hojas electrnicas, as como su estructura matricial de celdas, se hace muy sencillo el planteamiento de modelos, especialmente en el tema de optimizacin de redes, tema de mucha importancia en la ingeniera vial. OpenOce puede ser descargado en:

http://www.openoffice.org/
LibreOce puede ser descargado en:

http://www.libreoffice.org/

3.2.3. SmathStudio
SmathStudio es una herramienta con cierto nivel de similitud con la herramienta comercial MathCad mencionada anteriormente. Se trata de una aplicacin de clculo matemtico interactiva que permite plasmar expresiones matemticas y obtener los resultados utilizando la simbologa tcnica tal y como se presenta en la mayora de libros de texto y como si se estuviese trabajando sobre una hoja de papel. SmathStudio funciona bajo el concepto de region de

clculo, es decir que el resultado de una expresin depende del rea donde dicha expresin se
encuentre. Adicionalmente, posee la capacidad de implementar algoritmos gracias a su capacidad de programacin, lo que hace que sea muy fcil y rpido el desarrollo de procesos de clculo que en otras herramientas seran relativamente complejos o extensos. En este curso se utilizar esta herramienta para desarrollar los modelos analticos para el estudio de lneas de espera, o Teora de Colas, ya que permite utilizar la misma nomenclatura y simbologa que se utiliza en la mayor parte de literatura sobre el tema. SmathStudio no es un programa que cumpla en su totalidad con las caractersticas de un software libre, puesto que su cdigo fuente no se pone a disposicin de los usuarios, sin embargo, se trata de una aplicacin gratuita y que puede utilizarse para los propsitos que se desee, por lo que llena los requerimientos para ser utilizada en este curso.

15

3. HERRAMIENTAS INFORMTICAS

Figura 3.3.: Imagen de SmathStudio

SmathStudio puede obtenerse en la siguiente direccin:

http://en.smath.info/forum/

3.2.4. Sage
Sage es, quiz, el proyecto de software libre matemtico ms ambicioso y completo existente en la actualidad. Siendo un programa relativamente nuevo, iniciado en el 2005, ha logrado consolidarse en los circulos acadmicos mundiales como una herramienta predilecta por varias razones. La primera, Sage no reinvent la rueda partiendo de cero en su desarrollo, sino que hace uso de muchas otras aplicaciones matemticas de sofware libre ya existentes las cuales integra en una sola interfaz, lo que lo hace extremadamente poderoso y verstil. Otra razn es el hecho que combina todas las herramientas con el poder y sencillez del lenguaje de programacin de ms rpido crecimiento: Python. Las aplicaciones de Sage abarcan una amplia gama de temas, tales como lgebra, clculo, algebra lineal, teora de nmeros, teora de grafos, etc. En lo que respecta a optimizacin, Sage puede hacer todo lo que Maxima hace, puesto que Maxima es uno de los componentes de Sage. En adicin, Sage posee amplias capacidades de trabajar con grafos, lo que lo hace ideal para la aplicacion de algoritmos de optimizacin de redes, como la ruta ms corta y el rbol mnimo de expansin, por mencionar algunos. El objetivo del proyecto Sage es muy claro, convertirse en una alternativa de software libre para aplicaciones comerciales como Matlab, Mathematica, Maple, etc. Por lo que se puede ver, en poco tiempo se ha avanzado un gran trecho hacia el logro de tal objetivo. En mi opinin, en unos cuantos aos, Sage ser la herramienta de uso mas generalizado entre la comunidad cientca y acadmica en el mundo. Sage puede ser obtenido en la siguiente direccin:

http://sagemath.org/

3.2.5. Octave
Octave es una herramienta que puede clasicarse dentro de las aplicaciones de Clculo Numrico. Su objetivo es crear una alternativa de software libre para Matlab y de hecho, actualmente existe un alto nivel de compatibilidad entre ambas, cercana al 99 %, es decir que el cdigo de Matlab puede ejecutarse casi sin modicaciones en Octave. Sus fortalezas radican en la enorme capacidad de procesar grandes cantidades de datos a una grn velocidad de clculo, as como

16

3. HERRAMIENTAS INFORMTICAS

Figura 3.4.: Imagenes de Sage

17

3. HERRAMIENTAS INFORMTICAS

Figura 3.5.: Imagenes de Octave

el manejo en forma natural de estructuras matriciales, lo cual la hace ideal para trabajar con algoritmos de optimizacin, puesto que muchos de stos se basan en clculo matricial. Mas que una aplicacin, tanto Matlab como Octave son mas bien un lenguaje de programacin y un entorno de desarrollo de aplicaciones para el clculo cientco. Existe una grn cantidad de paquetes adicionales que pueden descargarse y que extienden las funcionalidades de Octave en reas especcas. Existen paquetes especcos para el rea de optimizacin, tanto lineal como no lineal. Quiz una de las mayores desventajas de Octave es la falta de una Interfase Grfica de

Usuario o GUI por sus siglas en ingls. Aunque existen algunos proyectos que se han desarrollado
en forma independiente para subsanar esta debilidad, an no existe una interfaz que llene en su totalidad ese vaco, aunque ya se ha anunciado por parte de los desarrolladores del proyecto Octave que ya se est trabajando en una GUI que vendr integrada en futuras versiones. Octave puede descargarse de la siguiente direccin:

http://www.gnu.org/software/octave/

3.2.6. Scilab
Scilab es un software muy similar a Octave y que tambin pertenece a la categora de software para clculo numrico. Aunque su compatibilidad con Matlab no es tan alta como Octave, puede ser considerado una alternativa. Al igual que Octave, Scilab basa su fortaleza en el manejo de objetos matriciales en forma natural y simple. Tambin puede considerarse un lenguaje y un entorno de programacin para el desarrollo de aplicaciones complejas. Otra cosa que tienen en comn Scilab y Octave es la amplia variedad de paquetes adicionales para extender la funcionalidad bsica hacia aplicaciones especcas. Scilab cuenta con un paquete (o Toolbox, como se denomina comunmente) desarrollado especcamente para resolver problemas en el campo de la optimizacin, tanto lineal como no linea. Scilab tambin incluye un programa sumamente interesante denominado XCos y que sirve para modelar y simular sistemas dinmicos complejos. Aunque este tema est fuera del alcance de este documento, es importante mencionarlo porque es una alternativa al programa llamado Simulink que es un complemento de Matlab, aunque se adquiere por aparte. En estas aplica-

18

3. HERRAMIENTAS INFORMTICAS

Figura 3.6.: Imagenes de Scilab

ciones, tanto XCos como Simulink es posible modelar, simular y analizar el comportamiento de sistemas dinmicos cuyo anlisis sera extremadamente difcil por la forma tradicional, es decir, utilizando herramientas matemticas, ya que la complejidad de las relaciones es muy alta. Scilab es una aplicacin desarrollada en Francia y es utilizada por muchas organizaciones cientcas y acadmicas en Europa. Scilab puede descargarse en:

http://www.scilab.org/

19

Parte II.

OPTIMIZACIN APLICADA

20

4. OPTIMIZACIN NO LINEAL NO RESTRINGIDA EN UNA VARIABLE


La decisin de iniciar esta segunda parte con los modelos de optimizacin no lineal sin restricciones para una sola variable se basa en el hecho que este es un tema que generalmente se cubre en un curso introductorio de clculo diferencial. La optimizacin (maximizacin o minimizacin) de funciones no lineales en una sola variable es una de las primeras aplicaciones de la derivada que se aprende. Partiendo del hecho que se trata de un curso para ingenieros, es vlido suponer que existe ya la base de clculo diferencial necesaria para entender los fundamentos tericos del tema, razn por la cual, como se aclar en la Introduccin en estos apuntes no se cubre la teora sino solamente la aplicacin de los conceptos directamente con el uso de las herramientas computacionales. El estudiante puede consultar cualquier libro de texto de clculo para refrescar aquellos conceptos que considere necesarios antes de avanzar a la siguiente seccin.

4.1.

Desarrollo de un modelo de Optimizacin

Dicho lo anterior, la forma ms directa de exponer el tema y ms especcamente, el proceso de desarrollo del modelo es a travs de un ejemplo:

Los barriles que se utilizan para almacenar petrleo tienen forma cilndrica y una capacidad de 160 litros. Hallar las dimensiones del cilindro para que el material empleado en su construccin sea mnimo.

Ejemplo # 1

Paso # 1: Entender el problema


Como se mencion el la primera parte, es necesario estar seguro que se tiene claro el problema. Para eso, generalmente es recomendable realizar un diagrama de la situacin bajo anlisis:

La gura muestra el envase cilndrico y las dimensiones que lo denen, en este caso el dimetro (D) y la altura (H). Adicionalmente el enunciado del ejemplo indica que el volumen que deben contener los recipientes es de 160 litros. El material a utilizar es la supercie total que ocupa el barril, es decir, las 2 tapas superiores y el cilindro.

Paso # 2: Identicar el Objetivo


En este caso el enunciado es muy claro respecto a que lo que se pretende es minimizar el material para fabricar el barril, y en el paso anterior identicamos que el material corresponde al rea total del cilindro, por lo que el objetivo se puede expresar como: Minimizar el Area Total del Cilindro.

21

4. OPTIMIZACIN NO LINEAL NO RESTRINGIDA EN UNA VARIABLE

Paso # 3: Identicar las Variables de Decisin


Las Variables de Decison (VD) son los parmetros del modelo que estn bajo nuestro control y que podemos modicar para lograr el objetivo. En este ejempo, las decisiones que debemos tomar corresponden a el dimetro y la altura del cilindro. Puede pensarse que se trata de 2 variables independientes, pero en realidad ambas estn relacionadas ya que el volumen total del cilindro ya esta denido. El volumen y el rea de un cilindro estn dadas por las siguientes relaciones:

V =

D 2

H
2

H=

4V D2

A=2

D 2

+DH

Paso # 4: Expresar el Objetivo como una funcin de las Variables de Decisin


Si expresamos el Area Total y hacemos la sustitucin correspondiente como se indic en el paso anterior, obtenemos la funcin siguiente para el Area Total que queremos minimizar, en funcin de una sola variable, en este caso el dimetro (D), por lo que al resolver para D, solo debemos sustitur su valor en la expresin despejada para H en el paso anterior.

Paso # 5: Identicar las Restricciones


En este problema particular, como se inere por el ttulo del tema, por tratarse de un problema de optimizacion lineal no restringido, no existen restricciones. Es posible que se pueda pensar que el volumen del cilindro es una restriccin, pero no sera correcto. Una restriccin generalmente se reere a ciertas condiciones que deben cumplir las variables de decision, por ejemplo, si en este problema nos indicaran que los barriles no deben exceder una altura de 1 metro, o si nos indicaran que el dimetro no debe exceder 70 cms nos estaran imponiendo restricciones al modelo. Esto se har mas claro en el siguiente captulo.

Paso # 6: Expresar las Restricciones como relaciones de las Variables de Decisin


No aplica en este problema.

Paso # 7: Colocar el modelo en una forma cannica o estndar


En el caso de la optimizacin no lineal de una variable sin restricciones, basta con expresar la funcin matemtica de una variable e indicar cual es el objetivo, ya sea maximizar o minimizar, por lo que quedara tal y como se representa en el paso # 3.

4.2.

Optimizacin No Lineal en Maxima

Ahora vamos a introducirnos en el uso de las aplicaciones especcas y para este problema en particular vamos a utilizar Maxima. Este no es un tutorial introductorio de Mxima, ya que existe un grn nmero de ellos disponibles en internet para ser descargados y utilizados para aprender los primeros pasos. En este curso se proporcionan algunos de ellos a los estudiantes. Al iniciar Maxima, nos encontramos con una pantalla como la mostrada abajo:

22

4. OPTIMIZACIN NO LINEAL NO RESTRINGIDA EN UNA VARIABLE

Al iniciar a escribir algo, inmediatamente aparece el prompt del programa, seguido por cualquier cosa que tecleemos. Es importante recordar que para ejecutar una instruccin en Maxima, debemos presionar simultneamente las teclas

[SHIFT]+[ENTER]
En la siguiente pantalla se presenta el procedimiento, con sus respectivas instrucciones sobre cada paso:

Ahora, sera interesante tener una idea de la forma de la grca en un intervalo denido, para poder intur donde podria encontrarse el mnimo que buscamos. Para esto, Maxima posee excelentes funcionalidades de gracacin y en forma sumamente simple, como se muestra a continuacin:

23

4. OPTIMIZACIN NO LINEAL NO RESTRINGIDA EN UNA VARIABLE

Como se puede observar en la grca, el valor mnimo para esta funcin se encuentra cerca del valor de D=0.6, o sea, esperaramos que el dimetro para el barril ser aproximadamente de 60 cms. Sin embargo, esto es solo una aproximacin a la solucin excta, la cual tambin podemos obtener por medio de Maxima. Como recordamos de nuestro curso bsico de clculo diferencial, para encontrar un punto de inexin en una funcin contnua y derivable en un intervalo, simplemente necesitamos encontrar la primera derivada de la funcin, luego igualar esta primera derivada a 0 y resolver la ecuacin respectiva. Como se expres en la introduccin, es posible que algunos de los estudiantes de este curso ya hayan olvidado sus tcnicas de derivacin e integracin y otros aspectos bsicos del clculo. No hay porque preocuparse, para esto, recurrimos a la tecnologa y en este caso, a nuestras herramientas de software matemtico. Hacer este procedimiento en Maxima es sumamente sencillo y puede hacerse en 2 pasos, como se muestra a continuacin:

24

4. OPTIMIZACIN NO LINEAL NO RESTRINGIDA EN UNA VARIABLE

De esta forma, obtenemos la respuesta excta que buscamos, el dimetro del barril debe tener 0.588 mts (58 cms) de dimetro. A partir de este valor, podemos encontrar el valor de la altura, sustituyendo D en la expresin para H en el paso # 3. Se deja esto al lector curioso, asi como un anlisis del resultado obtenido. Realizaremos un ejemplo ms, aunque ya sin el detalle para cada uno de los pasos, solo para que el estudiante tenga claro el proceso. El ejemplo a resolver es el siguiente:

Una ventana normanda tiene forma de rectngulo rematado por un semicrculo. Si el permetro de la ventana es de 30 pies, encuentre las dimensiones de la ventana de modo que entre la cantidad ms grande de luz.
A continuacin se presenta un diagrama que representa la ventana, para tener una idea ms clara del problema:

Ejemplo # 2

25

4. OPTIMIZACIN NO LINEAL NO RESTRINGIDA EN UNA VARIABLE

En este caso, necesitamos determinar las dimensiones de la ventana (Variables de Decision), o sea la base (b) y la altura (h). La base tambin corresponde al dimetro del semicrculo superior de la ventana. Partiendo del hecho que conocemos la longitud total del permetro podemos utilizarla para reducir la cantidad de variables a una sola, de la siguiente forma. Para este ejemplo, vamos a poner a Maxima a realizar toda la manipulacin algebrica de las expresiones, recuerden que es un Sistema Algebrico Computarizado!!

26

4. OPTIMIZACIN NO LINEAL NO RESTRINGIDA EN UNA VARIABLE

Podemos observar que el punto mximo se alcanza en un valor de b ligeramente mayor a 8. Ahora podemos proceder a encontrar el valor excto:

4.3.

Optimizacin No Lineal en Sage

Sage es una herramienta verdaderamente impresionante y con un futuro muy prometedor en el mbito acadmico y cientco, como se mencion en el captulo anterior, por lo que vale la pena familiarizarse con ella. Vamos a resolver los mismos ejemplos de la seccin anterior, solo que esta vez utilizando Sage. Sage puede ejecutarse directamente en un navegador. Al iniciar la sesin, nos encontraremos con la pantalla que se presenta a continuacin:

27

4. OPTIMIZACIN NO LINEAL NO RESTRINGIDA EN UNA VARIABLE

Al seleccionar la opcin New Worksheet, podemos crear una nueva hoja de trabajo, a la que deberemos dar un nombre. Una vez hecho esto, estamos ante un ambiente integrado de trabajo que nos permitir hacer muchas cosas ya que integra la funcionalidad de muchas otras herramientas en una sola, potenciada por la facilidad y claridad de un lenguaje de programacin como Python.

28

4. OPTIMIZACIN NO LINEAL NO RESTRINGIDA EN UNA VARIABLE

29

4. OPTIMIZACIN NO LINEAL NO RESTRINGIDA EN UNA VARIABLE

Ahora mostraremos el desarrollo del Ejemplo # 2 de una forma mas breve, sin inclur todo el detalle del ejemplo anterior:

30

4. OPTIMIZACIN NO LINEAL NO RESTRINGIDA EN UNA VARIABLE

Como era de esperarse, los resultados son los mismos a los obtenidos por medio de Maxima. En realidad, Sage utiliza Maxima internamente para realizar la manipulacin de objetos simblicos, sin embargo, existen diferencias en los nombres de las instrucciones o funciones de un sistema a otro, por ejemplo, como vimos, en Maxima, la funcin para derivar es:

diff(expresin, variable)
mientras que en Sage, el mismo objetivo se logra utilizando la funcin siguiente:

derivative(expresin, variable)
Para el propsito especco de la optimizacin no lineal en una variable y sin restricciones, decidir la herramienta a utilizar entre Sage y Maxima es simplemente una cuestin de gustos o preferencias, aunque para otras aplicaciones mas sosticadas en ciencia e ingeniera, Sage es una herramienta mucho mas completa y poderosa.

31

5. OPTIMIZACIN LINEAL RESTRINGIDA EN VARIAS VARIABLES


El tema de Optimizacin Lineal Restringida Multivariable es uno de los temas mas importantes de este curso, puesto que su aplicacin no solo se limita al campo de la ingeniera sino que tambin se extiende al mundo de los negocios y la administracin. La optimizacin lineal restringida pertenece a un campo de la matemtica aplicada que se llama Programacin Matemtica y cuyo origen se remonta a la Segunda Guerra Mundial y en especial a los aportes de George Dantzig para las operaciones militares. Como ya se dijo anteriormente, la Programacin Lineal es un tema generalmente includo en los contenidos curriculares de algunas carreras de ingeniera pero lamentablemente no en todas. Tambin se encuentra en contenidos de cursos de las carreras de Administracin de Empresas, Economa, Agronoma y en algunos programas de postgrado, en cursos tales como Investigacin de Operaciones o Mtodos Cuantitativos para Administracin.

1 a quien se le atribuye el desarrollo de la Programacion

Lineal la cual fue aplicada para resolver problemas reales de optimizacin en el uso de recursos

5.1.

Programacin Lineal

La caracterstica principal de la programacin lineal es la condicin que todas las variables de decisin tanto en la funcin objetivo como en las restricciones tienen grado 1. Esto garantiza la existencia de algoritmos denidos que pueden resolver estos problemas en forma directa. El ms famoso y utilizado de estos algoritmos es el denominado Mtodo Simplex

2 que es el que

comunmente se ensea en un curso de Operaciones y que se basa en algebra matricial para obtener los valores ptimos para las variables de decisin. Sin embargo, no es el nico algoritmo existente, ya que entre otros podemos mencionar el Algortmo de Punto Interior goza de cierta popularidad. No entraremos en toda la teora porque el estudiante puede revisar las referencias bibliogrcas para profundizar en ella, por lo que vamos a demostrar el modelo de Programacin Lineal mediante un ejemplo, el cual estaremos desarrollando nuevamente siguiendo detalladamente el proceso de modelacin que se us en el captulo anterior ya que en este caso si podremos aplicar todos los pasos en forma explcita. El ejemplo a desarrollar es el siguiente:

3 que tambin

Una compaa posee dos minas: la mina A produce cada da 1 tonelada de hierro de alta calidad, 3 toneladas de calidad media y 5 de baja calidad. La mina B produce cada da 2 toneladas de cada una de las tres calidades. La compaa necesita al menos 80 toneladas totales de mineral de alta calidad, 160 toneladas totales de calidad media y 200 toneladas totales de baja calidad. Sabiendo que el coste diario de la operacin es de 2000 euros en cada mina, desarrollar un modelo de optimizacin para la operacin de las minas.

Ejemplo # 3

1 2 3

http://es.wikipedia.org/wiki/George_Dantzig http://es.wikipedia.org/wiki/Metodo_simplex http://en.wikipedia.org/wiki/Interior_point_method

32

5. OPTIMIZACIN LINEAL RESTRINGIDA EN VARIAS V ARIABLES

Paso # 1: Entender el Problema


Nuevamente un aspecto fundamental antes de iniciar el proceso de modelado es la comprensin de la situacin a modelar. En los ejemplos y ejercicios contenidos en los libros de texto generalmente el enunciado de los problemas dene explcitamente el objetivo que se busca y cuales son las variables de decisin del modelo. En este caso, decid en forma consciente no inclur dicha informacin en el enunciado para que el estudiante vaya desarrollando la habilidad para identicar correctamente lo que se necesita, basandose en la informacin proporcionada. Para este ejercicio, es conveniente representar el problema en forma matricial como se muestra a continuacin: Alta Calidad Mina A Mina B Requerimiento 1 ton/dia 2 ton/dia 80 ton Calidad Media 3 ton/dia 2 ton/dia 160 ton Baja Calidad 5 ton/dia 2 ton/dia 200 ton Costo/Operacin 2000 2000

/da /da

Esta prctica de representar los problemas en forma matricial ser de suma utilidad en en desarrollo de modelos de programacin lineal y en especial cuando se utilizan hojas electrnicas para resolver este tipo de problemas.

Paso # 2: Identicar el Objetivo


Como ya se dijo, un problema de optimizacin se reduce a una de dos alternativas, maximizar o minimizar algo. Denir esto debe hacerse tomando como punto de partida la informacin que el caso proporciona. En este caso en particular, el enunciado nos habla de costos de operacin y no menciona ingresos o ganancias, por lo que podemos inferir que el objetivo ser minimizar el costo total de operacin de ambas minas.

Paso # 3:Identicar las Variables de Decisin


Necesitamos denir cuales parmetros del modelo quedan bajo nuestro control, es decir, aquellos que nosotros podemos cambiar y que van a incidir en el objetivo. Puesto que segn la informacin proporcionada, el costo de operar las minas est expresado en Euros por da, por lo que al variar la cantidad de das que operamos cada mina, estaremos cambiando el valor del objetivo planteado en el paso anterior. Puesto que podemos decidir operar cada mina una cantidad distinta de das, la decision que debemos tomar es cuantos dias vamos a operar la mina A y cuantos dias la mina B, para que el costo sea mnimo.

Paso # 4: Expresar la Funcin Objetivo


Con lo denido en los 2 pasos anteriores, es bastante sencillo expresar el objetivo en funcin de las variables de decisin. El costo total ser igual a la cantidad de dias a operar cada mina multiplicado por el costo diario de operar cada una, expresandolo en forma matemtica:

xA = Cantidad de d as a operar M ina A xB = Cantidad de d as a operar M ina B M in Costo T otal = 2000 xA + 2000 xB

Paso # 5: Identicar las Restricciones


Como se explic con anterioridad, las restricciones provienen de limitaciones que nos impiden implementar una solucin ideal. En este ejemplo especico, puesto que nuestro objetivo es obtener el costo mnimo, lo ideal sera tener un costo de 0, lo cual implica no operar las minas ni un solo da. La razn por la cual no podemos tomar la decisin de no operar las minas es porque

33

5. OPTIMIZACIN LINEAL RESTRINGIDA EN VARIAS V ARIABLES

debemos cumplir con los requerimientos mnimos de material (Hierro) que debemos producir. En este caso existen 3 requerimientos, uno por cada tipo de material, por lo que cada requerimiento se convierte en una restriccin de la siguiente forma: Restriccin # 1 = Hierro de Alta Calidad a Producir debe ser al menos 80 toneladas. Restriccin # 2 = Hierro de Calidad Media a Producir debe ser al menos 160 toneladas. Restriccin # 3 = Hierro de Baja Calidad a Producir debe ser al menos 200 toneladas.

Paso # 6: Expresar las Restricciones como relaciones de las V.D.


Ya en el paso anterior se adelant bastante con este tema, lo que debemos hacer ahora es simplemente expresarlo en forma matemtica. Para cumplir el requerimiento de cada uno de los tipos de material, es necesario operar las minas cierto numero de das, lo cual, combinado con el rendimiento de cada tipo de material en cada mina nos debe producir al menos lo requerido. Es muy importante denir la naturaleza de la restriccin, si se trata de un lmite mximo, un mnimo a cumplir o un valor exacto a obtener, para determinar si se trata de una igualdad (=) o una desigualdad (,

).

En este caso, las 3 restricciones se reeren a cantidades mnimas a

cumplir, por lo que el signo de la restriccin ser

R1 : R2 : R3 :

1 xA + 2 xB 80 3 xA + 2 xB 160 5 xA + 2 xB 200

Paso # 7: Colocar el modelo en una forma estndar o cannica.


La forma cannica o estndar para un modelo de programacin lineal generalmente consiste en expresar lo que se pretente de la funcin objetivo (max/min) y todas las restricciones con un mismo sentido en cuanto a la direccin de la desigualdad. Generalmente, si el objetivo es maximizar, todas las restricciones se expresan de la forma las restricciones se expresan como

si el objetivo es minimizar, todas

Recordemos que podemos cambiar el sentido, o sea el

signo de una restriccin multiplicando ambos lados de la desigualdad por -1. Adicionalmente, en la forma estndar se deben inclur otras restricciones que estn implcitas en el modelo, por ejemplo, que las V.D. no pueden ser negativas, si deben ser enteras, binarias, etc. Para el ejemplo en cuestin, esto quedara de la siguiente forma:

min CT = 2000 xA + 2000 xB s.a. 1 xA + 2 xB 80 3 xA + 2 xB 160 5 xA + 2 xB 200 xA , xB 0


Otra forma estndar comunmente utilizada para expresar un modelo de programacin lineal es la forma matricial, la cual es utilizada para la aplicacin del mtodo Simplex. Nuevamente, en este curso no vamos a explorar los algoritmos en detalle sino que vamos a utilizar el poder de las herramientas computacionales a nuestro alcance.

34

5. OPTIMIZACIN LINEAL RESTRINGIDA EN VARIAS V ARIABLES

5.1.1. Programacin Lineal en Maxima


El mtodo o algoritmo ms utilizado por las aplicaciones informticas para resolver problemas de programacin lineal es el Simplex. Maxima, adicionalmente a sus capacidades, posee la versatilidad de ser expandido por medio de mdulos adicionales, algunos de ellos ya vienen por defecto en la instalacin original y otros pueden ser desarrollados por el usuario para nes ms especicos. Uno de los mdulos que Maxima ya trae includo es el del mtodo Simplex, el cual combinado con las capacidades algebricas de Maxima hacen sumamente sencilla la solucin de los modelos de programacin lineal ya que el modelo puede expresarse tal y como lo hemos expresado en el paso # 7 de la seccin anterior. Esto funciona bastante bien para modelos pequeos, con pocas variables y restricciones, sin embargo, cuando se trata de modelos grandes con muchas variables y restricciones, la solucin con esta herramienta puede volverse engorrosa, por lo que para problemas grandes, es mas recomendable utilizar herramientas que utilizan la notacin matricial. A continuacin mostraremos la solucin al ejemplo # 3, detallando paso a paso el proceso de solucin:

Como puede observarse, Maxima proporciona la solucin al modelo en forma rpida, sencilla y excta. El ejemplo anterior corresponda a un problema de minimizacin, por lo que a continuacin vamos a presentar un ejemplo de maximizacin para completar esta seccin.

Un fabricante de cemento produce dos tipos de cemento, a saber en grnulos y polvo. l no puede hacer ms de 1600 bolsas un da debido a una escasez de vehculos para transportar el cemento fuera de la planta. Un contrato de ventas establece que l debe producir 500

Ejemplo # 4

35

5. OPTIMIZACIN LINEAL RESTRINGIDA EN VARIAS V ARIABLES

bolsas al dia de cemento en polvo. Debido a restricciones del proceso, se requiere el doble del tiempo para producir una bolsa de cemento granulado en relacin al tiempo requerido por el cemento en polvo. Una bolsa de cemento en polvo consume para su fabricacin 0.24 minutos/bolsa y la planta opera 8 horas al da. Su ganancia es $4 por bolsa para el cemento granulado y $3 por bolsa para el cemento en polvo.
Nuevamente, en este ejemplo se omite la parte del enunciado que indica explcitamente el objetivo y las variables de decisin para desarrollar la habilidad en el estudiante de identicarlas basado en la informacin proporcionada. En los verdaderos problemas, aquellos que surgen en la vida real durante el ejercicio profesional, no existen enunciados que nos digan que hacer, es algo que debemos descubrir por nosotros mismos.

Paso # 1: Entender el problema.


Nuevamente, es conveniente tratar de representar en forma matricial la informacin que se nos proporciona. El pensamiento multidimensional es una de las formas mas ecaces en la solucin de problemas complejos. Producto Cem en Polvo Cem Granul Total Tiempo Req. 0.24 min/b 0.48 min/b Ganancia $3/b $4/b Prod. mn 500 b/da 1600 b/da 8 h (480 m) Prod. max Tiempo Disp.

Paso # 2: Identicar el Objetivo.


Basado en la informacin proporcionada en el enunciado, donde se menciona la ganancia por bolsa, podemos inferir que el objetivo perseguido es el de maximizar la ganancia total obtenida.

Paso # 3: Identicar las Variables de Decisin.


Si lo que buscamos es maximizar la ganancia total, debemos denr cuales son las variables que debemos manipular para modicar la ganancia. Es fcil deducir que la ganancia total depender de la cantidad de bolsas de cada uno de los dos tipos de cemento que se fabrican por da.

x1 = Cantidad de Bolsas de Cemento en P olvo/d a x2 = Cantidad de Bolsas de Cemento Granulado/d a

Paso # 4: Expresar la Funcin Objetivos.


Ganancia T otal = ($3/bolsa) x1 + ($4/bolsa) x2
Es muy importante siempre chequear la consistencia dimensional tanto de la funcin objetivo como de las restricciones. En este caso, las variables estn expresadas en bolsas y los coecientes estn expresados en dinero/bolsa por lo que al multiplicar ambos se obtiene solamente dinero, lo cual permite sumar ambos trminos de la funcin y nos d la ganancia total en dinero.

Paso # 5: Identicar las Restricciones.


Si pudiesemos producir una cantidad innita de bolsas de cada tipo de producto y venderlas todas, obtendramos una ganancia innita. Obviamente hay algo que nos impide hacer esto. Primero, an cuando pudiesemos producir todas las bolsas de cemento que quisieramos, existe una cantidad mxima que podemos transportar (y por ende vender) cada dia.

R1 = Cantidad M axima De Bolsas T otales/d a = 1600

36

5. OPTIMIZACIN LINEAL RESTRINGIDA EN VARIAS V ARIABLES

Segundo, debemos cumplir con una cantidad mnima de bolsas de cemento en polvo por dia.

R2 = Cantidad M nima Bolsas Cemento en P olvo = 500


Tercero, producir cada bolsa requiere de una cantidad de tiempo y disponemos de un determinado tiempo de produccin total por cada dia. Aunque en el enunciado no se menciona, suponemos que ambos tipos de cemento se producen utilizando la misma lnea de produccin por lo que la suma total del tiempo requerido para fabricar ambos productos no puede exceder el tiempo disponible.

R3 = T iempo Disponible/d a = 480 min

Paso # 6: Expresar las Restricciones en relacin a las V.D.


R1 : x1 + x2 1600 R2 : x1 500 R3 : 0.24 x1 + 0.48 x2 480

Paso # 7: Colocar el modelo en la forma estndar.


max GT = 3 x1 + 4 x2 s.a. x1 + x2 1600 x1 500 0.24 x1 + 0.48 x2 480 x1 , x2 0
Ahora, vamos a resolver el modelo utilizando Maxima. Hay que recordar que al iniciar el programa, debemos cargar el mdulo Simplex.

La solucin ptima es, entonces, producir 1200 bolsas diarias de cemento en polvo y 400 bolsas de cemento granulado, lo que produce una ganancia total por da de $5200. Es importante

37

5. OPTIMIZACIN LINEAL RESTRINGIDA EN VARIAS V ARIABLES

recordar que, de acuerdo al signicado de optimalidad, ninguna otra combinacin producir una ganancia mayor a 5200. Es posible, sin embargo, que existan soluciones ptimas alternativas y que produzcan la misma ganancia total con una combinacin diferente. Si se buscara incrementar la ganancia, se deberan cambiar las condiciones bajo las cuales opera el modelo. Existe una forma de estimar el efecto que ciertos cambios en las condiciones del modelo tendrn en la solucin ptima, esto se conoce como Anlisis de Sensibilidad o Anlisis Post Optimo.

5.1.2. Programacin Lineal en OpenOce/LibreOce Calc


El uso de hojas electrnicas para modelar y resolver problemas de optimizacin se ha generalizado en los ltimos aos. A continuacin vamos a utilizar OpenOce Calc para resolver los dos ejemplos anteriores de programacin lineal. Es razonable asumir que los estudiantes ya estan familiarizados con el uso de hojas electrnicas para otras aplicaciones, en especial MS Excel y dado que existe un alto grado de similitud y compatibilidad entre ste y Calc, el proceso de solucin debe ser bastante sencillo. Obviaremos los pasos del proceso de solucin porque ya fueron realizados en la seccin anterior. Existe una diferencia signicativa entre una hoja electrnica y las aplicaciones previamente utilizadas (Maxima y Sage): las hojas electrnicas no pueden manipular objetos algebricos, sino que solamente son capaces de trabajar con cantidades por lo que utilizan algoritmos numricos para resolver esta clase de problemas. Adicionalmente, dada estructura matricial de las hojas electrnicas, es mas conveniente representar el modelo en forma de una matriz de coecientes.

En la imagen anterior se puede observar los datos del modelo. Para este paso, solamente se necesita ingresar los valores tal y como aparecen en la imagen, pero esto es solamente la primera parte del desarrollo del modelo ya que se debern crear las frmulas necesarias para relacionar las variables y los coecientes tal y como se muestra a continuacin:

38

5. OPTIMIZACIN LINEAL RESTRINGIDA EN VARIAS V ARIABLES

39

5. OPTIMIZACIN LINEAL RESTRINGIDA EN VARIAS V ARIABLES

Como puede verse en las imagenes anteriores, se realiza la sumatoria de los productos de cada coeciente por el valor de las variables de decisin, tanto en la funcin objetivo como en las restricciones. En este ejemplo esto se realiz uno a uno, mas adelante se ver que esto puede realizarse copiando las frmulas hacia abajo y dejando las referencias jas a los valores de las V.D. Una vez completados los pasos anteriores, el modelo en la hoja electrnica est listo y podemos proceder a la solucin del mismo utilizando la opcin de solver.

40

5. OPTIMIZACIN LINEAL RESTRINGIDA EN VARIAS V ARIABLES

Como se esperaba, la solucin obtenida es la misma a la obtenida en la seccin anterior por medio de Maxima. Es interesante notar que en la hoja electrnica podemos ver los resultados para cada una de las variables de decisin, la funcin objetivo y tambin el valor de cada una de las restricciones. As podemos observar que las primeras dos restricciones se cumplen a cabalidad mientras que en la tercera restriccin el valor del lado derecho es excedido, lo cual es vlido dado que la restriccin es del tipo

Ahora procederemos a resolver el ejemplo # 4 de la produccin de cemento. Vamos a hacerlo

41

5. OPTIMIZACIN LINEAL RESTRINGIDA EN VARIAS V ARIABLES

de una forma mas detallada, para que pueda observarse el procedimiento a seguir en la hoja electrnica:

Nuevamente, el modelo se plantea exctamente igual que en el ejemplo anterior. Algo importante de mencionar es la escogencia de valores iniciales para las variables de decisin. En realidad puede colocarse cualquier valor, sin embargo, es conveniente colocar un valor distinto de cero como valor inicial ya que dado que Calc utiliza un algoritmo numrico para resolver el modelo, el uso de 0 puede ocasionar algn error durante los clculos.

Seleccionamos la opcin SOLVER y en el cuadro de dilogo denimos la celda objetivo, el objetivo, que en este caso es maximizacin, las variables de decision y las restricciones como se muestra a continuacin:

42

5. OPTIMIZACIN LINEAL RESTRINGIDA EN VARIAS V ARIABLES

Ahora, haciendo click en Options nos aseguramos que est marcada la opcin que dice Assume variables as non-negative que bsicamente se reere a la restriccin de no negatividad para las variables de decisin:

Aceptamos haciendo click en OK y luego hacemos click en Solve. Calc nos da un mensaje indicando que se ha tenido xito en la bsqueda de la solucin:

Finalmente hacemos click en la opcin de guardar el resultado Keep Result y ya podemos ver la solucin obtenida, que es la misma que ya conocamos por medio de Maxima.

43

5. OPTIMIZACIN LINEAL RESTRINGIDA EN VARIAS V ARIABLES

Los modelos de programacin lineal se adaptan a una gran variedad de problemas en el mundo de la ingeniera y los negocios. En la siguiente seccin se presenta una de las reas de aplicacin de la optimizacin lineal de mayor inters en este curso: los modelos de redes.

5.2.

Modelos de Redes

Los modelos de redes aparecen en muchas aplicaciones de ciencias e ingeniera. Existe una enorme variedad de problemas y situaciones que pueden representarse en forma de una red. El estudio de las redes pertenece a otro campo de las matemticas que lamentablemente no se encuentra en todos los programas acadmicos de ingeniera: Matemticas Discretas . Las Matemticas Discretas comprenden un grn nmero de tpicos uno de los cuales es la Teora de Grafos . Por medio de los grafos, es posible modelar una grn cantidad de situaciones tales como: redes de carreteras, redes de distribucin de servicios pblicos (agua, electricidad, telfono, etc.), redes de computadoras, relaciones entre personas, etc. Una vez se ha modelado el asunto bajo estudio, puede utilizarse los algoritmos de redes para encontrar soluciones a problemas comunes, tal como el de encontrar la ruta mas corta que conecta a dos nodos o el ujo mximo que puede moverse por toda una red. Una de las caractersticas importantes de las redes es la facilidad de representarse en forma matricial, lo cual permite que puedan ser manipuladas y procesadas matemticamente. Por el carcter matricial, la herramienta que mejor se presta al desarrollo de los algoritmos de redes, es la hoja electrnica. Sin embargo, existen ciertos algoritmos que requieren un desarrollo a nivel de programacin, en cuyo caso, es mejor recurrir a herramientas que ya incluyen dichos algoritmos predenidos, como es el caso de Sage. Aunque existe una grn cantidad de mtodos y algoritmos para redes, en este curso vamos a enfocarnos solo en los que mayor aplicacin tienen en el campo de la ingeniera. Los algoritmos a cubrir en estas notas son los siguientes: Algoritmo de Transporte Algoritmo de Asignacin Algoritmo de Ruta Ms Corta Algoritmo de Flujo Mximo

4 5

http://es.wikipedia.org/wiki/Matemticas_discretas http://es.wikipedia.org/wiki/Teora_de_grafos

44

5. OPTIMIZACIN LINEAL RESTRINGIDA EN VARIAS V ARIABLES

Figura 5.1.: Ejemplos de Redes

Algoritmo de Arbol Mnimo de Expansin Antes de iniciar con el desarrollo de cada uno de los mtodos, es importante recordarle a los estudiantes que estas notas no cubren la teora, sin embargo, es necesario conocer y entender ciertos conceptos bsicos sobre redes, por lo que se deja al estudiante buscar en el material de referencia u otras fuentes, los siguientes trminos: Grafo

Dirigido No Dirigido Conexo

Figura 5.2.: Tipos de Grafos

45

5. OPTIMIZACIN LINEAL RESTRINGIDA EN VARIAS V ARIABLES

Figura 5.3.: Ejemplo de una red con pesos (distancia) y sus respectivas matrices

No Conexo Fuertemente Conexo Simple Multigrafo

Vrtice o Nodo Arista o Arco Camino o Ruta Arbol Matriz de Adyacencia Matriz de Pesos (Distancias, Costos, etc.)

5.2.1. Modelo de Transporte


El problema de Transporte es uno de los modelos ms comunes en el tema de optimizacin relacionada con redes. Es un problema tpico en los cursos de Operaciones en muchos cursos de pre y post grado en distintos programas acadmicos. Tambin es uno de los ms sencillos de resolver por medio de una herramienta informtica, en especial las hojas electrnicas, ya que su estructura se presta de forma conveniente para dicho propsito. Nuevamente, vamos a desarrollar un ejemplo a travs del cual se desarrollar el modelo y se realizar la solucin del mismo.

La Empresa transportista ABC posee varios camiones usados para acarrear piedra molida para proyectos de carreteras en el municipio. El contratista de carreteras para quien trabaja le ha dado el programa de la semana siguiente. Encontrar el plan ptimo del transporte. A continuacin se muestran las tablas con los datos de requerimientos y costos por carga:

Ejemplo # 5

En realidad, el modelo de transporte es un caso especial de un problema de programacin lineal, por lo que su solucin podra muy bien seguir la secuencia presentada con anterioridad.

46

5. OPTIMIZACIN LINEAL RESTRINGIDA EN VARIAS V ARIABLES

Aunque no vamos a resolver este problema utilizando el modelo general de programacin lineal, es interesante analizarlo desde esa perspectiva. Por tratarse de un problema con 3 fuentes de oferta y 3 puntos de demanda, tendramos un total de 9 variables de decisin. Adems, por cada punto de demanda tendramos una restriccin para cubrir el requerimiento y por cada punto de oferta tendramos una restriccin para no exceder la disponibilidad, lo que hace un total de 6 restricciones. Se deja como ejercicio al estudiante plantear este modelo en la forma estndar de programacin lineal. A continuacin se presenta una representacin de este ejemplo utilizando una notacin de redes:

El grafo anterior, de acuerdo a la taxonoma de grafos que puede consultarse en la teora, corresponde a un grafo dirigido, bipartito, con el respectivo peso (en este caso: costo) de los arcos claramente indicado. A partir del grafo, podemos construr la respectiva representacin matricial para este problema. Por tratarse de un grafo bipartito, es decir, podemos separar los nodos en dos grupos y los arcos van de un grupo hacia el otro, la matriz tendr como las, los nodos de oferta y como columnas los nodos de demanda. Para representar y resolver este problema, utilizaremos la hoja electrnica que ya hemos presentado en secciones anteriores: Calc.

En la imagen de arriba, puede observarse el problema representado en forma matricial en la hoja electrnica. En los problemas de transporte, se acostumbra representar la oferta como las y la demanda como columnas, los totales de la oferta y la demanda se colocan al nal de cada

47

5. OPTIMIZACIN LINEAL RESTRINGIDA EN VARIAS V ARIABLES

la/columna y los costos de transporte entre cada punto de oferta y cada punto de demanda se colocan en las celdas de la matriz. El primer punto a validar en un problema de transporte es el balance entre la oferta y la demanda. Para poder resolver correctamente el problema, debemos asegurarnos que la oferta sea igual a la demanda, o sea, que ambas estn balanceadas. Si esto no se cumple en las condiciones iniciales del problema, es necesario balancearlo, agregando puntos de oferta o demanda cticios (es decir, nodos en el grafo o las/columnas en la matriz). La forma de proceder es la siguiente:

Oferta > Demanda: Se agrega una columna cticia. Esta columna tendr una demanda total que ser igual a

Of erta Of erta

Demanda

Oferta < Demanda: Se agrega una la cticia. Esta la tendr una oferta total que ser igual a

Demanda

En ambos casos, los costos asociados a la la o columna sern igual a cero. En este ejemplo,

Demanda = 175

Of erta = 145por

lo que la diferencia es de 30

cargas semanales. Se deber agregar una la de oferta cticia para compensar la diferencia. Una vez balanceado el modelo, es necesario crear otra matriz a la que llamaremos Matriz Solucin que ser la que contendr nuestras variables de decisin y donde obtendremos la distribucin ptima del problema de transporte. Al igual que hicimos con el modelo de programacin lineal en Calc, es necesario asignar un valor inicial a las variables de decisin, por lo que utilizaremos 1. Los totales de las y columnas deben ser frmulas que contienen la sumatoria de la respectiva la/columna, tal y como se muestra a continuacin:

Ahora estamos listos para denir nuestra funcin de costo total, que estar integrada por la sumatoria de multiplicar cada celda de costo por cada celda conteniendo la variable de decisin. Expresando esto en forma matemtica tenemos la siguiente expresin:

min Costo T otal =

(ci,j xi,j )

En la hoja electrnica, existe una funcin que permite realizar esta operacin entre 2 o ms matrices, es decir, computar el producto de cada pareja de celdas y luego sumarlo. Esta funcin se llama =SUMPRODUCT() y est disponible tanto el Calc como en Excel.

48

5. OPTIMIZACIN LINEAL RESTRINGIDA EN VARIAS V ARIABLES

La celda conteniendo este resultado ser nuestra celda objetivo en el modelo al ingresarlo al solver. Ahora estamos listos para denir el modelo en Solver. Las variables de decisin ser la matriz conteniendo los 1. En el caso de las restricciones, si plantearamos el modelo en la forma tradicional de un problema de programacin lineal, tendramos una restriccin para cada punto de oferta y una para cada punto de demanda (incluyendo las cticias) por lo que si de las y

es el nmero de columnas, el total de restricciones esta dado por

n es el nmero n + m.

En el caso de la solucin por medio de la hoja electrnica, Solver nos permite denir en una sola restriccin, un conjunto de restricciones que tienen el mismo signo. En el caso de la oferta, sabemos que no podemos exceder la cantidad disponible, por lo que todas las restricciones de oferta son del tipo

En el caso de la demanda, la condicin es satisfacer al menos la demanda

en cada punto, por lo que todas las restricciones de demanda son del tipo

En la gura anterior se pueden observar los detalles de la denicin del modelo en Solver. Buscamos minimizar la celda objetivo que contiene la suma producto de la matriz de costos y la matriz de decisin. Las celdas cambiantes son las variables de decisin y tenemos 2 restricciones,

49

5. OPTIMIZACIN LINEAL RESTRINGIDA EN VARIAS V ARIABLES

una para la oferta y una para la demanda. En las opciones de Solver, solo debemos asegurarnos que tengamos marcada la opcin para que asuma que las variables son no negativas, o sea, la ya conocida restriccin de no negatividad. Solver nos proporciona la solucin correcta al modelo como se muestra en la siguiente imagen:

La solucin presentada por Solver nos permite saber exctamente cuanto debemos mover de cada punto de oferta a cada punto de demanda, sin infringir ninguna restriccin y alcanzando el costo total ms bajo posible (de lo contrario no sera

ptimo ).

Cuando se trata de un problema

que inicialmente no se encontraba balanceado, habr cierta cantidad que quedar asignada a un punto de oferta/demanda cticia. En este caso, hay 30 cargas semanales que no van a poder ser cubiertas con la capacidad actual, lo que implica no satisfacer completamente la demanda de A, pero podemos tener la certeza que lo que tenemos disponible est siendo distribudo al menor costo posible. Es posible que existan soluciones ptimas alternas, es decir, una forma diferente de distribur la oferta entre la demanda, sin embargo el costo total ser el mismo. A continuacin se muestra la solucin en forma de grafo, mostrando en cada arco la cantidad que debe moverse de cada nodo oferta a los de demanda:

Este es un ejemplo de un problema tpico de transporte, sin embargo, existen muchos casos que, sin ser problemas relacionados con transporte, pueden modelarse y resolverse utilizando este algoritmo. El algoritmo de transporte usualmente busca la minimizacin del costo total de transporte (tiempo, dinero, distancia, etc.), sin embargo, tambin es posible utilizarlo para el caso en que se desee maximizar algo, ya sea utilidades, ingresos, ventas, etc. El proceso de solucin ser exctamente el mismo, solo asegurndonos de seleccionar correctamente en Solver

50

5. OPTIMIZACIN LINEAL RESTRINGIDA EN VARIAS V ARIABLES

el objetivo que estamos buscando.

5.2.2. Modelo de Asignacin


As como el modelo de transporte representa un caso especial del modelo general de programacin lineal, existe un tipo de problemas que puede verse como un caso especial del modelo de transporte, esto es el Modelo de Asignacin. El problema de asignacin consiste en asignar una serie de trabajos, tareas, actividades, etc. a un grupo de personas, mquinas, lugares, etc. de forma que se pueda optimizar el resultado de dicha asignacin. La representacin grca de este tipo de problema es igual al modelo de transporte, es decir, se trata de un grafo bipartito dirigido, donde cada nodo de un lado del grafo est conectado con todos los nodos del lado opuesto. La nica diferencia existente entre ambos modelos es que en la asignacin, existe una relacin biunvoca en la solucin nal al modelo, de tal forma que un nodo del lado de la oferta solo puede ser asignado a un nodo del lado de la demanda, ya que se entiende que cada nodo tiene una oferta implcita de 1 unidad. Nuevamente, la mejor forma de presentar el modelo y la forma de solucin es a travs de un ejemplo, por lo que vamos a proceder a su desarrollo:

Una empresa que est desarrollando proyectos de construccin de carreteras en 4 ubicaciones diferentes necesita asignar a cada proyecto un ingeniero. La empresa posee ocinas en 5 ciudades diferentes que se encuentran cada una a cierta distancia de cada uno de los proyectos. Cada ingeniero deber desplazarse una vez por da entre la ciudad y el proyecto utilizando para esto un vehculo de la compaa.
Los datos de las distancias entre las ciudades y los proyectos, en Km se presentan a continuacin:

Ejemplo # 6

En principio, este parece un problema bastante sencillo de resolver y de hecho puede que lo sea. Existen ciertos problemas de asignacin que pueden ser resueltos a simple vista. Sin embargo, un enfoque emprico no garantiza encontrar una solucin ptima y esto se complica mientras mas grande es la cantidad de variables involucradas, o sea, mientras mas grande sea la matriz de costos/distancias. Existe un mtodo simplicado para resolver en forma manual un problema de asignacin, denominado el Mtodo Hngaro . Sin embargo, en estas notas nos estaremos limitando a la solucin por medio de computadora. Nuevamente, el primer punto de vericacin para este problema es que la oferta y la demanda se encuentren balanceadas. Como se mencion anteriormente, en un problema de asignacin la oferta y la demanda de cada nodo es igual a una unidad, lo que signica que para que el problema est balanceado, la matriz debe ser cuadrada. El ejemplo anterior consta de 5 ciudades (ingenieros) y 4 proyectos, lo que implica que uno de los ingenieros no ser asignado a ningn proyecto, sin embargo, es necesario balancear la matriz agregando una columna adicional (demanda) para hacer la matriz cuadrada. Al igual que en el modelo de transporte, el costo (distancia) para cada celda en esta columna sera igual a 0. A continuacin se muestra el ejemplo modelado en Calc:

http://es.wikipedia.org/wiki/Algoritmo_hngaro

51

5. OPTIMIZACIN LINEAL RESTRINGIDA EN VARIAS V ARIABLES

Es importante recordar que para la matriz de asignacin (o matriz solucin) los valores de la suma de las y columnas debe ser una formula, no un valor. Tambin, como se ve en la gura, la celda D20 contiene una formula =SUMPRODUCT() para calcular el resultado de la sumatoria del producto individual de las celdas de ambas matrices. Ahora veamos el planteamiento del modelo en Solver:

Podemos ver la celda objetivo, que es la que contiene la suma producto de las matrices, tambin el objetivo que es minimizar dicha celda, las variables de decisin (celdas cambiantes) que son las de la matriz solucin que contienen los 1. La principal diferencia respecto al modelo de transporte se observa al denir las restricciones. Denimos 2 restricciones, una para la columna que contiene las sumatorias de las y otra para la la que contiene las sumatorias de columnas, sin embargo, a diferencia de transporte, aqu igualamos ambas restricciones a 1, lo que quiere decir que Solver deber hacer que solamente una celda por la y una celda por columna sean distintas de cero e igual a uno. Las opciones son las mismas que en el modelo de transporte:

La solucin al modelo se muestra a continuacin:

52

5. OPTIMIZACIN LINEAL RESTRINGIDA EN VARIAS V ARIABLES

Figura 5.4.: Ruta Mas Corta

Como se observa en la matriz de asignacin, en la solucin ptima, el ingeniero de la ciudad 4 es quien queda asignado al proyecto cticio, es decir que en la prctica, ser el nico que no quede asignado a un proyecto. Los otros 4 ingenieros quedan asignados a un proyecto de tal forma que se minimiza la distancia total que deben recorrer entre las ciudades y los proyectos, que ser de 240 kilmetros (o 480 si tomamos el viaje redondo) asumiendo que cada ingeniero visita una vez por da el proyecto.

5.2.3. Modelo de Ruta Ms Corta


El problema de la ruta ms corta es quiz uno de los que mas inters despierta debido a sus obvias aplicaciones. Existen varios algoritmos para resolver dicho problema, de los cuales el ms conocido es el Algoritmo de Dijkstra. El objetivo del algoritmo tambin es bastante obvio: encontrar el camino ms corto entre dos nodos cualesquiera en una red que puede ser dirigida o no dirigida. La gura 5.4 muestra un ejemplo de una red dirigida donde se trata de encontrar el camino o la ruta ms corta entre el nodo 1 y el nodo 9. De la denicin de camino o ruta, sabemos que es una secuencia de arcos y nodos intermedios que conectan dos nodos en una red. En este modelo, nuevamente es muy til el poder representar la red en forma matricial. Para tal propsito, se coloca cada uno de los nodos como las y como columnas, por lo que siempre se obtiene una matriz cuadrada. Cada elemento de la matriz, que es una interseccin entre una la y una columna representa el arco que conecta ambos nodos. En este modelo, ser necesario generar 3 matrices para representar nuestro problema:

http://es.wikipedia.org/wiki/Algoritmo_de_Dijkstra

53

5. OPTIMIZACIN LINEAL RESTRINGIDA EN VARIAS V ARIABLES

Matriz de Adyacencia:

La matriz se compone de 0's y 1's, donde un 1 indica que existe

un arco conectando directamente 2 nodos, es decir, ambos nodos son adyacentes. Si el grafo es no dirigido, es decir, los arcos no tienen un sentido denido sino que los nodos se conectan en ambos sentidos, la matriz de adyacencia ser simtrica respecto a su diagonal principal. En un grafo dirigido los arcos tienen una direccin especca, por lo que la matriz de adyacencia no ser simtrica sino que tendr un 1 en el sentido del arco y un 0 en el sentido contrario.

Matriz de Distancias:

La matriz de distancia se obtiene simplemente sustituyendo los el-

ementos iguales a 1 en la matriz de adyacencia, por la respectiva distancia para dicho arco. Al igual que la matriz de adyacencia, en un grafo dirigido esta matriz ser simtrica respecto a la diagonal principal.

Matriz Solucin:

Si se representara el problema de ruta mas corta como un problema

de programacin lineal, el nmero de variables de decisin de tal problema sera igual al cuadrado del nmero de nodos en la red. La matriz de decisin tiene las mismas dimensiones que las dos matrices anteriores y una vez resuelto el modelo, tendr un 1 si el arco que conecta al nodo la con el nodo columna es parte de la ruta mas corta, de lo contrario tal elemento ser igual a 0. Vamos a realizar un ejemplo para la solucin del modelo de ruta ms corta:

Encontrar la ruta ms corta entre los nodos 1 y 6 en el modelo de red representado por la gura que se muestra a continuacin:
etc. La red puede representar cualquier cosa, la distancia entre distintos puntos, la duracin en tiempo de una serie de actividades en un proceso o proyecto,

Ejemplo # 7

En este ejemplo, puede observarse que se trata de un grafo no dirigido, ya que los arcos no tienen un sentido denido, por lo que podemos asumir que es posible moverse en ambos sentidos. Vamos a representar el modelo en forma de las tres matrices que se mencionaron anteriormente:

54

5. OPTIMIZACIN LINEAL RESTRINGIDA EN VARIAS V ARIABLES

Hasta este momento, todo lo que se ha ingresado al modelo en la hoja electrnica son solamente datos, sin frmulas de clculo . Como se observa, la matriz de decisin (solucin) est compuesta de 1's que son las variables de decisin que la hoja electrnica calcular al momento de la optimizacin por lo que en la solucin ptima, solo algunas de esas variables tendrn un valor de 1 y el resto sern 0. Para completar el modelo, vamos a ingresar algunas frmulas de clculo que necesitamos para ingresarlo a Solver para ser resuelto. El primer clculo que necesitamos hacer es el de la distancia total, que no es mas que el resultado de multiplicar la matriz de distancias por la matriz de decisin, elemento por elemento. Como ya sabemos, esto puede hacerse por medio de la funcin +SUMPRODUCT() como se muestra a continuacin:

Luego, tenemos que realizar varios clculos en la matriz solucin. Vamos a calcular la suma de cada la y cada columna de la siguiente forma:

55

5. OPTIMIZACIN LINEAL RESTRINGIDA EN VARIAS V ARIABLES

Como siguiente paso, vamos a colocar en la parte de abajo de la matriz solucin, una la calculada, que es el resultado de la diferencia entre el total de la y el total de columna. Por ejemplo, debajo de la columna 1 colocamos una frmula para calcular la diferencia entre la suma de la la 1 menos la columna 1. Es importante que el orden sea siempre

f ila

columna.

Por tratarse de una matriz cuadrada con el mismo nmero de las y de columnas y dado que como valores iniciales ingresamos 1's en todas las celdas, esta diferencia siempre va a dar 0, tal y como se muestra a continuacin:

Finalmente, vamos a agregar una ltima la abajo de la que acabamos de ingresar, donde vamos a identicar los 2 nodos entre los cuales vamos a calcular la Ruta Mas Corta. Para esto, colocamos un valor de 1 en el nodo de inicio y un -1 en el nodo de llegada, dejando en 0 todos los dems, tal y como se muestra a continuacin:

56

5. OPTIMIZACIN LINEAL RESTRINGIDA EN VARIAS V ARIABLES

Ahora, estamos listos para ingresar nuestro modelo a Solver para encontrar la solucin. Al igual que en cualquier problema de programacin lineal, tenemos que denir la celda objetivo, las variables de decisin y las restricciones, lo cual en nuestro modelo sera de la siguiente forma:

Celda Objetivo.

Es la celda que contiene la distancia total, es decir, el resultado de multi-

plicar la matriz de distancias por la matriz solucin.

Variables de Decisin. Corresponde a la matriz solucin o matriz de decisin, asegurandonos


de seleccionar solo los elementos de la matriz, no los encabezados de la ni columna.

Restricciones. Este modelo tiene 2 restricciones.

R1: Cada elemento en la matriz de decisin debe ser menor o igual al elemento correspondiente en la matriz de adyacencia. La razn de esta restriccin es garantizar que la solucin solo puede considerar los arcos existentes y no agregar un arco donde no existe, por lo que si dos nodos son adyacentes, el arco entre ellos puede ser parte de la Ruta Mas Corta, puesto que tendr un 1 en la matriz de adyacencia pero si los nodos no son adyacentes, el valor en la matriz de adyacencia es de 0 por lo que no existe un camino entre dichos nodos.

R2: La la que contiene las diferencias entre las sumas de las y columnas debe ser igual a la la donde se identica el nodo de entrada y salida. Esto nos garantiza que se identique solamente una ruta, con un nico punto de entrada y uno de salida.

A continuacin se muestra el cuadro de dilogo para el Solver deniendo el modelo:

En el cuadro de opciones, debemos asegurarnos que est seleccionada la opcin para asumir variables no negativas:

57

5. OPTIMIZACIN LINEAL RESTRINGIDA EN VARIAS V ARIABLES

Con esto estamos listos para que Solver proceda a resolver el modelo, el cual queda como se muestra en la gura siguiente:

Como puede observarse, la matriz solucin presenta solamente 2 celdas con valor de 1 (resaltadas en color verde) y el resto con 0. Las celdas con 1 son, en coordenadas(la,columna): (1,4) y (4,6). Esto quiere decir que la Ruta Mas Corta entre los nodos 1 y 6 inicia en el nodo 1, luego va al nodo 4 y nalmente al nodo 6. En la celda objetivo, podemos ver la longitud total de dicha ruta, que es de 4 unidades de distancia. Al corroborar la red original, podemos constatar que, efectivamente, no existe ningn camino para llegar del nodo 1 al nodo 6 que tenga una longitud menor a 4 unidades. Como en cualquier problema de optimizacin lineal, es posible que existan soluciones alternas, es decir, una ruta diferente, pero podemos tener la certeza que ninguna solucin ser menor a 4 unidades. En este ejemplo en particular, no existe ningn otro camino con una longitud igual a 4 para llegar del nodo 1 al 6.

5.2.4. Modelo de Flujo Mximo


El problema de ujo mximo es uno de los ms comunmente encontrados en aplicaciones de redes para ingeniera. El problema bsicamente consiste en determinar la cantidad mxima de un tipo de material que puede ur entre 2 nodos, llamados comunmente fuente y sumidero, respectivamente, en una red que puede representar distintas situaciones como puede ser: Una red de tuberas Una red de carreteras Una red de computadoras Una red de distribucin elctrica etc.

58

5. OPTIMIZACIN LINEAL RESTRINGIDA EN VARIAS V ARIABLES

El algoritmo ms utilizado para resolver este modelo es el denominado Ford Fulkerson que busca incrementar gradualmente el ujo en cada camino hasta alcanzar el mximo posible en la red. Se deja al lector la lectura y comprensin del algoritmo, ya que nos estaremos limitando al planteamiento y solucin del modelo por medio de una hoja de clculo electrnica. Este algoritmo parte de los siguientes principios: Existe un ujo que viaja desde un unico lugar de origen hasta un unico lugar de destino a travs de arcos que conectan nodos intermedios. Cada arco tiene una capacidad que no puede ser excedida. La capacidad no necesariamente ser la misma para cada arco. La capacidad de un arco en un sentido puede ser distinta a la capacidad en el sentido contrario. A continuacin se presenta un ejemplo de dicho problema, con el cual se desarrollar la solucin al mismo:

Una ciudad es atravesada por una red interestatal de carreteras de norte a sur que le permite alcanzar un nivel de 15000 vehculos/hora en el horario pico. Debido a un programa de mantenimiento general, el cual requiere el cierre de dichas vas, un grupo de ingenieros ha propuesto una red de rutas alternas para cruzar la ciudad de norte a sur, la cual incorpora avenidas importantes. La red propuesta es la siguiente, en donde se indica claramente la cantidad mxima de vehculos (en miles) que pueden circular por dichas vas en cada sentido:
En la grca siguiente puede observarse la red, donde cada arco tiene 2 valores de ujo. Por ejemplo, el ujo del nodo 1 al 2 es de 5 unidades (en este caso, miles de vehculos/hora) mientras que en el sentido contrario (de 2 a 1) el ujo es 0, lo que en este ejemplo, indicara que se trata de una va en un solo sentido.

Ejemplo # 8

Para resolver el modelo de ujo mximo, es necesario representar el problema en forma matricial. Se utilizarn 2 matrices a las cuales denominaremos Matriz de Capacidades y Matriz Solucin, respectivamente.

http://es.wikipedia.org/wiki/Algoritmo_de_Ford-Fulkerson

59

5. OPTIMIZACIN LINEAL RESTRINGIDA EN VARIAS V ARIABLES

Nuevamente, la imagen anterior muestra las 2 matrices iniciales que solamente contienen datos, sin inclur ningn clculo ni frmula en la hoja electrnica. La primera es la matriz de capacidades, que contiene para cada arco conectando un par de nodos, la capacidad en un sentido, tomando en cuenta que las las representan nodos de salida y las columnas, nodos de llegada. As, por ejemplo, la la 1 contiene la capacidad mxima que puede salir del nodo 1, llegando a los nodos 2, 3 y 4, mientras que la columna 2 contiene el ujo mximo que puede llegar de los nodos 1 y 3. La matriz de decisin o matriz solucin contiene los 1's que son simplemente valores iniciales que Solver utilizar para encontrar la solucin al modelo. Ahora debemos proceder a agregar las frmulas de clculo, las cuales para este caso se realizan slamente en la matriz de decisin. Al igual que en el problema de Ruta Ms Corta, se procede a calcular la sumatoria para cada una de las las y para cada una de las columnas. Luego, al igual que en RMC procedemos a calcular, en forma de la, la diferencia entre la sumatoria de las y la sumatoria de columnas, en ese orden,

f ila

columna,

con una sola diferencia

respecto a RMC: para este modelo esta diferencia no se calcula para el nodo de salida (fuente) ni para el nodo de llegada (sumidero) sino solamente para los nodos intermedios. En este ejemplo, queremos calcular el ujo mximo de norte a sur, es decir, entre el nodo 1 y el nodo 7 por lo que no se calcula la diferencia para esos 2 nodos.

Finalmente, agregamos, abajo de la la anterior, los valores de ujo neto para los nodos

60

5. OPTIMIZACIN LINEAL RESTRINGIDA EN VARIAS V ARIABLES

intermedios, que al igual que en el modelo RMC deben ser todos igual a 0.

Con esto, ya podemos proceder a plantear el modelo en Solver. Aqu tambin hay algunas diferencias respecto a los modelos anteriores. Los parmetros del modelo son los siguientes: 1. La celda objetivo corresponde a la celda que contiene la sumatoria de la la 1, en este ejemplo, la celda J14, ya que esto corresponde a todo lo que sale del nodo fuente y que eventualmente llegar al nodo sumidero. 2. Esta celda debe ser maximizada. 3. Las variables de decisin, como siempre, son las que estn en nuestra matriz de decisin o matriz solucin. 4. Las restricciones del modelo pueden plantearse en 2 pasos:

a) b)

La matriz de decisin debe ser menor o igual a la matriz de capacidad. El ujo neto en los nodos intermedios debe ser igual a 0

5. Las variables de decisin deben ser no negativas El modelo planteado en Solver se muestra a continuacin:

Al resolver el modelo, la solucin se muestra en la matriz de decisin:

61

5. OPTIMIZACIN LINEAL RESTRINGIDA EN VARIAS V ARIABLES

En la matriz de decisin puede verse claramente que el ujo mximo a travs de esta red es de 14000 vehculos/hora, lo cual es insuciente para manejar la capacidad de la red original. Aunque en la matriz tambin puede verse el ujo en cada uno de los arcos, esto puede apreciarse mejor cuando lo representamos grcamente, donde puede comprobarse que ninguno de los ujos individuales excede la capacidad del arco respectivo:

5.2.5. Arbol Mnimo de Expansin


Como se indic anteriormente, el estudiante debi haber realizado una revisin bibliogrca para algunos trminos importantes en el lenguaje de grafos. Como resultado de dicha revisin, seguramente encontr el concepto de Arbol, el cual, en el contexto de Teora de Grafos, se reere a un grafo conexo que no contiene ciclos. El algoritmo de Arbol Mnimo de Expansin es de suma utilidad en aplicaciones de ingeniera relacionadas a la planicacin de instalacin de servicios pblicos, tales como: Redes de carreteras Redes de cableado para elctricidad, telefona, CATV, datos, etc. Redes de distribucin de agua potable, gas, etc. El objetivo de dicho algoritmo es interconectar un conjunto de nodos de tal forma que el costo total (la suma de los costos de los arcos) para dicha conexin sea mnima. Hay que recordar que en el contexto de optimizacin, el trmino costo es un concepto genrico que puede representar

62

5. OPTIMIZACIN LINEAL RESTRINGIDA EN VARIAS V ARIABLES

Figura 5.5.: Ejemplos de rbol

cualquier caracterstica que se desea minimizar, lo que puede referirse a la cantidad de material requerido (cable, asfalto, tubera, etc.). El algoritmo mas comunmente utilizado para encontrar un rbol de expansin mnima es el denominado Algoritmo de Kruskal

10 por la forma como se desarrolla, buscando en cada paso denominados algoritmos voraces
la mejor opcin disponible. Esto hace que la aplicacin de dicho algoritmo sea muy sencilla de

9 . Este es un algoritmo que cae en la categora de los

realizar manualmente. Nuevamente se deja al estudiante la tarea de leer y entender el algoritmo en las fuentes de consulta disponibles. Aunque es posible aplicar programacin lineal para resolver el problema del rbol mnimo de expansin, para esto se requiere de algunos conceptos (teora de dualidad, relajacin, etc.) que estn fuera del alcance de estas notas por lo que para la solucin de este problema, vamos a recurrir a una herramienta diferente a las que hemos utilizado hasta el momento: Sage. Sage es, como ya se mencion, una de las herramientas ms poderosas de clculo cientco disponibles en la actualidad, que integra a una amplia variedad de aplicaciones en un nico interfase. Una de las aplicaciones para las cuales Sage ya viene preparado, es la de Teora de Grafos. Sage permite la creacin, visualizacin y manipulacin de grafos y ya incluye una gran variedad de algoritmos para los mismos. Uno de los algoritmos que ya vienen por defecto en Sage es el de Arbol Mnimo de Expansin. Para utilizarlo, simplemente debemos crear la red para la cual deseamos calcular el rbol. Vamos a desarrollar un ejemplo sencillo donde se demostrar paso a paso el uso de la herramienta para la aplicacin de este algoritmo.

La ciudad de Vancouver est planicando el desarrollo de una nueva linea en sistemas de trnsito. El sistema debe conectar 8 puntos distintos entre residencias, centros comerciales y otros puntos importantes. El departamento de planicacin de trnsito de la ciudad necesita seleccionar un conjunto de rutas que conecten los distintos puntos al menor costo posible. La red seleccionada debe considerar la factibilidad y el costo de cada ruta.
A continuacin se muestra la red para este ejemplo. Los nodos en esta red representan los distintos puntos que deben interconectarse por medio del sistema. Los arcos entre los nodos indican la factibilidad de construr la lnea entre cada par de nodos, as, por ejemplo, el arco entre los nodos 1 y 3 indica que es factible la construccin mientras que la ausencia de un arco entre los nodos 1 y 4 indica que no es factible construir una linea que una directamente esos 2 puntos. Los valores en los arcos indican el costo (en millones de US$) de construir la lnea en ese arco en particular. Ahora vamos a proceder a representar el modelo de red en Sage. Existen distintas formas de representar un grafo en Sage. Podemos hacerlo por medio de una matriz de adyacencia, una lista de arcos y un diccionario de arcos y nodos entre otras. Por simplicidad, vamos a escoger la

Ejemplo # 9

9 10

http://es.wikipedia.org/wiki/Algoritmo_de_Kruskal http://es.wikipedia.org/wiki/Algoritmo_voraz

63

5. OPTIMIZACIN LINEAL RESTRINGIDA EN VARIAS V ARIABLES

segunda, es decir, vamos a representar el grafo en forma de una lista de arcos. Cada elemento de la lista estar formado por una triada de la forma (X, Y, Z) donde X y Y representan los nmeros de los nodos y Z representa el peso (costo) del arco que los une.

As, por ejemplo, el arco entre el nodo 1 y el 3 se representara de la forma (1,3,33) y el arco entre 1 y 2 quedara de la forma (1,2,28). Para denir una lista en Sage, encerramos los elementos entre corchetes [] separndolos por comas. Le daremos a la lista un nombre, que en este caso ser arcos, de la siguiente forma:

64

5. OPTIMIZACIN LINEAL RESTRINGIDA EN VARIAS V ARIABLES

65

5. OPTIMIZACIN LINEAL RESTRINGIDA EN VARIAS V ARIABLES

Sage nos muestra el arbol indicando claramente los vrtices que lo forman y el peso de cada uno, as como el peso (costo) total del mismo que es de 236 que en este ejemplo corresponde a millones de US$. La grca siguiente muestra como quedara formado el sistema de trnsito para la ciudad con la solucin obtenida:

Todos los nodos de la red han sido conectados por medio del rbol mnimo de expansin con lo cual se optimiza el uso de los recursos para la construccin del sistema de trnsito requerido.

66

6. OPTIMIZACIN NO LINEAL NO RESTRINGIDA EN VARIAS VARIABLES


Suponga que se est desarrollando un proyecto de carreteras en 4 frentes distintos, A, B, C y D que tienen coordenadas en un plano cartesiano igual a (2,3), (7,2), (5,4) y (4,2) respectivamente. Es necesario establecer una centro de operaciones para abastecer de insumos los 4 frentes. Cada frente tiene distinta demanda de insumos por lo que se ha estimado que se tienen que realizar 9 viajes diarios al frente A, 5 viajes diarios al frente B, 3 viajes al frente C y 6 viajes al frente D cada da. Se necesita determinar las coordenadas para establecer el centro de operaciones de manera que la distancia total recorrida cada da a los 4 frentes sea mnima.
En un problema de este tipo, se puede utilizar dos tipos de distancias como funcin a minimizar, la Distancia Euclidiana Ejemplo 10

1 o la Distancia Manhattan2 . Para

desarrollar este ejemplo, estaremos utilizando la distancia euclidiana. Como primer paso, es interesante ver la ubicacin en el plano cartesiano de los puntos que representan los frentes. Para esto, podemos utilizar las maravillosas funcionalidades de gracacin de Sage que nos permite visualizar esto de una forma rpida y sencilla. A continuacin se muestra la sesin de Sage conteniendo las instrucciones para hacer esto:

1 2

http://es.wikipedia.org/wiki/Distancia_euclidiana http://es.wikipedia.org/wiki/Geometra_del_taxista

67

6. OPTIMIZACIN NO LINEAL NO RESTRINGIDA EN V ARIAS VARIABLES

El objetivo en este ejemplo es minimizar la distancia total euclidiana, la cual puede ser expresada por la siguiente ecuacin:

DT =
Donde

(x xi )2 + (y yi )2 xi y yi son
las coordenadas de

son las coordenadas del centro de operaciones y

cada uno de los frentes. Al sustitur los valores para este ejemplo, la distancia total queda de la siguiente manera:

DT =

(x 2)2 + (y 3)2 + (x 7)2 + (y 2)2 + (x 5)2 + (y 4)2 + (x 4)2 + (y 2)2

Como puede observarse, la distancia total corresponde a una funcin claramente no lineal en 2 variables. Ahora, procedemos a ingresar la funcin de Distancia Total en Sage para despus poderla optimizar, utilizando para ello la rutina de optimizacin no lineal que Sage ya tiene predenida.

68

6. OPTIMIZACIN NO LINEAL NO RESTRINGIDA EN V ARIAS VARIABLES

Como puede observarse en la gura anterior, el punto que seala la ubicacin ptima para el Centro de Operaciones se encuentra en las coordenadas (3.94, 2.19) lo que se ubica muy cercano al punto D cuyas coordenadas son (4,2). Esto quiere decir que al ubicar el Centro de Operaciones en esas coordenadas, se estar minimizando la distancia total que se recorre cada da a cada uno de los frentes. La mayora de algoritmos para resolver problemas de optimizacin no lineal en varias variables utilizan mtodos basados en el clculo de gradientes para las funciones, lo cual implica el clculo y evaluacin de derivadas parciales. Existen diversos mtodos para hacer esto, la mayora utiliza tcnicas numricas. Estas tcnicas presumen que la funcin objetivo es derivable y tiene carac-

69

6. OPTIMIZACIN NO LINEAL NO RESTRINGIDA EN V ARIAS VARIABLES

teristicas suaves, es decir, gradientes moderados. En el ejemplo anterior, podemos visualizar la funcin que estamos optimizando ya que Sage tambin permite realizar grcos en 3D y en este caso, por tratarse de una funcin de 2 variables, generar una supercie tridimensional. Veamos la grca:

De hecho, con Sage podemos manipular la graca en 3D, rotndola para verla desde distintos ngulos, lo cual nos puede dar una mejor idea de donde puede estar el valor ptimo. Cuando las funciones a minimizar no son suaves sino que presentan demasiados ptimos locales, los mtodos basados en clculo no son la mejor alternativa. En estos casos se deben utilizar tcnicas heursticas, de las cuales se habla un poco en el captulo 8.

70

7. OPTIMIZACIN NO LINEAL RESTRINGIDA ENVARIAS VARIABLES


En el caso de la optimizacin no lineal con restricciones en varias variables, entramos en un territorio mas escabroso y complejo desde la perspectiva del anlisis matemtico, ya que en este caso tampoco se cuenta con un algoritmo que funcione de una manera universal para cualquier tipo de problema. Los mtodos para resolver este tipo de problemas, por tratarse de funciones no lineales y en varias variables son inevitablemente basados en clculo diferencial, aunque estos no necesariamente garantizan la solucin ecaz de cualquier problema. Debido a muchas condiciones de complejidad que se presentan, la solucin de estos problemas no es trivial y de hecho, hasta hace relativamente muy poco tiempo se empez a estudiar estos problemas y a desarrollar metodologas de solucin, muchas de ellas quedan fuera del alcance de estas notas por lo que no sern abordadas. En cambio, nos enfocaremos en algunos problemas relativamente sencillos pero que demuestran la forma como estos problemas pueden ser abordados. En el caso de problemas demasiado complejos para ser resueltos en forma analtica, se requiere el uso de mtodos numricos o tcnicas heursticas de las cuales se habla un poco en el captulo 8. Para la optimizacin no lineal con restricciones pueden presentarse dos situaciones respecto al tipo de restricciones: Restricciones de igualdad Restricciones de desigualdad Se tratarn ejemplos sencillos de cada una de ellas.

7.1.

RESTRICCIONES DE IGUALDAD
1

Uno de las metodologas ms utilizadas ante esta situacin y que seguramente el lector recordar de sus cursos de clculo multivariado es el de los Multiplicadores de Lagrange . Al igual que en los casos anteriores, se deja al estudiante la inquietud de revisar la bibliografa pertinente para cubrir los fundamentos tericos de la metodologa, pero baste decir que este es uno de los mtodos para los cuales contar con una herramienta informtica de manipulacin algebraica es de suma utilidad, puesto que el mtodo requiere realizar varias operaciones sobre objetos algebraicos, por ejemplo, derivadas parciales y solucin de ecuaciones no lineales, lo cual puede complicarse bastante al momento de realizarlo de forma manual. La forma general del mtodo de Multiplicadores de Lagrange es la siguiente: Por ejemplo, para determinar los valores mnimos y mximos de la funcinf (x, y, z ) sujeta a la restriccin

g (x, y, z ) = k

determinar todos los valores de

x, y, z

tales

que:

f (x, y, z ) = g (x, y, z )
Recordando que

se reere al gradiente de una funcin, es decir, el vector formado por

las derivadas parciales de la funcin respecto a cada una de sus variables, como sigue:

f =

f f ( f x , y , z )
De esto se obtiene el Lagrangiano que queda de la siguiente forma:

http://es.wikipedia.org/wiki/Multiplicadores_de_Lagrange

71

7. OPTIMIZACIN NO LINEAL RESTRINGIDA ENV ARIAS VARIABLES

L = f (g k )
Y luego derivando parcialmente esta expresin respecto a cada una de las variables resolver para encontrar la solucin al problema original, de la forma:

x, y, z,

se obtiene un sistema de ecuaciones simultneas, muchas veces no lineales, las cuales se deben

L =0 x L =0 y L =0 z L =0
Por lo que en el caso de una funcin de 3 variables y una restriccin, se requiere resolver un sistema de 4 ecuaciones simultneas no lineales. Por cada restriccin que se tenga se agregar un multiplicador y por ende, una variable y una ecuacin ms al sistema. Vamos a desarrollar un ejemplo para ayudar a aclarar este procedimiento, apoyndonos en Sage para realizar todo el proceso. El ejemplo es el siguiente:

Cuales deben ser las dimensiones de un envase para leche de forma rectangular, volumen de 512 cm3 y costo mnimo, si el material de los lados de la caja cuestan 10 centavos el centrimetro cuadrado y el material de la tapa y el fondo cuestan 20 centavos el centmetro cuadrado.
En este caso, vamos a realizar un diagrama para representar la caja de carton y poder asignar una variable a cada una de las dimensiones de la caja: En este caso, lo que se desea es minimizar la funcin de costo total del material necesario para el envase, el cual estara dado por la siguiente ecuacin:

Ejemplo 11

CT = 10 (2xz ) + 10 (2yz ) + 20 (2xy )

CT = 20xz + 20yz + 40xy


Mientras que la restriccin en este caso se reere al volumen total que el envase debe contener:

V T = xyz = 512
Ahora aplicando el lagrangiano a las 2 ecuaciones anteriores nos queda de la siguiente manera:

L = CT (V T 512)
Ahora podemos utilizar Sage para resolver el modelo:

72

7. OPTIMIZACIN NO LINEAL RESTRINGIDA ENV ARIAS VARIABLES

Como se puede ver, Sage nos proporciona todas las soluciones al sistema de ecuaciones, incluyendo las soluciones complejas. Para efectos prcticos solo nos interesa la nica solucin real positiva por lo que en este caso, las dimensiones ptimas para el envase son

x = 6.35cm,y =

6.35cm

z = 12.7cm.

En resumen, Sage nos permite resolver un problema relativamente complejo sin tener que preocuparnos por realizar el proceso de derivacin parcial y luego de solucin de las ecuaciones simultneas no lineales, lo cual puede llegar a ser bastante engorroso y complejo para ciertos problemas.

7.2.

RESTRICCIONES DE DESIGUALDAD

73

8. MTODOS HEURSTICOS PARA OPTIMIZACIN

74

Parte III.

MODELOS DE LINEAS DE ESPERA

75

Potrebbero piacerti anche