Fundamentos de Programación Lineal
Fundamentos de Programación Lineal
Fundamentos de Programación Lineal
INTRODUCCIÓN
Ejemplo:
Una empresa que se plantea la conveniencia de lanzar al mercado un nuevo producto, debe iniciar
su estudio en una primera dimensión básica, revisando la situación del mercado, cuantía de la
inversión, disponibilidad de recursos y su coste, incluyendo los financieros, tecnológicos, de mano
de obra, especialización de la misma, etc. En una segunda dimensión estará la viabilidad de las
operaciones necesarias para realizar el producto y su coste, la calidad del mismo, diseño, precio
de venta y otras variables relacionadas con el marketing futuro.
Por otra parte, la decisión de la empresa involucra decisiones parciales en todos los
departamentos de la organización de la misma, que tienen a su vez objetivos parciales, lo que
hace que las decisiones puedan provocar conflictos internos. Hacia fuera, la decisión de la
empresa modificará la situación previa del mercado, dando lugar a cambios en las decisiones de
los competidores, lo que probablemente requerirá modificar las estrategias inicialmente previstas
por la empresa.
Al crecer la complejidad de las decisiones que debe tomar el gerente de la empresa, éste ve que
debe abandonar la “intuición” y decidir apoyado en herramientas científicas que investiguen y
analicen de forma adecuada todas las dimensiones del problema, obteniendo una solución con
menor incertidumbre o, al menos, acotando ésta.
1
IE Business School
FUNDAMENTOS DE PROGRAMACIÓN... MC2-001
Dentro de esta parte del Curso vamos a estudiar tres tipos de técnicas o modelos, que tienen
aplicaciones y fines distintos pero habitualmente complementarios en el proceso de decisión:
Las variables no controladas pasan a ser controladas usando la técnica específica de cada
tipo de modelo. Por ejemplo: asignando una probabilidad a los valores que pueden tomar,
expresándolas en función de variables de decisión, etc.
Definición del modelo: expresar matemáticamente el objetivo que se desea en función de las
variables de decisión o de estrategia.
Diseñado el modelo, es ya fácil identificar la estrategia óptima, porque cada una llevará asociado
un objetivo de forma precisa o con una probabilidad.
Ejemplo:
Disponemos de un dinero CI que queremos invertir en renta fija al tipo de interés i durante n años,
con el objetivo de hacer máximo nuestro beneficio:
- Si logramos que un banco nos ofrezca un tipo constante del 3%, haremos i = 3%.
- También es posible que el banco nos ofrezca un tipo variable en función del CI y del
período n. Por tanto, i ya está controlada porque para cada estrategia (CI, n) su valor
será conocido.
2
IE Business School
FUNDAMENTOS DE PROGRAMACIÓN... MC2-001
Modelo:
CF = CI * (1 + i )n
Expresando i en alguna de las formas antes vistas, cada estrategia (CI, n) se corresponde
con un objetivo CF.
Este tipo de modelos se usan en la empresa cuando para lograr los objetivos, las decisiones
necesarias están limitadas por los recursos disponibles o algún tipo de restricción.
Los modelos de optimización relacionan el objetivo con la disponibilidad de recursos para lograrlo
y emplean las técnicas denominadas de Programación Lineal (PL), lo que permite obtener tanto la
solución óptima de las variables de decisión como la disponibilidad resultante de recursos y varios
análisis de sensibilidad a la variación de los recursos disponibles.
Ejemplo:
Comenzamos definiendo las Variables de Decisión (VD): son las variables cuyo valor y
combinación óptima deseamos conocer.
El modelo está formado por ecuaciones sencillas (“lineales”) que se expresan en función de las
VD, de la forma:
a · x1 + b · x2 + c · x3 + ...,
Ejemplo:
Debe tenerse en cuenta que en la función objetivo deben incluirse todos los ingresos y costes
derivados de las VD, pero no otros. Es decir, incluiremos costes variables pero no de
estructura o fijos. Si los valores de las VD fueran = 0, la función objetivo debe ser 0.
3
IE Business School
FUNDAMENTOS DE PROGRAMACIÓN... MC2-001
El objetivo del modelo será maximizar, minimizar o hacer Z igual a un valor determinado.
La contribución (beneficio neto: ingresos por venta del producto menos los costes de los recursos
consumidos en su fabricación y venta) por unidad del DVD es 120 €, mientras del tipo II es 320 €.
Una unidad del DVD normal consume 1 h de fabricación y 3 h de montaje, mientras que una
unidad del DVD-R necesita 2 h de fabricación y 1 h de montaje, además de llevar incorporada una
unidad del componente especial.
Para simplificar, suponemos que cada día se vende toda la producción y que no hay stocks de
productos semiacabados.
MODELO DE PL:
4
IE Business School
FUNDAMENTOS DE PROGRAMACIÓN... MC2-001
es la “disponibilidad” de recurso en cada día. El signo significa que el consumo diario debe ser
“menor o igual” que la disponibilidad. A este tipo de expresiones se las suele llamar “inecuaciones”
al no tener únicamente el signo (= ) que se asocia a las “ecuaciones”.
SOLUCIÓN GRÁFICA:
Dibujar la primera restricción: Mano de obra para fabricación de módulos. Emplearemos la ecuación
con el signo = lo que nos dará el dibujo de la máxima disponibilidad del recurso: 1 X1 + 2 X2 = 400
Si hacemos X1 = 0, entonces, X2 = 400/2 = 200, por tanto, la recta pasará por el punto (0,
200) de los ejes.
Si hacemos X2 = 0, entonces, X1 = 400, por tanto, la recta pasará por el punto (400,0) de los
ejes.
X2
200
Mano de obra para fabricación de módulos
X1 + 2 X2 = 400
0 400 X1
Todos los puntos (posibles combinaciones de cantidades a producir X 1 , X2) de la zona situada
entre los ejes y la recta dibujada, cumplen esta restricción.
3 X1 + 1 X2 = 450
Si hacemos X1 = 0, entonces, X2 = 450, por tanto, la recta pasará por el punto (0 , 450) de
los ejes.
Si hacemos X2 = 0, entonces, X1 = 150, por tanto, la recta pasará por el punto (150 , 0) de
los ejes.
5
IE Business School
FUNDAMENTOS DE PROGRAMACIÓN... MC2-001
X2
450
200
0 150 400 X1
Todos los puntos (posibles combinaciones de cantidades a producir X 1 , X2) de la zona situada
entre los ejes y las dos rectas dibujadas, cumplen ambas restricciones.
Por tanto, será una recta horizontal que pasa por el punto (0, 175)
X2
450
Mano de obra para cadena de montaje final
0 150 400 X1
Todos los puntos (posibles combinaciones de cantidades a producir X 1 , X2) de la zona situada
entre los ejes y las tres rectas dibujadas, cumplen todas las restricciones y, por tanto, son
soluciones posibles.
Entre las posibles soluciones, elegiremos la que produzca mayor beneficio. Si deseamos dibujar la
recta del beneficio, debemos dar algún valor aproximado a Z:
6
IE Business School
FUNDAMENTOS DE PROGRAMACIÓN... MC2-001
-Si hacemos X1 = 0, entonces, X2 = 234,4, por tanto, la recta pasará por el punto (0, 234,4)
de los ejes.
-Si hacemos X2 = 0, entonces, X1 = 625, por tanto, la recta pasará por el punto (625 , 0) de
los ejes.
Para cada Z que estimemos, habrá una recta paralela a la dibujada. Para Z menores de 75000, la
recta bajará, para Z mayores, la recta subirá. Dado que las soluciones posibles están en la zona
resaltada cuyos puntos cumplen las tres restricciones, deberemos bajar Z paralela a la
representada, hasta alcanzar algún punto de la zona resaltada.
Vemos, por tanto, que la solución estará en la parte superior de la zona resaltada y si observamos
la pendiente de la recta del Objetivo, vemos que el punto óptimo es el señalado con un círculo,
donde se cortan las rectas de Mano de obra para fabricación de módulos y la de Componentes
Especiales
Para determinar este punto, usamos las ecuaciones de las rectas que lo definen:
X1 + 2 X2 = 400
X2 = 175
Por tanto, la solución será: Producir 50 unidades/día del DVD y 175 Ud./día del DVD-R, con un
beneficio neto de:
Nota: Si tuviéramos duda de que pudieran ser óptimos otros puntos de la zona resaltada, podemos determinar sus
coordenadas por el mismo método, sustituir en la ecuación del beneficio y comprobar si es mayor.
7
IE Business School
FUNDAMENTOS DE PROGRAMACIÓN... MC2-001
Por ejemplo, el punto donde se cortan las rectas de Mano de obra para cadena de montaje final y
de Mano de obra para fabricación de módulos lo determinamos con ambas ecuaciones:
3 X1 + X2 = 450
X1 + 2 X2 = 400
Sustituyendo ahora este valor en una de las ecuaciones, por ejemplo la segunda:
Z = 120 · 100 + 320 · 150 = 60000 €, por tanto esta producción no es óptima, es mejor la anterior.
UTILIZACIÓN DE RECURSOS
Vemos en el gráfico que la solución óptima está en un punto que pertenece tanto a la restricción
de Componentes Especiales como a la de Mano de obra para fabricación de módulos. Por tanto
ambos recursos estarán totalmente agotados en esta solución óptima. En cambio, el punto óptimo
no pertenece a la restricción de Mano de obra para cadena de montaje final, por lo que esta
restricción no estará totalmente agotada. Lo podemos comprobar sustituyendo en las ecuaciones
de las restricciones, los valores de X1 y X2 de la solución óptima:
3 X1 + X2 = 3 * 50 + 175 = 325, por tanto, no usamos todo el recurso disponible, sobrarán: 450 – 325 =
125 h/día.
Esta información adicional es útil, ya que identificar los recursos ociosos y agotados permitirá
tomar decisiones de mejora de, en este caso, las operaciones de la empresa.
ANÁLISIS DE SENSIBILIDAD
Estudia los cambios en el valor del objetivo óptimo cuando cambia alguna de las hipótesis de
partida, especialmente los coeficientes de la función objetivo o las disponibilidades de recursos.
Esa variación del objetivo por unidad de variación del recurso o restricción es el precio sombra
(PS).
Una aplicación del PS es que fija un margen de negociación ante posibles ofertas de recurso
extra: si el objetivo aumenta en el PS por cada unidad extra de recurso de que dispongamos y
8
IE Business School
FUNDAMENTOS DE PROGRAMACIÓN... MC2-001
utilicemos, se deduce que el máximo que pagaríamos por esa unidad por encima de su coste
habitual ("prima"), sería el PS. Recordar que dado que el objetivo en PL es siempre neto (restados
costes), el PS es un aumento neto del mismo, por lo que el valor de recurso extra para nosotros es
el Coste habitual + PS.
Se puede obtener gráficamente el PS y su Límite de cada una de las dos restricciones limitantes
del beneficio (recursos agotados):
X2
0 X1
Por tanto, el nuevo punto óptimo será el formado por el cruce entre:
X1 + 2 X2 = 401
X2 = 175
Sin embargo, este incremento posible con esa ganancia extra, tendrá un límite, por encima del
cual ya no aumentará el beneficio o no lo hará en la misma proporción del PS:
9
IE Business School
FUNDAMENTOS DE PROGRAMACIÓN... MC2-001
X2
Componentes especiales
Por tanto, el límite de incremento del recurso Mano de obra para fabricación de módulos, será el
dado por su ecuación pasando por ese punto.
Las coordenadas de ese punto las obtenemos teniendo en cuenta que forma parte de las
ecuaciones originales de Mano de obra para cadena de montaje final y de Componentes
Especiales:
3 X1 + X2 = 450
X2 = 175
X1 + 2 X2 = 91,7 + 2 * 175 = 441,7, dado que teníamos inicialmente 400 h/día, el límite de
aumento del recurso para ese PS constante es 41,7, aprox. 42 h/día.
b) Componentes Especiales
10
IE Business School
FUNDAMENTOS DE PROGRAMACIÓN... MC2-001
X2
450
Mano de obra para cadena de montaje final
Componentes especiales
0 150 400 X1
Por tanto, el nuevo punto óptimo será el formado por el cruce entre:
X1 + 2 X2 = 400
X2 = 176
Sin embargo, este incremento posible con esa ganancia extra, tendrá un límite, por encima del
cual ya no aumentará el beneficio o no lo hará en la misma proporción del PS:
11
IE Business School
FUNDAMENTOS DE PROGRAMACIÓN... MC2-001
X2
450
Mano de obra para cadena de montaje final
Componentes especiales
Por tanto, el límite de incremento del recurso Componentes especiales, será el dado por su
ecuación pasando por ese punto.
Las coordenadas de ese punto las obtenemos teniendo en cuenta que forma parte de las
ecuaciones originales de Mano de obra para fabricación de módulos y del eje vertical (su ecuación
es X1 = 0):
X1 + 2 X2 = 400
X1 = 0
X2 = 200
dado que teníamos inicialmente 175 u./día, el límite de aumento del recurso para ese PS
constante es 25 u./día.
Nota: En este caso, hemos calculado los PS aumentando una unidad la disponibilidad de recurso, dado que las
restricciones eran del tipo “menor o igual” y, por tanto, obtendríamos más beneficio si dispusiéramos de más recurso.
También pueden existir restricciones del tipo “mayor o igual que”, por ejemplo, si tuviéramos un
contrato con un cliente que nos obliga a producir “al menos” 20 DVD al día. Si esta restricción
fuera limitante, tendría PS y lo calcularíamos “disminuyendo” una unidad esa obligación.
12
IE Business School
FUNDAMENTOS DE PROGRAMACIÓN... MC2-001
Es otro análisis de sensibilidad interesante: ¿en qué rangos podrían variar las contribuciones
(beneficios unitarios netos) de cada producto, pero sin que varíe la solución óptima ya obtenida?.
El cálculo analítico de estos rangos es un poco más engorroso, pero también se entiende
fácilmente viendo el gráfico y no olvidemos que ahora se trata sólo de entenderlo. La solución en
la práctica la obtendremos con un software adecuado que hará estos cálculos de forma
automática.
Gráficamente el cambio de los coeficientes del objetivo supone cambiar la pendiente de su recta y,
dado que no queremos que el punto óptimo cambie, podemos variar la pendiente justo hasta el
límite donde otro punto de la región resaltada pasaría a ser óptimo.
Observando el gráfico, la recta de trazos de la función objetivo bascularía sobre el punto óptimo
pero dentro de la región formada por las rectas de Componentes especiales y de Mano de obra
para fabricación de módulos (rectas dibujadas a puntos en el gráfico), porque si superamos esa
región, otros puntos pasarían a ser óptimos y darían otra solución distinta de la que queremos
mantener.
X2
450
Mano de obra para cadena de montaje final
Componentes especiales
Tal como tenemos dibujado el gráfico, la pendiente de la recta objetivo es (-120/320), ya que:
X2 = (-120/320) X1 + (62000/320)
Podríamos aumentar esa pendiente hasta que coincida con la recta de Mano de obra para
fabricación de módulos, cuya pendiente es (-1/2), ya que:
13
IE Business School
FUNDAMENTOS DE PROGRAMACIÓN... MC2-001
Por tanto, manteniendo la misma solución óptima, podremos aumentar la contribución del DVD,
que actualmente es 120 €/ud., en una cantidad “t” hasta que ambas pendientes coincidan:
Por otra parte, podríamos disminuir esa pendiente hasta que coincida con la recta de
Componentes especiales, cuya pendiente es 0, ya que X2 = 175, por lo que podemos expresar:
X2 = 0 * X1 + 175
Por tanto, manteniendo la misma solución óptima, podremos disminuir la contribución del DVD,
que actualmente es 120 €/ud., en una cantidad “t” hasta que ambas pendientes coincidan:
En resumen, la solución óptima se mantendría para contribuciones del DVD entre 120-120 = 0 y
120+40 = 160 €/ud.
Del mismo modo podríamos calcular los rangos de variación de la contribución del DVD-R, aunque
ahora hay que realizar un nuevo gráfico donde X2 sea el eje horizontal y X1 el eje vertical. Por ello,
hay que expresar las ecuaciones de la forma alternativa: X 1 = b * X2 + a, siendo “b” la pendiente de
la nueva recta:
400
Componentes especiales
150
De nuevo, observando el gráfico, la recta de trazos de la función objetivo bascularía sobre el punto
óptimo pero dentro de la región formada por las rectas de Componentes especiales y de Mano de
obra para fabricación de módulos (rectas dibujadas a puntos en el gráfico), porque si superamos
esa región, otros puntos pasarían a ser óptimos y darían otra solución distinta de la que queremos
mantener.
14
IE Business School
FUNDAMENTOS DE PROGRAMACIÓN... MC2-001
Podríamos disminuir esa pendiente hasta que coincida con la recta de Mano de obra para
fabricación de módulos, expresada de la nueva forma, cuya pendiente es ahora (-2), ya que:
Por tanto, manteniendo la misma solución óptima, podremos disminuir la contribución del DVD-R,
que actualmente es 320 €/ud., en una cantidad “t” hasta que ambas pendientes coincidan:
Por otra parte, podríamos aumentar esa pendiente hasta que coincida con la recta de
Componentes especiales, cuya pendiente es “infinito”, ya que vemos que es una recta vertical
Por tanto, manteniendo la misma solución óptima, podremos aumentar la contribución del DVD-R,
que actualmente es 320 €/ud., hasta infinito, es decir: todo lo que queramos.
En resumen, la solución óptima se mantendría para contribuciones del DVD-R entre 320-80=240
€/ud. e infinito.
Dado que en la función objetivo están ingresos y costes, este tipo de análisis nos permite también
estudiar, por ejemplo, los efectos sobre la solución óptima de variaciones de ingresos como los
precios de venta, etc.
Podemos ver este análisis desde otro punto de vista: recordamos que había unas restricciones
implícitas en el modelo que eran:
X1 0
X2 0
Este análisis nos ilustra sobre el coste en términos de objetivo de desear que esa VD tenga al
menos un valor de 1. Esto podemos planteárnoslo en la práctica por razones como querer ofrecer
ese producto no óptimo para ampliar nuestra gama, o estar presentes en ese mercado, etc.
Un software comúnmente disponible y fácil de usar para resolver con ordenador un modelo de PL
es la herramienta SOLVER, que está incorporada a la mayoría de las hojas de cálculo del
mercado.
Aquí la usaremos dentro de la hoja de cálculo Excel, donde aparece dentro del Menú Principal,
opción HERRAMIENTAS. Si no aparece esta opción, buscar en HERRAMIENTAS,
COMPLEMENTOS y dentro de esta opción, asegurarse de que está seleccionada la opción
SOLVER. Si ésta no aparece dentro de COMPLEMENTOS, debe volverse a instalar en el
ordenador la hoja de cálculo Excel completa, con todas sus opciones.
15
IE Business School
FUNDAMENTOS DE PROGRAMACIÓN... MC2-001
Solver trata de conseguir un objetivo situado en una única celda (máximo, mínimo o con un valor
determinado) en función del valor de un conjunto de celdas (rango que se incluye en el campo de
Solver "cambiando las celdas") y que al mismo tiempo se cumplan determinadas restricciones.
Lógicamente, para que Solver pueda hallar una solución, es preciso que esos tres elementos
estén conectados por fórmulas. Para ello, se comienza definiendo las celdas que contendrán las
VD y después se definen la celda Objetivo y las Restricciones en función de aquéllas. Cada
restricción debe estar compuesta por una celda que contiene la fórmula que expresa la utilización
del recurso en función de las VD, una relación (=, <= ó >=) y otra celda que contiene la
disponibilidad o el valor de la restricción.
Nota: Dado que estamos utilizando Solver para Programación Lineal, debemos indicarlo dentro de
OPCIONES, seleccionando "ADOPTAR MODELO LINEAL". De no elegir esta opción, Solver
aplica otro procedimiento de cálculo, dando bien la solución, pero sin los análisis de sensibilidad
que deseamos.
Vamos a resolver este Caso con Solver, obteniendo la misma solución y análisis que ya hemos
realizado con el método gráfico.
La estructura en la hoja de cálculo, con los datos y fórmulas puede ser la siguiente:
B C D E
1
2 PRODUCTOS (ud./día) solución Beneficio por beneficio total
unidad
3 X1 (DVD) 120 =D3*C3+D4*C4
4 X2 (DVD-R) 320
5
6
7
8 Restricciones: Consumo de recurso Disponibilidad de
recurso
9 M.O. para fabricación de módulos =C3+2*C4 400
10 M.O. para cadena de montaje final =3*C3+C4 450
11 Componentes especiales =C4 175
16
IE Business School
FUNDAMENTOS DE PROGRAMACIÓN... MC2-001
Rellenamos los campos de Solver con las referencias a la hoja. Para introducir las restricciones,
seleccionamos AGREGAR y rellenar la pantalla que aparece. Las tres restricciones de recursos
limitados pueden seleccionarse conjuntamente en un rango: Todo el rango C9:C11 (consumos)
menor o igual que D9:D11 (disponibilidades).
$E$3
$C$3:$C$4
$C$3:$C$4 >= 0
$C$9:$C$11 <= $D$9:$D$11
Solver indica que ha encontrado una solución y nos ofrece varios informes adicionales, de los que
seleccionamos únicamente el INFORME DE SENSIBILIDAD, que aparecerá en otra hoja de Excel
anexa a la de trabajo.
B C D E
1
2 PRODUCTOS (ud./día) solución Beneficio por beneficio total
unidad
3 X1 (DVD) 50 120 62000
4 X2 (DVD-R) 175 320
5
6
7
8 Restricciones: Consumo de recurso Disponibilidad de
recurso
9 M.O. para fabricación de módulos 400 400
10 M.O. para cadena de montaje final 325 450
11 Componentes especiales 175 175
Por tanto, la solución será: Producir 50 unidades/día del DVD y 175 Ud./día del DVD-R, con un
beneficio neto de 62000 €/día.
Comparando las celdas C9:C11 y D9:D11, deducimos que se han agotado la M.O. para
fabricación de módulos y los Componentes especiales, mientras que sobran 125 h. de M.O. para
cadena de montaje final.
17
IE Business School
FUNDAMENTOS DE PROGRAMACIÓN... MC2-001
Nota: Hay una errata en este tipo de informe de Solver, en las dos tablas que aparecen, la columna de la derecha debe
denominarse DESCENSO PERMISIBLE y no Aumento Permisible como figura.
En la primera tabla, observamos que ninguna de las variables de decisión tiene GRADIENTE (O
COSTE) REDUCIDO, debido a que ambas tienen una solución óptima distinta de cero.
Los COEFICIENTES DE LA FUNCIÓN OBJETIVO pueden, sin que cambie la solución, moverse
en el rango definido por el “aumento permisible” y el “descenso permisible”. Es decir, el beneficio
neto de los DVD puede variar entre 120+40 = 160 €/unidad y 120-120 = 0. El beneficio neto de los
DVD-R puede variar entre 320+infinito = infinito y 320-80 = 240 €/unidad.
Si la disponibilidad de M.O. para fabricación de módulos aumentara de 400 a 401 horas, con
las demás restricciones fijas y si el coste de esa hora extra fuera el mismo que las demás, el
objetivo aumentaría en su PS = 120 €//día. En Solver es fácil y rápido hacer la prueba: basta
poner en la celda D9 la nueva cantidad 401 y resolver de nuevo Solver.
Este PS se mantendrá constante por cada unidad extra hasta alcanzar el límite AUMENTO
PERMISIBLE de 41 h. extra. Con aumentos superiores, se agotaría el recurso de la M.O. para
cadena de montaje final y la solución cambiaría. Es fácil de comprobar en Solver: basta poner
en la celda D9 un valor de superior y ver que ya no mejora la solución.
Si la disponibilidad de Componentes especiales aumentara de 175 a 176 ud., con las demás
restricciones fijas y si el coste de esa unidad extra fuera el mismo que el resto, el beneficio
neto aumentaría en el PS = 80 €/día. Este PS se mantendrá constante por unidad extra hasta
alcanzar el límite AUMENTO PERMISIBLE de 25 ud. extra.
Estos modelos combinan de forma óptima los recursos disponibles en la empresa hacia un
objetivo: máximo beneficio, mínimo coste, determinada cuota de mercado, etc.
Los modelos de PL se formulan mediante ecuaciones sencillas (“lineales”) que relacionan dos
aspectos:
18
IE Business School
FUNDAMENTOS DE PROGRAMACIÓN... MC2-001
- Los recursos disponibles y las variables de decisión (consumo o empleo de recurso por
cada una).
Los valores óptimos de las variables de decisión obtenidos y el valor del objetivo asociado, no
es el único fruto interesante de la solución del modelo de PL, sino que puede realizarse un
análisis de sensibilidad de tipo marginal sobre las disponibilidades de recursos y sobre las
contribuciones unitarias de las variables de decisión, que permite orientar la actividad futura
de la empresa a fin de mejorar los objetivos futuros. ■ ■ ■
19