Saltar navegación

Optimización

Considere la siguiente expresión: y = x2-2x+5. Es una función de grado 2, por tanto tiene uno y solo un mínimo que en este caso es el punto (1,4). Puede hallarlo fácilmente igualando a cero la primera derivada, o trazando la función.

Un óptimo (mínimo) no condicionado

Lo que hemos hallado es el mínimo no condicionado de la función, es decir, el valor más pequeño de entre todos los que toma la ordenada, para cualquier valor de la abscisa.

En la práctica, esto sería equivalente a identificar la bicicleta más barata de entre todas las que existen, o el móvil con el más bajo precio posible. Nosotros no razonamos de esta manera: no cabe duda de que, a priori, preferimos una bicicleta más barata a otra más cara, pero solo si tiene las características que consideramos necesarias: un tamaño adecuado a nuestra altura, un cambio satisfactorio, un cuadro ligero, frenos eficientes, etc. Lo mismo ocurre con los móviles, los seguros de automóvil, los viajes, y las inversiones empresariales: buscamos la opción más adecuada, dentro de las que cumplen unas determinadas exigencias. Esta solución se denomina óptimo condicionado.

Trabajando con óptimos condicionados

Considere el caso de una empresa que puede producir dos bienes (A, B), que por simplicidad asumiremos perfectamente divisibles, y que proporcionan un margen unitario de 2€ y 6€ respectivamente. Ambos productos se elaboran mediante dos recursos (H, K) de acuerdo con la siguiente tabla de consumos medios:

Recurso Consumo por unidad de A Consumo por unidad de B Total disponible
H 5 9 18
K 3 4 9

de manera que producir una unidad de A requiere 5 unidades del factor H y otras tres del factor K.

Un objetivo plausible en estas condiciones es maximizar el margen de ventas, lo que a su vez implica maximizar venta de los artículos con mayor margen. Sin embargo la producción está limitada por la disponibilidad de recursos, de manera que nuestro problema consiste en la búsqueda de un óptimo condicionado. Su expresión en términos de programación lineal es la siguiente:

Max. Z = 2A + 6B

Sujeto a:

5A + 9B ≤ 18

3A + 4B ≤ 9

A, B ≥ 0

Desde un punto de vista puramente práctico, el problema se resuelve en dos fases: en primer lugar se identifican las combinaciones de A y B que podemos alcanzar, considerando los recursos limitados (conjunto factible), y a continuación se determina cuál de ellas es la solución óptima.

El conjunto factible del problema es la zona sombreada en verde y azul (que verifica las dos inecuaciones) y está acotado por ambos ejes. La solución óptima está en un punto extremo, de manera que tenemos cuatro posibilidades:

  • El origen de coordenadas (0,0), donde la función objetivo toma el valor cero
  • El punto de corte de la restricción H con el eje de ordenadas (0,2), donde Z = 12
  • El punto de corte de la restricción K con el eje de abscisas (3,0), donde Z = 6
  • El punto de corte de ambas restriciones (9/7, 9/7), donde Z = 10,29

de manera que la solución óptima al problema es A = 0 y B = 2. De esta forma consumimos 9·2 = 18 unidades del factor H y 4·2 = 8 unidades del factor K. Sobra una unidad (la holgura es igual a uno), que no podemos emplear porque hemos agotado H.

El conjunto factible

Optimización en Excel y Calc

Podemos resolver fácilmente problemas como este empleando software adecuado, pero si no disponemos de él, una hoja de cálculo es una alternativa viable.

En el caso de LibreOffice Calc no hay que realizar ninguna preparación; en Excel debemos activar el complemento Solver, que típicamente está incluido en la instalación por defecto pero inactivo: compruebe si en el extremo derecho de la ficha Datos aparece el comando Solver, dentro del grupo Análisis, y en caso negativo siga estos pasos:

  • Accedemos a la relación de complementos instalados: Archivo > Opciones > Complementos.
  • En la lista de complementos de Excel, marcamos la casilla de verificación de Solver.

Optimización en Excel

En primer lugar debe construir el modelo de cálculo. Como quiera que desconocemos cuáles son los valores óptimos para A y B, simplemente referencie los cálculos a dos celdas vacías (en este caso, B3 y C3, que se muestran sombreadas en gris). El margen, que es la función a optimizar, se formula en la celda B5 (2*B3+6*C3) y las restricciones en B7 y B8. No se alarme si las celdas muestran ceros, o incluso valores de error - recuerde que B3 y C3 están vacías, y que la hoja va a iterarlas -.

A la derecha hemos introducido los límites de las restricciones; a la izquierda también hemos añadido unos encabezados, completamente opcionales.

Haga clic en el comando Solver, dentro de la ficha Datos > Análisis, y construya el modelo:

  • Celda objetivo: aquella en la que ha formulado la función objetivo, que es B5
  • Para: defina el tipo de optimización que pretende lograr. Puede maximizar o minimizar la función objetivo, y también diseñar modelos de metas (donde el propósito es que la función objetivo alcance un valor predeterminado). En este caso, buscamos un máximo.
  • Cambiando las celdas: las variables de decisión de las que depende el óptimo, en este caso los niveles de producción de A y B que son las celdas B3 y C3.
  • Sujeto a las restricciones: indique, haciendo clic en el botón Agregar, cuáles son las condiciones o limitaciones que debe verificar la solución. El consumo del factor H (que está calculado en la celda B7) no puede superar 18 unidades (B8), y el consumo de K (celda C7) debe ser igual o inferior a 9 (C8).
  • Marque la casilla de verificación Convertir variables sin restricciones en no negativas, para garantizar que la solución es cero o positiva (no puede producir un número negativo de unidades).
  • El botón Opciones le conduce a una ventana donde puede controlar algunos parámetros del proceso iterativo.
Diseño del modelo de optimización con el Solver de Excel

Haciendo clic en Aceptar, la hoja tratará de optimizar su modelo. Preste atención a la siguiente ventana, porque le informará si se ha logrado o no el resultado esperado. Además, puede realizar un análisis de sensibilidad de la solución. El óptimo se alcanza para A = 0 y B = 2 que se corresponde con un valor máximo para la función objetivo de Z = 12€.

Óptimo con Solver y análisis de sensibilidad

Optimización en Calc

Construya el modelo de cálculo, según los pasos anteriores; recuerde referenciar todas las fórmulas a dos celdas vacías, que son las que la hoja va a iterar hasta hallar el óptimo. A continuación inicie el Solucionador, dentro del menú Herramientas y especifique el problema (en la imagen inferior, las fórmulas se muestran solo con finalidad ilustrativa).

La especificación del modelo es idéntica a la expuesta más arriba para Solver. La celda objetivo es B5 y pretendemos maximizarla; las celdas cambiantes son las variables o procesos del modelo (la producción de A y B, C3 y B3). Las condiciones limitantes son las restricciones. Haciendo clic en el botón Opciones podemos definir algunos controles sobre la solución: recuerde que debe exigir que las variables sean no negativas.

Haga clic en Solucionar, y la hoja le mostrará la solución óptima.

Especificación del problema en el Solucionador de Calc

Optimizando una cartera de inversión: el modelo de Markowitz

Más arriba hemos expuesto la forma de resolver el modelo de Markowitz en notación matricial, a partir de un lagrangiano.

Naturalmente el modelo también tiene una formulación de programación matemática, que podemos resolver con el Solver de Excel o el Solucionador de Calc.

Simplemente, formule la varianza (que es la función objetivo) y el rendimiento esperado de la cartera (que es una restricción); incluya además la exigencia de que la suma de las variables sea igual a uno. Defina las variables como no negativas, y preste atención al algoritmo de solución (la función objetivo no es lineal).

Solución del modelo de Markowitz con Solver de Excel