Академический Документы
Профессиональный Документы
Культура Документы
HERRAMIENTAS INFORMTICAS
Versin 1.1
Ing. M.Sc. Antonio Medrano
1 de abril de 2015
ndice general
I. ASPECTOS BSICOS
1. INTRODUCCION
2.1.
Tipos de Optimizacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2.
3. HERRAMIENTAS INFORMTICAS
3.1.
3.2.
12
12
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
13
3.2.1.
Maxima . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
13
3.2.2.
14
3.2.3.
SmathStudio
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
15
3.2.4.
Sage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
16
3.2.5.
Octave . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
16
3.2.6.
Scilab
18
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
20
4.2.
22
4.3.
27
4.3.1.
31
4.4.
. . . . . . . . . . . . . . . . . . . . . .
21
4.1.
Caso Especial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Ejercicios
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.2.
5.3.
21
34
35
Programacin Lineal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
35
5.1.1.
. . . . . . . . . . . . . . . . . . . . . . .
38
5.1.2.
41
5.1.3.
. . . . . . . . . . . . . . . . . . . . . . . . .
47
Modelos de Redes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
48
5.2.1.
Modelo de Transporte
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
50
5.2.2.
Modelo de Asignacin
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.2.3.
5.2.4.
55
. . . . . . . . . . . . . . . . . . . . . . . . . .
58
. . . . . . . . . . . . . . . . . . . . . . . . . . .
63
5.2.5.
68
5.2.6.
. . . . . . . . . . . . . . . . . . . . . . . . .
71
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
73
Ejercicios
5.3.1.
. . . . . . . . . . . . . . . . . . . . . . . .
73
5.3.2.
. . . . . . . . . . . . . . . . . . . . . . .
73
5.3.3.
. . . . . . . . . . . . . . . . . . . . . . .
73
5.3.4.
73
ndice general
5.3.5.
73
5.3.6.
73
Ejercicios
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
74
77
78
7.1.
RESTRICCIONES DE IGUALDAD
. . . . . . . . . . . . . . . . . . . . . . . . .
78
7.2.
RESTRICCIONES DE DESIGUALDAD . . . . . . . . . . . . . . . . . . . . . . .
80
7.3.
Ejercicios
84
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
85
86
ndice de guras
1.1.
. . . . . . . . . . . . . . . . . . . . . . . . . . .
2.1.
2.2.
11
3.1.
Imagenes de Maxima . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
14
3.2.
Solver de Calc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
15
3.3.
Imagen de SmathStudio
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
16
3.4.
Imagenes de Sage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
17
3.5.
Imagenes de Octave
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
18
3.6.
Imagenes de Scilab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
19
5.1.
Ejemplos de Redes
49
5.2.
Tipos de Grafos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
50
5.3.
. . . . . . .
50
5.4.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
58
5.5.
Ejemplos de rbol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
69
7.1.
81
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
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.
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
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:
Multivariada:
Por el grado de las variables de decisin y sus relaciones en la funcin objetivo y/o las
restricciones:
Lineal:
a 1 y las operaciones que se realizan entre ellas son solamente suma y resta.
No Lineal:
No Restringida:
Restringida:
o mas restricciones.
Por el dominio de las variables de decisin:
http://en.wikipedia.org/wiki/Mathematical_optimization
Continua:
Discreta:
Las variables solo pueden tomar ciertos valores. Un caso especial es el caso
de la optimizacin entera.
Combinatoria:
junto 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:
Multiobjetivo:
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.
Entender el problema:
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:
cin 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.
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
X = x1 , x2 , x3, ...segn
el modelo.
4.
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
Objetivo. Expresado en forma matemtica:
cin se reere a cualquier obstculo que nos impide obtener un resultado ideal o deseado.
Generalmente las restricciones se originan de las siguientes situaciones:
a)
Limitaciones de recursos disponibles, tales como materia prima, tiempo, espacio, personal, etc.
b)
Requerimientos que deben ser cumplidos, tales como cantidades mnimas de produccin, especicaciones de producto, calidad, etc.
c)
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:
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
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.
10
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.
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.
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
4 o MathCad5 .
ca , Maple
http://maxima.sourceforge.net/
3
4
5
http://www.wolfram.com/
http://www.maplesoft.com/products/maple/
http://www.ptc.com/product/mathcad/
14
3. HERRAMIENTAS INFORMTICAS
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
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
17
3. HERRAMIENTAS INFORMTICAS
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
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.
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.
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.
21
Ejemplo # 1
V =
2
D
2
A=2
2
D
2
H=
4V
D2
+DH
4.2.
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
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
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
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.
25
Ejemplo # 2
26
4.3.
27
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
29
Ahora mostraremos el desarrollo del Ejemplo # 2 de una forma mas breve, sin inclur todo el
detalle del ejemplo anterior:
30
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.
visualizar el problema utilizando algun tipo de ayuda como un diagrama. Veamos como se vera
esta situacin diagramada:
31
Ejemplo # 3
Resulta evidente por la grca que el valor mnimo de la funcin se encuentra cerca de 2. Para
estar seguros, necesitamos seguir el procedimiento usual, primero derivamos la funcin objetivo
respecto a x y luego resolvemos la primera derivada para x y eso debera darnos el valor mnimo.
Veamos que sucede cuando lo hacemos en Sage:
32
Que sucede? Parece que la solucin a la primera derivada es otra funcin de x en lugar de ser
un nmero real. Esto tiene una explicacin simple, Sage no pudo resolver la ecuacin en forma
simblica. Esto es algo relativamente comn. Cuando se trabaja con expresiones algebraicas,
algunos programas computarizados son incapaces de encontrar una solucin en forma simblica
o lo que se conoce como Forma Cerrada . Cuando esto sucede, no hay porque preocuparse, ya
que siempre hay formas alternativas de encontrar los valores que buscamos. Para esto, el lector
seguramente recordar sus cursos de Mtodos Numricos en los cuales se utilizaban algoritmos
iterativos para resolver una gran cantidad de problemas matemticos, desde la solucin de ecuaciones, pasando por la integracin numrica hasta llegar a la solucin de ecuaciones diferenciales y
otras. Nuevamente, este material no cubre la teora detrs de dichos algoritmos, pero s podemos
hacer uso de las herramientas informticas disponibles.
Para resolver este problema, lo que necesitamos es encontrar la solucin (raz) de una ecuacin
no lineal de la forma
f (x)=0. Para esto existen una serie de algoritmos numricos como el mtodo
de Newton o Newton Raphson. Afortunadamente, Sage nos permite usar estos mtodos sin tener
que programarlos nosotros mismos.
Podemos ver que Sage encuentra fcilmente la solucin en forma numrica, la cual se encuentra
casi exctamente en 2, ya que la pequea diferencia es atribuda a un error de redondeo en el
clculo numrico.
Sage nos ofrece casi siempre, mas de una forma de resolver los distintos problemas a los que
nos enfrentamos. En el caso del ejemplo en cuestin, existe una forma mas directa de encontrar
el valor ptimo (mnimo, en este caso) de la funcin sin necesidad de recurrir al mtodo de la
primera derivada. Para esto podemos utilizar una funcin especial de Sage directamente sobre
la funcin objetivo como se ve a continuacin:
Esta funcin es sumamente til cuando se desea optimizar funciones no lineales en varias
http://es.wikipedia.org/wiki/Forma_cerrada_(matemtica)
33
variables, como se ver mas adelante, sin embargo, la limitacin de este enfoque es que solo
puede utilizarse para minimizar.
4.4.
Ejercicios
34
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
Lineal la cual fue aplicada para resolver problemas reales de optimizacin en el uso de recursos
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.
5.1.
Programacin Lineal
2 que es el que
3 que tambin
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:
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.
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
35
Ejemplo # 3
Calidad Media
Baja Calidad
Costo/Operacin
Mina A
1 ton/dia
3 ton/dia
5 ton/dia
2000
Mina B
2 ton/dia
2 ton/dia
2 ton/dia
2000
Requerimiento
80 ton
160 ton
200 ton
/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.
36
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.
).
R1 :
1 xA + 2 xB 80
R2 :
3 xA + 2 xB 160
R3 :
5 xA + 2 xB 200
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:
37
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.
38
Ejemplo # 4
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.
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.
Tiempo Req.
Ganancia
Prod. mn
Cem en Polvo
0.24 min/b
$3/b
500 b/da
Cem Granul
0.48 min/b
$4/b
Total
Prod. max
Tiempo Disp.
1600 b/da
8 h (480 m)
39
Segundo, debemos cumplir con una cantidad mnima de bolsas de cemento en polvo por dia.
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
40
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.
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:
41
42
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.
43
44
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.
45
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:
46
47
Como puede verse, los resultados obtenidos son exctamente los mismos que para los anteriores
programas, aunque en el caso de una de las variables de decisin, Sage proporciona una respuesta
14 , que es una cantidad muy poco signicativa, esto debido a la forma como
Sage maneja el aritmtica de punto otante pero la explicacin de esta diferencia est fuera del
alcance de estas notas.
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
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,
4
5
http://es.wikipedia.org/wiki/Matemticas_discretas
http://es.wikipedia.org/wiki/Teora_de_grafos
48
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
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
49
Figura 5.3.: Ejemplo de una red con pesos (distancia) y sus respectivas matrices
Conexo
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.)
50
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:
51
Ejemplo # 5
Oferta > Demanda: Se agrega una columna cticia. Esta columna tendr una demanda
Of erta
Demanda
Oferta < Demanda: Se agrega una la cticia. Esta la tendr una oferta total que ser
igual a
Demanda
Of erta
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:
52
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:
PP
(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.
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
n es el nmero
n + m.
de oferta y una para cada punto de demanda (incluyendo las cticias) por lo que si
de las y
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 cada punto, por lo que todas las restricciones de demanda son del tipo
53
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,
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 ).
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
54
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
el objetivo que estamos buscando.
55
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:
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:
http://es.wikipedia.org/wiki/Algoritmo_hngaro
56
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:
57
Matriz de Adyacencia:
Matriz de Distancias:
mentos 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:
Encontrar la ruta ms corta entre los nodos 1 y 6 en el modelo de red representado por la
7
http://es.wikipedia.org/wiki/Algoritmo_de_Dijkstra
58
Ejemplo # 7
entre distintos puntos, la duracin en tiempo de una serie de actividades en un proceso o proyecto,
etc.
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:
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:
59
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:
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:
60
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:
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.
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
61
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.
En el cuadro de opciones, debemos asegurarnos que est seleccionada la opcin para asumir
variables no negativas:
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
62
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.
Ahora procederemos a resolver el mismo ejemplo en Sage para ilustrar la facilidad de trabajar
con los algoritmos de redes en esta poderosa y versatil herramienta.
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. 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 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.
63
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.
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.
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
64
Ejemplo # 8
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,
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
65
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)
66
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:
Nuevamente procederemos a mostrar lo sencillo que es hacer el mismo ejercio pero utilizando
Sage.
67
http://es.wikipedia.org/wiki/Algoritmo_de_Kruskal
http://es.wikipedia.org/wiki/Algoritmo_voraz
68
Ejemplo # 9
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.
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:
69
ge
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:
70
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.
solucin conlleva. En forma resumida, el problema se puede describir de la siguiente forma: dado
un conjunto de ciudades (o nodos en un grafo) que se encuentran conectados y se conocen las
distancias, se necesita encontrar un tour (saliendo de uno de los nodos o ciudades y volviendo al
mismo nodo de partida) de manera que se visiten todos los nodos (ciudades) y que la distancia
total recorrida sea mnima. Para entender la forma como la complejidad de solucin de este problema crece, pensemoslo de la siguiente forma: si queremos resolver el problema para 5 ciudades,
debemos primero elegir la ciudad de partida, esto nos da 5 posibilidades, luego, tenemos 4 posibilidades para elegir la ciudad siguiente a visitar, despus tenemos 3 posibilidades para la ciudad
siguiente y as sucesivamente. Como podr apreciar el lector, se trata de un problema que crece
en forma factorial respecto al nmero de ciudades a visitar. En realidad, ya que la distancia entre
las ciudades es la misma en ambos sentidos (de A a B es igual que de B a A) y que cada ruta
constituye un ciclo, por lo que el punto de partida no es importante, el nmero total de rutas
posibles es igual a
(n1)!
2 .
12 . Esta
terminologa pertenece a la teora de complejidad computacional, que es algo que est fuera del
alcance de estas notas, sin embargo, basta decir que no existe un algoritmo que garantice poder
encontrar una solucin ptima. Para problemas de un tamao relativamente pequeo (algunas
decenas o incluso cientos de nodos) puede utilizarse algunos algoritmos que son capaces de
encontrar el tour ptimo, por ejemplo, programacin dinmica, branch and bound (ramicacin y
acotamiento) y otros. Afortunadamente, Sage nos facilita la vida para solucionar estos problemas
sin tener que preocuparnos de la operatoria.
Para demostrar este tipo de problemas, lo haremos por medio de un ejemplo:
La tabla siguiente muestra las distancias (en km) entre algunas de las principales ciudades
11
12
http://es.wikipedia.org/wiki/Problema_del_viajante
http://es.wikipedia.org/wiki/NP-completo
71
Ejemplo # 9
europeas. Si un turista mochilero desea realizar un tour visitando todas las ciudades, cual
debe ser el orden en que debera hacerlo para recorrer la mnima distancia total?
Para
proceder a resolver este problema, es necesario cambiar un poco la estrategia respecto a los
otros modelos de redes que hemos resuelto anteriormente. En los modelos anteriores, nosotros
le indicamos a Sage en forma explcita cada uno de los arcos de la forma (inicio, n, distancia),
sin embargo, en este tipo de problemas, esto sera poco prctico, ya que la cantidad de arcos
crecera en forma cuadrtica respecto al nmero de ciudades a visitar, por lo que, aunque en este
problema es manejable ya que son solamente 6 ciudades, en un problema mayor sera demasiado
engorroso.
Vamos entonces a atacar el problema de una forma mas inteligente, aprovechando las ventajas
que Sage nos da al hacer uso de las estructuras de programacin de Python. Para ello, primero
vamos a ingresar la matriz de distancias en su forma puramente matricial, de la siguiente forma:
72
Notese que por tratarse de un grafo dirigido, Sage dibuja dos arcos entre cada par de nodos,
uno en cada sentido, lo cual sera importante en caso que las distancias fueran diferentes, lo cual
no es el caso, sin embargo para la solucin de este tipo de modelos, siempre debemos declararlo
como un grafo dirigido.
La solucin nos muestra el tour ptimo entre las 6 ciudades, el cual es independiente del punto
de inicio (igual al de nal) ya que se puede iniciar en cualquiera de los 6 nodos y seguir el orden
indicado por el grafo. Al regresar al nodo (ciudad) de partida, se habr recorrido una distancia
total de 4773 km que es el valor mnimo de todos los posibles tours.
5.3.
Ejercicios
5.3.1.
5.3.2.
5.3.3.
5.3.4.
5.3.5.
5.3.6.
Ejercicios
Ejercicios
Ejercicios
Ejercicios
Ejercicios
Ejercicios
Programacin Lineal
Modelo de Transporte
Modelo de Asignacin
Ruta Ms Corta
Flujo Mximo
Arbol Mnimo de Expansin
73
6. OPTIMIZACIN NO LINEAL NO
RESTRINGIDA EN VARIAS VARIABLES
Al igual que en el caso de la optimizacin no restringida en una variable, este tipo de problemas
pertenece al campo del clculo diferencial, aunque en este caso se trata de clculo multivariado. Existe una diversidad de mtodos para resolver estos problemas y la mayora involucran
Ejemplo
10
1
2
3
http://es.wikipedia.org/wiki/Gradiente
http://es.wikipedia.org/wiki/Distancia_euclidiana
http://es.wikipedia.org/wiki/Geometra_del_taxista
74
El objetivo en este ejemplo es minimizar la distancia total euclidiana, la cual puede ser expresada por la siguiente ecuacin:
DT =
Donde
Xq
(x xi )2 + (y yi )2
xi y yi son
las coordenadas de
cada uno de los frentes. Al sustitur los valores para este ejemplo, la distancia total queda de la
siguiente manera:
75
DT =
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.
Como puede observarse en la gura anterior, el punto que seala la ubicacin ptima para el
76
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.
Como se mencion al inicio de esta seccin, 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 caracteristicas 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.
6.1.
Ejercicios
77
7. OPTIMIZACIN NO LINEAL
RESTRINGIDA EN VARIAS 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
Uno de las metodologas ms utilizadas ante esta situacin y que seguramente el lector recor-
g(x, y, z) = k
x, y, z
tales
que:
f (x, y, z) = g(x, y, z)
Recordando que
las derivadas parciales de la funcin respecto a cada una de sus variables, como sigue:
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
78
f =
L = f (g k)
Y luego derivando parcialmente esta expresin respecto a cada una de las variables
x, y, z,
se obtiene un sistema de ecuaciones simultneas, muchas veces no lineales, las cuales se deben
resolver para encontrar la solucin al problema original, de la forma:
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.
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:
79
Ejemplo
11
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
y
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
Optimo Local:
de valores cercanos . En otras palabras, se reere a un valor ptimo en una regin especca
del dominio de la funcin. Una funcin puede tener muchos ptimos locales. Para encontrar
un ptimo local puede recurrirse a mtodos basados en gradientes y buscar el punto en el
http://en.wikipedia.org/wiki/Local_optimum
80
Optimo Global:
3
su dominio . Como se mencion anteriormente, una funcin puede tener varios ptimos
locales por lo que el ptimo global ser el mximo (o mnimo) de todos los ptimos locales.
La bsqueda de ptimos globales es un problema sumamente complejo ya que no existen
algoritmos que garanticen poder encontrarlos. Para encontrar ptimos locales generalmente
se debe recurrir a algoritmos heursticos y que muchas veces son diseados para un problema
especco por lo que depender del tipo de problema y sus caractersticas particulares. Estos
algoritmos se basan en explorar en forma selectiva todo el espacio de soluciones.
Al igual que en la seccin anterior, vamos a presentar un ejemplo relativamente sencillo de aplicacin de optimizacin no lineal multivariada con restricciones de desigualdad, esto principalmente
para demostrar el uso de las herramientas para su solucin, especcamente Sage que ya viene
preparado con algoritmos para este tipo de problemas. La clave del xito en la solucin de estos
problemas es el correcto planteamiento del modelo matemtico, algo en lo cual ya hemos abundado con ejemplos a lo largo de estas notas y la seleccin de la herramienta para su solucin, que
en este caso es Sage. Veamos un ejemplo especco de un problema no lineal en varias variables
y con restricciones de desigualdad:
Una compaa petrolfera debe determinar cuntos barriles de petrleo debe extraer en los
Ejemplo
12
x1
petrleo y se puede gastar como mximo 250 millones de Euros en la extraccin. Formular
el problema de optimizacin para determinar cunto debe extraer durante los prximos 2
aos.
En este caso, el problema nos da sucientes indicios sobre el objetivo, ya que se nos
proporciona informacin de precio de venta por barril as como el costo de extraer el petrleo.
Basado en esto podemos inferir que la compaa buscar maximizar su ganancia. Las variables
http://en.wikipedia.org/wiki/Global_optimum
81
de decisin tambin son bastante obvias puesto que el enunciado del problema prcticamente
nos da la pauta que debemos decidir cuntos millones de barriles extraer el primer ao (lo que
se denomina como
por
x2 .
x1 y
x1 + x2 20
x21 + 2x22 250
Como puede observarse, se trata de un modelo de programacin matemtica que es claramente
no lineal, puesto que la funcin objetivo presenta 2 variables de decisin elevadas al cuadrado.
De igual forma, el modelo es restringido por la presencia de 2 restricciones, una de las cuales
contiene tambin a ambas variables elevadas al cuadrado. Para resolver este modelo, vamos a
recurrir nuevamente a nuestra navaja del ejrcito suizo, Sage, que ya contiene una serie de rutinas
para la optimizacin no lineal restringida.
Uno de los mdulos que Sage contiene, pero que en realidad pertenece al lenguaje de programacin Python, es Scipy. Se trata de una librera de funciones cientcas y matemticas. Entre
estas funciones existe una denominada optimize que a su vez contiene una serie de rutinas para
realizar optimizacin de funciones. Lo primero que debemos hacer es importar esta librera, para
lo cual hacemos lo siguiente:
El mdulo optimize contiene a su vez una rutina denominada COBYLA que sirve para
optimizacin restringida. COBYLA viene de las siglas Constrained Optimization BY Linear
Aproximation
es un mtodo desarrollado por Michael Powel y que permite optimizar funciones sin utilizar
gradientes o derivadas si no, como su nombre lo indica, aproximaciones lineales. Se deja al
estudiante leer mas acerca de este mtodo. Una particularidad de la implementacin de este
algoritmo en Python es que solamente permite encontrar el mnimo de una funcin en la cual
todas las restricciones son del tipo
con restricciones
max f min
y pasamos todos los trminos al lado izquierdo para que quede 0 del lado derecho, con lo cual
quedaran de la siguiente forma:
http://en.wikipedia.org/wiki/COBYLA
82
20 x1 x2 0
250 x21 2x22 0
Adicionalmente, debemos agregar en forma explcita las restricciones de no negatividad para
las variables ya que este algoritmo no asume dicha condicin:
x1 0
x2 0
Ahora vamos a proceder a denir las funciones en Sage. Para esto, vamos a utilizar esta vez el
formato de denicin de funciones de Python, que tiene la forma
def nombrefuncin(parmetros):
return expresin
y vamos a denir una funcin para cada una de las expresiones anteriores, es decir, la funcin
objetivo y cada una de las restricciones. En el caso de los parmetros, en lugar de utilizar variables
individuales vamos a utilizar una lista a la que vamos a llamar X y cada uno de sus elementos
ser una variable de decisin. Recordemos que el primer elemento de una lista tiene el ndice 0.
Tambin vemos que las funciones para las restricciones deben retornar solamente el lado izquierdo
ya que la rutina asume que el lado derecho es
0.
83
Como podemos observar, Sage nos proporciona la solucin al modelo. En la gura anterior
podemos ver la solucin en la cual los valores de las variables estn denotadas por X, por lo que
la solucin para
est dado
por
la funcin
objetivo original por lo que debemos cambiarle el signo, entonces la solucin para la mxima
ganancia que la empresa petrolera puee obtener es de 214.58 millones de Euros, extrayendo el
primer ao 7.5 millones de barriles y el segundo ao 5.833 millones de barriles de crudo.
Existe otra rutina que Sage tambin trae denida y que puede ser utilizada en estos problemas
de optimizacin multivariada no lineal restringida. La estructura es parecida a la rutina anterior,
aunque cambia un poco el orden de los factores:
En este ejemplo ambas rutinas tienen exito en encontrar la solucin y ambas coinciden, sin
embargo, como ya se mencion, la solucin de problemas de optimizacin no lineal es un problema
complejo y no existe garanta de poder llegar a la solucin ptima. Algunas veces, si al principio
no se tiene xito en obtener una solucin con una de las rutinas, puede probarse con otra o
se puede probar cambiando los valores iniciales de las variables para que el algoritmo inicie la
bsqueda en un punto diferente, pero eso tampoco nos da certeza de que vamos a obtener la
solucin ptima.
7.3.
Ejercicios
84
85
Parte III.
MODELOS DE LINEAS DE
ESPERA
86