16
Tema 16 Introducción a la Programación Matemática 16.1. Conceptos generales La Programación Matemática busca seleccionar entre los elementos de un conjunto el mejor elemento con respecto a cierto criterio. Hablamos de optimización cuando tenemos como objetivo determinar dentro de un determinado conjunto los puntos en los que una función real alcanza bien su valor máximo bien su valor mínimo. La función recibe el nombre de función objetivo, las variables de las que depende el de variables de decisión y el conjunto en el que estas variables pueden variar el de conjunto factible. Así, el problema consiste en encontrar dentro del conjunto factible los valores de las variables de decisión para los que la función objetivo es óptima (alcanza su valor máximo o mínimo) () ´ opt f : D R n R s.a. x F R n Si buscamos dentro del conjunto factible los valores de las variables de decisión que hacen que la función objetivo alcance su máximo valor hablamos de un problema de maximización y si buscamos los que hacen que alcance su mínimo valor hablamos de un problema de minimización. En ambos casos distinguimos si las variables de decisión están o no sujetas a alguna limitación hablando de optimización sin restricciones y de optimización con restricciones. Nosotros trabajaremos con problemas que se formulan utilizando como función objetivo una función que depende de varias variables y en los cuales el conjunto factible se expresa mediante igualdades y 549

Tema 16 Introducción a la Programación Matemática

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Tema 16 Introducción a la Programación Matemática

Tema 16

Introducción a la Programación Matemática

16.1. Conceptos generales

La Programación Matemática busca seleccionar entre los elementos de un conjunto el mejor elemento

con respecto a cierto criterio. Hablamos de optimización cuando tenemos como objetivo determinar dentro

de un determinado conjunto los puntos en los que una función real alcanza bien su valor máximo bien su

valor mínimo. La función recibe el nombre de función objetivo, las variables de las que depende el de

variables de decisión y el conjunto en el que estas variables pueden variar el de conjunto factible. Así, el

problema consiste en encontrar dentro del conjunto factible los valores de las variables de decisión para los

que la función objetivo es óptima (alcanza su valor máximo o mínimo)

(∗) opt f : D ⊆ Rn→ R

s.a. x ∈ F ⊆ Rn

Si buscamos dentro del conjunto factible los valores de las variables de decisión que hacen que la función

objetivo alcance su máximo valor hablamos de un problema de maximización y si buscamos los que hacen

que alcance su mínimo valor hablamos de un problema de minimización. En ambos casos distinguimos si

las variables de decisión están o no sujetas a alguna limitación hablando de optimización sin restricciones

y de optimización con restricciones.

Nosotros trabajaremos con problemas que se formulan utilizando como función objetivo una función

que depende de varias variables y en los cuales el conjunto factible se expresa mediante igualdades y

549

Page 2: Tema 16 Introducción a la Programación Matemática

Bloque V. PROGRAMACIÓN MATEMÁTICA

desigualdades que deben cumplir estas variables:

(∗∗) opt f (x1, · · · , xn)

s.a. gi(x1, · · · , xn) = bi ∀ i = 1, · · · , r

gi(x1, · · · , xn) ≤ bi ∀ i = r + 1, · · · , k

gi(x1, · · · , xn) ≥ bi ∀ i = k + 1, · · · ,m ♣

Ejemplo 16.1 Queremos asignar distintas cantidades de un único producto a varios procesos productivos

de forma que el beneficio total sea el máximo posible, suponiendo que se puede estimar el beneficio de la

planta (función objetivo) en función de las cantidades asignadas a cada proceso (variables de decisión).

El conjunto factible debe incluir que las cantidades de producto no pueden ser negativas.

max B(x1, x2, . . . , xn)

s.a. x1, x2, . . . , xn ≥ 0

Si la cantidad total de producto que utiliza la planta está limitada tenemos una restricción de des-

igualdad menor o igual

max B(x1, x2, . . . , xn)

s.a. x1 + x2 + · · · + xn ≤ k

x1, x2, . . . , xn ≥ 0

Si la cantidad total de producto que utiliza la planta es fija tendríamos una restricción de igualdad

max B(x1, x2, . . . , xn)

s.a. x1 + x2 + · · · + xn ≤ k

x1, x2, . . . , xn ≥ 0 ♣

Definición 16.2 En una desigualdad menor o igual, gi(x0) ≤ ci (análogamente con mayor o igual):

▶ diremos que los puntos del conjunto factible que verifican la restricción con igualdad, gi(x0) = ci,

saturan la restricción y que la restricción es activa en el punto (incluimos las restricciones de igualdad

entre las restricciones activas).

▶ diremos que los puntos del conjunto factible que verifican la restricción con desigualdad estricta,

gi(x0) < bi, no saturan la restricción y que la restricción es inactiva en el punto. ♣

PROYECTO MATECO 3.14159 Página 550

Page 3: Tema 16 Introducción a la Programación Matemática

TEMA 16. INTRODUCCIÓN A LA PROGRAMACIÓN MATEMÁTICA

Ejemplo 16.3 Cuando en el ejemplo 16.1 la cantidad total de producto que utiliza la planta está limitada

tenemos

max B(x1, x2, . . . , xn)

s.a. x1 + x2 + · · · + xn ≤ k

x1, x2, . . . , xn ≥ 0

▶ En los puntos en los que la restricción es activa, x1 + x2 + · · · + xn = k, se consume todo el producto

(restricción saturada).

▶ En los puntos en los que la restricción es inactiva, x1 + x2 + · · · + xn < k, parte del producto no se

consume (restricción no saturada). ♣

Cuando tanto la función objetivo como las restricciones son funciones lineales hablamos de programa-

ción lineal (PL) y si cualquiera de ellas no es lineal hablamos de programación no lineal (PNL). Cuando las

variables de decisión han de ser números enteros hablamos de programación entera (PE).

La principal distinción entre los óptimos de una función se basa en su carácter local o global, distin-

guiendo entre puntos que son óptimos entre todos los puntos del conjunto factible u óptimos globales y

aquellos que lo son en un entorno suyo u óptimos locales.

Definición 16.4 Sean f : D ⊆ Rn−→ R, x0 ∈ D, F ⊆ D y el problema de optimización:

(⋆) opt f (x)

s.a. x ∈ F

♦ x0 es un óptimo global si ∀x ∈ F:

f (x0) ≥ f (x) (máximo) f (x0) ≤ f (x) (mínimo)

♦ x0 es un óptimo local si existe un entorno de x0, U(x0), tal que ∀x ∈ U(x0) ∩ F

f (x0) ≥ f (x) (máximo) f (x0) ≤ f (x) (mínimo).

♦ x0 es un óptimo estricto (global/local) si las desigualdades son estrictas para x , x0. ♣

Página 551 PROYECTO MATECO 3.14159

Page 4: Tema 16 Introducción a la Programación Matemática

Bloque V. PROGRAMACIÓN MATEMÁTICA

Nota Se puede considerar sólo desigualdades de un tipo:

▶ Una desigualdad mayor o igual se transforma en una menor o igual multiplicando por −1 y viceversa

max B(x1, x2)

s.a. x1 + x2 ≤ k

x1, x2 ≥ 0

max B(x1, x2)

s.a. −x1 − x2 ≥ −k

x1, x2 ≥ 0

▶ Una igualdad se descompone en dos desigualdades y se multiplica una de ellas por −1

max B(x1, x2)

s.a. x1 + x2 = k

x1, x2 ≥ 0⇔

max B(x1, x2)

s.a. x1 + x2 ≤ k

x1 + x2 ≥ k

x1, x2 ≥ 0

max B(x1, x2)

s.a. x1 + x2 ≤ k

−x1 − x2 ≤ −k

x1, x2 ≥ 0 ♣

Nota Todo problema de maximización puede reducirse a uno de minimización y viceversa multiplicando

la función por -1 (los máximos de una función son los mínimos de la función cambiada de signo y viceversa)

max B(x1, x2)

s.a. x1 + x2 = k

x1, x2 ≥ 0

mın −B(x1, x2)

s.a. x1 + x2 = k

x1, x2 ≥ 0 ♣

Proposición 16.5 Sean f : D ⊆ Rn−→ R, x0 ∈ D, F ⊆ D, H : D∗ ⊆ R −→ R creciente y cuyo dominio

contiene a la imagen de f y sean los problemas de optimización:

(⋆) opt f (x)

s.a. x ∈ F

(⋆⋆) opt H( f (x))

s.a. x ∈ F

Si x0 ∈ ℜn es una solución del primer problema también lo es del segundo, con valores óptimos f (x0) y

H( f (x0)). ♣

Ejemplo 16.6 Los siguientes problemas alcanzan su solución en el mismo punto

opt xy

s.a. x + y = k⇔

opt exy

s.a. x + y = k⇔

opt ln(xy)

s.a. x + y = k ♣

PROYECTO MATECO 3.14159 Página 552

Page 5: Tema 16 Introducción a la Programación Matemática

TEMA 16. INTRODUCCIÓN A LA PROGRAMACIÓN MATEMÁTICA

Para determinar los óptimos globales de una función disponemos de dos condiciones suficientes para

su existencia. La primera, teorema de Weierstrass, garantiza la existencia de máximos y mínimos globales

si la función objetivo es continua y el conjunto factible es cerrado y acotado. En particular, en el problema

(**), el conjunto factible es cerrado, al incluir las restricciones la igualdad, cuando esté acotado tendremos

un máximo y un mínimo globales (si las funciones son continuas).

Teorema 16.7 (Teorema de Weierstrass) Si la función objetivo es continua y el conjunto factible es cerrado

y acotado entonces existen un mínimo y un máximo globales. ♣

La segunda condición está relacionada con la forma de la gráfica de la función objetivo cuando el

conjunto factible es convexo. En este caso, si la función es cóncava los posibles máximos son siempre de

carácter global y si es convexa los posibles mínimos serán los que son siempre de carácter global.

Teorema 16.8 (Teorema local-global bajo convexidad) Si el conjunto factible es convexo y la función ob-

jetivo es convexa en caso de que exista un mínimo éste es un mínimo global. Más aún, si la función objetivo

es estrictamente convexa y tiene un mínimo éste es único y de carácter estricto. ♣

Nota Si la función objetivo es cóncava en caso de que exista un máximo éste es un máximo global (de

carácter estricto si la función es estrictamente cóncava). ♣

Nota En Programación Lineal se puede aplicar siempre el teorema local-global, ya que el conjunto factible

es convexo y la función objetivo es tanto cóncava como convexa, por lo que si hay óptimos éstos son siempre

óptimos globales. Además, la función objetivo es continua por ser lineal y si el conjunto factible es no vacío

también es cerrado, al incluir las restricciones lineales el caso igual, por tanto, para poder aplicar el teorema

de Weierstrass la condición que falta es que el conjunto factible esté acotado. Así, tendremos garantía de la

existencia de máximos y mínimos globales cuando lo esté (lo que no siempre sucede). ♣

16.2. Resolución gráfica de problemas con dos variables

En los problemas con dos variables la representación gráfica del problema nos permite obtener su so-

lución. En esta representación incluimos las curvas de nivel de la función junto con el conjunto factible y

buscamos el punto o puntos del conjunto factible en los que la función alcanza su valor óptimo determinan-

do cuál es la curva de mejor nivel con puntos dentro del dominio.

Página 553 PROYECTO MATECO 3.14159

Page 6: Tema 16 Introducción a la Programación Matemática

Bloque V. PROGRAMACIÓN MATEMÁTICA

Ejemplo 16.9 Resolver gráficamente el siguiente problema distinguiendo si las variables pueden o no

pueden ser negativas.

max (x − 2)2 + 2(y − 2)2

s.a. x + 2y ≤ 6

Solución

Las curvas de nivel de la función objetivo son

(x − 2)2 + 2(y − 1)2 = k

Al representar juntos el conjunto factible y las curvas de nivel, distinguiendo si las variables pueden o

no ser negativas, para su análisis observamos que las curvas de nivel son elipses con centro el punto (2, 1).

En este punto la función vale cero y el mínimo se alcanza en él, ya que en el resto de curvas de nivel el

correspondiente valor de la función es positivo y crece a medida que crece el tamaño de la elipse

Cuando las variables no están limitadas a ser no negativas las curvas de nivel crecen indefinidamente

dentro del dominio y la función no tiene máximo global.

Cuando las variables no pueden ser negativas el teorema de Weierstrass garantiza que tenemos tanto

mínimo como máximo global. El mínimo no cambia, ya que está dentro del conjunto factible, y el máximo

corresponde a la mayor curva de nivel dentro del dominio (en rojo). Así, el punto donde se alcanza el

máximo es el punto (6, 0) y el valor máximo de la función es f (6, 0) = 18. ♣

Winplot 16.10 La empresa Animales Salvajes S.A. cría faisanes y perdices para repoblar el bosque y

dispone de sitio para criar 100 pájaros durante la temporada. Criar un faisán cuesta 20 euros y criar una

PROYECTO MATECO 3.14159 Página 554

Page 7: Tema 16 Introducción a la Programación Matemática

TEMA 16. INTRODUCCIÓN A LA PROGRAMACIÓN MATEMÁTICA

perdiz cuesta 30 euros. La fundación Vida Animal paga a Animales Salvajes S.A. 34 euros por cada faisán

y 46 euros por cada perdiz. Determinar gráficamente utilizando el programa de dibujo WinPlot cuántas

perdices y cuántos faisanes debe criar la empresa si dispone de 2400 euros para cubrir costes.

Solución En primer lugar planteamos un modelo para el problema

Variables de decisión (xi: número de pájaros de cada tipo con i = 1, 2):

x1: nº de faisanes para cría

x2: nº de perdices para cría

Función objetivo (maximización): Beneficios (Ingresos menos costes):

Ingresos I(x1, x2) = 34x1 + 46x2

Costes C(x1, x2) = 20x1 + 30x2

B(x1, x2) = 34x1 + 46x2 − (20x1 + 30x2) = 14x1 + 16x2

Restricciones (Conjunto factible):

Restricción sobre los costes (coste máximo de 2400 euros)

C(x1, x2) = 20x1 + 30x2 ≤ 2400

Restricción sobre el número de animales (número máximo de 100 animales)

N(x1, x2) = x1 + x2 ≤ 100

Variables no negativas y enteras: x1, x2 ≥ 0 con xi ∈ Z para i = 1, 2.

Página 555 PROYECTO MATECO 3.14159

Page 8: Tema 16 Introducción a la Programación Matemática

Bloque V. PROGRAMACIÓN MATEMÁTICA

Modelo matemático (PLE)

max 14x1 + 16x2

20x1 + 30x2 ≤ 2400

x1 + x2 ≤ 100

x1, x2 ≥ 0

x1, x2 ∈ Z

En winplot abrimos una ventana de dos dimensiones e introducimos la función objetivo como una

ecuación implícita igualando la función a un parámetro, B(x1, x2) = a, para ver como evolucionan el valor

de la función al variar el parámetro (curvas de nivel de la función). Las restricciones las introducimos como

igualdades y posteriormente sombreamos la región correspondiente al conjunto factible.

El valor de la función es cero en el origen y crece siguiendo el patrón que marcan las curvas de nivel. El

último punto que alcanzan las curvas de nivel dentro de la región factible es el punto de intersección de las

rectas que limitan la región y en él la función alcanza su valor máximo. Si resolvemos el sistema formado

por las correspondientes ecuaciones obtenemos como solución 60 faisanes y 40 perdices. ♣

Ejercicio 16.11 Una de relojería vende relojes deportivos y de precisión a precio de catálogo de 30 y 55

euros respectivamente. Los relojes necesitan ser montados y ajustados y tanto el taller de montaje como el

de ajuste disponen de ocho horas de trabajo. Se necesita dos horas de montaje para ensamblar mil relojes

de cualquier tipo pero el ajuste de mil relojes deportivos lleva una hora y el de mil relojes de precisión tres.

Determinar el numero de relojes a fabricar de cada tipo si queremos maximizar el ingreso.

PROYECTO MATECO 3.14159 Página 556

Page 9: Tema 16 Introducción a la Programación Matemática

TEMA 16. INTRODUCCIÓN A LA PROGRAMACIÓN MATEMÁTICA

Solución

Variables de decisión (número de relojes fabricados de cada tipo en miles de unidades):

• x1: nº de relojes deportivos • x2: nº de relojes de precisión.

Función objetivo (ingresos en miles de euros):

• I(x1, x2) = 30x1 + 55x2

Restricciones (Conjunto factible):

• Restricción sobre las horas de montaje (máximo 8 horas) g1(x1, x2) = 2x1 + 2x2 ≤ 8

• Restricción sobre las horas de ajuste (máximo 8 horas) g2(x1, x2) = x1 + 3x2 ≤ 8

• Variables no negativas: x1, x2 ≥ 0.

Modelo matemáticomax 30x1 + 55x2

2x1 + 2x2 ≤ 8

x1 + 3x2 ≤ 8

x1, x2 ≥ 0

Para el análisis del problema representamos las curvas de ni-

vel como funciones implícitas y el conjunto factible como una

región del plano, teniendo en cuenta que las variables no pue-

den ser negativas (incluimos la curva de nivel correspondiente

al óptimo que se determina en este análisis).

Como las curvas de nivel son rectas y su valor aumenta a medida que nos alejamos del origen (donde

la curva vale cero y corresponde al mínimo global), el máximo se alcanza en el vértice de la región factible

en el que se cortan las rectas correspondientes a las restricciones. Este punto lo podemos determinar resol-

viendo el sistema formado por las ecuaciones de las dos rectas (ejercicio) obteniendo que el valor máximo

de los ingresos se consigue fabricando dos mil relojes de cada tipo (x1 = 2 y x2 = 2) y es de 170.000 euros

(lo calculamos sustituyendo en la función). ♣

Página 557 PROYECTO MATECO 3.14159

Page 10: Tema 16 Introducción a la Programación Matemática

Bloque V. PROGRAMACIÓN MATEMÁTICA

Ejercicio 16.12 En el problema 16.11 el precio de los relojes se mantiene constante independientemente

del número de unidades vendidas. Un supuesto más realista es considerar que a medida que aumenta

este número es necesario disminuir el precio de los relojes para conseguir venderlos. Así, suponemos que

por cada mil unidades producidas hay disminuir el precio de los relojes deportivos en 6e y el de los de

precisión en 4e. Determinar el numero de relojes a fabricar de cada tipo si queremos maximizar el ingreso

y las condiciones en los talleres de montaje y ajuste no cambian.

Solución Las variables de decisión siguen siendo el número de relojes fabricados de cada tipo en miles

de unidades y también se mantienen las restricciones. Lo que sí cambia es la función objetivo (ingresos en

miles de euros) ya que el precio de los relojes deportivos y de precisión pasa a ser de 30− 6x1 y de 55− 4x2

respectivamente:

max (30 − 6x1)x1 + (55 − 4x2)x2

2x1 + 2x2 ≤ 8

x1 + 3x2 ≤ 8

x1, x2 ≥ 0

Las curvas de nivel de la función objetivo son elipses y su

valor aumenta a medida que nos alejamos del origen y su ta-

maño disminuye. La última curva de nivel dentro de la región

factible corresponde al óptimo, que está sobre una de las res-

tricciones y no es posible determinarlo sin otro tipo de estudio.

En nuestro caso es sencillo considerando que se cumple la segunda restricción y tenemos x1 = 8 − 3x2.

Sustituyendo en la función objetivo el ingreso es h(x2) := −58x22 + 253x2 − 144.

Esta función es una parábola invertida y tiene un máximo en su vértice, donde

x2 = −b

2a= −

253−2 ∗ 58

=253116= 1.457 =⇒ x1 = 8 − 3x2 =

169116= 2.181

Por tanto, el valor máximo de los ingresos se consigue fabricando 1.457 relojes deportivos y 2.181 de

precisión y es de 131.901 euros (lo calculamos sustituyendo en la función). ♣

PROYECTO MATECO 3.14159 Página 558

Page 11: Tema 16 Introducción a la Programación Matemática

TEMA 16. INTRODUCCIÓN A LA PROGRAMACIÓN MATEMÁTICA

16.3. Resolución de problemas con Solver

Solver es un complemento de Microsoft Excel que permite encontrar la solución óptima de un problema

de programación matemática (máximo y mínimo). Este complemento parte de unos valores iniciales para

las variables de decisión que ajusta iterativamente para que sean óptimos y cumplan las restricciones. El

método que se usa depende de si el problema es lineal, método del simplex, o no, método del gradiente.

Excel 16.13 Resolver el problema 16.11 utilizando Solver.

Solución El primer paso es incluir los datos en la hoja de cálculo de forma ordenada, teniendo en cuenta

que tenemos que incluirlos a través de un menú específico (es bastante intuitivo):

precios de los relojes en las celdas B4 y C4 (ingresos unitarios)

horas de montaje por cada mil relojes en las celdas B5 y C5

horas de ajuste por cada mil relojes en las celdas B6 y C6

La función objetivo se escribe en una única celda (celda D4) y las variables de decisión de las que

depende en un rango de celdas contiguas (celdas B3 y C3). En nuestro caso tenemos restricciones de no

negatividad, que se introducen marcándolas en una casilla del menú, y restricciones correspondientes a

desigualdades, que se escriben con el lado izquierdo en una celda (celdas D5 y D6) y el derecho en otra

(celdas F5 y F6). El signo de desigualdad se escribe entre ambas (no lo lee y hay que elegirlo al introducirlas

en el menú).

▶ Al introducir la función objetivo y las funciones correspondientes a las restricciones, como son li-

neales, multiplicamos el número de miles de relojes de cada tipo por los correspondientes coeficientes y

sumamos los resultados directamente con la función SUMAPRODUCTO.

Página 559 PROYECTO MATECO 3.14159

Page 12: Tema 16 Introducción a la Programación Matemática

Bloque V. PROGRAMACIÓN MATEMÁTICA

Para la resolución con Solver establecemos el objetivo, introducimos las restricciones y resolvemos el

problema (al ser un problema lineal utilizamos el método del simplex).

Al resolver, las variables de decisión, el ingreso y las

horas de cada taller cambian a sus valores óptimos,

obteniendo que el valor máximo de los ingresos se

consigue fabricando dos mil relojes de cada tipo (x1 =

2 y x2 = 2) y es de 170.000 euros. ♣

PROYECTO MATECO 3.14159 Página 560

Page 13: Tema 16 Introducción a la Programación Matemática

TEMA 16. INTRODUCCIÓN A LA PROGRAMACIÓN MATEMÁTICA

Excel 16.14 Resolver el problema 16.12 utilizando Solver.

Solución La diferencia con el problema 16.13 son los precios de los relojes de las celdas B4 y C4.

Página 561 PROYECTO MATECO 3.14159

Page 14: Tema 16 Introducción a la Programación Matemática

Bloque V. PROGRAMACIÓN MATEMÁTICA

Al no ser constante este precio la función no es lineal y para resolver con Solver tenemos que utilizar el

método del gradiente. Desde el punto de vista de los resultados la diferencia con el lineal es fundamental,

ya que el resultado es una aproximación y no tenemos garantía de que la solución sea un máximo global.

Aunque en nuestro caso la representación gráfica muestra que lo es, en general, se necesita determinar la

forma de la función para estudiar este hecho (concavidad/convexidad).

Ejemplo 16.15 Una empresa de marketing diseña una campaña publicitaria para lanzar un nuevo pro-

ducto, que se puede publicitar en cuatro medios: televisión, prensa, radio e internet. La empresa dispone

de 80.170 euros y quiere repartirlos de forma que se consiga la mayor audiencia posible. Determinar este

reparto con los datos de la siguiente tabla, que muestra para cada medio la audiencia potencial, el coste

en euros de un anuncio y el número máximo de anuncios que el medio permite contratar.

Televisión Prensa Radio Internet

Audiencia 5000 8500 2400 2800

Precio 600 925 290 380

Número máximo 30 60 60 80

Solución

Variables de decisión: número de anuncios en televisión, prensa, radio e internet (xi: número de anuncios

de cada tipo con i = 1, 2, 3, 4):

Función objetivo (maximización): Audiencia

B(x1, x2, x3, x4) = 5000x1 + 8500x2 + 2400x3 + 2800x4

Restricciones (Conjunto factible):

PROYECTO MATECO 3.14159 Página 562

Page 15: Tema 16 Introducción a la Programación Matemática

TEMA 16. INTRODUCCIÓN A LA PROGRAMACIÓN MATEMÁTICA

Restricción sobre el presupuesto 600x1 + 925x2 + 290x3 + 380x4 ≤ 80170

Restricciones sobre el número de anuncios x1 ≤ 30, x2 ≤ 60, x3 ≤ 60 y x4 ≤ 80.

Variables no negativas: xi ≥ 0 con i = 1, 2, 3, 4.

Modelo matemático (PL)

max 5000x1 + 8500x2 + 2400x3 + 2800x4

s.a. 600x1 + 925x2 + 290x3 + 380x4 ≤ 80170

x1 ≤ 30, x2 ≤ 60, x3 ≤ 60, x4 ≤ 80

x1, x2, x3, x4 ≥ 0

En la hoja de cálculo podemos ver que el reparto óptimo corresponde a 30 anuncios en televisión, 60 en

prensa, 23 en radio y ninguno en internet, con una audiencia de 715.200 clientes potenciales. ♣

Página 563 PROYECTO MATECO 3.14159

Page 16: Tema 16 Introducción a la Programación Matemática

Bloque V. PROGRAMACIÓN MATEMÁTICA

Ejercicios del tema

Ejercicio 16.16 Una empresa fabrica dos productos en dos máquinas. Una unidad del producto 1 requiere

2 dos horas en la máquina 1 y una hora en la máquina 2. Una unidad del producto 2 requiere una hora en

la máquina 1 y tres horas en la máquina 2. Los ingresos por unidad de los productos 1 y 2 son de 30e y

20e, respectivamente. El tiempo de procesamiento diario total disponible en cada máquina es de 8 horas.

Determinar gráficamente las cantidades diarias que hay que producir de cada uno de los productos

para que el ingreso sea el máximo posible considerando que

a) los precios de los productos 1 y 2 se mantienen constantes

b) a medida que aumenta el número de unidades producidas los precios de los productos 1 y 2 disminu-

yen en 5e y 6e por unidad de producto, respectivamente. ♣

Ejercicio 16.17 Una empresa utiliza tres operaciones para armar tres tipos de juguetes y dispone diaria-

mente para las tres operaciones de 430, 460 y 420 minutos, respectivamente. Los ingresos y tiempos de

operación unitarios para cada uno de los juguete aparecen en la siguiente tabla:

Trenes Camiones Coches

Ingreso (euros) 3 2 5

Operación 1 (minutos) 1 3 1

Operación 2 (minutos) 2 no se usa 4

Operación 3 (minutos) 1 2 no se usa

Determinar utilizando Solver las cantidades diarias de unidades a armar de cada uno de los juguetes

para obtener el máximo ingreso posible manteniendo la disponibilidad de tiempos en los siguientes casos

a) Los ingresos unitarios no dependen del número de unidades producidas.

b) A medida que aumenta el número de juguetes producidos por cada unidad disminuye el ingreso

unitario de los trenes en 0.75e, de los camiones en 0,5e y de los coches en 1e. ♣

PROYECTO MATECO 3.14159 Página 564