Sei sulla pagina 1di 7

Programacin Lineal

Ficha para ensear a utilizar el Solver de EXCEL en la


resolucin de problemas de Programacin Lineal
Ejemplo: Plan de produccin de PROTRAC

En esta ficha vamos a comentar cmo se construy y resolvi el


problema que se encuentra enunciado, planteado y resuelto en el fichero Plan
de produccin de PROTRAC.xls, con el objetivo de que al final t seas capaz
de resolver cualquier problema de Programacin Lineal, bien planteado, de la
misma manera. Ten abierto dicho fichero al ir leyendo ste y vete analizando
hasta entender bien cada cosa: el orden en el que se ha colocado cada tipo
de informacin, qu hay en cada casilla de la hoja de clculo y de dnde
sale cada cosa para intentar hacer lo mismo t en cualquier problema nuevo
de Programacin Lineal que se te plantee.

Solver es una Herramienta de EXCEL que nos puede ayudar a resolver


algunos tipos de problemas de optimizacin matemtica, entre ellos los de
Programacin Lineal y no Lineal. Puedes activarla en caso de que no est, de
la siguiente forma:

Si tienes la versin 2003, ve a Herramientas, Complementos, Solver,


Aceptar (y a partir de entonces la tendrs activada y la encontrars en el
Men de Herramientas).

Si tienes la versin 2007, ve al botn de Microsoft Office, Opciones de


Excel, Complementos y en el cuadro Administrar seleccione Complementos de
Excel, Ir, en el cuadro de Complementos disponibles active la casilla de
verificacin Complemento Solver, Aceptar. Una vez instalado estar disponible
en el grupo Anlisis de la ficha Datos.

Observa que en nuestro ejemplo de PROTRAC las variables de decisin


deben tomar valores enteros (condiciones de integridad). Se dice que este
problema es de Programacin Lineal Entera. Cuando un problema de
Programacin Lineal admite soluciones no enteras para todas las variables de
decisin se dice que es de Programacin Lineal Continua y cuando se requiere
que unas sean enteras y otras no se dice de Programacin Lineal Mixta. Solver
resuelve todos estos casos, pero existen grandes diferencias entre ellos por el
Coste computacional (nmero de operaciones) que cada uno consume.
Empezaremos por resolver el problema de Programacin Lineal Continua

1
asociado a nuestro ejemplo y luego lo completaremos con las condiciones de
integridad y lo resolveremos completo. Aunque todo se puede hacer en una
sola hoja de EXCEL hemos preferido hacerlos en 3 para que se entienda mejor.
En las 3 hojas est el mismo modelo, en la primera slo planteado (sin utilizar
Solver), en la segunda resuelto con Solver sin condiciones de integridad y en la
tercera resuelto con Solver completo, es decir, con las condiciones de
integridad.

1.- Construccin del modelo en la hoja de clculo

Una vez que hayas entendido bien cmo se ha llegado al modelo


simblico a partir del enunciado real del problema, pasamos a comentar la
construccin del modelo en la hoja de clculo por filas:

- Primero le hemos puesto los rtulos de las columnas que van a contener
la informacin referente a las mquinas E-9 y F-9 (casillas B19 y C19) (los
nombres de las variables)
- Luego hemos reservado (dejado libres por ahora) unas casillas (la B20 y
C20 que representan las variables) para que en ellas aparezcan
cuando se resuelve el problema, los valores de las variables de decisin
(o inters) que son las cantidades que se deben producir de cada
mquina.

- Debajo justo de las casilla de las variables de decisin (o inters) (casillas


B21 y C21) hemos puesto los coeficientes de la funcin objetivo y a la
derecha de estos (en la casilla D21) nos hemos construido la funcin
objetivo. Coloca el cursor en la casilla D21 y observa la frmula con la
que se ha construido (=SUMAPRODUCTO(B20:C20;B21:C21)) e intenta
entender lo que significa, es decir, equivale al 5000E+4000F del
planteamiento simblico.

- Luego hemos puesto los coeficientes de las restricciones (casillas B y C


de las filas 23 a la 27) y a la derecha hemos construido cada restriccin.
Por ejemplo observa cmo se construye la primera restriccin
entendiendo lo que hay en las casillas D23 (observa que contiene la
frmula para el lado izquierdo de la primera restriccin) y F23 (observa
que contiene el trmino independiente del lado derecho de la primera
restriccin). El signo < que aparece como rtulo en la casilla E23 lo
hemos puesto con el signo < del teclado y luego lo hemos subrayado.
Para ver si lo has entendido bien di cuales son, sin mirarlas, las frmulas
que se encuentran en las casillas D24 y D25. Ntese que con EXCEL una
vez que tenemos la frmula de la casilla D23 la podemos arrastrar para
las casillas D24 hasta la D27. Ten en cuenta que en las frmulas en EXCEL
se pone el signo $ en las coordenadas que no queremos que cambien
al arrastrar las frmulas. En este caso las casillas de las variables de
decisin se escribirn as $B$20:$C$20.
2
- Hemos colocado primero todas las restricciones con < y luego todas las
de > puesto que, como veremos, el tenerlas ordenadas as ayuda a
luego resolver con Solver.

- Hemos coloreado las casillas de las variables de inters y de la funcin


objetivo porque una vez resuelto el problema los valores ptimos en los
que ms inters tendremos es en esos. Tambin son de inters los valores
de las variables de holgura (que recogen la diferencia, siempre no
negativa, entre los dos lados de cada restriccin). Colcate encima de
la casilla G23 G27 para que veas cmo se calculan las holguras de las
restricciones de < o >, respectivamente).

- Para que nos salga en las celdas que estn en dlares el signo $ las
marcamos, hacemos click en el botn derecho del ratn, elegimos
Formato de celda, luego Nmero, luego Moneda y la moneda que nos
interese.

2.- Optimizacin del modelo construido en la hoja de clculo (Caso de


Programacin Lineal Continua)

Una vez que est la hoja de clculo construida para optimizarla se hace
click en Datos y luego en Solver, si es la versin de EXCEL 2007 (o en
Herramientas y luego en Solver si es la versin anterior) y se nos abre la
siguiente ventana Parmetros de Solver que vamos rellenando:

Ntese que esta ventana en principio nos aparece vaca y nosotros le vamos
introduciendo las coordenadas que nos pide (en esta ficha slo explicaremos

3
lo bsico, cualquier otra cosa que desees saber de las que aparecen
consltalo en la ayuda del programa):

- Celda objetivo: introducimos la coordenada de la celda donde hemos


colocado la funcin objetivo1

- Cambiando las celdas: introducimos las celdas que hemos elegido para
poner las variables de decisin

- Marcar si el problema es de Mximo o de Mnimo

- Sujeto a las siguientes restricciones: Se hace click en Agregar para introducir


cada grupo de restricciones y se nos abre la siguiente ventana Agregar
restriccin

- Referencia de la celda: introducir la celda donde est el lado derecho


de la restriccin. Se pueden introducir todas las restricciones de cada
tipo de signo de una sola vez. Por ejemplo. Si introducimos de una sola
vez todas las de <, en esta celda ponemos $D23:$D25, que simplemente
se puede hacer marcando dichas celdas con el ratn.

- <: elegir el signo que tiene/n la/s restriccin/es que estamos


introduciendo

- Restriccin: introducir la/s celda/s del lado derecho de la/s restriccin/s


en cuestin

Para introducir nuevas restricciones se le da a Agregar. Cuando las


hayamos introducido todas, menos las de no negatividad e integridad, le
damos a Aceptar.

Para introducir las restricciones de no negatividad, en la ventana


Parmetros de Solver se hace click en Opciones y sale la ventana Opciones
de Solver:

1Para dar en esta ventana la coordenada de una o varias casillas simplemente hay
que colocar el cursor en dicha/s casilla/s.

4
Lo principal que hay que marcar es Adoptar modelo lineal (puesto que
nuestro modelo es lineal y Solver resuelve tambin problemas no lineales) y
Adoptar no negativos. (El resto de las cosas que aparecen en esta ventana no
las comentamos detalladamente en esta ficha bsica, puesto que para ello
habra que conocer los mtodos de resolucin para cada tipo de problema y
no estn en el temario de la asignatura).

Hacemos click en Aceptar y volvemos a la primera ventana donde


hacemos click en Resolver y nos aparece el problema resuelto en nuestra hoja
de clculo, con los valores ptimos de las variables de decisin en las casillas
con borde rojo, el valor ptimo de la funcin objetivo en la casilla con borde
verde y en las casillas con borde azul las holguras que quedan en las
restricciones al sustituir en ellas los valores ptimos de las variables.

3.- Comentario del resultado en el contexto real

Segn la solucin de Solver sobre el problema planteado lo ptimo es


producir 4,5 mquinas E-9 y 7 mquinas F-9, obteniendo as unas ganancias
ptimas de $50500. Como estamos en un contexto real, aunque
matemticamente esta es la solucin ptima, no tiene sentido econmico
producir 4,5 mquinas. Esto ha ocurrido porque resolvimos el problema con
variables continuas y Solver no estaba informado de que las variables tienen
que ser enteras para que tengan sentido en el enunciado real.

Qu ocurrira si redondeamos la solucin?

Podemos tener la tentacin de redondear a la baja la solucin que nos


ha dado Solver y decir que E=4 y F=7. Si sustituimos esos valores a mano en la
hoja de clculo obtenemos que el valor ptimo de la ganancia es 48000$ y
que todas las holguras de las ecuaciones han salido no negativas (lo que

5
implica que esta nueva solucin es factible). Si lo que hacemos es redondear
al alza, es decir E=5 y F=7, al sustituirla a mano en la hoja de clculo
obtenemos que la ganancia es $53000 pero dicha solucin no es factible, es
decir no verifica las restricciones (porque las holguras salen negativas).

Aunque no sepas por ahora de dnde nos hemos sacado la solucin


E=5, F=6 compruebe sustituyndola en la hoja de clculo que la funcin
objetivo vale $49000 y que todas las holguras han salido no negativas (por
tanto es factible). Si la comparamos con la solucin que habamos intentado
de E=4, F=7 nos damos cuenta que E=5, F=6 es mejor, porque la funcin
objetivo da mayor y estamos maximizando. Cual es la conclusin por ahora
ante la tentacin de redondear la solucin que tenamos? Pues que:

Redondear una solucin de Programacin Lineal Continua no siempre


nos conduce a la solucin ptima del problema de Programacin Lineal
Entera.

Veamos ahora cmo se le da a Solver la informacin de que hay


variables que son enteras.

En el momento en el que agregamos las restricciones del problema,


agregamos tambin otra de esta forma:

Resolver y observar la solucin ptima del problema.

Interpretacin de la solucin ptima:

Como E=5 , F=6 (lo ptimo es construir 5 mquinas E-9 y 6 mquinas F-9), lo cual
implica que el valor de la funcin objetivo se interprete como que la mayor
ganancia que se puede obtener es $49000. Si observamos las holguras de las
restricciones podemos comentar que: la primera es 10 (lo que se interpreta
como que sobran 10 horas de las 150 disponibles en el Departamento A), la
segunda es 0 (esto es, se utilizan el total de horas disponibles del
Departamento B), la tercera es 13 (que por ser >0, la interpretacin es que se
satisface con holgura el mnimo requerido de produccin de mquinas F-9), La
cuarta es 75 (lo que se interpreta como que las horas destinadas a pruebas
fueron 75 ms de meta mnima convenida), la quinta es 6 (se han producido 6
mquinas ms en total que las 5 mnimas obligadas por uno de los principales
distribuidores).

6
Una alternativa eficiente en muchos casos

Es importante comentar que resolver un problema de Programacin


Lineal Entera conlleva una cantidad de clculos mayor que resolver el de
Lineal Continua asociado, por lo que una alternativa eficiente en muchos
casos es resolver el problema continuo sin aadir restricciones de integridad, y
analizar si econmicamente estamos seguros de que los errores que puedan
cometerse en el redondeo pueden despreciarse (porque nunca vamos a
obtener una ganancia mayor, ya que el conjunto factible con integridad es un
subconjunto del conjunto factible sin integridad y tal vez slo perdamos
pocos dlares como mucho). Por todo ello, se opta como compromiso
prctico por no aadir restricciones de integridad y concluir con la solucin
redondeada.

Una forma de analizar econmicamente la solucin, esto es, de ver lo


que podemos estar perdiendo como mucho, al elegir como ptima la de
redondeo y no la del problema completo, es calcular la diferencia entre el
valor ptimo de la funcin objetivo del problema continuo, y el valor de la
funcin objetivo en la solucin redondeada. Es decir, en nuestro ejemplo, si
hubiramos propuesto como solucin E=4 F=7, sabemos que como mucho
perderamos$50500-$48000=$2500 respecto a la solucin continua (referencia
terica irreal) y plantearnos si esto es suficientemente bueno o si, por el
contrario, nos compensa resolver el problema de programacin entera. En
este caso, la resolucin de este segundo problema nos permitira ganar 1000$
ms que si nos hubiramos quedado con la solucin redondeada del
problema continuo. Es decir, perder 1500$ respecto a la solucin continua
(referencia irreal).

Potrebbero piacerti anche