plgomez/archivos docencia/antiguos/teoriagrad… · práctica10. programaciónlineal Álgebra...

23
Práctica 10. Programación lineal Álgebra Lineal & Métodos Numéricos Dpto. Matemática Aplicada y Estadística Grado en Ingeniería en Sistemas de Telecomunicación Grado en Ingeniería Telemática Curso 2012-2013 Práctica 10. Programación lineal 1. El método gráfico Un problema clásico en Cálculo Infinitesimal es la obtención de extremos de una función f : K R n -→ R. Un problema de programación lineal es un caso particular en el que la función objetivo f es lineal y el conjunto K se puede expresar mediante inecuaciones lineales. Si tomamos unos vectores c, a i = 0, 1 i m y unas funciones lineales asociadas f (x 1 ,x 2 ,...,x n-1 ,x n )= n i=1 c i · x i = c 1 c 2 ... c n-1 c n · x 1 x 2 . . . x n-1 x n =< c,x> h i (x 1 ,...,x n )= n j =1 a i,j · x j = a i,1 ... a i,n · x 1 . . . x n =< a i ,x>, 1 i m llamaremos problema de programación lineal a todo aquel que pueda expresarse como la búsqueda de máximo o mínimo de una función objetivo f (x 1 ,...,x n )= c 1 · x 1 + c 2 · x 2 + ... + c n · x n (1) en un conjunto K de puntos admisibles, también llamado de soluciones factibles, que se puede expresar como K = x R n /a i,1 · x 1 + a i,2 · x 2 + ... + a i,n · x n S i b i , 1 i m , (2) siendo el signo S i de las restricciones cualquiera de estos tres: {≤, =, ≥}, no necesariamente el mismo para 1 i m Podemos aplicar teoremas clásicos del Cálculo Diferencial de varias variables a nuestro pro- blema. Por construcción la función f es continua y el conjunto K es cerrado. Si K también Material docente realizado por David Javier López Medina, e-mail: [email protected]. Tanto esta obra como los scripts a los que hace referencia están liberados bajo licencia Creative Commons Reconocimiento- NoComercial-CompartirIgual 3.0 España 1

Upload: others

Post on 10-Jul-2020

7 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: plgomez/archivos docencia/antiguos/teoriagrad… · Práctica10. Programaciónlineal Álgebra Lineal & Métodos Numéricos Dpto. Matemática Aplicada y Estadística Grado en Ingeniería

Práctica 10. Programación lineal

Álgebra Lineal & Métodos NuméricosDpto. Matemática Aplicada y Estadística

Grado en Ingeniería en Sistemas de TelecomunicaciónGrado en Ingeniería Telemática Curso 2012-2013

Práctica 10. Programación lineal1. El método gráfico

Un problema clásico en Cálculo Infinitesimal es la obtención de extremos de una funciónf : K ⊂ Rn −→ R. Un problema de programación lineal es un caso particular en el que lafunción objetivo f es lineal y el conjunto K se puede expresar mediante inecuaciones lineales.Si tomamos unos vectores ~c, ai 6= ~0, 1 ≤ i ≤ m y unas funciones lineales asociadas

f(x1, x2, . . . , xn−1, xn) =n∑i=1

ci · xi =(c1 c2 . . . cn−1 cn

x1x2...

xn−1xn

=< ~c, ~x >

hi(x1, . . . , xn) =n∑j=1

ai,j · xj =(ai,1 . . . ai,n

x1...xn

=< ~ai, ~x >, 1 ≤ i ≤ m

llamaremos problema de programación lineal a todo aquel que pueda expresarse como labúsqueda de máximo o mínimo de una función objetivo

f(x1, . . . , xn) = c1 · x1 + c2 · x2 + . . .+ cn · xn (1)

en un conjunto K de puntos admisibles, también llamado de soluciones factibles, que sepuede expresar como

K ={~x ∈ Rn/ai,1 · x1 + ai,2 · x2 + . . .+ ai,n · xn Si bi, 1 ≤ i ≤ m

}, (2)

siendo el signo Si de las restricciones cualquiera de estos tres: {≤,=,≥}, no necesariamenteel mismo para 1 ≤ i ≤ m

Podemos aplicar teoremas clásicos del Cálculo Diferencial de varias variables a nuestro pro-blema. Por construcción la función f es continua y el conjunto K es cerrado. Si K también

Material docente realizado por David Javier López Medina, e-mail: [email protected]. Tanto esta obracomo los scripts a los que hace referencia están liberados bajo licencia Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España

1

Page 2: plgomez/archivos docencia/antiguos/teoriagrad… · Práctica10. Programaciónlineal Álgebra Lineal & Métodos Numéricos Dpto. Matemática Aplicada y Estadística Grado en Ingeniería

Práctica 10. Programación lineal

fuese acotado el teorema de Weiertrass garantizaría la existencia de máximo y mínimo global,pero si K no está acotado puede ocurrir cualquier situación (que existan ambos extremos,que exista solo uno o que no exista ninguno). Es lo primero que deberíamos estudiar alenfrentarnos a un problema, si la función f está acotada (superior y/o inferiormente) en elconjunto K

Si existiese un extremo, también llamado solución óptima, en el interior de K debería anularel gradiente de f , lo cual es imposible ya que∇f(~x) = ~c 6= ~0. Nos vemos restringidos entoncesa buscar extremos en la frontera, situación en la que resultan de utilidad técnicas como lasde multiplicadores de Lagrange. En el caso particular de la programación lineal se puededemostrar que los extremos han de estar en un vértice, o en su defecto en un segmentocomprendido entre dos vértices que también sean extremos

No podemos representar gráficamente dimensiones n > 3, pero sí dimensiones bajas. En elcaso particular de dos variables es muy sencillo dibujar las restricciones en el plano, y de aquídeducir todos los casos posibles; si se entiende el comportamiento en el plano resulta sencilloextrapolar a dimensiones mayores. Vamos a ver ejemplos en el plano R2 con la funciónobjetivo f(x, y) = x − y y diferentes conjuntos de restricciones K. La primera distinciónimportante es la acotación de K

1. K está acotado: simplemente hay que buscar los extremos de la función f en los vérticesde K. Hay dos opciones

a) Sólo hay un máximo y un mínimo: éstos son los valores buscados

y

x

r r rr r r r r

r r r r r r r

r r r r r r r r r

r r r r r r r r r r r

r r r r r r r r r r r r r

r r r r r r r

����

���

���

���

���

���PP

PPPP

PPPP

PPPP

PPPP

PPPP

PPPP

PPAAAAAAAAAAAAAAAAAAA{

{

{

P1

P2

P3

x+ 3y ≤ 6

x−2y ≤

1

2x+y≥

2

f(x, y) = x− y, K ={

(x, y) ∈ R2/x+ 3y ≤ 6, x− 2y ≤ 1, 2x+ y ≥ 2}

2

Page 3: plgomez/archivos docencia/antiguos/teoriagrad… · Práctica10. Programaciónlineal Álgebra Lineal & Métodos Numéricos Dpto. Matemática Aplicada y Estadística Grado en Ingeniería

Práctica 10. Programación lineal

Nótese que f(x, y) es constante a lo largo de las rectas x− y = C, así que cuantomás cuanto más arriba/izquierda se encuentre la recta menor será el valor de f ,y en cambio será mayor cuanto más hacia abajo/derecha. El hecho de que K seaacotado automáticamente provoca que las rectas x− y = C no puedan desplazarseindefinidamente a lo largo de K

f(P1) = f(1, 0) = 1− 0 = 1

f(P2) = f(3, 1) = 3− 1 = 2 −→ Máximo

f(P3) = f(0, 2) = 0− 2 = −2 −→ Mínimo

Para (x, y) ∈ K se cumple que −2 ≤ f(x, y) ≤ 2, alcanzándose el mínimo −2 enel vértice P3 = (0, 2) y el máximo 2 en P2 = (3, 1). El punto P1 = (1, 0) no es nimáximo ni mínimo (ni punto de inflexión)

b) Hay más de un máximo o de un mínimo: entonces todo el segmento que los uneestá formado por extremos del mismo tipo

y

x

r r r r r

r r r r r r r r r r

r r r r r r r r r r r r r r r

r r r r r r r r r r r r r r r r r r r r

r r r r r r r r r r r r r r r r r r r r

�������������������

{ {

{{

P1 P2

P3

P4

y ≤ 2

x−y≤

1

y ≥ 0

x≥

0

f(x, y) = x− y, K ={

(x, y) ∈ R2/y ≤ 2, x− y ≤ 1, x ≥ 0, y ≥ 0}

La diferencia con el caso anterior es que una de las rectas x− y = C a lo largo delas que f es constante es uno de los lados del polígono K

f(P1) = f(0, 0) = 0− 0 = 0

f(P2) = f(1, 0) = 1− 0 = 1 −→ Máximo

f(P3) = f(3, 2) = 3− 2 = 1 −→ Máximo

f(P4) = f(0, 2) = 0− 2 = −2 −→ Mínimo

3

Page 4: plgomez/archivos docencia/antiguos/teoriagrad… · Práctica10. Programaciónlineal Álgebra Lineal & Métodos Numéricos Dpto. Matemática Aplicada y Estadística Grado en Ingeniería

Práctica 10. Programación lineal

Ahora si (x, y) ∈ K, −2 ≤ f(x, y) ≤ 1, alcanzándose el mínimo −2 en el vérticeP4 = (0, 2). El máximo 1 no sólo se alcanza en los puntos aislados P2 y P3,hay infinitos máximos localizados en el segmento que los une, cuya ecuación esx− y = 1, 1 ≤ x ≤ 3

2. K no está acotado: aquí lo fundamental es comprobar si la función está acotada inferioro/y superiormente

a) f no está acotada ni superior ni inferiormente: entonces no hay ni máximo nimínimo

y

x

r r r r r r

r r r r r r r r r r r

r r r r r r r r r r r r r r r r

r r r r r r r r r r r r r r r r r r r r r

r r r r r r r r r r r r r r r r r r r r r r r r

r r r r r r r r r r r r r r r r r r r r r r r r

r r r r r r r r r r r r r r r r r r r r r r r r

r r r r r r r r r r r r r r

r r r r

����

����

���

���

���

���

��

{P1

xxxxxxxxxxxxxx

x x x x x x x x x x x x x x x x x x x x x

x−2y ≤

1

y ≥ 0

f(x, y) = x− y, K ={

(x, y) ∈ R2/x− 2y ≤ 1, y ≥ 0}

Gráficamente la no acotación es evidente, ya que las rectas x− y = C puedendesplazarse indefinidamente hacia la izquierda y la derecha, lo que hace que lafunción pueda tomar valores tan pequeños y grandes como se desee. Analítica-mente deberíamos buscar sucesiones de puntos cuyos valores de f tiendan hacia±∞. Por ejemplo, podemos tomar los puntos Pλ = (1, λ), λ ≥ 0, que claramenteestán en K ya que cumplen las restricciones

h1(Pλ) = h1(1, λ) = 1− 2λ = 1− 2λ ≤ 1 =⇒ Pλ cumple x− 2y ≤ 1

h2(Pλ) = h2(1, λ) = λ ≥ 0 =⇒ Pλ cumple y ≥ 0

Tomando límites

lımλ→∞

f(Pλ) = lımλ→∞

f(1, λ) = lımλ→∞

1− λ = −∞

4

Page 5: plgomez/archivos docencia/antiguos/teoriagrad… · Práctica10. Programaciónlineal Álgebra Lineal & Métodos Numéricos Dpto. Matemática Aplicada y Estadística Grado en Ingeniería

Práctica 10. Programación lineal

lo que garantiza la no acotación inferior de f y que no exista mínimo. En el otrosentido, si usamos por ejemplo Qλ = (2λ − 1, λ), λ ≥ 0, también están en K yaque

h1(Qλ) = h1(2λ− 1, λ) = 2λ− 1− 2λ = −1 ≤ 1 =⇒ Qλ cumple x− 2y ≤ 1

h2(Qλ) = h2(2λ− 1, λ) = λ ≥ 0 =⇒ Qλ cumple y ≥ 0

el límite vale ahora

lımλ→∞

f(Qλ) = lımλ→∞

f(2λ− 1, λ) = lımλ→∞

2λ− 1− λ = lımλ→∞

λ− 1 =∞,

por lo que f tampoco está acotada superiormente ni tiene máximo en Kb) f está acotada solo en un sentido: entonces solo hay extremos de un tipo

y

x

r r r r

r r r r r r r r r

r r r r r r r r r r r r r r

r r r r r r r r r r r r r r r r r r r

r r r r r r r r r r r r r r r r r r r r r r r r

r r r r r r r r r r r r r r r r r r r r r r r r

r r r r r r r r r r r r r r r r r r r r

r r r r r r r r r

����������������������

{ {P1 P2

xxxxxxxxxxxxxxx

2x−y≤

4

y ≥ 0

x≥

0

f(x, y) = x− y, K ={

(x, y) ∈ R2/2x− y ≤ 4, x ≥ 0, y ≥ 0}

Los puntos Pλ = (1, λ) garantizan la no acotación inferior de f . En cambio en elotro sentido, si x ∈ K

f(x, y) = x− y = 2x− 2y2 = 2x− y

2 − y

2 ≤2x− y

2 ≤ 42 = 2,

y el máximo se alcanza en el vértice P2 = (2, 0), lo cual gráficamente se explicaporque no se pueden desplazar las rectas x− y = C indefinidamente hacia aba-jo/derecha

c) f está acotada en ambos sentidos un sentido: hay mínimo y máximo

5

Page 6: plgomez/archivos docencia/antiguos/teoriagrad… · Práctica10. Programaciónlineal Álgebra Lineal & Métodos Numéricos Dpto. Matemática Aplicada y Estadística Grado en Ingeniería

Práctica 10. Programación lineal

y

x

r r r r r r r r r r r r r r r r r r r r r r

r r r r r r r r r r r r r r r r r r r r r r r r r r r

r r r r r r r r r r r r r r r r r r r r r r r r r r r

r r r r r r r r r r r r r r r r r r r r r r r r

r r r r r r r r r r r r r r r r r r r

��������������

�����������������

x−y≤

2

x−y≥−1

f(x, y) = x− y, K ={

(x, y) ∈ R2/x− y ≤ 2, x− y ≥ −1}

En este caso se ve que −1 ≤ f(x, y) ≤ 2, alcanzándose el mínimo −1 en toda lasemirrecta x− y = −1, y el máximo 2 en la semirrecta paralela x− y = −2.

3. K es trivial: hay dos casos en los que el problema se resuelve automáticamente

a) K = ∅: no hay ninguna solución factible, por lo tanto no hay extremos

6

Page 7: plgomez/archivos docencia/antiguos/teoriagrad… · Práctica10. Programaciónlineal Álgebra Lineal & Métodos Numéricos Dpto. Matemática Aplicada y Estadística Grado en Ingeniería

Práctica 10. Programación lineal

y

x

@@@@@@@@@@@@@@@@@@@@@@

x≥

0

x+y ≤−1

y ≥ 0

f(x, y) = x− y, K ={

(x, y) ∈ R2/x+ y ≤ −1, x ≥ 0, y ≥ 0}

b) K = {P}: un caso muy particular de la acotación; si K se reduce a un punto,esta única solución factible ha de ser el máximo y el mínimo

y

x

@@@@@@@@@@@@@@@@@@@

{P1

x≥

0

x+y ≤

0

y ≥ 0

f(x, y) = x− y, K ={

(x, y) ∈ R2/x+ y ≤ 0, x ≥ 0, y ≥ 0}

7

Page 8: plgomez/archivos docencia/antiguos/teoriagrad… · Práctica10. Programaciónlineal Álgebra Lineal & Métodos Numéricos Dpto. Matemática Aplicada y Estadística Grado en Ingeniería

Práctica 10. Programación lineal

El punto P1 = (0, 0) es el único elemento de K, por tanto éste es óptimo tanto esel máximo y el mínimo

Nota: El ejemplo 2 c) pone de manifiesto que siK no está acotado puede contener semirrectaso incluso rectas completas, y éstas podrían estar formadas por extremos. Lo que es seguroes que si la función está acotada y en el conjunto existen vértices, los extremos se puedenlocalizar entre ellos; otra cosa es que haya otros puntos extremos que no sean vértices (en elplano segmentos, semirrectas o rectas, en dimensiones superiores las posibilidades aumentan)

2. El método algebraicoUno de los inconvenientes de la programación lineal radica en los distintos tipos de

conjuntos K de puntos admisibles que nos podemos encontrar, provocado por las distintasclases de restricciones que pueden aparecer: {≤,=,≥}. Por ello puede ser interesante buscaruna manera más uniforme de expresar el problema

Se dice que un problema de programación lineal está expresado en forma estándar si buscael mínimo de (1) en un conjunto K está definido como

K ={

~x ∈ Rn con xi ≥ 0 si 1 ≤ i ≤ n / A~x = ~b

para A ∈Mm,n(R), ~b ∈ Rm, bi ≥ 0 si 1 ≤ i ≤ m

}(3)

Todo problema de programación lineal se puede escribir en forma estándar, tal vez a costade aumentar el número de variables. Solo hay que aplicar las siguientes ideas

1. Transformar todas las incógnitas que no cumplan xi ≥ 0 en no negativasEn los problemas de programación lineal es habitual que las incógnitas sean no ne-gativas, pero no es obligatorio. Si hubiera incógnitas x1, . . . , xn que no cumplieranxi ≥ 0, se añadiría una nueva incógnita y = −mın{x1, . . . , xn, 0} ≥ 0 y se reescribiríael problema en términos de unas nuevas variables yi que cumplen xi = yi − y. Comoxi ≥ mın{x1, . . . , xn, 0}, todas las nuevas incógnitas cumplen también yi ≥ 0

2. Transformar todas las restricciones que no sean xi ≥ 0 en igualdadesn∑j=1

ai,j ·xj = bi ≥ 0

Para cada inecuaciónn∑j=1

ai,j · xj Q bi que aparezca se incluye una nueva variable de

holgura

zi = ±bi − n∑

j=1ai,j · xj

,que transforma la inecuación en

n∑j=1

ai,j · xj ± zi = bi

8

Page 9: plgomez/archivos docencia/antiguos/teoriagrad… · Práctica10. Programaciónlineal Álgebra Lineal & Métodos Numéricos Dpto. Matemática Aplicada y Estadística Grado en Ingeniería

Práctica 10. Programación lineal

y además gracias a la adecuada elección del signo cumple que zi ≥ 0. Por último, sibi < 0 basta cambiar de signo toda su ecuación multiplicando por −1

Nota: Añadir variables de holgura no modifica sustancialmente la función objetivo, perotransformar incógnitas en no negativas sí lo haceNota: Las nuevas variables y, yi, zi que podamos conservan la acotación/no acotación de lasincógnitas xi originales. Es decir, al estandarizar el problema de programación lineal no secambia el carácter acotado o no acotado de K

Veamos como se transforman los ejemplos precedentes a una forma estándar

1 a) Analíticamente es más complicado de probar, pero gráficamente se ve con claridad quelas incógnitas x = x1, y = x2 son no negativas en el conjunto K. Por tanto lo único quenecesitamos es transformar las 3 desigualdades en igualdades añadiendo 3 variables deholgura no negativas x3, x4, x5

x+ 3y ≤ 6 −→ x1 + 3x2 + x3 = 6

x− 2y ≤ 1 −→ x1 − 2x2 + x4 = 1

2x+ y ≥ 2 −→ 2x1 + x2 − x5 = 2

Nótese que para asegurar que x3, x4 ≥ 0, en las primeras inecuaciones (signo ≤) sehan sumado las variables de holgura x3, x4, mientras que en la última (signo ≥) seha restado x5. Una formulación estándar del problema tendría entonces como funciónobjetivo

f(x1, x2, x3, x4, x5) = x1 − x2

y el conjunto de restricciones

K =

~x ∈ R5 con x1, . . . , x5 ≥ 0 conx1 + 3x2 + x3 = 6x1 − 2x2 + x4 = 12x1 + x2 − x5 = 2

1 b) Siguiendo la misma idea, como tanto x1 = x como x2 = y son no negativas solo tenemos

que añadir x3, x4 ≥ 0. Salvo el hecho de que ahora está definida en R4, no hay quemodificar la función objetivo, quedando ésta con la expresión

f(x1, x2, x3, x4) = x1 − x2

mientras que el conjunto de restricciones queda reescrito como

K ={~x ∈ R4 con x1, . . . , x4 ≥ 0 / x2 + x3 = 2, x1 − x2 + x4 = 1

}2 a) En este problema hay una novedad respecto a los anteriores, ya que la variable x = x1

puede ser negativa. Vamos a reemplazar x por dos incógnitas, y1 = −mın{x, 0} ≥ 0

9

Page 10: plgomez/archivos docencia/antiguos/teoriagrad… · Práctica10. Programaciónlineal Álgebra Lineal & Métodos Numéricos Dpto. Matemática Aplicada y Estadística Grado en Ingeniería

Práctica 10. Programación lineal

y y2 = x + y1 ≥ 0, por lo que la otra incógnita que ya es no negativa pasará a sery = y3 ≥ 0. Este cambio de notación transforma la función objetivo en

f(x, y) = x− y = (y2 − y1)− y3 = −y1 + y2 − y3

y la restricción

x− 2y ≤ 1 −→ (y2 − y1)− 2y3 ≤ 1 −→ −y1 + y2 − 2y3 ≤ 1

Añadiendo la variable de holgura y4 = 1+y1−y2 +2y3 conseguimos la forma estándar:obtener los extremos de

f(y1, y2, y3, y4) = −y1 + y2 − y3

en el conjunto

K ={~y ∈ R4 con y1, . . . , y4 ≥ 0 / − y1 + y2 − 2y3 + y4 = 1

}2 b) En este caso sólo se necesita una variable de holgura, con lo que podemos representarlo

en R3 tomandof(x1, x2, x3) = x1 − x2

yK =

{(x1, x2, x3) ∈ R3 con x1, x2, x3 ≥ 0 / 2x1 − x2 + x3 = 4

}2 c) Como tanto x como y pueden ser negativas, necesitamos sustituirlas con 3 variables no

negativas y1 = −mın{x, y, 0} ≥ 0, y2 = x+ y1 ≥ 0, y3 = y + y1 ≥ 0. La nueva funciónobjetivo es

f(x, y) = x− y = (y2 − y1)− (y3 − y1) = y2 − y3

y las nuevas restricciones

x− y ≤ 2 −→ (y2 − y1)− (y3 − y1) ≤ 2 −→ y2 − y3 ≤ 2

x− y ≥ −1 −→ (y2 − y1)− (y3 − y1) ≥ −1 −→ y2 − y3 ≥ −1

Con las variables de holgura y4, y5 ≥ 0, y teniendo en cuenta que el signo de la últimarestricción es ≥, transformamos en las igualdades

y2 − y3 + y4 = 2

y2 − y3 − y5 = −1

Aún nos queda un detalle para concluir, y es que el término independiente b2 = −1 dela última ecuación es negativo; nada más fácil de solucionar sin más que tomar en sulugar como ecuación −y2 + y3 + y5 = 1. Así pues buscaremos los extremos de

f(y1, y2, y3, y4, y5) = y2 − y3

sujetos a

K ={~y ∈ R5 con y1, . . . , y5 ≥ 0 / y2 − y3 + y4 = 2,−y2 + y3 + y5 = 1

}10

Page 11: plgomez/archivos docencia/antiguos/teoriagrad… · Práctica10. Programaciónlineal Álgebra Lineal & Métodos Numéricos Dpto. Matemática Aplicada y Estadística Grado en Ingeniería

Práctica 10. Programación lineal

3 a) Como tanto x1 = x como x2 = y son no negativas solo tenemos que añadir la variablede holgura x3 ≥ 0, y cambiar el signo para que b1 ≥ 0

f(x1, x2, x3) = x1 − x2

paraK =

{(x1, x2, x3) ∈ R3 con x1, x2, x3 ≥ 0 / − x1 − x2 − x3 = 1

}3 b) Prácticamente clavado al caso anterior, con la salvedad de que ahora no es necesario

cambiar el signo ya que b1 = 0

f(x1, x2, x3) = x1 − x2

paraK =

{(x1, x2, x3) ∈ R3 con x1, x2, x3 ≥ 0 / x1 + x2 + x3 = 0

}Uno de los puntos problemáticos de los problemas de programación lineal consiste en encon-trar los vértices de K. Los segmentos, semirrectas, rectas, semiplanos,. . . en R2 se complicanen el caso general de Rn, y nuestro polígono K se transformará en un polítopo convexo impo-sible de dibujar, pero hay ideas fundamentales que se mantienen: primero hay que estudiarla existencia de extremos, y posteriormente localizarlos entre los vértices de K. La formaestándar no ayuda a garantizar la existencia de extremos, su principal utilidad es que po-demos buscar los vértices imponiendo que n − m > 0 de sus coordenadas seannulas, y despejando (si podemos) las m restantes a partir del sistema A~x = ~b. Veamos estoaplicado a los ejemplos precedentes

1 a) {x1 + 3x2 + x3 = 6, x1 − 2x2 + x4 = 1, 2x1 + x2 − x5 = 2, x1, . . . , x5 ≥ 0} sale de unconjunto K acotado de R2, así que es acotado en R5 y debemos calcular sus vértices.Anulamos n−m = 5− 3 = 2 componentes y calculamos el resto

x1 = 0, x2 = 0 −→ x3 = 6, x4 = 1, x5 = −2, no válido porque x5 < 0

x1 = 0, x3 = 0 −→ x2 = 2, x4 = 5, x5 = 0. P1 = (0,2,0,5,0) válido

x1 = 0, x4 = 0 −→ x2 = −1/2, x3 = 15/2, x5 = −5/2, no válido pues x3 < 0, x5 < 0

x1 = 0, x5 = 0 −→ x2 = 2, x3 = 0, x4 = 5, válido aunque repetido

x2 = 0, x3 = 0 −→ x1 = 6, x4 = −5, x5 = 10, no válido porque x4 < 0

x2 = 0, x4 = 0 −→ x1 = 1, x3 = 5, x5 = 0. P2 = (1,0,5,0,0) válido

x2 = 0, x5 = 0 −→ x1 = 1, x3 = 5, x4 = 0, válido aunque repetido

x3 = 0, x4 = 0 −→ x1 = 3, x2 = 1, x5 = 5. P3 = (3,1,0,0,5) válido

x3 = 0, x5 = 0 −→ x1 = 0, x2 = 2, x4 = 5, válido aunque repetido

x4 = 0, x5 = 0 −→ x1 = 1, x2 = 0, x3 = 5, válido aunque repetido

11

Page 12: plgomez/archivos docencia/antiguos/teoriagrad… · Práctica10. Programaciónlineal Álgebra Lineal & Métodos Numéricos Dpto. Matemática Aplicada y Estadística Grado en Ingeniería

Práctica 10. Programación lineal

De los 10 candidatos solo hay 3 válidos y diferentes. Si calculamos sus imágenes con lafunción objetivo f(x1, x2, x3, x4, x5) = x1 − x2

f(P1) = f(0, 2, 0, 5, 0) = 0− 2 = −2 −→ Mínimo

f(P2) = f(1, 0, 5, 0, 0) = 1− 0 = 1

f(P3) = f(3, 1, 0, 0, 5) = 3− 1 = 2 −→ Máximo

No debería suponer ninguna sorpresa que tanto las dos primeras componentes de estospuntos como las imágenes por f coincidan con el problema análogo sin estandarizar

1 b) {x2 + x3 = 2, x1 − x2 + x4 = 1, x1, . . . , x4 ≥ 0} también es acotado. Ahora hay menosposibilidades que en el caso anterior

x1 = 0, x2 = 0 −→ x3 = 2, x4 = 1. P1 = (0,0,2,1) válido

x1 = 0, x3 = 0 −→ x2 = 2, x4 = 3. P2 = (0,2,0,3) válido

x1 = 0, x4 = 0 −→ x2 = −1, x3 = 3, no válido porque x2 < 0

x2 = 0, x3 = 0 −→ sistema incompatible

x2 = 0, x4 = 0 −→ x1 = 1, x3 = 2. P3 = (1,0,2,0) válido

x3 = 0, x4 = 0 −→ x1 = 3, x2 = 2. P4 = (3,2,0,0) válido

Solo 4 de los 6 candidatos son válidos. Un punto falla porque tiene una componentenegativo, el otro caso produce un sistema de ecuaciones incompatible

f(P1) = f(0, 0, 2, 1) = 0− 0 = 0

f(P2) = f(0, 2, 0, 3) = 0− 2 = −2 −→ Mínimo

f(P3) = f(1, 0, 2, 0) = 1− 0 = 1 −→ Máximo

f(P4) = f(3, 2, 0, 0) = 3− 2 = 1 −→ Máximo

Todo el segmento que une P3 y P4 está formado por máximos. Este segmento se puedeescribir mediante ecuaciones paramétricas

x1 = 1 + 2λ, x2 = 2λ, x3 = 2− 2λ, x4 = 0 para 0 ≤ λ ≤ 1

o implícitasx1 − x2 = 1, x1 + x3 = 3, x4 = 0 para 1 ≤ x1 ≤ 3

Como en el caso anterior, las dos primeras componentes se corresponden con las varia-bles (x, y) originales

2 a) {−y1 + y2 − 2y3 + y4 = 1, y1, . . . , y4 ≥ 0}

En este caso K no es acotado, y tampoco lo será en ninguno ni superior ni inferior-mente la función f(y1, y2, y3, y4) como muestran los puntos Pλ = (0, 1, λ, 2λ), λ ≥ 0

12

Page 13: plgomez/archivos docencia/antiguos/teoriagrad… · Práctica10. Programaciónlineal Álgebra Lineal & Métodos Numéricos Dpto. Matemática Aplicada y Estadística Grado en Ingeniería

Práctica 10. Programación lineal

y Qλ = (0, 2λ − 1, λ, 2), λ ≥ 1/2 obtenidos a partir de los análogos del problema sinestandarizar, cuyos valores de función son los mismos que anteriormente obtuvimos

f(Pλ) = f(0, 1, λ, 2λ) = −0 + 1− λ = 1− λ,

f(Qλ) = f(0, 2λ− 1, λ, 2) = −0 + 2λ− 1− λ = λ− 1

Aunque no sean de utilidad en este caso, solo por curiosidad calculamos los vértices

y1 = 0, y2 = 0, y3 = 0 −→ y4 = 1. P1 = (0,0,0,1) válido

y1 = 0, y2 = 0, y4 = 0 −→ y3 = −1/2, no válido porque y3 < 0

y1 = 0, y3 = 0, y3 = 0 −→ y2 = 1. P2 = (0,1,0,0) válido

y2 = 0, y3 = 0, y3 = 4 −→ y1 = −1, no válido porque y1 < 0

que se usando las ecuaciones x = y2 − y1, y = y3 se corresponden en el plano con

P1 = (0, 0, 0, 1) −→ x = 0− 0, y = 0 −→ P1 = (0, 0)

P2 = (0, 1, 0, 0) −→ x = 1− 0, y = 0 −→ P2 = (1, 0)

como ya sabíamos por la representación gráfica

2 b) {2x1 − x2 + x3 = 4, x1, x2, x3 ≥ 0} no es acotado, y la función f(x1, x2, x3) = x1 − x2no está acotada inferiormente puesto que podemos hacer tender hacia −∞

f(Pλ) = f(1, λ, 2 + λ) = 1− λ

En cambio f si está acotada superiormente, calculamos el máximo con los vértices, quese obtendrán anulando n−m = 3− 1 = 2 de las n = 3 componentes

x1 = 0, x2 = 0 −→ x3 = 4. P1 = (0,0,4) válido

x1 = 0, x3 = 0 −→ x2 = −4, no válido porque x2 < 0

x2 = 0, x3 = 0 −→ x1 = 2. P2 = (2,0,0) válido

Evaluamos f(x1, x2, x3) = x1 − x2 en esos vértices

f(P1) = f(0, 0, 4) = 0− 0 = 0

f(P2) = f(2, 0, 0) = 2− 0 = 2 −→ Máximo

2 c) {y2 − y3 + y4 = 2, −y2 + y3 + y5 = 1, y1, . . . , y5 ≥ 0} proviene de un caso curioso, por-que había mínimo y máximo pero lo tuvimos que deducir gráficamente porque K no

13

Page 14: plgomez/archivos docencia/antiguos/teoriagrad… · Práctica10. Programaciónlineal Álgebra Lineal & Métodos Numéricos Dpto. Matemática Aplicada y Estadística Grado en Ingeniería

Práctica 10. Programación lineal

poseía ningún vértice. Comprobamos que ocurre ahora

y1 = 0, y2 = 0, y3 = 0 −→ y4 = 2, y5 = 1. P1 = (0,0,0,2,1) válido

y1 = 0, y2 = 0, y4 = 0 −→ y3 = −2, y5 = 3, no válido porque y3 < 0

y1 = 0, y2 = 0, y5 = 0 −→ y3 = 1, y4 = 3. P2 = (0,0,1,3,0) válido

y1 = 0, y3 = 0, y4 = 0 −→ y2 = 2, y5 = 3. P3 = (0,2,0,0,3) válido

y1 = 0, y3 = 0, y5 = 0 −→ y2 = −1, y4 = 3, no válido porque y2 < 0

y1 = 0, y4 = 0, y5 = 0 −→ sistema incompatible

y2 = 0, y3 = 0, y4 = 0 −→ sistema incompatible

y2 = 0, y3 = 0, y5 = 0 −→ sistema incompatible

y2 = 0, y4 = 0, y5 = 0 −→ sistema incompatible

y3 = 0, y4 = 0, y5 = 0 −→ sistema incompatible

Ahora sí nos aparecen algunos vértices, que pasamos a evaluar mediante la funciónobjetivo f(y1, y2, y3, y4, y5) = y2 − y3

f(P1) = f(0, 0, 0, 2, 1) = 0− 0 = 0

f(P2) = f(0, 0, 1, 3, 0) = 0− 1 = −1 −→ Mínimo

f(P3) = f(0, 2, 0, 0, 3) = 2− 0 = 2 −→ Máximo

Veamos con quién se corresponden estos vértices en el plano, deshaciendo el cambio devariables x = y2 − y1, y = y3 − y1

P2 = (0, 0, 1, 3, 0) −→ x = 0− 0 = 0, y = 1− 0 = 1 −→ P1 = (0, 1)

P3 = (0, 2, 0, 0, 3) −→ x = 2− 0 = 2, y = 0− 0 = 0 −→ P2 = (2, 0)

Estos puntos pertenecen a cada una de las dos rectas paralelas de extremos. Aunqueen esta nueva formulación estándar parecen puntos aislados, también son rectas; bastadarse cuenta de que la incógnita y1 es libre, ya que no aparece ni en la función objetivoni en el conjunto de restricciones K

3 a) {−x1 − x2 − x3 = 1, x1, x2, x3 ≥ 0} = ∅, así que no habría vértices. Lo comprobamosanulando n−m = 3− 1 = 2 de las n = 3 componentes

x1 = 0, x2 = 0 −→ x3 = −1, no válido porque x3 < 0

x1 = 0, x3 = 0 −→ x2 = −1, no válido porque x2 < 0

x2 = 0, x3 = 0 −→ x1 = −1, no válido porque x1 < 0

14

Page 15: plgomez/archivos docencia/antiguos/teoriagrad… · Práctica10. Programaciónlineal Álgebra Lineal & Métodos Numéricos Dpto. Matemática Aplicada y Estadística Grado en Ingeniería

Práctica 10. Programación lineal

3 a) {x1 + x2 + x3 = 0, x1, x2, x3 ≥ 0} = {(0, 0, 0)}, así que éste será el único vértice. Locomprobamos

x1 = 0, x2 = 0 −→ x3 = 0. P1 = (0,0,0) válido

x1 = 0, x3 = 0 −→ x2 = 0, válido aunque repetido

x2 = 0, x3 = 0 −→ x1 = 0, válido aunque repetido

Como sólo hay un vértice

f(P1) = f(0, 0, 0) = 0− 0 = 0 −→ Mínimo y máximo

Nota: En general el método gráfico es más intuitivo para estudiar la existencia de extremosque este método algebraico basado en la forma estándar. Por desgracia el gráfico sólo sepuede aplicar en R2 o a lo sumo en R3, mientras que como muestran estos ejemplos elmétodo algebraico se puede usar para identificar los vértices en dimensión n arbitraria

3. El método de simplexCuando el problema está escrito en forma estándar puede haber muchos candidatos a

vértices, en principio tantos como posibles subconjuntos de n − m elementos se puedanextraer de un conjunto de n. Este es un problema clásico de combinatoria, cuya solución es(

nm

)= n!m! · (n−m)! = s(s− 1) · · · (s−m+ 1)

m!

No es infrecuente que n sea grande, y por tanto que haya muchos candidatos que probar.Nos gustaría por tanto encontrar una manera de resolver el problema sin construir todos losvértices. Aquí es donde entra en juego el método de simplex

Cuando el problema está escrito en forma estándar, para que el conjunto K no sea vacío esnecesario que el sistema A~x = ~b sea compatible. Tampoco tendría mucho sentido que el sis-tema fuera determinado, porque entonces K se reduciría a un único punto que trivialmentesería mínimo y máximo. Por lo tanto podemos asumir que A~x = ~b es compatible indetermi-nado. Más aún, eliminando las ecuaciones dependientes podríamos expresar las restriccionesmediante una matriz con rg A = m < n

Nota: Que el sistema sea compatible indeterminado es una condición necesaria para queK nosea trivial. Sin embargo no es condición suficiente, porque podría ocurrir que las solucionesde A~x = ~b no cumplieran las restricciones xi ≥ 0 de las incógnitas. Sirvan como ejemplos

K ={

(x, y) ∈ R2/− x− y ≥ 1, x ≥ 0, y ≥ 0}

= ∅

oK =

{(x, y) ∈ R2/− x− y ≥ 0, x ≥ 0, y ≥ 0

}= {(0, 0)}

15

Page 16: plgomez/archivos docencia/antiguos/teoriagrad… · Práctica10. Programaciónlineal Álgebra Lineal & Métodos Numéricos Dpto. Matemática Aplicada y Estadística Grado en Ingeniería

Práctica 10. Programación lineal

Si A~x = ~b es compatible indeterminado con rg A = m, la solución del sistema depende den − m parámetros. Esto es tanto como decir que en realidad no hay n grados de libertad(incógnitas) sino solamente n−m, ya que las m restantes incógnitas se pueden despejar delsistema A~x = ~b. A las variables respecto de las que se despeja las representaremos como~xN ∈ Rn−m y las llamaremos variables no básicas, mientras que agruparemos el resto enlas variables básicas ~xB ∈ Rm. De esta forma el quedaría reescrito como el cálculo de losextremos de la nueva función objetivo de variables básicas

f( ~xN) = u0+ < ~w, ~xN > (4)

las igualdades de las variables no básicas

~xB = ~v + U · ~xN (5)

y las conocidas restricciones en todas las variables (básicas o no básicas)

xi ≥ 0 si 1 ≤ i ≤ n (6)

para unos nuevos U ∈Mm,m−n(R), ~v ∈ Rm y ~w ∈ Rn−m. Se pueden representar todos estosparámetros en una matriz añadiendo una fila y una columna a U o, lo que es lo mismo, enuna tabla

~xN

~xBu0 ~w~v U

(7)

Con el problema escrito de esta manera, si todos los coeficientes de ~v y ~w fuesen no negativos,es decir, si

vi ≥ 0 si 1 ≤ i ≤ m

wi ≥ 0 si 1 ≤ i ≤ n−mentonces, con independencia de lo que valga U , el mínimo del problema se alcanza en elpunto ~xN = ~0 ∈ Rn−m, ~xB = ~v ∈ Rm y vale f(~0) = u0

Nota: La nueva función f no es lineal por la aparición de u0, pero ésta no influye a la horade calcular máximos o mínimos por ser constanteNota: Los problemas de maximización y minimización son equivalentes, ya que el máximode f es el mínimo de −f , y viceversa

Tomemos el ejemplo 1 a), en el que la función objetivo es

f(x1, x2, x3, x4, x5) = x1 − x2 −→ u0 = 0, ~w = (1,−1) ∈ R2

y el conjunto de restricciones

K ={~x ∈ R5 con x1, . . . , x5 ≥ 0 / x1 + 3x2 + x3 = 6, x1 − 2x2 + x4 = 1, 2x1 + x2 − x5 = 2

}

16

Page 17: plgomez/archivos docencia/antiguos/teoriagrad… · Práctica10. Programaciónlineal Álgebra Lineal & Métodos Numéricos Dpto. Matemática Aplicada y Estadística Grado en Ingeniería

Práctica 10. Programación lineal

Como hay 3 restricciones en realidad solo tenemos 2 grados de libertad. Despejar en funciónde x1 y x2 es trivial

x3 = 6− x1 − 3x2

x4 = 1− x1 + 2x2

x5 = −2 + 2x1 + x2

−→ ~v =

61−2

∈ R3, U =

−1 −3−1 22 1

lo cual escrito en una tabla es

~xN x1 x2~xB 0 1 −1x3 6 −1 −3x4 1 −1 2x5 −2 2 1

pero también podríamos despejar en función de otras variables distintas. Por ejemplo, eli-giendo ~xN = (x1, x3) las variables básicas serían ~xB = (x2, x4, x5)

x2 = 2− x1

3 −x3

3

x4 = 5− 5x1

3 − 2x3

3

x5 = 0 + 5x1

3 − x3

3

−→ ~v =

250

∈ R3, U =

−1/3 −1/3−5/3 −2/35/3 −1/3

∈M3,2(R)

Ahora la función objetivo quedaría modificada

f(x1, x3) = x1 −(

2− x1

3 −x3

3

)= −2 + 4x1

3 + x3

3 −→ u0 = −2, ~w = (4/3, 1/3) ∈ R2

y la tabla correspondiente sería

~xN x1 x3~xB −2 4/3 1/3x2 2 −1/3 −1/3x4 5 −5/3 −2/3x5 0 5/3 −1/3

Hemos programado este problema para que resulte fácil ir cambiando las incógnitas respectoa las que se quiere despejar

H reescribe(basicas,ecuaciones,f): : Función que despeja las incógnitas básicas de lasecuaciones y escribe la función objetivo f respecto de las no básicas

F Ejercicio 1: Utiliza Maxima para despejar en el ejemplo 1 a) en función de todos lasposibles ternas de variables básicas

17

Page 18: plgomez/archivos docencia/antiguos/teoriagrad… · Práctica10. Programaciónlineal Álgebra Lineal & Métodos Numéricos Dpto. Matemática Aplicada y Estadística Grado en Ingeniería

Práctica 10. Programación lineal

Siempre que una submatriz m×m de A sea de rango máximo se puede reescribir el problemacomo (4)-(5), usando como variables básicas el vector ~xB dado por las incógnitas cuyascolumnas forman la submatriz. En el ejemplo se puede escribir en función de todas lascombinaciones, lo que nos da un total de 10 posibles formas de reescribir el problema. Pesea que todas estas formas parecen iguales no lo son. La que hemos construido despejandoen términos de ~vN = (x1, x3) tiene vectores ~v = (x2, x4, x5) = (2, 5, 0) y ~w = (4/3, 1/3)con componentes no negativas, por tanto el mínimo vale u0 = −2 y se alcanza en el puntoP = (0, 2, 0, 5, 0) que se obtiene anulando x1 = x3 = 0. Si contamos el método gráfico y elalgebraico, es la tercera vez que resolvemos este problema, pero destacamos que es la primeraque hemos resuelto el problema sin comparar entre los distintos vértices

El método de simplex es un algoritmo iterativo capaz de calcular en un número pequeño depasos y sin necesidad de calcular vértices y comparar entre ellos la solución de un problemade programación lineal. La idea de cada iteración es partir de un problema expresado en laforma de la tabla (7) con coeficientes de ~v no negativos, e intercambiar una variables básicacon una no básica para conseguir sin perder el signo de ~v una tabla equivalentes con mejorescoeficientes ~w. Además es capaz de detectar si el problema no tiene solución, bien porque elconjunto K sea vacío o porque la función f no esté acotada en él

FASE 1 La primera fase del método de simplex es encontrar una expresión (4)-(5) con un vector~v de componentes no negativas. Si esto ya se cumpliera pasaríamos a la segunda fase,si no se cumpliera añadimos una nueva variable artificial z para cambiar la funciónobjetivo por

f( ~xN , z) = u0+ < ~w, ~xN > +M · zsiendo M una constante indefinida mayor que cualquier número que pueda apareceren cualquiera de las tablas, y las restricciones por

~xB = ~v + U · ~xN + z ·

1...1

∈ Rn−m

Como hemos añadido una nueva variable y ninguna restricción podemos elegir unanueva variable no básica; eligiendo xα para un índice α tal que vα = mın

{vj<0}{vj} se

obtiene una nueva tabla equivalente con un vector ~v de componentes no negativas

FASE 2 Comprobamos que ocurre con las componentes de ~w

ORIGEN Si wi ≥ 0 para 1 ≤ i ≤ n − m el algoritmo ha terminado, y se distinguen dosposibilidades

FIN (OK) Si no fue necesario definirla o la variable artificial cumple z = 0, el mínimodel problema se alcanza en el punto ~xN = ~0 ∈ Rn−m, ~xB = ~v ∈ Rm y valef(~0) = u0

FIN (KO) Si la variable artificial z > 0 el problema no admite solución porque K = ∅

18

Page 19: plgomez/archivos docencia/antiguos/teoriagrad… · Práctica10. Programaciónlineal Álgebra Lineal & Métodos Numéricos Dpto. Matemática Aplicada y Estadística Grado en Ingeniería

Práctica 10. Programación lineal

PROSIGUE Si existe alguna componente wi < 0 elegimos la variable no básica xβ buscandoel índice de wβ = mın

{wj<0}{wj}. Ahora tenemos que buscar una variable básica con

la que intercambiarlaFIN (KO) Si ui,β ≥ 0 para 1 ≤ i ≤ m el problema no admite solución porque f no está

acotada inferiormenteREINICIA Si existe algún elemento ui,β < 0 se elige la variable básica xα con índice tal

que vαuα,β

= max{ui,β<0}

{viui,β

}. Se intercambian xα con xβ y se vuelve al ORIGEN

de la FASE 2

Cada vez que pasamos por el caso REINICIA completamos una iteración del algoritmo desimplex. La nueva tabla equivalente sigue cumpliendo que todas las componentes vi ≥ 0,pero ahora la menor componente del vector ~w ha de mejorar (crecer).

Apliquemos el método de simplex al ejemplo 1 a). Supongamos que no supiéramos nada deeste problema (ni siquiera que el problema admite solución). Como no tenemos idea sobrecuáles son las mejores variables, lo razonable es partir de la tabla más sencilla, que se obtienecon ~vN = (x1, x2)

~xN x1 x2~xB 0 1 −1x3 6 −1 −3x4 1 −1 2x5 −2 2 1

Como en esta tabla v3 = −2 < 0 necesitamos aplicar la FASE 1 del método de simplex.

FASE 1 Añadimos una variable artificial z y buscamos el mínimo del problema

f(x1, x2, x3, x4, x5, z) = x1 − x2 +M z

(con M > 0 tan grande como sea necesario) sujeto a

x3 = 6− x1 − 3x2 + z

x4 = 1− x1 + 2x2 + z

x5 = −2 + 2x1 + x2 + z

es decir, un nuevo problema con 6 variables y tabla

~xN x1 x2 z~xB 0 1 −1 Mx3 6 −1 −3 1x4 1 −1 2 1x5 −2 2 1 1

19

Page 20: plgomez/archivos docencia/antiguos/teoriagrad… · Práctica10. Programaciónlineal Álgebra Lineal & Métodos Numéricos Dpto. Matemática Aplicada y Estadística Grado en Ingeniería

Práctica 10. Programación lineal

Tenemos que cambiar z por una de las variables básicas para eliminar las componentesnegativas de ~v. Según la FASE 1 buscamos el menor coeficiente de ~v

vα = mın{vj<0}

{vj} = mın{−2}

lo cual es trivial porque solo hay un coeficiente negativo. Como este coeficiente estáasociado a x5 consideramos a esta variable como no básica y reescribimos el problema

~xN x1 x2 x5~xB 2M 1− 2M −1−M Mx3 8 −3 −4 1x4 3 −3 1 1z 2 −2 −1 1

El nuevo vector ~v = (8, 3, 2) tiene todas las componentes no negativas, por lo que yapodemos aplicar la FASE 2; en esta fase el vector ~v nunca perderá esa propiedad

FASE 2 Como w1 = 1− 2M < 0 y −1−M < 0 el algoritmo no ha concluido. Como hay de unvalor negativo, seleccionamos el menor de ambos

mın{wj<0}

{wj} = mın{1− 2M,−1−M} = 1− 2M

asociado a la variable no básica x1, que vamos a intercambiar por una de las tresvariables básicas x3, x4 ó z. Para saber por cual de ellas, comprobamos que en lacolumna asociada a x1 hay valores negativos u1,1 = −3 < 0, u2,1 = −3 < 0, u2,1 =−2 < 0, y calculamos

max{ui,1<0}

{viui,1

}= max

{ 8−3 ,

3−3 ,

2−2

}= max

{−8

3 ,−1,−1}

= −1

Las incógnitas x4 y z son igualmente válidas, elegimos por ejemplo x4 y lo intercam-biamos con x1, completando así la primera iteración de la FASE 2

~xN x4 x2 x5~xB 1 2M−1

3 −5M+23

M+13

x3 5 1 −5 0x1 1 −1/3 1/3 1/3z 0 2/3 −5/3 1/3

Como w2 = −5M+23 < 0 aún no hemos terminado. Este es el único coeficiente negativo,

por lo tanto la variable x2 va a pasar a las variables básicas. Hay dos coeficientesnegativos en su columna, u1,2 = −5 y u3,2 = −5

3 . Para saber si x2 se intercambia porx3 o por z calculamos

max{ui,2<0}

{viui,2

}= max

{5−5 ,

0−5/3

}= max {−1, 0} = 0

20

Page 21: plgomez/archivos docencia/antiguos/teoriagrad… · Práctica10. Programaciónlineal Álgebra Lineal & Métodos Numéricos Dpto. Matemática Aplicada y Estadística Grado en Ingeniería

Práctica 10. Programación lineal

Así pues la segunda iteración de la FASE 2 concluye intercambiando x2 por z

~xN x4 z x5~xB 1 −3/5 M + 2

5 1/5x3 5 −1 3 −1x1 1 −1/5 −1/5 2/5x2 0 2/5 −3/5 1/5

Arrancamos la tercera iteración comprobando que aún nos queda un coeficiente w1 =−3/5 < 0, así que seleccionamos x4, que tiene en su columna tiene dos coeficientesnegativos u1,1 = −1 < 0, u2,1 = −1/5 < 0. Calculamos

max{ui,1<0}

{viui,1

}= max

{5−1 ,

1−1/5

}= max {−5,−5} = −5

Como los dos valores son iguales podemos elegir x3 ó x1. Seleccionando la primera delas dos, y cambiando las variables x4 y x3 concluimos la tercera iteración de la FASE 2

~xN x3 z x5~xB −2 3/5 M − 7

5 4/5x4 5 −1 3 −1x1 0 1/5 −4/5 3/5x2 2 −2/5 3/5 −1/5

Al ser M tan grande como necesitemos, ahora todas las componentes wi ≥ 0. Por tanto elalgoritmo ha concluido con la solución x4 = 5, x1 = 0, x2 = 2, x3 = 0, z = 0, x5 = 0. Comola variable artificial cumple z = 0 concluimos que el problema original tiene solución, dada

por P = (0, 2, 0, 5, 0). Nótese que de las(

63

)= 20 posibles formas de escribir el problema,

mediante el algoritmo de simplex solo hemos usado 4, y que en cada iteración, además demantener vi ≥ 0 los coeficientes wi < 0 cada vez iban creciendo

F Ejercicio 2: Resuelve el caso 1 b)

F Ejercicio 3: Resuelve el caso 2 a)

F Ejercicio 4: Resuelve el caso 2 b)

F Ejercicio 5: Resuelve el caso 2 c)

F Ejercicio 6: Resuelve el caso 3 a)

F Ejercicio 7: Resuelve el caso 3 b)

21

Page 22: plgomez/archivos docencia/antiguos/teoriagrad… · Práctica10. Programaciónlineal Álgebra Lineal & Métodos Numéricos Dpto. Matemática Aplicada y Estadística Grado en Ingeniería

Práctica 10. Programación lineal

Nota: Si no dispusiéramos de un programa como Maxima y tuviéramos que aplicar “manual-mente” el método de simplex, la parte más incómoda del algoritmo es obtener los coeficientesde cada nueva tabla. Definiendo la tabla como una matriz Z ∈Mm+1,n−m+1(R),

Z = (zi,j) =(u0 ~w~v U

)∈Mm+1,n−m+1(R)

los coeficientes de la nueva tabla que se obtendría al intercambiar la variable básica de la filaxα por la variable no básica de la columna β sería

zi,j −zα,j · zi,βzα,β

si i 6= α, j 6= β

zi,βzα,β

si i 6= α, j = β

− zα,jzα,β

si i = α, j 6= β

1zα,β

si i = α, j = β

Al elemento zα,β 6= 0 se le suele llamar el pivote de la iteración

4. Ejercicios

Problemas para resolver con el ordenador

F Resuelve mediante el método de simplex los problemas de maximización buscando losmínimos para la función opuesta −f(~x) = x2 − x1 en los 7 casos anteriores

Problemas para resolver sin ordenador

F Resuelve mediante el método simplex los problemas de maximización buscando los míni-mos para la función opuesta −f(~x) = x2 − x1 en los 7 casos anteriores

Problemas de convocatorias anteriores

[febrero 2011] Resuelve, especificando el subconjunto de R2 admisible o válido y evaluandoen los puntos extremos, el problema de programación lineal: máx f(x, y) = x + 2y, con lasrestricciones {x− y ≤ 2, 2x+ y ≤ 6, x ≥ 0, y ≥ 0}

[septiembre 2011] Resuelve, especificando el subconjunto de R2 admisible o válido y eva-luando en los puntos extremos, el problema de programación lineal: máx f(x, y) = 4x+ 3y,con las restricciones {2x+ y ≤ 80, x+ y ≤ 48, x ≥ 0, y ≥ 0}

22

Page 23: plgomez/archivos docencia/antiguos/teoriagrad… · Práctica10. Programaciónlineal Álgebra Lineal & Métodos Numéricos Dpto. Matemática Aplicada y Estadística Grado en Ingeniería

Práctica 10. Programación lineal

[febrero 2012]Demuestre que existe y calcule mediante el procedimiento que quiera (gráfico,algebraico o símplex) el mínimo de la aplicación lineal f(x, y) = x + y en el conjunto derestricciones K = {(x, y) ∈ R2 / x+ 2y ≥ 8, 3x+ 2y ≥ 16, x ≥ 0, y ≥ 0}

[septiembre 2012] Demuestre que existen y calcule mediante el procedimiento que quiera(gráfico, algebraico o símplex) el máximo y el mínimo de la aplicación lineal f(x, y) = x+ yen el conjunto de restricciones K = {(x, y) ∈ R2 / 8 ≤ 2x+ y ≤ 12, 0 ≤ x ≤ 5, 0 ≤ y ≤ 5}

Temas sobre los que profundizarInvestiga sobre la programación no lineal

23