Clase 2 del curso de Investigacion de Operaciones I del profesor Quiroz de la seccion K, perteneciente a la escuela profesional de Ingenieria Economica de FIECS - UNI
En optimización matemática, el término algoritmo simplex habitualmente se refiere a un conjunto de métodos muy usados para resolver problemas de programación lineal, en los cuales se busca el máximo de una función lineal sobre un conjunto de variables que satisfaga un conjunto de inecuaciones lineales.
INVESTIGACIÓN DE OPERACIONES, Un modelo de programación entera es un modelo que contiene restricciones y una función objetivo idénticas a las formuladas por planeación lineal. La única diferencia es que una o mas de las variables de decisión tienen que tomar un valor entero en la solución final.
El Método Simplex es un método analítico de solución de problemas de programación lineal capaz de resolver modelos más complejos que los resueltos mediante el método gráfico sin restricción en el número de variables. El Método Simplex es un método iterativo que permite ir mejorando la solución en cada paso.
Clase 2 del curso de Investigacion de Operaciones I del profesor Quiroz de la seccion K, perteneciente a la escuela profesional de Ingenieria Economica de FIECS - UNI
En optimización matemática, el término algoritmo simplex habitualmente se refiere a un conjunto de métodos muy usados para resolver problemas de programación lineal, en los cuales se busca el máximo de una función lineal sobre un conjunto de variables que satisfaga un conjunto de inecuaciones lineales.
INVESTIGACIÓN DE OPERACIONES, Un modelo de programación entera es un modelo que contiene restricciones y una función objetivo idénticas a las formuladas por planeación lineal. La única diferencia es que una o mas de las variables de decisión tienen que tomar un valor entero en la solución final.
El Método Simplex es un método analítico de solución de problemas de programación lineal capaz de resolver modelos más complejos que los resueltos mediante el método gráfico sin restricción en el número de variables. El Método Simplex es un método iterativo que permite ir mejorando la solución en cada paso.
Trabajo practico de la asignatura Aplicación de la Programación Lineal y Entera (359)
Perteneciente al pensum de Ingeniería de Sistemas, Universidad Nacional Abierta, 2015- 2
1. MUCHAS GRACIASSSSSSSSSSS!!!!!!!!
Problema
Una compañía constructora planea construir una urbanización con tres tipos de vivienda:
townhouses, casas de una planta con dos cuartos y terraza (C2) y casas de cuatro cuartos y
terraza (C3). El terreno ha sido dividido en parcelas y se cuenta con 60 de estas parcelas. En
cada parcela se pueden construir 6 townhouses, 2,5 C2 y 2 C3 (esto no quiere decir que las
parcelas estén estrictamente divididas y, por ejemplo, en dos parcelas caben 5 casas del tipo
C2). La compañía cuenta con 5.880.000 BsF de capital y quiere terminar en 250.000 horas
laborables. En la tabla siguiente aparecen los costos, ganancia y tiempo de construcción por
unidad y tipo de vivienda. En unos estudios de mercadeo efectuados y con la experiencia
acumulada por los años en el negocio, la empresa estima que se podrán vender, a lo sumo,
100 townhouses, no más de 40 C2 y con suerte 30 C3.
Vivienda Costo por unidad Ganancia por unidad Tiempo por unidad
(h)
(miles de BsF) (miles de BsF)
Townhouse 40 10 1136
C2 45 11 1272
C3 60 14,5 1440
¿Cuántas viviendas de cada tipo debe producir para una ganancia máxima? ¿Pudo utilizar todo
el terreno? ¿Qué le sugeriría a la dirección de la empresa? Haga un análisis de sensibilidad y
diga si hay parámetros (columnas 2,3 y 4 de la tabla de datos) que requieren un análisis más
riguroso
Aquí esta mis restricciones
40x1+10x2<-1136
45x1+11x2<-1272
60x1+14,5x2<-1440
Z=145x1+35,5x2
2. Esta ecuación la saque sumandolas ganancias de x1 ylas ganacias de x2 laque esta en negrita
X1=145
X2=35,5
Mis restricciones de no negatividad
X1>-0
X2>-0
Ahora bien aquí me quedo trancada,el prof hoy mando esto un programa que esta en este
link
http://neos.mcs.anl.gov/CaseStudies/simplex/applet/SimplexTool.html
Aquí esta lo que hice yo?
Descripción del programa
El cual pertenece al Optimization Technology Center , centro de investigaciones fundado por la
Northwestern University y el Departamento de Energía de los EU.
3. La página funciona de la siguiente manera. Una vez que la página abre, en la parte superior
izquierda aparecen tres ventanas pequeñas y una de ellas dice New problem. Entre ahí y se
abrirá una pequeña ventana que dice número de restricciones o constreñimientos y debe
escribir la cantidad de restricciones que tiene sin contar las de no negatividad, en nuestro
ejemplo son tres. Debajo escriba la cantidad de variables reales que usted tiene en el
problema, en nuestro ejemplo son 2. Una vez hecho esto, presione continue. Se abrirá otra
ventana donde hay que plantear el problema a resolver. Lo primero es seleccionar si el
problema consiste en maximizar o minimizar. Una vez seleccionado esto hay que darle valores
a la función objetivo y las restricciones. En nuestro ejemplo, la ventana quedaría así
Fíjense que cuando una variable no aparece en una restricción, su coeficiente es 0
Cuando haya terminado presione preprocess. Una nueva ventana se abrirá y será la
correspondiente al programa que utiliza el método. Esta es la ventana con los datos del
ejemplo.
4. En la esquina superior izquierda aparece la función objetivo que queremos maximizar y debajo
la función objetivo del sistema aumentado.
En el centro de la ventana verán las restricciones en forma matricial. En gris aparecerán las
variables de decisión (que son no básicas al comienzo) y en rojo, las variables de holgura (que
son las básicas). Debajo pero muy claro aparecen todas las variables que intervienen y un texto
que dice ¨The reduced costs¨. Estos tienen importancia para nosotros cuando el programa
termina las iteraciones y halla la respuesta. Los costos reducidos, que otros llaman precios de
sombra, son los valores que toman las variables yi en el problema dual. En magenta
(¿magenta?!) los valores que toman las variables de holgura para comenzar las iteraciones. En
la parte inferior de la ventana aparece una leyenda de colores. En rojo estarán las variables
que son básicas en la iteración que se esté haciendo. En uno de los amarillos la variable que
entra al conjunto de las básicas. En blanco la que sale. En una especie de azul las variables de
holgura o suministradoras (en caso de que las restricciones sean del tipo >=) y enel otro
5. amarillo, las variables artificiales, que son las que se utilizan cuando las restricciones son de
igualdad.
El programa se puede correr de dos maneras. La primera es paso a paso presionando next
operation (recomendada) y la segunda es Do a full iterate que realiza una iteración completa.
Cuando se presiona por primera vez Next operation lo primero que hace el programa es
formar la matriz B, que es la matriz de los coeficientes de las variables básicas en esa iteración.
El método usa los datos en forma matricial para resolver. Verán que aparece información
sobre la matriz B, una matriz T traspuesta, etc. Para el uso del programa esto no es muy
importante. Lo sería para aquellos que quieran programar el método. Por esa razón lo
dejaremos aquí. El que esté interesado en saber más de este aspecto, dirigirse al profesor.
Después de estos cálculos matriciales, y de comprobar que la solución alcanzada no es óptima
(las variables de decisión son 0 y da Z=0 que no puede ser óptima) el programa dice que
seleccionará la variable que entra. Se presiona otra vez next operation y en la ventana de
mensajes aparece que la variable que entra es x2 (es la que tiene mayor coeficiente en la
función objetivo). Ahora el programa va a buscar la dirección de búsqueda de una nueva
esquina de la región de factibilidad y lo primero que hará es buscar los bordes que limitan esa
región, es decir, que la región está acotada (test for unboundedness). Una vez comprobado
que la región está acotada, se realiza el min ratio test que es el análisis que se hace para saber
cuál es la primera variable básica que se anula cuando se aumenta la variable que entra. En
nuestro ejemplo resulta ser x4, como vimos en la clase. En la tabla siguiente, en azul aparece la
matriz de los coeficientes de todas las ecuaciones involucradas
Y en un rectángulo vertical los coeficientes de la variable x2 en todas estas ecuaciones. El Min
ratio test consiste en dividir los miembros derechos de todas las restricciones y donde se
obtenga la razón menor, de ahí saldrá la variable básica. De esa misma tabla puede verse que
la menor razón está asociada a la segunda restricción donde la variable básica es x4 que, por
consiguiente, es la que sale.
Ahora el programa actualiza el conjunto de las básicas y vean cómo en la matriz central, la
columna correspondiente a la variable x2 pasa a ser roja y la correspondiente a la variable x4
pasa a ser gris.
A partir de aquí el programa comienza a repetir las iteraciones hasta llegar a la respuesta. Esto
se identifica porque en la ventana de mensajes aparece ¨You´ve done it¨. El valor de Z
6. aparecerá inmediatamente encima de la ventana de mensajes y los valores de las variables
básicas para ese óptimo estarán al centro izquierda de la ventana en magenta.
Y mando este ejercicio ya resuelto sin explicar en persona :_(
La información obtenida puede resumirse en la siguiente tabla
Tiempo de producción por lote en horas Tiempo de producción disponible
por semana en horas
Planta A1 A2
1 1 0 4
2 0 2 12
3 3 2 18
Ganancia por lote 3000 5000
Se utilizó la siguiente nomenclatura
X1 cantidad de lotes de A1
X2 cantidad de lotes de A2
Z ganancia de producir A1 y A2. De la información obtenida del departamento de
administración se pudo saber que la ganancia estimada por lote de A1 es de 3 y esa misma
ganancia por lote de A2 es de 5.
La función, que es la ganancia de ambas producciones, se obtuvo de la gerencia de
administración que informó que se ganan 3000 por cada lote de x1 producido y 5000 por cada
lote de x2 producido. Así que la función objetivo quedará
Z = 3x1 + 5x2 expresada en miles de la moneda de que se trate.
Entonces el objetivo es encontrar los valores de x1 y x2 , que como ya vimos, son la cantidad de
lotes a producir de cada pintura, que maximicen Z y que satisfagan las restricciones de
capacidad impuestas por las limitaciones de las tres plantas.
De la tabla anterior se ve que el producto A1 requiere de una hora en la planta 1 y solo hay 4
horas disponibles por semana. En la planta 3 requiere de 3 horas y hay 18 disponibles. Por otra
parte, la pintura A2 necesita 2 horas en la planta 2 y dos horas también, en la planta 3.
Con esta información, las restricciones nos quedan
para la planta 1
para la planta 2
7. para la planta 3
Además, recordemos las restricciones de no negatividad
las cuales son evidentes en este caso porque no se pueden producir lotes negativos.
La figura muestra la región factible en gris con las rectas que representan las restricciones.
Ahora nos queda expresar la función objetivo en la forma de recta con pendiente e intercepto
y colocarla en el gráfico de manera de obtener el mayor intercepto posible. La recta será
es decir, la pendiente es -3/5. La figura muestra esta recta (en rojo) con el mayor intercepto
posible. Como se puede ver, la recta de mayor intercepto toca la región de factibilidad en la
arista que representa la intersección entre las rectas x2 = 4 y 3x1+ 2x2 = 18. La solución será x1
= 2 y x2 = 6. Es decir que se deben producir a la semana 2 lotes de A1 y 6 lotes de A2 para que
la ganancia sea máxima con las limitaciones de capacidad que tienen las plantas