Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad


Ejercicios de programacion lineal (Simplex..), Ejercicios de Álgebra Lineal

Asignatura: Algebra lineal y metodos numericos, Profesor: David David, Carrera: Ingeniería en Sistemas de Telecomunicación, Universidad: UPCT

Tipo: Ejercicios

2011/2012

Subido el 30/01/2012

patricia-1592
patricia-1592 🇪🇸

3.8

(80)

10 documentos

1 / 20

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
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
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:KRn R. Un problema de programación lineal es un caso particular en el que la
función objetivo fes lineal y el conjunto Kse puede expresar mediante inecuaciones lineales.
Si tomamos unos vectores ~c, ai6=~
0,1imy unas funciones lineales asociadas
f(x1, x2, . . . , xn1, xn) =
n
X
i=1
ci·xi=c1c2. . . cn1cn·
x1
x2
.
.
.
xn1
xn
=< ~c, ~x >
hi(x1, . . . , xn) =
n
X
j=1
ai,j ·xj=ai,1. . . ai,n ·
x1
.
.
.
xn
=< ~ai, ~x >, 1im
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(x1, . . . , xn) = c1·x1+c2·x2+. . . +cn·xn(1)
en un conjunto Kde puntos admisibles, también llamado de soluciones factibles, que se
puede expresar como
K=n~x Rn/ai,1·x1+ai,2·x2+. . . +ai,n ·xnSibi,1imo,(2)
siendo el signo Side las restricciones cualquiera de estos tres: {≤,=,≥}, no necesariamente
el mismo para 1im
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
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14

Vista previa parcial del texto

¡Descarga Ejercicios de programacion lineal (Simplex..) y más Ejercicios en PDF de Álgebra Lineal solo en Docsity!

Á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

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 6 = ~ 0 , 1 ≤ i ≤ m y unas funciones lineales asociadas

f (x 1 , x 2 ,... , x n − 1 , x n ) =

∑^ n

i =

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 =

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

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

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 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 al enfrentarnos a un problema, si la función f está acotada (superior y/o inferiormente) en el conjunto K

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

No podemos representar gráficamente dimensiones n > 3 , pero sí dimensiones bajas. En el caso 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 sencillo extrapolar a dimensiones mayores. Vamos a ver ejemplos en el plano R^2 con la función objetivo f (x, y) = x − y y diferentes conjuntos de restricciones K. La primera distinción importante es la acotación de K

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

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

x

p p p p p p

p p p p p

p p p

p

p p p

p p p

p p p

p p p

p p p

p p p

p p

p p p

p p p

p p p

p p p

p p p p

p p p

p







PPP

PPP

PAPP A A A A As

s

s

P 1

P 2

P 3

x (^) + 3 y (^) ≤ 6

x^ −

2 y

≤^

(^2) x (^) + (^) y (^) ≥ (^2)

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

{ (x, y) ∈ R^2 /x + 3y ≤ 6 , x − 2 y ≤ 1 , 2 x + y ≥ 2

}

Nótese que f (x, y) es constante a lo largo de las rectas x − y = C, así que cuanto má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 sea acotado automáticamente provoca que las rectas x − y = C no puedan desplazarse indefinidamente a lo largo de K

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

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

funció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 claramente están en K ya que cumplen las restricciones

h 1 (P λ ) = h 1 (1, λ) = 1 − 2 λ = 1 − 2 λ ≤ 1 =⇒ P λ cumple x − 2 y ≤ 1 h 2 (P λ ) = h 2 (1, λ) = λ ≥ 0 =⇒ P λ cumple y ≥ 0

Tomando límites

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

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

h 1 (Q λ ) = h 1 (2λ − 1 , λ) = 2λ − 1 − 2 λ = − 1 ≤ 1 =⇒ Q λ cumple x − 2 y ≤ 1 h 2 (Q λ ) = h 2 (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 K

b ) f está acotada solo en un sentido: entonces solo hay extremos de un tipo

y

x

p p p

p

p p p

p p p

p p p

p p p

p p p

p p p

p p p

p p

p p p

p p p

p p p

p p p

p p p

p p p

p

p p p

p p p

p p p

p p p

p p p

p p p

p p p

p p p

p p p

p p p

p p p

p p p

p p p

p p p

p p p

p p p

p p p

p p p

p p p

p p p

p p p

p p p

p p

p p p

p p p

p p p 













s s P 1 P 2

2 x

y

y ≥ 0

x ≥ (^0)

rr

rr

rr

rr

rr

rr

rr

r

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

{ (x, y) ∈ R^2 / 2 x − y ≤ 4 , x ≥ 0 , y ≥ 0

}

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

f (x, y) = x − y =

2 x − 2 y 2

2 x − y 2

y 2

2 x − y 2

y el máximo se alcanza en el vértice P 2 = (2, 0), lo cual gráficamente se explica porque 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

y

x

p p p

p p p

p p p

p p p

p p p

p p p

p p p

p

p p p

p p p

p p p

p p p

p p p

p p p

p p p

p p p

p p p

p p p

p p p

p p p

p p p

p p p

p p p

p p p

p p p

p p p

p p p

p p p

p p p

p p p

p p p

p p p

p p p

p p p

p p p

p p p

p p p

p p p

p p p

p p p

p

x^

y^

x^ −^2

y^

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

{ (x, y) ∈ R^2 /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 la semirrecta x − y = − 1 , y el máximo 2 en la semirrecta paralela x − y = − 2.

  1. 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 y

x

@ @ @ @ @ @ @

x (^) ≥ (^0) x

y ≤ − 1

y ≥ 0

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

{ (x, y) ∈ R^2 /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

@ @ @ @ @ @

x ≥ (^0) x

(^) y ≤ (^0)

sP^1 y^ ≥^0

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

{ (x, y) ∈ R^2 /x + y ≤ 0 , x ≥ 0 , y ≥ 0

}

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

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

1 a) Analíticamente es más complicado de probar, pero gráficamente se ve con claridad que las incógnitas x = x 1 , y = x 2 son no negativas en el conjunto K. Por tanto lo único que necesitamos es transformar las 3 desigualdades en igualdades añadiendo 3 variables de holgura no negativas x 3 , x 4 , x 5

x + 3y ≤ 6 −→ x 1 + 3x 2 + x 3 = 6 x − 2 y ≤ 1 −→ x 1 − 2 x 2 + x 4 = 1

2 x + y ≥ 2 −→ 2 x 1 + x 2 − x 5 = 2

Nótese que para asegurar que x 3 , x 4 ≥ 0 , en las primeras inecuaciones (signo ≤) se han sumado las variables de holgura x 3 , x 4 , mientras que en la última (signo ≥) se ha restado x 5. Una formulación estándar del problema tendría entonces como función objetivo f (x 1 , x 2 , x 3 , x 4 , x 5 ) = x 1 − x 2 y el conjunto de restricciones

K =

{ ~x ∈ R^5 con x 1 ,... , x 5 ≥ 0 / x 1 + 3x 2 + x 3 = 6, x 1 − 2 x 2 + x 4 = 1, 2 x 1 + x 2 − x 5 = 2

}

1 b) Siguiendo la misma idea, como tanto x 1 = x como x 2 = y son no negativas solo tenemos que añadir x 3 , x 4 ≥ 0. Salvo el hecho de que ahora está definida en R^4 , no hay que modificar la función objetivo, quedando ésta con la expresión

f (x 1 , x 2 , x 3 , x 4 ) = x 1 − x 2

mientras que el conjunto de restricciones queda reescrito como

K =

{ ~x ∈ R^4 con x 1 ,... , x 4 ≥ 0 / x 2 + x 3 = 2, x 1 − x 2 + x 4 = 1

}

2 a) En este problema hay una novedad respecto a los anteriores, ya que la variable x = x 1 puede ser negativa. Vamos a reemplazar x por dos incógnitas, y 1 = − m´ın{x, 0 } ≥ 0 y y 2 = x + y 1 ≥ 0 , por lo que la otra incógnita que ya es no negativa pasará a ser y = y 3 ≥ 0. Este cambio de notación transforma la función objetivo en

f (x, y) = x − y = (y 2 − y 1 ) − y 3 = −y 1 + y 2 − y 3

y la restricción

x − 2 y ≤ 1 −→ (y 2 − y 1 ) − 2 y 3 ≤ 1 −→ −y 1 + y 2 − 2 y 3 ≤ 1

Añadiendo la variable de holgura y 4 = 1 + y 1 − y 2 + 2y 3 conseguimos la forma estándar: obtener los extremos de

f (y 1 , y 2 , y 3 , y 4 ) = −y 1 + y 2 − y 3

en el conjunto

K =

{ ~y ∈ R^4 con y 1 ,... , y 4 ≥ 0 / − y 1 + y 2 − 2 y 3 + y 4 = 1

}

2 b) En este caso sólo se necesita una variable de holgura, con lo que podemos representarlo en R^3 tomando f (x 1 , x 2 , x 3 ) = x 1 − x 2 y K =

{ (x 1 , x 2 , x 3 ) ∈ R^3 con x 1 , x 2 , x 3 ≥ 0 / 2 x 1 − x 2 + x 3 = 4

}

2 c) Como tanto x como y pueden ser negativas, necesitamos sustituirlas con 3 variables no negativas y 1 = − m´ın{x, y, 0 } ≥ 0 , y 2 = x + y 1 ≥ 0 , y 3 = y + y 1 ≥ 0. La nueva función objetivo es f (x, y) = x − y = (y 2 − y 1 ) − (y 3 − y 1 ) = y 2 − y 3 y las nuevas restricciones

x − y ≤ 2 −→ (y 2 − y 1 ) − (y 3 − y 1 ) ≤ 2 −→ y 2 − y 3 ≤ 2 x − y ≥ − 1 −→ (y 2 − y 1 ) − (y 3 − y 1 ) ≥ − 1 −→ y 2 − y 3 ≥ − 1

Con las variables de holgura y 4 , y 5 ≥ 0 , y teniendo en cuenta que el signo de la última restricción es ≥, transformamos en las igualdades

y 2 − y 3 + y 4 = 2

y 2 − y 3 − y 5 = − 1

Aún nos queda un detalle para concluir, y es que el término independiente b 2 = − 1 de la última ecuación es negativo; nada más fácil de solucionar sin más que tomar en su lugar como ecuación −y 2 + y 3 + y 5 = 1. Así pues buscaremos los extremos de

f (y 1 , y 2 , y 3 , y 4 , y 5 ) = y 2 − y 3

sujetos a

K =

{ ~y ∈ R^5 con y 1 ,... , y 5 ≥ 0 / y 2 − y 3 + y 4 = 2, −y 2 + y 3 + y 5 = 1

}

3 a) Como tanto x 1 = x como x 2 = y son no negativas solo tenemos que añadir la variable de holgura x 3 ≥ 0 , y cambiar el signo para que b 1 ≥ 0

f (x 1 , x 2 , x 3 ) = x 1 − x 2

para K =

{ (x 1 , x 2 , x 3 ) ∈ R^3 con x 1 , x 2 , x 3 ≥ 0 / − x 1 − x 2 − x 3 = 1

}

3 b) Prácticamente clavado al caso anterior, con la salvedad de que ahora no es necesario cambiar el signo ya que b 1 = 0

f (x 1 , x 2 , x 3 ) = x 1 − x 2

para K =

{ (x 1 , x 2 , x 3 ) ∈ R^3 con x 1 , x 2 , x 3 ≥ 0 / x 1 + x 2 + x 3 = 0

}

posibilidades que en el caso anterior x 1 = 0, x 2 = 0 −→ x 3 = 2, x 4 = 1. P 1 = ( 0 , 0 , 2 , 1 ) válido

x 1 = 0, x 3 = 0 −→ x 2 = 2, x 4 = 3. P 2 = ( 0 , 2 , 0 , 3 ) válido x 1 = 0, x 4 = 0 −→ x 2 = − 1 , x 3 = 3, no válido porque x 2 < 0

x 2 = 0, x 3 = 0 −→ sistema incompatible x 2 = 0, x 4 = 0 −→ x 1 = 1, x 3 = 2. P 3 = ( 1 , 0 , 2 , 0 ) válido

x 3 = 0, x 4 = 0 −→ x 1 = 3, x 2 = 2. P 4 = ( 3 , 2 , 0 , 0 ) válido Solo 4 de los 6 candidatos son válidos. Un punto falla porque tiene una componente negativo, el otro caso produce un sistema de ecuaciones incompatible f (P 1 ) = f (0, 0 , 2 , 1) = 0 − 0 = 0 f (P 2 ) = f (0, 2 , 0 , 3) = 0 − 2 = − 2 −→ Mínimo

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

Todo el segmento que une P 3 y P 4 está formado por máximos. Este segmento se puede escribir mediante ecuaciones paramétricas

x 1 = 1 + 2λ, x 2 = 2λ, x 3 = 2 − 2 λ, x 4 = 0 para 0 ≤ λ ≤ 1

o implícitas x 1 − x 2 = 1, x 1 + x 3 = 3, x 4 = 0 para 1 ≤ x 1 ≤ 3 Como en el caso anterior, las dos primeras componentes se corresponden con las varia- bles (x, y) originales

2 a) {−y 1 + y 2 − 2 y 3 + y 4 = 1, y 1 ,... , y 4 ≥ 0 }

En este caso K no es acotado, y tampoco lo será en ninguno ni superior ni inferior- mente la función f (y 1 , y 2 , y 3 , y 4 ) como muestran los puntos P λ = (0, 1 , λ, 2 λ), λ ≥ 0 y Q λ = (0, 2 λ − 1 , λ, 2), λ ≥ 1 / 2 obtenidos a partir de los análogos del problema sin estandarizar, 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

y 1 = 0, y 2 = 0, y 3 = 0 −→ y 4 = 1. P 1 = ( 0 , 0 , 0 , 1 ) válido y 1 = 0, y 2 = 0, y 4 = 0 −→ y 3 = − 1 / 2 , no válido porque y 3 < 0

y 1 = 0, y 3 = 0, y 3 = 0 −→ y 2 = 1. P 2 = ( 0 , 1 , 0 , 0 ) válido y 2 = 0, y 3 = 0, y 3 = 4 −→ y 1 = − 1 , no válido porque y 1 < 0

que se usando las ecuaciones x = y 2 − y 1 , y = y 3 se corresponden en el plano con

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

P 2 = (0, 1 , 0 , 0) −→ x = 1 − 0 , y = 0 −→ P 2 = (1, 0)

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

2 b) { 2 x 1 − x 2 + x 3 = 4, x 1 , x 2 , x 3 ≥ 0 } no es acotado, y la función f (x 1 , x 2 , x 3 ) = x 1 − x 2 no 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, que se obtendrán anulando n − m = 3 − 1 = 2 de las n = 3 componentes

x 1 = 0, x 2 = 0 −→ x 3 = 4. P 1 = ( 0 , 0 , 4 ) válido

x 1 = 0, x 3 = 0 −→ x 2 = − 4 , no válido porque x 2 < 0 x 2 = 0, x 3 = 0 −→ x 1 = 2. P 2 = ( 2 , 0 , 0 ) válido

Evaluamos f (x 1 , x 2 , x 3 ) = x 1 − x 2 en esos vértices

f (P 1 ) = f (0, 0 , 4) = 0 − 0 = 0

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

2 c) {y 2 − y 3 + y 4 = 2, −y 2 + y 3 + y 5 = 1, y 1 ,... , y 5 ≥ 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 poseía ningún vértice. Comprobamos que ocurre ahora

y 1 = 0, y 2 = 0, y 3 = 0 −→ y 4 = 2, y 5 = 1. P 1 = ( 0 , 0 , 0 , 2 , 1 ) válido

y 1 = 0, y 2 = 0, y 4 = 0 −→ y 3 = − 2 , y 5 = 3, no válido porque y 3 < 0 y 1 = 0, y 2 = 0, y 5 = 0 −→ y 3 = 1, y 4 = 3. P 2 = ( 0 , 0 , 1 , 3 , 0 ) válido

y 1 = 0, y 3 = 0, y 4 = 0 −→ y 2 = 2, y 5 = 3. P 3 = ( 0 , 2 , 0 , 0 , 3 ) válido

y 1 = 0, y 3 = 0, y 5 = 0 −→ y 2 = − 1 , y 4 = 3, no válido porque y 2 < 0 y 1 = 0, y 4 = 0, y 5 = 0 −→ sistema incompatible

y 2 = 0, y 3 = 0, y 4 = 0 −→ sistema incompatible y 2 = 0, y 3 = 0, y 5 = 0 −→ sistema incompatible

y 2 = 0, y 4 = 0, y 5 = 0 −→ sistema incompatible y 3 = 0, y 4 = 0, y 5 = 0 −→ sistema incompatible

3. El método de simplex

Cuando 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 puedan extraer de un conjunto de n. Este es un problema clásico de combinatoria, cuya solución es

( n m

)

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 los vé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 es necesario 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 trivialmente serí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 restricciones mediante una matriz con rg A = m < n

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

K =

{ (x, y) ∈ R^2 / − x − y ≥ 1 , x ≥ 0 , y ≥ 0

} = ∅

o K =

{ (x, y) ∈ R^2 / − x − y ≥ 0 , x ≥ 0 , y ≥ 0

} = {(0, 0)}

Si A~x = ~b es compatible indeterminado con rg A = m, la solución del sistema depende de n − 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 del sistema A~x = ~b. A las variables respecto de las que se despeja las representaremos como x ~ N ∈ R nm^ y las llamaremos variables no básicas , mientras que agruparemos el resto en las variables básicas x~ B ∈ R m. De esta forma el quedaría reescrito como el cálculo de los extremos de la nueva función objetivo de variables básicas

f ( x~ N ) = u 0 + < ~w, ~x N > (4)

las igualdades de las variables no básicas

x ~ B = ~v + U · x~ N (5)

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

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

para unos nuevos U ∈ M m,mn (R), ~v ∈ R m^ y w~ ∈ R nm. Se pueden representar todos estos parámetros en una matriz añadiendo una fila y una columna a U o, lo que es lo mismo, en una tabla x~ N

x ~ B u 0 w~ ~v U

Con el problema escrito de esta manera, si todos los coeficientes de ~v y w~ fuesen no negativos, es decir, si v i ≥ 0 si 1 ≤ i ≤ m w i ≥ 0 si 1 ≤ i ≤ n − m

entonces, con independencia de lo que valga U , el mínimo del problema se alcanza en el punto x~ N = ~ 0 ∈ R nm , x~ B = ~v ∈ R m^ y vale f (~0) = u 0

Nota: La nueva función f no es lineal por la aparición de u 0 , pero ésta no influye a la hora de calcular máximos o mínimos por ser constante

Nota: Los problemas de maximización y minimización son equivalentes, ya que el máximo de f es el mínimo de −f , y viceversa. Por tanto la técnica de reescribir el problema con vectores ~b y ~c de coeficientes

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

f (x 1 , x 2 , x 3 , x 4 , x 5 ) = x 1 − x 2 −→ u 0 = 0, w~ = (1, −1) ∈ R^2

y el conjunto de restricciones

K =

{ ~x ∈ R^5 con x 1 ,... , x 5 ≥ 0 / x 1 + 3x 2 + x 3 = 6, x 1 − 2 x 2 + x 4 = 1, 2 x 1 + x 2 − x 5 = 2

}

Como hay 3 restricciones en realidad solo tenemos 2 grados de libertad. Despejar en función de x 1 y x 2 es trivial

x 3 = 6 − x 1 − 3 x 2 x 4 = 1 − x 1 + 2x 2

x 5 = −2 + 2x 1 + x 2

−→ ~v =

 

  ∈ R (^3) , U =

 

 

lo cual escrito en una tabla es x~ N x 1 x 2 x ~ B 0 1 − 1 x 3 6 − 1 − 3 x 4 1 − 1 2 x 5 − 2 2 1

forma de la tabla (7) con coeficientes de ~v no negativos, e intercambiar una variables básica con una no básica para conseguir sin perder el signo de ~v una tabla equivalentes con mejores coeficientes w~. Además es capaz de detectar si el problema no tiene solución, bien porque el conjunto 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ón objetivo por f ( x~ N , z) = u 0 + < ~w, ~x N > +M · z siendo M una constante indefinida mayor que cualquier número que pueda aparecer en cualquiera de las tablas, y las restricciones por

x ~ B = ~v + U · x~ N + z ·

  

   ∈^ R

nm

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

{v j } 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 w i ≥ 0 para 1 ≤ i ≤ n − m el algoritmo ha terminado, y se distinguen dos posibilidades FIN (OK) Si no fue necesario definirla o la variable artificial cumple z = 0, el mínimo del problema se alcanza en el punto x~ N = ~ 0 ∈ R nm , x~ B = ~v ∈ R m^ y vale f (~0) = u 0 FIN (KO) Si la variable artificial z > 0 el problema no admite solución porque K = ∅ PROSIGUE Si existe alguna componente w i < 0 elegimos la variable no básica x β buscando el índice de w β = m´ın { wj < 0 }

{w j }. Ahora tenemos que buscar una variable básica con la que intercambiarla FIN (KO) Si u i,β ≥ 0 para 1 ≤ i ≤ m el problema no admite solución porque f no está acotada inferiormente REINICIA Si existe algún elemento u i,β < 0 se elige la variable básica x α con índice tal

que

v α u α,β

= m´ax { ui,β < 0 }

{ v i u i,β

}

. 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 de simplex. La nueva tabla equivalente sigue cumpliendo que todas las componentes v i ≥ 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 de este problema (ni siquiera que el problema admite solución). Como no tenemos idea sobre cuáles son las mejores variables, lo razonable es partir de la tabla más sencilla, que se obtiene con v~ N = (x 1 , x 2 ) x ~ N x 1 x 2 x ~ B 0 1 − 1 x 3 6 − 1 − 3 x 4 1 − 1 2 x 5 − 2 2 1 Como en esta tabla v 3 = − 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 (x 1 , x 2 , x 3 , x 4 , x 5 , z) = x 1 − x 2 + M z

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

x 3 = 6 − x 1 − 3 x 2 + z x 4 = 1 − x 1 + 2x 2 + z

x 5 = −2 + 2x 1 + x 2 + z

El nuevo problema tiene 6 variables, así que además de x 1 y x 2 necesitamos una variable más no básica. Según la FASE 1 buscamos el menor coeficiente de ~v

v α = m´ın { vj < 0 }

{v j } = m´ın{− 2 }

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

x ~ N x 1 x 2 x 5 x ~ B 2 M 1 − 2 M − 1 − M M x 3 8 − 3 − 4 1 x 4 3 − 3 1 1 z 2 − 2 − 1 1

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

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

m´ın { wj < 0 }

{w j } = m´ın{ 1 − 2 M, − 1 − M } = 1 − 2 M

asociado a la variable no básica x 1 , que vamos a intercambiar por una de las tres variables básicas x 3 , x 4 o z. Para saber por cual de ellas, comprobamos que en la

Al ser M tan grande como necesitemos, ahora todas las componentes w i ≥ 0. Por tanto el algoritmo ha concluido con la solución x 4 = 5, x 1 = 0, x 2 = 2, x 3 = 0, z = 0, x 5 = 0. Como la 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

( 6 3

) = 20 posibles formas de escribir el problema,

mediante el algoritmo de simplex solo hemos usado 4, y que en cada iteración, además de mantener v i ≥ 0 los coeficientes w i < 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)

F Ejercicio : Resuelve mediante el método de simplex los problemas de maximización bus- cando los mínimos para la función opuesta −f (~x) = x 2 − x 1

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 coeficientes de cada nueva tabla. Definiendo la tabla como una matriz Z ∈ M m +1 ,nm +1(R),

Z = (z i,j ) =

( u 0 w~ ~v U

) ∈ M m +1 ,nm +1(R)

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

z i,j

z α,j · z i,β z α,β

si i 6 = α, j 6 = β

z i,β z α,β

si i 6 = α, j = β

z α,j z α,β

si i = α, j 6 = β

1 z α,β

si i = α, j = β

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